<sect>Custom Run-Time Library Creation<p>
The next step in customizing the cc65 toolset is creating a run-time
-library for the targeted hardware. The easiest way to do this is to
-modify a standard library from the cc65 distribution. In this example,
-there is no console I/O, mouse, joystick, etc. in the system, so it is
-most appropriate to use the simplest library as the base, which is for
-the Watara Supervision and is named "supervision.lib" in the
-lib directory of the distribution.
-
-The only modification required is to replace the <tt>crt0</tt> module in
-the supervision.lib library with custom startup code. This is simply
-done by first copying the library and giving it a new name, compiling
-the startup code with ca65, and finally using the ar65 archiver to
-replace the module in the new library. The steps are shown below:
+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.
+
+When using "none.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>
-$ copy "C:\Program Files\cc65\lib\supervision.lib" sbc.lib
-$ ca65 crt0.s
-$ ar65 a sbc.lib crt0.o
+ cp /usr/local/share/cc65/lib/none.lib sbc.lib
+ ca65 crt0.s
+ ar65 a sbc.lib crt0.o
</verb></tscreen>
<sect>Interrupt Service Routine Definition<p>
used for code storage:
<tscreen><verb>
-$ cc65 -t none -O --cpu 65sc02 main.c
-$ ca65 --cpu 65sc02 main.s
-$ ca65 --cpu 65sc02 rs232_tx.s
-$ ca65 --cpu 65sc02 interrupt.s
-$ ca65 --cpu 65sc02 vectors.s
-$ ca65 --cpu 65sc02 wait.s
-$ ld65 -C sbc.cfg -m main.map interrupt.o vectors.o wait.o rs232_tx.o
- main.o sbc.lib
+ cc65 -t none -O --cpu 65sc02 main.c
+ ca65 --cpu 65sc02 main.s
+ ca65 --cpu 65sc02 rs232_tx.s
+ ca65 --cpu 65sc02 interrupt.s
+ ca65 --cpu 65sc02 vectors.s
+ ca65 --cpu 65sc02 wait.s
+ ld65 -C sbc.cfg -m main.map interrupt.o vectors.o wait.o
+ rs232_tx.o main.o sbc.lib
</verb></tscreen>
During the C-level code compilation phase (<tt>cc65</tt>), assumptions