1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-05 06:28:57 +00:00
cc65/libsrc/cbm
Oliver Schmidt 0ee9b2e446 Changed run location of INIT segment.
So far the INIT segment was run from the later heap+stack. Now the INIT segment is run from the later BSS. The background is that so far the INIT segment was pretty small (from $80 to $180 bytes). But upcoming changes will increase the INIT segment in certain scenarios up to ~ $1000 bytes. So programs with very limited heap+stack might just not been able to move the INIT segment to its run location. But moving the INIT segment to the later BSS allows it to occupy the later BSS+heap+stack.

In order to allow that the constructors are _NOT_ allowed anymore to access the BSS. Rather they must use the DATA segment or the new INITBSS segment. The latter isn't cleared at any point so the constructors may use it to expose values to the main program. However they must make sure to always write the values as they are not pre-initialized.
2015-10-14 22:52:09 +02:00
..
c_acptr.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_basin.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_bsout.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_chkin.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_ciout.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_ckout.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_clall.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_close.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_clrch.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_getin.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_iobase.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_listen.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_load.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_open.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_readst.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_save.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_setlfs.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_setnam.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_talk.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_unlsn.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
c_untlk.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cbm_close.s Added comments to cbm.h. 2001-03-20 21:06:04 +00:00
cbm_dir.c Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cbm_filetype.s Move definitions for CBM file types into its own header file, since these 2012-06-24 13:52:06 +00:00
cbm_load.c Made _afailed() and uncompress() be fastcall functions. 2015-03-13 07:35:47 -04:00
cbm_open.s Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
cbm_read.s Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
cbm_save.c Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
cbm_write.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cbm.inc Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
cclear.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
chline.s Allow to override chars used for horizontal and vertical lines. 2015-10-12 21:04:06 +02:00
clinechars.s Allow to override chars used for horizontal and vertical lines. 2015-10-12 21:04:06 +02:00
clock.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
close.s Fixed sources to use the new __mappederrno and __directerrno functions, and 2010-06-26 11:28:44 +00:00
closedir.s Added the POSIX functions opendir() and closedir(). 2012-05-30 19:37:57 +00:00
ctype.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
curdevice.s Introduced getcurrentdevice() and implemented it for CBM and Apple. 2012-10-21 14:35:17 +00:00
cvline.s Allow to override chars used for horizontal and vertical lines. 2015-10-12 21:04:06 +02:00
devicedir.s Added check for disk in drive on chdir(). 2012-10-17 20:24:43 +00:00
dir.h Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
dir.inc Implemented rewinddir/seekdir. 2012-06-03 15:11:32 +00:00
dir.s Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
diskcmd.s Comment additions and changes. 2009-02-22 14:42:32 +00:00
diskinit.s Fixed typo (Ilegal). 2014-04-03 17:28:36 -04:00
exec.c Made the Commodore version of exec() work in programs that are so big that they load into all of BASIC RAM. 2015-09-28 11:27:39 -04:00
execvars.s Made the Commodore version of exec() work in programs that are so big that they load into all of BASIC RAM. 2015-09-28 11:27:39 -04:00
exehdr.s The BASIC stub does encode the start address with only 4 digits. Add a check 2011-07-08 08:58:41 +00:00
filedes.inc Working on the CBM file functions 2002-11-17 22:45:55 +00:00
filedes.s Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
filename.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
filetype.s Move the _filetype variable into its own module, so people who want to change 2012-07-15 12:34:35 +00:00
filevars.s Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
getdevice.s Minimal formatting adjustment. 2012-10-16 21:29:14 +00:00
gotox.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
gotoxy.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
gotoy.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
initcwd.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
loadaddr.s New module that contains the load address expected by the Commodore machines 2010-11-13 16:56:42 +00:00
mcbpointercolor.s Keep low level VIC sprite stuff out of user code. 2015-10-09 18:33:35 +02:00
mcbpointershape.s Keep low level VIC sprite stuff out of user code. 2015-10-09 18:33:35 +02:00
open.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
opendir.c Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
oserrlist.s Used longer error text. 2014-05-28 23:01:48 -04:00
oserror.s Used longer error text. 2014-05-28 23:01:48 -04:00
overlayaddr.s Use cbm_load() to load overlays on CBMs. 2013-05-29 01:12:24 +02:00
penadjust.c Fixed some line endings. 2013-07-25 13:53:15 -04:00
read.s Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00
readdir.c Changed multi-line C comments into another style. 2014-06-30 16:51:07 -04:00
rewinddir.s Implemented rewinddir/seekdir. 2012-06-03 15:11:32 +00:00
rwcommon.s Fixed sources to use the new __mappederrno and __directerrno functions, and 2010-06-26 11:28:44 +00:00
scratch.s Moved some code from scratch.s into a new subroutine named writefndiskcmd in 2009-02-22 14:02:52 +00:00
seekdir.c Fixed a buffer overrun bug. 2014-07-17 07:05:10 -04:00
syschdir.s Improved some multiplication code. 2014-07-17 07:11:14 -04:00
sysremove.s fnparse will return zero flag according to error (ZF=1 means no error). 2009-02-22 13:54:03 +00:00
sysrename.s Be sure to read disk errors after sending the command on the command channel. 2009-07-27 18:42:37 +00:00
telldir.s Added the telldir() function. 2012-06-03 14:03:22 +00:00
toascii.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
wherex.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
wherey.s Removed (pretty inconsistently used) tab chars from source code base. 2013-05-09 13:57:12 +02:00
write.s Changed run location of INIT segment. 2015-10-14 22:52:09 +02:00