X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Fvic20.sgml;h=e292e0a1a0874b7c0a717da0c757e65b012db899;hb=74455508314bc2b007e812ec5f9429496b9fbd5f;hp=e21ca55730a4fec6b609715a8bb708566788e853;hpb=6bfa7fbaa2e19717d5b63f28313c0e3153f6abea;p=cc65 diff --git a/doc/vic20.sgml b/doc/vic20.sgml index e21ca5573..e292e0a1a 100644 --- a/doc/vic20.sgml +++ b/doc/vic20.sgml @@ -1,11 +1,10 @@
- -Commodore VIC20 (aka VC20) specific information for cc65 -<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org"> -Stefan A. Haubenthal, <htmlurl url="mailto:polluks@sdf.lonestar.org" name="polluks@sdf.lonestar.org"> -<date>2004-09-13 +<title>Commodore VIC20 (aka VC20 aka VIC1001) specific information for cc65 +<author> +<url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">,<newline> +<url url="mailto:polluks@sdf.lonestar.org" name="Stefan A. Haubenthal"> <abstract> An overview over the VIC20 runtime system as it is implemented for the cc65 C @@ -20,11 +19,11 @@ compiler. <sect>Overview<p> This file contains an overview of the VIC20 runtime system as it comes with the -cc65 C compiler. It describes the memory layout, VIC20 specific header files, +cc65 C compiler. It describes the memory layout, VIC20-specific header files, available drivers, and any pitfalls specific to that platform. -Please note that VIC20 specific functions are just mentioned here, they are -described in detail in the separate <htmlurl url="funcref.html" name="function +Please note that VIC20-specific functions are just mentioned here, they are +described in detail in the separate <url url="funcref.html" name="function reference">. Even functions marked as "platform dependent" may be available on more than one platform. Please see the function reference for more information. @@ -63,24 +62,24 @@ Special locations: -<sect>Platform specific header files<p> +<sect>Platform-specific header files<p> -Programs containing VIC20 specific code may use the <tt/vic20.h/ or <tt/cbm.h/ +Programs containing VIC20-specific code may use the <tt/vic20.h/ or <tt/cbm.h/ header files. Using the later may be an option when writing code for more than one CBM platform, since it includes <tt/vic20.h/ and declares several functions common to all CBM platforms. -<sect1>VIC20 specific functions<p> +<sect1>VIC20-specific functions<p> There are currently no special VIC20 functions. -<sect1>CBM specific functions<p> +<sect1>CBM-specific functions<p> Some functions are available for all (or at least most) of the Commodore -machines. See the <htmlurl url="funcref.html" name="function reference"> for +machines. See the <url url="funcref.html" name="function reference"> for declaration and usage. <itemize> @@ -98,6 +97,8 @@ declaration and usage. <item>cbm_k_basin <item>cbm_k_bsout <item>cbm_k_clrch +<item>cbm_k_tksa +<item>cbm_k_second <item>cbm_load <item>cbm_open <item>cbm_opendir @@ -136,6 +137,9 @@ structures, accessing the struct fields will access the chip registers. <sect>Loadable drivers<p> +The names in the parentheses denote the symbols to be used for static linking of the drivers. + + <sect1>Graphics drivers<p> No graphics drivers are currently available for the VIC20. @@ -143,26 +147,39 @@ No graphics drivers are currently available for the VIC20. <sect1>Extended memory drivers<p> -No extended memory drivers are currently available for the VIC20. +<descrip> + + <tag><tt/vic20-rama.emd (vic20_rama_emd)/</tag> + A driver for any RAM at $A000-$BFFF. Supports 32 256 byte pages. + Written and contributed by Marco van den Heuvel. + + <tag><tt/vic20-georam.emd (vic20_georam_emd)/</tag> + A driver for the Berkeley Softworks GeoRam cartridge connected by means of + the MasC=erade c64 cartridge adapter. The driver will determine the + available RAM from the connected cartridge. It supports 64KB + up to 2048KB of RAM. + +</descrip><p> <sect1>Joystick drivers<p> +The default drivers, <tt/joy_stddrv (joy_static_stddrv)/, point to <tt/vic20-stdjoy.joy (vic20_stdjoy_joy)/. + <descrip> - <tag><tt/vic20-stdjoy.joy/</tag> + <tag><tt/vic20-stdjoy.joy (vic20_stdjoy_joy)/</tag> Supports one standard joystick connected to the joysticks port of the VIC20. - <tag><tt/vic20-ptvjoy.joy/</tag> + <tag><tt/vic20-ptvjoy.joy (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. + <url url="https://www.protovision.games/hardw/4_player.php" + name="the Protovision shop"> for prices and building instructions. Up to three + joysticks are supported. </descrip><p> - <sect1>Mouse drivers<p> No mouse drivers are currently available for the VIC20. @@ -177,13 +194,20 @@ No VIC1011 drivers are currently available for the VIC20. <sect>Limitations<p> +<sect1>Escape code<p> + +The CTRL key cannot be used to type most control characters, +entering an Esc is not possible. + + <sect>Other hints<p> + <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 chosen: +Command-line arguments can be passed to <tt/main()/. Since that is not +supported directly by BASIC, the following syntax was chosen: <tscreen><verb> RUN:REM ARG1 " ARG2 IS QUOTED" ARG3 "" ARG5 @@ -194,7 +218,7 @@ supported by BASIC, the following syntax was chosen: <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>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> @@ -208,12 +232,11 @@ The program return code (low byte) is passed back to BASIC by use of the <sect1>Using extended memory<p> -The extended memory at $A000 may be added to the heap by using the following -code: +BLK5 memory 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> + if (PEEK(0xA000) == POKE(0xA000, PEEK(0xA000)+1)) { /* Add it to the heap */ _heapadd ((void *) 0xA000, 0x2000); } @@ -222,20 +245,11 @@ code: <sect1>Interrupts<p> -The runtime for the VIC20 uses routines marked as <tt/.CONDES/ type 2 for +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> - -If you have problems using the library, if you find any bugs, or if you're -doing something interesting with it, I would be glad to hear from you. Feel -free to contact me by email (<htmlurl url="mailto:uz@cc65.org" -name="uz@cc65.org">). +feature in the <url url="ca65.html" name="assembler manual">. @@ -250,17 +264,14 @@ including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: <enum> -<item> The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -<item> Altered source versions must be plainly marked as such, and must not - be misrepresented as being the original software. -<item> This notice may not be removed or altered from any source - distribution. +<item> The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +<item> Altered source versions must be plainly marked as such, and must not + be misrepresented as being the original software. +<item> This notice may not be removed or altered from any source + distribution. </enum> </article> - - -