IBM PC CONVERTIBLE Technical Reference page 140

Table of Contents

Advertisement

09E6
09E8
09EB
09ED
09EE
09EF
09F5
09F7
09F9
09FB
09FE
OAOI
OA03
OA03
OA06
OA09
OAOB
B4 20
E8 0000
8A 08
OE
07
81 3E 0063
75 14
A8 01
74 08
BF 0000 E
80 E3 7E
EB lA
BF 0000 E
80 E3 FB
EB 12
OAOB
A8 02
OAOD
74 08
OAOF
BF 0000 E
OAl2
80 E3 70
OAl5
EB 06
OAl7
OAl7
BF 0000 E
OAIA
80 E3 F7
OAID
OAlD
84 DB
OAIF
74 2E
OA21
F6 C3 03
OA24
74 06
OA26
2E: Al 0000
OA2A
EB 25
OA2C
OA2C
B4 22
OA2E
E8 0000 E
OA31
F6 C3 04
OA34
74 OA
OA36
A8 02
OA38
75 15
OA3A
2E: Al 0000
OA3E
EB 11
OA40
0A40
F6 C3 08
OA43
74 OA
0A45
A8 04
0A47
75 06
0A49
2E: Al 0000
OA4D
EB 02
OA4F
OA4F
2B CO
OA51
OA51
55
OA52
8B EC
OA54
8C 46 10
OA57
89 7E 04
OA5A
5D
FIGURED OUT WHAT DISPLAY IS CURRENTLY ACTIVE
MOV
AH, RTCDSP _CON
CAll
GELRTCREG
MOV
Bl,Al
PUSH
CS
POP
ES
R 0304
CMP
ADD1L6845, 03D4H
JNE
PHYS_MONO
GET DISPLAY CONFIGURATION
SAVE DISPLAY CON FIG
ES
=
CS
IS CGA CURRENT MODE?
NO, JUMP TO MONO TEST
COLOR IS CURRENT MODE. SEE IF COLOR DISPLAY OR LCD CONFIG AS COLOR
IS THE CURRENT DISPLAY. SET ES:DI TO POINT TO TBl OF CRNT DSPlY.
ALSO TURN OFF CURRENT DISPLAY BIT IN THE DISPLAY CONFIG BYTE.
TEST
Al,DSP_ClCD
; IS LCD CONFIGURED AS CGA?
JZ
PHYS_CGAI
; NO, JUMP TO COLOR DISPLAY
MOV
DI,OFFSET lCD_CGILTBl ; SET ADDR TO LCD AS CGA TBl
AND
Bl,NOT DSP_ClCD+DSP_lCD_PRES ; TURN OFF LCD BITS
JMP
SHORT
PHY~-.Al
T
YES, JUMP TO TEST AlT DSPlY
PHYS_CGAl:
CURRENT DSPlY IS COLOR DSPlY
MOV
DI,OFFSET CGILTBl
SET ADDRESS TO CGA TABLE
AND
Bl, NOT DSP _CGA
TURN OFF CURRENT DISPLAY BIT
JMP
SHORT PHYS-.Al T
YES, JUMP TO TEST ALT DSPl Y
MONO IS CURRENT MODE. SEE IF MONOCHROME DSPlY OR LCD CONFIG AS MONO
IS CURRENT DISPLAY. SET ES:DI TO POINT TO TABLE OF CURRENT DISPLAY.
ALSO TURN OFF CURRENT DISPLAY BIT IN THE DISPLAY CONFIG BYTE.
PHYS.Jo10NO:
TEST
Al,DSP.Jo1lCD
; IS LCD CONFIGURED AS MONO?
JZ
PHYS.Jo10NOl
; NO, JUMP TO COLOR DISPLAY
MOV
DI,OFFSET lCD.Jo10NO_TBl ; DEFAULT TO LCD MONO TABLE
AND
Bl,NOT DSP_MlCD+DSP_lCD_PRES ; TURN OFF LCD BITS
JMP
SHORT PHYS-.Al T
YES, JUMP TO TEST ALT DSPlY
PHYS_MONOl:
; CURRENT DSPl Y MONO MONITOR
MOV
DI,OFFSET MONO_TBl
; NO, CURRENT DSPlY MONO MNTR
AND
Bl,NOT DSP.Jo10NO
; TURN OFF CURRENT DISPLAY BIT
TEST FOR THE ALTERNATE DISPLAY AND SET AX TO THE MONITOR NUMBER OF
Al TERNATE DISPLAY.
Bl SHOULD CONTAIN THE ALTERNATE DISPLAY CONFIG.
IF THERE IS NO ALTERNATE DISPLAY OR THE ALTERNATE IS INOPERATIVE
THE MONITOR NUMBER IS O.
PHYS-.Al T:
; TEST FOR ALTERNATE DISPLAY
TEST
Bl, Bl
; ANY ALTERNATE DSPS PRESENT?
JZ
PHYS-.Al LNONE
; NO, JUMP TO SET MNTR
#
TO 0
TEST
Bl,DSP_ClCD+DSP.Jo1lCD ; IS AlT MONITOR THE LCD
JZ
PHYS-.Al Tl
NO, JUMP TO CHECK OTHER DSPlY
MOV
AX ,lCDJGILTBl [OJ
YES, SET LCD MONITOR
#
JMP
SHORT PHYS_END
JUMP TO EXIT
PHYS-.Al Tl:
TEST FOR THE COLOR DISPLAY
MOV
AH, RTCDSP _STAT
GET THE DISPLAY STATUS
CAll
GELRTCREG
TEST
Bl ,DSP _CGA
IS ALT DSP COLOR MONITOR?
JZ
PHYS-.Al T2
JUMP TO TEST MONO MON ITOR
TEST
Al, CGA_BAD
IS THE CGA BAD?
JNZ
PHYS-.Al LNONE
YES, SET FOR NO ALTERNATE
MOV
AX , CGA_TBl [0]
NO, SET CGA MONITOR
#
JMP
SHORT PHYS_END
JUMP TO EXIT
PHYS-.Al T2:
TEST FOR MONOCHROME MON ITOR
TEST
Bl, DSP _MONO
IS AlT DSPAY MONO MONITOR?
JZ
PHYS-.Al T _NONE
JUMP NO Al T DISPLAY
TEST
Al, MONO_BAD
IS THE MONOCHROME BAD?
JNZ
PHYS-.Al T _NONE
YES, SET FOR NO ALTERNATE
MOV
AX ,MONO_TBl [0]
NO, SET MONOCHROME MONITOR
#
JMP
SHORT PHYS_END
JUMP TO EXIT
PHYS-.Al T _NONE:
Al T NOT THERE OR INOPERATIVE
SUB
AX,AX
SET MON ITOR
#
TO 0
PHYS_END:
PUSH
BP
MOV
BP ,SP
GET PTR TO STACK SAVE AREA
MOV
[BP] • ES_POS, ES
SET UP RETURN VAL IN STACK
MOV
[BP] .DLPOS,DI
POP
BP
ROM BIOS 2-115

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents