IBM 5170 Technical Reference page 262

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

0371
K56:
TRANSLATE-CHAR
0371
FE C8
DEC
AL
CONVERT OR 1GIN
0373
2E: 07
XLAT
CS:Kl1
CONVERT THE SCAN COOE TO ASC I
I
;------ PUT CHARACTER INTO BUFFER
0375
K57:
BUFFER-FILL
0375
3C
ff
CMP
AL.-l
IS TH I S AN I GNORE CHAR
0377
74 1f
JE
K59
YES. DO NOTHING WITH IT
0379
80 FC
fF
CMP
AH.-l
LOOK FOR -1
PSEUDO SCAN
037C
74 lA
JE
K59
NEAR_I NTERRU PT_RETURN
; ------ HANDLE THE CAPS LOCK PROBLEM
037E
K58:
BUFFER-F I LL-NOTEST
037E
F6 06 0017 R
lIo
TEST
KB_FLAG. CAPS_STATE
ARE WE
J
N CAPS LOCK STATE
0383
74 20
JZ
K61
SKIP IF NOT
;------ IN CAPS LOCK STATE
0385
F6 06 0017
R
03
TEST
KB_FLAG,LEFT_SHIFT+RIGHT_SHIFT
,
TEST FOR SHIFT STATE
038A
74 OF
JZ
K60
;
I F NOT SHIFT. CONVERT LOWER TO UPPER
; ------ CONVERT ANY UPPER CASE TO LOWER CASE
038C
3C 41
CMP
AL. lA'
F I NO OUT I F ALPHABET I C
038E
72 15
JB
K61
NOCCAPS_STATE
0390
3C 5A
CMP
AL,
'z'
0392
77 11
JA
K61
NOT CAPS STATE
0394
04 20
ADO
AL.
'8' _'A'
COlivERT TO LOWER CASE
0396
EB 00
JMP
SHORT K61
NOT_CAPS_STATE
0398
K59:
NEAR- I NTERRU PT-RETURN
Ol98
E9 01E2
R
JMP
K26
INTERRUPT_RETURN
; ------ CONVERT ANY LOWER CASE TO UPPER CASE
Ol9B
K6D:
LOWER-TO-UPPER
039B
lC 61
CMP
AL,
'a'
F I NO OUT
!
F ALPHABET I C
0390
72
06
JB
K61
NOT_CAPS_STATE
039F
3C 7A
CM'
AL
IZ'
03Al
77
02
JA
K6;
NOT _CAPS_STATE
OlA3
2C 20
SUB
AL, 'a'-'A'
CONVERT TO UPPER CASE
03A5
K61 :
NOT-CAPS~STATE
03A5
88 lE OOlC
R
MOV
aX,BUfFER TAIL
GET THE END PO I NTER TO THE BUFFER
03A9
86 F3
MOV
SI,BX
-
SAVE THE VALUE
03AB
E8 007
F R
CALL
K4
ADVANCE
TH~
TAIL
03AE
3B 1 E 001A R
CMP
ax,
BUHER_HEAD
HAS THE BUFFER WRAPPED AROUND
0382
74 22
JE
K62
BUFFER~FUlL~BEEP
OJ84
89 04
MOV
[51 I.AX
STORE THE VALUE
0386
89 lE OOlC R
MOV
BUFFER_TAIL,ax
MOVE THE POINTER UP
OlBA
FA
eLi
TURN OFF
Ii'~TERRUPTS
03BB
BO 20
MOV
AL, EOI
ENO OF
J
NTERRUPT COMMAND
03Bo
E6 20
OUT
D20H,AL
SEND COMMAND TO I NTERRUPT CONTROL PORT
03BF
60 AE
MOV
Al, ENA_KBD
INSURE KEYBOARO 15 ENABLEO
03Cl
E8 0498
R
CALL
SHIP IT
EXECUTE ENABLE
03C4
88 9102
MOV
AX,09102H
MOVE
IN
POST CODE 8>. TYPE
03C7
CD 15
INT
15H
PERFORM OTHER FUNCTION
03C9
E9 01 EC
R
JMP
K27A
I HTERRU PT_RETURN
;------ TRANSLATE SCAN FOR PSEUDO SCAN CODES
03CC
K63:
TRANSLATE-SCAN
03CC
2C 3B
SUB
AL,59
CONVERT OR
J
GIN TO FUNCT I ON KEYS
03CE
K64:
TRANSLATE - SCAN-aRGO
03CE
2E: 07
XLAT
CS: K9
CTL TABLE SCAN
0300
8A EO
MOV
AH, AL
PUT VALUE
J
NTO AH
0302
BO 00
MOV
AL,D
ZERO ASC I I CODE
0304
EB 9F
JMP
K57
PUT I T I NTO THE BUFFER
0306
[NOP
0306
BO 20
K62:
MOV
AL,EOI
ENABLE INTR. eTL. CHI P
0308
E6 20
OUT
INTAOO,Al
030A
BB 0082
MOV
aX,82H
NUMBER OF CYCLES FOR 1/8 SECOND TONE
0300
E4 61
IN
AL. KB CTL
GET CONTROL INFORMATION
030F
50
PUSH
SAVE
N<
­
03EO
1(65 :
BEEP-CYCLE
03EO
24 FC
AND
Al,orCH
TURN orr T I MER GATE AND SPEAKER DATA
03E2
EB 00
JMP
SHORT $+2
10 DELAY
03E4
E6 61
OUT
KB_CTL,AL
OUTPUT TO CONTROL
03E6
69 OOCE
MOV
CX,OCEH
HALF CYCLE T I ME FOR TONE
OJE9
E2 FE
K66:
LOOP
K66
SPEAKER OFF
OJEB
OC 02
OR
AL,2
TURN ON SPEAKER 6 I T
03Eo
E6 61
OUT
KB_CTL.AL
OUTPUT TO CONTROL
03EF
B9 00E5
MOV
CX,OE5H
SET UP COUNT
03F2
E2 FE
K67:
LOOP
K67
ANOTHER HALF CYCLE
03F4
4B
DEC
BX
TOTAL T I ME COUNT
03 F5
75 E9
JNZ
K65
DO ANOTHER CYCLE
03F7
58
POP
N<
RECOVER CONTROL
03F8
E6 61
OUT
KB_CTL, AL
OUTPUT THE CONTROL
03FA
E9 01 E7 R
JMP
K27
EXIT
;
---------
--------------------------
-----
---
-
-
--------
--------- --
-
-
---
-- - -----­
THIS ROUTINES HANDLES TRANSMISSION OF COMMAND AND DATA BYTES
TO THE KEYBOARD AND REGEl PT OF ACKNOWLEDGEMENTS.
IT ALSO
HANDLES ANY RETR
J
ES IF REQU I REO
;
-------------
--
--- -
- -
----
-
-
---
---
--
--
---
--
--
--
----
-- -
-------------------------
OlFD
SND_DATA PROC
NEAR
03FO
50
PUSH
N<
~AVE
REG 1 STERS
03FE
53
PUSH
BX
03FF
51
PUSH
CX
0400
8A F8
MOV
SH.AL
SAVE TRANSM I TlEO BY FOR RETR I ES
0402
B3 03
MOV
BL,3
; LOAD RETRY COUNT
0404
fA
500:
eLI
; DISABLE INTERRUPTS
0405
80 26 0097 R CF
AND
KB_fLAG_2, NOT (KB_fE+KB_fA) ; CLEAR ACK AND RESEND fLAGS
;------- WAIT fOR COMMAND TO ACCEPTED
040A
2B C9
SUB
cX,ex
040e
S05:
040e
E4 64
IN
AL, STATUS_PORT
;
o40E
AB 02
TEST
AL, I NPT BUF FULL
0410
EO FA
LOOPNZ
505
-
-
WA I T FOR COMMAND TO BE ACCEPTED
0412
SA C7
MOV
AL,BH
REESTABLISH BYTE TO TRANSMIT
0414
E6 60
OUT
PORT_A,Al
SEND BYTE
0416
fB
511
ENABLE INTERRUPTS
0417
89 lAOO
MOV
CX,OlAOOH
LOAD COUNT FOR 10mS+
5-120 Keyboard

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents