IBM XT 5160 Technical Reference page 221

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

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 ATTR 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)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents