IBM PC CONVERTIBLE Technical Reference page 135

Table of Contents

Advertisement

0879
0879
087A
087C
087F
0880
0882
0884
0887
0889
088B
088E
088F
0891
0893
0895
0899
089A
089B
089C
089E
08AO
08A1
08A1
08A2
08A3
08M
08A5
08A7
08AB
08AC
08AE
08BO
08B2
08B4
08B6
08B8
08BA
08BC
WRITE_STRING
INPUT
OUTPUT
55
8B EC
8E 46 10
50
3C 04
72 03
E9 0924 R
OB C9
75 03
E9 0924 R
53
8A OF
32 FF
01 E3
8B B7 0050
5B
56
50
B4 02
CD 10
58
51
53
50
06
86 EO
26: 8A 46 00
45
THIS ROUTINE WRITES A STRING OF CHARACTERS TO THE CRT.
(AL)
~
WRITE STRING COMMAND
0 - 3
(BH)
DISPLAY PAGE
(Bl)
~
ATTRIBUTE OF CHAR TO WRITE IF AL
~~
0 OR AL
~~
1
(CX)
~
COUNT OF CHARACTERS TO WRITE, IF
CX~O
THEN RETURN
(OX)
~
CURSOR POSITION FOR STRING TO BE WRITTEN
ROW
~
(0-24), COL
~
(0- (CRT COLUMNS-I))
CRT COLUMN SIZE IS EITHER 80 OR 40
(ES)
~
STRING SEGMENT
(BP)
~
STRING OFFSET
(OS)
~
DATA SEGMENT
N/A
WRITE_STRING
PROC
NEAR
PUSH
BP
MOV
BP, SP
MOV
ES, [BP] . ES_POS
RECOVER STRING SEG ADDRESS
POP
BP
CMP
Al,04
TEST FOR INVAL STRING OPTION
JB
WO
IF OPTION INVAL THEN RETURN
JMP
DONE
WO:
OR
CX,CX
TEST FOR 0 LENGTH STRING
JNZ
WI
JMP
DONE
IF 0 LENGTH STRING, RETURN
WI:
PUSH
BX
SAVE PAGE AND POSSIBLE ATTR
MOV
BL, BH
GET CURRENT CURSOR POSITION
XOR
BH, BH
SAL
BX ,I
MOV
SI, [BX+OFFSET CURSOR_POSN]
POP
BX
RESTORE BX
PUSH
SI
SAVE CURRENT CURSOR POSITION
PUSH
AX
SAVE WRITE STRING OPTION
MOV
AH, SELCURSOR_POS
SET NEW CURSOR POSITION
INT
VIDEO_FN
POP
AX
RESTORE WRITE STRING OPTION
WRITE_CHAR:
PUSH
CX
PUSH
BX
PUSH
AX
PUSH
ES
XCHG
AH,AL
PUT WRT STRING OPTION
IN
AH
MOV
AL,ES: [BP]
GET CHAR FROM INPUT STRING
INC
BP
BUMP POINTER TO CHARACTER
; ----- TEST FOR SPECIAL CHARACTER'S
3C 08
CMP
AL,8
IS IT A BACKSPACE
74 OC
JE
DO_TTY
BACK-SPACE
3C OD
CMP
AL ,ODH
IS IT CARRIAGE RETURN
74 08
JE
DO_TTY
CAR_RET
3C OA
CMP
AL ,OAH
IS IT A LINE FEED
74 04
JE
DO_TTY
LINE_FEED
3C 07
CMP
AL ,07H
IS IT A BELL
75 1C
JNE
GELATTRI BUTE
I F NOT THEN DO WRITE CHAR
DO_TTY:
2-110 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents