mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2025-01-01 11:29:27 +00:00
0ba83392d4
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
1063 lines
51 KiB
Plaintext
1063 lines
51 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 |