IBM 5170 Technical Reference page 267

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

TITLE DATE 07/06/83 RS232
• LIST
J
NCLUDE SEGMENT. SRC
0000
CODE SEGMENT BYTE PUBL I C
EXTRN
DOS: NEAR
EXTRN
A 1: NEAR
PUBLI C
RS232_10_'
; ----­ I
NT 14--------­ ----------------------------------­
;RS232_10
;
;
THIS ROUTINE PROVIDES BYTE STREAM I/O TO THE COMMUNICATIONS
POtU ACCORDI NG TO THE PARAMETERS:
;
(AH}=:O
INITIALIZE THE COMMUNICATIONS PORT
;
(ALl HAS PARMS FOR INITIALIZATION
7
6
5
4
3
2
1
0
----­ BAUD RATE -­
-PARITY-­
STOPBIT
--WORD LENGTH-­
000 -
110
XO - NONE
o -
1
10 - 7 BITS
001 -
150
ala -
300
01 - ODD
11 -
EVEN
1 - 2
1'-8BITS
011 - 600
100 -
1200
101 -
2400
110 -
4800
11
1 -
9600
ON RETURN, CONDITIONS SET AS IN CALL TO COMMO STATUS (AH=3)
(AH)=:l
SEND THE CHARACTER IN (AL) OVER THE COMMO LINE
(AL) REGISTER IS PRESERVED
ON EXIT, BIT 7 OF AH IS SET IF THE ROUTINE WAS UNABLE TO
TO TRANSMIT THE BYTE OF DATA OVER THE LINE.
I F BIT 7 OF AH IS NOT SET, THE
REMAINDER OF AH IS SET AS IN A STATUS REQUEST,
REFELECTING THE CURRENT STATUS OF THE LINE.
(AH)=2
RECEIVE A CHARACTER IN (AL) FROM COMMO LINE BEFORE
RETURN I NG TO CALLER
ON EXIT, AH HAS THE CURRENT LINE STATUS, AS SET BY THE
THE STATUS ROUTINE,
EXCEPT THAT THE ONLY BITS
LEFT ON ARE THE ERROR BITS 17,4,3,2,1)
IF AH HAS BIT 7 ON (TIME OUT) THE REMAINING
BITS ARE NOT PREDICTABLE.
THUS, AH I S NON ZERO ONLY WHEN AN ERROR OCCURRED.
(AH}=3
RETURN THE COMMO PORT STATUS IN lAX)
AH CONTAINS THE LINE CONTROL STATUS
BIT 7 = TIME OUT
BIT 6 == TRANS SHIFT REGISTER EMPTY
BIT
5
=: TRAN HOLD I NG REG I STER EMPTY
BIT 4 == BREAK DETECT
BIT 3 '" FRAMING ERROR
BIT 2 =: PARITY ERROR
BIT 1 '" OVERRUN ERROR
BIT
0
=:
DATA READY
AL CONTAINS THE MODEM STATUS
BIT 7 = RECEVEO
II
NE SIGNAL DETECT
BIT
6 ::
RING INDICATOR
BIT
5 ::
DATA SET READY
BIT 4
CLEAR TO SEND
BIT
3 ""
DELTA RECEIVE LINE SIGNAL DETECT
BIT
2
== TRA III NG EDGE RING DETECTOR
BIT 1 = DELTA DATA SET READY
61T
0
=:
DELTA CLEAR TO SEND
(OX)
==
PARAMETER INDICATING WHICH RS232 CARD 10,1 ALLOWED)
DATA AREA RS232_BASE CONTAINS THE BASE ADDRESS OF THE 8250 ON THE CARD
LOCATION 400H CONTAINS UP TO
4
RS232 ADDRESSES POSSIBLE
DATA AREA LABLE RS232_TIM_OUT (BYTE) CONTAINS OUTER LOOP COUNT
; OUTPUT VALUE FOR TIMEOUT (DEFAULT=1 )
AX
MODI FlED ACCORDING TO PARMS OF CALL
ALL OTHERS UNCHANGED
;
-­ -----­ -- ­ -- ­ -------­ -------------- ­
- -- -­
--- ­ -- ­ - ­
ASSUME
CS: CODE, OS: DATA
0000
PROC
FAR
;------ VECTOR TO APPROPRIATE ROUTINE
0000
F.
ST 1
INTERRUPTS BACK ON
0001
1E
PUSH
OS
SAVE SEGMENT
0002
52
PUSH
OX
0003
56
PUSH
S I
0004
57
PUSH
0
I
0005
51
PUSH
CX
0006
53
PUSH
BX
0007
88 F2
MOV
SI,OX
RS232 VALUE TO SI
0009
OOOB
8B FA
01 E6
MOV
SHL
OI,DX
SI, 1
AND TO 01
(FOR TlMEOUTS)
WORD OFFSET
0000
E8 0000 E
CALL
DDS
DOlO
0014
8B 94 0000 R
OB 02
MOV
OR
ox,
RS232_6ASEI S
J
I
OX, OX
GET BASE ADDRESS
TEST FOR 0 BASE ADDRESS
0016
74 13
JZ
A3
RETURN
0018
001A
OA E4
74 16
OR
JZ
AH, AH
A4
TEST FOR (AHl=O
COMMUN INIT
OOlC
FE CC
DEC
AH
TEST FOR (AH):'
001E
74 4B
JZ
A5
SEND AL
0020
FE CC
DEC
AH
TEST FOR (AH)=:2
0022
74 70
JZ
A12
RECEIVE INTO AL
0024
A2:
0024
FE CC
DEC
AH
TEST FOR (AH)=3
0026
75 03
JNZ
A3
0028
E9 0086 R
JMP
A1,
COMMUNICATION STATUS
002B
002B
002C
5'
59
A3:
POP
POP
.x
ex
RETURN FROM RS232
0020
5F
POP
01
002E
5E
POP
SI
002F
5A
POP
ox
~
0030
1F
POP
os
0031
CF
I
RET
;
RETURN TO CALLER, NO ACTION
INITIALIZE THE COMMUNICATIONS PORT
0032
A4:
0032
8A
EO
MOV
AH,AL
SAVE I N IT PARM.S
J
N AH
0034
83 C2 03
ADO
DX,3
PO I NT TO 8250 CONTROL REG I STER
0037
BO 80
MOV
AL,80H
0039
EE
OUT
DX,AL
SET DLAB=:1
;------ DETERMINE BAUD RATE DIVISOR
003A
8A 04
MOV
DL,AH
GET PARMS TO OL
003C
Bl 01
HDV
CL,4
003E
02 C2
ROL
DL,CL
0040
81
E2 OOOE
AND
OX,OEH
ISOLATE THEM
RS232 5-125

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents