X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fatari.h;h=0840468fd0d56b8e4230d6b17338d8505eef414f;hb=34f42ce6308d7a5e1dac31f8ce9f9ddcfb935a2a;hp=8afa647a5f1b5699169def42d9d6079c8b3d7a1d;hpb=bc40b008d0416fc962f96fb2d8945d6cc88343a4;p=cc65 diff --git a/include/atari.h b/include/atari.h index 8afa647a5..0840468fd 100644 --- a/include/atari.h +++ b/include/atari.h @@ -30,9 +30,20 @@ /* */ /*****************************************************************************/ + + #ifndef _ATARI_H #define _ATARI_H + + +/* Check for errors */ +#if !defined(__ATARI__) +# error This module may only be used when compiling for the Atari! +#endif + + + /* Character codes */ #define CH_DEL 0xFE #define CH_ESC 0x1B @@ -96,7 +107,7 @@ #define HUE_GREEN 12 #define HUE_YELLOWGREEN 13 #define HUE_YELLOW 14 -#define HUE_YELLOWRED 15 +#define HUE_YELLOWRED 15 /* Color defines, similar to c64 colors (untested) */ #define COLOR_BLACK _gtia_mkcolor(HUE_GREY,0) @@ -122,31 +133,33 @@ extern void __fastcall__ setcolor_low (unsigned char color_reg, unsigned char co extern unsigned char __fastcall__ getcolor (unsigned char color_reg); /* other screen functions */ +extern int __fastcall__ graphics(unsigned char mode); /* mode value same as in BASIC */ extern void __fastcall__ scroll (signed char numlines); /* numlines > 0 scrolls up */ /* numlines < 0 scrolls down */ /* misc. functions */ -extern void save_vecs(void); /* save system vectors */ -extern void rest_vecs(void); /* restore system vectors */ -extern unsigned int get_ostype(void); /* get ROM version */ +extern void save_vecs(void); /* save system vectors */ +extern void rest_vecs(void); /* restore system vectors */ +extern unsigned char get_ostype(void); /* get ROM version */ +extern unsigned char get_tv(void); /* get TV system */ /* get_ostype return value defines (for explanation, see ostype.s) */ /* masks */ #define AT_OS_TYPE_MAIN 7 -#define AT_OS_PALNTSC (3 << 3) -#define AT_OS_TYPE_MINOR (7 << 5) +#define AT_OS_TYPE_MINOR (7 << 3) /* AT_OS_TYPE_MAIN values */ #define AT_OS_UNKNOWN 0 #define AT_OS_400800 1 #define AT_OS_1200XL 2 #define AT_OS_XLXE 3 -/* AT_OS_PALNTSC values */ -#define AT_OS_PAL 1 -#define AT_OS_NTSC 2 /* AS_OS_TYPE_MINOR values */ -#define AT_OS_400800_A 1 -#define AT_OS_400800_B 2 +/* for 400/800 remember this are the ROM versions */ +/* to check whether the hw is PAL or NTSC, use get_tv() */ +#define AT_OS_400800PAL_A 1 +#define AT_OS_400800PAL_B 2 +#define AT_OS_400800NTSC_A 1 +#define AT_OS_400800NTSC_B 2 #define AT_OS_1200_10 1 #define AT_OS_1200_11 2 #define AT_OS_XLXE_1 1 @@ -154,16 +167,20 @@ extern unsigned int get_ostype(void); /* get ROM version */ #define AT_OS_XLXE_3 3 #define AT_OS_XLXE_4 4 +/* get_tv return values */ +#define AT_NTSC 0 +#define AT_PAL 1 + /* Define hardware */ #include <_gtia.h> -#define GTIA (*(struct __gtia_write*)0xD000) -#define GTIA (*(struct __gtia_read*)0xD000) +#define GTIA_READ (*(struct __gtia_read*)0xD000) +#define GTIA_WRITE (*(struct __gtia_write*)0xD000) #include <_pbi.h> #include <_pokey.h> -#define POKEY (*(struct __pokey_write*)0xD200) -#define POKEY (*(struct __pokey_read*)0xD200) +#define POKEY_READ (*(struct __pokey_read*)0xD200) +#define POKEY_WRITE (*(struct __pokey_write*)0xD200) #include <_pia.h> #define PIA (*(struct __pia*)0xD300) @@ -171,5 +188,20 @@ extern unsigned int get_ostype(void); /* get ROM version */ #include <_antic.h> #define ANTIC (*(struct __antic*)0xD400) +/* device control block */ +struct __dcb { + unsigned char device; /* device id */ + unsigned char unit; /* unit number */ + unsigned char command; /* command */ + unsigned char status; /* command type / status return */ + void *buffer; /* pointer to buffer */ + unsigned char timeout; /* device timeout in seconds */ + unsigned char unused; + unsigned int xfersize; /* # of bytes to transfer */ + unsigned char aux1; /* 1st command auxiliary byte */ + unsigned char aux2; /* 2nd command auxiliary byte */ +}; +#define DCB (*(struct __dcb *)0x300) + /* End of atari.h */ #endif /* #ifndef _ATARI_H */