IBM AT 5170 Technical Reference page 325

Table of Contents

Advertisement

-- - - - - - - - - - -- -- - -
-
IBM Personal Computer MACRO AaaeMbl.r
V.rslon 2.00
I-II
VIDEOI
---
Ob/l0/85
1067
1068
1069
1070
1071
1072
1073
1074
1075
101b
1077
1018
1019
1080
1081
1082
1083
1084
1085 0435
1086 0435 E8 0469 R
1087 0438 26: 81. 04
1088 0438 22 C4
1089 0430 02 EO
1090 043F BA CE
1091
0441
02 CO
10920443 E9 012E R
1093 0446
1094
1095 0446
1096 0446 50
1091 0441 50
1098 0448 E8 0469 R
1099 044B 02 E8
1100 0440 22 C4
1101
044F 26: 81. OC
1102 0452 58
103 0453 F6 C3 80
104 0456 75 00
105 0458 F6 04
106 0451. 22 CC
107 045C 01. CI
108 045E
109 045E 26: 88 04
110046158
1110462 E9 012E R
112 0465
113 0465 32 CI
114 0461 E8 F5
115 0469
116 .
'17
118
II.
120
121
1122
1123
1124
125
126
127
128
129 0469
130
131
132
133
134 0469 93
135 0461. BO 28
136 046C F6 E2
131 046E 1.8 08
138 0410 14 03
139 0412 05
IFD8
140 0475
1141
0475 96
1142047693
1143 0477 88 01
,.4
'45
146
147
148
'0'
150
151
152
153 0419 BB 02CO
154 041C B9 0302
155 041F 80 3E 0049
r
56 0484 12 06
151 0486 BB
alBa
158 0489 B9 0703
I
159
I
160
1161
048C
1162 048C 22 EA
1163
1164
I
165
I
166 048E 03 EA
1167 0490 03 F2
168 0492 81. F1
lb'
170
171
112 0494 21. C9
113 0496
114 0496 DO C8
115 0498 02 CD
116 0491. FE CF
177 049C 15 F8
178 049E 8A E3
179 04AO 02 EC
180 04A2 C3
VIDEO DISPLAY BIOS
Ob-IO-85
PAGE
READ DDT
-- WR ITE DOT
THESE ROUT I NES WILL WR I TE A DOT, OR READ THE
DOT AT THE
INDICATED LOCATION
ENTRY - ­
DX
=
ROW
(0-199)
(THE ACTUAL VALUE DEPENDS ON THE MODE)
CX
=
COLUMN
( 0-639)
( THE VALUES ARE NOT RANGE CHECKED I
AL
=
DOT VALUE TO WRITE
(1,2 OR 4 BITS DEPENDING ON MODE,
REQUIRED FOR WRITE DOT ONl:.Y, RIGHT JUSTIFIED)
BIT
1
OF AL =
I
INDICATES XOR THE VALUE
INTO THE LOCATION
OS = DATA SEGMENT
ES = REGEN SEGMENT
EXIT
AL = DOT VALUE READ, RIGHT JUSTIFIED. READ ONLY
I - ------- - -- - - - - - - - - - - - - - - - - - - ------ ---- --- - - - ­
ASSUME
DSIDATA.ESIDHA
READ
~OT
PROC
NEAR
-
CALL
R3
DETERMINE BYTE POSITION OF DOT
MOV
AL.ES:[SI)
GET THE BYTE
AND
AL.AH
MASK OFF THE OTHER BITS
IN THE BYTE
SHL
AL.CL
LEFT JUSTIFY THE VALUE
MOV
CL.DH
GET NUMBER OF BITS
IN RESULT
ROL
AL,CL
RIGHT JUSTIFY THE RESULT
JMP
V IDEO RETURN
RETURN FROM V IDEO I /
a
READ_DOT
ENOP -
WRITE DOT
PROC
NEAR
-
PUSH
AX
SAVE DOT VALUE
PUSH
AX
TWICE
CALL
R3
DETERMINE BYTE POSITION OF THE
~OT
SHR
AL,CL
SHIFT TO SET UP THE BITS FOR OUTPUT
AND
MOV
AL,AH
CL,ES: (51
J
STR I P OFF THE OTHER BI TS
GET THE CURRENT BYTE
POP
BX
RECOVER XOR FLAG
TEST
BL,80H
IS
IT ON
JNZ
R2
YES,
XOR THE DOT
NOT
AH
SET MASK TO REMOVE THE
INDICATED BITS
AND
OR
CL,AH
AL,CL
OR
IN THE NEW VALUE OF THOSE BITS
RI;
FINISH DOT
"OV
ES:(SI),AL
RESTORE THE BYTE
I N MEMORY
POP
AX
J"P
VIDEO_RETURN
;
RETURN FROM VIDEO I/O
R2:
; XDR
DOT
XOR
AL,CL
; EXc[US I VE OR THE DOTS
JMP
RI
; FINISH UP THE WRITING
WR I TE_OOT
ENDP
;
-
--------
- - -
-------------
-
; THIS SUBROUTINE DETERMINES THE REGEN BYTE LOCATION OF THE
INDICATED ROW COLUMN VALUE
IN GRAPHICS MODE.
ENTRY - ­
OX "' ROW VALUE
(0-199)
CX = COLUMN VALUE
(0-b39)
EX
I T - ­
SI
=
OFFSET INTO REGEN BUFFER FOR BYTE OF
INTEREST
AH = MASK TO STRIP OFF THE BITS OF
INTEREST
CL = BITS TO SHIFT TO RIGHT JUSTIFY THE MASK
IN AH
DH
= #
BITS
IN RESULT
BX
=
MODIFIED
~;
- - --
--~~~~ ----~~~~----
- ------ - -- ---- - - - - ---- - ­
;-----
DETERMINE
1ST BYTE
IN INDICATED ROW BY MULTIPLYING ROW VALUE BY 40
( LOW BIT OF ROW DETERMINES EVEN/ODD, 80 BYTES/ROW)
XCHG
AX,BX
I WILL SAVE AL AND AH DURING OPERATION
MOV
AL,40
MUL
DL
AX= ADDRESS OF START OF INDICATED ROW
TEST
AL,008H
TEST FOR EVEN/ODD ROW CALCULATED
JZ
RO
JUMP I F EVEN ROW
ADD
AX,2000H-40
OFFSET TO LOCATION OF 000 ROWS ADJUST
R4:
EVEN ROW
XCHG
SI,AX
MOVE-PO I NTER TO
5
I
XCHG
AX,BX
RECOVER AL AND AH VALUES
"OV
OX,CX
COLUMN VALUE TO
ox
OETERM I NE GRAPH 1 CS MODE CURRENTL YIN EFFECT
SET UP THE REGISTERS ACCORDING TO THE MODE
CH
=
MASK FOR LOW OF COLUMN ADDRESS
( 1/3 FOR HIGH/MED RES)
CL = ,. OF ADDRESS BITS
IN COLUMN VALUE
(
3/2
FOR HIM
t
BL = MASK TO SELECT BITS FROM POINTED BYTE
( 80H/COH FOR HIM)
BH = NUMBER OF VALID BITS
IN POINTED BYTE (
1/2 FOR HIM I
MOV
BX,2COH
MOV
CX,302H
SET PARMS FOR MED RES
R 06
CMP
«ICRT MOOE,6
JC
R5
-
HANDLE IF MEO RES
MOV
BX,I8QH
MOV
CX,703H
I
SET PARMS FOR HIGH
RES
DETERMINE BIT OFFSET
IN BYTE FROM COLUMN MASK
~~~---
AND
CH,DL
;
ADDRESS OF PEL WITH I N BYTE TO CH
DETERMINE BYTE OFFSET FOR THIS LOCATION IN COLUMN
SHR
OX,CL
;
SH I FT BY CORRECT AMOUNT
ADO
SI,DX
i
INCREMENT THE POINTER
MOV
DH,BH
;
GET THE # OF BITS IN RESULT TO OH
;-----
MULTIPLY BH
(VALID BITS IN BYTE) BY CH
(BIT OFFSETI
SUB
CL,CL
ZERO
I
NTO STORAGE LOCATION
R6:
ROR
AL, I
LEFT JUSTIFY VALUE IN AL
(FOR WRITE)
ADO
CL.CH
~OD
IN THE BIT OFFSET VALUE
DEC
BH
LOOP CONTROL
JNZ
Rb
ON· EXIT, CL HAS COUNT TO RESTORE BITS
"OV
AH,BL
GET _ MASK TO AH
SHR
AH,CL
MOVE THE MASK TO CORRECT LOCATI ON
RET
RETURN WITH EVERYTHING SET UP
VIDEO1
5-153

Advertisement

Table of Contents
loading

Table of Contents