diff --git a/BuGS.xcodeproj/project.pbxproj b/BuGS.xcodeproj/project.pbxproj index 70d17e8..93bb0c2 100644 --- a/BuGS.xcodeproj/project.pbxproj +++ b/BuGS.xcodeproj/project.pbxproj @@ -7,138 +7,169 @@ objects = { /* Begin PBXBuildFile section */ - 9D0DFAFA2669D85F00BDBD04 /* settings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D0DFAF92669D85F00BDBD04 /* settings.c */; }; - 9D0DFB002669DA5700BDBD04 /* loadSounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D0DFAFF2669DA5700BDBD04 /* loadSounds.c */; }; - 9D17168F2491C49300C83148 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D17168E2491C49300C83148 /* main.c */; }; - 9D1716922491C49300C83148 /* main.rez in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716912491C49300C83148 /* main.rez */; }; - 9D1716942491C49300C83148 /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9D1716932491C49300C83148 /* Makefile */; }; - 9D1716972491C49300C83148 /* config.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716962491C49300C83148 /* config.txt */; }; - 9D1716992491C49300C83148 /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716982491C49300C83148 /* createDiskImage */; }; - 9D17169B2491C49300C83148 /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D17169A2491C49300C83148 /* head.mk */; }; - 9D17169D2491C49300C83148 /* launchEmulator in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D17169C2491C49300C83148 /* launchEmulator */; }; - 9D17169F2491C49300C83148 /* orca-asm in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D17169E2491C49300C83148 /* orca-asm */; }; - 9D1716A12491C49300C83148 /* orca-cc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716A02491C49300C83148 /* orca-cc */; }; - 9D1716A32491C49300C83148 /* orca-rez in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716A22491C49300C83148 /* orca-rez */; }; - 9D1716A52491C49300C83148 /* system601.2mg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716A42491C49300C83148 /* system601.2mg */; }; - 9D1716A72491C49300C83148 /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716A62491C49300C83148 /* tail.mk */; }; - 9D1716AA2491C49300C83148 /* BuGS.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D1716A92491C49300C83148 /* BuGS.xcscheme */; }; - 9DB90E80265AD04A003461C1 /* globalScores.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DB90E7F265AD04A003461C1 /* globalScores.c */; }; + 9DE37AF72694E070005FC562 /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37AF62694E070005FC562 /* Makefile */; }; + 9DE37AFA2694E070005FC562 /* config.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37AF92694E070005FC562 /* config.txt */; }; + 9DE37AFC2694E070005FC562 /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37AFB2694E070005FC562 /* createDiskImage */; }; + 9DE37AFE2694E070005FC562 /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37AFD2694E070005FC562 /* head.mk */; }; + 9DE37B002694E070005FC562 /* launchEmulator in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37AFF2694E070005FC562 /* launchEmulator */; }; + 9DE37B022694E070005FC562 /* md2teach in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B012694E070005FC562 /* md2teach */; }; + 9DE37B042694E070005FC562 /* orca-asm in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B032694E070005FC562 /* orca-asm */; }; + 9DE37B062694E070005FC562 /* orca-cc in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B052694E070005FC562 /* orca-cc */; }; + 9DE37B082694E070005FC562 /* orca-rez in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B072694E070005FC562 /* orca-rez */; }; + 9DE37B0A2694E070005FC562 /* system601.2mg in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B092694E070005FC562 /* system601.2mg */; }; + 9DE37B0E2694E070005FC562 /* tar in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B0D2694E070005FC562 /* tar */; }; + 9DE37B102694E070005FC562 /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B0F2694E070005FC562 /* tail.mk */; }; + 9DE37B132694E070005FC562 /* BuGS.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DE37B122694E070005FC562 /* BuGS.xcscheme */; }; + 9DE37B742694E0B0005FC562 /* level.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B332694E0B0005FC562 /* level.s */; }; + 9DE37B752694E0B0005FC562 /* tileConvert.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B342694E0B0005FC562 /* tileConvert.s */; }; + 9DE37B762694E0B0005FC562 /* gameSpider.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B362694E0B0005FC562 /* gameSpider.s */; }; + 9DE37B772694E0B0005FC562 /* globalScores.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B372694E0B0005FC562 /* globalScores.c */; }; + 9DE37B782694E0B0005FC562 /* game.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B382694E0B0005FC562 /* game.s */; }; + 9DE37B792694E0B0005FC562 /* gameShot.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B3A2694E0B0005FC562 /* gameShot.s */; }; + 9DE37B7A2694E0B0005FC562 /* loadSounds.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B3B2694E0B0005FC562 /* loadSounds.c */; }; + 9DE37B7B2694E0B0005FC562 /* gameMushroom.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B3D2694E0B0005FC562 /* gameMushroom.s */; }; + 9DE37B7C2694E0B0005FC562 /* globals.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B3F2694E0B0005FC562 /* globals.s */; }; + 9DE37B7D2694E0B0005FC562 /* gameSegments.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B402694E0B0005FC562 /* gameSegments.s */; }; + 9DE37B7E2694E0B0005FC562 /* score.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B412694E0B0005FC562 /* score.s */; }; + 9DE37B7F2694E0B0005FC562 /* gamePlayer.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B422694E0B0005FC562 /* gamePlayer.s */; }; + 9DE37B802694E0B0005FC562 /* gameFlea.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B452694E0B0005FC562 /* gameFlea.s */; }; + 9DE37B812694E0B0005FC562 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B472694E0B0005FC562 /* main.c */; }; + 9DE37B822694E0B0005FC562 /* settings.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B482694E0B0005FC562 /* settings.c */; }; + 9DE37B832694E0B0005FC562 /* colour.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B492694E0B0005FC562 /* colour.s */; }; + 9DE37B842694E0B0005FC562 /* ship.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B4B2694E0B0005FC562 /* ship.s */; }; + 9DE37B852694E0B0005FC562 /* solid.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B4C2694E0B0005FC562 /* solid.s */; }; + 9DE37B862694E0B0005FC562 /* numbers.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B4D2694E0B0005FC562 /* numbers.s */; }; + 9DE37B872694E0B0005FC562 /* symbols.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B4E2694E0B0005FC562 /* symbols.s */; }; + 9DE37B882694E0B0005FC562 /* segments.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B502694E0B0005FC562 /* segments.s */; }; + 9DE37B892694E0B0005FC562 /* fleas.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B512694E0B0005FC562 /* fleas.s */; }; + 9DE37B8A2694E0B0005FC562 /* spiders.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B522694E0B0005FC562 /* spiders.s */; }; + 9DE37B8B2694E0B0005FC562 /* scores.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B532694E0B0005FC562 /* scores.s */; }; + 9DE37B8C2694E0B0005FC562 /* explosions.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B542694E0B0005FC562 /* explosions.s */; }; + 9DE37B8D2694E0B0005FC562 /* scorpions.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B552694E0B0005FC562 /* scorpions.s */; }; + 9DE37B8E2694E0B0005FC562 /* shot.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B562694E0B0005FC562 /* shot.s */; }; + 9DE37B8F2694E0B0005FC562 /* letters.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B582694E0B0005FC562 /* letters.s */; }; + 9DE37B902694E0B0005FC562 /* mushrooms.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B592694E0B0005FC562 /* mushrooms.s */; }; + 9DE37B912694E0B0005FC562 /* random.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B5A2694E0B0005FC562 /* random.s */; }; + 9DE37B922694E0B0005FC562 /* gameScorpion.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B5B2694E0B0005FC562 /* gameScorpion.s */; }; + 9DE37B932694E0B0005FC562 /* gameSound.s in Sources */ = {isa = PBXBuildFile; fileRef = 9DE37B722694E0B0005FC562 /* gameSound.s */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ - 9D17168A2491C49300C83148 /* CopyFiles */ = { + 9DE37AED2694E070005FC562 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = /usr/share/man/man1/; dstSubfolderSpec = 0; files = ( - 9D17169D2491C49300C83148 /* launchEmulator in CopyFiles */, - 9D1716AA2491C49300C83148 /* BuGS.xcscheme in CopyFiles */, - 9D1716A12491C49300C83148 /* orca-cc in CopyFiles */, - 9D1716992491C49300C83148 /* createDiskImage in CopyFiles */, - 9D1716A32491C49300C83148 /* orca-rez in CopyFiles */, - 9D1716972491C49300C83148 /* config.txt in CopyFiles */, - 9D1716A52491C49300C83148 /* system601.2mg in CopyFiles */, - 9D17169F2491C49300C83148 /* orca-asm in CopyFiles */, - 9D1716922491C49300C83148 /* main.rez in CopyFiles */, - 9D17169B2491C49300C83148 /* head.mk in CopyFiles */, - 9D1716A72491C49300C83148 /* tail.mk in CopyFiles */, + 9DE37B022694E070005FC562 /* md2teach in CopyFiles */, + 9DE37B082694E070005FC562 /* orca-rez in CopyFiles */, + 9DE37B102694E070005FC562 /* tail.mk in CopyFiles */, + 9DE37B002694E070005FC562 /* launchEmulator in CopyFiles */, + 9DE37B042694E070005FC562 /* orca-asm in CopyFiles */, + 9DE37B132694E070005FC562 /* BuGS.xcscheme in CopyFiles */, + 9DE37AFC2694E070005FC562 /* createDiskImage in CopyFiles */, + 9DE37B0E2694E070005FC562 /* tar in CopyFiles */, + 9DE37AFA2694E070005FC562 /* config.txt in CopyFiles */, + 9DE37AFE2694E070005FC562 /* head.mk in CopyFiles */, + 9DE37B062694E070005FC562 /* orca-cc in CopyFiles */, + 9DE37B0A2694E070005FC562 /* system601.2mg in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 1; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 9D0CF93D25B553430035D329 /* createRaw */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = createRaw; sourceTree = ""; }; - 9D0CF93E25B553CB0035D329 /* segments.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = segments.wav; sourceTree = ""; }; - 9D0CF93F25B553DE0035D329 /* bonus.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = bonus.wav; sourceTree = ""; }; - 9D0CF94025B553FE0035D329 /* death.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = death.wav; sourceTree = ""; }; - 9D0CF94125B554490035D329 /* fire.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = fire.wav; sourceTree = ""; }; - 9D0CF94225B5547B0035D329 /* kill.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = kill.wav; sourceTree = ""; }; - 9D0CF94325B554910035D329 /* spider.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = spider.wav; sourceTree = ""; }; - 9D0CF94425B554A10035D329 /* extralife.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = extralife.wav; sourceTree = ""; }; - 9D0CF94525B554BC0035D329 /* flea_loop_256b.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = flea_loop_256b.wav; sourceTree = ""; }; - 9D0CF94625B554CE0035D329 /* scorpion.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = scorpion.wav; sourceTree = ""; }; - 9D0DC8EF258C715E00DE9E87 /* extralife.raw */ = {isa = PBXFileReference; lastKnownFileType = text; path = extralife.raw; sourceTree = ""; }; - 9D0DFAF82669D85F00BDBD04 /* settings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = settings.h; sourceTree = ""; }; - 9D0DFAF92669D85F00BDBD04 /* settings.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = settings.c; sourceTree = ""; }; - 9D0DFAFE2669DA5700BDBD04 /* loadSounds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = loadSounds.h; sourceTree = ""; }; - 9D0DFAFF2669DA5700BDBD04 /* loadSounds.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = loadSounds.c; sourceTree = ""; }; - 9D0DFB0A266DBD9000BDBD04 /* md2teach */ = {isa = PBXFileReference; lastKnownFileType = file; path = md2teach; sourceTree = ""; }; - 9D0DFB11266DC03E00BDBD04 /* Read.Me.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = Read.Me.md; sourceTree = ""; }; - 9D1553DE257ACA1800657188 /* ACKNOWLEDGEMENTS.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = ACKNOWLEDGEMENTS.md; sourceTree = ""; }; - 9D1553E9257F3E5200657188 /* fire.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = fire.raw; sourceTree = ""; }; - 9D1553EA257F3E5200657188 /* bonus.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = bonus.raw; sourceTree = ""; }; - 9D1553EB257F3E5200657188 /* death.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = death.raw; sourceTree = ""; }; - 9D1553EC257F3E5200657188 /* kill.raw */ = {isa = PBXFileReference; lastKnownFileType = text; path = kill.raw; sourceTree = ""; }; - 9D1553ED257F3E5200657188 /* segments.raw */ = {isa = PBXFileReference; lastKnownFileType = text; path = segments.raw; sourceTree = ""; }; - 9D1553EE257F3E5200657188 /* spider.raw */ = {isa = PBXFileReference; lastKnownFileType = text; path = spider.raw; sourceTree = ""; }; - 9D159805258A6BCB00BA42DF /* gameSound.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameSound.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D1716842491C49300C83148 /* BuGS */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BuGS; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D1716872491C49300C83148 /* BuGS.2mg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BuGS.2mg; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D17168C2491C49300C83148 /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; - 9D17168E2491C49300C83148 /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; - 9D1716902491C49300C83148 /* main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; }; - 9D1716912491C49300C83148 /* main.rez */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.rez; path = main.rez; sourceTree = ""; }; - 9D1716932491C49300C83148 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; - 9D1716962491C49300C83148 /* config.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = config.txt; sourceTree = ""; }; - 9D1716982491C49300C83148 /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = createDiskImage; sourceTree = ""; }; - 9D17169A2491C49300C83148 /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = head.mk; sourceTree = ""; }; - 9D17169C2491C49300C83148 /* launchEmulator */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = launchEmulator; sourceTree = ""; }; - 9D17169E2491C49300C83148 /* orca-asm */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-asm"; sourceTree = ""; }; - 9D1716A02491C49300C83148 /* orca-cc */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-cc"; sourceTree = ""; }; - 9D1716A22491C49300C83148 /* orca-rez */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-rez"; sourceTree = ""; }; - 9D1716A42491C49300C83148 /* system601.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601.2mg; sourceTree = ""; }; - 9D1716A62491C49300C83148 /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = tail.mk; sourceTree = ""; }; - 9D1716A92491C49300C83148 /* BuGS.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = BuGS.xcscheme; path = ../../BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme; sourceTree = ""; }; - 9D2FF6DA24C4C79A000181E5 /* random.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = random.s; sourceTree = ""; }; - 9D3396F424AECB1D003222B3 /* explosions.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = explosions.s; sourceTree = ""; }; - 9D3396F524AECBB1003222B3 /* spiders.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = spiders.s; sourceTree = ""; }; - 9D3396F624AECC40003222B3 /* scorpions.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = scorpions.s; sourceTree = ""; }; - 9D3396F724AECCAC003222B3 /* scores.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = scores.s; sourceTree = ""; }; - 9D3396F824AECD11003222B3 /* fleas.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = fleas.s; sourceTree = ""; }; - 9D3396F924AECD7A003222B3 /* numbers.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = numbers.s; sourceTree = ""; }; - 9D3396FA24AECDE9003222B3 /* solid.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = solid.s; sourceTree = ""; }; - 9D3396FB24AECF7C003222B3 /* symbols.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = symbols.s; sourceTree = ""; }; - 9D3396FC24AECFBB003222B3 /* letters.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = letters.s; sourceTree = ""; }; - 9D3396FD24AECFF5003222B3 /* mushrooms.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = mushrooms.s; sourceTree = ""; }; - 9D3396FF24AED09D003222B3 /* sprites.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = sprites.md; sourceTree = ""; }; - 9D33970024AEFBF2003222B3 /* segments.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = segments.s; sourceTree = ""; }; - 9D33970124AF9D55003222B3 /* sprites.macros */ = {isa = PBXFileReference; lastKnownFileType = text; path = sprites.macros; sourceTree = ""; }; - 9D40049726575A8100478FB2 /* system601_net.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601_net.2mg; sourceTree = ""; }; - 9D47CBE02547BEDB00CDA5CB /* gameMushroom.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameMushroom.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D47CC14254A698900CDA5CB /* gamePlayer.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gamePlayer.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D47CCBA25525C1A00CDA5CB /* genData.pl */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; path = genData.pl; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.perl; }; - 9D4EF43E25D7006A001BEDB0 /* tar */ = {isa = PBXFileReference; lastKnownFileType = file; path = tar; sourceTree = ""; }; - 9D4EF46925D9D171001BEDB0 /* BuGS.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BuGS.png; sourceTree = ""; }; - 9D53E5B32562320300E10169 /* gameShot.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameShot.s; sourceTree = ""; }; - 9D53E6472565939300E10169 /* BUGS.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = BUGS.md; sourceTree = ""; }; - 9D62AF3B249871A300348F45 /* colour.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = colour.s; sourceTree = ""; }; - 9D62AF3F2499CD1E00348F45 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; - 9D62AF402499CD3A00348F45 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; - 9D6DB0AE2591A67700CDBF05 /* flea.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = flea.raw; sourceTree = ""; }; - 9D6DB0B825932CA600CDBF05 /* scorpion.raw */ = {isa = PBXFileReference; lastKnownFileType = text; path = scorpion.raw; sourceTree = ""; }; - 9D6DB164259D759C00CDBF05 /* tileConvert.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = tileConvert.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D6DB18625A411DA00CDBF05 /* BuGS.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = BuGS.2mg; sourceTree = ""; }; - 9D8AF0B72535542400C10E3C /* level.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = level.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D8AF0B82535543000C10E3C /* score.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = score.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D8FFC602491CA28005C9327 /* game.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = game.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9D8FFC612491CAF0005C9327 /* game.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; - 9D9F07F92553AB3800875B29 /* TODO.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = TODO.md; sourceTree = ""; }; - 9DB1505024C3801100558B87 /* gameFlea.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameFlea.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9DB1505124C6875C00558B87 /* gameScorpion.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameScorpion.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9DB1505224C7495400558B87 /* globals.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = globals.s; sourceTree = ""; }; - 9DB1505324C9E54C00558B87 /* gameSpider.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameSpider.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9DB1505424D3BF6C00558B87 /* gameSegments.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = gameSegments.s; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.asm.orcam; }; - 9DB1505524D3BFCE00558B87 /* global.macros */ = {isa = PBXFileReference; lastKnownFileType = text; path = global.macros; sourceTree = ""; }; - 9DB90E7E265AD04A003461C1 /* globalScores.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = globalScores.h; sourceTree = ""; }; - 9DB90E7F265AD04A003461C1 /* globalScores.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = globalScores.c; sourceTree = ""; }; - 9DC4D7BD24B7652100BACF4B /* ship.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ship.s; sourceTree = ""; }; - 9DC4D7BE24B80C9600BACF4B /* shot.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = shot.s; sourceTree = ""; }; + 9DE37AE52694E070005FC562 /* BuGS */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BuGS; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DE37AE82694E070005FC562 /* BuGS.2mg */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BuGS.2mg; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DE37AEA2694E070005FC562 /* BuGS.shk */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = BuGS.shk; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DE37AEF2694E070005FC562 /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; + 9DE37AF62694E070005FC562 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9DE37AF92694E070005FC562 /* config.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = config.txt; sourceTree = ""; }; + 9DE37AFB2694E070005FC562 /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = createDiskImage; sourceTree = ""; }; + 9DE37AFD2694E070005FC562 /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = head.mk; sourceTree = ""; }; + 9DE37AFF2694E070005FC562 /* launchEmulator */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = launchEmulator; sourceTree = ""; }; + 9DE37B012694E070005FC562 /* md2teach */ = {isa = PBXFileReference; lastKnownFileType = file; path = md2teach; sourceTree = ""; }; + 9DE37B032694E070005FC562 /* orca-asm */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-asm"; sourceTree = ""; }; + 9DE37B052694E070005FC562 /* orca-cc */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-cc"; sourceTree = ""; }; + 9DE37B072694E070005FC562 /* orca-rez */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "orca-rez"; sourceTree = ""; }; + 9DE37B092694E070005FC562 /* system601.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601.2mg; sourceTree = ""; }; + 9DE37B0D2694E070005FC562 /* tar */ = {isa = PBXFileReference; lastKnownFileType = file; path = tar; sourceTree = ""; }; + 9DE37B0F2694E070005FC562 /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; path = tail.mk; sourceTree = ""; }; + 9DE37B122694E070005FC562 /* BuGS.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = BuGS.xcscheme; path = ../../BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme; sourceTree = ""; }; + 9DE37B292694E088005FC562 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 9DE37B2A2694E088005FC562 /* BuGS.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = BuGS.png; sourceTree = ""; }; + 9DE37B2B2694E088005FC562 /* BUGS.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = BUGS.md; sourceTree = ""; }; + 9DE37B2C2694E088005FC562 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9DE37B2D2694E088005FC562 /* TODO.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = TODO.md; sourceTree = ""; }; + 9DE37B2E2694E088005FC562 /* ACKNOWLEDGEMENTS.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = ACKNOWLEDGEMENTS.md; sourceTree = ""; }; + 9DE37B332694E0B0005FC562 /* level.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = level.s; sourceTree = ""; }; + 9DE37B342694E0B0005FC562 /* tileConvert.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = tileConvert.s; sourceTree = ""; }; + 9DE37B352694E0B0005FC562 /* main.rez */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = main.rez; sourceTree = ""; }; + 9DE37B362694E0B0005FC562 /* gameSpider.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameSpider.s; sourceTree = ""; }; + 9DE37B372694E0B0005FC562 /* globalScores.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = globalScores.c; sourceTree = ""; }; + 9DE37B382694E0B0005FC562 /* game.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = game.s; sourceTree = ""; }; + 9DE37B392694E0B0005FC562 /* main.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; }; + 9DE37B3A2694E0B0005FC562 /* gameShot.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameShot.s; sourceTree = ""; }; + 9DE37B3B2694E0B0005FC562 /* loadSounds.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = loadSounds.c; sourceTree = ""; }; + 9DE37B3C2694E0B0005FC562 /* loadSounds.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loadSounds.h; sourceTree = ""; }; + 9DE37B3D2694E0B0005FC562 /* gameMushroom.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameMushroom.s; sourceTree = ""; }; + 9DE37B3E2694E0B0005FC562 /* globalScores.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globalScores.h; sourceTree = ""; }; + 9DE37B3F2694E0B0005FC562 /* globals.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = globals.s; sourceTree = ""; }; + 9DE37B402694E0B0005FC562 /* gameSegments.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameSegments.s; sourceTree = ""; }; + 9DE37B412694E0B0005FC562 /* score.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = score.s; sourceTree = ""; }; + 9DE37B422694E0B0005FC562 /* gamePlayer.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gamePlayer.s; sourceTree = ""; }; + 9DE37B432694E0B0005FC562 /* Read.Me.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Read.Me.md; sourceTree = ""; }; + 9DE37B442694E0B0005FC562 /* global.macros */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = global.macros; sourceTree = ""; }; + 9DE37B452694E0B0005FC562 /* gameFlea.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameFlea.s; sourceTree = ""; }; + 9DE37B462694E0B0005FC562 /* settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = settings.h; sourceTree = ""; }; + 9DE37B472694E0B0005FC562 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + 9DE37B482694E0B0005FC562 /* settings.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = settings.c; sourceTree = ""; }; + 9DE37B492694E0B0005FC562 /* colour.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = colour.s; sourceTree = ""; }; + 9DE37B4B2694E0B0005FC562 /* ship.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = ship.s; sourceTree = ""; }; + 9DE37B4C2694E0B0005FC562 /* solid.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = solid.s; sourceTree = ""; }; + 9DE37B4D2694E0B0005FC562 /* numbers.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = numbers.s; sourceTree = ""; }; + 9DE37B4E2694E0B0005FC562 /* symbols.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = symbols.s; sourceTree = ""; }; + 9DE37B4F2694E0B0005FC562 /* sprites.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = sprites.md; sourceTree = ""; }; + 9DE37B502694E0B0005FC562 /* segments.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = segments.s; sourceTree = ""; }; + 9DE37B512694E0B0005FC562 /* fleas.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = fleas.s; sourceTree = ""; }; + 9DE37B522694E0B0005FC562 /* spiders.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = spiders.s; sourceTree = ""; }; + 9DE37B532694E0B0005FC562 /* scores.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = scores.s; sourceTree = ""; }; + 9DE37B542694E0B0005FC562 /* explosions.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = explosions.s; sourceTree = ""; }; + 9DE37B552694E0B0005FC562 /* scorpions.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = scorpions.s; sourceTree = ""; }; + 9DE37B562694E0B0005FC562 /* shot.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = shot.s; sourceTree = ""; }; + 9DE37B572694E0B0005FC562 /* sprites.macros */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = sprites.macros; sourceTree = ""; }; + 9DE37B582694E0B0005FC562 /* letters.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = letters.s; sourceTree = ""; }; + 9DE37B592694E0B0005FC562 /* mushrooms.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = mushrooms.s; sourceTree = ""; }; + 9DE37B5A2694E0B0005FC562 /* random.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = random.s; sourceTree = ""; }; + 9DE37B5B2694E0B0005FC562 /* gameScorpion.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameScorpion.s; sourceTree = ""; }; + 9DE37B5D2694E0B0005FC562 /* flea.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = flea.raw; sourceTree = ""; }; + 9DE37B5E2694E0B0005FC562 /* segments.raw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = segments.raw; sourceTree = ""; }; + 9DE37B5F2694E0B0005FC562 /* scorpion.raw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = scorpion.raw; sourceTree = ""; }; + 9DE37B602694E0B0005FC562 /* death.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = death.raw; sourceTree = ""; }; + 9DE37B612694E0B0005FC562 /* kill.raw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = kill.raw; sourceTree = ""; }; + 9DE37B622694E0B0005FC562 /* spider.raw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = spider.raw; sourceTree = ""; }; + 9DE37B632694E0B0005FC562 /* fire.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = fire.raw; sourceTree = ""; }; + 9DE37B652694E0B0005FC562 /* extralife.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = extralife.wav; sourceTree = ""; }; + 9DE37B662694E0B0005FC562 /* bonus.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = bonus.wav; sourceTree = ""; }; + 9DE37B672694E0B0005FC562 /* kill.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = kill.wav; sourceTree = ""; }; + 9DE37B682694E0B0005FC562 /* spider.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = spider.wav; sourceTree = ""; }; + 9DE37B692694E0B0005FC562 /* fire.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = fire.wav; sourceTree = ""; }; + 9DE37B6A2694E0B0005FC562 /* segments.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = segments.wav; sourceTree = ""; }; + 9DE37B6B2694E0B0005FC562 /* scorpion.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = scorpion.wav; sourceTree = ""; }; + 9DE37B6C2694E0B0005FC562 /* createRaw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = createRaw; sourceTree = ""; }; + 9DE37B6D2694E0B0005FC562 /* death.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = death.wav; sourceTree = ""; }; + 9DE37B6E2694E0B0005FC562 /* flea_loop_256b.wav */ = {isa = PBXFileReference; lastKnownFileType = audio.wav; path = flea_loop_256b.wav; sourceTree = ""; }; + 9DE37B6F2694E0B0005FC562 /* extralife.raw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = extralife.raw; sourceTree = ""; }; + 9DE37B702694E0B0005FC562 /* bonus.raw */ = {isa = PBXFileReference; lastKnownFileType = file; path = bonus.raw; sourceTree = ""; }; + 9DE37B712694E0B0005FC562 /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; + 9DE37B722694E0B0005FC562 /* gameSound.s */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.asm; path = gameSound.s; sourceTree = ""; }; + 9DE37B732694E0B0005FC562 /* genData.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = genData.pl; sourceTree = ""; }; + 9DE37B982694E0DF005FC562 /* system601_net.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = system601_net.2mg; sourceTree = ""; }; + 9DE37B9D2694E105005FC562 /* empty.2mg */ = {isa = PBXFileReference; lastKnownFileType = file; path = empty.2mg; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 9D1716892491C49300C83148 /* Frameworks */ = { + 9DE37AEC2694E070005FC562 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( @@ -148,161 +179,162 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 9D0CF93C25B5531F0035D329 /* sources */ = { + 9DE37ADE2694E070005FC562 = { isa = PBXGroup; children = ( - 9D0CF93E25B553CB0035D329 /* segments.wav */, - 9D0CF93F25B553DE0035D329 /* bonus.wav */, - 9D0CF94025B553FE0035D329 /* death.wav */, - 9D0CF94125B554490035D329 /* fire.wav */, - 9D0CF94225B5547B0035D329 /* kill.wav */, - 9D0CF94325B554910035D329 /* spider.wav */, - 9D0CF94425B554A10035D329 /* extralife.wav */, - 9D0CF94525B554BC0035D329 /* flea_loop_256b.wav */, - 9D0CF94625B554CE0035D329 /* scorpion.wav */, - 9D0CF93D25B553430035D329 /* createRaw */, - ); - path = sources; - sourceTree = ""; - }; - 9D1553E8257F3DC600657188 /* sound */ = { - isa = PBXGroup; - children = ( - 9D0CF93C25B5531F0035D329 /* sources */, - 9D1553EA257F3E5200657188 /* bonus.raw */, - 9D6DB0AE2591A67700CDBF05 /* flea.raw */, - 9D0DC8EF258C715E00DE9E87 /* extralife.raw */, - 9D1553EB257F3E5200657188 /* death.raw */, - 9D6DB0B825932CA600CDBF05 /* scorpion.raw */, - 9D1553E9257F3E5200657188 /* fire.raw */, - 9D1553EC257F3E5200657188 /* kill.raw */, - 9D1553ED257F3E5200657188 /* segments.raw */, - 9D1553EE257F3E5200657188 /* spider.raw */, - ); - path = sound; - sourceTree = ""; - }; - 9D17167D2491C49300C83148 = { - isa = PBXGroup; - children = ( - 9D62AF3F2499CD1E00348F45 /* LICENSE */, - 9D62AF402499CD3A00348F45 /* README.md */, - 9D9F07F92553AB3800875B29 /* TODO.md */, - 9D53E6472565939300E10169 /* BUGS.md */, - 9D4EF46925D9D171001BEDB0 /* BuGS.png */, - 9D1553DE257ACA1800657188 /* ACKNOWLEDGEMENTS.md */, - 9D17168D2491C49300C83148 /* BuGS */, - 9D1716852491C49300C83148 /* Products */, + 9DE37B2E2694E088005FC562 /* ACKNOWLEDGEMENTS.md */, + 9DE37B2B2694E088005FC562 /* BUGS.md */, + 9DE37B2A2694E088005FC562 /* BuGS.png */, + 9DE37B292694E088005FC562 /* LICENSE */, + 9DE37B2C2694E088005FC562 /* README.md */, + 9DE37B2D2694E088005FC562 /* TODO.md */, + 9DE37AF02694E070005FC562 /* BuGS */, + 9DE37AE62694E070005FC562 /* Products */, ); sourceTree = ""; }; - 9D1716852491C49300C83148 /* Products */ = { + 9DE37AE62694E070005FC562 /* Products */ = { isa = PBXGroup; children = ( - 9D1716842491C49300C83148 /* BuGS */, - 9D1716872491C49300C83148 /* BuGS.2mg */, - 9D17168C2491C49300C83148 /* doNotBuild */, + 9DE37AE52694E070005FC562 /* BuGS */, + 9DE37AE82694E070005FC562 /* BuGS.2mg */, + 9DE37AEA2694E070005FC562 /* BuGS.shk */, + 9DE37AEF2694E070005FC562 /* doNotBuild */, ); name = Products; sourceTree = ""; }; - 9D17168D2491C49300C83148 /* BuGS */ = { + 9DE37AF02694E070005FC562 /* BuGS */ = { isa = PBXGroup; children = ( - 9D17168E2491C49300C83148 /* main.c */, - 9D1716902491C49300C83148 /* main.h */, - 9D0DFAF82669D85F00BDBD04 /* settings.h */, - 9D0DFAF92669D85F00BDBD04 /* settings.c */, - 9D0DFAFE2669DA5700BDBD04 /* loadSounds.h */, - 9D0DFAFF2669DA5700BDBD04 /* loadSounds.c */, - 9DB90E7E265AD04A003461C1 /* globalScores.h */, - 9DB90E7F265AD04A003461C1 /* globalScores.c */, - 9D8FFC602491CA28005C9327 /* game.s */, - 9D8FFC612491CAF0005C9327 /* game.h */, - 9DB1505024C3801100558B87 /* gameFlea.s */, - 9DB1505124C6875C00558B87 /* gameScorpion.s */, - 9DB1505324C9E54C00558B87 /* gameSpider.s */, - 9DB1505424D3BF6C00558B87 /* gameSegments.s */, - 9D47CBE02547BEDB00CDA5CB /* gameMushroom.s */, - 9D47CC14254A698900CDA5CB /* gamePlayer.s */, - 9D53E5B32562320300E10169 /* gameShot.s */, - 9D159805258A6BCB00BA42DF /* gameSound.s */, - 9D6DB164259D759C00CDBF05 /* tileConvert.s */, - 9D8AF0B72535542400C10E3C /* level.s */, - 9D8AF0B82535543000C10E3C /* score.s */, - 9D62AF3B249871A300348F45 /* colour.s */, - 9D2FF6DA24C4C79A000181E5 /* random.s */, - 9DB1505224C7495400558B87 /* globals.s */, - 9DB1505524D3BFCE00558B87 /* global.macros */, - 9D47CCBA25525C1A00CDA5CB /* genData.pl */, - 9D0DFB11266DC03E00BDBD04 /* Read.Me.md */, - 9D1553E8257F3DC600657188 /* sound */, - 9D3396F324AECACC003222B3 /* sprites */, - 9D1716912491C49300C83148 /* main.rez */, - 9D1716932491C49300C83148 /* Makefile */, - 9D1716952491C49300C83148 /* make */, - 9D1716A82491C49300C83148 /* Supporting Files */, + 9DE37B492694E0B0005FC562 /* colour.s */, + 9DE37B712694E0B0005FC562 /* game.h */, + 9DE37B382694E0B0005FC562 /* game.s */, + 9DE37B452694E0B0005FC562 /* gameFlea.s */, + 9DE37B3D2694E0B0005FC562 /* gameMushroom.s */, + 9DE37B422694E0B0005FC562 /* gamePlayer.s */, + 9DE37B5B2694E0B0005FC562 /* gameScorpion.s */, + 9DE37B402694E0B0005FC562 /* gameSegments.s */, + 9DE37B3A2694E0B0005FC562 /* gameShot.s */, + 9DE37B722694E0B0005FC562 /* gameSound.s */, + 9DE37B362694E0B0005FC562 /* gameSpider.s */, + 9DE37B732694E0B0005FC562 /* genData.pl */, + 9DE37B442694E0B0005FC562 /* global.macros */, + 9DE37B3F2694E0B0005FC562 /* globals.s */, + 9DE37B372694E0B0005FC562 /* globalScores.c */, + 9DE37B3E2694E0B0005FC562 /* globalScores.h */, + 9DE37B332694E0B0005FC562 /* level.s */, + 9DE37B3B2694E0B0005FC562 /* loadSounds.c */, + 9DE37B3C2694E0B0005FC562 /* loadSounds.h */, + 9DE37B472694E0B0005FC562 /* main.c */, + 9DE37B392694E0B0005FC562 /* main.h */, + 9DE37B352694E0B0005FC562 /* main.rez */, + 9DE37B5A2694E0B0005FC562 /* random.s */, + 9DE37B432694E0B0005FC562 /* Read.Me.md */, + 9DE37B412694E0B0005FC562 /* score.s */, + 9DE37B482694E0B0005FC562 /* settings.c */, + 9DE37B462694E0B0005FC562 /* settings.h */, + 9DE37B5C2694E0B0005FC562 /* sound */, + 9DE37B4A2694E0B0005FC562 /* sprites */, + 9DE37B342694E0B0005FC562 /* tileConvert.s */, + 9DE37AF62694E070005FC562 /* Makefile */, + 9DE37AF82694E070005FC562 /* make */, + 9DE37B112694E070005FC562 /* Supporting Files */, ); path = BuGS; sourceTree = ""; }; - 9D1716952491C49300C83148 /* make */ = { + 9DE37AF82694E070005FC562 /* make */ = { isa = PBXGroup; children = ( - 9D1716962491C49300C83148 /* config.txt */, - 9D1716982491C49300C83148 /* createDiskImage */, - 9D17169A2491C49300C83148 /* head.mk */, - 9D4EF43E25D7006A001BEDB0 /* tar */, - 9D17169C2491C49300C83148 /* launchEmulator */, - 9D0DFB0A266DBD9000BDBD04 /* md2teach */, - 9D6DB18625A411DA00CDBF05 /* BuGS.2mg */, - 9D17169E2491C49300C83148 /* orca-asm */, - 9D1716A02491C49300C83148 /* orca-cc */, - 9D1716A22491C49300C83148 /* orca-rez */, - 9D1716A42491C49300C83148 /* system601.2mg */, - 9D40049726575A8100478FB2 /* system601_net.2mg */, - 9D1716A62491C49300C83148 /* tail.mk */, + 9DE37AF92694E070005FC562 /* config.txt */, + 9DE37AFB2694E070005FC562 /* createDiskImage */, + 9DE37AFD2694E070005FC562 /* head.mk */, + 9DE37AFF2694E070005FC562 /* launchEmulator */, + 9DE37B012694E070005FC562 /* md2teach */, + 9DE37B032694E070005FC562 /* orca-asm */, + 9DE37B052694E070005FC562 /* orca-cc */, + 9DE37B072694E070005FC562 /* orca-rez */, + 9DE37B9D2694E105005FC562 /* empty.2mg */, + 9DE37B092694E070005FC562 /* system601.2mg */, + 9DE37B982694E0DF005FC562 /* system601_net.2mg */, + 9DE37B0D2694E070005FC562 /* tar */, + 9DE37B0F2694E070005FC562 /* tail.mk */, ); path = make; sourceTree = ""; }; - 9D1716A82491C49300C83148 /* Supporting Files */ = { + 9DE37B112694E070005FC562 /* Supporting Files */ = { isa = PBXGroup; children = ( - 9D1716A92491C49300C83148 /* BuGS.xcscheme */, + 9DE37B122694E070005FC562 /* BuGS.xcscheme */, ); path = "Supporting Files"; sourceTree = ""; }; - 9D3396F324AECACC003222B3 /* sprites */ = { + 9DE37B4A2694E0B0005FC562 /* sprites */ = { isa = PBXGroup; children = ( - 9D3396FF24AED09D003222B3 /* sprites.md */, - 9D33970124AF9D55003222B3 /* sprites.macros */, - 9D3396F424AECB1D003222B3 /* explosions.s */, - 9D3396F524AECBB1003222B3 /* spiders.s */, - 9D3396F624AECC40003222B3 /* scorpions.s */, - 9D3396F724AECCAC003222B3 /* scores.s */, - 9D3396F824AECD11003222B3 /* fleas.s */, - 9D3396F924AECD7A003222B3 /* numbers.s */, - 9D3396FA24AECDE9003222B3 /* solid.s */, - 9D3396FB24AECF7C003222B3 /* symbols.s */, - 9D3396FC24AECFBB003222B3 /* letters.s */, - 9D3396FD24AECFF5003222B3 /* mushrooms.s */, - 9D33970024AEFBF2003222B3 /* segments.s */, - 9DC4D7BD24B7652100BACF4B /* ship.s */, - 9DC4D7BE24B80C9600BACF4B /* shot.s */, + 9DE37B4B2694E0B0005FC562 /* ship.s */, + 9DE37B4C2694E0B0005FC562 /* solid.s */, + 9DE37B4D2694E0B0005FC562 /* numbers.s */, + 9DE37B4E2694E0B0005FC562 /* symbols.s */, + 9DE37B4F2694E0B0005FC562 /* sprites.md */, + 9DE37B502694E0B0005FC562 /* segments.s */, + 9DE37B512694E0B0005FC562 /* fleas.s */, + 9DE37B522694E0B0005FC562 /* spiders.s */, + 9DE37B532694E0B0005FC562 /* scores.s */, + 9DE37B542694E0B0005FC562 /* explosions.s */, + 9DE37B552694E0B0005FC562 /* scorpions.s */, + 9DE37B562694E0B0005FC562 /* shot.s */, + 9DE37B572694E0B0005FC562 /* sprites.macros */, + 9DE37B582694E0B0005FC562 /* letters.s */, + 9DE37B592694E0B0005FC562 /* mushrooms.s */, ); path = sprites; sourceTree = ""; }; + 9DE37B5C2694E0B0005FC562 /* sound */ = { + isa = PBXGroup; + children = ( + 9DE37B5D2694E0B0005FC562 /* flea.raw */, + 9DE37B5E2694E0B0005FC562 /* segments.raw */, + 9DE37B5F2694E0B0005FC562 /* scorpion.raw */, + 9DE37B602694E0B0005FC562 /* death.raw */, + 9DE37B612694E0B0005FC562 /* kill.raw */, + 9DE37B622694E0B0005FC562 /* spider.raw */, + 9DE37B632694E0B0005FC562 /* fire.raw */, + 9DE37B642694E0B0005FC562 /* sources */, + 9DE37B6F2694E0B0005FC562 /* extralife.raw */, + 9DE37B702694E0B0005FC562 /* bonus.raw */, + ); + path = sound; + sourceTree = ""; + }; + 9DE37B642694E0B0005FC562 /* sources */ = { + isa = PBXGroup; + children = ( + 9DE37B652694E0B0005FC562 /* extralife.wav */, + 9DE37B662694E0B0005FC562 /* bonus.wav */, + 9DE37B672694E0B0005FC562 /* kill.wav */, + 9DE37B682694E0B0005FC562 /* spider.wav */, + 9DE37B692694E0B0005FC562 /* fire.wav */, + 9DE37B6A2694E0B0005FC562 /* segments.wav */, + 9DE37B6B2694E0B0005FC562 /* scorpion.wav */, + 9DE37B6C2694E0B0005FC562 /* createRaw */, + 9DE37B6D2694E0B0005FC562 /* death.wav */, + 9DE37B6E2694E0B0005FC562 /* flea_loop_256b.wav */, + ); + path = sources; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXLegacyTarget section */ - 9D1716822491C49300C83148 /* BuGS */ = { + 9DE37AE32694E070005FC562 /* BuGS */ = { isa = PBXLegacyTarget; buildArgumentsString = "-C BuGS $(ACTION)"; - buildConfigurationList = 9D1716AD2491C49300C83148 /* Build configuration list for PBXLegacyTarget "BuGS" */; + buildConfigurationList = 9DE37B162694E070005FC562 /* Build configuration list for PBXLegacyTarget "BuGS" */; buildPhases = ( ); buildToolPath = /usr/bin/make; @@ -315,9 +347,9 @@ /* End PBXLegacyTarget section */ /* Begin PBXNativeTarget section */ - 9D1716832491C49300C83148 /* Binary */ = { + 9DE37AE42694E070005FC562 /* Binary */ = { isa = PBXNativeTarget; - buildConfigurationList = 9D1716B02491C49300C83148 /* Build configuration list for PBXNativeTarget "Binary" */; + buildConfigurationList = 9DE37B192694E070005FC562 /* Build configuration list for PBXNativeTarget "Binary" */; buildPhases = ( ); buildRules = ( @@ -326,12 +358,12 @@ ); name = Binary; productName = Binary; - productReference = 9D1716842491C49300C83148 /* BuGS */; + productReference = 9DE37AE52694E070005FC562 /* BuGS */; productType = "com.apple.product-type.tool"; }; - 9D1716862491C49300C83148 /* DiskImage */ = { + 9DE37AE72694E070005FC562 /* DiskImage */ = { isa = PBXNativeTarget; - buildConfigurationList = 9D1716B32491C49300C83148 /* Build configuration list for PBXNativeTarget "DiskImage" */; + buildConfigurationList = 9DE37B1C2694E070005FC562 /* Build configuration list for PBXNativeTarget "DiskImage" */; buildPhases = ( ); buildRules = ( @@ -340,16 +372,30 @@ ); name = DiskImage; productName = DiskImage; - productReference = 9D1716872491C49300C83148 /* BuGS.2mg */; + productReference = 9DE37AE82694E070005FC562 /* BuGS.2mg */; productType = "com.apple.product-type.tool"; }; - 9D17168B2491C49300C83148 /* doNotBuild */ = { + 9DE37AE92694E070005FC562 /* Archive */ = { isa = PBXNativeTarget; - buildConfigurationList = 9D1716B62491C49300C83148 /* Build configuration list for PBXNativeTarget "doNotBuild" */; + buildConfigurationList = 9DE37B1F2694E070005FC562 /* Build configuration list for PBXNativeTarget "Archive" */; buildPhases = ( - 9D1716882491C49300C83148 /* Sources */, - 9D1716892491C49300C83148 /* Frameworks */, - 9D17168A2491C49300C83148 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Archive; + productName = Archive; + productReference = 9DE37AEA2694E070005FC562 /* BuGS.shk */; + productType = "com.apple.product-type.tool"; + }; + 9DE37AEE2694E070005FC562 /* doNotBuild */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9DE37B222694E070005FC562 /* Build configuration list for PBXNativeTarget "doNotBuild" */; + buildPhases = ( + 9DE37AEB2694E070005FC562 /* Sources */, + 9DE37AEC2694E070005FC562 /* Frameworks */, + 9DE37AED2694E070005FC562 /* CopyFiles */, ); buildRules = ( ); @@ -357,33 +403,35 @@ ); name = doNotBuild; productName = doNotBuild; - productReference = 9D17168C2491C49300C83148 /* doNotBuild */; + productReference = 9DE37AEF2694E070005FC562 /* doNotBuild */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 9D17167E2491C49300C83148 /* Project object */ = { + 9DE37ADF2694E070005FC562 /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1130; - ORGANIZATIONNAME = "Jeremy Rand"; + LastUpgradeCheck = 1240; TargetAttributes = { - 9D1716822491C49300C83148 = { - CreatedOnToolsVersion = 11.3.1; + 9DE37AE32694E070005FC562 = { + CreatedOnToolsVersion = 12.4; }; - 9D1716832491C49300C83148 = { - CreatedOnToolsVersion = 11.3.1; + 9DE37AE42694E070005FC562 = { + CreatedOnToolsVersion = 12.4; }; - 9D1716862491C49300C83148 = { - CreatedOnToolsVersion = 11.3.1; + 9DE37AE72694E070005FC562 = { + CreatedOnToolsVersion = 12.4; }; - 9D17168B2491C49300C83148 = { - CreatedOnToolsVersion = 11.3.1; + 9DE37AE92694E070005FC562 = { + CreatedOnToolsVersion = 12.4; + }; + 9DE37AEE2694E070005FC562 = { + CreatedOnToolsVersion = 12.4; }; }; }; - buildConfigurationList = 9D1716812491C49300C83148 /* Build configuration list for PBXProject "BuGS" */; + buildConfigurationList = 9DE37AE22694E070005FC562 /* Build configuration list for PBXProject "BuGS" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; @@ -391,36 +439,65 @@ en, Base, ); - mainGroup = 9D17167D2491C49300C83148; - productRefGroup = 9D1716852491C49300C83148 /* Products */; + mainGroup = 9DE37ADE2694E070005FC562; + productRefGroup = 9DE37AE62694E070005FC562 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 9D1716822491C49300C83148 /* BuGS */, - 9D1716832491C49300C83148 /* Binary */, - 9D1716862491C49300C83148 /* DiskImage */, - 9D17168B2491C49300C83148 /* doNotBuild */, + 9DE37AE32694E070005FC562 /* BuGS */, + 9DE37AE42694E070005FC562 /* Binary */, + 9DE37AE72694E070005FC562 /* DiskImage */, + 9DE37AE92694E070005FC562 /* Archive */, + 9DE37AEE2694E070005FC562 /* doNotBuild */, ); }; /* End PBXProject section */ /* Begin PBXSourcesBuildPhase section */ - 9D1716882491C49300C83148 /* Sources */ = { + 9DE37AEB2694E070005FC562 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9D0DFAFA2669D85F00BDBD04 /* settings.c in Sources */, - 9DB90E80265AD04A003461C1 /* globalScores.c in Sources */, - 9D0DFB002669DA5700BDBD04 /* loadSounds.c in Sources */, - 9D1716942491C49300C83148 /* Makefile in Sources */, - 9D17168F2491C49300C83148 /* main.c in Sources */, + 9DE37B892694E0B0005FC562 /* fleas.s in Sources */, + 9DE37B912694E0B0005FC562 /* random.s in Sources */, + 9DE37B832694E0B0005FC562 /* colour.s in Sources */, + 9DE37B842694E0B0005FC562 /* ship.s in Sources */, + 9DE37B8F2694E0B0005FC562 /* letters.s in Sources */, + 9DE37B7E2694E0B0005FC562 /* score.s in Sources */, + 9DE37B8A2694E0B0005FC562 /* spiders.s in Sources */, + 9DE37B8E2694E0B0005FC562 /* shot.s in Sources */, + 9DE37B802694E0B0005FC562 /* gameFlea.s in Sources */, + 9DE37B7F2694E0B0005FC562 /* gamePlayer.s in Sources */, + 9DE37B882694E0B0005FC562 /* segments.s in Sources */, + 9DE37B7B2694E0B0005FC562 /* gameMushroom.s in Sources */, + 9DE37B742694E0B0005FC562 /* level.s in Sources */, + 9DE37B812694E0B0005FC562 /* main.c in Sources */, + 9DE37B7D2694E0B0005FC562 /* gameSegments.s in Sources */, + 9DE37B7A2694E0B0005FC562 /* loadSounds.c in Sources */, + 9DE37AF72694E070005FC562 /* Makefile in Sources */, + 9DE37B852694E0B0005FC562 /* solid.s in Sources */, + 9DE37B7C2694E0B0005FC562 /* globals.s in Sources */, + 9DE37B872694E0B0005FC562 /* symbols.s in Sources */, + 9DE37B772694E0B0005FC562 /* globalScores.c in Sources */, + 9DE37B8B2694E0B0005FC562 /* scores.s in Sources */, + 9DE37B932694E0B0005FC562 /* gameSound.s in Sources */, + 9DE37B922694E0B0005FC562 /* gameScorpion.s in Sources */, + 9DE37B762694E0B0005FC562 /* gameSpider.s in Sources */, + 9DE37B822694E0B0005FC562 /* settings.c in Sources */, + 9DE37B902694E0B0005FC562 /* mushrooms.s in Sources */, + 9DE37B8C2694E0B0005FC562 /* explosions.s in Sources */, + 9DE37B8D2694E0B0005FC562 /* scorpions.s in Sources */, + 9DE37B752694E0B0005FC562 /* tileConvert.s in Sources */, + 9DE37B792694E0B0005FC562 /* gameShot.s in Sources */, + 9DE37B862694E0B0005FC562 /* numbers.s in Sources */, + 9DE37B782694E0B0005FC562 /* game.s in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ - 9D1716AB2491C49300C83148 /* Debug */ = { + 9DE37B142694E070005FC562 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -446,6 +523,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -476,7 +554,7 @@ }; name = Debug; }; - 9D1716AC2491C49300C83148 /* Release */ = { + 9DE37B152694E070005FC562 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; @@ -502,6 +580,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -525,7 +604,7 @@ }; name = Release; }; - 9D1716AE2491C49300C83148 /* Debug */ = { + 9DE37B172694E070005FC562 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -540,7 +619,7 @@ }; name = Debug; }; - 9D1716AF2491C49300C83148 /* Release */ = { + 9DE37B182694E070005FC562 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -552,7 +631,7 @@ }; name = Release; }; - 9D1716B12491C49300C83148 /* Debug */ = { + 9DE37B1A2694E070005FC562 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -562,7 +641,7 @@ }; name = Debug; }; - 9D1716B22491C49300C83148 /* Release */ = { + 9DE37B1B2694E070005FC562 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -572,7 +651,7 @@ }; name = Release; }; - 9D1716B42491C49300C83148 /* Debug */ = { + 9DE37B1D2694E070005FC562 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -582,7 +661,7 @@ }; name = Debug; }; - 9D1716B52491C49300C83148 /* Release */ = { + 9DE37B1E2694E070005FC562 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -592,7 +671,27 @@ }; name = Release; }; - 9D1716B72491C49300C83148 /* Debug */ = { + 9DE37B202694E070005FC562 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + ENABLE_HARDENED_RUNTIME = YES; + PRODUCT_NAME = BuGS.shk; + }; + name = Debug; + }; + 9DE37B212694E070005FC562 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + ENABLE_HARDENED_RUNTIME = YES; + PRODUCT_NAME = BuGS.shk; + }; + name = Release; + }; + 9DE37B232694E070005FC562 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -614,7 +713,7 @@ }; name = Debug; }; - 9D1716B82491C49300C83148 /* Release */ = { + 9DE37B242694E070005FC562 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { CODE_SIGN_STYLE = Automatic; @@ -639,52 +738,61 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 9D1716812491C49300C83148 /* Build configuration list for PBXProject "BuGS" */ = { + 9DE37AE22694E070005FC562 /* Build configuration list for PBXProject "BuGS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D1716AB2491C49300C83148 /* Debug */, - 9D1716AC2491C49300C83148 /* Release */, + 9DE37B142694E070005FC562 /* Debug */, + 9DE37B152694E070005FC562 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D1716AD2491C49300C83148 /* Build configuration list for PBXLegacyTarget "BuGS" */ = { + 9DE37B162694E070005FC562 /* Build configuration list for PBXLegacyTarget "BuGS" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D1716AE2491C49300C83148 /* Debug */, - 9D1716AF2491C49300C83148 /* Release */, + 9DE37B172694E070005FC562 /* Debug */, + 9DE37B182694E070005FC562 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D1716B02491C49300C83148 /* Build configuration list for PBXNativeTarget "Binary" */ = { + 9DE37B192694E070005FC562 /* Build configuration list for PBXNativeTarget "Binary" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D1716B12491C49300C83148 /* Debug */, - 9D1716B22491C49300C83148 /* Release */, + 9DE37B1A2694E070005FC562 /* Debug */, + 9DE37B1B2694E070005FC562 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D1716B32491C49300C83148 /* Build configuration list for PBXNativeTarget "DiskImage" */ = { + 9DE37B1C2694E070005FC562 /* Build configuration list for PBXNativeTarget "DiskImage" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D1716B42491C49300C83148 /* Debug */, - 9D1716B52491C49300C83148 /* Release */, + 9DE37B1D2694E070005FC562 /* Debug */, + 9DE37B1E2694E070005FC562 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9D1716B62491C49300C83148 /* Build configuration list for PBXNativeTarget "doNotBuild" */ = { + 9DE37B1F2694E070005FC562 /* Build configuration list for PBXNativeTarget "Archive" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9D1716B72491C49300C83148 /* Debug */, - 9D1716B82491C49300C83148 /* Release */, + 9DE37B202694E070005FC562 /* Debug */, + 9DE37B212694E070005FC562 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9DE37B222694E070005FC562 /* Build configuration list for PBXNativeTarget "doNotBuild" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9DE37B232694E070005FC562 /* Debug */, + 9DE37B242694E070005FC562 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 9D17167E2491C49300C83148 /* Project object */; + rootObject = 9DE37ADF2694E070005FC562 /* Project object */; } diff --git a/BuGS.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/BuGS.xcodeproj/project.xcworkspace/contents.xcworkspacedata index 23a0470..919434a 100644 --- a/BuGS.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ b/BuGS.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -2,6 +2,6 @@ + location = "self:"> diff --git a/BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme b/BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme index 39ba0e6..6db9828 100644 --- a/BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme +++ b/BuGS.xcodeproj/xcshareddata/xcschemes/BuGS.xcscheme @@ -14,7 +14,7 @@ buildForAnalyzing = "YES"> @@ -29,6 +29,8 @@ shouldUseLaunchSchemeArgsEnv = "YES"> + + @@ -59,7 +61,7 @@ isEnabled = "YES"> + + diff --git a/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist b/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist index 2596fb4..763bef7 100644 --- a/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/BuGS.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,10 +4,15 @@ SchemeUserState + Archive.xcscheme_^#shared#^_ + + orderHint + 4 + Binary.xcscheme_^#shared#^_ orderHint - 2 + 3 BuGS.xcscheme_^#shared#^_ @@ -17,12 +22,12 @@ DiskImage.xcscheme_^#shared#^_ orderHint - 1 + 2 doNotBuild.xcscheme_^#shared#^_ orderHint - 3 + 1 diff --git a/BuGS/Makefile b/BuGS/Makefile index 8efcd3a..820251c 100644 --- a/BuGS/Makefile +++ b/BuGS/Makefile @@ -28,6 +28,22 @@ TARGETTYPE=desktop # TARGETTYPE=nda # TARGETTYPE=xcmd +# Uncomment one of the following lines to force a particular GS emulator. +# By default, specific paths are tested for these emulators in the below +# order and the first found is what will be used. You can overrride that +# here: +# +# EMULATOR=gsplus +EMULATOR=mame +# EMULATOR=gsport + +# By default, the build provides a single boot environment to test with. +# You can put other .2mg files into the make directory and override this +# variable to change what boot disk you want to use when you launch the +# emulator. The disk image you specify must be found in the make directory: +# +BOOTIMAGE=system601_net.2mg + # Add any other directories where you are putting C or assembly source # files to this list: SRCDIRS+=sprites $(GENDIR) @@ -62,12 +78,17 @@ ASMFLAGS+= # Add any arguments you want passed to the linker to this variable: LDFLAGS+= -MD_SRCS=Read.Me.md - # Uncomment the following line if you want to build against the GNO libraries # export ORCA=$(ORCA_BINDIR)/gno -# If you want to copy one or more files or directories to the target disk +# Add any markdown files to the MD_SRCS variable to specify which files to +# convert to a Teach text file format during the build. Using this, you can +# write your documentation in markdown in your project and at build time, +# that documentation is converted to a format that is good to package with +# your software and can be opened on a GS. +MD_SRCS=Read.Me.md + +# If you want to copy one or more files or directories to the distribution disk # image, add the root directory to this variable. Any directories under # the source directory which don't exist in the target disk image will be # created. All files will be copied from the source to the target using @@ -75,23 +96,61 @@ MD_SRCS=Read.Me.md # # For example, if you set COPYDIRS to dir and in your project you have # the following files: +# dir/Icons/myIconFile +# dir/newDir/anotherFile +# Then, during the copy phase, myIconFile will be copied into the Icons +# folder and a folder newDir will be created and anotherFile will be copied +# into there. +COPYDIRS= + +# If you want to copy one or more files or directories to the boot disk +# image, add the root directory to this variable. Any directories under +# the source directory which don't exist in the boot disk image will be +# created. All files will be copied from the source to the target using +# the same path from the source. +# +# For example, if you set COPYBOOTDIRS to dir and in your project you have +# the following files: # dir/System/mySystemFile # dir/newDir/anotherFile # Then, during the copy phase, mySystemFile will be copied into the System # folder and a folder newDir will be created and anotherFile will be copied # into there. -COPYDIRS= +COPYBOOTDIRS= # By default, the build expects that you have GSplus in the path: # /Applications/GSplus.app/Contents/MacOS/gsplus # If you have it in a different location, specify that here. # GSPLUS=/Applications/GSplus.app/Contents/MacOS/gsplus +# By default, the build uses no arguments with GSplus. If you would like to +# use different arguments, specify that here. +# GSPLUSARGS= + # By default, the build expects that you have GSport in the path: # /Applications/GSport/GSport.app/Contents/MacOS/GSport # If you have it in a different location, specify that here. # GSPORT=/Applications/GSport/GSport.app/Contents/MacOS/GSport +# By default, the build uses no arguments with GSport. If you would like to +# use different arguments, specify that here. +# GSPORTARGS= + +# By default, the build expects that you have Ample/mame in the path: +# /Applications/Ample.app/Contents/MacOS/mame64 +# If you have it in a different location, specify that here. +# MAME=/Applications/Ample.app/Contents/MacOS/mame64 + +# By default, the build expects that you have the mame ROMs/libs in the path: +# $(HOME)/Library/Application Support/Ample +# If you have it in a different location, specify that here. +# MAMELIB=$(HOME)/Library/Application Support/Ample + +# By default, the build uses these arguments with mame: +# apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 +# If you would like to use different arguments, specify that here. +MAMEARGS=apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl3 uthernet -sl7 cffa2 + # For a desktop application, it can operate in 640x200 or 320x200 # resolution. This setting is used to define which horizontal # resolution you want to use for a desktop application. Other diff --git a/BuGS/make/config.txt b/BuGS/make/config.txt index f86b0be..76d0ff9 100644 --- a/BuGS/make/config.txt +++ b/BuGS/make/config.txt @@ -1,23 +1,22 @@ -# GSplus configuration file version 0.14 +# GSport configuration file version 0.31 -s5d1 = /Users/jrand/Library/Developer/Xcode/DerivedData/BuGS-bffpexoblaghkzcbtjtzxeulnuto/Build/Products/Debug/BuGS.2mg +s5d1 = s5d2 = s6d1 = s6d2 = -s7d1 = /Users/jrand/Coding/AppleCoding/Apple2GS/BuGS/BuGS/make/system601_net.2mg +s7d1 = -g_ethernet = 1 -g_limit_speed = 3 -g_ethernet = 1 +g_joystick_type = 0 +g_limit_speed = 0 bram1[00] = 00 00 00 01 00 00 0d 06 02 01 01 00 01 00 00 00 bram1[10] = 00 00 07 06 02 01 01 00 00 00 0f 06 06 00 05 06 bram1[20] = 01 00 00 00 00 00 00 01 00 00 00 00 03 02 02 02 -bram1[30] = 00 00 00 01 00 00 00 00 00 00 01 02 03 04 05 06 -bram1[40] = 07 00 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d +bram1[30] = 00 00 00 00 00 00 00 00 08 00 01 02 03 04 05 06 +bram1[40] = 07 0a 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d bram1[50] = 0e 0f ff ff ff ff ff ff ff 00 ff ff ff ff ff 81 bram1[60] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff bram1[70] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff @@ -28,7 +27,7 @@ bram1[b0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff bram1[c0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff bram1[d0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff bram1[e0] = ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff -bram1[f0] = ff ff ff ff ff ff ff ff ff ff ff ff 41 f8 eb 52 +bram1[f0] = ff ff ff ff ff ff ff ff ff ff ff ff 52 06 f8 ac bram3[00] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bram3[10] = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 diff --git a/BuGS/make/createDiskImage b/BuGS/make/createDiskImage index 2c0d3ab..b9b04e9 100755 --- a/BuGS/make/createDiskImage +++ b/BuGS/make/createDiskImage @@ -2,136 +2,247 @@ if [ $# -lt 3 ] then - echo USAGE: $0 diskimage file directory + echo USAGE: $0 diskimage bootimage file [bootdest] exit 1 fi DISKIMAGE="$1" shift +DESTBOOTIMAGE="$1" +shift + FILE="$1" shift -DISKIMAGEDEST="$1" -shift - -COPYDIRS=$* +BOOTCOPYPATH="$1" PROGRAM=`basename "$FILE"` TMPDIR=/tmp/a2gs_mount.$$ MOUNTDIR="${TMPDIR}/$PROGRAM" TMPDISKIMAGE=/tmp/a2gs_diskimage_$$.2mg +TMPBOOTIMAGE=/tmp/a2gs_bootimage_$$.2mg TMPARCHIVE=/tmp/s2gs_archive_$$.shk -TEMPLATEDISKIMAGE="make/${PROGRAM}.2mg" +TEMPLATEDISKIMAGE="make/empty.2mg" +TEMPLATEBOOTIMAGE="make/$BOOTIMAGE" ARCHIVE=`dirname "$DISKIMAGE"`/"${PROGRAM}.shk" -DEST="${MOUNTDIR}/${DISKIMAGEDEST}" -cleanupAndExit() +# It looks like on Linux, the cp command needs a special argument to preserve the resource fork. This isn't ideal +# but for now, if uname is Darwin, then this is MacOS and we don't need any cp args. If not Darwin, then assume +# this is Linux and ask for extended attributes to be preserved through the copy. +# +# Ultimately, it could be that other platforms (BSD, does Solaris still exist?) or even other Linux versions or +# distributions need different arguments for this rather special thing. If true, this may need to be a build time +# option which can be set. +if [ "`uname`" = Darwin ] +then + CPARGS="" +else + CPARGS="--preserve=xattr" +fi + + +printErrorAndExit() { + echo "`pwd`/Makefile:0:0: error: $*" >&2 umount "$MOUNTDIR" 2> /dev/null rm -f "$TMPDISKIMAGE" 2> /dev/null + rm -f "$TMPBOOTIMAGE" 2> /dev/null + rm -f "$TMPARCHIVE" 2> /dev/null rm -f "$DISKIMAGE" 2> /dev/null - rmdir "$MOUNTDIR" 2> /dev/null + rm -f "$DESTBOOTIMAGE" 2> /dev/null + rm -rf "$TMPDIR" 2> /dev/null exit 1 } + +unmount() +{ + RETRIES=0 + while [ $RETRIES -lt 5 ] + do + umount "$1" + if [ $? -eq 0 ] + then + break + fi + + RETRIES=`expr $RETRIES + 1` + sleep 1 + done + + if [ $RETRIES -ge 5 ] + then + printErrorAndExit "Unable to unmount the disk image." + fi +} + + +validateProDOSName() +{ + NAME=`basename $1` + echo $NAME | egrep '^[a-zA-Z][a-zA-Z0-9.]{0,14}$' > /dev/null +} + + +mkdirProDOS() +{ + validateProDOSName "$1" + if [ $? -ne 0 ] + then + printErrorAndExit "Invalid ProDOS name of directory `basename $1`. ProDOS names must be 1 to 15 characters, start with a letter and only letters, numbers and a period can be used in the name." + fi + + mkdir -p "$1" + if [ $? -ne 0 ] + then + printErrorAndExit "Unable to create directory $1" + fi +} + + +cpProDOS() +{ + validateProDOSName "$2" + if [ $? -ne 0 ] + then + printErrorAndExit "Invalid ProDOS name of file `basename $2`. ProDOS names must be 1 to 15 characters, start with a letter and only letters, numbers and a period can be used in the name." + fi + + cp $CPARGS "$1" "$2" + if [ $? -ne 0 ] + then + printErrorAndExit "Unable to create directory $1" + fi +} + + +copyDirs() +{ + OLDDIR=`pwd` + for COPYDIR in $* + do + cd "$COPYDIR" + if [ $? != 0 ] + then + printErrorAndExit "Unable to find $COPYDIR" + fi + + find . -print | while read FILEORDIR + do + if [ "$FILEORDIR" = "." ] + then + continue + fi + if [ -d "$FILEORDIR" ] + then + mkdirProDOS "${MOUNTDIR}/$FILEORDIR" + elif [ -f "$FILEORDIR" ] + then + cpProDOS "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR" + fi + done + cd "$OLDDIR" + done +} + + if [ ! -f "$TEMPLATEDISKIMAGE" ] then - echo Unable to find the template disk image, $TEMPLATEDISKIMAGE - cleanupAndExit + printErrorAndExit "Unable to find the template disk image, $TEMPLATEDISKIMAGE" +fi + +if [ ! -f "$TEMPLATEBOOTIMAGE" ] +then + printErrorAndExit "Unable to find the template boot image, $TEMPLATEBOOTIMAGE" +fi + +mkdir "$TMPDIR" +if [ $? != 0 ] +then + printErrorAndExit "Unable to create the mount directory." +fi + +mkdir "$MOUNTDIR" +if [ $? != 0 ] +then + printErrorAndExit "Unable to create the mount directory." +fi + +cp "$TEMPLATEBOOTIMAGE" "$TMPBOOTIMAGE" +if [ $? != 0 ] +then + printErrorAndExit "Unable to copy template boot image." +fi +if [ ! -z "$COPYBOOTDIRS" ] || [ ! -z "BOOTCOPYPATH" ] +then + profuse -orw "$TMPBOOTIMAGE" "$MOUNTDIR" + if [ $? != 0 ] + then + printErrorAndExit "Unable to mount the boot image." + fi + + if [ ! -z "$BOOTCOPYPATH" ] + then + cpProDOS "$FILE" "$MOUNTDIR/$BOOTCOPYPATH" + if [ $? != 0 ] + then + printErrorAndExit "Unable to copy the file to the boot image." + fi + fi + + copyDirs $COPYBOOTDIRS + + unmount "$MOUNTDIR" fi cp "$TEMPLATEDISKIMAGE" "$TMPDISKIMAGE" if [ $? != 0 ] then - echo Unable to copy template disk image. - cleanupAndExit -fi - -mkdir "$TMPDIR" -mkdir "$MOUNTDIR" -if [ $? != 0 ] -then - echo Unable to create the mount directory. - cleanupAndExit + printErrorAndExit "Unable to copy template disk image." fi profuse -orw "$TMPDISKIMAGE" "$MOUNTDIR" if [ $? != 0 ] then - echo Unable to mount the disk image. - cleanupAndExit + printErrorAndExit "Unable to mount the disk image." fi -cp "$FILE" "$DEST" +cpProDOS "$FILE" "$MOUNTDIR" if [ $? != 0 ] then - echo Unable to copy the file to the disk image. - cleanupAndExit + printErrorAndExit "Unable to copy the file to the disk image." fi +copyDirs $COPYDIRS + OLDDIR=`pwd` -for COPYDIR in $COPYDIRS -do - cd "$COPYDIR" - if [ $? != 0 ] - then - echo Unable to find $COPYDIR - cleanupAndExit - fi - - find . -print | while read FILEORDIR - do - if [ -d "$FILEORDIR" ] - then - mkdir -p "${MOUNTDIR}/$FILEORDIR" - elif [ -f "$FILEORDIR" ] - then - cp "$FILEORDIR" "${MOUNTDIR}/$FILEORDIR" - fi - done -done - cd "$TMPDIR" $ORCA "$OLDDIR/make/tar" cf "$TMPARCHIVE" "$PROGRAM" if [ $? != 0 ] then - echo Unable to create archive. - cleanupAndExit + printErrorAndExit "Unable to create archive." fi cd "$OLDDIR" -RETRIES=0 -while [ $RETRIES -lt 5 ] -do - umount "$MOUNTDIR" - if [ $? -eq 0 ] - then - break - fi - - RETRIES=`expr $RETRIES + 1` - sleep 1 -done - -if [ $RETRIES -ge 5 ] -then - echo Unable to unmount the disk image. - cleanupAndExit -fi +unmount "$MOUNTDIR" cp "$TMPDISKIMAGE" "$DISKIMAGE" if [ $? != 0 ] then - echo Unable to copy the disk image to the destination. - cleanupAndExit + printErrorAndExit "Unable to copy the disk image to the destination." +fi + +cp "$TMPBOOTIMAGE" "$DESTBOOTIMAGE" +if [ $? != 0 ] +then + printErrorAndExit "Unable to copy the boot image to the destination." fi cp "$TMPARCHIVE" "$ARCHIVE" if [ $? != 0 ] then - echo Unable to copy the archive to the destination. - cleanupAndExit + printErrorAndExit "Unable to copy the archive to the destination." fi # This is a special case for my personal build environment. If I can find my home directory @@ -144,6 +255,7 @@ then fi rm -f "$TMPDISKIMAGE" +rm -f "$TMPBOOTIMAGE" rm -f "$TMPARCHIVE" rm -rf "$TMPDIR" exit 0 diff --git a/BuGS/make/BuGS.2mg b/BuGS/make/empty.2mg similarity index 100% rename from BuGS/make/BuGS.2mg rename to BuGS/make/empty.2mg diff --git a/BuGS/make/head.mk b/BuGS/make/head.mk index 20a1aca..b176c59 100644 --- a/BuGS/make/head.mk +++ b/BuGS/make/head.mk @@ -72,10 +72,40 @@ DESKTOP_RES_MODE=640 MESSAGE_CENTER=0 GSPLUS=/Applications/GSplus.app/Contents/MacOS/gsplus +GSPLUSARGS= GSPORT=/Applications/GSport/GSport.app/Contents/MacOS/GSport +GSPORTARGS= +MAME=/Applications/Ample.app/Contents/MacOS/mame64 +MAMELIB=$(HOME)/Library/Application Support/Ample +MAMEARGS=apple2gs -skip_gameinfo -speed 2 -mouse -window -resolution 1408x1056 -ramsize 4M -sl7 cffa202 export GSPLUS +export GSPLUSARGS export GSPORT +export GSPORTARGS +export MAME +export MAMELIB +export MAMEARGS + +ifneq (,$(wildcard $GSPLUS)) + EMULATOR=gsplus +else ifneq (,$(wildcard $MAME)) + EMULATOR=mame +else ifneq (,$(wildcard $GSPORT)) + EMULATOR=gsport +else + EMULATOR=gsplus +endif + +export EMULATOR + +BOOTIMAGE=system601.2mg +export BOOTIMAGE + +COPYDIRS= +export COPYDIRS +COPYBOOTDIRS= +export COPYBOOTDIRS XCODE_PATH=/Applications/Xcode.app XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist @@ -90,6 +120,6 @@ XCODE_PLUGIN_COMPATIBILITY=DVTPlugInCompatibilityUUID all: $(MKDIR) $(OBJDIR) $(GENDIR) $(TARGETDIR) - @make gen - @make build + @make -f $(firstword $(MAKEFILE_LIST)) gen + @make -f $(firstword $(MAKEFILE_LIST)) build diff --git a/BuGS/make/launchEmulator b/BuGS/make/launchEmulator index 2b5dc40..2ee547b 100755 --- a/BuGS/make/launchEmulator +++ b/BuGS/make/launchEmulator @@ -1,48 +1,84 @@ #!/bin/sh -if [ ! -z "$GSPLUS" ] && [ -x "$GSPLUS" ] -then - EMULATORPATH="$GSPLUS" -elif [ ! -z "$GSPORT" ] && [ -x "$GSPORT" ] -then - EMULATORPATH="$GSPORT" -fi +TMPDIR="/tmp/a2gs_emulator.$$" -if [ -z "$EMULATORPATH" ] +cleanupAndExit() +{ + cd + if [ ! -z $PID ] + then + kill $PID 2> /dev/null + fi + rm -rf $TMPDIR + exit 0 +} + +createConfigTxt() +{ + mkdir "$TMPDIR" + sed "s:^s7d1 *=.*$:s7d1 = $BOOTIMAGE: +s:^s5d1 *=.*:s5d1 = $DISKIMAGE:" < make/config.txt > "$TMPDIR/config.txt" + +} + +if [ $# -ne 2 ] then - echo Unable to find GSplus or GSport at these locations. - echo " GSPLUS=$GSPLUS" - echo " GSPORT=$GSPORT" + echo USAGE $0: diskimage bootimage exit 1 fi -BOOTIMAGE="$1" -if echo $BOOTIMAGE | grep -v '^/' > /dev/null -then - BOOTIMAGE="$PWD/$BOOTIMAGE" -fi - -DISKIMAGE="$2" +DISKIMAGE="$1" if echo $DISKIMAGE | grep -v '^/' > /dev/null then DISKIMAGE="$PWD/$DISKIMAGE" fi -# This magic ensures that clicking stop in Xcode results in the emulator terminating. -if false +BOOTIMAGE="$2" +if echo $BOOTIMAGE | grep -v '^/' > /dev/null then - cd make - sed -i "" "s:^s7d1 *=.*$:s7d1 = $BOOTIMAGE: -s:^s5d1 *=.*:s5d1 = $DISKIMAGE:" config.txt - $EMULATORPATH -fullscreen -mem 1572864 & - PID=$! -else - cd "/Users/jrand/Library/Application Support/Ample" - /Applications/Ample.app/Contents/MacOS/mame64 apple2gs -skip_gameinfo -mouse -window -resolution 1408x1056 -ramsize 4M -sl3 uthernet -sl7 cffa2 -hard1 "$BOOTIMAGE" -flop3 "$DISKIMAGE" & - PID=$! + BOOTIMAGE="$PWD/$BOOTIMAGE" fi -trap 'kill $PID' SIGTERM SIGINT SIGHUP EXIT -wait +case "$EMULATOR" in + gsplus) + EMULATORPATH="$GSPLUS" + EMULATORARGS="$GSPLUSARGS" + EMULATORDIR="$TMPDIR" + createConfigTxt + ;; + gsport) + EMULATORPATH="$GSPORT" + EMULATORARGS="$GSPORTARGS" + EMULATORDIR="$TMPDIR" + createConfigTxt + ;; + mame) + EMULATORPATH="$MAME" + EMULATORARGS="$MAMEARGS -hard1 "$BOOTIMAGE" -flop3 "$DISKIMAGE"" + EMULATORDIR="$MAMELIB" + ;; + *) + echo Invalid emulator specified, \"$EMULATOR\" + exit 1 + ;; +esac -exit 0 +if [ ! -x "$EMULATORPATH" ] +then + echo Unable to find $EMULATOR at $EMULATORPATH + exit 1 +fi + +if [ ! -d "$EMULATORDIR" ] +then + echo Unable to find $EMULATOR library at $EMULATORDIR + exit 1 +fi + +cd "$EMULATORDIR" +# This magic ensure that clicking stop in Xcode results in the emulator terminating. +"$EMULATORPATH" $EMULATORARGS & +PID=$! + +trap cleanupAndExit SIGTERM SIGINT SIGHUP EXIT +wait diff --git a/BuGS/make/md2teach b/BuGS/make/md2teach index 03b96a1..d456eb5 100644 Binary files a/BuGS/make/md2teach and b/BuGS/make/md2teach differ diff --git a/BuGS/make/system601.2mg b/BuGS/make/system601.2mg index 754acf2..ff5588b 100644 Binary files a/BuGS/make/system601.2mg and b/BuGS/make/system601.2mg differ diff --git a/BuGS/make/tail.mk b/BuGS/make/tail.mk index 5995a2c..b4bd32b 100644 --- a/BuGS/make/tail.mk +++ b/BuGS/make/tail.mk @@ -7,9 +7,11 @@ export PATH := $(PATH):$(ORCA_BIN) CWD=$(shell pwd) DISKIMAGE=$(TARGETDIR)/$(PGM).2mg +ARCHIVE=$(TARGETDIR)/$(PGM).shk +DESTBOOTIMAGE=$(TARGETDIR)/$(BOOTIMAGE) BUILDTARGET=$(DISKIMAGE) EXECTARGET=executeGUI -DISKIMAGEDEST=. +BOOTCOPYPATH= AUXTYPE= CFLAGS+=-i$(GENDIR) @@ -31,18 +33,18 @@ else ifeq ($(TARGETTYPE),desktop) REZFLAGS+=rez='-d MESSAGE_CENTER=$(MESSAGE_CENTER)' else ifeq ($(TARGETTYPE),cda) FILETYPE=cda - DISKIMAGEDEST=System/Desk.Accs + BOOTCOPYPATH=System/Desk.Accs else ifeq ($(TARGETTYPE),cdev) BINTARGET=$(TARGETDIR)/$(PGM).bin FILETYPE=199 - DISKIMAGEDEST=System/CDevs + BOOTCOPYPATH=System/CDevs REZFLAGS+=rez='-d BINTARGET="$(BINTARGET)"' else ifeq ($(TARGETTYPE),nba) FILETYPE=exe BUILDTARGET=$(TARGETDIR)/$(PGM) else ifeq ($(TARGETTYPE),nda) FILETYPE=nda - DISKIMAGEDEST=System/Desk.Accs + BOOTCOPYPATH=System/Desk.Accs else ifeq ($(TARGETTYPE),xcmd) FILETYPE=exe BUILDTARGET=$(TARGETDIR)/$(PGM) @@ -101,7 +103,7 @@ build: $(BUILDTARGET) gen: xcodefix xcodefix: - defaults write "$(ORCAM_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)` || true + [ "`uname`" = Darwin ] && defaults write "$(ORCAM_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)` || true clean: genclean $(RM) "$(TARGETDIR)/$(PGM)" $(BINTARGET) @@ -110,6 +112,8 @@ clean: genclean $(RM) $(ALL_DEPS) $(RM) $(ASM_MACROS) $(RM) "$(DISKIMAGE)" + $(RM) "$(DESTBOOTIMAGE)" + $(RM) "$(ARCHIVE)" createPackage: pkg/createPackage @@ -130,7 +134,7 @@ ifneq ($(REZ_OBJS),) $(RM) $(TARGETDIR)/$(PGM) $(CP) $(REZ_OBJS) $(TARGETDIR)/$(PGM) endif - cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) --keep=$(TARGETDIR)/$(PGM) + cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) keep="$(abspath $(TARGETDIR)/$(PGM))" $(CHTYP) -t $(FILETYPE) $(AUXTYPE) $(TARGETDIR)/$(PGM) endif @@ -159,7 +163,7 @@ else # resource compile will read the $(PGM).bin binary and load it into the # resources also. $(BINTARGET): $(BUILD_OBJS) - cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) --keep=$(BINTARGET) + cd $(OBJDIR); $(LINK) $(LDFLAGS) $(patsubst $(OBJDIR)/%, %, $(BUILD_OBJS_NOSUFFIX)) keep="$(abspath $(BINTARGET))" endif @@ -183,13 +187,13 @@ $(TARGETDIR)/$(PGM): $(REZ_OBJS) endif -$(DISKIMAGE): $(TARGETDIR)/$(PGM) - make/createDiskImage "$(DISKIMAGE)" "$(TARGETDIR)/$(PGM)" "$(DISKIMAGEDEST)" $(COPYDIRS) +$(DISKIMAGE): $(TARGETDIR)/$(PGM) make/empty.2mg make/$(BOOTIMAGE) + make/createDiskImage "$(DISKIMAGE)" $(DESTBOOTIMAGE) "$(TARGETDIR)/$(PGM)" $(BOOTCOPYPATH) execute: $(EXECTARGET) executeGUI: all - make/launchEmulator make/system601_net.2mg $(DISKIMAGE) + make/launchEmulator "$(DISKIMAGE)" "$(DESTBOOTIMAGE)" executeShell: all $(ORCA) $(TARGETDIR)/$(PGM) @@ -228,7 +232,7 @@ $(GENDIR)/Teach/%: %.md $(MKDIR) "$(GENDIR)/Teach" $(ORCA) make/md2teach "$<" "$@" -$(ALL_OBJS): Makefile +$(OBJS): Makefile # Include the C and rez dependencies which were generated from the last build # so we recompile correctly on .h file changes.