diff --git a/a2sudoku.xcodeproj/project.pbxproj b/a2sudoku.xcodeproj/project.pbxproj index d17f667..0daa294 100644 --- a/a2sudoku.xcodeproj/project.pbxproj +++ b/a2sudoku.xcodeproj/project.pbxproj @@ -3,96 +3,158 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 50; objects = { +/* Begin PBXBuildFile section */ + 9D3FF46B20D9FF55006A5F8A /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9D3FF46A20D9FF55006A5F8A /* Makefile */; }; + 9D3FF46E20D9FF55006A5F8A /* AppleCommander.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D3FF46D20D9FF55006A5F8A /* AppleCommander.jar */; }; + 9D3FF47020D9FF55006A5F8A /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF46F20D9FF55006A5F8A /* createDiskImage */; }; + 9D3FF47220D9FF55006A5F8A /* DevApple.vii in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47120D9FF55006A5F8A /* DevApple.vii */; }; + 9D3FF47420D9FF55006A5F8A /* dos33_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47320D9FF55006A5F8A /* dos33_template.dsk */; }; + 9D3FF47620D9FF55006A5F8A /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47520D9FF55006A5F8A /* head.mk */; }; + 9D3FF47820D9FF55006A5F8A /* prodos_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47720D9FF55006A5F8A /* prodos_template.dsk */; }; + 9D3FF47A20D9FF55006A5F8A /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47920D9FF55006A5F8A /* tail.mk */; }; + 9D3FF47C20D9FF55006A5F8A /* V2Make.scpt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47B20D9FF55006A5F8A /* V2Make.scpt */; }; + 9D3FF47F20D9FF55006A5F8A /* a2sudoku.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D3FF47E20D9FF55006A5F8A /* a2sudoku.xcscheme */; }; + 9D3FF49520D9FFD6006A5F8A /* puzzles.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D3FF48920D9FFD5006A5F8A /* puzzles.c */; }; + 9D3FF49620D9FFD6006A5F8A /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D3FF48A20D9FFD5006A5F8A /* main.c */; }; + 9D3FF49720D9FFD6006A5F8A /* ui.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D3FF48F20D9FFD5006A5F8A /* ui.c */; }; + 9D3FF49820D9FFD6006A5F8A /* game.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D3FF49120D9FFD5006A5F8A /* game.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9D3FF46320D9FF55006A5F8A /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + 9D3FF47020D9FF55006A5F8A /* createDiskImage in CopyFiles */, + 9D3FF47220D9FF55006A5F8A /* DevApple.vii in CopyFiles */, + 9D3FF47420D9FF55006A5F8A /* dos33_template.dsk in CopyFiles */, + 9D3FF47A20D9FF55006A5F8A /* tail.mk in CopyFiles */, + 9D3FF47C20D9FF55006A5F8A /* V2Make.scpt in CopyFiles */, + 9D3FF47F20D9FF55006A5F8A /* a2sudoku.xcscheme in CopyFiles */, + 9D3FF47820D9FF55006A5F8A /* prodos_template.dsk in CopyFiles */, + 9D3FF47620D9FF55006A5F8A /* head.mk in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ - 9DEE9C261B569637003E353E /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; - 9DEE9C271B569637003E353E /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; - 9DEE9C291B569637003E353E /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = ""; }; - 9DEE9C2A1B569637003E353E /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = ""; }; - 9DEE9C2B1B569637003E353E /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = ""; }; - 9DEE9C2C1B569637003E353E /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = ""; }; - 9DEE9C2D1B569637003E353E /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = ""; }; - 9DEE9C2E1B569637003E353E /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = ""; }; - 9DEE9C2F1B569637003E353E /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = ""; }; - 9DEE9C301B569638003E353E /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = ""; }; - 9DEE9C361B569717003E353E /* puzzles.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = puzzles.c; sourceTree = ""; }; - 9DEE9C371B569717003E353E /* puzzles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = puzzles.h; sourceTree = ""; }; - 9DEE9C381B56979C003E353E /* game.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = game.c; sourceTree = ""; }; - 9DEE9C391B56979C003E353E /* game.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; - 9DEE9C3A1B56CFC0003E353E /* ui.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ui.c; sourceTree = ""; }; - 9DEE9C3B1B56CFC0003E353E /* ui.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = ""; }; - 9DEE9C3C1B570AED003E353E /* a2e.hi.s */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = a2e.hi.s; sourceTree = ""; }; - 9DEE9C3D1B582C3A003E353E /* generateSudoku.pl */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; path = generateSudoku.pl; sourceTree = ""; }; - 9DEE9C3E1B5837B0003E353E /* easy.puzzles */ = {isa = PBXFileReference; lastKnownFileType = file; path = easy.puzzles; sourceTree = ""; }; - 9DEE9C3F1B5837B0003E353E /* hard.puzzles */ = {isa = PBXFileReference; lastKnownFileType = file; path = hard.puzzles; sourceTree = ""; }; - 9DEE9C401B5837B0003E353E /* medium.puzzles */ = {isa = PBXFileReference; lastKnownFileType = file; path = medium.puzzles; sourceTree = ""; }; - 9DEE9C411B583FE4003E353E /* puzzles.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = puzzles.txt; sourceTree = ""; }; - 9DEE9C431B588B93003E353E /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9D3FF46520D9FF55006A5F8A /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; }; + 9D3FF46A20D9FF55006A5F8A /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9D3FF46D20D9FF55006A5F8A /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = ""; }; + 9D3FF46F20D9FF55006A5F8A /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = ""; }; + 9D3FF47120D9FF55006A5F8A /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = ""; }; + 9D3FF47320D9FF55006A5F8A /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = ""; }; + 9D3FF47520D9FF55006A5F8A /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = ""; }; + 9D3FF47720D9FF55006A5F8A /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = ""; }; + 9D3FF47920D9FF55006A5F8A /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = ""; }; + 9D3FF47B20D9FF55006A5F8A /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = ""; }; + 9D3FF47E20D9FF55006A5F8A /* a2sudoku.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = a2sudoku.xcscheme; path = a2sudoku.xcodeproj/xcshareddata/xcschemes/a2sudoku.xcscheme; sourceTree = SOURCE_ROOT; }; + 9D3FF48820D9FF65006A5F8A /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9D3FF48920D9FFD5006A5F8A /* puzzles.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = puzzles.c; sourceTree = ""; }; + 9D3FF48A20D9FFD5006A5F8A /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; }; + 9D3FF48C20D9FFD5006A5F8A /* generateSudoku.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; path = generateSudoku.pl; sourceTree = ""; }; + 9D3FF48E20D9FFD5006A5F8A /* puzzles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = puzzles.h; sourceTree = ""; }; + 9D3FF48F20D9FFD5006A5F8A /* ui.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ui.c; sourceTree = ""; }; + 9D3FF49120D9FFD5006A5F8A /* game.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = game.c; sourceTree = ""; }; + 9D3FF49220D9FFD5006A5F8A /* game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = game.h; sourceTree = ""; }; + 9D3FF49320D9FFD5006A5F8A /* puzzles.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = puzzles.txt; sourceTree = ""; }; + 9D3FF49420D9FFD5006A5F8A /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = ""; }; + 9D3FF49B20DA0106006A5F8A /* tocopy */ = {isa = PBXFileReference; lastKnownFileType = folder; path = tocopy; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFrameworksBuildPhase section */ + 9D3FF46220D9FF55006A5F8A /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D3FF46E20D9FF55006A5F8A /* AppleCommander.jar in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + /* Begin PBXGroup section */ - 9DEE9C1F1B569637003E353E = { + 9D3FF45B20D9FF55006A5F8A = { isa = PBXGroup; children = ( - 9DEE9C431B588B93003E353E /* README.md */, - 9DEE9C251B569637003E353E /* a2sudoku */, + 9D3FF48820D9FF65006A5F8A /* README.md */, + 9D3FF46720D9FF55006A5F8A /* a2sudoku */, + 9D3FF46620D9FF55006A5F8A /* Products */, ); sourceTree = ""; }; - 9DEE9C251B569637003E353E /* a2sudoku */ = { + 9D3FF46620D9FF55006A5F8A /* Products */ = { isa = PBXGroup; children = ( - 9DEE9C261B569637003E353E /* main.c */, - 9DEE9C361B569717003E353E /* puzzles.c */, - 9DEE9C371B569717003E353E /* puzzles.h */, - 9DEE9C381B56979C003E353E /* game.c */, - 9DEE9C391B56979C003E353E /* game.h */, - 9DEE9C3A1B56CFC0003E353E /* ui.c */, - 9DEE9C3B1B56CFC0003E353E /* ui.h */, - 9DEE9C3C1B570AED003E353E /* a2e.hi.s */, - 9DEE9C421B583FEF003E353E /* Puzzles */, - 9DEE9C271B569637003E353E /* Makefile */, - 9DEE9C281B569637003E353E /* make */, + 9D3FF46520D9FF55006A5F8A /* doNotBuild */, + ); + name = Products; + sourceTree = ""; + }; + 9D3FF46720D9FF55006A5F8A /* a2sudoku */ = { + isa = PBXGroup; + children = ( + 9D3FF46A20D9FF55006A5F8A /* Makefile */, + 9D3FF49120D9FFD5006A5F8A /* game.c */, + 9D3FF49220D9FFD5006A5F8A /* game.h */, + 9D3FF48A20D9FFD5006A5F8A /* main.c */, + 9D3FF48F20D9FFD5006A5F8A /* ui.c */, + 9D3FF49420D9FFD5006A5F8A /* ui.h */, + 9D3FF49A20DA0099006A5F8A /* puzzles */, + 9D3FF49B20DA0106006A5F8A /* tocopy */, + 9D3FF46C20D9FF55006A5F8A /* make */, + 9D3FF47D20D9FF55006A5F8A /* Supporting Files */, ); path = a2sudoku; sourceTree = ""; }; - 9DEE9C281B569637003E353E /* make */ = { + 9D3FF46C20D9FF55006A5F8A /* make */ = { isa = PBXGroup; children = ( - 9DEE9C291B569637003E353E /* AppleCommander.jar */, - 9DEE9C2A1B569637003E353E /* createDiskImage */, - 9DEE9C2B1B569637003E353E /* DevApple.vii */, - 9DEE9C2C1B569637003E353E /* dos33_template.dsk */, - 9DEE9C2D1B569637003E353E /* head.mk */, - 9DEE9C2E1B569637003E353E /* prodos_template.dsk */, - 9DEE9C2F1B569637003E353E /* tail.mk */, - 9DEE9C301B569638003E353E /* V2Make.scpt */, + 9D3FF46D20D9FF55006A5F8A /* AppleCommander.jar */, + 9D3FF46F20D9FF55006A5F8A /* createDiskImage */, + 9D3FF47120D9FF55006A5F8A /* DevApple.vii */, + 9D3FF47320D9FF55006A5F8A /* dos33_template.dsk */, + 9D3FF47520D9FF55006A5F8A /* head.mk */, + 9D3FF47720D9FF55006A5F8A /* prodos_template.dsk */, + 9D3FF47920D9FF55006A5F8A /* tail.mk */, + 9D3FF47B20D9FF55006A5F8A /* V2Make.scpt */, ); name = make; sourceTree = ""; }; - 9DEE9C421B583FEF003E353E /* Puzzles */ = { + 9D3FF47D20D9FF55006A5F8A /* Supporting Files */ = { isa = PBXGroup; children = ( - 9DEE9C411B583FE4003E353E /* puzzles.txt */, - 9DEE9C3E1B5837B0003E353E /* easy.puzzles */, - 9DEE9C3F1B5837B0003E353E /* hard.puzzles */, - 9DEE9C401B5837B0003E353E /* medium.puzzles */, - 9DEE9C3D1B582C3A003E353E /* generateSudoku.pl */, + 9D3FF47E20D9FF55006A5F8A /* a2sudoku.xcscheme */, ); - name = Puzzles; + name = "Supporting Files"; + sourceTree = ""; + }; + 9D3FF49A20DA0099006A5F8A /* puzzles */ = { + isa = PBXGroup; + children = ( + 9D3FF48C20D9FFD5006A5F8A /* generateSudoku.pl */, + 9D3FF48920D9FFD5006A5F8A /* puzzles.c */, + 9D3FF48E20D9FFD5006A5F8A /* puzzles.h */, + 9D3FF49320D9FFD5006A5F8A /* puzzles.txt */, + ); + name = puzzles; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXLegacyTarget section */ - 9DEE9C241B569637003E353E /* a2sudoku */ = { + 9D3FF46020D9FF55006A5F8A /* a2sudoku */ = { isa = PBXLegacyTarget; buildArgumentsString = "-C a2sudoku $(ACTION)"; - buildConfigurationList = 9DEE9C331B569638003E353E /* Build configuration list for PBXLegacyTarget "a2sudoku" */; + buildConfigurationList = 9D3FF48220D9FF55006A5F8A /* Build configuration list for PBXLegacyTarget "a2sudoku" */; buildPhases = ( ); buildToolPath = /usr/bin/make; @@ -104,56 +166,112 @@ }; /* End PBXLegacyTarget section */ +/* Begin PBXNativeTarget section */ + 9D3FF46420D9FF55006A5F8A /* doNotBuild */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9D3FF48520D9FF55006A5F8A /* Build configuration list for PBXNativeTarget "doNotBuild" */; + buildPhases = ( + 9D3FF46120D9FF55006A5F8A /* Sources */, + 9D3FF46220D9FF55006A5F8A /* Frameworks */, + 9D3FF46320D9FF55006A5F8A /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = doNotBuild; + productName = doNotBuild; + productReference = 9D3FF46520D9FF55006A5F8A /* doNotBuild */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + /* Begin PBXProject section */ - 9DEE9C201B569637003E353E /* Project object */ = { + 9D3FF45C20D9FF55006A5F8A /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0640; + LastUpgradeCheck = 0940; ORGANIZATIONNAME = "Jeremy Rand"; TargetAttributes = { - 9DEE9C241B569637003E353E = { - CreatedOnToolsVersion = 6.4; + 9D3FF46020D9FF55006A5F8A = { + CreatedOnToolsVersion = 9.4.1; + }; + 9D3FF46420D9FF55006A5F8A = { + CreatedOnToolsVersion = 9.4.1; }; }; }; - buildConfigurationList = 9DEE9C231B569637003E353E /* Build configuration list for PBXProject "a2sudoku" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; + buildConfigurationList = 9D3FF45F20D9FF55006A5F8A /* Build configuration list for PBXProject "a2sudoku" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, ); - mainGroup = 9DEE9C1F1B569637003E353E; + mainGroup = 9D3FF45B20D9FF55006A5F8A; + productRefGroup = 9D3FF46620D9FF55006A5F8A /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 9DEE9C241B569637003E353E /* a2sudoku */, + 9D3FF46020D9FF55006A5F8A /* a2sudoku */, + 9D3FF46420D9FF55006A5F8A /* doNotBuild */, ); }; /* End PBXProject section */ +/* Begin PBXSourcesBuildPhase section */ + 9D3FF46120D9FF55006A5F8A /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9D3FF49820D9FFD6006A5F8A /* game.c in Sources */, + 9D3FF46B20D9FF55006A5F8A /* Makefile in Sources */, + 9D3FF49520D9FFD6006A5F8A /* puzzles.c in Sources */, + 9D3FF49620D9FFD6006A5F8A /* main.c in Sources */, + 9D3FF49720D9FFD6006A5F8A /* ui.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + /* Begin XCBuildConfiguration section */ - 9DEE9C311B569638003E353E /* Debug */ = { + 9D3FF48020D9FF55006A5F8A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -161,42 +279,54 @@ "DEBUG=1", "$(inherited)", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; }; name = Debug; }; - 9DEE9C321B569638003E353E /* Release */ = { + 9D3FF48120D9FF55006A5F8A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -204,16 +334,17 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = macosx; }; name = Release; }; - 9DEE9C341B569638003E353E /* Debug */ = { + 9D3FF48320D9FF55006A5F8A /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_STYLE = Automatic; DEBUGGING_SYMBOLS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = VD9FGCW36C; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; GCC_OPTIMIZATION_LEVEL = 0; OTHER_CFLAGS = ""; @@ -222,37 +353,71 @@ }; name = Debug; }; - 9DEE9C351B569638003E353E /* Release */ = { + 9D3FF48420D9FF55006A5F8A /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = VD9FGCW36C; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; + 9D3FF48620D9FF55006A5F8A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\""; + HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include; + PRODUCT_NAME = doNotBuild; + }; + name = Debug; + }; + 9D3FF48720D9FF55006A5F8A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VD9FGCW36C; + GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\""; + HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include; + PRODUCT_NAME = doNotBuild; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 9DEE9C231B569637003E353E /* Build configuration list for PBXProject "a2sudoku" */ = { + 9D3FF45F20D9FF55006A5F8A /* Build configuration list for PBXProject "a2sudoku" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9DEE9C311B569638003E353E /* Debug */, - 9DEE9C321B569638003E353E /* Release */, + 9D3FF48020D9FF55006A5F8A /* Debug */, + 9D3FF48120D9FF55006A5F8A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9DEE9C331B569638003E353E /* Build configuration list for PBXLegacyTarget "a2sudoku" */ = { + 9D3FF48220D9FF55006A5F8A /* Build configuration list for PBXLegacyTarget "a2sudoku" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9DEE9C341B569638003E353E /* Debug */, - 9DEE9C351B569638003E353E /* Release */, + 9D3FF48320D9FF55006A5F8A /* Debug */, + 9D3FF48420D9FF55006A5F8A /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9D3FF48520D9FF55006A5F8A /* Build configuration list for PBXNativeTarget "doNotBuild" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9D3FF48620D9FF55006A5F8A /* Debug */, + 9D3FF48720D9FF55006A5F8A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 9DEE9C201B569637003E353E /* Project object */; + rootObject = 9D3FF45C20D9FF55006A5F8A /* Project object */; } diff --git a/a2sudoku.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/a2sudoku.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/a2sudoku.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/a2sudoku.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate b/a2sudoku.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..9864c0e Binary files /dev/null and b/a2sudoku.xcodeproj/project.xcworkspace/xcuserdata/jrand.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/a2sudoku.xcscheme b/a2sudoku.xcodeproj/xcshareddata/xcschemes/a2sudoku.xcscheme similarity index 68% rename from a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/a2sudoku.xcscheme rename to a2sudoku.xcodeproj/xcshareddata/xcschemes/a2sudoku.xcscheme index 8b4ac05..8108655 100644 --- a/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/a2sudoku.xcscheme +++ b/a2sudoku.xcodeproj/xcshareddata/xcschemes/a2sudoku.xcscheme @@ -1,6 +1,6 @@ @@ -23,44 +23,65 @@ + shouldUseLaunchSchemeArgsEnv = "YES"> + + + + + + + + + + + + diff --git a/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist b/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist index e0f4965..335ffe9 100644 --- a/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/a2sudoku.xcodeproj/xcuserdata/jrand.xcuserdatad/xcschemes/xcschememanagement.plist @@ -4,18 +4,15 @@ SchemeUserState - a2sudoku.xcscheme + a2sudoku.xcscheme_^#shared#^_ orderHint 0 - - SuppressBuildableAutocreation - - 9DEE9C241B569637003E353E + doNotBuild.xcscheme - primary - + orderHint + 1 diff --git a/a2sudoku/Makefile b/a2sudoku/Makefile index 7d6edba..c62992f 100644 --- a/a2sudoku/Makefile +++ b/a2sudoku/Makefile @@ -48,13 +48,9 @@ START_ADDR = 4000 # Note: You can assemble for 65816 in 16-bit mode but the C compiler # will only produce 8-bit code. -# Any *.c files in your main project directory will automatically be -# built. But, if you have subdirectories with C files in them, you -# should add them to the list of C_SRCS to build. Do that by -# uncommenting the following line and changing "someSubDir" to match -# the subdirectory you have created. Add multiple lines like this -# for each subdirectory: -# C_SRCS += $(wildcard someSubDir/*.c) +# Add any other directories where you are putting C or assembly source +# files to this list: +SRCDIRS+= # Any *.s files in your main project directory will automatically be # built. But, if you have subdirectories with assembly files in them, @@ -85,10 +81,168 @@ START_ADDR = 4000 # this variable: # LDFLAGS += -v +# If you want to link the lores graphics driver with your executable, +# uncomment the next line. +# DRIVERS += loresgr +# +# To use the lores driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_lores_drv.h" +# int main(void) +# { +# tgi_install(&a2_lores_drv); +# tgi_init(); +# // Use the graphics driver +# tgi_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/tgi.h file to see what the +# driver interface provides. Also check out +# /usr/local/lib/cc65/include/apple2.h to see the colour definitions. + +# If you want to link the hires graphics driver with your executable, +# uncomment the next line. +DRIVERS += hiresgr +# +# To use the hires driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_hires_drv.h" +# int main(void) +# { +# tgi_install(&a2_hires_drv); +# tgi_init(); +# // Use the graphics driver +# tgi_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/tgi.h file to see what the +# driver interface provides. Also check out +# /usr/local/lib/cc65/include/apple2.h to see the colour definitions. + +# If you want to link the extended memory driver with your executable, +# uncomment the next line. +# DRIVERS += auxmem +# +# To use the auxmem driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_auxmem_drv.h" +# int main(void) +# { +# em_install(&a2_auxmem_drv); +# // Use the auxmem driver +# em_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/em.h file to see what the +# driver interface provides. + +# If you want to link the joystick driver with your executable, +# uncomment the next line. +# DRIVERS += joystick +# +# To use the joystick driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_joystick_drv.h" +# int main(void) +# { +# joy_install(&a2_joystick_drv); +# // Use the joystick driver +# joy_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/joystick.h file to see what the +# driver interface provides. + +# If you want to link the mouse driver with your executable, +# uncomment the next line. +# DRIVERS += mouse +# +# To use the mouse driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_mouse_drv.h" +# int main(void) +# { +# mouse_install(&mouse_def_callbacks, &a2_mouse_drv); +# // Use the mouse driver +# mouse_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/mouse.h file to see what the +# driver interface provides. + +# If you want to link the serial driver with your executable, +# uncomment the next line. +# DRIVERS += serial +# +# To use the serial driver, add code which looks like this to your +# project: +# +# #include "drivers/a2_serial_drv.h" +# int main(void) +# { +# ser_install(&a2_serial_drv); +# // Use the serial driver +# ser_uninstall(); +# } +# +# Read the /usr/local/lib/cc65/include/serial.h file to see what the +# driver interface provides. + # If you have java installed in a non-standard location, you can set # the path to it by uncommenting the following line: # export JAVA=/usr/bin/java +# If you want to copy one or more files or directories to the target disk +# image, add the root directory to this variable. All files will be +# copied from the source to the target using the same path from the source. +# +# For example, if you set COPYDIRS to dir and in your project you have +# the following files: +# dir/mySystemFile +# dir/newDir/anotherFile +# +# Then, during the copy phase, mySystemFile will be copied into the root +# of the disk and anotherFile will be copied into a directory named +# newDir. The newDir directory will be created if it does not already +# exist. +# +# The name of the file to copy is checked and if it ends in: +# .as - It assumes the file is in AppleSingle format. The .as +# suffix is stripped from the name when copied to the +# disk image. +# . - If the file ends with a single character which matches +# a DOS 3.3 file type (A, B, T, etc) it uses that value as +# the file type of the file copied to the disk image. The +# single character is removed from the file name. +# . - If the file ends with a three letter alpha extension, it +# uses that TLA as the file type of the file copied to the +# disk image. The TLA is removed from the file name. +# +# If you do not provide any type information for your filenames, +# it will be copied as a binary. +# +COPYDIRS=tocopy + +# Add any rules you want to execute before any compiles or assembly +# commands are called here, if any. You can generate .c, .s or .h +# files for example. You can generate data files. Whatever you +# might need. +gen: genfiles + +genfiles: puzzles.txt + ./generateSudoku.pl puzzles.txt + touch genfiles + +# For any files you generated in the gen target above, you should +# add rules in genclean to remove those generated files when you +# clean your build. +genclean: + rm -f tocopy/* genfiles # Do not change anything else below here... include make/tail.mk diff --git a/a2sudoku/a2e.hi.s b/a2sudoku/a2e.hi.s deleted file mode 100644 index f844ee3..0000000 --- a/a2sudoku/a2e.hi.s +++ /dev/null @@ -1,2096 +0,0 @@ -; -; File generated by co65 v 2.13.3 using model `cc65-module' -; -.fopt compiler,"co65 v 2.13.3" -.case on -.debuginfo off -.export _a2e_hi - -; -; CODE SEGMENT -; -.segment "CODE" -_a2e_hi: - .byte $74 - .byte $67 - .byte $69 - .byte $02 - .byte $18 - .byte $01 - .byte $C0 - .byte $00 - .byte $08 - .byte $02 - .byte $08 - .byte $08 - .byte $00 - .byte $00 - .byte $00 - .byte $00 - .word _a2e_hi+81 - .word _a2e_hi+81 - .word _a2e_hi+58 - .word _a2e_hi+82 - .word _a2e_hi+100 - .word _a2e_hi+146 - .word _a2e_hi+109 - .word _a2e_hi+119 - .word _a2e_hi+124 - .word _a2e_hi+135 - .word _a2e_hi+146 - .word _a2e_hi+152 - .word _a2e_hi+152 - .word _a2e_hi+157 - .word _a2e_hi+224 - .word _a2e_hi+255 - .word _a2e_hi+280 - .word _a2e_hi+302 - .word _a2e_hi+659 - .word _a2e_hi+668 - .byte $00 - .byte $00 - .byte $AD - .byte $18 - .byte $C0 - .byte $8D - .word BSS+1 - .byte $8D - .byte $00 - .byte $C0 - .byte $2C - .byte $57 - .byte $C0 - .byte $2C - .byte $52 - .byte $C0 - .byte $2C - .byte $50 - .byte $C0 - .byte $A9 - .byte $00 - .byte $8D - .word BSS+0 - .byte $60 - .byte $2C - .byte $51 - .byte $C0 - .byte $2C - .byte $54 - .byte $C0 - .byte $AD - .word BSS+1 - .byte $10 - .byte $03 - .byte $8D - .byte $01 - .byte $C0 - .byte $2C - .byte $56 - .byte $C0 - .byte $60 - .byte $AD - .word BSS+0 - .byte $A2 - .byte $00 - .byte $8E - .word BSS+0 - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $20 - .byte $F2 - .byte $F3 - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $AA - .byte $BD - .byte $54 - .byte $C0 - .byte $60 - .byte $AA - .byte $F0 - .byte $03 - .byte $A9 - .byte $40 - .byte $2C - .byte $A9 - .byte $20 - .byte $85 - .byte $E6 - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $AA - .byte $20 - .byte $EC - .byte $F6 - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $A9 - .byte $06 - .byte $8D - .word BSS+0 - .byte $60 - .byte $A9 - .byte <(_a2e_hi+34) - .byte $A2 - .byte >(_a2e_hi+802) - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $A6 - .byte <(ZEROPAGE+8) - .byte $A4 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $20 - .byte $57 - .byte $F4 - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $A5 - .byte <(ZEROPAGE+11) - .byte $30 - .byte $2E - .byte $A5 - .byte <(ZEROPAGE+9) - .byte $30 - .byte $2A - .byte $A5 - .byte <(ZEROPAGE+8) - .byte $A6 - .byte <(ZEROPAGE+9) - .byte $85 - .byte <(ZEROPAGE+16) - .byte $86 - .byte <(ZEROPAGE+17) - .byte $A2 - .byte <(ZEROPAGE+16) - .byte $AD - .word _a2e_hi+4 - .byte $AC - .word _a2e_hi+5 - .byte $20 - .word _a2e_hi+768 - .byte $B0 - .byte $15 - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $A6 - .byte <(ZEROPAGE+11) - .byte $85 - .byte <(ZEROPAGE+16) - .byte $86 - .byte <(ZEROPAGE+17) - .byte $A2 - .byte <(ZEROPAGE+16) - .byte $AD - .word _a2e_hi+6 - .byte $AC - .word _a2e_hi+7 - .byte $20 - .word _a2e_hi+768 - .byte $90 - .byte $BE - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $A6 - .byte <(ZEROPAGE+8) - .byte $A4 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $20 - .byte $11 - .byte $F4 - .byte $B1 - .byte $26 - .byte $25 - .byte $30 - .byte $0A - .byte $F0 - .byte $02 - .byte $A9 - .byte $03 - .byte $90 - .byte $02 - .byte $69 - .byte $03 - .byte $A2 - .byte $00 - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $A6 - .byte <(ZEROPAGE+8) - .byte $A4 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $20 - .byte $11 - .byte $F4 - .byte $A5 - .byte <(ZEROPAGE+12) - .byte $A6 - .byte <(ZEROPAGE+13) - .byte $A4 - .byte <(ZEROPAGE+14) - .byte $20 - .byte $3A - .byte $F5 - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $E6 - .byte <(ZEROPAGE+14) - .byte $A5 - .byte <(ZEROPAGE+14) - .byte $48 - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $85 - .byte <(ZEROPAGE+14) - .byte $20 - .word _a2e_hi+255 - .byte $68 - .byte $85 - .byte <(ZEROPAGE+14) - .byte $E6 - .byte <(ZEROPAGE+10) - .byte $C5 - .byte <(ZEROPAGE+10) - .byte $D0 - .byte $ED - .byte $60 - .byte $A5 - .byte <(ZEROPAGE+16) - .byte $D0 - .byte $03 - .byte $4C - .word _a2e_hi+173 - .byte $85 - .byte <(ZEROPAGE+12) - .byte $A9 - .byte $00 - .byte $85 - .byte <(ZEROPAGE+13) - .byte $85 - .byte <(ZEROPAGE+14) - .byte $85 - .byte <(ZEROPAGE+15) - .byte $85 - .byte <(ZEROPAGE+2) - .byte $85 - .byte <(ZEROPAGE+3) - .byte $A5 - .byte <(ZEROPAGE+8) - .byte $A6 - .byte <(ZEROPAGE+9) - .byte $85 - .byte <(ZEROPAGE+4) - .byte $86 - .byte <(ZEROPAGE+5) - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $A6 - .byte <(ZEROPAGE+11) - .byte $85 - .byte <(ZEROPAGE+6) - .byte $86 - .byte <(ZEROPAGE+7) - .byte $A2 - .byte <(ZEROPAGE+14) - .byte $A5 - .byte <(ZEROPAGE+12) - .byte $A4 - .byte <(ZEROPAGE+13) - .byte $20 - .word _a2e_hi+768 - .byte $90 - .byte $01 - .byte $60 - .byte $A5 - .byte <(ZEROPAGE+4) - .byte $18 - .byte $65 - .byte <(ZEROPAGE+12) - .byte $85 - .byte <(ZEROPAGE+8) - .byte $A5 - .byte <(ZEROPAGE+5) - .byte $65 - .byte <(ZEROPAGE+13) - .byte $85 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+6) - .byte $18 - .byte $65 - .byte <(ZEROPAGE+14) - .byte $85 - .byte <(ZEROPAGE+10) - .byte $48 - .byte $A5 - .byte <(ZEROPAGE+7) - .byte $65 - .byte <(ZEROPAGE+15) - .byte $85 - .byte <(ZEROPAGE+11) - .byte $48 - .byte $20 - .word _a2e_hi+173 - .byte $A5 - .byte <(ZEROPAGE+6) - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+14) - .byte $85 - .byte <(ZEROPAGE+10) - .byte $8D - .word BSS+6 - .byte $A5 - .byte <(ZEROPAGE+7) - .byte $E5 - .byte <(ZEROPAGE+15) - .byte $85 - .byte <(ZEROPAGE+11) - .byte $8D - .word BSS+7 - .byte $20 - .word _a2e_hi+173 - .byte $68 - .byte $85 - .byte <(ZEROPAGE+11) - .byte $68 - .byte $85 - .byte <(ZEROPAGE+10) - .byte $A5 - .byte <(ZEROPAGE+4) - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+12) - .byte $85 - .byte <(ZEROPAGE+8) - .byte $A5 - .byte <(ZEROPAGE+5) - .byte $E5 - .byte <(ZEROPAGE+13) - .byte $85 - .byte <(ZEROPAGE+9) - .byte $20 - .word _a2e_hi+173 - .byte $AD - .word BSS+6 - .byte $85 - .byte <(ZEROPAGE+10) - .byte $AD - .word BSS+7 - .byte $85 - .byte <(ZEROPAGE+11) - .byte $20 - .word _a2e_hi+173 - .byte $A5 - .byte <(ZEROPAGE+4) - .byte $18 - .byte $65 - .byte <(ZEROPAGE+14) - .byte $85 - .byte <(ZEROPAGE+8) - .byte $A5 - .byte <(ZEROPAGE+5) - .byte $65 - .byte <(ZEROPAGE+15) - .byte $85 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+6) - .byte $18 - .byte $65 - .byte <(ZEROPAGE+12) - .byte $85 - .byte <(ZEROPAGE+10) - .byte $48 - .byte $A5 - .byte <(ZEROPAGE+7) - .byte $65 - .byte <(ZEROPAGE+13) - .byte $85 - .byte <(ZEROPAGE+11) - .byte $48 - .byte $20 - .word _a2e_hi+173 - .byte $A5 - .byte <(ZEROPAGE+6) - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+12) - .byte $85 - .byte <(ZEROPAGE+10) - .byte $8D - .word BSS+6 - .byte $A5 - .byte <(ZEROPAGE+7) - .byte $E5 - .byte <(ZEROPAGE+13) - .byte $85 - .byte <(ZEROPAGE+11) - .byte $8D - .word BSS+7 - .byte $20 - .word _a2e_hi+173 - .byte $68 - .byte $85 - .byte <(ZEROPAGE+11) - .byte $68 - .byte $85 - .byte <(ZEROPAGE+10) - .byte $A5 - .byte <(ZEROPAGE+4) - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+14) - .byte $85 - .byte <(ZEROPAGE+8) - .byte $A5 - .byte <(ZEROPAGE+5) - .byte $E5 - .byte <(ZEROPAGE+15) - .byte $85 - .byte <(ZEROPAGE+9) - .byte $20 - .word _a2e_hi+173 - .byte $AD - .word BSS+6 - .byte $85 - .byte <(ZEROPAGE+10) - .byte $AD - .word BSS+7 - .byte $85 - .byte <(ZEROPAGE+11) - .byte $20 - .word _a2e_hi+173 - .byte $A5 - .byte <(ZEROPAGE+2) - .byte $A6 - .byte <(ZEROPAGE+3) - .byte $18 - .byte $65 - .byte <(ZEROPAGE+14) - .byte $A8 - .byte $8A - .byte $65 - .byte <(ZEROPAGE+15) - .byte $AA - .byte $98 - .byte $18 - .byte $65 - .byte <(ZEROPAGE+14) - .byte $A8 - .byte $8A - .byte $65 - .byte <(ZEROPAGE+15) - .byte $AA - .byte $98 - .byte $18 - .byte $69 - .byte $01 - .byte $90 - .byte $01 - .byte $E8 - .byte $8D - .word BSS+2 - .byte $8E - .word BSS+3 - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+12) - .byte $A8 - .byte $8A - .byte $E5 - .byte <(ZEROPAGE+13) - .byte $AA - .byte $98 - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+12) - .byte $A8 - .byte $8A - .byte $E5 - .byte <(ZEROPAGE+13) - .byte $AA - .byte $98 - .byte $18 - .byte $69 - .byte $01 - .byte $90 - .byte $01 - .byte $E8 - .byte $8D - .word BSS+4 - .byte $8E - .word BSS+5 - .byte $E6 - .byte <(ZEROPAGE+14) - .byte $D0 - .byte $02 - .byte $E6 - .byte <(ZEROPAGE+15) - .byte $AD - .word BSS+4 - .byte $AC - .word BSS+5 - .byte $20 - .word _a2e_hi+750 - .byte $85 - .byte <(ZEROPAGE+2) - .byte $84 - .byte <(ZEROPAGE+3) - .byte $AD - .word BSS+2 - .byte $AC - .word BSS+3 - .byte $20 - .word _a2e_hi+750 - .byte $A2 - .byte <(ZEROPAGE+2) - .byte $20 - .word _a2e_hi+768 - .byte $10 - .byte $14 - .byte $A5 - .byte <(ZEROPAGE+12) - .byte $38 - .byte $E9 - .byte $01 - .byte $85 - .byte <(ZEROPAGE+12) - .byte $B0 - .byte $02 - .byte $C6 - .byte <(ZEROPAGE+13) - .byte $AD - .word BSS+4 - .byte $AE - .word BSS+5 - .byte $4C - .word _a2e_hi+652 - .byte $AD - .word BSS+2 - .byte $AE - .word BSS+3 - .byte $85 - .byte <(ZEROPAGE+2) - .byte $86 - .byte <(ZEROPAGE+3) - .byte $4C - .word _a2e_hi+339 - .byte $86 - .byte $E7 - .byte $0A - .byte $0A - .byte $0A - .byte $0A - .byte $85 - .byte $F9 - .byte $60 - .byte $2C - .byte $82 - .byte $C0 - .byte $A6 - .byte <(ZEROPAGE+8) - .byte $A4 - .byte <(ZEROPAGE+9) - .byte $A5 - .byte <(ZEROPAGE+10) - .byte $20 - .byte $11 - .byte $F4 - .byte $AD - .word _a2e_hi+1008 - .byte $18 - .byte $69 - .byte <(_a2e_hi+42) - .byte $85 - .byte <(ZEROPAGE+18) - .byte $AD - .word _a2e_hi+1009 - .byte $69 - .byte >(_a2e_hi+810) - .byte $85 - .byte <(ZEROPAGE+19) - .byte $A0 - .byte $00 - .byte $B1 - .byte <(ZEROPAGE+12) - .byte $F0 - .byte $2D - .byte $38 - .byte $E9 - .byte $1F - .byte $0A - .byte $AA - .byte $BD - .word _a2e_hi+810 - .byte $18 - .byte $69 - .byte <(_a2e_hi+42) - .byte $85 - .byte <(ZEROPAGE+16) - .byte $BD - .word _a2e_hi+811 - .byte $69 - .byte >(_a2e_hi+810) - .byte $85 - .byte <(ZEROPAGE+17) - .byte $98 - .byte $48 - .byte $A6 - .byte <(ZEROPAGE+16) - .byte $A4 - .byte <(ZEROPAGE+17) - .byte $A5 - .byte $F9 - .byte $20 - .byte $01 - .byte $F6 - .byte $A6 - .byte <(ZEROPAGE+18) - .byte $A4 - .byte <(ZEROPAGE+19) - .byte $A5 - .byte $F9 - .byte $20 - .byte $01 - .byte $F6 - .byte $68 - .byte $A8 - .byte $C8 - .byte $D0 - .byte $CF - .byte $2C - .byte $80 - .byte $C0 - .byte $60 - .byte $C0 - .byte $00 - .byte $10 - .byte $0D - .byte $18 - .byte $49 - .byte $FF - .byte $69 - .byte $01 - .byte $48 - .byte $98 - .byte $49 - .byte $FF - .byte $69 - .byte $00 - .byte $A8 - .byte $68 - .byte $60 - .byte $85 - .byte <(ZEROPAGE+18) - .byte $84 - .byte <(ZEROPAGE+19) - .byte $B5 - .byte $00 - .byte $48 - .byte $B5 - .byte $01 - .byte $A8 - .byte $68 - .byte $AA - .byte $98 - .byte $38 - .byte $E5 - .byte <(ZEROPAGE+19) - .byte $D0 - .byte $09 - .byte $E4 - .byte <(ZEROPAGE+18) - .byte $F0 - .byte $04 - .byte $69 - .byte $FF - .byte $09 - .byte $01 - .byte $60 - .byte $50 - .byte $04 - .byte $49 - .byte $FF - .byte $09 - .byte $01 - .byte $60 - .byte $00 - .byte $01 - .byte $02 - .byte $03 - .byte $04 - .byte $05 - .byte $06 - .byte $07 - .byte $64 - .byte $01 - .byte $D0 - .byte $00 - .byte $D5 - .byte $00 - .byte $DA - .byte $00 - .byte $E0 - .byte $00 - .byte $EF - .byte $00 - .byte $FE - .byte $00 - .byte $0C - .byte $01 - .byte $19 - .byte $01 - .byte $1D - .byte $01 - .byte $25 - .byte $01 - .byte $2D - .byte $01 - .byte $3D - .byte $01 - .byte $46 - .byte $01 - .byte $4B - .byte $01 - .byte $52 - .byte $01 - .byte $56 - .byte $01 - .byte $60 - .byte $01 - .byte $70 - .byte $01 - .byte $77 - .byte $01 - .byte $83 - .byte $01 - .byte $8E - .byte $01 - .byte $9A - .byte $01 - .byte $A7 - .byte $01 - .byte $B6 - .byte $01 - .byte $BF - .byte $01 - .byte $CE - .byte $01 - .byte $DD - .byte $01 - .byte $E2 - .byte $01 - .byte $E7 - .byte $01 - .byte $F9 - .byte $01 - .byte $03 - .byte $02 - .byte $15 - .byte $02 - .byte $1F - .byte $02 - .byte $32 - .byte $02 - .byte $42 - .byte $02 - .byte $52 - .byte $02 - .byte $5E - .byte $02 - .byte $6C - .byte $02 - .byte $79 - .byte $02 - .byte $85 - .byte $02 - .byte $91 - .byte $02 - .byte $A1 - .byte $02 - .byte $A9 - .byte $02 - .byte $B2 - .byte $02 - .byte $BF - .byte $02 - .byte $C5 - .byte $02 - .byte $D5 - .byte $02 - .byte $E5 - .byte $02 - .byte $F4 - .byte $02 - .byte $00 - .byte $03 - .byte $10 - .byte $03 - .byte $1F - .byte $03 - .byte $2D - .byte $03 - .byte $35 - .byte $03 - .byte $44 - .byte $03 - .byte $53 - .byte $03 - .byte $63 - .byte $03 - .byte $71 - .byte $03 - .byte $7B - .byte $03 - .byte $85 - .byte $03 - .byte $91 - .byte $03 - .byte $97 - .byte $03 - .byte $A3 - .byte $03 - .byte $B6 - .byte $03 - .byte $BF - .byte $03 - .byte $C3 - .byte $03 - .byte $CF - .byte $03 - .byte $DC - .byte $03 - .byte $E4 - .byte $03 - .byte $F3 - .byte $03 - .byte $00 - .byte $04 - .byte $0A - .byte $04 - .byte $19 - .byte $04 - .byte $25 - .byte $04 - .byte $2A - .byte $04 - .byte $32 - .byte $04 - .byte $3C - .byte $04 - .byte $43 - .byte $04 - .byte $50 - .byte $04 - .byte $5A - .byte $04 - .byte $66 - .byte $04 - .byte $72 - .byte $04 - .byte $7E - .byte $04 - .byte $87 - .byte $04 - .byte $94 - .byte $04 - .byte $9C - .byte $04 - .byte $A8 - .byte $04 - .byte $B4 - .byte $04 - .byte $C1 - .byte $04 - .byte $CC - .byte $04 - .byte $DB - .byte $04 - .byte $E6 - .byte $04 - .byte $EE - .byte $04 - .byte $F3 - .byte $04 - .byte $FB - .byte $04 - .byte $04 - .byte $05 - .byte $1A - .byte $05 - .byte $1F - .byte $05 - .byte $24 - .byte $05 - .byte $29 - .byte $05 - .byte $22 - .byte $01 - .byte $00 - .byte $00 - .byte $00 - .byte $00 - .byte $09 - .byte $89 - .byte $92 - .byte $92 - .byte $00 - .byte $36 - .byte $36 - .byte $16 - .byte $0E - .byte $00 - .byte $0D - .byte $FE - .byte $6E - .byte $96 - .byte $52 - .byte $00 - .byte $69 - .byte $FE - .byte $17 - .byte $2D - .byte $2D - .byte $1E - .byte $1F - .byte $17 - .byte $2D - .byte $2D - .byte $1E - .byte $1F - .byte $6E - .byte $4E - .byte $00 - .byte $09 - .byte $8D - .byte $3F - .byte $BF - .byte $0D - .byte $15 - .byte $3F - .byte $0E - .byte $0D - .byte $1E - .byte $3F - .byte $77 - .byte $71 - .byte $09 - .byte $00 - .byte $6D - .byte $11 - .byte $DF - .byte $77 - .byte $09 - .byte $1E - .byte $17 - .byte $4D - .byte $3A - .byte $DF - .byte $4E - .byte $29 - .byte $0E - .byte $00 - .byte $A9 - .byte $1F - .byte $6E - .byte $1E - .byte $17 - .byte $0D - .byte $0D - .byte $1E - .byte $DF - .byte $0E - .byte $6D - .byte $0E - .byte $00 - .byte $36 - .byte $96 - .byte $52 - .byte $00 - .byte $09 - .byte $1E - .byte $17 - .byte $36 - .byte $15 - .byte $0E - .byte $0E - .byte $00 - .byte $15 - .byte $0E - .byte $36 - .byte $1E - .byte $17 - .byte $4E - .byte $01 - .byte $00 - .byte $09 - .byte $8D - .byte $1F - .byte $1F - .byte $0E - .byte $2D - .byte $1E - .byte $17 - .byte $2D - .byte $15 - .byte $1F - .byte $1F - .byte $4E - .byte $4E - .byte $01 - .byte $00 - .byte $89 - .byte $6E - .byte $3A - .byte $3F - .byte $77 - .byte $31 - .byte $56 - .byte $09 - .byte $00 - .byte $92 - .byte $8A - .byte $F6 - .byte $0D - .byte $00 - .byte $52 - .byte $89 - .byte $3F - .byte $B7 - .byte $52 - .byte $49 - .byte $00 - .byte $92 - .byte $92 - .byte $0E - .byte $00 - .byte $49 - .byte $11 - .byte $17 - .byte $1E - .byte $17 - .byte $1E - .byte $56 - .byte $49 - .byte $01 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $35 - .byte $1F - .byte $1F - .byte $2E - .byte $4D - .byte $FE - .byte $1B - .byte $0E - .byte $2D - .byte $4E - .byte $00 - .byte $31 - .byte $77 - .byte $36 - .byte $BE - .byte $2D - .byte $0E - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $73 - .byte $49 - .byte $1E - .byte $BF - .byte $1E - .byte $2E - .byte $2D - .byte $75 - .byte $00 - .byte $2D - .byte $2D - .byte $BE - .byte $3E - .byte $4E - .byte $FE - .byte $1B - .byte $0E - .byte $2D - .byte $4E - .byte $00 - .byte $49 - .byte $3E - .byte $17 - .byte $0D - .byte $FE - .byte $33 - .byte $2D - .byte $2D - .byte $1E - .byte $76 - .byte $01 - .byte $00 - .byte $2D - .byte $2D - .byte $DE - .byte $1B - .byte $2E - .byte $2D - .byte $15 - .byte $36 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $09 - .byte $2D - .byte $DE - .byte $BB - .byte $4D - .byte $3A - .byte $3F - .byte $6E - .byte $09 - .byte $FE - .byte $1B - .byte $0E - .byte $2D - .byte $4E - .byte $00 - .byte $2D - .byte $2D - .byte $BE - .byte $1E - .byte $17 - .byte $36 - .byte $4E - .byte $09 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $3F - .byte $17 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $3F - .byte $77 - .byte $09 - .byte $1E - .byte $DF - .byte $2A - .byte $75 - .byte $09 - .byte $00 - .byte $12 - .byte $16 - .byte $96 - .byte $01 - .byte $00 - .byte $52 - .byte $B2 - .byte $F6 - .byte $0D - .byte $00 - .byte $49 - .byte $3E - .byte $17 - .byte $2D - .byte $2D - .byte $35 - .byte $3F - .byte $3F - .byte $3F - .byte $0E - .byte $2D - .byte $2D - .byte $F5 - .byte $1B - .byte $77 - .byte $4E - .byte $09 - .byte $00 - .byte $12 - .byte $2D - .byte $2D - .byte $DE - .byte $9B - .byte $2D - .byte $2D - .byte $96 - .byte $01 - .byte $00 - .byte $49 - .byte $15 - .byte $FF - .byte $13 - .byte $2D - .byte $2D - .byte $AD - .byte $3F - .byte $3F - .byte $3F - .byte $2E - .byte $2D - .byte $2D - .byte $1E - .byte $37 - .byte $4E - .byte $09 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $73 - .byte $09 - .byte $1E - .byte $B6 - .byte $4E - .byte $01 - .byte $00 - .byte $09 - .byte $2D - .byte $3E - .byte $37 - .byte $2D - .byte $3E - .byte $FF - .byte $2A - .byte $2D - .byte $2D - .byte $F5 - .byte $3F - .byte $3F - .byte $0E - .byte $2D - .byte $1E - .byte $4D - .byte $01 - .byte $00 - .byte $09 - .byte $15 - .byte $1F - .byte $17 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $2D - .byte $2D - .byte $FE - .byte $1B - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $3F - .byte $37 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $2D - .byte $75 - .byte $01 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $36 - .byte $4D - .byte $11 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $2D - .byte $AD - .byte $DF - .byte $6E - .byte $31 - .byte $DF - .byte $6E - .byte $31 - .byte $DF - .byte $17 - .byte $2D - .byte $75 - .byte $01 - .byte $00 - .byte $2D - .byte $2D - .byte $DE - .byte $1B - .byte $6E - .byte $11 - .byte $3F - .byte $37 - .byte $36 - .byte $2D - .byte $2D - .byte $0E - .byte $00 - .byte $2D - .byte $2D - .byte $DE - .byte $1B - .byte $6E - .byte $11 - .byte $3F - .byte $37 - .byte $36 - .byte $4E - .byte $49 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $36 - .byte $4D - .byte $35 - .byte $DF - .byte $73 - .byte $2D - .byte $75 - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $3F - .byte $3F - .byte $6E - .byte $09 - .byte $FE - .byte $1B - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $2D - .byte $1E - .byte $36 - .byte $36 - .byte $17 - .byte $2D - .byte $0E - .byte $00 - .byte $49 - .byte $31 - .byte $36 - .byte $36 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $4D - .byte $F1 - .byte $DF - .byte $6E - .byte $1E - .byte $37 - .byte $0D - .byte $15 - .byte $DF - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $36 - .byte $36 - .byte $36 - .byte $2D - .byte $75 - .byte $00 - .byte $4D - .byte $31 - .byte $FF - .byte $37 - .byte $0D - .byte $0D - .byte $FE - .byte $1F - .byte $6E - .byte $09 - .byte $FE - .byte $1B - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $6D - .byte $31 - .byte $1F - .byte $1F - .byte $6E - .byte $29 - .byte $FE - .byte $1B - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $3F - .byte $37 - .byte $36 - .byte $4E - .byte $49 - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $0D - .byte $0D - .byte $1E - .byte $DF - .byte $0E - .byte $6D - .byte $0E - .byte $00 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $3F - .byte $37 - .byte $0D - .byte $15 - .byte $DF - .byte $6E - .byte $09 - .byte $0E - .byte $00 - .byte $29 - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $3A - .byte $77 - .byte $09 - .byte $FE - .byte $1B - .byte $0E - .byte $2D - .byte $4E - .byte $00 - .byte $2D - .byte $2D - .byte $DE - .byte $36 - .byte $36 - .byte $76 - .byte $09 - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $1F - .byte $0E - .byte $4E - .byte $01 - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $1F - .byte $1F - .byte $6E - .byte $0D - .byte $3E - .byte $1F - .byte $37 - .byte $4D - .byte $71 - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $0D - .byte $1E - .byte $17 - .byte $0D - .byte $15 - .byte $DF - .byte $33 - .byte $4D - .byte $71 - .byte $00 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $0D - .byte $1E - .byte $36 - .byte $76 - .byte $09 - .byte $00 - .byte $2D - .byte $2D - .byte $BE - .byte $1E - .byte $17 - .byte $1E - .byte $2E - .byte $2D - .byte $75 - .byte $00 - .byte $2D - .byte $2D - .byte $DE - .byte $3B - .byte $2E - .byte $3E - .byte $2E - .byte $3E - .byte $2E - .byte $2D - .byte $75 - .byte $00 - .byte $72 - .byte $15 - .byte $0E - .byte $15 - .byte $56 - .byte $00 - .byte $2D - .byte $2D - .byte $3E - .byte $2E - .byte $3E - .byte $2E - .byte $3E - .byte $DF - .byte $2A - .byte $2D - .byte $75 - .byte $00 - .byte $49 - .byte $15 - .byte $3F - .byte $17 - .byte $2D - .byte $2D - .byte $15 - .byte $3F - .byte $3F - .byte $3F - .byte $4E - .byte $2D - .byte $3E - .byte $37 - .byte $2D - .byte $3E - .byte $6F - .byte $49 - .byte $00 - .byte $92 - .byte $92 - .byte $49 - .byte $11 - .byte $3F - .byte $3F - .byte $4D - .byte $09 - .byte $00 - .byte $76 - .byte $96 - .byte $52 - .byte $00 - .byte $52 - .byte $2D - .byte $35 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $FF - .byte $73 - .byte $6D - .byte $0E - .byte $00 - .byte $36 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $2D - .byte $75 - .byte $01 - .byte $00 - .byte $52 - .byte $2D - .byte $DE - .byte $33 - .byte $76 - .byte $2D - .byte $0E - .byte $00 - .byte $49 - .byte $31 - .byte $DF - .byte $2A - .byte $2D - .byte $FE - .byte $1B - .byte $6E - .byte $09 - .byte $FE - .byte $1B - .byte $0E - .byte $2D - .byte $75 - .byte $00 - .byte $52 - .byte $2D - .byte $15 - .byte $DF - .byte $33 - .byte $2D - .byte $2D - .byte $DE - .byte $1B - .byte $0E - .byte $2D - .byte $75 - .byte $00 - .byte $09 - .byte $F5 - .byte $33 - .byte $8D - .byte $3F - .byte $77 - .byte $36 - .byte $4E - .byte $01 - .byte $00 - .byte $52 - .byte $2D - .byte $35 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $3F - .byte $77 - .byte $09 - .byte $1E - .byte $3F - .byte $4D - .byte $01 - .byte $00 - .byte $36 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $71 - .byte $00 - .byte $16 - .byte $36 - .byte $36 - .byte $0E - .byte $00 - .byte $09 - .byte $9E - .byte $35 - .byte $36 - .byte $F6 - .byte $6F - .byte $01 - .byte $00 - .byte $36 - .byte $4D - .byte $1E - .byte $1F - .byte $2E - .byte $15 - .byte $1F - .byte $6E - .byte $71 - .byte $00 - .byte $35 - .byte $36 - .byte $36 - .byte $17 - .byte $2D - .byte $0E - .byte $00 - .byte $12 - .byte $2D - .byte $AD - .byte $1F - .byte $1F - .byte $6E - .byte $0D - .byte $FE - .byte $1F - .byte $6E - .byte $0D - .byte $0E - .byte $00 - .byte $12 - .byte $2D - .byte $15 - .byte $DF - .byte $6E - .byte $31 - .byte $DF - .byte $6E - .byte $71 - .byte $00 - .byte $52 - .byte $2D - .byte $15 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $DF - .byte $73 - .byte $2D - .byte $4E - .byte $00 - .byte $12 - .byte $2D - .byte $AD - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $3F - .byte $37 - .byte $6E - .byte $49 - .byte $00 - .byte $52 - .byte $2D - .byte $35 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $3F - .byte $77 - .byte $09 - .byte $2E - .byte $00 - .byte $12 - .byte $0D - .byte $AD - .byte $DF - .byte $37 - .byte $36 - .byte $4E - .byte $49 - .byte $00 - .byte $52 - .byte $2D - .byte $F5 - .byte $DB - .byte $0E - .byte $2D - .byte $15 - .byte $DF - .byte $13 - .byte $2D - .byte $75 - .byte $01 - .byte $00 - .byte $31 - .byte $17 - .byte $2D - .byte $F5 - .byte $33 - .byte $76 - .byte $75 - .byte $00 - .byte $12 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $FF - .byte $73 - .byte $6D - .byte $0E - .byte $00 - .byte $12 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $F1 - .byte $1F - .byte $0E - .byte $4E - .byte $01 - .byte $00 - .byte $12 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $0D - .byte $0D - .byte $FE - .byte $1F - .byte $0E - .byte $0D - .byte $4E - .byte $00 - .byte $12 - .byte $4D - .byte $F1 - .byte $1F - .byte $0E - .byte $15 - .byte $1F - .byte $17 - .byte $4D - .byte $71 - .byte $00 - .byte $12 - .byte $4D - .byte $31 - .byte $DF - .byte $33 - .byte $4D - .byte $31 - .byte $3F - .byte $77 - .byte $09 - .byte $1E - .byte $3F - .byte $4D - .byte $01 - .byte $00 - .byte $12 - .byte $2D - .byte $2D - .byte $1E - .byte $17 - .byte $1E - .byte $17 - .byte $2D - .byte $2D - .byte $0E - .byte $00 - .byte $09 - .byte $F5 - .byte $33 - .byte $1E - .byte $0E - .byte $76 - .byte $75 - .byte $00 - .byte $36 - .byte $36 - .byte $36 - .byte $2E - .byte $00 - .byte $AD - .byte $AE - .byte $17 - .byte $FE - .byte $2A - .byte $4E - .byte $01 - .byte $00 - .byte $69 - .byte $11 - .byte $1F - .byte $1F - .byte $4E - .byte $B1 - .byte $92 - .byte $09 - .byte $00 - .byte $2D - .byte $2D - .byte $35 - .byte $3F - .byte $3F - .byte $37 - .byte $2D - .byte $2D - .byte $35 - .byte $3F - .byte $3F - .byte $37 - .byte $2D - .byte $2D - .byte $35 - .byte $3F - .byte $3F - .byte $37 - .byte $2D - .byte $2D - .byte $75 - .byte $00 - .byte $40 - .byte $C0 - .byte $40 - .byte $18 - .byte $00 - .byte $40 - .byte $C0 - .byte $40 - .byte $43 - .byte $00 - .byte $40 - .byte $C0 - .byte $40 - .byte $08 - .byte $00 - .byte $19 - .byte $00 - .byte $00 - -; -; DATA SEGMENT -; -.segment "DATA" -DATA: - -; -; BSS SEGMENT -; -.segment "BSS" -BSS: - .res 8 - -; -; ZEROPAGE SEGMENT -; -.import __ZP_START__ ; Linker generated symbol -ZEROPAGE = __ZP_START__ - -.end diff --git a/a2sudoku/easy.puzzles b/a2sudoku/easy.puzzles deleted file mode 100644 index 51cd974..0000000 --- a/a2sudoku/easy.puzzles +++ /dev/null @@ -1 +0,0 @@ -™                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     \ No newline at end of file diff --git a/a2sudoku/generateSudoku.pl b/a2sudoku/generateSudoku.pl index 03df081..4a27791 100755 --- a/a2sudoku/generateSudoku.pl +++ b/a2sudoku/generateSudoku.pl @@ -124,17 +124,17 @@ while (<>) { } } -open(FILE, ">easy.puzzles") || die "Unable to open easy.puzzles"; +open(FILE, ">tocopy/easy.puzzles.bin") || die "Unable to open easy.puzzles.bin"; print FILE pack("v", $#easy + 1); print FILE join("", @easy); close (FILE); -open(FILE, ">medium.puzzles") || die "Unable to open medium.puzzles"; +open(FILE, ">tocopy/medium.puzzles.bin") || die "Unable to open medium.puzzles.bin"; print FILE pack("v", $#medium + 1); print FILE join("", @medium); close (FILE); -open(FILE, ">hard.puzzles") || die "Unable to open hard.puzzles"; +open(FILE, ">tocopy/hard.puzzles.bin") || die "Unable to open hard.puzzles.bin"; print FILE pack("v", $#hard + 1); print FILE join("", @hard); close (FILE); diff --git a/a2sudoku/hard.puzzles b/a2sudoku/hard.puzzles deleted file mode 100644 index b69b30c..0000000 --- a/a2sudoku/hard.puzzles +++ /dev/null @@ -1 +0,0 @@ -(                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            \ No newline at end of file diff --git a/a2sudoku/make/AppleCommander.jar b/a2sudoku/make/AppleCommander.jar index f74e7cb..4d61bfc 100644 Binary files a/a2sudoku/make/AppleCommander.jar and b/a2sudoku/make/AppleCommander.jar differ diff --git a/a2sudoku/make/DevApple.vii b/a2sudoku/make/DevApple.vii index aee5f34..5432bb5 100644 Binary files a/a2sudoku/make/DevApple.vii and b/a2sudoku/make/DevApple.vii differ diff --git a/a2sudoku/make/V2Make.scpt b/a2sudoku/make/V2Make.scpt index bf6e81a..fa92ce3 100644 Binary files a/a2sudoku/make/V2Make.scpt and b/a2sudoku/make/V2Make.scpt differ diff --git a/a2sudoku/make/createDiskImage b/a2sudoku/make/createDiskImage index b9ad843..25e1c47 100755 --- a/a2sudoku/make/createDiskImage +++ b/a2sudoku/make/createDiskImage @@ -29,10 +29,19 @@ then fi APPLECOMMANDER=$1 -MACHINE=$2 -DISKIMAGE=$3 -PROGRAM=$4 -STARTADDR=`echo $5 | sed 's/^0*//'` +shift + +MACHINE=$1 +shift + +DISKIMAGE=$1 +shift + +PROGRAM=$1 +shift + +STARTADDR=`echo $1 | sed 's/^0*//'` +shift if [ ! -f "$PROGRAM" ] then @@ -148,7 +157,7 @@ case "$MACHINE" in HASHEADER=1 FILETYPE="bin" TARGETFILE=`basename $PROGRAM` - MAXFILENAMELEN=8 + MAXFILENAMELEN=15 ;; *) @@ -185,7 +194,7 @@ then rm -f "$DISKIMAGE" exit 1 fi - "$JAVA" -jar "$APPLECOMMANDER" -e "$DISKIMAGE" LOADER.SYSTEM | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$LOADERFILE" sys + "$JAVA" -jar "$APPLECOMMANDER" -g "$DISKIMAGE" LOADER.SYSTEM | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$LOADERFILE" sys "$JAVA" -jar "$APPLECOMMANDER" -d "$DISKIMAGE" LOADER.SYSTEM fi @@ -207,6 +216,53 @@ else "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE < "$PROGRAM" fi -"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "easy.puzzles" "bin" < "easy.puzzles" -"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "hard.puzzles" "bin" < "hard.puzzles" -"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "medium.puzzles" "bin" < "medium.puzzles" +for DIR in $* +do + if [ ! -d "$DIR" ] + then + echo Unable to find directory $DIR + exit 1 + fi + + OLDPWD=`pwd` + cd $DIR + + find . -type f -print | while read FILE + do + TRANSFERARG=-p + FILETYPE=bin + DESTFILE=`echo $FILE | sed 's/^\.\///'` + + if echo $FILE | egrep '\.as$' > /dev/null + then + # If the file ends with .as, this means the input is AppleSingle format. + # Strip the .as from the end of the file name and set the args to do + # an AppleSingle transfer. + TRANSFERARG=-as + FILETYPE="" + DESTFILE=`echo $DESTFILE | sed 's/\.as$//'` + elif echo $FILE | egrep '\.[ABITSRab]$' > /dev/null + then + # If the file ends with a single character DOS 3.3 file type, then use + # that as the file type. + FILETYPE=`echo $DESTFILE | awk -F. '{print $NF}'` + DESTFILE=`echo $DESTFILE | sed 's/\.[ABITSRab]$//'` + elif echo $FILE | egrep '\.[a-zA-Z][a-zA-Z][a-zA-Z]$' > /dev/null + then + # If the file ends with a three letter extension, use that as + # the file type. + FILETYPE=`echo $DESTFILE | awk -F. '{print $NF}'` + DESTFILE=`echo $DESTFILE | sed 's/\.[a-zA-Z][a-zA-Z][a-zA-Z]$//'` + fi + + # If the file type is text, convert the line feeds to carriage return + if [ $FILETYPE = txt ] || [ $FILETYPE = T ] + then + tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE + else + "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE + fi + done + + cd "$OLDPWD" +done diff --git a/a2sudoku/make/head.mk b/a2sudoku/make/head.mk index 0710ce8..0f3205f 100644 --- a/a2sudoku/make/head.mk +++ b/a2sudoku/make/head.mk @@ -17,14 +17,32 @@ CC65_BIN = /usr/local/bin CL65=$(CC65_BIN)/cl65 CA65=$(CC65_BIN)/ca65 CC65=$(CC65_BIN)/cc65 +CO65=$(CC65_BIN)/co65 AC=make/AppleCommander.jar -C_SRCS=$(wildcard *.c) -ASM_SRCS=$(wildcard *.s) +SRCDIRS=. MACHINE=apple2 CPU=6502 CFLAGS= ASMFLAGS= LDFLAGS= +DRIVERS= +DRVDIR=drivers + +XCODE_PATH=/Applications/Xcode.app +XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist + +CC65_PLUGIN_PATH=$(HOME)/Library/Developer/Xcode/Plug-ins/cc65.ideplugin +CC65_PLUGIN_INFO=$(CC65_PLUGIN_PATH)/Contents/Info.plist + +XCODE_PLUGIN_COMPATIBILITY=DVTPlugInCompatibilityUUID + + +.PHONY: all gen genclean + +all: + @make gen + @make build + diff --git a/a2sudoku/make/prodos_template.dsk b/a2sudoku/make/prodos_template.dsk index 7973ad7..c7b2a75 100644 Binary files a/a2sudoku/make/prodos_template.dsk and b/a2sudoku/make/prodos_template.dsk differ diff --git a/a2sudoku/make/tail.mk b/a2sudoku/make/tail.mk index 8c246d2..6463582 100644 --- a/a2sudoku/make/tail.mk +++ b/a2sudoku/make/tail.mk @@ -14,10 +14,18 @@ export PATH := $(PATH):$(CC65_BIN) CWD=$(shell pwd) +ifneq ($(DRIVERS),) + SRCDIRS+=$(DRVDIR) +endif + +C_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS)))) C_OBJS=$(C_SRCS:.c=.o) C_DEPS=$(C_SRCS:.c=.u) + +ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))) ASM_OBJS=$(ASM_SRCS:.s=.o) ASM_LSTS=$(ASM_SRCS:.s=.lst) + OBJS=$(C_OBJS) $(ASM_OBJS) MAPFILE=$(PGM).map @@ -28,10 +36,6 @@ LINK_ARGS= EXECCMD= ALLTARGET=$(DISKIMAGE) -UNAME_S := $(shell uname -s) -ifeq ($(UNAME_S),Darwin) - ALLTARGET=execute -endif ifneq ($(START_ADDR),) # If the MACHINE is set to an option which does not support a variable start @@ -57,6 +61,13 @@ ifneq ($(filter $(MACHINE), apple2 apple2enh apple2-dos33 apple2enh-dos33),) EXECCMD=$(shell echo brun $(PGM) | tr '[a-z]' '[A-Z]') endif +# By default, use the a2 drivers. If the machine is one of the enhanced +# targets though, use the a2e drivers. +DRV_BASE_MACHINE=a2 +ifneq ($(filter $(MACHINE), apple2enh apple2enh-dos33 apple2enh-system apple2enh-loader apple2enh-reboot),) + DRV_BASE_MACHINE=a2e +endif + MACHCONFIG= -t apple2 ifneq ($(filter $(MACHINE), apple2enh apple2apple2enh-dos33 apple2enh-system apple2enh-loader apple2enh-reboot),) @@ -67,32 +78,30 @@ ifeq ($(filter $(MACHINE), apple2 apple2enh),) MACHCONFIG += -C $(MACHINE).cfg endif -.PHONY: all execute clean +.PHONY: build execute clean xcodefix loresgr hiresgr auxmem joystick mouse serial -all: $(ALLTARGET) +build: $(ALLTARGET) -clean: - rm -f $(PGM) +clean: genclean + rm -f "$(PGM)" rm -f $(OBJS) rm -f $(C_DEPS) rm -f $(MAPFILE) rm -f $(ASM_LSTS) - rm -f $(DISKIMAGE) - -createPackage: - pkg/createPackage + rm -f "$(DISKIMAGE)" + rm -Rf "$(DRVDIR)" cleanMacCruft: rm -rf pkg $(PGM): $(OBJS) - $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o $(PGM) $(OBJS) + $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS) $(DISKIMAGE): $(PGM) - make/createDiskImage $(AC) $(MACHINE) $(DISKIMAGE) $(PGM) "$(START_ADDR)" + make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS) execute: $(DISKIMAGE) - osascript make/V2Make.scpt $(CWD) $(PGM) $(CWD)/make/DevApple.vii "$(EXECCMD)" + osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)" %.o: %.c $(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $< @@ -102,4 +111,92 @@ execute: $(DISKIMAGE) %.o: %.s $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) -l -c -o $@ $< +$(OBJS): Makefile + + +# Some gen phase stuff... +gen: xcodefix $(DRIVERS) + +xcodefix: + defaults write "$(CC65_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)` + + +# Lores driver codegen +loresgr: $(DRVDIR)/a2_lores_drv.s $(DRVDIR)/a2_lores_drv.h + +$(DRVDIR)/a2_lores_drv.s: $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).lo.tgi + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_lores_drv -o $@ $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).lo.tgi + +$(DRVDIR)/a2_lores_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_lores_drv;' >> $@ + + +# Hires driver codegen +hiresgr: $(DRVDIR)/a2_hires_drv.s $(DRVDIR)/a2_hires_drv.h + +$(DRVDIR)/a2_hires_drv.s: $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).hi.tgi + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_hires_drv -o $@ $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).hi.tgi + +$(DRVDIR)/a2_hires_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_hires_drv;' >> $@ + + +# Auxmem driver codegen +auxmem: $(DRVDIR)/a2_auxmem_drv.s $(DRVDIR)/a2_auxmem_drv.h + +$(DRVDIR)/a2_auxmem_drv.s: $(CC65_HOME)/emd/$(DRV_BASE_MACHINE).auxmem.emd + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_auxmem_drv -o $@ $(CC65_HOME)/emd/$(DRV_BASE_MACHINE).auxmem.emd + +$(DRVDIR)/a2_auxmem_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_auxmem_drv;' >> $@ + + +# Joystick driver codegen +joystick: $(DRVDIR)/a2_joystick_drv.s $(DRVDIR)/a2_joystick_drv.h + +$(DRVDIR)/a2_joystick_drv.s: $(CC65_HOME)/joy/$(DRV_BASE_MACHINE).stdjoy.joy + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_joystick_drv -o $@ $(CC65_HOME)/joy/$(DRV_BASE_MACHINE).stdjoy.joy + +$(DRVDIR)/a2_joystick_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_joystick_drv;' >> $@ + + +# Mouse driver codegen +mouse: $(DRVDIR)/a2_mouse_drv.s $(DRVDIR)/a2_mouse_drv.h + +$(DRVDIR)/a2_mouse_drv.s: $(CC65_HOME)/mou/$(DRV_BASE_MACHINE).stdmou.mou + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_mouse_drv -o $@ $(CC65_HOME)/mou/$(DRV_BASE_MACHINE).stdmou.mou + +$(DRVDIR)/a2_mouse_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_mouse_drv;' >> $@ + + +# Serial driver codegen +serial: $(DRVDIR)/a2_serial_drv.s $(DRVDIR)/a2_serial_drv.h + +$(DRVDIR)/a2_serial_drv.s: $(CC65_HOME)/ser/$(DRV_BASE_MACHINE).ssc.ser + mkdir -p $(DRVDIR) + $(CO65) --code-label _a2_serial_drv -o $@ $(CC65_HOME)/ser/$(DRV_BASE_MACHINE).ssc.ser + +$(DRVDIR)/a2_serial_drv.h: + mkdir -p $(DRVDIR) + echo '#include ' > $@ + echo 'extern char a2_serial_drv;' >> $@ + + -include $(C_DEPS) diff --git a/a2sudoku/medium.puzzles b/a2sudoku/medium.puzzles deleted file mode 100644 index 8a02f43..0000000 --- a/a2sudoku/medium.puzzles +++ /dev/null @@ -1 +0,0 @@ -'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               \ No newline at end of file diff --git a/a2sudoku/puzzles.c b/a2sudoku/puzzles.c index f00d22a..a2b0931 100644 --- a/a2sudoku/puzzles.c +++ b/a2sudoku/puzzles.c @@ -143,4 +143,4 @@ tPuzzle *loadPuzzle(FILE *saveFile) return NULL; return &thePuzzle; -} \ No newline at end of file +} diff --git a/a2sudoku/ui.c b/a2sudoku/ui.c index abb8b21..4fcc953 100644 --- a/a2sudoku/ui.c +++ b/a2sudoku/ui.c @@ -16,10 +16,7 @@ #include "game.h" #include "ui.h" - - -// Extern symbols for graphics drivers -extern char a2e_hi; +#include "drivers/a2_hires_drv.h" // Macros and defines @@ -129,7 +126,7 @@ void initUI(void) return; // Install drivers - tgi_install(&a2e_hi); + tgi_install(&a2_hires_drv); tgi_init(); @@ -784,4 +781,4 @@ bool playGame(void) } return false; -} \ No newline at end of file +}