IBM AT 5170 Technical Reference page 328

Table of Contents

Advertisement

IBM Pe!"lIIonal Comput.e!" MACRO A$$embler
Ve!".!on 2.00
1-14
VIDEOI
--- 06/10/85
VIDEO DISPLAY BIOS
06-10-85
1-409
DETERt.4INE POSITION IN REGEN BUFFER TO PUT CODE POINTS
1-410
1-41 I 0585 E8
R
52.
FIND
IN REGEN
0605
CALL
I
LOCAT ION
BUFFER
1-412 0588 8B Fe
"OV
DI,AX
; REGEN POINTER
IN
01
1413
1-414
;----~
DETERt.4INE REGION TO GET COOE POINTS FROt.4
1-415
1416
O,SA
58
AX
; RECOVER CODE PO I NT
1417 OS8B 3C 80
AL.80H
I
[S iT IN SECOND HALF
1-418 0580 73 06
51
I
YES
1-419 '
1420
;-----
IMAGE IS IN FIRST HALF,
CONTAINED IN ROM
1421
1-422 058F BE 0000 E
t.40V
51 ,OFFSET CRT CHAR GEN
; OFFSET OF IMAGES
1423 0592 OE
PUSH
CS
-
-
;
SAVE SEGMENT ON STACK
1424 0593 EB OF
Jt.4P
SHORT 52
: DETERt.41 NE_t.40DE
1-425
1-426
It.4AGE IS IN SECOND HALF,
IN USER MEMORY
1-427
1-428 059,
S! :
EXTEND CHAR
1-429 0595 2C 80
SUB
AL.80H
ZERO ORIGIN FOR SECOND HALF
1-430 0597 IE
PUSH
OS
SAVE DATA POINTER
1-431 0598 2B F6
SUB
SI,SI
1-432 059A 8E DE
"OV
OS.SI
EST ABL I SH VECTOR ADDRESS I NG
1-433
ASSUt.4E
OS:AB50
1-434 059C C5 36 007C R
LOS
SI,~EXT
PTR
GET THE OFFSET OF THE TABLE
1435 05AO 8C DA
"OV
ox.Os
-
GET THE SEGt.4ENT OF THE TABLE
1436
ASSUt.4E
DS:DATA
1437 05A2
IF
POP
OS
RECOVER DATA SEGMENT
1438 05A3 52
PUSH
OX
SAVE TABLE SEGt.4ENT ON STACK
1439
1440
DETERMINE GRAPHICS MODE IN OPERATION
1441
1442 05A-4
S2:
DETERt.41 NE t.40DE
1443 05A-4 CI EO 03
AX,3
~ULTIPLY CODE POINT VALUE BY 8
1444 05A7 03 FO
S I,
AX
SI HAS OFFSET OF DESIRED CODES
1-445 05"9 80 3E 0049 R 06
"CRT t-tODE.6
1-4-46 05AE IF
OS
­
RECOVER TABLE POINTER SEGMENT
1447 05AF 72 2C
57
TEST FOR MEDIUM RESOlUTION MODE
1448
1449
HIGH RESOLUTION t.40DE
1450 05BI
HIGH CHAR
1451 0581
57
PUSH
01
SAVE-REGEN PO INTER
1452 0582 56
PUSH
SI
SA VE CODE PO INTER
1453 0583 B6 04
MOV
DH,4
NUt.4BER OF T I t.4ES THROUGH LOOP
1454 05B5
54,
1455 05B5 Ac
LOOSB
GET BYTE FROM CODE POINTS
1456 0586 FE:. C3
eo
TEST
BL,80H
SHOULD WE USE THE FUNCT
I
ON
1457 05B9 75
16
,JNZ
S6
TO PUT CHAR
IN
1458 05SB AA
STOSB
STORE I N REGEN BUFFER
1459 058C AC
LOOSB
1460 0580
S5;
1461 05BO 261 88 85
IFFF
NOV
ES: [OI+2000H-l
J
,AL
STORE IN SECOND HALF
1462 05C2 83 CT 4F
ADD
01.19
MOVE TO NEXT ROW I N REGEN
1463 05C' FE CE
DEC
DH
DONE WITH LOOP
1464 05C7 75 EC
JNZ
54
1465 OSC9 5E
POP
51
1466 05CA SF
POP
01
RECOVER REGEN PO INTER
1467 05CB 47
INC
01
POINT TO NEXT CHAR POSITION
1468 05CC E2 E3
LOOP
53
t.40RE CHARS TO WRITE
1469 OSCE E9 012E R
J"P
VIDEO_RETURN
1470
1471 0501
56,
1472 0501
261
32 05
XOR
AL.ES: 101
J
EXCLUS I VE DR WITH CURRENT
1473 0504 AA
STOSB
STORE THE CODE PO I NT
1474 0505 AC
LODSS
AGAIN FOR DOD FIELD
1475 0506 26: 32 85
lFFF
XOR
AL.ES: [01 +2000H-I]
1476 050B EB EO
.Jt.4P
S5
BACK TO MA 1 NSTREAM
1477
1478
MEDIUM RESOLUTION WRITE
1479 0500
t.4ED RES WRITE
1480 0500 8A 03
NOV
DL,BL
SAVE-HIGH COLOR BIT
1481 050F 01
E7
SAL
01.1
OFFSEP2 SINCE 2 BYTES/CHAR
1482
EXPAND BL TO FULL WORD OF COLOR
1483 05EI
80 E3 03
ANO
BL,3
ISOLATE THE COLOR B[TS
1 LOW 2 BITS)
1-484 05E4 BO 55
"OV
AL,OS5H
GET BIT CONVERSION t.4ULTlPLIER
1485 05Eb
F6
E3
"UL
BL
EXPAND 2 COLOR BITS TO 4 REPLICATIONS
1486 05E8 8A 08
"OV
BL,AL
PLACE BACK
I
N WORK REG I STER
1487 05EA 8A F8
"OV
BH.AL
EXPAND TO 8 REPLICATIONS OF COLOR BITS
1488 05EC
56,
t.4EO CHAR
1489 05EC 57
PUSH
01
SAVE-REGEN POINTER
1490 05ED 56
PUSH
51
SAVE THE CODE POINTER
1491 OSEE B6 04
"OV
DH,4
NUMBER OF LOOPS
1492 05FO
S9:
1493 05FO AC
LOOSB
GET CODE POINT
1494 05F 1 E8 06AD R
CALL
5Z1
DOUBLE UP ALL THE BITS
1495 05F4 23 C3
AND
AX,ax
CONVERT TO FOREGROUND COLOR
(
a
BACK
)
1496 05F6 86
EO
XCHG
AH,AL
SWAP HIGH/LOW BYTES' FOR WORD t.40VE
1491 05F8 F6 C2 80
TEST
OL,80H
IS
THIS XOR FUNCTION
1498 05FB
74
03
JZ
510
NO, STORE
IT IN AS
IT IS
1499 O,FD 261
33 05
XOR
~X,ES:
[01]
DO FUNCTION WITH LOW/HIGH
1500 0600
SIO:
1501 0600 26: 89 05
MOV
ES: [01] ,AX
STORE FIRST BYTE HIGH. SECOND LOW
1502 0603 AC
LODSB
GET CODE POINT
1503 Q604 E8 06AO R
CALL
521
1504 0607 23 C3
AND
AX,ax
CONVERT TO COLOR
1505 0609 86 EO
XCHG
AH,AL
SWAP HI GH/LOW BYTES FOR WORD
~OVE
\ 506 060B F6 C2 80
TEST
DL,80H
AGAIN,
(S THIS XOR FUNCTION
1507 060E
74
05
JZ
511
NO. JUST STORE THE VALUES
1508 0610 26:
33 85 2000
XDR
AX,ES, [OI+2000H)
FUNCTION WITH FIRST. HALF LOW
1509 0615
SI
t:
1510 0615 26:
89 85 2000
MOV
ES: [0 1+20001"1] • AX
STORE SECOND PORTION HIGH
1511 061A 83 C7 50
ADD
01.80
POINT TO NEXT LOCATION
1512 0610 FE CE
DEC
DH
1513 061F 75 CF
JNZ
S9
KEEP GOING
1514 0621
POP
51
RECOVER CODE PO INTER
1515 0622 5F
PDP
01
RECOVER REGEN PO INTER
1516 0623 47
INC
01
POINT TO NEXT CHAR POSITION
\517062447
INC
01
1518 0625 E2 C5
LOOP
58
r
t.40RE TO WRITE
1519 0627 E9 012E R
JMP
v
IDEO RETURN
1520 062A
GRAPHICS WRITE
ENDP­
1521
; -------=------------------------ ---- ---­
1522
I GRAPH I CS READ
5-156
VIDEO1

Advertisement

Table of Contents
loading

Table of Contents