IBM PC CONVERTIBLE Technical Reference page 100

Table of Contents

Advertisement

0320
0320
SS 0000
0330
0330
FE C8
0332
2E: 07
0334
0334
3C FF
0336
74 IF
0338
80 FC FF
0338
74 1A
0330
K55:
MOV
8X,OFFSET K10
; 8X=SASE CASE ASCI I TSL
; T RAN S L ATE
SC TO EXTENDTEO ASCII CODE
BUFFER
K56 :
DEC
XLAT
AL
cs:
Kll
PUT CHARACTER INTO BUFFER
K57 :
CMP
JE
CMP
JE
AL
,-1
K59
AH, -1
K59
CHECK FOR CAPS_STATE
K58:
; ADJUST SC FOR TABLE OFFSET
; TRANSLATE FROM TABLE IN BX
IGNORE CODE XLATED FROM TABLE?
YES, GO TO EOI EXIT
IGNORE PSEUDO SCAN?
YES, GO TO EOI EXIT
0330
F6 06 0017 R 40
TEST
KB_FLAG,CAPS_STATE; ARE WE IN CAPS LOCK STATE
0342
74 20
JZ
K61
; SKIP IF NOT
;
«««
»»»
;----- DETERMINE WHICH WAY TO CONVERT
«««
IN CAPS_STATE
»»»
0344
F6 06 0017 R 03
TEST
KB_FLAG, LEFT _SHI FT +RI GHT _SH I FT
IN SHI FT STATE?
0349
74 OF
JZ
K60
; NO, JMP
CONVERT UPPER CASE TO LOWER
ALPHABETI C CHARS ONLY
034B
3C 41
CMP
AL,
I
A
I
ALPHABETIC CHAR?
0340
72 15
JB
K61
NO, JMP
034F
3C 5A
CMP
AL, 'Z'
0351
77 11
JA
K61
NO, JMP
0353
04 20
ADD
AL,
I
a ,_,
A
I
YES, CONVERT TO LOWER CASE.
0355
EB 00
JMP
SHORT K61
GO BUFFER
0357
K59:
0357
EB 3D 90
JMP
KYBDLEXIT
INTERRUPT_RETURN
CONVERT LOWER CASE TO UPPER
ALPHABETI C CHARS ONLY
035A
K60:
035A
3C 61
CMP
AL,
I
a
I
ALPHABETIC CHAR?
035C
72 06
JB
K61
NO, JMP
035E
3C 7A
CMP
AL,
I
z
I
0360
77 02
JA
K61
NO, JMP
0362
2C 20
SUB
AL, 'a'-'A'
YES, CONVERT TO UPPER CASE
,
----
-
------------
- -- - - -
-
- - - - -
- - --
- - -
- - -
- - -
- - -
- - -
- -
--
; BUFFER EXTENDED ASCI I CODE I F NOT FULL
-
-
---
----
--
------------
--
- -- -
-
- - - - -
- -
- - - -
-
- - - -
-
- -- --
0364
K61 :
0364
8B IE 001C R
MOV
BX,BUFFER_TAIL
GET BUFFER TAIL POINTER
0368
8B F3
MOV
SI, BX
SI <=== TAIL PTR
036A
E8 03A4 R
CALL
PTR_INC
ADVANCE THE TAIL
0360
3B IE 001A R
CMP
BX, BUFFER_HEAD
HAS BUFFER WRAPPED AROUND?
0371
74 13
JE
K62
YES, GO GIVE BUFFER_FULL_BEEP
0373
89 04
MOV
[SI],AX
NO, BUFFER THE CODE
0375
89 IE 001C R
MOV
BUFFER_TAIL,BX
UPDATE TAIL PTR
0379
EB 1 B 90
JMP
KYBD9_EXIT
GO TO EOI EXIT
TRANSLATE F1-FlO SCAN CODES TO AN EXTENDED ASCII CODE
-
(FOR
SHIFT,
ALT, &
CTL
STATES)
037C
K63:
037C
2C 3B
SUB
AL, FLKEY
; ADJUST SC FOR TABLE OFFSET
037E
K64:
037E
2E: 07
XLAT
cs :K9
XLAT FROM TABLE IN BX
(K9,K12,K13)
0380
8A EO
MOV
AH,AL
BUILD EXTENDED ASCII CODE
0382
BO 00
MOV
AL,O
0384
EB AE
JMP
K57
GO BUFFER
ROM BIOS 2-75

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents