IBM AT 5170 Technical Reference page 330

Table of Contents

Advertisement

IBM Pereonet COMpute,.. MACRO Assembler
Ver.ion 02.00
1-16
VIDEOI
--- 06/10/85
VIDEO DISPLAY BIOS
06-10-85
1637
;
SI,OS
=
POINTER TO REGEN AREA OF
INTEREST
1636
;
BX
=
EXPANDED FOREGROUND COLOR
1639
,
BP
=
POINTER TO SAVE AREA
1640
I
EXIT - ­
1641
;
SIANO BP ARE
INCREMENTED
1642
~~;-
--
- -
;~~;
- - --
~~~~
-------
- - -
----
- - - - - - - - - -- -- - - - -
1643 06BC
1644 06BC AD
LODSW
GET F[RST BYTE AND SECOND BYTES
1645 0680
86
C4
XCHG
AL, AH
SWAP FOR COMPARE
1646 06BF B9 COOO
MOV
CX.OCOOOH
2
BIT MASK TO TEST THE ENTRIES
1647 06C2 B2 00
MOV
DL, 0
RESULT REG I S TER
1648 ObC4
S24
~
1649 06C4 85 CI
TEST
AX,CX
IS THI S SECTI ON BACKGROUND?
1650 06C6
74
01
52.
IF ZERO.
IT IS BACKGROUND
(CARRY.,O)
1651
06C8 F9
5TC
WASN'T.
SO SET CARRY
"Z
1652 06C9
S25:
1653 06C9 DO 02
RCL
DL,I
MOVE THAT BIT I NTO THE RESULT
'654
06C8 CI E9
02
5HR
CX.2
MOVE THE MASK TO THE RIGHT BY
2
81TS
1655 06CE 13 F4
"NC
52.
DO IT AGAIN IF MASK DIDN'T FALL OUT
1656 0600 88 56 00
MOV
[8Pj.OL
STORE RESULT
IN SAVE AREA
1657 0603 45
INC
BP
ADJUST POINTER
1658 0604 C3
RET
ALL DONE
1659 0605
523
ENDP
1660
;
---- ----- - -
-
-
---
- - -
----------------
- - - -
1661
V4 POSITION
166,2
TR [S ROUT I NE TAKES THE CURSOR POS [T I ON CONT A I NED
1 N
1663
THE MEMORY LOCATION, AND CONVERTS IT
INTO AN OFFSET
1664
INTO THE REGEN BUFFER,
ASSUMING ONE BYTE/CHAR.
1665
FOR MEDIUM RESOLUTION GRAPHICS. THE NUMBER MUST
1666
BE DOUBLED.
1661
ENTRY --
NO
REGISTERS,MEMORY LOCATION .CURSOR POSN IS USED
1668
EXIT--
­
1669
AX CONTAINS OFFSET INTO REGEN BUFFER
1610
;~~
--
---PR~
--
--~~;R-
--------------------­
1611
0605
1612 0605 AI
0050 R
MOV
AX ,.CURSOR POSN
GET CURRENT CURSOR
1673 0608
GRAPH POSN
LABEL
NEAR
1674 0608 53
-
PUSH
BX
SAVE REGI STER
1675 0609 88 08
MOV
BX,AX
SAVE A COPY OF CURRENT CURSOR
1676 060B 8A C4
MOV
AL.AH
GET ROWS TO AL
1677 0600 F6 26 004A R
MUL
BYTE PTR OCRT COLS
MULTIPLY BY BYTES/COLUMN
1678 06EI CI EO 02
SHL
AX.2
-
MULTIPLY· 4 SINCE 4 ROWS/BYTE
1619 06E4
2A FF
SU8
BH,BH
I SOLATE COLUMN VALUE
1680 06E6 03 C3
ADD
AX,BX
DETERM I NE OFFSET
1681
06E8 58
POP
BX
RECOVER POINTER
1682 06E9 C3
RET
ALL DONE
1683 06EA
S26
ENOP
1684
; --- WR I TE_TTY ----- - --------------------------------- -- ----------------------- ­
1685
I
I
1686
THIS INTERFACE PROVIDES A TELETYPE LIKE INTERFACE TO THE
1687
V IDEO CARDS.
THE I NPUT CHARACTER IS WR I TTEN TO THE CURRENT
1688
CURSOR POSITION,
AND THE CURSOR IS MOVED TO THE NEXT POSITION.
1689
IF THE CURSOR LEAVES THE LAST COLUMN OF THE FIELD, THE COLUMN
1690
I S SET TO ZERO, AND THE ROW VALUE I S INCREMENTED.
I
F THE ROW
1691
ROW VALUE LEAVES THE FIELD. THE CURSOR
IS PLACED ON THE LAST ROW,
1692
FIRST COLUMN.
AND THE ENTIRE SCREEN
[S SCROLLED UP ONE LINE.
1693
WHEN THE SCREEN IS SCROLLED UP,
THE ATTR[8UTE FOR FILLING THE
1694
NEWL Y 8LANKED LINE
IS READ FROM THE CURSOR
pas
I T I ON ON THE PREV 10US
1695
LINE BEFORE THE SCROLL.
IN CHARACTER MODE.
IN GRAPHICS MODE,
1696
THE 0 COLOR
[S USED.
1697
ENTRY - ­
1698
(AH)
=
CURRENT CRT MODE
1699
(ALl
=
CHARACTER TO BE WR ITTEN
1100
NOTE THAT BACK SPACE. CARRIAGE RETURN, BELL AND LINE FEED ARE
1101
HANDLED AS COMMANDS RATHER THAN AS DISPLAY GRAPHICS CHARACTERS
110,2
fBU
FOREGROUND COLOR FOR CHAR WRITE IF CURRENTLY
IN
A GRAPHICS MODE
1103
EXIT - ­
1104
ALL REGISTERS SAVED
1105
1106
ASSUME
DSIOATA
1101 06EA
WRITE TTY
PROC
NEAR
1108 06EA 50
-
PUSH
AX
SAVE REGI STERS
1109 06EB 50
PUSH
AX
SAVE CHARACTER TO WRITE
1110 06EC 84 03
MOV
AH,03H
1711
O&EE 8A 3E 0062 R
NOV
BH,.ACTiVE PAGE
GET CURRENT PAGE SETTi NG
1112 06F2 CO
10
INT
IOH
-
READ THE CURRENT CURSOR POS I T I ON
1113 06F4 58
POP
AX
RECOVER CHARACTER
1114
11 IS
1-----
OX NOW HAS THE CURRENT CURSOR POSITION
1116
1111 0&F5 3C 00
COP
AL.CR
1SIT CARR
I
AGE RETURN OR CONTROL
1118 06Fl 164&
"BE
U8
GO TO CONTROL CHECKS
IF
[T
[S
1119
1120
1-----
WRITE THE CHAR TO THE SCREEN
1121
06F.
UOI
1122 06F. B4 OA
MOV
AH,OAH
WR I TE CHARACTER ONLY COr.tMAND
1123 06FB B9 0001
MOV
CX,I
ONLY ONE CHARACTER
1124 06FE CO
I
0
INT
10H
WR I TE THE CHARACTER
1125
1126
POS I T I ON THE CURSOR FOR NEXT CHAR
1121
1128 0100 FE C2
INC
DL
112' 0102 3A
16 004A R
CMP
OL,BYTE PTR OCRT COLS
TEST FOR COLUMN OVERFLOW
1130 0106 15 33
JNZ
U1
-
SET CURSOR
1131
01088200
NOV
DL,O
COLUMN FOR CURSOR
1132 010A 80 FE
18
COP
OH,25-1
CHECK FOR LAST ROW
1133 0100 15 2A
"NZ
Ub
SET_CURSOR_'NC
1134
1135
SCROLL REQU [RED
1136 010F
1131 OlaF 84 02
MOV
AH,02H
11380111 CD 10
INT
10H
;
SET THE CUR SOR
1139
1140
1-----
DETERMINE VALUE TO FILL WITH DURING SCROLL
1141
1142 0113 AD 004' R
MOV
AL ,OCRT_MODE
; GET THE CURRENT MODE
11430116 3C 04
CMP
AL.4
1144 0718 102 06
"C
U2
;
READ-CURSOR
1145 aliA 3C 07
CMP
AL,T
1146 011C B7 00
MOV
BH,O
FILL WITH BACKGROUND
IT41 011E 15 06
"NE
U3
SCROLL-UP
1148 01.20
READ-CURSOR
U"
1149 01.20 84 08
MOV
AH,08H
GET READ CURSOR COMMAND
1150 012,2 CD
10
INT
, OH
READ CHARIATTR AT CURRENT CURSOR
5-158
VIDEO1

Advertisement

Table of Contents
loading

Table of Contents