@@ -13,6 +13,11 @@ SYMBOLS {
1313}
1414MEMORY {
1515 ZP: file = " " , define = yes, start = $0082, size = $007E;
16+
17+ # Preinitialization 1 - Disable BASIC
18+ PRE: file = %O, define = no, start = $2000, size = $0200; # init code that runs once and then overwritten (by SCREEN data etc)
19+ PRE_NOSAV: file = " " , define = no, start = $2200, size = $0100; # work aread for PRE-INIT routines that will be overwritten and not saved to disk
20+
1621# "system check" load chunk
1722 # SYSCHKCHNK: file = %O, start = $2E00, size = $0300;
1823# "main program" load chunk
@@ -22,12 +27,15 @@ FILES {
2227 %O: format = atari;
2328}
2429FORMATS {
25- atari: runad = start; #,
30+ atari: runad = start,
31+ initad = PRE: pre_init; #,
2632 # initad = SYSCHKCHNK: __SYSTEM_CHECK__;
2733}
2834SEGMENTS {
2935 ZEROPAGE: load = ZP, type = zp;
3036 EXTZP: load = ZP, type = zp, optional = yes;
37+ INIT: load = PRE, type = ro, define = yes; # initialisation routines that will be overwritten
38+ INIT_NS: load = PRE_NOSAV, type = rw, define = yes; # used as temporary bss-like data area for init routines but will be reused
3139 # SYSCHK: load = SYSCHKCHNK, type = rw, define = yes, optional = yes;
3240 STARTUP: load = MAIN, type = ro, define = yes;
3341 LOWBSS: load = MAIN, type = rw, optional = yes; # not zero initialized
@@ -36,9 +44,9 @@ SEGMENTS {
3644 CODE: load = MAIN, type = ro, define = yes;
3745 RODATA: load = MAIN, type = ro;
3846 DATA: load = MAIN, type = rw;
39- INIT: load = MAIN, type = rw, optional = yes;
47+ # INIT: load = MAIN, type = rw, optional = yes;
4048 BSS: load = MAIN, type = bss, define = yes;
41-
49+
4250 GFX8_DL: load = MAIN, type = rw, align = $0400, define = yes;
4351 # GFX8_CONSOLE_DL: load = MAIN, type = rw, align = $0100, define = yes;
4452 # GFX9_CONSOLE_DL: load = MAIN, type = rw, align = $0100, define = yes;
0 commit comments