]> git.sur5r.net Git - cc65/blobdiff - include/apple2.h
Merge branch 'master' into lightpen
[cc65] / include / apple2.h
index 18b42a863660a045ef2b149c1489fb69d8c133c9..190248b0d2571bfe9f62e971b3da6c70b3225f7a 100644 (file)
@@ -1,8 +1,8 @@
 /*****************************************************************************/
 /*                                                                           */
-/*                                apple2.h                                  */
+/*                                 apple2.h                                  */
 /*                                                                           */
-/*                  Apple ][ system specific definitions                    */
+/*                   Apple ][ system specific definitions                    */
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
 
 
 /*****************************************************************************/
-/*                                  Data                                    */
+/*                                   Data                                    */
 /*****************************************************************************/
 
 
 
-/* Color Defines
- * Since Apple2 does not support color text these defines are only
- * used to get the library to compile correctly.  They should not be used
- * in user code
- */
-#define COLOR_BLACK    0x00
-#define COLOR_WHITE    0x01
+/* Color defines */
+#define COLOR_BLACK  0x00
+#define COLOR_WHITE  0x01
+
+/* TGI color defines */
+#define TGI_COLOR_BLACK      0x00
+#define TGI_COLOR_GREEN      0x01
+#define TGI_COLOR_VIOLET     0x02
+#define TGI_COLOR_WHITE      0x03
+#define TGI_COLOR_BLACK2     0x04
+#define TGI_COLOR_ORANGE     0x05
+#define TGI_COLOR_BLUE       0x06
+#define TGI_COLOR_WHITE2     0x07
+
+#define TGI_COLOR_MAGENTA    TGI_COLOR_BLACK2
+#define TGI_COLOR_DARKBLUE   TGI_COLOR_WHITE2
+#define TGI_COLOR_DARKGREEN  0x08
+#define TGI_COLOR_GRAY       0x09
+#define TGI_COLOR_CYAN       0x0A
+#define TGI_COLOR_BROWN      0x0B
+#define TGI_COLOR_GRAY2      0x0C
+#define TGI_COLOR_PINK       0x0D
+#define TGI_COLOR_YELLOW     0x0E
+#define TGI_COLOR_AQUA       0x0F
 
 /* Characters codes */
-#define CH_DEL                 0x7F
-#define CH_ESC                 0x1B
-#define CH_CURS_UP     0x0B
-#define CH_CURS_DOWN   0x0A
-
-/* These are defined to be OpenApple + NumberKey */
-#define CH_F1          0xB1
-#define CH_F2          0xB2
-#define CH_F3          0xB3
-#define CH_F4          0xB4
-#define CH_F5          0xB5
-#define CH_F6          0xB6
-#define CH_F7          0xB7
-#define CH_F8          0xB8
-#define CH_F9          0xB9
-#define CH_F10                 0xB0
-
-#define CH_ULCORNER    '+'
-#define CH_URCORNER    '+'
-#define CH_LLCORNER    '+'
-#define CH_LRCORNER    '+'
-#define CH_TTEE        '+'
-#define CH_BTEE        '+'
-#define CH_LTEE        '+'
-#define CH_RTEE        '+'
-#define CH_CROSS       '+'
+#define CH_ENTER       0x0D
+#define CH_ESC         0x1B
+#define CH_CURS_LEFT   0x08
+#define CH_CURS_RIGHT  0x15
+
+#define CH_ULCORNER  '+'
+#define CH_URCORNER  '+'
+#define CH_LLCORNER  '+'
+#define CH_LRCORNER  '+'
+#define CH_TTEE      '+'
+#define CH_BTEE      '+'
+#define CH_LTEE      '+'
+#define CH_RTEE      '+'
+#define CH_CROSS     '+'
 
 /* Return codes for get_ostype */
-#define AP_OS_IIPLAIN  0x01             /* Plain Apple II */
-#define AP_OS_IIPLUS   0x02             /* Apple II+ */
-#define AP_OS_IIIEM    0x03             /* Apple /// in emulation mode */
-#define AP_OS_IIE      0x04             /* Apple IIe */
-#define AP_OS_IIC      0x05             /* Apple IIc */
-#define AP_OS_IIECARD  0x06             /* Apple IIe Card for the Macintosh LC */
+#define APPLE_UNKNOWN  0x00
+#define APPLE_II       0x10  /* Apple ][                    */
+#define APPLE_IIPLUS   0x11  /* Apple ][+                   */
+#define APPLE_IIIEM    0x20  /* Apple /// (emulation)       */
+#define APPLE_IIE      0x30  /* Apple //e                   */
+#define APPLE_IIEENH   0x31  /* Apple //e (enhanced)        */
+#define APPLE_IIECARD  0x40  /* Apple //e Option Card       */
+#define APPLE_IIC      0x50  /* Apple //c                   */
+#define APPLE_IIC35    0x51  /* Apple //c (3.5 ROM)         */
+#define APPLE_IICEXP   0x53  /* Apple //c (Mem. Exp.)       */
+#define APPLE_IICREV   0x54  /* Apple //c (Rev. Mem. Exp.)  */
+#define APPLE_IICPLUS  0x55  /* Apple //c Plus              */
+#define APPLE_IIGS     0x80  /* Apple IIgs                  */
+#define APPLE_IIGS1    0x81  /* Apple IIgs (ROM 1)          */
+#define APPLE_IIGS3    0x83  /* Apple IIgs (ROM 3)          */
+
+extern unsigned char _dos_type;
+/* Valid _dos_type values:
+ *
+ * AppleDOS 3.3   - 0x00
+ * ProDOS 8 1.0.1 - 0x10
+ * ProDOS 8 1.0.2 - 0x10
+ * ProDOS 8 1.1.1 - 0x11
+ * ProDOS 8 1.2   - 0x12
+ * ProDOS 8 1.3   - 0x13
+ * ProDOS 8 1.4   - 0x14
+ * ProDOS 8 1.5   - 0x15
+ * ProDOS 8 1.6   - 0x16
+ * ProDOS 8 1.7   - 0x17
+ * ProDOS 8 1.8   - 0x18
+ * ProDOS 8 1.9   - 0x18 (!)
+ * ProDOS 8 2.0.1 - 0x21
+ * ProDOS 8 2.0.2 - 0x22
+ * ProDOS 8 2.0.3 - 0x23
+ */
+
+
+
+/*****************************************************************************/
+/*                                 Variables                                 */
+/*****************************************************************************/
+
+
+
+/* The file stream implementation and the POSIX I/O functions will use the
+ * following variables to determine the file type and the aux type to use.
+ */
+extern unsigned char _filetype;  /* Default 6 */
+extern unsigned int  _auxtype;   /* Default 0 */
+
+/* The addresses of the static drivers */
+#if !defined(__APPLE2ENH__)
+extern void a2_auxmem_emd[];
+extern void a2_stdjoy_joy[];     /* Referred to by joy_static_stddrv[]   */
+extern void a2_stdmou_mou[];     /* Referred to by mouse_static_stddrv[] */
+extern void a2_ssc_ser[];
+extern void a2_hi_tgi[];         /* Referred to by tgi_static_stddrv[]   */
+extern void a2_lo_tgi[];
+#endif
 
 
 
 /*****************************************************************************/
-/*                                  Code                                    */
+/*                                   Code                                    */
 /*****************************************************************************/
 
 
 
 unsigned char get_ostype (void);
-/* Get the ROM version. Returns one of the C64_OS_xxx codes. */
+/* Get the machine type. Returns one of the APPLE_xxx codes. */
 
+void rebootafterexit (void);
+/* Reboot machine after program termination has completed. */
 
+#define ser_apple2_slot(num)  ser_ioctl (0, (void*) (num))
+/* Select a slot number from 1 to 7 prior to ser_open.
+ * The default slot number is 2.
+ */
 
-/* End of apple2.h */
-#endif
+#define tgi_apple2_mix(onoff)  tgi_ioctl (0, (void*) (onoff))
+/* If onoff is 1, graphics/text mixed mode is enabled.
+ * If onoff is 0, graphics/text mixed mode is disabled.
+ */
+
+/* The following #defines will cause the matching functions calls in conio.h
+ * to be overlaid by macros with the same names, saving the function call
+ * overhead.
+ */
+#define _textcolor(color)    COLOR_WHITE
+#define _bgcolor(color)      COLOR_BLACK
+#define _bordercolor(color)  COLOR_BLACK
 
 
 
+/* End of apple2.h */
+#endif