diff --git a/qtBuildSystem/Mu/Mu.pro b/qtBuildSystem/Mu/Mu.pro index 91826de..ced4a7a 100644 --- a/qtBuildSystem/Mu/Mu.pro +++ b/qtBuildSystem/Mu/Mu.pro @@ -221,7 +221,6 @@ SOURCES += \ ../../src/ads7846.c \ ../../src/audio/blip_buf.c \ ../../src/dbvz.c \ - ../../src/debug/sandbox.c \ ../../src/emulator.c \ ../../src/fileLauncher/launcher.c \ ../../src/flx68000.c \ @@ -251,9 +250,6 @@ HEADERS += \ ../../src/dbvzRegisterAccessors.c.h \ ../../src/dbvzRegisterNames.c.h \ ../../src/dbvzTiming.c.h \ - ../../src/debug/sandbox.h \ - ../../src/debug/sandboxTrapNumToName.c.h \ - ../../src/debug/trapNames.h \ ../../src/emulator.h \ ../../src/fileLauncher/launcher.h \ ../../src/flx68000.h \ diff --git a/qtBuildSystem/Mu/emuwrapper.cpp b/qtBuildSystem/Mu/emuwrapper.cpp index b1d0595..2efd91b 100644 --- a/qtBuildSystem/Mu/emuwrapper.cpp +++ b/qtBuildSystem/Mu/emuwrapper.cpp @@ -25,7 +25,6 @@ extern "C"{ #include "../../src/m68k/m68k.h" #include "../../src/pxa260/pxa260.h" #include "../../src/armv5te/disasm.h" -#include "../../src/debug/sandbox.h" } diff --git a/src/dbvz.c b/src/dbvz.c index 01d3fd8..4d080d7 100644 --- a/src/dbvz.c +++ b/src/dbvz.c @@ -11,7 +11,6 @@ #include "sdCard.h" #include "audio/blip_buf.h" #include "m68k/m68k.h" -#include "debug/sandbox.h" #include "dbvzRegisterNames.c.h" diff --git a/src/debug/sandbox.c b/src/debug/sandbox.c deleted file mode 100644 index 3b42fc4..0000000 --- a/src/debug/sandbox.c +++ /dev/null @@ -1,980 +0,0 @@ -#include -#include - - -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) -//this wrappers 68K code and allows calling it for tests, this should be useful for determining if hardware accesses are correct -//Note: when running a test the emulator runs at native speed and no clocks are emulated -#include -#include -#include -#include - -#include "../m68k/m68k.h" -#include "../m68k/m68kcpu.h" -#include "../emulator.h" -#include "../ads7846.h" -#include "../dbvz.h" -#include "../portability.h" -#include "sandbox.h" -#include "trapNames.h" -#if defined(EMU_SUPPORT_PALM_OS5) -#include "../armv5te/cpu.h" -#endif - - -#if !defined(EMU_SUPPORT_PALM_OS5) -//fake functions for ARMv5 CPU accesses -#define reg_pc(x) 0 -#endif - -#define SANDBOX_MAX_UNLOGGED_JUMP_SIZE 0xFFFFFFFF -#define SANDBOX_MAX_WATCH_REGIONS 1000 - -#define SANDBOX_SECONDS_TO_FRAMES(x) ((x) * EMU_FPS) - - -typedef struct{ - void* hostPointer; - uint32_t emuPointer; - uint64_t bytes;//may be used for strings or structs in the future -}return_pointer_t; - -typedef struct{ - uint32_t sp; - uint32_t pc; - uint16_t sr; - uint32_t a0; - uint32_t d0; -}m68k_local_cpu_state_t; - -typedef struct{ - uint32_t address; - uint32_t size; - uint8_t type; -}mem_region_t; - - -static bool sandboxActive;//used to "log out" of the emulator once a test has finished -static uint8_t sandboxCurrentCpuArch; -static m68k_local_cpu_state_t sandboxOldFunctionM68kCpuState; -static uint64_t sandboxFramesRan; -static mem_region_t sandboxWatchRegions[SANDBOX_MAX_WATCH_REGIONS];//code locations in 68K address space to be sandboxed -static uint16_t sandboxWatchRegionsActive;//number of used sandboxWatchRegions entrys - - -static uint32_t m515CallGuestFunction(uint32_t address, uint16_t trap, const char* prototype, ...); - -#include "sandboxTrapNumToName.c.h" - -uint32_t getRandomRange(uint32_t start, uint32_t end){ - static bool seeded = false; - - if(!seeded){ - srand(time(NULL)); - seeded = true; - } - - return (uint32_t)rand() % (end + 1 - start) + start; -} - -static char* takeStackDump(uint32_t bytes){ - char* textBytes = malloc(bytes * 2); - uint32_t textBytesOffset = 0; - uint32_t stackAddress = m68k_get_reg(NULL, M68K_REG_SP); - uint32_t count; - - textBytes[0] = '\0'; - - for(count = 0; count < bytes; count++){ - sprintf(textBytes + textBytesOffset, "%02X", m68k_read_memory_8(stackAddress + count)); - textBytesOffset = strlen(textBytes); - } - - return textBytes; -} - -static void patchOsRom(uint32_t address, char* patch){ - uint32_t offset; - uint32_t patchBytes = strlen(patch) / 2;//1 char per nibble - uint32_t swapBegin = address & 0xFFFFFFFE; - uint32_t swapSize = patchBytes / sizeof(uint16_t) + 1; - char conv[5] = "0xXX"; - - if(sandboxCurrentCpuArch == SANDBOX_CPU_ARCH_M68K) - swap16BufferIfLittle(&palmRom[swapBegin], swapSize); - for(offset = 0; offset < patchBytes; offset++){ - conv[2] = patch[offset * 2]; - conv[3] = patch[offset * 2 + 1]; - palmRom[address + offset] = strtol(conv, NULL, 0); - } - if(sandboxCurrentCpuArch == SANDBOX_CPU_ARCH_M68K) - swap16BufferIfLittle(&palmRom[swapBegin], swapSize); -} - -static const char* m515GetLowMemGlobalName(uint32_t address){ - switch(address){ - case 0x00000100: - return "MemTotalCards"; - - case 0x00000102: - return "MemCard0Start"; - - case 0x0000010A: - return "MemDebugFlags"; - - case 0x00000122: - return "TrapTablePtr"; - - case 0x00000164: - return "ScrStatePtr"; - - case 0x0000016C: - return "PenStatePtr"; - - case 0x00000170: - return "EvtStatePtr"; - - case 0x00000174: - return "SndStatePtr"; - - case 0x00000178: - return "TimStatePtr"; - - case 0x0000017C: - return "AlmStatePtr"; - - case 0x00000180: - return "FtrStatePtr"; - - case 0x00000184: - return "GrfStatePtr"; - - default: - return "UNKNOWN"; - } -} - -static bool m515IgnoreTrap(uint16_t trap){ - switch(trap){ - case HwrDisableDataWrites: - case HwrEnableDataWrites: - case DmGetDatabase://this could be important later but is spammy on boot - case MemStoreInfo://this could be important later but is spammy on boot - case HwrDelay: - return true; - } - - return false; -} - -static void m515PrintTrapInfo(uint16_t trap){ - debugLog("name:%s, API:0x%04X, location:0x%08X\n", lookupTrap(trap), trap, m68k_read_memory_32(0x000008CC + (trap & 0x0FFF) * 4)); -} - -bool m515ValidExecutionAddress(uint32_t address){ - if(dbvzChipSelects[DBVZ_CHIP_A0_ROM].inBootMode || address >= dbvzChipSelects[DBVZ_CHIP_A0_ROM].start && address < dbvzChipSelects[DBVZ_CHIP_A0_ROM].start + dbvzChipSelects[DBVZ_CHIP_A0_ROM].lineSize) - return true; - if(address >= dbvzChipSelects[DBVZ_CHIP_DX_RAM].start && address < dbvzChipSelects[DBVZ_CHIP_DX_RAM].start + dbvzChipSelects[DBVZ_CHIP_DX_RAM].lineSize) - return true; - if(sandboxActive && address >= 0xFFFFFE00)//used to run custom code when in sandbox mode - return true; - return false; -} - -void logM68kJumps(void){ - uint32_t opcodeStartPc = m68k_get_reg(NULL, M68K_REG_PPC); - uint32_t opcodeEndPc = m68k_get_reg(NULL, M68K_REG_PC); - uint32_t difference = llabs((int64_t)opcodeStartPc - (int64_t)opcodeEndPc); - - //if invalid always log, otherwise only log if big jump - if(!m515ValidExecutionAddress(opcodeEndPc)) - debugLog("m68k jumped 0x%08X bytes to invalid address, from 0x%08X to 0x%08X\n", difference, opcodeStartPc, opcodeEndPc); - else if(difference > SANDBOX_MAX_UNLOGGED_JUMP_SIZE) - debugLog("m68k jumped 0x%08X bytes, from 0x%08X to 0x%08X\n", difference, opcodeStartPc, opcodeEndPc); -} - -static void m515LogApiCalls(void){ - uint32_t programCounter = m68k_get_reg(NULL, M68K_REG_PPC); - uint16_t instruction = m68k_read_memory_16(programCounter); - - if(instruction == 0x4E4F/*Trap F/API call opcode*/){ - uint16_t trap = m68k_read_memory_16(programCounter + 2); - - if(!m515IgnoreTrap(trap)) - debugLog("Trap F API:%s, API number:0x%04X, PC:0x%08X\n", lookupTrap(trap), trap, programCounter); - } -} - -static bool isAlphanumeric(char chr){ - if((chr >= 'a' && chr <= 'z') || (chr >= 'A' && chr <= 'Z') || (chr >= '0' && chr <= '9')) - return true; - return false; -} - -static bool readable6CharsBack(uint32_t address){ - uint8_t count; - for(count = 0; count < 6; count++) - if(!isAlphanumeric(m68k_read_memory_8(address - count))) - return false; - return true; -} - -static uint32_t findM68kString(const char* str, uint32_t rangeStart, uint32_t rangeEnd){ - uint32_t strLength = strlen(str) + 1;//include null terminator - uint32_t scanAddress; - - for(scanAddress = rangeStart; scanAddress <= rangeEnd - (strLength - 1); scanAddress++){ - //since only the first char is range checked remove the rest from the range to prevent reading off the end - - //check every byte against the start character - if(m68k_read_memory_8(scanAddress) == str[0]){ - bool wrongString = false; - uint32_t strIndex; - - //character match found, check for string - for(strIndex = 1; strIndex < strLength; strIndex++){ - if(m68k_read_memory_8(scanAddress + strIndex) != str[strIndex]){ - wrongString = true; - break; - } - } - - if(wrongString == false) - return scanAddress; - } - } - - return rangeEnd; -} - -static uint32_t skipM68kString(uint32_t address){ - while(m68k_read_memory_8(address) != '\0') - address++; - address++;//skip null terminator too - return address; -} - -//THIS FUNCTION DOES NOT WORK IF A WORD ALIGNED 0x0000 IS FOUND IN THE FUNCTION BEING SEARCHED FOR, THIS IS A BUG -static uint32_t m515ScanForPrivateFunctionAddress(const char* name){ - //function name format [0x**(unknown), string(with null terminator), 0x00, 0x00(if last 0x00 was on an even address, protects opcode alignemnt)] - //this is not 100% accurate, it scans memory for a function address based on a string - //if a duplicate set of stings is found but not encasing a function a fatal error will occur on execution - uint32_t rangeEnd = dbvzChipSelects[DBVZ_CHIP_A0_ROM].start + dbvzChipSelects[DBVZ_CHIP_A0_ROM].lineSize - 1; - uint32_t address = findM68kString(name, dbvzChipSelects[DBVZ_CHIP_A0_ROM].start, rangeEnd); - - while(address < rangeEnd){ - uint32_t signatureBegining = address - 3;//last opcode of function being looked for if the string is correct - - //skip string to test the null terminators - address = skipM68kString(address); - - //after a function string there are 2 null terminators(the one all strings have and 1 extra) or 3(2 extra) if the previous one was on an even address - if(m68k_read_memory_8(address) == '\0' && (address & 0x00000001 || m68k_read_memory_8(address + 1) == '\0')){ - //valid string match found, get prior functions signature(a function string has a minimum of 6 printable chars with 2 null terminators) - uint32_t priorFunctionSignature = signatureBegining;//last opcode of the function thats being looked for - bool extraNull = false; - - while(m68k_read_memory_16(priorFunctionSignature) != '\0\0') - priorFunctionSignature -= 2; - - //remove extra null terminator if present - if(m68k_read_memory_8(priorFunctionSignature - 1) == '\0'){ - priorFunctionSignature--; - extraNull = true; - } - - //check that there are 6 valid alphanumeric characters before the nulls, this indicates that its a valid function signature - if(readable6CharsBack(priorFunctionSignature - 1)){ - //valid, get first opcode after string and return its address - return priorFunctionSignature + (extraNull ? 3 : 2); - } - } - - //string matched but structure was invalid, get next string - address = findM68kString(name, address, rangeEnd); - } - - return 0x00000000; -} - -//call anywhere in a function to get its name, used to determine the location of a crash, must free the pointer after reading the string -static char* getFunctionNameM68k(uint32_t address){ - char* data; - uint32_t offset; - - address &= 0xFFFFFFFE; - - for(offset = 0; offset < 0x10000; offset += 2){ - if(m68k_read_memory_16(address + offset) == 0x4E75/*RTS*/){ - offset += 3; - break; - } - } - - if(offset < 0x10000){ - uint16_t size = 0; - uint16_t offset2; - - for(offset2 = 0; offset2 < 0x100; offset2++) - if(isAlphanumeric(m68k_read_memory_8(address + offset + offset2))) - size++; - - data = malloc(size + 1); - for(offset2 = 0; offset2 < size; offset2++) - data[offset2] = m68k_read_memory_8(address + offset + offset2); - data[offset2] = '\0'; - } - else{ - data = NULL; - } - - return data; -} - -static uint32_t m515MakePalmString(const char* str){ - uint32_t strLength = strlen(str) + 1; - uint32_t strData = m515CallGuestFunction(false, 0x00000000, MemPtrNew, "p(l)", strLength); - - if(strData){ - uint32_t count; - - for(count = 0; count < strLength; count++) - m68k_write_memory_8(strData + count, str[count]); - } - - return strData; -} - -static char* m515MakeNativeString(uint32_t address){ - if(address){ - int16_t strLength = m515CallGuestFunction(false, 0x00000000, StrLen, "w(p)", address) + 1; - char* nativeStr = malloc(strLength); - int16_t count; - - for(count = 0; count < strLength; count++) - nativeStr[count] = m68k_read_memory_8(address + count); - return nativeStr; - } - return NULL; -} - -static void m515FreePalmString(uint32_t address){ - m515CallGuestFunction(false, 0x00000000, MemChunkFree, "w(p)", address); -} - -static bool m515InstallResourceToDevice(uint8_t* data, uint32_t size){ - /* - #define memNewChunkFlagNonMovable 0x0200 - #define memNewChunkFlagAllowLarge 0x1000 // this is not in the sdk *g* - - void *MemPtrNewL ( UInt32 size ) { - - SysAppInfoPtr appInfoP; - UInt16 ownerID; - - ownerID = ((SysAppInfoPtr)SysGetAppInfo(&appInfoP, &appInfoP))->memOwnerID; - - return MemChunkNew (0, size, ownerID | memNewChunkFlagNonMovable | memNewChunkFlagAllowLarge); - - } - */ - - uint32_t palmSideResourceData = m515CallGuestFunction(false, 0x00000000, MemChunkNew, "p(wlw)", 1/*heapID, storage RAM*/, size, 0x1200/*attr, seems to work without memOwnerID*/); - bool storageRamReadOnly = dbvzChipSelects[DBVZ_CHIP_DX_RAM].readOnlyForProtectedMemory; - uint16_t error; - uint32_t count; - - //buffer not allocated - if(!palmSideResourceData) - return false; - - dbvzChipSelects[DBVZ_CHIP_DX_RAM].readOnlyForProtectedMemory = false;//need to unprotect storage RAM - for(count = 0; count < size; count++) - m68k_write_memory_8(palmSideResourceData + count, data[count]); - dbvzChipSelects[DBVZ_CHIP_DX_RAM].readOnlyForProtectedMemory = storageRamReadOnly;//restore old protection state - error = m515CallGuestFunction(0x00000000, DmCreateDatabaseFromImage, "w(p)", palmSideResourceData);//Err DmCreateDatabaseFromImage(MemPtr bufferP);//this looks best - m515CallGuestFunction(false, 0x00000000, MemChunkFree, "w(p)", palmSideResourceData); - - //didnt install - if(error != 0) - return false; - - return true; -} - -static uint32_t m515GetStackFrameSize(const char* prototype){ - const char* params = prototype + 2; - uint32_t size = 0; - - while(*params != ')'){ - switch(*params){ - case 'v': - case 'V': - //do nothing - break; - - case 'b': - //bytes are 16 bits long on the stack due to memory alignment restrictions - case 'w': - size += 2; - break; - - case 'l': - case 'p': - case 'B': - case 'W': - case 'L': - case 'P': - size += 4; - break; - } - - params++; - } - - return size; -} - -static void m515BackupCpuState(void){ - sandboxOldFunctionM68kCpuState.sp = m68k_get_reg(NULL, M68K_REG_SP); - sandboxOldFunctionM68kCpuState.pc = m68k_get_reg(NULL, M68K_REG_PC); - sandboxOldFunctionM68kCpuState.sr = m68k_get_reg(NULL, M68K_REG_SR); - sandboxOldFunctionM68kCpuState.a0 = m68k_get_reg(NULL, M68K_REG_A0); - sandboxOldFunctionM68kCpuState.d0 = m68k_get_reg(NULL, M68K_REG_D0); -} - -static void m515RestoreCpuState(void){ - m68k_set_reg(M68K_REG_SP, sandboxOldFunctionM68kCpuState.sp); - m68k_set_reg(M68K_REG_PC, sandboxOldFunctionM68kCpuState.pc); - m68k_set_reg(M68K_REG_SR, sandboxOldFunctionM68kCpuState.sr & 0xF0FF | m68k_get_reg(NULL, M68K_REG_SR) & 0x0700);//dont restore intMask - m68k_set_reg(M68K_REG_A0, sandboxOldFunctionM68kCpuState.a0); - m68k_set_reg(M68K_REG_D0, sandboxOldFunctionM68kCpuState.d0); -} - -static uint32_t m515CallGuestFunction(uint32_t address, uint16_t trap, const char* prototype, ...){ - //prototype is a Java style function signature describing values passed and returned "v(wllp)" - //is return void and pass a uint16_t(word), 2 uint32_t(long) and 1 pointer - //valid types are b(yte), w(ord), l(ong), p(ointer) and v(oid), a capital letter means its a return pointer - //EvtGetPen v(WWB) returns nothing but writes back to the calling function with 3 pointers, - //these are allocated in the bootloader area and interpreted to host pointers on return - va_list args; - const char* params = prototype + 2; - uint32_t stackFrameStart = m68k_get_reg(NULL, M68K_REG_SP); - uint32_t newStackFrameSize = m515GetStackFrameSize(prototype); - uint32_t stackWriteAddr = stackFrameStart - newStackFrameSize; - uint32_t oldStopped = m68ki_cpu.stopped; - uint32_t functionReturn = 0x00000000; - return_pointer_t functionReturnPointers[10]; - uint8_t functionReturnPointerIndex = 0; - uint32_t callWriteOut = 0xFFFFFFE0; - uint32_t callStart; - uint8_t count; - - m515BackupCpuState(); - - va_start(args, prototype); - while(*params != ')'){ - switch(*params){ - case 'v': - case 'V': - //do nothing, this is wrong for "V" - break; - - case 'b': - //bytes are 16 bits long on the stack due to memory alignment restrictions - //bytes are written to the top byte of there word - m68k_write_memory_8(stackWriteAddr, va_arg(args, uint32_t)); - stackWriteAddr += 2; - break; - case 'w': - m68k_write_memory_16(stackWriteAddr, va_arg(args, uint32_t)); - stackWriteAddr += 2; - break; - - case 'l': - case 'p': - m68k_write_memory_32(stackWriteAddr, va_arg(args, uint32_t)); - stackWriteAddr += 4; - break; - - //return pointer values - case 'B': - functionReturnPointers[functionReturnPointerIndex].hostPointer = va_arg(args, void*); - functionReturnPointers[functionReturnPointerIndex].emuPointer = callWriteOut; - functionReturnPointers[functionReturnPointerIndex].bytes = 1; - m68k_write_memory_32(stackWriteAddr, functionReturnPointers[functionReturnPointerIndex].emuPointer); - stackWriteAddr += 4; - callWriteOut += 4; - functionReturnPointerIndex++; - break; - - case 'W': - functionReturnPointers[functionReturnPointerIndex].hostPointer = va_arg(args, void*); - functionReturnPointers[functionReturnPointerIndex].emuPointer = callWriteOut; - functionReturnPointers[functionReturnPointerIndex].bytes = 2; - m68k_write_memory_32(stackWriteAddr, functionReturnPointers[functionReturnPointerIndex].emuPointer); - stackWriteAddr += 4; - callWriteOut += 4; - functionReturnPointerIndex++; - break; - - case 'L': - case 'P': - functionReturnPointers[functionReturnPointerIndex].hostPointer = va_arg(args, void*); - functionReturnPointers[functionReturnPointerIndex].emuPointer = callWriteOut; - functionReturnPointers[functionReturnPointerIndex].bytes = 4; - m68k_write_memory_32(stackWriteAddr, functionReturnPointers[functionReturnPointerIndex].emuPointer); - stackWriteAddr += 4; - callWriteOut += 4; - functionReturnPointerIndex++; - break; - } - - params++; - } - - //write to the bootloader memory, its not important when debugging - callStart = callWriteOut; - - if(address){ - //direct jump handler, used for private APIs - m68k_write_memory_16(callWriteOut, 0x4EB9);//jump to subroutine opcode - callWriteOut += 2; - m68k_write_memory_32(callWriteOut, address); - callWriteOut += 4; - } - else{ - //OS function handler - m68k_write_memory_16(callWriteOut, 0x4E4F);//trap f opcode - callWriteOut += 2; - m68k_write_memory_16(callWriteOut, trap); - callWriteOut += 2; - } - - m68ki_cpu.stopped = 0; - m68k_set_reg(M68K_REG_SP, stackFrameStart - newStackFrameSize); - m68k_set_reg(M68K_REG_PC, callStart); - - while(m68k_get_reg(NULL, M68K_REG_PC) != callWriteOut) - m68k_execute(1);//m68k_execute() always runs requested cycles + extra cycles of the final opcode, this executes 1 opcode - - if(prototype[0] == 'p') - functionReturn = m68k_get_reg(NULL, M68K_REG_A0); - else if(prototype[0] == 'b' || prototype[0] == 'w' || prototype[0] == 'l') - functionReturn = m68k_get_reg(NULL, M68K_REG_D0); - m68ki_cpu.stopped = oldStopped; - m515RestoreCpuState(); - - //remap all argument pointers - for(count = 0; count < functionReturnPointerIndex; count++){ - switch(functionReturnPointers[count].bytes){ - case 1: - *(uint8_t*)functionReturnPointers[count].hostPointer = m68k_read_memory_8(functionReturnPointers[count].emuPointer); - break; - - case 2: - *(uint16_t*)functionReturnPointers[count].hostPointer = m68k_read_memory_16(functionReturnPointers[count].emuPointer); - break; - - case 4: - *(uint32_t*)functionReturnPointers[count].hostPointer = m68k_read_memory_32(functionReturnPointers[count].emuPointer); - break; - } - } - - va_end(args); - return functionReturn; -} - - -void sandboxInit(void){ - //nothing to init yet - sandboxCurrentCpuArch = SANDBOX_CPU_ARCH_M68K; -} - -void sandboxReset(void){ - sandboxActive = false; - sandboxFramesRan = 0; - - memset(sandboxWatchRegions, 0x00, sizeof(sandboxWatchRegions)); - sandboxWatchRegionsActive = 0; -} - -uint32_t sandboxStateSize(void){ - uint32_t size = 0; - - size += sizeof(uint8_t) * 3;//sandboxActive / sandboxControlHandoff / sandboxCurrentCpuArch - size += sizeof(uint32_t) * 4;//sandboxOldFunctionM68kCpuState.(sp/pc/a0/d0) - size += sizeof(uint16_t);//sandboxOldFunctionM68kCpuState.sr - size += sizeof(uint64_t);//sandboxFramesRan - size += sizeof(uint32_t) * 2 * SANDBOX_MAX_WATCH_REGIONS;//sandboxWatchRegions.(address/size) - size += sizeof(uint8_t) * SANDBOX_MAX_WATCH_REGIONS;//sandboxWatchRegions.type - size += sizeof(uint16_t);//sandboxWatchRegionsActive - - return size; -} - -void sandboxSaveState(uint8_t* data){ - uint32_t offset = 0; - uint16_t index; - - writeStateValue8(data + offset, sandboxActive); - offset += sizeof(uint8_t); - writeStateValue8(data + offset, sandboxCurrentCpuArch);//currently cant be ARMv5 during a frame boundry but that may change - offset += sizeof(uint8_t); - writeStateValue32(data + offset, sandboxOldFunctionM68kCpuState.sp); - offset += sizeof(uint32_t); - writeStateValue32(data + offset, sandboxOldFunctionM68kCpuState.pc); - offset += sizeof(uint32_t); - writeStateValue16(data + offset, sandboxOldFunctionM68kCpuState.sr); - offset += sizeof(uint16_t); - writeStateValue32(data + offset, sandboxOldFunctionM68kCpuState.a0); - offset += sizeof(uint32_t); - writeStateValue32(data + offset, sandboxOldFunctionM68kCpuState.d0); - offset += sizeof(uint32_t); - writeStateValue64(data + offset, sandboxFramesRan); - offset += sizeof(uint64_t); - for(index = 0; index < SANDBOX_MAX_WATCH_REGIONS; index++){ - writeStateValue32(data + offset, sandboxWatchRegions[index].address); - offset += sizeof(uint32_t); - writeStateValue32(data + offset, sandboxWatchRegions[index].size); - offset += sizeof(uint32_t); - writeStateValue8(data + offset, sandboxWatchRegions[index].type); - offset += sizeof(uint8_t); - } - writeStateValue16(data + offset, sandboxWatchRegionsActive); - offset += sizeof(uint16_t); -} - -void sandboxLoadState(uint8_t* data){ - uint32_t offset = 0; - uint16_t index; - - sandboxActive = readStateValue8(data + offset); - offset += sizeof(uint8_t); - sandboxCurrentCpuArch = readStateValue8(data + offset);//currently cant be ARMv5 during a frame boundry but that may change - offset += sizeof(uint8_t); - sandboxOldFunctionM68kCpuState.sp = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxOldFunctionM68kCpuState.pc = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxOldFunctionM68kCpuState.sr = readStateValue16(data + offset); - offset += sizeof(uint16_t); - sandboxOldFunctionM68kCpuState.a0 = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxOldFunctionM68kCpuState.d0 = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxFramesRan = readStateValue64(data + offset); - offset += sizeof(uint64_t); - for(index = 0; index < SANDBOX_MAX_WATCH_REGIONS; index++){ - sandboxWatchRegions[index].address = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxWatchRegions[index].size = readStateValue32(data + offset); - offset += sizeof(uint32_t); - sandboxWatchRegions[index].type = readStateValue8(data + offset); - offset += sizeof(uint8_t); - } - sandboxWatchRegionsActive = readStateValue16(data + offset); - offset += sizeof(uint16_t); -} - -uint32_t sandboxCommand(uint32_t command, void* data){ - uint32_t result = EMU_ERROR_NONE; - - debugLog("Sandbox: Command %d started\n", command); - - switch(command){ - case SANDBOX_CMD_PATCH_OS:{ - if(sandboxCurrentCpuArch == SANDBOX_CPU_ARCH_M68K){ - //double dynamic heap size, verified working - //HwrCalcDynamicRAMSize_10005CC6: - //HwrCalcDynamicRAMSize_10083B0A: - //patchOsRom(0x5CC6, "203C000800004E75");//move.l 0x80000, d0; rts - //patchOsRom(0x83B0A, "203C000800004E75");//move.l 0x80000, d0; rts - //patchOsRom(0x5CC6, "203C001000004E75");//move.l 0x100000, d0; rts - //patchOsRom(0x83B0A, "203C001000004E75");//move.l 0x100000, d0; rts - } - else{ - //disable weird SD chip - patchOsRom(0x333EC6, "0000");//blocks out the slot driver - patchOsRom(0x205C, "0000A0E1");//blocks idle loop jump with NOP - //patchOsRom(0x1FE8, "0000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E10000A0E1");//blocks idle loop with NOPs - } - } - break; - - case SANDBOX_CMD_DEBUG_INSTALL_APP:{ - uintptr_t* values = data; - bool success = m515InstallResourceToDevice(values[0], values[1]); - - if(!success) - result = EMU_ERROR_OUT_OF_MEMORY; - } - break; - - - case SANDBOX_CMD_REGISTER_WATCH_ENABLE:{ - sandboxSetWatchRegion(0xFFFFF000, 0xFFF, SANDBOX_WATCH_DATA);//0x1000 will cause an overflow to 0x00000000 making it never trigger - } - break; - - default: - break; - } - - debugLog("Sandbox: Command %d finished\n", command); - - return result; -} - -void sandboxOnFrameRun(void){ - //run at the end of every frame - sandboxFramesRan++; - - //add tests here -} - -void sandboxOnOpcodeRun(void){ - if(sandboxRunning()){ -#if defined(EMU_SANDBOX_LOG_JUMPS) - log68kJumps(); -#endif - -#if defined(EMU_SANDBOX_LOG_APIS) - logApiCalls(); -#endif - } - switch(m68k_get_reg(NULL, M68K_REG_PC)){//switched this from PPC to PC - //case 0x10083652://USB issue location //address based on PPC - //case 0x100846C0://HwrDelay, before mysterious jump //address based on PPC - //case 0x100846CC://HwrDelay, after mysterious jump //address based on PPC - //case 0x100AD514://HwrSpiSdioInterrupts, SD card interrupt handler - case 0x10021988://just before "andi.l #unk_FFFFFF, d0" - //to add a emulator breakpoint add a new line above here|^^^ - { - uint32_t m68kRegisters[M68K_REG_CPU_TYPE]; - uint8_t count; - - for(count = 0; count < M68K_REG_CPU_TYPE; count++) - m68kRegisters[count] = m68k_get_reg(NULL, count); - - /* - register order, read m68kRegisters with debugger - M68K_REG_D0, - M68K_REG_D1, - M68K_REG_D2, - M68K_REG_D3, - M68K_REG_D4, - M68K_REG_D5, - M68K_REG_D6, - M68K_REG_D7, - M68K_REG_A0, - M68K_REG_A1, - M68K_REG_A2, - M68K_REG_A3, - M68K_REG_A4, - M68K_REG_A5, - M68K_REG_A6, - M68K_REG_A7, - M68K_REG_PC, - M68K_REG_SR, - M68K_REG_SP, - M68K_REG_USP, - M68K_REG_ISP, - M68K_REG_MSP, - M68K_REG_SFC, - M68K_REG_DFC, - M68K_REG_VBR, - M68K_REG_CACR, - M68K_REG_CAAR, - M68K_REG_PREF_ADDR, - M68K_REG_PREF_DATA, - M68K_REG_PPC, - M68K_REG_IR - */ - - //set host breakpoint here|vvv - if(true){ - bool breakpoint = true; - } - //set host breakpoint here|^^^ - } - break; - } -} - -void sandboxOnMemoryAccess(uint32_t address, uint8_t size, bool write, uint32_t value){ - static bool isRecursive = false; - - //this function can read or write Palm memory, which calls this function, so dont run this function when calling from this function to prevent an infinte loop - if(!isRecursive){ - isRecursive = true; - {//actual code goes below:vvv - bool sandboxedMemory = false; - uint16_t memRegion; - - for(memRegion = 0; memRegion < sandboxWatchRegionsActive; memRegion++){ - if(sandboxWatchRegions[memRegion].type == SANDBOX_WATCH_DATA && address >= sandboxWatchRegions[memRegion].address && address < sandboxWatchRegions[memRegion].address + sandboxWatchRegions[memRegion].size){ - sandboxedMemory = true; - break; - } - } - - if(sandboxedMemory || sandboxRunning()){ - uint32_t pc = m68k_get_reg(NULL, M68K_REG_PPC); - char* function = getFunctionNameM68k(pc); - bool functionValid = !!function; - - if(!functionValid) - function = "NAME NOT FOUND"; - - if(address >= dbvzChipSelects[DBVZ_CHIP_DX_RAM].start && address < dbvzChipSelects[DBVZ_CHIP_DX_RAM].start + 0x10000){ - //low mem globals - address &= 0xFFFF; - - if(write) - debugLog("Writing low mem global: name:%s/global:0x%08X, size:%d, value:0x%08X, function:%s/PC:0x%08X\n", m515GetLowMemGlobalName(address), address, size, value, function, pc); - else - debugLog("Reading low mem global: name:%s/global:0x%08X, size:%d, function:%s/PC:0x%08X\n", m515GetLowMemGlobalName(address), address, size, function, pc); - } - else if(address >= 0xFFFFF000){ - //hardware registers - if(address >= 0xFFFFFE00){ - //bootloader area - if(write){ - if(address >= 0xFFFFFFC0) - debugLog("Writing bootloader area(valid): address:0x%08X, size:%d, function:%s/PC:0x%08X\n", address, size, function, pc); - else - debugLog("Writing bootloader area(invalid): address:0x%08X, size:%d, function:%s/PC:0x%08X\n", address, size, function, pc); - } - else{ - debugLog("Reading bootloader area: address:0x%08X, size:%d, function:%s/PC:0x%08X\n", address, size, function, pc); - } - } - else{ - //normal regs - const char* registerName = "UNKNOWN"; - - //TODO: get register name list - - if(write) - debugLog("Writing hardware register: name:%s/address:0x%08X, size:%d, value:0x%08X, function:%s/PC:0x%08X\n", registerName, address, size, value, function, pc); - else - debugLog("Reading hardware register: name:%s/address:0x%08X, size:%d, function:%s/PC:0x%08X\n", registerName, address, size, function, pc); - } - } - else if(address >= dbvzChipSelects[DBVZ_CHIP_B0_SED].start && address < dbvzChipSelects[DBVZ_CHIP_B0_SED].start + dbvzChipSelects[DBVZ_CHIP_B0_SED].lineSize){ - //SED1376 - if(address & SED1376_MR_BIT){ - //SED1376 data - if(write) - debugLog("Writing SED1376 buffer: address:0x%08X, size:%d, value:0x%08X, function:%s/PC:0x%08X\n", address, size, value, function, pc); - else - debugLog("Reading SED1376 buffer: address:0x%08X, size:%d, function:%s/PC:0x%08X\n", address, size, function, pc); - } - else{ - //SED1376 register, these are 8 bit only - if(write) - debugLog("Writing SED1376 register: address:0x%08X, value:0x%02X, function:%s/PC:0x%08X\n", address, value & 0xFF, function, pc); - else - debugLog("Reading SED1376 register: address:0x%08X, function:%s/PC:0x%08X\n", address, function, pc); - } - } - else{ - //everywhere else - if(write) - debugLog("Writing: address:0x%08X, size:%d, value:0x%08X, function:%s/PC:0x%08X\n", address, size, value, function, pc); - else - debugLog("Reading: address:0x%08X, size:%d, function:%s/PC:0x%08X\n", address, size, function, pc); - } - - if(functionValid) - free(function); - } - }//actual code goes above:^^^ - isRecursive = false; - } -} - -bool sandboxRunning(void){ - uint32_t pc = sandboxCurrentCpuArch == SANDBOX_CPU_ARCH_M68K ? m68k_get_reg(NULL, M68K_REG_PC) : reg_pc(15); - uint16_t memRegion; - - //this is used to capture full logs when running from specific locations - for(memRegion = 0; memRegion < sandboxWatchRegionsActive; memRegion++){ - if(sandboxWatchRegions[memRegion].type == SANDBOX_WATCH_CODE && pc >= sandboxWatchRegions[memRegion].address && pc < sandboxWatchRegions[memRegion].address + sandboxWatchRegions[memRegion].size) - return true; - } - - return sandboxActive; -} - -uint16_t sandboxSetWatchRegion(uint32_t address, uint32_t size, uint8_t type){ - uint16_t index; - - //invalid type - if(type == SANDBOX_WATCH_NONE || type >= SANDBOX_WATCH_TOTAL_TYPES) - return 0xFFFF; - - //cant watch 0 sized memory area - if(size < 1) - return 0xFFFF; - - //try to use old watch region if available - for(index = 0; index < sandboxWatchRegionsActive; index++){ - if(sandboxWatchRegions[index].type == SANDBOX_WATCH_NONE){ - //found reusable region - sandboxWatchRegions[index].address = address; - sandboxWatchRegions[index].size = size; - sandboxWatchRegions[index].type = type; - - //return watch region reference, this doesnt change until the region is deleted - return index; - } - } - - //check if new region is available - if(sandboxWatchRegionsActive < SANDBOX_MAX_WATCH_REGIONS){ - //use new region - sandboxWatchRegions[sandboxWatchRegionsActive].address = address; - sandboxWatchRegions[sandboxWatchRegionsActive].size = size; - sandboxWatchRegions[sandboxWatchRegionsActive].type = type; - sandboxWatchRegionsActive++; - - //return watch region reference, this doesnt change until the region is deleted - return sandboxWatchRegionsActive - 1; - } - - //no regions left, error - return 0xFFFF; -} - -void sandboxClearWatchRegion(uint16_t index){ - if(index < sandboxWatchRegionsActive){ - if(index == sandboxWatchRegionsActive - 1) - sandboxWatchRegionsActive--;//remove from end - else - sandboxWatchRegions[index].type = SANDBOX_WATCH_NONE;//mark as empty - } -} - -void sandboxSetCpuArch(uint8_t arch){ - sandboxCurrentCpuArch = arch; -} - -#else -void sandboxInit(void){} -void sandboxReset(void){} -uint32_t sandboxStateSize(void){return 0;} -void sandboxSaveState(uint8_t* data){} -void sandboxLoadState(uint8_t* data){} -uint32_t sandboxCommand(uint32_t command, void* data){return 0;} -void sandboxOnFrameRun(void){} -void sandboxOnOpcodeRun(void){} -void sandboxOnMemoryAccess(uint32_t address, uint8_t size, bool write, uint32_t value){} -bool sandboxRunning(void){return false;} -uint16_t sandboxSetWatchRegion(uint32_t address, uint32_t size, uint8_t type){return 0;} -void sandboxClearWatchRegion(uint16_t index){} -void sandboxSetCpuArch(uint8_t arch){} -#endif diff --git a/src/debug/sandbox.h b/src/debug/sandbox.h deleted file mode 100644 index ae39267..0000000 --- a/src/debug/sandbox.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef SANDBOX_H -#define SANDBOX_H - -#include -#include - -enum{ - SANDBOX_CMD_PATCH_OS = 0, - SANDBOX_CMD_DEBUG_INSTALL_APP, - SANDBOX_CMD_REGISTER_WATCH_ENABLE -}; - -enum{ - SANDBOX_WATCH_NONE = 0, - SANDBOX_WATCH_CODE, - SANDBOX_WATCH_DATA, - SANDBOX_WATCH_TOTAL_TYPES -}; - -enum{ - SANDBOX_CPU_ARCH_M68K = 0, - SANDBOX_CPU_ARCH_ARMV5 -}; - -void sandboxInit(void); -void sandboxReset(void); -uint32_t sandboxStateSize(void); -void sandboxSaveState(uint8_t* data); -void sandboxLoadState(uint8_t* data); -uint32_t sandboxCommand(uint32_t command, void* data); -void sandboxOnFrameRun(void); -void sandboxOnOpcodeRun(void); -void sandboxOnMemoryAccess(uint32_t address, uint8_t size, bool write, uint32_t value); -bool sandboxRunning(void); -uint16_t sandboxSetWatchRegion(uint32_t address, uint32_t size, uint8_t type); -void sandboxClearWatchRegion(uint16_t index); -void sandboxSetCpuArch(uint8_t arch); - -#endif diff --git a/src/debug/sandboxTrapNumToName.c.h b/src/debug/sandboxTrapNumToName.c.h deleted file mode 100644 index 2c3926a..0000000 --- a/src/debug/sandboxTrapNumToName.c.h +++ /dev/null @@ -1,1171 +0,0 @@ -#include -#include //for NULL - -//from mame used for printing apicalls -typedef struct{ - const char* name; - uint16_t trap; -}mameList; - -mameList traps[] = { - {"MemInit", 0xA000}, - {"MemInitHeapTable", 0xA001}, - {"MemStoreInit", 0xA002}, - {"MemCardFormat", 0xA003}, - {"MemCardInfo", 0xA004}, - {"MemStoreInfo", 0xA005}, - {"MemStoreSetInfo", 0xA006}, - {"MemNumHeaps", 0xA007}, - {"MemNumRAMHeaps", 0xA008}, - {"MemHeapID", 0xA009}, - {"MemHeapPtr", 0xA00A}, - {"MemHeapFreeBytes", 0xA00B}, - {"MemHeapSize", 0xA00C}, - {"MemHeapFlags", 0xA00D}, - {"MemHeapCompact", 0xA00E}, - {"MemHeapInit", 0xA00F}, - {"MemHeapFreeByOwnerID", 0xA010}, - {"MemChunkNew", 0xA011}, - {"MemChunkFree", 0xA012}, - {"MemPtrNew", 0xA013}, - {"MemPtrRecoverHandle", 0xA014}, - {"MemPtrFlags", 0xA015}, - {"MemPtrSize", 0xA016}, - {"MemPtrOwner", 0xA017}, - {"MemPtrHeapID", 0xA018}, - {"MemPtrCardNo", 0xA019}, - {"MemPtrToLocalID", 0xA01A}, - {"MemPtrSetOwner", 0xA01B}, - {"MemPtrResize", 0xA01C}, - {"MemPtrResetLock", 0xA01D}, - {"MemHandleNew", 0xA01E}, - {"MemHandleLockCount", 0xA01F}, - {"MemHandleToLocalID", 0xA020}, - {"MemHandleLock", 0xA021}, - {"MemHandleUnlock", 0xA022}, - {"MemLocalIDToGlobal", 0xA023}, - {"MemLocalIDKind", 0xA024}, - {"MemLocalIDToPtr", 0xA025}, - {"MemMove", 0xA026}, - {"MemSet", 0xA027}, - {"MemStoreSearch", 0xA028}, - {"SysReserved10Trap1", 0xA029}, - {"MemKernelInit", 0xA02A}, - {"MemHandleFree", 0xA02B}, - {"MemHandleFlags", 0xA02C}, - {"MemHandleSize", 0xA02D}, - {"MemHandleOwner", 0xA02E}, - {"MemHandleHeapID", 0xA02F}, - {"MemHandleDataStorage", 0xA030}, - {"MemHandleCardNo", 0xA031}, - {"MemHandleSetOwner", 0xA032}, - {"MemHandleResize", 0xA033}, - {"MemHandleResetLock", 0xA034}, - {"MemPtrUnlock", 0xA035}, - {"MemLocalIDToLockedPtr", 0xA036}, - {"MemSetDebugMode", 0xA037}, - {"MemHeapScramble", 0xA038}, - {"MemHeapCheck", 0xA039}, - {"MemNumCards", 0xA03A}, - {"MemDebugMode", 0xA03B}, - {"MemSemaphoreReserve", 0xA03C}, - {"MemSemaphoreRelease", 0xA03D}, - {"MemHeapDynamic", 0xA03E}, - {"MemNVParams", 0xA03F}, - {"DmInit", 0xA040}, - {"DmCreateDatabase", 0xA041}, - {"DmDeleteDatabase", 0xA042}, - {"DmNumDatabases", 0xA043}, - {"DmGetDatabase", 0xA044}, - {"DmFindDatabase", 0xA045}, - {"DmDatabaseInfo", 0xA046}, - {"DmSetDatabaseInfo", 0xA047}, - {"DmDatabaseSize", 0xA048}, - {"DmOpenDatabase", 0xA049}, - {"DmCloseDatabase", 0xA04A}, - {"DmNextOpenDatabase", 0xA04B}, - {"DmOpenDatabaseInfo", 0xA04C}, - {"DmResetRecordStates", 0xA04D}, - {"DmGetLastErr", 0xA04E}, - {"DmNumRecords", 0xA04F}, - {"DmRecordInfo", 0xA050}, - {"DmSetRecordInfo", 0xA051}, - {"DmAttachRecord", 0xA052}, - {"DmDetachRecord", 0xA053}, - {"DmMoveRecord", 0xA054}, - {"DmNewRecord", 0xA055}, - {"DmRemoveRecord", 0xA056}, - {"DmDeleteRecord", 0xA057}, - {"DmArchiveRecord", 0xA058}, - {"DmNewHandle", 0xA059}, - {"DmRemoveSecretRecords", 0xA05A}, - {"DmQueryRecord", 0xA05B}, - {"DmGetRecord", 0xA05C}, - {"DmResizeRecord", 0xA05D}, - {"DmReleaseRecord", 0xA05E}, - {"DmGetResource", 0xA05F}, - {"DmGet1Resource", 0xA060}, - {"DmReleaseResource", 0xA061}, - {"DmResizeResource", 0xA062}, - {"DmNextOpenResDatabase", 0xA063}, - {"DmFindResourceType", 0xA064}, - {"DmFindResource", 0xA065}, - {"DmSearchResource", 0xA066}, - {"DmNumResources", 0xA067}, - {"DmResourceInfo", 0xA068}, - {"DmSetResourceInfo", 0xA069}, - {"DmAttachResource", 0xA06A}, - {"DmDetachResource", 0xA06B}, - {"DmNewResource", 0xA06C}, - {"DmRemoveResource", 0xA06D}, - {"DmGetResourceIndex", 0xA06E}, - {"DmQuickSort", 0xA06F}, - {"DmQueryNextInCategory", 0xA070}, - {"DmNumRecordsInCategory", 0xA071}, - {"DmPositionInCategory", 0xA072}, - {"DmSeekRecordInCategory", 0xA073}, - {"DmMoveCategory", 0xA074}, - {"DmOpenDatabaseByTypeCreator", 0xA075}, - {"DmWrite", 0xA076}, - {"DmStrCopy", 0xA077}, - {"DmGetNextDatabaseByTypeCreator", 0xA078}, - {"DmWriteCheck", 0xA079}, - {"DmMoveOpenDBContext", 0xA07A}, - {"DmFindRecordByID", 0xA07B}, - {"DmGetAppInfoID", 0xA07C}, - {"DmFindSortPositionV10", 0xA07D}, - {"DmSet", 0xA07E}, - {"DmCreateDatabaseFromImage", 0xA07F}, - {"DbgSrcMessage", 0xA080}, - {"DbgMessage", 0xA081}, - {"DbgGetMessage", 0xA082}, - {"DbgCommSettings", 0xA083}, - {"ErrDisplayFileLineMsg", 0xA084}, - {"ErrSetJump", 0xA085}, - {"ErrLongJump", 0xA086}, - {"ErrThrow", 0xA087}, - {"ErrExceptionList", 0xA088}, - {"SysBroadcastActionCode", 0xA089}, - {"SysUnimplemented", 0xA08A}, - {"SysColdBoot", 0xA08B}, - {"SysReset", 0xA08C}, - {"SysDoze", 0xA08D}, - {"SysAppLaunch", 0xA08E}, - {"SysAppStartup", 0xA08F}, - {"SysAppExit", 0xA090}, - {"SysSetA5", 0xA091}, - {"SysSetTrapAddress", 0xA092}, - {"SysGetTrapAddress", 0xA093}, - {"SysTranslateKernelErr", 0xA094}, - {"SysSemaphoreCreate", 0xA095}, - {"SysSemaphoreDelete", 0xA096}, - {"SysSemaphoreWait", 0xA097}, - {"SysSemaphoreSignal", 0xA098}, - {"SysTimerCreate", 0xA099}, - {"SysTimerWrite", 0xA09A}, - {"SysTaskCreate", 0xA09B}, - {"SysTaskDelete", 0xA09C}, - {"SysTaskTrigger", 0xA09D}, - {"SysTaskID", 0xA09E}, - {"SysTaskUserInfoPtr", 0xA09F}, - {"SysTaskDelay", 0xA0A0}, - {"SysTaskSetTermProc", 0xA0A1}, - {"SysUILaunch", 0xA0A2}, - {"SysNewOwnerID", 0xA0A3}, - {"SysSemaphoreSet", 0xA0A4}, - {"SysDisableInts", 0xA0A5}, - {"SysRestoreStatus", 0xA0A6}, - {"SysUIAppSwitch", 0xA0A7}, - {"SysCurAppInfoPV20", 0xA0A8}, - {"SysHandleEvent", 0xA0A9}, - {"SysInit", 0xA0AA}, - {"SysQSort", 0xA0AB}, - {"SysCurAppDatabase", 0xA0AC}, - {"SysFatalAlert", 0xA0AD}, - {"SysResSemaphoreCreate", 0xA0AE}, - {"SysResSemaphoreDelete", 0xA0AF}, - {"SysResSemaphoreReserve", 0xA0B0}, - {"SysResSemaphoreRelease", 0xA0B1}, - {"SysSleep", 0xA0B2}, - {"SysKeyboardDialogV10", 0xA0B3}, - {"SysAppLauncherDialog", 0xA0B4}, - {"SysSetPerformance", 0xA0B5}, - {"SysBatteryInfoV20", 0xA0B6}, - {"SysLibInstall", 0xA0B7}, - {"SysLibRemove", 0xA0B8}, - {"SysLibTblEntry", 0xA0B9}, - {"SysLibFind", 0xA0BA}, - {"SysBatteryDialog", 0xA0BB}, - {"SysCopyStringResource", 0xA0BC}, - {"SysKernelInfo", 0xA0BD}, - {"SysLaunchConsole", 0xA0BE}, - {"SysTimerDelete", 0xA0BF}, - {"SysSetAutoOffTime", 0xA0C0}, - {"SysFormPointerArrayToStrings", 0xA0C1}, - {"SysRandom", 0xA0C2}, - {"SysTaskSwitching", 0xA0C3}, - {"SysTimerRead", 0xA0C4}, - {"StrCopy", 0xA0C5}, - {"StrCat", 0xA0C6}, - {"StrLen", 0xA0C7}, - {"StrCompare", 0xA0C8}, - {"StrIToA", 0xA0C9}, - {"StrCaselessCompare", 0xA0CA}, - {"StrIToH", 0xA0CB}, - {"StrChr", 0xA0CC}, - {"StrStr", 0xA0CD}, - {"StrAToI", 0xA0CE}, - {"StrToLower", 0xA0CF}, - {"SerReceiveISP", 0xA0D0}, - {"SlkOpen", 0xA0D1}, - {"SlkClose", 0xA0D2}, - {"SlkOpenSocket", 0xA0D3}, - {"SlkCloseSocket", 0xA0D4}, - {"SlkSocketRefNum", 0xA0D5}, - {"SlkSocketSetTimeout", 0xA0D6}, - {"SlkFlushSocket", 0xA0D7}, - {"SlkSetSocketListener", 0xA0D8}, - {"SlkSendPacket", 0xA0D9}, - {"SlkReceivePacket", 0xA0DA}, - {"SlkSysPktDefaultResponse", 0xA0DB}, - {"SlkProcessRPC", 0xA0DC}, - {"ConPutS", 0xA0DD}, - {"ConGetS", 0xA0DE}, - {"FplInit", 0xA0DF}, - {"FplFree", 0xA0E0}, - {"FplFToA", 0xA0E1}, - {"FplAToF", 0xA0E2}, - {"FplBase10Info", 0xA0E3}, - {"FplLongToFloat", 0xA0E4}, - {"FplFloatToLong", 0xA0E5}, - {"FplFloatToULong", 0xA0E6}, - {"FplMul", 0xA0E7}, - {"FplAdd", 0xA0E8}, - {"FplSub", 0xA0E9}, - {"FplDiv", 0xA0EA}, - {"WinScreenInit", 0xA0EB}, - {"ScrCopyRectangle", 0xA0EC}, - {"ScrDrawChars", 0xA0ED}, - {"ScrLineRoutine", 0xA0EE}, - {"ScrRectangleRoutine", 0xA0EF}, - {"ScrScreenInfo", 0xA0F0}, - {"ScrDrawNotify", 0xA0F1}, - {"ScrSendUpdateArea", 0xA0F2}, - {"ScrCompressScanLine", 0xA0F3}, - {"ScrDeCompressScanLine", 0xA0F4}, - {"TimGetSeconds", 0xA0F5}, - {"TimSetSeconds", 0xA0F6}, - {"TimGetTicks", 0xA0F7}, - {"TimInit", 0xA0F8}, - {"TimSetAlarm", 0xA0F9}, - {"TimGetAlarm", 0xA0FA}, - {"TimHandleInterrupt", 0xA0FB}, - {"TimSecondsToDateTime", 0xA0FC}, - {"TimDateTimeToSeconds", 0xA0FD}, - {"TimAdjust", 0xA0FE}, - {"TimSleep", 0xA0FF}, - {"TimWake", 0xA100}, - {"CategoryCreateListV10", 0xA101}, - {"CategoryFreeListV10", 0xA102}, - {"CategoryFind", 0xA103}, - {"CategoryGetName", 0xA104}, - {"CategoryEditV10", 0xA105}, - {"CategorySelectV10", 0xA106}, - {"CategoryGetNext", 0xA107}, - {"CategorySetTriggerLabel", 0xA108}, - {"CategoryTruncateName", 0xA109}, - {"ClipboardAddItem", 0xA10A}, - {"ClipboardCheckIfItemExist", 0xA10B}, - {"ClipboardGetItem", 0xA10C}, - {"CtlDrawControl", 0xA10D}, - {"CtlEraseControl", 0xA10E}, - {"CtlHideControl", 0xA10F}, - {"CtlShowControl", 0xA110}, - {"CtlGetValue", 0xA111}, - {"CtlSetValue", 0xA112}, - {"CtlGetLabel", 0xA113}, - {"CtlSetLabel", 0xA114}, - {"CtlHandleEvent", 0xA115}, - {"CtlHitControl", 0xA116}, - {"CtlSetEnabled", 0xA117}, - {"CtlSetUsable", 0xA118}, - {"CtlEnabled", 0xA119}, - {"EvtInitialize", 0xA11A}, - {"EvtAddEventToQueue", 0xA11B}, - {"EvtCopyEvent", 0xA11C}, - {"EvtGetEvent", 0xA11D}, - {"EvtGetPen", 0xA11E}, - {"EvtSysInit", 0xA11F}, - {"EvtGetSysEvent", 0xA120}, - {"EvtProcessSoftKeyStroke", 0xA121}, - {"EvtGetPenBtnList", 0xA122}, - {"EvtSetPenQueuePtr", 0xA123}, - {"EvtPenQueueSize", 0xA124}, - {"EvtFlushPenQueue", 0xA125}, - {"EvtEnqueuePenPoint", 0xA126}, - {"EvtDequeuePenStrokeInfo", 0xA127}, - {"EvtDequeuePenPoint", 0xA128}, - {"EvtFlushNextPenStroke", 0xA129}, - {"EvtSetKeyQueuePtr", 0xA12A}, - {"EvtKeyQueueSize", 0xA12B}, - {"EvtFlushKeyQueue", 0xA12C}, - {"EvtEnqueueKey", 0xA12D}, - {"EvtDequeueKeyEvent", 0xA12E}, - {"EvtWakeup", 0xA12F}, - {"EvtResetAutoOffTimer", 0xA130}, - {"EvtKeyQueueEmpty", 0xA131}, - {"EvtEnableGraffiti", 0xA132}, - {"FldCopy", 0xA133}, - {"FldCut", 0xA134}, - {"FldDrawField", 0xA135}, - {"FldEraseField", 0xA136}, - {"FldFreeMemory", 0xA137}, - {"FldGetBounds", 0xA138}, - {"FldGetTextPtr", 0xA139}, - {"FldGetSelection", 0xA13A}, - {"FldHandleEvent", 0xA13B}, - {"FldPaste", 0xA13C}, - {"FldRecalculateField", 0xA13D}, - {"FldSetBounds", 0xA13E}, - {"FldSetText", 0xA13F}, - {"FldGetFont", 0xA140}, - {"FldSetFont", 0xA141}, - {"FldSetSelection", 0xA142}, - {"FldGrabFocus", 0xA143}, - {"FldReleaseFocus", 0xA144}, - {"FldGetInsPtPosition", 0xA145}, - {"FldSetInsPtPosition", 0xA146}, - {"FldSetScrollPosition", 0xA147}, - {"FldGetScrollPosition", 0xA148}, - {"FldGetTextHeight", 0xA149}, - {"FldGetTextAllocatedSize", 0xA14A}, - {"FldGetTextLength", 0xA14B}, - {"FldScrollField", 0xA14C}, - {"FldScrollable", 0xA14D}, - {"FldGetVisibleLines", 0xA14E}, - {"FldGetAttributes", 0xA14F}, - {"FldSetAttributes", 0xA150}, - {"FldSendChangeNotification", 0xA151}, - {"FldCalcFieldHeight", 0xA152}, - {"FldGetTextHandle", 0xA153}, - {"FldCompactText", 0xA154}, - {"FldDirty", 0xA155}, - {"FldWordWrap", 0xA156}, - {"FldSetTextAllocatedSize", 0xA157}, - {"FldSetTextHandle", 0xA158}, - {"FldSetTextPtr", 0xA159}, - {"FldGetMaxChars", 0xA15A}, - {"FldSetMaxChars", 0xA15B}, - {"FldSetUsable", 0xA15C}, - {"FldInsert", 0xA15D}, - {"FldDelete", 0xA15E}, - {"FldUndo", 0xA15F}, - {"FldSetDirty", 0xA160}, - {"FldSendHeightChangeNotification", 0xA161}, - {"FldMakeFullyVisible", 0xA162}, - {"FntGetFont", 0xA163}, - {"FntSetFont", 0xA164}, - {"FntGetFontPtr", 0xA165}, - {"FntBaseLine", 0xA166}, - {"FntCharHeight", 0xA167}, - {"FntLineHeight", 0xA168}, - {"FntAverageCharWidth", 0xA169}, - {"FntCharWidth", 0xA16A}, - {"FntCharsWidth", 0xA16B}, - {"FntDescenderHeight", 0xA16C}, - {"FntCharsInWidth", 0xA16D}, - {"FntLineWidth", 0xA16E}, - {"FrmInitForm", 0xA16F}, - {"FrmDeleteForm", 0xA170}, - {"FrmDrawForm", 0xA171}, - {"FrmEraseForm", 0xA172}, - {"FrmGetActiveForm", 0xA173}, - {"FrmSetActiveForm", 0xA174}, - {"FrmGetActiveFormID", 0xA175}, - {"FrmGetUserModifiedState", 0xA176}, - {"FrmSetNotUserModified", 0xA177}, - {"FrmGetFocus", 0xA178}, - {"FrmSetFocus", 0xA179}, - {"FrmHandleEvent", 0xA17A}, - {"FrmGetFormBounds", 0xA17B}, - {"FrmGetWindowHandle", 0xA17C}, - {"FrmGetFormId", 0xA17D}, - {"FrmGetFormPtr", 0xA17E}, - {"FrmGetNumberOfObjects", 0xA17F}, - {"FrmGetObjectIndex", 0xA180}, - {"FrmGetObjectId", 0xA181}, - {"FrmGetObjectType", 0xA182}, - {"FrmGetObjectPtr", 0xA183}, - {"FrmHideObject", 0xA184}, - {"FrmShowObject", 0xA185}, - {"FrmGetObjectPosition", 0xA186}, - {"FrmSetObjectPosition", 0xA187}, - {"FrmGetControlValue", 0xA188}, - {"FrmSetControlValue", 0xA189}, - {"FrmGetControlGroupSelection", 0xA18A}, - {"FrmSetControlGroupSelection", 0xA18B}, - {"FrmCopyLabel", 0xA18C}, - {"FrmSetLabel", 0xA18D}, - {"FrmGetLabel", 0xA18E}, - {"FrmSetCategoryLabel", 0xA18F}, - {"FrmGetTitle", 0xA190}, - {"FrmSetTitle", 0xA191}, - {"FrmAlert", 0xA192}, - {"FrmDoDialog", 0xA193}, - {"FrmCustomAlert", 0xA194}, - {"FrmHelp", 0xA195}, - {"FrmUpdateScrollers", 0xA196}, - {"FrmGetFirstForm", 0xA197}, - {"FrmVisible", 0xA198}, - {"FrmGetObjectBounds", 0xA199}, - {"FrmCopyTitle", 0xA19A}, - {"FrmGotoForm", 0xA19B}, - {"FrmPopupForm", 0xA19C}, - {"FrmUpdateForm", 0xA19D}, - {"FrmReturnToForm", 0xA19E}, - {"FrmSetEventHandler", 0xA19F}, - {"FrmDispatchEvent", 0xA1A0}, - {"FrmCloseAllForms", 0xA1A1}, - {"FrmSaveAllForms", 0xA1A2}, - {"FrmGetGadgetData", 0xA1A3}, - {"FrmSetGadgetData", 0xA1A4}, - {"FrmSetCategoryTrigger", 0xA1A5}, - {"UIInitialize", 0xA1A6}, - {"UIReset", 0xA1A7}, - {"InsPtInitialize", 0xA1A8}, - {"InsPtSetLocation", 0xA1A9}, - {"InsPtGetLocation", 0xA1AA}, - {"InsPtEnable", 0xA1AB}, - {"InsPtEnabled", 0xA1AC}, - {"InsPtSetHeight", 0xA1AD}, - {"InsPtGetHeight", 0xA1AE}, - {"InsPtCheckBlink", 0xA1AF}, - {"LstSetDrawFunction", 0xA1B0}, - {"LstDrawList", 0xA1B1}, - {"LstEraseList", 0xA1B2}, - {"LstGetSelection", 0xA1B3}, - {"LstGetSelectionText", 0xA1B4}, - {"LstHandleEvent", 0xA1B5}, - {"LstSetHeight", 0xA1B6}, - {"LstSetSelection", 0xA1B7}, - {"LstSetListChoices", 0xA1B8}, - {"LstMakeItemVisible", 0xA1B9}, - {"LstGetNumberOfItems", 0xA1BA}, - {"LstPopupList", 0xA1BB}, - {"LstSetPosition", 0xA1BC}, - {"MenuInit", 0xA1BD}, - {"MenuDispose", 0xA1BE}, - {"MenuHandleEvent", 0xA1BF}, - {"MenuDrawMenu", 0xA1C0}, - {"MenuEraseStatus", 0xA1C1}, - {"MenuGetActiveMenu", 0xA1C2}, - {"MenuSetActiveMenu", 0xA1C3}, - {"RctSetRectangle", 0xA1C4}, - {"RctCopyRectangle", 0xA1C5}, - {"RctInsetRectangle", 0xA1C6}, - {"RctOffsetRectangle", 0xA1C7}, - {"RctPtInRectangle", 0xA1C8}, - {"RctGetIntersection", 0xA1C9}, - {"TblDrawTable", 0xA1CA}, - {"TblEraseTable", 0xA1CB}, - {"TblHandleEvent", 0xA1CC}, - {"TblGetItemBounds", 0xA1CD}, - {"TblSelectItem", 0xA1CE}, - {"TblGetItemInt", 0xA1CF}, - {"TblSetItemInt", 0xA1D0}, - {"TblSetItemStyle", 0xA1D1}, - {"TblUnhighlightSelection", 0xA1D2}, - {"TblSetRowUsable", 0xA1D3}, - {"TblGetNumberOfRows", 0xA1D4}, - {"TblSetCustomDrawProcedure", 0xA1D5}, - {"TblSetRowSelectable", 0xA1D6}, - {"TblRowSelectable", 0xA1D7}, - {"TblSetLoadDataProcedure", 0xA1D8}, - {"TblSetSaveDataProcedure", 0xA1D9}, - {"TblGetBounds", 0xA1DA}, - {"TblSetRowHeight", 0xA1DB}, - {"TblGetColumnWidth", 0xA1DC}, - {"TblGetRowID", 0xA1DD}, - {"TblSetRowID", 0xA1DE}, - {"TblMarkRowInvalid", 0xA1DF}, - {"TblMarkTableInvalid", 0xA1E0}, - {"TblGetSelection", 0xA1E1}, - {"TblInsertRow", 0xA1E2}, - {"TblRemoveRow", 0xA1E3}, - {"TblRowInvalid", 0xA1E4}, - {"TblRedrawTable", 0xA1E5}, - {"TblRowUsable", 0xA1E6}, - {"TblReleaseFocus", 0xA1E7}, - {"TblEditing", 0xA1E8}, - {"TblGetCurrentField", 0xA1E9}, - {"TblSetColumnUsable", 0xA1EA}, - {"TblGetRowHeight", 0xA1EB}, - {"TblSetColumnWidth", 0xA1EC}, - {"TblGrabFocus", 0xA1ED}, - {"TblSetItemPtr", 0xA1EE}, - {"TblFindRowID", 0xA1EF}, - {"TblGetLastUsableRow", 0xA1F0}, - {"TblGetColumnSpacing", 0xA1F1}, - {"TblFindRowData", 0xA1F2}, - {"TblGetRowData", 0xA1F3}, - {"TblSetRowData", 0xA1F4}, - {"TblSetColumnSpacing", 0xA1F5}, - {"WinCreateWindow", 0xA1F6}, - {"WinCreateOffscreenWindow", 0xA1F7}, - {"WinDeleteWindow", 0xA1F8}, - {"WinInitializeWindow", 0xA1F9}, - {"WinAddWindow", 0xA1FA}, - {"WinRemoveWindow", 0xA1FB}, - {"WinSetActiveWindow", 0xA1FC}, - {"WinSetDrawWindow", 0xA1FD}, - {"WinGetDrawWindow", 0xA1FE}, - {"WinGetActiveWindow", 0xA1FF}, - {"WinGetDisplayWindow", 0xA200}, - {"WinGetFirstWindow", 0xA201}, - {"WinEnableWindow", 0xA202}, - {"WinDisableWindow", 0xA203}, - {"WinGetWindowFrameRect", 0xA204}, - {"WinDrawWindowFrame", 0xA205}, - {"WinEraseWindow", 0xA206}, - {"WinSaveBits", 0xA207}, - {"WinRestoreBits", 0xA208}, - {"WinCopyRectangle", 0xA209}, - {"WinScrollRectangle", 0xA20A}, - {"WinGetDisplayExtent", 0xA20B}, - {"WinGetWindowExtent", 0xA20C}, - {"WinDisplayToWindowPt", 0xA20D}, - {"WinWindowToDisplayPt", 0xA20E}, - {"WinGetClip", 0xA20F}, - {"WinSetClip", 0xA210}, - {"WinResetClip", 0xA211}, - {"WinClipRectangle", 0xA212}, - {"WinDrawLine", 0xA213}, - {"WinDrawGrayLine", 0xA214}, - {"WinEraseLine", 0xA215}, - {"WinInvertLine", 0xA216}, - {"WinFillLine", 0xA217}, - {"WinDrawRectangle", 0xA218}, - {"WinEraseRectangle", 0xA219}, - {"WinInvertRectangle", 0xA21A}, - {"WinDrawRectangleFrame", 0xA21B}, - {"WinDrawGrayRectangleFrame", 0xA21C}, - {"WinEraseRectangleFrame", 0xA21D}, - {"WinInvertRectangleFrame", 0xA21E}, - {"WinGetFramesRectangle", 0xA21F}, - {"WinDrawChars", 0xA220}, - {"WinEraseChars", 0xA221}, - {"WinInvertChars", 0xA222}, - {"WinGetPattern", 0xA223}, - {"WinSetPattern", 0xA224}, - {"WinSetUnderlineMode", 0xA225}, - {"WinDrawBitmap", 0xA226}, - {"WinModal", 0xA227}, - {"WinGetDrawWindowBounds", 0xA228}, - {"WinFillRectangle", 0xA229}, - {"WinDrawInvertedChars", 0xA22A}, - {"PrefOpenPreferenceDBV10", 0xA22B}, - {"PrefGetPreferences", 0xA22C}, - {"PrefSetPreferences", 0xA22D}, - {"PrefGetAppPreferencesV10", 0xA22E}, - {"PrefSetAppPreferencesV10", 0xA22F}, - {"SndInit", 0xA230}, - {"SndSetDefaultVolume", 0xA231}, - {"SndGetDefaultVolume", 0xA232}, - {"SndDoCmd", 0xA233}, - {"SndPlaySystemSound", 0xA234}, - {"AlmInit", 0xA235}, - {"AlmCancelAll", 0xA236}, - {"AlmAlarmCallback", 0xA237}, - {"AlmSetAlarm", 0xA238}, - {"AlmGetAlarm", 0xA239}, - {"AlmDisplayAlarm", 0xA23A}, - {"AlmEnableNotification", 0xA23B}, - {"HwrGetRAMMapping", 0xA23C}, - {"HwrMemWritable", 0xA23D}, - {"HwrMemReadable", 0xA23E}, - {"HwrDoze", 0xA23F}, - {"HwrSleep", 0xA240}, - {"HwrWake", 0xA241}, - {"HwrSetSystemClock", 0xA242}, - {"HwrSetCPUDutyCycle", 0xA243}, - {"HwrDisplayInit", 0xA244}, - {"HwrDisplaySleep", 0xA245}, - {"HwrTimerInit", 0xA246}, - {"HwrCursorV33", 0xA247}, - {"HwrBatteryLevel", 0xA248}, - {"HwrDelay", 0xA249}, - {"HwrEnableDataWrites", 0xA24A}, - {"HwrDisableDataWrites", 0xA24B}, - {"HwrLCDBaseAddrV33", 0xA24C}, - {"HwrDisplayDrawBootScreen", 0xA24D}, - {"HwrTimerSleep", 0xA24E}, - {"HwrTimerWake", 0xA24F}, - {"HwrDisplayWake", 0xA250}, - {"HwrIRQ1Handler", 0xA251}, - {"HwrIRQ2Handler", 0xA252}, - {"HwrIRQ3Handler", 0xA253}, - {"HwrIRQ4Handler", 0xA254}, - {"HwrIRQ5Handler", 0xA255}, - {"HwrIRQ6Handler", 0xA256}, - {"HwrDockSignals", 0xA257}, - {"HwrPluggedIn", 0xA258}, - {"Crc16CalcBlock", 0xA259}, - {"SelectDayV10", 0xA25A}, - {"SelectTimeV33", 0xA25B}, - {"DayDrawDaySelector", 0xA25C}, - {"DayHandleEvent", 0xA25D}, - {"DayDrawDays", 0xA25E}, - {"DayOfWeek", 0xA25F}, - {"DaysInMonth", 0xA260}, - {"DayOfMonth", 0xA261}, - {"DateDaysToDate", 0xA262}, - {"DateToDays", 0xA263}, - {"DateAdjust", 0xA264}, - {"DateSecondsToDate", 0xA265}, - {"DateToAscii", 0xA266}, - {"DateToDOWDMFormat", 0xA267}, - {"TimeToAscii", 0xA268}, - {"Find", 0xA269}, - {"FindStrInStr", 0xA26A}, - {"FindSaveMatch", 0xA26B}, - {"FindGetLineBounds", 0xA26C}, - {"FindDrawHeader", 0xA26D}, - {"PenOpen", 0xA26E}, - {"PenClose", 0xA26F}, - {"PenGetRawPen", 0xA270}, - {"PenCalibrate", 0xA271}, - {"PenRawToScreen", 0xA272}, - {"PenScreenToRaw", 0xA273}, - {"PenResetCalibration", 0xA274}, - {"PenSleep", 0xA275}, - {"PenWake", 0xA276}, - {"ResLoadForm", 0xA277}, - {"ResLoadMenu", 0xA278}, - {"FtrInit", 0xA279}, - {"FtrUnregister", 0xA27A}, - {"FtrGet", 0xA27B}, - {"FtrSet", 0xA27C}, - {"FtrGetByIndex", 0xA27D}, - {"GrfInit", 0xA27E}, - {"GrfFree", 0xA27F}, - {"GrfGetState", 0xA280}, - {"GrfSetState", 0xA281}, - {"GrfFlushPoints", 0xA282}, - {"GrfAddPoint", 0xA283}, - {"GrfInitState", 0xA284}, - {"GrfCleanState", 0xA285}, - {"GrfMatch", 0xA286}, - {"GrfGetMacro", 0xA287}, - {"GrfFilterPoints", 0xA288}, - {"GrfGetNumPoints", 0xA289}, - {"GrfGetPoint", 0xA28A}, - {"GrfFindBranch", 0xA28B}, - {"GrfMatchGlyph", 0xA28C}, - {"GrfGetGlyphMapping", 0xA28D}, - {"GrfGetMacroName", 0xA28E}, - {"GrfDeleteMacro", 0xA28F}, - {"GrfAddMacro", 0xA290}, - {"GrfGetAndExpandMacro", 0xA291}, - {"GrfProcessStroke", 0xA292}, - {"GrfFieldChange", 0xA293}, - {"GetCharSortValue", 0xA294}, - {"GetCharAttr", 0xA295}, - {"GetCharCaselessValue", 0xA296}, - {"PwdExists", 0xA297}, - {"PwdVerify", 0xA298}, - {"PwdSet", 0xA299}, - {"PwdRemove", 0xA29A}, - {"GsiInitialize", 0xA29B}, - {"GsiSetLocation", 0xA29C}, - {"GsiEnable", 0xA29D}, - {"GsiEnabled", 0xA29E}, - {"GsiSetShiftState", 0xA29F}, - {"KeyInit", 0xA2A0}, - {"KeyHandleInterrupt", 0xA2A1}, - {"KeyCurrentState", 0xA2A2}, - {"KeyResetDoubleTap", 0xA2A3}, - {"KeyRates", 0xA2A4}, - {"KeySleep", 0xA2A5}, - {"KeyWake", 0xA2A6}, - {"DlkControl", 0xA2A7}, - {"DlkStartServer", 0xA2A8}, - {"DlkGetSyncInfo", 0xA2A9}, - {"DlkSetLogEntry", 0xA2AA}, - {"IntlDispatch", 0xA2AB}, - {"SysLibLoad", 0xA2AC}, - {"SndPlaySmf", 0xA2AD}, - {"SndCreateMidiList", 0xA2AE}, - {"AbtShowAbout", 0xA2AF}, - {"MdmDial", 0xA2B0}, - {"MdmHangUp", 0xA2B1}, - {"DmSearchRecord", 0xA2B2}, - {"SysInsertionSort", 0xA2B3}, - {"DmInsertionSort", 0xA2B4}, - {"LstSetTopItem", 0xA2B5}, - {"SclSetScrollBar", 0xA2B6}, - {"SclDrawScrollBar", 0xA2B7}, - {"SclHandleEvent", 0xA2B8}, - {"SysMailboxCreate", 0xA2B9}, - {"SysMailboxDelete", 0xA2BA}, - {"SysMailboxFlush", 0xA2BB}, - {"SysMailboxSend", 0xA2BC}, - {"SysMailboxWait", 0xA2BD}, - {"SysTaskWait", 0xA2BE}, - {"SysTaskWake", 0xA2BF}, - {"SysTaskWaitClr", 0xA2C0}, - {"SysTaskSuspend", 0xA2C1}, - {"SysTaskResume", 0xA2C2}, - {"CategoryCreateList", 0xA2C3}, - {"CategoryFreeList", 0xA2C4}, - {"CategoryEditV20", 0xA2C5}, - {"CategorySelect", 0xA2C6}, - {"DmDeleteCategory", 0xA2C7}, - {"SysEvGroupCreate", 0xA2C8}, - {"SysEvGroupSignal", 0xA2C9}, - {"SysEvGroupRead", 0xA2CA}, - {"SysEvGroupWait", 0xA2CB}, - {"EvtEventAvail", 0xA2CC}, - {"EvtSysEventAvail", 0xA2CD}, - {"StrNCopy", 0xA2CE}, - {"KeySetMask", 0xA2CF}, - {"SelectDay", 0xA2D0}, - {"PrefGetPreference", 0xA2D1}, - {"PrefSetPreference", 0xA2D2}, - {"PrefGetAppPreferences", 0xA2D3}, - {"PrefSetAppPreferences", 0xA2D4}, - {"FrmPointInTitle", 0xA2D5}, - {"StrNCat", 0xA2D6}, - {"MemCmp", 0xA2D7}, - {"TblSetColumnEditIndicator", 0xA2D8}, - {"FntWordWrap", 0xA2D9}, - {"FldGetScrollValues", 0xA2DA}, - {"SysCreateDataBaseList", 0xA2DB}, - {"SysCreatePanelList", 0xA2DC}, - {"DlkDispatchRequest", 0xA2DD}, - {"StrPrintF", 0xA2DE}, - {"StrVPrintF", 0xA2DF}, - {"PrefOpenPreferenceDB", 0xA2E0}, - {"SysGraffitiReferenceDialog", 0xA2E1}, - {"SysKeyboardDialog", 0xA2E2}, - {"FntWordWrapReverseNLines", 0xA2E3}, - {"FntGetScrollValues", 0xA2E4}, - {"TblSetRowStaticHeight", 0xA2E5}, - {"TblHasScrollBar", 0xA2E6}, - {"SclGetScrollBar", 0xA2E7}, - {"FldGetNumberOfBlankLines", 0xA2E8}, - {"SysTicksPerSecond", 0xA2E9}, - {"HwrBacklightV33", 0xA2EA}, - {"DmDatabaseProtect", 0xA2EB}, - {"TblSetBounds", 0xA2EC}, - {"StrNCompare", 0xA2ED}, - {"StrNCaselessCompare", 0xA2EE}, - {"PhoneNumberLookup", 0xA2EF}, - {"FrmSetMenu", 0xA2F0}, - {"EncDigestMD5", 0xA2F1}, - {"DmFindSortPosition", 0xA2F2}, - {"SysBinarySearch", 0xA2F3}, - {"SysErrString", 0xA2F4}, - {"SysStringByIndex", 0xA2F5}, - {"EvtAddUniqueEventToQueue", 0xA2F6}, - {"StrLocalizeNumber", 0xA2F7}, - {"StrDelocalizeNumber", 0xA2F8}, - {"LocGetNumberSeparators", 0xA2F9}, - {"MenuSetActiveMenuRscID", 0xA2FA}, - {"LstScrollList", 0xA2FB}, - {"CategoryInitialize", 0xA2FC}, - {"EncDigestMD4", 0xA2FD}, - {"EncDES", 0xA2FE}, - {"LstGetVisibleItems", 0xA2FF}, - {"WinSetBounds", 0xA300}, - {"CategorySetName", 0xA301}, - {"FldSetInsertionPoint", 0xA302}, - {"FrmSetObjectBounds", 0xA303}, - {"WinSetColors", 0xA304}, - {"FlpDispatch", 0xA305}, - {"FlpEmDispatch", 0xA306}, - {"ExgInit", 0xA307}, - {"ExgConnect", 0xA308}, - {"ExgPut", 0xA309}, - {"ExgGet", 0xA30A}, - {"ExgAccept", 0xA30B}, - {"ExgDisconnect", 0xA30C}, - {"ExgSend", 0xA30D}, - {"ExgReceive", 0xA30E}, - {"ExgRegisterData", 0xA30F}, - {"ExgNotifyReceiveV35", 0xA310}, - {"SysReserved30Trap2", 0xA311}, - {"PrgStartDialogV31", 0xA312}, - {"PrgStopDialog", 0xA313}, - {"PrgUpdateDialog", 0xA314}, - {"PrgHandleEvent", 0xA315}, - {"ImcReadFieldNoSemicolon", 0xA316}, - {"ImcReadFieldQuotablePrintable", 0xA317}, - {"ImcReadPropertyParameter", 0xA318}, - {"ImcSkipAllPropertyParameters", 0xA319}, - {"ImcReadWhiteSpace", 0xA31A}, - {"ImcWriteQuotedPrintable", 0xA31B}, - {"ImcWriteNoSemicolon", 0xA31C}, - {"ImcStringIsAscii", 0xA31D}, - {"TblGetItemFont", 0xA31E}, - {"TblSetItemFont", 0xA31F}, - {"FontSelect", 0xA320}, - {"FntDefineFont", 0xA321}, - {"CategoryEdit", 0xA322}, - {"SysGetOSVersionString", 0xA323}, - {"SysBatteryInfo", 0xA324}, - {"SysUIBusy", 0xA325}, - {"WinValidateHandle", 0xA326}, - {"FrmValidatePtr", 0xA327}, - {"CtlValidatePointer", 0xA328}, - {"WinMoveWindowAddr", 0xA329}, - {"FrmAddSpaceForObject", 0xA32A}, - {"FrmNewForm", 0xA32B}, - {"CtlNewControl", 0xA32C}, - {"FldNewField", 0xA32D}, - {"LstNewList", 0xA32E}, - {"FrmNewLabel", 0xA32F}, - {"FrmNewBitmap", 0xA330}, - {"FrmNewGadget", 0xA331}, - {"FileOpen", 0xA332}, - {"FileClose", 0xA333}, - {"FileDelete", 0xA334}, - {"FileReadLow", 0xA335}, - {"FileWrite", 0xA336}, - {"FileSeek", 0xA337}, - {"FileTell", 0xA338}, - {"FileTruncate", 0xA339}, - {"FileControl", 0xA33A}, - {"FrmActiveState", 0xA33B}, - {"SysGetAppInfo", 0xA33C}, - {"SysGetStackInfo", 0xA33D}, - {"WinScreenMode", 0xA33E}, - {"HwrLCDGetDepthV33", 0xA33F}, - {"HwrGetROMToken", 0xA340}, - {"DbgControl", 0xA341}, - {"ExgDBRead", 0xA342}, - {"ExgDBWrite", 0xA343}, - {"HostControl", 0xA344}, - {"FrmRemoveObject", 0xA345}, - {"SysReserved30Trap1", 0xA346}, - {"ExpansionDispatch", 0xA347}, - {"FileSystemDispatch", 0xA348}, - {"OEMDispatch", 0xA349}, - {"HwrLCDContrastV33", 0xA34A}, - {"SysLCDContrast", 0xA34B}, - {"UIContrastAdjust", 0xA34C}, - {"HwrDockStatus", 0xA34D}, - {"FntWidthToOffset", 0xA34E}, - {"SelectOneTime", 0xA34F}, - {"WinDrawChar", 0xA350}, - {"WinDrawTruncChars", 0xA351}, - {"SysNotifyInit", 0xA352}, - {"SysNotifyRegister", 0xA353}, - {"SysNotifyUnregister", 0xA354}, - {"SysNotifyBroadcast", 0xA355}, - {"SysNotifyBroadcastDeferred", 0xA356}, - {"SysNotifyDatabaseAdded", 0xA357}, - {"SysNotifyDatabaseRemoved", 0xA358}, - {"SysWantEvent", 0xA359}, - {"FtrPtrNew", 0xA35A}, - {"FtrPtrFree", 0xA35B}, - {"FtrPtrResize", 0xA35C}, - {"SysReserved31Trap1", 0xA35D}, - {"HwrNVPrefSet", 0xA35E}, - {"HwrNVPrefGet", 0xA35F}, - {"FlashInit", 0xA360}, - {"FlashCompress", 0xA361}, - {"FlashErase", 0xA362}, - {"FlashProgram", 0xA363}, - {"AlmTimeChange", 0xA364}, - {"ErrAlertCustom", 0xA365}, - {"PrgStartDialog", 0xA366}, - {"SerialDispatch", 0xA367}, - {"HwrBattery", 0xA368}, - {"DmGetDatabaseLockState", 0xA369}, - {"CncGetProfileList", 0xA36A}, - {"CncGetProfileInfo", 0xA36B}, - {"CncAddProfile", 0xA36C}, - {"CncDeleteProfile", 0xA36D}, - {"SndPlaySmfResource", 0xA36E}, - {"MemPtrDataStorage", 0xA36F}, - {"ClipboardAppendItem", 0xA370}, - {"WiCmdV32", 0xA371}, - {"HwrDisplayAttributes", 0xA372}, - {"HwrDisplayDoze", 0xA373}, - {"HwrDisplayPalette", 0xA374}, - {"BltFindIndexes", 0xA375}, - {"BmpGetBits", 0xA376}, - {"BltCopyRectangle", 0xA377}, - {"BltDrawChars", 0xA378}, - {"BltLineRoutine", 0xA379}, - {"BltRectangleRoutine", 0xA37A}, - {"ScrCompress", 0xA37B}, - {"ScrDecompress", 0xA37C}, - {"SysLCDBrightness", 0xA37D}, - {"WinPaintChar", 0xA37E}, - {"WinPaintChars", 0xA37F}, - {"WinPaintBitmap", 0xA380}, - {"WinGetPixel", 0xA381}, - {"WinPaintPixel", 0xA382}, - {"WinDrawPixel", 0xA383}, - {"WinErasePixel", 0xA384}, - {"WinInvertPixel", 0xA385}, - {"WinPaintPixels", 0xA386}, - {"WinPaintLines", 0xA387}, - {"WinPaintLine", 0xA388}, - {"WinPaintRectangle", 0xA389}, - {"WinPaintRectangleFrame", 0xA38A}, - {"WinPaintPolygon", 0xA38B}, - {"WinDrawPolygon", 0xA38C}, - {"WinErasePolygon", 0xA38D}, - {"WinInvertPolygon", 0xA38E}, - {"WinFillPolygon", 0xA38F}, - {"WinPaintArc", 0xA390}, - {"WinDrawArc", 0xA391}, - {"WinEraseArc", 0xA392}, - {"WinInvertArc", 0xA393}, - {"WinFillArc", 0xA394}, - {"WinPushDrawState", 0xA395}, - {"WinPopDrawState", 0xA396}, - {"WinSetDrawMode", 0xA397}, - {"WinSetForeColor", 0xA398}, - {"WinSetBackColor", 0xA399}, - {"WinSetTextColor", 0xA39A}, - {"WinGetPatternType", 0xA39B}, - {"WinSetPatternType", 0xA39C}, - {"WinPalette", 0xA39D}, - {"WinRGBToIndex", 0xA39E}, - {"WinIndexToRGB", 0xA39F}, - {"WinScreenLock", 0xA3A0}, - {"WinScreenUnlock", 0xA3A1}, - {"WinGetBitmap", 0xA3A2}, - {"UIColorInit", 0xA3A3}, - {"UIColorGetTableEntryIndex", 0xA3A4}, - {"UIColorGetTableEntryRGB", 0xA3A5}, - {"UIColorSetTableEntry", 0xA3A6}, - {"UIColorPushTable", 0xA3A7}, - {"UIColorPopTable", 0xA3A8}, - {"CtlNewGraphicControl", 0xA3A9}, - {"TblGetItemPtr", 0xA3AA}, - {"UIBrightnessAdjust", 0xA3AB}, - {"UIPickColor", 0xA3AC}, - {"EvtSetAutoOffTimer", 0xA3AD}, - {"TsmDispatch", 0xA3AE}, - {"OmDispatch", 0xA3AF}, - {"DmOpenDBNoOverlay", 0xA3B0}, - {"DmOpenDBWithLocale", 0xA3B1}, - {"ResLoadConstant", 0xA3B2}, - {"HwrPreDebugInit", 0xA3B3}, - {"HwrResetNMI", 0xA3B4}, - {"HwrResetPWM", 0xA3B5}, - {"KeyBootKeys", 0xA3B6}, - {"DbgSerDrvOpen", 0xA3B7}, - {"DbgSerDrvClose", 0xA3B8}, - {"DbgSerDrvControl", 0xA3B9}, - {"DbgSerDrvStatus", 0xA3BA}, - {"DbgSerDrvWriteChar", 0xA3BB}, - {"DbgSerDrvReadChar", 0xA3BC}, - {"HwrPostDebugInit", 0xA3BD}, - {"HwrIdentifyFeatures", 0xA3BE}, - {"HwrModelSpecificInit", 0xA3BF}, - {"HwrModelInitStage2", 0xA3C0}, - {"HwrInterruptsInit", 0xA3C1}, - {"HwrSoundOn", 0xA3C2}, - {"HwrSoundOff", 0xA3C3}, - {"SysKernelClockTick", 0xA3C4}, - {"MenuEraseMenu", 0xA3C5}, - {"SelectTime", 0xA3C6}, - {"MenuCmdBarAddButton", 0xA3C7}, - {"MenuCmdBarGetButtonData", 0xA3C8}, - {"MenuCmdBarDisplay", 0xA3C9}, - {"HwrGetSilkscreenID", 0xA3CA}, - {"EvtGetSilkscreenAreaList", 0xA3CB}, - {"SysFatalAlertInit", 0xA3CC}, - {"DateTemplateToAscii", 0xA3CD}, - {"SecVerifyPW", 0xA3CE}, - {"SecSelectViewStatus", 0xA3CF}, - {"TblSetColumnMasked", 0xA3D0}, - {"TblSetRowMasked", 0xA3D1}, - {"TblRowMasked", 0xA3D2}, - {"FrmCustomResponseAlert", 0xA3D3}, - {"FrmNewGsi", 0xA3D4}, - {"MenuShowItem", 0xA3D5}, - {"MenuHideItem", 0xA3D6}, - {"MenuAddItem", 0xA3D7}, - {"FrmSetGadgetHandler", 0xA3D8}, - {"CtlSetGraphics", 0xA3D9}, - {"CtlGetSliderValues", 0xA3DA}, - {"CtlSetSliderValues", 0xA3DB}, - {"CtlNewSliderControl", 0xA3DC}, - {"BmpCreate", 0xA3DD}, - {"BmpDelete", 0xA3DE}, - {"BmpCompress", 0xA3DF}, - {"BmpGetColortable", 0xA3E0}, - {"BmpSize", 0xA3E1}, - {"BmpBitsSize", 0xA3E2}, - {"BmpColortableSize", 0xA3E3}, - {"WinCreateBitmapWindow", 0xA3E4}, - {"EvtSetNullEventTick", 0xA3E5}, - {"ExgDoDialog", 0xA3E6}, - {"SysUICleanup", 0xA3E7}, - {"WinSetForeColorRGB", 0xA3E8}, - {"WinSetBackColorRGB", 0xA3E9}, - {"WinSetTextColorRGB", 0xA3EA}, - {"WinGetPixelRGB", 0xA3EB}, - {"HighDensityDispatch", 0xA3EC}, - {"SysReserved40Trap2", 0xA3ED}, - {"SysReserved40Trap3", 0xA3EE}, - {"SysReserved40Trap4", 0xA3EF}, - {"CncMgrDispatch", 0xA3F0}, - {"SysNotifyBroadcastFromInterrupt", 0xA3F1}, - {"EvtWakeupWithoutNilEvent", 0xA3F2}, - {"StrCompareAscii", 0xA3F3}, - {"AccessorDispatch", 0xA3F4}, - {"BltGetPixel", 0xA3F5}, - {"BltPaintPixel", 0xA3F6}, - {"ScrScreenInit", 0xA3F7}, - {"ScrUpdateScreenBitmap", 0xA3F8}, - {"ScrPalette", 0xA3F9}, - {"ScrGetColortable", 0xA3FA}, - {"ScrGetGrayPat", 0xA3FB}, - {"ScrScreenLock", 0xA3FC}, - {"ScrScreenUnlock", 0xA3FD}, - {"FntPrvGetFontList", 0xA3FE}, - {"ExgRegisterDatatype", 0xA3FF}, - {"ExgNotifyReceive", 0xA400}, - {"ExgNotifyGoto", 0xA401}, - {"ExgRequest", 0xA402}, - {"ExgSetDefaultApplication", 0xA403}, - {"ExgGetDefaultApplication", 0xA404}, - {"ExgGetTargetApplication", 0xA405}, - {"ExgGetRegisteredApplications", 0xA406}, - {"ExgGetRegisteredTypes", 0xA407}, - {"ExgNotifyPreview", 0xA408}, - {"ExgControl", 0xA409}, - {"LmDispatch", 0xA40A}, - {"MemGetRomNVParams", 0xA40B}, - {"FntWCharWidth", 0xA40C}, - {"DmFindDatabaseWithTypeCreator", 0xA40D}, - {"SelectTimeZone", 0xA40E}, - {"TimeZoneToAscii", 0xA40F}, - {"StrNCompareAscii", 0xA410}, - {"TimTimeZoneToUTC", 0xA411}, - {"TimUTCToTimeZone", 0xA412}, - {"PhoneNumberLookupCustom", 0xA413}, - {"HwrDebugSelect", 0xA414}, - {"BltRoundedRectangle", 0xA415}, - {"BltRoundedRectangleFill", 0xA416}, - {"WinPrvInitCanvas", 0xA417}, - {"HwrCalcDynamicHeapSize", 0xA418}, - {"HwrDebuggerEnter", 0xA419}, - {"HwrDebuggerExit", 0xA41A}, - {"LstGetTopItem", 0xA41B}, - {"HwrModelInitStage3", 0xA41C}, - {"AttnIndicatorAllow", 0xA41D}, - {"AttnIndicatorAllowed", 0xA41E}, - {"AttnIndicatorEnable", 0xA41F}, - {"AttnIndicatorEnabled", 0xA420}, - {"AttnIndicatorSetBlinkPattern", 0xA421}, - {"AttnIndicatorGetBlinkPattern", 0xA422}, - {"AttnIndicatorTicksTillNextBlink", 0xA423}, - {"AttnIndicatorCheckBlink", 0xA424}, - {"AttnInitialize", 0xA425}, - {"AttnGetAttention", 0xA426}, - {"AttnUpdate", 0xA427}, - {"AttnForgetIt", 0xA428}, - {"AttnGetCounts", 0xA429}, - {"AttnListOpen", 0xA42A}, - {"AttnHandleEvent", 0xA42B}, - {"AttnEffectOfEvent", 0xA42C}, - {"AttnIterate", 0xA42D}, - {"AttnDoSpecialEffects", 0xA42E}, - {"AttnDoEmergencySpecialEffects", 0xA42F}, - {"AttnAllowClose", 0xA430}, - {"AttnReopen", 0xA431}, - {"AttnEnableNotification", 0xA432}, - {"HwrLEDAttributes", 0xA433}, - {"HwrVibrateAttributes", 0xA434}, - {"SecGetPwdHint", 0xA435}, - {"SecSetPwdHint", 0xA436}, - {"HwrFlashWrite", 0xA437}, - {"KeyboardStatusNew", 0xA438}, - {"KeyboardStatusFree", 0xA439}, - {"KbdSetLayout", 0xA43A}, - {"KbdGetLayout", 0xA43B}, - {"KbdSetPosition", 0xA43C}, - {"KbdGetPosition", 0xA43D}, - {"KbdSetShiftState", 0xA43E}, - {"KbdGetShiftState", 0xA43F}, - {"KbdDraw", 0xA440}, - {"KbdErase", 0xA441}, - {"KbdHandleEvent", 0xA442}, - {"OEMDispatch2", 0xA443}, - {"HwrCustom", 0xA444}, - {"FrmGetActiveField", 0xA445}, - {"SndPlaySmfIrregardless", 0xA446}, - {"SndPlaySmfResourceIrregardless", 0xA447}, - {"SndInterruptSmfIrregardless", 0xA448}, - {"UdaMgrDispatch", 0xA449}, - {"PalmPrivate1", 0xA44A}, - {"PalmPrivate2", 0xA44B}, - {"PalmPrivate3", 0xA44C}, - {"PalmPrivate4", 0xA44D}, - {"BmpGetDimensions", 0xA44E}, - {"BmpGetBitDepth", 0xA44F}, - {"BmpGetNextBitmap", 0xA450}, - {"TblGetNumberOfColumns", 0xA451}, - {"TblGetTopRow", 0xA452}, - {"TblSetSelection", 0xA453}, - {"FrmGetObjectIndexFromPtr", 0xA454}, - {"BmpGetSizes", 0xA455}, - {"WinGetBounds", 0xA456}, - {"BltPaintPixels", 0xA457}, - {"FldSetMaxVisibleLines", 0xA458}, - {"ScrDefaultPaletteState", 0xA459}, - {"PceNativeCall", 0xA45A}, - {"SndStreamCreate", 0xA45B}, - {"SndStreamDelete", 0xA45C}, - {"SndStreamStart", 0xA45D}, - {"SndStreamPause", 0xA45E}, - {"SndStreamStop", 0xA45F}, - {"SndStreamSetVolume", 0xA460}, - {"SndStreamGetVolume", 0xA461}, - {"SndPlayResource", 0xA462}, - {"SndStreamSetPan", 0xA463}, - {"SndStreamGetPan", 0xA464}, - {"MultimediaDispatch", 0xA465}, - {"SndStreamCreateExtended", 0xa466}, - {"SndStreamDeviceControl", 0xa467}, - {"BmpCreateVersion3", 0xA468}, - {"ECFixedMul", 0xA469}, - {"ECFixedDiv", 0xA46A}, - {"HALDrawGetSupportedDensity", 0xA46B}, - {"HALRedrawInputArea", 0xA46C}, - {"GrfBeginStroke", 0xA46D}, - {"BmpPrvConvertBitmap", 0xA46E}, - {"SysReservedTrap5", 0xA46F}, - {"PinsDispatch", 0xA470}, - {"SysReservedTrap1", 0xA471}, - {"SysReservedTrap2", 0xA472}, - {"SysReservedTrap3", 0xA473}, - {"SysReservedTrap4", 0xA474}, - {"LastTrapNumber", 0xA475} -}; - -const char* lookupTrap(uint16_t trap){ - uint32_t i; - - for(i = 0; i < sizeof(traps) / sizeof(traps[0]); i++) - if(traps[i].trap == trap) - return traps[i].name; - return "Trap function ID unknown"; -} - -uint16_t reverseLookupTrap(const char* name){ - uint32_t i; - - for(i = 0; i < sizeof(traps) / sizeof(traps[0]); i++) - if(!strcmp(traps[i].name, name)) - return traps[i].trap; - return 0x0000; -} diff --git a/src/debug/trapNames.h b/src/debug/trapNames.h deleted file mode 100755 index e9e7531..0000000 --- a/src/debug/trapNames.h +++ /dev/null @@ -1,1486 +0,0 @@ -#ifndef TRAP_NAMES_H -#define TRAP_NAMES_H - -// ====================================================================== -// Palm OS 1.0 Traps -// ====================================================================== - -#define MemInit 0xA000 -#define MemInitHeapTable 0xA001 -#define MemStoreInit 0xA002 -#define MemCardFormat 0xA003 -#define MemCardInfo 0xA004 -#define MemStoreInfo 0xA005 -#define MemStoreSetInfo 0xA006 -#define MemNumHeaps 0xA007 -#define MemNumRAMHeaps 0xA008 -#define MemHeapID 0xA009 -#define MemHeapPtr 0xA00A -#define MemHeapFreeBytes 0xA00B -#define MemHeapSize 0xA00C -#define MemHeapFlags 0xA00D -#define MemHeapCompact 0xA00E -#define MemHeapInit 0xA00F -#define MemHeapFreeByOwnerID 0xA010 -#define MemChunkNew 0xA011 -#define MemChunkFree 0xA012 -#define MemPtrNew 0xA013 -#define MemPtrRecoverHandle 0xA014 -#define MemPtrFlags 0xA015 -#define MemPtrSize 0xA016 -#define MemPtrOwner 0xA017 -#define MemPtrHeapID 0xA018 -#define MemPtrCardNo 0xA019 -#define MemPtrToLocalID 0xA01A -#define MemPtrSetOwner 0xA01B -#define MemPtrResize 0xA01C -#define MemPtrResetLock 0xA01D -#define MemHandleNew 0xA01E -#define MemHandleLockCount 0xA01F -#define MemHandleToLocalID 0xA020 -#define MemHandleLock 0xA021 -#define MemHandleUnlock 0xA022 -#define MemLocalIDToGlobal 0xA023 -#define MemLocalIDKind 0xA024 -#define MemLocalIDToPtr 0xA025 -#define MemMove 0xA026 -#define MemSet 0xA027 -#define MemStoreSearch 0xA028 -#define SysReserved10Trap1 0xA029 /* "Reserved" trap in Palm OS 1.0 and later (was MemPtrDataStorage) */ - -#define MemKernelInit 0xA02A -#define MemHandleFree 0xA02B -#define MemHandleFlags 0xA02C -#define MemHandleSize 0xA02D -#define MemHandleOwner 0xA02E -#define MemHandleHeapID 0xA02F -#define MemHandleDataStorage 0xA030 -#define MemHandleCardNo 0xA031 -#define MemHandleSetOwner 0xA032 -#define MemHandleResize 0xA033 -#define MemHandleResetLock 0xA034 -#define MemPtrUnlock 0xA035 -#define MemLocalIDToLockedPtr 0xA036 -#define MemSetDebugMode 0xA037 -#define MemHeapScramble 0xA038 -#define MemHeapCheck 0xA039 -#define MemNumCards 0xA03A -#define MemDebugMode 0xA03B -#define MemSemaphoreReserve 0xA03C -#define MemSemaphoreRelease 0xA03D -#define MemHeapDynamic 0xA03E -#define MemNVParams 0xA03F - - -#define DmInit 0xA040 -#define DmCreateDatabase 0xA041 -#define DmDeleteDatabase 0xA042 -#define DmNumDatabases 0xA043 -#define DmGetDatabase 0xA044 -#define DmFindDatabase 0xA045 -#define DmDatabaseInfo 0xA046 -#define DmSetDatabaseInfo 0xA047 -#define DmDatabaseSize 0xA048 -#define DmOpenDatabase 0xA049 -#define DmCloseDatabase 0xA04A -#define DmNextOpenDatabase 0xA04B -#define DmOpenDatabaseInfo 0xA04C -#define DmResetRecordStates 0xA04D -#define DmGetLastErr 0xA04E -#define DmNumRecords 0xA04F -#define DmRecordInfo 0xA050 -#define DmSetRecordInfo 0xA051 -#define DmAttachRecord 0xA052 -#define DmDetachRecord 0xA053 -#define DmMoveRecord 0xA054 -#define DmNewRecord 0xA055 -#define DmRemoveRecord 0xA056 -#define DmDeleteRecord 0xA057 -#define DmArchiveRecord 0xA058 -#define DmNewHandle 0xA059 -#define DmRemoveSecretRecords 0xA05A -#define DmQueryRecord 0xA05B -#define DmGetRecord 0xA05C -#define DmResizeRecord 0xA05D -#define DmReleaseRecord 0xA05E -#define DmGetResource 0xA05F -#define DmGet1Resource 0xA060 -#define DmReleaseResource 0xA061 -#define DmResizeResource 0xA062 -#define DmNextOpenResDatabase 0xA063 -#define DmFindResourceType 0xA064 -#define DmFindResource 0xA065 -#define DmSearchResource 0xA066 -#define DmNumResources 0xA067 -#define DmResourceInfo 0xA068 -#define DmSetResourceInfo 0xA069 -#define DmAttachResource 0xA06A -#define DmDetachResource 0xA06B -#define DmNewResource 0xA06C -#define DmRemoveResource 0xA06D -#define DmGetResourceIndex 0xA06E -#define DmQuickSort 0xA06F -#define DmQueryNextInCategory 0xA070 -#define DmNumRecordsInCategory 0xA071 -#define DmPositionInCategory 0xA072 -#define DmSeekRecordInCategory 0xA073 -#define DmMoveCategory 0xA074 -#define DmOpenDatabaseByTypeCreator 0xA075 -#define DmWrite 0xA076 -#define DmStrCopy 0xA077 -#define DmGetNextDatabaseByTypeCreator 0xA078 -#define DmWriteCheck 0xA079 -#define DmMoveOpenDBContext 0xA07A -#define DmFindRecordByID 0xA07B -#define DmGetAppInfoID 0xA07C -#define DmFindSortPositionV10 0xA07D -#define DmSet 0xA07E -#define DmCreateDatabaseFromImage 0xA07F - -#define DbgSrcMessage 0xA080 -#define DbgMessage 0xA081 -#define DbgGetMessage 0xA082 -#define DbgCommSettings 0xA083 - -#define ErrDisplayFileLineMsg 0xA084 -#define ErrSetJump 0xA085 -#define ErrLongJump 0xA086 -#define ErrThrow 0xA087 -#define ErrExceptionList 0xA088 - -#define SysBroadcastActionCode 0xA089 -#define SysUnimplemented 0xA08A -#define SysColdBoot 0xA08B -#define SysReset 0xA08C -#define SysDoze 0xA08D -#define SysAppLaunch 0xA08E -#define SysAppStartup 0xA08F -#define SysAppExit 0xA090 -#define SysSetA5 0xA091 -#define SysSetTrapAddress 0xA092 -#define SysGetTrapAddress 0xA093 -#define SysTranslateKernelErr 0xA094 -#define SysSemaphoreCreate 0xA095 -#define SysSemaphoreDelete 0xA096 -#define SysSemaphoreWait 0xA097 -#define SysSemaphoreSignal 0xA098 -#define SysTimerCreate 0xA099 -#define SysTimerWrite 0xA09A -#define SysTaskCreate 0xA09B -#define SysTaskDelete 0xA09C -#define SysTaskTrigger 0xA09D -#define SysTaskID 0xA09E -#define SysTaskUserInfoPtr 0xA09F -#define SysTaskDelay 0xA0A0 -#define SysTaskSetTermProc 0xA0A1 -#define SysUILaunch 0xA0A2 -#define SysNewOwnerID 0xA0A3 -#define SysSemaphoreSet 0xA0A4 -#define SysDisableInts 0xA0A5 -#define SysRestoreStatus 0xA0A6 -#define SysUIAppSwitch 0xA0A7 -#define SysCurAppInfoPV20 0xA0A8 -#define SysHandleEvent 0xA0A9 -#define SysInit 0xA0AA -#define SysQSort 0xA0AB -#define SysCurAppDatabase 0xA0AC -#define SysFatalAlert 0xA0AD -#define SysResSemaphoreCreate 0xA0AE -#define SysResSemaphoreDelete 0xA0AF -#define SysResSemaphoreReserve 0xA0B0 -#define SysResSemaphoreRelease 0xA0B1 -#define SysSleep 0xA0B2 -#define SysKeyboardDialogV10 0xA0B3 -#define SysAppLauncherDialog 0xA0B4 -#define SysSetPerformance 0xA0B5 -#define SysBatteryInfoV20 0xA0B6 -#define SysLibInstall 0xA0B7 -#define SysLibRemove 0xA0B8 -#define SysLibTblEntry 0xA0B9 -#define SysLibFind 0xA0BA -#define SysBatteryDialog 0xA0BB -#define SysCopyStringResource 0xA0BC -#define SysKernelInfo 0xA0BD -#define SysLaunchConsole 0xA0BE -#define SysTimerDelete 0xA0BF -#define SysSetAutoOffTime 0xA0C0 -#define SysFormPointerArrayToStrings 0xA0C1 -#define SysRandom 0xA0C2 -#define SysTaskSwitching 0xA0C3 -#define SysTimerRead 0xA0C4 - -#define StrCopy 0xA0C5 -#define StrCat 0xA0C6 -#define StrLen 0xA0C7 -#define StrCompare 0xA0C8 -#define StrIToA 0xA0C9 -#define StrCaselessCompare 0xA0CA -#define StrIToH 0xA0CB -#define StrChr 0xA0CC -#define StrStr 0xA0CD -#define StrAToI 0xA0CE -#define StrToLower 0xA0CF - -#define SerReceiveISP 0xA0D0 - -#define SlkOpen 0xA0D1 -#define SlkClose 0xA0D2 -#define SlkOpenSocket 0xA0D3 -#define SlkCloseSocket 0xA0D4 -#define SlkSocketRefNum 0xA0D5 -#define SlkSocketSetTimeout 0xA0D6 -#define SlkFlushSocket 0xA0D7 -#define SlkSetSocketListener 0xA0D8 -#define SlkSendPacket 0xA0D9 -#define SlkReceivePacket 0xA0DA -#define SlkSysPktDefaultResponse 0xA0DB -#define SlkProcessRPC 0xA0DC - -#define ConPutS 0xA0DD -#define ConGetS 0xA0DE - -#define FplInit 0xA0DF /* Obsolete, here for compatibilty only! */ -#define FplFree 0xA0E0 /* Obsolete, here for compatibilty only! */ -#define FplFToA 0xA0E1 /* Obsolete, here for compatibilty only! */ -#define FplAToF 0xA0E2 /* Obsolete, here for compatibilty only! */ -#define FplBase10Info 0xA0E3 /* Obsolete, here for compatibilty only! */ -#define FplLongToFloat 0xA0E4 /* Obsolete, here for compatibilty only! */ -#define FplFloatToLong 0xA0E5 /* Obsolete, here for compatibilty only! */ -#define FplFloatToULong 0xA0E6 /* Obsolete, here for compatibilty only! */ -#define FplMul 0xA0E7 /* Obsolete, here for compatibilty only! */ -#define FplAdd 0xA0E8 /* Obsolete, here for compatibilty only! */ -#define FplSub 0xA0E9 /* Obsolete, here for compatibilty only! */ -#define FplDiv 0xA0EA /* Obsolete, here for compatibilty only! */ - -#define WinScreenInit 0xA0EB /* was ScrInit */ -#define ScrCopyRectangle 0xA0EC -#define ScrDrawChars 0xA0ED -#define ScrLineRoutine 0xA0EE -#define ScrRectangleRoutine 0xA0EF -#define ScrScreenInfo 0xA0F0 -#define ScrDrawNotify 0xA0F1 -#define ScrSendUpdateArea 0xA0F2 -#define ScrCompressScanLine 0xA0F3 -#define ScrDeCompressScanLine 0xA0F4 - -#define TimGetSeconds 0xA0F5 -#define TimSetSeconds 0xA0F6 -#define TimGetTicks 0xA0F7 -#define TimInit 0xA0F8 -#define TimSetAlarm 0xA0F9 -#define TimGetAlarm 0xA0FA -#define TimHandleInterrupt 0xA0FB -#define TimSecondsToDateTime 0xA0FC -#define TimDateTimeToSeconds 0xA0FD -#define TimAdjust 0xA0FE -#define TimSleep 0xA0FF -#define TimWake 0xA100 - -#define CategoryCreateListV10 0xA101 -#define CategoryFreeListV10 0xA102 -#define CategoryFind 0xA103 -#define CategoryGetName 0xA104 -#define CategoryEditV10 0xA105 -#define CategorySelectV10 0xA106 -#define CategoryGetNext 0xA107 -#define CategorySetTriggerLabel 0xA108 -#define CategoryTruncateName 0xA109 - -#define ClipboardAddItem 0xA10A -#define ClipboardCheckIfItemExist 0xA10B -#define ClipboardGetItem 0xA10C - -#define CtlDrawControl 0xA10D -#define CtlEraseControl 0xA10E -#define CtlHideControl 0xA10F -#define CtlShowControl 0xA110 -#define CtlGetValue 0xA111 -#define CtlSetValue 0xA112 -#define CtlGetLabel 0xA113 -#define CtlSetLabel 0xA114 -#define CtlHandleEvent 0xA115 -#define CtlHitControl 0xA116 -#define CtlSetEnabled 0xA117 -#define CtlSetUsable 0xA118 -#define CtlEnabled 0xA119 - -#define EvtInitialize 0xA11A -#define EvtAddEventToQueue 0xA11B -#define EvtCopyEvent 0xA11C -#define EvtGetEvent 0xA11D -#define EvtGetPen 0xA11E -#define EvtSysInit 0xA11F -#define EvtGetSysEvent 0xA120 -#define EvtProcessSoftKeyStroke 0xA121 -#define EvtGetPenBtnList 0xA122 -#define EvtSetPenQueuePtr 0xA123 -#define EvtPenQueueSize 0xA124 -#define EvtFlushPenQueue 0xA125 -#define EvtEnqueuePenPoint 0xA126 -#define EvtDequeuePenStrokeInfo 0xA127 -#define EvtDequeuePenPoint 0xA128 -#define EvtFlushNextPenStroke 0xA129 -#define EvtSetKeyQueuePtr 0xA12A -#define EvtKeyQueueSize 0xA12B -#define EvtFlushKeyQueue 0xA12C -#define EvtEnqueueKey 0xA12D -#define EvtDequeueKeyEvent 0xA12E -#define EvtWakeup 0xA12F -#define EvtResetAutoOffTimer 0xA130 -#define EvtKeyQueueEmpty 0xA131 -#define EvtEnableGraffiti 0xA132 - -#define FldCopy 0xA133 -#define FldCut 0xA134 -#define FldDrawField 0xA135 -#define FldEraseField 0xA136 -#define FldFreeMemory 0xA137 -#define FldGetBounds 0xA138 -#define FldGetTextPtr 0xA139 -#define FldGetSelection 0xA13A -#define FldHandleEvent 0xA13B -#define FldPaste 0xA13C -#define FldRecalculateField 0xA13D -#define FldSetBounds 0xA13E -#define FldSetText 0xA13F -#define FldGetFont 0xA140 -#define FldSetFont 0xA141 -#define FldSetSelection 0xA142 -#define FldGrabFocus 0xA143 -#define FldReleaseFocus 0xA144 -#define FldGetInsPtPosition 0xA145 -#define FldSetInsPtPosition 0xA146 -#define FldSetScrollPosition 0xA147 -#define FldGetScrollPosition 0xA148 -#define FldGetTextHeight 0xA149 -#define FldGetTextAllocatedSize 0xA14A -#define FldGetTextLength 0xA14B -#define FldScrollField 0xA14C -#define FldScrollable 0xA14D -#define FldGetVisibleLines 0xA14E -#define FldGetAttributes 0xA14F -#define FldSetAttributes 0xA150 -#define FldSendChangeNotification 0xA151 -#define FldCalcFieldHeight 0xA152 -#define FldGetTextHandle 0xA153 -#define FldCompactText 0xA154 -#define FldDirty 0xA155 -#define FldWordWrap 0xA156 -#define FldSetTextAllocatedSize 0xA157 -#define FldSetTextHandle 0xA158 -#define FldSetTextPtr 0xA159 -#define FldGetMaxChars 0xA15A -#define FldSetMaxChars 0xA15B -#define FldSetUsable 0xA15C -#define FldInsert 0xA15D -#define FldDelete 0xA15E -#define FldUndo 0xA15F -#define FldSetDirty 0xA160 -#define FldSendHeightChangeNotification 0xA161 -#define FldMakeFullyVisible 0xA162 - -#define FntGetFont 0xA163 -#define FntSetFont 0xA164 -#define FntGetFontPtr 0xA165 -#define FntBaseLine 0xA166 -#define FntCharHeight 0xA167 -#define FntLineHeight 0xA168 -#define FntAverageCharWidth 0xA169 -#define FntCharWidth 0xA16A -#define FntCharsWidth 0xA16B -#define FntDescenderHeight 0xA16C -#define FntCharsInWidth 0xA16D -#define FntLineWidth 0xA16E - -#define FrmInitForm 0xA16F -#define FrmDeleteForm 0xA170 -#define FrmDrawForm 0xA171 -#define FrmEraseForm 0xA172 -#define FrmGetActiveForm 0xA173 -#define FrmSetActiveForm 0xA174 -#define FrmGetActiveFormID 0xA175 -#define FrmGetUserModifiedState 0xA176 -#define FrmSetNotUserModified 0xA177 -#define FrmGetFocus 0xA178 -#define FrmSetFocus 0xA179 -#define FrmHandleEvent 0xA17A -#define FrmGetFormBounds 0xA17B -#define FrmGetWindowHandle 0xA17C -#define FrmGetFormId 0xA17D -#define FrmGetFormPtr 0xA17E -#define FrmGetNumberOfObjects 0xA17F -#define FrmGetObjectIndex 0xA180 -#define FrmGetObjectId 0xA181 -#define FrmGetObjectType 0xA182 -#define FrmGetObjectPtr 0xA183 -#define FrmHideObject 0xA184 -#define FrmShowObject 0xA185 -#define FrmGetObjectPosition 0xA186 -#define FrmSetObjectPosition 0xA187 -#define FrmGetControlValue 0xA188 -#define FrmSetControlValue 0xA189 -#define FrmGetControlGroupSelection 0xA18A -#define FrmSetControlGroupSelection 0xA18B -#define FrmCopyLabel 0xA18C -#define FrmSetLabel 0xA18D -#define FrmGetLabel 0xA18E -#define FrmSetCategoryLabel 0xA18F -#define FrmGetTitle 0xA190 -#define FrmSetTitle 0xA191 -#define FrmAlert 0xA192 -#define FrmDoDialog 0xA193 -#define FrmCustomAlert 0xA194 -#define FrmHelp 0xA195 -#define FrmUpdateScrollers 0xA196 -#define FrmGetFirstForm 0xA197 -#define FrmVisible 0xA198 -#define FrmGetObjectBounds 0xA199 -#define FrmCopyTitle 0xA19A -#define FrmGotoForm 0xA19B -#define FrmPopupForm 0xA19C -#define FrmUpdateForm 0xA19D -#define FrmReturnToForm 0xA19E -#define FrmSetEventHandler 0xA19F -#define FrmDispatchEvent 0xA1A0 -#define FrmCloseAllForms 0xA1A1 -#define FrmSaveAllForms 0xA1A2 -#define FrmGetGadgetData 0xA1A3 -#define FrmSetGadgetData 0xA1A4 -#define FrmSetCategoryTrigger 0xA1A5 - -#define UIInitialize 0xA1A6 -#define UIReset 0xA1A7 - -#define InsPtInitialize 0xA1A8 -#define InsPtSetLocation 0xA1A9 -#define InsPtGetLocation 0xA1AA -#define InsPtEnable 0xA1AB -#define InsPtEnabled 0xA1AC -#define InsPtSetHeight 0xA1AD -#define InsPtGetHeight 0xA1AE -#define InsPtCheckBlink 0xA1AF - -#define LstSetDrawFunction 0xA1B0 -#define LstDrawList 0xA1B1 -#define LstEraseList 0xA1B2 -#define LstGetSelection 0xA1B3 -#define LstGetSelectionText 0xA1B4 -#define LstHandleEvent 0xA1B5 -#define LstSetHeight 0xA1B6 -#define LstSetSelection 0xA1B7 -#define LstSetListChoices 0xA1B8 -#define LstMakeItemVisible 0xA1B9 -#define LstGetNumberOfItems 0xA1BA -#define LstPopupList 0xA1BB -#define LstSetPosition 0xA1BC - -#define MenuInit 0xA1BD -#define MenuDispose 0xA1BE -#define MenuHandleEvent 0xA1BF -#define MenuDrawMenu 0xA1C0 -#define MenuEraseStatus 0xA1C1 -#define MenuGetActiveMenu 0xA1C2 -#define MenuSetActiveMenu 0xA1C3 - -#define RctSetRectangle 0xA1C4 -#define RctCopyRectangle 0xA1C5 -#define RctInsetRectangle 0xA1C6 -#define RctOffsetRectangle 0xA1C7 -#define RctPtInRectangle 0xA1C8 -#define RctGetIntersection 0xA1C9 - -#define TblDrawTable 0xA1CA -#define TblEraseTable 0xA1CB -#define TblHandleEvent 0xA1CC -#define TblGetItemBounds 0xA1CD -#define TblSelectItem 0xA1CE -#define TblGetItemInt 0xA1CF -#define TblSetItemInt 0xA1D0 -#define TblSetItemStyle 0xA1D1 -#define TblUnhighlightSelection 0xA1D2 -#define TblSetRowUsable 0xA1D3 -#define TblGetNumberOfRows 0xA1D4 -#define TblSetCustomDrawProcedure 0xA1D5 -#define TblSetRowSelectable 0xA1D6 -#define TblRowSelectable 0xA1D7 -#define TblSetLoadDataProcedure 0xA1D8 -#define TblSetSaveDataProcedure 0xA1D9 -#define TblGetBounds 0xA1DA -#define TblSetRowHeight 0xA1DB -#define TblGetColumnWidth 0xA1DC -#define TblGetRowID 0xA1DD -#define TblSetRowID 0xA1DE -#define TblMarkRowInvalid 0xA1DF -#define TblMarkTableInvalid 0xA1E0 -#define TblGetSelection 0xA1E1 -#define TblInsertRow 0xA1E2 -#define TblRemoveRow 0xA1E3 -#define TblRowInvalid 0xA1E4 -#define TblRedrawTable 0xA1E5 -#define TblRowUsable 0xA1E6 -#define TblReleaseFocus 0xA1E7 -#define TblEditing 0xA1E8 -#define TblGetCurrentField 0xA1E9 -#define TblSetColumnUsable 0xA1EA -#define TblGetRowHeight 0xA1EB -#define TblSetColumnWidth 0xA1EC -#define TblGrabFocus 0xA1ED -#define TblSetItemPtr 0xA1EE -#define TblFindRowID 0xA1EF -#define TblGetLastUsableRow 0xA1F0 -#define TblGetColumnSpacing 0xA1F1 -#define TblFindRowData 0xA1F2 -#define TblGetRowData 0xA1F3 -#define TblSetRowData 0xA1F4 -#define TblSetColumnSpacing 0xA1F5 - -#define WinCreateWindow 0xA1F6 -#define WinCreateOffscreenWindow 0xA1F7 -#define WinDeleteWindow 0xA1F8 -#define WinInitializeWindow 0xA1F9 -#define WinAddWindow 0xA1FA -#define WinRemoveWindow 0xA1FB -#define WinSetActiveWindow 0xA1FC -#define WinSetDrawWindow 0xA1FD -#define WinGetDrawWindow 0xA1FE -#define WinGetActiveWindow 0xA1FF -#define WinGetDisplayWindow 0xA200 -#define WinGetFirstWindow 0xA201 -#define WinEnableWindow 0xA202 -#define WinDisableWindow 0xA203 -#define WinGetWindowFrameRect 0xA204 -#define WinDrawWindowFrame 0xA205 -#define WinEraseWindow 0xA206 -#define WinSaveBits 0xA207 -#define WinRestoreBits 0xA208 -#define WinCopyRectangle 0xA209 -#define WinScrollRectangle 0xA20A -#define WinGetDisplayExtent 0xA20B -#define WinGetWindowExtent 0xA20C -#define WinDisplayToWindowPt 0xA20D -#define WinWindowToDisplayPt 0xA20E -#define WinGetClip 0xA20F -#define WinSetClip 0xA210 -#define WinResetClip 0xA211 -#define WinClipRectangle 0xA212 -#define WinDrawLine 0xA213 -#define WinDrawGrayLine 0xA214 -#define WinEraseLine 0xA215 -#define WinInvertLine 0xA216 -#define WinFillLine 0xA217 -#define WinDrawRectangle 0xA218 -#define WinEraseRectangle 0xA219 -#define WinInvertRectangle 0xA21A -#define WinDrawRectangleFrame 0xA21B -#define WinDrawGrayRectangleFrame 0xA21C -#define WinEraseRectangleFrame 0xA21D -#define WinInvertRectangleFrame 0xA21E -#define WinGetFramesRectangle 0xA21F -#define WinDrawChars 0xA220 -#define WinEraseChars 0xA221 -#define WinInvertChars 0xA222 -#define WinGetPattern 0xA223 -#define WinSetPattern 0xA224 -#define WinSetUnderlineMode 0xA225 -#define WinDrawBitmap 0xA226 -#define WinModal 0xA227 -#define WinGetDrawWindowBounds 0xA228 -#define WinFillRectangle 0xA229 -#define WinDrawInvertedChars 0xA22A - -#define PrefOpenPreferenceDBV10 0xA22B -#define PrefGetPreferences 0xA22C -#define PrefSetPreferences 0xA22D -#define PrefGetAppPreferencesV10 0xA22E -#define PrefSetAppPreferencesV10 0xA22F - -#define SndInit 0xA230 -#define SndSetDefaultVolume 0xA231 -#define SndGetDefaultVolume 0xA232 -#define SndDoCmd 0xA233 -#define SndPlaySystemSound 0xA234 - -#define AlmInit 0xA235 -#define AlmCancelAll 0xA236 -#define AlmAlarmCallback 0xA237 -#define AlmSetAlarm 0xA238 -#define AlmGetAlarm 0xA239 -#define AlmDisplayAlarm 0xA23A -#define AlmEnableNotification 0xA23B - -#define HwrGetRAMMapping 0xA23C -#define HwrMemWritable 0xA23D -#define HwrMemReadable 0xA23E -#define HwrDoze 0xA23F -#define HwrSleep 0xA240 -#define HwrWake 0xA241 -#define HwrSetSystemClock 0xA242 -#define HwrSetCPUDutyCycle 0xA243 -#define HwrDisplayInit 0xA244 /* Before OS 3.5, this trap a.k.a. HwrLCDInit */ -#define HwrDisplaySleep 0xA245 /* Before OS 3.5, this trap a.k.a. HwrLCDSleep, */ -#define HwrTimerInit 0xA246 -#define HwrCursorV33 0xA247 /* This trap obsoleted for OS 3.5 and later */ -#define HwrBatteryLevel 0xA248 -#define HwrDelay 0xA249 -#define HwrEnableDataWrites 0xA24A -#define HwrDisableDataWrites 0xA24B -#define HwrLCDBaseAddrV33 0xA24C /* This trap obsoleted for OS 3.5 and later */ -#define HwrDisplayDrawBootScreen 0xA24D /* Before OS 3.5, this trap a.k.a. HwrLCDDrawBitmap */ -#define HwrTimerSleep 0xA24E -#define HwrTimerWake 0xA24F -#define HwrDisplayWake 0xA250 /* Before OS 3.5, this trap a.k.a. HwrLCDWake */ -#define HwrIRQ1Handler 0xA251 -#define HwrIRQ2Handler 0xA252 -#define HwrIRQ3Handler 0xA253 -#define HwrIRQ4Handler 0xA254 -#define HwrIRQ5Handler 0xA255 -#define HwrIRQ6Handler 0xA256 -#define HwrDockSignals 0xA257 -#define HwrPluggedIn 0xA258 - -#define Crc16CalcBlock 0xA259 - -#define SelectDayV10 0xA25A -#define SelectTimeV33 0xA25B - -#define DayDrawDaySelector 0xA25C -#define DayHandleEvent 0xA25D -#define DayDrawDays 0xA25E -#define DayOfWeek 0xA25F -#define DaysInMonth 0xA260 -#define DayOfMonth 0xA261 - -#define DateDaysToDate 0xA262 -#define DateToDays 0xA263 -#define DateAdjust 0xA264 -#define DateSecondsToDate 0xA265 -#define DateToAscii 0xA266 -#define DateToDOWDMFormat 0xA267 -#define TimeToAscii 0xA268 - -#define Find 0xA269 -#define FindStrInStr 0xA26A -#define FindSaveMatch 0xA26B -#define FindGetLineBounds 0xA26C -#define FindDrawHeader 0xA26D - -#define PenOpen 0xA26E -#define PenClose 0xA26F -#define PenGetRawPen 0xA270 -#define PenCalibrate 0xA271 -#define PenRawToScreen 0xA272 -#define PenScreenToRaw 0xA273 -#define PenResetCalibration 0xA274 -#define PenSleep 0xA275 -#define PenWake 0xA276 - -#define ResLoadForm 0xA277 -#define ResLoadMenu 0xA278 - -#define FtrInit 0xA279 -#define FtrUnregister 0xA27A -#define FtrGet 0xA27B -#define FtrSet 0xA27C -#define FtrGetByIndex 0xA27D - -#define GrfInit 0xA27E -#define GrfFree 0xA27F -#define GrfGetState 0xA280 -#define GrfSetState 0xA281 -#define GrfFlushPoints 0xA282 -#define GrfAddPoint 0xA283 -#define GrfInitState 0xA284 -#define GrfCleanState 0xA285 -#define GrfMatch 0xA286 -#define GrfGetMacro 0xA287 -#define GrfFilterPoints 0xA288 -#define GrfGetNumPoints 0xA289 -#define GrfGetPoint 0xA28A -#define GrfFindBranch 0xA28B -#define GrfMatchGlyph 0xA28C -#define GrfGetGlyphMapping 0xA28D -#define GrfGetMacroName 0xA28E -#define GrfDeleteMacro 0xA28F -#define GrfAddMacro 0xA290 -#define GrfGetAndExpandMacro 0xA291 -#define GrfProcessStroke 0xA292 -#define GrfFieldChange 0xA293 - -#define GetCharSortValue 0xA294 -#define GetCharAttr 0xA295 -#define GetCharCaselessValue 0xA296 - -#define PwdExists 0xA297 -#define PwdVerify 0xA298 -#define PwdSet 0xA299 -#define PwdRemove 0xA29A - -#define GsiInitialize 0xA29B -#define GsiSetLocation 0xA29C -#define GsiEnable 0xA29D -#define GsiEnabled 0xA29E -#define GsiSetShiftState 0xA29F - -#define KeyInit 0xA2A0 -#define KeyHandleInterrupt 0xA2A1 -#define KeyCurrentState 0xA2A2 -#define KeyResetDoubleTap 0xA2A3 -#define KeyRates 0xA2A4 -#define KeySleep 0xA2A5 -#define KeyWake 0xA2A6 - -#define DlkControl 0xA2A7 /* was CmBroadcast */ - -#define DlkStartServer 0xA2A8 -#define DlkGetSyncInfo 0xA2A9 -#define DlkSetLogEntry 0xA2AA - -#define IntlDispatch 0xA2AB /* REUSED IN v3.1 (was PsrInit in 1.0, removed in 2.0) */ -#define SysLibLoad 0xA2AC /* REUSED IN v2.0 (was PsrClose) */ -#define SndPlaySmf 0xA2AD /* REUSED IN v3.0 (was PsrGetCommand in 1.0, removed in 2.0) */ -#define SndCreateMidiList 0xA2AE /* REUSED IN v3.0 (was PsrSendReply in 1.0, removed in 2.0) */ - -#define AbtShowAbout 0xA2AF - -#define MdmDial 0xA2B0 -#define MdmHangUp 0xA2B1 - -#define DmSearchRecord 0xA2B2 - -#define SysInsertionSort 0xA2B3 -#define DmInsertionSort 0xA2B4 - -#define LstSetTopItem 0xA2B5 - -// ====================================================================== -// Palm OS 2.X traps Palm Pilot and 2.0 Upgrade Card -// ====================================================================== - -#define SclSetScrollBar 0xA2B6 -#define SclDrawScrollBar 0xA2B7 -#define SclHandleEvent 0xA2B8 - -#define SysMailboxCreate 0xA2B9 -#define SysMailboxDelete 0xA2BA -#define SysMailboxFlush 0xA2BB -#define SysMailboxSend 0xA2BC -#define SysMailboxWait 0xA2BD - -#define SysTaskWait 0xA2BE -#define SysTaskWake 0xA2BF -#define SysTaskWaitClr 0xA2C0 -#define SysTaskSuspend 0xA2C1 -#define SysTaskResume 0xA2C2 - -#define CategoryCreateList 0xA2C3 -#define CategoryFreeList 0xA2C4 -#define CategoryEditV20 0xA2C5 -#define CategorySelect 0xA2C6 - -#define DmDeleteCategory 0xA2C7 - -#define SysEvGroupCreate 0xA2C8 -#define SysEvGroupSignal 0xA2C9 -#define SysEvGroupRead 0xA2CA -#define SysEvGroupWait 0xA2CB - -#define EvtEventAvail 0xA2CC -#define EvtSysEventAvail 0xA2CD -#define StrNCopy 0xA2CE - -#define KeySetMask 0xA2CF - -#define SelectDay 0xA2D0 - -#define PrefGetPreference 0xA2D1 -#define PrefSetPreference 0xA2D2 -#define PrefGetAppPreferences 0xA2D3 -#define PrefSetAppPreferences 0xA2D4 - -#define FrmPointInTitle 0xA2D5 - -#define StrNCat 0xA2D6 - -#define MemCmp 0xA2D7 - -#define TblSetColumnEditIndicator 0xA2D8 - -#define FntWordWrap 0xA2D9 - -#define FldGetScrollValues 0xA2DA - -#define SysCreateDataBaseList 0xA2DB -#define SysCreatePanelList 0xA2DC - -#define DlkDispatchRequest 0xA2DD - -#define StrPrintF 0xA2DE -#define StrVPrintF 0xA2DF - -#define PrefOpenPreferenceDB 0xA2E0 - -#define SysGraffitiReferenceDialog 0xA2E1 - -#define SysKeyboardDialog 0xA2E2 - -#define FntWordWrapReverseNLines 0xA2E3 -#define FntGetScrollValues 0xA2E4 - -#define TblSetRowStaticHeight 0xA2E5 -#define TblHasScrollBar 0xA2E6 - -#define SclGetScrollBar 0xA2E7 - -#define FldGetNumberOfBlankLines 0xA2E8 - -#define SysTicksPerSecond 0xA2E9 -#define HwrBacklightV33 0xA2EA /* This trap obsoleted for OS 3.5 and later */ -#define DmDatabaseProtect 0xA2EB - -#define TblSetBounds 0xA2EC - -#define StrNCompare 0xA2ED -#define StrNCaselessCompare 0xA2EE - -#define PhoneNumberLookup 0xA2EF - -#define FrmSetMenu 0xA2F0 - -#define EncDigestMD5 0xA2F1 - -#define DmFindSortPosition 0xA2F2 - -#define SysBinarySearch 0xA2F3 -#define SysErrString 0xA2F4 -#define SysStringByIndex 0xA2F5 - -#define EvtAddUniqueEventToQueue 0xA2F6 - -#define StrLocalizeNumber 0xA2F7 -#define StrDelocalizeNumber 0xA2F8 -#define LocGetNumberSeparators 0xA2F9 - -#define MenuSetActiveMenuRscID 0xA2FA - -#define LstScrollList 0xA2FB - -#define CategoryInitialize 0xA2FC - -#define EncDigestMD4 0xA2FD -#define EncDES 0xA2FE - -#define LstGetVisibleItems 0xA2FF - -#define WinSetBounds 0xA300 - -#define CategorySetName 0xA301 - -#define FldSetInsertionPoint 0xA302 - -#define FrmSetObjectBounds 0xA303 - -#define WinSetColors 0xA304 - -#define FlpDispatch 0xA305 -#define FlpEmDispatch 0xA306 - -// ====================================================================== -// Palm OS 3.0 traps Palm III and 3.0 Upgrade Card -// ====================================================================== - -#define ExgInit 0xA307 -#define ExgConnect 0xA308 -#define ExgPut 0xA309 -#define ExgGet 0xA30A -#define ExgAccept 0xA30B -#define ExgDisconnect 0xA30C -#define ExgSend 0xA30D -#define ExgReceive 0xA30E -#define ExgRegisterData 0xA30F -#define ExgNotifyReceiveV35 0xA310 -#define SysReserved30Trap2 0xA311 /* "Reserved" trap in Palm OS 3.0 and later (was ExgControl) */ - -#define PrgStartDialogV31 0xA312 /* Updated in v3.2 */ -#define PrgStopDialog 0xA313 -#define PrgUpdateDialog 0xA314 -#define PrgHandleEvent 0xA315 - -#define ImcReadFieldNoSemicolon 0xA316 -#define ImcReadFieldQuotablePrintable 0xA317 -#define ImcReadPropertyParameter 0xA318 -#define ImcSkipAllPropertyParameters 0xA319 -#define ImcReadWhiteSpace 0xA31A -#define ImcWriteQuotedPrintable 0xA31B -#define ImcWriteNoSemicolon 0xA31C -#define ImcStringIsAscii 0xA31D - -#define TblGetItemFont 0xA31E -#define TblSetItemFont 0xA31F - -#define FontSelect 0xA320 -#define FntDefineFont 0xA321 - -#define CategoryEdit 0xA322 - -#define SysGetOSVersionString 0xA323 -#define SysBatteryInfo 0xA324 -#define SysUIBusy 0xA325 - -#define WinValidateHandle 0xA326 -#define FrmValidatePtr 0xA327 -#define CtlValidatePointer 0xA328 -#define WinMoveWindowAddr 0xA329 -#define FrmAddSpaceForObject 0xA32A -#define FrmNewForm 0xA32B -#define CtlNewControl 0xA32C -#define FldNewField 0xA32D -#define LstNewList 0xA32E -#define FrmNewLabel 0xA32F -#define FrmNewBitmap 0xA330 -#define FrmNewGadget 0xA331 - -#define FileOpen 0xA332 -#define FileClose 0xA333 -#define FileDelete 0xA334 -#define FileReadLow 0xA335 -#define FileWrite 0xA336 -#define FileSeek 0xA337 -#define FileTell 0xA338 -#define FileTruncate 0xA339 -#define FileControl 0xA33A - -#define FrmActiveState 0xA33B - -#define SysGetAppInfo 0xA33C -#define SysGetStackInfo 0xA33D - -#define WinScreenMode 0xA33E /* was ScrDisplayMode */ -#define HwrLCDGetDepthV33 0xA33F /* This trap obsoleted for OS 3.5 and later */ -#define HwrGetROMToken 0xA340 - -#define DbgControl 0xA341 - -#define ExgDBRead 0xA342 -#define ExgDBWrite 0xA343 - -#define HostControl 0xA344 /* Renamed from SysGremlins, functionality generalized */ -#define FrmRemoveObject 0xA345 - -#define SysReserved30Trap1 0xA346 /* "Reserved" trap in Palm OS 3.0 and later (was SysReserved1) */ - -// NOTE: The following two traps are reserved for future mgrs -// that may or may not be present on any particular device. -// They are NOT present by default; code must check first! -#define ExpansionDispatch 0xA347 /* Reserved for ExpansionMgr (was SysReserved2) */ -#define FileSystemDispatch 0xA348 /* Reserved for FileSystemMgr (was SysReserved3) */ - -#define OEMDispatch 0xA349 /* OEM trap in Palm OS 3.0 and later trap table (formerly SysReserved4) */ - -// ====================================================================== -// Palm OS 3.1 traps Palm IIIx and Palm V -// ====================================================================== - -#define HwrLCDContrastV33 0xA34A /* This trap obsoleted for OS 3.5 and later */ -#define SysLCDContrast 0xA34B -#define UIContrastAdjust 0xA34C /* Renamed from ContrastAdjust */ -#define HwrDockStatus 0xA34D - -#define FntWidthToOffset 0xA34E -#define SelectOneTime 0xA34F -#define WinDrawChar 0xA350 -#define WinDrawTruncChars 0xA351 - -#define SysNotifyInit 0xA352 /* Notification Manager traps */ -#define SysNotifyRegister 0xA353 -#define SysNotifyUnregister 0xA354 -#define SysNotifyBroadcast 0xA355 -#define SysNotifyBroadcastDeferred 0xA356 -#define SysNotifyDatabaseAdded 0xA357 -#define SysNotifyDatabaseRemoved 0xA358 - -#define SysWantEvent 0xA359 - -#define FtrPtrNew 0xA35A -#define FtrPtrFree 0xA35B -#define FtrPtrResize 0xA35C - -#define SysReserved31Trap1 0xA35D /* "Reserved" trap in Palm OS 3.1 and later (was SysReserved5) */ - -// ====================================================================== -// Palm OS 3.2 & 3.3 traps Palm VII (3.2) and Fall '99 Palm OS Flash Update (3.3) -// ====================================================================== - -#define HwrNVPrefSet 0xA35E /* mapped to FlashParmsWrite */ -#define HwrNVPrefGet 0xA35F /* mapped to FlashParmsRead */ -#define FlashInit 0xA360 -#define FlashCompress 0xA361 -#define FlashErase 0xA362 -#define FlashProgram 0xA363 - -#define AlmTimeChange 0xA364 -#define ErrAlertCustom 0xA365 -#define PrgStartDialog 0xA366 /* New version of PrgStartDialogV31 */ - -#define SerialDispatch 0xA367 -#define HwrBattery 0xA368 -#define DmGetDatabaseLockState 0xA369 - -#define CncGetProfileList 0xA36A -#define CncGetProfileInfo 0xA36B -#define CncAddProfile 0xA36C -#define CncDeleteProfile 0xA36D - -#define SndPlaySmfResource 0xA36E - -#define MemPtrDataStorage 0xA36F /* Never actually installed until now. */ - -#define ClipboardAppendItem 0xA370 - -#define WiCmdV32 0xA371 /* Code moved to INetLib; trap obsolete */ - -// ====================================================================== -// Palm OS 3.5 traps Palm IIIc and other products -// ====================================================================== - -// HAL Display-layer new traps -#define HwrDisplayAttributes 0xA372 -#define HwrDisplayDoze 0xA373 -#define HwrDisplayPalette 0xA374 - -// Screen driver new traps -#define BltFindIndexes 0xA375 -#define BmpGetBits 0xA376 /* was BltGetBitsAddr */ -#define BltCopyRectangle 0xA377 -#define BltDrawChars 0xA378 -#define BltLineRoutine 0xA379 -#define BltRectangleRoutine 0xA37A - -// ScrUtils new traps -#define ScrCompress 0xA37B -#define ScrDecompress 0xA37C - -// System Manager new traps -#define SysLCDBrightness 0xA37D - -// WindowColor new traps -#define WinPaintChar 0xA37E -#define WinPaintChars 0xA37F -#define WinPaintBitmap 0xA380 -#define WinGetPixel 0xA381 -#define WinPaintPixel 0xA382 -#define WinDrawPixel 0xA383 -#define WinErasePixel 0xA384 -#define WinInvertPixel 0xA385 -#define WinPaintPixels 0xA386 -#define WinPaintLines 0xA387 -#define WinPaintLine 0xA388 -#define WinPaintRectangle 0xA389 -#define WinPaintRectangleFrame 0xA38A -#define WinPaintPolygon 0xA38B -#define WinDrawPolygon 0xA38C -#define WinErasePolygon 0xA38D -#define WinInvertPolygon 0xA38E -#define WinFillPolygon 0xA38F -#define WinPaintArc 0xA390 -#define WinDrawArc 0xA391 -#define WinEraseArc 0xA392 -#define WinInvertArc 0xA393 -#define WinFillArc 0xA394 -#define WinPushDrawState 0xA395 -#define WinPopDrawState 0xA396 -#define WinSetDrawMode 0xA397 -#define WinSetForeColor 0xA398 -#define WinSetBackColor 0xA399 -#define WinSetTextColor 0xA39A -#define WinGetPatternType 0xA39B -#define WinSetPatternType 0xA39C -#define WinPalette 0xA39D -#define WinRGBToIndex 0xA39E -#define WinIndexToRGB 0xA39F -#define WinScreenLock 0xA3A0 -#define WinScreenUnlock 0xA3A1 -#define WinGetBitmap 0xA3A2 - -// UIColor new traps -#define UIColorInit 0xA3A3 -#define UIColorGetTableEntryIndex 0xA3A4 -#define UIColorGetTableEntryRGB 0xA3A5 -#define UIColorSetTableEntry 0xA3A6 -#define UIColorPushTable 0xA3A7 -#define UIColorPopTable 0xA3A8 - -// misc cleanup and API additions - -#define CtlNewGraphicControl 0xA3A9 - -#define TblGetItemPtr 0xA3AA - -#define UIBrightnessAdjust 0xA3AB -#define UIPickColor 0xA3AC - -#define EvtSetAutoOffTimer 0xA3AD - -// Misc int'l/overlay support. -#define TsmDispatch 0xA3AE -#define OmDispatch 0xA3AF -#define DmOpenDBNoOverlay 0xA3B0 -#define DmOpenDBWithLocale 0xA3B1 -#define ResLoadConstant 0xA3B2 - -// new boot-time SmallROM HAL additions -#define HwrPreDebugInit 0xA3B3 -#define HwrResetNMI 0xA3B4 -#define HwrResetPWM 0xA3B5 - -#define KeyBootKeys 0xA3B6 - -#define DbgSerDrvOpen 0xA3B7 -#define DbgSerDrvClose 0xA3B8 -#define DbgSerDrvControl 0xA3B9 -#define DbgSerDrvStatus 0xA3BA -#define DbgSerDrvWriteChar 0xA3BB -#define DbgSerDrvReadChar 0xA3BC - -// new boot-time BigROM HAL additions -#define HwrPostDebugInit 0xA3BD -#define HwrIdentifyFeatures 0xA3BE -#define HwrModelSpecificInit 0xA3BF -#define HwrModelInitStage2 0xA3C0 -#define HwrInterruptsInit 0xA3C1 - -#define HwrSoundOn 0xA3C2 -#define HwrSoundOff 0xA3C3 - -// Kernel clock tick routine -#define SysKernelClockTick 0xA3C4 - -// MenuEraseMenu is exposed as of PalmOS 3.5, but there are -// no public interfaces for it yet. Perhaps in a later release. -#define MenuEraseMenu 0xA3C5 - -#define SelectTime 0xA3C6 - -// Menu Command Bar traps -#define MenuCmdBarAddButton 0xA3C7 -#define MenuCmdBarGetButtonData 0xA3C8 -#define MenuCmdBarDisplay 0xA3C9 - -// Silkscreen info -#define HwrGetSilkscreenID 0xA3CA -#define EvtGetSilkscreenAreaList 0xA3CB - -#define SysFatalAlertInit 0xA3CC -#define DateTemplateToAscii 0xA3CD - -// New traps dealing with masking private records -#define SecVerifyPW 0xA3CE -#define SecSelectViewStatus 0xA3CF -#define TblSetColumnMasked 0xA3D0 -#define TblSetRowMasked 0xA3D1 -#define TblRowMasked 0xA3D2 - -// New form trap for dialogs with text entry field -#define FrmCustomResponseAlert 0xA3D3 -#define FrmNewGsi 0xA3D4 - -// New dynamic menu functions -#define MenuShowItem 0xA3D5 -#define MenuHideItem 0xA3D6 -#define MenuAddItem 0xA3D7 - -// New form traps for "smart gadgets" -#define FrmSetGadgetHandler 0xA3D8 - -// More new control functions -#define CtlSetGraphics 0xA3D9 -#define CtlGetSliderValues 0xA3DA -#define CtlSetSliderValues 0xA3DB -#define CtlNewSliderControl 0xA3DC - -// Bitmap manager functions -#define BmpCreate 0xA3DD -#define BmpDelete 0xA3DE -#define BmpCompress 0xA3DF -// BmpGetBits defined in Screen driver traps -#define BmpGetColortable 0xA3E0 -#define BmpSize 0xA3E1 -#define BmpBitsSize 0xA3E2 -#define BmpColortableSize 0xA3E3 - -// extra window namager -#define WinCreateBitmapWindow 0xA3E4 - -// Ask for a null event sooner (replaces a macro which Poser hated) -#define EvtSetNullEventTick 0xA3E5 - -// Exchange manager call to allow apps to select destination categories -#define ExgDoDialog 0xA3E6 - -// this call will remove temporary UI like popup lists -#define SysUICleanup 0xA3E7 - -// The following 4 traps were "Reserved" traps, present only in SOME post-release builds of Palm OS 3.5 -#define WinSetForeColorRGB 0xA3E8 -#define WinSetBackColorRGB 0xA3E9 -#define WinSetTextColorRGB 0xA3EA -#define WinGetPixelRGB 0xA3EB - -// ====================================================================== -// Palm OS 4.0 Traps -// ====================================================================== - -#define HighDensityDispatch 0xA3EC -#define SysReserved40Trap2 0xA3ED -#define SysReserved40Trap3 0xA3EE -#define SysReserved40Trap4 0xA3EF - -// New Trap selector added for New Connection Mgr API -#define CncMgrDispatch 0xA3F0 - -// new trap for notify from interrupt, implemented in SysEvtMgr.c -#define SysNotifyBroadcastFromInterrupt 0xA3F1 - -// new trap for waking the UI without generating a null event -#define EvtWakeupWithoutNilEvent 0xA3F2 - -// new trap for doing stable, fast, 7-bit string compare -#define StrCompareAscii 0xA3F3 - -// New trap for accessors available thru PalmOS glue -#define AccessorDispatch 0xA3F4 - -#define BltGetPixel 0xA3F5 -#define BltPaintPixel 0xA3F6 - -#define ScrScreenInit 0xA3F7 -#define ScrUpdateScreenBitmap 0xA3F8 -#define ScrPalette 0xA3F9 -#define ScrGetColortable 0xA3FA -#define ScrGetGrayPat 0xA3FB -#define ScrScreenLock 0xA3FC -#define ScrScreenUnlock 0xA3FD - -#define FntPrvGetFontList 0xA3FE - -// Exchange manager functions -#define ExgRegisterDatatype 0xA3FF -#define ExgNotifyReceive 0xA400 -#define ExgNotifyGoto 0xA401 -#define ExgRequest 0xA402 -#define ExgSetDefaultApplication 0xA403 -#define ExgGetDefaultApplication 0xA404 -#define ExgGetTargetApplication 0xA405 -#define ExgGetRegisteredApplications 0xA406 -#define ExgGetRegisteredTypes 0xA407 -#define ExgNotifyPreview 0xA408 -#define ExgControl 0xA409 - -// 04/30/00 CS - New Locale Manager handles access to region-specific info like date formats -#define LmDispatch 0xA40A - -// 05/10/00 kwk - New Memory Manager trap for retrieving ROM NVParam values (sys use only) -#define MemGetRomNVParams 0xA40B - -// 05/12/00 kwk - Safe character width Font Mgr call -#define FntWCharWidth 0xA40C - -// 05/17/00 kwk - Faster DmFindDatabase -#define DmFindDatabaseWithTypeCreator 0xA40D - -// New Trap selectors added for time zone picker API -#define SelectTimeZone 0xA40E -#define TimeZoneToAscii 0xA40F - -// 08/18/00 kwk - trap for doing stable, fast, 7-bit string compare. -// 08/21/00 kwk - moved here in place of SelectDaylightSavingAdjustment. -#define StrNCompareAscii 0xA410 - -// New Trap selectors added for time zone conversion API -#define TimTimeZoneToUTC 0xA411 -#define TimUTCToTimeZone 0xA412 - -// New trap implemented in PhoneLookup.c -#define PhoneNumberLookupCustom 0xA413 - -// new trap for selecting debugger path. -#define HwrDebugSelect 0xA414 - -#define BltRoundedRectangle 0xA415 -#define BltRoundedRectangleFill 0xA416 -#define WinPrvInitCanvas 0xA417 - -#define HwrCalcDynamicHeapSize 0xA418 -#define HwrDebuggerEnter 0xA419 -#define HwrDebuggerExit 0xA41A - -#define LstGetTopItem 0xA41B - -#define HwrModelInitStage3 0xA41C - -// 06/21/00 peter - New Attention Manager -#define AttnIndicatorAllow 0xA41D -#define AttnIndicatorAllowed 0xA41E -#define AttnIndicatorEnable 0xA41F -#define AttnIndicatorEnabled 0xA420 -#define AttnIndicatorSetBlinkPattern 0xA421 -#define AttnIndicatorGetBlinkPattern 0xA422 -#define AttnIndicatorTicksTillNextBlink 0xA423 -#define AttnIndicatorCheckBlink 0xA424 -#define AttnInitialize 0xA425 -#define AttnGetAttention 0xA426 -#define AttnUpdate 0xA427 -#define AttnForgetIt 0xA428 -#define AttnGetCounts 0xA429 -#define AttnListOpen 0xA42A -#define AttnHandleEvent 0xA42B -#define AttnEffectOfEvent 0xA42C -#define AttnIterate 0xA42D -#define AttnDoSpecialEffects 0xA42E -#define AttnDoEmergencySpecialEffects 0xA42F -#define AttnAllowClose 0xA430 -#define AttnReopen 0xA431 -#define AttnEnableNotification 0xA432 -#define HwrLEDAttributes 0xA433 -#define HwrVibrateAttributes 0xA434 - -// Trap for getting and setting the device password hint. -#define SecGetPwdHint 0xA435 -#define SecSetPwdHint 0xA436 - -#define HwrFlashWrite 0xA437 - -#define KeyboardStatusNew 0xA438 -#define KeyboardStatusFree 0xA439 -#define KbdSetLayout 0xA43A -#define KbdGetLayout 0xA43B -#define KbdSetPosition 0xA43C -#define KbdGetPosition 0xA43D -#define KbdSetShiftState 0xA43E -#define KbdGetShiftState 0xA43F -#define KbdDraw 0xA440 -#define KbdErase 0xA441 -#define KbdHandleEvent 0xA442 - -#define OEMDispatch2 0xA443 - -#define HwrCustom 0xA444 - -// 08/28/00 kwk - Trap for getting form's active field. -#define FrmGetActiveField 0xA445 - -// 9/18/00 rkr - Added for playing sounds regardless of interruptible flag -#define SndPlaySmfIrregardless 0xA446 -#define SndPlaySmfResourceIrregardless 0xA447 -#define SndInterruptSmfIrregardless 0xA448 - -// 10/14/00 ABa: UDA manager -#define UdaMgrDispatch 0xA449 - -// WK: private traps for PalmOS -#define PalmPrivate1 0xA44A -#define PalmPrivate2 0xA44B -#define PalmPrivate3 0xA44C -#define PalmPrivate4 0xA44D - -// 11/07/00 tlw: Added accessors -#define BmpGetDimensions 0xA44E -#define BmpGetBitDepth 0xA44F -#define BmpGetNextBitmap 0xA450 -#define TblGetNumberOfColumns 0xA451 -#define TblGetTopRow 0xA452 -#define TblSetSelection 0xA453 -#define FrmGetObjectIndexFromPtr 0xA454 - -// 11/10/00 acs -#define BmpGetSizes 0xA455 - -#define WinGetBounds 0xA456 - -#define BltPaintPixels 0xA457 - -// 11/22/00 bob -#define FldSetMaxVisibleLines 0xA458 - -// 01/09/01 acs -#define ScrDefaultPaletteState 0xA459 - -// ====================================================================== -// Palm OS 5.0 Traps -// No new traps were added for 4.1, though 4.1 SC (see below) added some. -// ====================================================================== - -// 11/16/01 bob -#define PceNativeCall 0xA45A - -// ====================================================================== -// Palm OS 5.1 Traps -// ====================================================================== - -// 12/04/01 lrt -#define SndStreamCreate 0xA45B -#define SndStreamDelete 0xA45C -#define SndStreamStart 0xA45D -#define SndStreamPause 0xA45E -#define SndStreamStop 0xA45F -#define SndStreamSetVolume 0xA460 -#define SndStreamGetVolume 0xA461 -#define SndPlayResource 0xA462 -#define SndStreamSetPan 0xA463 -#define SndStreamGetPan 0xA464 - -// 04/12/02 jed -#define MultimediaDispatch 0xA465 - -// TRAPS ABOVE THIS POINT CAN NOT CHANGE BECAUSE THEY HAVE -// BEEN RELEASED TO CUSTOMERS IN SHIPPING ROMS AND SDKS. -// (MOVE THIS COMMENT DOWN WHENEVER THE "NEXT" RELEASE OCCURS.) - -// ====================================================================== -// Palm OS 5.1.1 Traps -// ====================================================================== - -// 08/02/02 mne -#define SndStreamCreateExtended 0xA466 -#define SndStreamDeviceControl 0xA467 - -// ====================================================================== -// Palm OS 4.2SC (Simplified Chinese) Traps -// These were added to an older 68K-based version of Palm OS to support -// QVGA displays. -// ====================================================================== - -// 09/23/02 acs & bob -#define BmpCreateVersion3 0xA468 -#define ECFixedMul 0xA469 -#define ECFixedDiv 0xA46A -#define HALDrawGetSupportedDensity 0xA46B -#define HALRedrawInputArea 0xA46C -#define GrfBeginStroke 0xA46D -#define BmpPrvConvertBitmap 0xA46E - -// ====================================================================== -// Palm OS 5.x Traps -// These were added for new features or extensions for 5.x -// ====================================================================== -#define NavSelector 0xA46F - - -// 12/11/02 grant -#define PinsDispatch 0xA470 - -// ====================================================================== -// Palm OS 5.3 Traps -// These were added for new features or extensions for 5.2. Currently -// they aren't implemented by any version of Palm OS released by -// PalmSource, but are reserved for future implementation. -// ====================================================================== -#define SysReservedTrap1 0xA471 -#define SysReservedTrap2 0xA472 -#define SysReservedTrap3 0xA473 -#define SysReservedTrap4 0xA474 - - -#define DmSync 0xA475 -#define DmSyncDatabase 0xA476 - -#endif diff --git a/src/emulator.c b/src/emulator.c index 586f320..add480f 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -13,7 +13,6 @@ #include "sdCard.h" #include "silkscreen.h" #include "portability.h" -#include "debug/sandbox.h" #if defined(EMU_SUPPORT_PALM_OS5) #include "tungstenT3Bus.h" #include "pxa260/pxa260.h" @@ -78,6 +77,29 @@ void (*palmSerialDataFlush)(void);//called by the emulator to delete all da void (*palmGetRtcFromHost)(uint8_t* writeBack);//[0] = hours, [1] = minutes, [2] = seconds +static void patchOsRom(uint32_t address, char* patch){ + uint32_t offset; + uint32_t patchBytes = strlen(patch) / 2;//1 char per nibble + uint32_t swapBegin = address & 0xFFFFFFFE; + uint32_t swapSize = patchBytes / sizeof(uint16_t) + 1; + char conv[5] = "0xXX"; + +#if defined(EMU_SUPPORT_PALM_OS5) + if(!palmEmulatingTungstenT3) +#endif + swap16BufferIfLittle(&palmRom[swapBegin], swapSize); + for(offset = 0; offset < patchBytes; offset++){ + conv[2] = patch[offset * 2]; + conv[3] = patch[offset * 2 + 1]; + palmRom[address + offset] = strtol(conv, NULL, 0); + } +#if defined(EMU_SUPPORT_PALM_OS5) + if(!palmEmulatingTungstenT3) +#endif + swap16BufferIfLittle(&palmRom[swapBegin], swapSize); +} + + uint32_t emulatorInit(uint8_t emulatedDevice, uint8_t* palmRomData, uint32_t palmRomSize, uint8_t* palmBootloaderData, uint32_t palmBootloaderSize, bool syncRtc, bool allowInvalidBehavior){ if(emulatorInitialized) return EMU_ERROR_RESOURCE_LOCKED; @@ -136,11 +158,9 @@ uint32_t emulatorInit(uint8_t emulatedDevice, uint8_t* palmRomData, uint32_t pal //initialize components, I dont think theres much in a Tungsten T3 pxa260Framebuffer = palmFramebuffer; blip_set_rates(palmAudioResampler, DBVZ_AUDIO_MAX_CLOCK_RATE, AUDIO_SAMPLE_RATE); - sandboxInit(); - sandboxSetCpuArch(SANDBOX_CPU_ARCH_ARMV5); - //TODO:remove this - sandboxCommand(SANDBOX_CMD_PATCH_OS, NULL); + patchOsRom(0x333EC6, "0000");//blocks out the slot driver + patchOsRom(0x205C, "0000A0E1");//blocks idle loop jump with NOP //reset everything emulatorSoftReset(); @@ -196,8 +216,6 @@ uint32_t emulatorInit(uint8_t emulatedDevice, uint8_t* palmRomData, uint32_t pal //initialize components blip_set_rates(palmAudioResampler, DBVZ_AUDIO_MAX_CLOCK_RATE, AUDIO_SAMPLE_RATE); - sandboxInit(); - sandboxSetCpuArch(SANDBOX_CPU_ARCH_M68K); //reset everything emulatorSoftReset(); @@ -261,7 +279,6 @@ void emulatorSoftReset(void){ tps65010Reset(); tsc2101Reset(true); w86l488Reset(); - sandboxReset(); } else{ #endif @@ -270,7 +287,6 @@ void emulatorSoftReset(void){ ads7846Reset(); pdiUsbD12Reset(); dbvzReset(); - sandboxReset(); //sdCardReset() should not be called here, the SD card does not have a reset line and should only be reset by a power cycle #if defined(EMU_SUPPORT_PALM_OS5) } @@ -318,7 +334,6 @@ uint32_t emulatorGetStateSize(void){ #if defined(EMU_SUPPORT_PALM_OS5) } #endif - size += sandboxStateSize(); size += sizeof(uint8_t) * 7;//palmMisc size += sizeof(uint32_t) * 4;//palmEmuFeatures.(src/dst/size/value) size += sizeof(uint64_t);//palmSdCard.command @@ -394,10 +409,6 @@ bool emulatorSaveState(uint8_t* data, uint32_t size){ } #endif - //sandbox, does nothing when disabled - sandboxSaveState(data + offset); - offset += sandboxStateSize(); - //misc writeStateValue8(data + offset, palmMisc.greenLed); offset += sizeof(uint8_t); @@ -522,10 +533,6 @@ bool emulatorLoadState(uint8_t* data, uint32_t size){ } #endif - //sandbox, does nothing when disabled - sandboxLoadState(data + offset); - offset += sandboxStateSize(); - //misc palmMisc.greenLed = readStateValue8(data + offset); offset += sizeof(uint8_t); @@ -614,7 +621,7 @@ bool emulatorSaveRam(uint8_t* data, uint32_t size){ } else{ #endif - if(size < palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE) + if(size < (palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE)) return false; memcpy(data, palmRam, palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE); @@ -636,7 +643,7 @@ bool emulatorLoadRam(uint8_t* data, uint32_t size){ } else{ #endif - if(size < palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE) + if(size < (palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE)) return false; memcpy(palmRam, data, palmEmulatingM500 ? M500_RAM_SIZE : M515_RAM_SIZE); @@ -799,10 +806,6 @@ void emulatorRunFrame(void){ #if defined(EMU_SUPPORT_PALM_OS5) } #endif - -#if defined(EMU_SANDBOX) - sandboxOnFrameRun(); -#endif } void emulatorSkipFrame(void){ @@ -820,8 +823,4 @@ void emulatorSkipFrame(void){ #if defined(EMU_SUPPORT_PALM_OS5) } #endif - -#if defined(EMU_SANDBOX) - sandboxOnFrameRun(); -#endif } diff --git a/src/emulator.h b/src/emulator.h index 53234b3..525dfbb 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -22,7 +22,6 @@ extern "C" { //define EMU_BIG_ENDIAN on big endian systems //define EMU_HAVE_FILE_LAUNCHER to enable launching files from the host system //to enable degguging define EMU_DEBUG, all options below do nothing unless EMU_DEBUG is defined -//to enable sandbox debugging define EMU_SANDBOX //to enable memory access logging define EMU_SANDBOX_LOG_MEMORY_ACCESSES //to enable opcode level debugging define EMU_SANDBOX_OPCODE_LEVEL_DEBUG //to enable flow control logging define EMU_SANDBOX_LOG_JUMPS, EMU_SANDBOX_OPCODE_LEVEL_DEBUG must also be defined for this to work diff --git a/src/flx68000.c b/src/flx68000.c index 9d2692e..c222064 100755 --- a/src/flx68000.c +++ b/src/flx68000.c @@ -32,7 +32,7 @@ void flx68000PcLongJump(uint32_t newPc){ break; case DBVZ_CHIP_REGISTERS: - //needed for when EMU_NO_SAFETY is set and a function is run in the sandbox + //needed for when EMU_NO_SAFETY is set and a function is run in the launcher dataBufferHost = (uintptr_t)dbvzReg; dataBufferGuest = DBVZ_BANK_ADDRESS(DBVZ_START_BANK(newPc)); windowSize = DBVZ_REG_SIZE; diff --git a/src/m5XXBus.c b/src/m5XXBus.c index eab0491..7f8992a 100644 --- a/src/m5XXBus.c +++ b/src/m5XXBus.c @@ -8,7 +8,6 @@ #include "flx68000.h" #include "sed1376.h" #include "pdiUsbD12.h" -#include "debug/sandbox.h" uint8_t dbvzBankType[DBVZ_TOTAL_MEMORY_BANKS]; @@ -117,10 +116,6 @@ uint8_t m68k_read_memory_8(uint32_t address){ return 0x00; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 8, false, 0); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return romRead8(address); @@ -157,10 +152,6 @@ uint16_t m68k_read_memory_16(uint32_t address){ return 0x0000; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 16, false, 0); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return romRead16(address); @@ -197,10 +188,6 @@ uint32_t m68k_read_memory_32(uint32_t address){ return 0x00000000; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 32, false, 0); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return romRead32(address); @@ -237,10 +224,6 @@ void m68k_write_memory_8(uint32_t address, uint8_t value){ return; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 8, true, value); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return; @@ -281,10 +264,6 @@ void m68k_write_memory_16(uint32_t address, uint16_t value){ return; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 16, true, value); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return; @@ -325,10 +304,6 @@ void m68k_write_memory_32(uint32_t address, uint32_t value){ return; #endif -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_LOG_MEMORY_ACCESSES) - sandboxOnMemoryAccess(address, 32, true, value); -#endif - switch(addressType){ case DBVZ_CHIP_A0_ROM: return; diff --git a/src/m68k/m68kconf.h b/src/m68k/m68kconf.h index 364c21e..f7c0c77 100755 --- a/src/m68k/m68kconf.h +++ b/src/m68k/m68kconf.h @@ -133,12 +133,8 @@ /* If ON, CPU will call the instruction hook callback before every * instruction. */ -#if defined(EMU_DEBUG) && defined(EMU_SANDBOX) && defined(EMU_SANDBOX_OPCODE_LEVEL_DEBUG) -#define M68K_INSTRUCTION_HOOK OPT_SPECIFY_HANDLER -#else #define M68K_INSTRUCTION_HOOK OPT_OFF -#endif -#define M68K_INSTRUCTION_CALLBACK() sandboxOnOpcodeRun() +#define M68K_INSTRUCTION_CALLBACK() on_opcode_run() /* If ON, the CPU will emulate the 4-byte prefetch queue of a real 68000. diff --git a/src/m68k/m68kexternal.h b/src/m68k/m68kexternal.h index 8821c50..363c22c 100755 --- a/src/m68k/m68kexternal.h +++ b/src/m68k/m68kexternal.h @@ -6,6 +6,5 @@ int32_t interruptAcknowledge(int32_t intLevel); void emulatorSoftReset(void); void flx68000PcLongJump(uint32_t newPc); -void sandboxOnOpcodeRun(void); #endif diff --git a/src/makefile.all b/src/makefile.all index 7026360..38335c6 100644 --- a/src/makefile.all +++ b/src/makefile.all @@ -8,7 +8,6 @@ EMU_SOURCES_C := $(EMU_PATH)/emulator.c \ $(EMU_PATH)/pdiUsbD12.c \ $(EMU_PATH)/sdCard.c \ $(EMU_PATH)/silkscreen.c \ - $(EMU_PATH)/debug/sandbox.c \ $(EMU_PATH)/audio/blip_buf.c \ $(EMU_PATH)/m68k/m68kops.c \ $(EMU_PATH)/m68k/m68kopnz.c \