<article>
<title>co65 Users Guide
-<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
-<date>12.02.2003
+<author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">
<abstract>
co65 is an object file conversion utility. It converts o65 object files into
co65 is an object file conversion utility. It converts o65 object files into
assembler files, which may be translated by ca65 to generate object files in
-the native object file format used by the cc65 tool chain.
+the native object file format used by the cc65 tool chain.
Since loadable drivers used by the library that comes with cc65 use the o65
relocatable object code format, using the co65 utility allows to link these
When accessing such a label from C code, be sure to include the leading
underscore. If you don't need to access the data segment, there's no need to
use this option.
-
+
<tag><tt>--data-name seg</tt></tag>
<tag><tt>--zeropage-name seg</tt></tag>
- Set the name of the data segment. The default name is "ZEROPAGE" which is
+ Set the name of the zeropage segment. The default name is "ZEROPAGE" which is
compatible with the standard ld65 linker configurations.
+</descrip>
<sect>Input and output<p>
When loading a driver at runtime, the load address of the driver is also the
address of the code segment, so the locations of the header and jump table are
known. However, when linking the driver statically, it is up to the programmer
-to provide this information to the driver API.
+to provide this information to the driver API.
For this purpose, it is necessary to define a code segment label that can be
accessed from the outside later. Please note that the converter does currently
Be sure to never modify the variable which is in reality the start of your
driver!
+
+<sect1>Example - Convert and link a graphics driver<p>
+
As an example, here are some instructions to convert and use the c64-hi.tgi
graphics driver:
ca65 c64-hi.s
</verb></tscreen>
-Next, change your C code to declare a variable that is actually the first byte
+Next, change your C code to declare a variable that is actually the address
of the driver:
<tscreen><verb>
- extern char c64_hi;
+ extern void c64_hi[];
</verb></tscreen>
Instead of loading and unloading the driver, change the code to install and
<tscreen><verb>
/* Install the driver */
- tgi_install (&c64_hi);
+ tgi_install (c64_hi);
...
-<sect>Bugs/Feedback<p>
-
-If you have problems using the converter, if you find any bugs, or if you're
-doing something interesting with the code, I would be glad to hear from you.
-Feel free to contact me by email (<htmlurl url="mailto:uz@cc65.org"
-name="uz@cc65.org">).
-
-
-
<sect>Copyright<p>
co65 is (C) Copyright 2003 Ullrich von Bassewitz. For usage of the binaries