X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fcbm510.h;h=3d6ccd209e7b5ce6ace65331b0f937c1b67a54c9;hb=b03ae76b54d77f435088cacf12d3cfd9873f05ed;hp=3755ade92ebc485d24ed9eb7b6335b1789c9f0bf;hpb=6fd17983adb7ceebf8683c54111bd3096a9cd951;p=cc65 diff --git a/include/cbm510.h b/include/cbm510.h index 3755ade92..3d6ccd209 100644 --- a/include/cbm510.h +++ b/include/cbm510.h @@ -1,15 +1,15 @@ /*****************************************************************************/ /* */ -/* cbm510.h */ +/* cbm510.h */ /* */ -/* System specific definitions for the CBM5x0 / P500 */ +/* System-specific definitions for the CBM5x0 / P500 */ /* */ /* */ /* */ -/* (C) 2001-2002 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 2001-2013, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -45,90 +45,120 @@ -/* Additional key defines */ -#define CH_F1 224 -#define CH_F2 225 -#define CH_F3 226 -#define CH_F4 227 -#define CH_F5 228 -#define CH_F6 229 -#define CH_F7 230 -#define CH_F8 231 -#define CH_F9 232 -#define CH_F10 233 -#define CH_F11 234 -#define CH_F12 235 -#define CH_F13 236 -#define CH_F14 237 -#define CH_F15 238 -#define CH_F16 239 -#define CH_F17 240 -#define CH_F18 241 -#define CH_F19 242 -#define CH_F20 243 +/*****************************************************************************/ +/* Data */ +/*****************************************************************************/ +/* Additional key defines */ +#define CH_F1 224 +#define CH_F2 225 +#define CH_F3 226 +#define CH_F4 227 +#define CH_F5 228 +#define CH_F6 229 +#define CH_F7 230 +#define CH_F8 231 +#define CH_F9 232 +#define CH_F10 233 +#define CH_F11 234 +#define CH_F12 235 +#define CH_F13 236 +#define CH_F14 237 +#define CH_F15 238 +#define CH_F16 239 +#define CH_F17 240 +#define CH_F18 241 +#define CH_F19 242 +#define CH_F20 243 + /* Color defines */ -#define COLOR_BLACK 0x00 -#define COLOR_WHITE 0x01 -#define COLOR_RED 0x02 -#define COLOR_CYAN 0x03 -#define COLOR_VIOLET 0x04 +#define COLOR_BLACK 0x00 +#define COLOR_WHITE 0x01 +#define COLOR_RED 0x02 +#define COLOR_CYAN 0x03 +#define COLOR_VIOLET 0x04 #define COLOR_PURPLE COLOR_VIOLET -#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 - - - -/* Special routines to read/write bytes and words in the system bank */ -unsigned char __fastcall__ peekbsys (unsigned addr); -unsigned __fastcall__ peekwsys (unsigned addr); -void __fastcall__ pokebsys (unsigned addr, unsigned char val); -void __fastcall__ pokewsys (unsigned addr, unsigned val); - -#if defined(__OPT_i__) && defined(__OPT_s__) -#define peekbsys(addr) \ - __AX__ = (addr), \ - asm ("sta ptr1"), \ - asm ("stx ptr1+1"), \ - asm ("ldx $01"), \ - asm ("lda #$0F"), \ - asm ("sta $01"), \ - asm ("ldy #$00"), \ - asm ("lda (ptr1),y"), \ - asm ("stx $01"), \ - asm ("ldx #$00"), \ - __AX__ -#endif - - +#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 + +/* 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 hardware */ #include <_vic2.h> -#define VIC (*(struct __vic2*)0xD800) +#define VIC (*(struct __vic2*)0xD800) #include <_sid.h> -#define SID (*(struct __sid*)0xDA00) +#define SID (*(struct __sid*)0xDA00) #include <_6526.h> -#define CIA (*(struct __cia*)0xDC00) +#define CIA2 (*(struct __6526*)0xDC00) #include <_6551.h> -#define ACIA (*(struct __6551*)0xDD00) +#define ACIA (*(struct __6551*)0xDD00) #include <_6525.h> -#define TPI1 (*(struct __6525*)0xDE00) -#define TPI2 (*(struct __6525*)0xDF00) +#define TPI1 (*(struct __6525*)0xDE00) +#define TPI2 (*(struct __6525*)0xDF00) + + + +/*****************************************************************************/ +/* Variables */ +/*****************************************************************************/ + + + +/* The addresses of the static drivers */ +extern void cbm510_inkwl_mou[]; +extern void cbm510_joy_mou[]; /* Referred to by mouse_static_stddrv[] */ +extern void cbm510_ram_emd[]; +extern void cbm510_std_joy[]; /* Referred to by joy_static_stddrv[] */ +extern void cbm510_std_ser[]; + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +/* Special routines to read/write bytes and words in the system bank */ +unsigned char __fastcall__ peekbsys (unsigned addr); +unsigned __fastcall__ peekwsys (unsigned addr); +void __fastcall__ pokebsys (unsigned addr, unsigned char val); +void __fastcall__ pokewsys (unsigned addr, unsigned val); + +#if defined(__OPT_i__) && (__OPT_i__ >= 600) +#define peekbsys(addr) \ + __AX__ = (addr), \ + __asm__ ("sta ptr1"), \ + __asm__ ("stx ptr1+1"), \ + __asm__ ("ldx $01"), \ + __asm__ ("lda #$0F"), \ + __asm__ ("sta $01"), \ + __asm__ ("ldy #$00"), \ + __asm__ ("lda (ptr1),y"), \ + __asm__ ("stx $01"), \ + __asm__ ("ldx #$00"), \ + __AX__ +#endif