IBM PC CONVERTIBLE Technical Reference page 131

Table of Contents

Advertisement

0737
45
0738
C3
0739
INC
BP
RET
S23
ENDP
; ADJUST PO INTER
; ALL DONE
V4_POSITION - S26
ENTRY
EXIT
0739
0739
Al 0050 R
073C
073C
53
0730
8B 08
073F
8A C4
0741
F6 26 004A R
0745
01 EO
0747
01 EO
0749
2A FF
074B
03 C3
0740
5B
074E
C3
074F
ENTRY
EXIT
074F
074F
50
0750
50
0751
B4 03
0753
8A 3E 0062
0757
CD 10
0759
58
075A
3C 08
075C
74 52
075E
3C 00
0760
74 57
0762
3C OA
S26
THIS ROUTINE 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.
NO REGISTERS, MEMORY LOCATION
CURSOR_POSN I S USED
AX CONTAINS OFFSET INTO REGEN BUFFER
PROC
NEAR
MOV
AX, CURSOR_POSN
GET CURRENT CURSOR
GRAPH_POSN
LABEL
NEAR
S26
PUSH
BX
SAVE REGISTER
MOV
BX,AX
SAVE COPY OF CURRENT CURSOR
MOV
AL,AH
GET ROWS TO AL
MUL
BYTE PTR CRLCOLS
MULTIPLY BY BYTES/COLUMN
SHL
AX,1
MTPLY
*
4 SINCE 4 ROWS/BYTE
SHL
AX,1
SUB
BH, BH
ISOLATE COLUMN VALUE
ADD
AX,BX
DETERMINE OFFSET
POP
BX
RECOVER POINTER
RET
ALL DONE
ENDP
THIS INTERFACE PROVIDES A TELETYPE LIKE INTERF TO VIDEO
CARD. THE INPUT CHARACTER IS WRITTEN TO CURRENT CURSOR
POSITION, AND THE CURSOR IS MOVED TO NEXT POSITION. IF
CURSOR LEAVES THE LAST COLUMN OF THE FIELD, COLUMN IS SET
TO ZERO, AND THE ROW VALUE IS INCREMENTED. IF ROW VALUE
LEAVES THE FIELD, CURSOR IS PLACED ON LAST ROW, FIRST
COLUMN, AND ENTIRE SCREEN IS SCROLLED UP ONE LINE. WHEN
THE SCREEN IS SCROLLED UP, THE ATTRIBUTE FOR FILLING NEW
BLANKED LINE IS READ FROM THE CURSOR POSITION ON PREVIOUS
LINE BEFORE SCROLL, IN CHARACTER MODE. IN GRAPHICS MODE,
THE 0 COLOR IS USED. FOR BKSP, THE CURSOR COLUMN POSITION
I S DECREMENTED BY
1.
I F THE CURSOR COLUMN ISO AND A BKSP
OCCURS CURSOR COLUMN REMAINS O. IT DOES NOT BACKSPACE TO
THE PREVIOUS LINE.
(AL)
=
CHARACTER TO BE WRITTEN
NOTE:
BACK SPACE, CR, BELL AND LINE FEED ARE HANDLED
AS COMMANDS RATHER THAN AS DISPLAYABLE GRAPHICS
(BL)
=
FOREGROUND COLOR FOR CHAR WRITE IF CURRENTLY I N A
GRAPHICS MODE
(OS)
=
DATA SEGMENT
ALL REGI STERS SAVED
ASSUME
CS: ROMCODE, OS: DATA
WRITE_TTY
PUSH
PUSH
MOV
MOV
INT
POP
AX
AX
PROC
NEAR
AH, GELCURSOILINFO
BH,ACTIVE_PAGE
VIDEO_FN
AX
SAVE REGISTERS
SAVE CHAR TO WRITE
READ CURRENT CURSOR POSITION
SET CURRENT ACTIVE PAGE
I
NT 10H
RECOVER CHAR
OX NOW HAS THE CURRENT CURSOR POSITION
CMP
JE
CMP
JE
CMP
AL,8
U8
AL ,DOH
U9
AL,OAH
IS IT A BACKSPACE
BACICSPACE
IS IT CARRIAGE RETURN
CAR_RET
IS IT A LINE FEED
2-106 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents