EasyManua.ls Logo

IBM XT 5160 - Page 201

IBM XT 5160
420 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
IBM
Personal
Computer
MACRO
Assembler
Version
2.00
KEYBRD
- - - 01
II
0/86
KEYBOARD ADAPTER B I
OS
1-9
01-10-86
;
------
TEST
FOR
THE
NEW
KEY
ON
WT
KEYBOARDS
;
------
TRANSLATE
SCAN FOR PSEUDO SCAN CODES
;------
MIGHT
BE
NUM
LOCK.
TEST
SHIFT
STATUS
K50:
TEST
BL.LEFT
SHIFT+RIGHT
SHIFT
;ALMOST-NUM-STATE
JNZ
K49
-
-;
SHIFTED
TEMP OUT OF
NUM
STATE
K51:
JMP SHORT
K45E
;
REALLY_NUM_STATE
;------
KEYPAD
KEYS.
MUST
TEST
NUM
LOCK FOR
DETERMINATION
K48:
CMP
AL.
14
SPEC I
AL
CASE FOR MI NUS
JE
K45E
GO
TRANSLATE
CMP
AL.
18
SPEC I
AL
CASE FOR
PLUS
JE
K45E
GO
TRANSLATE
TEST
BH.
LC
EO
IS
TH
I S ONE OF
THE
NEW
KEYS?
JNZ
K49
-
YES.
TRANSLATE
TO
BASE
STATE
TEST
BL.NUM_STATE
ARE
WE
IN
NUM
LOCK?
JNZ
K50
•
TEST
FOR
SURE-
TEST
BL.LEFT
SHIFT+RIGHT
SHIFT
; ARE
WE
IN
SHIFT
STATE?
JNZ
K51
-
-;
IF
SH
I
FTED
•
REALLY
NUM
STATE
NOT I
N-CORE
AREA
TEST
FOR F I -
FlO
JUMP
IF
NOT
YES.
GO
DO
FN
KEY
PROCESS
NOT A NUMPAD
KEY
I
SIT
THE
NEW
WT
KEY?
JUMP
IF
NOT
HANDLE
WITH
REST
OF
LETTER
KEYS
TRANSLATE
-
SCAN-ORGD
CONVERT
OR
I
GIN
CTL
TABLE
SCAN
PUT
V
ALUE
INTO
AH
ZERO ASC I I CODE
I S TH I S A
NEW
KEY?
NO.
GO
FILL
BUFFER
YES.
PUT
SPEC I
AL
MARKER
IN
AL
TRANSLATE
-CHAR
CONVERT
OR
I
GIN
CONVERT
THE
SCAN CODE TO ASC I I
I S TH I S A
NEW
KEY?
NO.
GO
FILL
BUFFER
YES.
PUT
SPEC I
AL
MARKER
IN
AH
PUT
I T I NTO
THE
BUFFER
SPEC I
AL
CASE
FOR
BASE
STATE
5
CONT I NUE I F NOT
KEYPAD
5
SPEC I
AL
ASC I I CODE
BUFFER
FILL
BASE
CASE
TABLE
CONVERT TO PSEUDO SCAN
UPPER CASE PSEUDO SCAN CODES
TRANSLATE_
SCAN
NOT-PR
I
NT-SCREEN
TEST
FOR I
N-CORE
AREA
JUMP
IF
NOT
I S TH I S THE
"I"
KEY?
NO.
JUMP
WAS
LAST
CODE THE MARKER?
YES.
TRANSLATE
TO CHARACTER
LENGTH
OF SEARCH
POINT
TO
TABLE
OF
A-Z
CHARS
IS
TH I S 'A
LETTER
KEY?
NO.
SYMBOL KEY
; NOT
Fl
-
FlO
;
TEST
FOR NUMPAD
KEYS
; JUMP
IF
NOT
BX.
OFFSET
K 1 1
SHORT
K64
; F I -
FlO
COME
HERE.
TOO
BL.
LEFT
SH
I
FT+R
I GHT
SH
I
FT
;
TEST
SH
I
FT
STATE
K49
-
-;
JUMP.
LOWERCASE PSEUDO
SC'
S
AL
CS:K8
AH.AL
AL.O
(lKB
FLAG
3.
LC
EO
K51-
- -
AL.MC_EO
AL.86
K53
SHORT
K45B
AL
CS:K
11
(lKB
FLAG
3.
LC
EO
K51-
- -
AH.MC
EO
SHORT-K51
AL.83
K52
CX.26
DI.OFFSET
K30+10
SCASB
K45B
AL.53
K45A
BH.LC
EO
K45C
-
BL.CAPS
STATE
ARE
WE
IN
CAPS_LOCK?
K45D
- •
TEST
FOR SURE
BL.LEFT
SHIFT+RIGHT
SHIFT;
ARE
WE
IN
SHIFT
STATE?
K45E
-
-;
YES.
UPPERCASE
;
NO.
LOWERCASE
BX.
OFFSET
K I 0 ;
TRANSLATE
TO LOWERCASE
LETTERS
SHORT
K56
;
ALMOST-CAPS-STATE
BL.LEFT
SHIFT+RIGHT
SHIFT;
CL
ON.
IS
SHIFT
ON.
TOO?
K45C
-
-;
SHIFTED
TEMP OUT OF CAPS
STATE
BX
.OFFSET
K I I ;
TRANSLATE
TO
UPPERCASE
LETTERS
SHORT
K56
AL.58
K46
AL
• EO I ; END OF CURRENT
INTERRUPT
020H.AL
;
SO
FURTHER
THINGS
CAN
HAPPEN
5H
; I SSUE PR I
NT
SCREEN
INTERRUPT
(lKB
FLAG
3.
NOT
LC
EO+LC
E 1; ZERO OUT
THESE
FLAGS
K21-
- -
-;
GO
BACK
WITHOUT
EO I DCCURR I
NG
TEST
JZ
CMP
JNE
JMP
CMP
JA
MOV
JMP
CMP
AL.68
JA
K41
JMP SHORT
K53
DEC
XLAT
TEST
JZ
MOV
JMP
DEC
XLAT
MOV
MOV
TEST
JZ
MOV
; - - - - - -
PUT
CHARACTER I NTO
BUFFER
;------
MUST
BE
FII
OR
F12
CMP
JA
CMP
JNE
TEST
JNZ
K45A:
MOV
MOV
REPNE
JNE
TEST
JNZ
K45B:
TEST
JNZ
K45C:
MOV
JMP
K45D:
TEST
JNZ
K45E:
MOV
K45F:
JMP
;
------
BASE
CASE FOR
KEYPAD
K49:
CMP
AL.16
JNE
K49A
MOV
AL.OFOh
JMP
K51
K49A:
MOV
BX.
OFFSET
K
10
JMP
SHORT
K64
;
------
TEST
FOR
KEYS
F I -
FlO
K46:
;------
HANDLE
THE
NUMERIC
PAD
KEYS
K41:
K64:
K52:
K53:
;
------
TRANSLATE
THE CHARACTER
K56:
K44B:
MOV
OUT
INT
AND
JMP
;------
HANDLE
THE
IN-CORE
KEYS
K45:
168
0469
BO
20
169
046B
E6
20
110
0460
CD
05
111
046F
80
26
0096
R
FC
112
0414
E9
0204
R
113
114
115
116
0411
111
0411
3C
3A
118
0419
11
2C
119
180
041B
3C
35
181
0410
15
05
182
041F
F6
C1
02
183
0482
15
14
184
185
0484
B9
001
A
186
0481
BF
0311
R
181
048A
F21
AE
188
048C
15
05
189
190
048E
F6
C3
40
191
0491
15
OA
192
0493
F6
C3
03
193
0496
15
OA
194
195
0498
BB
05B1
R
196
049B
EB
50
191
0490
198
0490
F6
C3
03
199
04AO
15
F6
800
04A2
BB
060F
R
801
04A5
EB
46
802
803
804
805
04A1
806
04A
1
3C
44
801
04A9
11
02
808
04AB
EB
36
809
810
811
812
813
04AD
814
04AD
3C
53
8 I 5
04AF
11
2C
816
811
8 I 8
04B
I
3C
4A
819
04B3
14
ED
820
04B5
3C
4E
821
04B1
14
E9
822
04B9
F6
C1
02
823
04BC
15
OA
824
825
04BE
F6
C3
20
826
04C
I
15
13
821
04C3
F6
C3
03
828
04C6
15
13
829
830
831
04C8
3C
4C
832
04CA
15
05
833
04CC
BO
FO
834
04CE
EB
3D
90
835
040
I
BB
05B1
R
836
0404
EB
26
831
838
839
0406
F6
C3
03
840
0409
15
ED
841
04DB
EB
C5
842
843
844
845
846
0400
841
0400
3C
56
848
04DF
15
02
849
04E
1
EB
BO
850
851
852
853
854
04E3
F6
C3
03
855
04E6
14
EO
856
851
04E8
BB
060F
R
858
04EB
EB
OF
859
860
861
862
04ED
863
04ED
FE
C8
864
04EF
2E:
01
865
04F
I
F6
06
0096
R
02
866
04F6
14
15
861
04F8
B4
EO
868
04FA
EB
1 I
869
810
811
812
04FC
813
04FC
FE
C8
814
04FE
2E:
01
815
0500
8A
EO
816
0502
BO
00
811
0504
F6
06
0096
R
02
818
0509
14
02
819
050B
BO
EO
880
881
5-54
KEYBOARD
(01/10/86)

Table of Contents

Related product manuals