IBM 5170 Technical Reference page 268

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

0044
BF 0000 E
MOV
OI,OFFSET A1
BASE OF TABLE
0047
03 FA
ADD
OI,OX
PUT I NTO I NDEX REG I STER
0049
8B 94 0000 R
MOV
OX, RS232_BASE[ S I 1
POINT TO HIGH ORDER OF DIVISOR
0040
42
INC
OX .
004E
2E: 8A 45 01
MOV
AL,CS:[Olj+l
GET HIGH ORDER OF DIVISOR
0052
EE
OUT
DX,AL
SET MS OF DIV TO 0
0053
4A
DEC
ox
0054
EB 00
JMP
SHORT $+2
10
DELAY
0056
2E: 8A 05
MOV
AL,CS:[DIJ
GET LOW ORDER OF DIVI SOR
0059
EE
OUT
DX,AL
SET LOW OF DIVISOR
005A
83 C2 03
ADD
DX,3
0050
8A C4
MOV
AL,AII
GET PARMS BACK
005F
24
1F
AND
AL,Ol FH
STR I P OFF THE BAUD BITS
0061
EE
OUT
DX,Al
LINE CONTROL TO 8 BITS
0062
4A
DEC
ox
0063
4A
DEC
ox
0064
EB 00
JMP
SHORT $+2
10 DELAY
0066
BO 00
MOV
AL,a
0068
EE
OuT
aX,AL
I NTERRUPT ENABLES ALL OFF
0069
EB 4B
JMP
SHORT AlB
COM_STATUS
;------ SEND CHARACTER IN (AL) OVER COMMO LINE
006B
AS:
006B
50
PUSH
AX
SAVE CHAR TO SEND
006C
83 C2 04
ADD
DX,4
MODEM CONTROL REGISTER
006F
BO 03
MOV
AL,3
OTR ANO RTS
0071
0072
EE
42
OUT
INC
OX,AL
ox
DATA TERMINAL READY, REQUEST TO SEND
MODEM STATUS REGISTER
0073
42
INC
ox
0074
B7 30
MOV
BH,30H
DATA SET READY
&
CLEAR TO SEND
0076
EB OOC5 R
GALL
WAI T_FOR_STATUS
ARE BOTH TRUE
0079
74 08
JE
A9
YES, READY TO TRANSM I T CHAR
007B
A7:
007B
59
POP
cx
007C
SA Cl
MOV
AL,Cl
RELOAD DATA BYTE
007E
A8:
007E
80 CC 80
OR
AH,80H
INDICATE TIME OUT
0081
EB A8
JMP
A3
RETURN
0083
A9:
CLEAR_
TO_SE~D
0083
4A
DEC
OX
LINE STATUS REGISTER
0084
A10:
WAIT SEND
0084
B7 20
MOV
BH,20H
IS TRANSM I TTER READY
0086
E8 00C5 R
CALL
WA
I T
_FOR_STATUS
TEST FOR TRANSMITTER READU
0089
75 Fa
JNl
A7
RETURN WITH TIME OUT SET
008B
All:
OUT CHAR
008B
83 EA 05
SUB
DX,S
DATA PORT
008E
59
POP
CX
RECOVER
IN CX TEMPORARILY
008F
8A C1
MOV
AL,CL
MOVE CHAR TO AL FOR OUT, STATUS IN
AH
0091
EE
OUT
DX,AL
OUTPUT CHARACTER
0092
EB 97
JMP
A3
RETURN
;------ RECEIVE CHARACTER FROM COMMO LINE
0094
Al2:
0094
83 C2 04
ADD
DX,4
MODEM CONTROL REG
r
STER
0097
BO 01
MOV
AL,l
DATA TERMINAL
READY
0099
009A
EE
42
OUT
INC
DX,AL
ox
MODEM STATUS REG I STER
009B
42
INC
ox
009C
A13:
WAIT_DSR
009C
B7 20
MOV
BH,20H
DATA SET READY
009E
E8 00C5 R
CALL
WAIT
-
FOR_STATUS
TEST FOR OSR
OOAl
75 DB
JNL
A8
RFTURN WITH ERROR
00A3
A15:
WAIT DSR END
00A3
4A
DEC
OX
LlNCSTATUS REGISTER
OOA4
A16:
WAIT
RECV
OOA4
B7 01
MOV
BH,l
RECEIVE BUfFER FULL
00A6
E8 OOC5 R
CALL
WAIT_ FOR_STATUS
TEST fOR REC. BUfF,
FULL
OOA9
75 03
JNZ
A8
SET T I ME OUT ERROR
OOAB
DOAB
OOAE
0082
80 Eli 1£
8B 94 0000 R
EC
Al7:
AND
MOV
IN
AH,00011'10B
DX,RS232_BASE[ SI
J
AL,DX
~~hG~~~
ERROR CONDITIONS ON RECV CHAR
DATA PORT
GET CHARACTER FROM LINE
00B3
E9 0028 R
JMP
A3
RETURN
;-~----
COMMO PORT STATUS ROUTINE
00B6
A18:
00B6
88
94 0000 R
MOV
OX,RS232 BASE[SI]
OOBA
83 C2 05
ADD
OX,5
-
CONTROL PORT
OOBO
EC
IN
AL, OX
GET LINE CONTROL STATUS
OOBE
8A EO
MOV
AH,AL
PUT IN AH FOR RETURN
OOCO
42
INC
Ox
POINT TO MODEM STATUS REGISTER
OOCl
EC
IN
AL,DX
GET MODEM CONTROL STATUS
OOC2
E9 002B R
JMP
A3
RETURN
;
-------
---
---- ------ ----------------
----­
; ENTRY:
~~!~Tf~~sS~Nn)R~gT~g6K
FOR,
; EX IT:
g~~~D~~AGO~N S~A~~~T~~G
FOUND
ZERO FLAG OFF'" TIMEOUT,
AH=LAST STATUS READ
00C5
~~ 7~: ;;~R:STAT~S-;R;;;;--
--
N~A~--
------------ ­
OOC5
8A 90 007C R
MOV
BL,RS232_TlM_OUT[DIJ
; LOAD OUTER LOOP COUNT
;------ADJUST DUTTER LOOP COUNT
00C9
55
PUSH
BP
SAVE
BP -----­
OOCA
53
PUSH
BX
SAVE BX -----­
OOCB
50
POP
BP
USE
BP
FOR OUTTER LOOP COUNT
OOCC
81 E5 DOFF
AND
BP,OOFFH
STRIP HIGH BITS
0000
01 05
ReL
BP,l
MUll DUTTER BY
4
0002
01 05
ReL
BP,l
0004
2B C9
WFSO:
SUB
ex,cx
00D6
EC
WFS1:
IN
AL,DX
;GET
STATUS
0007
8A EO
MOV
AH,AL
; MOVE TO AH
0009
22
C7
AND
AL,BH
; ISOLATE BITS TO TEST
OOOB
3A C7
CMP
AL,BH
; EXACTLY
=
TO MASK
0000
74 07
JE
WFS_END
; RETURN WITH ZERO FLAG ON
OOOF
E2 F5
LOOP
WFSl
;TRY AGAIN
00(1
40
DEC
BP
;
---- ­
00E2
75 FO
JNZ
WFSO
00E4
OA
rF
OR
BH, BH
; SET ZERO FLAG OFF
00E6
WFS_ENO:
00E6
50
POP
RESTORE BP ---- ­
Don
C3
RET
00E8
WAIT FOR STATUS ENOP
00E8
RS232~IO=1
ENOP
00E8
CODE
ENDS
5-126 RS232

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents