mirror of
https://github.com/cc65/cc65.git
synced 2024-12-23 04:30:10 +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:
parent
98fdd6f792
commit
012e3e456a
118
include/apple2.h
118
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
|
||||
/* Color defines */
|
||||
#define COLOR_BLACK 0x00
|
||||
#define COLOR_WHITE 0x01
|
||||
|
||||
#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
|
||||
/* 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_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_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
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user