diff --git a/src/hardwareRegisters.c b/src/hardwareRegisters.c index a0f12ef..45f5843 100644 --- a/src/hardwareRegisters.c +++ b/src/hardwareRegisters.c @@ -644,6 +644,8 @@ void setHwRegister8(unsigned int address, unsigned int value){ case PMSEL: case PGPUEN: case PMPUEN: + case PGDIR: + case PMDIR: //write without the top 2 bits registerArrayWrite8(address, value & 0x3F); break; @@ -656,6 +658,16 @@ void setHwRegister8(unsigned int address, unsigned int value){ case PJSEL: case PKSEL: + //direction select + case PADIR: + case PBDIR: + case PCDIR: + case PDDIR: + case PEDIR: + case PFDIR: + case PJDIR: + case PKDIR: + //pull up/down enable case PAPUEN: case PBPUEN: @@ -726,7 +738,7 @@ void setHwRegister16(unsigned int address, unsigned int value){ case ICR: //missing bottom 7 bits - registerArrayWrite16(address, value & 0xFFF8); + registerArrayWrite16(address, value & 0xFF80); break; case SDCTRL: diff --git a/tests/HwRegTest12.txt b/tests/HwRegTest12.txt new file mode 100644 index 0000000..f4a0ebe --- /dev/null +++ b/tests/HwRegTest12.txt @@ -0,0 +1,246 @@ +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 0x0000000F to register 0x041C. +Cpu Wrote 8 bits of 0x000000F0 to register 0x0419. +Cpu Wrote 8 bits of 0x0000000F to register 0x041D. +Cpu Wrote 8 bits of 0x0000000F to register 0x041F. +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 0x00000008 to register 0x0441. +Cpu Wrote 8 bits of 0x00000020 to register 0x0449. +Cpu Wrote 8 bits of 0x00000000 to register 0x0A27. +Cpu Wrote 8 bits of 0x000000F8 to register 0x0000. +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. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +New CPU frequency of:33161216.000000 cycles per second. +New clk32 cycle count of :1012.000000. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. +Ran frame, executed 552860.866667 cycles. +Ran frame, executed 552725.933333 cycles. +Ran frame, executed 553603.000000 cycles. +Ran frame, executed 553468.066667 cycles. +Ran frame, executed 553333.133333 cycles. +Ran frame, executed 553198.200000 cycles. +Ran frame, executed 553063.266667 cycles. +Ran frame, executed 552928.333333 cycles. +Ran frame, executed 552793.400000 cycles. +Ran frame, executed 553670.466667 cycles. +Ran frame, executed 553535.533333 cycles. +Ran frame, executed 553400.600000 cycles. +Ran frame, executed 553265.666667 cycles. +Ran frame, executed 553130.733333 cycles. +Ran frame, executed 552995.800000 cycles. diff --git a/unimplementedFeatures.txt b/unimplementedFeatures.txt index a903685..4886bfb 100644 --- a/unimplementedFeatures.txt +++ b/unimplementedFeatures.txt @@ -3,4 +3,6 @@ sed1376 register access storage ram protect sysTrapPceNativeCall, ARM Emulator cpu32 table lookup opcodes -PLL Control Register, Wake Select \ No newline at end of file +PLL Control Register, Wake Select +Peripheral Control Register, audio ppm mixing selection +System Control Register, 0xXXFFF000 all upper banks are registers mode \ No newline at end of file