<article>
-<title>C128 specific information for cc65
+<title>Commodore 128 specific information for cc65
<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
<date>2003-12-14
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.
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>
+<sect>Limitations<p>
+
+
+
<sect>Other hints<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>
-
+