]> git.sur5r.net Git - cc65/blobdiff - doc/library.sgml
Access Atari OS variables by structure.
[cc65] / doc / library.sgml
index b284480db62f8303bc34834f4486876ff2a82419..8800c5496f41b67bf65bdf601a70e43d6171f634 100644 (file)
@@ -1,10 +1,8 @@
 <!doctype linuxdoc system>
 
 <article>
-
 <title>cc65 Library Overview
-<author>Ullrich von Bassewitz, <htmlurl url="mailto:uz@cc65.org" name="uz@cc65.org">
-<date>02.12.2000
+<author><url url="mailto:uz@cc65.org" name="Ullrich von Bassewitz">
 
 <abstract>
 An overview over the runtime and C libraries that come with the cc65 compiler,
@@ -18,10 +16,13 @@ including a discussion of the differences to the ISO standard.
 
 <sect>Overview<p>
 
-This file contains a description of the library routines available for the
-cc65 C compiler. It is not complete in some areas, so if you miss something,
-have a look into the header files. All functions, that are not defined by the
-ISO C standard have a short comment in the headers, explaining their use.
+This file contains a short overview of the libraries available for the cc65 C
+compiler. Please have a look at the <url url="funcref.html" name="function
+reference"> for a list function by function. Since the function reference is
+not complete (I'm working on that) it may happen that you don't find a
+specific function. In this case, have a look into the header files. All
+functions, that are not defined by the ISO C standard have a short comment in
+the headers, explaining their use.
 
 
 
@@ -35,66 +36,59 @@ I will not go into detail about the ISO functions. If a function is not
 mentioned here explicitly, expect it to be available and to behave as defined
 in the C standard.
 
-Functions that are NOT available:
+Functions that are <em/not/ available:
 
 <itemize>
-
-  <item>ftell/fseek/fgetpos/fsetpos
-
-  <item>tmpfile/tmpnam
-
-  <item>The scanf family of functions
-
-  <item>time/asctime/ctime/difftime/asctime/gmtime/localtime/mktime/strftime
-
-  <item>system
-
+  <item><tt>tmpfile/tmpnam</tt>
+  <p>
+  <item><tt>system</tt> (cc65 alternative <tt>exec</tt>)
+  <p>
   <item>All functions that handle floating point numbers in some manner.
-
-  <item>The div and ldiv functions (because cc65 is not able to return
-    structs).
-
+  <p>
+  <item>The <tt/ldiv/ function (cc65 is currently not able to return structs
+  with a size not equal to 1, 2 or 4 bytes by value).
+  <p>
   <item>All functions handling wide character strings.
-
-  <item>Signals and all related functions (having SIGSEGV would be cool:-)
-
-  <item>rename/remove/rewind
-
-  <item>setbuf/setvbuf/ungetc
-
+  <p>
+  <item>Signals and all related functions (having <tt/SIGSEGV/ would be
+  cool:-)
+  <p>
+  <item><tt>setbuf/setvbuf</tt>
 </itemize>
 
-Functions that are limited in any way:
+Functions not available on all supported systems:
 
 <itemize>
+  <item><tt>fopen/fread/fwrite/fclose/fputs/fgets/fscanf</tt>: The functions
+  are built on open/read/write/close. These latter functions are not available
+  on all systems.
+  <p>
+  <item><tt>ftell/fseek/fgetpos/fsetpos</tt>: Support depends on the
+  capabilities of the target machine.
+  <p>
+  <item><tt>rename/remove/rewind</tt>: Support depends on the capabilities of
+  the target machine.
+  <p>
+  <item><tt>time</tt>: Since many of the supported systems do not have a real
+  time clock, which means that the <tt/time/ function is not available. Please
+  note that the other functions from <tt/time.h/ <em/are/ available.
+</itemize>
 
-  <item>fopen/fread/fwrite/fclose/fputs/fgets/fscanf....
-
-  These functions are built on open/read/write/close. Neither of these low
-  level functions is currently available for the supported systems, and so,
-  fopen and friends do not work. However, the functions exist and are tested
-  to some degree under the ACE operating systems (which is no longer
-  supported).
-
-
-  <item>strcspn/strpbrk/strspn
-
-  These functions have a length limitation of 256 for the second string
-  argument. Since this string gives a character set, and there are only 256
-  distinct characters, this shouldn't be a problem.
-
-
-  <item>getenv
-
-  Since there is no such thing as an environment on all supported systems, the
-  getenv function will always return a NULL pointer.
-
-
-  <item>locale
 
-  There is no other locale than the "C" locale. The native locale is identical
-  to the "C" locale.
+Functions that are limited in any way:
 
+<itemize>
+  <item><tt>strcspn/strpbrk/strspn</tt>: These functions have a length
+  limitation of 256 for the second string argument. Since this string gives a
+  character set, and there are only 256 distinct characters, this shouldn't be
+  a problem.
+  <p>
+  <item><tt>getenv</tt>: Since there is no such thing as an environment on all
+  supported systems, the <tt/getenv/ function will always return a <tt/NULL/
+  pointer.
+  <p>
+  <item><tt>locale</tt>: There is no other locale than the "C" locale. The
+  native locale is identical to the "C" locale.
 </itemize>
 
 
@@ -102,17 +96,15 @@ In addition to these limitations, some more functions are limited if inlined
 versions are requested by using -Os:
 
 <itemize>
-
-  <item>The strlen function only works for strings with a maximum length of
-  255 characters.
-
-  <item>The isxxx character classification functions from <tt/&lt;ctype.h&gt;/
-  will give unpredictable results if the argument is not in character range
-  (0..255). This limitation may be removed by #undef'ing the function name
-  (when using -Os, the functions are actually macros that expand to inline
-  assembler code, but the real functions are still available if the macro
-  definition is removed).
-
+  <item>The <tt/strlen/ function only works for strings with a maximum length
+  of 255 characters.
+  <p>
+  <item>The <tt/isxxx/ character classification functions from
+  <tt/&lt;ctype.h&gt;/ will give unpredictable results if the argument is not
+  in character range (0..255). This limitation may be removed by #undef'ing
+  the function name (when using <tt/-Os/, the functions are actually macros
+  that expand to inline assembler code, but the real functions are still
+  available if the macro definition is removed).
 </itemize>
 
 
@@ -152,8 +144,8 @@ The header files contain
   accesses.
 
   <item>Other routines that make only sense for a specific system. One example
-  are routines to write memory locations in the system bank for the CBM
-  600/700 family (called B128/B256 in the US).
+  are routines to write memory locations in the system bank for the CBM PET-II
+  family.
 
 </itemize>
 
@@ -165,15 +157,29 @@ and keyboard I/O. The functions will write directly to the screen or poll the
 keyboard directly with no more help from the operating system than needed.
 This has some disadvantages, but on the other side it's fast and reasonably
 portable. conio implementations exist for the following targets:
-                   
+
   <itemize>
+  <item>apple2
+  <item>apple2enh
   <item>atari
+  <item>atarixl
+  <item>atmos
+  <item>c16 (works also for the c116 with up to 32K memory)
   <item>c64
   <item>c128
-  <item>plus4
+  <item>plus4 (or expanded c16/c116)
+  <item>cbm510 (40 column video)
   <item>cbm610 (all CBM series-II computers with 80 column video)
+  <item>creativision
+  <item>gamate
+  <item>geos-apple
+  <item>geos-cbm
+  <item>nes
+  <item>osic1p
+  <item>pce
   <item>pet (all CBM PET systems except the 2001)
-  <item>apple2
+  <item>telestrat
+  <item>vic20
   </itemize>
 
 The conio.h header file does also include the system specific header files
@@ -185,8 +191,7 @@ which define constants for special characters and keys.
 
 For systems that have a joystick, <tt/joystick.h/ will define a subroutine to
 read the current value, including constants to evaluate the result of this
-function. To help in writing portable code, the header file will define the
-symbol <tt/__JOYSTICK__/ on systems that have a joystick.
+function.
 
 
 
@@ -196,29 +201,22 @@ Some target machines support a mouse. Mouse support is currently available for
 the following targets:
 
   <itemize>
+  <item>apple2
+  <item>apple2enh
   <item>atari
+  <item>atarixl
   <item>c64
   <item>c128
+  <item>cbm510
   </itemize>
 
-The available functions are declared in <tt/mouse.h/ To help writing portable
-code, the header file will define the symbol <tt/__MOUSE__/ in systems that
-support a mouse.
-
-
-<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">).
-
+The available functions are declared in <tt/mouse.h/.
 
 
 <sect>Copyright<p>
 
 This C runtime library implementation for the cc65 compiler is (C)
-Copyright 1998-2001 Ullrich von Bassewitz. For usage of the binaries
+Copyright 1998-2002 Ullrich von Bassewitz. For usage of the binaries
 and/or sources the following conditions do apply:
 
 This software is provided 'as-is', without any expressed or implied
@@ -230,17 +228,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>
-
-
-