IBM 5170 Technical Reference page 275

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

TEST FOR aw CARD
0202
74 03
JE
N12
02CF
80 fC 07
eMP
AH,7
02D4
E9 052E R
JMP
GRAPH I CS_DOWN
0207
N12:
CONT I NUE_DDWN
0207
PUSH
BX
SAVE ATTRIBUTE IN BH
"
0208
02DA
0200
02DF
02El
02E3
8B C2
E8 026F R
74 20
2B Fa
BA E6
2A El
MOV
CALL
JZ
SUB
MOV
SUB
AX,DX
SCROLL_pas I T I ON ;
,,6
SI,AX
AH,DH
AH,BL
LOWER RIGHT CORNER
GET REGEN LOCATION
SI
I S FROM ADDRESS
GET TOTAL
II
ROWS
COUNT TO MOVE I N SCROLL
02E5
02E5
E8 02B6 R
N13:
CALL
Nl0
MOVE ONE ROW
02E8
28 F5
SUB
S I, 8P
02EA
26 FD
SUB
01, BP
02EC
FE CC
DEC
AH
02EE
75 F5
JHZ
N13
~
02FO
02FO
5.
N14:
POP
AX
RECOVER ATTR I BuTE IN AH
02f1
BO
20
MOV
AL, '
02F]
02F3
02F6
E8 02BF R
28 FD
N15:
CALL
SUB
N11
OI,BP
CLEAR ONE ROW
GO TO NEXT ROW
02F8
FE C8
DEC
BL
02FA
02FC
75
F7
E9 0257 R
JN2
JMP
N15
N5
;
SCROLL_END
02FF
N16:
02FF
8A DE
MDV
BL,DH
0301
E8 ED
JMP
Nl'
0303
SCROLL_DOWN
ENDP
;~~ __ ~ __ .. _
TEST IF AMOUNT OF LINES TO BE SCROLLED:= AMOUNT OF LINES IN WINDOW
;~-----~--
IF TRUE THEN WE ADJUST AL,
IF FALSE WE RETURN •••
0303
TEST_L I NE_COUNT PROC
NEAR
0303
0105
0307
8A 08
OA CO
74 OE
MOV
OR
JZ
BL,AL
AL,AL
BL_SET
SAVE LINE COUNT IN BL
TEST IF AL
'S
ALREADY ZERO
I FIT I S THEN RETURN ••.
0309
030A
50
8A C6
PUSH
MOV
AX
AL,OH
SAVE AX
SUBTRACT LOWER ROW FROM uppER ROW
030e
030E
0310
0312
0313
2A C5
FE CO
3A C3
5.
75 02
SUB
INC
CMP
PDP
JNE
AL,CH
AL
AL,BL
AX
BL_SET
ADJUST 0 I FERENCE BY 1
TEST I F LINE COUNT
:=
AMOUNT OF ROWS IN WINDOW
RESTORE AX
I F NOT THEN WE'RE ALL SET
0315
2A DB
SUB
Bl,BL
OTHERW I Sf SET 8L TO ZERO
0317
0317
C3
RET
RETURN
0318
TEST_LINE_COUNT ENDP
:
­
~
_
....
~----- ~-
..
­
---
_
..
---­
~-
--
..
----
..
~
..
~-
READ_AC_CURRENT
THIS ROUTINE READS THE ATTRIBUTE AND CHARACTER AT THE CURRENT
CURSOR POSITION AND RETURNS THEM TO THE CALLER
INPUT
(AH 1 "" CURRENT CRT MODE
(BH) "" 0 I SPLAY PAGE ( ALPHA MODES ONLY )
(OS)
:r::
DATA SEGMENT
(ES) '" REGEN' SEGMENT
OUTPUT
(AL) '" CHAR READ
~
(AHJ
=
ATTRIBUTE READ
j - - - ­ - ....
;;;~~
Eo. . . cs;
c~D~ ~
0;
;DA1A~Es
;OA1;" --­
0318
0318
80 FC 04
READ_AC_CURRENT pROe
CMP
AH,4
NEAR
IS THIS GRAPHICS
0318
72 as
JC
Pl
0310
80 FC 07
CMP
AH,7
IS THIS BW CARD
0320
74 03
JE
Pl
0322
E9 0669 R
JMP
GRAPH I CS_REAO
0325
Pl:
0325
E8 0342 R
CALL
FIND_POSITION
0328
a6 F3
MOV
SI, BX
ESTABLISH ADDRESSING IN 51
j----- ..
WAIT FOR HORIZONTAL RETRACE
032A
03ZE
88 16 0063 R
83 c2 06
MOV
AOO
OX, AODR_684S
DX.6
GET BASE ADDRESS
PQINT AT STATUS PORT
0331
06
PUSH
ES
0332
1F
POP
OS
GET SEGMENT FOR QU I CK ACCESS
0333
P2:
WAIT FOR RETRACE LOW
0333
EC
IN
AL,OX
GET STATUS
0334
A8 01
TEST
AL,1
IS HORZ RETRACE LOW
0336
75 FB
JNZ
P2
WAIT UNTil IT IS
0338
FA
eLi
NO MORE INTERRUPTS
0339
0339
033A
033C
Ee
A8 01
74 F6
P3:
IN
TEST
JZ
AL,DX
AL,l
P3
WA I T FOR RETRACE HIGH
GET STATUS
IS IT HIGH
WAIT UNTI L iT IS
033E
AD
LODSW
GET THE CHAR/ATTR
033F
0342
(9 0144 R
JMP
V IDEO RETURN
READ_AC_CURRENT ENDP -
0342
FIND POSITION
PROC
NEAR
0342
SA CF
-
MOV
CL, BH
; 0
j
SPLAY PAGE TO CX
03114
0346
03118
32 ED
86 Fl
01 E6
XOR
MDV
SAL
CH,CH
S I, CX
SI,l
; MOVE TO S I FOR INDEX
;
'*
2 FOR WORD OFFSET
034A
034E
88 84 0050 R
33 DB
MOV
XOR
AX, I S I
+
OFFSET CURSOR_POSN 1
; GET ROW/COLUMN OF THAT PAGE
BX, BX
; SET START ADDRESS TO ZERO
0350
E3 06
JCXZ
P5
; NO_PAGE
0352
P4:
PAGE LOOP
0352
03 1E OOIlC R
ADD
aX,CRT_LEN
LENGTH OF BUFFER
r--..
0356
0358
0358
0358
0350
O15E
E2 FA
E8 0211
03 08
e3
R
P5;
LOOP
CALL
ADO
RET
F I ND_POS I T I ON
P4
POSITION
BX,AX
ENOP
NO_PACE
DETERMINE LOCATION IN REGEN
ADD TO START OF REGEN
WR I TE_AC_CURRENT
THIS ROUTINE WRITES THE ATTRIBUTE AND CHARACTER AT
THE CURRENT CURSOR POSITION
INPUT
(AH)
=
CURRENT CRT MODE
( 8H 1 = D I SPLAY PAGE
(CX) ;:; COUNT OF CHARACTERS TO WRITE
(ALl
=
CHAR TO WRITE
(BL) '" ATTR I BUTE OF CHAR TO WR I TE
(OS)
=
DATA SEGMENT
(ES)
=
REGEN SEGMENT
OUTPUT
NONE
Video 5·133

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents