EasyManua.ls Logo

IBM XT 5160 - Page 221

IBM XT 5160
420 pages
Print Icon
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...
IBM
Personal
Computer
MACRO
Assembler
Version
2.00
VIDEO
----
01/10/86
VIDEO
DISPLAY
BIOS
1-13
01-10-86
ROUT I NE TO MOVE ONE
ROW
OF I NFORMAT I
ON
GRAPH I CS
WR
I
TE
TH I S ROUT I NE
WR
I
TES
THE ASC I I CHARACTER TO
THE
CURRENT
POS I T I
ON
ON
THE
SCREEN.
ENTRY
--
AL
= CHARACTER TO
WR
I
TE
BL
= COLOR A
TTR
I
BUTE
TO
BE
USED FOR FOREGROUND COLOR
IF
BIT
1 I S
SET,
THE
CHAR I S
XOR'
0 I NTO
THE
REGEN
BUFFER
(0
I S USED FOR
THE
BACKGROUND COLOR)
CX
= NUMBER OF CHARS TO
WR
I
TE
OS
=
DATA
SEGMENT
ES
= REGEN SEGMENT
EXIT
--
NOTH I
NG
I S RETURNED
GRAPH I CS READ
TH I S ROUT I NE READS THE ASC I I CHARACTER AT THE CURRENT CURSOR
POS I T I
ON
ON
THE SCREEN BY MATCH I
NG
THE
DOTS
ON
THE
SCREEN TO THE
CHARACTER GENERATOR CODE
PO
I
NTS
ENTRY
--
NONE
(0
I S ASSUMED
AS
THE
BACKGROUND COLOR)
EXIT
--
AL
= CHARACTER READ AT
THAT
POS I T I
ON
(0
RETURNED I F NONE FOUND)
FOR BOTH
ROUTINES,
THE
IMAGES USED TO FORM CHARS ARE
CONTAINED
IN
ROM
FOR
THE
1ST
128
CHARS.
TO ACCESS CHARS I N
THE
SECONO
HALF,
THE USER
MUST
INITIALIZE
THE VECTOR
AT
INTERRUPT
lFH
(LOCATION
0001CH)
TO
PO I
NT
TO
THE
USER
SUPPL
I ED
TABLE
OF GRAPH I C I MAGES
(8X8
BOXES).
FA
I
LURE
TO
DO
SO
WILL
CAUSE I N STRANGE
RESULTS
ZERO TO
HIGH
OF CODE
PO
I
NT
SAVE CODE PO I
NT
VALUE
NUMBER OF
ROWS
TO MOVE
CONT I NUE
TILL
ALL
MOVED
CLEAR
ENTRY
DOWN
ATTRIBUTE
TO
FILL
WITH
CLEAR
LOOP
DOWN
CLEAR-A
Roi
PO I
NT
TO
NEXT
LI
NE
NUMBER OF
LINES
TO
FILL
CLEAR_LOOP
_DOWN
EVERYTH
I
NG
DONE
BLANK
FIELD
DOWN
;
SET
BLANK
COUNT TO
EVERYTH
I
NG
IN
FIELD
;
CLEAR
THE
FIELD
; ZERO TO
HIGH
OF COUNT REG I STER
; PO I
NT
TO
LAST
ROW
OF
PIXELS
;
MULTI
PL
Y NUMBER OF
LI
NES BY 4
; I F
ZERO,
THEN
BLANK
ENT
I RE
FIELD
;
80
BYTES/ROW
; DETERM I NE
OFFSET
TO SOURCE
;
SET
UP SOURCE
;
SUBTRACT
THE
OFFSET
; NUMBER OF
ROWS
IN
FIELD
; DETERM I NE NUMBER
TO
MOVE
; , COLUMNS •
2,
SINCE
2
BYTES
/ CHAR
;
OFFSET
• 2
SINCE
2
BYTES
/ CHAR
;
POINT
TO
LAST
BYTE
ES
OS
CH,CH
01,240
BL,
I
BL,1
R16
AL,80
BL
SI,DI
SI,AX
AH,DH
AH,BL
BL,DH
RI4
ENDP
RI1
S I
,2000H+80
01
,2000H+80
AH
R13
OS:
DATA
,ES
:DATA
PROC NEAR
AH,O
AX
JMP
PROC
NEAR
MOV
CL,DL
; NUMBER OF
BYTES
IN
THE
ROW
PUSH
SI
PUSH
01
SAVE
POINTERS
REP
MOVSB
MOVE
THE
EVEN
FIELD
POP
01
POP
SI
ADD
SI,2000H
ADD
DI,2000H
;
POINT
TO
THE
ODD
FIELD
PUSH
S I
PUSH
01
SAVE
THE
PO
INTER
S
MOV
CL,DL
COUNT BACK
REP
MOVSB
MOVE
THE
ODD
FIELD
POP
01
POP
S I
;
PO
I
NTERS
BACK
RET
; RETURN TO
CALLER
ENDP
CLEAR
A
SINGLE
ROW
PROC
NEAR
MOV
CL,DL
NUMBER OF
BYTES
IN
FIELD
PUSH
01
SAVE PO
INTER
REP
STOSB
STORE
THE
NEW
VALUE
POP
01
PO
I
NTER
BACK
ADD
DI,2000H
POINT
TO
ODD
FIELD
PUSH
01
MOV
CL,DL
REP
STOSB
;
FILL
THE
ODD
FIELD
POP
01
RET
; RETURN TO
CALLER
ENDP
MED I
UM
RES
DOWN
SAL
DL,
I
SAL
01,
I
INC
01
DETERM I NE
THE
SOURCE ADDRESS I N
THE
BUFFER
; F I
NO
SOURCE
DOWN
;
BOTH-SEGMENTS
TO REGEN
LOOP THROUGH,
MOV
I
NG
ONE
ROW
AT A T I
ME,
BOTH
EVEN
AND
ODD
FIELDS
;
ROW
LOOP
DOWN
; MOVE ONE-ROW
; MOVE TO
NEXT
ROW
FILL
IN
THE
VACATED
L1NE(S)
CALL
R
18
SUB 0 I
,2000H+80
DEC
BL
JNZ
R15
CALL
SUB
SUB
DEC
JNZ
PUSH
POP
SUB
ADD
SAL
SAL
JZ
MOV
MUL
MOV
SUB
MOV
SUB
MOV
AL,BH
MOV
JMP
GRAPH I CS_DOWN
ASSUME
GRAPH I CS
WR
I
TE
MOV
PUSH
R15:
RI1
RI8
R16:
Rl1
RI8
1331
1332
1333
05
I E
DO
E2
1334
0520
01
E1
1335
0522
41
1336
1331
1338
0523
1339
0523
06
1340
0524
IF
1341
0525
2A
ED
1342
0521
81 C1.
OOFO
1343
052B
DO
E3
1344
0520
DO
E3
1345
052F
14
2B
1346
0531
BO
50
1341
0533
F6
E3
1348
0535
8B
F1
1349
0531
2B
FO
1350
0539
8A
E6
1351
053B
2A
E3
1352
1353
1354
0530
1355
0530
E8
0560
R
1356
0540
81
EE
2050
1351
0544
81
EF
2050
1358
0548
FE
CC
1359
054A
15
Fl
1360
1361
1362
054C
1363
054C
8A
C1
1364
054E
1365
054E
E8
0519
R
1366
0551
81
EF
2050
1361
0555
FE
CB
1368
0551
15
F5
1369
1310
0559
E9
0130
R
1311
1312
055C
1313
055C
8A
DE
1314
055E
EB
EC
1315
0560
1316
1311
1318
1319
0560
1380
0560
8A
CA
1381
0562
56
1382
0563
51
1383
0564
F3/
A4
1384
0566
5F
1385
0561
5E
1386
0568
81
C6
2000
1381
056C
81 C1
2000
1388
0510
56
1389
0511
51
1390
0512
8A
CA
1391
0514
F3/
A4
1392
0516
5F
1393
0511
5E
1394
0518
C3
1395
0519
1396
1391
1398
1399
0519
1400
0519
8A
CA
1401
051B
51
1402
051C
F3/
AA
1403
051E
5F
1404
051F
81
C1'
2000
1405
0583
51
1406
0584
8A
CA
1401
0586
F3/
AA
1408
0588
5F
1409
0589
C3
1410
058A
1411
1412
1413
1414
1415
1416
1411
1418
1419
1420
1421
1422
1423
1424
1425
1426
1421
1428
1429
1430
1431
1432
1433
1434
1435
1436
1431
1438
1439
1440
1441
1442
058A
1443
058A
B4
00
1444
058C
50
5-74
VIDEO
(01/10/86)

Table of Contents

Related product manuals