aboutsummaryrefslogtreecommitdiff
path: root/backends/PalmOS/Src/arm/PNOMain.cpp
blob: 54569b250232a570c59f003e35a1d7795656ac6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include "PACEInterfaceLib.h"
#include "ArmNative.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) {
	unsigned long retVal = 0;

#ifdef COMPILE_PACE
	// needed before making any OS calls using the 
	// PACEInterface library
	InitPACEInterface(emulStateP, call68KFuncP);
#endif

#ifdef COMPILE_PA1SND
	ARMPa1SndPtr userData = (ARMPa1SndPtr)userData68KP;
	pcm2adpcm	(	(Int16 *)ReadUnaligned32(&(userData->srcP)),
					(UInt8 *)ReadUnaligned32(&(userData->dstP)),
					ReadUnaligned32(&(userData->length))
				);
#endif

#ifdef COMPILE_STREAMSND
	retVal = (unsigned long)sndCallback;
#endif

#ifdef COMPILE_OWIDELS
	O_WideLandscape(userData68KP);
#endif

#ifdef COMPILE_OWIDEPT
	O_WidePortrait(userData68KP);
#endif

#ifdef COMPILE_OCOPYRECT
	O_CopyRectToScreen(userData68KP);
#endif

	return retVal;
}