Добавил:
Mymnan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АВМиС - бывшее АПЭВМ / лекции - что-то похожее / Клавиатура / 06 Клавиатура
.asc6. Љ« ўЁ вга
6.1. Љ« ўЁ вга IBM PC/XT
‘ўп§м б Є« ўЁ вга®© ®бгйҐбвў«пҐвбп зҐаҐ§ Ї®авл ЏЏ€ 60h Ё
61h (б¬. 5.2). ЏаЁ ¦ вЁЁ Є« ўЁиЁ Їа®Ёб室Ёв ЇЇ а ⮥
ЇаҐалў ЁҐ IRQ1, бўп§ ®Ґ б ўҐЄв®а®¬ Int 9. …б«Ё ‚л е®вЁвҐ
®Ўа Ў влў вм нв® ЇаҐалў ЁҐ б ¬Ё, в® Їа®Ја ¬¬ ®Ўа Ў®вЄЁ
ЇаҐалў Ёп ¤®«¦ Ё¬Ґвм б«Ґ¤гойЁ© ўЁ¤:
Int_09h:
push ax
push di
push es
in al,60h ;бЄ . Є®¤ Є« ўЁиЁ Ё§ ђЂ
les di,buffer ; ¤аҐб ЎгдҐа
stosb ;б®еа Ёвм Є®¤ ў ЎгдҐаҐ
pop es
pop di
in al,61h ;ўў®¤ Ї®ав ђ‚
mov ah,al
or al,80h ;гбв ®ўЁвм ЎЁв "Ї®¤вўҐа¦¤ҐЁп ўў®¤ "
out 61h,al
xchg ah,al ;ўлўҐбвЁ бв ஥ § 票Ґ ђ‚
out 61h,al
mov al,20h ;Ї®б« вм бЁЈ « EOI
out 20h,al ;Є®ва®««Ґаг ЇаҐалў Ё©
pop ax
iret
ЏҐаҐзҐм бЄ -Є®¤®ў ўбҐе Є« ўЁи ЇаЁўҐ¤Ґ ў ЇаЁ«®¦ҐЁЁ 1. ‚л
¬®¦ҐвҐ § ЇаҐвЁвм ЇаҐалў Ёп ®в Є« ўЁ вгал «ЁЎ® ¬ бЄЁа®ўЄ®© ЎЁв
1 ў ॣЁбвॠIMR Є®ва®««Ґа ЇаҐалў Ё©, «ЁЎ® гбв ®ўЄ®© ЎЁв 6
Ї®ав ђ‚ ЏЏ€:
in al,21h ;з⥨Ґ IMR
or al,2 ;гбв ®ўЄ ЎЁв 1
out 21h,al ;§ ЇЁбм IMR
Ё«Ё
in al,61h ;з⥨Ґ ђ‚
or al,40h ;гбв ®ўЄ ЎЁв 6
out 61h,al ;§ ЇЁбм ђ‚
„«п а §аҐиҐЁп а Ў®вл Є« ўЁ вгал Ґ®Ўе®¤Ё¬® ўлЇ®«Ёвм
®Ўа влҐ ¤Ґ©бвўЁп.
6.2. Љ« ўЁ вга IBM PC AT
‚§ Ё¬®¤Ґ©бвўЁҐ б Є« ўЁ вга®© ў PC AT Ў §ЁагҐвбп
¬ЁЄа®Їа®жҐбб®аҐ Intel 8042; Ў« Ј®¤ ап нв®¬г Їа®Ја ¬¬Ёбв Ё¬ҐҐв
Ј®а §¤® Ў®«миЁҐ ў®§¬®¦®бвЁ Ї® гЇа ў«ҐЁо Є« ўЁ вга®©, Ґ¦Ґ«Ё ў
PC/XT.
“Їа ў«ҐЁҐ Є« ўЁ вга®© Їа®Ё§ў®¤Ёвбп ®Ўа 饨Ґ¬ Є Ї®авг
ўў®¤ -ўлў®¤ 64h. „«п б®ў¬ҐбвЁ¬®бвЁ б® бв ал¬Ё Џќ‚Њ ¤®ЇгбвЁ¬®
ЁбЇ®«м§®ў ЁҐ Ї®ав 60h. …б«Ё ЇаЁўҐ¤ҐлҐ Ё¦Ґ ЇаЁ¬Ґал Ґ
а Ў®в ов ‚ 襩 Џќ‚Њ, в® ЁбЇ®«м§г©вҐ Ї®ав 60h.
Џ®ав 64h ЇаҐ¤ § зҐ ¤«п ўлў®¤ Є®¬ ¤ Ё ¤ ле Ё ¤«п
з⥨п б®бв®пЁп Є« ўЁ вгал. ЋЎи п б奬 Ї®бл«ЄЁ Є®¬ ¤ Є« ўЁ -
вгаe в Є®ў :
cli ;§ ЇаҐв ЇаҐалў Ё©
call wait_kbd ;®¦Ё¤ ЁҐ Ј®в®ў®бвЁ Є« ўЁ вгал
mov al,cmd_code ;Є®¤ Є®¬ ¤л
out 64h,al ;ўлў®¤ ў Ї®ав
sti ;а §аҐиҐЁҐ ЇаҐалў Ё©
„«п Є®¬ ¤, б®Їа®ў®¦¤ ойЁебп Ў ©в®¬ ¤ ле, нв б奬
ЇаЁЁ¬ Ґв ўЁ¤:
cli
call wait_kbd
mov al,cmd_code ;Є®¤ Є®¬ ¤л
out 64h,al
call wait_kbd
mov al,data_value ;Ў ©в ¤ ле
out 64h,al
sti
Џа®ўҐаЄ ®¦Ё¤ Ёп Ј®в®ў®бвЁ Є« ўЁ вгал ¬®¦Ґв Ё¬Ґвм ўЁ¤:
wait_kbd:
mov cx,2500h ;§ ¤Ґа¦Є Ї®ап¤Є 10 ¬бҐЄ
test_kbd:
in al,64h ;зЁв Ґ¬ б®бв®пЁҐ Є« ўЁ вгал
test al,2 ;Їа®ўҐаЄ ЎЁв Ј®в®ў®бвЁ
loopnz test_kbd
ret
Ђўв®а ¬ Ё§ўҐбвл б«Ґ¤гойЁҐ Є®¬ ¤л Є®ва®««Ґа Є« ўЁ вгал
(нв®в бЇЁб®Є, ўҐа®пв®, Ґ Ї®«® Ё ¬®¦Ґв ᮤҐа¦ вм ®иЁЎЄЁ, в. Є.
б®Ўа Ё§ а §«Ёзле Ёбв®зЁЄ®ў):
Љ®¤ Є®¬ ¤л ЋЇЁб ЁҐ
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
0FFh ‘Ўа®б Є« ўЁ вгал Ё § ЇгбЄ ўгв॥Ј® вҐбв .
0FEh Џ®ўв®аЁвм Ї®б«Ґ¤оо ЇҐаҐ¤ зг.
0FDh ‚맮ў ЇаҐалў Ёп IRQ1.
0F6h ЏаЁўҐбвЁ Є« ўЁ вгаг ў Ёб室®Ґ б®бв®пЁҐ Ё
а §аҐиЁвм бЄ Ёа®ў ЁҐ.
0F5h ЏаЁўҐбвЁ Є« ўЁ вгаг ў Ёб室®Ґ б®бв®пЁҐ Ё
§ ЇаҐвЁвм бЄ Ёа®ў ЁҐ.
0F4h ‘Ўа®бЁвм ЎгдҐа Є« ўЁ вгал Ё з вм бЄ Ёа®ў ЁҐ.
0F3h ‡ ¤ вм § ¤Ґа¦Єг Ё бЄ®а®бвм ўў®¤ бЁ¬ў®«®ў.
ЏҐаў® з «м® Є« ўЁ вга зЁ Ґв Ї®ўв®апвм
¦ вго Є« ўЁиг зҐаҐ§ 0,5 ᥪ б® бЄ®а®бвмо
10 Ї®ўв®а®ў ў ᥪг¤г. ‚л ¬®¦ҐвҐ Ё§¬ҐЁвм нвЁ
Ї а ¬Ґвал, Ї®б« ў б«Ґ¤гойЁ© Ў ©в ¤ ле:
7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
і0 і і і ЃЁвл:
АДДБДДЕДДБДДБДДБВДБДДБДДЩ ДДДДД
і АДДДДДДДД> 0-4:Є®«ЁзҐбвў Ї®ўв®а®ў ў ᥪг¤г
АДДДДДДДДДДДДДДДДДД> 5-6: з «м п § ¤Ґа¦Є ў ¬бҐЄ:
00=250, 01=500, 10=750, 11=1000
Љ®«ЁзҐбвў® Ї®ўв®а®ў § ¤ Ґвбп б«Ґ¤го饩 в Ў«ЁжҐ©:
ЪДДДДДДВДДДДДДДДВДДДДДДВДДДДДДДДВДДДДДДВДДДДДДДДї
іЉ®бв.і‘Є®а®бвміЉ®бв.і‘Є®а®бвміЉ®бв.і‘Є®а®бвмі
ГДДДДДДЕДДДДДДДДЕДДДДДДЕДДДДДДДДЕДДДДДДЕДДДДДДДДґ
і 00h і 30.0 і 0Bh і 10.9 і 16h і 4.3 і
і 01h і 26.7 і 0Ch і 10.0 і 17h і 4.0 і
і 02h і 24.0 і 0Dh і 9.2 і 18h і 3.7 і
і 03h і 21.8 і 0Eh і 8.6 і 19h і 3.3 і
і 04h і 20.0 і 0Fh і 8.0 і 1Ah і 3.0 і
і 05h і 18.5 і 10h і 7.5 і 1Bh і 2.7 і
і 06h і 17.1 і 11h і 6.7 і 1Ch і 2.5 і
і 07h і 16.0 і 12h і 6.0 і 1Dh і 2.3 і
і 08h і 15.0 і 13h і 5.5 і 1Eh і 2.1 і
і 09h і 13.3 і 14h і 5.0 і 1Fh і 2.0 і
і 0Ah і 12.0 і 15h і 4.6 і і і
АДДДДДДБДДДДДДДДБДДДДДДБДДДДДДДДБДДДДДДБДДДДДДДДЩ
0EEh ќе® (¤«п ¤Ё Ј®бвЁЄЁ). Џа®бв® ў®§ўа й Ґв 0……h.
0EDh “Їа ў«ҐЁҐ ᢥ⮤Ё®¤ ¬Ё Є« ўЁ вгал. „«п ўЄ«о票п
Ё«Ё ўлЄ«о票п ᢥ⮤Ё®¤®ў Ї®и«ЁвҐ в Є®© Ў ©в
¤ ле:
7 6 5 4 3 2 1 0
ЪДДВДДВДДВДДВДДВДДВДДВДДї
іX X X X X і і і і ЃЁвл:
АДДБДДБДДБДДБДДБВДБВДБВДЩ ДДДДД
і і АДД> 0: 1 = ўЄ«озЁвм ScrollLock
і АДДДДД> 1: 1 = ўЄ«озЁвм NumLock
АДДДДДДДД> 2: 1 = ўЄ«озЁвм CapsLock
0DFh ђ §аҐиЁвм 20-ЎЁв®ўго ¤аҐб жЁо.
0DDh ‡ ЇаҐвЁвм 20-ЎЁв®ўго ¤аҐб жЁо.
0D1h ‡ ЇЁбм ў Ї®ав ўлў®¤ 8042.
0D0h —⥨Ґ Ї®ав ўлў®¤ 8042.
0C0h —⥨Ґ Ї®ав ўў®¤ 8042.
0AEh ђ §аҐиҐЁҐ Є« ўЁ вгал.
0ADh ‡ ЇаҐйҐЁҐ Є« ўЁ вгал.
0ACh —⥨Ґ Ћ‡“ Є®ва®««Ґа .
0ABh ’Ґбв бЁеа®Ё§ жЁЁ Ё ¤ ле.
0AAh ‚гв२© вҐбв Є« ўЁ вгал.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Соседние файлы в папке Клавиатура