From 746dcb2e3d83564b2bae8394405c117606efafc5 Mon Sep 17 00:00:00 2001 From: jvernet Date: Tue, 22 Dec 2015 22:09:09 +0100 Subject: [PATCH] Suite --- Apple2Mac/Apple2Mac.xcodeproj/project.pbxproj | 680 +++++++++++++----- .../Classes/OSX/EmulatorDiskController.h | 22 - .../Classes/OSX/EmulatorDiskController.m | 324 --------- .../Classes/OSX/EmulatorFullscreenWindow.h | 18 - .../Classes/OSX/EmulatorFullscreenWindow.m | 54 -- .../Apple2Mac/Classes/OSX/EmulatorGLView.h | 21 - .../Apple2Mac/Classes/OSX/EmulatorGLView.m | 321 --------- .../OSX/EmulatorJoystickCalibrationView.h | 16 - .../OSX/EmulatorJoystickCalibrationView.m | 67 -- .../Classes/OSX/EmulatorJoystickController.h | 16 - .../Classes/OSX/EmulatorJoystickController.m | 228 ------ .../Classes/OSX/EmulatorPrefsController.h | 21 - .../Classes/OSX/EmulatorPrefsController.m | 353 --------- .../Apple2Mac/Classes/OSX/EmulatorWindow.h | 16 - .../Apple2Mac/Classes/OSX/EmulatorWindow.m | 26 - .../Classes/OSX/EmulatorWindowController.h | 29 - .../Classes/OSX/EmulatorWindowController.m | 404 ----------- .../{Base.lproj => en.lproj}/MainMenu.xib | 0 .../Apple2iOS/Base.lproj/Main.storyboard | 13 +- .../Classes/OSX/EmulatorWindowController.m | 13 +- 20 files changed, 537 insertions(+), 2105 deletions(-) delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.m delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.h delete mode 100644 Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.m rename Apple2Mac/Apple2Mac/{Base.lproj => en.lproj}/MainMenu.xib (100%) diff --git a/Apple2Mac/Apple2Mac.xcodeproj/project.pbxproj b/Apple2Mac/Apple2Mac.xcodeproj/project.pbxproj index 0f269f45..d51ff1db 100644 --- a/Apple2Mac/Apple2Mac.xcodeproj/project.pbxproj +++ b/Apple2Mac/Apple2Mac.xcodeproj/project.pbxproj @@ -3,14 +3,12 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 47; objects = { /* 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 */; }; 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 */; }; 4A7EDC941AE092680072E98A /* glhudmodel.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC911AE092680072E98A /* glhudmodel.c */; }; @@ -27,7 +25,6 @@ 4A7EDCA01AE092B80072E98A /* interface.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC9D1AE092B80072E98A /* interface.c */; }; 4A7EDCA11AE092B80072E98A /* interface.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC9D1AE092B80072E98A /* interface.c */; }; 4A7EDCA21AE092B80072E98A /* interface.c in Sources */ = {isa = PBXBuildFile; fileRef = 4A7EDC9D1AE092B80072E98A /* interface.c */; }; - 4AC7A76D19ECC3FB00BCD457 /* EmulatorWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AC7A76C19ECC3FB00BCD457 /* EmulatorWindow.m */; }; 4AD4FE941A52464F00F958EC /* cpu.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9019568A570085CE5F /* cpu.S */; }; 4AD4FE951A52464F00F958EC /* prefs.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7719568A570085CE5F /* prefs.c */; }; 4AD4FE961A52464F00F958EC /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6419568A570085CE5F /* display.c */; }; @@ -44,7 +41,6 @@ 4AD4FEA11A52464F00F958EC /* rom-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 779DD826195764E200DF89E5 /* rom-shim.c */; }; 4AD4FEA21A52464F00F958EC /* zlib-helpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9519568A570085CE5F /* zlib-helpers.c */; }; 4AD4FEA31A52464F00F958EC /* darwin-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6019568A570085CE5F /* darwin-shim.c */; }; - 4AD4FEA41A52464F00F958EC /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D1B1956885A0085CE5F /* main.m */; }; 4AD4FEA51A52464F00F958EC /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; }; 4AD4FEA61A52464F00F958EC /* debug.l in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7219568A570085CE5F /* debug.l */; }; 4AD4FEA71A52464F00F958EC /* CPUTestAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 779DD854195BDB1700DF89E5 /* CPUTestAppDelegate.m */; }; @@ -55,7 +51,6 @@ 4AD4FEAD1A52464F00F958EC /* matrixUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AF19D72700004344E0 /* matrixUtil.c */; }; 4AD4FEAE1A52464F00F958EC /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6C19568A570085CE5F /* joystick.c */; }; 4AD4FEB01A52464F00F958EC /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 779F565F19EAF6D000A6F107 /* OpenAL.framework */; }; - 4AD4FEB11A52464F00F958EC /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */; }; 4AD4FEB21A52464F00F958EC /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3D0F1956885A0085CE5F /* Cocoa.framework */; }; 4AD4FEB51A52464F00F958EC /* blank.dsk.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523019E8D3F600186B36 /* blank.dsk.gz */; }; 4AD4FEB61A52464F00F958EC /* blank.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523119E8D3F600186B36 /* blank.nib.gz */; }; @@ -69,6 +64,7 @@ 4AD4FEBE1A52464F00F958EC /* Basic.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562719E4FE9E00A6F107 /* Basic.vsh */; }; 4AD4FEBF1A52464F00F958EC /* Basic.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562819E4FE9E00A6F107 /* Basic.fsh */; }; 4AD4FECB1A52468700F958EC /* testdisk.c in Sources */ = {isa = PBXBuildFile; fileRef = 4AD4FEC91A52467D00F958EC /* testdisk.c */; }; + 4AD4FED21A524BED00F958EC /* Apple2MacTestDisk-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4AD4FEC41A52464F00F958EC /* Apple2MacTestDisk-Info.plist */; }; 4ADC51C219E8BD3700186B36 /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; }; 4ADC51C319E8BD3A00186B36 /* sourceUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AB19D72700004344E0 /* sourceUtil.c */; }; 4ADC51C419E8BD3D00186B36 /* modelUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AD19D72700004344E0 /* modelUtil.c */; }; @@ -77,7 +73,6 @@ 4ADC51C719E8BD5800186B36 /* Basic.vsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562719E4FE9E00A6F107 /* Basic.vsh */; }; 4ADC51C819E8BD5A00186B36 /* Basic.fsh in Resources */ = {isa = PBXBuildFile; fileRef = 779F562819E4FE9E00A6F107 /* Basic.fsh */; }; 4ADC51CD19E8C19A00186B36 /* MainMenu-Test.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */; }; - 4ADC51FA19E8C6EF00186B36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D1B1956885A0085CE5F /* main.m */; }; 4ADC51FE19E8CA4500186B36 /* cpu.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9019568A570085CE5F /* cpu.S */; }; 4ADC51FF19E8CA4500186B36 /* prefs.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7719568A570085CE5F /* prefs.c */; }; 4ADC520019E8CA4500186B36 /* display.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6419568A570085CE5F /* display.c */; }; @@ -94,7 +89,6 @@ 4ADC520B19E8CA4500186B36 /* rom-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 779DD826195764E200DF89E5 /* rom-shim.c */; }; 4ADC520C19E8CA4500186B36 /* zlib-helpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9519568A570085CE5F /* zlib-helpers.c */; }; 4ADC520D19E8CA4500186B36 /* darwin-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6019568A570085CE5F /* darwin-shim.c */; }; - 4ADC520E19E8CA4500186B36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D1B1956885A0085CE5F /* main.m */; }; 4ADC520F19E8CA4500186B36 /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; }; 4ADC521019E8CA4500186B36 /* debug.l in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7219568A570085CE5F /* debug.l */; }; 4ADC521119E8CA4500186B36 /* CPUTestAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 779DD854195BDB1700DF89E5 /* CPUTestAppDelegate.m */; }; @@ -104,7 +98,6 @@ 4ADC521619E8CA4500186B36 /* darwin-glue.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9119568A570085CE5F /* darwin-glue.S */; }; 4ADC521719E8CA4500186B36 /* matrixUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AF19D72700004344E0 /* matrixUtil.c */; }; 4ADC521819E8CA4500186B36 /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6C19568A570085CE5F /* joystick.c */; }; - 4ADC521A19E8CA4500186B36 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */; }; 4ADC521B19E8CA4500186B36 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3D0F1956885A0085CE5F /* Cocoa.framework */; }; 4ADC521E19E8CA4500186B36 /* MainMenu-Test.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */; }; 4ADC521F19E8CA4500186B36 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D181956885A0085CE5F /* InfoPlist.strings */; }; @@ -123,17 +116,14 @@ 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 */; }; 773B3D101956885A0085CE5F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3D0F1956885A0085CE5F /* Cocoa.framework */; }; 773B3D1A1956885A0085CE5F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D181956885A0085CE5F /* InfoPlist.strings */; }; - 773B3D1C1956885A0085CE5F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D1B1956885A0085CE5F /* main.m */; }; 773B3D201956885A0085CE5F /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D1E1956885A0085CE5F /* Credits.rtf */; }; 773B3D281956885A0085CE5F /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D271956885A0085CE5F /* Images.xcassets */; }; 773B3DA019568A570085CE5F /* cpu-supp.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D5D19568A570085CE5F /* cpu-supp.c */; }; @@ -152,9 +142,6 @@ 773B3DBF19568A570085CE5F /* cpu.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9019568A570085CE5F /* cpu.S */; }; 773B3DC019568A570085CE5F /* darwin-glue.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9119568A570085CE5F /* darwin-glue.S */; }; 773B3DC319568A570085CE5F /* zlib-helpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9519568A570085CE5F /* zlib-helpers.c */; }; - 773B3DCB1956903D0085CE5F /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */; }; - 773BC91619F2E6A900996893 /* EmulatorDiskController.m in Sources */ = {isa = PBXBuildFile; fileRef = 773BC91519F2E6A900996893 /* EmulatorDiskController.m */; }; - 773BC91919F2FD4500996893 /* EmulatorPrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 773BC91819F2FD4500996893 /* EmulatorPrefsController.m */; }; 773BC91A19F31E7B00996893 /* prefs.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7719568A570085CE5F /* prefs.c */; }; 779DD827195764E200DF89E5 /* rom-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 779DD826195764E200DF89E5 /* rom-shim.c */; }; 779DD82F195BD9F900DF89E5 /* cpu.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9019568A570085CE5F /* cpu.S */; }; @@ -175,7 +162,6 @@ 779DD83F195BD9F900DF89E5 /* vm.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D8D19568A570085CE5F /* vm.c */; }; 779DD840195BD9F900DF89E5 /* darwin-glue.S in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9119568A570085CE5F /* darwin-glue.S */; }; 779DD843195BD9F900DF89E5 /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6C19568A570085CE5F /* joystick.c */; }; - 779DD845195BD9F900DF89E5 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */; }; 779DD846195BD9F900DF89E5 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3D0F1956885A0085CE5F /* Cocoa.framework */; }; 779DD849195BD9F900DF89E5 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D181956885A0085CE5F /* InfoPlist.strings */; }; 779DD84A195BD9F900DF89E5 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 773B3D271956885A0085CE5F /* Images.xcassets */; }; @@ -210,7 +196,6 @@ 779F567119EB0B9100A6F107 /* rom-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 779DD826195764E200DF89E5 /* rom-shim.c */; }; 779F567219EB0B9100A6F107 /* zlib-helpers.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D9519568A570085CE5F /* zlib-helpers.c */; }; 779F567319EB0B9100A6F107 /* darwin-shim.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6019568A570085CE5F /* darwin-shim.c */; }; - 779F567419EB0B9100A6F107 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D1B1956885A0085CE5F /* main.m */; }; 779F567519EB0B9100A6F107 /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; }; 779F567619EB0B9100A6F107 /* debug.l in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7219568A570085CE5F /* debug.l */; }; 779F567719EB0B9100A6F107 /* CPUTestAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 779DD854195BDB1700DF89E5 /* CPUTestAppDelegate.m */; }; @@ -221,7 +206,6 @@ 779F567D19EB0B9100A6F107 /* matrixUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AF19D72700004344E0 /* matrixUtil.c */; }; 779F567E19EB0B9100A6F107 /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D6C19568A570085CE5F /* joystick.c */; }; 779F568019EB0B9100A6F107 /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 779F565F19EAF6D000A6F107 /* OpenAL.framework */; }; - 779F568119EB0B9100A6F107 /* libz.1.1.3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */; }; 779F568219EB0B9100A6F107 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 773B3D0F1956885A0085CE5F /* Cocoa.framework */; }; 779F568619EB0B9100A6F107 /* README in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523419E8D3F600186B36 /* README */; }; 779F568719EB0B9100A6F107 /* MainMenu-Test.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */; }; @@ -234,18 +218,79 @@ 779F569319EB0D1E00A6F107 /* testdisplay.c in Sources */ = {isa = PBXBuildFile; fileRef = 773B3D7F19568A570085CE5F /* testdisplay.c */; }; 779F569419EB10A100A6F107 /* testdisplay1.dsk.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523719E8D3F600186B36 /* testdisplay1.dsk.gz */; }; 77C279701A1047DD000FE33F /* DDHidLib.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 77C2796F1A1047AF000FE33F /* DDHidLib.framework */; }; - 77C279751A1048B4000FE33F /* EmulatorJoystickController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77C279741A1048B4000FE33F /* EmulatorJoystickController.m */; }; 77E1C0B319D72700004344E0 /* vectorUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0A919D72700004344E0 /* vectorUtil.c */; }; 77E1C0B419D72700004344E0 /* sourceUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AB19D72700004344E0 /* sourceUtil.c */; }; 77E1C0B519D72700004344E0 /* modelUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AD19D72700004344E0 /* modelUtil.c */; }; 77E1C0B619D72700004344E0 /* matrixUtil.c in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0AF19D72700004344E0 /* matrixUtil.c */; }; 77E1C0B719D72700004344E0 /* imageUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0B019D72700004344E0 /* imageUtil.m */; }; - 77E1C0C419D7298F004344E0 /* EmulatorWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0BE19D7298F004344E0 /* EmulatorWindowController.m */; }; - 77E1C0C519D7298F004344E0 /* EmulatorGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0C019D7298F004344E0 /* EmulatorGLView.m */; }; - 77E1C0C619D7298F004344E0 /* EmulatorFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 77E1C0C219D7298F004344E0 /* EmulatorFullscreenWindow.m */; }; 77EB316C1A27A9AF00DC5A8A /* blank.dsk.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523019E8D3F600186B36 /* blank.dsk.gz */; }; 77EB316D1A27A9AF00DC5A8A /* blank.nib.gz in Resources */ = {isa = PBXBuildFile; fileRef = 4ADC523119E8D3F600186B36 /* blank.nib.gz */; }; - 77F80B441A2D95E300D45030 /* EmulatorJoystickCalibrationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 77F80B421A2D95E300D45030 /* EmulatorJoystickCalibrationView.m */; }; + 93206C781C14E14000668153 /* Apple2iOS.strings in Resources */ = {isa = PBXBuildFile; fileRef = 93206C761C14E14000668153 /* Apple2iOS.strings */; }; + 93206C851C156BD300668153 /* A2IXPopupChoreographer.m in Sources */ = {isa = PBXBuildFile; fileRef = 93206C841C156BD300668153 /* A2IXPopupChoreographer.m */; }; + 935C55131C12B61D0013166D /* EmulatorGLView.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55041C12B61D0013166D /* EmulatorGLView.m */; }; + 935C55141C12B61D0013166D /* EmulatorDiskController.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55061C12B61D0013166D /* EmulatorDiskController.m */; }; + 935C55151C12B61D0013166D /* EmulatorFullscreenWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55081C12B61D0013166D /* EmulatorFullscreenWindow.m */; }; + 935C55161C12B61D0013166D /* EmulatorJoystickCalibrationView.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C550A1C12B61D0013166D /* EmulatorJoystickCalibrationView.m */; }; + 935C55171C12B61D0013166D /* EmulatorJoystickController.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C550C1C12B61D0013166D /* EmulatorJoystickController.m */; }; + 935C55181C12B61D0013166D /* EmulatorPrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C550E1C12B61D0013166D /* EmulatorPrefsController.m */; }; + 935C55191C12B61D0013166D /* EmulatorWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55101C12B61D0013166D /* EmulatorWindow.m */; }; + 935C551A1C12B61D0013166D /* EmulatorWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C55121C12B61D0013166D /* EmulatorWindowController.m */; }; + 935C551C1C12B6400013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; }; + 935C551D1C12B6450013166D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 935C551B1C12B6400013166D /* main.m */; }; + 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 */; }; + 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 */; }; + 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 */ @@ -309,8 +354,6 @@ 4A7EDC911AE092680072E98A /* glhudmodel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glhudmodel.c; sourceTree = ""; }; 4A7EDC921AE092680072E98A /* glnode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glnode.c; sourceTree = ""; }; 4A7EDC9D1AE092B80072E98A /* interface.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = interface.c; sourceTree = ""; }; - 4AC7A76B19ECC3FB00BCD457 /* EmulatorWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorWindow.h; path = Classes/OSX/EmulatorWindow.h; sourceTree = ""; }; - 4AC7A76C19ECC3FB00BCD457 /* EmulatorWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorWindow.m; path = Classes/OSX/EmulatorWindow.m; sourceTree = ""; }; 4AD4FEC31A52464F00F958EC /* Apple2MacTestDisk.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2MacTestDisk.app; sourceTree = BUILT_PRODUCTS_DIR; }; 4AD4FEC41A52464F00F958EC /* Apple2MacTestDisk-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Apple2MacTestDisk-Info.plist"; path = "Apple2MacTests/Apple2MacTestDisk-Info.plist"; sourceTree = SOURCE_ROOT; }; 4AD4FEC91A52467D00F958EC /* testdisk.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testdisk.c; sourceTree = ""; }; @@ -329,10 +372,7 @@ 4AFC17091AAE9C3200B215FA /* sha1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sha1.c; sourceTree = ""; }; 4AFC170F1AAE9CC000B215FA /* testdisplay1.nib.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; path = testdisplay1.nib.gz; sourceTree = ""; }; 4AFC17101AAE9CC000B215FA /* testvm1.nib.gz */ = {isa = PBXFileReference; lastKnownFileType = archive.gzip; path = testvm1.nib.gz; sourceTree = ""; }; - 4EE95E771C247060009877CE /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; - 4EE95E781C247060009877CE /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = fr; path = fr.lproj/Credits.rtf; sourceTree = ""; }; - 4EE95E791C247060009877CE /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; }; - 4EE95E7F1C24710F009877CE /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/MainMenu.xib; sourceTree = ""; }; + 4E4585F91C29F2B9003E74A1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; 773B3D0C1956885A0085CE5F /* Apple2Mac.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2Mac.app; sourceTree = BUILT_PRODUCTS_DIR; }; 773B3D0F1956885A0085CE5F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 773B3D121956885A0085CE5F /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; @@ -340,10 +380,7 @@ 773B3D141956885A0085CE5F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 773B3D171956885A0085CE5F /* Apple2Mac-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Apple2Mac-Info.plist"; sourceTree = ""; }; 773B3D191956885A0085CE5F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; - 773B3D1B1956885A0085CE5F /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 773B3D1D1956885A0085CE5F /* Apple2Mac-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Apple2Mac-Prefix.pch"; sourceTree = ""; }; 773B3D1F1956885A0085CE5F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; - 773B3D251956885A0085CE5F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; 773B3D271956885A0085CE5F /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 773B3D371956885A0085CE5F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 773B3D5C19568A570085CE5F /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; @@ -385,11 +422,6 @@ 773B3D9319568A570085CE5F /* glue-prologue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "glue-prologue.h"; sourceTree = ""; }; 773B3D9519568A570085CE5F /* zlib-helpers.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "zlib-helpers.c"; sourceTree = ""; }; 773B3D9619568A570085CE5F /* zlib-helpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "zlib-helpers.h"; sourceTree = ""; }; - 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.1.1.3.dylib; path = usr/lib/libz.1.1.3.dylib; sourceTree = SDKROOT; }; - 773BC91419F2E6A900996893 /* EmulatorDiskController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorDiskController.h; path = Classes/OSX/EmulatorDiskController.h; sourceTree = ""; }; - 773BC91519F2E6A900996893 /* EmulatorDiskController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorDiskController.m; path = Classes/OSX/EmulatorDiskController.m; sourceTree = ""; }; - 773BC91719F2FD4500996893 /* EmulatorPrefsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorPrefsController.h; path = Classes/OSX/EmulatorPrefsController.h; sourceTree = ""; }; - 773BC91819F2FD4500996893 /* EmulatorPrefsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorPrefsController.m; path = Classes/OSX/EmulatorPrefsController.m; sourceTree = ""; }; 779DD826195764E200DF89E5 /* rom-shim.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "rom-shim.c"; sourceTree = ""; }; 779DD850195BD9F900DF89E5 /* Apple2MacTestCPU.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2MacTestCPU.app; sourceTree = BUILT_PRODUCTS_DIR; }; 779DD851195BD9F900DF89E5 /* Apple2MacTestCPU-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Apple2MacTestCPU-Info.plist"; path = "Apple2MacTests/Apple2MacTestCPU-Info.plist"; sourceTree = SOURCE_ROOT; }; @@ -414,8 +446,6 @@ 779F569119EB0B9100A6F107 /* Apple2MacTestDisplay.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Apple2MacTestDisplay.app; sourceTree = BUILT_PRODUCTS_DIR; }; 779F569219EB0B9100A6F107 /* Apple2MacTestDisplay-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Apple2MacTestDisplay-Info.plist"; path = "Apple2MacTests/Apple2MacTestDisplay-Info.plist"; sourceTree = SOURCE_ROOT; }; 77C279601A1047AE000FE33F /* DDHidLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = DDHidLib.xcodeproj; path = DDHidLib/DDHidLib.xcodeproj; sourceTree = ""; }; - 77C279731A1048B4000FE33F /* EmulatorJoystickController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorJoystickController.h; path = Classes/OSX/EmulatorJoystickController.h; sourceTree = ""; }; - 77C279741A1048B4000FE33F /* EmulatorJoystickController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorJoystickController.m; path = Classes/OSX/EmulatorJoystickController.m; sourceTree = ""; }; 77E1C0A819D72700004344E0 /* vectorUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = vectorUtil.h; path = video_util/vectorUtil.h; sourceTree = ""; }; 77E1C0A919D72700004344E0 /* vectorUtil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = vectorUtil.c; path = video_util/vectorUtil.c; sourceTree = ""; }; 77E1C0AA19D72700004344E0 /* sourceUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sourceUtil.h; path = video_util/sourceUtil.h; sourceTree = ""; }; @@ -427,15 +457,57 @@ 77E1C0B019D72700004344E0 /* imageUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = imageUtil.m; path = video_util/imageUtil.m; sourceTree = ""; }; 77E1C0B119D72700004344E0 /* imageUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imageUtil.h; path = video_util/imageUtil.h; sourceTree = ""; }; 77E1C0B219D72700004344E0 /* glUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glUtil.h; path = video_util/glUtil.h; sourceTree = ""; }; - 77E1C0BE19D7298F004344E0 /* EmulatorWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorWindowController.m; path = Classes/OSX/EmulatorWindowController.m; sourceTree = ""; }; - 77E1C0BF19D7298F004344E0 /* EmulatorWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorWindowController.h; path = Classes/OSX/EmulatorWindowController.h; sourceTree = ""; }; - 77E1C0C019D7298F004344E0 /* EmulatorGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorGLView.m; path = Classes/OSX/EmulatorGLView.m; sourceTree = ""; }; - 77E1C0C119D7298F004344E0 /* EmulatorGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorGLView.h; path = Classes/OSX/EmulatorGLView.h; sourceTree = ""; }; - 77E1C0C219D7298F004344E0 /* EmulatorFullscreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorFullscreenWindow.m; path = Classes/OSX/EmulatorFullscreenWindow.m; sourceTree = ""; }; - 77E1C0C319D7298F004344E0 /* EmulatorFullscreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorFullscreenWindow.h; path = Classes/OSX/EmulatorFullscreenWindow.h; sourceTree = ""; }; 77E1C0C719D736EB004344E0 /* glvideo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = glvideo.c; sourceTree = ""; }; - 77F80B421A2D95E300D45030 /* EmulatorJoystickCalibrationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorJoystickCalibrationView.m; path = Classes/OSX/EmulatorJoystickCalibrationView.m; sourceTree = ""; }; - 77F80B431A2D95E300D45030 /* EmulatorJoystickCalibrationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorJoystickCalibrationView.h; path = Classes/OSX/EmulatorJoystickCalibrationView.h; sourceTree = ""; }; + 93206C771C14E14000668153 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Apple2iOS.strings; sourceTree = ""; }; + 93206C831C156BD300668153 /* A2IXPopupChoreographer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = A2IXPopupChoreographer.h; path = Classes/iOS/A2IXPopupChoreographer.h; sourceTree = SOURCE_ROOT; }; + 93206C841C156BD300668153 /* A2IXPopupChoreographer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = A2IXPopupChoreographer.m; path = Classes/iOS/A2IXPopupChoreographer.m; sourceTree = SOURCE_ROOT; }; + 935C55031C12B61D0013166D /* EmulatorGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorGLView.h; path = Classes/OSX/EmulatorGLView.h; sourceTree = SOURCE_ROOT; }; + 935C55041C12B61D0013166D /* EmulatorGLView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorGLView.m; path = Classes/OSX/EmulatorGLView.m; sourceTree = SOURCE_ROOT; }; + 935C55051C12B61D0013166D /* EmulatorDiskController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorDiskController.h; path = Classes/OSX/EmulatorDiskController.h; sourceTree = SOURCE_ROOT; }; + 935C55061C12B61D0013166D /* EmulatorDiskController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorDiskController.m; path = Classes/OSX/EmulatorDiskController.m; sourceTree = SOURCE_ROOT; }; + 935C55071C12B61D0013166D /* EmulatorFullscreenWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorFullscreenWindow.h; path = Classes/OSX/EmulatorFullscreenWindow.h; sourceTree = SOURCE_ROOT; }; + 935C55081C12B61D0013166D /* EmulatorFullscreenWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorFullscreenWindow.m; path = Classes/OSX/EmulatorFullscreenWindow.m; sourceTree = SOURCE_ROOT; }; + 935C55091C12B61D0013166D /* EmulatorJoystickCalibrationView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorJoystickCalibrationView.h; path = Classes/OSX/EmulatorJoystickCalibrationView.h; sourceTree = SOURCE_ROOT; }; + 935C550A1C12B61D0013166D /* EmulatorJoystickCalibrationView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorJoystickCalibrationView.m; path = Classes/OSX/EmulatorJoystickCalibrationView.m; sourceTree = SOURCE_ROOT; }; + 935C550B1C12B61D0013166D /* EmulatorJoystickController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorJoystickController.h; path = Classes/OSX/EmulatorJoystickController.h; sourceTree = SOURCE_ROOT; }; + 935C550C1C12B61D0013166D /* EmulatorJoystickController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorJoystickController.m; path = Classes/OSX/EmulatorJoystickController.m; sourceTree = SOURCE_ROOT; }; + 935C550D1C12B61D0013166D /* EmulatorPrefsController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorPrefsController.h; path = Classes/OSX/EmulatorPrefsController.h; sourceTree = SOURCE_ROOT; }; + 935C550E1C12B61D0013166D /* EmulatorPrefsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorPrefsController.m; path = Classes/OSX/EmulatorPrefsController.m; sourceTree = SOURCE_ROOT; }; + 935C550F1C12B61D0013166D /* EmulatorWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorWindow.h; path = Classes/OSX/EmulatorWindow.h; sourceTree = SOURCE_ROOT; }; + 935C55101C12B61D0013166D /* EmulatorWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EmulatorWindow.m; path = Classes/OSX/EmulatorWindow.m; sourceTree = SOURCE_ROOT; }; + 935C55111C12B61D0013166D /* EmulatorWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulatorWindowController.h; path = Classes/OSX/EmulatorWindowController.h; sourceTree = SOURCE_ROOT; }; + 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 = ""; }; + 935C55211C12B6650013166D /* Apple2Mac-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Apple2Mac-Prefix.pch"; sourceTree = ""; }; + 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 = ""; }; + 935C55361C12BA5F0013166D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 935C55421C12BCFD0013166D /* Apple2iOS-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Apple2iOS-Info.plist"; sourceTree = ""; }; + 935C55451C12BE110013166D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; + 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 = ""; }; + 935C55711C136E6F0013166D /* json_parse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = json_parse.h; sourceTree = ""; }; + 935C55741C136ED40013166D /* playqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = playqueue.h; sourceTree = ""; }; + 935C55751C136F0D0013166D /* testtrace.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = testtrace.c; sourceTree = ""; }; + 935C55771C136F260013166D /* sha1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha1.h; sourceTree = ""; }; + 935C557A1C136F7E0013166D /* cpu-regs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "cpu-regs.h"; path = "arm/cpu-regs.h"; sourceTree = ""; }; + 935C557C1C136FBD0013166D /* glue-prologue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "glue-prologue.h"; path = "arm/glue-prologue.h"; sourceTree = ""; }; + 935C557F1C136FEF0013166D /* glvideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glvideo.h; sourceTree = ""; }; + 935C55811C13702A0013166D /* glhudmodel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glhudmodel.h; sourceTree = ""; }; + 935C55821C13703F0013166D /* glnode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = glnode.h; sourceTree = ""; }; + 935C55841C1370800013166D /* gltouchjoy_joy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy_joy.c; sourceTree = ""; }; + 935C55851C1370800013166D /* gltouchjoy_kpad.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy_kpad.c; sourceTree = ""; }; + 935C55861C1370800013166D /* gltouchjoy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchjoy.c; sourceTree = ""; }; + 935C55871C1370800013166D /* gltouchjoy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gltouchjoy.h; sourceTree = ""; }; + 935C55881C1370800013166D /* gltouchkbd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchkbd.c; sourceTree = ""; }; + 935C55891C1370800013166D /* gltouchmenu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = gltouchmenu.c; sourceTree = ""; }; + 935C559E1C1384240013166D /* darwin-cpu-glue.S */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = "darwin-cpu-glue.S"; sourceTree = ""; }; + 935C55A01C1384400013166D /* cpu.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = cpu.S; path = arm/cpu.S; sourceTree = ""; }; + 935C55A71C1389370013166D /* jsmn.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jsmn.c; path = ../externals/jsmn/jsmn.c; sourceTree = ""; }; + 935C55A81C1389370013166D /* jsmn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = jsmn.h; path = ../externals/jsmn/jsmn.h; sourceTree = ""; }; 93BC72541BF6F8E2005CDFCA /* glalert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = glalert.c; sourceTree = ""; }; 93BC72561BF6FF11005CDFCA /* playqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = playqueue.c; sourceTree = ""; }; /* End PBXFileReference section */ @@ -446,7 +518,6 @@ buildActionMask = 2147483647; files = ( 4AD4FEB01A52464F00F958EC /* OpenAL.framework in Frameworks */, - 4AD4FEB11A52464F00F958EC /* libz.1.1.3.dylib in Frameworks */, 4AD4FEB21A52464F00F958EC /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -456,7 +527,6 @@ buildActionMask = 2147483647; files = ( 779F566019EAF6D000A6F107 /* OpenAL.framework in Frameworks */, - 4ADC521A19E8CA4500186B36 /* libz.1.1.3.dylib in Frameworks */, 4ADC521B19E8CA4500186B36 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -466,7 +536,6 @@ buildActionMask = 2147483647; files = ( 77C279701A1047DD000FE33F /* DDHidLib.framework in Frameworks */, - 773B3DCB1956903D0085CE5F /* libz.1.1.3.dylib in Frameworks */, 773B3D101956885A0085CE5F /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -475,7 +544,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 779DD845195BD9F900DF89E5 /* libz.1.1.3.dylib in Frameworks */, 779DD846195BD9F900DF89E5 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -485,11 +553,17 @@ buildActionMask = 2147483647; files = ( 779F568019EB0B9100A6F107 /* OpenAL.framework in Frameworks */, - 779F568119EB0B9100A6F107 /* libz.1.1.3.dylib in Frameworks */, 779F568219EB0B9100A6F107 /* Cocoa.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; + 935C55251C12BA5F0013166D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ @@ -511,14 +585,21 @@ 4ADC523819E8D3F600186B36 /* testvm1.dsk.gz */, ); name = disks; - path = ../../disks; + path = ../disks; sourceTree = ""; }; 773B3D03195688590085CE5F = { isa = PBXGroup; children = ( - 773B3D151956885A0085CE5F /* Apple2Mac */, + 935C551B1C12B6400013166D /* main.m */, + 935C55211C12B6650013166D /* Apple2Mac-Prefix.pch */, 773B3D331956885A0085CE5F /* Apple2MacTests */, + 773B3D151956885A0085CE5F /* Apple2Mac */, + 935C55291C12BA5F0013166D /* Apple2iOS */, + 773B3D431956897D0085CE5F /* Classes */, + 773B3D4519568A570085CE5F /* src */, + 935C55A51C1389000013166D /* externals */, + 4ADC522F19E8D3F600186B36 /* disks */, 773B3D0E1956885A0085CE5F /* Frameworks */, 773B3D0D1956885A0085CE5F /* Products */, ); @@ -532,6 +613,7 @@ 4ADC522719E8CA4500186B36 /* Apple2MacTestVM.app */, 779F569119EB0B9100A6F107 /* Apple2MacTestDisplay.app */, 4AD4FEC31A52464F00F958EC /* Apple2MacTestDisk.app */, + 935C55281C12BA5F0013166D /* Apple2iOS.app */, ); name = Products; sourceTree = ""; @@ -541,7 +623,6 @@ children = ( 77C279601A1047AE000FE33F /* DDHidLib.xcodeproj */, 779F565F19EAF6D000A6F107 /* OpenAL.framework */, - 773B3DCA1956903D0085CE5F /* libz.1.1.3.dylib */, 773B3D0F1956885A0085CE5F /* Cocoa.framework */, 773B3D111956885A0085CE5F /* Other Frameworks */, ); @@ -561,33 +642,22 @@ 773B3D151956885A0085CE5F /* Apple2Mac */ = { isa = PBXGroup; children = ( - 4ADC522F19E8D3F600186B36 /* disks */, - 773B3D4519568A570085CE5F /* src */, - 773B3D431956897D0085CE5F /* Classes */, - 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 = ""; }; - 773B3D161956885A0085CE5F /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 773B3D171956885A0085CE5F /* Apple2Mac-Info.plist */, - 773B3D181956885A0085CE5F /* InfoPlist.strings */, - 773B3D1B1956885A0085CE5F /* main.m */, - 773B3D1D1956885A0085CE5F /* Apple2Mac-Prefix.pch */, - 773B3D1E1956885A0085CE5F /* Credits.rtf */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 773B3D331956885A0085CE5F /* Apple2MacTests */ = { isa = PBXGroup; children = ( 779DD854195BDB1700DF89E5 /* CPUTestAppDelegate.m */, 779DD855195BDB1700DF89E5 /* CPUTestAppDelegate.h */, - 773B3D7919568A570085CE5F /* test */, 773B3D341956885A0085CE5F /* Supporting Files */, ); path = Apple2MacTests; @@ -608,65 +678,46 @@ 773B3D431956897D0085CE5F /* Classes */ = { isa = PBXGroup; children = ( - 773BC91419F2E6A900996893 /* EmulatorDiskController.h */, - 773BC91519F2E6A900996893 /* EmulatorDiskController.m */, - 77E1C0C219D7298F004344E0 /* EmulatorFullscreenWindow.m */, - 77E1C0C319D7298F004344E0 /* EmulatorFullscreenWindow.h */, - 77E1C0C019D7298F004344E0 /* EmulatorGLView.m */, - 77E1C0C119D7298F004344E0 /* EmulatorGLView.h */, - 77F80B421A2D95E300D45030 /* EmulatorJoystickCalibrationView.m */, - 77F80B431A2D95E300D45030 /* EmulatorJoystickCalibrationView.h */, - 77C279731A1048B4000FE33F /* EmulatorJoystickController.h */, - 77C279741A1048B4000FE33F /* EmulatorJoystickController.m */, - 773BC91719F2FD4500996893 /* EmulatorPrefsController.h */, - 773BC91819F2FD4500996893 /* EmulatorPrefsController.m */, - 77E1C0BE19D7298F004344E0 /* EmulatorWindowController.m */, - 77E1C0BF19D7298F004344E0 /* EmulatorWindowController.h */, - 4AC7A76B19ECC3FB00BCD457 /* EmulatorWindow.h */, - 4AC7A76C19ECC3FB00BCD457 /* EmulatorWindow.m */, + 935C54741C129C740013166D /* OSX */, + 935C55231C12B9CE0013166D /* iOS */, ); name = Classes; - sourceTree = ""; - }; - 773B3D44195689910085CE5F /* Resources */ = { - isa = PBXGroup; - children = ( - 4A2636F819FDEDB700DBFB00 /* Apple2Mac.help */, - 773B3D271956885A0085CE5F /* Images.xcassets */, - 773B3D241956885A0085CE5F /* MainMenu.xib */, - 4ADC51C919E8BEB700186B36 /* MainMenu-Test.xib */, - ); - name = Resources; + path = Apple2Mac; sourceTree = ""; }; 773B3D4519568A570085CE5F /* src */ = { isa = PBXGroup; children = ( + 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 */, @@ -675,7 +726,7 @@ 773B3D9619568A570085CE5F /* zlib-helpers.h */, ); name = src; - path = ../../src; + path = ../src; sourceTree = ""; }; 773B3D7019568A570085CE5F /* meta */ = { @@ -692,27 +743,32 @@ 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 */, ); - name = test; - path = ../../src/test; + path = test; sourceTree = ""; }; 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 */, ); @@ -733,19 +789,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; @@ -780,6 +837,94 @@ name = video_util; sourceTree = ""; }; + 935C54741C129C740013166D /* OSX */ = { + isa = PBXGroup; + children = ( + 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 */, + 935C550C1C12B61D0013166D /* EmulatorJoystickController.m */, + 935C550D1C12B61D0013166D /* EmulatorPrefsController.h */, + 935C550E1C12B61D0013166D /* EmulatorPrefsController.m */, + 935C550F1C12B61D0013166D /* EmulatorWindow.h */, + 935C55101C12B61D0013166D /* EmulatorWindow.m */, + 935C55111C12B61D0013166D /* EmulatorWindowController.h */, + 935C55121C12B61D0013166D /* EmulatorWindowController.m */, + ); + name = OSX; + sourceTree = ""; + }; + 935C55231C12B9CE0013166D /* iOS */ = { + isa = PBXGroup; + children = ( + 935C55471C12BE510013166D /* AppDelegate.h */, + 935C55481C12BE510013166D /* AppDelegate.m */, + 93206C831C156BD300668153 /* A2IXPopupChoreographer.h */, + 93206C841C156BD300668153 /* A2IXPopupChoreographer.m */, + 935C55491C12BE510013166D /* EAGLView.h */, + 935C554A1C12BE510013166D /* EAGLView.m */, + ); + name = iOS; + sourceTree = ""; + }; + 935C55291C12BA5F0013166D /* Apple2iOS */ = { + isa = PBXGroup; + children = ( + 93206C761C14E14000668153 /* Apple2iOS.strings */, + 935C55421C12BCFD0013166D /* Apple2iOS-Info.plist */, + 935C55361C12BA5F0013166D /* Assets.xcassets */, + 935C55441C12BE110013166D /* LaunchScreen.xib */, + 935C55331C12BA5F0013166D /* Main.storyboard */, + ); + path = Apple2iOS; + sourceTree = ""; + }; + 935C55781C136F550013166D /* arm */ = { + isa = PBXGroup; + children = ( + 935C55A01C1384400013166D /* cpu.S */, + 935C557C1C136FBD0013166D /* glue-prologue.h */, + 935C557A1C136F7E0013166D /* cpu-regs.h */, + ); + name = arm; + sourceTree = ""; + }; + 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 = ""; + }; + 935C55A51C1389000013166D /* externals */ = { + isa = PBXGroup; + children = ( + 935C55A61C13890D0013166D /* jsmn */, + ); + name = externals; + sourceTree = ""; + }; + 935C55A61C13890D0013166D /* jsmn */ = { + isa = PBXGroup; + children = ( + 935C55A71C1389370013166D /* jsmn.c */, + 935C55A81C1389370013166D /* jsmn.h */, + ); + name = jsmn; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -880,23 +1025,46 @@ 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 */ 773B3D04195688590085CE5F /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0510; ORGANIZATIONNAME = deadc0de.org; + TargetAttributes = { + 935C55271C12BA5F0013166D = { + CreatedOnToolsVersion = 7.1.1; + }; + }; }; buildConfigurationList = 773B3D07195688590085CE5F /* Build configuration list for PBXProject "Apple2Mac" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 6.3"; developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( en, Base, - fr, ); mainGroup = 773B3D03195688590085CE5F; productRefGroup = 773B3D0D1956885A0085CE5F /* Products */; @@ -914,6 +1082,7 @@ 4AD4FE911A52464F00F958EC /* Apple2MacTestDisk */, 779F566119EB0B9100A6F107 /* Apple2MacTestDisplay */, 4ADC51FB19E8CA4500186B36 /* Apple2MacTestVM */, + 935C55271C12BA5F0013166D /* Apple2iOS */, ); }; /* End PBXProject section */ @@ -958,6 +1127,7 @@ 4AD4FEB51A52464F00F958EC /* blank.dsk.gz in Resources */, 4AD4FEB61A52464F00F958EC /* blank.nib.gz in Resources */, 4AD4FEB71A52464F00F958EC /* testvm1.dsk.gz in Resources */, + 4AD4FED21A524BED00F958EC /* Apple2MacTestDisk-Info.plist in Resources */, 4AD4FEB81A52464F00F958EC /* README in Resources */, 4AFC17161AAE9CC000B215FA /* testvm1.nib.gz in Resources */, 4AD4FEB91A52464F00F958EC /* MainMenu-Test.xib in Resources */, @@ -995,17 +1165,13 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 4AFC17151AAE9CC000B215FA /* testvm1.nib.gz 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; }; @@ -1042,6 +1208,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 935C55261C12BA5F0013166D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 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 */, + 93206C781C14E14000668153 /* Apple2iOS.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -1185,6 +1365,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 */ @@ -1205,13 +1413,13 @@ 4AD4FE9D1A52464F00F958EC /* testcommon.c in Sources */, 4AD4FE9E1A52464F00F958EC /* misc.c in Sources */, 4AD4FE9F1A52464F00F958EC /* opcodes.c in Sources */, + 935C551F1C12B6460013166D /* main.m in Sources */, 4A7EDCA01AE092B80072E98A /* interface.c in Sources */, 4AD4FEA01A52464F00F958EC /* glvideo.c in Sources */, 4AD4FEA11A52464F00F958EC /* rom-shim.c in Sources */, 4AD4FEA21A52464F00F958EC /* zlib-helpers.c in Sources */, 4AD4FEA31A52464F00F958EC /* darwin-shim.c in Sources */, 4A7EDC9A1AE092680072E98A /* glnode.c in Sources */, - 4AD4FEA41A52464F00F958EC /* main.m in Sources */, 4AD4FECB1A52468700F958EC /* testdisk.c in Sources */, 4AD4FEA51A52464F00F958EC /* vectorUtil.c in Sources */, 4AD4FEA61A52464F00F958EC /* debug.l in Sources */, @@ -1243,13 +1451,13 @@ 4ADC520719E8CA4500186B36 /* testcommon.c in Sources */, 4ADC520819E8CA4500186B36 /* misc.c in Sources */, 4ADC520919E8CA4500186B36 /* opcodes.c in Sources */, + 935C551D1C12B6450013166D /* main.m in Sources */, 4A7EDCA21AE092B80072E98A /* interface.c in Sources */, 4ADC520A19E8CA4500186B36 /* glvideo.c in Sources */, 4ADC520B19E8CA4500186B36 /* rom-shim.c in Sources */, 4ADC520C19E8CA4500186B36 /* zlib-helpers.c in Sources */, 4ADC520D19E8CA4500186B36 /* darwin-shim.c in Sources */, 4A7EDC9C1AE092680072E98A /* glnode.c in Sources */, - 4ADC520E19E8CA4500186B36 /* main.m in Sources */, 4ADC520F19E8CA4500186B36 /* vectorUtil.c in Sources */, 4ADC521019E8CA4500186B36 /* debug.l in Sources */, 4ADC521119E8CA4500186B36 /* CPUTestAppDelegate.m in Sources */, @@ -1269,50 +1477,52 @@ 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 */, 773B3DAD19568A570085CE5F /* debugger.c in Sources */, 77E1C0B319D72700004344E0 /* vectorUtil.c in Sources */, - 4AC7A76D19ECC3FB00BCD457 /* EmulatorWindow.m in Sources */, - 77F80B441A2D95E300D45030 /* EmulatorJoystickCalibrationView.m in Sources */, 4A7EDC9E1AE092B80072E98A /* interface.c in Sources */, 773B3DAB19568A570085CE5F /* keys.c in Sources */, 773B3DBC19568A570085CE5F /* timing.c in Sources */, - 773B3DAF19568A570085CE5F /* misc.c in Sources */, - 77E1C0C419D7298F004344E0 /* EmulatorWindowController.m in Sources */, 773BC91A19F31E7B00996893 /* prefs.c in Sources */, 77E1C0B619D72700004344E0 /* matrixUtil.c in Sources */, - 77E1C0C519D7298F004344E0 /* EmulatorGLView.m in Sources */, 773B3DAE19568A570085CE5F /* opcodes.c in Sources */, - 773BC91619F2E6A900996893 /* EmulatorDiskController.m in Sources */, 779F565C19EAF66E00A6F107 /* soundcore.c in Sources */, + 935C55131C12B61D0013166D /* EmulatorGLView.m in Sources */, 779DD827195764E200DF89E5 /* rom-shim.c in Sources */, + 935C55191C12B61D0013166D /* EmulatorWindow.m in Sources */, 4A7EDC981AE092680072E98A /* glnode.c in Sources */, 773B3DC319568A570085CE5F /* zlib-helpers.c in Sources */, 77E1C0B719D72700004344E0 /* imageUtil.m in Sources */, 773B3DA219568A570085CE5F /* darwin-shim.c in Sources */, + 935C551C1C12B6400013166D /* main.m in Sources */, 77E1C0B519D72700004344E0 /* modelUtil.c in Sources */, 773B3DAC19568A570085CE5F /* debug.l in Sources */, + 935C55161C12B61D0013166D /* EmulatorJoystickCalibrationView.m in Sources */, 779F565919EAF66E00A6F107 /* AY8910.c in Sources */, - 77E1C0C619D7298F004344E0 /* EmulatorFullscreenWindow.m in Sources */, + 935C55181C12B61D0013166D /* EmulatorPrefsController.m in Sources */, 93BC72571BF6FF11005CDFCA /* playqueue.c in Sources */, - 773BC91919F2FD4500996893 /* EmulatorPrefsController.m in Sources */, 773B3DA519568A570085CE5F /* font.c in Sources */, 773B3DA019568A570085CE5F /* cpu-supp.c in Sources */, - 77C279751A1048B4000FE33F /* EmulatorJoystickController.m in Sources */, - 779F561C19D7929100A6F107 /* glvideo.c in Sources */, 779F565A19EAF66E00A6F107 /* mockingboard.c in Sources */, 77E1C0B419D72700004344E0 /* sourceUtil.c in Sources */, 779F565819EAF66E00A6F107 /* alhelpers.c in Sources */, 93BC72551BF6F8E2005CDFCA /* glalert.c in Sources */, + 935C55141C12B61D0013166D /* EmulatorDiskController.m in Sources */, 4AFC170A1AAE9C3200B215FA /* sha1.c in Sources */, + 935C551A1C12B61D0013166D /* EmulatorWindowController.m in Sources */, 773B3DBE19568A570085CE5F /* vm.c in Sources */, 773B3DC019568A570085CE5F /* darwin-glue.S in Sources */, - 773B3D1C1956885A0085CE5F /* main.m in Sources */, 773B3DAA19568A570085CE5F /* joystick.c in Sources */, + 935C55721C136E6F0013166D /* json_parse.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1333,13 +1543,13 @@ 779DD853195BDA3400DF89E5 /* testcommon.c in Sources */, 779DD836195BD9F900DF89E5 /* misc.c in Sources */, 779DD837195BD9F900DF89E5 /* opcodes.c in Sources */, + 935C55201C12B64A0013166D /* main.m in Sources */, 4A7EDC9F1AE092B80072E98A /* interface.c in Sources */, 4ADC51C619E8BD5200186B36 /* glvideo.c in Sources */, 779DD838195BD9F900DF89E5 /* rom-shim.c in Sources */, 779DD839195BD9F900DF89E5 /* zlib-helpers.c in Sources */, 779DD83A195BD9F900DF89E5 /* darwin-shim.c in Sources */, 4A7EDC991AE092680072E98A /* glnode.c in Sources */, - 4ADC51FA19E8C6EF00186B36 /* main.m in Sources */, 4ADC51C219E8BD3700186B36 /* vectorUtil.c in Sources */, 779DD83C195BD9F900DF89E5 /* debug.l in Sources */, 779DD856195BDB1700DF89E5 /* CPUTestAppDelegate.m in Sources */, @@ -1371,6 +1581,7 @@ 779F566C19EB0B9100A6F107 /* timing.c in Sources */, 779F566D19EB0B9100A6F107 /* testcommon.c in Sources */, 779F566E19EB0B9100A6F107 /* misc.c in Sources */, + 935C551E1C12B6450013166D /* main.m in Sources */, 4A7EDCA11AE092B80072E98A /* interface.c in Sources */, 779F566F19EB0B9100A6F107 /* opcodes.c in Sources */, 779F567019EB0B9100A6F107 /* glvideo.c in Sources */, @@ -1378,7 +1589,6 @@ 779F567219EB0B9100A6F107 /* zlib-helpers.c in Sources */, 4A7EDC9B1AE092680072E98A /* glnode.c in Sources */, 779F567319EB0B9100A6F107 /* darwin-shim.c in Sources */, - 779F567419EB0B9100A6F107 /* main.m in Sources */, 779F567519EB0B9100A6F107 /* vectorUtil.c in Sources */, 779F567619EB0B9100A6F107 /* debug.l in Sources */, 779F567719EB0B9100A6F107 /* CPUTestAppDelegate.m in Sources */, @@ -1392,6 +1602,57 @@ ); 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 */, + 93206C851C156BD300668153 /* A2IXPopupChoreographer.m 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 */ @@ -1415,7 +1676,6 @@ isa = PBXVariantGroup; children = ( 773B3D191956885A0085CE5F /* en */, - 4EE95E771C247060009877CE /* fr */, ); name = InfoPlist.strings; sourceTree = ""; @@ -1424,7 +1684,6 @@ isa = PBXVariantGroup; children = ( 773B3D1F1956885A0085CE5F /* en */, - 4EE95E781C247060009877CE /* fr */, ); name = Credits.rtf; sourceTree = ""; @@ -1432,8 +1691,7 @@ 773B3D241956885A0085CE5F /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( - 773B3D251956885A0085CE5F /* Base */, - 4EE95E7F1C24710F009877CE /* fr */, + 4E4585F91C29F2B9003E74A1 /* en */, ); name = MainMenu.xib; sourceTree = ""; @@ -1442,11 +1700,34 @@ isa = PBXVariantGroup; children = ( 773B3D371956885A0085CE5F /* en */, - 4EE95E791C247060009877CE /* fr */, ); name = InfoPlist.strings; sourceTree = ""; }; + 93206C761C14E14000668153 /* Apple2iOS.strings */ = { + isa = PBXVariantGroup; + children = ( + 93206C771C14E14000668153 /* Base */, + ); + name = Apple2iOS.strings; + sourceTree = ""; + }; + 935C55331C12BA5F0013166D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 935C55341C12BA5F0013166D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 935C55441C12BE110013166D /* LaunchScreen.xib */ = { + isa = PBXVariantGroup; + children = ( + 935C55451C12BE110013166D /* Base */, + ); + name = LaunchScreen.xib; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -1474,7 +1755,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestDisk-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestDisk; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1504,7 +1784,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestDisk-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestDisk; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1535,7 +1814,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestVM-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestVM; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1565,7 +1843,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestVM-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestVM; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1589,8 +1866,6 @@ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -1606,7 +1881,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.8; + MACOSX_DEPLOYMENT_TARGET = 10.9; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; }; @@ -1639,7 +1914,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.8; + MACOSX_DEPLOYMENT_TARGET = 10.9; SDKROOT = macosx; }; name = Release; @@ -1652,7 +1927,7 @@ CLANG_ENABLE_OBJC_ARC = NO; COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Apple2Mac/Apple2Mac-Prefix.pch"; + GCC_PREFIX_HEADER = "Apple2Mac-Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ( "APPLE2IX=1", "DEBUGGER=1", @@ -1665,7 +1940,9 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "Apple2Mac/Apple2Mac-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = org.deadc0de.Apple2Mac; + MACOSX_DEPLOYMENT_TARGET = 10.8; + OTHER_LDFLAGS = "-lz"; + PRODUCT_BUNDLE_IDENTIFIER = bxo.Apple2Mac; PRODUCT_NAME = "$(TARGET_NAME)"; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1680,7 +1957,7 @@ CLANG_ENABLE_OBJC_ARC = NO; COMBINE_HIDPI_IMAGES = YES; GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "Apple2Mac/Apple2Mac-Prefix.pch"; + GCC_PREFIX_HEADER = "Apple2Mac-Prefix.pch"; GCC_PREPROCESSOR_DEFINITIONS = ( "NDEBUG=1", "APPLE2IX=1", @@ -1694,7 +1971,9 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "Apple2Mac/Apple2Mac-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = org.deadc0de.Apple2Mac; + MACOSX_DEPLOYMENT_TARGET = 10.8; + OTHER_LDFLAGS = "-lz"; + PRODUCT_BUNDLE_IDENTIFIER = bxo.Apple2Mac; PRODUCT_NAME = "$(TARGET_NAME)"; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1722,7 +2001,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "Apple2MacTests/Apple2MacTestCPU-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestCPU; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1751,7 +2029,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "Apple2MacTests/Apple2MacTestCPU-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestCPU; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1782,7 +2059,6 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestDisplay-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestDisplay; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; @@ -1812,13 +2088,86 @@ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, ); INFOPLIST_FILE = "$(SRCROOT)/Apple2MacTests/Apple2MacTestDisplay-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.deadc0de.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = Apple2MacTestDisplay; USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../src"; WRAPPER_EXTENSION = app; }; 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 */ @@ -1876,6 +2225,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 */; diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.h deleted file mode 100644 index 85e2e3c8..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import - -typedef void (^DiskCompletionHandler)(NSOpenPanel *openPanel, NSInteger result); - -@interface EmulatorDiskController : NSWindowController - -+ (NSSet *)emulatorFileTypes; -+ (NSString *)extensionForPath:(NSString *)path; -+ (void)chooseDiskForWindow:(NSWindow *)window completionHandler:(DiskCompletionHandler)handler; - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.m deleted file mode 100644 index ed0c74db..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorDiskController.m +++ /dev/null @@ -1,324 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -#import "EmulatorDiskController.h" -#import "EmulatorPrefsController.h" -#import "common.h" - -#define READONLY_CHOICE_INDEX 0 -#define NO_DISK_INSERTED @"(No Disk Inserted)" -#define DSK_PROPERTIES @".dsk 143360 bytes" -#define NIB_PROPERTIES @".nib 232960 bytes" - -#define kApple2DisksURL @"kApple2DisksURL" - -@interface EmulatorDiskController () - -@property (assign) IBOutlet NSWindow *disksWindow; -@property (assign) IBOutlet NSTextField *diskInA; -@property (assign) IBOutlet NSTextField *diskInB; -@property (assign) IBOutlet NSTextField *diskAProperties; -@property (assign) IBOutlet NSTextField *diskBProperties; -@property (assign) IBOutlet NSMatrix *diskAProtection; -@property (assign) IBOutlet NSMatrix *diskBProtection; -@property (assign) IBOutlet NSButton *chooseDiskA; -@property (assign) IBOutlet NSButton *chooseDiskB; -@property (assign) IBOutlet NSButton *startupLoadDiskA; -@property (assign) IBOutlet NSButton *startupLoadDiskB; - -@end - -@implementation EmulatorDiskController - -- (void)awakeFromNib -{ -#if CRASH_APP_ON_LOAD_BECAUSE_YAY_GJ_APPLE - glGetError(); -#endif - - [self.diskInA setStringValue:NO_DISK_INSERTED]; - [self.diskAProperties setStringValue:@""]; - [self.diskInB setStringValue:NO_DISK_INSERTED]; - [self.diskBProperties setStringValue:@""]; - [self.chooseDiskA setKeyEquivalent:@"\r"]; - [self.chooseDiskA setBezelStyle:NSRoundedBezelStyle]; - [self.startupLoadDiskA setState:NSOffState]; - [self.startupLoadDiskB setState:NSOffState]; - - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - NSString *startupDiskA = [defaults stringForKey:kApple2PrefStartupDiskA]; - BOOL readOnlyA = [defaults boolForKey:kApple2PrefStartupDiskAProtected]; - if (startupDiskA) - { - const char *err = disk6_insert(0, [[NSString stringWithFormat:@"%@.gz", startupDiskA] UTF8String], readOnlyA); - if (!err) - { - [self.diskInA setStringValue:[[startupDiskA pathComponents] lastObject]]; - [self.startupLoadDiskA setState:NSOnState]; - [self.diskAProtection setState:(readOnlyA ? NSOnState : NSOffState) atRow:0 column:0]; - [self.diskAProtection setState:(!readOnlyA ? NSOnState : NSOffState) atRow:0 column:1]; - } - } - - NSString *startupDiskB = [defaults stringForKey:kApple2PrefStartupDiskB]; - BOOL readOnlyB = [defaults boolForKey:kApple2PrefStartupDiskBProtected]; - if (startupDiskB) - { - const char *err = disk6_insert(1, [[NSString stringWithFormat:@"%@.gz", startupDiskB] UTF8String], readOnlyB); - if (!err) - { - [self.diskInB setStringValue:[[startupDiskB pathComponents] lastObject]]; - [self.startupLoadDiskB setState:NSOnState]; - [self.diskBProtection setState:(readOnlyB ? NSOnState : NSOffState) atRow:0 column:0]; - [self.diskBProtection setState:(!readOnlyB ? NSOnState : NSOffState) atRow:0 column:1]; - } - } -} - -- (void)_savePrefs -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - [defaults removeObjectForKey:kApple2PrefStartupDiskA]; - [defaults removeObjectForKey:kApple2PrefStartupDiskB]; - [defaults removeObjectForKey:kApple2PrefStartupDiskAProtected]; - [defaults removeObjectForKey:kApple2PrefStartupDiskBProtected]; - - if ([self.startupLoadDiskA state] == NSOnState) - { - if (disk6.disk[0].fd >= 0) - { - NSString *diskA = [NSString stringWithUTF8String:disk6.disk[0].file_name]; - [defaults setObject:diskA forKey:kApple2PrefStartupDiskA]; - NSButtonCell *readOnlyChoice = (NSButtonCell *)[[[self diskAProtection] cells] firstObject]; - [defaults setBool:([readOnlyChoice state] == NSOnState) forKey:kApple2PrefStartupDiskAProtected]; - } - } - - if ([self.startupLoadDiskB state] == NSOnState) - { - if (disk6.disk[1].fd >= 0) - { - NSString *diskB = [NSString stringWithUTF8String:disk6.disk[1].file_name]; - [defaults setObject:diskB forKey:kApple2PrefStartupDiskB]; - NSButtonCell *readOnlyChoice = (NSButtonCell *)[[[self diskBProtection] cells] firstObject]; - [defaults setBool:([readOnlyChoice state] == NSOnState) forKey:kApple2PrefStartupDiskBProtected]; - } - } -} - -- (void)_protectionChangedForDrive:(int)drive -{ - if (disk6.disk[drive].fd < 0) - { - return; - } - // HACK NOTE : dispatch so that state of outlet property is set properly - dispatch_async(dispatch_get_main_queue(), ^{ - NSButtonCell *readOnlyChoice = (NSButtonCell *)[[(drive == 0 ? [self diskAProtection] : [self diskBProtection]) cells] firstObject]; - NSString *path = [NSString stringWithUTF8String:disk6.disk[drive].file_name]; - [self _insertDisketteInDrive:drive path:path type:[EmulatorDiskController extensionForPath:path] readOnly:([readOnlyChoice state] == NSOnState)]; - [self _savePrefs]; - }); -} - -- (IBAction)diskAProtectionChanged:(id)sender -{ - [self _protectionChangedForDrive:0]; -} - -- (IBAction)diskBProtectionChanged:(id)sender -{ - [self _protectionChangedForDrive:1]; -} - -- (BOOL)_insertDisketteInDrive:(int)drive path:(NSString *)path type:(NSString *)type readOnly:(BOOL)readOnly -{ - disk6_eject(drive); - - const char *errMsg = disk6_insert(drive, [path UTF8String], readOnly); - if (errMsg) - { - path = [NSString stringWithFormat:@"%@.gz", path]; - errMsg = disk6_insert(drive, [path UTF8String], readOnly); - if (errMsg) - { - NSAlert *alert = [NSAlert alertWithError:[NSError errorWithDomain:[NSString stringWithUTF8String:errMsg] code:-1 userInfo:nil]]; - [alert beginSheetModalForWindow:[self disksWindow] completionHandler:nil]; - if (!drive) - { - [[self diskInA] setStringValue:NO_DISK_INSERTED]; - [[self diskAProperties] setStringValue:@""]; - } - else - { - [[self diskInB] setStringValue:NO_DISK_INSERTED]; - [[self diskBProperties] setStringValue:@""]; - } - return NO; - } - } - path = [NSString stringWithUTF8String:disk6.disk[drive].file_name]; - NSString *imageName = [[path pathComponents] lastObject]; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - - if (drive == 0) - { - [[self diskInA] setStringValue:imageName]; - if ([[defaults stringForKey:kApple2PrefStartupDiskA] isEqualToString:path]) - { - [self.startupLoadDiskA setState:NSOnState]; - //[self.diskAProtection setState:(readOnly ? NSOnState : NSOffState) atRow:0 column:0]; - //[self.diskAProtection setState:(!readOnly ? NSOnState : NSOffState) atRow:0 column:1]; - } - } - else - { - [[self diskInB] setStringValue:imageName]; - if ([[defaults stringForKey:kApple2PrefStartupDiskB] isEqualToString:path]) - { - [self.startupLoadDiskB setState:NSOnState]; - //[self.diskBProtection setState:(readOnly ? NSOnState : NSOffState) atRow:0 column:0]; - //[self.diskBProtection setState:(!readOnly ? NSOnState : NSOffState) atRow:0 column:1]; - } - } - - if ([type isEqualToString:@"dsk"] || [type isEqualToString:@"do"] || [type isEqualToString:@"po"]) - { - if (!drive) - { - [[self diskAProperties] setStringValue:DSK_PROPERTIES]; - } - else - { - [[self diskBProperties] setStringValue:DSK_PROPERTIES]; - } - } - else - { - if (!drive) - { - [[self diskAProperties] setStringValue:NIB_PROPERTIES]; - } - else - { - [[self diskBProperties] setStringValue:NIB_PROPERTIES]; - } - } - - return YES; -} - -+ (NSSet *)emulatorFileTypes -{ - static NSSet *set = nil; - static dispatch_once_t onceToken = 0L; - dispatch_once(&onceToken, ^{ - set = [[NSSet alloc] initWithObjects:@"dsk", @"nib", @"do", @"po", @"gz", nil]; - }); - return [[set retain] autorelease]; -} - -+ (NSString *)extensionForPath:(NSString *)path -{ - NSString *extension0 = [path pathExtension]; - NSString *extension1 = [[path stringByDeletingPathExtension] pathExtension]; - if ([extension0 isEqualToString:@"gz"]) - { - extension0 = extension1; - } - return extension0; -} - -+ (void)chooseDiskForWindow:(NSWindow *)window completionHandler:(DiskCompletionHandler)handler -{ - NSOpenPanel *openPanel = [[NSOpenPanel openPanel] retain]; - [openPanel setTitle:@"Choose a disk image"]; - NSURL *url = [[NSUserDefaults standardUserDefaults] URLForKey:kApple2DisksURL]; - if (!url) - { - url = [[NSBundle mainBundle] URLForResource:@"images" withExtension:nil]; - } - [openPanel setDirectoryURL:url]; - [openPanel setShowsResizeIndicator:YES]; - [openPanel setShowsHiddenFiles:NO]; - [openPanel setCanChooseFiles:YES]; - [openPanel setCanChooseDirectories:NO]; - [openPanel setCanCreateDirectories:NO]; - [openPanel setAllowsMultipleSelection:NO]; - - // NOTE : Doesn't appear to be a way to specify ".dsk.gz" ... so we may inadvertently allow files of ".foo.gz" here - NSSet *fileTypes = [EmulatorDiskController emulatorFileTypes]; - [openPanel setAllowedFileTypes:[fileTypes allObjects]]; - handler = Block_copy(handler); - [openPanel beginSheetModalForWindow:window completionHandler:^(NSInteger result) { - handler(openPanel, result); - Block_release(handler); - [openPanel autorelease]; - }]; -} - -- (void)_chooseDisk:(int)drive readOnly:(BOOL)readOnly -{ - [EmulatorDiskController chooseDiskForWindow:[self disksWindow] completionHandler:^(NSOpenPanel *openPanel, NSInteger result) { - if (result == NSOKButton) - { - NSURL *selection = [[openPanel URLs] firstObject]; - NSString *path = [[selection path] stringByResolvingSymlinksInPath]; - NSString *extension = [EmulatorDiskController extensionForPath:path]; - NSSet *fileTypes = [EmulatorDiskController emulatorFileTypes]; - - NSString *directory = [path stringByDeletingLastPathComponent]; - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setURL:[NSURL URLWithString:directory] forKey:kApple2DisksURL]; - - if (![fileTypes containsObject:extension]) - { - NSAlert *alert = [NSAlert alertWithError:[NSError errorWithDomain:@"Disk image must have file extension of .dsk, .do, .po, or .nib only" code:-1 userInfo:nil]]; - [alert beginSheetModalForWindow:[self disksWindow] completionHandler:nil]; - return; - } - - [(drive == 0) ? self.startupLoadDiskA : self.startupLoadDiskB setState:NSOffState]; - [self _insertDisketteInDrive:drive path:path type:extension readOnly:readOnly]; - } - }]; -} - -- (IBAction)chooseDriveA:(id)sender -{ - NSButtonCell *readOnlyChoice = (NSButtonCell *)[[[self diskAProtection] cells] firstObject]; - [self _chooseDisk:0 readOnly:([readOnlyChoice state] == NSOnState)]; -} - -- (IBAction)chooseDriveB:(id)sender -{ - NSButtonCell *readOnlyChoice = (NSButtonCell *)[[[self diskBProtection] cells] firstObject]; - [self _chooseDisk:1 readOnly:([readOnlyChoice state] == NSOnState)]; -} - -- (IBAction)startupDiskAChoiceChanged:(id)sender -{ - [self _savePrefs]; -} - -- (IBAction)startupDiskBChoiceChanged:(id)sender -{ - [self _savePrefs]; -} - -- (IBAction)disksOK:(id)sender -{ - [[self disksWindow] close]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.h deleted file mode 100644 index af2385d9..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import - -@interface EmulatorFullscreenWindow : NSWindow - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.m deleted file mode 100644 index de0dc50e..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorFullscreenWindow.m +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import "EmulatorFullscreenWindow.h" - -@implementation EmulatorFullscreenWindow - -- (id)init -{ - // Create a screen-sized window on the display you want to take over - NSRect screenRect = [[NSScreen mainScreen] frame]; - - // Initialize the window making it size of the screen and borderless - self = [super initWithContentRect:screenRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES]; - - // Set the window level to be above the menu bar to cover everything else - [self setLevel:NSMainMenuWindowLevel+1]; - - // Set opaque - [self setOpaque:YES]; - - // Hide this when user switches to another window (or app) - [self setHidesOnDeactivate:YES]; - - return self; -} - -- (BOOL)canBecomeKeyWindow -{ - // Return yes so that this borderless window can receive input - return YES; -} - -- (void)keyUp:(NSEvent *)event -{ - [[self windowController] keyUp:event]; -} - -- (void)keyDown:(NSEvent *)event -{ - [[self windowController] keyDown:event]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.h deleted file mode 100644 index d3f16222..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import -#import - -#import "modelUtil.h" -#import "imageUtil.h" - -@interface EmulatorGLView : NSOpenGLView -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.m deleted file mode 100644 index 36d83057..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorGLView.m +++ /dev/null @@ -1,321 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import "EmulatorGLView.h" - -// Apple //e common routines -#import "common.h" - -#if TARGET_OS_MAC -#define USE_DISPLAYLINK 0 -#define BROKEN_DISPLAYLINK 1 -#else -// iOS uses CADisplayLink -#define USE_DISPLAYLINK 1 -#endif - -#define SUPPORT_RETINA_RESOLUTION 1 - -const NSString *kDrawTimerNotification = @"kDrawTimerNotification"; - -@interface EmulatorGLView () - -#if USE_DISPLAYLINK -@property (nonatomic, assign) CVDisplayLinkRef displayLink; -#else -@property (nonatomic, retain) NSTimer *timer; -#endif - -- (void)initGL; - -@end - - -@implementation EmulatorGLView - -#if USE_DISPLAYLINK -@synthesize displayLink = _displayLink; -#else -@synthesize timer = _timer; -#endif - -#pragma mark CVDisplayLink / NSTimer stuff - -#if USE_DISPLAYLINK -- (CVReturn)getFrameForTime:(const CVTimeStamp *)outputTime -{ - // There is no autorelease pool when this method is called - // because it will be called from a background thread. - // It's important to create one or app can leak objects. - @autoreleasepool { - // We draw on a secondary thread through the display link - // When resizing the view, -reshape is called automatically on the main - // thread. Add a mutex around to avoid the threads accessing the context - // simultaneously when resizing - -#if BROKEN_DISPLAYLINK -#warning ASC NOTE 2014/09/27 multi-threaded OpenGL on Mac considered harmful to developer sanity - // 2014/09/27 Kinda defeats the purpose of using CVDisplayLink ... but keeps it from crashing to dispatch to main queue - dispatch_async(dispatch_get_main_queue(), ^{ -#endif - [[self openGLContext] makeCurrentContext]; - [self drawView]; -#if BROKEN_DISPLAYLINK - }); -#endif - } - return kCVReturnSuccess; -} - -// This is the renderer output callback function -static CVReturn displayLinkCallback(CVDisplayLinkRef displayLink, const CVTimeStamp *now, const CVTimeStamp *outputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext) -{ - CVReturn result = [(EmulatorGLView *)displayLinkContext getFrameForTime:outputTime]; - return result; -} - -#else // use NSTimer -- (void)targetMethod:(NSTimer *)theTimer -{ - NSAssert([NSThread isMainThread], @"Timer fired on non-main thread!"); - [[self openGLContext] makeCurrentContext]; - [self drawView]; -} - -#endif - -#pragma mark - - -- (void)awakeFromNib -{ - NSOpenGLPixelFormatAttribute attrs[] = - { - NSOpenGLPFADoubleBuffer, - NSOpenGLPFADepthSize, 24, - // Must specify the 3.2 Core Profile to use OpenGL 3.2 - NSOpenGLPFAOpenGLProfile, - NSOpenGLProfileVersion3_2Core, - 0 - }; - - NSOpenGLPixelFormat *pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] autorelease]; - - if (!pf) - { - NSLog(@"No OpenGL pixel format"); - } - - NSOpenGLContext* context = [[[NSOpenGLContext alloc] initWithFormat:pf shareContext:nil] autorelease]; - -#if defined(DEBUG) - // When we're using a CoreProfile context, crash if we call a legacy OpenGL function - // This will make it much more obvious where and when such a function call is made so - // that we can remove such calls. - // Without this we'd simply get GL_INVALID_OPERATION error for calling legacy functions - // but it would be more difficult to see where that function was called. - CGLEnable([context CGLContextObj], kCGLCECrashOnRemovedFunctions); -#endif - - [self setPixelFormat:pf]; - [self setOpenGLContext:context]; - -#if SUPPORT_RETINA_RESOLUTION - // Opt-In to Retina resolution - [self setWantsBestResolutionOpenGLSurface:YES]; -#endif // SUPPORT_RETINA_RESOLUTION -} - -- (void)prepareOpenGL -{ - [super prepareOpenGL]; - - // Make all the OpenGL calls to setup rendering - // and build the necessary rendering objects - [self initGL]; - -#if USE_DISPLAYLINK - // Create a display link capable of being used with all active displays - CVDisplayLinkCreateWithActiveCGDisplays(&_displayLink); - - // Set the renderer output callback function - CVDisplayLinkSetOutputCallback(_displayLink, &displayLinkCallback, self); - - // Set the display link for the current renderer - CGLContextObj cglContext = [[self openGLContext] CGLContextObj]; - CGLPixelFormatObj cglPixelFormat = [[self pixelFormat] CGLPixelFormatObj]; - CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(_displayLink, cglContext, cglPixelFormat); - - // Activate the display link - CVDisplayLinkStart(_displayLink); -#else - [self.timer invalidate]; - self.timer = nil; - self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0/60.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats:YES]; -#endif - - // Register to be notified when the window closes so we can stop the displaylink - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:[self window]]; -} - -- (void)windowWillClose:(NSNotification*)notification -{ - // Stop the display link when the window is closing because default - // OpenGL render buffers will be destroyed. If display link continues to - // fire without renderbuffers, OpenGL draw calls will set errors. -#if USE_DISPLAYLINK - CVDisplayLinkStop(_displayLink); -#else - [self.timer invalidate]; - self.timer = nil; -#endif -} - -- (void)initGL -{ - // The reshape function may have changed the thread to which our OpenGL - // context is attached before prepareOpenGL and initGL are called. So call - // makeCurrentContext to ensure that our OpenGL context current to this - // thread (i.e. makeCurrentContext directs all OpenGL calls on this thread - // to [self openGLContext]) - [[self openGLContext] makeCurrentContext]; - - emulator_start(); - - // Synchronize buffer swaps with vertical refresh rate - GLint swapInt = 1; - [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; - - // Init our renderer. Use 0 for the defaultFBO which is appropriate for - // OSX (but not iOS since iOS apps must create their own FBO) -#if TARGET_OS_MAC - video_backend->init(0); -#elif TARGET_OS_IPHONE -# error "FBO FIXME TODO" - video_backend->init(otherFBO); -#else -# error "unknown/unsupported Apple platform -#endif -} - -- (void)reshape -{ - [super reshape]; - - // We draw on a secondary thread through the display link. However, when - // resizing the view, -drawRect is called on the main thread. - // Add a mutex around to avoid the threads accessing the context - // simultaneously when resizing. - CGLLockContext([[self openGLContext] CGLContextObj]); - - // Get the view size in Points - NSRect viewRectPoints = [self bounds]; - -#if SUPPORT_RETINA_RESOLUTION - - // Rendering at retina resolutions will reduce aliasing, but at the potential - // cost of framerate and battery life due to the GPU needing to render more - // pixels. - - // Any calculations the renderer does which use pixel dimentions, must be - // in "retina" space. [NSView convertRectToBacking] converts point sizes - // to pixel sizes. Thus the renderer gets the size in pixels, not points, - // so that it can set it's viewport and perform and other pixel based - // calculations appropriately. - // viewRectPixels will be larger (2x) than viewRectPoints for retina displays. - // viewRectPixels will be the same as viewRectPoints for non-retina displays - NSRect viewRectPixels = [self convertRectToBacking:viewRectPoints]; - -#else //if !SUPPORT_RETINA_RESOLUTION - - // App will typically render faster and use less power rendering at - // non-retina resolutions since the GPU needs to render less pixels. There - // is the cost of more aliasing, but it will be no-worse than on a Mac - // without a retina display. - - // Points:Pixels is always 1:1 when not supporting retina resolutions - NSRect viewRectPixels = viewRectPoints; - -#endif // !SUPPORT_RETINA_RESOLUTION - - // Set the new dimensions in our renderer - video_backend->reshape((int)viewRectPixels.size.width, (int)viewRectPixels.size.height); - - CGLUnlockContext([[self openGLContext] CGLContextObj]); -} - -- (void)renewGState -{ - // Called whenever graphics state updated (such as window resize) - - // OpenGL rendering is not synchronous with other rendering on the OSX. - // Therefore, call disableScreenUpdatesUntilFlush so the window server - // doesn't render non-OpenGL content in the window asynchronously from - // OpenGL content, which could cause flickering. (non-OpenGL content - // includes the title bar and drawing done by the app with other APIs) - [[self window] disableScreenUpdatesUntilFlush]; - [super renewGState]; -} - -- (void)drawRect:(NSRect)theRect -{ - NSAssert([NSThread isMainThread], @"drawRect called on non-main thread!"); - // Called during resize operations - // Avoid flickering during resize by drawing - [[self openGLContext] makeCurrentContext]; - [self drawView]; -} - -- (void)drawView -{ - CGLLockContext([[self openGLContext] CGLContextObj]); - video_backend->render(); - CGLFlushDrawable([[self openGLContext] CGLContextObj]); - CGLUnlockContext([[self openGLContext] CGLContextObj]); - [[NSNotificationCenter defaultCenter] postNotificationName:(NSString *)kDrawTimerNotification object:nil]; -} - -- (void)dealloc -{ - // Stop the display link BEFORE releasing anything in the view - // otherwise the display link thread may call into the view and crash - // when it encounters something that has been release -#if USE_DISPLAYLINK - CVDisplayLinkStop(_displayLink); - CVDisplayLinkRelease(_displayLink); -#else - [self.timer invalidate]; - self.timer = nil; -#endif - - // shut down common OpenGL stuff AFTER display link has been released - emulator_shutdown(); - - [super dealloc]; -} - -#pragma mark - -#pragma mark Application Delegate methods - -- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)application -{ - return YES; -} - -- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)application -{ - disk6_eject(0); - disk6_eject(1); - return NSTerminateNow; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.h deleted file mode 100644 index cce7ea35..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -#import - -@interface EmulatorJoystickCalibrationView : NSView - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.m deleted file mode 100644 index 29798b04..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickCalibrationView.m +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import "EmulatorJoystickCalibrationView.h" -#import "common.h" -#import - -@implementation EmulatorJoystickCalibrationView - -- (void)drawRect:(NSRect)dirtyRect -{ - [super drawRect:dirtyRect]; - [self drawView]; -} - -- (void)drawView -{ - static int pulseSize = 1; - - CGRect bounds = [self bounds]; - - NSAssert(bounds.size.height == JOY_RANGE, @"view should be 256pts high"); - NSAssert(bounds.size.width == JOY_RANGE, @"view should be 256pts wide"); - - CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort]; - CGContextSaveGState(context); - CGContextSetLineWidth(context, 1); - - if (joy_clip_to_radius && (joy_mode == JOY_PCJOY)) - { - CGContextSetRGBStrokeColor(context, 0, 0, 0, 1); - CGContextAddEllipseInRect(context, bounds); - CGContextStrokePath(context); - } - - CGFloat x_val = joy_x; - CGFloat y_val = JOY_RANGE-joy_y; - - CGContextSetRGBStrokeColor(context, 1, 0, 0, 1); - CGRect cursor = CGRectMake(x_val-(pulseSize/2.f), y_val-(pulseSize/2.f), pulseSize, pulseSize); - CGContextAddEllipseInRect(context, cursor); - - CGContextStrokePath(context); - CGContextRestoreGState(context); - - pulseSize = ((pulseSize+1) & 0x7) +1; -} - -- (void)keyUp:(NSEvent *)event -{ - [[self nextResponder] keyUp:event]; -} - -- (void)keyDown:(NSEvent *)event -{ - [[self nextResponder] keyDown:event]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.h deleted file mode 100644 index 2f98781d..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import - -@interface EmulatorJoystickController : NSObject - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.m deleted file mode 100644 index b1452419..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorJoystickController.m +++ /dev/null @@ -1,228 +0,0 @@ -/* - * 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 2014, 2015 Aaron Culliney - * - */ - -#import "EmulatorJoystickController.h" -#import "EmulatorWindowController.h" -#import "common.h" - -#import - -@interface EmulatorJoystickController() -@property (nonatomic, retain) NSDictionary *allJoysticks; -+ (EmulatorJoystickController *)sharedInstance; -- (void)resetJoysticks; -@end - -void gldriver_joystick_reset(void) { - [EmulatorJoystickController sharedInstance]; -} - -@implementation EmulatorJoystickController - -@synthesize allJoysticks = _allJoysticks; - -+ (EmulatorJoystickController *)sharedInstance -{ - static dispatch_once_t onceToken = 0L; - static EmulatorJoystickController *joystickController = nil; - dispatch_once(&onceToken, ^{ - joystickController = [[EmulatorJoystickController alloc] init]; - }); - return joystickController; -} - -- (instancetype)init -{ - self = [super init]; - if (self) - { - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(connectivityPoll:) name:(NSString *)kDrawTimerNotification object:nil]; - } - return self; -} - -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; - self.allJoysticks = nil; - [super dealloc]; -} - -- (void)resetJoysticks -{ - for (DDHidJoystick *joystick in [self.allJoysticks allValues]) - { - @try { - [joystick setDelegate:nil]; - [joystick stopListening]; - } @catch (NSException *e) { - // hot-plugging joysticks can cause glitches - NSLog(@"Joystick device library raised exception on close : %@", e); - } - } - NSArray *joysticks = [DDHidJoystick allJoysticks]; - NSMutableDictionary *allJoysticks = [NSMutableDictionary dictionary]; - for (DDHidJoystick *joystick in joysticks) { - NSString *key =[NSString stringWithFormat:@"%@-%@-%@", [joystick manufacturer], [joystick serialNumber], [joystick transport]]; - [allJoysticks setObject:joystick forKey:key]; - } - self.allJoysticks = allJoysticks; - dispatch_async(dispatch_get_main_queue(), ^ { - for (DDHidJoystick *joystick in [self.allJoysticks allValues]) - { - NSLog(@"found joystick : '%@' '%@' '%@' %@", [joystick manufacturer], [joystick serialNumber], [joystick transport], joystick); - @try { - [joystick setDelegate:self]; - [joystick startListening]; - } @catch (NSException *e) { - // hot-plugging joystick can cause glitches - NSLog(@"Joystick device library raised exception on start : %@", e); - } - } - }); -} - -#pragma mark - -#pragma mark Joystick connectivity polling - -- (void)connectivityPoll:(NSNotification *)notification -{ - static unsigned int counter = 0; - counter = (counter+1) % 60; - if (counter == 0) - { - NSArray *joysticks = [DDHidJoystick allJoysticks]; - BOOL changed = ([joysticks count] != [self.allJoysticks count]); - for (DDHidJoystick *joystick in joysticks) - { - NSString *key =[NSString stringWithFormat:@"%@-%@-%@", [joystick manufacturer], [joystick serialNumber], [joystick transport]]; - if (![self.allJoysticks objectForKey:key]) - { - changed = YES; - break; - } - } - if (changed) - { - [self resetJoysticks]; - } - } -#ifdef KEYPAD_JOYSTICK - if (joy_mode == JOY_KPAD) - { - c_keys_handle_input(-1, 0, 0); - } -#endif -} - -#pragma mark - -#pragma mark NSObject(DDHidJoystickDelegate) - -#define DDHID_JOYSTICK_NORMALIZER ((float)JOY_RANGE/(DDHID_JOYSTICK_VALUE_MAX*2)) -#define QUARTER_JOY (HALF_JOY_RANGE>>1) - -static inline void clampBeyondRadius(void) { - CGFloat half_x = joy_x - HALF_JOY_RANGE; - CGFloat half_y = joy_y - HALF_JOY_RANGE; - CGFloat r = sqrtf(half_x*half_x + half_y*half_y); - bool shouldClip = (r > HALF_JOY_RANGE); - if (joy_clip_to_radius && shouldClip) { - if (joy_x < HALF_JOY_RANGE) { - joy_x = (joy_x < QUARTER_JOY) ? 0.f : joy_x; - } else { - joy_x = (joy_x < HALF_JOY_RANGE+QUARTER_JOY) ? joy_x : JOY_RANGE-1; - } - if (joy_y < HALF_JOY_RANGE) { - joy_y = (joy_y < QUARTER_JOY) ? 0.f : joy_y; - } else { - joy_y = (joy_y < HALF_JOY_RANGE+QUARTER_JOY) ? joy_y : JOY_RANGE-1; - } - } -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick stick:(unsigned int)stick xChanged:(int)value -{ -#ifdef KEYPAD_JOYSTICK - if (joy_mode == JOY_KPAD) { - return; - } -#endif - - joy_x = (uint16_t)((value+DDHID_JOYSTICK_VALUE_MAX) * DDHID_JOYSTICK_NORMALIZER); - if (joy_x > 0xFF) { - joy_x = 0xFF; - } - - clampBeyondRadius(); -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick stick:(unsigned int)stick yChanged:(int)value -{ -#ifdef KEYPAD_JOYSTICK - if (joy_mode == JOY_KPAD) { - return; - } -#endif - - joy_y = (uint16_t)((value+DDHID_JOYSTICK_VALUE_MAX) * DDHID_JOYSTICK_NORMALIZER); - if (joy_y > 0xFF) { - joy_y = 0xFF; - } - - clampBeyondRadius(); -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick stick:(unsigned int)stick otherAxis:(unsigned)otherAxis valueChanged:(int)value -{ - // NOOP ... -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick stick:(unsigned int)stick povNumber:(unsigned)povNumber valueChanged:(int)value -{ - // NOOP ... -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick buttonDown:(unsigned int)buttonNumber -{ -#ifdef KEYPAD_JOYSTICK - if (joy_mode == JOY_KPAD) { - return; - } -#endif - - // sample buttons only if apple keys aren't pressed. keys get set to 0xff, and js buttons are set to 0x80. - if ((buttonNumber == 0x01) && !(joy_button0 & 0x7f)) { - joy_button0 = 0x80; - } - if ((buttonNumber == 0x02) && !(joy_button1 & 0x7f)) { - joy_button1 = 0x80; - } -} - -- (void)ddhidJoystick:(DDHidJoystick *)joystick buttonUp:(unsigned int)buttonNumber -{ -#ifdef KEYPAD_JOYSTICK - if (joy_mode == JOY_KPAD) { - return; - } -#endif - - // sample buttons only if apple keys aren't pressed. keys get set to 0xff, and js buttons are set to 0x80. - if ((buttonNumber == 0x01) && !(joy_button0 & 0x7f)) { - joy_button0 = 0x0; - } - if ((buttonNumber == 0x02) && !(joy_button1 & 0x7f)) { - joy_button1 = 0x0; - } -} - - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.h deleted file mode 100644 index f9721221..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import - -#define kApple2PrefStartupDiskA @"kApple2PrefStartupDiskA" -#define kApple2PrefStartupDiskAProtected @"kApple2PrefStartupDiskAProtected" -#define kApple2PrefStartupDiskB @"kApple2PrefStartupDiskB" -#define kApple2PrefStartupDiskBProtected @"kApple2PrefStartupDiskBProtected" - -@interface EmulatorPrefsController : NSWindowController - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.m deleted file mode 100644 index 8d31c517..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorPrefsController.m +++ /dev/null @@ -1,353 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import "EmulatorPrefsController.h" -#import "EmulatorDiskController.h" -#import "EmulatorJoystickCalibrationView.h" -#import "EmulatorWindowController.h" -#import "common.h" - -#define kApple2SavedPrefs @"kApple2SavedPrefs" -#define kApple2CPUSpeed @"kApple2CPUSpeed" -#define kApple2CPUSpeedIsMax @"kApple2CPUSpeedIsMax" -#define kApple2AltSpeed @"kApple2AltSpeed" -#define kApple2AltSpeedIsMax @"kApple2AltSpeedIsMax" -#define kApple2SoundcardConfig @"kApple2SoundcardConfig" -#define kApple2ColorConfig @"kApple2ColorConfig" -#define kApple2JoystickConfig @"kApple2JoystickConfig" -#define kApple2JoystickAutoRecenter @"kApple2JoystickAutoRecenter" -#define kApple2JoystickClipToRadius @"kApple2JoystickClipToRadius" -#define kApple2JoystickStep @"kApple2JoystickStep" - -@interface EmulatorPrefsController () - -@property (assign) IBOutlet NSSlider *cpuSlider; -@property (assign) IBOutlet NSSlider *altSlider; -@property (assign) IBOutlet NSTextField *cpuSliderLabel; -@property (assign) IBOutlet NSTextField *altSliderLabel; -@property (assign) IBOutlet NSButton *cpuMaxChoice; -@property (assign) IBOutlet NSButton *altMaxChoice; - -@property (assign) IBOutlet NSMatrix *soundCardChoice; - -@property (assign) IBOutlet NSPopUpButton *colorChoice; - -@property (assign) IBOutlet NSPopUpButton *joystickChoice; -@property (assign) IBOutlet NSButton *joystickRecenter; -@property (assign) IBOutlet NSButton *joystickClipToRadius; -@property (assign) IBOutlet NSTextField *joystickStepLabel; -@property (assign) IBOutlet NSStepper *joystickStepper; -@property (assign) IBOutlet NSTextField *joystickStepperLabel; -@property (assign) IBOutlet NSTextField *joystickKPadNotes; -@property (assign) IBOutlet NSTextField *joystickDeviceNotes; - -@property (assign) IBOutlet NSTextField *button0Pressed; -@property (assign) IBOutlet NSTextField *button1Pressed; -@property (assign) IBOutlet EmulatorJoystickCalibrationView *joystickCalibrationView; - -@end - -@implementation EmulatorPrefsController - -- (void)awakeFromNib -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - BOOL firstTime = ![defaults boolForKey:kApple2SavedPrefs]; - if (firstTime) - { - [defaults setBool:YES forKey:kApple2SavedPrefs]; - [defaults setDouble:1.0 forKey:kApple2CPUSpeed]; - [defaults setDouble:CPU_SCALE_SLOWEST forKey:kApple2AltSpeed]; - [defaults setBool:NO forKey:kApple2CPUSpeedIsMax]; - [defaults setBool:NO forKey:kApple2AltSpeedIsMax]; - [defaults setInteger:COLOR_INTERP forKey:kApple2ColorConfig]; - [defaults setInteger:JOY_KPAD forKey:kApple2JoystickConfig]; - [defaults setBool:YES forKey:kApple2JoystickAutoRecenter]; - [defaults removeObjectForKey:kApple2PrefStartupDiskA]; - [defaults removeObjectForKey:kApple2PrefStartupDiskB]; - } - - cpu_scale_factor = [defaults doubleForKey:kApple2CPUSpeed]; - [self.cpuSlider setDoubleValue:cpu_scale_factor]; - [self.cpuSliderLabel setStringValue:[NSString stringWithFormat:@"%.0f%%", cpu_scale_factor*100]]; - if ([defaults boolForKey:kApple2CPUSpeedIsMax]) - { - cpu_scale_factor = CPU_SCALE_FASTEST; - [self.cpuMaxChoice setState:NSOnState]; - [self.cpuSlider setEnabled:NO]; - } - else - { - [self.cpuMaxChoice setState:NSOffState]; - [self.cpuSlider setEnabled:YES]; - } - - cpu_altscale_factor = [defaults doubleForKey:kApple2AltSpeed]; - [self.altSlider setDoubleValue:cpu_altscale_factor]; - [self.altSliderLabel setStringValue:[NSString stringWithFormat:@"%.0f%%", cpu_altscale_factor*100]]; - if ([defaults boolForKey:kApple2AltSpeedIsMax]) - { - cpu_altscale_factor = CPU_SCALE_FASTEST; - [self.altMaxChoice setState:NSOnState]; - [self.altSlider setEnabled:NO]; - } - else - { - [self.altMaxChoice setState:NSOffState]; - [self.altSlider setEnabled:YES]; - } - -#warning TODO : actually implement sound card choices - [self.soundCardChoice deselectAllCells]; - [self.soundCardChoice selectCellAtRow:1 column:0]; - - NSInteger mode = [defaults integerForKey:kApple2ColorConfig]; - if (! ((mode >= COLOR_NONE) && (mode < NUM_COLOROPTS)) ) - { - mode = COLOR_NONE; - } - [self.colorChoice selectItemAtIndex:mode]; - color_mode = (color_mode_t)mode; - - mode = [defaults integerForKey:kApple2JoystickConfig]; - if (! ((mode >= JOY_PCJOY) && (mode < NUM_JOYOPTS)) ) - { - mode = JOY_PCJOY; - } - joy_mode = (joystick_mode_t)mode; - [self.joystickChoice selectItemAtIndex:mode]; - -#ifdef KEYPAD_JOYSTICK - joy_auto_recenter = [defaults integerForKey:kApple2JoystickAutoRecenter]; - [self.joystickRecenter setState:joy_auto_recenter ? NSOnState : NSOffState]; - joy_step = [defaults integerForKey:kApple2JoystickStep]; - if (!joy_step) - { - joy_step = 1; - } - [self.joystickStepLabel setIntegerValue:joy_step]; - [self.joystickStepper setIntegerValue:joy_step]; -#endif - - joy_clip_to_radius = [defaults boolForKey:kApple2JoystickClipToRadius]; - [self.joystickClipToRadius setState:joy_clip_to_radius ? NSOnState : NSOffState]; - - [self _setupJoystickUI]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(drawJoystickCalibration:) name:(NSString *)kDrawTimerNotification object:nil]; -} - -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [super dealloc]; -} - -- (void)_savePrefs -{ - NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; - [defaults setBool:YES forKey:kApple2SavedPrefs]; - [defaults setDouble:cpu_scale_factor forKey:kApple2CPUSpeed]; - [defaults setDouble:cpu_altscale_factor forKey:kApple2AltSpeed]; - [defaults setBool:([self.cpuMaxChoice state] == NSOnState) forKey:kApple2CPUSpeedIsMax]; - [defaults setBool:([self.altMaxChoice state] == NSOnState) forKey:kApple2AltSpeedIsMax]; - [defaults setInteger:color_mode forKey:kApple2ColorConfig]; - [defaults setInteger:joy_mode forKey:kApple2JoystickConfig]; - [defaults setInteger:joy_step forKey:kApple2JoystickStep]; - [defaults setBool:joy_auto_recenter forKey:kApple2JoystickAutoRecenter]; - [defaults setBool:joy_clip_to_radius forKey:kApple2JoystickClipToRadius]; -} - -- (IBAction)sliderDidMove:(id)sender -{ - NSSlider *slider = (NSSlider *)sender; - double value = [slider doubleValue]; - if (slider == self.cpuSlider) - { - cpu_scale_factor = value; - [self.cpuSliderLabel setStringValue:[NSString stringWithFormat:@"%.0f%%", value*100]]; - } - else - { - cpu_altscale_factor = value; - [self.altSliderLabel setStringValue:[NSString stringWithFormat:@"%.0f%%", value*100]]; - } - - timing_initialize(); - - [self _savePrefs]; -} - -- (IBAction)peggedChoiceChanged:(id)sender -{ - NSButton *maxButton = (NSButton *)sender; - if (maxButton == self.cpuMaxChoice) - { - [self.cpuSlider setEnabled:([maxButton state] != NSOnState)]; - cpu_scale_factor = ([maxButton state] == NSOnState) ? CPU_SCALE_FASTEST : [self.cpuSlider doubleValue]; - } - else - { - [self.altSlider setEnabled:([maxButton state] != NSOnState)]; - cpu_altscale_factor = ([maxButton state] == NSOnState) ? CPU_SCALE_FASTEST : [self.altSlider doubleValue]; - } - - timing_initialize(); - - [self _savePrefs]; -} - -- (IBAction)colorChoiceChanged:(id)sender -{ - NSInteger mode = [self.colorChoice indexOfSelectedItem]; - if (! ((mode >= COLOR_NONE) && (mode < NUM_COLOROPTS)) ) - { - mode = COLOR_NONE; - } - color_mode = (color_mode_t)mode; - [self _savePrefs]; - -#warning HACK TODO FIXME need to refactor video resetting procedure - video_reset(); - video_setpage(!!(softswitches & SS_SCREEN)); - video_redraw(); -} - -- (IBAction)soundCardChoiceChanged:(id)sender -{ -#warning TODO : make soundcard configurable at runtime -} - -#pragma mark - -#pragma mark Joystick preferences - -- (void)_setupJoystickUI -{ - [self.joystickRecenter setHidden:(joy_mode == JOY_PCJOY)]; - [self.joystickClipToRadius setHidden:(joy_mode != JOY_PCJOY)]; - [self.joystickStepLabel setHidden:(joy_mode == JOY_PCJOY)]; - [self.joystickStepper setHidden:(joy_mode == JOY_PCJOY)]; - [self.joystickStepperLabel setHidden:(joy_mode == JOY_PCJOY)]; - [self.joystickKPadNotes setHidden:(joy_mode == JOY_PCJOY)]; - [self.joystickDeviceNotes setHidden:(joy_mode != JOY_PCJOY)]; -} - -- (IBAction)joystickChoiceChanged:(id)sender -{ - NSInteger mode = [self.joystickChoice indexOfSelectedItem]; - if (! ((mode >= JOY_PCJOY) && (mode < NUM_JOYOPTS)) ) - { - mode = JOY_PCJOY; - } - joy_mode = (joystick_mode_t)mode; - [self _setupJoystickUI]; - [self _savePrefs]; -} - -- (IBAction)autoRecenterChoiceChanged:(id)sender -{ - joy_auto_recenter = ([self.joystickRecenter state] == NSOnState); - [self _savePrefs]; -} - -- (IBAction)clipToRadiusChoiceChanged:(id)sender -{ - joy_clip_to_radius = ([self.joystickClipToRadius state] == NSOnState); - [self _savePrefs]; -} - -- (IBAction)stepValueChanged:(id)sender -{ - joy_step = [self.joystickStepper intValue]; - [self.joystickStepLabel setIntegerValue:joy_step]; - [self _savePrefs]; -} - -#pragma mark - -#pragma Joystick calibration - -- (void)drawJoystickCalibration:(NSNotification *)notification -{ - if (![self.joystickCalibrationView isHidden]) - { - [self.joystickCalibrationView setNeedsDisplay:YES]; - [self.button0Pressed setHidden:!(joy_button0)]; - [self.button1Pressed setHidden:!(joy_button1)]; - } -} - -- (void)flagsChanged:(NSEvent*)event -{ - // NOTE : yay, awesome! checking for ([event modifierFlags] & NSAlternateKeyMask) does not work properly if both were pressed and then one ALT key is unpressed ... kudoes to Apple for an excellent key-handling API /sarc - static BOOL leftAltEngaged = NO; - static BOOL rightAltEngaged = NO; - switch ([event keyCode]) - { - case ALT_LT: - leftAltEngaged = !leftAltEngaged; - c_keys_handle_input(SCODE_L_ALT, /*pressed:*/leftAltEngaged, /*cooked:*/0); - break; - case ALT_RT: - rightAltEngaged = !rightAltEngaged; - c_keys_handle_input(SCODE_R_ALT, /*pressed:*/rightAltEngaged, /*cooked:*/0); - break; - default: - break; - } - if (!([event modifierFlags] & NSAlternateKeyMask)) - { - // But we can trust the system state if no alt modifier exists ... this resets b0rken edge cases - leftAltEngaged = NO; - rightAltEngaged = NO; - } - [self.button0Pressed setHidden:!(joy_button0)]; - [self.button1Pressed setHidden:!(joy_button1)]; -} - -- (void)_handleKeyEvent:(NSEvent *)event pressed:(BOOL)pressed -{ - unichar c = [[event charactersIgnoringModifiers] characterAtIndex:0]; - int scode = (int)c; - switch (scode) - { - case NSUpArrowFunctionKey: - c_keys_handle_input(SCODE_U, pressed, /*cooked:*/0); - break; - case NSDownArrowFunctionKey: - c_keys_handle_input(SCODE_D, pressed, /*cooked:*/0); - break; - case NSLeftArrowFunctionKey: - c_keys_handle_input(SCODE_L, pressed, /*cooked:*/0); - break; - case NSRightArrowFunctionKey: - c_keys_handle_input(SCODE_R, pressed, /*cooked:*/0); - break; - default: - break; - } -} - -- (void)keyUp:(NSEvent *)event -{ - [self _handleKeyEvent:event pressed:NO]; - - // Allow other character to be handled (or not and beep) - //[super keyDown:event]; -} - -- (void)keyDown:(NSEvent *)event -{ - [self _handleKeyEvent:event pressed:YES]; - - // Allow other character to be handled (or not and beep) - //[super keyDown:event]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.h deleted file mode 100644 index a9564934..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import - -@interface EmulatorWindow : NSWindow - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.m deleted file mode 100644 index b0d98654..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindow.m +++ /dev/null @@ -1,26 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -#import "EmulatorWindow.h" - -@implementation EmulatorWindow - -- (void)keyUp:(NSEvent *)event -{ - [[self windowController] keyUp:event]; -} - -- (void)keyDown:(NSEvent *)event -{ - [[self windowController] keyDown:event]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.h b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.h deleted file mode 100644 index 9562f4e2..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import -#import "EmulatorGLView.h" - -#define CAPS_LOCK 0x39 -#define SHIFT_LT 0x38 -#define SHIFT_RT 0x3c -#define CTRL_LT 0x3b -#define CTRL_RT 0x3e -#define ALT_LT 0x3a -#define ALT_RT 0x3d - -extern const NSString *kDrawTimerNotification; - -@interface EmulatorWindowController : NSWindowController - -@end diff --git a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.m b/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.m deleted file mode 100644 index 79367081..00000000 --- a/Apple2Mac/Apple2Mac/Classes/OSX/EmulatorWindowController.m +++ /dev/null @@ -1,404 +0,0 @@ -/* - * 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 2013-2015 Aaron Culliney - * - */ - -// Based on sample code from https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html - -#import "EmulatorWindowController.h" -#import "EmulatorFullscreenWindow.h" -#import "common.h" - -@interface EmulatorWindowController () - -@property (nonatomic, assign) BOOL paused; - -@property (assign) IBOutlet EmulatorGLView *view; -@property (assign) IBOutlet NSWindow *disksWindow; -@property (assign) IBOutlet NSWindow *prefsWindow; -@property (assign) IBOutlet NSMenuItem *pauseMenuItem; -@property (assign) IBOutlet NSToolbar *toolBar; -@property (assign) IBOutlet NSToolbarItem *pauseItem; -@property (assign) IBOutlet NSToolbarItem *disk1Item; -@property (assign) IBOutlet NSToolbarItem *disk2Item; -@property (nonatomic, retain) EmulatorFullscreenWindow *fullscreenWindow; -@property (nonatomic, retain) NSWindow *standardWindow; - -@end - - -@implementation EmulatorWindowController - -@synthesize paused = _paused; -@synthesize fullscreenWindow = _fullscreenWindow; -@synthesize standardWindow = _standardWindow; - -- (id)initWithWindow:(NSWindow *)window -{ - self = [super initWithWindow:window]; - - if (self) - { - // Initialize to nil since it indicates app is not fullscreen - self.fullscreenWindow = nil; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillClose:) name:NSWindowWillCloseNotification object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(windowWillOpen:) name:NSWindowDidBecomeKeyNotification object:nil]; - } - - return self; -} - -- (void)dealloc -{ -#warning TODO FIXME ... probably should exit emulator if this gets invoked ... - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [super dealloc]; -} - -- (IBAction)reboot:(id)sender -{ - [[self disksWindow] close]; - cpu65_reboot(); -} - -- (IBAction)showDisksWindow:(id)sender -{ - if (self.fullscreenWindow) - { - [self toggleFullScreen:nil]; - [self.standardWindow setFrame:[[NSScreen mainScreen] frame] display:YES]; - } - [self.disksWindow makeKeyAndOrderFront:sender]; -} - -- (IBAction)showPreferences:(id)sender -{ - if (self.fullscreenWindow) - { - [self toggleFullScreen:nil]; - [self.standardWindow setFrame:[[NSScreen mainScreen] frame] display:YES]; - } - [self.prefsWindow makeKeyAndOrderFront:sender]; -} - -- (IBAction)toggleFullScreen:(id)sender -{ - if (self.fullscreenWindow) - { - [NSCursor unhide]; - [self goWindow]; - } - else - { - [NSCursor hide]; - [self goFullscreen]; - } -} - -- (IBAction)toggleCPUSpeed:(id)sender -{ - cpu_pause(); - timing_toggleCPUSpeed(); - if (video_backend && video_backend->animation_showCPUSpeed) - { - video_backend->animation_showCPUSpeed(); - } - cpu_resume(); -} - -- (IBAction)togglePause:(id)sender -{ - NSAssert(pthread_main_np(), @"Pause emulation called from non-main thread"); - self.paused = !_paused; -} - -- (void)setPaused:(BOOL)paused -{ - if (_paused == paused) - { - return; - } - - _paused = paused; - if (paused) - { - [[self pauseMenuItem] setTitle:@"Resume Emulation"]; - [[self pauseItem] setImage:[NSImage imageNamed:@"Run"]]; - [[self pauseItem] setLabel:@"Paused"]; - cpu_pause(); - } - else - { - [[self pauseMenuItem] setTitle:@"Pause Emulation"]; - [[self pauseItem] setImage:[NSImage imageNamed:@"Stop"]]; - [[self pauseItem] setLabel:@"Running"]; - cpu_resume(); - } - if (video_backend && video_backend->animation_showPaused) - { - video_backend->animation_showPaused(); - } -} - -- (void)windowWillOpen:(NSNotification *)notification -{ - if ((self.prefsWindow == notification.object) || (self.disksWindow == notification.object)) - { - self.paused = YES; - } -} - -- (void)windowWillClose:(NSNotification *)notification -{ - if (self.prefsWindow == notification.object) - { - self.paused = [self.disksWindow isVisible]; - } - if (self.disksWindow == notification.object) - { - self.paused = [self.prefsWindow isVisible]; - } -} - -- (void)goFullscreen -{ - // If app is already fullscreen... - if (self.fullscreenWindow) - { - //...don't do anything - return; - } - - // Allocate a new fullscreen window - self.fullscreenWindow = [[[EmulatorFullscreenWindow alloc] init] autorelease]; - - // Resize the view to screensize - NSRect viewRect = [self.fullscreenWindow frame]; - - // Set the view to the size of the fullscreen window - [self.view setFrameSize: viewRect.size]; - - // Set the view in the fullscreen window - [self.fullscreenWindow setContentView:self.view]; - - self.standardWindow = [self window]; - - // Hide non-fullscreen window so it doesn't show up when switching out - // of this app (i.e. with CMD-TAB) - [self.standardWindow orderOut:self]; - - // Set controller to the fullscreen window so that all input will go to - // this controller (self) - [self setWindow:self.fullscreenWindow]; - - // Show the window and make it the key window for input - [self.fullscreenWindow makeKeyAndOrderFront:self]; -} - -- (void)goWindow -{ - // If controller doesn't have a full screen window... - if (self.fullscreenWindow == nil) - { - //...app is already windowed so don't do anything - return; - } - - // Get the rectangle of the original window - NSRect viewRect = [self.standardWindow frame]; - - // Set the view rect to the new size - [self.view setFrame:viewRect]; - - // Set controller to the standard window so that all input will go to - // this controller (self) - [self setWindow:self.standardWindow]; - - // Set the content of the orginal window to the view - [[self window] setContentView:self.view]; - - // Show the window and make it the key window for input - [[self window] makeKeyAndOrderFront:self]; - - // Release/nilify fullscreenWindow - self.fullscreenWindow = nil; -} - -- (void)flagsChanged:(NSEvent*)event -{ - static BOOL modified_caps_lock = NO; - switch ([event keyCode]) - { - case CAPS_LOCK: - { - if ([event modifierFlags] & NSAlphaShiftKeyMask) - { - modified_caps_lock = YES; - caps_lock = true; - } - else - { - caps_lock = false; - } - } - - case SHIFT_LT: - c_keys_handle_input(SCODE_L_SHIFT, ([event modifierFlags] & NSShiftKeyMask), 0); - break; - - case SHIFT_RT: - c_keys_handle_input(SCODE_R_SHIFT, ([event modifierFlags] & NSShiftKeyMask), 0); - break; - - case CTRL_LT: - c_keys_handle_input(SCODE_L_CTRL, ([event modifierFlags] & NSControlKeyMask), 0); - break; - - case CTRL_RT: - c_keys_handle_input(SCODE_R_CTRL, ([event modifierFlags] & NSControlKeyMask), 0); - break; - - case ALT_LT: - c_keys_handle_input(SCODE_L_ALT, ([event modifierFlags] & NSAlternateKeyMask), 0); - break; - - case ALT_RT: - c_keys_handle_input(SCODE_R_ALT, ([event modifierFlags] & NSAlternateKeyMask), 0); - break; - - default: - break; - } -} - -- (void)_handleKeyEvent:(NSEvent *)event pressed:(BOOL)pressed -{ - unichar c = [[event charactersIgnoringModifiers] characterAtIndex:0]; - int scode = (int)c; - - int cooked = 0; - switch (scode) - { - case 0x1b: - scode = SCODE_ESC; - break; - - case NSUpArrowFunctionKey: - scode = SCODE_U; - break; - case NSDownArrowFunctionKey: - scode = SCODE_D; - break; - case NSLeftArrowFunctionKey: - scode = SCODE_L; - break; - case NSRightArrowFunctionKey: - scode = SCODE_R; - break; - - case NSF1FunctionKey: - scode = SCODE_F1; - break; - case NSF2FunctionKey: - scode = SCODE_F2; - break; - case NSF3FunctionKey: - scode = SCODE_F3; - break; - case NSF4FunctionKey: - scode = SCODE_F4; - break; - case NSF5FunctionKey: - scode = SCODE_F5; - break; - case NSF6FunctionKey: - scode = SCODE_F6; - break; - case NSF7FunctionKey: - scode = SCODE_F7; - break; - case NSF8FunctionKey: - scode = SCODE_F8; - break; - case NSF9FunctionKey: - scode = SCODE_F9; - break; - case NSF10FunctionKey: - scode = SCODE_F10; - break; - case NSF11FunctionKey: - scode = SCODE_F11; - break; - case NSF12FunctionKey: - scode = SCODE_F12; - break; - - case NSInsertFunctionKey: - scode = SCODE_INS; - break; - case NSDeleteFunctionKey: - scode = SCODE_DEL; - break; - case NSHomeFunctionKey: - scode = SCODE_HOME; - break; - case NSEndFunctionKey: - scode = SCODE_END; - break; - - case NSPageUpFunctionKey: - scode = SCODE_PGUP; - break; - case NSPageDownFunctionKey: - scode = SCODE_PGDN; - break; - - case NSPrintScreenFunctionKey: - scode = SCODE_PRNT; - break; - case NSPauseFunctionKey: - scode = SCODE_PAUSE; - break; - case NSBreakFunctionKey: - scode = SCODE_BRK; - break; - - default: - if ([event modifierFlags] & NSControlKeyMask) - { - scode = c_keys_ascii_to_scancode(scode); - cooked = 0; - } - else - { - cooked = 1; - } - break; - } - - c_keys_handle_input(scode, pressed, cooked); -} - -- (void)keyUp:(NSEvent *)event -{ - [self _handleKeyEvent:event pressed:NO]; - - // Allow other character to be handled (or not and beep) - //[super keyDown:event]; -} - -- (void)keyDown:(NSEvent *)event -{ - [self _handleKeyEvent:event pressed:YES]; - - // Allow other character to be handled (or not and beep) - //[super keyDown:event]; -} - -@end diff --git a/Apple2Mac/Apple2Mac/Base.lproj/MainMenu.xib b/Apple2Mac/Apple2Mac/en.lproj/MainMenu.xib similarity index 100% rename from Apple2Mac/Apple2Mac/Base.lproj/MainMenu.xib rename to Apple2Mac/Apple2Mac/en.lproj/MainMenu.xib diff --git a/Apple2Mac/Apple2iOS/Base.lproj/Main.storyboard b/Apple2Mac/Apple2iOS/Base.lproj/Main.storyboard index 69ac9cb3..5c01f8fd 100644 --- a/Apple2Mac/Apple2iOS/Base.lproj/Main.storyboard +++ b/Apple2Mac/Apple2iOS/Base.lproj/Main.storyboard @@ -1,8 +1,7 @@ - + - - + @@ -63,7 +62,7 @@ - +