diff --git a/A2Mac.xcodeproj/project.pbxproj b/A2Mac.xcodeproj/project.pbxproj index d7e379f..1ef816b 100644 --- a/A2Mac.xcodeproj/project.pbxproj +++ b/A2Mac.xcodeproj/project.pbxproj @@ -2025,7 +2025,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.12; MARKETING_VERSION = 0.85; OTHER_CFLAGS = ( - "-D_NO_DISASSEMBLER", + "-DDISASSEMBLER", "-D_NO_INTERRUPT_CHECK_PER_STEP", "-D_NO_CLK_ABSOLUTE_PRECISE", ); diff --git a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist index c00ee47..b2259db 100644 --- a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist +++ b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist @@ -513,6 +513,14 @@ + + + + + + @@ -602,15 +610,18 @@ - - + + + + + + + + + + diff --git a/A2Mac/DebuggerViewController.swift b/A2Mac/DebuggerViewController.swift index 4d9ba06..33ffbb9 100644 --- a/A2Mac/DebuggerViewController.swift +++ b/A2Mac/DebuggerViewController.swift @@ -467,7 +467,7 @@ N V - B D I Z C disass_addr_pc = m6502.PC } // } - var need_disass = disass_addr_pc <= disass_addr || disass_addr_pc > disass_addr + disass_addr_max + var need_disass = disass_addr_pc <= disass_addr || UInt(disass_addr_pc) > UInt(disass_addr) + UInt(disass_addr_max) scroll_line_number = getLine(forAddr: disass_addr_pc) highlighted_line_number = getLine(forAddr: m6502.PC) diff --git a/A2Mac/ViewController.swift b/A2Mac/ViewController.swift index 31cd9aa..7fd43c9 100644 --- a/A2Mac/ViewController.swift +++ b/A2Mac/ViewController.swift @@ -1274,6 +1274,10 @@ class ViewController: NSViewController { debugger.showWindow(self) } } + + spkr_play_disk_motor_time = 0 + spkr_stopAll() + } diff --git a/src/cpu/6502.c b/src/cpu/6502.c index bbc5ed0..807868c 100644 --- a/src/cpu/6502.c +++ b/src/cpu/6502.c @@ -599,7 +599,7 @@ void rom_loadFile( const char * bundlePath, const char * filename ) { void openLog() { -#ifdef DISASSEMBLER_LOG +#ifdef DISASSEMBLER outdev = fopen("/Users/trudnai/Library/Containers/com.trudnai.steveii/Data/disassembly_new.log", "w+"); #endif // for DEBUG ONLY!!! -- use stdout if could not create log file diff --git a/src/cpu/6502_bp.c b/src/cpu/6502_bp.c index 1c77903..62d2536 100644 --- a/src/cpu/6502_bp.c +++ b/src/cpu/6502_bp.c @@ -189,7 +189,7 @@ int m6502_dbg_bp_get_not_empty() { void m6502_dbg_bp_compact() { int i = m6502_dbg_bp_get_not_empty(); memcpy(breakpoints, breakpoints + i, bp_last_idx * sizeof(uint16_t)); - memset(breakpoints + bp_last_idx, 0, (DEBUG_MAX_BREAKPOINTS - bp_last_idx) * sizeof(uint16_t)); + memset(breakpoints + bp_last_idx - i + 1, 0, (DEBUG_MAX_BREAKPOINTS - bp_last_idx + i - 1) * sizeof(uint16_t)); bp_last_idx = m6502_dbg_bp_get_last(bp_last_idx); } @@ -214,6 +214,7 @@ int m6502_dbg_bp_add(uint16_t addr) { if (bp_last_idx < DEBUG_MAX_BREAKPOINTS - 1) { breakpoints[++bp_last_idx] = addr; m6502_dbg_bp_sort(breakpoints, 0, bp_last_idx); + m6502_dbg_bp_compact(); return bp_last_idx; } // no empty slots diff --git a/src/dev/disk/woz.c b/src/dev/disk/woz.c index 96b6b8f..46d1107 100644 --- a/src/dev/disk/woz.c +++ b/src/dev/disk/woz.c @@ -316,7 +316,7 @@ uint8_t woz_read() { if ( woz_tmap && woz_trks ) { int track = woz_tmap->phase[disk.phase.count]; - if (outdev) fprintf(outdev, "track: %d (%d)\n", track, disk.phase.count); + dbgPrintf2("track: %d (%d)\n", track, disk.phase.count); if ( track >= 40 ) { dbgPrintf("TRCK TOO HIGH!\n"); return rand(); diff --git a/src/util/common.h b/src/util/common.h index e05650b..415aaa5 100644 --- a/src/util/common.h +++ b/src/util/common.h @@ -37,7 +37,7 @@ #endif -#ifdef DEBUG +#ifdef DISASSEMBLER //#define dbgPrintf(format, ...) if(outdev) fprintf(outdev, format, ## __VA_ARGS__) #define dbgPrintf(format, ...) #define dbgPrintf2(format, ...) if(outdev) fprintf(outdev, format, ## __VA_ARGS__)