IBM 5170 Technical Reference page 282

Hide thumbs Also See for 5170:
Table of Contents

Advertisement

06Fl
GRAPH I CS_READ
ENOP
~
-E;P;NO:MEO:;;O
~OR ~ ~--
--­-­-­--­-
---~
.... --------­
j
THIS ROUTINE EXPANDS THE LOW 2 BITS IN BL TO
;
FILL THE ENT I RE BX REG I STER
; ENTRY -­
;
BL
=
COLOR TO BE USED ( LOW 2 BITS )
; EXIT -­
;
BX" COLOR TO BE USED ( 8 REPLI CAT! ONS OF THE 2 COLOR BITS
06Fl
~~9"--"-PROC---"NE~R----------------------------
06Fl
06F4
06F6
80 E3 03
8A C3
51
AND
MOV
PUSH
BL,3
AL, BL
CX
I SOLATE THE COLOR BITS
COPY TO AL
SAVE REGISTER
06F7
06FA
89 0003
S20:
MOV
CX,3
NUM8ER OF TIMES TO DO TH I S
06FA
06FC
06FE
0700
DO EO
DO EO
OA 08
E2 F8
5Al
5Al
OR
LOOP
AL,1
AL,1
BL,AL
520
LEFT SHI FT BY
2
ANOTHER COLOR VERS I ON INTO BL
FILL ALL OF BL
0702
8A F8
MOV
BH.BL
FILL UPPER PORT
j
ON
0704
59
POP
ex
REGISTER BACK
0705
e3
RET
ALL DONE
0706
519
ENDP
----
....
----
­
--­ ---­
---­--­
--­
--------­-­
_
..
-
_ ..
; EXPAND BYTE
;
;
TH I S ROUT I NE TAKES THE BYTE IN AL AND DOUBLES ALL
OF THE BITS, TURNING THE
8
81TS INTO
16
BITS.
;
THE RESULT IS LEFT IN AX
-­--­-
---
-- ­-------------­--­--­
-­-­----
0706
521
PROC
NEAR
0706
52
PUSH
ox
SAVE REG I STERS
0707
51
PUSH
ex
0708
53
PUSH
BX
0709
070B
28 02
69
0001
SUB
MOV
OX, OX
CX,1
RESULT REGISTER
MASK REGISTER
070E
S22:
070E
0710
8B 08
23 09
MOV
AND
BX,AX
BX,CX
BASE I NTO TEMP
USE MASK TO EXTRACT A
BIT
0712
OB 03
OR
OX,BX
PUT INTO RESULT REGISTER
0714
0716
0718
071A
01 EO
01 £1
8E! 08
23
09
SHl
SHl
MOV
AND
AX,1
CX,1
BX,AX
BX,CX
SH I FT BASE AND MASK BY 1
BASE TO TEMP
EXTRACT THE SAME BIT
071C
06 03
OR
DX,BX
PUT I NTO RESULT
071£
D1 E1
SHl
CX,1
SHIFT ONL.Y MASK
NOW~
MOVING TO NEXT BASE
0720
73 EC
JNe
522
USE MASK BIT COMING OUT TO TERMINATE
0722
86 C2
MOV
AX,oX
RESULT TO PARM REG I STER
0724
56
POP
BX
0725
59
POP
ex
RECOVER REG I STERS
0726
5A
POP
ox
0727
on8
e3
RET
ALL DONE
521
ENOP
;
------
..
--­-­
--
-_
..
----­
---­
--­
-
----­
-- --------­
MED_READ_BYTE
THIS ROUTINE WILL TAKE
2
ByTES FROM THE REGEN BUFFER,
COMPARE AGAINST THE CURRENT FOREGROUND COLOR, AND PLACE
THE CORRESPONDING ON/OFF BIT PATTERN
POS I T I ON I N THE SAVE AREA
INTO THE CURRENT
ENTRY -­
SI,DS'" POINTER TO REGEN AREA OF INTEREST
SX '" EXPANDED FOREGROUND COLOR
BP
PO I NTER TO SAVE AREA
EX
I T -­
0728
0728
072A
0720
8A 24
8A 44 01
E!9 COOO
SP I S I NCREMENT AFTER SAVE
-
­
--
­
---­ -­
-
­
-
.. _-
..
--------_
.........
---_
..
_
..
­-
... -
..
­
--
..
_
..
_
..
­
523
PROC
NEAR
MOV
AH, [51
I
GET FI RST BYTE
MOV
AL, [SI+1
J
GET SECOND BYTE
MOV
eX,OCOOOH
2 BIT MASK TO TEST THE ENTR I ES
0730
62 00
MOV
DL,O
RESULT REG I STER
0732
S24:
0732
85
Cl
TEST
AX,CX
IS THIS SECTION BACKGROllND?
0734
F8
ele
CLEAR CARRY IN HOPES THAT IT 15
0735
74 01
JZ
.25
I F ZERO,
I TIS BACKGROUND
0737
F9
STe
WASN'T, SO SET CARRY
0738
DO 02
S25:
Rel
DL,1
MOVE THAT BIT I NTO THE RESULT
073A
073C
073E
0740
D1 E9
01 £9
73
F2
88 56
00
SHR
SH.
JNe
MOV
CX,l
CX,1
S2.
I
BPI.Dl
MOVE THE MASK TO THE RIGHT BY
2
BITS
DO IT AGAIN IF MASK DIDN'T FALL OUT
STORE RESULT
IN
SAVE AREA
07113
45
INe
BP
ADJUST POINTER
0744
C3
RET
ALL DONE
0745
523
ENOP
;
-------
..
-----------
.......
------------------­
V~ii~~S~6~~~NE
TAKES THE CURSOR POSITION CONTAINED IN
THE MEMORY LOCATION, AND CONVERTS IT INTO AN OFFSET
INTO THE REGEN BUFFER, ASSUMING ONE BYTE/CHAR,
FOR MEDIUM RESOLUTION GRAPHICS, THE NUMBER MUST
BE DOUBLED.
ENTRY -­ NO REG I STERS, MEMORY LOCAT I ON CURSOR_POSN
I S
USED
EXIT... ­
AX CONTAINS OFFSET INTO REGEN BUFFER
0745
~26----- ;~;c-
---
N~AR
--­--­---­-. . . ---­-­---­
0745
Al 0050
R
MOV
AX,CURSOR POSN
GET CURRENT CURSOR
0748
GRAPH POSN
L.ABEL
NEAR
0748
53
-
PUSH
ex
SAVE REG
j
STER
0749
0748
0740
0751
88 08
8A
C4
F6 26 004A R
01
EO
MOV
MOV
MUL
SI-IL
aX,Ax
AL,AH
BYTE PTR CRT_COLS
AX,1
SAVE A COpy OF CURRENT CURSOR
GET ROWS TO AL
MULT
!
PLY BY BYT ESjCOLUMN
MULTIPLY
*
4
SINCE
1\
ROWS/BYTE
0753
Dl EO
SHL
AX, 1
0755
2A FF
SUB
BH, BH
ISOLATE COLUI'1N VAL.UE
0757
03 C3
ADD
AX, BX
DETERM I NE OFFSET
0759
5B
POP
BX
RECOVER POINTER
075A
C3
RET
ALL DONE
0758
526
ENOP
;
-- -----­ --­ ----------- ..
-----------------­
------­
WRITE TTY
THIS INTERFACE PROVIDES A TELETYPE LIKE INTERFACE TO T'lE
VIDEO CARD.
THE INPUT CHARACTER IS WRITTEN TO THE CJRRENT
CURSOR POSITION, AND THE CURSOR IS MOVED TO THE NEXT POSITION.
IF THE CURSOR LEAVES THE LAST COLUMN OF THE FIELD, TilE COLUMN
I S SET TO ZERO, AND THE ROW VALUE I S I NCREMENTED.
I F THE ROW
ROW VALUE LEAVES THE FIELD, THE CURSOR IS PLACED ON THE L.AST ROW,
FIRST COLUMN, AND THE ENTIRE SCREEN IS SCROLL.ED UP ONE LINE.
WHEN THE SCREEN IS SCROLLED UP, THE ATTRIBUTE FOR FILLING THE
NEWLY BLANKED LINE IS READ FROM THE CURSOR POSITION ON THE PREVIOUS
LINE BEFORE THE SCROLL,
IN CHARACTER MODE.
IN GRAPHICS
MODE~
THE 0 COLOR I S USED.
ENTRY -­
(AH)
=
CURRENT CRT MODE
(AL)
=
CliARACTER TO 8£ WRITTEN
NOTE THAT BACK SPACE, CAR RET. BELl.. AND 1I NE FEED ARE HANDLED
5·140 Video

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents