IBM XT 5160 Technical Reference page 255

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
POST ----- 01/ 10/86
SYSTEM POST AND BIOS PROCEDURES
1-25
01-10-86
;
------ -- -------- -- --- --- -- --
-
----- ---- -- -- --
----- ----
-- --
-------
TH I S LOOP I S TO READ EACH CURSOR POS I T I ON FROM THE
;
SCREEN AND PRINT IT.
(BH)= VISUAL PAGE
(CH)= ROWS
AT THIS POINT WE KNOW THE COLUMNS/LINE COUNT IS IN (CL)
1
AND THE NUMBER OF ROWS ON THE DISPLAY
IS IN (CH).
1
THE PAGE IF APPLICABLE IS IN (BH).
THE STACK HAS
1
(OS), (AX), (BX), (CX), (OX)
PUSHED.
1
.
--
-
- - -
- --- ------ --- ---
-
--
-
--------
---
-----
--
- -- ------- -- -- ---- --
>COR
DX,DX
; FIRST PRINTER
MOV
AH,02H
;
SET PRINTER STATUS REQUEST COMMAND
I NT
I 7H
; REQUEST CURRENT PR I NTER STATUS
XOR
AH,080H
; CHECK FOR PRINTER BUSY
(NOT CONNECTED)
TEST
AH, OAOH
;
OR
OUT OF PAPER
JNZ
PRI70
; ERROR EXIT IF PRINTER STATUS ERROR
PAGE
; - - -
I NT
05 H - - - -- -- - - - - - -- - - - --- - - - - - - - - - - -- --- -- - - - - - - - - - -- - - - - --- - - - - --- - --
; PR I NT SCREEN
1
;
-TH I S LOG I C WILL BE I NVOKED BY INTERRUPT 05H TO PR I NT THE SCREEN.
1
;
THE CURSOR POSITION AT THE TIME THIS ROUTINE IS INVOKED WILL BE
1
;
SAVED AND RESTORED UPON COMPLETION.
THE ROUTINE IS INTENDED TO
1
;
RUN WITH I NTERRUPTS ENABLED.
I F A SUBSEQUENT PR I NT SCREEN KEY
1
;
IS DEPRESSED WHILE THIS ROUTINE IS PRINTING IT WILL BE IGNORED.
1
;
THE BASE PRINTERS STATUS
IS CHECKED FOR NOT BUSY AND NOT OUT OF
1
;
PAPER.
AN INITIAL STATUS ERROR WILL ABEND THE PRINT REQUEST.
1
;
ADDRESS
0050:0000
CONTAINS THE STATUS OF THE PRINT SCREENI
1
;
:
;
50: 0
= 0
PR I NT SCREEN HAS NOT BEEN CALLED OR UPON RETURN
1
;
FROM A CALL TH I S I NO I CATES A SUCCESSFUL OPERATION.
1
;
= I
PR I NT SCREEN I SIN PROGRESS -
IGNORE TH I S REQUEST.
1
;
= 255
ERROR ENCOUNTERED OUR I NG PR I NT I NG.
1
INDICATE CURSOR SET REQUEST
NEW CURSOR POSITION ESTABLISHED
I NO I CATE READ CHARACTER FROM 0 I SPLA Y
CHARACTER NOW IN (AL)
SEE I F VALl 0 CHAR
JUMP I F VAL I 0 CHAR
ELSE MAKE I T A BLANK
SAVE CURSOR POS I TI ON
INDICATE FIRST PRINTER
(DX= 0)
INDICATE PRINT CHARACTER IN
(AL)
PR I NT THE CHARACTER
RECALL CURSOR POS I T I ON
TEST FOR PR I NTER ERROR
EX I T I F ERROR DETECTED
ADVANCE TO NEXT COLUMN
SEE I FAT END OF LINE
I F NOT LOOP FOR NEXT COLUMN
BACK TO COLUMN 0
(AH) =0
SAVE NEW CURSOR POSITION
LINE FEED CARR I AGE RETURN
RECALL CURSOR POS I T I ON
ADVANCE TO NEXT LINE
FINI SHED?
I F NOT LOOP FOR NEXT LINE
GET CURSOR POS I T I ON
INDICATE REQUEST CURSOR SET
CURSOR POS I T I ON RESTORED
BLOCK INTERRUPTS TI LL STACK CLEARED
MOVE OK RESULTS FLAG TO STATUS BYTE
EXIT PRINTER ROUTINE
-
CARR I AGE RETURN LINE FEED TO PR INTER
SAVE SCREEN BOUNDS
NOW READ THE CURRENT CURSOR POS I T I ON
AND RESTORE AT END OF ROUTINE
RECALL SCREEN BOUNDS
PRESERVE THE OR I G I NAL POS I T I ON
INITIAL CURSOR
(0,0)
AND FIRST PRINTER
WILL REQUEST THE CURRENT SCREEN MODE
(ALl = MODE
( AH) = NUMBER COLUMNS / LINE
(BH)= VISUAL PAGE
WILL MAKE USE OF
(CX) REG I STER TO
CONTROL ROWS ON SCREEN
&
COLUMNS
ADJUST ROWS ON 0 I SPLA Y COUNT
(CL) = NUMBER COLUMNS/LINE
(CH) = NUMBER OF ROWS ON 0 I SPLA Y
DEL AY I NTERRUPT ENABLE TILL FLAG SET
USE 004010100 FOR STATUS AREA STORAGE
GET STATUS BYTE DATA SEGMENT
SEE IF PR I NT ALREADY IN PROGRES S
EX
IT
IF PR I NT ALREADY I N PROGRESS
INDICATE PRINT NOW IN PROGRESS
MUST RUN WITH I NTERRUPTS ENABLED
SAVE WORK REGI STERS
OSTATUS BYTE, 0
SHORT PRI80
OX
AH,02H
10H
OX
DX,DX
AH,AH
17H
OX
AH,29H
PRI60
DL
CL,DL
PRIIO
DL,DL
AH,DL
OX
CRLF
OX
DH
CH,DH
PRIIO
AH,02H
10H
AH,08H
10H
AL,AL
PRI20
AL, '
CRLF
CX
AH,03H
10H
CX
OX
DX,DX
OFF54H
o
IF54H
POP
MOV
INT
CLI
MOV
JMP
MOV
INT
MOV
INT
OR
JNZ
MOV
PUSH
XOR
XOR
INT
POP
TEST
JNZ
INC
CMP
JNZ
XOR
MOV
PUSH
CALL
POP
INC
CMP
JNZ
CALL
PUSH
MOV
INT
POP
PUSH
XOR
ORG
ORG
PR120:
PRIIO:
MOV
CL,AH
MOV
CH ,OROWS
INC
CH
PRINT_SCREEN_I
PROC
FAR
PUSH
OS
CALL
DDS
CMP
OSTATUS BYTE, I
JE
PR190-
MOV
OSTATUS_BYTE,I
STI
PUSH
AX
PUSH
BX
PUSH
CX
PUSH
OX
MOV
AH,OFH
INT
10H
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676 IF54
2677
2678 IF54
2679
2680
IF54 IE
268 I
1F55 E8
I A I 2 R
2682 1F58 80 3E 0 I 00 R 0 I
2683 I F5D 74 7C
2684 I F5F C6 06 0 I 00 R 0 I
2685 IF64 FB
2686 I F65 50
2687
IF66 53
2688 IF67 51
2689 I F68 52
2690
I F69 B4 OF
269 I
I F6B CD 10
2692
2693
2694 I F6D 8A CC
2695 I F6F 8A 2E 0084 R
2696
1F73 FE C5
2697
2698
2699
2700
270 I
2702
2703
2704
2705
I F75 33 02
2706
I F77 B4 02
2707
IF79 CD 17
2708
1F7B 80 F4 80
2709 1F7E F6 C4 AO
27 10
1F 8 I
75 4E
2711
2712 1F83 E8
1FDD R
2713 IF86 51
2714 IF87 B4 03
2715 I F89 CD 10
2716
IF8B 59
2717
IF8C 52
2718
I F8D 33 02
2719
2720
2721
2722
2723 IF8F
2724 I F8F B4 02
2725 IF91 CD 10
2726 I F93 B4 08
2727
I F95 CD 10
2728
I F97 OA CO
2729 1F99 75 02
2730
I F9B BO 20
2731
IF9D
2732 IF9D 52
2733 I F9E 33 02
2734 I FAO 32 E4
2735 IFA2 CD 17
2736 IFA4 5A
2737
I FA5 F6 C4 29
2738 I FA8 75 22
2739 I FAA FE C2
2740
I FAC 3A CA
274 1 I F AE 75 OF
2742 I FBO 32 02
2743 I FB2 8A E2
2744 IFB4 52
2745 I FB5 E8
I FDD R
2746
I FB8 5A
2747
IFB9 FE C6
2748
I FBB 3A EE
2749 1FBD 75 DO
2750
2751
IFBF 5A
2752 I FCO B4 02
2753 IFC2 CD 10
2754 IFC4 FA
2755 IFC5 C6 06 0100 R 00
2756 I FCA EB OB
5-108
POST (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents