IBM 5170 Technical Reference page 277

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

03E7
~O
PUSH
AX
03E8
06
PUSH
ES
03E9
86 [0
XCHG
AH,AL
PUT THE WRITE STRING OPTION INTO AH
03EB
26: 8A 46 00
MOV
AL,ES:[BP]
GET
CHARACTER FROM INPUT STRING
03Ef
45
INC
BP
BUMP POINTER TO CHARACTER
;----- TEST FOR SPECIAL CHARACTER'S
. . _------ --------- -------------------------­
03ro
03F2
03F4
3C 08
74 DC
3C
00
CMP
J E
CMP
Al,8
DO_TTY
AL,OOH
I SIT A BACKSPACE
BACK SPACE
IS IT CARRIAGE RETURN
03F6
03f8
7!i 08
3C OA
JE
CMP
DO TTY
Al~OAH
CAR_RET
IS IT A LINE FEED
03fA
7li 04
JE
00_TTY
L I
~E
FEED
03fC
03FE
0400
3C
07
7~
13
CMP
JNE
DO_TTY:
Al,07H
GET_ATTRIBUT[
I
S IT A BELL
I F NOT THEN DO WR iTE CHARACT
ER
01100
64 OE
MOV
AH,14
WRITE TTY CHARACTER TO THE CRT
0402
CD 10
I NT
10H
0404
8A OF
MOV
BL,BH
GET CURRENT CURSOR POSITION
01,06
01108
DO E7
8B 97 0050 R
SAL
MaV
BH,l
,
INTO THE OX REGISTER
OX, [BX+OFFSET CURSOR_POSN
I
040C
07
POP
ES
0400
56
POP
AX
; RESTORE REGI SiERS
040E
5B
POP
BX
040F
59
POP
ex
0410
E6
32 90
JMP
ROWS_SET
0413
GET_ATTRIBUTE:
0413
0416
0419
041B
041 f
B9 0001
80 FC 02
72 05
26: 8A 5E 00
45
MOV
CMP
JB
MOV
INC
CX,1
AH,2
GOT_IT
BL,ES:[BPj
BP
SET CHARACTER WRITE AMOUNT TO ONE
IS THE ATTRIBUTE IN THE STRING
I F NOT THEN JUMP
ELSE GET IT
BUMP STR I NG PO I NT ER
0420
0420
B4 09
MDV
AH,09
WRITE CHARACTER TO THE CRT
0422
CD
10
INT
10H
0424
07
POP
ES
0425
58
POP
AX
RESTORE REGI STERS
0426
58
POP
BX
01127
59
POP
ex
01128
FE C2
I Ne
OL
I NCREMENT COLUMN COUNTER
0112A
3A 16 004A R
eMP
Dl,BYTE PTR CRT_COlS
If COlS ARE WI TH I N RANGE FOR
TH I S MODE THEN
042E
72
lIt
JA
COLUMNS SET
GOTO COlS SET
0430
FE C6
INC
DH
-
BUMP ROW COUNTER BY ONE
0432
0434
0437
2A 02
60 FE 19
72 OB
SUB
CMP
JB
Dl,DL
DH,25
ROWS_SET
SET COLUMN COUNTER TO ZERO
I
f ROWS ARE
<
25 THEN
GOTO ROWS SET
SAVE WRITE STRING PARAMETER REGS
0439
06
PUSH
ES
SAVE REG'S THAT GET CLOBBERED
043A
50
PUSH
AX
0438
043E
B8 OEQA
CD 10
MOV
I NT
AX,OEOAH
10H
DO SCROll ONE liNE
RESET ROW COUNTER TO 211
0440
FE CE
DEC
DH
0442
56
POP
AX
RESTORE REG'S
0443
07
POP
ES
0444
ROWS_SET:
0444
0444
50
COLUMNS_SET;
PUSH
AX
SAVE WRITE STRING OPTION
0 1 145
88 0200
MOV
AX,0200H
SET NEW CURSOR POSITION
0448
CD 10
I NT
10H
044A
58
POP
AX
0448
E2 98
LOOP
WR lTE_CHAR
DO IT ONCE MORE UNTil CX '" ZERO
04 1 10
5A
POP
OX
RESTORE OLD CURSOR COORD I NATES
044E
3C 01
eMP
AL,l
I F CURSOR WAS TO BE MOVED THEN
0450
74 09
JE
DONE
WE'RE DONE
0452
3C 03
eMP
AL,3
0454
74 05
JE
DONE
0456
88 0200
MOV
AX,0200H
ELSE RESTORE OLD CURSOR POS I T I ON
0459
CD 10
INT
10H
0458
DONE:
0458
E9 0144 R
JMP
VIDEO_RETURN
RETURN TO CALLER
WR I TE_STR I NG
ENDP
page
;
_
READ DOT
-- WRITE DOT
THESE ROUTINES WILL WRITE A DOT, OR READ THE
DOT AT THE INDICATED LOCATION
ENTRY -­
OX '" ROW (0-199)
(THE ACTUAL VALUE DEPENDS ON THE MODE)
CX
=
COLUMN ( 0-639) ( THE VALUES ARE NOT RANGE CHECKED )
Al'" DOT VALUE TO WRITE (1,2 OR II BITS DEPENDING ON MODE,
REQ'O FOR WRITE DOT ONLY, RIGHT JUSTIFIED)
BIT 7 Of AL
=
1 INDICATES XOR THE VALUE INTO THE LOCATION
OS '" DATA SEGMENT
ES
=
REGEN SEGMENT
EXIT
;
AL'" DOT VALUE READ, RIGHT JUSTIFI[D, READ ONLY
:
---------------
-------------
-- ---- -----------­
ASSUME
CS: CODE, OS: DA TA, ES; DATA
045E
READ_DOT
PROC
NEAR
045E
E8 0492 R
CALL
R3
DETERMINE BYTE POSITION OF DOT
0461
26: 8A 04
MOV
AL, ES: [S I
I
, GET THE BYTE
0464
22 C4
AND
AL,AH
MASK OFF THE OTHER BITS IN THE GYTE
0466
02 EO
Sill
AL,Cl
LEFT JUST I fV THE VALUE
0468
SA CE
MOV
CL,DH
GET NUMBER OF BITS IN RESULT
0l16A
02 CO
ROL
AL, CL
RIGHT JUSTIFY THE RESULT
046C
E9 0144 R
JMP
VIDEO RETURN
RETURN fROM V IDEO 10
046F
READ_DOT
ENDP ­
046F
WRITE DOT
PROC
NEAR
046f
50
-
PUSH
AX
SAVE DOT VALUE
0470
50
PUSH
AX
TWICE
0471
E8 01192 R
CALL
R3
DETERMINE BYTE POSITION OF THE DOT
0474
02 E8
SHR
Al, CL
SHI FT TO SET UP THE BITS FOR OUTPUT
0476
22 c4
AND
AL,AH
STRI P OFf THE OTHER BITS
0478
26: 8A OC
MOV
CL,ES:(St I
GET THE CURRENT BYTE
047B
5B
POP
BX
RECOV E R XOR FLAG
047C
f6 C3 80
TEST
BL,80H
IS IT ON
047F
75 00
JNZ
R2
YES, XOR THE DOT
0481
F6 D4
NOT
AH
SET THE MASK TO REMOVE THE tNDICATED BITS
0483
22 CC
AND
CL,AH
0485
OA Cl
OR
AL,CL
OR I N THE NEW VALUE OF THOSE BITS
0487
R1 :
FINISH DOT
0487
26: 88 04
MOV
ES:[SI],AL
RESTORE THE BYTE I N MEMORY
048A
58
POP
AX
0488
E9 0144 R
JMP
V IDEO_RETURN
RETURN FROM VIDEO 10
046E
R2:
XOR DOT
048E
32 Cl
XOR
Al,CL
EXCLUSIVE OR THE DOTS
Video 5-135

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents