IBM XT 5160 Technical Reference page 217

Hide thumbs Also See for XT 5160:
Table of Contents

Advertisement

IBM Personal Computer MACRO Assembler
Version 2.00
VIDEO ----
01/10/86
VIDEO DISPLAY BIOS
1-9
01-10-86
PAGE
INPUT
WR I TE AC CURRENT
-THIS ROUT I NE WR I TES THE ATTR IBUTE AND CHARACTER
AT THE CURRENT CURSOR POSITION
IS THIS GRAPHICS
I S TH I S BW CARD
GET REGEN LOCAT I ON AND PORT ADDRESS
ADDRESS OF LOCATION IN (01)
IS THIS GRAPHICS
I
I S TH I S BW CARD
WR I TE AC CONT I NUE
GET REGEN-LOCAT I ON AND PORT ADDRESS
ADDRESS IN (0 I) REG I STER
CHECK MODE FLAG FOR COLOR CARD AT 80
SK I P TO RETRACE WA I T I F COLOR AT 80
GET THE ATTRICHAR SAVED FOR FAST WRITE
STRING WRITE THE ATTRIBUTE
&
CHARACTER
EXIT FAST WRITE ROUTINE
WA I T FOR HOR I ZONTAL RETRACE OR VERT I CAL RETRACE I F COLOR 80
CALL
F I ND_POS I TI ON
OR
BL,BL
JZ
P32
XCHG
AX,BP
REP
STOSW
JMP
SHORT
P35
P41 :
STI
OR
BL,BL
JNZ
P43
CLI
IN
AL,DX
TEST
AL,RVRT
JNZ
P43
TEST
AL,RHRZ
JNZ
P41
P42:
IN
AL,DX
TEST
AL,RVRT+RHRZ
JZ
P42
P43:
MOV
AX,BP
STOSB
INC
01
LOOP
P41
JMP
V IDEO_RETURN
WR I TE_C_CURRENT ENDP
CALL
WAIT FOR HORIZONTAL RETRACE OR VERTICAL RETRACE IF COLOR 80
WA I T FOR HORZ RETRACE LOW OR VERT I CAL
ENABLE INTERRUPTS FIRST
CHECK MODE FLAG FOR COLOR CARD IN 80
ELSE SKIP RETRACE WAIT - DO FAST WRITE
BLOCK I NTERRUPTS FOR SINGLE LOOP
GET STATUS FROM THE ADAPTER
CHECK FOR VERT I CAL RETRACE FIRST
DO FAST WRITE NOW IF VERTICAL RETRACE
I S HOR I ZONT AL RETRACE LOW THEN
WA I T UNT I LIT I S
WA I T FOR EITHER RETRACE HIGH
GET STATUS AGAIN
IS HOR I ZONT AL OR VERT I CAL RETRACE HIGH
WA I T UNT I LEI THER RETRACE ACT I VE
GET THE CHARACTER SAVE IN (BP)
PUT THE CHARACTER I NTO REGEN BUFFER
BUMP POINTER PAST ATTRIBUTE
AS MANY TIMES AS REQUESTED
( AH)
= CURRENT CRT MODE
(BH)
= 01 SPLAY PAGE
(CX)
= COUNT OF CHARACTERS TO WR I TE
(AL)
= CHAR TO WRITE
(OS)
= DATA SEGMENT
(ES)
= REGEN SEGMENT
OUTPUT
01 SPLA Y REGEN BUFFER UPDATED
WR I TE C CURRENT
-TH I S ROUT I NE WR I TES THE CHARACTER AT
THE CURRENT CUR SOR PO SIT I ON , ATTR I BUTE UNCHANGED
INPUT
( AH ) = CURRENT CRT MODE
(BH)
= DISPLAY PAGE
(CX)
= COUNT OF CHARACTERS TO WR I TE
(AL)
= CHAR TO WRITE
(BLl
= ATTR I BUTE OF CHAR TO WR I TE
(OS)
= DATA SEGMENT
(ES)
= REGEN SEGMENT
OUTPUT
01 SPLA Y REGEN BUFFER UPDATED
WR I TE C CURRENT PROC
NEAR
-
-CMP
AH,4
JC
P40
CMP
AH,7
JE
P40
JMP
GRAPH I CS_WR I TE
P40:
P31 :
LOOP FOR EACH ATTR
I
CHAR WR I TE
XCHG
BP,AX
PLACE ATTR
I
CHAR BACK IN SAVE REGISTER
P32:
WA I T FOR HORZ RETRACE LOW OR VERT I CAL
STI
ENABLE INTERRUPTS FIRST
NOP
ALLOW FOR INTERRUPT WINDOW
CLI
BLOCK
I NTERRUPTS FOR SINGLE LOOP
IN
AL,DX
GET STATUS FROM THE ADAPTER
TEST
AL,RVRT
CHECK FOR VERT I CAL RETRACE FIRST
JNZ
P34
DO FAST WR I TE NOW I F VERT I CAL RETRACE
TEST
AL,RHRZ
I S HOR I ZONT AL RETRACE LOW THEN
JNZ
P32
WAIT UNTIL IT IS
P33:
WA I T FOR EITHER RETRACE HIGH
IN
AL,DX
GET STATUS AGAIN
TEST
AL,RVRT+RHRZ
IS HOR I ZONTAL OR VERT I CAL RETRACE HIGH
JZ
P33
WAIT UNTIL EITHER I S ACTIVE
P34:
XCHG
AX,BP
GET THE ATTRICHAR SAVED IN (BP)
STOSW
WR I TE THE ATTR IBUTE AND CHARACTER
LOOP
P31
AS MANY TIMES AS REQUESTED -
TILL CX=O
P35:
JMP
V IDEO_RETURN
EXIT
WR I TE_AC_CURRENT
ENDP
WR I TE AC CURRENT
PROC
NEAR
-
CMP
AH,4
JC
P30
CMP
AH,7
JE
P30
JMP
GRAPH I CS_WR ITE
P30:
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
035C
918
035C 80 FC 04
919
035F 72 08
920
0361
80 FC 07
921
0364 74 03
922
0366 E9 058A R
923
0369
924
0369 E8 0328 R
925
926
036C OA DB
927
036E 74 06
928
929
0370 95
930
0371
F31 AB
931
0373 EB 16
932
933
934
935
0375
936
0375 95
937
0376
938
0376 FB
939
0377 90
940
0378 FA
941
0379 EC
942
037A A8 08
943
037C 75 09
944
037E A8 01
945
0380 75 F4
946
0382
947
0382 EC
948
0383 A8 09
949
0385 74 FB
950
0387
951
0387 95
952
0388 AB
953
0389 E2 EA
954
038B
955
038B E9 0130 R
956
957
038E
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
038E
975
038E 80 FC 04
976
0391
72 08
977
0393 80 FC 07
978
0396 74 03
979
0398 E9 058A R
980
039B
981
039B E8 0328 R
982
983
984
985
986
039E
987
039E FB
988
039F OA DB
989
03A 1 75 OF
990
03A3 FA
991
03A4 EC
992
03A5 A8 08
993
03A 7 75 09
994
03A9 A8 01
995
03AB 75 F 1
996
03AD
997
03AD EC
998
03AE A8 09
999
03BO 74 FB
1000 03B2
1001 03B2 8B C5
1002 03B4 AA
1003 03B5 47
1004 03B6 E2 E6
1005
1006 03B8 E9 0130 R
1007
1008 03BB
5-70
VIDEO (01/10/86)

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents