X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fcbm610.h;h=de7aa50f84c646b8e53b028ae6df0d248628a2c1;hb=96d0b00a76acd2eae545ac470aac9d8d5645f931;hp=723d876993a4e7826eea7f537c5e3e3e4ee3ae02;hpb=f47648ecfb4ae432622580d1b9022647de2f8ec7;p=cc65 diff --git a/include/cbm610.h b/include/cbm610.h index 723d87699..de7aa50f8 100644 --- a/include/cbm610.h +++ b/include/cbm610.h @@ -1,15 +1,15 @@ /*****************************************************************************/ /* */ -/* cbm610.h */ +/* cbm610.h */ /* */ -/* CBM610 system specific definitions */ +/* CBM610 system specific definitions */ /* */ /* */ /* */ -/* (C) 1998-2002 Ullrich von Bassewitz */ -/* Wacholderweg 14 */ -/* D-70597 Stuttgart */ -/* EMail: uz@musoftware.de */ +/* (C) 1998-2009, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -45,93 +45,109 @@ -/* 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_BLACK 0x00 +#define COLOR_WHITE 0x01 +/* Define hardware */ +#include <_6545.h> +#define CRTC (*(struct __6545)0xD800) +#include <_sid.h> +#define SID (*(struct __sid*)0xDA00) -/* 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); +#include <_6526.h> +#define CIA1 (*(struct __6526*)0xDB00) +#define CIA2 (*(struct __6526*)0xDC00) -#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__ +#include <_6551.h> +#define ACIA (*(struct __6551*)0xDD00) -#define pokebsys(addr,val) \ - __AX__ = (addr), \ - asm ("sta ptr1"), \ - asm ("stx ptr1+1"), \ - __AX__ = (val), \ - asm ("ldx $01"), \ - asm ("ldy #$0F"), \ - asm ("sty $01"), \ - asm ("ldy #$00"), \ - asm ("sta (ptr1),y"), \ - asm ("stx $01") +#include <_6525.h> +#define TPI1 (*(struct __6525*)0xDE00) +#define TPI2 (*(struct __6525*)0xDF00) -#endif +/*****************************************************************************/ +/* Variables */ +/*****************************************************************************/ -/* Define hardware */ -#include <_6545.h> -#define CRTC (*(struct __6545)0xD800) -#include <_sid.h> -#define SID (*(struct __sid*)0xDA00) -#include <_6526.h> -#define CIA (*(struct __cia*)0xDC00) +/* The addresses of the static drivers */ +extern void cbm610_ram_emd[]; +extern void cbm610_std_ser[]; -#include <_6551.h> -#define ACIA (*(struct __6551*)0xDD00) -#include <_6525.h> -#define TPI1 (*(struct __6525*)0xDE00) -#define TPI2 (*(struct __6525*)0xDF00) +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ -/* End of cbm610.h */ + +/* 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 +/* 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. +*/ +#define _textcolor(color) COLOR_WHITE +#define _bgcolor(color) COLOR_BLACK +#define _bordercolor(color) COLOR_BLACK +#define _cpeekcolor(color) COLOR_WHITE + + + +/* End of cbm610.h */ +#endif