cc65 generated programs with the default setup run with the I/O area and the
kernal ROM enabled. Note that this is a non standard memory layout, and that
there is no "memory configuration index" for this layout. This means that
-special case has to be taken when changing the configuration, or calling any
+special care has to be taken when changing the configuration, or calling any
code that does this. The memory configuration register at $FF00 should
be saved and restored instead of relying on the memory configuration index
stored in the zero page.
-The setup gives a usable memory range of $1C00 - $CFFF. Having
+The setup gives a usable memory range of $1C00 - $BFFF. Having
just the kernal ROM mapped in means, that kernal entry points may be called
directly, but using the BASIC ROM is not possible without additional code.
url="funcref.html" name="function reference"> for declaration and usage.
<itemize>
-<item>toggle_videomode
+<item>videomode
<item>c64mode
<item>fast
<item>slow
directory 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 $D800.
<descrip>
<tag><tt/c128-vdc.tgi/</tag>
- This driver uses the 80 column display and features a resolution of 640*200
- with two colors and an adjustable palette (that means that the two colors
- can be choosen out of the 16 VDC colors).
+ This driver was written by Maciej Witkowiak. It uses the 80 column display
+ and features a resolution of 640*200 with two colors and an adjustable
+ palette (that means that the two colors can be chosen out of the 16 VDC
+ colors).
<tag><tt/c128-vdc2.tgi/</tag>
- This driver uses the 80 column display and features a resolution of 640*480
- with two colors and an adjustable palette (that means that the two colors
- can be choosen out of the 16 VDC colors).
+ This driver was written by Maciej Witkowiak. This driver uses the 80 column
+ display and features a resolution of 640*480 with two colors and an
+ adjustable palette (that means that the two colors can be chosen out of the
+ 16 VDC colors). The driver requires 64KB VDC RAM.
</descrip><p>
+Note: The colors are translated from definitions in headers to correct VDC values
+so please use definitions or VIC color numbers only. Colors <tt/GRAY3/ and <tt/BROWN/ are
+missing on VDC and are translated to the two colors missing from VIC palette.
<sect1>Extended memory drivers<p>
excluded, so this driver supports 251 pages of 256 bytes each.
<tag><tt/c128-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/c128-reu.emd/</tag>
A driver for the CBM REUs. The driver will determine from the connected REU
it has better knowledge about the hardware than the driver.
<tag><tt/c128-vdc.emd/</tag>
- A driver for the VDC memory of the C128. Autodetects the amount of memory
- available (16 or 64K) and offers 64 or 256 pages of 256 bytes each. Note:
- This driver is incompatible with any of the graphics drivers using the VDC!
+ A driver for the VDC memory of the C128 written and contributed by Maciej
+ Witkowiak. Autodetects the amount of memory available (16 or 64K) and offers
+ 64 or 256 pages of 256 bytes each. Note: This driver is incompatible with
+ any of the graphics drivers using the VDC!
</descrip><p>
<descrip>
<tag><tt/c128-ptvjoy.joy/</tag>
- Driver for the Protovision 4-player adapter. 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.
+ Driver for the Protovision 4-player adapter originally written by Groepaz
+ for the C64 and converted for the C128 by me. 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.
<tag><tt/c128-stdjoy.joy/</tag>
Supports up to two joysticks connected to the standard joysticks port of
<sect1>Mouse drivers<p>
-Currently no drivers available (in fact, the API for loadable mouse drivers
-does not exist).
+<descrip>
+
+ <tag><tt/c128-1351.mou/</tag>
+ Supports a standard mouse connected to port #0 of the C128.
+
+ <tag><tt/c128-joy.mou/</tag>
+ Supports a mouse emulated by a standard joystick e.g. 1350 mouse in port
+ #1 of the C128.
+
+ <tag><tt/c128-pot.mou/</tag>
+ Supports a potentiometer device e.g. Koala Pad connected to port #1 of
+ the C128.
+
+</descrip><p>
<sect1>RS232 device drivers<p>
<sect1>Passing arguments to the program<p>
-Command line argument passing is currently not supported for the C128.
+Command line arguments can be passed to <tt/main()/. Since this is not
+supported by BASIC, the following syntax was chosen:
+
+<tscreen><verb>
+ RUN:REM ARG1 " ARG2 IS QUOTED" ARG3 "" ARG5
+</verb></tscreen>
+
+<enum>
+<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>