ZEROPAGE: load = ZP, type = zp, define = yes;
DATA: load = ROM, type = rw, define = yes, run = RAM;
BSS: load = RAM, type = bss, define = yes;
- HEAP: load = RAM, type = bss, optional = yes;
STARTUP: load = ROM, type = ro;
ONCE: load = ROM, type = ro, optional = yes;
CODE: load = ROM, type = ro;
<p><tt> ZEROPAGE: </tt>Data in page 0, defined by ZP as starting at $0 with length $100
<p><tt> DATA: </tt>Initialized data that can be modified by the program, stored in RAM
<p><tt> BSS: </tt>Uninitialized data stored in RAM (used for variable storage)
-<p><tt> HEAP: </tt>Uninitialized C-level heap storage in RAM, optional
<p><tt> STARTUP: </tt>The program initialization code, stored in ROM
<p><tt> ONCE: </tt>The code run once to initialize the system, stored in ROM
<p><tt> CODE: </tt>The program code, stored in ROM
The next step in customizing the cc65 toolset is creating a run-time
library for the targeted hardware. The recommended way to do this is to
modify the platform-independent standard library of the cc65 distribution.
-It is named "none.lib" in the lib directory of the distribution.
+It is named "no-platform.lib" in the lib directory of the
+cc65 distribution.
-When using "none.lib" we need to supply our own <tt>crt0</tt>
+When using "no-platform.lib" we need to supply our own <tt>crt0</tt>
module with custom startup code. This is simply done by first copying the
the library and giving it a new name, compiling the startup code with ca65,
and finally using the ar65 archiver to add the module to the new library.
The steps are shown below:
<tscreen><verb>
- cp /usr/local/share/cc65/lib/none.lib sbc.lib
+ cp /usr/local/share/cc65/lib/no-platform.lib sbc.lib
ca65 crt0.s
ar65 a sbc.lib crt0.o
</verb></tscreen>