comparison dis.c @ 2110:f1238ffb30a3

Some very minor Sega CD disassembler improvements
author Michael Pavone <pavone@retrodev.com>
date Sun, 13 Feb 2022 00:10:19 -0800
parents 1bda10d60b29
children 7451f970ee66
comparison
equal deleted inserted replaced
2109:5d575c42fff5 2110:f1238ffb30a3
309 filebuf += main_start / 2; 309 filebuf += main_start / 2;
310 named_labels = add_label(named_labels, "start", 0xFF0000); 310 named_labels = add_label(named_labels, "start", 0xFF0000);
311 if (!has_manual_defs || !only) { 311 if (!has_manual_defs || !only) {
312 def = defer(0xFF0000, def); 312 def = defer(0xFF0000, def);
313 } 313 }
314 //TODO: other regions 314 uint32_t user_start;
315 named_labels = add_label(named_labels, "user_start", 0xFF0584); 315 if (filebuf[0xA/2] == 0x57A) {
316 //US
317 user_start = 0xFF0584;
318 } else if (filebuf[0xA/2] == 0x564) {
319 //EU
320 user_start = 0xFF056E;
321 } else {
322 //JP
323 user_start = 0xFF0156;
324 }
325 named_labels = add_label(named_labels, "user_start", user_start);
316 do_cd_labels = 1; 326 do_cd_labels = 1;
317 } else { 327 } else {
318 uint32_t sub_start =filebuf[0x40/2] << 16 | filebuf[0x42/2]; 328 uint32_t sub_start =filebuf[0x40/2] << 16 | filebuf[0x42/2];
319 uint32_t sub_end =filebuf[0x44/2] << 16 | filebuf[0x46/2]; 329 uint32_t sub_end =filebuf[0x44/2] << 16 | filebuf[0x46/2];
320 if (sub_start > (boot_size - 0x20)) { 330 if (sub_start > (boot_size - 0x20)) {
450 //TODO: more functions in the middle here 460 //TODO: more functions in the middle here
451 named_labels = weak_label(named_labels, "_bios_sega_logo", 0x364); 461 named_labels = weak_label(named_labels, "_bios_sega_logo", 0x364);
452 named_labels = weak_label(named_labels, "_bios_set_vint", 0x368); 462 named_labels = weak_label(named_labels, "_bios_set_vint", 0x368);
453 //TODO: more functions at the end here 463 //TODO: more functions at the end here
454 464
465 named_labels = weak_label(named_labels, "WORD_RAM", 0x200000);
455 named_labels = weak_label(named_labels, "CD_RESET_IFL2", 0xA12000); 466 named_labels = weak_label(named_labels, "CD_RESET_IFL2", 0xA12000);
456 named_labels = weak_label(named_labels, "CD_RESET_IFL2_BYTE", 0xA12001); 467 named_labels = weak_label(named_labels, "CD_RESET_IFL2_BYTE", 0xA12001);
457 named_labels = weak_label(named_labels, "CD_WRITE_PROTECT", 0xA12002); 468 named_labels = weak_label(named_labels, "CD_WRITE_PROTECT", 0xA12002);
458 named_labels = weak_label(named_labels, "CD_MEM_MODE", 0xA12003); 469 named_labels = weak_label(named_labels, "CD_MEM_MODE", 0xA12003);
459 named_labels = weak_label(named_labels, "CDC_CTRL", 0xA12004); 470 named_labels = weak_label(named_labels, "CDC_CTRL", 0xA12004);