265 lines
7.8 KiB
C
265 lines
7.8 KiB
C
/*******************************************************************
|
|
* Pilot Software
|
|
*
|
|
* Copyright(c) 1995-1997, 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 in the low memory global GHwrMiscFlags
|
|
#define hwrMiscFlagHasBacklight 0x0001 // set if backlight is present.
|
|
|
|
|
|
// 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)
|
|
|
|
// Keyboard Alpha Button
|
|
#define hwrKeyboardAlphaBtnLeft 27
|
|
#define hwrKeyboardAlphaBtnTop (hwrSystemTop+hwrSystemHeight-hwrSystemHeight/4)
|
|
#define hwrKeyboardAlphaBtnWidth 18
|
|
#define hwrKeyboardAlphaBtnHeight (hwrSystemHeight/4)
|
|
|
|
// Keyboard Numeric Button
|
|
#define hwrKeyboardNumericBtnLeft (hwrFindBtnLeft-hwrKeyboardNumericBtnWidth)
|
|
#define hwrKeyboardNumericBtnTop hwrKeyboardAlphaBtnTop
|
|
#define hwrKeyboardNumericBtnWidth 18
|
|
#define hwrKeyboardNumericBtnHeight hwrKeyboardAlphaBtnHeight
|
|
|
|
|
|
|
|
/**************************************************************************
|
|
* 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 HwrBacklight(Boolean set, Boolean newState)
|
|
SYS_TRAP(sysTrapHwrBacklight);
|
|
|
|
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
|