palm-os-sdk/sdk-1/include/Core/Hardware/Hardware.h
2016-08-25 07:53:48 -03:00

247 lines
7.0 KiB
C

/*******************************************************************
* Pilot Software
*
* Copyright(c) 1994, Palm Computing Inc., All Rights Reserved
*
*-------------------------------------------------------------------
* FileName:
* Hardware.h
*
* Description:
* General Hardware Equates. This header file
* contains general hardware configuration equates that are not dependent on
* the version of the hardware we're running on. Equates specific to
* a certain component like the 68328, etc. is contained in separate
* header files.
*
* History:
* 4/27/95 RM - Created by Ron Marianetti
*
*******************************************************************/
#ifdef NON_PORTABLE // So app's don't mistakenly include this
#ifndef __HARDWARE_H__
#define __HARDWARE_H__
/**************************************************************************
* General Equates
***************************************************************************/
// Bits in the low memory global GHwrWakeUp
#define hwrWakeUpGeneral 0x0001
#define hwrWakeUpPWM 0x0002
#define hwrWakeUpFromKey 0x0004 // set if we woke from a key press
#define hwrWakeUpReturnToSleep 0x0008 // set if we woke from 24 hr. interrupt
// in which case we want to go right back to sleep
// Bits for the call HwrDockSignals
#define hwrDockInSyncButton 0x0001 // Dock button
#define hwrDockInGeneric1 0x0002 // General Purpose input #1
#define hwrDockOutGeneric0 0x0001 // General Purpose output #0
// Define # of card slots
#if EMULATION_LEVEL == EMULATION_NONE
#define hwrNumCardSlots 1 // 1 card slot
#else
#define hwrNumCardSlots 2 // 2 card slots for emulation
#endif
// Screen Dimensions
#define hwrDisplayWidth 160 // Width of display
#define hwrDisplayHeight 160 // Height of display
// Screen refresh rate
#define hwrDisplayPeriod 12 // frame period in ms.
// Battery scaling:
// Voltage = (level + hwrVoltStepsOffset) / hwrStepsPerVolt
#define hwrStepsPerVolt 78 // 78 = 1 volt.
#define hwrVoltStepsOffset 0 // Add to level before scaling
//----------------------------------------------------------------------------
// Digitizer Dimensions
//----------------------------------------------------------------------------
#define hwrSystemTop (hwrDisplayHeight+4)
#define hwrSystemHeight 56
// Graffiti Area
#define hwrGraffitiTop hwrSystemTop // Top coordinate of Graffiti area
#define hwrGraffitiLeft 27 // Left coordinate of Graffiti area
#define hwrGraffitiWidth 106 // Width of Graffiti area
#define hwrGraffitiHeight hwrSystemHeight // Height of Graffiti area
#define hwrGraffitiSplit (hwrGraffitiLeft+62) // Split mode dividing line
// Launch Button
#define hwrLaunchBtnLeft 0
#define hwrLaunchBtnTop hwrSystemTop
#define hwrLaunchBtnWidth 27
#define hwrLaunchBtnHeight (hwrSystemHeight/2)
// Menu Button
#define hwrMenuBtnLeft 0
#define hwrMenuBtnTop (hwrSystemTop+hwrMenuBtnHeight)
#define hwrMenuBtnWidth 27
#define hwrMenuBtnHeight (hwrSystemHeight/2)
// Calculator Button
#define hwrCalcBtnLeft 133
#define hwrCalcBtnTop hwrSystemTop
#define hwrCalcBtnWidth 27
#define hwrCalcBtnHeight (hwrSystemHeight/2)
// Find Button
#define hwrFindBtnLeft 133
#define hwrFindBtnTop (hwrSystemTop+hwrCalcBtnHeight)
#define hwrFindBtnWidth 27
#define hwrFindBtnHeight (hwrSystemHeight/2)
/**************************************************************************
* Prototypes of functions used only when running on the real hardware
***************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
// These routines are only accessed from the Debugger so they don't
// need traps.
void HwrPreRAMInit(void);
void HwrPreDebugInit(void);
void HwrInit(void);
void HwrPostDebugInit(void);
Err HwrFlashWriteSub(Ptr bodyP);
void HwrResetNMI(void);
DWord HwrGetRAMSize(UInt cardNo, DWord limit);
void HwrDrawSplashScreen(void);
void HwrDisableInts(void);
void HwrShutDownPLL(void);
void HwrLowBatteryHandler(void);
// These routines are for "general" use.
void HwrIRQ1Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ1Handler);
void HwrIRQ2Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ2Handler);
void HwrIRQ3Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ3Handler);
void HwrIRQ4Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ4Handler);
void HwrIRQ5Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ5Handler);
void HwrIRQ6Handler(DWord param)
SYS_TRAP(sysTrapHwrIRQ6Handler);
void HwrGetRAMMapping(Ptr /*CardInfoPtr*/ cardInfoP, UInt* numBlocksP,
DWordPtr physBlockInfoP, DWordPtr logBlockInfoP)
SYS_TRAP(sysTrapHwrGetRAMMapping);
DWord HwrMemWritable(VoidPtr addr)
SYS_TRAP(sysTrapHwrMemWritable);
DWord HwrMemReadable(VoidPtr addr)
SYS_TRAP(sysTrapHwrMemReadable);
Err HwrCursor(Boolean set, Int* modeP, PointType* whereP, PointType* sizeP,
UInt* blinkP)
SYS_TRAP(sysTrapHwrCursor);
void HwrDelay(ULong microseconds)
SYS_TRAP(sysTrapHwrDelay);
void HwrDoze(Boolean onlyNMI)
SYS_TRAP(sysTrapHwrDoze);
void HwrSleep(Boolean untilReset, Boolean emergency)
SYS_TRAP(sysTrapHwrSleep);
Err HwrWake(void)
SYS_TRAP(sysTrapHwrWake);
Err HwrSetSystemClock(ULong* freqP)
SYS_TRAP(sysTrapHwrSetSystemClock);
Err HwrSetCPUDutyCycle(UInt* dutyP)
SYS_TRAP(sysTrapHwrSetCPUDutyCycle);
Err HwrLCDInit(UInt framePeriod, VoidPtr baseP, UInt width,
UInt height, UInt depth)
SYS_TRAP(sysTrapHwrLCDInit);
Err HwrLCDBaseAddr(Ptr* newAddrP)
SYS_TRAP(sysTrapHwrLCDBaseAddr);
Err HwrLCDDrawBitmap(UInt x, UInt y, Ptr bitmapP, Boolean clearFirst)
SYS_TRAP(sysTrapHwrLCDDrawBitmap);
Err HwrLCDSleep(Boolean untilReset, Boolean emergency)
SYS_TRAP(sysTrapHwrLCDSleep);
Err HwrLCDWake(void)
SYS_TRAP(sysTrapHwrLCDWake);
Err HwrTimerInit(UInt timer)
SYS_TRAP(sysTrapHwrTimerInit);
Err HwrTimerSleep(UInt timer)
SYS_TRAP(sysTrapHwrTimerSleep);
Err HwrTimerWake(UInt timer)
SYS_TRAP(sysTrapHwrTimerWake);
UInt HwrBatteryLevel(void)
SYS_TRAP(sysTrapHwrBatteryLevel);
Boolean HwrPluggedIn(void)
SYS_TRAP(sysTrapHwrPluggedIn);
Boolean HwrEnableDataWrites(void)
SYS_TRAP(sysTrapHwrEnableDataWrites);
void HwrDisableDataWrites(void)
SYS_TRAP(sysTrapHwrDisableDataWrites);
Err HwrDockSignals(WordPtr inputsP, Word outputSet, Word outputClr)
SYS_TRAP(sysTrapHwrDockSignals);
#ifdef __cplusplus
}
#endif
/************************************************************
* Assembly Function Prototypes
*************************************************************/
#define _HwrWake \
ASM_SYS_TRAP(sysTrapHwrWake)
#endif //__HARDWARE_H__
#endif // NON_PORTABLE