Fixed internal stack overflow caused by overly rapid keyboard interrupts

This commit is contained in:
Jeff Parsons 2014-11-06 15:31:50 -08:00 committed by jeffpar
commit 88e71cdb17
17 changed files with 1972 additions and 1809 deletions

File diff suppressed because one or more lines are too long

View file

@ -130,3 +130,28 @@
F000:06A1 @ CHECK_DMA
F000:06C4 @ GET_VEC
F000:06DA @ HD_INT
3366 +
F000:0000 @ KEYBOARD_IO_1
F000:00C7 @ K1S ; READ THE KEY TO FIGURE OUT WHAT TO DO
F000:0103 @ K2S ; READ THE KEY TO SEE IF ONE IS PRESENT
F000:0125 @ KIO_E_XLAT ; TRANSLATE SCAN CODE PAIRS FOR EXTENDED CALLS
F000:0130 @ KIO_S_XLAT ; TRANSLATE SCAN CODE PAIRS FOR STANDARD CALLS
F000:0168 @ K4 ; INCREMENT BUFFER POINTER ROUTINE
F000:0175 @ KB_INT_1 ; KEYBOARD INTERRUPT ROUTINE
F000:018B @ KB_INT_01 ; WAIT FOR KEYBOARD DISABLE COMMAND TO BE ACCEPTED
F000:019D @ KB_INT_02 ; CHECK FOR A RESEND COMMAND TO KEYBOARD
F000:01AF @ KB_INT_4 ; RESEND THE LAST BYTE
F000:01B8 @ KB_INT_2 ; UPDATE MODE INDICATORS IF CHANGE IN STATE
F000:01CA @ UP0 ; START OF KEY PROCESSING
F000:0258 @ T_SYS_KEY ; TEST FOR SYSTEM KEY
F000:0299 @ K16A ; TEST FOR SHIFT KEYS
F000:02AC @ K17 ; SHIFT KEY FOUND
F000:02BE @ K17C ; SHIFT KEY FOUND, DETERMINE SET OR TOGGLE
F000:0335 @ K23 ; BREAK SHIFT FOUND
F000:0385 @ K25 ; TEST FOR HOLD STATE
F000:039E @ K26A ; INTERRUPT RETURN
F000:05EE @ K57 ; PUT CHARACTER INTO BUFFER
F000:0635 @ SHIP_IT ; HANDLE TRANSMISSION OF BYTES TO 8042
F000:0644 @ SND_DATA ; HANDLE TRANSMISSION OF COMMAND AND DATA BYTES
F000:0680 @ SND_LED ; TURN ON THE MODE INDICATORS
F000:06D1 @ MAKE_LED ; FORM THE DATA BYTE FOR THE MODE INDICATORS