0306
0306
80 FB 08
0309
77 57
03DB
80 FB 08
03DE
74 3B
03EO
F6 C4 80
03E3
74
OT
03E5
31 OE 00B7
03E9
E9 051B R
03EC
03EC
85 OE 00B7 R
03FO
75 26
03F2
09 OE 00B7 R
03F6
80 FB 01
03F9
75 09
03FB
E4 61
03FD
34 04
03FF
E6 61
0401
E9 051B R
0404
0404
80 FB 02
0407
75 08
0409
80 36 00B4 R 08
040E
E9 051B R
0411
0411
30 1E 00B4 R
0415
E8 0524 R
0418
E9 051B R
XLT28A:
CMP
JA
CMP
JE
TEST
JZ
XOR
JMP
XL T29:
TEST
JNZ
OR
CMP
JNE
IN
XOR
OUT
JMP
XLT30:
CMP
JNE
XOR
JMP
XLT31 :
BL,08H
XLT36
BL,08H
XLT33
AH, BREAILBIT
XLT29
LPEND2,CX
XLT95
B_PEND2,CX
XLT32
B_PEND2,CX
BL,OlH
XLT30
AL,NMLCNTL
AL,EN_SPKR
NMLCNTL,AL
XLT95
IS THIS A STATE CHANGE KEY?
JUMP TO CUR KEYS I F NOT STATE CHG
SYSTEM REQUEST KEY ?
YES, GO PROCESSES SYSTEM REQUEST
MAKE KEY?
YES, GO SET BREAK PENDING
BREAK KEY - RES ET BRK P END FLAG
GO TO RETURN
IS BREAK ALREADY PENDING
TYPAMATIC INVALID FOR STATE KEY
SET KEYS BREAK PENDING FLAG
SPEAKER STATE KEY ?
NO, GO TEST FOR CLICK STATE
READ SPEAKER CONTROL PORT
TOGGLE ENABLE SPEAKER STATE
WRITE SPEAKER CONTROL PORT
GO TO RETURN
BL,02H
CLICK STATE KEY?
XL T31
; NO, GO TOGGLE KEYPAD STATE
KLNMLCNTL,CLICILON ; TOGGLE CLICK STATE
XL T95
GO TO RETURN
XOR
KLNMLCNTL,BL
TOGGLE KEYPAD STATE
CALL
NUILSTATE_FIX
XL T32:
JMP
XL T95
MAKE NUM_STATE RFCT KEYPAD_STATE
GO TO RETURN
SYSTEM REQUEST KEY PROCESSING
041B
041B
F6 C4 80
041E
75 09
0420
09 OE 00B7 R
0424
BO 54
0426
E9 050C R
0429
0429
31 OE 00B7 R
0420
BO 04
042F
E9 050C R
XL T33:
TEST
JNZ
OR
MOV
JMP
XLT34:
XOR
MOV
JMP
AH, BREAILBIT
XLT34
B_PEND2,CX
AL, SYSREQ_MAKE
XLT90
B_PEND2,CX
AL, SYSREQ_BREAK
XLT90
IS THIS A REQUEST KEY MAKE?
NO, GO RESET BREAK PENDING FLAG
YES, SET KEYS BREAK PENDING FLAG
SET AL TO SYSTEM REQUEST MAKE
GO WRITE TO PORT 60
BREAK KEY - RESET BRK PEND FLAG
SET AL TO SYSTEM REQUEST BREAK
GO WRITE TO PORT 60
IF HERE, MUST BE FN
+
CURSOR KEY, OR
FN
+
Fl, F2
0432
0432
8A C3
0434
80 FB 57
0437
73 15
XL T36:
MOV
CMP
JAE
AL,BL
BL,P60_FlLSC
XLT38
, AL
<===
PC1 EXTENDED SC FROM TBL
; FN + Fl, F2?
; YES, JUMP
FUNCTION
+
CURSOR KEYS
-
HOME, PGUP, END, PGDN
0439
F6 C4 80
043C
74 09
043E
31 OE 00B7 R
0442
OC 80
0444
E9 04FB R
0447
0447
09 OE 00B7 R
044B
E9 04FB R
TEST
JZ
XOR
OR
JMP
XL T37:
OR
JMP
AH,BREAILBIT
XLT37
B_PEND2,CX
AL,BREAILBIT
XLT80
B_PEND2,CX
XLT80
FUNCTI ON
+
Fl
( F11)
P60-SC:
FUNCTION
+
F2
(Fl2)
044E
044E
F6 C4 80
0451
74 09
0453
OA C4
0455
31 OE 00B7 R
0459
E9 050C R
045C
045C
09 OE 00B7
0460
E9 050C R
XLT38:
TEST
JZ
OR
XOR
JMP
XL T38_1:
OR
JMP
AH, BREAILBIT
XL T38_1
AL,AH
B_PEND2,CX
XLT90
B_PEND2,CX
XLT90
CURSOR KEY BREAK ?
NO, GO SET BREAK PENDING FLAG
BREAK KEY - RESET BREAK PEND FLAG
SET BREAK IN PC1 SCAN CODE
GO RESET PORT 60 KEYPAD STATE
SET KEYS BREAK PENDING FLAG
GO RESET PORT 60 KEYPAD STATE
Fll MAKE
=
57H
Fll BREAK
=
D7H
Fl2 MAKE
=
58H
Fl2 BREAK
=
D8H
MAKE KEY?
YES, JUMP
CHANGE TO BREAK SC
BREAK KEY - RESET BREAK PEND FLAG
WRITE TO P60
MAKE KEY - SET BREAK PEND FLAG
WRITE TO P60
ROM BIOS 2-41