X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fc128.h;h=fe1dd4317ba008870168cf0c4a19f3378aaffb4a;hb=HEAD;hp=1831f6e9bab29ad4ce77d2253c5f4737147182de;hpb=a17dee1a1c8b135377d40b2ca4dc56fb16fd4446;p=cc65 diff --git a/include/c128.h b/include/c128.h index 1831f6e9b..fe1dd4317 100644 --- a/include/c128.h +++ b/include/c128.h @@ -1,15 +1,15 @@ /*****************************************************************************/ /* */ -/* c128.h */ +/* c128.h */ /* */ -/* C128 system specific definitions */ +/* C128 system specific definitions */ /* */ /* */ /* */ -/* (C) 1998-2000 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 1998-2013, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -33,71 +33,143 @@ -/* - * c128.h - * - * Ullrich von Bassewitz, 12.08.1998 - */ - - - #ifndef _C128_H #define _C128_H -/* Additional key defines */ -#define CH_F1 133 -#define CH_F2 137 -#define CH_F3 134 -#define CH_F4 138 -#define CH_F5 135 -#define CH_F6 139 -#define CH_F7 136 -#define CH_F8 140 +/* 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 +#define CH_F3 134 +#define CH_F4 138 +#define CH_F5 135 +#define CH_F6 139 +#define CH_F7 136 +#define CH_F8 140 + /* Color defines */ -#define COLOR_BLACK 0x00 -#define COLOR_WHITE 0x01 -#define COLOR_RED 0x02 -#define COLOR_CYAN 0x03 -#define COLOR_VIOLET 0x04 -#define COLOR_GREEN 0x05 -#define COLOR_BLUE 0x06 -#define COLOR_YELLOW 0x07 -#define COLOR_ORANGE 0x08 -#define COLOR_BROWN 0x09 -#define COLOR_LIGHTRED 0x0A -#define COLOR_GRAY1 0x0B -#define COLOR_GRAY2 0x0C -#define COLOR_LIGHTGREEN 0x0D -#define COLOR_LIGHTBLUE 0x0E -#define COLOR_GRAY3 0x0F +#define COLOR_BLACK 0x00 +#define COLOR_WHITE 0x01 +#define COLOR_RED 0x02 +#define COLOR_CYAN 0x03 +#define COLOR_VIOLET 0x04 +#define COLOR_GREEN 0x05 +#define COLOR_BLUE 0x06 +#define COLOR_YELLOW 0x07 +#define COLOR_ORANGE 0x08 +#define COLOR_BROWN 0x09 +#define COLOR_LIGHTRED 0x0A +#define COLOR_GRAY1 0x0B +#define COLOR_GRAY2 0x0C +#define COLOR_LIGHTGREEN 0x0D +#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 + +/* 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 + +/* 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) +#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) +#define CIA1 (*(struct __6526*)0xDC00) +#define CIA2 (*(struct __6526*)0xDD00) /* Define special memory areas */ -#define COLOR_RAM ((unsigned char*)0xD800) +#define COLOR_RAM ((unsigned char*)0xD800) -/* End of c128.h */ -#endif +/* The addresses of the static drivers */ +extern void c128_georam_emd[]; +extern void c128_ram_emd[]; +extern void c128_ram2_emd[]; +extern void c128_ramcart_emd[]; +extern void c128_reu_emd[]; +extern void c128_vdc_emd[]; +extern void c128_ptvjoy_joy[]; +extern void c128_stdjoy_joy[]; /* Referred to by joy_static_stddrv[] */ +extern void c128_1351_mou[]; /* Referred to by mouse_static_stddrv[] */ +extern void c128_joy_mou[]; +extern void c128_inkwell_mou[]; +extern void c128_pot_mou[]; +extern void c128_swlink_ser[]; +extern void c128_hi_tgi[]; +extern void c128_vdc_tgi[]; /* Referred to by tgi_static_stddrv[] */ +extern void c128_vdc2_tgi[]; + + + +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. */ + +unsigned char isfast (void); +/* Returns 1 if the CPU is in 2MHz mode. */ + +/* End of c128.h */ +#endif