@@ -14,17 +14,17 @@ LOCALS @@
14
14
DATASEG
15
15
include "UtilLib\keymap.inc"
16
16
17
+ ; used by PrintFifoStatus
17
18
strTail db "TAIL=$" , 0
18
19
strHead db "HEAD=$" , 0
19
- strHere db "Here$" , 0
20
20
21
21
CODESEG
22
22
_OldKeyboardISR dw 0 , 0 ; old keyboard ISR vector address and segment
23
- KEY_BUFFER_SIZE equ 15
23
+ ; FIFO buffer implementation
24
+ KEY_BUFFER_SIZE equ 15 ; Fifo buffer size
24
25
_ISRKeyBuffer db KEY_BUFFER_SIZE dup( 0 ) ; ISR 9 - keyboard buffer
25
- _ISRKeyHead dw 0
26
- _ISRKeyTail dw 0
27
- _ISRKeyCount db 0
26
+ _ISRKeyHead dw 0 ; Head pointer
27
+ _ISRKeyTail dw 0 ; Tail pointer
28
28
29
29
;------------------------------------------------------------------
30
30
; Set Keyboard Typematic Rate to defalt (repeat delay and rate)
@@ -176,7 +176,6 @@ ENDP RestoreKeyboardInterrupt
176
176
;------------------------------------------------------------------
177
177
PROC InitSampleISR
178
178
push es di
179
- mov [ cs :_ISRKeyCount ], 0
180
179
mov [ cs :_ISRKeyHead ], 0
181
180
mov [ cs :_ISRKeyTail ], 0
182
181
; Make buffer zero
@@ -263,15 +262,6 @@ PROC GetKeyboardStatusISR
263
262
__fifo_peek
264
263
ret
265
264
ENDP GetKeyboardStatusISR
266
-
267
- ;------------------------------------------------------------------
268
- ; Sample keybaord interrupt - converts scancode to ASCII
269
- ; Not implemented!
270
- ;
271
- ; Private - for use only by the library
272
- ;------------------------------------------------------------------
273
- MACRO __scancode_to_char key
274
- ENDM
275
265
;------------------------------------------------------------------
276
266
; Sample keybaord interrupt - write key to buffer
277
267
;
@@ -400,6 +390,8 @@ ENDP PrintFifoStatus
400
390
;--------------============= END OF SAMPLE KEYBOARD ISR ==============-----------------
401
391
402
392
393
+ ;--------------============= SIMPLE KEYBOARD ISR ==============------------------------
394
+
403
395
;------------------------------------------------------------------
404
396
; A simple keybaord interrupt uses the original built-in IRQ but
405
397
; adds preprocessing to the event
@@ -413,3 +405,4 @@ PROC KeyboardISREvents FAR
413
405
push [ word ptr cs :_OldKeyboardISR ] ; offset
414
406
retf
415
407
ENDP KeyboardISREvents
408
+ ;--------------============= END OF SIMPLE KEYBOARD ISR ==============-------------------
0 commit comments