]> git.sur5r.net Git - cc65/blobdiff - include/conio.h
Fixed isgraph() and ispunct() (macroes and library functions).
[cc65] / include / conio.h
index cd6c65e9facbe87b3148369c33979275ea780e5f..21a0c1ea7907a6ab826c6bed70a3c5db03e21946 100644 (file)
@@ -1,15 +1,15 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                 conio.h                                  */
+/*                                  conio.h                                 */
 /*                                                                           */
-/*                           Direct console I/O                             */
+/*                            Direct console I/O                            */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2000 Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
-/* EMail:        uz@musoftware.de                                            */
+/* (C) 1998-2007 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
+/*               D-70794 Filderstadt                                         */
+/* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 /* This software is provided 'as-is', without any expressed or implied       */
@@ -35,7 +35,7 @@
 
 /*
  * This is the direct console interface for cc65. I do not like the function
- * names very much, but the first version started as a rewrite of Borlands
+ * names very much, but the first version started as a rewrite of Borland's
  * conio, and, even if the interface has changed, the names did not.
  *
  * The interface does direct screen I/O, so it is fast enough for most
 #  include <stdarg.h>
 #endif
 
-/* Include the correct machine specific file */
-#if defined(__CBM__) && !defined(_CBM_H)
-#  include <cbm.h>
-#elif defined(__APPLE2__) && !defined(_APPLE2_H)
+/* Include the correct machine-specific file */
+#if defined(__APPLE2__)
 #  include <apple2.h>
-#elif defined(__ATARI__) && !defined(_ATARI_H)
+#elif defined(__APPLE2ENH__)
+#  include <apple2enh.h>
+#elif defined(__ATARI__)
 #  include <atari.h>
-#elif defined(__ATMOS__) && !defined(_ATMOS_H)
+#elif defined(__ATMOS__)
 #  include <atmos.h>
+#elif defined(__CBM__)
+#  include <cbm.h>
+#elif defined(__GEOS__)
+#  include <geos.h>
+#elif defined(__LUNIX__)
+#  include <lunix.h>
+#elif defined(__LYNX__)
+#  include <lynx.h>
+#elif defined(__NES__)
+#  include <nes.h>
 #endif
 
 
 
 /*****************************************************************************/
-/*                                Functions                                 */
+/*                                Functions                                 */
 /*****************************************************************************/
 
 
@@ -105,25 +115,31 @@ void __fastcall__ cputcxy (unsigned char x, unsigned char y, char c);
 /* Same as "gotoxy (x, y); cputc (c);" */
 
 void __fastcall__ cputs (const char* s);
-/* Output a NUL terminated string at the current cursor position */
+/* Output a NUL-terminated string at the current cursor position */
 
 void __fastcall__ cputsxy (unsigned char x, unsigned char y, const char* s);
 /* Same as "gotoxy (x, y); puts (s);" */
 
 int cprintf (const char* format, ...);
-/* Like printf, but uses direct screen I/O */
+/* Like printf(), but uses direct screen output */
 
 int __fastcall__ vcprintf (const char* format, va_list ap);
-/* Like vprintf, but uses direct screen I/O */
+/* Like vprintf(), but uses direct screen output */
 
 char cgetc (void);
 /* Return a character from the keyboard. If there is no character available,
- * the functions waits until the user does press a key. If cursor is set to
+ * the function waits until the user does press a key. If cursor is set to
  * 1 (see below), a blinking cursor is displayed while waiting.
  */
 
+int cscanf (const char* format, ...);
+/* Like scanf(), but uses direct keyboard input */
+
+int __fastcall__ vcscanf (const char* format, va_list ap);
+/* Like vscanf(), but uses direct keyboard input */
+
 unsigned char __fastcall__ cursor (unsigned char onoff);
-/* If onoff is 1, a cursor is display when waiting for keyboard input. If
+/* If onoff is 1, a cursor is displayed when waiting for keyboard input. If
  * onoff is 0, the cursor is hidden when waiting for keyboard input. The
  * function returns the old cursor setting.
  */
@@ -173,6 +189,34 @@ void __fastcall__ cputhex16 (unsigned val);
 
 
 
+/*****************************************************************************/
+/*                                  Macros                                   */
+/*****************************************************************************/
+
+
+
+/* On some platforms, functions are not available or are dummys. To suppress
+ * the call to these functions completely, the platform header files may
+ * define macros for these functions that start with an underline. If such a
+ * macro exists, a new macro is defined here, that expands to the one with the
+ * underline. The reason for this two stepped approach is that it is sometimes
+ * necessary to take the address of the function, which is not possible when
+ * using a macro. Since the function prototype is still present, #undefining
+ * the macro will give access to the actual function.
+ */
+
+#if defined(_textcolor)
+#  define textcolor(x)          _textcolor(x)
+#endif
+#if defined(_bgcolor)
+#  define bgcolor(x)            _bgcolor(x)
+#endif
+#if defined(_bordercolor)
+#  define bordercolor(x)        _bordercolor(x)
+#endif
+
+
+
 /* End of conio.h */
 #endif