1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-24 11:31:31 +00:00

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
This commit is contained in:
ol.sc 2011-04-25 11:16:56 +00:00
parent 98fdd6f792
commit 012e3e456a
3 changed files with 87 additions and 79 deletions

View File

@ -49,32 +49,30 @@
/* Color Defines */ /* Color defines */
#define COLOR_BLACK 0x00 #define COLOR_BLACK 0x00
#define COLOR_GREEN 0x01 #define COLOR_WHITE 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 /* TGI color defines */
#define LORES_MAGENTA 0x01 #define TGI_COLOR_BLACK 0x00
#define LORES_DARKBLUE 0x02 #define TGI_COLOR_GREEN 0x01
#define LORES_VIOLET 0x03 #define TGI_COLOR_VIOLET 0x02
#define LORES_DARKGREEN 0x04 #define TGI_COLOR_WHITE 0x03
#define LORES_GRAY 0x05 #define TGI_COLOR_BLACK2 0x04
#define LORES_BLUE 0x06 #define TGI_COLOR_ORANGE 0x05
#define LORES_CYAN 0x07 #define TGI_COLOR_BLUE 0x06
#define LORES_BROWN 0x08 #define TGI_COLOR_WHITE2 0x07
#define LORES_ORANGE 0x09
#define LORES_GRAY2 0x0A #define TGI_COLOR_MAGENTA TGI_COLOR_BLACK2
#define LORES_PINK 0x0B #define TGI_COLOR_DARKBLUE TGI_COLOR_WHITE2
#define LORES_GREEN 0x0C #define TGI_COLOR_DARKGREEN 0x08
#define LORES_YELLOW 0x0D #define TGI_COLOR_GRAY 0x09
#define LORES_AQUA 0x0E #define TGI_COLOR_CYAN 0x0A
#define LORES_WHITE 0x0F #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 */ /* Characters codes */
#define CH_ENTER 0x0D #define CH_ENTER 0x0D

View File

@ -94,6 +94,12 @@ MIX: .res 1 ; 4 lines of text
DEFPALETTE: .byte $00, $01, $02, $03, $04, $05, $06, $07 DEFPALETTE: .byte $00, $01, $02, $03, $04, $05, $06, $07
.byte $08, $09, $0A, $0B, $0C, $0D, $0E, $0F .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 MAXY: .byte 47, 39
; ------------------------------------------------------------------------ ; ------------------------------------------------------------------------
@ -189,7 +195,7 @@ CLEAR:
ldy MAXY,x ; Max Y depends on 4 lines of text ldy MAXY,x ; Max Y depends on 4 lines of text
jsr CLRSC2 jsr CLRSC2
pla pla
sta COLOR ; Save current drawing color sta COLOR ; Restore current drawing color
bit $C080 ; Switch in LC bank 2 for R/O bit $C080 ; Switch in LC bank 2 for R/O
rts rts
@ -198,6 +204,8 @@ CLEAR:
; Must set an error code: NO (will only be called if color ok) ; Must set an error code: NO (will only be called if color ok)
SETCOLOR: SETCOLOR:
bit $C082 ; Switch in ROM bit $C082 ; Switch in ROM
tax
lda TGI2COL,x
jsr SETCOL jsr SETCOL
bit $C080 ; Switch in LC bank 2 for R/O bit $C080 ; Switch in LC bank 2 for R/O
rts rts
@ -239,7 +247,7 @@ CONTROL:
cpx #47+1 ; Last line cpx #47+1 ; Last line
bcc :- bcc :-
pla pla
sta COLOR ; Save current drawing color sta COLOR ; Restore current drawing color
bcs :+ ; Branch always bcs :+ ; Branch always
; Clear 4 lines of text ; Clear 4 lines of text
@ -301,6 +309,8 @@ GETPIXEL:
ldy X1 ldy X1
lda Y1 lda Y1
jsr SCRN jsr SCRN
tax
lda COL2TGI,x
ldx #$00 ldx #$00
bit $C080 ; Switch in LC bank 2 for R/O bit $C080 ; Switch in LC bank 2 for R/O
rts rts