IBM XT 5160 Technical Reference page 218

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

PAGE
MOV
SI,BX
SAVE CURRENT CURSOR PAGE
MOV
BL, BH
MOVE PAGE TO LOW BYTE
XOR
BH ,BH
CLEAR HIGH BYTE
XCHG
S I ,BX
MOVE OFFSET AND RESTORE PAGE REG I STER
SAL
S 1,1
CONVERT TO PAGE OFFSET
(S I
=
PAGE)
PUSH
[SI+OFFSET OCURSOR_POSN]
SAVE CURRENT CURSOR POSITION IN STACK
MOV
AX, 0200H
;
SET NEW CURSOR POS I T I ON
INT
10H
5-71
SET CHARACTER WR I TE AMOUNT TO ONE
IS THE ATTRIBUTE IN THE STRING
IF NOT THEN SKIP
ELSE GET NEW ATTRIBUTE
BUMP STR I NG PO INTER
GOT CHARACTER
WR I TE CHARACTER TO THE CRT
RESTORE REG I STERS
I NCREMENT COLUMN COUNTER
IF COLS ARE WITH I N RANGE FOR TH I S MODE
THEN GO TO COLUMNS SET
BUMP ROW COUNTER BY ONE
SET COLUMN COUNTER TO ZERO
I F ROWS ARE LESS THAN 25 THEN
GO TO ROWS_COLUMNS_SET
ELSE SCROLL SCREEN ONE LINE
RESET ROW COUNTER TO 24
ROW COLUMNS SET
SET NEW CURSOR POS I T I ON COMMAND
ESTABL I SH NEW CURSOR POS I T I ON
DO IT ONCE MORE UNTIL
(CX)
=
ZERO
RESTORE OLD CURSOR COORDINATES
RECOVER WR I TE STR I NG COMMAND
I F CURSOR WAS NOT TO BE MOVED THEN
THEN EX I T WITHOUT RE SETT I NG OLD VALUE
ELSE RESTORE OLD CURSOR POS I T I ON
DONE - EXIT WRITE STRING
RETURN TO CALLER
I F ZERO LENGTH STR I NG THEN RETURN
I SIT A BACKSPACE
BACK SPACE
I SIT CARR I AGE RETURN
CAR RET
I S IT A LINE FEED
LINE FEED
I S IT A BELL
I F NOT THEN DO WR I TE CHARACTER
SAVE BUFFER OFFSET
(BP)
IN STACK
GET PO I NTER TO STACKED REG I STER S
RECOVER ENTRY
(ES)
SEGMENT REG I STER
RESTORE BUFFER OFFSET
CLEAR
(AH) REG I STER
SAVE
(ALl COMMAND IN (0 I) REG I STER
TEST FOR INVALID WRITE STRING OPTION
I F OPT I ON I NVAL I 0 THEN RETURN
; GET CHARACTER FROM INPUT STR I NG
; BUMP PO I NTER TO CHARACTER
1-10
01-10-86
VIDEO (01/10/86)
AX,0200H
10H
P50
OX
AX,DI
AL,OIH
P59
AX,0200H
10H
VIDEO_RETURN
ENDP
AX,OEOAH
10H
DH
AH,09H
10H
BX
CX
DL
DL, BYTE PTR OCRT COLS
P54
-
DH
DL,DL
DH,25
P54
AH , OEH
; TTY CHARACTER WR I TE
1OH
; -WR I TE TTY CHARACTER TO THE CRT
OX, [S I +OFFSET OCURSOR POSN]
; GET CURRENT CURSOR POS I T I ON
SHORT P54
- ; SET CURSOR POS I T I ON AND CONT I NUE
CX
BX
CX,I
01,2
P53
BL,ES: [BP]
BP
AL,ES:[BP]
BP
AL,08H
P51
AL,CR
P51
AL,LF
P51
AL,01H
P52
P59
DI,AX
AL,04
P59
TEST FOR SPEC I AL CHARACTER'S
JCXZ
MOV
INC
(ALl
=
WR ITE STR I NG COMMAND
0 -
3
(BH)
=
DISPLAY PAGE (ACTIVE PAGE)
(CX)
=
COUNT OF CHARACTERS TO WR I TE,
IF (CX)
=
0 THEN RETURN
(OX)
=
CURSOR POSITION FOR START OF STRING WRITE
(BL)
=
ATTRIBUTE OF CHARACTER TO WRITE IF (AL)
=
0
OR
(AL)
=
I
(BP)
=
SOURCE STR I NG OFFSET
[OE]
=
SOURCE STRING SEGMENT (FOR USE IN (ES)
IN STACK +14)
OUTPUT
NONE
CMP
JE
CMP
JE
CMP
JE
CMP
JNE
P51:
MOV
INT
MOV
JMP
P52:
PUSH
PUSH
MOV
CMP
JB
MOV
INC
P53:
MOV
INT
POP
POP
INC
CMP
JB
INC
SUB
CMP
JB
MOV
INT
DEC
P54:
MOV
INT
LOOP
POP
XCHG
TEST
JNZ
MOV
INT
P59:
JMP
WR I TE_STR I NG
P50:
.
- -
-------
--
----
--
-
-
---
--
--
-
-
-
---
-
-- ----
-
--
-------- --
---
----- -----
-----------
---
WR I TE STR I NG
PROC
NEAR
-
PUSH
BP
MOV
BP, SP
MOV
ES,[BP]+14+2
POP
BP
CBW
MOV
CMP
JNB
.
------
--
- -
----
-
-- ---
----
--
-------- ------ ----
-
-- ------ -----
-
--
---
-----
-
--
-------
; WRITE STRING
-TH I S ROUT I NE WR I TES A STR I NG OF CHARACTERS TO THE CRT.
;
INPUT
;
1009
10 I 0
1011
1012
1013
1014
1015
1016
1011
1018
1019
1020
1021
1022
1023
1024 03BB
1025 03BB 55
1026 03BC 8B EC
1021 03BE 8E 46
10
1028 03C 1 50
1029 03C2 98
1030 03C3 8B F8
1031 03C5 3C 04
1032 03C1 13 13
1033
1034 03C9 E3 11
1035
1036 03CB 8B F3
1031 03CD 8A OF
1038 03CF 32 FF
1039 0301
81 F3
1040 0303 01
E6
1041 0305 FF B4 0050 R
1042 0309 B8 0200
1043 03DC CD 10
1044 03DE
1045 03DE 26: 8A 46 00
1046 03E2 45
1041
1048
1049
1050 03E3 3C 08
1051 03E5 14 OC
1052 03E1 3C 00
1053 03E9 14 08
1054 03EB 3C OA
1055 03ED 14 04
1056 03EF 3C 01
1051 03FI
15 OA
1058 03F3
1059 03F3 B4 OE
1060 03F5 CD 10
1061 03F1 8B 94 0050 R
1062 03FB EB 20
1063
1064 03FD
1065 03FD 51
1066 03FE 53
1061 03FF B9 000 I
1068 0402 83 FF 02
1069 0405 12 05
1010 0401 26: 8A 5E 00
1011 040B 45
1012 040C
1013 040C B4 09
1014 040E CD 10
1015 0410 5B
1016041159
I 011 04 I 2 FE C2
1018 0414 3A 16 004A R
1019 0418 12 10
1080 041 A FE C6
108 I 041 C 2A 02
1082 041 E 80 FE 19
1083 0421
12 01
1084
1085 0423 B8 OEOA
1086 0426 CD 10
1081 0428 FE CE
1088 042A
1089 042A B8 0200
1090 0420 CD 10
109 I 042F E2 AD
1092
1093 0431
5A
1094 0432 91
1095 0433 A8 0 I
1096 0435 15 05
1091 0431 B8 0200
1098 043A CD 10
1099 043C
1 100 043C E9 0130 R
1101
I 102 043F
IBM Personal Computer MACRO Assembler
Version 2.00
VIDEO ---- 01/10/86
VIDEO DISPLAY BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents