diff --git a/A2Mac.xcodeproj/project.pbxproj b/A2Mac.xcodeproj/project.pbxproj index 2662910..fe785e8 100644 --- a/A2Mac.xcodeproj/project.pbxproj +++ b/A2Mac.xcodeproj/project.pbxproj @@ -68,7 +68,7 @@ /* Begin PBXFileReference section */ 32439F7222ECD8AC0077AAE0 /* A2Mac-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "A2Mac-Bridging-Header.h"; sourceTree = ""; }; - 32439F7322ECD8AD0077AAE0 /* Apple2_mmio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Apple2_mmio.h; sourceTree = ""; }; + 32439F7322ECD8AD0077AAE0 /* mmio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mmio.h; sourceTree = ""; }; 32439F7422ECD8AD0077AAE0 /* 6502.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = 6502.c; sourceTree = ""; }; 32439F7622ECD8AD0077AAE0 /* 6502_instr_set_clr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 6502_instr_set_clr.h; sourceTree = ""; }; 32439F7722ECD8AD0077AAE0 /* 6502_instr_stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 6502_instr_stack.h; sourceTree = ""; }; @@ -187,6 +187,7 @@ 325EB63123F8861A00C6B4A4 /* src */ = { isa = PBXGroup; children = ( + 325EB63A23FA572000C6B4A4 /* cpu */, 325EB63723F9492200C6B4A4 /* util */, 325EB63223F8862A00C6B4A4 /* dev */, ); @@ -196,6 +197,7 @@ 325EB63223F8862A00C6B4A4 /* dev */ = { isa = PBXGroup; children = ( + 325EB63B23FA57C000C6B4A4 /* mem */, 325EB63323F8863100C6B4A4 /* disk */, ); path = dev; @@ -217,10 +219,30 @@ children = ( 32439F8622ECD8AD0077AAE0 /* common.h */, 325EB63823F9E48100C6B4A4 /* common.c */, + 32DBF76723373FB400DD50E7 /* disassembler.h */, ); path = util; sourceTree = ""; }; + 325EB63A23FA572000C6B4A4 /* cpu */ = { + isa = PBXGroup; + children = ( + 32439F7522ECD8AD0077AAE0 /* instructions */, + 32439F8522ECD8AD0077AAE0 /* 6502.h */, + 32439F7422ECD8AD0077AAE0 /* 6502.c */, + ); + path = cpu; + sourceTree = ""; + }; + 325EB63B23FA57C000C6B4A4 /* mem */ = { + isa = PBXGroup; + children = ( + 32439F7322ECD8AD0077AAE0 /* mmio.h */, + 3264261023284F6F008B615F /* Apple2_mmio_8bit_ioaddr.h */, + ); + path = mem; + sourceTree = ""; + }; 3262F37823E17013008BDB95 /* Resources */ = { isa = PBXGroup; children = ( @@ -260,15 +282,9 @@ children = ( 325EB63123F8861A00C6B4A4 /* src */, 3262F37823E17013008BDB95 /* Resources */, - 32439F7522ECD8AD0077AAE0 /* instructions */, - 32439F8522ECD8AD0077AAE0 /* 6502.h */, - 32439F7422ECD8AD0077AAE0 /* 6502.c */, - 32DBF76723373FB400DD50E7 /* disassembler.h */, 32439F8422ECD8AD0077AAE0 /* apple.rom */, 326ED2EE232D7A0000A41337 /* 6502_functional_test.bin */, 32B18438233FAB3900DBB4AB /* verticies.swift */, - 32439F7322ECD8AD0077AAE0 /* Apple2_mmio.h */, - 3264261023284F6F008B615F /* Apple2_mmio_8bit_ioaddr.h */, 32BFFB5A22EACC630003B53F /* AppDelegate.swift */, 32BFFB5C22EACC630003B53F /* ViewController.swift */, 32B18435233F10BC00DBB4AB /* Shaders.metal */, diff --git a/A2Mac/6502.c b/A2Mac/src/cpu/6502.c similarity index 99% rename from A2Mac/6502.c rename to A2Mac/src/cpu/6502.c index 0cf6cd0..f4c6e3f 100644 --- a/A2Mac/6502.c +++ b/A2Mac/src/cpu/6502.c @@ -75,7 +75,7 @@ m6502_t m6502 = { disassembly_t disassembly; #include "disassembler.h" -#include "Apple2_mmio.h" +#include "mmio.h" uint16_t videoShadow [0x1000]; diff --git a/A2Mac/6502.h b/A2Mac/src/cpu/6502.h similarity index 100% rename from A2Mac/6502.h rename to A2Mac/src/cpu/6502.h diff --git a/A2Mac/instructions/6502_instr_BACKUP.h b/A2Mac/src/cpu/instructions/6502_instr_BACKUP.h similarity index 100% rename from A2Mac/instructions/6502_instr_BACKUP.h rename to A2Mac/src/cpu/instructions/6502_instr_BACKUP.h diff --git a/A2Mac/instructions/6502_instr_arithmetic.h b/A2Mac/src/cpu/instructions/6502_instr_arithmetic.h similarity index 100% rename from A2Mac/instructions/6502_instr_arithmetic.h rename to A2Mac/src/cpu/instructions/6502_instr_arithmetic.h diff --git a/A2Mac/instructions/6502_instr_branch.h b/A2Mac/src/cpu/instructions/6502_instr_branch.h similarity index 100% rename from A2Mac/instructions/6502_instr_branch.h rename to A2Mac/src/cpu/instructions/6502_instr_branch.h diff --git a/A2Mac/instructions/6502_instr_call_ret_jump.h b/A2Mac/src/cpu/instructions/6502_instr_call_ret_jump.h similarity index 100% rename from A2Mac/instructions/6502_instr_call_ret_jump.h rename to A2Mac/src/cpu/instructions/6502_instr_call_ret_jump.h diff --git a/A2Mac/instructions/6502_instr_compare_test.h b/A2Mac/src/cpu/instructions/6502_instr_compare_test.h similarity index 100% rename from A2Mac/instructions/6502_instr_compare_test.h rename to A2Mac/src/cpu/instructions/6502_instr_compare_test.h diff --git a/A2Mac/instructions/6502_instr_inc_dec.h b/A2Mac/src/cpu/instructions/6502_instr_inc_dec.h similarity index 100% rename from A2Mac/instructions/6502_instr_inc_dec.h rename to A2Mac/src/cpu/instructions/6502_instr_inc_dec.h diff --git a/A2Mac/instructions/6502_instr_load_store.h b/A2Mac/src/cpu/instructions/6502_instr_load_store.h similarity index 100% rename from A2Mac/instructions/6502_instr_load_store.h rename to A2Mac/src/cpu/instructions/6502_instr_load_store.h diff --git a/A2Mac/instructions/6502_instr_logic.h b/A2Mac/src/cpu/instructions/6502_instr_logic.h similarity index 100% rename from A2Mac/instructions/6502_instr_logic.h rename to A2Mac/src/cpu/instructions/6502_instr_logic.h diff --git a/A2Mac/instructions/6502_instr_misc.h b/A2Mac/src/cpu/instructions/6502_instr_misc.h similarity index 100% rename from A2Mac/instructions/6502_instr_misc.h rename to A2Mac/src/cpu/instructions/6502_instr_misc.h diff --git a/A2Mac/instructions/6502_instr_set_clr.h b/A2Mac/src/cpu/instructions/6502_instr_set_clr.h similarity index 100% rename from A2Mac/instructions/6502_instr_set_clr.h rename to A2Mac/src/cpu/instructions/6502_instr_set_clr.h diff --git a/A2Mac/instructions/6502_instr_shift_rotate.h b/A2Mac/src/cpu/instructions/6502_instr_shift_rotate.h similarity index 100% rename from A2Mac/instructions/6502_instr_shift_rotate.h rename to A2Mac/src/cpu/instructions/6502_instr_shift_rotate.h diff --git a/A2Mac/instructions/6502_instr_stack.h b/A2Mac/src/cpu/instructions/6502_instr_stack.h similarity index 100% rename from A2Mac/instructions/6502_instr_stack.h rename to A2Mac/src/cpu/instructions/6502_instr_stack.h diff --git a/A2Mac/instructions/6502_instr_transfer.h b/A2Mac/src/cpu/instructions/6502_instr_transfer.h similarity index 100% rename from A2Mac/instructions/6502_instr_transfer.h rename to A2Mac/src/cpu/instructions/6502_instr_transfer.h diff --git a/A2Mac/instructions/6502_instructions.h b/A2Mac/src/cpu/instructions/6502_instructions.h similarity index 100% rename from A2Mac/instructions/6502_instructions.h rename to A2Mac/src/cpu/instructions/6502_instructions.h diff --git a/A2Mac/src/dev/disk/woz.c b/A2Mac/src/dev/disk/woz.c index ff8b129..7f1bdf1 100644 --- a/A2Mac/src/dev/disk/woz.c +++ b/A2Mac/src/dev/disk/woz.c @@ -208,7 +208,7 @@ uint8_t woz_read() { if ( clkelpased > 100 ) { // printf("NEED SYNC : %llu\n", clkelpased); bitOffset = (clkelpased >> 2) & 7; - trackOffset += ((clkelpased >> 5) +64) % WOZ_TRACK_BYTE_COUNT; + trackOffset += ((clkelpased >> 5) +100) % WOZ_TRACK_BYTE_COUNT; WOZread.data = woz_trks[track].data[trackOffset]; } diff --git a/A2Mac/Apple2_mmio_8bit_ioaddr.h b/A2Mac/src/dev/mem/Apple2_mmio_8bit_ioaddr.h similarity index 100% rename from A2Mac/Apple2_mmio_8bit_ioaddr.h rename to A2Mac/src/dev/mem/Apple2_mmio_8bit_ioaddr.h diff --git a/A2Mac/Apple2_mmio.h b/A2Mac/src/dev/mem/mmio.h similarity index 100% rename from A2Mac/Apple2_mmio.h rename to A2Mac/src/dev/mem/mmio.h diff --git a/A2Mac/disassembler.h b/A2Mac/src/util/disassembler.h similarity index 100% rename from A2Mac/disassembler.h rename to A2Mac/src/util/disassembler.h