Wed, 01 Dec 2010 21:55:09 +0000
Edit I/O routines so R/Ws only log if the register is unknown
src/main.c | file | annotate | diff | revisions |
1.1 diff -r bea459bc22a8 -r e31d2ede6c6b src/main.c 1.2 --- a/src/main.c Wed Dec 01 21:29:44 2010 +0000 1.3 +++ b/src/main.c Wed Dec 01 21:55:09 2010 +0000 1.4 @@ -23,8 +23,6 @@ 1.5 { 1.6 uint32_t data = 0xFFFFFFFF; 1.7 1.8 - printf("RD32 %08X %d", address, state.romlmap); 1.9 - 1.10 // If ROMLMAP is set, force system to access ROM 1.11 if (!state.romlmap) 1.12 address |= 0x800000; 1.13 @@ -41,9 +39,10 @@ 1.14 ((uint32_t)state.ram[address + 1] << 16) | 1.15 ((uint32_t)state.ram[address + 2] << 8) | 1.16 ((uint32_t)state.ram[address + 3])); 1.17 + } else { 1.18 + // I/O register -- TODO 1.19 + printf("RD32 %08X [unknown I/O register]\n", address); 1.20 } 1.21 - 1.22 - printf(" ==> %08X\n", data); 1.23 return data; 1.24 } 1.25 1.26 @@ -51,8 +50,6 @@ 1.27 { 1.28 uint16_t data = 0xFFFF; 1.29 1.30 - printf("RD16 %08X %d", address, state.romlmap); 1.31 - 1.32 // If ROMLMAP is set, force system to access ROM 1.33 if (!state.romlmap) 1.34 address |= 0x800000; 1.35 @@ -65,9 +62,11 @@ 1.36 // RAM 1.37 data = ((state.ram[address + 0] << 8) | 1.38 (state.ram[address + 1])); 1.39 + } else { 1.40 + // I/O register -- TODO 1.41 + printf("RD16 %08X [unknown I/O register]\n", address); 1.42 } 1.43 1.44 - printf(" ==> %04X\n", data); 1.45 return data; 1.46 } 1.47 1.48 @@ -75,8 +74,6 @@ 1.49 { 1.50 uint8_t data = 0xFF; 1.51 1.52 - printf("RD 8 %08X %d ", address, state.romlmap); 1.53 - 1.54 // If ROMLMAP is set, force system to access ROM 1.55 if (!state.romlmap) 1.56 address |= 0x800000; 1.57 @@ -87,9 +84,11 @@ 1.58 } else if (address < state.ram_size) { 1.59 // RAM access 1.60 data = state.ram[address + 0]; 1.61 + } else { 1.62 + // I/O register -- TODO 1.63 + printf("RD 8 %08X [unknown I/O register]\n", address); 1.64 } 1.65 1.66 - printf("==> %02X\n", data); 1.67 return data; 1.68 } 1.69 1.70 @@ -100,8 +99,6 @@ 1.71 if (!state.romlmap) 1.72 address |= 0x800000; 1.73 1.74 - printf("WR32 %08X %d %02X\n", address, state.romlmap, value); 1.75 - 1.76 if ((address >= 0x800000) && (address <= 0xBFFFFF)) { 1.77 // ROM access 1.78 // TODO: bus error here? can't write to rom! 1.79 @@ -113,7 +110,8 @@ 1.80 state.ram[address + 3] = value & 0xff; 1.81 } else { 1.82 switch (address) { 1.83 - case 0xE43000: state.romlmap = ((value & 0x8000) == 0x8000); 1.84 + case 0xE43000: state.romlmap = ((value & 0x8000) == 0x8000); break; // GCR3: ROMLMAP 1.85 + default: printf("WR32 %08X ==> %02X\n", address, state.romlmap, value); break; 1.86 } 1.87 } 1.88 } 1.89 @@ -124,8 +122,6 @@ 1.90 if (!state.romlmap) 1.91 address |= 0x800000; 1.92 1.93 - printf("WR16 %08X %d %02X\n", address, state.romlmap, value); 1.94 - 1.95 if ((address >= 0x800000) && (address <= 0xBFFFFF)) { 1.96 // ROM access 1.97 // TODO: bus error here? can't write to rom! 1.98 @@ -135,7 +131,8 @@ 1.99 state.ram[address + 1] = value & 0xff; 1.100 } else { 1.101 switch (address) { 1.102 - case 0xE43000: state.romlmap = ((value & 0x8000) == 0x8000); 1.103 + case 0xE43000: state.romlmap = ((value & 0x8000) == 0x8000); break; // GCR3: ROMLMAP 1.104 + default: printf("WR16 %08X %d %02X\n", address, state.romlmap, value); break; 1.105 } 1.106 } 1.107 } 1.108 @@ -146,8 +143,6 @@ 1.109 if (!state.romlmap) 1.110 address |= 0x800000; 1.111 1.112 - printf("WR 8 %08X %d %02X\n", address, state.romlmap, value); 1.113 - 1.114 if ((address >= 0x800000) && (address <= 0xBFFFFF)) { 1.115 // ROM access 1.116 // TODO: bus error here? can't write to rom! 1.117 @@ -155,7 +150,8 @@ 1.118 state.ram[address] = value & 0xff; 1.119 } else { 1.120 switch (address) { 1.121 - case 0xE43000: state.romlmap = ((value & 0x80) == 0x80); 1.122 + case 0xE43000: state.romlmap = ((value & 0x80) == 0x80); break; // GCR3: ROMLMAP 1.123 + default: printf("WR 8 %08X %d %02X\n", address, state.romlmap, value); break; 1.124 } 1.125 } 1.126 }