Compare commits

...

5 Commits

16 changed files with 761 additions and 279 deletions

View File

@ -7,133 +7,149 @@
objects = {
/* Begin PBXBuildFile section */
9D24616C20D8B2AE00227E1D /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9D24616B20D8B2AE00227E1D /* Makefile */; };
9D24616F20D8B2AE00227E1D /* AppleCommander.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9D24616E20D8B2AE00227E1D /* AppleCommander.jar */; };
9D24617120D8B2AE00227E1D /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617020D8B2AE00227E1D /* createDiskImage */; };
9D24617320D8B2AE00227E1D /* DevApple.vii in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617220D8B2AE00227E1D /* DevApple.vii */; };
9D24617520D8B2AE00227E1D /* dos33_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617420D8B2AE00227E1D /* dos33_template.dsk */; };
9D24617720D8B2AE00227E1D /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617620D8B2AE00227E1D /* head.mk */; };
9D24617920D8B2AE00227E1D /* prodos_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617820D8B2AE00227E1D /* prodos_template.dsk */; };
9D24617B20D8B2AE00227E1D /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617A20D8B2AE00227E1D /* tail.mk */; };
9D24617D20D8B2AE00227E1D /* V2Make.scpt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617C20D8B2AE00227E1D /* V2Make.scpt */; };
9D24618020D8B2AE00227E1D /* CurtaSim.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9D24617F20D8B2AE00227E1D /* CurtaSim.xcscheme */; };
9D24619220D8B30C00227E1D /* curtaModel.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D24618B20D8B30B00227E1D /* curtaModel.c */; };
9D24619320D8B30C00227E1D /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D24618E20D8B30C00227E1D /* joystick.c */; };
9D24619420D8B30C00227E1D /* curta.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D24618F20D8B30C00227E1D /* curta.c */; };
9D24619520D8B30C00227E1D /* curtaUI.c in Sources */ = {isa = PBXBuildFile; fileRef = 9D24619120D8B30C00227E1D /* curtaUI.c */; };
9DAEA04822FE69490067692F /* Makefile in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEA04722FE69490067692F /* Makefile */; };
9DAEA04B22FE69490067692F /* AppleCommander.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DAEA04A22FE69490067692F /* AppleCommander.jar */; };
9DAEA04D22FE69490067692F /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */ = {isa = PBXBuildFile; fileRef = 9DAEA04C22FE69490067692F /* bastokenizer-tools-bt-0.2.0.jar */; };
9DAEA04F22FE69490067692F /* createDiskImage in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA04E22FE69490067692F /* createDiskImage */; };
9DAEA05122FE69490067692F /* bt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05022FE69490067692F /* bt */; };
9DAEA05322FE69490067692F /* DevApple.vii in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05222FE69490067692F /* DevApple.vii */; };
9DAEA05522FE69490067692F /* dos33_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05422FE69490067692F /* dos33_template.dsk */; };
9DAEA05722FE69490067692F /* errorFilter.sh in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05622FE69490067692F /* errorFilter.sh */; };
9DAEA05922FE69490067692F /* head.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05822FE69490067692F /* head.mk */; };
9DAEA05B22FE69490067692F /* prodos_template.dsk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05A22FE69490067692F /* prodos_template.dsk */; };
9DAEA05D22FE69490067692F /* tail.mk in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05C22FE69490067692F /* tail.mk */; };
9DAEA05F22FE69490067692F /* V2Make.scpt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA05E22FE69490067692F /* V2Make.scpt */; };
9DAEA06222FE69490067692F /* CurtaSim.xcscheme in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9DAEA06122FE69490067692F /* CurtaSim.xcscheme */; };
9DAEA07B22FE696C0067692F /* curtaModel.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEA07422FE696C0067692F /* curtaModel.c */; };
9DAEA07C22FE696C0067692F /* curta.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEA07622FE696C0067692F /* curta.c */; };
9DAEA07D22FE696C0067692F /* curtaUI.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEA07822FE696C0067692F /* curtaUI.c */; };
9DAEA07E22FE696C0067692F /* joystick.c in Sources */ = {isa = PBXBuildFile; fileRef = 9DAEA07A22FE696C0067692F /* joystick.c */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
9D24616420D8B2AE00227E1D /* CopyFiles */ = {
9DAEA04122FE69490067692F /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
9D24617120D8B2AE00227E1D /* createDiskImage in CopyFiles */,
9D24617320D8B2AE00227E1D /* DevApple.vii in CopyFiles */,
9D24617520D8B2AE00227E1D /* dos33_template.dsk in CopyFiles */,
9D24617B20D8B2AE00227E1D /* tail.mk in CopyFiles */,
9D24617D20D8B2AE00227E1D /* V2Make.scpt in CopyFiles */,
9D24617920D8B2AE00227E1D /* prodos_template.dsk in CopyFiles */,
9D24617720D8B2AE00227E1D /* head.mk in CopyFiles */,
9D24618020D8B2AE00227E1D /* CurtaSim.xcscheme in CopyFiles */,
9DAEA05B22FE69490067692F /* prodos_template.dsk in CopyFiles */,
9DAEA05122FE69490067692F /* bt in CopyFiles */,
9DAEA05522FE69490067692F /* dos33_template.dsk in CopyFiles */,
9DAEA04F22FE69490067692F /* createDiskImage in CopyFiles */,
9DAEA05F22FE69490067692F /* V2Make.scpt in CopyFiles */,
9DAEA05922FE69490067692F /* head.mk in CopyFiles */,
9DAEA05322FE69490067692F /* DevApple.vii in CopyFiles */,
9DAEA06222FE69490067692F /* CurtaSim.xcscheme in CopyFiles */,
9DAEA05722FE69490067692F /* errorFilter.sh in CopyFiles */,
9DAEA05D22FE69490067692F /* tail.mk in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 1;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
9D24616620D8B2AE00227E1D /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; };
9D24616B20D8B2AE00227E1D /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
9D24616E20D8B2AE00227E1D /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = "<group>"; };
9D24617020D8B2AE00227E1D /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = "<group>"; };
9D24617220D8B2AE00227E1D /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = "<group>"; };
9D24617420D8B2AE00227E1D /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = "<group>"; };
9D24617620D8B2AE00227E1D /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = "<group>"; };
9D24617820D8B2AE00227E1D /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = "<group>"; };
9D24617A20D8B2AE00227E1D /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = "<group>"; };
9D24617C20D8B2AE00227E1D /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = "<group>"; };
9D24617F20D8B2AE00227E1D /* CurtaSim.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = CurtaSim.xcscheme; path = CurtaSim.xcodeproj/xcshareddata/xcschemes/CurtaSim.xcscheme; sourceTree = SOURCE_ROOT; };
9D24618920D8B2C000227E1D /* curta.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = curta.png; sourceTree = "<group>"; };
9D24618A20D8B2C000227E1D /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
9D24618B20D8B30B00227E1D /* curtaModel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curtaModel.c; sourceTree = "<group>"; };
9D24618C20D8B30B00227E1D /* curtaUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curtaUI.h; sourceTree = "<group>"; };
9D24618D20D8B30B00227E1D /* curtaModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curtaModel.h; sourceTree = "<group>"; };
9D24618E20D8B30C00227E1D /* joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = joystick.c; sourceTree = "<group>"; };
9D24618F20D8B30C00227E1D /* curta.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curta.c; sourceTree = "<group>"; };
9D24619020D8B30C00227E1D /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = joystick.h; sourceTree = "<group>"; };
9D24619120D8B30C00227E1D /* curtaUI.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curtaUI.c; sourceTree = "<group>"; };
9D65A1BF20DCA472004268B7 /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
9DAEA03B22FE69490067692F /* CurtaSim */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CurtaSim; sourceTree = BUILT_PRODUCTS_DIR; };
9DAEA03E22FE69490067692F /* CurtaSim.dsk */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CurtaSim.dsk; sourceTree = BUILT_PRODUCTS_DIR; };
9DAEA04322FE69490067692F /* doNotBuild */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = doNotBuild; sourceTree = BUILT_PRODUCTS_DIR; };
9DAEA04722FE69490067692F /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
9DAEA04A22FE69490067692F /* AppleCommander.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = AppleCommander.jar; path = make/AppleCommander.jar; sourceTree = "<group>"; };
9DAEA04C22FE69490067692F /* bastokenizer-tools-bt-0.2.0.jar */ = {isa = PBXFileReference; lastKnownFileType = archive.jar; name = "bastokenizer-tools-bt-0.2.0.jar"; path = "make/bastokenizer-tools-bt-0.2.0.jar"; sourceTree = "<group>"; };
9DAEA04E22FE69490067692F /* createDiskImage */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = createDiskImage; path = make/createDiskImage; sourceTree = "<group>"; };
9DAEA05022FE69490067692F /* bt */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = bt; path = make/bt; sourceTree = "<group>"; };
9DAEA05222FE69490067692F /* DevApple.vii */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; name = DevApple.vii; path = make/DevApple.vii; sourceTree = "<group>"; };
9DAEA05422FE69490067692F /* dos33_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = dos33_template.dsk; path = make/dos33_template.dsk; sourceTree = "<group>"; };
9DAEA05622FE69490067692F /* errorFilter.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = errorFilter.sh; path = make/errorFilter.sh; sourceTree = "<group>"; };
9DAEA05822FE69490067692F /* head.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = head.mk; path = make/head.mk; sourceTree = "<group>"; };
9DAEA05A22FE69490067692F /* prodos_template.dsk */ = {isa = PBXFileReference; lastKnownFileType = file; name = prodos_template.dsk; path = make/prodos_template.dsk; sourceTree = "<group>"; };
9DAEA05C22FE69490067692F /* tail.mk */ = {isa = PBXFileReference; lastKnownFileType = text; name = tail.mk; path = make/tail.mk; sourceTree = "<group>"; };
9DAEA05E22FE69490067692F /* V2Make.scpt */ = {isa = PBXFileReference; lastKnownFileType = file; name = V2Make.scpt; path = make/V2Make.scpt; sourceTree = "<group>"; };
9DAEA06122FE69490067692F /* CurtaSim.xcscheme */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = CurtaSim.xcscheme; path = CurtaSim.xcodeproj/xcshareddata/xcschemes/CurtaSim.xcscheme; sourceTree = SOURCE_ROOT; };
9DAEA07122FE695D0067692F /* curta.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = curta.png; sourceTree = "<group>"; };
9DAEA07222FE695D0067692F /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
9DAEA07322FE695E0067692F /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
9DAEA07422FE696C0067692F /* curtaModel.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curtaModel.c; sourceTree = "<group>"; };
9DAEA07522FE696C0067692F /* curtaUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curtaUI.h; sourceTree = "<group>"; };
9DAEA07622FE696C0067692F /* curta.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curta.c; sourceTree = "<group>"; };
9DAEA07722FE696C0067692F /* joystick.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = joystick.h; sourceTree = "<group>"; };
9DAEA07822FE696C0067692F /* curtaUI.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = curtaUI.c; sourceTree = "<group>"; };
9DAEA07922FE696C0067692F /* curtaModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = curtaModel.h; sourceTree = "<group>"; };
9DAEA07A22FE696C0067692F /* joystick.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = joystick.c; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
9D24616320D8B2AE00227E1D /* Frameworks */ = {
9DAEA04022FE69490067692F /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9D24616F20D8B2AE00227E1D /* AppleCommander.jar in Frameworks */,
9DAEA04B22FE69490067692F /* AppleCommander.jar in Frameworks */,
9DAEA04D22FE69490067692F /* bastokenizer-tools-bt-0.2.0.jar in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
9D24615C20D8B2AE00227E1D = {
9DAEA03422FE69490067692F = {
isa = PBXGroup;
children = (
9D24618920D8B2C000227E1D /* curta.png */,
9D24618A20D8B2C000227E1D /* README.md */,
9D65A1BF20DCA472004268B7 /* LICENSE */,
9D24616820D8B2AE00227E1D /* CurtaSim */,
9D24616720D8B2AE00227E1D /* Products */,
9DAEA07122FE695D0067692F /* curta.png */,
9DAEA07322FE695E0067692F /* LICENSE */,
9DAEA07222FE695D0067692F /* README.md */,
9DAEA04422FE69490067692F /* CurtaSim */,
9DAEA03C22FE69490067692F /* Products */,
);
sourceTree = "<group>";
};
9D24616720D8B2AE00227E1D /* Products */ = {
9DAEA03C22FE69490067692F /* Products */ = {
isa = PBXGroup;
children = (
9D24616620D8B2AE00227E1D /* doNotBuild */,
9DAEA03B22FE69490067692F /* CurtaSim */,
9DAEA03E22FE69490067692F /* CurtaSim.dsk */,
9DAEA04322FE69490067692F /* doNotBuild */,
);
name = Products;
sourceTree = "<group>";
};
9D24616820D8B2AE00227E1D /* CurtaSim */ = {
9DAEA04422FE69490067692F /* CurtaSim */ = {
isa = PBXGroup;
children = (
9D24618F20D8B30C00227E1D /* curta.c */,
9D24618B20D8B30B00227E1D /* curtaModel.c */,
9D24618D20D8B30B00227E1D /* curtaModel.h */,
9D24619120D8B30C00227E1D /* curtaUI.c */,
9D24618C20D8B30B00227E1D /* curtaUI.h */,
9D24618E20D8B30C00227E1D /* joystick.c */,
9D24619020D8B30C00227E1D /* joystick.h */,
9D24616B20D8B2AE00227E1D /* Makefile */,
9D24616D20D8B2AE00227E1D /* make */,
9D24617E20D8B2AE00227E1D /* Supporting Files */,
9DAEA04722FE69490067692F /* Makefile */,
9DAEA07622FE696C0067692F /* curta.c */,
9DAEA07422FE696C0067692F /* curtaModel.c */,
9DAEA07922FE696C0067692F /* curtaModel.h */,
9DAEA07822FE696C0067692F /* curtaUI.c */,
9DAEA07522FE696C0067692F /* curtaUI.h */,
9DAEA07A22FE696C0067692F /* joystick.c */,
9DAEA07722FE696C0067692F /* joystick.h */,
9DAEA04922FE69490067692F /* make */,
9DAEA06022FE69490067692F /* Supporting Files */,
);
path = CurtaSim;
sourceTree = "<group>";
};
9D24616D20D8B2AE00227E1D /* make */ = {
9DAEA04922FE69490067692F /* make */ = {
isa = PBXGroup;
children = (
9D24616E20D8B2AE00227E1D /* AppleCommander.jar */,
9D24617020D8B2AE00227E1D /* createDiskImage */,
9D24617220D8B2AE00227E1D /* DevApple.vii */,
9D24617420D8B2AE00227E1D /* dos33_template.dsk */,
9D24617620D8B2AE00227E1D /* head.mk */,
9D24617820D8B2AE00227E1D /* prodos_template.dsk */,
9D24617A20D8B2AE00227E1D /* tail.mk */,
9D24617C20D8B2AE00227E1D /* V2Make.scpt */,
9DAEA04A22FE69490067692F /* AppleCommander.jar */,
9DAEA04C22FE69490067692F /* bastokenizer-tools-bt-0.2.0.jar */,
9DAEA04E22FE69490067692F /* createDiskImage */,
9DAEA05022FE69490067692F /* bt */,
9DAEA05222FE69490067692F /* DevApple.vii */,
9DAEA05422FE69490067692F /* dos33_template.dsk */,
9DAEA05622FE69490067692F /* errorFilter.sh */,
9DAEA05822FE69490067692F /* head.mk */,
9DAEA05A22FE69490067692F /* prodos_template.dsk */,
9DAEA05C22FE69490067692F /* tail.mk */,
9DAEA05E22FE69490067692F /* V2Make.scpt */,
);
name = make;
sourceTree = "<group>";
};
9D24617E20D8B2AE00227E1D /* Supporting Files */ = {
9DAEA06022FE69490067692F /* Supporting Files */ = {
isa = PBXGroup;
children = (
9D24617F20D8B2AE00227E1D /* CurtaSim.xcscheme */,
9DAEA06122FE69490067692F /* CurtaSim.xcscheme */,
);
name = "Supporting Files";
sourceTree = "<group>";
@ -141,10 +157,10 @@
/* End PBXGroup section */
/* Begin PBXLegacyTarget section */
9D24616120D8B2AE00227E1D /* CurtaSim */ = {
9DAEA03922FE69490067692F /* CurtaSim */ = {
isa = PBXLegacyTarget;
buildArgumentsString = "-C CurtaSim $(ACTION)";
buildConfigurationList = 9D24618320D8B2AE00227E1D /* Build configuration list for PBXLegacyTarget "CurtaSim" */;
buildConfigurationList = 9DAEA06522FE69490067692F /* Build configuration list for PBXLegacyTarget "CurtaSim" */;
buildPhases = (
);
buildToolPath = /usr/bin/make;
@ -157,13 +173,41 @@
/* End PBXLegacyTarget section */
/* Begin PBXNativeTarget section */
9D24616520D8B2AE00227E1D /* doNotBuild */ = {
9DAEA03A22FE69490067692F /* Binary */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9D24618620D8B2AE00227E1D /* Build configuration list for PBXNativeTarget "doNotBuild" */;
buildConfigurationList = 9DAEA06822FE69490067692F /* Build configuration list for PBXNativeTarget "Binary" */;
buildPhases = (
9D24616220D8B2AE00227E1D /* Sources */,
9D24616320D8B2AE00227E1D /* Frameworks */,
9D24616420D8B2AE00227E1D /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = Binary;
productName = Binary;
productReference = 9DAEA03B22FE69490067692F /* CurtaSim */;
productType = "com.apple.product-type.tool";
};
9DAEA03D22FE69490067692F /* DiskImage */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9DAEA06B22FE69490067692F /* Build configuration list for PBXNativeTarget "DiskImage" */;
buildPhases = (
);
buildRules = (
);
dependencies = (
);
name = DiskImage;
productName = DiskImage;
productReference = 9DAEA03E22FE69490067692F /* CurtaSim.dsk */;
productType = "com.apple.product-type.tool";
};
9DAEA04222FE69490067692F /* doNotBuild */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9DAEA06E22FE69490067692F /* Build configuration list for PBXNativeTarget "doNotBuild" */;
buildPhases = (
9DAEA03F22FE69490067692F /* Sources */,
9DAEA04022FE69490067692F /* Frameworks */,
9DAEA04122FE69490067692F /* CopyFiles */,
);
buildRules = (
);
@ -171,61 +215,69 @@
);
name = doNotBuild;
productName = doNotBuild;
productReference = 9D24616620D8B2AE00227E1D /* doNotBuild */;
productReference = 9DAEA04322FE69490067692F /* doNotBuild */;
productType = "com.apple.product-type.tool";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
9D24615D20D8B2AE00227E1D /* Project object */ = {
9DAEA03522FE69490067692F /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0940;
LastUpgradeCheck = 1030;
ORGANIZATIONNAME = "Jeremy Rand";
TargetAttributes = {
9D24616120D8B2AE00227E1D = {
CreatedOnToolsVersion = 9.4.1;
9DAEA03922FE69490067692F = {
CreatedOnToolsVersion = 10.3;
};
9D24616520D8B2AE00227E1D = {
CreatedOnToolsVersion = 9.4.1;
9DAEA03A22FE69490067692F = {
CreatedOnToolsVersion = 10.3;
};
9DAEA03D22FE69490067692F = {
CreatedOnToolsVersion = 10.3;
};
9DAEA04222FE69490067692F = {
CreatedOnToolsVersion = 10.3;
};
};
};
buildConfigurationList = 9D24616020D8B2AE00227E1D /* Build configuration list for PBXProject "CurtaSim" */;
buildConfigurationList = 9DAEA03822FE69490067692F /* Build configuration list for PBXProject "CurtaSim" */;
compatibilityVersion = "Xcode 9.3";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
);
mainGroup = 9D24615C20D8B2AE00227E1D;
productRefGroup = 9D24616720D8B2AE00227E1D /* Products */;
mainGroup = 9DAEA03422FE69490067692F;
productRefGroup = 9DAEA03C22FE69490067692F /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
9D24616120D8B2AE00227E1D /* CurtaSim */,
9D24616520D8B2AE00227E1D /* doNotBuild */,
9DAEA03922FE69490067692F /* CurtaSim */,
9DAEA03A22FE69490067692F /* Binary */,
9DAEA03D22FE69490067692F /* DiskImage */,
9DAEA04222FE69490067692F /* doNotBuild */,
);
};
/* End PBXProject section */
/* Begin PBXSourcesBuildPhase section */
9D24616220D8B2AE00227E1D /* Sources */ = {
9DAEA03F22FE69490067692F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9D24616C20D8B2AE00227E1D /* Makefile in Sources */,
9D24619220D8B30C00227E1D /* curtaModel.c in Sources */,
9D24619520D8B30C00227E1D /* curtaUI.c in Sources */,
9D24619320D8B30C00227E1D /* joystick.c in Sources */,
9D24619420D8B30C00227E1D /* curta.c in Sources */,
9DAEA07C22FE696C0067692F /* curta.c in Sources */,
9DAEA04822FE69490067692F /* Makefile in Sources */,
9DAEA07E22FE696C0067692F /* joystick.c in Sources */,
9DAEA07B22FE696C0067692F /* curtaModel.c in Sources */,
9DAEA07D22FE696C0067692F /* curtaUI.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
9D24618120D8B2AE00227E1D /* Debug */ = {
9DAEA06322FE69490067692F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@ -275,12 +327,13 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = YES;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
};
name = Debug;
};
9D24618220D8B2AE00227E1D /* Release */ = {
9DAEA06422FE69490067692F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
@ -325,10 +378,11 @@
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
};
name = Release;
};
9D24618420D8B2AE00227E1D /* Debug */ = {
9DAEA06622FE69490067692F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@ -343,7 +397,7 @@
};
name = Debug;
};
9D24618520D8B2AE00227E1D /* Release */ = {
9DAEA06722FE69490067692F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
@ -355,24 +409,66 @@
};
name = Release;
};
9D24618720D8B2AE00227E1D /* Debug */ = {
9DAEA06922FE69490067692F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
PRODUCT_NAME = CurtaSim;
};
name = Debug;
};
9DAEA06A22FE69490067692F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
PRODUCT_NAME = CurtaSim;
};
name = Release;
};
9DAEA06C22FE69490067692F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
PRODUCT_NAME = CurtaSim.dsk;
};
name = Debug;
};
9DAEA06D22FE69490067692F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
PRODUCT_NAME = CurtaSim.dsk;
};
name = Release;
};
9DAEA06F22FE69490067692F /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\"";
HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include;
HEADER_SEARCH_PATHS = (
$TEMP_ROOT/CurtaSim.build/$CONFIGURATION/CurtaSim.build/DerivedSources,
/usr/local/share/cc65/include,
);
PRODUCT_NAME = doNotBuild;
};
name = Debug;
};
9D24618820D8B2AE00227E1D /* Release */ = {
9DAEA07022FE69490067692F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = VD9FGCW36C;
GCC_PREPROCESSOR_DEFINITIONS = "__fastcall__=\"\"";
HEADER_SEARCH_PATHS = /usr/local/lib/cc65/include;
HEADER_SEARCH_PATHS = (
$TEMP_ROOT/CurtaSim.build/$CONFIGURATION/CurtaSim.build/DerivedSources,
/usr/local/share/cc65/include,
);
PRODUCT_NAME = doNotBuild;
};
name = Release;
@ -380,34 +476,52 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
9D24616020D8B2AE00227E1D /* Build configuration list for PBXProject "CurtaSim" */ = {
9DAEA03822FE69490067692F /* Build configuration list for PBXProject "CurtaSim" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9D24618120D8B2AE00227E1D /* Debug */,
9D24618220D8B2AE00227E1D /* Release */,
9DAEA06322FE69490067692F /* Debug */,
9DAEA06422FE69490067692F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9D24618320D8B2AE00227E1D /* Build configuration list for PBXLegacyTarget "CurtaSim" */ = {
9DAEA06522FE69490067692F /* Build configuration list for PBXLegacyTarget "CurtaSim" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9D24618420D8B2AE00227E1D /* Debug */,
9D24618520D8B2AE00227E1D /* Release */,
9DAEA06622FE69490067692F /* Debug */,
9DAEA06722FE69490067692F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9D24618620D8B2AE00227E1D /* Build configuration list for PBXNativeTarget "doNotBuild" */ = {
9DAEA06822FE69490067692F /* Build configuration list for PBXNativeTarget "Binary" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9D24618720D8B2AE00227E1D /* Debug */,
9D24618820D8B2AE00227E1D /* Release */,
9DAEA06922FE69490067692F /* Debug */,
9DAEA06A22FE69490067692F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9DAEA06B22FE69490067692F /* Build configuration list for PBXNativeTarget "DiskImage" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9DAEA06C22FE69490067692F /* Debug */,
9DAEA06D22FE69490067692F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9DAEA06E22FE69490067692F /* Build configuration list for PBXNativeTarget "doNotBuild" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9DAEA06F22FE69490067692F /* Debug */,
9DAEA07022FE69490067692F /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 9D24615D20D8B2AE00227E1D /* Project object */;
rootObject = 9DAEA03522FE69490067692F /* Project object */;
}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildSystemType</key>
<string>Original</string>
</dict>
</plist>

View File

@ -64,6 +64,18 @@
argument = "$PROJECT_DIR/CurtaSim"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "OBJECT_FILE_DIR=$OBJECT_FILE_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "DERIVED_SOURCES_DIR=$DERIVED_SOURCES_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "TARGET_BUILD_DIR=$TARGET_BUILD_DIR"
isEnabled = "YES">
</CommandLineArgument>
<CommandLineArgument
argument = "execute"
isEnabled = "YES">

View File

@ -4,15 +4,25 @@
<dict>
<key>SchemeUserState</key>
<dict>
<key>Binary.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>CurtaSim.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>doNotBuild.xcscheme</key>
<key>DiskImage.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
<integer>2</integer>
</dict>
<key>doNotBuild.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
</dict>
</dict>

View File

@ -18,10 +18,6 @@ include make/head.mk
# The name of your system or binary file to build goes here:
PGM=curta
# Set the config you are building for. See these pages for details:
# http://cc65.github.io/cc65/doc/apple2.html#s4
# http://cc65.github.io/cc65/doc/apple2enh.html#s4
#
# Uncomment the one you want below (the first one is the default):
# MACHINE = apple2
# MACHINE = apple2-dos33
@ -34,6 +30,13 @@ MACHINE = apple2-loader
# MACHINE = apple2enh-loader
# MACHINE = apple2enh-reboot
# Uncomment the appropriate project type. If your entry point is
# main() in a .c file, then your project type is cc65. If your
# entry point is in an assembly file, then you project type is
# ca65:
PROJECT_TYPE = cc65
# PROJECT_TYPE = ca65
# Uncomment and set this to your starting address in Apple II memory
# if necessary:
START_ADDR = 4000
@ -49,13 +52,18 @@ START_ADDR = 4000
# will only produce 8-bit code.
# Add any other directories where you are putting C or assembly source
# files to this list:
# files to this list. Note that if you are generating source files into
# $(GENDIR), you should add $(GENDIR) to SRCDIRS here:
SRCDIRS+=
# If you have a non-standard cc65 install, you may need to change
# some of these. Uncomment the following line and change it to the
# correct path to CC65_HOME if the default is not correct:
# export CC65_HOME := /usr/local/lib/cc65
# correct path to CC65_HOME if the default is not correct. If you
# are using cc65 v2.13.3, the default is:
# /usr/local/lib/cc65
# If you are using cc65 v2.17, the default is:
# /usr/local/share/cc65
# export CC65_HOME := /path/to/your/cc65/directory
#
# If the path to the cc65 binaries is not correct, uncomment this
# line and change it:
@ -73,6 +81,10 @@ SRCDIRS+=
# this variable:
# LDFLAGS += -v
# If you want to add arguments to the BASIC tokenizer commandline,
# add them to this valiable:
# BASICFLAGS += --optimize
# If you want to link the lores graphics driver with your executable,
# uncomment the next line.
# DRIVERS += loresgr
@ -89,9 +101,9 @@ SRCDIRS+=
# tgi_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/tgi.h file to see what the
# Read the $CC65_HOME/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.
# $CC65_HOME/include/apple2.h to see the colour definitions.
# If you want to link the hires graphics driver with your executable,
# uncomment the next line.
@ -109,9 +121,9 @@ DRIVERS += hiresgr
# tgi_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/tgi.h file to see what the
# Read the $CC65_HOME/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.
# $CC65_HOME/include/apple2.h to see the colour definitions.
# If you want to link the extended memory driver with your executable,
# uncomment the next line.
@ -128,7 +140,7 @@ DRIVERS += hiresgr
# em_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/em.h file to see what the
# Read the $CC65_HOME/include/em.h file to see what the
# driver interface provides.
# If you want to link the joystick driver with your executable,
@ -146,7 +158,7 @@ DRIVERS += hiresgr
# joy_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/joystick.h file to see what the
# Read the $CC65_HOME/include/joystick.h file to see what the
# driver interface provides.
# If you want to link the mouse driver with your executable,
@ -164,7 +176,7 @@ DRIVERS += hiresgr
# mouse_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/mouse.h file to see what the
# Read the $CC65_HOME/include/mouse.h file to see what the
# driver interface provides.
# If you want to link the serial driver with your executable,
@ -182,7 +194,7 @@ DRIVERS += hiresgr
# ser_uninstall();
# }
#
# Read the /usr/local/lib/cc65/include/serial.h file to see what the
# Read the $CC65_HOME/include/serial.h file to see what the
# driver interface provides.
# If you have java installed in a non-standard location, you can set
@ -224,6 +236,13 @@ COPYDIRS=
# 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.
#
# You should generate these files in the $(GENDIR) directory or
# within a subdirectory under $(GENDIR) which you create yourself.
#
# All of your commands associated with a rule _must_ start with a tab
# character. Xcode makes it a bit tough to type a tab character by
# default. Press option-tab within Xcode to insert a tab character.
gen:
# For any files you generated in the gen target above, you should

View File

@ -13,7 +13,6 @@
#include <apple2.h>
#include <joystick.h>
#include <tgi.h>
#include <tgi/tgi-mode.h>
#include "curtaModel.h"
#include "joystick.h"
@ -35,12 +34,12 @@ typedef int8_t tAction;
#define ACTION_NULL 9
#define OPERAND_COLOR COLOR_WHITE
#define OPERAND_OFFSET 4
#define SLIDER_BAR_COLOR COLOR_BLUE
#define SELECTED_SLIDER_BAR_COLOR COLOR_VIOLET
#define SLIDER_COLOR COLOR_ORANGE
#define SELECTED_SLIDER_COLOR COLOR_BLACK
#define OPERAND_COLOR TGI_COLOR_WHITE
#define OPERAND_OFFSET 12
#define SLIDER_BAR_COLOR TGI_COLOR_BLUE
#define SELECTED_SLIDER_BAR_COLOR TGI_COLOR_VIOLET
#define SLIDER_COLOR TGI_COLOR_ORANGE
#define SELECTED_SLIDER_COLOR TGI_COLOR_BLACK
#define SLIDER_X_BORDER 8
#define SLIDER_Y_BORDER 15
#define SLIDER_BAR_WIDTH 12
@ -75,7 +74,7 @@ static char displayBuffer[] =
static void playSound(int8_t freq, int8_t duration)
{
while (duration > 0) {
asm ("STA %w", 0xc030);
asm volatile ("STA %w", 0xc030);
while (freq > 0) {
freq--;
}
@ -160,7 +159,7 @@ static void drawText(char xPos, tDigit digit)
char buffer[2];
// Clear old text
tgi_setcolor(COLOR_BLACK);
tgi_setcolor(TGI_COLOR_BLACK);
tgi_bar(xPos, 0, xPos + SLIDER_BAR_WIDTH, SLIDER_Y_BORDER - 1);
// Draw text label
@ -366,13 +365,13 @@ static tAction getNextAction(void)
void textMode(void)
{
clrscr();
asm ("STA %w", 0xc051);
asm volatile ("STA %w", 0xc051);
}
void graphicsMode(void)
{
asm ("STA %w", 0xc050);
asm volatile ("STA %w", 0xc050);
}
@ -480,7 +479,7 @@ void redrawUI(void)
}
// Mixed text and graphics mode
asm ("STA %w", 0xc053);
asm volatile ("STA %w", 0xc053);
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printState();
}

View File

@ -30,11 +30,11 @@ static uint8_t joystickTemp;
static bool isButtonPressed(int8_t buttonNum)
{
if (buttonNum) {
__asm__("LDA %w", BTN1);
__asm__("STA %v", joystickTemp);
__asm__ volatile("LDA %w", BTN1);
__asm__ volatile("STA %v", joystickTemp);
} else {
__asm__("LDA %w", BTN0);
__asm__("STA %v", joystickTemp);
__asm__ volatile("LDA %w", BTN0);
__asm__ volatile("STA %v", joystickTemp);
}
return ((joystickTemp > 127) ? true : false);
}
@ -42,22 +42,22 @@ static bool isButtonPressed(int8_t buttonNum)
static uint8_t joystickLeftRight(void)
{
__asm__("BIT %w", ROM_SWITCH);
__asm__("LDX #0");
__asm__("JSR %w", PREAD);
__asm__("STY %v", joystickTemp);
__asm__("BIT %w", RAM_SWITCH);
__asm__ volatile("BIT %w", ROM_SWITCH);
__asm__ volatile("LDX #0");
__asm__ volatile("JSR %w", PREAD);
__asm__ volatile("STY %v", joystickTemp);
__asm__ volatile("BIT %w", RAM_SWITCH);
return joystickTemp;
}
static uint8_t joystickUpDown(void)
{
__asm__("BIT %w", ROM_SWITCH);
__asm__("LDX #1");
__asm__("JSR %w", PREAD);
__asm__("STY %v", joystickTemp);
__asm__("BIT %w", RAM_SWITCH);
__asm__ volatile("BIT %w", ROM_SWITCH);
__asm__ volatile("LDX #1");
__asm__ volatile("JSR %w", PREAD);
__asm__ volatile("STY %v", joystickTemp);
__asm__ volatile("BIT %w", RAM_SWITCH);
return joystickTemp;
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

34
CurtaSim/make/bt Executable file
View File

@ -0,0 +1,34 @@
#!/bin/sh
if [ -z "$JAVA" ]
then
for item in "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home" /Library/Java/JavaVirtualMachines/*/Contents/Home /usr
do
if [ -x "$item/bin/java" ]
then
JAVA="$item/bin/java"
break
fi
done
fi
if [ -z "$JAVA" ]
then
echo Cannot find a path to a Java runtime.
echo Go to https://java.com/download if you do not have Java.
echo If you do have Java, you may need to uncomment the JAVA
echo line in the Makefile and set it to the path for your
echo Java runtime binary.
exit 1
fi
INPUTFILE=$1
shift
tr -d '©' < "$INPUTFILE" > /tmp/bt_filtered.$$
"$JAVA" -jar make/bastokenizer-tools-bt-0.2.0.jar $* /tmp/bt_filtered.$$
RESULT=$?
rm /tmp/bt_filtered.$$
exit $RESULT

View File

@ -1,8 +1,13 @@
#!/bin/sh
merlinStartAddr() {
awk '$1 ~ /^[oO][rR][gG]$/{print $2}' linkscript.s | sed 's/^[0$]*//'
}
if [ $# -lt 5 ]
then
echo USAGE: $0 '<AppleCommander> <machine> <diskimage> <binary>'
echo USAGE: $0 '<AppleCommander> <machine> <diskimage> <binary> <startaddress> <otherfilesordirs...>'
exit 1
fi
@ -43,11 +48,7 @@ shift
STARTADDR=`echo $1 | sed 's/^0*//'`
shift
if [ ! -f "$PROGRAM" ]
then
echo "Cannot file executable $PROGRAM"
exit 1
fi
SOURCEFILE=$PROGRAM
case "$MACHINE" in
apple2)
@ -55,8 +56,10 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
@ -66,8 +69,10 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
@ -77,8 +82,10 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
FILETYPE="B"
BASICFILETYPE="A"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=30
;;
@ -88,8 +95,10 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
FILETYPE="B"
BASICFILETYPE="A"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=30
;;
@ -99,8 +108,10 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=1
COPYBINARY=1
HASHEADER=0
FILETYPE="sys"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`.system
MAXFILENAMELEN=15
;;
@ -110,8 +121,10 @@ case "$MACHINE" in
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=1
COPYBINARY=1
HASHEADER=0
FILETYPE="sys"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`.system
MAXFILENAMELEN=15
;;
@ -121,8 +134,10 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
@ -132,8 +147,10 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
@ -143,8 +160,10 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
@ -154,18 +173,89 @@ case "$MACHINE" in
DELETELOADER=0
RENAMELOADER=1
DELETEBASIC=1
COPYBINARY=1
HASHEADER=1
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
;;
apple2-basic)
TEMPLATE="make/prodos_template.dsk"
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=0
FILETYPE="bas"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
SOURCEFILE=${PROGRAM}.tok
MAXFILENAMELEN=15
;;
apple2-dos33-basic)
TEMPLATE="make/dos33_template.dsk"
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=0
FILETYPE="A"
BASICFILETYPE="A"
TARGETFILE=`basename $PROGRAM`
SOURCEFILE=${PROGRAM}.tok
MAXFILENAMELEN=30
;;
apple2-merlin)
TEMPLATE="make/prodos_template.dsk"
DELETELOADER=1
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=0
FILETYPE="bin"
BASICFILETYPE="bas"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=15
STARTADDR=`merlinStartAddr`
;;
apple2-dos33-merlin)
TEMPLATE="make/dos33_template.dsk"
DELETELOADER=0
RENAMELOADER=0
DELETEBASIC=0
COPYBINARY=1
HASHEADER=0
FILETYPE="B"
BASICFILETYPE="A"
TARGETFILE=`basename $PROGRAM`
MAXFILENAMELEN=30
STARTADDR=`merlinStartAddr`
;;
*)
echo "Invalid machine type $MACHINE"
exit 1
;;
esac
STARTARG=""
if [ ! -z "$STARTADDR" ]
then
STARTARG="0x$STARTADDR"
fi
if [ ! -f "$SOURCEFILE" ]
then
echo "Cannot file executable $SOURCEFILE"
exit 1
fi
if [ ${#TARGETFILE} -gt $MAXFILENAMELEN ]
then
echo "The filename $TARGETFILE exceeds the max name length of the filesystem ($MAXFILENAMELEN)"
@ -203,29 +293,44 @@ then
"$JAVA" -jar "$APPLECOMMANDER" -d "$DISKIMAGE" BASIC.SYSTEM
fi
if [ $HASHEADER -eq 1 ]
if [ $COPYBINARY -eq 1 ]
then
HDR_STARTADDR=`od -t x2 -N 2 < "$PROGRAM" | head -1 | awk '{print $2}' | sed 's/^0*//'`
if [ "$HDR_STARTADDR" = "$STARTADDR" ]
if [ "$CC65_SUPPORTS_APPLE_SINGLE" -eq 1 ]
then
dd if="$PROGRAM" bs=4 skip=1 | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE 0x$STARTADDR < "$PROGRAM"
"$JAVA" -jar "$APPLECOMMANDER" -as "$DISKIMAGE" "$TARGETFILE" < "$SOURCEFILE"
elif [ $HASHEADER -eq 1 ]
then
HDR_STARTADDR=`od -t x2 -N 2 < "$SOURCEFILE" | head -1 | awk '{print $2}' | sed 's/^0*//'`
if [ "$HDR_STARTADDR" = "$STARTADDR" ]
then
dd if="$SOURCEFILE" bs=4 skip=1 | "$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE $STARTARG
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE $STARTARG < "$SOURCEFILE"
fi
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE $STARTARG < "$SOURCEFILE"
fi
else
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$TARGETFILE" $FILETYPE < "$PROGRAM"
fi
for DIR in $*
for ITEM in $*
do
if [ ! -d "$DIR" ]
# If this is a file matching *.tok, then this is an Applesoft BASIC file
# to copy to the disk image.
if [ -f "$ITEM" ] && echo "$ITEM" | grep '\.tok$' > /dev/null
then
echo Unable to find directory $DIR
DESTFILE=`basename "$ITEM" | sed 's/\.tok$//'`
"$JAVA" -jar "$APPLECOMMANDER" -p "$DISKIMAGE" "$DESTFILE" "$BASICFILETYPE" 0x801 < "$ITEM"
continue
fi
if [ ! -d "$ITEM" ]
then
echo Unable to find directory $ITEM
exit 1
fi
OLDPWD=`pwd`
cd $DIR
cd $ITEM
find . -type f -print | while read FILE
do
@ -258,9 +363,9 @@ do
# 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
tr '\n' '\r' < $FILE | "$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE
else
"$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$OLDPWD/$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE
"$JAVA" -jar "$OLDPWD/$APPLECOMMANDER" $TRANSFERARG "$DISKIMAGE" "$DESTFILE" $FILETYPE < $FILE
fi
done

59
CurtaSim/make/errorFilter.sh Executable file
View File

@ -0,0 +1,59 @@
#!/bin/sh
PWD=`pwd`
$* 2> /tmp/errors.$$
RESULT=$?
if [ $RESULT -ne 0 ]
then
exec /usr/bin/perl -x $0 $RESULT /tmp/errors.$$ "$PWD"
fi
exit 0
#!/usr/bin/perl
use strict;
my $result = $ARGV[0];
my $filename = $ARGV[1];
my $pwd = $ARGV[2];
open(FILE, "<$filename") || die "$0: Unable to open file, $!";
my $unresolvedRefError = undef;
while (<FILE>) {
chomp;
if (defined $unresolvedRefError) {
if (m/^ ([^(]+)\(([0-9]+)\)/) {
my $file = $1;
my $lineno = $2;
if (! -f "$pwd/$file") {
$file =~ s/\.s$/.c/;
}
$_ = "$pwd/$file:$lineno:0: error: $unresolvedRefError";
} else {
$unresolvedRefError = undef;
}
}
if (m/^(Unresolved external .* referenced) in:/) {
$unresolvedRefError = $1;
$_ = "";
} elsif (m/^([^(]+)\(([0-9]+)\):(.*)$/) {
my $file = $1;
my $lineno = $2;
my $error = $3;
$_ = "$pwd/$file:$lineno:0: error: $error";
}
print STDERR "$_\n";
}
unlink($filename);
exit($result);

View File

@ -10,26 +10,61 @@
# http://www.quinndunki.com/blondihacks
#
export CC65_HOME := /usr/local/lib/cc65
CC65_BIN=/usr/local/bin
CC65_BIN = /usr/local/bin
ifneq ($(wildcard /usr/local/lib/cc65),)
export CC65_HOME := /usr/local/lib/cc65
else
export CC65_HOME := /usr/local/share/cc65
endif
CL65=$(CC65_BIN)/cl65
CA65=$(CC65_BIN)/ca65
CC65=$(CC65_BIN)/cc65
CO65=$(CC65_BIN)/co65
MERLIN_DIR=/usr/local
export MERLIN_BIN=$(MERLIN_DIR)/bin/Merlin32
export MERLIN_LIB=$(MERLIN_DIR)/lib/Merlin
MERLIN_ASM=make/merlin-asm
AC=make/AppleCommander.jar
SRCDIRS=.
# Check for Xcode build variables for the locations of build outputs and fall back
# to the current directory if not set.
ifeq ($(OBJECT_FILE_DIR),)
OBJDIR=.
else
export OBJECT_FILE_DIR
OBJDIR=$(OBJECT_FILE_DIR)
endif
ifeq ($(DERIVED_SOURCES_DIR),)
GENDIR=.
else
export DERIVED_SOURCES_DIR
GENDIR=$(DERIVED_SOURCES_DIR)
endif
ifeq ($(TARGET_BUILD_DIR),)
TARGETDIR=.
else
export TARGET_BUILD_DIR
TARGETDIR=$(TARGET_BUILD_DIR)
endif
MACHINE=apple2
CPU=6502
CFLAGS=
ASMFLAGS=
LDFLAGS=
DRIVERS=
DRVDIR=drivers
DRVDIR=$(GENDIR)/drivers
MKDIR=mkdir -p
XCODE_PATH=/Applications/Xcode.app
XCODE_INFO=$(XCODE_PATH)/Contents/Info.plist

View File

@ -10,123 +10,208 @@
# http://www.quinndunki.com/blondihacks
#
export PATH := $(PATH):$(CC65_BIN)
BUILD_TYPE := $(shell if echo $(MACHINE) | grep -q -- -basic; then echo basic; elif echo $(MACHINE) | grep -q -- -merlin; then echo merlin; else echo cc65; fi)
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
DISKIMAGE=$(PGM).dsk
LINK_ARGS=
DISKIMAGE=$(TARGETDIR)/$(PGM).dsk
EXECCMD=
ALLTARGET=$(DISKIMAGE)
vpath $(GENDIR)
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable start
# address, then error.
BASIC_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.bas, $(SRCDIRS)))))
BASIC_OBJS=$(patsubst %.bas, $(TARGETDIR)/%.tok, $(BASIC_SRCS))
ifeq ($(BUILD_TYPE),cc65)
export PATH := $(PATH):$(CC65_BIN)
# By default, use the a2 drivers. If the machine is one of the enhanced
# targets though, use the a2e drivers.
DRV_BASE_MACHINE=a2
BASE_MACHINE = apple2
ifneq ($(filter $(MACHINE), apple2enh apple2enh-dos33 apple2enh-system apple2enh-loader apple2enh-reboot),)
DRV_BASE_MACHINE=a2e
BASE_MACHINE = apple2enh
endif
export CC65_SUPPORTS_APPLE_SINGLE=1
CC65_CREATE_DEP_ARG=--create-dep $(@:.o=.u)
CC65_LIST_ARG=-l $(@:.o=.lst)
CC65_DRV_DIR=$(CC65_HOME)/target/$(BASE_MACHINE)/drv
MACHCONFIG= -t $(BASE_MACHINE)
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
$(error You cannot change start address with this machine type)
MACHCONFIG += -C $(BASE_MACHINE)-system.cfg
else
ifeq ($(PROJECT_TYPE),ca65)
MACHCONFIG += -C $(BASE_MACHINE)-asm.cfg
LDFLAGS += -u __EXEHDR__
else
MACHCONFIG += -C $(BASE_MACHINE).cfg
endif
endif
CFLAGS+=-I $(GENDIR)
ifneq ($(DRIVERS),)
SRCDIRS+=$(DRVDIR)
endif
C_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.c, $(SRCDIRS)))))
C_OBJS=$(patsubst %.c, $(OBJDIR)/%.o, $(C_SRCS))
C_DEPS=$(patsubst %.c, $(OBJDIR)/%.u, $(C_SRCS))
ASM_SRCS=$(patsubst $(GENDIR)/%, %, $(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS)))))
ASM_OBJS=$(patsubst %.s, $(OBJDIR)/%.o, $(ASM_SRCS))
ASM_LSTS=$(patsubst %.s, $(OBJDIR)/%.lst, $(ASM_SRCS))
MAPFILE=$(TARGETDIR)/$(PGM).map
ifneq ($(START_ADDR),)
# If the MACHINE is set to an option which does not support a variable
# start address, then error.
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
$(error You cannot change start address with this machine type)
endif
else
# If not set, then use the default for the config as per cc65
# documentation
ifneq ($(filter $(MACHINE), apple2 apple2-dos33 apple2enh apple2enh-dos33),)
START_ADDR=803
endif
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
START_ADDR=2000
endif
ifneq ($(filter $(MACHINE), apple2-loader apple2-reboot apple2enh-loader apple2enh-reboot),)
START_ADDR=800
endif
endif
LDFLAGS += --start-addr 0x$(START_ADDR)
ifneq ($(filter $(MACHINE), apple2 apple2enh apple2-dos33 apple2enh-dos33),)
EXECCMD=$(shell echo brun $(PGM) | tr '[a-z]' '[A-Z]')
endif
else
# If not set, then use the default for the config as per cc65 documentation
ifneq ($(filter $(MACHINE), apple2 apple2-dos33 apple2enh apple2enh-dos33),)
START_ADDR=803
endif
ifneq ($(filter $(MACHINE), apple2-system apple2enh-system),)
START_ADDR=2000
endif
ifneq ($(filter $(MACHINE), apple2-loader apple2-reboot apple2enh-loader apple2enh-reboot),)
START_ADDR=800
endif
endif
LDFLAGS += --start-addr 0x$(START_ADDR)
C_OBJS=
C_DEPS=
ifneq ($(filter $(MACHINE), apple2 apple2enh apple2-dos33 apple2enh-dos33),)
ASM_OBJS=
ASM_LSTS=
endif
ifeq ($(BUILD_TYPE),merlin)
ASM_SRCS=$(patsubst ./%, %, $(wildcard $(addsuffix /*.s, $(SRCDIRS))))
MAPFILE=$(TARGETDIR)/_Output.txt
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
ifeq ($(BUILD_TYPE),basic)
MAPFILE=
EXECCMD=$(shell echo run $(PGM) | tr '[a-z]' '[A-Z]')
endif
MACHCONFIG= -t apple2
OBJS=$(C_OBJS) $(ASM_OBJS)
ifneq ($(filter $(MACHINE), apple2enh apple2apple2enh-dos33 apple2enh-system apple2enh-loader apple2enh-reboot),)
MACHCONFIG= -t apple2enh
endif
ALLTARGET=$(DISKIMAGE)
ifeq ($(filter $(MACHINE), apple2 apple2enh),)
MACHCONFIG += -C $(MACHINE).cfg
endif
.PHONY: build execute clean xcodefix loresgr hiresgr auxmem joystick mouse serial
.PHONY: build execute clean cleandrivers xcodefix
build: $(ALLTARGET)
clean: genclean
rm -f "$(PGM)"
rm -f $(OBJS)
rm -f $(C_DEPS)
rm -f $(MAPFILE)
rm -f $(ASM_LSTS)
rm -f "$(DISKIMAGE)"
$(DISKIMAGE): $(TARGETDIR)/$(PGM) $(BASIC_OBJS)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(TARGETDIR)/$(PGM)" "$(START_ADDR)" $(BASIC_OBJS) $(COPYDIRS)
execute: $(DISKIMAGE)
osascript make/V2Make.scpt "$(TARGETDIR)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
$(TARGETDIR)/%.tok: %.bas
$(MKDIR) `dirname $@`
make/bt $< $(BASICFLAGS) -o $@
ifneq ($(DRIVERS),)
cleandrivers:
rm -Rf "$(DRVDIR)"
else
cleandrivers:
endif
clean: genclean cleandrivers
rm -f "$(TARGETDIR)/$(PGM)" $(OBJS) $(BASIC_OBJS) $(C_DEPS) $(MAPFILE) $(ASM_LSTS) "$(DISKIMAGE)"
cleanMacCruft:
rm -rf pkg
$(PGM): $(OBJS)
$(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(PGM)" $(OBJS)
$(DISKIMAGE): $(PGM)
make/createDiskImage $(AC) $(MACHINE) "$(DISKIMAGE)" "$(PGM)" "$(START_ADDR)" $(COPYDIRS)
execute: $(DISKIMAGE)
osascript make/V2Make.scpt "$(CWD)" "$(PGM)" "$(CWD)/make/DevApple.vii" "$(EXECCMD)"
%.o: %.c
$(CL65) $(MACHCONFIG) $(CFLAGS) --create-dep -c -o $@ $<
sed -i .bak 's/\.s:/.o:/' $(@:.o=.u)
rm -f $(@:.o=.u).bak
%.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)`
defaults write "$(CC65_PLUGIN_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)s -array `defaults read "$(XCODE_INFO)" $(XCODE_PLUGIN_COMPATIBILITY)` || true
ifeq ($(BUILD_TYPE),basic)
# Build rules for BASIC projects
$(TARGETDIR)/$(PGM): $(BASIC_OBJS)
cp $(TARGETDIR)/$(PGM).tok $(TARGETDIR)/$(PGM)
$(BASIC_OBJS): Makefile
endif
ifeq ($(BUILD_TYPE),merlin)
# Build rules for Merlin projects
$(TARGETDIR)/$(PGM): $(ASM_SRCS) Makefile
$(MKDIR) $(TARGETDIR)
rm -f $(TARGETDIR)/$(PGM)
$(MERLIN_ASM) linkscript.s $(PGM) $(TARGETDIR)/$(PGM)
endif
ifeq ($(BUILD_TYPE),cc65)
# Build rules for cc65 projects
$(TARGETDIR)/$(PGM): $(OBJS)
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --mapfile $(MAPFILE) $(LDFLAGS) -o "$(TARGETDIR)/$(PGM)" $(OBJS)
$(OBJS): Makefile
$(OBJDIR)/%.o: %.c
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $<
sed -i .bak 's/\.s:/.o:/' $(@:.o=.u)
rm -f $(@:.o=.u).bak
$(OBJDIR)/%.o: $(GENDIR)/%.c
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) $(CFLAGS) $(CC65_CREATE_DEP_ARG) -c -o $@ $<
sed -i .bak 's/\.s:/.o:/' $(@:.o=.u)
rm -f $(@:.o=.u).bak
$(OBJDIR)/%.o: %.s
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $<
$(OBJDIR)/%.o: $(GENDIR)/%.s
$(MKDIR) `dirname $@`
make/errorFilter.sh $(CL65) $(MACHCONFIG) --cpu $(CPU) $(ASMFLAGS) $(CC65_LIST_ARG) -c -o $@ $<
.PHONY: loresgr hiresgr auxmem joystick mouse serial
# 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
$(DRVDIR)/a2_lores_drv.s: $(CC65_DRV_DIR)/tgi/$(DRV_BASE_MACHINE).lo.tgi
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_lores_drv -o $@ $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).lo.tgi
$(CO65) --code-label _a2_lores_drv -o $@ $(CC65_DRV_DIR)/tgi/$(DRV_BASE_MACHINE).lo.tgi
$(DRVDIR)/a2_lores_drv.h:
mkdir -p $(DRVDIR)
@ -137,9 +222,9 @@ $(DRVDIR)/a2_lores_drv.h:
# 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
$(DRVDIR)/a2_hires_drv.s: $(CC65_DRV_DIR)/tgi/$(DRV_BASE_MACHINE).hi.tgi
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_hires_drv -o $@ $(CC65_HOME)/tgi/$(DRV_BASE_MACHINE).hi.tgi
$(CO65) --code-label _a2_hires_drv -o $@ $(CC65_DRV_DIR)/tgi/$(DRV_BASE_MACHINE).hi.tgi
$(DRVDIR)/a2_hires_drv.h:
mkdir -p $(DRVDIR)
@ -150,9 +235,9 @@ $(DRVDIR)/a2_hires_drv.h:
# 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
$(DRVDIR)/a2_auxmem_drv.s: $(CC65_DRV_DIR)/emd/$(DRV_BASE_MACHINE).auxmem.emd
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_auxmem_drv -o $@ $(CC65_HOME)/emd/$(DRV_BASE_MACHINE).auxmem.emd
$(CO65) --code-label _a2_auxmem_drv -o $@ $(CC65_DRV_DIR)/emd/$(DRV_BASE_MACHINE).auxmem.emd
$(DRVDIR)/a2_auxmem_drv.h:
mkdir -p $(DRVDIR)
@ -163,9 +248,9 @@ $(DRVDIR)/a2_auxmem_drv.h:
# 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
$(DRVDIR)/a2_joystick_drv.s: $(CC65_DRV_DIR)/joy/$(DRV_BASE_MACHINE).stdjoy.joy
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_joystick_drv -o $@ $(CC65_HOME)/joy/$(DRV_BASE_MACHINE).stdjoy.joy
$(CO65) --code-label _a2_joystick_drv -o $@ $(CC65_DRV_DIR)/joy/$(DRV_BASE_MACHINE).stdjoy.joy
$(DRVDIR)/a2_joystick_drv.h:
mkdir -p $(DRVDIR)
@ -176,9 +261,9 @@ $(DRVDIR)/a2_joystick_drv.h:
# 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
$(DRVDIR)/a2_mouse_drv.s: $(CC65_DRV_DIR)/mou/$(DRV_BASE_MACHINE).stdmou.mou
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_mouse_drv -o $@ $(CC65_HOME)/mou/$(DRV_BASE_MACHINE).stdmou.mou
$(CO65) --code-label _a2_mouse_drv -o $@ $(CC65_DRV_DIR)/mou/$(DRV_BASE_MACHINE).stdmou.mou
$(DRVDIR)/a2_mouse_drv.h:
mkdir -p $(DRVDIR)
@ -189,14 +274,16 @@ $(DRVDIR)/a2_mouse_drv.h:
# 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
$(DRVDIR)/a2_serial_drv.s: $(CC65_DRV_DIR)/ser/$(DRV_BASE_MACHINE).ssc.ser
mkdir -p $(DRVDIR)
$(CO65) --code-label _a2_serial_drv -o $@ $(CC65_HOME)/ser/$(DRV_BASE_MACHINE).ssc.ser
$(CO65) --code-label _a2_serial_drv -o $@ $(CC65_DRV_DIR)/ser/$(DRV_BASE_MACHINE).ssc.ser
$(DRVDIR)/a2_serial_drv.h:
mkdir -p $(DRVDIR)
echo '#include <serial.h>' > $@
echo 'extern char a2_serial_drv;' >> $@
endif
-include $(C_DEPS)