aboutsummaryrefslogtreecommitdiff
path: root/README.txt
diff options
context:
space:
mode:
authorB. Watson <urchlay@slackware.uk>2025-04-26 05:49:57 -0400
committerB. Watson <urchlay@slackware.uk>2025-04-26 05:49:57 -0400
commit6c0ed6f7bb728734077c2830ea3681f6a54feddc (patch)
treee325267fe17dca77f434f034f627561c217ef446 /README.txt
parentc3133bb6cde23877c38659820a410dd7688cf813 (diff)
downloadatari8-self-relocator-6c0ed6f7bb728734077c2830ea3681f6a54feddc.tar.gz
Makefile: add DOS 2.5 test target.
Diffstat (limited to 'README.txt')
-rw-r--r--README.txt20
1 files changed, 4 insertions, 16 deletions
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.