--- xmil/palm/palmossub.c 2005/02/07 16:56:32 1.1 +++ xmil/palm/palmossub.c 2005/02/27 18:22:06 1.3 @@ -16,6 +16,8 @@ typedef struct tagLocals3216{ #define PalmAPI(a,b) (gCall68KFuncP)(gEmulStateP,PceNativeTrapNo(a),&b,sizeof(b)) +#define setAddress(a,b) a.hi=ByteSwap16(b>>16);a.lo=ByteSwap16(b&0xffff) + void ARM_TYPE_pointerinvoid (void* ptr, UINT trapID) { ArgOne params; params.ptr = ByteSwap32(ptr); @@ -37,15 +39,14 @@ void ARM_TYPE_ptr16ptrinvoid(void* frm, typedef struct tagLocals{ UInt32 ptr; UINT16 objid; - UINT16 texthi; - UINT16 textlo; + UINT16 hi; + UINT16 lo; } Locals; Locals params; params.ptr = ByteSwap32(frm); params.objid = ByteSwap16(id); - params.texthi = ByteSwap16(text >> 16); - params.textlo = ByteSwap16(text & 0xffff); + setAddress(params, text); PalmAPI(trapID, params); } @@ -144,18 +145,7 @@ Err ARM_SndStreamSetVolume(UInt32 stream return((Err)PalmAPI(sysTrapSndStreamSetVolume, params)); } -/* -UInt32 ARM_SysTicksPerSecond(void){ - typedef struct _tagLocals { - UInt8 noArgs; - } Locals; - - Locals params; - params.noArgs = 0; - - return ((UInt32)((gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapSysTicksPerSecond), ¶ms, sizeof(params) | kPceNativeWantA0))); -} -*/ + void ARM_MemSet(void* destP, Int32 numBytes, UInt8 value) { Int32 i; char *p=(char *)destP; @@ -310,25 +300,7 @@ char* ARM_LstGetSelectionText(ListType* return ((char*)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapLstGetSelectionText), ¶ms, sizeof(params) | kPceNativeWantA0)); } -/* -MemHandle ARM_FldGetTextHandle(FieldType* fld) { - ArgOne params; - params.ptr = ByteSwap32(fld); - return ((MemHandle)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapFldGetTextHandle), ¶ms, sizeof(params) | kPceNativeWantA0)); -} -char* ARM_FldGetTextPtr(FieldType* fld) { - ArgOne params; - params.ptr = ByteSwap32(fld); - return ((char*)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapFldGetTextPtr), ¶ms, sizeof(params) | kPceNativeWantA0)); -} - -char* ARM_MemHandleLock(MemHandle ptr) { - ArgOne params; - params.ptr = ByteSwap32(ptr); - return ((char*)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapMemHandleLock), ¶ms, sizeof(params) | kPceNativeWantA0)); -} -*/ void ARM_TimSecondsToDateTime(UInt32 seconds, DateTimeType* dateTimeP) { typedef struct tagLocals{ UInt32 data; @@ -345,62 +317,7 @@ void ARM_TimSecondsToDateTime(UInt32 sec UINT32 palmos_gettick(void) { return( ARM_TimGetTicks() * (1000 / systicks)); } -/* -UInt8* ARM_BmpGetBits(BitmapType *bmpPtr) -{ - UInt32 arg; - arg = ByteSwap32(bmpPtr); - return (UInt8*)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapBmpGetBits), &arg, 4 | kPceNativeWantA0); -} - -void ARM_BmpGetDimensions(BitmapType *bmpPtr, Int16 *width, Int16 *height, UInt16 *rowBytes) -{ - UInt32 args[4]; - - args[0] = ByteSwap32(bmpPtr); - args[1] = ByteSwap32(width); - args[2] = ByteSwap32(height); - args[3] = ByteSwap32(rowBytes); - - (gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapBmpGetDimensions), &args, 16); - - *width = ByteSwap16(*width); - *height = ByteSwap16(*height); - *rowBytes = ByteSwap16(*rowBytes); -} -*/ - -/* -BitmapType* ARM_BmpCreate(Coord width, Coord height, UInt8 depth, ColorTableType* colortableP, UInt16* err) { - typedef struct tagLocals{ - Coord w; - Coord h; - UInt8 d; - UInt32 c; - UInt32 e; - } Locals; - - Locals params; - - params.w = ByteSwap32(width); - params.h = ByteSwap32(height); - params.d = ByteSwap32(depth); - params.c = ByteSwap32(colortableP); - params.e = ByteSwap32(err); - return( (BitmapType*)(gCall68KFuncP)(gEmulStateP, PceNativeTrapNo(sysTrapBmpCreate), ¶ms, sizeof(params) | kPceNativeWantA0) ); -} - -BitmapTypeV3* ARM_BmpCreateBitmapV3(const BitmapType* bitmapP, UInt16 density, const void* bitsP, ColorTableType* colortableP) { - UInt32 args[4]; - - args[0] = ByteSwap32(bitmapP); - args[1] = ByteSwap32(density); - args[2] = ByteSwap32(bitsP); - args[3] = ByteSwap32(colortableP); - return((BitmapTypeV3*)(gCall68KFuncP)(gEmulStateP, (unsigned long)Callback_m68k, &args, 16 | kPceNativeWantA0)); -} -*/ void ARM_EvtGetEvent(EventType *event, Int32 timeout) { typedef struct tagLocals{ UInt32 event; @@ -481,3 +398,16 @@ void print(char *format, ...) { (gCall68KFuncP)(gEmulStateP, (unsigned long)Callback_print, &arg, 4); } +UINT16 ARM_SysBatteryInfo(UINT8* battery) { + typedef struct tagLocals{ + UInt8 nul[22]; + UInt16 hi; + UInt16 lo; + } Locals; + Locals params; + + ZeroMemory(params.nul, 22); + setAddress(params, battery); + return((UINT16)PalmAPI(sysTrapSysBatteryInfo, params)); +} +