mirror of
https://github.com/cc65/cc65.git
synced 2025-04-08 19:38:55 +00:00
Atari: fix fallout of change of INIT segment to 'bss' type
The size of the load chunk was calculated incorrectly in exehdr.s since the INIT segment is no longer being part of the file anymore. While at it, change atari-cassette.cfg so that order of BSS and INIT is the same as in the other configs. See 692f96409d4e809d8 why it was in different order.
This commit is contained in:
parent
b75f872fee
commit
0082473630
@ -22,8 +22,8 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro, optional = yes;
|
||||
DATA: load = MAIN, type = rw, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
}
|
||||
FEATURES {
|
||||
CONDES: type = constructor,
|
||||
|
@ -52,7 +52,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
OVERLAY1: load = OVL1, type = ro, define = yes, optional = yes;
|
||||
|
@ -36,7 +36,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
}
|
||||
FEATURES {
|
||||
|
@ -40,7 +40,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
}
|
||||
|
@ -78,7 +78,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
|
||||
|
@ -58,7 +58,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
SRPREPHDR: load = UNUSED, type = ro;
|
||||
SRPREPTRL: load = UNUSED, type = ro;
|
||||
|
@ -65,7 +65,7 @@ SEGMENTS {
|
||||
CODE: load = MAIN, type = ro, define = yes;
|
||||
RODATA: load = MAIN, type = ro;
|
||||
DATA: load = MAIN, type = rw;
|
||||
INIT: load = MAIN, type = bss, optional = yes;
|
||||
INIT: load = MAIN, type = bss, define = yes, optional = yes;
|
||||
BSS: load = MAIN, type = bss, define = yes;
|
||||
AUTOSTRT: load = TRAILER, type = ro;
|
||||
}
|
||||
|
@ -10,10 +10,10 @@
|
||||
|
||||
.include "atari.inc"
|
||||
|
||||
.import __BSS_RUN__, __STARTADDRESS__, _cas_init
|
||||
.import __INIT_RUN__, __STARTADDRESS__, _cas_init
|
||||
.export _cas_hdr
|
||||
|
||||
.assert ((__BSS_RUN__ - __STARTADDRESS__ + 127) / 128) < $101, error, "File to big to load from cassette"
|
||||
.assert ((__INIT_RUN__ - __STARTADDRESS__ + 127) / 128) < $101, error, "File to big to load from cassette"
|
||||
|
||||
|
||||
; for a description of the cassette header, see De Re Atari, appendix C
|
||||
@ -22,7 +22,7 @@
|
||||
|
||||
_cas_hdr:
|
||||
.byte 0 ; ignored
|
||||
.byte <((__BSS_RUN__ - __STARTADDRESS__ + 127) / 128) ; # of 128-byte records to read
|
||||
.byte <((__INIT_RUN__ - __STARTADDRESS__ + 127) / 128) ; # of 128-byte records to read
|
||||
.word __STARTADDRESS__ ; load address
|
||||
.word _cas_init ; init address
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
; This file defines the EXE header and main chunk load header for Atari executables
|
||||
|
||||
.export __EXEHDR__: absolute = 1
|
||||
.import __MAIN_START__, __BSS_LOAD__
|
||||
.import __MAIN_START__, __INIT_LOAD__
|
||||
|
||||
.segment "EXEHDR"
|
||||
.word $FFFF
|
||||
|
||||
.segment "MAINHDR"
|
||||
.word __MAIN_START__
|
||||
.word __BSS_LOAD__ - 1
|
||||
.word __INIT_LOAD__ - 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user