IBM 5170 Technical Reference page 206

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

08AA
7C E3
JL
GO CHECK ANOTHER ADD.
I F NOT
ENOl
F
; -------- TEST FOR KEYBOARD LOCKED
08AC
E8 0000 E
CALL
ODS
SET DATA SEGMENT
OBAF
E4 64
IN
AL, STATUS_PORT
I S KEYBOARD UN LOCKED?
08Bl
24 10
AND
AL, KYBD_I NH
08B3
74 03
JZ
KEYl
08B5
EB DC 90
JMP
KEY10
GO IF
OFF
08B8
KEYl :
08B8
80 DE 0016 R 80
OR
MFG_ERR_FLAG+l, KEY_FA I L ; <><><><><><><><><><><><><><><>
; <><> KEYBOARD 15 LOCKED <><><>
ELSE
08BO
KEY9:
ASSUME
OS: DATA
08BO
BE 0000 E
MDV
51 ,OFFSET LOCK
PRINT LOCKED MESSAGE
(302)
06CO
E8 0000 E
CALL
E_M5G
ENOl F
08C3
KEY10:
;
----~~-: =~~~~;=;~7NT~~:;;~~=
' " ' " = = ======== ========
08C3
BF 0000 E
MDV
OI,OFFSET F4
PRT _SRC_TBL
08C6
08C9
BE 0000
F16:
MDV
51,0
PRT BASE:
08C9
08CC
2E: 8B 15
BD AA
MDV
MDV
OX,CS:1DIJ
AL,OAAH
GET-PR I NTER BASE AOOR
WRITE DATA TO PORT A
08CE
EE
OUT
DX,Al
08CF
EB 00
JMP
SHORT $+2
10 DELAY
0801
1E
PUSH
DS
BUS SETTL! NG
0802
0803
EC
1F
IN
POP
AL,OX
DS
READ PORT A
0804
3C AA
CMP
AL,OAAH
DATA PATTERN SAME
0806
75 06
JNE
F17
NO - CHECK NEXT PRT CD
0808
080C
89 94 0006 R
46
MOV
INC
PR I NTER BASE! S 11, OX
51
-
YES - 5TORE PRT BASE AODR
I NCREMENT TO NEXT WORD
0800
46
INC
51
080E
F17:
080E
47
INC
01
PO I NT TO NEXT BASE ADDR
080F
47
INC
01
06EO
08E4
81
FF 0000 E
75 E3
CMP
JNE
Ol,OFfSET F4E
Fl6
ALL
pass
I
BlE AODRS CHECKED?
PRT_BASE
;
-~-----; ~~T~;=~~;~;==
08£6
BB 0000
~;~=====~~:~==
PO I NTER TO RS232 TABLE
08E9
BA 03FA
MOV
OX,3FAH
CHECK IF RS232 CD 1 ATTCH?
06EC
EC
IN
AL,OX
READ I NTR i!J REG
06ED
A8 F8
06H
75
08
TEST
JNZ
AL,OF8H
F18
06f1
08F7
C7 87 0000 R 03F8
43
MOV
INC
RS232_BASE( BX), 3F8H
BX
SETUP RS232 CD
#1
AD DR
08F8
43
INC
BX
08F9
SA 02FA
F18:
MOV
OX,2FAH
CHECK IF RS232 CD 2 ATTCH
08FC
08FD
EC
AS
F8
IN
TEST
AL,OX
AL,OF8H
READ I NTERRUPT I DREG
08FF
75 08
J NZ
F19
0901
0907
C7 8-{ 0000 R 02F8
43
MQV
INC
RS232_BA5E1BX],2F8H
BX
SETUP RS232 CD
H2
0908
0909
43
INC
BX
;-----
~~~:~~:~~~!~:~~~:~~:I~~~~~~~:~~~!!~:~~:~~~~~~~~:;~~:;~~~~:~~~~!
F19:
BASE END:
0909
8B C6
MOV
AX,SI
SI HAS 2" NUMBER OF RS232
090B
Bl 03
MOV
CL,3
,
SH I FT COUNT
0900
02 C8
ROR
AL,CL
; ROTATE RIGHT 3 POSITIONS
090F
OA C3
OR
AL, BL
; OR I N THE PR I NTER COUNT
0911
A2 0011 R
MOV
BYTE PTR EQU I P _FLAG+l,AL
; STORE AS SECOND BYTE
;====="' - =========:=========== ===== =
0914
K OK:
;=-------
CLEAR KEYBOARD STATE FLAGS
0914
2B CO
SUB
AX,AX
RESET ALL KEYBOARD STATE FLAGS
0916
A3 0017 R
MOV
WORD PTR KB_FLAG,AX
; -------- ENABLE KEYBOARD INTERRUPTS
0919
E4 21
IN
AL,lNTAOl
091B
24 FO
AND
AL,OFDH
ENABLE TIMER AND KB INTS
0910
EB 00
JMP
SHORT $+2
10 DELAY
091F
E6 21
OUT
INTA01,AL
0921
C6 06 0015 R 00
MOV
BYTE PTR MFG_ERR_FLAG,O
CLEAR
NFG
ERROR FLAG
0926
83 FO 00
CMP
BP, OOOOH
CHECK FOR BP= NON-ZERO
(ERROR HAPPENED)
0929
74 30
JE
F15A_D
CONTINUE IF NO ERROR
092B
80 3E 0072 R 64
CMP
BYTE PTR RESET_FLAG,64H
MFG RUN
I N MODE?
0930
75 08
J
NZ
ERR_WA I T
GO I F NOT
;
--~--~--
MFG RUN IN MODE -> SET ERROR FLAG
0932
C6 06 0015 R M
MOV
BYTE PTR MFG_ERR_FLAG,OAAH
;
INDICATE ERROR
0937
EB 2F 90
JMP
F15A_O
; COtH I NUE
093A
ERR WAIT:
093A
BA 0002
-
MOV
OX,2
2 SHORT SEEPS (ERROR)
0930
E8 0000 E
CALL
ERR_BEEP
0940
E4 64
IN
AL, STATUS_PORT
CHECK I F RESUME MSG TO BE 0 I SPLAYED
09't2
24 10
AND
AL, KYBO_, NH
0944
BE 0000 E
MOV
S I, OFFSET F30
RESUME ERROR MSG
0947
75 09
JNZ
ERR~WA
I T2
0949
BE 0000 E
MOV
S I, OFFSET F301
ERROR MSG FOR KEYBOARD LOCKED
094C
E8 0000 E
CALL
P MSG
094F
BE 0000 E
MOV
51,OFFSET F30
RESUME MSG
0952
ERR_WA I
T~~LL
0952
E8 0000 E
P_MSG
;-------- INIT PRINTER
(ALT DISPLAY DEVICE)
0955
B4 01
MDV
AH,l
0957
2B 02
SUB
DX,OX
;
FIRST PRINTER
0959
CO 17
INT
17H
095B
ERR_WAIT1:
095B
BO 3F
MOV
AL,3FH
; <><><><><><><><><><><><><><><>
0950
E6 80
OUT
MFG_PORT, AL
; <><><>CHECKPOI NT 3 F <><><><><>
5-64
Test 2

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents