mac-rom/Drivers/Backlight/backlightprim.a

235 lines
8.6 KiB
Plaintext
Raw Normal View History

;
; File: backlight.a
;
; Contains: backlight driver low level glue
;
; Written by: Andy Gong
;
; Copyright: <09> 1990-1993 by Apple Computer, Inc. All rights reserved.
;
; This file is used in these builds: ROM
;
; Change History (most recent first):
;
; <K3> 9/8/93 ag a new set of values for the backlight table. this should
; increase the range on both the top and bottom ends.
; <K2> 8/13/93 ag changed hardwareequ.a to hardwareprivateequ.a.
; <1> 7/27/93 ag first checked in
; <H12> 3/11/93 RLE another pass at the Escher backlighting table
; <H11> 2/26/93 RLE split a new backlight table off for Escher since the displays
; are just a wee bit different
; <H10> 1/21/93 RLE add support for Escher
; <H9> 7/13/92 SWC Yet another pass at the DBLite table. Deja vu, eh?
; <H8> 6/30/92 ag Added cpu info tables for cpu dependent information.
; <H7> 5/7/92 ag Changed the structure of the backlight tables. Included in the
; tables are a header which indicates the minimun and maximum
; values.
; <H6> 4/10/92 SWC Yet another pass at the DBLite table.
; <H5> 3/4/92 SWC Next pass at the DBLite table.
; <H4> 2/12/92 SWC Changed the DB-Lite table limits to have a narrower range of
; values.
; <H3> 9/10/91 SWC Changed the DB-Lite table to have a span of 0..127 instead of
; 0..255 since the backlight values don't go that high.
; <H2> 8/26/91 SWC Added a PWM lookup table for DB-Lite.
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; Pre-HORROR ROM comments begin here.
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
; <5> 7/8/91 ag added lookup table for ashai added name constant for gestalt
; lookup
; <4> 6/24/91 ag added new lookup table for PWM low voltage operation.
; <3> 6/11/91 ag added new table for low power scaling.
; <2> 4/2/91 ag added table lookup for PWM
; <1> 1/23/91 ag first checked in
;_______________________________________________________________________
BLANKS ON
PRINT OFF
INCLUDE 'SysEqu.a'
INCLUDE 'SysErr.a'
INCLUDE 'Traps.a'
INCLUDE 'HardwarePrivateEqu.a'
INCLUDE 'powerprivequ.a'
INCLUDE 'backlightequ.a'
PRINT ON
STRING PASCAL
BacklightPrimitiveTables Proc
with backlightflags
export PrattBkltPrims
DC.L PrimsTypeTable ; flags
DC.L (PrattBkltPrimsEnd-PrattBkltPrims) ; size of table
PrattBkltPrims ; Table of Primitives tables
DC.L PrattBkltProcTable-PrattBkltPrims ; offset to table of backlight routines
DC.L PrattBkltInfo-PrattBkltPrims ; offset to table of backlight information
PrattBkltPrimsEnd
DC.L PrimsTypeInfo ; flags
DC.L (PrattBkltInfoEnd-PrattBkltInfo) ; size of table
PrattBkltInfo ; machine-specific constants:
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
+(1 << flyByWire)\ ; config flag (hardware input)
+(1 << freeflag)\
+(0 << dualTable)\ ; config flag (use multi tables)
+(0 << lowTable)\ ; operating flag (currently using low table)
+(0 << slewChange) ; operating flag (table transition inprogress)
dc.w 10 ; vbl count SampleRate
dc.w 0 ; (n/a) lowThreshold
dc.w 0 ; (n/a) hiThreshold
PrattBkltInfoEnd
CASE OBJECT
import SetPWM,PotControl,InitPWMControls,PGE_button
import PWMCloseRoutine,PWMControl,BkltGenericStatus
DC.L PrimsTypePtr ; flags
DC.L (PrattBkltProcTableEnd-PrattBkltProcTable) ; size of table
PrattBkltProcTable ; machine specific IdleMind Routines
dc.l SetPWM - PrattBkltProcTable ; set routine
dc.l PotControl - PrattBkltProcTable ; get user input routine
dc.l InitPWMControls - PrattBkltProcTable ; initialize routine
dc.l PWMCloseRoutine - PrattBkltProcTable ; close routine
dc.l PWMControl - PrattBkltProcTable ; control routine
dc.l BkltGenericStatus - PrattBkltProcTable ; status routine
dc.l BkltStandardExit - PrattBkltProcTable ; (n/a) charger state change routine
dc.l PWMMaxTbl - PrattBkltProcTable ; table of maximum value for different power ranges
dc.l dbTbl - PrattBkltProcTable ; low range table
dc.l dbTbl - PrattBkltProcTable ; high range table
dc.l PGE_button - PrattBkltProcTable ; hardware dependent var
PrattBkltProcTableEnd
export PowerBookDuoBkltPrims
DC.L PrimsTypeTable ; flags
DC.L (PowerBookDuoBkltPrimsEnd-PowerBookDuoBkltPrims) ; size of table
PowerBookDuoBkltPrims ; Table of Primitives tables
DC.L PowerBookDuoBkltProcTable-PowerBookDuoBkltPrims ; offset to table of backlight routines
DC.L PowerBookDuoBkltInfo-PowerBookDuoBkltPrims ; offset to table of backlight information
PowerBookDuoBkltPrimsEnd
DC.L PrimsTypeInfo ; flags
DC.L (PowerBookDuoBkltInfoEnd-PowerBookDuoBkltInfo) ; size of table
PowerBookDuoBkltInfo ; machine-specific constants:
dc.l (0 << disableHWinput)\ ; operating flag (stops user input)
+(0 << kbdactive)\ ; operating flag (kbd control inprogress)
+(1 << vbl_ok)\ ; operating flag (allow vbl operations)
+(1 << flyByWire)\ ; config flag (hardware input)
+(1 << freeflag)\
+(0 << dualTable)\ ; config flag (use multi tables)
+(0 << lowTable)\ ; operating flag (currently using low table)
+(0 << slewChange) ; operating flag (table transition inprogress)
dc.w 10 ; vbl count SampleRate
dc.w 0 ; (n/a) lowThreshold
dc.w 0 ; (n/a) hiThreshold
PowerBookDuoBkltInfoEnd
CASE OBJECT
import SetPWM,PotControl,InitPWMControls,PGE_button
import PWMCloseRoutine,PWMControl,BkltGenericStatus
DC.L PrimsTypePtr ; flags
DC.L (PowerBookDuoBkltProcTableEnd-PowerBookDuoBkltProcTable) ; size of table
PowerBookDuoBkltProcTable ; machine specific IdleMind Routines
dc.l SetPWM - PowerBookDuoBkltProcTable ; set routine
dc.l PotControl - PowerBookDuoBkltProcTable ; get user input routine
dc.l InitPWMControls - PowerBookDuoBkltProcTable ; initialize routine
dc.l PWMCloseRoutine - PowerBookDuoBkltProcTable ; close routine
dc.l PWMControl - PowerBookDuoBkltProcTable ; control routine
dc.l BkltGenericStatus - PowerBookDuoBkltProcTable ; status routine
dc.l BkltStandardExit - PowerBookDuoBkltProcTable ; (n/a) charger state change routine
dc.l PWMMaxTbl - PowerBookDuoBkltProcTable ; table of maximum value for different power ranges
dc.l dbTbl - PowerBookDuoBkltProcTable ; low range table
dc.l dbTbl - PowerBookDuoBkltProcTable ; high range table
dc.l PGE_button - PowerBookDuoBkltProcTable ; hardware dependent var
PowerBookDuoBkltProcTableEnd
CASE OFF
;--------------------------------------------------------------------------------------------------------------
;
;
DBLiteinfo
;--------------------------------------------------------------------------------------------------------------
;
dbTbl ; <H2>
dc.w 0 ; minimum value <H7>
dc.w @end - @start ; <H7>
@start DC.B 127 ; 0 <H7>
DC.B 120 ; 1
DC.B 113 ; 2
DC.B 109 ; 3
DC.B 106 ; 4
DC.B 102 ; 5
DC.B 99 ; 6
DC.B 95 ; 7
DC.B 92 ; 8
DC.B 88 ; 9
DC.B 85 ; 10
DC.B 81 ; 11
DC.B 77 ; 12
DC.B 74 ; 13
DC.B 70 ; 14
DC.B 67 ; 15
DC.B 63 ; 16
DC.B 60 ; 17
DC.B 56 ; 18
DC.B 53 ; 19
DC.B 49 ; 20
DC.B 45 ; 21
DC.B 42 ; 22
DC.B 38 ; 23
DC.B 35 ; 24
DC.B 31 ; 25
DC.B 28 ; 26
DC.B 24 ; 27
DC.B 21 ; 28
DC.B 17 ; 29
DC.B 14 ; 30
@end DC.B 10 ; 31 <H7>
;--------------------------------------------------------------------------------------------------------------
;
PWMMaxTbl
dc.w 31 ; 0
dc.w 15 ; 1
dc.w 15 ; 2
dc.w 7 ; 3
dc.w 3 ; 4
;--------------------------------------------------------------------------------------------------------------
;
CASE OBJECT
export PotInputRangeShiftTblPWM
PotInputRangeShiftTblPWM
dc.w 0 ; 0
dc.w 1 ; 1
dc.w 1 ; 2
dc.w 2 ; 3
dc.w 3 ; 4
CASE OFF
case object
BkltStandardExit
rts
case off
END