]> git.sur5r.net Git - cc65/commitdiff
Added TGI_COLOR_... macros to be used both for hires and lores. Introduced color...
authorol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 25 Apr 2011 11:16:56 +0000 (11:16 +0000)
committerol.sc <ol.sc@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Mon, 25 Apr 2011 11:16:56 +0000 (11:16 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@4992 b7a2c559-68d2-44c3-8de9-860c34a00d81

include/apple2.h
include/apple2enh.h
libsrc/apple2/apple2-40-48-16.s

index 6f45a60d63a591b0cbafa5d0b99dd7fe48b1e46c..84f4fea35f55e4d730dc922e54f1b48779344e0f 100644 (file)
 
 
 
-/* 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
 
 
 
index 0da2a351e5b0280f6cef4f8e51d0d3d9db06c416..297039d181fb893dafc2369ae1feb88016b8df9d 100644 (file)
 
 
 /* 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
 
 
 
index 4ea5408402e08e569cf35714418426324f7c59e2..9054d8c69e0f90b3f55c20bc1c5c9413adbeb958 100644 (file)
@@ -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