; - - - - - USE CHARACTER SUBROUT I NE FOR POS I T I
ON
I
NG
ADDRESS RETURNED
IS
MULTI
PLI
ED
BY
2 FROM CORRECT
VALUE
5-73
TEST
FOR MED I
UM
RES
F I ND_SOURCE_DOWN
# COLUMNS -
2,
SINCE
2
BYTE
S/ CHAR
OFFSET
-2
SINCE
2
BYTES/CHAR
ADJUST
VALUES
MUL
TI
PL
Y
ROWS
BY
4
AT
8 VERT DOTS / CHAR
.AND
EVEN
/
ODD
ROWS
ZERO TO
HIGH
OF COUNT REG I STER
MULT I
PL
Y NUMBER OF
LINES
BY
4
I F
ZERO,
THEN
BLANK
ENT
I RE
FIELD
80
BYTES
/
ROW
DETERM I NE
OFFSET
TO SOURCE
SET
UP SOURCE
ADD I N
OFFSET
TO
IT
NUMBER OF
ROWS
IN
FIELD
DETERM I NE NUMBER TO MOVE
ADJUST
VALUES
MUL
TI
PL
Y
ROWS
BY
4
AT
8
VERT
DOTS / CHAR
AND
EVEN/ODD
ROWS
TEST
FOR
MEDIUM
RES
F I NO_SOURCE
;
SET
DIRECTION
; SAVE
LINE
COUNT
IN
BL
; GET LOWER
RIGHT
POS I T I
ON
I NTO AX
REG
;
SAVE
RESULT
AS
DEST
I
NAT
I
ON
ADDRESS
; SAVE
RESULT
AS
DESTINATION
ADDRESS
1-12
01-10-86
VIDEO
(01/10/86)
GRAPH POSN
DI,AX-
OCRT
MODE,6
R12
-
DX,CX
DX,101H
DH,I
DH,I
GRAPH POSN
DI,AX-
ES
OS
CH,CH
BL,I
BL,I
Rl1
AL,80
BL
SI,DI
SI,AX
AH,DH
AH,BL
OCRT
MODE,6
R7
-
DX,CX
DX,I01H
DH,I
DH,I
SUB
ADD
SAL
SAL
SUB
ADD
SAL
SAL
CMP
JNC
CMP
JNC
DETERM I NE CRT
MODE
DETERM I NE
THE
SOURCE ADDRESS I N
THE
BUFFER
; F I
NO
SOURCE
; GET SEGMENTS BOTH PO I
NT
I
NG
TO REGEN
CALL
MOV
DETERM I NE CRT
MODE
DETERM I NE
SIZE
OF WINDOW
MED I
UM
RES UP
SAL
DL,I
SAL
01,1
PUSH
POP
SUB
SAL
SAL
JZ
MOV
MUL
MOV
ADD
MOV
SUB
CALL
MOV
DETERM I NE
SIZE
OF WINDOW
; -----
--
- - - -- -
----
--- - -- -
--
-- -
---
--
---
--
------
-
----
----
SCROLL
DOWN
TH
I S ROUT I NE SCROLLS
DOWN
THE I NFORMA T I
ON ON
THE
CRT
ENTRY
--
CH
,CL
= UPPER
LEFT
CORNER OF REG I
ON
TO SCROLL
;
DH,
DL
= LOWER
RIGHT
CORNER OF REG I
ON
TO SCROLL
BOTH OF
THE
ABOVE ARE I N CHARACTER POS I T
IONS
; BH =
FILL
VALUE
FOR
BLANKED
LINES
AL
= #
LINES
TO
SCROLL
(AL=O
MEANS
BLANK
THE
ENTIRE
FIELD)
;
OS
= OATA SEGMENT
ES = REGEN SEGMENT
EXIT
--
; NOTH I
NG
,
THE
SCREEN I S
SCROLLED
SCROLL
UP
;
TH
I S ROUT I NE
SCROLLS
UP
THE
I NFORMAT I
ON ON
THE CRT
;
ENTRY
--
;
CH
,CL
= UPPER
LEFT
CORNER OF REG I
ON
TO
SCROLL
;
DH,
DL
= LOWER
RIGHT
CORNER OF REG I
ON
TO SCROLL
; BOTH OF THE ABOVE ARE I N CHARACTER POS I T
IONS
; BH =
FILL
VALUE
FOR
BLANKED
LINES
;
AL
= #
LINES
TO SCROLL
(AL=O
MEANS
BLANK
THE
ENTIRE
FIELD)
;
OS
= OATA SEGMENT
;
ES
= REGEN SEGMENT
;
EXIT
--
; NOTH I
NG,
THE SCREEN I S SCROLLED
~~~~~
~
~~
-
~~
-----
~~~~
----
~~~~
---------------------------
--
MOV
BL,AL
;
SAVE
LINE
COUNT
IN
BL
MOV
AX,
CX ;
GET
UPPER
LEFT
POS I T I
ON
I NTO AX
REG
USE
CHARACTER SUBROUT INE FOR POS I T I
ON
I
NG
ADDRESS RETURNED
IS
MULTIPLIED
BY
2 FROM CORRECT
VALUE
~~~---
LOOP THROUGH,
MOV
I
NG
ONE
ROW
AT
A T I
ME,
BOTH
EVEN
AND
ODD
FIELDS
;
ROW
LOOP
CALL
R17
;
MOVE ONE
ROW
SUB S I
,2000H-80
; MOVE TO
NEXT
ROW
SUB
01
,2000H-80
DEC
AH
NUMBER OF
ROWS
TO MOVE
JNZ
R8
CONT I NUE
TILL
ALL
MOVED
R9:
FILL
I N
THE
VACATED
LI
NE
(S)
;
CLEAR
ENTRY
MOV
AL,BH
;
ATTRIBUTE
TO
FILL
WITH
RIO:
CALL
R18
;
CLEAR
THAT
ROW
SUB
01
,2000H-80
;
POINT
TO
NEXT
LINE
DEC
BL
;
NUMBER OF
LINES
TO
FILL
JNZ
RIO
;
CLEAR
LOOP
JMP
V
IDEO_RETURN
;
EVERYTH
I
NG
DONE
R11 :
BLANK
FIELD
MOV
BL,DH
SET
BLANK
COUNT TO
EVERYTH
I
NG
IN
FIELD
JMP
R9
CLEAR
THE
FIELD
GRAPH I
CS_UP
ENDP
GRAPH I
CS
DOWN
PROC NEAR
STD
MOV
BL,AL
MOV
AX
,OX
1217
li18
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
04AC
1232
04AC
8A
08
1233
04AE
8B
C I
1234
1235
1236
1237
1238
04BO
E8
06EC
R
1239
04B3
8B
F8
1240
1241
1242
1243
04B5
2B
01
1244
04B7
81
C2
0101
1245
04BB
DO
E6
1246
04BD
DO
E6
1247
1248
1249
1250
04BF
80
3E
0049
R
06
1251
04C4
73
04
1252
1253
1254
04C6
DO
E2
1255
04C8
01
E7
1256
1257
1258
04CA
1259
04CA
06
1260
04CB
IF
1261
04CC
2A
ED
1262
04CE
DO
E3
1263
0400
DO
E3
1264
0402
74
2B
1265
0404
BO
50
1266
0406
F6
E3
1267
0408
8B
F7
1268
04DA
03
FO
1269
04DC
8A
E6
1270
04DE
2A
E3
1271
1272
1273
04EO
1274
04EO
E8
0560
R
1275
04E3
81
EE
lFBO
1276
04E7
81
EF
lFBO
1277
04EB
FE
CC
1278
04ED
75
FI
1279
1280
1281
04EF
1282
04EF
8A
C7
1283
04F
1
1284
04FI
E8
0579
R
1285
04F4
81
EF
1FBO
1286
04F8
FE
CB
1287
04FA
75
F5
1288
04FC
E9
0130
R
1289
1290
04FF
1291
04FF
8A
DE
1292
0501
EB
EC
1293
0503
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
0503
1310
0503
FD
131
I
0504
8A
08
13
I 2
0506
8B
C2
1313
1314
1315
1316
1317
0508
E8
06EC
R
1318
050B
8B
F8
1319
1320
1321
1322
0500
2B
01
1323
050F
81
C2
0 101
1324
05
I 3
DO
E6
1325
05
I 5
DO
E6
1326
1327
1328
1329
0517
80
3E
0049
R
06
1330
051
C
73
05
IBM
Personal
Computer
MACRO
Assembler
Version
2.00
VIDEO
----
01/10/86
VIDEO
DISPLAY
BIOS