IBM AT 5170 Technical Reference page 324

Table of Contents

Advertisement

[8M Pl!r50na[
Co",pute .... MACRO A •• e",ble....
V • ..-",on 2.00
[-10
VIOEOI
--- 06/10/65
VIDEO DISPLAY BIDS
06-10-65
912
PAGE
913
;
--- ---------
--------
- - - -------------
--
-
------------ ----- -
- - -
-----
---
---­
974
I
WRITE STRING
915
-THIS ROUTINE WRITES A STRING OF CHARACTERS TO THE CRT.
91.
INPUT
911
~ALI
=
WRITE STRING COMMAND
0 -
3
918
IBH)
=
DISPLAY PAGE
919
(CX)
=
COUNT OF CHARACTERS TO WR
I
TE,
J F
(CX)
=
0
THEN RETURN
980
IOXI
=
CURSOR POSITION FOR START OF STRING WRITE
981
(BLI
=
ATTRIBUTE OF CHARACTER TO WRITE IF
~ALI
=
0
OR
(AL)
982
IESI
=
SOURCE STRING SEGMENT
983
1
SP
1
=
SOURCE STR I NG OFFSET
984
OUTPUT
985
NONE
98.
~~ ~ ~~-~~~ ~ ~~ ----;;~~----~~~;
---
--­
967
03B2
966
0382 3C 04
-
CMP
AL,04
TEST FOR
INVALID WRITE STRING OPTION
969
0384 73 7C
JNB
P59
I
F OPT I ON
I NV AL [0 THEN RETURN
990
0386 E3 7 A
JCXZ
P59
IF ZERO LENGTH STRING THEN RETURN
991
992
0386 68 F3
"OV
SI,BX
GET CURRENT CURSOR PAGE
993
038A CI
EE 08
SHR
SI,8
CLEAR H[GH BYTE
994
0380 01
E6
SAL
SI,
I
CONVERT TO PAGE OFFSET
1
S I
=
PAGE I
995
038F FF 84 0050 R
PUSH
(S I +OFFSET OCURSOR POSN)
j
SAVE CURRENT CURSOR POS I T
I
ON IN STACK
996
03C3 50
PUSH
AX
-
j
SAVE wRITE STRING OPTION
997
03C4 86 0200
"OV
AX ,OZOOH
SET NEW CURSOR
pas
I T I ON
996
03C7 CO
10
INT
IOH
999
03C9 56
POP
AX
RESTORE WRITE STRING OPTION
1000 03CA
P5Q:
1001
03CA 51
FUSH
CX
1002 03C8 53
PUSH
8X
1003 03CC 50
PUSH
AX
1004 03CO 86 EO
XCHG
AH,AL
PUT THE WRITE STRING OPTION
INTO
IAH)
1005 03CF 26:
8A 46 00
MOV
AL,ES: [BP]
GET CHARACTER FROM INPUT STRING
1006 0303 45
INC
8P
BUMP PO I NTER TO CHARACTER
1007
[ 006
TEST FOR SPEC I AL CHARACTER'S
1009
10 I 0 0304 3C 06
eMP
AL,08H
[S IT A BACKSPACE
101
I 0306 74 OC
JE
PSI
BACK SPACE
1012 0308 3C 00
eMP
AL,CR
IS
['f CARR I AGE RETURN
1013 030A 74 06
JE
PSI
CAR RET
1014 030C 3C OA
eMP
AL,LF
IS TT A LINE FEED
1015 030E 74 04
JE
PSI
LINE FEED
1016 03EO 3C 07
eMP
AL,07H
IS
IT A BELL
1017 03E2 75 00
JNE
P52
I F NOT THEN DO WR I TE CHARACTER
1016 03E4
PSI!
1019 03E4 B4 OE
MOV
AH,OEH
TTY CHARACTER WR I TE
1020 03E6 CO
10
IN1
10H
; -WR I TE TTY CHARACTER TO THE CRT
1021
03E6 68 94 0050
R
MOV
~~,[SI+OFFSET
PCURSOR_POSN)
;
g~~Tg~~R~~61;~~~~R
POSITION
t
022 03EC 56
POP
1023 03EO 5B
POP
8X
1024 03EE 59
POP
ex
1025 03EF E8 2E
J"P
SHORT P54
GO SET CURSOR POS I T
1
ON AND CONT I NUE
102603FI
P52:
1027 03FI 89 0001
"DV
CX,'
SET CHARACTER WR I TE AMOUNT TO ONE
1026 03F4 60 FC 02
C"P
AH.2
IS THE ATTRIBUTE
IN THE STRING
1029 03F7 72 05
J8
P53
IF NOT THEN SKIP
1030 03F9 26:
8A 5E
MOV
BL,ES; [BP]
ELSE GET NEW ATTR IBUTE
[03!
03FO 45
INC
8P
BUMP STR I NG PO INTER
1032 03FE
P53:
1033 03FE 84 09
"OV
AH , 09H
GOT CHARACTER
1034 0400 CO
10
IN1
10H
WR I TE CHARACTER TO THE CRT
1035 0402 58
POP
AX
RESTORE REG ISTERS
1036 0403 5B
POP
8X
1037, 0404 59
POP
ex
1038 0405 FE C2
INC
DC
I NCREMENT COLUMN COUNTER
10390407 3A 16 004A R
C"P
DL,BYTE PTR IIICRT COLS
IF COLS ARE "I TH I N RANGE FOR TH I S MODE
1040 040B 72
12
J8
P54
-
THEN GO TO COLUMNS SET
1041
0400 FE C6
INC
DH
8UMP ROW COUNTER
BY
ONE
1042 040F 2A 02
SU8
DL,DL
SET COLUMN COUNTER TO ZERO
10430411
60 FE
19
eMP
DH,25
I F ROWS ARE LESS THAN 25 THEN
1044 0414 72 09
J8
P54
GO TO ROWS_COLUMNS_SET
1045
10460416 50
PUSH
AX
ELSE SCROLL SCREEN
r
047 0417 B8 OEOA
MOV
AX
I
OEOAH
DO SCROLL ONE LINE
1048 04
r
A CO
10
INT
IOH
RESET ROW COUNTER TO 24
1049 041C FE CE
OEe
DH
1050 041E 58
POP
AX
RESTORE REG
J
STERS
1051
041F
PS4:
ROW COLUMNS SET
1052 041F 50
PUSH
AX
SAVE-WR I TE S'fR I NG OPT I ON
1053 0420 88 0200
MOV
AX
I
0200H
SET NEW CURSOR POS I T I ON COMMAND
1054 0423 CD
to
INT
IOH
ESTABLISH NEW CURSOR POSITION
1055 0425 58
POP
AX
[056 0426 E2 A2
LOOP
PSO
DO IT ONCE MORE UNTIL (CX)
=
ZERO
1057
t 058 0428 SA
POP
OX
RESTORE OL.D CURSOR COORD I NATES
t
059 0429 A8 0
I
TEST
AL,OIH
J
F CURSOR WAS NOT TO 8E MOVED THEN
r
060 0428 75 05
JNZ
P'i9
THEN EXIT WITHOUT RESETTING OLD VALUE
[061
0420 88 0200
MOV
AX,0200H
ELSE RESTORE OLD CURSOR POSITION
1062 0430 CD
[0
INT
10H
1063 0432
P59:
DONE -
EXIT WRITE STRING
1064 0432 E9 0' 2E R
V IDEO_RETURN
RETURN TO CALLER
[065
1066 0435
WR ITE STR I NG
ENDP
5-152
VIDEO1

Advertisement

Table of Contents
loading

Table of Contents