1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-28 06:30:16 +00:00

Updated docs from Oliver Schmidt

git-svn-id: svn://svn.cc65.org/cc65/trunk@3649 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2005-11-17 18:21:10 +00:00
parent 33542e3ed9
commit 8634943406

View File

@ -30,6 +30,7 @@ be available on more than one platform. Please see the function reference for
more information.
<sect>Binary format<p>
The standard binary output format generated by the linker for the
@ -96,7 +97,6 @@ usage.
</itemize>
<sect1>Hardware access<p>
There's currently no support for direct hardware access. This does not mean
@ -106,40 +106,20 @@ you cannot do it, it just means that there's no help.
<sect>Loadable drivers<p>
<em>Note:</em> Since the Apple&nbsp;&rsqb;&lsqb; doesn't have working disk I/O
(see <ref id="limitations" name="section &quot;Limitations&quot;">), the
available drivers cannot be loaded at runtime (so the term "loadable drivers"
is somewhat misleading). Instead, the drivers have to be converted using the
<htmlurl url="co65.html" name="co65 utility"> and statically linked. While
this may seem overhead, it has two advantages:
<enum>
<item>The interface is identical to the one used for other platforms
and to the one for the Apple&nbsp;&rsqb;&lsqb; once it has disk I/O.
<item>Once disk I/O is available, existing code can be changed to load drivers
at runtime with almost no effort.
</enum>
<sect1>Graphics drivers<p>
<em>Note:</em> Since memory for the high resolution graphics has to be allocated,
programs using graphics drivers will have to be linked using a special linker
configuration. See the <tt/apple2-tgi.cfg/ file in the documentation
directory, and the <htmlurl url="ld65.html" name="linker documentation"> on
how to use it.
<descrip>
<tag><tt/a2.lo.tgi/</tag>
This driver was written by Stefan Haubenthal. It features a resolution of
40&times;40 with 16 colors. At the bottom of the screen, 4 additional text lines
are available.
40&times;40 with 16 colors. At the bottom of the screen, 4 additional text
lines are available.
<tag><tt/a2.hi.tgi/</tag>
This driver was written by Stefan Haubenthal. It features a resolution of
280&times;192 with 6 colors.
280&times;192 with 6 colors. Note that programs using this driver will have
to be linked with <tt/--start-addr $4000/ to reserve the first hires page.
</descrip><p>
@ -151,13 +131,12 @@ how to use it.
<tag><tt/a2.lc.emd/</tag>
Gives access to 12KB RAM (48 pages of 256 bytes each) on the
Apple&nbsp;&rsqb;&lsqb; language card. The driver was contributed by
Stefan Haubenthal. Note: This driver is incompatible with any DOS using
Stefan Haubenthal. Note that this driver is incompatible with any DOS using
the language card memory!
</descrip><p>
<sect1>Joystick drivers<p>
<descrip>
@ -169,7 +148,6 @@ how to use it.
</descrip><p>
<sect1>Mouse drivers<p>
Currently no drivers available (in fact, the API for loadable mouse drivers
@ -178,37 +156,26 @@ does not exist).
<sect1>RS232 device drivers<p>
No serial drivers are currently available for the Apple&nbsp;&rsqb;&lsqb;.
<descrip>
<tag><tt/a2.ssc.ser/</tag>
Driver for the Apple&nbsp;&rsqb;&lsqb; Super Serial Card. Supports up to
19200 baud, hardware flow control (RTS/CTS) and interrupt driven receives.
Note that because of the peculiarities of the 6551 chip transmits are not
interrupt driven, and the transceiver blocks if the receiver asserts flow
control because of a full buffer.
</descrip><p>
<sect>Limitations<label id="limitations"><p>
<sect>Limitations<p>
<sect1>Disk I/O<p>
The existing library for the Apple&nbsp;&rsqb;&lsqb; doesn't implement C file
I/O. There are two hacks for the <tt/read()/ and <tt/write()/ routines in
place, which will make functions work that read from or write to <tt/stdout/
(like <tt/printf()/). However, these functions have some shortcomings which
won't be fixed, because they're going to be replaced anyway.
To be more concrete, this limitation means that you cannot use any of the
following functions (and a few others):
<itemize>
<item>fclose
<item>fopen
<item>fread
<item>fprintf
<item>fputc
<item>fscanf
<item>fwrite
<item>...
</itemize>
<sect>Other hints<p>
<sect1>Passing arguments to the program<p>
Command line arguments can be passed to <tt/main()/ after BLOAD. Since this is not
@ -234,6 +201,15 @@ supported by BASIC, the following syntax was chosen:
These are defined to be OpenApple + number key.
<sect1>Interrupts<p>
The runtime for the Apple&nbsp;&rsqb;&lsqb; uses routines marked as <tt/.CONDES/
type 2 for ProDOS interrupt handlers. Such routines must be written as simple
machine language subroutines and will be called automatically by the interrupt
handler code when they are linked into a program. See the discussion of the
<tt/.CONDES/ feature in the <htmlurl url="ca65.html" name="assembler manual">.
<sect>Bugs/Feedback<p>
@ -266,6 +242,3 @@ freely, subject to the following restrictions:
</enum>
</article>