; GRAPHICS PEN MODE 0/1/2
; (c) 1991 Klaus Meffert
;        & CPC International
; INPUT  A = GRAPHICS PEN (0 - 255)
; OUTPUT --
; WENN KEIN PATCH ERWUENSCHT IST,
; KOENNEN ALLE MIT * GEKENNZEICHNETEN
; ZEILEN WEGGELASSEN WERDEN

PENADR  EQU &B6A3         ;664/6128
;       EQU &B338         ;464
SETPEN  EQU &BBDE         ;GRA SET PEN

PATCH   LD HL,GRAPEN      ;*
        LD (SETPEN+1),HL  ;*
        LD A,&C3          ;*
        LD (SETPEN),A     ;*
        RET               ;*

GRAPEN  PUSH HL           ;*
        PUSH BC           ;*
        LD L,A
        CALL &BC11        ;GET MODE
        LD A,L
        JR Z ,GRAPEN1     ;MODE 1
        JR NC,GRAPEN2     ;MODE 2
GRAPEN0 AND &0F           ;WERTE VON 0 BIS 15
        LD  HL,PENTAB0    ;FARBTABELLE MODE 0
        JR GRAPUT
GRAPEN1 AND &03           ;WERTE VON 0 BIS 3
        LD HL,PENTAB1     ;FARBTABELLE MODE 1
        JR GRAPUT
GRAPEN2 AND &01           ;WERTE 0 UND 1
        LD HL,PENTAB2     ;FARBTABELLE MODE 2
GRAPUT  LD C,A
        LD B,0
        ADD HL,BC
        LD A,(HL)
        LD (PENADR),A     ;PENNUMMER FESTSETZEN
        POP BC            ;*
        POP HL            ;*
        RET

;FARBTABELLE MODE 0
PENTAB0
DEFB &00,&C0,&0C,&CC
DEFB &30,&F0,&3C,&FC
DEFB &03,&C3,&0F,&CF
DEFB &33,&F3,&3F,&FF
;FARBTABELLE MODE 1
PENTAB1
DEFB &00,&F0,&0F,&FF
;FARBTABELLE MODE 2
PENTAB2
DEFB &00,&FF