IBM XT 5160 Technical Reference page 219

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-1 I
01-10-86
PAGE
AL :
DOT VALUE READ, RIGHT JUSTIFIED, READ ONLY
~;
-- ---
-
;~~~-
--
-~~~~
- -
------- - --- --- -- --- -- ---
--
DETERMINE 1ST BYTE IN INDICATED ROW. BY MULTIPLYING ROW VALUE BY 40
( LOW BIT OF ROW DETERMINES EVEN/ODD, 80 BYTES/ROW)
DETERM I NE GRAPH I CS MODE CURRENTLY
I N EFFECT
SET UP THE REG I STERS ACCORD I NG 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 H/M )
BL :
MASK TO SELECT BITS FROM POINTED BYTE ( 80H/COH FOR HIM )
BH :
NUMBER OF VALID BITS IN POINTED BYTE (
1/2 FOR H/M )
SAVE DOT VALUE
TWICE
DETERM I NE BYTE POS I T I ON OF THE DOT
SH I FT TO SET UP THE BITS FOR OUTPUT
STR I P OFF THE OTHER BITS
GET THE CURRENT BYTE
RECOVER XOR FLAG
IS IT ON
YES, cXOR THE DOT
SET MASK TO REMOVE THE INDICATED BITS
OR
IN THE NEW VALUE OF THOSE BITS
FINI SH DOT
RESTORE THE BYTE I N MEMORY
;
SH I FT BY CORRECT AMOUNT
;
I NCREMENT THE PO INTER
; GET THE' OF BITS IN RESULT TO DH
; ADDRESS OF PEL WITH I N BYTE TO CH
;
SET PARMS FOR MED RES
HANDLE IF MED RES
;
SET PARMS FOR HIGH RES
; WILL SAVE AL AND AH OUR I NG OPERAT I ON
AX: ADDRESS OF START OF INDICATED ROW
TEST FOR EVEN/ODD ROW CALCULATED
JUMP I F EVEN ROW
OFFSET TO LOCAT I ON OF ODD ROWS ADJUST
EVEN ROW
MOVE-PO I NTER TO (S I)
AND RECOVER
( AX)
COLUMN VALUE TO OX
;
ZERO INTO STORAGE LOCATION
LEFT JUSTIFY VALUE IN AL
(FOR WRITE)
ADD I N THE BIT OFFSET VALUE
LOOP CONTROL
ON EX IT, CL HAS COUNT TO RESTORE BITS
GET MASK TO AH
MOVE THE MASK TO CORRECT LOCAT I ON
RETURN WITH EVERYTH I NG SET UP
; DETERM I NE BYTE POS I T I ON OF DOT
;
GET THE BYTE
; MASK OFF THE OTHER BITS I N THE BYTE
; LEFT JUSTI FY THE VALUE
; GET NUMBER OF BITS IN RESULT
; RIGHT JUST I FY THE RESULT
; RETURN FROM V IDEO I
/0
NEAR
CL,CL
SI,AX
AL,40
DL
AL,008H
R4
AX,2000H-40
BX,2COH
CX,302H
tlCRT MODE,6
R5
-
BX,180H
CX,103H
OS :DATA ,ES :DATA
PROC
NEAR
R3
AL,ES: [SI]
AL,AH
AL,CL
CL,DH
AL,CL
V IDEO RETURN
ENDP -
SI,AX
DX,CX
CH,DL
ES: [SI] ,AL
AX
V IDEO_RETURN
PROC
AX
AX
R3
AL,CL
AL,AH
CL,ES:[SI]
BX
BL,80H
R2
AH
CL,AH
AL,CL
AL,I
CL,CH
BH
R6
AH,BL
AH,CL
DX,CL
SI,DX
DH,BH
AND
SUB
MULTIPLY BH (VALID BITS IN BYTE)
BY CH (BIT OFFSET)
MOV
MOV
CMP
JC
MOV
MOV
MOV
POP
JMP
XCHG
MOV
MUL
TEST
JZ
ADD
XCHG
MOV
DETERM I NE BIT OFFSET I N BYTE FROM COLUMN MASK
DETERM I NE BYTE OFFSET FOR TH IS LOCAT I ON I N COLUMN
SHR
ADD
MOV
ROR
ADD
DEC
JNZ
MOV
SHR
RET
ENDP
RETURN FROM V IDEO I
/0
XOR DOT
XOR
AL, CL
EXCCUS I VE OR THE DOTS
JMP
R 1
FIN I SH UP THE WR I T I NG
~~:~:
=
~~~
-------
:~~~
------------------- -------
TH I S SUBROUT I NE DETERM I NES THE REGEN BYTE LOCAT I ON OF THE
;
INDICATED ROW COLUMN VALUE IN GRAPHICS MODE.
; ENTRY --
OX :
ROW VALUE
(0-199)
CX :
COLUMN VALUE
(0-639)
; EXIT --
S I
:
OFFSET I NTO REGEN BUFFER FOR BYTE OF INTEREST
AH :
MASK TO STR I P OFF THE BITS OF INTEREST
CL :
BITS TO SHIFT TO RIGHT JUSTIFY THE MASK IN AH
DH :
# BITS IN RESULT
BX :
MODIFIED
.
-- -- -
-
-
--
- ---- ------ -- ---- -- ----- -- -- ---- - --
READ DOT
- -
WR I TE DOT
THESE ROUT I NES WILL WR I TE A DOT, DR READ THE
DOT AT THE INDICATED LOCATION
ENTRY --
OX :
ROW (0 - 199)
(THE ACTUAL VALUE DEPENDS ON THE MODE)
CX :
COLUMN ( 0-639)
( THE VALUES ARE NOT RANGE CHECKED)
AL :
DOT VALUE TO WRITE
(1,2 OR 4 BITS DEPENDING ON MODE,
;
REQUIRED FOR WRITE DOT ONLY, RIGHT JUSTIFIED)
BIT 1 OF AL :
1 INDICATES XOR THE VALUE INTO THE LOCATION
;
OS: DATA SEGMENT
;
ES: REGEN SEGMENT
; EXIT
R2:
R4:
Rl :
R3
R6:
ASSUME
READ DOT
-
CALL
MOV
AND
SHL
MOV
ROL
JMP
READ_DOT
WRITE DOT
-
PUSH
PUSH
CALL
SHR
AND
MOV
POP
TEST
JNZ
NOT
AND
OR
R5:
1103
1104
1105
1106
1101
1108
1109
1110
1111
1112
1113
1114
1115
1116
1111
1118
1119
1120
1121
043F
1122 043F E8 0413 R
1 123 0442 26: 8A 04
1 124 0445 22 C4
1 125 0441 02 EO
1 126 0449 8A CE
1121 044B 02 CO
1 128 0440 E9 0130 R
1129 0450
1130
1131
0450
1132 0450 50
1133 0451
50
1134 0452 E8 0413 R
1 135 0455 02 E8
1 136 0451 22 C4
1131 0459 26: 8A OC
1138 045C 5B
1 139 0450 F6 C3 80
1140 0460 15 00
1141 0462 F6 04
1 142 0464 22 CC
1 143 0466 OA C
I
1144 0468
I 145 0468 26: 88 04
1146 046B 58
1 141 046C E9 0130 R
1148 046F
1149 046F 32 Cl
1150 0411 EB F5
1151
0413
1152
1153
1154
1155
1156
1151
1158
1159
1160
1161
1162
1163
1164
1165 0413
1166
1161
1168
1169
1110 0413 96
11110414 BO 28
1112 0416 F6 E2
1113 0418 A8 08
1114 041A 14 03
1115 041C 05
lFD8
1116 041F
1111 041F 96
1118 0480 8B 01
1119
1180
1181
1182
1183
1184
1185
1186
1181
I
188 0482 BB 02CO
1 189 0485 B9 0302
1 190 0488 80 3E 0049 R 06
1191 0480 12 06
1 192 048F BB 0180
1193 0492 B9 0103
1194
1195
1196 0495
1191 0495 22 EA
1198
1199
1200
1201
0491 03 EA
1202 0499 03 F2
1203 049B 8A Fl
1204
1205
1206
1201 0490 2A C9
1208 049F
1209 049F DO C8
1210 04A 1 02 CD
12 1 1 04A3 FE CF
1212 04A5 15 F8
1213 04A 1 8A E3
1214 04A9 02 EC
1215 04AB C3
1216 04AC
5-72
VIDEO (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents