mirror of
https://github.com/elliotnunn/supermario.git
synced 2024-11-29 20:49:19 +00:00
152 lines
3.6 KiB
C
152 lines
3.6 KiB
C
|
|
||
|
/************************************************************
|
||
|
|
||
|
Created: Friday, November 15, 1991 at 10:10 AM
|
||
|
Power.h
|
||
|
C Interface to the Macintosh Libraries
|
||
|
|
||
|
|
||
|
Copyright Apple Computer, Inc. 1989-1991
|
||
|
All rights reserved
|
||
|
|
||
|
This file is used in these builds: BigBang
|
||
|
|
||
|
Change History (most recent first):
|
||
|
|
||
|
<12> 11/19/91 JL Changed 0x205F hex inlines in SleepQInstall to use the #pragma
|
||
|
parameter (__A0) capabilities of the C compiler for better
|
||
|
effeciency.
|
||
|
<11> 11/7/91 MH add #pragma parameter __D0 to IdleUpdate and GetCPUSpeed to
|
||
|
generate correct code.
|
||
|
<10> 7/31/91 JL Updated Copyright.
|
||
|
<9> 6/14/91 JL Checked in official MPW 3.2ƒ version. Switched order of the
|
||
|
constants: sleepQType and slpQTyp. Temporarily lost updated
|
||
|
copyright date; will be restored.
|
||
|
<8> 2/5/91 stb gs: add sleepQType
|
||
|
<7> 1/30/91 JL Checked in database generated file from dsg ; changed IdleUpdate
|
||
|
- > BOff to Pascal functions.
|
||
|
<6> 1/25/91 stb JDR: add sleepRevoke and slpQType <5> 1/23/91 ag AG: Fixed
|
||
|
function definitions defined by MSH!
|
||
|
<4> 1/22/91 ag MSH: Removed all Power Manager command definitions and the
|
||
|
parameter block definition. Added interfaces to interface glue
|
||
|
for modem, battery, and wakeup timer.
|
||
|
<3> 1/18/91 ag MSH - Removed private Power Manager equates.
|
||
|
<2> 11/7/90 JL Changed #defines to anonymous enums
|
||
|
|
||
|
To Do:
|
||
|
************************************************************/
|
||
|
|
||
|
|
||
|
#ifndef __POWER__
|
||
|
#define __POWER__
|
||
|
|
||
|
#ifndef __TYPES__
|
||
|
#include <Types.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
enum {
|
||
|
|
||
|
|
||
|
/* Bit positions for ModemByte */
|
||
|
modemOnBit = 0,
|
||
|
ringWakeUpBit = 2,
|
||
|
modemInstalledBit = 3,
|
||
|
ringDetectBit = 4,
|
||
|
modemOnHookBit = 5,
|
||
|
|
||
|
/* masks for ModemByte */
|
||
|
modemOnMask = 0x1,
|
||
|
ringWakeUpMask = 0x4,
|
||
|
modemInstalledMask = 0x8,
|
||
|
ringDetectMask = 0x10,
|
||
|
modemOnHookMask = 0x20,
|
||
|
|
||
|
/* bit positions for BatteryByte */
|
||
|
chargerConnBit = 0,
|
||
|
hiChargeBit = 1,
|
||
|
chargeOverFlowBit = 2,
|
||
|
batteryDeadBit = 3,
|
||
|
batteryLowBit = 4,
|
||
|
connChangedBit = 5,
|
||
|
|
||
|
/* masks for BatteryByte */
|
||
|
chargerConnMask = 0x1,
|
||
|
hiChargeMask = 0x2,
|
||
|
chargeOverFlowMask = 0x4,
|
||
|
batteryDeadMask = 0x8
|
||
|
};
|
||
|
enum {
|
||
|
batteryLowMask = 0x10,
|
||
|
connChangedMask = 0x20,
|
||
|
|
||
|
/* commands to SleepQRec sleepQProc */
|
||
|
sleepRequest = 1,
|
||
|
sleepDemand = 2,
|
||
|
sleepWakeUp = 3,
|
||
|
sleepRevoke = 4,
|
||
|
|
||
|
/* SleepQRec.sleepQFlags */
|
||
|
noCalls = 1,
|
||
|
noRequest = 2,
|
||
|
|
||
|
slpQType = 16,
|
||
|
sleepQType = 16
|
||
|
};
|
||
|
|
||
|
typedef char ModemByte;
|
||
|
typedef char BatteryByte;
|
||
|
|
||
|
typedef long PMResultCode;
|
||
|
|
||
|
struct SleepQRec {
|
||
|
struct SleepQRec *sleepQLink;
|
||
|
short sleepQType; /*type = 16*/
|
||
|
ProcPtr sleepQProc; /*Pointer to sleep routine*/
|
||
|
short sleepQFlags;
|
||
|
};
|
||
|
|
||
|
typedef struct SleepQRec SleepQRec;
|
||
|
typedef SleepQRec *SleepQRecPtr;
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
pascal OSErr DisableWUTime(void);
|
||
|
pascal OSErr GetWUTime(long *WUTime,Byte *WUFlag);
|
||
|
pascal OSErr SetWUTime(long WUTime);
|
||
|
pascal OSErr BatteryStatus(Byte *Status,Byte *Power);
|
||
|
pascal OSErr ModemStatus(Byte *Status);
|
||
|
#pragma parameter __D0 IdleUpdate
|
||
|
pascal long IdleUpdate(void)
|
||
|
= 0xA285;
|
||
|
#pragma parameter __D0 GetCPUSpeed
|
||
|
pascal long GetCPUSpeed(void)
|
||
|
= {0x70FF,0xA485};
|
||
|
pascal void EnableIdle(void)
|
||
|
= {0x7000,0xA485};
|
||
|
pascal void DisableIdle(void)
|
||
|
= {0x7001,0xA485};
|
||
|
#pragma parameter SleepQInstall(__A0)
|
||
|
pascal void SleepQInstall(SleepQRecPtr qRecPtr)
|
||
|
= 0xA28A;
|
||
|
#pragma parameter SleepQRemove(__A0)
|
||
|
pascal void SleepQRemove(SleepQRecPtr qRecPtr)
|
||
|
= 0xA48A;
|
||
|
pascal void AOn(void)
|
||
|
= {0x7004,0xA685};
|
||
|
pascal void AOnIgnoreModem(void)
|
||
|
= {0x7005,0xA685};
|
||
|
pascal void BOn(void)
|
||
|
= {0x7000,0xA685};
|
||
|
pascal void AOff(void)
|
||
|
= {0x7084,0xA685};
|
||
|
pascal void BOff(void)
|
||
|
= {0x7080,0xA685};
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#endif
|