]> git.sur5r.net Git - cc65/blobdiff - doc/vic20.sgml
Document the new IMPORT attribute for the FEATURES/CONDES section.
[cc65] / doc / vic20.sgml
index b3af79c6d920a7c0e23a759819aa10bf3e16ef15..6d6b183216d5b2ced4c34c19d5826767a0b05d33 100644 (file)
@@ -33,17 +33,17 @@ information.
 <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 &dollar;A000 - &dollar;BFFF may be used
-for the heap), which gives a usable memory range of &dollar;1000 - &dollar;1DFF.
+cc65 generated programs with the default setup run with unexpanded memory
+(RAM at &dollar;A000 - &dollar;BFFF may be used for the heap),
+which gives a usable memory range of &dollar;1000 - &dollar;1DFF.
 All ROM entry points may be called directly without additional code.
 
 Special locations:
@@ -73,12 +73,8 @@ common to all CBM platforms.
 
 <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>
@@ -157,6 +153,12 @@ No extended memory drivers are currently available for the VIC20.
   <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>
 
 
@@ -178,6 +180,10 @@ No VIC1011 drivers are currently available for the VIC20.
 
 <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
@@ -204,6 +210,28 @@ The program return code (low byte) is passed back to BASIC by use of the
 <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>
@@ -237,6 +265,3 @@ freely, subject to the following restrictions:
 </enum>
 
 </article>
-
-
-