From: ol.sc Date: Mon, 25 Apr 2011 11:16:56 +0000 (+0000) Subject: Added TGI_COLOR_... macros to be used both for hires and lores. Introduced color... X-Git-Tag: V2.13.3~468 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=012e3e456a114b94797ec82bd5c28bf024f12f57;p=cc65 Added TGI_COLOR_... macros to be used both for hires and lores. Introduced color mapping on lores to allow for common color macros. git-svn-id: svn://svn.cc65.org/cc65/trunk@4992 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/include/apple2.h b/include/apple2.h index 6f45a60d6..84f4fea35 100644 --- a/include/apple2.h +++ b/include/apple2.h @@ -49,65 +49,63 @@ -/* 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 +/* Color defines */ +#define COLOR_BLACK 0x00 +#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 -#define CH_ESC 0x1B -#define CH_CURS_LEFT 0x08 -#define CH_CURS_RIGHT 0x15 - -#define CH_ULCORNER '+' -#define CH_URCORNER '+' -#define CH_LLCORNER '+' -#define CH_LRCORNER '+' -#define CH_TTEE '+' -#define CH_BTEE '+' -#define CH_LTEE '+' -#define CH_RTEE '+' -#define CH_CROSS '+' +#define CH_ENTER 0x0D +#define CH_ESC 0x1B +#define CH_CURS_LEFT 0x08 +#define CH_CURS_RIGHT 0x15 + +#define CH_ULCORNER '+' +#define CH_URCORNER '+' +#define CH_LLCORNER '+' +#define CH_LRCORNER '+' +#define CH_TTEE '+' +#define CH_BTEE '+' +#define CH_LTEE '+' +#define CH_RTEE '+' +#define CH_CROSS '+' /* 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: @@ -140,8 +138,8 @@ extern unsigned char _dos_type; /* The file stream implementation and the POSIX I/O functions will use the * following variables to determine the file type and the aux type to use. */ -extern unsigned char _filetype; /* Default 6 */ -extern unsigned int _auxtype; /* Default 0 */ +extern unsigned char _filetype; /* Default 6 */ +extern unsigned int _auxtype; /* Default 0 */ @@ -168,12 +166,12 @@ int __fastcall__ rootdir (unsigned char drive, char* buf); * ProDOS 8 drive. Returns 0 on success and -1 on error. */ -#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. */ -#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. */ @@ -182,9 +180,9 @@ int __fastcall__ rootdir (unsigned char drive, char* buf); * 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 _textcolor(color) COLOR_WHITE +#define _bgcolor(color) COLOR_BLACK +#define _bordercolor(color) COLOR_BLACK diff --git a/include/apple2enh.h b/include/apple2enh.h index 0da2a351e..297039d18 100644 --- a/include/apple2enh.h +++ b/include/apple2enh.h @@ -56,31 +56,31 @@ /* Characters codes */ -#define CH_DEL 0x7F -#define CH_CURS_UP 0x0B -#define CH_CURS_DOWN 0x0A +#define CH_DEL 0x7F +#define CH_CURS_UP 0x0B +#define CH_CURS_DOWN 0x0A /* These are defined to be OpenApple + NumberKey */ -#define CH_F1 0xB1 -#define CH_F2 0xB2 -#define CH_F3 0xB3 -#define CH_F4 0xB4 -#define CH_F5 0xB5 -#define CH_F6 0xB6 -#define CH_F7 0xB7 -#define CH_F8 0xB8 -#define CH_F9 0xB9 -#define CH_F10 0xB0 +#define CH_F1 0xB1 +#define CH_F2 0xB2 +#define CH_F3 0xB3 +#define CH_F4 0xB4 +#define CH_F5 0xB5 +#define CH_F6 0xB6 +#define CH_F7 0xB7 +#define CH_F8 0xB8 +#define CH_F9 0xB9 +#define CH_F10 0xB0 /* Styles for textframe */ #define TEXTFRAME_WIDE 0x00 #define TEXTFRAME_TALL 0x04 /* Video modes */ -#define VIDEOMODE_40x24 0x0011 -#define VIDEOMODE_80x24 0x0012 -#define VIDEOMODE_40COL VIDEOMODE_40x24 -#define VIDEOMODE_80COL VIDEOMODE_80x24 +#define VIDEOMODE_40x24 0x0011 +#define VIDEOMODE_80x24 0x0012 +#define VIDEOMODE_40COL VIDEOMODE_40x24 +#define VIDEOMODE_80COL VIDEOMODE_80x24 diff --git a/libsrc/apple2/apple2-40-48-16.s b/libsrc/apple2/apple2-40-48-16.s index 4ea540840..9054d8c69 100644 --- a/libsrc/apple2/apple2-40-48-16.s +++ b/libsrc/apple2/apple2-40-48-16.s @@ -94,6 +94,12 @@ MIX: .res 1 ; 4 lines of text DEFPALETTE: .byte $00, $01, $02, $03, $04, $05, $06, $07 .byte $08, $09, $0A, $0B, $0C, $0D, $0E, $0F +TGI2COL: .byte $00, $0C, $03, $0F, $01, $09, $06, $02 + .byte $04, $05, $07, $08, $0A, $0B, $0D, $0E + +COL2TGI: .byte $00, $04, $07, $02, $08, $09, $06, $0A + .byte $0B, $05, $0C, $0D, $01, $0E, $0F, $03 + MAXY: .byte 47, 39 ; ------------------------------------------------------------------------ @@ -189,7 +195,7 @@ CLEAR: ldy MAXY,x ; Max Y depends on 4 lines of text jsr CLRSC2 pla - sta COLOR ; Save current drawing color + sta COLOR ; Restore current drawing color bit $C080 ; Switch in LC bank 2 for R/O rts @@ -198,6 +204,8 @@ CLEAR: ; Must set an error code: NO (will only be called if color ok) SETCOLOR: bit $C082 ; Switch in ROM + tax + lda TGI2COL,x jsr SETCOL bit $C080 ; Switch in LC bank 2 for R/O rts @@ -239,7 +247,7 @@ CONTROL: cpx #47+1 ; Last line bcc :- pla - sta COLOR ; Save current drawing color + sta COLOR ; Restore current drawing color bcs :+ ; Branch always ; Clear 4 lines of text @@ -301,6 +309,8 @@ GETPIXEL: ldy X1 lda Y1 jsr SCRN + tax + lda COL2TGI,x ldx #$00 bit $C080 ; Switch in LC bank 2 for R/O rts