IBM 5150 Technical Reference page 206

Hide thumbs Also See for 5150:
Table of Contents

Advertisement

LOC OBJ
LINE
SOURCE
FF54
"54
FF54 FB
FF55 IE
FF56 50
FFS7 53
FF58 51
FFS9 52
FFSA B65000
FF50 SEDe
FrSF 803EOOOOOl
FF64 745F
fF66 (;606000001
FF6B 840F
FF6D COlO
FF6F 8Ace
FF71 8519
FF73 E85500
FF76 51
FF77
8403
FF79 COlO
fF78 59
FF7C 52
FF7D 3302
FF7F
FF7F 6402
Ff61 COlO
FF83 8408
FF85 COlO
Ff87 OACO
FF&9 7502
FF8B B020
FfeD
FFeD 52
FFeE 3302
Ff90 32E4
FF92 CD17
FF94 SA
FF95 F6C425
Ff98 7521
FF9A FEe,
FF<~C
3ACA
FF9E 750F
FFAn 3202
FFA2 8AE2
FFA4 52
FFA5 E82300
FFA8 SA
FfA9 FEC6
HAS lAEE
FFAD 7500
FF.F
FFAF SA
FFBD 8402
FFB2 COlO
FFB4 C606000000
FFS9 ESDA
FFBB
6086
50: 0
=0
EITHER PRINT SCREEN HAS NOT BEEN CALLED
6087
OR UPON RETURN fROM A CALL THIS INDICATES
6088
A SUCCESSFUL OPERATION.
6089
=1
PRINT SCREEN IS IN PROGRESS
6090
=255
ERROR ENCOUNTERED DURING PRINTING
6091
,-----------------------------------------------------------------------­
6092
ASSUHE
CS:COOE,OS:XXDATA
6093
ORG
OFF54H
6094
PRINT_SCREEN
PROC
FAR
6095
STl
; MUST RUN WITH INTERRUPTS ENABLED
6096
PUSH
OS
; MUST USE 50:0 FOR DATA AREA STORAGE
6097
PUSH
AX
6098
PUSH
ex
6099
PUSH
CX
I
WILL USE THIS LATER FOR CURSOR LIMITS
6100
PUSH
OX
, WILL HOLD CURRENT CURSOR POSITION
6101
MOV
AX,XXOATA
I HEX 50
6102
HOV
Os,AX
6103
CMP
STATUS_BYTE, 1
; SEE IF PRINT ALREADY IN PROGRESS
6104
JZ
EXIT
I
JUHP
IF
PRINT ALREADY IN PROGRESS
6105
MOV
STATUS_BYTE ,I
; INDICATE PRINT NOW IN PROGRESS
6106
MOV
AH.IS
I
WILL REQUEST THE CURRENT SCREEN MOOE
6107
INT
10H
lALJ=HOOE
6106
(AHl=HUt1BER COLf..H.lS/LINE
6109
lBHJ=VISUAL PAGE
6110
1-----­ -­ - - -------­ -------------------­ --------­ - - --------------­
6111
AT THIS POINT WE KHQW THE COlut1NS/lINE ARE IN
6112
I AX I ANO THE PAGE IF APPLICABLE IS IN l BH 1. THE STACK
6113
HAS OS,AX,BX,CX,OX PUSHED.
[All
HAS VIDEO MODE
6114
; ---------------------------------------­ - ----------------------­
6115
MOV
CL,AH
; WILL HAKE USE OF [CX) REGISTER TO
6116
MOV
CH,25
; CONTROL ROW & COLUNNS
6117
CALL
CRlF
I
CARRIAGE RETURN LINE FEED ROUTINE
6118
PUSH
ex
; SAVE SCREEN BOUNDS
6119
MOV
AH,3
; WILL
NOW READ THE CURSOR.
6120
INT
10H
, AND PRESERVE THE POSITION
6121
POP
CX
; RECALL SCREEN BOUNDS
6122
PUSH
OX
i
RECALL [BH1=VISUAL PAGE
612.3
6124
xoo
OX,OX
I WILL SET CURSOR POSITION TO (0,01
J---------------------------------------------------------------­
6125
THE LOOP FROM PRIlO TO THE INSTRUCTION PRIOR TO PRIzo
6126
IS THE lOOP TO READ EACH CURSOR POSITION FROM THE
6127
SCREEN AND PRINT.
6128
;---------------------------------------------------------------­
6129
?RIlO:
6130
HOV
AH,2
; TO INDICATE ClRSOR SET REQUEST
6131
IHT
IOH
; NEW CURSOR POSITION ESTABLISHED
6132
I10V
AH,8
; TO INDICATE REAO CHARACTER
6133
IHT
IOH
; CHARACTER NOW IN (All
6134
00
AL,AL
j
SEE IF VALID CHAR
6135
JHZ
PRIl5
; JUMP IF VALID CHAR
6136
HOV
AL,'
; HAKE
A BLAi'I<.
6137
PRIl5:
6138
PUSH
OX
; SAVE CURSOR POSITION
6139
XOR
OX,OX
J
IM)ICATE PRINTER 1
6140
XOR
AH,AH
J TO IHOICATE PRINT CHAR IN [AU
6141
INT
17H
I
PRINT THE CHARACTER
6142
POP
OX
; RECALL CURSOR POSITION
6143
TEST
AH, 25H
; TEST FOR PRINTER ERROR
6144
JNZ
ERRIO
i
JUNP
IF
ERROR DETECTED
6145
INC
Dl
; AOVANCE TO NEXT COlUt1N
6146
CMP
Cl,Ol
; SEE
IF
AT
END
OF LINE
6147
JNZ
PRIIO
; I
F NOT PROCEED
6148
XOR
Dl,Ol
; BACK TO COlllt1N
0
6149
MOV
AH ,OL
; (AH)=O
6150
PUSH
OX
; SAVE NEW CURSOR POSITION
6151
CALL
CRLF
; LINE FEED CARRIAGE RETVRN
6152
POP
oX
, RECALL CURSOR POSITION
6153
IHC
OH
; AOVANCE TO NEXT LINE
6154
CHP
CH,OH
I
FINISHED?
6155
JHZ
PRIIO
I
IF NOT CONTINUE
6156
PRI20:
6157
POP
ox
; RECALL CURSOR POSITION
6156
HOV
AH,2
I
TO INOICATE CURSOR SET REQUEST
6159
IHT
10H
1 CURSOR POSITION RESTORED
6160
HOV
STATUS_BYTE ,0
J
INDICATE FINISHED
6161
JHP
SHORT EXIT
J EXIT THE ROUTINE
6162
ERR 10:
System BIOS 5-113

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents