From 2decf2abdc0ea592fec21428d0ebad55240bb16d Mon Sep 17 00:00:00 2001 From: tudnai Date: Sun, 30 Oct 2022 05:42:15 -0700 Subject: [PATCH] - Debugger Function keys F4 / F5 / F6 / F7 / F8 - Debugger Memory View adjusted - Continue / Pause --- .../xcdebugger/Expressions.xcexplist | 88 +++++----- A2Mac/AppDelegate.swift | 2 +- A2Mac/Base.lproj/Debugger.storyboard | 160 +++--------------- A2Mac/Base.lproj/Main.storyboard | 23 +-- A2Mac/DebuggerViewController.swift | 2 +- A2Mac/DebuggerWindowController.swift | 19 ++- A2Mac/ViewController.swift | 100 ++++++++--- 7 files changed, 176 insertions(+), 218 deletions(-) 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 3c48b70..40f2882 100644 --- a/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist +++ b/A2Mac.xcodeproj/project.xcworkspace/xcuserdata/trudnai.xcuserdatad/xcdebugger/Expressions.xcexplist @@ -48,7 +48,7 @@ value = "default_MHz_6502 * 1000 * 1000 / spkr_sample_rate"> + value = "( (spkr_clk + m6502.clkfrm) / ( 1024000 / spkr_sample_rate ) ) * 2"> @@ -66,7 +66,7 @@ value = "(spkr_clk + m6502.clkfrm)"> + value = "( (spkr_clk + m6502.clkfrm) / ( default_MHz_6502 * 1000 * 1000 / spkr_sample_rate)) * 2"> @@ -104,6 +104,14 @@ + + + + + + @@ -158,7 +166,7 @@ contextName = "closure #1 in ViewController.Update():ViewController.swift"> + value = "txtArr"> @@ -167,10 +175,10 @@ value = "txt"> + value = "MEMcfg.is_80STORE"> + value = "MEMcfg.txt_page_2"> @@ -299,7 +307,7 @@ contextName = "LoRes.Update():LoRes.swift"> + value = "blockChanged[ screenIdx ]"> @@ -308,7 +316,7 @@ value = "UInt8(block & 4)"> + value = "UInt8( (block >> 4) & 0x0F )"> @@ -561,10 +569,10 @@ contextName = "ToolBarController.GamePort(_:):ToolBarController.swift"> + value = "ViewController.current?.mouseCursorJoystickEmulation"> + value = "ViewController.current?.mouseCursorHidden"> @@ -603,13 +611,13 @@ contextName = "HiRes.compute():HiRes.swift"> + value = "computePipelineState.maxTotalThreadsPerThreadgroup"> + value = "UnsafeRawBufferPointer(result)"> @@ -676,7 +684,7 @@ value = "new"> + value = "WOZwrite.shift16"> @@ -688,7 +696,7 @@ value = "(1 << i) - 1"> + value = "WOZtmp.shift16"> @@ -776,6 +784,9 @@ + + @@ -784,9 +795,6 @@ - - @@ -840,10 +848,10 @@ contextName = "set_flags_NZC:common.h"> + value = "(unsigned)test "> + value = "(unsigned)0xFF"> @@ -877,17 +885,14 @@ contextName = "HiRes.draw(_:):HiRes.swift"> + value = "linAddr"> + value = "ctx?.bitsPerComponent"> - - @@ -897,6 +902,12 @@ + + + + @@ -907,10 +918,7 @@ value = "ctx?.height"> - - + value = "ctx?.data"> @@ -946,22 +954,22 @@ value = "m6502"> + value = "(void*)Apple2_64K_RAM"> + value = "Apple2_64K_RAM + 0x3600"> + + - - + value = "m6502.clkfrm"> @@ -980,7 +988,7 @@ value = "textDisplay_height_diff"> + value = "textDisplay.frame"> @@ -989,10 +997,10 @@ value = "frame.size"> + value = "textDisplay_width_diff"> + value = "textDisplay.bounds"> @@ -1091,7 +1099,7 @@ value = "pdl_value[pdl]"> + value = "normalized_time >= pdl_value[pdl] ? 255 : 0"> @@ -1103,7 +1111,7 @@ value = "1 * 512 * (1 - ( 3300 / 3300.0 ))"> + value = "normalized_time"> @@ -1174,10 +1182,10 @@ value = "Apple2_64K_AUX + 0xC600"> + value = "(void*)rom"> + value = "Apple2_64K_RAM + 0xC600"> diff --git a/A2Mac/AppDelegate.swift b/A2Mac/AppDelegate.swift index bdc5c43..48ed420 100644 --- a/A2Mac/AppDelegate.swift +++ b/A2Mac/AppDelegate.swift @@ -150,7 +150,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { } @IBAction func DebugContinue(_ sender: Any) { - DebuggerWindowController.current?.Continue(sender) + DebuggerWindowController.current?.ContinuePauseButton(sender) } @IBAction func DebugStepOver(_ sender: Any) { diff --git a/A2Mac/Base.lproj/Debugger.storyboard b/A2Mac/Base.lproj/Debugger.storyboard index bfee15a..e5d9c2d 100644 --- a/A2Mac/Base.lproj/Debugger.storyboard +++ b/A2Mac/Base.lproj/Debugger.storyboard @@ -34,7 +34,7 @@ - + @@ -222,7 +222,7 @@ - + @@ -354,13 +354,13 @@ C20D: 4C C5 FE JMP $FEC5 - + - + - + @@ -404,6 +404,7 @@ C20D: 4C C5 FE JMP $FEC5 + - + - - - - - - - - - - - - + @@ -547,7 +539,7 @@ C20D: 4C C5 FE JMP $FEC5 - + @@ -585,9 +577,6 @@ C20D: 4C C5 FE JMP $FEC5 - - - - + + + + - + - - + @@ -639,89 +630,11 @@ C20D: 4C C5 FE JMP $FEC5 - + - - + - - - - - - - - - - - - - - - - - - - - - @@ -729,34 +642,10 @@ C20D: 4C C5 FE JMP $FEC5 - - - - - - - - - - - - - - - - - - - - - - - - @@ -767,6 +656,7 @@ C20D: 4C C5 FE JMP $FEC5 + @@ -775,7 +665,7 @@ C20D: 4C C5 FE JMP $FEC5 - + diff --git a/A2Mac/Base.lproj/Main.storyboard b/A2Mac/Base.lproj/Main.storyboard index cb6d111..15a9ba4 100644 --- a/A2Mac/Base.lproj/Main.storyboard +++ b/A2Mac/Base.lproj/Main.storyboard @@ -856,30 +856,33 @@ Gw - + - + - + + - + + - + + @@ -1522,7 +1525,7 @@ Gw - + @@ -1809,7 +1812,7 @@ Gw - + @@ -1945,7 +1948,7 @@ Gw - + @@ -1997,7 +2000,7 @@ Gw - + @@ -139128,7 +139131,7 @@ BQB9EQcAfREJAH0RCwB9ERQAfREZAH0RHwB9EScAfREpAH0RKwB9ES0AfREvAH0imwB9IqAAfSKtAH0i sAB9Ir0AfSLCAH0iygB9Is0AfSLSAH0i2gAAAAAAAAQBAAAAAAAAAFAAAAAAAAAAAAAAAAAAfSLdA - + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T S2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBcLDBkaIRQmKisyNTo9PkNGR0pUXF1hZFUkbnVsbNYNDg8Q diff --git a/A2Mac/DebuggerViewController.swift b/A2Mac/DebuggerViewController.swift index 718890c..e440f39 100644 --- a/A2Mac/DebuggerViewController.swift +++ b/A2Mac/DebuggerViewController.swift @@ -148,7 +148,7 @@ N V - B D I Z C func DisplayMemory() { var memory = "" for i : UInt16 in stride(from: 0x400, to: 0x4FF, by: 16) { - memory += hexLine16(addr: i) + textLine16(addr: i) + "\n" + memory += hexLine16(addr: i) + " " + textLine16(addr: i) + "\n" } DispatchQueue.main.async { diff --git a/A2Mac/DebuggerWindowController.swift b/A2Mac/DebuggerWindowController.swift index 7e0089e..3ca0a87 100644 --- a/A2Mac/DebuggerWindowController.swift +++ b/A2Mac/DebuggerWindowController.swift @@ -100,16 +100,29 @@ class DebuggerWindowController: NSWindowController, NSWindowDelegate { } - @IBAction func Continue(_ sender: Any) { + func Continue() { ContinuePauseButtonState() ToolBarController.current?.PauseButtonUpdate() + ViewController.current?.Pause(0) + } + + + func Pause() { + ContinuePauseButtonState() + ToolBarController.current?.PauseButtonUpdate() + + ViewController.current?.Pause(0) + } + + + @IBAction func ContinuePauseButton(_ sender: Any) { switch cpuState { case cpuState_halted: - ViewController.current?.Pause(sender) + Continue() case cpuState_running: - ViewController.current?.Pause(sender) + Pause() default: break diff --git a/A2Mac/ViewController.swift b/A2Mac/ViewController.swift index 514f034..db91241 100644 --- a/A2Mac/ViewController.swift +++ b/A2Mac/ViewController.swift @@ -333,29 +333,47 @@ class ViewController: NSViewController { //------------------------------------------------------------ } - - + + + func Resume() { + #if SCHEDULER_CVDISPLAYLINK + CVDisplayLinkStart(displayLink!) + #else + upd.resume() + #endif + + cpuState = cpuState_running + + if let debugger = DebuggerWindowController.current { + debugger.ContinuePauseButtonState() + } + } + + + func Pause() { + #if SCHEDULER_CVDISPLAYLINK + CVDisplayLinkStop(displayLink!) + #else + upd.suspend() + #endif + + cpuState = cpuState_halted + + if let debugger = DebuggerWindowController.current { + debugger.ContinuePauseButtonState() + } + } + + @IBAction func Pause(_ sender: Any) { switch ( cpuState ) { case cpuState_halted: - #if SCHEDULER_CVDISPLAYLINK - CVDisplayLinkStart(displayLink!) - #else - upd.resume() - #endif - - cpuState = cpuState_running + Resume() break case cpuState_running: - #if SCHEDULER_CVDISPLAYLINK - CVDisplayLinkStop(displayLink!) - #else - upd.suspend() - #endif - - cpuState = cpuState_halted + Pause() break default: @@ -450,7 +468,13 @@ class ViewController: NSViewController { let rightArrowKey = 124 let upArrowKey = 126 let downArrowKey = 125 - + + let F4FunctionKey = 118 + let F5FunctionKey = 96 + let F6FunctionKey = 97 + let F7FunctionKey = 98 + let F8FunctionKey = 99 + var ddd = 9; override var acceptsFirstResponder: Bool { @@ -506,7 +530,8 @@ class ViewController: NSViewController { if hide { if mouseCursorHidden { // NSCursor.hide() is working weird, better to set a 1px transparent cursor - mouseCursorHiddenJoystickEmulation.set() +// mouseCursorHiddenJoystickEmulation.set() + mouseCursorJoystickEmulation.set() } else { mouseCursorJoystickEmulation.set() @@ -690,7 +715,36 @@ class ViewController: NSViewController { else { kbdInput(0x8B) } + + case F4FunctionKey: +// if let debugger = DebuggerWindowController.current { +// debugger.Continue() +// } + + Resume() + case F5FunctionKey: +// if let debugger = DebuggerWindowController.current { +// debugger.Pause() +// } + + Pause() + + case F6FunctionKey: + if let debugger = DebuggerWindowController.current { + debugger.Step_Over(event) + } + + case F7FunctionKey: + if let debugger = DebuggerWindowController.current { + debugger.Step_In(event) + } + + case F8FunctionKey: + if let debugger = DebuggerWindowController.current { + debugger.Step_Out(event) + } + default: // print("keycode: %d", keyCode) if let chars = event.characters { @@ -1426,21 +1480,11 @@ class ViewController: NSViewController { // NSEvent.removeMonitor(NSEvent.EventType.keyDown) NSEvent.addLocalMonitorForEvents(matching: .keyDown) { // print("keyDown event") - - if DebuggerWindowController.current?.isKey ?? false { - return $0 - } - self.keyDown(with: $0) return nil } NSEvent.addLocalMonitorForEvents(matching: .keyUp) { // print("keyUp event") - - if DebuggerWindowController.current?.isKey ?? false { - return $0 - } - self.keyUp(with: $0) return nil }