mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 04:29:09 +00:00
1063 lines
58 KiB
Plaintext
1063 lines
58 KiB
Plaintext
|
;
|
|||
|
; File: PowerPrivEqu.a
|
|||
|
;
|
|||
|
; Contains: Equates used by the Power Manager
|
|||
|
;
|
|||
|
; Written by: Helder J. Ramalho
|
|||
|
;
|
|||
|
; Copyright: © 1990-1994 by Apple Computer, Inc. All rights reserved.
|
|||
|
;
|
|||
|
; This file is used in these builds: ROM
|
|||
|
;
|
|||
|
; Change History (most recent first):
|
|||
|
;
|
|||
|
; <SM8> 1/14/94 ged Added ModemSndReq/State bits to the PmgrFlags3 field for modem
|
|||
|
; sound support.
|
|||
|
; <SM7> 12/13/93 PN Roll in KAOs and Horror changes to support Malcom and AJ
|
|||
|
; machines
|
|||
|
; <SM6> 9/2/93 SKH Completely replace the old SuperMario PowerPrivEqu.a with one
|
|||
|
; which has the many horror changes.
|
|||
|
;
|
|||
|
; <H57> 6/2/93 SWC Added a modem type vector to the modem primitive table.
|
|||
|
; <H56> 05-31-93 jmp Added yet-another-field to the PmgrRec called “fadeVars” -- it
|
|||
|
; will be used to fade screens (usually CRT) during dimming.
|
|||
|
; <H55> 5/31/93 RLE change set/getmachineid to set/getmachineattr (this way PG&E
|
|||
|
; won't need to be updated for each and every new machine)
|
|||
|
; <H54> 5/28/93 SWC Moved the absolute battery level selector from the private
|
|||
|
; dispatch to the public one. Removed the PowerMgrDispatch record
|
|||
|
; so additions won't force major rebuilds. All that information
|
|||
|
; can now be found in PowerMgrDispatchEqu.a.
|
|||
|
; <H53> 5/27/93 RLE add PrimChargerAttr field to PrimInfoTble
|
|||
|
; <H52> 05-19-93 jmp Added a warning about the use of the PmgrFlags1 field and the
|
|||
|
; PmgrExtVidOn bit as it relates to the original DeclROMs of the
|
|||
|
; Duo/MiniDocks.
|
|||
|
; <H51> 5/17/93 RLE move ignoreClamshell variable to PmgrFlags3
|
|||
|
; <H50> 5/4/93 SWC Moved all PowerMgrDispatch stuff to PowerMgrDispatchEqu.a. Added
|
|||
|
; a primitive routine to dynamically set full/reduced CPU speed.
|
|||
|
; Added space to the globals to hold copies of the TimeDBRA
|
|||
|
; constants for full and reduced speed modes.
|
|||
|
; <H49> 4/23/93 SWC Made some additions to sync up with the gibbly.
|
|||
|
; <H48> 4/21/93 SWC Added a selector to _PowerDispatch to return a bitmap of private
|
|||
|
; Power Manager features so software like the PowerBook control
|
|||
|
; panel can get this without having to be rev'd for each CPU.
|
|||
|
; Added the definition of bits returned by the public modem info
|
|||
|
; selector. Added a bit to disable hard disk spindown.
|
|||
|
; <H47> 4/19/93 SWC Added some more feature bits and selectors to _PowerMgrDispatch.
|
|||
|
; <H46> 4/16/93 SWC Added a new field to the HDQueueElement record so a user will
|
|||
|
; have some place to stash their variables.
|
|||
|
; <H45> 4/15/93 SWC Added variables, etc., to support the public Power Manager
|
|||
|
; dispatch trap.
|
|||
|
; <H44> 4/14/93 RLE add commands to set and get cutoff voltage
|
|||
|
; <H43> 4/8/93 RLE add charger control to power1 commands
|
|||
|
; <H42> 3/24/93 RLE add power manager commands SetMachineID and GetMachineID
|
|||
|
; <H41> 8/18/92 djw Define 2 new PmgrFlag2 bits
|
|||
|
; <H40> 7/13/92 ag Added constants to the info tables for delay time before shorted
|
|||
|
; battery dialog and delta battery warn level if external monitor
|
|||
|
; is being used. Added two new fields in the globals to handle
|
|||
|
; shorted battery delay software.
|
|||
|
; <H39> 7/13/92 HJR Changed polarity of PmgrExtVidOn.
|
|||
|
; <H38> 7/11/92 ag Changed SecondaryInitDisp to PMgrHookDisp. The selector is now a
|
|||
|
; general purpose selector with data passed in the upper word of
|
|||
|
; d0. Defined "scsidiskmodeon" bit.
|
|||
|
; <H37> 7/11/92 HJR Change the name of WakeScrnPtr to ScreenRedrawPtr.
|
|||
|
; <H36> 7/10/92 ag Adding table definition for modem primitives table.
|
|||
|
; <H35> 7/9/92 ag Adding vector location in PmgrPrimInfoRec for modem primitives
|
|||
|
; subtable.
|
|||
|
; <H34> 7/7/92 ag Adding vector location for softshutdown routine.
|
|||
|
; <H33> 6/24/92 SWC Changed the ‘clamshellShutdown’ bit to ‘ignoreClamshell’ since
|
|||
|
; it turned out that there were lots of problems associated with
|
|||
|
; trying to shutdown (gracefully) when the clamshell was closed.
|
|||
|
; The default state of the bit will now put the system to sleep as
|
|||
|
; before, and if the bit is turned on, we'll ignore the clamshell
|
|||
|
; switch.
|
|||
|
; <H32> 6/18/92 SWC Added a vector for the PMgrOp exceptions, and a flag to let us
|
|||
|
; know that we're going to sleep because of a low power condition.
|
|||
|
; <H31> 6/10/92 HJR Added saveGDflags to PmgrRec.
|
|||
|
; <H30> 6/2/92 djw Add PmgrFlags1 bit PmgrAvoidUsrMsg to disable user warning
|
|||
|
; messages
|
|||
|
; <H29> 6/1/92 HJR Added NoVidSTRPtr, NoChrgrSTRPtr, UNmQEntry to PmgrRec. Added
|
|||
|
; PmgrExtVidOn, PmgrExtVidAlrt to PmgrFlags field names.
|
|||
|
; <H28> 5/19/92 HJR Added new selector to PowerDispatchRec, DimScreen. Change
|
|||
|
; HdSpinDown to RunIdleRoutines. Added PmgrDimReq and
|
|||
|
; PmgrDimState to PmgrFlags1.
|
|||
|
; <H27> 5/15/92 SWC Added BatteryVBLPtr and SoundVBLPtr to PmgrPrimitives.
|
|||
|
; <SM4> 09-03-92 jmp Added some equates from Horror that I needed.
|
|||
|
; <SM3> 6/4/92 KW Rolled in more Horror changes.
|
|||
|
; <H26> 5/12/92 ag Added Dart SPI bit in PMGRFlags1
|
|||
|
; <H25> 5/12/92 ag Adding "Secondary Init" selector to powerdispatch selectors.
|
|||
|
; <H24> 5/8/92 HJR Added WakeScrnPtr to PmgrPrimitives.
|
|||
|
; <H23> 5/7/92 SWC Added PowerDispatch selector and primitive table vector for
|
|||
|
; returning scaled battery, warning levels (for Battery DA).
|
|||
|
; <H22> 5/7/92 ag Added new flags to globals (we ran out again).
|
|||
|
; <SM2> 5/17/92 kc Roll in Horror Changes. Comments follow:
|
|||
|
; <H21> 4/21/92 SWC Added new power control/status commands.
|
|||
|
; <H20> 3/16/92 SWC Added CPUSpeed20MHz cuz it looks like we might need it.
|
|||
|
; <H19> 3/11/92 SWC Renamed JAWSPwrCycREG to PowerCycleReg since there's more than
|
|||
|
; one way to do power cycling. Added a VBL task record for
|
|||
|
; monitoring the clamshell switch. Added an entry in the
|
|||
|
; primitives table to return the address of the power cycle
|
|||
|
; register so we won't need a chain of TestFor's in InitPmgrVars.
|
|||
|
; <H18> 3/9/92 SWC Added SetModemInts ($71) and ReadModemInts ($79) commands.
|
|||
|
; <H17> 2/27/92 SWC Moved the clamshell flag from bit 3 to 5 since bits 3-4 have
|
|||
|
; been used in the past (these are now documented as well).
|
|||
|
; <H16> 2/21/92 HJR Added power cycling routines in the PmgrPrimsRec, added Pmgr
|
|||
|
; wake level in PrimsInfoRec, changed PmgrRec by adding
|
|||
|
; SleepSaveFlag and SleepSaveCrsr while removing
|
|||
|
; NoVidRamSleepSave, set the default PwrCycProgMax to $c0 to
|
|||
|
; prevent the watch cursor from coming up in finder.
|
|||
|
; <H15> 2/17/92 SWC Changed pmFree2 to dockFlags so we can keep track of related
|
|||
|
; docking attributes.
|
|||
|
; <H14> 2/10/92 SWC Added SCSI Disk Mode internal HD to PmgrOtherFlags. Added
|
|||
|
; BasePRAMDisp to PowerDispRec.
|
|||
|
; <H13> 2/7/92 SWC Added default low power and dead battery warning levels to the
|
|||
|
; primitive info table so we can initialize them if necessary.
|
|||
|
; <H12> 2/7/92 SWC Added more bits to PmgrStatusFlags/SleepFlags. Added definition
|
|||
|
; of EconoBit so it's in one place. Added a GetLevel entry to the
|
|||
|
; primitives table since it looks like we'll have more than one
|
|||
|
; way to characterize the current battery level.
|
|||
|
; <H11> 2/5/92 SWC Added new battery commands to the list. Removed <H8> since
|
|||
|
; there's actually a command to directly return the low warning
|
|||
|
; and cutoff battery levels.
|
|||
|
; <H10> 2/4/92 SWC Added sleep and wakeup table entries to the primitives record.
|
|||
|
; <H9> 2/3/92 HJR Added PRAMbase and VPmgrPrimitives to PmgrGlobals. Added Power
|
|||
|
; Manager Primitives table to support new structure.
|
|||
|
; <H8> 1/30/92 SWC Added low and dead battery bytes to the PRAM record since
|
|||
|
; there's currently no place these go for PMGR-based PRAM models
|
|||
|
; (TIM didn't have to worry because they used a RTC for real PRAM
|
|||
|
; and the PMGR for those 2 bytes).
|
|||
|
; <H7> 1/27/92 SWC Added two new commands to read the clamshell switch and the
|
|||
|
; connector bar sense on DBLite.
|
|||
|
; <H6> 12/3/91 SWC Added CPUSpeed33MHz in case we ever get a fast DB-Lite going.
|
|||
|
; <H5> 8/15/91 SWC Rolled out the SetOneSecInt command ($70) from <T3>, since we're
|
|||
|
; not going to selectively enable and disable its interrupt
|
|||
|
; sources.
|
|||
|
; <H4> 8/14/91 SWC Added vectors for the PMgr send and receive count tables so we
|
|||
|
; can make changes/additions more easily.
|
|||
|
; <H3> 8/14/91 SWC Added oneSecIntFlag to the list of interrput sources for the
|
|||
|
; PMgr interrupt (command $78).
|
|||
|
; <H2> 8/5/91 SWC Added NoVRAMVidRam to PMgrGlobals as an alternate place to save
|
|||
|
; state when VRAM is not kept powered across sleep.
|
|||
|
; ———————————————————————————————————————————————————————————————————————————————————————
|
|||
|
; Pre-HORROR ROM comments begin here.
|
|||
|
; ———————————————————————————————————————————————————————————————————————————————————————
|
|||
|
; <16> 7/11/91 HJR Added MdmSndVect to PMgrGlobals.
|
|||
|
; <15> 7/11/91 HJR Added SleepHook and WakeUpHook to PMgrGlobals.
|
|||
|
; <14> 7/8/91 HJR Added CPUSpeedDisp to PowerDispRec.
|
|||
|
; <13> 6/25/91 HJR Changed PwrCycProgMaxDef to $600 approximately 13 seconds.
|
|||
|
; <12> 6/25/91 ag added hysteresis low power value to power manager globals.
|
|||
|
; <11> 6/24/91 ag fix some commenting.
|
|||
|
; <10> 6/24/91 HJR Added Autoslpdisable, a counting semaphore, to PmgrRec.
|
|||
|
; <9> 6/24/91 HJR Changed sleepq and pmCommand to records. Added PwrCycProg and
|
|||
|
; PwrCycRestore to PmgrRec.
|
|||
|
; <8> 6/24/91 djw Add new PmgrFlags for hard drive, low power dialog disable, and
|
|||
|
; bad battery detected condition.
|
|||
|
; <7> 6/12/91 ag added network warning override bit in PmgrFlags.
|
|||
|
; <6> 6/11/91 HJR Added PwrCycProgGrow and PwrCycProgMax in order to parameterize
|
|||
|
; the progressive power cycling scheme.
|
|||
|
; <5> 6/9/91 HJR Added IdleDelay to the PowerDispRec. Added PwrCycDelay to the
|
|||
|
; PMgrRec and added some default equates for Power Cycling.
|
|||
|
; <4> 6/5/91 djw Add hard drive delay fields to fix 40mb Conner's drive problem
|
|||
|
; <3> 5/31/91 djw Add new power mgr command equate for DB-Lite to set 1 sec
|
|||
|
; interrupt
|
|||
|
; <2> 5/23/91 HJR Clean up header.
|
|||
|
; <1> 5/23/91 HJR first checked in
|
|||
|
;
|
|||
|
|
|||
|
IF &TYPE('__PowerPrivEqu__') = 'UNDEFINED' THEN
|
|||
|
__PowerPrivEqu__ SET 1
|
|||
|
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; Power Dispatch Record
|
|||
|
;
|
|||
|
; Equates for the list of routines that can be called from the [private] _PowerDispatch trap.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
PowerDispRec RECORD 0,Increment ; Record for the Power Dispatch Trap
|
|||
|
PmgrTrapDisp DS.B 1 ; Selector #0
|
|||
|
IdleUpdateDisp DS.B 1 ; Selector #1
|
|||
|
IdleDelayDisp DS.B 1 ; Selector #2
|
|||
|
IdleMindDisp DS.B 1 ; Selector #3
|
|||
|
IdleReadDisp DS.B 1 ; Selector #4
|
|||
|
IdleEnableDisp DS.B 1 ; Selector #5
|
|||
|
IdleDisableDisp DS.B 1 ; Selector #6
|
|||
|
CPUSpeedDisp DS.B 1 ; Selector #7
|
|||
|
BasePRAMDisp DS.B 1 ; Selector #8
|
|||
|
ScaledBattDisp DS.B 1 ; Selector #9
|
|||
|
PMgrHookDisp DS.B 1 ; Selector #10
|
|||
|
DimScreen DS.B 1 ; Selector #11
|
|||
|
FactoryDisp DS.B 1 ; Selector #12
|
|||
|
PrivFeatureDisp DS.B 1 ; Selector #13
|
|||
|
GetCCRecordDisp DS.B 1 ; Selector #14 <K21>
|
|||
|
GetBtnValDisp DS.B 1 ; Selector #15 <K22>
|
|||
|
SetHDStateDisp DS.B 1 ; Selector #16
|
|||
|
ENDR
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; IdleUpdate Type
|
|||
|
;
|
|||
|
; Enumeration of the different types of activity.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
OverallAct EQU 0 ; general type of activity
|
|||
|
UsrActivity EQU 1 ; user specific type of activity
|
|||
|
NetActivity EQU 2 ; network specific activity
|
|||
|
HDActivity EQU 3 ; Hard Drive activity
|
|||
|
|
|||
|
MACRO
|
|||
|
_IdleUpdateDispatch
|
|||
|
MOVE.L #(OverallAct<<16)|\
|
|||
|
(PowerDispRec.IdleUpdateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
_UsrIdleUpdate
|
|||
|
MOVE.L #(UsrActivity<<16)|\
|
|||
|
(PowerDispRec.IdleUpdateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
_NetIdleUpdate
|
|||
|
MOVE.L #(NetActivity<<16)|\
|
|||
|
(PowerDispRec.IdleUpdateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
_HDIdleUpdate
|
|||
|
MOVE.L #(HDActivity<<16)|\
|
|||
|
(PowerDispRec.IdleUpdateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; PMgrHookDisp Record
|
|||
|
;
|
|||
|
; Equates for the list of routines that can be called from the PMgrHookDisp trap.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
PMgrHookDispRec RECORD 0,Increment ; Record for the PMgrHookDisp Trap
|
|||
|
PSecondaryInit DS.B 1 ; Selector #0
|
|||
|
PScsiDiskMode DS.B 1 ; Selector #1
|
|||
|
PExternalVidOn DS.B 1 ; Selector #2
|
|||
|
PModemType DS.B 1 ; Selector #3
|
|||
|
ENDR
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; GetBtnValsDisp Record
|
|||
|
;
|
|||
|
; Equates for the list of routines that can be called from the GetBtnValsDisp trap.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
GetBrightnessButtonSelector EQU 0 ; BrightnessSelector
|
|||
|
GetContrassButtonSelector EQU 1 ; Contrass Selector
|
|||
|
|
|||
|
MACRO
|
|||
|
_GetBrightnessButton
|
|||
|
MOVE.L #(GetBrightnessButtonSelector<<16)|\
|
|||
|
(PowerDispRec.GetBtnValDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
_GetContrassButton
|
|||
|
MOVE.L #(GetContrassButtonSelector<<16)|\
|
|||
|
(PowerDispRec.GetBtnValDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; SetHDStateDisp Record
|
|||
|
;
|
|||
|
; Equates for the list of routines that can be called from the SetHDStateDisp trap.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
SpinDownHDSelector EQU 0 ; Spin down hard drive selector
|
|||
|
SpinUpHDSelector EQU 1 ; Spin up the hard drive selector
|
|||
|
|
|||
|
MACRO
|
|||
|
_SpinDownHardDrive
|
|||
|
MOVE.L #(SpinDownHDSelector<<16)|\
|
|||
|
(PowerDispRec.SetHDStateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
_SpinUPHardDrive
|
|||
|
MOVE.L #(SpinUpHDSelector<<16)|\
|
|||
|
(PowerDispRec.SetHDStateDisp),D0
|
|||
|
_PowerDispatch
|
|||
|
ENDM
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; Modem Type
|
|||
|
;
|
|||
|
; Enumeration of the different types of internal modems available.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
ModemTypeUnk EQU -1 ; modem installed but type unknown
|
|||
|
ModemTypeNone EQU 0 ; no modem installed
|
|||
|
ModemTypeSerial EQU 1 ; original serial modem
|
|||
|
ModemTypeDUO EQU 2 ; rockwell data pump modem (RC144DPL)
|
|||
|
ModemTypeDUOPlus EQU 3 ; rockwell data pump modem (RC144DPL) + 6805 controller
|
|||
|
ModemTypeHardRock EQU 4 ; BlackBird Modem
|
|||
|
|
|||
|
;••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; Power Manager Primitive Table
|
|||
|
;
|
|||
|
; Records to describe the structure of Power Manager Primitives.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
PmgrPrimitivesRec RECORD {PmgrRoutineTbl},Increment ; Record for Power Manager Primitives table
|
|||
|
PmgrPrimsFlags DS.L 1 ; miscellaneous flags
|
|||
|
PmgrPrimsCount DS.L 1 ; Size of primitives record
|
|||
|
PmgrRoutineTbl DS.L 1 ; offset to table of basic power manager routines
|
|||
|
PrimInfoTblPtr DS.L 1 ; offset to table of primitives
|
|||
|
IdleMindTblPtr DS.L 1 ; offset to table IdleMind of routines
|
|||
|
SleepTblPtr DS.L 1 ; offset to table of routines to be run when going to sleep
|
|||
|
WakeTblPtr DS.L 1 ; offset to table of routines to be run when waking up
|
|||
|
PMgrOpExcepTbl DS.L 1 ; offset to table of exceptions for PMgrOp
|
|||
|
ModemTblPtr DS.L 1 ; offset to table of routines to handle the internal modem
|
|||
|
PwrDispatchTbl DS.L 1 ; offset to table of dispatch vectors
|
|||
|
PmgrHookTbl DS.L 1 ; offset to table of Hook vectors
|
|||
|
PmgrCommTblPtr DS.L 1 ; offset to table of comms power vectors
|
|||
|
PMgrOpTblPtr DS.L 1 ; offset to table of PmgrOp Routines
|
|||
|
BklightTblPtr DS.L 1 ; offset to table of backlight information
|
|||
|
ENDR
|
|||
|
|
|||
|
PmgrRoutineRec RECORD {PowerCycPtr},Increment ; Record for PMgr Routines
|
|||
|
PgmrRoutineFlags DS.L 1 ; miscellaneous flags
|
|||
|
PmgrRoutineCount DS.L 1 ; Size of primitives record
|
|||
|
PowerCycPtr DS.L 1 ; offset to routine for powering down cpu
|
|||
|
PowerCycResPtr DS.L 1 ; offset to routine for powering up cpu
|
|||
|
BatteryVBLPtr DS.L 1 ; offset to VBL task to check the battery level
|
|||
|
GetLevelPtr DS.L 1 ; offset to routine to determine current battery level
|
|||
|
ScaledBattPtr DS.L 1 ; offset to routine to return scaled battery,warning levels
|
|||
|
EnvIntPtr DS.L 1 ; offset to routine to handle environment interrupts
|
|||
|
CPUSpeedPtr DS.L 1 ; offset to machine specific cpu speed routine
|
|||
|
SoundVBLPtr DS.L 1 ; offset to VBL task to check for sound usage
|
|||
|
ScreenRedrawPtr DS.L 1 ; offset to routine which refreshes the screen after wake
|
|||
|
AbsoluteBattPtr DS.L 1 ; offset to routine to return absolute battery voltage
|
|||
|
BatteryTimePtr DS.L 1 ; offset to routine to return info about battery times <H54>
|
|||
|
SpeedChangePtr DS.L 1 ; offset to routine to set full/reduced processor speed
|
|||
|
ENDR
|
|||
|
|
|||
|
PrimInfoTbleRec RECORD {PrimPRAMBase},Increment ; Machine specific info
|
|||
|
PrimInfoFlags DS.L 1 ; miscellaneous flags
|
|||
|
PrimInfoCount DS.L 1 ; size of primitives record
|
|||
|
PrimPRAMBase DS.B 1 ; Base address of PRAM
|
|||
|
PrimDefHyst DS.B 1 ; default hysteresis
|
|||
|
PrimLowWarn DS.B 1 ; default low power warning level
|
|||
|
PrimCutOff DS.B 1 ; default dead battery warning level
|
|||
|
PrimWakeLvl DS.B 1 ; default pmgr wake battery level
|
|||
|
PrimBatWarnCt DS.B 1 ; Number-1 of shorted bat int's before displaying dialog
|
|||
|
PrimExtVidCor DS.B 1 ; External video correction to low power warning (10's mvolt)
|
|||
|
PrimChargerAttr DS.B 1 ; bitmap of charger features <15>
|
|||
|
PowerCycRegAddr DS.L 1 ; address of power cycling register
|
|||
|
PrimPubFeatures DS.L 1 ; bitmap of public Power Manager features
|
|||
|
PrimPrivFeatures DS.L 1 ; bitmap of private Power Manager features
|
|||
|
PrimBatteryCount DS.W 1 ; number of batteries supported <H54>
|
|||
|
PrimPMgrCommType DS.B 1 ; 0=parallel interface, 2=serial interface
|
|||
|
PrimInfoPad1 DS.B 1 ;•padding, for now
|
|||
|
PrimExtChrgTime DS.L 1 ; minutes to extend bulk charge time of the battery
|
|||
|
PrimCycRegValue DS.B 1 ; value for power cycling register to cycle power <K14>
|
|||
|
PrimSlpRegValue DS.B 1 ; value for sleep register to set machine to sleep <K14>
|
|||
|
PrimInfoPad2 DS.B 1 ;•padding, for now
|
|||
|
PrimInfoPad3 DS.B 1 ;•padding, for now
|
|||
|
ENDR
|
|||
|
|
|||
|
SleepTableRec RECORD {SleepTableStart},INCREMENT ; record for list of routines called before sleeping
|
|||
|
SleepTableFlags DS.L 1 ; miscellaneous flags
|
|||
|
SleepTableCount DS.L 1 ; size of primitives record
|
|||
|
SleepTableStart DS.L 0 ; offset to first sleep routine
|
|||
|
ENDR
|
|||
|
|
|||
|
WakeTableRec RECORD {WakeTableStart},INCREMENT ; record for list of routines called before waking
|
|||
|
WakeTableFlags DS.L 1 ; miscellaneous flags
|
|||
|
WakeTableCount DS.L 1 ; size of primitives record
|
|||
|
WakeTableStart DS.L 0 ; offset to first wake routine
|
|||
|
ENDR
|
|||
|
|
|||
|
IdleMindTblRec RECORD {CountDownTimer},Increment ; Record for the IdleMind call
|
|||
|
IdleMindFlags DS.L 1 ; miscellaneous flags
|
|||
|
IdleMindCount DS.L 1 ; size of primitives record
|
|||
|
CountDownTimer DS.L 1 ; offset to routine for checking countdown condition
|
|||
|
RunIdleRoutines DS.L 1 ; offset to routine for checking hard drive spindown
|
|||
|
SleepTimeOut DS.L 1 ; offset to routine for checking sleep timeout
|
|||
|
CheckIdle DS.L 1 ; offset to routine for checking idle
|
|||
|
CalcProgPwrCyc DS.L 1 ; offset to routine for calculating progressive value
|
|||
|
CyclePower DS.L 1 ; offset to routine for power cycling
|
|||
|
ENDR
|
|||
|
|
|||
|
PMgrOpTblRec RECORD {PMgrOpTrapPtr},Increment ; Record for the PmgrOp Trap
|
|||
|
PMgrOpTblFlags DS.L 1 ; miscellaneous flags
|
|||
|
PMgrOpTblCount DS.L 1 ; size of primitive record
|
|||
|
PMgrOpTrapPtr DS.L 1 ; offset to Pmgr Trap $A085
|
|||
|
IdleUpdatePtr DS.L 1 ; offset to Pmgr Trap $A285
|
|||
|
IdleStatePtr DS.L 1 ; offset to Pmgr Trap $A485
|
|||
|
SerialPowerPtr DS.L 1 ; offset to Pmgr Trap $A685
|
|||
|
ENDR
|
|||
|
|
|||
|
PwrDispatchRec RECORD {PmgrTrapPtr},Increment ; Record for the PowerDispatch Trap
|
|||
|
PwrDispFlags DS.L 1 ; miscellaneous flags
|
|||
|
PwrDispCount DS.L 1 ; size of primitive record
|
|||
|
PmgrTrapPtr DS.L 1 ; offset to PmgrTrap
|
|||
|
IdleUpdatePtr DS.L 1 ; offset to IdleUpdate
|
|||
|
IdleDelayPtr DS.L 1 ; offset to IdleDelay
|
|||
|
IdleMindPtr DS.L 1 ; offset to IdleMind
|
|||
|
IdleReadPtr DS.L 1 ; offset to IdleRead
|
|||
|
IdleEnablePtr DS.L 1 ; offset to IdleEnable
|
|||
|
IdleDisablePtr DS.L 1 ; offset to IdleDisable
|
|||
|
CPUSpeedPtr DS.L 1 ; offset to CPUSpeed
|
|||
|
BasePRAMPtr DS.L 1 ; offset to BasePRAM
|
|||
|
ScaledBatteryPtr DS.L 1 ; offset to ScaledBattery
|
|||
|
PowerMgrHookPtr DS.L 1 ; offset to PowerMgrHook
|
|||
|
PDimScreensPtr DS.L 1 ; offset to PDimScreens
|
|||
|
FactoryDispPtr DS.L 1 ; offset to FactoryDispatch
|
|||
|
AbsoluteBatteryPtr DS.L 1 ; offset to AbsoluteBattery
|
|||
|
PrivateFeaturesPtr DS.L 1 ; offset to PrivateFeatures
|
|||
|
ENDR
|
|||
|
|
|||
|
PMgrHookRec RECORD {SecondaryInitPtr},Increment ; Record for the PmgrHook Dispatch
|
|||
|
PMgrHookFlags DS.L 1 ; miscellaneous flags
|
|||
|
PmgrHookCount DS.L 1 ; size of primitive record
|
|||
|
SecondaryInitPtr DS.L 1 ; offset to Selector #0 routine
|
|||
|
ScsiDiskModePtr DS.L 1 ; offset to Selector #1 routine
|
|||
|
ExternaVideoOnPtr DS.L 1 ; offset to Selector #2 routine
|
|||
|
ModemTypePtr DS.L 1 ; offset to Selector #3 routine
|
|||
|
ENDR
|
|||
|
|
|||
|
ModemTblRec RECORD {PowerOnModem},Increment ; Record for the modem call
|
|||
|
ModemPrimsFlags DS.L 1 ; miscellaneous flags
|
|||
|
ModemPrimsCount DS.L 1 ; Size of primitives record
|
|||
|
PowerOnModem DS.L 1 ; offset to routine to powerup modem hardware
|
|||
|
PowerOffModem DS.L 1 ; offset to routine to powerdown modem hardware
|
|||
|
GetModemType DS.L 1 ; offset to routine to return the modem type (if any) <H57>
|
|||
|
ENDR
|
|||
|
|
|||
|
CommsPwrTblRec RECORD {PowerOnB},Increment ; Record for the comms power call <K8>
|
|||
|
CommsPwrFlags DS.L 1 ; miscellaneous flags
|
|||
|
CommsPwrCount DS.L 1 ; Size of primitives record
|
|||
|
|
|||
|
PowerOnB DS.L 1 ; offset to routine to power up SCC port B
|
|||
|
PowerOnA DS.L 1 ; offset to routine to power up SCC port A
|
|||
|
PowerOnC DS.L 1 ; offset to routine to power up SCC port C
|
|||
|
PowerOnEnet DS.L 1 ; offset to routine to power up onboard ethernet
|
|||
|
|
|||
|
PowerOffB DS.L 1 ; offset to routine to power down SCC port B
|
|||
|
PowerOffA DS.L 1 ; offset to routine to power down SCC port A
|
|||
|
PowerOffC DS.L 1 ; offset to routine to power down SCC port C
|
|||
|
PowerOffEnet DS.L 1 ; offset to routine to power down onboard ethernet
|
|||
|
ENDR
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
; Table Types and mask bits 0-1
|
|||
|
PrimsTypeMask EQU %0000000000000111 ; Mask for this feature
|
|||
|
PrimsTypeTable EQU %0000000000000000 ; Table of Tables
|
|||
|
PrimsTypePtr EQU %0000000000000001 ; Table of pointer
|
|||
|
PrimsTypeInfo EQU %0000000000000010 ; Table of information
|
|||
|
PrimsTypePMgrEx EQU %0000000000000011 ; Table is Power Manager Exceptions
|
|||
|
PrimsTypeExp1 EQU %0000000000000100 ; Table is for expansion
|
|||
|
PrimsTypeExp2 EQU %0000000000000101 ; Table is for expansion
|
|||
|
PrimsTypeExp3 EQU %0000000000000110 ; Table is for expansion
|
|||
|
PrimsTypeExp4 EQU %0000000000000111 ; Table is for expansion
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
; Definition of bits in bitfield in PrimInfoTbleRec.PrimPrivFeatures
|
|||
|
hasExtdBattInfo EQU 0 ; 1=extended battery status call is supported by PMGR
|
|||
|
hasBatteryID EQU 1 ; 1=battery ID call is supported by PMGR
|
|||
|
canSwitchPower EQU 2 ; 1=switch AC power on/off call is supported by PMGR
|
|||
|
privBitsInvalid EQU 31 ; reserved: negative value indicates PowerDispatch call not supported
|
|||
|
|
|||
|
; definition of bits in PrimChargerAttr
|
|||
|
|
|||
|
hasSleepLED EQU 0 ; supports sleep LED <H53>
|
|||
|
hasForcedDischarge EQU 1 ; supports forced discharge mode <H53>
|
|||
|
hasDBCharger EQU 2 ; should use DB charging tables <H53>
|
|||
|
hasEscherCharger EQU 3 ; should use Escher charging tables <H53>
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
; Handy little macro for using with the Primitive Table
|
|||
|
|
|||
|
MACRO
|
|||
|
LoadTbl &Table,&GlobalReg,&Reg
|
|||
|
MOVEA.L vPMgrPrimitives(&GlobalReg),&Reg
|
|||
|
MOVEA.L &Table(&Reg),&Reg
|
|||
|
TST.L &Reg
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
JsrPrimTbl &Routine,&Tbl
|
|||
|
TST.L ([&Routine,&Tbl])
|
|||
|
BEQ.S *+2+6
|
|||
|
JSR ([&Routine,&Tbl])
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
JmpPrimTbl &Routine,&Tbl
|
|||
|
TST.L ([&Routine,&Tbl])
|
|||
|
BEQ.S *+2+6
|
|||
|
JMP ([&Routine,&Tbl])
|
|||
|
RTS
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
JsrRoutine &Routine,&GlobalsReg,&Reg
|
|||
|
MOVEA.L vPMgrPrimitives(&GlobalsReg),&Reg
|
|||
|
MOVEA.L PmgrRoutineTbl(&Reg),&Reg
|
|||
|
TST.L ([&Routine,&Reg])
|
|||
|
BEQ.S *+2+6
|
|||
|
JSR ([&Routine,&Reg])
|
|||
|
ENDM
|
|||
|
|
|||
|
MACRO
|
|||
|
JmpRoutine &Routine,&GlobalsReg,&Reg
|
|||
|
MOVEA.L vPMgrPrimitives(&GlobalsReg),&Reg
|
|||
|
MOVEA.L PmgrRoutineTbl(&Reg),&Reg
|
|||
|
TST.L ([&Routine,&Reg])
|
|||
|
BEQ.S *+2+6
|
|||
|
JMP ([&Routine,&Reg])
|
|||
|
RTS
|
|||
|
ENDM
|
|||
|
|
|||
|
;••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; Power Manager Local Storage
|
|||
|
;
|
|||
|
; The Following are the records used for the power manager. The PmgrRec is a superset of the original power
|
|||
|
; manager globals and maintains the first 158 bytes appropriately. PowerCycleRec was added to facilitate
|
|||
|
; power cycling and sleep. VidRamSaveRec was added to replace some hard-coded addresses thus making it more
|
|||
|
; universal. PMgrScratchRec helps maintain the integrity of the original Pmgr globals.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
PMgrScratchRec RECORD 0,Increment ; Local Scratch storage
|
|||
|
ProgLastAct DS.L 1 ; Progressive Power Cycling Last Activity
|
|||
|
ProgCounter DS.W 1 ; Progressive Power Cycling Counter
|
|||
|
SyncCounter DS.W 1 ; Sync Idle Patch Counter
|
|||
|
SaveBusErrVect DS.L 1 ; Saved bus error vector
|
|||
|
pmgrFree DS.W 2 ; Free Storage
|
|||
|
PMgrScratchSz EQU *-PMgrScratchRec; 16 bytes now
|
|||
|
ENDR
|
|||
|
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
PowerCycleRec RECORD 0,Increment ; Global storage for power cycling and sleep
|
|||
|
PCRHasMMUFlag DS.W 1 ; Saved MMU Flag
|
|||
|
PCROldStackPtr DS.L 1 ; Stack Ptr
|
|||
|
PCRSRsave DS.W 1 ; Status Register
|
|||
|
PCRNMIsave DS.L 1 ; NMI Vector
|
|||
|
PCRMMUTCsave DS.L 1 ; MMU TC
|
|||
|
PCRMMUCRPsave DS.L 2 ; MMU CRP
|
|||
|
PCRMMUTT1save DS.L 1 ; MMU TT1
|
|||
|
PCRMMUTT0save DS.L 1 ; MMU TT0
|
|||
|
PCRSize EQU *-PowerCycleRec ; 32 bytes right now
|
|||
|
ENDR
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
CPUStateRec RECORD 0,Increment ; Global storage for power cycling and sleep
|
|||
|
NMIStkFrame DS.W 4 ; Save 4 words in case of stack frame
|
|||
|
|
|||
|
CPUMMUCRPsave EQU * ; MMU 030 CPU Root Pointer (2 Longs)
|
|||
|
CPUMMUURPsave DS.L 1 ; MMU 040 User Root Pointer
|
|||
|
CPUMMUSRPsave DS.L 1 ; MMU 040 Supervisor Root Pointer
|
|||
|
|
|||
|
CPUMMUTCsave DS.L 1 ; MMU 030/040 TC
|
|||
|
|
|||
|
CPUMMUTT0save EQU * ; MMU 030 TT0
|
|||
|
CPUMMUDTT0save DS.L 1 ; MMU 040 Data TT0
|
|||
|
CPUMMUTT1save EQU * ; MMU 030 TT1
|
|||
|
CPUMMUDTT1save DS.L 1 ; MMU 040 Data TT1
|
|||
|
CPUMMUITT0save DS.L 1 ; MMU Instruction TT0
|
|||
|
CPUMMUITT1save DS.L 1 ; MMU Instruction TT1
|
|||
|
|
|||
|
CPUCACRsave DS.L 1 ; Cache Control Register
|
|||
|
CPUVBRsave DS.L 1 ; Vector Base Register
|
|||
|
CPUUSPsave DS.L 1 ; User Stack Pointer
|
|||
|
CPUMSPsave DS.L 1 ; Master Stack Pointer
|
|||
|
CPUISPsave DS.L 1 ; Interrupt Stack Pointer
|
|||
|
CPUCAARsave DS.L 1 ; Cache Address Register '030 only
|
|||
|
CPUNMIsave DS.L 1 ; NMI Vector
|
|||
|
CPUSRsave DS.W 1 ; Status Register
|
|||
|
CPUUnused DS.W 1 ; currently unused
|
|||
|
CPUStateSize EQU *-CPUStateRec ; 68 bytes right now
|
|||
|
ENDR
|
|||
|
|
|||
|
CelsiusCycleRec RECORD 0,Increment
|
|||
|
CCDeferredTask DS.B 20 ; ($00) Deferred Task Queue Element <H59>
|
|||
|
CCVBLTask DS.B 14 ; ($14) VBL task queue element
|
|||
|
CCCurTemp DS.B 1 ; ($22) Current temperature
|
|||
|
CCMaxTemp DS.B 1 ; ($27) Maximum seen so far
|
|||
|
CCLevel1Temp DS.B 1 ; ($23) Lvl1 °C threshold, more effecient pwr cycling
|
|||
|
CCLevel2Temp DS.B 1 ; ($24) Lvl2 °C threshold, deferred task cycling
|
|||
|
CCLevel3Temp DS.B 1 ; ($25) Lvl3 °C threshold, user warning dialog
|
|||
|
CCLevel4Temp DS.B 1 ; ($26) Lvl4 °C threshold, turn off computer
|
|||
|
CCRate1 DS.B 1 ; ($28) Cycling rate curve values
|
|||
|
CCRate2 DS.B 1 ; ($29) Cycling rate curve values
|
|||
|
CCRate3 DS.B 1 ; ($2A) Cycling rate curve values
|
|||
|
CCRate4 DS.B 1 ; ($2B) Cycling rate curve values
|
|||
|
CCLastCycTicks DS.L 1 ; ($2C) Last tick time we power cycled
|
|||
|
CCVBLFreq DS.W 1 ; ($30) Adjustable VBL Frequency
|
|||
|
CCExtraWord DS.W 1 ; ($32) This space for rent
|
|||
|
CCExtraLongs DS.L 3 ; ($34) For later use
|
|||
|
CCRecSize EQU *-CelsiusCycleRec ; ($40) <H59>
|
|||
|
|
|||
|
PmgrRec RECORD 0,Increment
|
|||
|
SleepTime DS.B 1 ; (00) Copies of sleep time out values
|
|||
|
HDTime DS.B 1 ; (01) Hard disk time out
|
|||
|
SleepQHdr DS.W 0 ; (02) sleep queue header
|
|||
|
SlpQFlags DS.W 1 ; (02) Sleep queue flags
|
|||
|
SlpQHead DS.L 1 ; (04) First sleep queue entry
|
|||
|
SlpQTail DS.L 1 ; (08) last sleep queue entry
|
|||
|
SysTaskFlag DS.B 1 ; (0C) SystemTask been called flag
|
|||
|
LastLevel DS.B 1 ; (0D) Previous normalized power level
|
|||
|
SaveSpeedo DS.B 1 ; (0E) save the speedometer reading here
|
|||
|
Charger DS.B 1 ; (0F) charger status flag
|
|||
|
SleepFlags DS.B 1 ; (10) misc status flags
|
|||
|
TOdirtyFlag DS.B 1 ; (11) time outs are dirty flag
|
|||
|
WakeVector DS.L 1 ; (12) wake up vector
|
|||
|
HDvector DS.L 1 ; (16) vector to spin down proc
|
|||
|
LastAct DS.L 1 ; (1A) Last user activity
|
|||
|
LastHd DS.L 1 ; (1E) Last hard disk activity
|
|||
|
LowWarn DS.B 1 ; (22) Low power warning threshold
|
|||
|
Cutoff DS.B 1 ; (23) Power manager cutoff voltage
|
|||
|
BNmQEntry DS.L 9 ; (24) Low power alert
|
|||
|
BatQ DS.B 8 ; (48) Battery level circular queue
|
|||
|
lpMSGvalid DS.B 1 ; (50) Low power message pending flag
|
|||
|
IdleFlagCnt DS.B 1 ; (51) Idle flag set/clear counter
|
|||
|
BatAvg DS.B 1 ; (52) Average of BatQ
|
|||
|
NTSCcopy DS.B 1 ; (53) Copy of NTSC byte, only used from restart to drawbeepscreen
|
|||
|
PmgrFlags DS.B 1 ; (54) general power manager bit flags
|
|||
|
PRAMbase DS.B 1 ; (55) Base address of PRAM
|
|||
|
RAMwatchPtr DS.L 1 ; (56) Pointer to system disk watch cursor
|
|||
|
ROMwatchPtr DS.L 1 ; (5A) Pointer to rom watch cursor
|
|||
|
watchCrsr DS.B 1 ; (5E) Flag indicating the watch cursor in use
|
|||
|
BatQIndex DS.B 1 ; (5F) Index into circular battery averaging queue
|
|||
|
SleepNetHook DS.L 1 ; (60) Hook for calling pre-closeATalk
|
|||
|
vBatInt DS.L 1 ; (64) Vector to battery interrupt handler
|
|||
|
vEnvInt DS.L 1 ; (68) Vector to environment interrupt handler
|
|||
|
WakeWarn DS.B 1 ; (6C) AppleTalk services closed
|
|||
|
Level4Cnt DS.B 1 ; (6D) Must sleep now counter
|
|||
|
lpSICNHndl DS.L 1 ; (6E) Low power icon handle
|
|||
|
lpSTR0Ptr DS.L 1 ; (72) Low power messages storage
|
|||
|
lpSTR1Ptr DS.L 1 ; (76)
|
|||
|
lpSTR2Ptr DS.L 1 ; (7A)
|
|||
|
lpSTR3Ptr DS.L 1 ; (7E)
|
|||
|
BatVBLTask DS.B 14 ; (82) Battery monitor task
|
|||
|
SwVBLTask DS.B 14 ; (90) Sound watch task
|
|||
|
PowerCycleReg DS.L 1 ; (9E) address of power cycling register <H19>
|
|||
|
PhysVidRamPtr DS.L 1 ; (A2) Pointer to Physical Video Ram for PwrCycling & Sleep
|
|||
|
PmgrVarPhysPtr DS.L 1 ; (A6) Pointer to physical address of the PMgrGlobals
|
|||
|
PwrCycSyncCount DS.W 1 ; (AA) Interval between SyncIdle Calls to power cycle
|
|||
|
PwrCycWaitTime DS.W 1 ; (AC) Time we wait till entering power cycling
|
|||
|
PwrCycCounter DS.W 1 ; (AE) Counter for times it will power cycle
|
|||
|
PwrCycDelay DS.W 1 ; (B0) Delay time used by IdleDelay
|
|||
|
PMgrScratch DS.B PMgrScratchRec ; (B2) Local Scratch area for the Power Manager
|
|||
|
PwrCycSave DS.B PowerCycleRec ; (C2) Save area for Power Cycling
|
|||
|
PwrCycProgGrow DS.W 1 ; (E2) Increment by which progressive power cycling grows
|
|||
|
PwrCycProgMax DS.W 1 ; (E4) Maximum setting for progressive power cycling
|
|||
|
PwrCycProc DS.L 1 ; (E6) Pointer to power down code of power cycling
|
|||
|
PwrCycRestore DS.L 1 ; (EA) Pointer to restore code for power cycling
|
|||
|
BBSTR0Ptr DS.L 1 ; (EE) First Bad Battery message
|
|||
|
BBSTR1Ptr DS.L 1 ; (F2) Second Bad Battery message
|
|||
|
Hysteresis DS.W 1 ; (F6) low power hysteresis (10mv)
|
|||
|
AutoSlpDisable DS.B 1 ; (F8) Counting semaphor to disable sleep
|
|||
|
dockFlags DS.B 1 ; (F9) docking flags (inhibit sleep/power cycling, etc.) <H15>
|
|||
|
SleepHook DS.L 1 ; (FA) Hook in going to sleep code
|
|||
|
WakeUpHook DS.L 1 ; (FE) Hook in wake-up code
|
|||
|
MdmSndVect DS.L 1 ; (102) Vector for modem sound routine
|
|||
|
vSendCountTbl DS.L 1 ; (106) pointer to PMgr send count table <H4>
|
|||
|
vRecvCountTbl DS.L 1 ; (10A) pointer to PMgr receive count table <H4>
|
|||
|
vPMgrPrimitives DS.L 1 ; (10E) pointer to PMgr Primitives <H8>
|
|||
|
SleepSaveFlag DS.L 1 ; (112) warm start constant saved here <H16>
|
|||
|
SleepSaveCrsr DS.L 1 ; (116) pointer to cursor <H16>
|
|||
|
ClamshellVBLTask DS.B 14 ; (11A) VBL queue element for clamshell switch monitoring <H19>
|
|||
|
PmgrFlags1 DS.B 1 ; (128) general power manager bit flags (extended) •• Please see note on PmgrFlags1 below ••
|
|||
|
PmgrFlags2 DS.B 1 ; (129) general power manager bit flags (extended) <H22>
|
|||
|
PmgrFlags3 DS.B 1 ; (12A) general power manager bit flags (extended) <H22>
|
|||
|
PmgrFlags4 DS.B 1 ; (12B) general power manager bit flags (extended) <H22>
|
|||
|
NoVidSTRPtr DS.L 1 ; (12C) handle to no external video message string <H29>
|
|||
|
NoChrgrSTRPtr DS.L 1 ; (130) handle to no external video w/o charger message string <H29>
|
|||
|
UNmQEntry DS.L 9 ; (134) notification mgr entry for user warning messages <H29>
|
|||
|
saveGDFlags DS.W 1 ; (158) saved flags for power dimming <H31>
|
|||
|
pmgrOpExceptions DS.L 1 ; (15A) pointer to table of PMgrOp exceptions <H32>
|
|||
|
vSoftShutdown DS.L 1 ; (15E) pointer to soft shutdown routine <H34>
|
|||
|
BatteryWarnDly DS.W 1 ; (162) value to reload into BatteryWarnCnt <H40>
|
|||
|
BatteryWarnCnt DS.W 1 ; (164) count down timer for battery interrupt <H40>
|
|||
|
HardDiskQHdr DS.W 0 ; (166) hard disk spindown queue header <H45>
|
|||
|
hdQFlags DS.W 1 ; (166) hard disk queue flags <H45>
|
|||
|
hdQHead DS.L 1 ; (168) first hard disk queue entry <H45>
|
|||
|
hdQTail DS.L 1 ; (16C) last hard disk queue entry <H45>
|
|||
|
vPublicDispatch DS.L 1 ; (170) pointer to table used by PowerMgrDispatch trap <H45>
|
|||
|
fullSpeedDBRAs DS.W 4 ; (174) full speed TimeDBRA values <H50>
|
|||
|
lowSpeedDBRAs DS.W 4 ; (17C) reduced speed TimeDBRA values <H50>
|
|||
|
fadeVars DS.L 1 ; (184) used by fade-in/fade-out screens code
|
|||
|
LastUsrAct DS.L 1 ; (188) last user level activity
|
|||
|
LastNetAct DS.L 1 ; (18C) last network level activity
|
|||
|
DimmingWaitTime DS.L 1 ; (190) time to wait before dimming
|
|||
|
DimmingDisable DS.B 1 ; (194) Counting semaphor to disable dimming
|
|||
|
PwrCycRegValue DS.B 1 ; (195) Value for Power Cycling Register to kill power <K14>
|
|||
|
HardRockDMAFlag DS.W 1 ; (196) Flags for HardRock DMA
|
|||
|
SaveCPUState DS.B CPUStateRec ; (198) record for Power Cycling and Sleep
|
|||
|
CCRecord DS.B CelsiusCycleRec ; (1DC) Celsius Cycling Record <K19>
|
|||
|
HDSpinUpVector DS.L 1 ; (21C) vector for spinning up the hard drive
|
|||
|
PmgrVarSize EQU *-PmgrRec ; (21C) Total
|
|||
|
ENDR
|
|||
|
|
|||
|
; Define fields in SleepFlags (PMGR globals) / PmgrStatusFlags (PRAM)
|
|||
|
IdleBit EQU 0 ; 1 = Do not idle
|
|||
|
ChargeSleep EQU 1 ; 1 = Do not sleep or spin down while charging
|
|||
|
UseIntrnlModem EQU 2 ; 1 = Do not use internal modem
|
|||
|
RingWakeup EQU 3 ; 1 = wakeup on modem ring (only on Portable, PowerBook 100) <H17>
|
|||
|
TimerWakeup EQU 4 ; 1 = wakeup on timer (only on Portable, PowerBook 100) <H17>
|
|||
|
|
|||
|
; define fields in PmgrOtherFlags (PRAM)
|
|||
|
EconoBit EQU 1 ; 1 = econo-mode enabled <H12>
|
|||
|
DiskModeAddr EQU 5 ; bits 5-7 contain SCSI Disk Mode "address" of internal HD <H14>
|
|||
|
|
|||
|
; Define fields in PmgrFlags
|
|||
|
InSleep EQU 0 ; 1 = In sleep code, don't re-enter
|
|||
|
AvoidNetDiag EQU 1 ; 1 = skip network dialog warning
|
|||
|
HDPowerOn EQU 2 ; 1 = hard drive is powered and spun up
|
|||
|
AvoidLowPMsg EQU 3 ; 1 = skip low power messages
|
|||
|
BadBatDet EQU 4 ; 1 = bad battery already detected
|
|||
|
PmgrWakeLvlSet EQU 5 ; 1 = currently with wakeup PmgrWake Level Set <H16>
|
|||
|
ClamshellClosed EQU 6 ; 1 = detected clamshell close <H19>
|
|||
|
ScsiDiskModeOn EQU 7 ; 1 = cpu operating in scsi disk mode
|
|||
|
|
|||
|
; Define fields in PmgrFlags1
|
|||
|
;
|
|||
|
; Note: In the original DuoDock and MiniDock DeclROMs, the location of the PmgrFlags1
|
|||
|
; field and the bit number of the PmgrExtVidOn flag were hard coded as
|
|||
|
; $128 and 5 respectively. If you plan on changing either of these, then
|
|||
|
; the potential for problems arises.
|
|||
|
;
|
|||
|
PmgrShutdownEnb EQU 0 ; 1 = allow soft shutdown <H22>
|
|||
|
PmgrShutdownReq EQU 1 ; 1 = user requested to shutdown <H22> <ag>
|
|||
|
PmgrDartSPI EQU 2 ; 1 = use SPI port for modem <H26>
|
|||
|
PmgrDimReq EQU 3 ; 1 = change state of screen <H28>
|
|||
|
PmgrDimState EQU 4 ; 1 = Power Dowm screens <H28>
|
|||
|
PmgrExtVidOn EQU 5 ; 1 = Ext Video is on <H29>
|
|||
|
PmgrExtVidAlrt EQU 6 ; 1 = Alert user that Video On without charger <H29>
|
|||
|
PmgrAvoidUsrMsg EQU 7 ; 1 = skip user warning messages <H30>
|
|||
|
|
|||
|
; Define fields in PmgrFlags2
|
|||
|
LowPowerSleep EQU 0 ; 1 = going to sleep because of low power condition <H32>
|
|||
|
QuickHDSpinDwn EQU 1 ; 1 = use quick hard drive spindown time
|
|||
|
PmgrDimStatus EQU 2 ; 1 = currently dimmed
|
|||
|
ShutHelderDown EQU 3 ; 1 = don't Helder, go straight to shutdown
|
|||
|
SerPortAPwr EQU 4 ; 1 = port A powered <H49>
|
|||
|
SerPortBPwr EQU 5 ; 1 = port B powered <H49>
|
|||
|
SerPortCPwr EQU 6 ; 1 = port C powered <H49>
|
|||
|
HDSpinDownDisable EQU 7 ; 1 = disable hard disk spindown <H48><H49>
|
|||
|
|
|||
|
; Define fields in PmgrFlags3
|
|||
|
ignoreClamshell EQU 0 ; 1 = ignore clamshell close, 0 = sleep when clamshell is closed<H51>
|
|||
|
ignoreTemperature EQU 1 ; 1 = ignore temperature, 0 = pwr cycle when hot <20>
|
|||
|
EnetPwr EQU 2 ; 1 = onboard ethernet chip powered <K8>
|
|||
|
ModemSndReq EQU 3 ; 1 = change the current state of modem sound
|
|||
|
ModemSndState EQU 4 ; 1 = modem sound currently on, 0 = currently off
|
|||
|
|
|||
|
; sleep queue commands
|
|||
|
; Moved to PowerEqu.a
|
|||
|
|
|||
|
; Structure of sleep queue record
|
|||
|
; Moved to PowerEqu.a
|
|||
|
|
|||
|
; Sleep Queue Flags - SleepqFlags
|
|||
|
; Moved to PowerEqu.a
|
|||
|
|
|||
|
; ChooserBits definition
|
|||
|
noChoos EQU 7 ; don't change printer now
|
|||
|
noATChg EQU 6 ; ATalk in use bit
|
|||
|
|
|||
|
; AppleTalk warnings
|
|||
|
ClosedMPP EQU 1 ; MPP was closed
|
|||
|
ClosedXPP EQU 2 ; XPP was closed
|
|||
|
ClosedSvr EQU 3 ; Server was closed
|
|||
|
ClearedChsr EQU 4 ; Magic chooser bit cleared
|
|||
|
|
|||
|
;••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; PMgrOp Equates
|
|||
|
;
|
|||
|
; Equates that deal with the Power Manager Micro specifically.
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
pmCommandRec RECORD 0,Increment ; Power manager command
|
|||
|
pmCommand DS.W 1 ; Command
|
|||
|
pmLength DS.W 1 ; Length
|
|||
|
pmSBuffer DS.L 1 ; Send Buffer
|
|||
|
pmRBuffer DS.L 1 ; Receive Buffer
|
|||
|
pmData DS.L 1 ; Data
|
|||
|
pmBlkSize EQU *-pmCommandRec
|
|||
|
ENDR
|
|||
|
|
|||
|
; Power Manager Commands
|
|||
|
powerCntl EQU $10 ; power plane/clock control
|
|||
|
power1Cntl EQU $11 ; more power control (DBLite)
|
|||
|
powerRead EQU $18 ; power plane/clock status
|
|||
|
power1Read EQU $19 ; more power status (DBLite)
|
|||
|
|
|||
|
pMgrADB EQU $20 ; send ADB command
|
|||
|
pMgrADBoff EQU $21 ; turn ADB auto-poll off
|
|||
|
readADB EQU $28 ; Apple Desktop Bus
|
|||
|
pMgrADBInt EQU $2F ; get ADB interrupt data (Portable only)
|
|||
|
|
|||
|
timeWrite EQU $30 ; write the time to the clock chip
|
|||
|
pramWrite EQU $31 ; write the original 20 bytes of PRAM (Portable only)
|
|||
|
xPramWrite EQU $32 ; write extended PRAM byte(s)
|
|||
|
timeRead EQU $38 ; read the time from the clock chip
|
|||
|
pramRead EQU $39 ; read the original 20 bytes of PRAM (Portable only)
|
|||
|
xPramRead EQU $3A ; read extended PRAM byte(s)
|
|||
|
|
|||
|
contrast EQU $40 ; set screen contrast
|
|||
|
|
|||
|
modemSet EQU $50 ; internal modem control
|
|||
|
modemClrFIFO EQU $51 ; clear modem fifo's <H22>
|
|||
|
modemSetFIFOIntMask EQU $52 ; set the mask for fifo interrupts <H22>
|
|||
|
modemWriteData EQU $54 ; write data to modem <H22>
|
|||
|
modemSetDataMode EQU $55 ; <H22>
|
|||
|
modemSetFloCtlMode EQU $56 ; <H22>
|
|||
|
modemDAACnt EQU $57 ;
|
|||
|
modemRead EQU $58 ; internal modem status
|
|||
|
modemDAAID EQU $59 ;
|
|||
|
modemGetFIFOCnt EQU $5A ; <H22>
|
|||
|
modemSetMaxFIFOSize EQU $5B ; <H22>
|
|||
|
modemReadFIFOData EQU $5C ;
|
|||
|
modemExtend EQU $5D ;
|
|||
|
|
|||
|
setBattWarning EQU $60 ; set low power warning and cutoff battery levels (PowerBook 140/170, DBLite)
|
|||
|
setCutoff EQU $61 ; set hardware cutoff voltage <H44>
|
|||
|
batteryRead EQU $68 ; read battery/charger level and status
|
|||
|
batteryNow EQU $69 ; read battery/charger instantaneous level and status
|
|||
|
readBattWarning EQU $6A ; read low power warning and cutoff battery levels (PowerBook 140/170, DBLite)
|
|||
|
readExtBatt EQU $6B ; read extended battery/charger level and status (DBLite)
|
|||
|
readBatteryID EQU $6C ; read the battery ID
|
|||
|
readBatteryInfo EQU $6D ; return battery parameters
|
|||
|
readCutoff EQU $6F ; return hardware cutoff voltage <H44>
|
|||
|
|
|||
|
SetModem1SecInt EQU $70 ; <H22>
|
|||
|
SetModemInts EQU $71 ; turn modem interrupts on/off
|
|||
|
readINT EQU $78 ; get PMGR interrupt data
|
|||
|
ReadModemInts EQU $79 ; read modem interrupt status
|
|||
|
PmgrPWRoff EQU $7E ; turn system power off
|
|||
|
sleepReq EQU $7F ; put the system to sleep
|
|||
|
sleepSig EQU 'MATT' ; sleep/power off signature
|
|||
|
sleepAck EQU $70 ; sleep acknowledge
|
|||
|
|
|||
|
timerSet EQU $80 ; set the wakeup timer
|
|||
|
timerRead EQU $88 ; read the wakeup timer setting
|
|||
|
|
|||
|
soundSet EQU $90 ; sound power control
|
|||
|
SetDFAC EQU $91 ; set DFAC register (DBLite)
|
|||
|
soundRead EQU $98 ; read sound power state
|
|||
|
ReadDFAC EQU $99 ; read DFAC register (DBLite)
|
|||
|
|
|||
|
modemWriteReg EQU $A0 ; Write Modem Register <H22>
|
|||
|
modemClrRegBits EQU $A1 ; Clear Modem Register Bits <H22>
|
|||
|
modemSetRegBits EQU $A2 ; Set Modem Register Bits <H22>
|
|||
|
modemWriteDSPRam EQU $A3 ; Write DSP RAM <H22>
|
|||
|
modemSetFilterCoeff EQU $A4 ; Set Filter Coefficients <H22>
|
|||
|
modemReset EQU $A5 ; Reset Modem <H22>
|
|||
|
modemUNKNOWN EQU $A6 ; <filler for now> <H22>
|
|||
|
modemReadReg EQU $A8 ; Read Modem Register <H22>
|
|||
|
modemReadDSPRam EQU $AB ; Read DSP RAM <H22>
|
|||
|
|
|||
|
resetCPU EQU $D0 ; reset the CPU
|
|||
|
readAtoD EQU $D8 ; read A/D channel
|
|||
|
readButton EQU $D9 ; read button values on Channel 0 = Brightness, Channel 1 = Contrast 0-31
|
|||
|
readExtSwitches EQU $DC ; read external switch status (DBLite)
|
|||
|
|
|||
|
writePmgrRAM EQU $E0 ; write to internal PMGR RAM
|
|||
|
setMachineAttr EQU $E3 ; set machine id
|
|||
|
readPmgrRAM EQU $E8 ; read from internal PMGR RAM
|
|||
|
readPmgrVers EQU $EA ; read the PMGR version number
|
|||
|
readMachineAttr EQU $EB ; read the machine id
|
|||
|
PmgrSelfTest EQU $EC ; run the PMGR selftest
|
|||
|
DBPMgrTest EQU $ED ; DON'T USE THIS!! <K23>
|
|||
|
FactoryTest EQU $EE ; hook for factory requests <K23>
|
|||
|
PmgrSoftReset EQU $EF ; soft reset of the PMGR
|
|||
|
|
|||
|
|
|||
|
; power control/status equates (commands $10 and $18)
|
|||
|
pIWM EQU 0 ; IWM power
|
|||
|
pSCC EQU 1 ; SCC power
|
|||
|
pHD EQU 2 ; internal hard disk power
|
|||
|
pModem EQU 3 ; internal modem power
|
|||
|
pSerDrvr EQU 4 ; serial driver chip power
|
|||
|
pASC EQU 5 ; sound power
|
|||
|
pMinus5V EQU 6 ; -5 volt power
|
|||
|
pTurnOn EQU 7 ; turn on/off devices corresponding to 1's in bits 0-6
|
|||
|
|
|||
|
iwmOff EQU (0<<pTurnOn) | (1<<pIWM) ; turn off/on IWM
|
|||
|
iwmOn EQU (1<<pTurnOn) | (1<<pIWM)
|
|||
|
sccOff EQU (0<<pTurnOn) | (1<<pSCC) ; turn off/on SCC
|
|||
|
sccOn EQU (1<<pTurnOn) | (1<<pSCC)
|
|||
|
hdOff EQU (0<<pTurnOn) | (1<<pHD) ; turn off/on hard disk
|
|||
|
hdOn EQU (1<<pTurnOn) | (1<<pHD)
|
|||
|
modemOff EQU (0<<pTurnOn) | (1<<pModem) ; turn off/on modem
|
|||
|
modemOn EQU (1<<pTurnOn) | (1<<pModem)
|
|||
|
serOff EQU (0<<pTurnOn) | (1<<pSerDrvr); turn off/on serial driver chip
|
|||
|
serOn EQU (1<<pTurnOn) | (1<<pSerDrvr)
|
|||
|
ascOff EQU (0<<pTurnOn) | (1<<pASC) ; clear/release sound latch
|
|||
|
ascOn EQU (1<<pTurnOn) | (1<<pASC)
|
|||
|
minus5Off EQU (0<<pTurnOn) | (1<<pMinus5V); turn off/on serial driver chip
|
|||
|
minus5On EQU (1<<pTurnOn) | (1<<pMinus5V)
|
|||
|
|
|||
|
allOff EQU (1<<pIWM) |\ ; turn off everything except hard disk and sound latch ready
|
|||
|
(1<<pSCC) |\
|
|||
|
(0<<pHD) |\
|
|||
|
(1<<pModem) |\
|
|||
|
(1<<pSerDrvr) |\
|
|||
|
(0<<pASC) |\
|
|||
|
(1<<pMinus5V) |\
|
|||
|
(0<<pTurnOn)
|
|||
|
|
|||
|
; new power control/status equates (commands $11 and $19)
|
|||
|
pScreen EQU 0 ; screen power
|
|||
|
pCharger EQU 1 ; AC adapter connection
|
|||
|
|
|||
|
screenOff EQU (0<<pTurnOn) | (1<<pScreen)
|
|||
|
screenOn EQU (1<<pTurnOn) | (1<<pScreen)
|
|||
|
chargerOff EQU (0<<pTurnOn) | (1<<pCharger)
|
|||
|
chargerOn EQU (1<<pTurnOn) | (1<<pCharger)
|
|||
|
|
|||
|
|
|||
|
; sound control/status equates (commands $90 and $98)
|
|||
|
soundOff EQU $00 ; sound latch released, sound power off
|
|||
|
soundOn EQU $01 ; sound latch released, sound power on
|
|||
|
sndClrLtch EQU $02 ; clear sound latch, sound power off
|
|||
|
sndOnClrLtch EQU $03 ; clear sound latch, sound power on
|
|||
|
|
|||
|
|
|||
|
; interrupt flag register usage (command $78)
|
|||
|
adbIntFlag EQU 0 ;ADB data ready
|
|||
|
batIntFlag EQU 1 ;Low BATtery power
|
|||
|
envIntFlag EQU 2 ;ENVironmental problem
|
|||
|
oneSecIntFlag EQU 3 ;one-second interrupt <H3>
|
|||
|
|
|||
|
; external switch status bits (command $DC)
|
|||
|
clamshell EQU 0 ; 1 = clamshell is closed
|
|||
|
dockingBar EQU 1 ; 1 = docking bar is connected
|
|||
|
|
|||
|
; battery/charger status bits
|
|||
|
|
|||
|
HasCharger EQU 0 ;Charger connected
|
|||
|
ShortedBat EQU 2 ;Shorted battery condition
|
|||
|
LowBattery EQU 4 ;Low battery condition
|
|||
|
ChrgState EQU 5 ;Charger connection state change
|
|||
|
OverTemp EQU 6 ;High temperature condition
|
|||
|
|
|||
|
|
|||
|
; modem command bits ;
|
|||
|
|
|||
|
ModemPwr EQU 0 ;Modem power control (1=true)
|
|||
|
ModemAorB EQU 1 ;Modem connection to port A or B (1=A)
|
|||
|
RingWakeEnable EQU 2 ;Modem ring detect wake up enable (1=true)
|
|||
|
ModemInstalled EQU 3 ;Modem in the slot (1=true)
|
|||
|
RingDetect EQU 4 ;Modem ring detect pin (1=ringing)
|
|||
|
ModemHook EQU 5 ;Modem on/off hook (1=off hook)
|
|||
|
|
|||
|
|
|||
|
; SerialPower bits and bytes
|
|||
|
|
|||
|
BypassModem EQU 0 ;Ignore pram internal modem designation (1=ignore)
|
|||
|
PortAorB EQU 2 ;Port A or Port B (1=port A)
|
|||
|
SerialOff EQU 7 ;Power on/off selector bit
|
|||
|
|
|||
|
PortAPower EQU 4 ;Power port A command (byte version of PortAorB)
|
|||
|
PortBPower EQU 0 ;Power port B command
|
|||
|
|
|||
|
|
|||
|
|
|||
|
;••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
;
|
|||
|
; Power Manager Misc.
|
|||
|
;
|
|||
|
;—————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
|
|||
|
|
|||
|
|
|||
|
PmgrPramBase EQU $70 ; Start of Power Manager PRam on PowerBook 140/170, Dartanian
|
|||
|
|
|||
|
; PRAM Record of individual bytes
|
|||
|
PmgrPramRec RECORD 0,Increment
|
|||
|
SlpTimeOut DS.B 1 ; Sleep time-out, in seconds/15
|
|||
|
HDTimeOut DS.B 1 ; Hard disk time-out, in seconds/15
|
|||
|
PmgrStatusFlags DS.B 1 ; Power Manager Flags (get copied to SleepFlags)
|
|||
|
PmgrOtherFlags DS.B 1 ; yet more Power Manager flags
|
|||
|
Brightness DS.B 1 ; Brightness level
|
|||
|
VidMode DS.B 1 ; Video Mode
|
|||
|
PmgrPramSize EQU *
|
|||
|
ENDR
|
|||
|
|
|||
|
; Basic Pmgr Defaults
|
|||
|
DfltHDTime EQU 4*60/15 ; Default number of minutes before hd spin down time out (4 min)
|
|||
|
DfltSlpTime EQU 8*60/15 ; Default number of minutes before sleep time out (8 min)
|
|||
|
PwrCycWaitTmDef EQU 2*60 ; Default value for PwrCycWaitTime (2 seconds)
|
|||
|
PwrCycSynCntDef EQU 3 ; Default value for PwrCycSyncCount
|
|||
|
PwrCycleDef EQU 10 ; Default value for PwrCycCounter
|
|||
|
PwrCycDelayDef EQU 15*60 ; Default value for PwrCycDelay (15 seconds)
|
|||
|
PwrCycProgGrowDef EQU 10 ; Default value for PwrCycProgGrow
|
|||
|
PwrCycProgMaxDef EQU $C0 ; Default value for PwrCycProgMax
|
|||
|
|
|||
|
|
|||
|
; CPU Speeds
|
|||
|
idlespeed EQU 1 ; Idle is at 1Mhz
|
|||
|
CPUSpeed8MHz EQU 8 ; 8 MHz CPU Speed
|
|||
|
CPUSpeed16MHz EQU 16 ; 16 MHz CPU Speed
|
|||
|
CPUSpeed20MHz EQU 20 ; 20 MHz CPU Speed
|
|||
|
CPUSpeed25MHz EQU 25 ; 25 MHz CPU Speed
|
|||
|
CPUSpeed33MHz EQU 33 ; 33 MHz CPU Speed
|
|||
|
CPUSpeed40MHz EQU 40 ; 40 MHz CPU Speed
|
|||
|
|
|||
|
; Power Manager loopcounts
|
|||
|
wait8us EQU $40 ;For software loop, remove later
|
|||
|
BootDevTicks EQU 2*60*60 ; Wait for boot device before sleep, in ticks.
|
|||
|
|
|||
|
; Power Manager Power Voltages
|
|||
|
DefHysteresis EQU 20 ; default to 200mv
|
|||
|
DefLowWarn EQU 585-512 ; default low battery warning level
|
|||
|
DefCutoff EQU 560-512 ; default dead battery warning level
|
|||
|
PMGRWARNLEVEL EQU 585 ; set low power level
|
|||
|
PGMRWAKELEVEL EQU 609 ; set hysteresis for 6.09(max allowed) volts for wake
|
|||
|
PMGRCUTOFF EQU 560 ; set 68k shutdown to 5.60(min allowed)
|
|||
|
STDOFFSET EQU 512 ; base offset of voltages
|
|||
|
|
|||
|
; Power Manager Misc Equates
|
|||
|
MaxHDTime EQU 60*60/15 ; Maximum number of minutes before hd spin down time out (60 min)
|
|||
|
MaxSlpTime EQU 60*60/15 ; Maximum number of minutes before sleep time out (60 min)
|
|||
|
SndWFreq EQU 60*10 ; Sound watch VBL is called very 10 seconds
|
|||
|
BatFreq EQU 60*1 ; Battery level monitor every second
|
|||
|
ClamshellVBLFreq EQU 60*2 ; check for clamshell closed every 2 seconds
|
|||
|
SleepWait EQU 10 ; Delay from last alert to auto sleep
|
|||
|
pram2ticks EQU 60*15 ; Convert pram count to ticks
|
|||
|
CelsiusVBLFreq EQU 60*10 ; Monitor temperature every 10 seconds <20>
|
|||
|
MaxTempCelsius EQU 72 ; Maximum internal temperature before shutdown <20>
|
|||
|
WarnTempCelsius EQU 68 ; Temperature that requires a user warning <20>
|
|||
|
MinTempCelsius EQU 65 ; Minimum temperature to start deferred task pwr cycling <20>
|
|||
|
NeverCelsiusCycl EQU $FF ; Temperature at which we will never cycle <20>
|
|||
|
InitialTmpCycl EQU (NeverCelsiusCycl<<24) | \ ; normal pwr cycling is ok <20>
|
|||
|
(MinTempCelsius<<16) | \ ; start cycling at this temp <20>
|
|||
|
(WarnTempCelsius<<8) | \ ; warn the user it's getting hot <20>
|
|||
|
(MaxTempCelsius<<0) ; turn off the maching <20>
|
|||
|
InitialCycRates EQU $0A050302 ; Initial cycle rate curves <20>
|
|||
|
|
|||
|
jModemSnd EQU Lvl1DT+4*ifCB2 ; addr of VIA1 DT CB2 vector (modem sound)
|
|||
|
|
|||
|
|
|||
|
ENDIF ; ...already included
|