From 6c0ed6f7bb728734077c2830ea3681f6a54feddc Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Sat, 26 Apr 2025 05:49:57 -0400 Subject: Makefile: add DOS 2.5 test target. --- .gitignore | 2 ++ Makefile | 6 ++++++ README.txt | 20 ++++---------------- dos25_4drives.atr | Bin 0 -> 133136 bytes 4 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 dos25_4drives.atr diff --git a/.gitignore b/.gitignore index dc34f28..6342bfb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ +.*.swp reloc.atr +reloc25.atr *.o *.xex diff --git a/Makefile b/Makefile index 6e1a27f..ed90eae 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,9 @@ +all: reloc.atr reloc25.atr + +reloc25.atr: reloc.atr + cp dos25_4drives.atr reloc25.atr + axe -w autorun.sys reloc25.atr + reloc.atr: reloc.xex hello40.xex hello41.xex mkrelocxex.pl autorun.sys cp dos_20s.atr reloc.atr axe -w autorun.sys reloc.atr diff --git a/README.txt b/README.txt index 5505d95..6c0a188 100644 --- a/README.txt +++ b/README.txt @@ -223,11 +223,7 @@ $00 40 - code_init High byte relocation table: -$02 $40 ; hi byte of JSR $4007 operand -$05 $40 ; hi byte of JSR $400E operand -$09 $40 ; hi byte of LDA $4015 operand -$10 $40 ; hi byte of LDA $4016 -$00 $00 ; terminator +TODO: finish and fix. Program loads from $4000 to $4016. If MEMLO was $1CFC, the relocator will move the program to $1D00 - $1D16 and set MEMLO to $1D17. The @@ -243,18 +239,10 @@ However, the relocator and tables are only used once, and can be overwritten afterwards (so they count as free memory). Relocation Table Format +----------------------- -Current implementation: - -A list of addresses that need to be adjusted (high bytes of absolute -addresses), 2 bytes each, terminated with $00 $00. - -Possible future implementation: - -Bitmap. One bit per byte in the file. 1 if the address needs -adjusting, 0 if not. This *probably* will actually be smaller than -the list of addresses. Also has the advantage of being a fixed size, -easily calculated/predicted. +Bitmap. One bit per byte in the file, read from high bit to low. 1 if +the address needs adjusting, 0 if not. The relocator is 256 bytes long or less. The GR.0 display list with a 16K cart in is at $7C20. diff --git a/dos25_4drives.atr b/dos25_4drives.atr new file mode 100644 index 0000000..2c2c85b Binary files /dev/null and b/dos25_4drives.atr differ -- cgit v1.2.3