IBM XT 5160 Technical Reference page 194

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

PUSH
SI
CLI
MOV
BX, [OBUFFER_TAIL); GET THE "IN TO" POINTER TO THE BUFFER
MOV
S I ,BX
;
SAVE A COPY I N CASE BUFFER NOT FULL
CALL
K4
; BUMP THE PO I NTER TO SEE I F BUFFER I S FULL
CMP
BX, [OBUFFER HEAD); WILL THE BUFFER OVERRUN I F WE STORE TH IS?
.JE
K502
- ,
YES -
I NFORM CALLER OF ERROR
MOV
[S I ) ,CX
;
NO
- PUT THE ASC I I
I
SCAN CODE I NTO BUFFER
MOV
[OBUFFER TAIL) ,BX; AD.JUST "IN TO" POINTER TO REFLECT CHANGE
SUB
AL,AL
-
; TELL CALLER THAT OPERATION WAS SUCCESSFUL
.JMP
K504
;
SUB I NSTRUCT I ON ALSO RESETS CARRY FLAG
; ------ ASC I I
STATUS
5-47
1-2
01-10-86
BUFFER FULL I NO I CAT I ON
RETURN TO CALLER WITH STATUS IN AL
GET THE EXTENDED SHIFT STATUS FLAGS
GET SYSTEM SHIFT KEY STATUS
MASK ALL BUT SYS KEY BIT
SH I FT THE SYSTEM KEY BIT OVER TO
BIT 7 POSITION
GET SHIFT STATES BACK
~~~~~N~~~ ~~~A~~:~6'
B
7~;DT~i~T;H
AND I NS_SH I FT
GET RIGHT CTL AND AL T
ELIMINATE LC EO AND LC EI
OR THE SH I FT-FLAGS TOGETHER
GET THE SHIFT STATUS FLAGS
RETURN TO CALLER
TEST FOR CHARACTER I N BUFFER
(EXTENDED)
RETURN I F BUFFER EMPTV
SAVE ZF FROM TEST
ROUT I NE TO XLATE FOR EXTENDED CALLS
GIVE I T TO THE CALLER
TEST FOR CHARACTER
I N BUFFER
RETURN I F BUFFER EMPTY
SAVE ZF FROM TEST
ROUTINE TO XLATE FOR STANDARD CALLS
CARRY CLEAR MEANS PASS VAL I 0 CODE
I NVAL I 0 CODE FOR TH I S TYPE OF CALL
THROW THE CHARACTER AWAY
GO LOOK FOR NEXT CHAR,
I F ANY
RESTORE ZF FROM TEST
RECOVER REG I STER
RECOVER SEGMENT
THROW AWAY FLAGS
KEYBOARD (01/10/86)
AL,OIH
AH ,OKB FLAG I
AH,SYS-SHIFT
CL,5
-
AH,CL
AL ,OKB FLAG I
AL,OllToOIIB
AH,AL
AL ,OKB FLAG 3
AL,OOOOIIOOB
AH,AL
AL,OKB FLAG
KIO_EXTT
MOV
MOV
AND
MOV
SHL
MOV
AND
OR
MOV
AND
OR
MOV
.JMP
CALL
K2S
.JZ
K2B
PUSHF
CALL
K lOS XLA T
.JNC
K2A- -
POPF
CALL
K I S
.JMP
K2
POPF
POP
CX
POP
BX
POP
OS
RET
2
CALL
K2S
.JZ
K2B
PUSHF
CALL
K 10 E XL AT
.JMP
SHORT-K2A
K502:
K504:
; ------ WR I TE TO KEYBOARD BUFFER
K500:
K3:
; ------ SH I FT STATUS
K3E:
K2A:
K2B:
K2:
K2E:
115
116
I 17
003B E8 00C4 R
118
003E74 18
119
0040 9C
120
0041 E8 0001 R
121
0044 EB II
122
123
0046 E8 00C4 R
124
0049 74 00
125
004B 9C
126
004C E8 OODC R
127
004F 73 06
128
0051
90
129
0052 E8 009E R
130
0055 EB EF
131
132
0057 90
133
0058 59
134
0059 5B
135
005A IF
136
005B CA 0002
137
138
139
140
005E
141
005E 8A 26 0018 R
142
0062 80 E4 04
143
0065 BI
05
144
0067 02 E4
145
0069 AO 00 I 8 R
146
006C 24 73
147
006E OA EO
148
0070 AO 0096 R
149
0073 24 OC
150
0075 OA EO
151
0077 AO 0017 R
152
007A EB A9
153
154
155
156
007C
157
007C 56
158
0070 FA
159
007E 8B IE OOIC R
160
0082 8B F3
161
0084 E8 0 I 14 R
162
0087 3B IE OOIA R
163
008B 74 OB
164
0080 89 OC
165
008F 89 IE OOIC R
166
0093 2A CO
167
0095 EB 03 90
168
0098
169
0098 BO 0 I
170
009A
171
009A FB
172
009B 5E
173
009C EB 87
174
175
009E
IBM Personal Computer MACRO Assembler
Version 2.00
KEYBRD - - -
0 I 110/86
KEYBOARD ADAPTER B I OS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents