scummvm/backends/PalmOS/Src/init_arm.cpp

36 lines
839 B
C++
Raw Normal View History

#include <PalmOS.h>
#include "globals.h"
#include "init_arm.h"
2004-12-10 15:29:34 +00:00
static void PnoInit(DmResID resID,PNOInitType *pnoP) {
// Load and allocate PNO
MemHandle armH = DmGetResource('ARMC', resID);
2004-12-10 15:29:34 +00:00
2004-12-20 17:38:31 +00:00
if (armH) {
MemPtr armP = MemHandleLock(armH);
PnoLoad(&pnoP->pnoDesc, armP);
MemPtrUnlock(armP);
DmReleaseResource(armH);
// Init PNO
PnoEntryHeader *header = (PnoEntryHeader *)ALIGN_4BYTE(pnoP->headerBuffer);
pnoP->alignedHeader = header;
2004-12-20 17:38:31 +00:00
header->r10Value = pnoP->pnoDesc.r10Value;
header->pnoMainAddress = pnoP->pnoDesc.pnoMainAddress;
}
}
2004-12-10 15:29:34 +00:00
void ARMInit() {
// init global ARM only
MemSet(gVars->arm, sizeof(gVars->arm), 0);
PnoInit(RSC_ARMCOMMON, &ARM(ARM_COMMON));
PnoInit(RSC_ARMENGINE, &ARM(ARM_ENGINE));
}
2004-12-10 15:29:34 +00:00
void ARMRelease() {
PnoUnload(&ARM(ARM_ENGINE).pnoDesc);
PnoUnload(&ARM(ARM_COMMON).pnoDesc);
}