]> git.sur5r.net Git - cc65/blobdiff - doc/c64.sgml
No need to import __oserror.
[cc65] / doc / c64.sgml
index ccd9d63c73b35a0c24407b8680e9dbc0dd50a7c3..3a06eda762583392adade3f9e822e31d86d261a7 100644 (file)
@@ -32,10 +32,10 @@ information.
 <sect>Binary format<p>
 
 The standard binary output format generated by the linker for the C64 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>
@@ -133,9 +133,9 @@ structures, accessing the struct fields will access the chip registers.
   for the declaration of the structure.
 
   <tag><tt/CIA1, CIA2/</tag>
-  Access to the two CIA (complex interface adapater) chips is available via
+  Access to the two CIA (complex interface adapter) chips is available via
   the <tt/CIA1/ and <tt/CIA2/ variables. The structure behind these variables
-  is explained in <tt/_cia.h/.
+  is explained in <tt/_6526.h/.
 
   <tag><tt/COLOR_RAM/</tag>
   A character array that mirrors the color RAM of the C64 at &dollar;D800.
@@ -148,14 +148,15 @@ structures, accessing the struct fields will access the chip registers.
 
 <sect1>Graphics drivers<p>
 
-All available graphics drivers for the TGI interface will use the space below
-the I/O area and kernal ROM, so you can have hires graphics in the standard
-setup without any memory loss or need for a changed configuration.
+<em>Note:</em> All available graphics drivers for the TGI interface will use
+the space below the I/O area and kernal ROM, so you can have hires graphics in
+the standard setup without any memory loss or need for a changed
+configuration.
 
 <descrip>
   <tag><tt/c64-hi.tgi/</tag>
   This driver features a resolution of 320*200 with two colors and an
-  adjustable palette (that means that the two colors can be choosen out of a
+  adjustable palette (that means that the two colors can be chosen out of a
   palette of the 16 C64 colors).
 </descrip><p>
 
@@ -164,10 +165,22 @@ setup without any memory loss or need for a changed configuration.
 
 <descrip>
 
+  <tag><tt/c64-c256k.emd/</tag>
+  A driver for the C64 256K memory expansion. This driver offers 768 pages of
+  256 bytes each. Written and contributed by Marco van den Heuvel.
+
+  <tag><tt/c64-dqbb.emd/</tag>
+  A driver for the Double Quick Brown Box cartridge. This driver offers
+  64 pages of 256 bytes each. Written and contributed by Marco van den Heuvel.
+
   <tag><tt/c64-georam.emd/</tag>
-  A driver for the GeoRam cartridge. The driver will always assume 2048 pages
-  of 256 bytes each. There are no checks, so if your program knows better,
-  just go ahead.
+  A driver for the Berkeley Softworks GeoRam cartridge. The driver will
+  determine the available RAM from the connected cartridge. It supports 64KB
+  up to 2048KB of RAM.
+
+  <tag><tt/c64-isepic.emd/</tag>
+  A driver for the ISEPIC cartridge. This driver offers just 8 pages of 256
+  bytes each. Written and contributed by Marco van den Heuvel.
 
   <tag><tt/c64-ram.emd/</tag>
   A driver for the hidden RAM below the I/O area and kernal ROM. Supports 48
@@ -175,8 +188,8 @@ setup without any memory loss or need for a changed configuration.
   graphics drivers!
 
   <tag><tt/c64-ramcart.emd/</tag>
-  A driver for the RamCart 64/128. Will test the hardware for the available
-  RAM.
+  A driver for the RamCart 64/128 written and contributed by Maciej Witkowiak.
+  Will test the hardware for the available RAM.
 
   <tag><tt/c64-reu.emd/</tag>
   A driver for the CBM REUs. The driver will determine from the connected REU
@@ -185,9 +198,14 @@ setup without any memory loss or need for a changed configuration.
   it has better knowledge about the hardware than the driver.
 
   <tag><tt/c64-vdc.emd/</tag>
-  A driver for the VDC memory of the C128. Can be used if the program is
-  running in C64 mode of the C128. Autodetects the amount of memory available
-  (16 or 64K) and offers 64 or 256 pages of 256 bytes each.
+  A driver for the VDC memory of the C128. Written and contributed by Maciej
+  Witkowiak. Can be used if the program is running in C64 mode of the C128.
+  Autodetects the amount of memory available (16 or 64K) and offers 64 or 256
+  pages of 256 bytes each.
+
+  <tag><tt/dtv-himem.emd/</tag>
+  A driver for the C64 D2TV (the second or PAL version). This driver offers
+  indeed 7680 pages of 256 bytes each.
 
 </descrip><p>
 
@@ -197,29 +215,44 @@ setup without any memory loss or need for a changed configuration.
 <descrip>
 
   <tag><tt/c64-hitjoy.joy/</tag>
-  Driver for the Digital Excess & Hitmen adapter. See
+  Driver for the Digital Excess & Hitmen adapter contributed by Groepaz. See
   <htmlurl url="http://www.digitalexcess.de/downloads/productions.php"
   name="http://www.digitalexcess.de/downloads/productions.php"> on
   instructions how to build one. Up to four joysticks are supported.
 
   <tag><tt/c64-ptvjoy.joy/</tag>
-  Driver for the Protovision 4-player adapter. See
+  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 four joysticks are supported.
+  name="http://www.protovision-online.de/hardw/hardwstart.htm"> for prices and
+  building instructions. Up to four joysticks are supported.
 
   <tag><tt/c64-stdjoy.joy/</tag>
   Supports up to two standard joysticks connected to the joysticks port of
   the C64.
 
-</descrip><p>
+  <tag><tt/c64-numpad.joy/</tag>
+  Supports one joystick emulated by the numberpad of the C128 in C64 mode,
+  the firebutton is labeled &dquot;5&dquot; and ENTER.
 
+</descrip><p>
 
 
 <sect1>Mouse drivers<p>
 
-Currently no drivers available (in fact, the API for loadable mouse drivers
-does not exist).
+<descrip>
+
+  <tag><tt/c64-1351.mou/</tag>
+  Supports a standard mouse connected to port #0 of the C64.
+
+  <tag><tt/c64-joy.mou/</tag>
+  Supports a mouse emulated by a standard joystick e.g. 1350 mouse in port
+  #1 of the C64.
+
+  <tag><tt/c64-pot.mou/</tag>
+  Supports a potentiometer device e.g. Koala Pad connected to port #1 of
+  the C64.
+
+</descrip><p>
 
 
 <sect1>RS232 device drivers<p>
@@ -246,21 +279,38 @@ does not exist).
 <sect1>Passing arguments to the program<p>
 
 Command line arguments can be passed to <tt/main()/. Since this is not
-supported by BASIC, the following syntax was choosen:
+supported by BASIC, the following syntax was chosen:
 
 <tscreen><verb>
-    RUN:REM,ARG1," ARG2", ARG 3,, ARG5, ...
+    RUN:REM ARG1 " ARG2 IS QUOTED" ARG3 "" ARG5
 </verb></tscreen>
 
 <enum>
-<item>Arguments are separated by commas.
-<item>There must be a comma after the first <tt/REM/.
-<item>Leading spaces are ignored; trailing spaces are included unless the
-      argument was quoted.
+<item>Arguments are separated by spaces.
+<item>Arguments may be quoted.
+<item>Leading and trailing spaces around an argument are ignored. Spaces within
+      a quoted argument are allowed.
 <item>The first argument passed to <tt/main/ is the program name.
+<item>A maximum number of 10 arguments (including the program name) are
+      supported.
 </enum>
 
 
+<sect1>Program return code<p>
+
+The program return code (low byte) is passed back to BASIC by use of the
+<tt/ST/ variable.
+
+
+<sect1>Interrupts<p>
+
+The runtime for the C64 uses routines marked as <tt/.CONDES/ type 2 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>