1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-23 04:30:10 +00:00
cc65/cfg
Oliver Schmidt 3d08abcfa8 Load INITBSS segment from disk.
Conceptually the INITBSS segment is not initialized in any way. Therefore it makes sense to not load it from disk. However the INIT segment has to be loaded from disk and therefore moved to its run location above the INITBSS segment. The necessary move routine increases runtime RAM usage :-(

Therefore we now "unnecessarily" load the INITBSS segment from disk too meaning that the INIT segment is loaded at its run location. Therefore there's no need for the move routine anymore.

After all we trade disk space for (runtime) RAM space - an easy decision ;-)

Notes:

- The code allowing to re-run a program without re-load present so far could not have worked as far as I can see as it only avoided to re-run the move routine but still tried to re-run the code in the INIT segment that was clobbered by zeroing the BSS. Therefore I removed the code in question altogether. I'm personally not into this "dirty re-run" but if someone wants to add an actually working solution I won't block that.

- INITBSS is intentionally not just merged with the DATA segment as ROM-based targets can't reuse the INIT segment for the BSS and therefore have no reason to place the INIT segment above INITBSS.

- Because ROM-based targets don't copy INITBSS from the ROM (like it is done with the DATA segment) all users of INITBSS _MUST_NOT_ presume INITBSS to be initialized with zeros!
2016-02-28 19:45:36 +01:00
..
apple2-asm.cfg add ZEROPAGE segment to apple2-asm.cfg and c64-asm.cfg 2014-01-22 18:15:51 +01:00
apple2-overlay.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
apple2-system.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
apple2.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
apple2enh-asm.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
apple2enh-overlay.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
apple2enh-system.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
apple2enh.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atari5200.cfg Don't reserve space for display list in __RESERVED_MEMORY__ since the 2014-05-27 02:43:17 +02:00
atari-asm.cfg add EXTZP segment to atari-asm.cfg 2014-01-22 18:15:52 +01:00
atari-cart.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atari-cassette.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atari-overlay.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atari.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atarixl-largehimem.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atarixl-overlay.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atarixl.cfg Adjusted current working directory initialization on Apple and Atari. 2015-10-15 00:15:38 +02:00
atmos.cfg Added comments that say why the ZPSAVE1 and ZPSAVE2 segments must be together. 2015-01-08 17:07:28 -05:00
bbc.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
c16.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
c64-asm.cfg add ZEROPAGE segment to apple2-asm.cfg and c64-asm.cfg 2014-01-22 18:15:51 +01:00
c64-overlay.cfg Load INITBSS segment from disk. 2016-02-28 19:45:36 +01:00
c64.cfg Load INITBSS segment from disk. 2016-02-28 19:45:36 +01:00
c128-overlay.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
c128.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
cbm510.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
cbm610.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
gamate.cfg more cleanup 2015-11-29 20:04:10 +01:00
geos-apple.cfg Made EXTZP segment optional on GEOS as it is used only by CONIO. 2013-08-20 07:43:47 +02:00
geos-cbm.cfg Made EXTZP segment optional on GEOS as it is used only by CONIO. 2013-08-20 07:43:47 +02:00
lunix.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
lynx-bll.cfg Use LOWCODE segment 2014-03-19 11:32:44 +02:00
lynx-coll.cfg Use LOWCODE segment 2014-03-19 11:32:44 +02:00
lynx-uploader.cfg Use LOWCODE segment 2014-03-19 11:32:44 +02:00
lynx.cfg Use LOWCODE segment 2014-03-19 11:32:44 +02:00
module.cfg Reintroduced optional INIT segment for (weird) NES TGI driver. 2014-05-01 22:12:05 +02:00
nes.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
none.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
osic1p-asm.cfg Fixed uninitialized use of low byte of address "load". 2015-03-14 00:01:12 +01:00
osic1p.cfg More room by default for zero-page data. 2015-03-23 18:42:25 +01:00
pce.cfg added interruptor support 2015-09-19 15:55:43 +02:00
pet.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
plus4.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
sim65c02.cfg Added 'sim6502' and 'sim65C02' targets. 2013-05-20 20:35:42 +02:00
sim6502.cfg Added 'sim6502' and 'sim65C02' targets. 2013-05-20 20:35:42 +02:00
supervision-16k.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
supervision-64k.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
supervision-128k.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
supervision.cfg Replaced builtin linker configs with ordinary .cfg files. 2013-04-09 23:09:46 +02:00
vic20-32k.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
vic20.cfg Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00