diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | README.txt | 20 | ||||
-rw-r--r-- | dos25_4drives.atr | bin | 0 -> 133136 bytes |
4 files changed, 12 insertions, 16 deletions
@@ -1,3 +1,5 @@ +.*.swp reloc.atr +reloc25.atr *.o *.xex @@ -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 @@ -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 Binary files differnew file mode 100644 index 0000000..2c2c85b --- /dev/null +++ b/dos25_4drives.atr |