IBM 5170 Technical Reference page 305

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

AT THIS POINT WE KNOW THE COLUMNS/LINE ARE IN
[AX1 AND THE PAGE IF APPLICABLE IS IN IBH). THE STACK
HAS DS,AX,BX,CX,DX PUSHED.
IAL] HAS VIDEO MODE
....***************************************************..****
0286
8A CC
MOV
CL,AIl
WI LL MAKE USE OF ICX] REGISTER TO
0280
65 19
MOV
CH,25
CONTROL ROW &: COLUMNS
028 F
E8 02£7
R
CALL
CRLf
CARRIAGE RETURN LINE FEED ROUTJNE
0292
51
PUSH
CX
SAVE SCREEN BOUNDS
0293
64 03
MOV
AH,3
WI LL NOW READ THE CURSOR.
0295
CD
10
INT
lOH
AND PRESERVE THE POSITION
0297
59
POP
CX
RECALL SCREEN BOUNDS
0298
52
PUSH
OX
RECALL [BH]-'=VISUAL PAGE
0299
33
02
XOR
OX, OX
; WI LL SET CURSOR POSITION TO 10,Oj
***..*********************** ..***..***-H-*......**..***********..**..*****
THE LOOP FROM PRI10 TO THE INSTRUCTION PRIOR TO PRIZO
IS THE LOOP TO READ EACH CURSOR POSITION FROM THE SCREEN
AND PRINT.
******************..********************************************
02913
B4 02
PRllO:
MOV
AH,2
TO INDICATE CURSOR SET REQUEST
0290
CD
10
INT
10H
NEW CURSOR POSITION ESTABLISHED
029F
84 08
MOV
AH.8
TO INDICATE READ CHARACTER
02A1
CD
10
INT
10H
CHARACTER NOW IN [ALl
a2A3
OA CO
OR
AL,AL
SEE I F VALlO CHAR
02A5
75 02
JNZ
PRI15
JUMP IF VALID CHAR
02A7
60 20
MOV
AL, '
MAKE A BLANK
02A9
PR115:
02A9
52
PUSH
OX
SAVE CURSOR POSITION
02AA
33 02
XOR
DX, OX
INDICATE PRINTER 1
02AC
02AE
32 E4
CD 17
XOR
INT
AH,AH
17H
TO INDICATE PRINT CHAR IN (ALl
PR
I
NT THE CHARACTER
0260
5A
POP
OX
RECALL CURSOR POS IT I ON
0261
F6
C4
29
TEST
AH, 29H
TEST FOR PR I NTER ERROR
02B4
75 21
JNZ
ERR10
JUMP I F ERROR DETECTED
02B6
FE C2
INC
Ol
ADVANCE TO NEXT COLUMN
02B8
02SA
02SC
3A CA
75 OF
32 02
CMP
JNZ
XOR
Cl,DL
PR 11
°
Dl,DL
SEE If AT END OF LINE
I F NoT PROCEED
BACK TO COLUMN
0
02SE
02CO
8A E2
52
MOV
PUSH
AH,DL
OX
[AHJ=O
SAVE NEW CURSOR POSITION
02C1
02CIJ
[8 02E7 'R
5A
CALL
POP
CRLF
OX
LI NE FEED CARR IAGE RETURN
RECALL CURSOR POS I T I ON
02G5
FE C6
INC
OH
ADVANCE TO NEXT LIN[
02C7
3A EE
CMP
CH.DH
FINISHED?
02C9
75 DO
JNZ
PRI10
I F NOT CONT I NUE
02GS
5A
PR 120:
POP
OX
RECALL CURSOR POS I T I ON
02GC
02eE
64 02
CD
10
MOV
I NT
AH,2
10H
TO INDICATE CURSOR SET REQUEST
CURSOR POS I T I ON RESTORED
0200
c6
06 0000
R
00
MOV
STATUS 6YTE,O
INDICATE FINISHED
0205
E6 OA
JMP
SHORT EXIT
EXIT THE ROUTINE
0207
5A
ERR10:
POP
OX
GET CURSOR POSITION
0208
02DA
[34 02
CO 10
MOV
I NT
AH,2
10H
;
TO REQUEST CURSOR SET
CURSOR POS I T I ON RESTORED
020e
C6 06 0000 R FF
ERR20:
MOV
STATUS_BYTE, a F FH
;
INDICATE ERROR
02E1
5A
EXIT:
POP
OX
RESTORE ALL THE REG I STERS USED
02E2
59
POP
CX
02E3
56
POP
BX
02E4
58
POP
AX
02E5
1F
POP
OS
02E6
CF
IRET
02E7
PRINT_SCREEN_1
ENOP
;------ CARRIAGE RETURN,
LINE FEED SUBROUTINE
02£7
CRLF
PROC
NEAR
02E7
33 02
XOR
DX, OX
PR INTER 0
02E9
32 E4
XOR
AH,AH
WILL NOW SEND INITIAL LF,CR TO PRINTER
02EB
SO OA
MOV
IIL,12Q
IF
02ED
CD 17
I
NT
17H
SEND THE LI NE FEED
02EF
32 £4
XOR
AH,AH
NOW FOR THE CR
02Fl
60 CJD
MOV
AL,15Q
CR
02F3
CO 17
INT
17H
SEND THE CARRIAGE RETURN
02F5
C3
RET
02F6
CRLF
ENOP
02F6
CODE
ENDS
END
BIOS 2 5-163

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents