Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как подмигнуть капслоком, Как на асме включить капслок.. 
:(
    Опции темы
Den64
Дата 11.12.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: нет
Всего: 2



Как на АСМе включить CapsLock или NumLock в DOSe? 

--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
anwe
Дата 11.12.2006, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Используй команду out, порт № 60h (или 61  smile , точно не помню) функция 0EDh. Во второй ее байт этой функции заносится новое состояние светодиодов.
PM MAIL   Вверх
Den64
Дата 11.12.2006, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: нет
Всего: 2



Я записал:
Код

    mov dx, 61h
    mov al, 0EDh
    out dx, al

Ничего не изменилось! Что я не так сделал?
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
anwe
Дата 11.12.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Во-первых, попробуй 60h. Во-вторых, надо же во второй байт записать состояние - вызови еще раз out с регистром с новым состоянием.
PM MAIL   Вверх
Den64
Дата 11.12.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 6.4.2006
Где: Курск

Репутация: нет
Всего: 2



Теперь я записал:
Код

    mov dx, 60h
    mov al, 0EDh
    out dx, al
    mov al, 0
    out dx, al

До запуска проги Светился NumLock, поидее должен потухнуть.
Ничего не изменилось!
Что я теперь не так сделал? 


Это сообщение отредактировал(а) Den64 - 11.12.2006, 23:45
--------------------
Инагда пишу звуками.
PM WWW ICQ   Вверх
anwe
Дата 12.12.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 1
Всего: 23



Держи! Заставил сделать!
Код

    .model tiny
    .code
    org 100h
start:
    mov    ah,02
    int    1Ah
    mov    ch,dh
    mov    cl,0100b
l1:
    call    change
    shl    cl,1
    test    cl,1000b
    jz    l2
    mov    cl,0001b
l2:
    mov    ah,1
    int    16h
    jnz    l3
    push    cx
    mov    ah,2
    int    1Ah
    pop    cx
    cmp    ch,dh
    mov    ch,dh
    je    l2
    jmp    l1
l3:
    mov    ah,0
    int    16h
    ret

change    proc
    call    w
    mov    al,0EDh
    out    60h,al
    call    w
    mov    al,cl
    out    60h,al
    ret
change    endp

w    proc
    in    al,64h
    test    al,0010b
    jnz    w
    ret
w    endp

end    start

Надо еще опрашивать клавиатуру на готовность.

Это сообщение отредактировал(а) anwe - 12.12.2006, 00:26
PM MAIL   Вверх
Anglichanin
Дата 27.6.2007, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 27.6.2007

Репутация: нет
Всего: нет



Я короче скомпилировал эту программу, но ничего не появилось.
Появилась только одна ошибка.


proga.Asm(1): error A2027: Operand expected

1 Severe Errors
PM MAIL   Вверх
10110111
Дата 29.6.2007, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 28.8.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Вообще, если делать через порты, то будет только светиться светодиод на клаве, а для того, чтобы включение CapsLock отразилось на работе программ( например, ввод прописных букв без Shift'а), надо писать в BDA по адресу 40:17.
По Ralf Brown's files:
 40:17            Keyboard Control                  Byte

     Bit 7          Insert Locked
     Bit 6          Caps Lock Locked
     Bit 5          Num Lock Locked
     Bit 4          Scroll Lock Locked
     Bit 3          Alt Key Pressed
     Bit 2          Ctrl Key Pressed
     Bit 1          Left Shift Key Pressed
     Bit 0          Right Shift Key Pressed
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.