diff options
-rw-r--r-- | DOSes.txt | 26 | ||||
-rw-r--r-- | Makefile | 42 |
2 files changed, 39 insertions, 29 deletions
@@ -26,18 +26,26 @@ addressed. Loaders that fail now probably do so for hard-to-diagnose reasons, or else because MEMLO is too high. Taipan loads at $2000, which should *not* be a problem for any useful Atari DOS. +I've gone to this much trouble with testing because (a) there used to +be some real issues, and (b) because inevitably, someone is going to +find a DOS or loader that can't load it. I'm going to point to this +documentation, and tell them their DOS/loader is broken, not my game. + Tested on actual hardware: - Atari DOS 2.0S: success - Atari DOS 2.5: success - MyDOS 4.55 (floppy): success - MyDOS 4.55 (with MyIDE): success -- SpartaDOS X: success, with "X" command +- SpartaDOS X: success, with "X" command (works with MIO enabled too) - SIDE2: success (older build though, need to get results for latest) - APE loader: success (older build, need newer results) - DOS XL 2.30: success - SpartaDOS 3.2dx: fails to load. This is 3.2d patched for the XF551 drive. - SpartaDOS 3.2g/3.2gx with MIO: failure. +- Micro SpartaDOS 2.2 and 4.6: success. +- RealDOS build 0032: success (even with MIO active and TDLINE running!) +- Atarimax flash cart EXE loader: success Tested on emulators: @@ -49,6 +57,7 @@ Tested on emulators: - SpartaDOS 1.1 on atari800: success (with STANDARD.SYS kernel). I doubt that exiting the game will work, as MEMLO is $2300 on this DOS. +- BeweDOS 1.30: success. - MyPicoDOS 4.03 on atari800: success - Fenders 3-sector loader on atari800: success - Atari DOS 3.0 on atari800: success @@ -62,16 +71,5 @@ Note: all the oddball DOSes at the end of the list are ones I really used to run at various different times, in the old days. All the tests with atari800, other than the direct xex loading, were done with SIO patching disabled. On some of the DOSes, exiting the program may not work -(answering N to the "play again?" prompt); I didn't test this with most -of them. - -Untested (waiting on results from testers): - -- Atarimax flash cart EXE loader. An older Taipan build failed due - to the loader leaving RAMTOP set to $a0. My first attempt to fix this - worked, but broke loading with MyIDE and SDX. The current code *should* - be fine, but I have yet to hear back from my tester about it. - -Untested, but worth looking at: - -- RealDOS, BeweDOS? probably same results as Sparta 3... +(answering N to the "play again?" prompt); I didn't test this with all +of them. It at least works on 2.0S, 2.5, MyDOS, and SpartaDOS X. @@ -8,7 +8,7 @@ CC=cl65 # System cl65 will compile for. Don't expect this to work if you change it -# (though possibly atarixl might work, with newer cc65s) +# (though possibly atarixl might work someday, with newer cc65s) SYS=atari # Optimization flags for cc65. @@ -28,27 +28,30 @@ VERSION="v$(VER)-$(TODAY)-$(REV)" # hardcoded addresses in various scripts. These are in hex. If any # of them are changed, you *must* run 'make clean'. -# Font. +# Font. Default is for the xex build. Cartridge build changes this. FONT_ADDR=0x2000 -# Title screen data will be decompressed to this address. +# Title screen data will be decompressed to this address. XEX only, +# cartridge doesn't use compressed title. TITLE_DATA_ADDR=0x2400 # Title display list, decompression code, and menu code. Should be -# TITLE_DATA_ADDR plus 0x1744. +# TITLE_DATA_ADDR plus 0x1744. XEX only. TITLE_CODE_ADDR=0x3b44 # Main game start address. All the code in TAIMAIN_C_SRC and # TAIMAIN_ASM_SRC loads here. We get this address by looking for # 'C code can load at' message when making newtitle.xex. It's the -# next byte after the end of the display list. +# next byte after the end of the display list. Default is for the +# XEX, the cart changes it. #TAIMAIN_ADDR=0x3d00 TAIMAIN_ADDR=0x3cc7 -# Size of cc65 parameter stack in bytes. +# Size of cc65 parameter stack in bytes. Default is 0x200, which is +# much bigger than actually necessary. STACK_SIZE=0x200 -# for older cc65, we need a custom linker file. +# for older cc65, we needed a custom linker file. #CFLAGS=-t $(SYS) -C custom.cfg -I. -L. $(COPT) # for recent git cc65, we can reserve memory on the command line. @@ -65,6 +68,7 @@ STACK_SIZE=0x200 CFLAGS=-t $(SYS) -T -I. -L. -Wl -D__SYSTEM_CHECK__=1 -DFONT_ADDR=$(FONT_ADDR) --start-addr $(TAIMAIN_ADDR) -Wl -D__STACKSIZE__=$(STACK_SIZE) $(COPT) $(EXTRACFLAGS) +# These aren't really used: AS=ca65 ASFLAGS= AR=ar65 @@ -103,7 +107,8 @@ BIGNUM_SRC=bigfloat.s BIGNUM_HDRS=bignum.h bigfloat.h BIGNUM_CFLAGS=-DBIGNUM=BIGFLOAT -# Uncomment these for experimental int48 big numbers +# Uncomment these for experimental int48 big numbers. Support +# hasn't been added, so leave these commented for now. #BIGNUM_SRC=bigint48.c #BIGNUM_HDRS=bignum.h bigint48.h #BIGNUM_CFLAGS=-DBIGNUM=BIGINT48 @@ -136,13 +141,16 @@ help: @echo "make - builds taipan.xex (disk version)" @echo "make cart - builds taipan.rom and taipan.cart (cartridge version)" @echo "make test - builds & runs taipan.xex in atari800 emulator" + @echo "make testcart - builds & runs taipan.cart in atari800 emulator" @echo "make dos2 - builds & runs taipan.xex in atari800 on a "; \ - echo " DOS 2.0S floppy image" + echo " DOS 2.0S floppy image [*]" @echo "make mydos - builds & runs taipan.xex in atari800 on a "; \ - echo " MyDOS 4.50 floppy image" + echo " MyDOS 4.50 floppy image [*]" @echo "make fenders - builds & runs taipan.xex in atari800 on a "; \ - echo " Fenders 3-sector Loader floppy image" - @echo "make testcart - builds & runs taipan.cart in atari800 emulator" + echo " Fenders 3-sector Loader floppy image [*]" + @echo + @echo "[*] floppy image targets require 'axe' utility, from:" + @echo " http://urchlay.naptime.net/~urchlay/src/axe-0.2.0.tar.gz" @echo @echo "Useful variables to add to the make command:" @echo " CC - path to cl65 binary (default: cl65, searches PATH)" @@ -176,7 +184,10 @@ mydos: all # The game binary is a multi-part binary load file. This rule -# depends on all the pieces, and just concatenates them. +# depends on all the pieces, and just concatenates them. We used +# to just use cat, but reportedly some (dumb, broken) xex loaders +# have trouble with $FFFF markers at the start of the second and +# further segments, so multixex.pl skips them. $(XEX): checkmem.xex taimain.xex taifont.xex newtitle.xex comptitle.xex $(PERL) multixex.pl checkmem.xex comptitle.xex newtitle.xex taifont.xex taimain.xex > $(XEX) $(PERL) size.pl $(TAIMAIN_ADDR) $(STACK_SIZE) @@ -187,8 +198,9 @@ $(XEX): checkmem.xex taimain.xex taifont.xex newtitle.xex comptitle.xex # is a 280x192 bitmap with a few blank lines at the top & bottom. I # squished it horizontally to 256 pixels and got rid of the blank lines, # to save load time. Note that titledata.dat is not built into -# the game binary as-is: it's now used as input for creating -# comptitle.xex, the compressed title screen. +# the xex binary as-is: it's now used as input for creating +# comptitle.xex, the compressed title screen. For the cartridge, +# titledata.dat is included as-is. titledata.dat: newtitle.pl newtitle.png $(PERL) newtitle.pl > titledata.dat |