IBM PC CONVERTIBLE Technical Reference page 98

Table of Contents

Advertisement

0274
E9 0334 R
0277
0277
3C 45
0279
75 2E
,
027B
80 OE 0018 R 08
0280
BO 20
0282
E6 20
,
0284
80 3E 0049 R 07
0289
74 07
028B
BA 03D8
028E
AO 0065 R
0291
EE
JMP
K39:
CMP
JNE
K57
AL,NUMJEY
K41
BUFFEILFI LL
NO-BREAK
LOOK FOR PAUSE KEY
NO-PAUSE
PAUSE ENTERED
-
EOI & SLEEP UNTIL UNPAUSE - CTL + NUM_LOCK MAKE
OR
KB_FLAG_1,HOLD_STATE ; TURN ON THE HOLD FLAG
MOV
AL,EOI
; EOI TO ALLOW MORE KEYSTROKES
OUT
020H,AL
DURING PAUSE INTERVAL, TURN CRT BACK ON
CMP
JE
MOV
MOV
OUT
CRT-HODE,7
K40
DX ,03D8H
AL, CRLMODE_SET
DX,AL
CURRENTLY USING MONO?
YES, JMP TO SLEEP
PORT FOR COLOR CARD
GET CURRENT MODE VAULE
SET THE CRT MODE ON
ISSUE SYS SERVICES INT, WAIT ON EXTERNAL EVENT FUNCTION
(WAIT UNTIL HOLD_STATE BIT OF KB_FLAG_1 IS RESET)
0292
K40:
0292
B8 4104
MOV
AX, 4104H
FUNCTION 41H, AL=04=RETURN IF 0
0295
BB 0800
MOV
BX,HOLD_STATE*100H
BH=HOLD_STATE, BL=O=NO TIME OUT
0298
IE
PUSH
DS
MAKE ES:DI POINT TO KB_FLAIL1
0299
07
POP
ES
029A
BF 0018 R
MOV
DI,OFFSET KBJLAG_1
029D
CD 15
INT
15H
; SLEEP UNTI L OUT OF HOLD
029F
F6 06 0018 R 08
TEST
KB_FLAG_1,HOLD_STATE; DID INT 15H RESET HOLD_STATE?
02M
75 EC
JNZ
K40
; NO, KEEP LOOPING
02A6
E9 039B R
JMP
KYBD9_RET
; YES, GO TO NON_EO I EXIT
02A9
K41:
02A9
3C 37
02AB
75 06
02AD
B8 7200
02BO
E9 0334 R
02B3
02B3
BB 0000
02B6
3C 3B
02B8
72 76
02BA
02BA
BB 0000 E
02BD
E9 037C R
02CO
02CO
3C 47
02C2
73 2C
;----- TEST FOR PRINT SWITCH TOGGLE CMD
[[[ CTL + */PRTSC MAKE ]]]
CMP
JNE
MOV
JMP
AL, P60--ASTRLSC
K42
AX ,114*256
K57
*
KEY HIT?
NO, JMP
YES, BUILD TOGGLE_PRLSW PSEUDO SC
BUFFER_FILL
CHECK FOR TYPEWRITER KEYS
[[[ CTL + TYPEWRITER KEY MAKE
1]]
K42:
MOV
CMP
JB
BX,OFFSET K8
AL, FLKEY
K56
BX <=== CTL + TYPEWRITER KEYS TABLE
SC BELOW TYPEWRITER REGION?
YES, GO TRANSLATE TO ASCII CODE
KEY IS IN FN OR KEYPAD REGION
[[[ CTL + (F1-F10) ]]]
K43:
MOV
JMP
[[[ CTL + PAGE/CURSOR KEY]]]
BX,OFFSET K9
K63
CTL FN
&
CTL PAGE/CUR TBLS
GO XLATE
&
BUILD PSEUDO SC
<<<<<
>>>>>
««< NOT IN CTL_SHI FT
»»>
««<
NOR AL LSHI FT
»»>
CHECK IF KEY IN KEYPAD REGION (1-9,.,-,+)
K44:
AL,71
; KEY IN KEYPAD REGION?
K48
; YES, JMP
02C4
F6 06 0017 R 03
CMP
JAE
TEST
JZ
KB_FLAG,LEFLSHIFT+RIGHLSHIFT
; IN SHIFT STATE?
02C9
74 5A
02CB
3C OF
02CD
75 05
02CF
B8 OFOO
02D2
EB 60
K54
; NO, JMP
IN
SHIFT
STATE
,BUT KEY IS NOT IN KEYPAD REGION
CHECK FOR BACK TAB
CMP
JNE
MOV
JMP
AL, TAB_KEY
K45
AX, TAB_KEY*256
SHORT K57
[[[[ SHIFT + TAB ]]]
TAB KEY?
NO ,JMP
BUILD BACK_TAB PSEUDO SC
BUFFER_FILL
ROM BIOS 2-73

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents