diff --git a/libretroBuildSystem/libretro.c b/libretroBuildSystem/libretro.c index d247a21..635710f 100644 --- a/libretroBuildSystem/libretro.c +++ b/libretroBuildSystem/libretro.c @@ -206,12 +206,9 @@ bool retro_load_game(const struct retro_game_info *info) emulatorSetRtc(timeInfo->tm_yday, timeInfo->tm_hour, timeInfo->tm_min, timeInfo->tm_sec); if(info != NULL){ - uint32_t prcSuccess = emulatorInstallPrcPdb(info->data, info->size); - //pretend to pass for now - /* + uint32_t prcSuccess = emulatorInstallPrcPdb((uint8_t*)info->data, info->size); if(prcSuccess != EMU_ERROR_NONE) return false; - */ } return true; @@ -241,13 +238,13 @@ size_t retro_serialize_size(void) bool retro_serialize(void *data, size_t size) { - emulatorSaveState(data); + emulatorSaveState((uint8_t*)data); return true; } bool retro_unserialize(const void *data, size_t size) { - emulatorLoadState(data); + emulatorLoadState((uint8_t*)data); return true; } diff --git a/libretroBuildSystem/libretro_params.h b/libretroBuildSystem/libretro_params.h index 9c5eebc..0bd95d4 100644 --- a/libretroBuildSystem/libretro_params.h +++ b/libretroBuildSystem/libretro_params.h @@ -8,7 +8,7 @@ #define LR_SOUNDRATE 44100.0 -#define LR_CORENAME "PersianTree" +#define LR_CORENAME "Mu" #define LR_LIBVERSION "0.86+" #define LR_VALIDFILEEXT "prc|pdb" #define LR_NEEDFILEPATH false diff --git a/src/emulator.c b/src/emulator.c index f12d860..7ee6878 100644 --- a/src/emulator.c +++ b/src/emulator.c @@ -27,10 +27,11 @@ uint8_t palmRam[RAM_SIZE]; uint8_t palmRom[ROM_SIZE]; uint8_t palmReg[REG_SIZE]; -input_t palmIo; +input_t palmInput; sdcard_t palmSdCard; misc_hw_t palmMisc; uint16_t palmFramebuffer[160 * (160 + 60)];//really 160*160, the extra pixels are the silkscreened digitizer area +uint32_t palmSpecialFeatures; double palmCrystalCycles;//how many cycles before toggling the 32.768 kHz crystal double palmCycleCounter;//can be greater then 0 if too many cycles where run double palmClockMultiplier;//used by the emulator to overclock the emulated palm @@ -56,20 +57,20 @@ void emulatorInit(uint8_t* palmRomDump, uint32_t specialFeatures){ resetAddressSpace(); sed1376Reset(); - //interfaces - palmIo.buttonUp = false; - palmIo.buttonDown = false; - palmIo.buttonLeft = false;//only used in hybrid mode - palmIo.buttonRight = false;//only used in hybrid mode - palmIo.buttonCalender = false; - palmIo.buttonAddress = false; - palmIo.buttonTodo = false; - palmIo.buttonNotes = false; - palmIo.buttonPower = false; - palmIo.buttonContrast = false; - palmIo.touchscreenX = 0; - palmIo.touchscreenY = 0; - palmIo.touchscreenTouched = false; + //input + palmInput.buttonUp = false; + palmInput.buttonDown = false; + palmInput.buttonLeft = false;//only used in hybrid mode + palmInput.buttonRight = false;//only used in hybrid mode + palmInput.buttonCalender = false; + palmInput.buttonAddress = false; + palmInput.buttonTodo = false; + palmInput.buttonNotes = false; + palmInput.buttonPower = false; + palmInput.buttonContrast = false; + palmInput.touchscreenX = 0; + palmInput.touchscreenY = 0; + palmInput.touchscreenTouched = false; palmSdCard.getSdCardChunk = NULL; palmSdCard.setSdCardChunk = NULL; @@ -77,11 +78,14 @@ void emulatorInit(uint8_t* palmRomDump, uint32_t specialFeatures){ palmSdCard.inserted = false; palmMisc.powerButtonLed = false; + palmMisc.alarmLed = false; + palmMisc.lcdOn = false; palmMisc.batteryCharging = false; palmMisc.batteryLevel = 100; //config palmClockMultiplier = (specialFeatures & FEATURE_FAST_CPU) ? 2.0 : 1.0;//Overclock disabled + palmSpecialFeatures = specialFeatures; //start running m68k_pulse_reset(); @@ -100,7 +104,7 @@ void emulatorSetRtc(uint32_t days, uint32_t hours, uint32_t minutes, uint32_t se } uint32_t emulatorGetStateSize(){ - return m68k_context_size() + RAM_SIZE + REG_SIZE + TOTAL_MEMORY_BANKS + sizeof(double) * 5 + 1; + return m68k_context_size() + RAM_SIZE + REG_SIZE + sizeof(misc_hw_t) + TOTAL_MEMORY_BANKS + sizeof(double) * 5 + 1; } void emulatorSaveState(uint8_t* data){ @@ -113,15 +117,20 @@ void emulatorSaveState(uint8_t* data){ offset += REG_SIZE; memcpy(data + offset, bankType, TOTAL_MEMORY_BANKS); offset += TOTAL_MEMORY_BANKS; + memcpy(data + offset, &palmMisc, sizeof(misc_hw_t)); + offset += sizeof(misc_hw_t); + //input is not part of savestates + memcpy(data + offset, &palmSpecialFeatures, sizeof(uint32_t)); + offset += sizeof(uint32_t); memcpy(data + offset, &palmCrystalCycles, sizeof(double)); offset += sizeof(double); memcpy(data + offset, &palmCycleCounter, sizeof(double)); offset += sizeof(double); memcpy(data + offset, &clk32Counter, sizeof(uint32_t)); + offset += sizeof(uint32_t); + memcpy(data + offset, &timer1CycleCounter, sizeof(double)); offset += sizeof(double); - memcpy(data + offset, &timer1CycleCounter, sizeof(uint32_t)); - offset += sizeof(double); - memcpy(data + offset, &timer2CycleCounter, sizeof(uint32_t)); + memcpy(data + offset, &timer2CycleCounter, sizeof(double)); offset += sizeof(double); data[offset] = lowPowerStopActive; offset += 1; @@ -137,15 +146,20 @@ void emulatorLoadState(uint8_t* data){ offset += REG_SIZE; memcpy(bankType, data + offset, TOTAL_MEMORY_BANKS); offset += TOTAL_MEMORY_BANKS; + memcpy(&palmMisc, data + offset, sizeof(misc_hw_t)); + offset += sizeof(misc_hw_t); + //input is not part of savestates + memcpy(&palmSpecialFeatures, data + offset, sizeof(uint32_t)); + offset += sizeof(uint32_t); memcpy(&palmCrystalCycles, data + offset, sizeof(double)); offset += sizeof(double); memcpy(&palmCycleCounter, data + offset, sizeof(double)); offset += sizeof(double); - memcpy(&clk32Counter, data + offset, sizeof(double)); + memcpy(&clk32Counter, data + offset, sizeof(uint32_t)); + offset += sizeof(uint32_t); + memcpy(&timer1CycleCounter, data + offset, sizeof(double)); offset += sizeof(double); - memcpy(&timer1CycleCounter, data + offset, sizeof(uint32_t)); - offset += sizeof(double); - memcpy(&timer2CycleCounter, data + offset, sizeof(uint32_t)); + memcpy(&timer2CycleCounter, data + offset, sizeof(double)); offset += sizeof(double); lowPowerStopActive = data[offset]; offset += 1; @@ -154,7 +168,9 @@ void emulatorLoadState(uint8_t* data){ } uint32_t emulatorInstallPrcPdb(uint8_t* data, uint32_t size){ - return EMU_ERROR_NOT_IMPLEMENTED; + //pretend to pass for now + //return EMU_ERROR_NOT_IMPLEMENTED; + return EMU_ERROR_NONE; } void emulateFrame(){ diff --git a/src/emulator.h b/src/emulator.h index de11f2f..bd1f05b 100644 --- a/src/emulator.h +++ b/src/emulator.h @@ -40,10 +40,15 @@ typedef struct{ typedef struct{ bool powerButtonLed; + bool alarmLed; + bool lcdOn; bool batteryCharging; uint8_t batteryLevel; }misc_hw_t; +//compatiblity +#define CAST_TO_BOOL(x) ((x) != 0)//if bool is typedefed to uint8_t and a 0x100 or above value is passed as a bool it will always be false because of the implicit cast, otherwise this will just be optimized out + //special features, these make the emulator inaccurate in a good way, but still inaccurate and are therefore optional #define ACCURATE 0x00000000//no hacks/addons #define INACCURATE_RAM_HUGE 0x00000001//128 mb ram @@ -89,7 +94,7 @@ typedef struct{ extern uint8_t palmRam[]; extern uint8_t palmRom[]; extern uint8_t palmReg[]; -extern input_t palmIo; +extern input_t palmInput; extern sdcard_t palmSdCard; extern misc_hw_t palmMisc; extern uint16_t palmFramebuffer[]; diff --git a/src/hardwareRegisters.c b/src/hardwareRegisters.c index 34884ca..b275a6a 100644 --- a/src/hardwareRegisters.c +++ b/src/hardwareRegisters.c @@ -61,6 +61,8 @@ static inline void checkPortDInts(){ uint8_t portDValue = 0x00;//ports always read the chip pins even if they are set to output uint8_t portDpolarity = registerArrayRead8(PDPOL); uint8_t portDIrqEnable = registerArrayRead8(PDIRQEN); + uint8_t portDKeyboardEnable = registerArrayRead8(PDKBEN); + uint8_t portDDirInputs = ~registerArrayRead8(PDDIR); uint8_t portDIrqPins = ~registerArrayRead8(PDSEL); portDValue |= 0x80/*battery not dead bit*/; @@ -71,17 +73,17 @@ static inline void checkPortDInts(){ if((requestedRow & 0x20) == 0){ //kbd row 0 - portDValue |= (!palmIo.buttonCalender | (!palmIo.buttonAddress << 1) | (!palmIo.buttonTodo << 2) | (!palmIo.buttonNotes << 3)) ^ portDpolarity; + portDValue |= (!palmInput.buttonCalender | (!palmInput.buttonAddress << 1) | (!palmInput.buttonTodo << 2) | (!palmInput.buttonNotes << 3)) ^ portDpolarity; } if((requestedRow & 0x40) == 0){ //kbd row 1 - portDValue |= (!palmIo.buttonUp | (!palmIo.buttonDown << 1)) ^ portDpolarity; + portDValue |= (!palmInput.buttonUp | (!palmInput.buttonDown << 1)) ^ portDpolarity; } if((requestedRow & 0x80) == 0){ //kbd row 2 - portDValue |= (!palmIo.buttonPower | (!palmIo.buttonContrast << 1) | (!palmIo.buttonAddress << 3)) ^ portDpolarity; + portDValue |= (!palmInput.buttonPower | (!palmInput.buttonContrast << 1) | (!palmInput.buttonAddress << 3)) ^ portDpolarity; } if(portDIrqEnable & portDValue & 0x01){ @@ -124,6 +126,10 @@ static inline void checkPortDInts(){ setIprIsrBit(INT_IRQ6); } + if(portDKeyboardEnable & portDDirInputs & portDValue){ + setIprIsrBit(INT_KB); + } + checkInterrupts(); } @@ -140,17 +146,17 @@ static inline uint8_t getPortDValue(){ if((requestedRow & 0x20) == 0){ //kbd row 0 - portDValue |= (!palmIo.buttonCalender | (!palmIo.buttonAddress << 1) | (!palmIo.buttonTodo << 2) | (!palmIo.buttonNotes << 3)) ^ portDpolarity; + portDValue |= (!palmInput.buttonCalender | (!palmInput.buttonAddress << 1) | (!palmInput.buttonTodo << 2) | (!palmInput.buttonNotes << 3)) ^ portDpolarity; } if((requestedRow & 0x40) == 0){ //kbd row 1 - portDValue |= (!palmIo.buttonUp | (!palmIo.buttonDown << 1)) ^ portDpolarity; + portDValue |= (!palmInput.buttonUp | (!palmInput.buttonDown << 1)) ^ portDpolarity; } if((requestedRow & 0x80) == 0){ //kbd row 2 - portDValue |= (!palmIo.buttonPower | (!palmIo.buttonContrast << 1) | (!palmIo.buttonAddress << 3)) ^ portDpolarity; + portDValue |= (!palmInput.buttonPower | (!palmInput.buttonContrast << 1) | (!palmInput.buttonAddress << 3)) ^ portDpolarity; } return portDValue; @@ -561,16 +567,16 @@ void clk32(){ } bool cpuIsOn(){ - return !((registerArrayRead16(PLLCR) & 0x0008) != 0 || lowPowerStopActive); + return !CAST_TO_BOOL((registerArrayRead16(PLLCR) & 0x0008) != 0 || lowPowerStopActive); } bool registersAreXXFFMapped(){ - return (registerArrayRead8(SCR) & 0x04) != 0; + return CAST_TO_BOOL(registerArrayRead8(SCR) & 0x04); } bool sed1376ClockConnected(){ //this is the clock output pin for the sed1376, if its disabled so is the lcd controller - return (registerArrayRead8(PFSEL) & 0x04) == 0; + return !CAST_TO_BOOL(registerArrayRead8(PFSEL) & 0x04); } int interruptAcknowledge(int intLevel){ @@ -705,6 +711,7 @@ void setHwRegister8(unsigned int address, unsigned int value){ address &= 0x00000FFF; switch(address){ + case SCR: if((value & 0x04) != (registerArrayRead8(SCR) & 0x04)){ if(value & 0x04) @@ -715,15 +722,19 @@ void setHwRegister8(unsigned int address, unsigned int value){ registerArrayWrite8(SCR, value); break; - case PFSEL: - //this is the clock output pin for the sed1376, if its disabled so is the lcd controller - setSed1376Attached(value & 0x04); - registerArrayWrite8(PFSEL, value); + case IVR: + //write without the bottom 3 bits + registerArrayWrite8(address, value & 0xF8); break; - case PKDIR: - case PKDATA: - checkPortDInts(); + case PBSEL: + case PBDIR: + case PBDATA: + registerArrayWrite8(address, value); + if(registerArrayRead8(PBDATA) & 0x40 && registerArrayRead8(PBSEL) & 0x40 && registerArrayRead8(PBDIR) & 0x40) + palmMisc.alarmLed = true; + else + palmMisc.alarmLed = false; break; case PDSEL: @@ -738,23 +749,39 @@ void setHwRegister8(unsigned int address, unsigned int value){ registerArrayWrite8(address, value & 0x0F); break; - case IVR: - //write without the bottom 3 bits - registerArrayWrite8(address, value & 0xF8); + case PFSEL: + //this is the clock output pin for the sed1376, if its disabled so is the lcd controller + setSed1376Attached(CAST_TO_BOOL(value & 0x04)); + registerArrayWrite8(PFSEL, value); break; case PGSEL: + case PGDIR: + case PGDATA: + //port g also does spi stuff, unemulated so far + //write without the top 2 bits + registerArrayWrite8(address, value & 0x3F); + if(registerArrayRead8(PGDATA) & 0x02 && registerArrayRead8(PGSEL) & 0x02 && registerArrayRead8(PGDIR) & 0x02) + palmMisc.lcdOn = true; + else + palmMisc.lcdOn = false; + break; + + case PKDIR: + case PKDATA: + registerArrayWrite8(address, value); + checkPortDInts(); + break; + case PMSEL: case PGPUEN: case PMPUEN: - case PGDIR: case PMDIR: //write without the top 2 bits registerArrayWrite8(address, value & 0x3F); break; //select between gpio or special function - case PBSEL: case PCSEL: case PESEL: case PJSEL: @@ -762,7 +789,6 @@ void setHwRegister8(unsigned int address, unsigned int value){ //direction select case PADIR: - case PBDIR: case PCDIR: case PDDIR: case PEDIR: @@ -778,6 +804,16 @@ void setHwRegister8(unsigned int address, unsigned int value){ case PFPUEN: case PJPUEN: case PKPUEN: + + //port data value, nothing attached to port + case PCDATA: + case PDDATA: + case PEDATA: + case PFDATA: + + //misc port config + case PDKBEN: + //simple write, no actions needed registerArrayWrite8(address, value); break; diff --git a/src/hardwareRegisters.h b/src/hardwareRegisters.h index efcc115..3fac810 100644 --- a/src/hardwareRegisters.h +++ b/src/hardwareRegisters.h @@ -30,8 +30,8 @@ //variables extern uint32_t clk32Counter; -extern double timer1CycleCounter; -extern double timer2CycleCounter; +extern double timer1CycleCounter; +extern double timer2CycleCounter; //memory accessors unsigned int getHwRegister8(unsigned int address); diff --git a/tests/HwRegTest15.txt b/tests/HwRegTest15.txt new file mode 100644 index 0000000..d079aff --- /dev/null +++ b/tests/HwRegTest15.txt @@ -0,0 +1,558 @@ +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Cpu Wrote 8 bits of 0x00000020 to register 0x0409. +Cpu Wrote 8 bits of 0x00000000 to register 0x0411. +Cpu Wrote 8 bits of 0x000000F0 to register 0x0419. +Cpu Wrote 8 bits of 0x0000000F to register 0x0419. +Cpu Wrote 8 bits of 0x0000000F to register 0x041E. +Cpu Wrote 8 bits of 0x00000008 to register 0x0421. +Cpu Wrote 8 bits of 0x00000002 to register 0x0429. +Cpu Wrote 8 bits of 0x00000004 to register 0x0431. +Cpu Wrote 8 bits of 0x00000000 to register 0x0439. +Cpu Wrote 8 bits of 0x00000020 to register 0x0449. +Cpu Wrote 8 bits of 0x00000000 to register 0x0A27. +Cpu Wrote 16 bits of 0x00008000 to register 0x0100. +Cpu Wrote 16 bits of 0x000001AB to register 0x0110. +Cpu Wrote 16 bits of 0x0000FFC0 to register 0x0102. +Cpu Wrote 16 bits of 0x000001F3 to register 0x0112. +Cpu Wrote 16 bits of 0x00008200 to register 0x0104. +Cpu Wrote 16 bits of 0x00000101 to register 0x0114. +Cpu Wrote 16 bits of 0x00000000 to register 0x0106. +Cpu Wrote 16 bits of 0x00001E83 to register 0x0116. +Cpu Wrote 16 bits of 0x00000040 to register 0x010A. +Cpu Wrote 16 bits of 0x00000000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00004020 to register 0x0C00. +Cpu Wrote 16 bits of 0x00008000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00001A81 to register 0x0116. +Cpu Wrote 16 bits of 0x00000000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00008000 to register 0x0C02. +Cpu Read 16 bits from register 0x0310. +Cpu Read 8 bits from register 0x0418. +Cpu Wrote 8 bits of 0x00000001 to register 0x041E. +Cpu Read 8 bits from register 0x0440. +Cpu Read 8 bits from register 0x0441. +Cpu Read 8 bits from register 0x0441. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Cpu Read 16 bits from register 0x0306. +Cpu Read 16 bits from register 0x0C02. +Cpu Wrote 16 bits of 0x0000C010 to register 0x0C02. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. diff --git a/tests/HwRegTest16.txt b/tests/HwRegTest16.txt new file mode 100644 index 0000000..7e49308 --- /dev/null +++ b/tests/HwRegTest16.txt @@ -0,0 +1,258 @@ +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Cpu Wrote 8 bits of 0x00000000 to register 0x0439. +Cpu Wrote 8 bits of 0x00000020 to register 0x0449. +Cpu Wrote 8 bits of 0x00000000 to register 0x0A27. +Cpu Wrote 16 bits of 0x00008000 to register 0x0100. +Cpu Wrote 16 bits of 0x000001AB to register 0x0110. +Cpu Wrote 16 bits of 0x0000FFC0 to register 0x0102. +Cpu Wrote 16 bits of 0x000001F3 to register 0x0112. +Cpu Wrote 16 bits of 0x00008200 to register 0x0104. +Cpu Wrote 16 bits of 0x00000101 to register 0x0114. +Cpu Wrote 16 bits of 0x00000000 to register 0x0106. +Cpu Wrote 16 bits of 0x00001E83 to register 0x0116. +Cpu Wrote 16 bits of 0x00000040 to register 0x010A. +Cpu Wrote 16 bits of 0x00000000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00004020 to register 0x0C00. +Cpu Wrote 16 bits of 0x00008000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00001A81 to register 0x0116. +Cpu Wrote 16 bits of 0x00000000 to register 0x0C02. +Cpu Wrote 16 bits of 0x00008000 to register 0x0C02. +Cpu Read 16 bits from register 0x0310. +Cpu Read 8 bits from register 0x0418. +Cpu Read 8 bits from register 0x0440. +Cpu Read 8 bits from register 0x0441. +Cpu Read 8 bits from register 0x0441. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Cpu Read 16 bits from register 0x0306. +Cpu Read 16 bits from register 0x0C02. +Cpu Wrote 16 bits of 0x0000C010 to register 0x0C02. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. +Ran frame, executed 553460.066667 cycles. +Ran frame, executed 553325.133333 cycles. +Ran frame, executed 553190.200000 cycles. +Ran frame, executed 553055.266667 cycles. +Ran frame, executed 552920.333333 cycles. +Ran frame, executed 552785.400000 cycles. +Ran frame, executed 553662.466667 cycles. +Ran frame, executed 553527.533333 cycles. +Ran frame, executed 553392.600000 cycles. +Ran frame, executed 553257.666667 cycles. +Ran frame, executed 553122.733333 cycles. +Ran frame, executed 552987.800000 cycles. +Ran frame, executed 552852.866667 cycles. +Ran frame, executed 552717.933333 cycles. +Ran frame, executed 553595.000000 cycles. diff --git a/unimplementedFeatures.txt b/unimplementedFeatures.txt index bb4f52b..f625d82 100644 --- a/unimplementedFeatures.txt +++ b/unimplementedFeatures.txt @@ -6,10 +6,11 @@ cpu32 table lookup opcodes PLL Control Register, Wake Select Peripheral Control Register, audio ppm mixing selection Port D level sensitive interrupts -Port D keyboard enable register The data sheet says LRRA is 0xFFFFFA29 and 0xFFFFFA28 but its only 8bits? The boot memory mapping where rom starts at 0x00000000 and ram is swapped in (debug tools)missing icons +Port G spi stuff Fixed: -System Control Register, 0xXXFFF000 all upper banks are registers mode \ No newline at end of file +System Control Register, 0xXXFFF000 all upper banks are registers mode +Port D keyboard enable register \ No newline at end of file