diff --git a/A2Mac.xcodeproj/project.pbxproj b/A2Mac.xcodeproj/project.pbxproj index 8e01fb4..0fe17d1 100644 --- a/A2Mac.xcodeproj/project.pbxproj +++ b/A2Mac.xcodeproj/project.pbxproj @@ -746,6 +746,7 @@ 32C823392908822E0018438F /* DebuggerWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DebuggerWindowController.swift; sourceTree = ""; }; 32D0897B291A44F200F2B486 /* 6502_bp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = 6502_bp.c; sourceTree = ""; }; 32D08987291A450400F2B486 /* 6502_bp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 6502_bp.h; sourceTree = ""; }; + 32D08992291AF23500F2B486 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = A2Mac/Base.lproj/Debug.storyboard; sourceTree = ""; }; 32DBF7632334657900DD50E7 /* HiRes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HiRes.swift; sourceTree = ""; }; 32DBF76723373FB400DD50E7 /* disassembler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = disassembler.h; sourceTree = ""; }; 32E21BE62491BF8B006C0C72 /* apple-rainbow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "apple-rainbow.png"; sourceTree = ""; }; @@ -1131,6 +1132,7 @@ 32BFFB4E22EACC630003B53F = { isa = PBXGroup; children = ( + 32D08991291AF23500F2B486 /* Debug.storyboard */, 326426112328ADF4008B615F /* Apple_II_ROM.s */, 325EB63123F8861A00C6B4A4 /* src */, 3262F37823E17013008BDB95 /* Resources */, @@ -1826,6 +1828,14 @@ name = Main.storyboard; sourceTree = ""; }; + 32D08991291AF23500F2B486 /* Debug.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 32D08992291AF23500F2B486 /* Base */, + ); + name = Debug.storyboard; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ diff --git a/A2Mac/Base.lproj/Debug.storyboard b/A2Mac/Base.lproj/Debug.storyboard new file mode 100644 index 0000000..927f9ad --- /dev/null +++ b/A2Mac/Base.lproj/Debug.storyboard @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/A2Mac/Base.lproj/Debugger.storyboard b/A2Mac/Base.lproj/Debugger.storyboard index 3f48472..45d6761 100644 --- a/A2Mac/Base.lproj/Debugger.storyboard +++ b/A2Mac/Base.lproj/Debugger.storyboard @@ -222,7 +222,7 @@ - + @@ -308,14 +308,14 @@ C20D: 4C C5 FE JMP $FEC5 - + - + @@ -391,7 +391,7 @@ C20D: 4C C5 FE JMP $FEC5 - + @@ -448,7 +448,7 @@ C20D: 4C C5 FE JMP $FEC5 - + @@ -458,7 +458,7 @@ C20D: 4C C5 FE JMP $FEC5 - + @@ -472,7 +472,7 @@ C20D: 4C C5 FE JMP $FEC5 - + @@ -533,19 +533,19 @@ C20D: 4C C5 FE JMP $FEC5 - + - + - + - + @@ -557,12 +557,12 @@ C20D: 4C C5 FE JMP $FEC5 - + - + @@ -602,7 +602,7 @@ C20D: 4C C5 FE JMP $FEC5 2000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
2090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP
20F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ABCDEFGHIJKLMNOP - + diff --git a/A2Mac/Base.lproj/Main.storyboard b/A2Mac/Base.lproj/Main.storyboard index 8e7d3bf..7a8d55f 100644 --- a/A2Mac/Base.lproj/Main.storyboard +++ b/A2Mac/Base.lproj/Main.storyboard @@ -1525,7 +1525,7 @@ Gw - + @@ -1812,7 +1812,7 @@ Gw - + @@ -1948,7 +1948,7 @@ Gw - + @@ -2000,7 +2000,7 @@ Gw - + @@ -139131,7 +139131,7 @@ BQB9EQcAfREJAH0RCwB9ERQAfREZAH0RHwB9EScAfREpAH0RKwB9ES0AfREvAH0imwB9IqAAfSKtAH0i sAB9Ir0AfSLCAH0iygB9Is0AfSLSAH0i2gAAAAAAAAQBAAAAAAAAAFAAAAAAAAAAAAAAAAAAfSLdA - + YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T S2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBcLDBkaIRQmKisyNTo9PkNGR0pUXF1hZFUkbnVsbNYNDg8Q diff --git a/src/util/disassembler.c b/src/util/disassembler.c index f71db4f..2475d21 100644 --- a/src/util/disassembler.c +++ b/src/util/disassembler.c @@ -11,6 +11,7 @@ #include #include "disassembler.h" #include "6502.h" +#include "6502_bp.h" disassembly_t disassembly; unsigned long long discnt = 0; @@ -74,7 +75,8 @@ void _disNewInstruction(void) { // if ( m6502.dbgLevel.trace ) { memset( &disassembly, 0, sizeof(disassembly) ); disassembly.clk = m6502.clktime + m6502.clkfrm; - snprintf(disassembly.addr, 5, "%04X ", m6502.PC); + disassembly.addr = m6502.PC; + snprintf(disassembly.hexAddr, 5, "%04X ", m6502.PC); disassembly.pOpcode = disassembly.opcode; disassembly.opcode[0] = '\0'; disassembly.inst[0] = '\0'; @@ -172,11 +174,12 @@ void printDisassembly( FILE * f ) { const char * disassemblyLine(_Bool highlight) { static char line[256]; - snprintf( line, sizeof(line), "%s: %-11s%-4s%s", - disassembly.addr, - disassembly.opcode, - disassembly.inst, - disassembly.oper + snprintf( line, sizeof(line), "%s %s: %-11s%-4s%s", + m6502_dbg_bp_is_exists(disassembly.addr) ? "*" : " ", + disassembly.hexAddr, + disassembly.opcode, + disassembly.inst, + disassembly.oper ); if (highlight) { diff --git a/src/util/disassembler.h b/src/util/disassembler.h index 4f20afb..be0f6f0 100644 --- a/src/util/disassembler.h +++ b/src/util/disassembler.h @@ -36,7 +36,8 @@ typedef struct disassembly_s { uint64_t clk; // clock time uint8_t op; // opcode - char addr[DISASS_ADDR_LEN]; // 4 digits + \0 + uint16_t addr; + char hexAddr[DISASS_ADDR_LEN]; // 4 digits + \0 char opcode[DISASS_OPCODE_LEN]; // max 4 bytes * (2 digits + 1 space) + \0 char * pOpcode; // pointer for opcode string builder char inst[DISASS_INST_LEN]; // 3 char (unknown instr? -- give it 6 chars) + \0