IBM PC CONVERTIBLE Technical Reference page 73

Table of Contents

Advertisement

0663
A8 40
AL, LOWBALENABLE
; LOW BATTERY MESSAGE WANTED
0665
74 OF
LO
; NO MESSAGE WANTED
- JUMP TO END
0667
F6 06 0015 R 20
TEST
JZ
TEST
JNZ
OR
JMP
BALSTATUS,LOW_BALPEND ; FIRST LOW BAT SIGNAL?
066C
75 23
Ll
; NO, ALREADY 2 CONSECUTIVE SIGNALS
066E
80 OE 0015 R 20
BALSTATUS,LOW_BALPEND ; YES, SET WAITING FOR 2ND SIG
0673
E9 0746 R
LOWBEND
; EXIT
0676
LO:
BATTERY NOT LOW OR EXTERNAL POWER IS APPLIED
0676
F6 06 0015 R 80
TEST
JNZ
AND
JMP
BALSTATUS,LOW_BALSIG ; WAS LOW BTRY ALREADY SIGNALLED
067B
75 08
LO--A
; YES, JUMP
0670
80 26 0015 R OF
BALSTATUS,NOT LOW_BALPEND ; TURN OFF LOW BTRY PENDING
0682
E9 0746 R
0685
0685
A8 40
0687
74 08
LOWBEND
; JUMP TO EX IT
LO--A :
LOW BATTERY HAS BEEN SIGNALLED. IF EXTERNAL PWR APPLIED RESET THE WARNING.
TEST
JZ
AL, EXLPWR
Ll
; IS EXTERANL POWER APPLI ED?
; NO, JUMP TO WARNING
BATTERY WAS LOW BUT EXTERNAL POWER APPLIED.
TURN OFF WAITING FOR KEY AND LOW BATTERY WARNING SIGNALED FLAGS.
JUMP TO TURN ON PANEL POWER.
0689
80 26 0015 R IF
AND
JMP
BALSTATUS, NOT LOW_BAT _SI G+LOW_BAT _HOLD+LOW_BAT _PEND;
068E
E9 073C R
L_PANEL_ON
; ENABLE PANEL BEFORE EXITING
BATTERY IS LOW WITH NO EXTERNAL POWER AND WARNING ENABLED
0691
Ll:
0691
F6 06 0015 R 80
TEST
JZ
BALSTATUS,LOW_BALSIG ; LOW BTRY ALREADY SIGNALLED?
0696
74 2B
L3
NO, GO SIGNAL LOW BATTERY
LOW BATTERY HAS ALREADY BEEN SIGNALLED
0698
F6 06 0015 R 40
TEST
JZ
BALSTATUS,LOW_BALHOLD ; ARE WE IN HOLD STATE ?
0690
74 OC
069F
BO 00
06Al
E6 74
06A3
E4 75
06A5
34 40
06A7
OC 20
06A9
E6 75
06AB
06AB
FE OE 0093
06AF
74 03
06Bl
E9 0746 R
06B4
F6 06 0015
06B9
74 08
06BB
80 26 0015
06CO
E9 0746 R
06C3
06C3
BO OB
06C5
E6 20
06C7
E4 20
06C9
OA CO
06C8
74 06
L2
; NO, JUMP AROUND SCREEN TOGGLING
TOGGLE SCREEN ON AND OFF WHILE WAITING FOR A KEY TO BE PRESSED(HOLD STATE).
MOV
AL,LCD_FUNCT
OUT
LCD_INDX ,AL
ACCESS LCDC CONTROL REGISTER
IN
AL,LCD_DATA
READ LCDC CONTROL REGISTER
XOR
AL, PANEL_ENABLE
TOGGLE PANEL ON AND OFF
OR
AL, SYNCENABLE
FORCE SYNCS ON
OUT
LCD_DATA,AL
ISSUE LCDC CONTROL REG COMMAND
DECREMENT 2 MINUTE COUNTER. IF COUNTER GOES TO 0 SIGNAL LOW BATTERY
WARN I NG AGAI N I F KEY HAS BEEN PRESSED. I F COUNTER
=
0 AND A KEY HAS NOT
BEEN PRESSED, TURN OFF WAITING FOR KEY FLAG. THIS WILL CAUSE THE WAITING
FOR KEY LOOP TO BE EXITED AND THEN SET UP THE SYSTEM TO SUSPEND.
L2:
DEC
LOW_BALCTR
COUNT DOWN
2 MINUTE COUNTER
JFNZ
LOWBEND
NOT 0, SO EXIT
JZ
$+5
I F NOT NOT ZERO JUMP AROUND JUMP
JMP
LOWBEND
; ELSE TAKE A LONG JUMP
R 40
TEST
BALSTATUS,LOW_BALHOLD ; HAS KEY BEEN PRESSED?
JZ
L3
; YES, SIGNAL WARNING AGAIN
R 3F
AND
BALSTATUS,NOT LOW_BALSIG + LOW_BALHOLD ; NO KEY,
JMP
LOWBEND
; TURN OFF FLAG AND EXIT
SIGNAL LOW BATTERY WARNING
CHECK FOR ANY INTERRUPTS IN SERVICE BEFORE SIGNALING LOW BATTERY
L3:
MOV
AL,OBH
GET INTERRUPT IN SERVICE REG
OUT
INTAOO,AL
INTERRUPT CONTROLL ER PORT
IN
AL,INTAOO
READ INTERRUPT IN SERVICE REG
OR
AL,AL
ANY INTERRUPTS IN SERVICE
JZ
L4
IF ZERO - NONE IN SERVICE
2-48 ROM BIOS

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents