From bf35d817eb5cbc5d1627da5d83b9f85a5d5ea5e7 Mon Sep 17 00:00:00 2001 From: Jeremy Rand Date: Tue, 6 Jul 2021 17:04:25 -0400 Subject: [PATCH] Update the build environment for this project to the latest. --- BuGS.xcodeproj/project.pbxproj | 692 ++++++++++-------- .../contents.xcworkspacedata | 2 +- .../xcshareddata/xcschemes/BuGS.xcscheme | 12 +- .../xcschemes/xcschememanagement.plist | 11 +- BuGS/Makefile | 67 +- BuGS/make/config.txt | 17 +- BuGS/make/createDiskImage | 254 +++++-- BuGS/make/{BuGS.2mg => empty.2mg} | Bin BuGS/make/head.mk | 34 +- BuGS/make/launchEmulator | 100 ++- BuGS/make/md2teach | Bin 143184 -> 143578 bytes BuGS/make/system601.2mg | Bin 10485824 -> 10485824 bytes BuGS/make/tail.mk | 26 +- 13 files changed, 786 insertions(+), 429 deletions(-) rename BuGS/make/{BuGS.2mg => empty.2mg} (100%) 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 03b96a1ad7c16c3b37aa71cdfe5a0e0e197d7bbc..d456eb5d71abd6fc05ae56a6cecef0cb8fb796c2 100644 GIT binary patch delta 25365 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

dGKNn7vkk@8_PrYBn;3=0p*SV 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 BhS>lB delta 24762 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≷{zeEGaLbT?5O7GM7U!nVRRM*c3unN zjxL4({@`CJfOI7Uk~MfIq-}&d@m37BL%{6BJ2T$x!@GkRd<=n-IfA!Bk(1)udo^#- z+6xOkX>HBh&TesSLIVA~JcP_vK_N*Af?f(|NY4m{WJfW?Gln4>I@H$g@9dgg=1Ro! zn1pT_eTP^t|9I=pgU3-6-eL@ZcT(Y<)n3`~=4e6T7cJ zfLFIEfQkVGu_qA1*v}Cn*>ean>?MRaP&0r; zP&9xP_8LNO_9uis>}`Yr>|=x>>~n-XR;&{Pj$-8q<5)L@sjNT3Og0E%9vg?AS1RdI=( zh0&|*LWG~$#RzxVQiO->N`$}IH3*DoBZ5@46~S4w9l>3+6TwGhMhFz`Lr{qhB1DKj wMrbEGg3wuXQv6s3W5)1eDwZkTy&u(je5R1_S#iu1acJx(!Lj_oIHt}22P*ACr~m)} diff --git a/BuGS/make/system601.2mg b/BuGS/make/system601.2mg index 754acf247a21869dc3f3a13c2a23a9eed2dce8b8..ff5588b1decd62e4bc68496333547a74fa0da6e5 100644 GIT binary patch delta 117067 zcmeIu%}Z2K7{K9k$C=F1bV_g2r)HXFHCkqEC%<68OqwWa)vAJ^Y!S38Xi?yzU=~6< zS8XDK7D7b$FSL(nRnV$sJA23aE8@BEJDhvp!-ex~Jb6;uh~8Z-7FWh5^5%`=nb?fy z&6mXoZLw(-mwqFJ-^_ z(sb&azR;-8R2$bDSLQBmHeclZ-Ek`WHWjl{edf|)oBAt*3@Tm(s^dZ^zc9zYiAnu6~^zeY85WIr?+GHa}XZ-EH0fcDj|# zrq(l*is?hzUD(`uYb|Z5H5p62|7>>7U%9?CSG};bv@n-iU=LehvzHo^)ye9XO{#2t zeUrN97iTY5uh!?T{T-}-UM}3vR=+J5hMv`)k4DF%vFJo}GCCDiqw#1WIvt&fCZn^_ zRCMlj?fLnE_4v!p%u0X&0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7e? J{~%Dy{s1pm)T00Z delta 55861 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