mirror of https://github.com/trudnai/Steve2.git
CPU 65C02 bugfixes
This commit is contained in:
parent
822f0eebae
commit
647a3fed66
|
@ -2022,7 +2022,7 @@
|
|||
GCC_ENABLE_CPP_RTTI = YES;
|
||||
GCC_ENABLE_OBJC_EXCEPTIONS = YES;
|
||||
GCC_FAST_MATH = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = g;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_UNROLL_LOOPS = NO;
|
||||
HEADER_SEARCH_PATHS = src/cpu;
|
||||
INFOPLIST_FILE = "A2Mac/Debug-Info.plist";
|
||||
|
|
Binary file not shown.
|
@ -3,53 +3,64 @@
|
|||
version = "1.0">
|
||||
<ContextStates>
|
||||
<ContextState
|
||||
contextName = "AND:6502_instr_logic.h">
|
||||
contextName = "ViewController.newUpdateTimer(timeInterval:):ViewController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "upd">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "HiRes.compute():HiRes.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "UnsafeRawBufferPointer(result)">
|
||||
value = "computePipelineState.maxTotalThreadsPerThreadgroup">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "result[2]">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "computePipelineState.maxTotalThreadsPerThreadgroup">
|
||||
value = "UnsafeRawBufferPointer(result)">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ViewController.mouseMoved(with:):ViewController.swift">
|
||||
contextName = "spkr_toggle:speaker.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "oldLocation">
|
||||
value = "default_MHz_6502 * 1000 * 1000 / spkr_sample_rate">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "mouseLocation">
|
||||
value = "( (spkr_clk + m6502.clkfrm) / ( 1024000 / spkr_sample_rate ) ) * 2">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "view.bounds">
|
||||
value = "(int16_t)28000 + (int16_t)-32768">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "spkr_samples[spkr_sample_last_idx]">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(int)spkr_sample_idx_diff">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.clkfrm">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(spkr_clk + m6502.clkfrm)">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "( (spkr_clk + m6502.clkfrm) / ( default_MHz_6502 * 1000 * 1000 / spkr_sample_rate)) * 2">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "closure #1 in ViewController.Update():ViewController.swift">
|
||||
contextName = "m6502_ColdReset:6502.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "MEMcfg.txt_page_2">
|
||||
value = "m6502">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "self.shadowTxt">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "txt">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "MEMcfg.is_80STORE">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "txtArr">
|
||||
value = "RAM_PG_RD_TBL">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -73,6 +84,14 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "BIT:6502_instr_compare_test.h">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502.A">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "specialized closure #2 in DebuggerViewController.DisplayDisassembly(scrollY:):DebuggerViewController.swift">
|
||||
<PersistentStrings>
|
||||
|
@ -88,10 +107,10 @@
|
|||
value = "disassLineRange[forLine]">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "disassLineRange.count">
|
||||
value = "disassLineRange">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "disassLineRange">
|
||||
value = "disassLineRange.count">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -131,10 +150,10 @@
|
|||
contextName = "HiRes.draw(_:):HiRes.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "ctx?.bitsPerComponent">
|
||||
value = "linAddr">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "ctx?.data">
|
||||
value = "ctx?.height">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "ctx?.width">
|
||||
|
@ -157,14 +176,14 @@
|
|||
<PersistentString
|
||||
value = "(blockH7 | ( block & bitMask ))">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "ctx?.bitsPerComponent">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "HiRes.blockCols">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "linAddr">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "ctx?.height">
|
||||
value = "ctx?.data">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -192,7 +211,7 @@
|
|||
contextName = "DebuggerViewController.DisplayDisassembly():DebuggerViewController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "disass_addr_min">
|
||||
value = "line_number">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "disass_addr">
|
||||
|
@ -201,7 +220,7 @@
|
|||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "line_number">
|
||||
value = "disass_addr_min">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -266,10 +285,10 @@
|
|||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "dest_ind_Y:Apple2_mmio.h">
|
||||
contextName = "mach_msg2_trap:(null)">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "disassembly">
|
||||
value = "m6502">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -290,6 +309,14 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "dest_ind_Y:Apple2_mmio.h">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "disassembly">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "auxMemorySelect:mmio.h">
|
||||
<PersistentStrings>
|
||||
|
@ -335,14 +362,6 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "mach_msg2_trap:(null)">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ViewController.Reset(_:):ViewController.swift">
|
||||
<PersistentStrings>
|
||||
|
@ -351,6 +370,9 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "TXS [inlined]:6502_instr_transfer.h">
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ViewController.currentContext.getter:ViewController.swift">
|
||||
<PersistentStrings>
|
||||
|
@ -476,7 +498,7 @@
|
|||
value = "m6502_saved.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "isCurrentLine">
|
||||
value = "scroll_line_number">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "highlighted_line_number">
|
||||
|
@ -485,7 +507,7 @@
|
|||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "scroll_line_number">
|
||||
value = "isCurrentLine">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -498,6 +520,9 @@
|
|||
<PersistentString
|
||||
value = "textDisplay_height_diff">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "textDisplay.frame">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "MonitorView.textViewBounds">
|
||||
</PersistentString>
|
||||
|
@ -510,9 +535,6 @@
|
|||
<PersistentString
|
||||
value = "textDisplay_width_diff">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "textDisplay.frame">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
|
@ -577,10 +599,10 @@
|
|||
contextName = "set_flags_NZC:common.h">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "(unsigned)0xFF">
|
||||
value = "(unsigned)test ">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(unsigned)test ">
|
||||
value = "(unsigned)0xFF">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -603,6 +625,11 @@
|
|||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "set_flags_Z:6502.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "!test">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "DebuggerViewController.scrollWheel(with:):DebuggerViewController.swift">
|
||||
|
@ -685,10 +712,10 @@
|
|||
value = "MEMcfg.int_Cx_ROM">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.clkfrm">
|
||||
value = "(int)IOframe">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(int)IOframe">
|
||||
value = "m6502.clkfrm">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -699,10 +726,10 @@
|
|||
value = "Apple2_64K_AUX + 0xC600">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "Apple2_64K_RAM + 0xC600">
|
||||
value = "(void*)rom">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(void*)rom">
|
||||
value = "Apple2_64K_RAM + 0xC600">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "strlen(fullPath)">
|
||||
|
@ -808,6 +835,14 @@
|
|||
<ContextState
|
||||
contextName = "POP:6502_instr_stack.h">
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "memread8_low [inlined]:mmio.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ToolBarController.windowWillEnterFullScreen(_:):ToolBarController.swift">
|
||||
<PersistentStrings>
|
||||
|
@ -826,16 +861,16 @@
|
|||
contextName = "DisplayScrollView.scrollWheel(with:):DisplayScrollView.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "subviews[1].subviews">
|
||||
value = "documentView">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "subviews">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "documentView">
|
||||
value = "textView.defaultParagraphStyle?.lineSpacing">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "textView.defaultParagraphStyle?.lineSpacing">
|
||||
value = "subviews[1].subviews">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -871,6 +906,14 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "m6502_Step:6502_C.h">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ioRead:Apple2_mmio.h">
|
||||
<PersistentStrings>
|
||||
|
@ -927,10 +970,10 @@
|
|||
contextName = "_fetch_dbg:mmio.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "disassembly.pOpcode">
|
||||
value = "memread8_low(m6502.PC)">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "memread8_low(m6502.PC)">
|
||||
value = "disassembly.pOpcode">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -938,16 +981,19 @@
|
|||
contextName = "m6502_dbg_bp_add:6502_bp.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "bp">
|
||||
value = "mem_bp_arr">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "bp_array">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "mem_bp_arr">
|
||||
value = "bp">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "m6502_Step_dbg:6502_dbg.c">
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ioRead:mmio.h">
|
||||
<PersistentStrings>
|
||||
|
@ -1016,7 +1062,7 @@
|
|||
contextName = "DebuggerViewController.DisplayDisassembly(scrollY:):DebuggerViewController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "scroll_line_number">
|
||||
value = "isCurrentLine">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "highlighted_line_number">
|
||||
|
@ -1025,7 +1071,7 @@
|
|||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "isCurrentLine">
|
||||
value = "scroll_line_number">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1141,7 +1187,7 @@
|
|||
contextName = "LoRes.Update():LoRes.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "UInt8( (block >> 4) & 0x0F )">
|
||||
value = "blockChanged[ screenIdx ]">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "UInt8(block)">
|
||||
|
@ -1150,7 +1196,7 @@
|
|||
value = "UInt8(block & 4)">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "blockChanged[ screenIdx ]">
|
||||
value = "UInt8( (block >> 4) & 0x0F )">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1207,22 +1253,22 @@
|
|||
value = "m6502">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "Apple2_64K_AUX + 0x3600">
|
||||
value = "(void*)Apple2_64K_RAM">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.clkfrm">
|
||||
value = "Apple2_64K_RAM + 0x3600">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.ecoSpindown">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "Apple2_64K_AUX + 0x3600">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(void*)Apple2_64K_RAM">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "Apple2_64K_RAM + 0x3600">
|
||||
value = "m6502.clkfrm">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1236,7 +1282,7 @@
|
|||
value = "pdl_value[pdl]">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "normalized_time">
|
||||
value = "normalized_time >= pdl_value[pdl] ? 255 : 0">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(3300 * 255/3300)">
|
||||
|
@ -1248,7 +1294,7 @@
|
|||
value = "1 * 512 * (1 - ( 3300 / 3300.0 ))">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "normalized_time >= pdl_value[pdl] ? 255 : 0">
|
||||
value = "normalized_time">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1267,10 +1313,10 @@
|
|||
contextName = "ToolBarController.GamePort(_:):ToolBarController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "ViewController.current?.mouseCursorHidden">
|
||||
value = "ViewController.current?.mouseCursorJoystickEmulation">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "ViewController.current?.mouseCursorJoystickEmulation">
|
||||
value = "ViewController.current?.mouseCursorHidden">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1493,7 +1539,7 @@
|
|||
value = "m6502.PC">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.debugger.on">
|
||||
value = "m6502.clkfrm">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "textLines * (textCols+1) + textCols">
|
||||
|
@ -1502,7 +1548,7 @@
|
|||
value = "frameCounter">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.clkfrm">
|
||||
value = "m6502.debugger.on">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "spkr_play_disk_motor_time">
|
||||
|
@ -1532,13 +1578,13 @@
|
|||
contextName = "m6502_Debug:6502.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502.debugger.SP">
|
||||
value = "m6502.SP">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.debugger.mask.ret">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.SP">
|
||||
value = "m6502.debugger.SP">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1563,7 +1609,7 @@
|
|||
value = "new">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "WOZtmp.shift16">
|
||||
value = "WOZwrite.shift16">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "WOZwrite.shift">
|
||||
|
@ -1575,7 +1621,7 @@
|
|||
value = "(1 << i) - 1">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "WOZwrite.shift16">
|
||||
value = "WOZtmp.shift16">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
@ -1599,6 +1645,9 @@
|
|||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "AND:6502_instr_logic.h">
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "specialized closure #1 in DebuggerViewController.DisplayDisassembly():DebuggerViewController.swift">
|
||||
<PersistentStrings>
|
||||
|
@ -1614,50 +1663,36 @@
|
|||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "ViewController.newUpdateTimer(timeInterval:):ViewController.swift">
|
||||
contextName = "ViewController.mouseMoved(with:):ViewController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "upd">
|
||||
value = "oldLocation">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "mouseLocation">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "view.bounds">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "spkr_toggle:speaker.c">
|
||||
contextName = "closure #1 in ViewController.Update():ViewController.swift">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "default_MHz_6502 * 1000 * 1000 / spkr_sample_rate">
|
||||
value = "txtArr">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "( (spkr_clk + m6502.clkfrm) / ( default_MHz_6502 * 1000 * 1000 / spkr_sample_rate)) * 2">
|
||||
value = "self.shadowTxt">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(int16_t)28000 + (int16_t)-32768">
|
||||
value = "txt">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "spkr_samples[spkr_sample_last_idx]">
|
||||
value = "MEMcfg.txt_page_2">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(int)spkr_sample_idx_diff">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "m6502.clkfrm">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "(spkr_clk + m6502.clkfrm)">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "( (spkr_clk + m6502.clkfrm) / ( 1024000 / spkr_sample_rate ) ) * 2">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
<ContextState
|
||||
contextName = "m6502_ColdReset:6502.c">
|
||||
<PersistentStrings>
|
||||
<PersistentString
|
||||
value = "m6502">
|
||||
</PersistentString>
|
||||
<PersistentString
|
||||
value = "RAM_PG_RD_TBL">
|
||||
value = "MEMcfg.is_80STORE">
|
||||
</PersistentString>
|
||||
</PersistentStrings>
|
||||
</ContextState>
|
||||
|
|
|
@ -428,7 +428,7 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textView editable="NO" selectable="NO" drawsBackground="NO" importsGraphics="NO" richText="NO" horizontallyResizable="YES" verticallyResizable="YES" baseWritingDirection="leftToRight" findStyle="bar" allowsCharacterPickerTouchBarItem="NO" textCompletion="NO" id="Hwx-Gd-XW1" userLabel="Disass Display" customClass="DisassView" customModule="A2MacTests" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="-807" width="364" height="754"/>
|
||||
<rect key="frame" x="0.0" y="-807" width="366" height="754"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" red="0.12549019610000001" green="0.12549019610000001" blue="0.12549019610000001" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
@ -541,7 +541,7 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textView editable="NO" selectable="NO" drawsBackground="NO" importsGraphics="NO" richText="NO" horizontallyResizable="YES" verticallyResizable="YES" baseWritingDirection="leftToRight" findStyle="bar" allowsCharacterPickerTouchBarItem="NO" textCompletion="NO" id="Wrs-Qt-Kmd" userLabel="CPU Display" customClass="DisplayView" customModule="A2MacTests" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="-12" width="298" height="270"/>
|
||||
<rect key="frame" x="0.0" y="-34" width="298" height="270"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
|
|
|
@ -1415,9 +1415,9 @@ Gw
|
|||
<toolbarItem implicitItemIdentifier="34201AE0-6358-4CC1-A7D5-BEB45E6353C8" label="Pause" paletteLabel="Pause" image="NSTouchBarPlayTemplate" id="QIP-vh-jcn">
|
||||
<nil key="toolTip"/>
|
||||
<size key="minSize" width="30" height="17"/>
|
||||
<size key="maxSize" width="30" height="43"/>
|
||||
<size key="maxSize" width="30.5" height="43"/>
|
||||
<button key="view" verticalHuggingPriority="750" id="s08-fv-vSO">
|
||||
<rect key="frame" x="5" y="14" width="30" height="30"/>
|
||||
<rect key="frame" x="4" y="14" width="30.5" height="30.5"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="NSTouchBarPlayTemplate" imagePosition="overlaps" alignment="center" alternateImage="NSTouchBarPauseTemplate" refusesFirstResponder="YES" state="on" imageScaling="proportionallyUpOrDown" inset="2" id="knw-Ib-jcb">
|
||||
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
|
||||
|
@ -1525,7 +1525,7 @@ Gw
|
|||
<popUpButton key="view" id="rfS-6q-EKe">
|
||||
<rect key="frame" x="0.0" y="14" width="43" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:8bV-Aa-zHf:image" imagePosition="only" alignment="right" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" id="8bV-Aa-zHf">
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="Quick Disk" imagePosition="only" alignment="right" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" id="8bV-Aa-zHf">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="7Vp-Rc-UbT">
|
||||
|
@ -1548,7 +1548,7 @@ Gw
|
|||
<popUpButton key="view" id="MAv-S5-diZ">
|
||||
<rect key="frame" x="0.0" y="14" width="43" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:8bV-Aa-zHf:image" imagePosition="only" alignment="right" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" id="WVW-Wo-mc9">
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="Chip" imagePosition="only" alignment="right" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" id="WVW-Wo-mc9">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="Gc4-Or-LMB">
|
||||
|
@ -1678,9 +1678,9 @@ Gw
|
|||
<toolbarItem implicitItemIdentifier="F5BAA7C3-C922-4726-B2A8-8A0DE12714FC" label="▬" paletteLabel="Vol Dn" image="NSTouchBarAudioOutputVolumeLowTemplate" id="hS6-wo-pAT">
|
||||
<nil key="toolTip"/>
|
||||
<size key="minSize" width="30" height="17"/>
|
||||
<size key="maxSize" width="30" height="43"/>
|
||||
<size key="maxSize" width="30.5" height="43"/>
|
||||
<button key="view" verticalHuggingPriority="750" id="amQ-uj-Tj3">
|
||||
<rect key="frame" x="6" y="14" width="30" height="30"/>
|
||||
<rect key="frame" x="6" y="14" width="30.5" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="NSTouchBarAudioOutputVolumeLowTemplate" imagePosition="only" alignment="center" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" id="lNO-83-703">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
|
@ -1694,9 +1694,9 @@ Gw
|
|||
<toolbarItem implicitItemIdentifier="0228EA55-4F19-4473-A924-6F4C7A50EB97" label="+" paletteLabel="Vol Up" image="NSTouchBarAudioOutputVolumeMediumTemplate" id="AMa-TQ-7Ol">
|
||||
<nil key="toolTip"/>
|
||||
<size key="minSize" width="30" height="17"/>
|
||||
<size key="maxSize" width="30" height="43"/>
|
||||
<size key="maxSize" width="30.5" height="43"/>
|
||||
<button key="view" verticalHuggingPriority="750" id="5X8-Hl-B1g">
|
||||
<rect key="frame" x="6" y="14" width="30" height="30"/>
|
||||
<rect key="frame" x="6" y="14" width="30.5" height="30"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="NSTouchBarAudioOutputVolumeMediumTemplate" imagePosition="only" alignment="center" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" id="jbz-XG-aU0">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
|
@ -1724,7 +1724,7 @@ Gw
|
|||
<toolbarItem implicitItemIdentifier="75D731EB-3958-43CF-B41F-E9B3CF3DB013" label="Mode" paletteLabel="Mode" title="Normal" sizingBehavior="auto" id="eSg-vU-9jb">
|
||||
<nil key="toolTip"/>
|
||||
<popUpButton key="view" verticalHuggingPriority="750" id="zbq-Ya-yng">
|
||||
<rect key="frame" x="0.0" y="14" width="100" height="24"/>
|
||||
<rect key="frame" x="0.0" y="14" width="79" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<popUpButtonCell key="cell" type="roundTextured" title="Normal" bezelStyle="texturedRounded" alignment="left" lineBreakMode="truncatingTail" refusesFirstResponder="YES" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" selectedItem="GOP-dB-hxr" id="gvK-7N-vUR">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
|
@ -1948,7 +1948,7 @@ Gw
|
|||
<subviews>
|
||||
<popUpButton translatesAutoresizingMaskIntoConstraints="NO" id="49f-8R-QCc" userLabel="Disk1 Button">
|
||||
<rect key="frame" x="-5" y="75" width="109" height="99"/>
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:8bV-Aa-zHf:image" imagePosition="only" alignment="left" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" altersStateOfSelectedItem="NO" id="CNs-lh-urM" userLabel="Disk1 Pop Up Button Cell">
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:CNs-lh-urM:image" imagePosition="only" alignment="left" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" altersStateOfSelectedItem="NO" id="CNs-lh-urM" userLabel="Disk1 Pop Up Button Cell">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="N33-K0-nba" userLabel="Disk1 Menu">
|
||||
|
@ -2000,7 +2000,7 @@ Gw
|
|||
</popUpButton>
|
||||
<popUpButton translatesAutoresizingMaskIntoConstraints="NO" id="QDr-Cp-9QQ" userLabel="Disk2 Button">
|
||||
<rect key="frame" x="-5" y="0.0" width="109" height="99"/>
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:8bV-Aa-zHf:image" imagePosition="only" alignment="left" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" altersStateOfSelectedItem="NO" selectedItem="28N-X8-n7Q" id="8FA-1D-k8p">
|
||||
<popUpButtonCell key="cell" type="bevel" bezelStyle="regularSquare" image="popUpButtonCell:CNs-lh-urM:image" imagePosition="only" alignment="left" lineBreakMode="truncatingTail" refusesFirstResponder="YES" imageScaling="proportionallyUpOrDown" inset="2" pullsDown="YES" arrowPosition="noArrow" altersStateOfSelectedItem="NO" selectedItem="28N-X8-n7Q" id="8FA-1D-k8p">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="8He-mk-LVI">
|
||||
|
@ -139134,7 +139134,7 @@ fRFJAH0RSwB9EU0AfSLtAH0i8gB9Iv8AfSMCAH0jDwB9IxQAfSMcAH0jHwB9IyQAfSMsAAAAAAAABAEA
|
|||
AAAAAAAAUQAAAAAAAAAAAAAAAAB9Iy8
|
||||
</mutableData>
|
||||
</image>
|
||||
<image name="popUpButtonCell:8bV-Aa-zHf:image" width="1" height="1">
|
||||
<image name="popUpButtonCell:CNs-lh-urM:image" width="1" height="1">
|
||||
<mutableData key="keyedArchiveRepresentation">
|
||||
YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMSAAGGoF8QD05T
|
||||
S2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBcLDBkaIRQmKywzNjs+P0RHSEtVXV5iZVUkbnVsbNYNDg8Q
|
||||
|
|
|
@ -299,8 +299,8 @@ KEY TXT MIX HGR 80C ALT
|
|||
|
||||
func DisplayMemory() {
|
||||
var memory = ""
|
||||
for i : UInt16 in stride(from: mem_1_addr, to: mem_1_addr + 0x21F, by: 16) {
|
||||
memory += hexLine16(addr: i) + " " + textLine16(addr: i) + "\n"
|
||||
for i : UInt32 in stride(from: UInt32(mem_1_addr), to: UInt32(mem_1_addr) + 0x21F, by: 16) {
|
||||
memory += hexLine16(addr: UInt16(i & 0xFFFF)) + " " + textLine16(addr: UInt16(i & 0xFFFF)) + "\n"
|
||||
}
|
||||
|
||||
DispatchQueue.main.async {
|
||||
|
|
|
@ -264,12 +264,14 @@ INLINE int m6502_Step(void) {
|
|||
disNewInstruction();
|
||||
|
||||
switch ( fetch() ) {
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_C_Rockwell.h" // Extended 65C02 instructions
|
||||
|
||||
default:
|
||||
dbgPrintf("%04X: Unimplemented Instruction 0x%02X\n", m6502.PC -1, memread( m6502.PC -1 ));
|
||||
// printf("%04X: Unimplemented Instruction 0x%02X\n", m6502.PC -1, memread( m6502.PC -1 ));
|
||||
m6502.interrupt = INV;
|
||||
return 2;
|
||||
} // switch fetch16
|
||||
|
|
|
@ -235,16 +235,19 @@ extern double * pdl_diffarr;
|
|||
extern double mips;
|
||||
extern double mhz;
|
||||
|
||||
#define DEFAULT_FPS 30U
|
||||
#define DEFAULT_FPS 60U
|
||||
#define DEF_VIDEO_DIV 1U
|
||||
#define DEF_SPKR_DIV 1U
|
||||
#define DEF_DRV_LED_DIV 4U
|
||||
|
||||
#define ECO_VIDEO_DIV 2U
|
||||
#define ECO_VIDEO_DIV 4U
|
||||
|
||||
#define GAME_FPS 180U // 90U // 120U // 180U // 240U // 480U // 600U
|
||||
#define GAME_VIDEO_DIV 1U // (GAME_FPS / DEFAULT_FPS)
|
||||
#define GAME_SPKR_DIV 6U // 16U
|
||||
//#define GAME_FPS 180U // 90U // 120U // 180U // 240U // 480U // 600U
|
||||
//#define GAME_VIDEO_DIV 1U // (GAME_FPS / DEFAULT_FPS)
|
||||
//#define GAME_SPKR_DIV 6U // 16U
|
||||
#define GAME_FPS 180U // 300U // 240U // 180U // 120U
|
||||
#define GAME_VIDEO_DIV 1U // 4U // (GAME_FPS / DEFAULT_FPS)
|
||||
#define GAME_SPKR_DIV 1U // 8U // 16U
|
||||
|
||||
extern unsigned int video_fps_divider;
|
||||
extern unsigned int fps;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
//
|
||||
//
|
||||
// 6502_und.h
|
||||
// A2Mac
|
||||
//
|
||||
|
@ -63,7 +63,7 @@
|
|||
case 0x32: AND( src_ind() ); return 5; // AND (zpg)
|
||||
case 0x52: EOR( src_ind() ); return 5; // EOR (zpg)
|
||||
case 0x72: ADC( src_ind() ); return 5; // ADC (zpg)
|
||||
case 0x92: STA( src_ind() ); return 5; // STA (zpg)
|
||||
case 0x92: STA( addr_ind() ); return 5; // STA (zpg)
|
||||
case 0xB2: LDA( src_ind() ); return 5; // LDA (zpg)
|
||||
case 0xD2: CMP( src_ind() ); return 5; // CMP (zpg)
|
||||
case 0xF2: SBC( src_ind() ); return 5; // SBC (zpg)
|
||||
|
@ -71,14 +71,14 @@
|
|||
// BIT - imm abs,X zp,X addressing modes
|
||||
case 0x34: BIT( src_zp_X() ); return 4; // BIT zpg,X
|
||||
case 0x3C: BIT( src_abs_X() ); return 4; // BIT abs,X
|
||||
case 0x89: BIT( imm() ); return 2; // BIT imm
|
||||
case 0x89: BITI( imm() ); return 2; // BIT imm
|
||||
|
||||
// DEC INC - acc addressing mode
|
||||
case 0x1A: INA(); return 2; // INA imm (INC A)
|
||||
case 0x3A: DEA(); return 2; // DEA imm (DEC A)
|
||||
|
||||
// JMP - (abs,X) addressing mode
|
||||
case 0x7C: JMP( abs_addr_X() ); return 6; // JMP abs,X
|
||||
case 0x7C: JMP( addr_ind_ind_X()); return 6; // abs_addr_X() ); return 6; // JMP abs,X
|
||||
|
||||
// Additional instructions
|
||||
|
||||
|
@ -104,5 +104,59 @@
|
|||
case 0x1C: TRB( addr_abs() ); return 6; // TRB abs
|
||||
|
||||
|
||||
/// Undocumented NOPs
|
||||
|
||||
case 0x02:
|
||||
case 0x22:
|
||||
case 0x42:
|
||||
case 0x62:
|
||||
case 0x82:
|
||||
case 0xC2:
|
||||
case 0xE2: NOP(); fetch(); return 2; // NOP* (2 bytes) (undocumented)
|
||||
|
||||
case 0x44: NOP(); fetch(); return 3; // NOP* (2 bytes) (undocumented)
|
||||
|
||||
case 0x54:
|
||||
case 0xD4:
|
||||
case 0xF4: NOP(); fetch(); return 4; // NOP* (2 bytes) (undocumented)
|
||||
|
||||
case 0x5C: NOP(); fetch16(); return 8; // NOP* (3 bytes) (undocumented)
|
||||
|
||||
case 0xDC:
|
||||
case 0xFC: NOP(); fetch16(); return 4; // NOP* (3 bytes) (undocumented)
|
||||
|
||||
case 0x03:
|
||||
case 0x13:
|
||||
case 0x23:
|
||||
case 0x33:
|
||||
case 0x43:
|
||||
case 0x53:
|
||||
case 0x63:
|
||||
case 0x73:
|
||||
case 0x83:
|
||||
case 0x93:
|
||||
case 0xA3:
|
||||
case 0xB3:
|
||||
case 0xC3:
|
||||
case 0xD3:
|
||||
case 0xE3:
|
||||
case 0xF3:
|
||||
|
||||
case 0x0B:
|
||||
case 0x1B:
|
||||
case 0x2B:
|
||||
case 0x3B:
|
||||
case 0x4B:
|
||||
case 0x5B:
|
||||
case 0x6B:
|
||||
case 0x7B:
|
||||
case 0x8B:
|
||||
case 0x9B:
|
||||
case 0xAB:
|
||||
case 0xBB:
|
||||
|
||||
case 0xEB:
|
||||
case 0xFB: NOP(); return 1; // NOP* (1 byte) (undocumented)
|
||||
|
||||
|
||||
#endif /* _6502_C_h */
|
||||
|
|
|
@ -55,23 +55,23 @@
|
|||
|
||||
|
||||
// RMB SMB - Reset or Set Memory Bit
|
||||
case 0x07: RMB0( src_zp() ); return 5; // RMB0 zpg, rel
|
||||
case 0x17: RMB1( src_zp() ); return 5; // RMB1 zpg, rel
|
||||
case 0x27: RMB2( src_zp() ); return 5; // RMB2 zpg, rel
|
||||
case 0x37: RMB3( src_zp() ); return 5; // RMB3 zpg, rel
|
||||
case 0x47: RMB4( src_zp() ); return 5; // RMB4 zpg, rel
|
||||
case 0x57: RMB5( src_zp() ); return 5; // RMB5 zpg, rel
|
||||
case 0x67: RMB6( src_zp() ); return 5; // RMB6 zpg, rel
|
||||
case 0x77: RMB7( src_zp() ); return 5; // RMB7 zpg, rel
|
||||
case 0x07: RMB0( addr_zp() ); return 5; // RMB0 zpg, rel
|
||||
case 0x17: RMB1( addr_zp() ); return 5; // RMB1 zpg, rel
|
||||
case 0x27: RMB2( addr_zp() ); return 5; // RMB2 zpg, rel
|
||||
case 0x37: RMB3( addr_zp() ); return 5; // RMB3 zpg, rel
|
||||
case 0x47: RMB4( addr_zp() ); return 5; // RMB4 zpg, rel
|
||||
case 0x57: RMB5( addr_zp() ); return 5; // RMB5 zpg, rel
|
||||
case 0x67: RMB6( addr_zp() ); return 5; // RMB6 zpg, rel
|
||||
case 0x77: RMB7( addr_zp() ); return 5; // RMB7 zpg, rel
|
||||
|
||||
case 0x87: SMB0( src_zp() ); return 5; // SMB0 zpg, rel
|
||||
case 0x97: SMB1( src_zp() ); return 5; // SMB1 zpg, rel
|
||||
case 0xA7: SMB2( src_zp() ); return 5; // SMB2 zpg, rel
|
||||
case 0xB7: SMB3( src_zp() ); return 5; // SMB3 zpg, rel
|
||||
case 0xC7: SMB4( src_zp() ); return 5; // SMB4 zpg, rel
|
||||
case 0xD7: SMB5( src_zp() ); return 5; // SMB5 zpg, rel
|
||||
case 0xE7: SMB6( src_zp() ); return 5; // SMB6 zpg, rel
|
||||
case 0xF7: SMB7( src_zp() ); return 5; // SMB7 zpg, rel
|
||||
case 0x87: SMB0( addr_zp() ); return 5; // SMB0 zpg, rel
|
||||
case 0x97: SMB1( addr_zp() ); return 5; // SMB1 zpg, rel
|
||||
case 0xA7: SMB2( addr_zp() ); return 5; // SMB2 zpg, rel
|
||||
case 0xB7: SMB3( addr_zp() ); return 5; // SMB3 zpg, rel
|
||||
case 0xC7: SMB4( addr_zp() ); return 5; // SMB4 zpg, rel
|
||||
case 0xD7: SMB5( addr_zp() ); return 5; // SMB5 zpg, rel
|
||||
case 0xE7: SMB6( addr_zp() ); return 5; // SMB6 zpg, rel
|
||||
case 0xF7: SMB7( addr_zp() ); return 5; // SMB7 zpg, rel
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
#define CLK_WAIT
|
||||
|
||||
#define DEBUGGER
|
||||
//#define DISASSEMBLER
|
||||
#undef DISASSEMBLER
|
||||
|
||||
#define FETCH_ADDR disass_addr
|
||||
|
||||
|
@ -85,9 +85,10 @@ INLINE int m6502_Step_dbg(void) {
|
|||
disNewInstruction();
|
||||
|
||||
switch ( fetch() ) {
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_C_Rockwell.h" // Extended 65C02 instructions
|
||||
|
||||
default:
|
||||
dbgPrintf("%04X: Unimplemented Instruction 0x%02X\n", m6502.PC -1, memread( m6502.PC -1 ));
|
||||
|
|
|
@ -17,9 +17,10 @@ INLINE int m6502_Disass_1_Instr(void) {
|
|||
_disNewInstruction();
|
||||
|
||||
switch ( _fetch_dis() ) {
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_std.h" // Standard 6502 instructions
|
||||
//#include "6502_und.h" // Undocumented 6502 instructions
|
||||
#include "6502_C.h" // Extended 65C02 instructions
|
||||
#include "6502_C_Rockwell.h" // Extended 65C02 instructions
|
||||
|
||||
default:
|
||||
dbgPrintf("%04X: Unimplemented Instruction 0x%02X\n", m6502.PC -1, _memread_dis( m6502.PC -1 ));
|
||||
|
|
|
@ -48,6 +48,14 @@ INSTR void BIT( uint8_t src ) {
|
|||
set_flags_Z(m6502.A & src);
|
||||
#endif
|
||||
}
|
||||
INSTR void BITI( uint8_t src ) {
|
||||
dbgPrintf("BIT(%02X) ", src);
|
||||
disPrintf(disassembly.inst, "BIT");
|
||||
|
||||
#ifndef DISASSEMBLER
|
||||
set_flags_Z(m6502.A & src);
|
||||
#endif
|
||||
}
|
||||
|
||||
/**
|
||||
TRB - Test and Reset Bits
|
||||
|
|
|
@ -45,8 +45,9 @@ INSTR int BRK(void) {
|
|||
m6502.B = 1;
|
||||
PUSH( getFlags().SR );
|
||||
m6502.I = 1;
|
||||
m6502.PC = memread16(IRQ_VECTOR);
|
||||
m6502.interrupt = BREAK;
|
||||
m6502.D = 0;
|
||||
m6502.PC = memread16_high(IRQ_VECTOR);
|
||||
// m6502.interrupt = BREAK;
|
||||
#endif
|
||||
return 7;
|
||||
}
|
||||
|
|
|
@ -1028,9 +1028,9 @@ INLINE uint16_t memread16_low( uint16_t addr ) {
|
|||
// avoid unaligned memory access
|
||||
// return (uint16_t)Apple2_64K_MEM[addr] | (uint16_t)Apple2_64K_MEM[addr+1] << 8;
|
||||
}
|
||||
//INLINE uint16_t memread16_high( uint16_t addr ) {
|
||||
// return * (uint16_t*) ( RDHIMEM + addr );
|
||||
//}
|
||||
INLINE uint16_t memread16_high( uint16_t addr ) {
|
||||
return * (uint16_t*) ( RDHIMEM + addr );
|
||||
}
|
||||
INLINE uint16_t memread16( uint16_t addr ) {
|
||||
|
||||
// if (addr >= 0xC000) {
|
||||
|
@ -1380,7 +1380,7 @@ INLINE uint16_t _addr_ind_dbg(void) {
|
|||
return addr;
|
||||
}
|
||||
INLINE uint16_t _addr_ind_dis(void) {
|
||||
_disPrintf(disassembly.oper, sizeof(disassembly.oper), "($%02X,X)", memread8(m6502.PC) );
|
||||
_disPrintf(disassembly.oper, sizeof(disassembly.oper), "($%02X)", memread8(m6502.PC) );
|
||||
_disPrintf(disassembly.comment, sizeof(disassembly.comment), "ind_addr:%04X", memread16( memread8(m6502.PC)) );
|
||||
|
||||
return memread16( _fetch_dis() );
|
||||
|
@ -1430,6 +1430,32 @@ INLINE uint8_t _src_X_ind_dis(void) {
|
|||
// return WRLOMEM + addr_ind_X();
|
||||
//}
|
||||
|
||||
/**
|
||||
Used only by [0x7C] JMP (ind,X) in 65C02)
|
||||
X,ind .... X-indexed, indirect OPC ($LL,X)
|
||||
operand is zeropage address;
|
||||
effective address is word in (LL + X, LL + X + 1), inc. without carry: C.w($00LL + X)
|
||||
**/
|
||||
INLINE uint16_t _addr_ind_ind_X(void) {
|
||||
return memread16( (uint16_t)(_fetch16() + m6502.X) );
|
||||
}
|
||||
INLINE uint16_t _addr_ind_ind_X_rd_dbg(void) {
|
||||
return _memread16_dbg( (uint16_t)(_fetch16() + m6502.X) );
|
||||
}
|
||||
INLINE uint16_t _addr_ind_ind_X_dbg(void) {
|
||||
uint16_t addr = _memread16_dbg( (uint16_t)(_fetch16() + m6502.X));
|
||||
check_mem_wr_bp(addr); // write debug on the target address
|
||||
return addr;
|
||||
}
|
||||
INLINE uint16_t _addr_ind_ind_X_dis(void) {
|
||||
_disPrintf(disassembly.oper, sizeof(disassembly.oper), "($%02X,X)", memread16(m6502.PC) );
|
||||
_disPrintf(disassembly.comment, sizeof(disassembly.comment), "ind_addr:%04X", memread16( memread16(m6502.PC) + m6502.X) );
|
||||
|
||||
return memread16( (uint16_t)(_fetch16_dis() + m6502.X) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
ind,Y .... indirect, Y-indexed OPC ($LL),Y
|
||||
operand is zeropage address;
|
||||
|
|
|
@ -408,6 +408,7 @@ INLINE void ioWrite( uint16_t addr, uint8_t val );
|
|||
INLINE uint8_t memread8_low( uint16_t addr );
|
||||
INLINE uint8_t memread8_high( uint16_t addr );
|
||||
INLINE uint8_t memread8( uint16_t addr );
|
||||
INLINE uint16_t memread16_high( uint16_t addr );
|
||||
INLINE uint16_t memread16_low( uint16_t addr );
|
||||
INLINE uint16_t memread16( uint16_t addr );
|
||||
INLINE uint8_t _memread( uint16_t addr );
|
||||
|
@ -465,6 +466,9 @@ INLINE uint8_t _src_ind_dis(void);
|
|||
INLINE uint16_t _addr_ind_X(void);
|
||||
INLINE uint16_t _addr_ind_X_dbg(void);
|
||||
INLINE uint16_t _addr_ind_X_dis(void);
|
||||
INLINE uint16_t _addr_ind_ind_X(void);
|
||||
INLINE uint16_t _addr_ind_ind_X_dbg(void);
|
||||
INLINE uint16_t _addr_ind_ind_X_dis(void);
|
||||
INLINE uint8_t _src_X_ind(void);
|
||||
INLINE uint8_t _src_X_ind_dbg(void);
|
||||
INLINE uint8_t _src_X_ind_dis(void);
|
||||
|
@ -513,6 +517,7 @@ INLINE uint8_t _src_zp_Y_dis(void);
|
|||
#define addr_ind() _addr_ind_dis()
|
||||
#define src_ind() _src_ind_dis()
|
||||
#define addr_ind_X() _addr_ind_X_dis()
|
||||
#define addr_ind_ind_X() _addr_ind_ind_X_dis()
|
||||
#define src_X_ind() _src_X_ind_dis()
|
||||
#define addr_ind_Y() _addr_ind_Y_dis()
|
||||
#define src_ind_Y() _src_ind_Y_dis()
|
||||
|
@ -546,6 +551,7 @@ INLINE uint8_t _src_zp_Y_dis(void);
|
|||
#define addr_ind() _addr_ind_dbg()
|
||||
#define src_ind() _src_ind_dbg()
|
||||
#define addr_ind_X() _addr_ind_X_dbg()
|
||||
#define addr_ind_ind_X() _addr_ind_ind_X_dbg()
|
||||
#define src_X_ind() _src_X_ind_dbg()
|
||||
#define addr_ind_Y() _addr_ind_Y_dbg()
|
||||
#define src_ind_Y() _src_ind_Y_dbg()
|
||||
|
@ -579,6 +585,7 @@ INLINE uint8_t _src_zp_Y_dis(void);
|
|||
#define addr_ind() _addr_ind()
|
||||
#define src_ind() _src_ind()
|
||||
#define addr_ind_X() _addr_ind_X()
|
||||
#define addr_ind_ind_X() _addr_ind_ind_X()
|
||||
#define src_X_ind() _src_X_ind()
|
||||
#define addr_ind_Y() _addr_ind_Y()
|
||||
#define src_ind_Y() _src_ind_Y()
|
||||
|
|
Loading…
Reference in New Issue