X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=doc%2Fc64.sgml;h=c1186705156ab26d02237f45ee0820c92c8d1cf9;hb=74455508314bc2b007e812ec5f9429496b9fbd5f;hp=40bcb37acac0b4be181cae567f78dce42fe180a3;hpb=62c21775993218af41638975be93ab71a9fc2a70;p=cc65 diff --git a/doc/c64.sgml b/doc/c64.sgml index 40bcb37ac..c11867051 100644 --- a/doc/c64.sgml +++ b/doc/c64.sgml @@ -1,10 +1,9 @@
- Commodore 64-specific information for cc65 -<author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz"> -<date>2014-04-14 +<author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz"><newline> +<url url="mailto:greg.king5@verizon.net" name="Greg King"> <abstract> An overview over the C64 runtime system as it is implemented for the cc65 C @@ -121,8 +120,8 @@ since the program must be loaded to the BASIC start address. <sect1>80 Columns conio driver<p> The C64 package comes with an alternative software driven 80 columns -module <tt/c64-soft80.o/ which uses the memory under I/O between $d000 -and $ffff. +module <tt/c64-soft80.o/ which uses the memory under I/O between $D000 +and $FF3F. In memory constrained situations the memory from $400 to $7FF can be made available to a program by calling <tt/_heapadd ((void *) 0x0400, 0x0400);/ @@ -168,6 +167,33 @@ url="funcref.html" name="function reference"> for declaration and usage. </itemize> +<sect1>C64-specific accelerator functions<p> + +The functions listed below are accelerator functions for the C64. See the <url +url="funcref.html" name="function reference"> for declaration and usage. + +<itemize> +<item>detect_c128 +<item>detect_c64dtv +<item>detect_c65 +<item>detect_chameleon +<item>detect_scpu +<item>detect_turbomaster +<item>get_c128_speed +<item>get_c64dtv_speed +<item>get_c65_speed +<item>get_chameleon_speed +<item>get_scpu_speed +<item>get_turbomaster_speed +<item>set_c128_speed +<item>set_c64dtv_speed +<item>set_c65_speed +<item>set_chameleon_speed +<item>set_scpu_speed +<item>set_turbomaster_speed +</itemize> + + <sect1>CBM-specific functions<p> Some functions are available for all (or at least most) of the Commodore @@ -189,6 +215,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 @@ -235,12 +263,22 @@ structures, accessing the struct fields will access the chip registers. The names in the parentheses denote the symbols to be used for static linking of the drivers. +<label id="graphics-drivers"> <sect1>Graphics drivers<p> <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. +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. + +You can use a mouse driver at the same time that you use a TGI driver. But, if +you want to see the default mouse pointer on the graphics screen, then you +explicitly must link a special object file into your program. It will put the +arrow into the "high RAM" area where the bitmaps are put. Its name is +"<tt/c64-tgimousedata.o/". Example: + +<tscreen><verb> +cl65 -t c64 -o program-file main-code.c subroutines.s c64-tgimousedata.o +</verb></tscreen> <descrip> <tag><tt/c64-hi.tgi (c64_hi_tgi)/</tag> @@ -251,7 +289,8 @@ configuration. Note that the graphics drivers are incompatible with the <tt/c64-ram.emd (c64_ram_emd)/ extended memory driver and the - <tt/c64-soft80.o/ software 80 columns conio driver. + <tt/c64-soft80.o/ software 80-columns conio driver. + <sect1>Extended memory drivers<p> @@ -279,7 +318,7 @@ Note that the graphics drivers are incompatible with the bytes each. Written and contributed by Marco van den Heuvel. <tag><tt/c64-ram.emd (c64_ram_emd)/</tag> - A driver for the hidden RAM below the I/O area and kernal ROM. Supports 48 + A driver for the hidden RAM below the I/O area and kernal ROM. Supports 47 256 byte pages. Please note that this driver is incompatible with any of the graphics drivers, or the soft80 conio driver! @@ -288,10 +327,8 @@ Note that the graphics drivers are incompatible with the Will test the hardware for the available RAM. <tag><tt/c64-reu.emd (c64_reu_emd)/</tag> - A driver for the CBM REUs. The driver will determine from the connected REU - if it supports 128KB of RAM or more. In the latter case, 256KB are assumed, - but since there are no range checks, the application can use more memory if - it has better knowledge about the hardware than the driver. + A driver for the CBM REUs. The driver will test the connected REU to find + out how much RAM is present. <tag><tt/c64-vdc.emd (c64_vdc_emd)/</tag> A driver for the VDC memory of the C128. Written and contributed by Maciej @@ -336,6 +373,9 @@ The default drivers, <tt/joy_stddrv (joy_static_stddrv)/, point to <tt/c64-stdjo <sect1>Mouse drivers<p> +You can use these drivers in text-mode or graphics-mode (TGI) programs. See +the description of <ref id="graphics-drivers" name="the graphics drivers">. + The default drivers, <tt/mouse_stddrv (mouse_static_stddrv)/, point to <tt/c64-1351.mou (c64_1351_mou)/. <descrip> @@ -378,6 +418,13 @@ The default drivers, <tt/mouse_stddrv (mouse_static_stddrv)/, point to <tt/c64-1 <sect>Limitations<p> +<sect1>Realtime clock<p> + +The realtime clock functions use the CIA1 TOD clock. As that clock only stores +the time but not the date, the date set by <tt/clock_settime()/ is simply stored +inside the C library for retrieval in the same program via <tt/clock_gettime()/. + + <sect>Other hints<p> @@ -434,14 +481,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>