scummvm/backends/PalmOS/Src/arm/PNOMain.cpp
Chris Apers 7a4f4889a9 - Better ARM support
svn-id: r16174
2004-12-20 17:38:31 +00:00

60 lines
1.4 KiB
C++

#include "PACEInterfaceLib.h"
#include "native.h"
// Linker still looks for ARMlet_Main as entry point, but the
// "ARMlet" name is now officially discouraged. Compare an
// contrast to "PilotMain" for 68K applications.
#define PNO_Main ARMlet_Main
// ------------------------
extern "C"
unsigned long PNO_Main(
const void *emulStateP,
void *userData68KP,
Call68KFuncType *call68KFuncP);
unsigned long PNO_Main(const void *emulStateP, void *userData68KP, Call68KFuncType *call68KFuncP) {
PnoProc *func[] = {
#if defined(COMPILE_COMMON)
OSystem_CopyRectToScreen,
OSystem_updateScreen_widePortrait,
OSystem_updateScreen_wideLandscape,
// MemoryStream_ReadBuffer
#elif defined(COMPILE_QUEEN)
Display_blit
#elif defined(COMPILE_SCUMM)
Gdi_drawStripToScreen,
CostumeRenderer_proc3
#elif defined(COMPILE_SWORD1)
Screen_draw,
Screen_drawSprite,
Screen_fastShrink,
Screen_renderParallax,
Screen_decompressTony,
Screen_decompressRLE7,
Screen_decompressRLE0
#endif
};
// needed before making any OS calls using the
// PACEInterface library
InitPACEInterface(emulStateP, call68KFuncP);
unsigned long retVal = 0;
PnoType *pno = (PnoType *)ByteSwap32(userData68KP);
UInt32 funcID = ReadUnaligned32(&pno->funcID);
void *dataP = (void *)ReadUnaligned32(&pno->dataP);
/*
char buf[100];
StrIToA(buf,funcID);
WinDrawChars(buf,StrLen(buf),30,0);
*/
retVal = func[funcID](dataP);
return (retVal);
}