1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-22 12:30:41 +00:00

Several updates by Oliver Schmidt.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3845 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2008-06-16 17:32:33 +00:00
parent 7e682896b1
commit e1adb1ee57
3 changed files with 74 additions and 51 deletions

View File

@ -35,10 +35,11 @@ more information.
The standard binary output format generated by the linker for the The standard binary output format generated by the linker for the
Apple ][ target is a machine language program with a 4 byte DOS 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 The DOS 3.3 header is in its own segment named <tt/EXEHDR/. If you don't want
header for some reason, you can change the header for some reason, you can change
<verb> <verb>
HEADER: start = $0000, size = $0004, file = %O; HEADER: start = $0000, size = $0004, file = %O;
@ -52,8 +53,13 @@ to
in the linker configuration to have the linker remove it. in the linker configuration to have the linker remove it.
Please note that there is an 'Apple&nbsp;&rsqb;&lsqb; ProDOS 8 system program <bf/AppleCommander 1.3.5/ or later (available at <url
for loading binary programs' available in the cc65 User Contributions section. 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&nbsp;&rsqb;&lsqb; 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 It adds all benefits of a ProDOS 8 system program to the standard binary
program generated by the linker for the Apple&nbsp;&rsqb;&lsqb; target. program generated by the linker for the Apple&nbsp;&rsqb;&lsqb; target.
@ -224,6 +230,29 @@ you cannot do it, it just means that there's no help.
<sect>Limitations<p> <sect>Limitations<p>
<sect1>DOS 3.3 Limitations<p>
Although the standard binaries generated by the linker for the Apple&nbsp;&rsqb;&lsqb;
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> <sect>Other hints<p>

View File

@ -35,10 +35,11 @@ more information.
The standard binary output format generated by the linker for the The standard binary output format generated by the linker for the
enhanced&nbsp;Apple&nbsp;//e target is a machine language program with a 4 byte DOS enhanced&nbsp;Apple&nbsp;//e target is a machine language program with a 4 byte DOS
3.3 header. The standard load address is &dollar;803. 3.3 header containing the load address and load size. The standard load address
is &dollar;803.
The DOS header is in its own segment named <tt/EXEHDR/. If you don't want the The DOS 3.3 header is in its own segment named <tt/EXEHDR/. If you don't want
header for some reason, you can change the header for some reason, you can change
<verb> <verb>
HEADER: start = $0000, size = $0004, file = %O; HEADER: start = $0000, size = $0004, file = %O;
@ -52,8 +53,13 @@ to
in the linker configuration to have the linker remove it. in the linker configuration to have the linker remove it.
Please note that there is an 'Apple&nbsp;&rsqb;&lsqb; ProDOS 8 system program <bf/AppleCommander 1.3.5/ or later (available at <url
for loading binary programs' available in the cc65 User Contributions section. 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&nbsp;&rsqb;&lsqb; 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 It adds all benefits of a ProDOS 8 system program to the standard binary
program generated by the linker for the enhanced&nbsp;Apple&nbsp;//e target. program generated by the linker for the enhanced&nbsp;Apple&nbsp;//e target.
@ -221,6 +227,30 @@ you cannot do it, it just means that there's no help.
<sect>Limitations<p> <sect>Limitations<p>
<sect1>DOS 3.3 Limitations<p>
Although the standard binaries generated by the linker for the enhanced&nbsp;Apple&nbsp;//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>Other hints<p>

View File

@ -24,12 +24,12 @@ tools and the VICE CBM emulator.
<sect>What is VICE?<p> <sect>What is VICE?<p>
VICE is an emulator for many of the CBM machines. It runs on Unix, DOS and VICE is an emulator for many of the CBM machines. It runs on Unix, MS-DOS,
Windows 95. It emulates the Commodore 64, 128, VIC20, PET and the 600/700 Win32, OS/2, Acorn RISC OS, BeOS, QNX 6.x, Amiga, GP2X and Mac OS X. It emulates
machines. For more information see the VICE home page: 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" <htmlurl url="http://www.viceteam.org/">
name="http://www.cs.cmu.edu/~dsladic/vice/vice.html">
VICE has a builtin machine language monitor that may be used for debugging VICE has a builtin machine language monitor that may be used for debugging
your programs. Using an emulator for debugging has some advantages: your programs. Using an emulator for debugging has some advantages:
@ -49,11 +49,6 @@ from the monitor.
</itemize> </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>How to prepare your programs<p>
@ -131,37 +126,6 @@ the compiler prepends an underline under most named labels).
<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 (&gt;= 1.0) VICE
versions. If you're really using such an old version, you should think about
an upgrade.
</article> </article>