IBM 5170 Technical Reference page 278

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

-----------------------------------------------
0490
EB F5
Rl
;
FIN ISH UP THE WRI TING
0492
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 (O-639)
.3
EXIT - ­
SI = OFFSET
INTO 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
=
II
BITS IN RESULT
0492
PROC
NEAR
0492
53
PUSH
BX
;
SAVE BX DURING OPERATION
0493
50
PUSH
AX
; WILL SAVE AL DURING OPERATION
,
DETERMINE 1ST BYTE IN IDICATED ROW BY MULTIPLYING ROW VALUE BY 40
;------ (
LOW BIT OF ROW DETERMINES EVEN/ODD,
80 BYTES/ROW
0494
BO 28
MOY
AL,40
0496
52
PUSH
DX
SAVE ROW VALUE
0497
80 E2 FE
AND
DL,OFEH
STR I P OFF ODD/EVEN BIT
049A
f6 E2
MUL
DL
AX HAS ADDRESS OF 1ST BYTE OF
INDICATED ROW
049C
5A
POP
DX
RECOVER IT
0490
F6 C2 01
TEST
DL,1
TEST FOR EVEN/ODD
04AO
7
1 1
03
Jl
R4
JUMP
I F EVEN ROW
04A2
05 2000
ADD
AX,2000H
OFFSET TO LOCAT ION OF ODD ROWS
04A5
R4:
EVEN ROW
04A5
8B FO
MOV
MOVCPOINTER TO SI
04A7
58
POP
RECOVER AL VALUE
04A8
8B 01
MOV
COLUMN VALUE TO OX
;------ DETERMINE GRAPHICS MODE CURRENTLY IN EFFECT
SET UP THE REGISTERS ACCORDING TO THE MODE
CH = MASK FOR LOW OF COLUMN ADDRESS ( 7/3 FOR HIGH/MED RES)
CL -
II
OF ADDRESS BITS IN COLUMN VALUE ( 3/2 FOR H/M)
BL =
I~ASI<.
TO SELECT BITS FROM POINTED BYTE (80H/COH FOR H/M)
BH = NUMBER OF VALID BITS IN POINTED BYTE (
1/2 FOR H/N)
OIIAA
BB 02CO
MOV
04AD
B9 0302
Mav
SET PARMS FOR MED RES
04BO
80 3 E
0049 R 06
CMP
0485
72
06
JC
HANDLE IF MED ARES
04B7
BB
0180
MOV
048A
89 0703
MDV
SET PARMS FOR HIGH RES
;------ DETERMINE BIT OFFSET
IN BYTE FROM COLUMN MASK
0480
R5:
04BD
22 EA
AND
; ADDRESS
OF
PEL WITHIN BYTE TO CH
; ------ DE rERM I NE BYTE OffSET FOR TH I S LOGAT I ON
I N COLUMN
04BF
03 EA
SHR
DX,CL
;
SH I FT BY CORRECT AMOUNT
04Cl
03 F2
ADO
SI,DX
;
INCREMENT THE POINTER
04C3
8A F7
MDV
DH, BH
;
GET THE
II
OF BITS
IN RESULT TO DH
;------ MULTIPLY
BH
(VALID BITS IN BYTE) BY CH (BIT OFFSET)
04C5
2A C9
SUB
CL,CL
ZERO INTO STORAGE LOCATION
04C7
R6:
04C7
DO C8
ROR
AL,l
LEFT JUSTIFY THE VALUE IN AL (FOR WRITE)
04C9
02 CD
ADD
CL,CH
ADD IN THE BIT OFFSET VALUE
04CB
FE Cf
DEC
BH
LOOP CONTROL
04CD
75 F8
JNl
R6
ON EX f T, Cl HAS SH
L FT
COUNT
TO
RESTORE BITS
04CF
8A
E3
MOV
AH,BL
GET MASK TO AH
0401
02 EC
SHR
AH,CL
MOVE THE MASk TO CORRECT LOCAT I ON
0403
58
POP
BX
RECOVER REG
0404
C3
RET
RETURN WITH EVERYTH I NG SET UP
0405
R3
ENDP
SCROLL UP
THIS ROUTINE SGROLLS UP THE
INFORMATION ON THE CRT
ENTRY - ­
CH,CL = UPPER LEFT CORNER OF REGION TO SCROLL
DH,DL = LOWER R I CHT CORNER OF REG I ON TO SCROLL
BOTH OF TilE ABOVE ARE
I N CHARACTER POS I T IONS
BH = FILL VALUE FOR BLANKED LINES
AL =
#
LINES TO SCROLL (AL=O MEANS BLANK THE ENT I RE FIELD)
OS = DATA SEGMENT
ES = REGEN SEGMENT
EXI T - ­
NOTH I NG,
THE SCREEN
I S SCROLLED
0405
GRAPH ICS UP
NEAR
0405
8A 08
MOY
;
SAVE LINE COUNT
IN BL
0407
88 Cl
MOY
;
GET UPPER LEFT POSITION
INTO AX REG
;------ USE CHARACTER SUBROUTINE FOR POSITIONING
;------ ADDRESS RETURNED
IS MULTIPLIED BY 2 FROM CORRECT VALUE
0409
E8 0748 R
CALL
04DC
8B F8
MOY
SAVE RESULT AS DESTINATION ADDRESS
;------ DETERMINE SIZE
OF
WINDOW
04DE
28 01
SUB
DX,CX
04EO
81 C2 0101
ADO
DX,101H
ADJUST VALUES
04E4
DO £6
SAL
DH,l
MULTI PLY
II
ROWS BY 4
5 I NCE 8 VERT DOTS/CHAR
04E6
DO E6
SAL
DH,1
AND EVEN/ODD ROWS
;------ DETERMINE CRT MODE
04E8
80 3£ 0049 R 06
CMP
TEST FOR MED I UM RES
04ED
73 04
JNC
F
I
NO_SOURCE
; ------ MEO I UM RES UP
04EF
DO E2
SAL
DL,1
1/
COLUMNS
*
2,
51 NCE 2 BYTES/CHAR
04F1
01 E7
SAL
01,1
OFFSET
+C2 SINCE 2 BYTES/GHAR
DETERMI NE THE SOURCE ADDRESS
I N THE BUFFER
04F3
R7:
F I NO SOURCE
04f3
06
PUSH
ES
GET SEGMENTS 80TH POINTINC TO REGEN
04F4
1F
POP
DS
04F5
2A ED
SUB
CH,CH
ZERO TO HIGH OF COUNT REG
04F7
DO E3
SAL
BL,1
MULTIPLY NUMBER OF LlNES BY 4
04F9
DO E3
SAL
BL,l
04FB
74 20
JZ
Rll
IF ZERO,
THEN BLANK ENTIRE FI ELD
04FD
8A c3
MDV
AL, BL
GET NUMBER OF LINES IN AL
04FF
B4 50
MOV
AH,80
80 BYTES/ROW
0501
F6 E4
MUL
AH
DETERMINE OFFSET TO SOURCE
0503
8B F7
MDV
SI,DI
SET UP SOURCE
0505
03 FO
ADD
51
,AX
ADD IN 0 F FSET TO
IT
0507
8A E6
MDV
AH,DH
NUMBER OF ROWS
IN FIELD
5-136 Video

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents