EasyManua.ls Logo

IBM 5150 - Page 206

IBM 5150
309 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
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

Table of Contents

Other manuals for IBM 5150

Related product manuals