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:
parent
33542e3ed9
commit
8634943406
@ -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 ][ doesn't have working disk I/O
|
||||
(see <ref id="limitations" name="section "Limitations"">), 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 ][ 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×40 with 16 colors. At the bottom of the screen, 4 additional text lines
|
||||
are available.
|
||||
40×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×192 with 6 colors.
|
||||
280×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 ][ 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 ][.
|
||||
<descrip>
|
||||
|
||||
<tag><tt/a2.ssc.ser/</tag>
|
||||
Driver for the Apple ][ 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 ][ 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 ][ 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>
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user