X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fapple2.h;h=f205fdcb992e3127d95590ca54b98fd979e5d63d;hb=0ea78be056613d29d665d73491f149a93989ecbe;hp=d856c284034668d6802bf81b5511ddc949e2f978;hpb=05b23194d9b0ff765eb3e2a83bcef50bbe042e93;p=cc65 diff --git a/include/apple2.h b/include/apple2.h index d856c2840..f205fdcb9 100644 --- a/include/apple2.h +++ b/include/apple2.h @@ -1,8 +1,8 @@ /*****************************************************************************/ /* */ -/* apple2.h */ +/* apple2.h */ /* */ -/* Apple ][ system specific definitions */ +/* Apple ][ system specific definitions */ /* */ /* */ /* */ @@ -37,44 +37,44 @@ /* Check for errors */ -#if !defined(__APPLE2__) && !defined(__APPLE2ENH__) +#if !defined(__APPLE2__) # error This module may only be used when compiling for the Apple ][! #endif +#include + /*****************************************************************************/ -/* Data */ +/* Data */ /*****************************************************************************/ -/* Color Defines */ +/* Color defines */ #define COLOR_BLACK 0x00 -#define COLOR_GREEN 0x01 -#define COLOR_VIOLET 0x02 -#define COLOR_WHITE 0x03 -#define COLOR_BLACK2 0x04 -#define COLOR_ORANGE 0x05 -#define COLOR_BLUE 0x06 -#define COLOR_WHITE2 0x07 - -#define LORES_BLACK 0x00 -#define LORES_MAGENTA 0x01 -#define LORES_DARKBLUE 0x02 -#define LORES_VIOLET 0x03 -#define LORES_DARKGREEN 0x04 -#define LORES_GRAY 0x05 -#define LORES_BLUE 0x06 -#define LORES_CYAN 0x07 -#define LORES_BROWN 0x08 -#define LORES_ORANGE 0x09 -#define LORES_GRAY2 0x0A -#define LORES_PINK 0x0B -#define LORES_GREEN 0x0C -#define LORES_YELLOW 0x0D -#define LORES_AQUA 0x0E -#define LORES_WHITE 0x0F +#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_ENTER 0x0D @@ -82,6 +82,9 @@ #define CH_CURS_LEFT 0x08 #define CH_CURS_RIGHT 0x15 +#if !defined(__APPLE2ENH__) +#define CH_HLINE '-' +#define CH_VLINE '!' #define CH_ULCORNER '+' #define CH_URCORNER '+' #define CH_LLCORNER '+' @@ -91,57 +94,95 @@ #define CH_LTEE '+' #define CH_RTEE '+' #define CH_CROSS '+' +#endif + +/* Masks for joy_read */ +#define JOY_UP_MASK 0x10 +#define JOY_DOWN_MASK 0x20 +#define JOY_LEFT_MASK 0x04 +#define JOY_RIGHT_MASK 0x08 +#define JOY_BTN_1_MASK 0x40 +#define JOY_BTN_2_MASK 0x80 /* Return codes for get_ostype */ -#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) */ +#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 - */ +** +** 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 +** ProDOS 8 2.4.x - 0x24 +*/ /*****************************************************************************/ -/* Code */ +/* Variables */ /*****************************************************************************/ -unsigned char drivecount (void); -/* Returns the number of ProDOS 8 drives. */ +/* The file stream implementation and the POSIX I/O functions will use the +** following struct to set the date and time stamp on files. This specificially +** applies to the open and fopen functions. +*/ +extern struct { + struct { + unsigned day :5; + unsigned mon :4; + unsigned year :7; + } createdate; /* Current date: 0 */ + struct { + unsigned char min; + unsigned char hour; + } createtime; /* Current time: 0 */ +} _datetime; + +/* 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 */ +/*****************************************************************************/ + -unsigned char* drivelist (void); -/* Returns a pointer to the list of ProDOS 8 drives. */ unsigned char get_ostype (void); /* Get the machine type. Returns one of the APPLE_xxx codes. */ @@ -149,25 +190,20 @@ unsigned char get_ostype (void); void rebootafterexit (void); /* Reboot machine after program termination has completed. */ -unsigned char __fastcall__ rootdir (unsigned char drive, char* buf); -/* Fill buffer with root directory name of ProDOS 8 disk in ProDOS 8 drive. - * Returns 0 for success and an OS specific error code in case of failure. - */ - -#define ser_apple2_slot(num) ser_ioctl (0, (void*) (num)) +#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. - */ +** The default slot number is 2. +*/ -#define tgi_apple2_mix(onoff) tgi_ioctl (0, (void*) (onoff)) +#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. - */ +** 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. - */ +** 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