From ad5646c813f1068342592a63646de7ba5dae7c3c Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 13 Apr 2026 06:08:41 -0400 Subject: Move crt0.s STARTUP segment to page 6 (where it can be overwritten by edit_box after it runs). 7729 bytes free. --- src/atari.cfg | 10 ++++++++-- src/page6.s | 5 +++++ 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 src/page6.s (limited to 'src') diff --git a/src/atari.cfg b/src/atari.cfg index 821374d..53fc6ba 100644 --- a/src/atari.cfg +++ b/src/atari.cfg @@ -14,6 +14,10 @@ MEMORY { # file header, just $FFFF HEADER: file = %O, start = $0000, size = $0002; +# page 6 + P6HDR: file = %O, start = $0000, size = $0004; + PAGE6: file = %O, define = yes, start = $0600, size = $00ff; + # "main program" load chunk MAINHDR: file = %O, start = $0000, size = $0004; MAIN: file = %O, define = yes, start = %S, size = $8000 - __STACKSIZE__ - __RESERVED_MEMORY__ - %S; @@ -23,11 +27,12 @@ SEGMENTS { ZEROPAGE: load = ZP, type = zp; EXTZP: load = ZP, type = zp, optional = yes; EXEHDR: load = HEADER, type = ro; + P6HDR: load = P6HDR, type = ro; + ONCE: load = PAGE6, type = ro, define = yes; # not used by fnchat! + STARTUP: load = PAGE6, type = ro, define = yes; MAINHDR: load = MAINHDR, type = ro; - STARTUP: load = MAIN, type = ro, define = yes; LOWBSS: load = MAIN, type = rw, optional = yes; # not zero initialized LOWCODE: load = MAIN, type = ro, define = yes, optional = yes; - ONCE: load = MAIN, type = ro, optional = yes; CODE: load = MAIN, type = ro, define = yes; RODATA: load = MAIN, type = ro; DATA: load = MAIN, type = rw; @@ -35,6 +40,7 @@ SEGMENTS { BSS: load = MAIN, type = bss, define = yes; AUTOSTRT: load = TRAILER, type = ro; } + FEATURES { CONDES: type = constructor, label = __CONSTRUCTOR_TABLE__, diff --git a/src/page6.s b/src/page6.s new file mode 100644 index 0000000..772a0c8 --- /dev/null +++ b/src/page6.s @@ -0,0 +1,5 @@ + + .import __STARTUP_SIZE__ + .segment "P6HDR" + .word $0600 + .word $0600 + __STARTUP_SIZE__ - 1 -- cgit v1.2.3