Overview
+
+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.
+
+
+
+ISO C compatible library
+
+The C library contains a large subset of the ISO C library. Functions are
+usually missing in areas, where there is no support on typical 6502 systems.
+Wide character sets are an example for this.
+
+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:
+
+
+
+ - ftell/fseek/fgetpos/fsetpos
+
+
- tmpfile/tmpnam
+
+
- The scanf family of functions
+
+
- time/asctime/ctime/difftime/asctime/gmtime/localtime/mktime/strftime
+
+
- system
+
+
- All functions that handle floating point numbers in some manner.
+
+
- The div and ldiv functions (because cc65 is not able to return
+ structs).
+
+
- All functions handling wide character strings.
+
+
- Signals and all related functions (having SIGSEGV would be cool:-)
+
+
- rename/remove/rewind
+
+
- setbuf/setvbuf/ungetc
+
+
+
+Functions that are limited in any way:
+
+
+
+ - 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).
+
+
+
- The va_... family of macros
+
+ The macros do not work completely as defined by the standard. Since cc65 has
+ the wrong calling order, the (non-standard) va_fix macro must be used to
+ access fixed parameters in functions with a variable parameter size. See
+ newvers.txt for a discussion of the problem.
+
+
- 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.
+
+
- getenv
+
+ Since there is no such thing as an environment on all supported systems, the
+ getenv function will always return a NULL pointer.
+
+
+
- locale
+
+ There is no other locale than the "C" locale. The native locale is identical
+ to the "C" locale.
+
+
+
+
+In addition to these limitations, some more functions are limited if inlined
+versions are requested by using -Os:
+
+
+
+ - The strlen function only works for strings with a maximum length of
+ 255 characters.
+
+
- The isxxx character classification functions from
+
+
+
+CPU specific stuff - 6502.h
+
+The header file 6502.h contains some functions that make only sense with the
+6502 CPU. Examples are macros to insert more or less useful instructions into
+your C code, or a function to call arbitrary machine language subroutines,
+passing registers in and out.
+
+
+
+Target specific stuff
+
+For each supported system there's a header file that contains calls or defines
+specific for this system. So, when programming for the C64, include c64.h, for
+the C128, include c128.h and so on. To make the task for the Commodore systems
+easier, there is also a header file named cbm.h that will define stuff common
+for all CBM systems, and include the header file for the specific target
+system.
+
+The header files contain
+
+
+
+ - Defines for special keys (like function keys)
+
+
- Defines for special characters (like the graphics characters)
+
+
- Variables with a fixed address in memory that may be used to access
+ special hardware. For the C64 and C128 there is a variable struct named
+ 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).
+
+
+
+
+Direct console I/O -
+
+The
+ - atari
+
- c64
+
- c128
+
- plus4
+
- cbm610 (all CBM series-II computers with 80 column video)
+
- pet (all CBM PET systems except the 2001)
+
- apple2
+
+
+The conio.h header file does also include the system specific header files
+which define constants for special characters and keys.
+
+
+
+Using the joystick -
+
+For systems that have a joystick, Using a mouse -
+
+Some target machines support a mouse. Mouse support is currently in beta and
+available for the following targets:
+
+
+ - atari
+
- c64
+
+
+The available functions are declared in Bugs/Feedback
+
+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 ().
+
+
+
+Copyright
+
+This C runtime library implementation for the cc65 compiler is (C)
+Copyright 1998-1999 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
+warranty. In no event will the authors be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+
+- 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.
+
- Altered source versions must be plainly marked as such, and must not
+ be misrepresented as being the original software.
+
- This notice may not be removed or altered from any source
+ distribution.
+
+
+