]> git.sur5r.net Git - cc65/blobdiff - include/atari.h
Merge pull request #627 from jedeoric/master
[cc65] / include / atari.h
index 3c0898c2f8839a02b1cafce549d7a5ff67fcbf81..4bed8d7a704455c949c1fce02fb9b411b9d14653 100644 (file)
@@ -38,7 +38,7 @@
 
 
 /* Check for errors */
-#if !defined(__ATARI__) && !defined(__ATARIXL__)
+#if !defined(__ATARI__)
 #  error This module may only be used when compiling for the Atari!
 #endif
 
 #define COLOR_LIGHTBLUE         _gtia_mkcolor(HUE_BLUE,6)
 #define COLOR_GRAY3             _gtia_mkcolor(HUE_GREY,5)
 
+/* 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
+
+/* Masks for joy_read */
+#define JOY_UP_MASK     0x01
+#define JOY_DOWN_MASK   0x02
+#define JOY_LEFT_MASK   0x04
+#define JOY_RIGHT_MASK  0x08
+#define JOY_BTN_1_MASK  0x10
+
+#define JOY_FIRE_MASK   JOY_BTN_1_MASK
+#define JOY_FIRE(v)     ((v) & JOY_FIRE_MASK)
+
 /* color register functions */
 extern void __fastcall__ _setcolor     (unsigned char color_reg, unsigned char hue, unsigned char luminace);
 extern void __fastcall__ _setcolor_low (unsigned char color_reg, unsigned char color_value);
@@ -143,17 +171,25 @@ extern void __fastcall__ _scroll (signed char numlines);
                                           /* numlines < 0  scrolls down */
 
 /* misc. functions */
-extern unsigned char get_ostype(void);  /* get ROM version */
-extern unsigned char get_tv(void);      /* get TV system */
-extern void _save_vecs(void);           /* save system vectors */
-extern void _rest_vecs(void);           /* restore system vectors */
-extern char *_getdefdev(void);          /* get default floppy device */
+extern unsigned char get_ostype(void);       /* get ROM version */
+extern unsigned char get_tv(void);           /* get TV system */
+extern void _save_vecs(void);                /* save system vectors */
+extern void _rest_vecs(void);                /* restore system vectors */
+extern char *_getdefdev(void);               /* get default floppy device */
+extern unsigned char _is_cmdline_dos(void);  /* does DOS support command lines */
 
 /* global variables */
 extern unsigned char _dos_type;         /* the DOS flavour */
+#ifndef __ATARIXL__
 extern void atr130_emd[];
 extern void atrstd_joy[];               /* referred to by joy_static_stddrv[] */
-extern void atrm8_joy[];
+extern void atrmj8_joy[];
+extern void atrjoy_mou[];
+extern void atrst_mou[];                /* referred to by mouse_static_stddrv[] */
+extern void atrami_mou[];
+extern void atrtrk_mou[];
+extern void atrtt_mou[];
+extern void atrrdev_ser[];
 extern void atr3_tgi[];
 extern void atr4_tgi[];
 extern void atr5_tgi[];
@@ -169,6 +205,32 @@ extern void atr11_tgi[];
 extern void atr14_tgi[];
 extern void atr15_tgi[];
 extern void atr15p2_tgi[];
+#else
+extern void atrx130_emd[];
+extern void atrxstd_joy[];              /* referred to by joy_static_stddrv[] */
+extern void atrxmj8_joy[];
+extern void atrxjoy_mou[];
+extern void atrxst_mou[];               /* referred to by mouse_static_stddrv[] */
+extern void atrxami_mou[];
+extern void atrxtrk_mou[];
+extern void atrxtt_mou[];
+extern void atrxrdev_ser[];
+extern void atrx3_tgi[];
+extern void atrx4_tgi[];
+extern void atrx5_tgi[];
+extern void atrx6_tgi[];
+extern void atrx7_tgi[];
+extern void atrx8_tgi[];                /* referred to by tgi_static_stddrv[] */
+extern void atrx8p2_tgi[];
+extern void atrx9_tgi[];
+extern void atrx9p2_tgi[];
+extern void atrx10_tgi[];
+extern void atrx10p2_tgi[];
+extern void atrx11_tgi[];
+extern void atrx14_tgi[];
+extern void atrx15_tgi[];
+extern void atrx15p2_tgi[];
+#endif
 
 /* provide old names for backwards compatibility */
 #ifdef ATARI_COMPAT_PRE_2_11
@@ -210,11 +272,11 @@ extern void atr15p2_tgi[];
 #define AT_PAL      1
 
 /* valid _dos_type values */
-#define ATARIDOS    0
-#define SPARTADOS   1
-#define OSADOS      2
-#define MYDOS       3
-#define XDOS        4
+#define SPARTADOS   0
+#define OSADOS      1
+#define XDOS        2
+#define ATARIDOS    3
+#define MYDOS       4
 #define NODOS       255
 
 /* Define hardware */
@@ -268,5 +330,32 @@ struct __iocb {
 #define ZIOCB (*(struct __iocb *)0x20)  /* zero page IOCB */
 #define IOCB (*(struct __iocb *)0x340)  /* system IOCB buffers */
 
+/* IOCB Command Codes */
+#define IOCB_OPEN        0x03  /* open */
+#define IOCB_GETREC      0x05  /* get record */
+#define IOCB_GETCHR      0x07  /* get character(s) */
+#define IOCB_PUTREC      0x09  /* put record */
+#define IOCB_PUTCHR      0x0B  /* put character(s) */
+#define IOCB_CLOSE       0x0C  /* close */
+#define IOCB_STATIS      0x0D  /* status */
+#define IOCB_SPECIL      0x0E  /* special */
+#define IOCB_DRAWLN      0x11  /* draw line */
+#define IOCB_FILLIN      0x12  /* draw line with right fill */
+#define IOCB_RENAME      0x20  /* rename disk file */
+#define IOCB_DELETE      0x21  /* delete disk file */
+#define IOCB_LOCKFL      0x23  /* lock file (set to read-only) */
+#define IOCB_UNLOCK      0x24  /* unlock file */
+#define IOCB_POINT       0x25  /* point sector */
+#define IOCB_NOTE        0x26  /* note sector */
+#define IOCB_GETFL       0x27  /* get file length */
+#define IOCB_CHDIR_MYDOS 0x29  /* change directory (MyDOS) */
+#define IOCB_MKDIR       0x2A  /* make directory (MyDOS/SpartaDOS) */
+#define IOCB_RMDIR       0x2B  /* remove directory (SpartaDOS) */
+#define IOCB_CHDIR_SPDOS 0x2C  /* change directory (SpartaDOS) */
+#define IOCB_GETCWD      0x30  /* get current directory (MyDOS/SpartaDOS) */
+#define IOCB_FORMAT      0xFE  /* format */
+
+
+
 /* End of atari.h */
-#endif /* #ifndef _ATARI_H */
+#endif