- bàn phím 101 phím cụa IBM PC/AT
8.3INTERRUPT 016H
Đeơ giúp các chương trình có theơ truy nhaơp đên bàn phím moơt cách deê dàng,BIOS cung câp moơt sô các chức naíng đơn giạn và thuaơn tieơn thođng qua interrupt 016h.
Interrupt 016h cung câp các chức naíng caín bạn sau :
8.3.1Đĩc keyboard buffer
Input : AH = 0
Output : AH = scan code
AL = ASCII code (0 nêu là phím đaịc bieơt)
Đĩc moơt phím từ keyboard buffer,nêu chưa có phím trong keyboard buffer sẽ chờ cho đên khi có phím gõ vào ( do interrupt 09h caơp nhaơt ).Khi đĩc sẽ “xóa” luođn mã phím trong keyboard buffer ( Chư caơp nhaơt KBD-head chứ khođng thay đoơi thođng tin trong keyboard buffer).
8.3.2Kieơm tra keyboard buffer
Input : AH = 01
Output : ZF = 1 : khođng có phím nào trong keyboard buffer. ZF = 0 : đã có phím trong keyboard buffer,
AH = scan code, AL = ASCII code
Kieơm tra keyboard buffer, nêu keyboard buffer khođng trông thì đĩc như chức naíng 0 nhưng khođng caơp nhaơt lái KBD-head.
8.3.3Đĩc keyboard status byte
Input : AH = 02
Output : AL = status byte ( thođng tin như neđu ở phaăn tređn )
Đĩc status byte tái địa chư 0000:0417h
Chú ý raỉng chức naíng 01 cụa interrupt 021h đã sử dúng interrupt 016h đeơ đĩc bàn phím, và chư cho lái byte thâp cụa phím gõ vào. Vì vaơy, sử dúng interrupt 016h đeơ đĩc bàn phím là phương pháp tôt nhât cho các chương trình Assembler.
8.3.4Mã cụa moơt sô các phím đaịc bieơt :
(giá trị AX sau khi đĩc baỉng chức naíng 0 hay 1 cụa interrupt 016h)
Cursor-up equ 04800h F1 equ 03B00h
Cursor-down equ 05000h F2 equ 03C00h
Cursor-left equ 04B00h F3 equ 03D00h
Cursor-right equ 04D00h F4 equ 03E00h
ESC-key equ 0011Bh F5 equ 03F00h
Enter-key equ 01C0Dh F6 equ 04000h
Ins-key equ 05200h F7 equ 04100h
Del-key equ 05300h F8 equ 04200h
Backspace equ 00E08h F9 equ 04300h
Home-key equ 04700h F10 equ 04400h
End-key equ 04F00h PgUp-key equ 04900h Ctrl-left equ 07300h PgDn-key equ 05100h Ctrl-right equ 07400h Ctrl-Home equ 07700h Ctrl-PgUp equ 08400h Ctrl-End equ 07500h
Ctrl-PgDn equ 07600h Ctrl-F1 equ 05E00h
Alt-F1 equ 06800h Ctrl-F2 equ 05F00h
Alt-F2 equ 06900h Ctrl-F3 equ 06000h
Alt-F3 equ 06A00h Ctrl-F4 equ 06100h
Alt-F4 equ 06B00h Ctrl-F5 equ 06200h
Alt-F5 equ 06C00h Ctrl-F6 equ 06300h
Alt-F6 equ 06D00h Ctrl-F7 equ 06400h
Alt-F7 equ 06E00h Ctrl-F8 equ 06500h
Alt-F8 equ 06F00h Ctrl-F9 equ 06600h
Alt-F9 equ 07000h Ctrl-F10 equ 06700h
Alt-F10 equ 07100h