The standard binary output format generated by the linker for the
Apple ][ target is a machine language program with a 4 byte DOS
-3.3 header. The standard load address is $803.
+3.3 header containing the load address and load size. The standard load address
+is $803.
-The DOS header is in its own segment named <tt/EXEHDR/. If you don't want the
-header for some reason, you can change
+The DOS 3.3 header is in its own segment named <tt/EXEHDR/. If you don't want
+the header for some reason, you can change
<verb>
HEADER: start = $0000, size = $0004, file = %O;
in the linker configuration to have the linker remove it.
-Please note that there is an 'Apple ][ ProDOS 8 system program
-for loading binary programs' available in the cc65 User Contributions section.
+<bf/AppleCommander 1.3.5/ or later (available at <url
+url="http://applecommander.sourceforge.net/">) includes an option <tt/-cc65/
+that allows to put binary files with the DOS 3.3 header onto disk images
+containing either DOS 3.3 or ProDOS 8.
+
+Please note that there is an <bf/Apple ][ ProDOS 8 system program
+for loading binary programs/ available in the cc65 User Contributions section.
It adds all benefits of a ProDOS 8 system program to the standard binary
program generated by the linker for the Apple ][ target.
<sect>Limitations<p>
+<sect1>DOS 3.3 Limitations<p>
+
+Although the standard binaries generated by the linker for the Apple ][
+generally run both on DOS 3.3 (with Applesoft BASIC) and on ProDOS 8 (with
+BASIC.SYSTEM) there are some limitations for DOS 3.3:
+
+<descrip>
+
+ <tag>Disk File I/O</tag>
+ There's no disk file I/O support. Any attempt to use it yields an error with
+ <tt/errno/ set to <tt/ENOSYS/. This implicitly means that loadable drivers
+ are in general not functional as they depend on disk file I/O. However they
+ may be converted to statically linked drivers using the co65 object-file
+ converter.
+
+ <tag>Interrupts</tag>
+ There's no <tt/interruptor/ support. Any attempt to use it yields the message
+ 'FAILED TO ALLOC INTERRUPT' on program startup. This implicitly means that
+ <tt/a2.stdmou.mou/ and <tt/a2.ssc.ser/ are not functional as they depend on
+ interrupts.
+
+</descrip><p>
+
<sect>Other hints<p>
The standard binary output format generated by the linker for the
enhanced Apple //e target is a machine language program with a 4 byte DOS
-3.3 header. The standard load address is $803.
+3.3 header containing the load address and load size. The standard load address
+is $803.
-The DOS header is in its own segment named <tt/EXEHDR/. If you don't want the
-header for some reason, you can change
+The DOS 3.3 header is in its own segment named <tt/EXEHDR/. If you don't want
+the header for some reason, you can change
<verb>
HEADER: start = $0000, size = $0004, file = %O;
in the linker configuration to have the linker remove it.
-Please note that there is an 'Apple ][ ProDOS 8 system program
-for loading binary programs' available in the cc65 User Contributions section.
+<bf/AppleCommander 1.3.5/ or later (available at <url
+url="http://applecommander.sourceforge.net/">) includes an option <tt/-cc65/
+that allows to put binary files with the DOS 3.3 header onto disk images
+containing either DOS 3.3 or ProDOS 8.
+
+Please note that there is an <bf/Apple ][ ProDOS 8 system program
+for loading binary programs/ available in the cc65 User Contributions section.
It adds all benefits of a ProDOS 8 system program to the standard binary
program generated by the linker for the enhanced Apple //e target.
<sect>Limitations<p>
+<sect1>DOS 3.3 Limitations<p>
+
+Although the standard binaries generated by the linker for the enhanced Apple //e
+generally run both on DOS 3.3 (with Applesoft BASIC) and on ProDOS 8 (with
+BASIC.SYSTEM) there are some limitations for DOS 3.3:
+
+<descrip>
+
+ <tag>Disk File I/O</tag>
+ There's no disk file I/O support. Any attempt to use it yields an error with
+ <tt/errno/ set to <tt/ENOSYS/. This implicitly means that loadable drivers
+ are in general not functional as they depend on disk file I/O. However they
+ may be converted to statically linked drivers using the co65 object-file
+ converter.
+
+ <tag>Interrupts</tag>
+ There's no <tt/interruptor/ support. Any attempt to use it yields the message
+ 'Failed to alloc interrupt' on program startup. This implicitly means that
+ <tt/a2e.stdmou.mou/ and <tt/a2e.ssc.ser/ are not functional as they depend on
+ interrupts.
+
+</descrip><p>
+
+
<sect>Other hints<p>
<sect>What is VICE?<p>
-VICE is an emulator for many of the CBM machines. It runs on Unix, DOS and
-Windows 95. It emulates the Commodore 64, 128, VIC20, PET and the 600/700
-machines. For more information see the VICE home page:
+VICE is an emulator for many of the CBM machines. It runs on Unix, MS-DOS,
+Win32, OS/2, Acorn RISC OS, BeOS, QNX 6.x, Amiga, GP2X and Mac OS X. It emulates
+the Commodore 64, 128, VIC20, PET and the 600/700 machines. For more information
+see the VICE home page:
-<htmlurl url="http://www.cs.cmu.edu/~dsladic/vice/vice.html"
-name="http://www.cs.cmu.edu/~dsladic/vice/vice.html">
+<htmlurl url="http://www.viceteam.org/">
VICE has a builtin machine language monitor that may be used for debugging
your programs. Using an emulator for debugging has some advantages:
</itemize>
-Please note that you need at least VICE version 0.16 for the label file
-feature to work. This version has still some problems (see <ref id="problems"
-name="Problems and workarounds">), but older versions had even more problems
-and do <em/not/ work correctly.
-
<sect>How to prepare your programs<p>
-<sect>Problems and workarounds<label id="problems"><p>
-
-Older versions of VICE had several problems with labels. However, even those
-versions were still tremendously useful, and all known problems are gone in
-current versions. So, here is a list of the problems known to me as of version
-0.16.1:
-
-<itemize>
-
-<item>The "<tt/ll/" command does not work. Worse, it seems that internal
-memory gets corrupted when using this command, so VICE will crash after use.
-Use the "<tt/pb/" command to load the label file in this case.
-
-<item>VICE will crash if you use a label that is undefined. This is probably
-the worst problem of all, since it needs just one typo to kill VICE. So, watch
-your steps:-)
-
-<item>Cheap labels, that is, labels starting with '@' or '?' are not accepted.
-
-<item>The disassembly output is somewhat suboptimal. However, most things are
-just cosmetical, e.g. labels appended to the right side of the disassembled
-code.
-
-</itemize>
-
-<bf>Note</bf>: All these problems are fixed in current (>= 1.0) VICE
-versions. If you're really using such an old version, you should think about
-an upgrade.
-
-
-
</article>