From: Jean-Paul Mari Date: Tue, 20 Aug 2019 02:07:52 +0000 (-0400) Subject: Added a specific breakpoint for the M68K address error exception X-Git-Tag: v2.1.3-R5^2~47 X-Git-Url: http://git.hcoop.net/clinton/Virtual-Jaguar-Rx.git/commitdiff_plain/0cbc132e807d89562b81cdee20351aeb2bffb467 Added a specific breakpoint for the M68K address error exception --- diff --git a/docs/vj_HistoryNotes.txt b/docs/vj_HistoryNotes.txt index ecefb68..c427baa 100644 --- a/docs/vj_HistoryNotes.txt +++ b/docs/vj_HistoryNotes.txt @@ -4,6 +4,8 @@ Release 5 (TBA) - This date already appears in the Release 4 executable but was not referenced in his history note 1) Added a specific breakpoint for the M68K illegal instruction exception -- Alert box will display a message and then the code will stop +2) Added a specific breakpoint for the M68K address error exception +-- Alert box will display a message and then the code will stop Release 4a (15th August 2019) ----------------------------- diff --git a/src/jaguar.cpp b/src/jaguar.cpp index 69a22d5..8a12558 100644 --- a/src/jaguar.cpp +++ b/src/jaguar.cpp @@ -15,6 +15,7 @@ // JLH 11/25/2009 Major rewrite of memory subsystem and handlers // JPM 09/04/2018 Added the new Models and BIOS handler // JPM 10/13/2018 Added breakpoints features +// JPM Aug./2019 Fix specific breakpoint for ROM cartridge or unknown memory location writing; added a specific breakpoint for the M68K illegal instruction and address error exceptions // @@ -1424,7 +1425,11 @@ bool m68k_read_exception_vector(unsigned int address, char *text) QString msg; QMessageBox msgBox; - msg.sprintf("$%06x: %s", pcQueue[pcQPtr ? (pcQPtr - 1) : 0x3FF], text); +#if 0 + msg.sprintf("68000 exception\n%s at $%06x", text, pcQueue[pcQPtr ? (pcQPtr - 1) : 0x3FF]); +#else + msg.sprintf("68000 exception\n$%06x: %s", pcQueue[pcQPtr ? (pcQPtr - 1) : 0x3FF], text); +#endif msgBox.setText(msg); msgBox.setStandardButtons(QMessageBox::Abort); msgBox.setDefaultButton(QMessageBox::Abort); @@ -1459,6 +1464,10 @@ unsigned int m68k_read_memory_32(unsigned int address) { switch (address) { + case 0x0c: + m68k_read_exception_vector(address, "Address error"); + break; + case 0x10: m68k_read_exception_vector(address, "Illegal instruction"); break;