/*****************************************************************************/
/* */
-/* 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 */
-/* 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