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:
parent
7e682896b1
commit
e1adb1ee57
@ -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 ][ 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 ][ 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 ][ target.
|
program generated by the linker for the Apple ][ 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 ][
|
||||||
|
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>
|
||||||
|
@ -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 Apple //e target is a machine language program with a 4 byte DOS
|
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
|
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 ][ 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 ][ 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 Apple //e target.
|
program generated by the linker for the enhanced Apple //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 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>Other hints<p>
|
||||||
|
|
||||||
|
@ -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 (>= 1.0) VICE
|
|
||||||
versions. If you're really using such an old version, you should think about
|
|
||||||
an upgrade.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user