comparison xband.c @ 1231:d9d775d61fcf

Cut down on the verbose logging in XBAND code
author Michael Pavone <pavone@retrodev.com>
date Sat, 25 Feb 2017 02:30:55 -0800
parents 0ed27bb6a658
children 6370b80491c7
comparison
equal deleted inserted replaced
1230:0ed27bb6a658 1231:d9d775d61fcf
70 UNKNOWN_REG2, 70 UNKNOWN_REG2,
71 UNKNOWN_REG3, 71 UNKNOWN_REG3,
72 72
73 }; 73 };
74 74
75 //#define DO_DEBUG_PRINT
76 #ifdef DO_DEBUG_PRINT
77 #define dprintf printf
78 #define dputs puts
79 #else
80 #define dprintf
81 #define dputs
82 #endif
83
75 uint8_t xband_detect(uint8_t *rom, uint32_t rom_size) 84 uint8_t xband_detect(uint8_t *rom, uint32_t rom_size)
76 { 85 {
77 //Internal ROM is 512KB, accept larger ones for overdumps and custom firmware 86 //Internal ROM is 512KB, accept larger ones for overdumps and custom firmware
78 if (rom_size < (512*1024)) { 87 if (rom_size < (512*1024)) {
79 return 0; 88 return 0;
128 m68k_context *m68k = context; 137 m68k_context *m68k = context;
129 genesis_context *gen = m68k->system; 138 genesis_context *gen = m68k->system;
130 xband *x = get_xband(gen); 139 xband *x = get_xband(gen);
131 if (address == 0x181) { 140 if (address == 0x181) {
132 x->kill = value; 141 x->kill = value;
133 printf("Write to \"soft\" kill register %X\n", value); 142 dprintf("Write to \"soft\" kill register %X\n", value);
134 } else if (address == 0x183) { 143 } else if (address == 0x183) {
135 update_control(gen, value); 144 update_control(gen, value);
136 printf("Write to \"soft\" control register %X\n", value); 145 dprintf("Write to \"soft\" control register %X\n", value);
137 } else if ((x->control & BIT_ROM_HI && address < 0x200000) || (address >= 0x200000 && !(x->control & BIT_ROM_HI))) { 146 } else if ((x->control & BIT_ROM_HI && address < 0x200000) || (address >= 0x200000 && !(x->control & BIT_ROM_HI))) {
138 gen->save_storage[(address & 0xFFFF) ^ 1] = value; 147 gen->save_storage[(address & 0xFFFF) ^ 1] = value;
139 m68k_handle_code_write(address, m68k); 148 m68k_handle_code_write(address, m68k);
140 //TODO: handle code at mirror addresses 149 //TODO: handle code at mirror addresses
141 } else { 150 } else {
211 if (offset < XBAND_REGS) { 220 if (offset < XBAND_REGS) {
212 switch (offset) 221 switch (offset)
213 { 222 {
214 case MORE_MYSTERY: 223 case MORE_MYSTERY:
215 case UNKNOWN_REG: 224 case UNKNOWN_REG:
216 printf("Write to mysterious reg: %X: %X\n", address, value); 225 dprintf("Write to mysterious reg: %X: %X\n", address, value);
217 value = value & 0x7F; 226 value = value & 0x7F;
218 break; 227 break;
219 case UNKNOWN_REG3: 228 case UNKNOWN_REG3:
220 printf("Write to mysterious reg: %X: %X\n", address, value); 229 dprintf("Write to mysterious reg: %X: %X\n", address, value);
221 value = value & 0xFE; 230 value = value & 0xFE;
222 break; 231 break;
223 } 232 }
224 x->regs[offset] = value; 233 x->regs[offset] = value;
225 printf("Write to register %X(%d): %X\n", address, offset, value); 234 dprintf("Write to register %X(%d): %X\n", address, offset, value);
226 } else { 235 } else {
227 printf("Unhandled register write %X: %X\n", address, value); 236 printf("Unhandled register write %X: %X\n", address, value);
228 } 237 }
229 } else { 238 } else {
230 if (address == 0x3BFE01) { 239 if (address == 0x3BFE01) {
231 x->kill = value; 240 x->kill = value;
232 printf("Write to kill register %X\n", value); 241 dprintf("Write to kill register %X\n", value);
233 } else if (address == 0x3BFE03) { 242 } else if (address == 0x3BFE03) {
234 update_control(gen, value); 243 update_control(gen, value);
235 printf("Write to control register %X\n", value); 244 dprintf("Write to control register %X\n", value);
236 } else { 245 } else {
237 printf("Unhandled register write %X: %X\n", address, value); 246 printf("Unhandled register write %X: %X\n", address, value);
238 } 247 }
239 } 248 }
240 return context; 249 return context;
255 } 264 }
256 xband *x = get_xband(gen); 265 xband *x = get_xband(gen);
257 if (address < 0x3BFE00) { 266 if (address < 0x3BFE00) {
258 uint32_t offset = (address - 0x3BC001) / 2; 267 uint32_t offset = (address - 0x3BC001) / 2;
259 if (offset < XBAND_REGS) { 268 if (offset < XBAND_REGS) {
260 printf("Regsister read: %X\n", address); 269 dprintf("Regsister read: %X\n", address);
261 return x->regs[offset]; 270 return x->regs[offset];
262 } else { 271 } else {
263 printf("Unhandled register read from address %X\n", address); 272 printf("Unhandled register read from address %X\n", address);
264 return 0x5D; 273 return 0x5D;
265 } 274 }