1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-30 20:29:25 +00:00
cc65/libsrc/c64
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
..
emd blackystardust pull request with post-review changes 2016-02-26 23:55:55 +01:00
extra remove unneeded exports 2015-11-07 11:45:38 +01:00
joy Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
mou Changed literal zeroes of the style "#>0" into the style "#>$0000". 2014-09-10 19:15:07 -04:00
ser Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
tgi Create static drivers directly from source files. 2014-06-04 23:50:18 +02:00
_scrsize.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
bordercolor.s split regular color.s into color.s and bordercolor.s 2015-10-14 17:25:35 +02:00
break.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cgetc.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
clrscr.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
color.s remove deleted function from comment 2015-10-14 17:52:14 +02:00
conio.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cputc.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
crt0.s Load INITBSS segment from disk. 2016-02-28 19:45:36 +01:00
devnum.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
get_ostype.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
get_tv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
irq.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
joy_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
joy_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
kbhit.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
kernal.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
kplot.s Changed the solution for the PLOT problem with old -02 kernals to that used 2009-09-27 18:45:08 +00:00
libref.s Cleaned 2 source files by removing commented-out lines that are active in other files. 2013-08-23 07:36:11 -04:00
mainargs.s Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
mcbdefault.s Allow to override mouse sprite location data. 2015-10-12 20:18:13 +02:00
mcbspritedata.s Allow to override mouse sprite location data. 2015-10-12 20:18:13 +02:00
mouse_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
mouse_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
mouseref.s Fixed some line endings. 2013-07-25 13:53:15 -04:00
pencalib.c Fixed some line endings. 2013-07-25 13:53:15 -04:00
randomize.s Fixed the random-seed generators for the Commodore targets. 2015-09-11 10:03:07 -04:00
revers.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
soft80_cgetc.s updated comments 2015-10-19 02:47:40 +02:00
soft80_charset.s updated comments 2015-10-19 02:47:40 +02:00
soft80_color.s updated comments 2015-10-19 02:47:40 +02:00
soft80_conio.s Fixed soft80 shutdown. 2015-12-02 21:34:08 +01:00
soft80_cputc.s updated comments 2015-10-19 02:47:40 +02:00
soft80_kclrscr.s use 'soft80_internal_cellcolor' for the current cell color, and CHARCOLOR for the actual textcolor 2015-10-14 17:24:16 +02:00
soft80_kplot.s move some stuff to init segment, saves roughly 1480 bytes :) 2015-10-12 23:39:47 +02:00
soft80_scrsize.s maintain lsb of cursor x position internally, saves some bytes and some cycles too :) 2015-10-12 15:44:41 +02:00
soft80.inc move some stuff to init segment, saves roughly 1480 bytes :) 2015-10-12 23:39:47 +02:00
soft80mono_cgetc.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
soft80mono_color.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
soft80mono_conio.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
soft80mono_cputc.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
soft80mono_kclrscr.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
soft80mono_kplot.s added size optimized monochrom soft80 driver 2015-10-19 02:49:32 +02:00
status.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
systime.s Consistently place constructors (and their exclusive subroutines) in "INIT". 2015-10-09 21:44:20 +02:00
sysuname.s
tgi_colors.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
tgi_stat_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
tgi_stddrv.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00