| 3882 | } |
| 3883 | |
| 3884 | uae_u32 debugmem_chiphit(uaecptr addr, uae_u32 v, int size) |
| 3885 | { |
| 3886 | static int recursive; |
| 3887 | if (recursive) { |
| 3888 | return 0xdeadf00d; |
| 3889 | } |
| 3890 | recursive++; |
| 3891 | bool dbg = false; |
| 3892 | if (size > 0) { |
| 3893 | if (debugmem_active && debugmem_mapped) { |
| 3894 | console_out_f(_T("%s write to %08x, value = %08x\n"), size == 4 ? _T("Long") : (size == 2 ? _T("Word") : _T("Byte")), addr, v); |
| 3895 | dbg = debugmem_break(6); |
| 3896 | } |
| 3897 | } else { |
| 3898 | size = -size; |
| 3899 | |
| 3900 | // execbase? |
| 3901 | if (size == 4 && addr == 4) { |
| 3902 | recursive--; |
| 3903 | return do_get_mem_long((uae_u32*)(chipmem_bank.baseaddr + addr)); |
| 3904 | } |
| 3905 | if (size == 2 && (addr == 4 || addr == 6) && (currprefs.cpu_model < 68020 || ce_banktype[0] == CE_MEMBANK_CHIP16)) { |
| 3906 | recursive--; |
| 3907 | return do_get_mem_word((uae_u16*)(chipmem_bank.baseaddr + addr)); |
| 3908 | } |
| 3909 | |
| 3910 | // exception vectors |
| 3911 | if (regs.vbr < 0x100) { |
| 3912 | // vbr == 0 so skip aligned long reads |
| 3913 | if (size == 4 && addr >= regs.vbr + 8 && addr < regs.vbr + 0x100) { |
| 3914 | recursive--; |
| 3915 | return do_get_mem_long((uae_u32*)(chipmem_bank.baseaddr + addr)); |
| 3916 | } |
| 3917 | if (size == 2 && addr >= regs.vbr + 8 && addr < regs.vbr + 0xe0 && (currprefs.cpu_model < 68020 || ce_banktype[0] == CE_MEMBANK_CHIP16)) { |
| 3918 | recursive--; |
| 3919 | return do_get_mem_word((uae_u16*)(chipmem_bank.baseaddr + addr)); |
| 3920 | } |
| 3921 | } |
| 3922 | |
| 3923 | if (debugmem_active && debugmem_mapped) { |
| 3924 | console_out_f(_T("%s read from %08x\n"), size == 4 ? _T("Long") : (size == 2 ? _T("Word") : _T("Byte")), addr); |
| 3925 | dbg = debugmem_break(7); |
| 3926 | } |
| 3927 | } |
| 3928 | if (debugmem_active && debugmem_mapped) { |
| 3929 | #ifdef DEBUGGER |
| 3930 | if (!dbg) |
| 3931 | m68k_dumpstate(0, 0xffffffff); |
| 3932 | #endif |
| 3933 | } |
| 3934 | recursive--; |
| 3935 | return 0xdeadf00d; |
| 3936 | } |
| 3937 | |
| 3938 | bool debugmem_extinvalidmem(uaecptr addr, uae_u32 v, int size) |
| 3939 | { |
no test coverage detected