]> git.sur5r.net Git - cc65/blobdiff - include/c128.h
Merge pull request #3 from greg-king5/ctype
[cc65] / include / c128.h
index a8bd86cf2914287e20a276e3f1e56a57e411537c..4d4cb9769c50a65fdad1bd318b7430efd61325db 100644 (file)
@@ -1,8 +1,35 @@
-/*
- * c128.h
- *
- * Ullrich von Bassewitz, 12.08.1998
- */
+/*****************************************************************************/
+/*                                                                           */
+/*                                 c128.h                                   */
+/*                                                                           */
+/*                    C128 system specific definitions                      */
+/*                                                                           */
+/*                                                                           */
+/*                                                                           */
+/* (C) 1998-2009, Ullrich von Bassewitz                                      */
+/*                Roemerstrasse 52                                           */
+/*                D-70794 Filderstadt                                        */
+/* EMail:         uz@cc65.org                                                */
+/*                                                                           */
+/*                                                                           */
+/* 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:                            */
+/*                                                                           */
+/* 1. 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.                                       */
+/* 2. Altered source versions must be plainly marked as such, and must not   */
+/*    be misrepresented as being the original software.                      */
+/* 3. This notice may not be removed or altered from any source              */
+/*    distribution.                                                          */
+/*                                                                           */
+/*****************************************************************************/
 
 
 
 
 
 
+/* Check for errors */
+#if !defined(__C128__)
+#  error This module may only be used when compiling for the C128!
+#endif
+
+
+
 /* Additional key defines */
 #define CH_F1                  133
 #define CH_F2                  137
@@ -21,8 +55,6 @@
 #define CH_F7                  136
 #define CH_F8                  140
 
-
-
 /* Color defines */
 #define COLOR_BLACK            0x00
 #define COLOR_WHITE            0x01
 #define COLOR_LIGHTBLUE        0x0E
 #define COLOR_GRAY3            0x0F
 
+/* TGI color defines */
+#define TGI_COLOR_BLACK        COLOR_BLACK
+#define TGI_COLOR_WHITE        COLOR_WHITE
+#define TGI_COLOR_RED          COLOR_RED
+#define TGI_COLOR_CYAN         COLOR_CYAN
+#define TGI_COLOR_VIOLET       COLOR_VIOLET
+#define TGI_COLOR_GREEN        COLOR_GREEN
+#define TGI_COLOR_BLUE         COLOR_BLUE
+#define TGI_COLOR_YELLOW       COLOR_YELLOW
+#define TGI_COLOR_ORANGE       COLOR_ORANGE
+#define TGI_COLOR_BROWN        COLOR_BROWN
+#define TGI_COLOR_LIGHTRED      COLOR_LIGHTRED
+#define TGI_COLOR_GRAY1        COLOR_GRAY1
+#define TGI_COLOR_GRAY2        COLOR_GRAY2
+#define TGI_COLOR_LIGHTGREEN    COLOR_LIGHTGREEN
+#define TGI_COLOR_LIGHTBLUE     COLOR_LIGHTBLUE
+#define TGI_COLOR_GRAY3        COLOR_GRAY3
+
+/* Video mode defines */
+#define VIDEOMODE_40x25         0x00
+#define VIDEOMODE_80x25         0x80
+#define VIDEOMODE_40COL         VIDEOMODE_40x25
+#define VIDEOMODE_80COL         VIDEOMODE_80x25
+
 
 
 /* Define hardware */
-#include <_vic.h>
-#define VIC    (*(struct __vic*)0xD000)
+#include <_vic2.h>
+#define VIC            (*(struct __vic2*)0xD000)
 
 #include <_sid.h>
 #define        SID     (*(struct __sid*)0xD400)
 
+#include <_vdc.h>
+#define VDC     (*(struct __vdc*)0xD600)
+
 #include <_6526.h>
 #define CIA1   (*(struct __6526*)0xDC00)
 #define CIA2   (*(struct __6526*)0xDD00)
 
 
 
-/* End of c128.h */
-#endif
+/* The addresses of the static drivers */
+extern void c128_georam[];
+extern void c128_ram[];
+extern void c128_ram2[];
+extern void c128_ramcart[];
+extern void c128_reu[];
+extern void c128_vdc[];
+extern void c128_ptvjoy[];
+extern void c128_stdjoy[];     /* Referred to by joy_static_stddrv[] */
+extern void c128_1351[];       /* Referred to by mouse_static_stddrv[] */
+extern void c128_joymouse[];
+extern void c128_potmouse[];
+extern void c128_swlink[];
+extern void c128_640_200_2[];  /* Referred to by tgi_static_stddrv[] */
+extern void c128_640_480_2[];
 
 
 
+unsigned __fastcall__ videomode (unsigned Mode);
+/* Set the video mode, return the old mode. Call with one of the VIDEOMODE_xx
+ * constants.
+ */
+
+void toggle_videomode (void);
+/* Toggle the video mode between 40 and 80 chars (calls SWAPPER).
+ * THIS FUNCTION IS DEPRECATED, please use videomode instead!
+ */
+
+void c64mode (void);
+/* Switch the C128 into C64 mode. Note: This function will not return! */
+
+void fast (void);
+/* Switch the CPU into 2MHz mode. Note: This will disable video when in
+ * 40 column mode.
+ */
+
+void slow (void);
+/* Switch the CPU into 1MHz mode. */
+
+
+
+/* End of c128.h */
+#endif