<sect>Binary format<p>
The standard binary output format generated by the linker for the VIC20 target
-is a machine language program with a one line BASIC stub. This means that a
-program can be loaded as BASIC program and started with RUN. It is of course
-possible to change this behaviour by using a modified startup file and linker
-config.
+is a machine language program with a one line BASIC stub, which calls the
+machine language part via SYS. This means that a program can be loaded as
+BASIC program and started with RUN. It is of course possible to change this
+behaviour by using a modified startup file and linker config.
<sect>Memory layout<p>
-cc65 generated programs with the default setup run with the I/O area and the
-kernal and BASIC ROM enabled (RAM at $A000 - $BFFF may be used
-for the heap), which gives a usable memory range of $1000 - $1DFF.
+cc65 generated programs with the default setup run with unexpanded memory
+(RAM at $A000 - $BFFF may be used for the heap),
+which gives a usable memory range of $1000 - $1DFF.
All ROM entry points may be called directly without additional code.
Special locations:
<sect1>VIC20 specific functions<p>
-The functions listed below are special for the VIC20. See the <htmlurl
-url="funcref.html" name="function reference"> for declaration and usage.
+There are currently no special VIC20 functions.
-<itemize>
-<item>get_ostype
-</itemize>
<sect1>CBM specific functions<p>
<tag><tt/vic20-stdjoy.joy/</tag>
Supports one standard joystick connected to the joysticks port of the VIC20.
+ <tag><tt/vic20-ptvjoy.joy/</tag>
+ Driver for the Protovision 4-player adapter contributed by Groepaz. See
+ <htmlurl url="http://www.protovision-online.de/hardw/hardwstart.htm"
+ name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
+ building instructions. Up to three joysticks are supported.
+
</descrip><p>
<sect>Other hints<p>
+<sect1>Escape code<p>
+
+For an Esc press CTRL and [ key.
+
<sect1>Passing arguments to the program<p>
Command line arguments can be passed to <tt/main()/. Since this is not
<tt/ST/ variable.
+<sect1>Using extended memory<p>
+
+The extended memory at $A000 may be added to the heap by using the following
+code:
+
+<tscreen><verb>
+ /* Check for the existence of RAM */
+ if (PEEK(0xA000) == POKE(0xA000, PEEK(0xA000)+1)) {<br>
+ /* Add it to the heap */
+ _heapadd ((void *) 0xA000, 0x2000);
+ }
+</verb></tscreen>
+
+
+<sect1>Interrupts<p>
+
+The runtime for the VIC20 uses routines marked as <tt/.INTERRUPTOR/ for
+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>
</enum>
</article>
-
-
-