Initial iOS target compiles, links, and appears to run in simulator and on device =)

This commit is contained in:
Aaron Culliney 2015-12-04 22:22:48 -08:00
parent 6af1309e2d
commit 5737e89150
19 changed files with 1119 additions and 82 deletions

View File

@ -8,9 +8,7 @@
/* Begin PBXBuildFile section */
4A2636F919FDEDB700DBFB00 /* Apple2Mac.help in Resources */ = {isa = PBXBuildFile; fileRef = 4A2636F819FDEDB700DBFB00 /* Apple2Mac.help */; };
4A61119C1A6A1DE60035F7DE /* blank.po.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4A61119B1A6A1DE60035F7DE /* blank.po.gz */; };
4A61119D1A6A1DE60035F7DE /* blank.po.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4A61119B1A6A1DE60035F7DE /* blank.po.gz */; };
4A6111A31A6A1DFC0035F7DE /* flapple140.po.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4A6111A21A6A1DFC0035F7DE /* flapple140.po.gz */; };
4A69C1801A33D6D7001579EF /* images in Resources */ = {isa = PBXBuildFile; fileRef = 4A69C17F1A33D6D7001579EF /* images */; };
4A69C1921A33DB90001579EF /* DDHidLib.framework in Copy Files (1 item) */ = {isa = PBXBuildFile; fileRef = 77C2796F1A1047AF000FE33F /* DDHidLib.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
4A7EDC931AE092680072E98A /* glhudmodel.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC911AE092680072E98A /* glhudmodel.c */; };
@ -121,11 +119,9 @@
4AFC170C1AAE9C3200B215FA /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AFC17091AAE9C3200B215FA /* sha1.c */; };
4AFC170D1AAE9C3200B215FA /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AFC17091AAE9C3200B215FA /* sha1.c */; };
4AFC170E1AAE9C3200B215FA /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AFC17091AAE9C3200B215FA /* sha1.c */; };
4AFC17111AAE9CC000B215FA /* testdisplay1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC170F1AAE9CC000B215FA /* testdisplay1.nib.gz */; };
4AFC17121AAE9CC000B215FA /* testdisplay1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC170F1AAE9CC000B215FA /* testdisplay1.nib.gz */; };
4AFC17131AAE9CC000B215FA /* testdisplay1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC170F1AAE9CC000B215FA /* testdisplay1.nib.gz */; };
4AFC17141AAE9CC000B215FA /* testdisplay1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC170F1AAE9CC000B215FA /* testdisplay1.nib.gz */; };
4AFC17151AAE9CC000B215FA /* testvm1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC17101AAE9CC000B215FA /* testvm1.nib.gz */; };
4AFC17161AAE9CC000B215FA /* testvm1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC17101AAE9CC000B215FA /* testvm1.nib.gz */; };
4AFC17171AAE9CC000B215FA /* testvm1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC17101AAE9CC000B215FA /* testvm1.nib.gz */; };
4AFC17181AAE9CC000B215FA /* testvm1.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4AFC17101AAE9CC000B215FA /* testvm1.nib.gz */; };
@ -248,6 +244,59 @@
935C551E1C12B6450013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; };
935C551F1C12B6460013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; };
935C55201C12B64A0013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; };
935C55351C12BA5F0013166D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 935C55331C12BA5F0013166D /* Main.storyboard */; };
935C55371C12BA5F0013166D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 935C55361C12BA5F0013166D /* Assets.xcassets */; };
935C55431C12BCFD0013166D /* Apple2iOS-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 935C55421C12BCFD0013166D /* Apple2iOS-Info.plist */; };
935C55461C12BE110013166D /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 935C55441C12BE110013166D /* LaunchScreen.xib */; };
935C554D1C12BE510013166D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55481C12BE510013166D /* AppDelegate.m */; };
935C554E1C12BE510013166D /* EAGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C554A1C12BE510013166D /* EAGLView.m */; };
935C55511C136DF40013166D /* alhelpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F564719EAF66E00A6F107 /* alhelpers.c */; };
935C55521C136DF40013166D /* AY8910.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F564919EAF66E00A6F107 /* AY8910.c */; };
935C55531C136DF40013166D /* mockingboard.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F564C19EAF66E00A6F107 /* mockingboard.c */; };
935C55541C136DF40013166D /* playqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 93BC72561BF6FF11005CDFCA /* playqueue.c */; };
935C55551C136DF40013166D /* soundcore-openal.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F564F19EAF66E00A6F107 /* soundcore-openal.c */; };
935C55561C136DF40013166D /* soundcore.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F565119EAF66E00A6F107 /* soundcore.c */; };
935C55571C136DF40013166D /* speaker.c in Sources */ = {isa = PBXBuildFile; fileRef = 779F565319EAF66E00A6F107 /* speaker.c */; };
935C55581C136DF40013166D /* cpu-supp.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D5D19568A570085CE5F /* cpu-supp.c */; };
935C55591C136DF40013166D /* darwin-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6019568A570085CE5F /* darwin-shim.c */; };
935C555A1C136DF40013166D /* disk.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6219568A570085CE5F /* disk.c */; };
935C555B1C136DF40013166D /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6419568A570085CE5F /* display.c */; };
935C555C1C136DF40013166D /* font.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6519568A570085CE5F /* font.c */; };
935C555D1C136DF40013166D /* interface.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC9D1AE092B80072E98A /* interface.c */; };
935C555E1C136DF40013166D /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6C19568A570085CE5F /* joystick.c */; };
935C555F1C136DF40013166D /* keys.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6E19568A570085CE5F /* keys.c */; };
935C55601C136E070013166D /* debugger.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7319568A570085CE5F /* debugger.c */; };
935C55611C136E070013166D /* opcodes.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7419568A570085CE5F /* opcodes.c */; };
935C55621C136E070013166D /* misc.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7519568A570085CE5F /* misc.c */; };
935C55631C136E070013166D /* prefs.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7719568A570085CE5F /* prefs.c */; };
935C55641C136E070013166D /* rom-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 779DD826195764E200DF89E5 /* rom-shim.c */; };
935C55651C136E070013166D /* timing.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D8719568A570085CE5F /* timing.c */; };
935C55661C136E070013166D /* glalert.c in Sources */ = {isa = PBXBuildFile; fileRef = 93BC72541BF6F8E2005CDFCA /* glalert.c */; };
935C55671C136E070013166D /* glhudmodel.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC911AE092680072E98A /* glhudmodel.c */; };
935C55681C136E070013166D /* glnode.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC921AE092680072E98A /* glnode.c */; };
935C55691C136E070013166D /* glvideo.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0C719D736EB004344E0 /* glvideo.c */; };
935C556A1C136E070013166D /* matrixUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AF19D72700004344E0 /* matrixUtil.c */; };
935C556B1C136E070013166D /* modelUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AD19D72700004344E0 /* modelUtil.c */; };
935C556C1C136E070013166D /* sourceUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AB19D72700004344E0 /* sourceUtil.c */; };
935C556D1C136E070013166D /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; };
935C556E1C136E070013166D /* vm.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D8D19568A570085CE5F /* vm.c */; };
935C556F1C136E070013166D /* zlib-helpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9519568A570085CE5F /* zlib-helpers.c */; };
935C55721C136E6F0013166D /* json_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55701C136E6F0013166D /* json_parse.c */; };
935C55731C136E6F0013166D /* json_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55701C136E6F0013166D /* json_parse.c */; };
935C558A1C1370800013166D /* gltouchjoy_joy.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55841C1370800013166D /* gltouchjoy_joy.c */; };
935C558B1C1370800013166D /* gltouchjoy_kpad.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55851C1370800013166D /* gltouchjoy_kpad.c */; };
935C558C1C1370800013166D /* gltouchjoy.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55861C1370800013166D /* gltouchjoy.c */; };
935C558D1C1370800013166D /* gltouchkbd.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55881C1370800013166D /* gltouchkbd.c */; };
935C558E1C1370800013166D /* gltouchmenu.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55891C1370800013166D /* gltouchmenu.c */; };
935C55911C1371AD0013166D /* Basic.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562819E4FE9E00A6F107 /* Basic.fsh */; };
935C55921C1371AD0013166D /* Basic.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562719E4FE9E00A6F107 /* Basic.vsh */; };
935C55931C1371C80013166D /* images in Resources */ = {isa = PBXBuildFile; fileRef = 4A69C17F1A33D6D7001579EF /* images */; };
935C559F1C1384240013166D /* darwin-cpu-glue.S in Sources */ = {isa = PBXBuildFile; fileRef = 935C559E1C1384240013166D /* darwin-cpu-glue.S */; };
935C55A11C13887E0013166D /* sha1.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AFC17091AAE9C3200B215FA /* sha1.c */; };
935C55A31C1388CB0013166D /* libz.1.1.3.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 935C55A21C1388CB0013166D /* libz.1.1.3.tbd */; };
935C55A41C1388E30013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; };
935C55A91C1389370013166D /* jsmn.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55A71C1389370013166D /* jsmn.c */; };
935C55AA1C138C2F0013166D /* jsmn.c in Sources */ = {isa = PBXBuildFile; fileRef = 935C55A71C1389370013166D /* jsmn.c */; };
93BC72551BF6F8E2005CDFCA /* glalert.c in Sources */ = {isa = PBXBuildFile; fileRef = 93BC72541BF6F8E2005CDFCA /* glalert.c */; };
93BC72571BF6FF11005CDFCA /* playqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = 93BC72561BF6FF11005CDFCA /* playqueue.c */; };
/* End PBXBuildFile section */
@ -308,7 +357,7 @@
4A2636F819FDEDB700DBFB00 /* Apple2Mac.help */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Apple2Mac.help; sourceTree = "<group>"; };
4A61119B1A6A1DE60035F7DE /* blank.po.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; path = blank.po.gz; sourceTree = "<group>"; };
4A6111A21A6A1DFC0035F7DE /* flapple140.po.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; path = flapple140.po.gz; sourceTree = "<group>"; };
4A69C17F1A33D6D7001579EF /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; name = images; path = ../../images; sourceTree = "<group>"; };
4A69C17F1A33D6D7001579EF /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; name = images; path = ../images; sourceTree = "<group>"; };
4A7EDC911AE092680072E98A /* glhudmodel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glhudmodel.c; sourceTree = "<group>"; };
4A7EDC921AE092680072E98A /* glnode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glnode.c; sourceTree = "<group>"; };
4A7EDC9D1AE092B80072E98A /* interface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = interface.c; sourceTree = "<group>"; };
@ -435,6 +484,36 @@
935C55121C12B61D0013166D /* EmulatorWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorWindowController.m; path = Classes/OSX/EmulatorWindowController.m; sourceTree = SOURCE_ROOT; };
935C551B1C12B6400013166D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
935C55211C12B6650013166D /* Apple2Mac-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Apple2Mac-Prefix.pch"; sourceTree = "<group>"; };
935C55281C12BA5F0013166D /* Apple2iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2iOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
935C55341C12BA5F0013166D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
935C55361C12BA5F0013166D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
935C55421C12BCFD0013166D /* Apple2iOS-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Apple2iOS-Info.plist"; sourceTree = "<group>"; };
935C55451C12BE110013166D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
935C55471C12BE510013166D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = Classes/iOS/AppDelegate.h; sourceTree = SOURCE_ROOT; };
935C55481C12BE510013166D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = Classes/iOS/AppDelegate.m; sourceTree = SOURCE_ROOT; };
935C55491C12BE510013166D /* EAGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EAGLView.h; path = Classes/iOS/EAGLView.h; sourceTree = SOURCE_ROOT; };
935C554A1C12BE510013166D /* EAGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EAGLView.m; path = Classes/iOS/EAGLView.m; sourceTree = SOURCE_ROOT; };
935C55701C136E6F0013166D /* json_parse.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = json_parse.c; sourceTree = "<group>"; };
935C55711C136E6F0013166D /* json_parse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_parse.h; sourceTree = "<group>"; };
935C55741C136ED40013166D /* playqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = playqueue.h; sourceTree = "<group>"; };
935C55751C136F0D0013166D /* testtrace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testtrace.c; sourceTree = "<group>"; };
935C55771C136F260013166D /* sha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha1.h; sourceTree = "<group>"; };
935C557A1C136F7E0013166D /* cpu-regs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "cpu-regs.h"; path = "arm/cpu-regs.h"; sourceTree = "<group>"; };
935C557C1C136FBD0013166D /* glue-prologue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "glue-prologue.h"; path = "arm/glue-prologue.h"; sourceTree = "<group>"; };
935C557F1C136FEF0013166D /* glvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glvideo.h; sourceTree = "<group>"; };
935C55811C13702A0013166D /* glhudmodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glhudmodel.h; sourceTree = "<group>"; };
935C55821C13703F0013166D /* glnode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glnode.h; sourceTree = "<group>"; };
935C55841C1370800013166D /* gltouchjoy_joy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy_joy.c; sourceTree = "<group>"; };
935C55851C1370800013166D /* gltouchjoy_kpad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy_kpad.c; sourceTree = "<group>"; };
935C55861C1370800013166D /* gltouchjoy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy.c; sourceTree = "<group>"; };
935C55871C1370800013166D /* gltouchjoy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gltouchjoy.h; sourceTree = "<group>"; };
935C55881C1370800013166D /* gltouchkbd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchkbd.c; sourceTree = "<group>"; };
935C55891C1370800013166D /* gltouchmenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchmenu.c; sourceTree = "<group>"; };
935C559E1C1384240013166D /* darwin-cpu-glue.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "darwin-cpu-glue.S"; sourceTree = "<group>"; };
935C55A01C1384400013166D /* cpu.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = cpu.S; path = arm/cpu.S; sourceTree = "<group>"; };
935C55A21C1388CB0013166D /* libz.1.1.3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.1.1.3.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk/usr/lib/libz.1.1.3.tbd; sourceTree = DEVELOPER_DIR; };
935C55A71C1389370013166D /* jsmn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jsmn.c; path = ../externals/jsmn/jsmn.c; sourceTree = "<group>"; };
935C55A81C1389370013166D /* jsmn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jsmn.h; path = ../externals/jsmn/jsmn.h; sourceTree = "<group>"; };
93BC72541BF6F8E2005CDFCA /* glalert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glalert.c; sourceTree = "<group>"; };
93BC72561BF6FF11005CDFCA /* playqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = playqueue.c; sourceTree = "<group>"; };
/* End PBXFileReference section */
@ -489,6 +568,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
935C55251C12BA5F0013166D /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
935C55A31C1388CB0013166D /* libz.1.1.3.tbd in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@ -520,10 +607,12 @@
935C55211C12B6650013166D /* Apple2Mac-Prefix.pch */,
773B3D331956885A0085CE5F /* Apple2MacTests */,
773B3D151956885A0085CE5F /* Apple2Mac */,
935C55221C12B9BD0013166D /* Apple2iOS */,
935C55291C12BA5F0013166D /* Apple2iOS */,
773B3D431956897D0085CE5F /* Classes */,
773B3D4519568A570085CE5F /* src */,
935C55A51C1389000013166D /* externals */,
4ADC522F19E8D3F600186B36 /* disks */,
4A69C17F1A33D6D7001579EF /* images */,
773B3D0E1956885A0085CE5F /* Frameworks */,
773B3D0D1956885A0085CE5F /* Products */,
);
@ -537,6 +626,7 @@
4ADC522719E8CA4500186B36 /* Apple2MacTestVM.app */,
779F569119EB0B9100A6F107 /* Apple2MacTestDisplay.app */,
4AD4FEC31A52464F00F958EC /* Apple2MacTestDisk.app */,
935C55281C12BA5F0013166D /* Apple2iOS.app */,
);
name = Products;
sourceTree = "<group>";
@ -544,6 +634,7 @@
773B3D0E1956885A0085CE5F /* Frameworks */ = {
isa = PBXGroup;
children = (
935C55A21C1388CB0013166D /* libz.1.1.3.tbd */,
77C279601A1047AE000FE33F /* DDHidLib.xcodeproj */,
779F565F19EAF6D000A6F107 /* OpenAL.framework */,
773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */,
@ -566,23 +657,17 @@
773B3D151956885A0085CE5F /* Apple2Mac */ = {
isa = PBXGroup;
children = (
4A69C17F1A33D6D7001579EF /* images */,
773B3D44195689910085CE5F /* Resources */,
773B3D161956885A0085CE5F /* Supporting Files */,
773B3D171956885A0085CE5F /* Apple2Mac-Info.plist */,
4A2636F819FDEDB700DBFB00 /* Apple2Mac.help */,
773B3D1E1956885A0085CE5F /* Credits.rtf */,
773B3D181956885A0085CE5F /* InfoPlist.strings */,
773B3D271956885A0085CE5F /* Images.xcassets */,
773B3D241956885A0085CE5F /* MainMenu.xib */,
4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */,
);
path = Apple2Mac;
sourceTree = "<group>";
};
773B3D161956885A0085CE5F /* Supporting Files */ = {
isa = PBXGroup;
children = (
773B3D171956885A0085CE5F /* Apple2Mac-Info.plist */,
773B3D181956885A0085CE5F /* InfoPlist.strings */,
773B3D1E1956885A0085CE5F /* Credits.rtf */,
);
name = "Supporting Files";
sourceTree = "<group>";
};
773B3D331956885A0085CE5F /* Apple2MacTests */ = {
isa = PBXGroup;
children = (
@ -615,46 +700,39 @@
path = Apple2Mac;
sourceTree = "<group>";
};
773B3D44195689910085CE5F /* Resources */ = {
isa = PBXGroup;
children = (
4A2636F819FDEDB700DBFB00 /* Apple2Mac.help */,
773B3D271956885A0085CE5F /* Images.xcassets */,
773B3D241956885A0085CE5F /* MainMenu.xib */,
4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */,
);
name = Resources;
sourceTree = "<group>";
};
773B3D4519568A570085CE5F /* src */ = {
isa = PBXGroup;
children = (
773B3D7919568A570085CE5F /* test */,
935C55781C136F550013166D /* arm */,
779F564619EAF66E00A6F107 /* audio */,
773B3D5C19568A570085CE5F /* common.h */,
773B3D5D19568A570085CE5F /* cpu-supp.c */,
773B3D5E19568A570085CE5F /* cpu.h */,
773B3D6019568A570085CE5F /* darwin-shim.c */,
935C559E1C1384240013166D /* darwin-cpu-glue.S */,
773B3D6119568A570085CE5F /* darwin-shim.h */,
773B3D6219568A570085CE5F /* disk.c */,
773B3D6019568A570085CE5F /* darwin-shim.c */,
773B3D6319568A570085CE5F /* disk.h */,
773B3D6219568A570085CE5F /* disk.c */,
773B3D6419568A570085CE5F /* display.c */,
773B3D6519568A570085CE5F /* font.c */,
773B3D6919568A570085CE5F /* glue.h */,
4A7EDC9D1AE092B80072E98A /* interface.c */,
773B3D6C19568A570085CE5F /* joystick.c */,
773B3D6D19568A570085CE5F /* joystick.h */,
773B3D6E19568A570085CE5F /* keys.c */,
773B3D6C19568A570085CE5F /* joystick.c */,
935C55711C136E6F0013166D /* json_parse.h */,
935C55701C136E6F0013166D /* json_parse.c */,
773B3D6F19568A570085CE5F /* keys.h */,
773B3D6E19568A570085CE5F /* keys.c */,
773B3D7019568A570085CE5F /* meta */,
773B3D7519568A570085CE5F /* misc.c */,
773B3D7619568A570085CE5F /* misc.h */,
773B3D7519568A570085CE5F /* misc.c */,
773B3D7719568A570085CE5F /* prefs.c */,
773B3D7819568A570085CE5F /* prefs.h */,
779DD826195764E200DF89E5 /* rom-shim.c */,
773B3D8719568A570085CE5F /* timing.c */,
773B3D8819568A570085CE5F /* timing.h */,
773B3D8919568A570085CE5F /* uthash.h */,
773B3D7919568A570085CE5F /* test */,
773B3D8A19568A570085CE5F /* video */,
77E1C0A719D726E8004344E0 /* video_util */,
773B3D8D19568A570085CE5F /* vm.c */,
@ -680,13 +758,15 @@
773B3D7919568A570085CE5F /* test */ = {
isa = PBXGroup;
children = (
4AFC17091AAE9C3200B215FA /* sha1.c */,
773B3D7A19568A570085CE5F /* greatest.h */,
773B3D7C19568A570085CE5F /* testcommon.c */,
935C55771C136F260013166D /* sha1.h */,
4AFC17091AAE9C3200B215FA /* sha1.c */,
773B3D7D19568A570085CE5F /* testcommon.h */,
773B3D7C19568A570085CE5F /* testcommon.c */,
773B3D7E19568A570085CE5F /* testcpu.c */,
4AD4FEC91A52467D00F958EC /* testdisk.c */,
773B3D7F19568A570085CE5F /* testdisplay.c */,
935C55751C136F0D0013166D /* testtrace.c */,
773B3D8619568A570085CE5F /* testvm.c */,
);
path = test;
@ -695,11 +775,15 @@
773B3D8A19568A570085CE5F /* video */ = {
isa = PBXGroup;
children = (
935C55801C1370160013166D /* gltouch */,
779F562819E4FE9E00A6F107 /* Basic.fsh */,
779F562719E4FE9E00A6F107 /* Basic.vsh */,
93BC72541BF6F8E2005CDFCA /* glalert.c */,
935C55811C13702A0013166D /* glhudmodel.h */,
4A7EDC911AE092680072E98A /* glhudmodel.c */,
935C55821C13703F0013166D /* glnode.h */,
4A7EDC921AE092680072E98A /* glnode.c */,
935C557F1C136FEF0013166D /* glvideo.h */,
77E1C0C719D736EB004344E0 /* glvideo.c */,
773B3D8B19568A570085CE5F /* video.h */,
);
@ -720,19 +804,20 @@
779F564619EAF66E00A6F107 /* audio */ = {
isa = PBXGroup;
children = (
779F564719EAF66E00A6F107 /* alhelpers.c */,
779F564819EAF66E00A6F107 /* alhelpers.h */,
779F564919EAF66E00A6F107 /* AY8910.c */,
779F564719EAF66E00A6F107 /* alhelpers.c */,
779F564A19EAF66E00A6F107 /* AY8910.h */,
779F564C19EAF66E00A6F107 /* mockingboard.c */,
779F564919EAF66E00A6F107 /* AY8910.c */,
779F564D19EAF66E00A6F107 /* mockingboard.h */,
779F564C19EAF66E00A6F107 /* mockingboard.c */,
779F564E19EAF66E00A6F107 /* peripherals.h */,
935C55741C136ED40013166D /* playqueue.h */,
93BC72561BF6FF11005CDFCA /* playqueue.c */,
779F564F19EAF66E00A6F107 /* soundcore-openal.c */,
779F565119EAF66E00A6F107 /* soundcore.c */,
779F565219EAF66E00A6F107 /* soundcore.h */,
779F565319EAF66E00A6F107 /* speaker.c */,
779F565119EAF66E00A6F107 /* soundcore.c */,
779F565419EAF66E00A6F107 /* speaker.h */,
779F565319EAF66E00A6F107 /* speaker.c */,
779F565519EAF66E00A6F107 /* SSI263Phonemes.h */,
);
path = audio;
@ -770,12 +855,12 @@
935C54741C129C740013166D /* OSX */ = {
isa = PBXGroup;
children = (
935C55031C12B61D0013166D /* EmulatorGLView.h */,
935C55041C12B61D0013166D /* EmulatorGLView.m */,
935C55051C12B61D0013166D /* EmulatorDiskController.h */,
935C55061C12B61D0013166D /* EmulatorDiskController.m */,
935C55071C12B61D0013166D /* EmulatorFullscreenWindow.h */,
935C55081C12B61D0013166D /* EmulatorFullscreenWindow.m */,
935C55031C12B61D0013166D /* EmulatorGLView.h */,
935C55041C12B61D0013166D /* EmulatorGLView.m */,
935C55091C12B61D0013166D /* EmulatorJoystickCalibrationView.h */,
935C550A1C12B61D0013166D /* EmulatorJoystickCalibrationView.m */,
935C550B1C12B61D0013166D /* EmulatorJoystickController.h */,
@ -790,20 +875,68 @@
name = OSX;
sourceTree = "<group>";
};
935C55221C12B9BD0013166D /* Apple2iOS */ = {
isa = PBXGroup;
children = (
);
name = Apple2iOS;
sourceTree = "<group>";
};
935C55231C12B9CE0013166D /* iOS */ = {
isa = PBXGroup;
children = (
935C55471C12BE510013166D /* AppDelegate.h */,
935C55481C12BE510013166D /* AppDelegate.m */,
935C55491C12BE510013166D /* EAGLView.h */,
935C554A1C12BE510013166D /* EAGLView.m */,
);
name = iOS;
sourceTree = "<group>";
};
935C55291C12BA5F0013166D /* Apple2iOS */ = {
isa = PBXGroup;
children = (
935C55421C12BCFD0013166D /* Apple2iOS-Info.plist */,
935C55361C12BA5F0013166D /* Assets.xcassets */,
935C55441C12BE110013166D /* LaunchScreen.xib */,
935C55331C12BA5F0013166D /* Main.storyboard */,
);
path = Apple2iOS;
sourceTree = "<group>";
};
935C55781C136F550013166D /* arm */ = {
isa = PBXGroup;
children = (
935C55A01C1384400013166D /* cpu.S */,
935C557C1C136FBD0013166D /* glue-prologue.h */,
935C557A1C136F7E0013166D /* cpu-regs.h */,
);
name = arm;
sourceTree = "<group>";
};
935C55801C1370160013166D /* gltouch */ = {
isa = PBXGroup;
children = (
935C55841C1370800013166D /* gltouchjoy_joy.c */,
935C55851C1370800013166D /* gltouchjoy_kpad.c */,
935C55861C1370800013166D /* gltouchjoy.c */,
935C55871C1370800013166D /* gltouchjoy.h */,
935C55881C1370800013166D /* gltouchkbd.c */,
935C55891C1370800013166D /* gltouchmenu.c */,
);
name = gltouch;
sourceTree = "<group>";
};
935C55A51C1389000013166D /* externals */ = {
isa = PBXGroup;
children = (
935C55A61C13890D0013166D /* jsmn */,
);
name = externals;
sourceTree = "<group>";
};
935C55A61C13890D0013166D /* jsmn */ = {
isa = PBXGroup;
children = (
935C55A71C1389370013166D /* jsmn.c */,
935C55A81C1389370013166D /* jsmn.h */,
);
name = jsmn;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@ -904,6 +1037,25 @@
productReference = 779F569119EB0B9100A6F107 /* Apple2MacTestDisplay.app */;
productType = "com.apple.product-type.application";
};
935C55271C12BA5F0013166D /* Apple2iOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 935C553C1C12BA5F0013166D /* Build configuration list for PBXNativeTarget "Apple2iOS" */;
buildPhases = (
935C558F1C1371020013166D /* ShellScript */,
935C55241C12BA5F0013166D /* Sources */,
935C55251C12BA5F0013166D /* Frameworks */,
935C55901C13715A0013166D /* ShellScript */,
935C55261C12BA5F0013166D /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = Apple2iOS;
productName = Apple2iOS;
productReference = 935C55281C12BA5F0013166D /* Apple2iOS.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@ -912,6 +1064,11 @@
attributes = {
LastUpgradeCheck = 0510;
ORGANIZATIONNAME = deadc0de.org;
TargetAttributes = {
935C55271C12BA5F0013166D = {
CreatedOnToolsVersion = 7.1.1;
};
};
};
buildConfigurationList = 773B3D07195688590085CE5F /* Build configuration list for PBXProject "Apple2Mac" */;
compatibilityVersion = "Xcode 3.2";
@ -937,6 +1094,7 @@
4AD4FE911A52464F00F958EC /* Apple2MacTestDisk */,
779F566119EB0B9100A6F107 /* Apple2MacTestDisplay */,
4ADC51FB19E8CA4500186B36 /* Apple2MacTestVM */,
935C55271C12BA5F0013166D /* Apple2iOS */,
);
};
/* End PBXProject section */
@ -1019,18 +1177,14 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4AFC17151AAE9CC000B215FA /* testvm1.nib.gz in Resources */,
4A69C1801A33D6D7001579EF /* images in Resources */,
773B3D1A1956885A0085CE5F /* InfoPlist.strings in Resources */,
773B3D281956885A0085CE5F /* Images.xcassets in Resources */,
4A6111A31A6A1DFC0035F7DE /* flapple140.po.gz in Resources */,
773B3D1A1956885A0085CE5F /* InfoPlist.strings in Resources */,
773B3D201956885A0085CE5F /* Credits.rtf in Resources */,
4A61119C1A6A1DE60035F7DE /* blank.po.gz in Resources */,
4A2636F919FDEDB700DBFB00 /* Apple2Mac.help in Resources */,
4AFC17111AAE9CC000B215FA /* testdisplay1.nib.gz in Resources */,
779F562319DA59D600A6F107 /* MainMenu.xib in Resources */,
779F562919E4FE9E00A6F107 /* Basic.vsh in Resources */,
779F562A19E4FE9E00A6F107 /* Basic.fsh in Resources */,
779F562319DA59D600A6F107 /* MainMenu.xib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1067,6 +1221,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
935C55261C12BA5F0013166D /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
935C55931C1371C80013166D /* images in Resources */,
935C55371C12BA5F0013166D /* Assets.xcassets in Resources */,
935C55431C12BCFD0013166D /* Apple2iOS-Info.plist in Resources */,
935C55461C12BE110013166D /* LaunchScreen.xib in Resources */,
935C55351C12BA5F0013166D /* Main.storyboard in Resources */,
935C55921C1371AD0013166D /* Basic.vsh in Resources */,
935C55911C1371AD0013166D /* Basic.fsh in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
@ -1210,6 +1378,34 @@
shellScript = "/bin/rm -f \"$SRCROOT/../src/x86/glue.S\"";
showEnvVarsInLog = 0;
};
935C558F1C1371020013166D /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$SRCROOT/../src/arm/genglue\" \"$SRCROOT/../src/disk.c\" \"$SRCROOT/../src/misc.c\" \"$SRCROOT/../src/display.c\" \"$SRCROOT/../src/vm.c\" \"$SRCROOT/../src/audio/speaker.c\" \"$SRCROOT/../src/audio/mockingboard.c\" > \"$SRCROOT/../src/arm/glue.S\"\n\"$SRCROOT/../src/x86/genglue\" \"$SRCROOT/../src/disk.c\" \"$SRCROOT/../src/misc.c\" \"$SRCROOT/../src/display.c\" \"$SRCROOT/../src/vm.c\" \"$SRCROOT/../src/audio/speaker.c\" \"$SRCROOT/../src/audio/mockingboard.c\" > \"$SRCROOT/../src/x86/glue.S\"";
showEnvVarsInLog = 0;
};
935C55901C13715A0013166D /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "/bin/rm -f \"$SRCROOT/../src/arm/glue.S\"";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -1294,10 +1490,13 @@
buildActionMask = 2147483647;
files = (
773B3DBF19568A570085CE5F /* cpu.S in Sources */,
773B3DAF19568A570085CE5F /* misc.c in Sources */,
779F565B19EAF66E00A6F107 /* soundcore-openal.c in Sources */,
779F561C19D7929100A6F107 /* glvideo.c in Sources */,
935C55151C12B61D0013166D /* EmulatorFullscreenWindow.m in Sources */,
935C55AA1C138C2F0013166D /* jsmn.c in Sources */,
4A7EDC931AE092680072E98A /* glhudmodel.c in Sources */,
779F565D19EAF66E00A6F107 /* speaker.c in Sources */,
779F565B19EAF66E00A6F107 /* soundcore-openal.c in Sources */,
773B3DA419568A570085CE5F /* display.c in Sources */,
935C55171C12B61D0013166D /* EmulatorJoystickController.m in Sources */,
773B3DA319568A570085CE5F /* disk.c in Sources */,
@ -1306,7 +1505,6 @@
4A7EDC9E1AE092B80072E98A /* interface.c in Sources */,
773B3DAB19568A570085CE5F /* keys.c in Sources */,
773B3DBC19568A570085CE5F /* timing.c in Sources */,
773B3DAF19568A570085CE5F /* misc.c in Sources */,
773BC91A19F31E7B00996893 /* prefs.c in Sources */,
77E1C0B619D72700004344E0 /* matrixUtil.c in Sources */,
773B3DAE19568A570085CE5F /* opcodes.c in Sources */,
@ -1327,7 +1525,6 @@
93BC72571BF6FF11005CDFCA /* playqueue.c in Sources */,
773B3DA519568A570085CE5F /* font.c in Sources */,
773B3DA019568A570085CE5F /* cpu-supp.c in Sources */,
779F561C19D7929100A6F107 /* glvideo.c in Sources */,
779F565A19EAF66E00A6F107 /* mockingboard.c in Sources */,
77E1C0B419D72700004344E0 /* sourceUtil.c in Sources */,
779F565819EAF66E00A6F107 /* alhelpers.c in Sources */,
@ -1338,6 +1535,7 @@
773B3DBE19568A570085CE5F /* vm.c in Sources */,
773B3DC019568A570085CE5F /* darwin-glue.S in Sources */,
773B3DAA19568A570085CE5F /* joystick.c in Sources */,
935C55721C136E6F0013166D /* json_parse.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -1417,6 +1615,56 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
935C55241C12BA5F0013166D /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
935C559F1C1384240013166D /* darwin-cpu-glue.S in Sources */,
935C55621C136E070013166D /* misc.c in Sources */,
935C55691C136E070013166D /* glvideo.c in Sources */,
935C558A1C1370800013166D /* gltouchjoy_joy.c in Sources */,
935C558B1C1370800013166D /* gltouchjoy_kpad.c in Sources */,
935C558C1C1370800013166D /* gltouchjoy.c in Sources */,
935C55561C136DF40013166D /* soundcore.c in Sources */,
935C55551C136DF40013166D /* soundcore-openal.c in Sources */,
935C55611C136E070013166D /* opcodes.c in Sources */,
935C55631C136E070013166D /* prefs.c in Sources */,
935C55731C136E6F0013166D /* json_parse.c in Sources */,
935C55641C136E070013166D /* rom-shim.c in Sources */,
935C55651C136E070013166D /* timing.c in Sources */,
935C55661C136E070013166D /* glalert.c in Sources */,
935C55A91C1389370013166D /* jsmn.c in Sources */,
935C55671C136E070013166D /* glhudmodel.c in Sources */,
935C55681C136E070013166D /* glnode.c in Sources */,
935C556A1C136E070013166D /* matrixUtil.c in Sources */,
935C556B1C136E070013166D /* modelUtil.c in Sources */,
935C556C1C136E070013166D /* sourceUtil.c in Sources */,
935C556D1C136E070013166D /* vectorUtil.c in Sources */,
935C556E1C136E070013166D /* vm.c in Sources */,
935C556F1C136E070013166D /* zlib-helpers.c in Sources */,
935C558D1C1370800013166D /* gltouchkbd.c in Sources */,
935C55511C136DF40013166D /* alhelpers.c in Sources */,
935C55521C136DF40013166D /* AY8910.c in Sources */,
935C55531C136DF40013166D /* mockingboard.c in Sources */,
935C55541C136DF40013166D /* playqueue.c in Sources */,
935C558E1C1370800013166D /* gltouchmenu.c in Sources */,
935C55571C136DF40013166D /* speaker.c in Sources */,
935C55581C136DF40013166D /* cpu-supp.c in Sources */,
935C55591C136DF40013166D /* darwin-shim.c in Sources */,
935C55601C136E070013166D /* debugger.c in Sources */,
935C555A1C136DF40013166D /* disk.c in Sources */,
935C555B1C136DF40013166D /* display.c in Sources */,
935C555C1C136DF40013166D /* font.c in Sources */,
935C555D1C136DF40013166D /* interface.c in Sources */,
935C555E1C136DF40013166D /* joystick.c in Sources */,
935C55A11C13887E0013166D /* sha1.c in Sources */,
935C555F1C136DF40013166D /* keys.c in Sources */,
935C554D1C12BE510013166D /* AppDelegate.m in Sources */,
935C55A41C1388E30013166D /* main.m in Sources */,
935C554E1C12BE510013166D /* EAGLView.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
@ -1468,6 +1716,22 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
935C55331C12BA5F0013166D /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
935C55341C12BA5F0013166D /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
935C55441C12BE110013166D /* LaunchScreen.xib */ = {
isa = PBXVariantGroup;
children = (
935C55451C12BE110013166D /* Base */,
);
name = LaunchScreen.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@ -1828,6 +2092,80 @@
};
name = Release;
};
935C553D1C12BA5F0013166D /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = YES;
ARCHS = armv7;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Apple2Mac-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"APPLE2IX=1",
"INTERFACE_TOUCH=1",
"MOBILE_DEVICE=1",
"DEBUGGER=1",
"VIDEO_OPENGL=1",
"AUDIO_ENABLED=1",
);
INFOPLIST_FILE = "$(SRCROOT)/Apple2iOS/Apple2iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.deadc0de.Apple2iOS;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src";
VALID_ARCHS = "armv7 armv7s";
};
name = Debug;
};
935C553E1C12BA5F0013166D /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = YES;
ARCHS = armv7;
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_OBJC_ARC = NO;
CLANG_WARN_UNREACHABLE_CODE = YES;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREFIX_HEADER = "Apple2Mac-Prefix.pch";
GCC_PREPROCESSOR_DEFINITIONS = (
"NDEBUG=1",
"APPLE2IX=1",
"INTERFACE_TOUCH=1",
"MOBILE_DEVICE=1",
"DEBUGGER=1",
"VIDEO_OPENGL=1",
"AUDIO_ENABLED=1",
);
INFOPLIST_FILE = "$(SRCROOT)/Apple2iOS/Apple2iOS-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 7.1;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = com.deadc0de.Apple2iOS;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src";
VALIDATE_PRODUCT = YES;
VALID_ARCHS = "armv7 armv7s";
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@ -1885,6 +2223,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
935C553C1C12BA5F0013166D /* Build configuration list for PBXNativeTarget "Apple2iOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
935C553D1C12BA5F0013166D /* Debug */,
935C553E1C12BA5F0013166D /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 773B3D04195688590085CE5F /* Project object */;

View File

@ -6,6 +6,10 @@
<string>en</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleHelpBookFolder</key>
<string>Apple2Mac.help</string>
<key>CFBundleHelpBookName</key>
<string>org.deadc0de.Apple2Mac.help</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
@ -17,15 +21,11 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.9.1</string>
<string>0.9.2</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>CFBundleHelpBookFolder</key>
<string>Apple2Mac.help</string>
<key>CFBundleHelpBookName</key>
<string>org.deadc0de.Apple2Mac.help</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.education</string>
<key>LSMinimumSystemVersion</key>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>

View File

@ -0,0 +1,68 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="14F27" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<view contentMode="scaleToFill" id="iN0-l3-epB">
<rect key="frame" x="0.0" y="0.0" width="480" height="480"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Apple2iOS" textAlignment="center" lineBreakMode="middleTruncation" baselineAdjustment="alignBaselines" minimumFontSize="18" translatesAutoresizingMaskIntoConstraints="NO" id="kId-c2-rCX">
<rect key="frame" x="20" y="218" width="441" height="43"/>
<fontDescription key="fontDescription" type="boldSystem" pointSize="36"/>
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
<nil key="highlightedColor"/>
</label>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
<constraints>
<constraint firstItem="kId-c2-rCX" firstAttribute="centerY" secondItem="iN0-l3-epB" secondAttribute="bottom" multiplier="1/3" constant="1" id="5cJ-9S-tgC"/>
<constraint firstAttribute="centerX" secondItem="kId-c2-rCX" secondAttribute="centerX" id="Koa-jz-hwk"/>
<constraint firstItem="kId-c2-rCX" firstAttribute="leading" secondItem="iN0-l3-epB" secondAttribute="leading" constant="20" symbolic="YES" id="fvb-Df-36g"/>
</constraints>
<nil key="simulatedStatusBarMetrics"/>
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
<point key="canvasLocation" x="548" y="455"/>
</view>
</objects>
</document>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="8121.20" systemVersion="14D136" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="8101.16"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC" customClass="EAGLView">
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

View File

@ -0,0 +1,22 @@
/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2015 Aaron Culliney
*
*/
#import <UIKit/UIKit.h>
@class EAGLView;
@class MainViewController;
@interface AppDelegate : NSObject<UIApplicationDelegate>
@property (nonatomic, retain) UIWindow *window;
@end

View File

@ -0,0 +1,93 @@
/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2015 Aaron Culliney
*
*/
#import "AppDelegate.h"
#import "EAGLView.h"
#import "common.h"
@implementation AppDelegate
#pragma mark - Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options
{
// Override point for customization after application launch.
[self.window makeKeyAndVisible];
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
[view resumeRendering];
[view resumeEmulation];
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application
{
// Sent when the application is about to move from active to inactive state. This can occur for certain types of
// temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application
// and it begins the transition to the background state. Use this method to pause ongoing tasks, disable timers,
// and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
[view pauseRendering];
[view pauseEmulation];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
// Use this method to release shared resources, save user data, invalidate timers, and store enough application
// state information to restore your application to its current state in case it is terminated later. If your
// application supports background execution, called instead of applicationWillTerminate: when the user quits.
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
[view pauseRendering];
[view pauseEmulation];
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
// Called as part of transition from the background to the inactive state: here you can undo many of the changes
// made on entering the background.
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
[view resumeRendering];
[view resumeEmulation];
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application
// was previously in the background, optionally refresh the user interface.
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
[view resumeRendering];
[view resumeEmulation];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
// Called when the application is about to terminate. See also applicationDidEnterBackground:
EAGLView *view = (EAGLView *)self.window.rootViewController.view;
self.window.rootViewController.view = [[UIView alloc] init];
[view pauseRendering];
[view pauseEmulation];
[view release];
}
#pragma mark - Memory management
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application
{
// prolly not much we can do here at the moment since we run a tight ship...
LOG("...");
}
@end

View File

@ -0,0 +1,28 @@
/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2015 Aaron Culliney
*
*/
#import <UIKit/UIKit.h>
// This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
// The view content is basically an EAGL surface you render your OpenGL scene into.
// Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
@interface EAGLView : UIView
@property (nonatomic, readonly, getter=isAnimating, assign) BOOL animating;
@property (nonatomic, assign) NSInteger renderFrameInterval;
- (void)pauseRendering;
- (void)resumeRendering;
- (void)pauseEmulation;
- (void)resumeEmulation;
@end

View File

@ -0,0 +1,328 @@
/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2015 Aaron Culliney
*
*/
#import "EAGLView.h"
#import "common.h"
#import "modelUtil.h"
#import <OpenGLES/ES3/gl.h>
#import <OpenGLES/ES3/glext.h>
@interface EAGLView ()
@property (nonatomic, retain) EAGLContext *context;
@property (nonatomic, retain) CADisplayLink *displayLink;
@property (nonatomic, assign) GLuint defaultFBOName;
@property (nonatomic, assign) GLuint colorRenderbuffer;
@end
@implementation EAGLView
@synthesize renderFrameInterval = _renderFrameInterval;
// Must return the CAEAGLLayer class so that CA allocates an EAGLLayer backing for this view
+ (Class)layerClass
{
return [CAEAGLLayer class];
}
// -initWithCoder: is sent when unarchived from storyboard file
- (instancetype)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self)
{
CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;
eaglLayer.opaque = YES;
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
_context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
if (!_context || ![EAGLContext setCurrentContext:_context])
{
[self release];
return nil;
}
// Create default framebuffer object. The backing will be allocated for the
// current layer in -resizeFromLayer
glGenFramebuffers(1, &_defaultFBOName);
glGenRenderbuffers(1, &_colorRenderbuffer);
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFBOName);
glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderbuffer);
// This call associates the storage for the current render buffer with the
// EAGLDrawable (our CAEAGLLayer) allowing us to draw into a buffer that
// will later be rendered to the screen wherever the layer is (which
// corresponds with our view).
[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(id<EAGLDrawable>)self.layer];
glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, _colorRenderbuffer);
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
{
NSLog(@"failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER));
[self release];
return nil;
}
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFBOName);
// start emulator from paused state
cpu_pause();
emulator_start();
video_backend->init(0);
_animating = NO;
_renderFrameInterval = 1;
_displayLink = nil;
}
return self;
}
- (void)dealloc
{
[self pauseRendering];
[_displayLink release];
_displayLink = nil;
// shut down common OpenGL stuff AFTER display link has been released
emulator_shutdown();
if (_defaultFBOName != UNINITIALIZED_GL)
{
glDeleteFramebuffers(1, &_defaultFBOName);
_defaultFBOName = UNINITIALIZED_GL;
}
if (_colorRenderbuffer != UNINITIALIZED_GL)
{
glDeleteRenderbuffers(1, &_colorRenderbuffer);
_colorRenderbuffer = UNINITIALIZED_GL;
}
if ([EAGLContext currentContext] == _context)
{
[EAGLContext setCurrentContext:nil];
}
[_context release];
_context = nil;
[super dealloc];
}
- (void)pauseEmulation
{
cpu_pause();
}
- (void)resumeEmulation
{
cpu_resume();
}
- (void)drawView:(id)sender
{
[EAGLContext setCurrentContext:_context];
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFBOName);
video_backend->render();
glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderbuffer);
[_context presentRenderbuffer:GL_RENDERBUFFER];
}
- (void)layoutSubviews
{
// Allocate color buffer backing based on the current layer size
glBindRenderbuffer(GL_RENDERBUFFER, _colorRenderbuffer);
[_context renderbufferStorage:GL_RENDERBUFFER fromDrawable:(id<EAGLDrawable>)self.layer];
// The pixel dimensions of the CAEAGLLayer
GLint backingWidth = 0;
GLint backingHeight = 0;
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_WIDTH, &backingWidth);
glGetRenderbufferParameteriv(GL_RENDERBUFFER, GL_RENDERBUFFER_HEIGHT, &backingHeight);
video_backend->reshape((int)backingWidth, (int)backingHeight);
if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE)
{
NSLog(@"Failed to make complete framebuffer object %x", glCheckFramebufferStatus(GL_FRAMEBUFFER));
return;
}
[self drawView:nil];
}
- (void)setRenderFrameInterval:(NSInteger)frameInterval
{
// Frame interval defines how many display frames must pass between each time the
// display link fires. The display link will only fire 30 times a second when the
// frame internal is two on a display that refreshes 60 times a second. The default
// frame interval setting of one will fire 60 times a second when the display refreshes
// at 60 times a second. A frame interval setting of less than one results in undefined
// behavior.
if (frameInterval >= 1)
{
_renderFrameInterval = frameInterval;
if (_animating)
{
[self pauseRendering];
[self resumeRendering];
}
}
}
- (void)resumeRendering
{
if (!_animating)
{
_animating = YES;
// Create the display link and set the callback to our drawView method
_displayLink = [[CADisplayLink displayLinkWithTarget:self selector:@selector(drawView:)] retain];
// Set it to our _renderFrameInterval
[_displayLink setFrameInterval:_renderFrameInterval];
// Have the display link run on the default runn loop (and the main thread)
[_displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
}
- (void)pauseRendering
{
if (_animating)
{
[_displayLink invalidate];
[_displayLink release];
_displayLink = nil;
_animating = NO;
}
}
#pragma mark - Touch Handling
- (BOOL)isMultipleTouchEnabled
{
return YES;
}
static inline void _handleTouch(EAGLView *self, SEL _cmd, UITouch *touch, interface_touch_event_t eventType) {
CGPoint location = [touch locationInView:self];
float x[1] = { location.x };
float y[1] = { location.y };
int64_t flags = interface_onTouchEvent(eventType, (int)1, (int)0, x, y);
do {
if ((flags & TOUCH_FLAGS_HANDLED) == 0)
{
break;
}
if ((flags & TOUCH_FLAGS_REQUEST_HOST_MENU) != 0)
{
// requested host menu
}
if ((flags & TOUCH_FLAGS_KEY_TAP) != 0)
{
// tapped key
}
if ((flags & TOUCH_FLAGS_MENU) == 0)
{
break;
}
// touched menu item ...
if ((flags & TOUCH_FLAGS_INPUT_DEVICE_CHANGE) != 0)
{
if ((flags & TOUCH_FLAGS_KBD) != 0)
{
keydriver_setTouchKeyboardOwnsScreen(true);
joydriver_setTouchJoystickOwnsScreen(false);
video_backend->animation_showTouchKeyboard();
}
else if ((flags & TOUCH_FLAGS_JOY) != 0)
{
keydriver_setTouchKeyboardOwnsScreen(false);
joydriver_setTouchJoystickOwnsScreen(true);
joydriver_setTouchVariant(EMULATED_JOYSTICK);
video_backend->animation_showTouchJoystick();
}
else if ((flags & TOUCH_FLAGS_JOY_KPAD) != 0)
{
keydriver_setTouchKeyboardOwnsScreen(false);
joydriver_setTouchJoystickOwnsScreen(true);
joydriver_setTouchVariant(EMULATED_KEYPAD);
video_backend->animation_showTouchJoystick();
}
else
{
// switch to next variant ...
}
}
else if ((flags & TOUCH_FLAGS_CPU_SPEED_DEC) != 0)
{
// handle cpu decrement
}
else if ((flags & TOUCH_FLAGS_CPU_SPEED_INC) != 0)
{
// handle cpu increment
}
} while (NO);
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
LOG("...");
for (UITouch *touch in touches)
{
_handleTouch(self, _cmd, touch, TOUCH_DOWN);
}
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
LOG("...");
for (UITouch *touch in touches)
{
_handleTouch(self, _cmd, touch, TOUCH_MOVE);
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
LOG("...");
for (UITouch *touch in touches)
{
_handleTouch(self, _cmd, touch, TOUCH_UP);
}
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
LOG("...");
for (UITouch *touch in touches)
{
_handleTouch(self, _cmd, touch, TOUCH_CANCEL);
}
}
@end

View File

@ -43,10 +43,17 @@
#endif
#define NO_UNDERSCORES 1
#if !defined(__APPLE__)
# define NO_UNDERSCORES 1
#endif
#define ENTRY(x) .globl x; .balign 16; .type x, %function; x##:
#define CALL(x) x
#if NO_UNDERSCORES
# define ENTRY(x) .globl x; .arm; .balign 4; x##:
# define CALL(x) x
#else
# define ENTRY(x) .globl _##x; .arm; .balign 4; _##x##:
# define CALL(x) _##x
#endif
// 2015/11/08 NOTE : Android requires all apps targeting API 23 (AKA Marshmallow) to use Position Independent Code (PIC)
// that does not have TEXT segment relocations
@ -81,8 +88,13 @@
_SYM_ADDR_POST(var,8)
# endif
#else /* !PREVENT_TEXTREL */
# define SYM(reg,var) \
# if NO_UNDERSCORES
# define SYM(reg,var) \
ldr reg, =var
# else
# define SYM(reg,var) \
ldr reg, =_##var
# endif
#endif

View File

@ -2511,7 +2511,7 @@ ENTRY(cpu65_run)
ldrb r0, [r1]
teq r0, #0
eorne r0, r0, r0
strneb r0, [r1]
strbne r0, [r1]
bne ex_reset
b continue1
@ -2547,8 +2547,13 @@ ENTRY(cpu65_direct_write)
# local data ...
.global interrupt_vector
.global reset_vector
interrupt_vector: .hword 0xFFFE
reset_vector: .hword 0xFFFC
#if NO_UNDERSCORES
interrupt_vector: .hword 0xFFFE
reset_vector: .hword 0xFFFC
#else
_interrupt_vector: .hword 0xFFFE
_reset_vector: .hword 0xFFFC
#endif
.ltorg

View File

@ -45,7 +45,7 @@ ENTRY(func) SYM(r1, pointer); \
ENTRY(func) SYM(r1, pointer); \
ldr r1, [r1]; \
teq r1, #0; \
strneb r0, [r1, EffectiveAddr]; \
strbne r0, [r1, EffectiveAddr]; \
mov pc, lr;

23
src/darwin-cpu-glue.S Normal file
View File

@ -0,0 +1,23 @@
/*
* Apple // emulator for *ix
*
* This software package is subject to the GNU General Public License
* version 3 or later (your choice) as published by the Free Software
* Foundation.
*
* Copyright 2015 Aaron Culliney
*
*/
#ifdef __APPLE__
# if defined(__arm__)
# include "arm/cpu.S"
# include "arm/glue.S"
# elif defined(__arm64__)
# error aarch64 not implemented ... TODO SOON
# else
// simulator is x86
# include "x86/cpu.S"
# include "x86/glue.S"
# endif
#endif

View File

@ -23,6 +23,7 @@ static uint64_t orwl_timestart = 0;
__attribute__((constructor(CTOR_PRIORITY_LATE)))
static void __init_darwin_shim() {
LOG("Initializing Darwin Shim");
mach_timebase_info_data_t tb = { 0 };
mach_timebase_info(&tb);
orwl_timebase = tb.numer;

View File

@ -29,6 +29,7 @@ CrashHandler_s *crashHandler = NULL;
__attribute__((constructor(CTOR_PRIORITY_FIRST)))
static void _init_common(void) {
LOG("Initializing common...");
#if defined(CONFIG_DATADIR)
data_dir = strdup(CONFIG_DATADIR PATH_SEPARATOR PACKAGE_NAME);
#elif defined(ANDROID)
@ -235,6 +236,8 @@ void emulator_start(void) {
}
void emulator_shutdown(void) {
disk6_eject(0);
disk6_eject(1);
video_shutdown();
timing_stopCPU();
_shutdown_threads();

View File

@ -220,6 +220,7 @@ static inline bool _sprout_menu(float x, float y) {
return menu.topRightShowing;
} else {
RELEASE_ERRLOG("This should not happen");
return false;
}
}

View File

@ -21,8 +21,8 @@
# import <CoreFoundation/CoreFoundation.h>
# import <TargetConditionals.h>
# if TARGET_OS_IPHONE
# import <OpenGLES/ES2/gl.h>
# import <OpenGLES/ES2/glext.h>
# import <OpenGLES/ES3/gl.h>
# import <OpenGLES/ES3/glext.h>
# else
# import <OpenGL/OpenGL.h>
# import <OpenGL/gl3.h>

View File

@ -89,6 +89,7 @@
# define _XSI %esi
# define _XAX %eax /* scratch */
# define _XBX %ebx /* scratch2 */
# define _X8 %eax // WRONG!!! FIXMENOW
// full-length Apple ][ registers
# define XY_Reg_X %ebx /* 6502 X&Y flags */
# define AF_Reg_X %ecx /* 6502 F&A flags */
@ -127,16 +128,18 @@
#define CALL(foo) foo
#else /* !NO_UNDERSCORES */
#if defined(__APPLE__)
# warning "2014/06/22 -- Apple's clang appears to not like certain manipulations of %_h register values (for example %ah, %ch) that are valid on *nix ... and it creates bizarre bytecode
# define APPLE_ASSEMBLER_IS_BROKEN 1
# define SYM(foo) _##foo(%rip)
# define SYMX(foo, INDEX, SCALE) (_X8,INDEX,SCALE)
# ifdef __LP64__
# warning "2014/06/22 -- Mac requires PIC indexing
# define APPLE_ASSEMBLER_IS_BROKEN 1
# define SYM(foo) _##foo(%rip)
# define SYMX(foo, INDEX, SCALE) (_X8,INDEX,SCALE)
# define SYMX_PROLOGUE(foo) leaLQ _##foo(%rip), _X8;
# else
# error "Building 32bit Darwin/x86 is not supported (unless you're a go-getter and make it supported)"
# define SYM(foo) _##foo
# define SYMX(foo, INDEX, SCALE) _##foo(,INDEX,SCALE)
# define SYMX_PROLOGUE(foo)
# endif
# define ENTRY(foo) .globl _##foo; .balign 4; _##foo##:
# define ENTRY(foo) .globl _##foo; .balign 16; _##foo##:
#else
# define SYM(foo) _##foo
# define SYMX(foo, INDEX, SCALE) _##foo(,INDEX,SCALE)