; copyright 2008 all rights reserved

STATUS equ 03h ; setting up the basics
TRISA equ 85h
TRISB equ 86h
PORTA equ 05h
PORTB equ 06h
OSCCON equ 8Fh
COUNT equ 21h
COUNT2 equ 52h

R1 equ 22h ; defining the video memory
G1 equ 23h 
B1 equ 24h
R2 equ 25h
G2 equ 26h
B2 equ 27h
R3 equ 28h
G3 equ 29h
B3 equ 2Ah
R4 equ 2Bh
G4 equ 2Ch
B4 equ 2Dh
R5 equ 2Eh
G5 equ 2Fh
B5 equ 30h
R6 equ 31h
G6 equ 32h
B6 equ 33h
R7 equ 34h
G7 equ 35h
B7 equ 36h
R8 equ 37h
G8 equ 38h
B8 equ 39h
R9 equ 3Ah
G9 equ 3Bh
B9 equ 3Ch
R10 equ 3Dh
G10 equ 3Eh
B10 equ 3Fh
R11 equ 40h
G11 equ 41h
B11 equ 42h
R12 equ 43h
G12 equ 44h
B12 equ 45h
R13 equ 46h
G13 equ 47h
B13 equ 48h
R14 equ 49h
G14 equ 4Ah
B14 equ 4Bh
R15 equ 4Ch
G15 equ 4Dh
B15 equ 4Eh
R16 equ 4Fh
G16 equ 50h
B16 equ 51h

REDA equ 60h ; setting up memory for rgbrefresh subroutine
GREENA equ 61h
BLUEA equ 62h
REDB equ 63h
GREENB equ 64h
BLUEB equ 65h

; setup crap

movlw	00h                  
movwf   PORTA
movwf   PORTB
bsf		STATUS,5              
movlw	b'01110000' ; 8Mhz yo!
movwf   OSCCON
movlw	00h
movwf   TRISA
movwf	TRISB
movwf   9Bh
movwf   8Bh
movwf   8Ch
bcf		STATUS,5
movlw	00h
movwf   14h
movwf   17h
movwf   PORTA
movwf   PORTB

; Actual program starts here

start

call allred
call rgbrefresh

call swipehred2green

call allgreen
call rgbrefresh

call swipehgreen2blue

call allblue
call rgbrefresh

call swipehblue2red

call allred
call rgbrefresh

call bluecheckuup
call redcheckedown

call greencheckeup
call redcheckudown
call bluecheckudown
call greencheckuup

call allgreen
call redcheckuup
call bluecheckeup
call greencheckudown
call redcheckudown
call bluecheckedown
call greencheckedown

call redcheckuup
call bluecheckeup
call greencheckuup
call greencheckeup

call redcheckudown
call bluecheckedown

call allgreen
call swipehgreen2blue
call redcheckuup
call redcheckeup
call bluecheckudown
call bluecheckedown

call greencheckuup
call greencheckeup

call swipehgreen2blue
call redcheckudown
call redcheckedown

call allblue
call swipehblue2red
goto start 

;all subroutines go here

rgbrefresh
movf R1,W  
movwf REDA
movf G1,W 
movwf BLUEA
movf B1,W 
movwf GREENA
movf R5,W 
movwf REDB
movf G5,W 
movwf BLUEB
movf B5,W 
movwf GREENB
movlw b'00000001'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R2,W 
movwf REDA
movf G2,W 
movwf BLUEA
movf B2,W 
movwf GREENA
movf R6,W 
movwf REDB
movf G6,W 
movwf BLUEB
movf B6,W 
movwf GREENB
movlw b'00000010'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R3,W 
movwf REDA
movf G3,W 
movwf BLUEA
movf B3,W 
movwf GREENA
movf R7,W 
movwf REDB
movf G7,W 
movwf BLUEB
movf B7,W 
movwf GREENB
movlw b'00000100'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R4,W 
movwf REDA
movf G4,W 
movwf BLUEA
movf B4,W 
movwf GREENA
movf R8,W 
movwf REDB
movf G8,W 
movwf BLUEB
movf B8,W 
movwf GREENB
movlw b'00001000'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm

movf R9,W 
movwf REDA
movf G9,W 
movwf BLUEA
movf B9,W 
movwf GREENA
movf R13,W 
movwf REDB
movf G13,W 
movwf BLUEB
movf B13,W 
movwf GREENB
movlw b'00010000'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R10,W 
movwf REDA
movf G10,W 
movwf BLUEA
movf B10,W 
movwf GREENA
movf R14,W 
movwf REDB
movf G14,W 
movwf BLUEB
movf B14,W 
movwf GREENB
movlw b'00100000'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R11,W 
movwf REDA
movf G11,W 
movwf BLUEA
movf B11,W 
movwf GREENA
movf R15,W 
movwf REDB
movf G15,W 
movwf BLUEB
movf B15,W 
movwf GREENB
movlw b'01000000'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
movf R12,W 
movwf REDA
movf G12,W 
movwf BLUEA
movf B12,W 
movwf GREENA
movf R16,W 
movwf REDB
movf G16,W 
movwf BLUEB
movf B16,W 
movwf GREENB
movlw b'10000000'
movwf PORTB
movlw d'32'
movwf COUNT
call linepwm
return

linepwm
movlw b'01011111' 
movwf PORTA
mainpwmloop 
decfsz REDA,1  
goto skip1 
BCF PORTA,0 
skip1 
decfsz GREENA,1  
goto skip2 
BCF PORTA,1  
skip2
decfsz BLUEA,1  
goto skip3 
BCF PORTA,2 
skip3
decfsz REDB,1 
goto skip4 
BCF PORTA,3 
skip4 
decfsz GREENB,1
goto skip5 
BCF PORTA,4  
skip5
decfsz BLUEB,1 
goto skip6
BCF PORTA,6 
skip6
decfsz COUNT,1 
goto mainpwmloop 
movlw 00h 
movwf PORTA
return

allred
movlw	d'32'  ;setting all RED to full
movwf   R1
movwf   R2
movwf   R3
movwf   R4
movwf   R5
movwf   R6
movwf   R7
movwf   R8
movwf   R9
movwf   R10
movwf   R11
movwf   R12
movwf   R13
movwf   R14
movwf   R15
movwf   R16
call rgbrefresh
movlw	d'1' ; setting all BLUE/GREEN to off
movwf   G1
movwf   B1
movwf   G2
movwf   B2
movwf   G3
movwf   B3
movwf   G4
movwf   B4
movwf   G5
movwf   B5
movwf   G6
movwf   B6
movwf   G7
movwf   B7
movwf   G8
movwf   B8
movwf   G9
movwf   B9
movwf   G10
movwf   B10
movwf   G11
movwf   B11
movwf   G12
movwf   B12
movwf   G13
movwf   B13
movwf   G14
movwf   B14
movwf   G15
movwf   B15
movwf   G16
movwf   B16
return

allgreen
movlw	d'32'  ; all green to full                
movwf   G1
movwf   G2
movwf   G3
movwf   G4
movwf   G5
movwf   G6
movwf   G7
movwf   G8
movwf   G9
movwf   G10
movwf   G11
movwf   G12
movwf   G13
movwf   G14
movwf   G15
movwf   G16
call rgbrefresh
movlw	d'1'  ; all red and blue off                
movwf   R1
movwf   B1
movwf   R2
movwf   B2
movwf   R3
movwf   B3
movwf   R4
movwf   B4
movwf   R5
movwf   B5
movwf   R6
movwf   B6
movwf   R7
movwf   B7
movwf   R8
movwf   B8
movwf   R9
movwf   B9
movwf   R10
movwf   B10
movwf   R11
movwf   B11
movwf   R12
movwf   B12
movwf   R13
movwf   B13
movwf   R14
movwf   B14
movwf   R15
movwf   B15
movwf   R16
movwf   B16
return

allblue
movlw	d'32'  ; all blue to full               
movwf   B1
movwf   B2
movwf   B3
movwf   B4
movwf   B5
movwf   B6
movwf   B7
movwf   B8
movwf   B9
movwf   B10
movwf   B11
movwf   B12
movwf   B13
movwf   B14
movwf   B15
movwf   B16
call rgbrefresh
movlw	d'1'  ; all red and green off                
movwf   R1
movwf   G1
movwf   R2
movwf   G2
movwf   R3
movwf   G3
movwf   R4
movwf   G4
movwf   R5
movwf   G5
movwf   R6
movwf   G6
movwf   R7
movwf   G7
movwf   R8
movwf   G8
movwf   R9
movwf   G9
movwf   R10
movwf   G10
movwf   R11
movwf   G11
movwf   R12
movwf   G12
movwf   R13
movwf   G13
movwf   R14
movwf   G14
movwf   R15
movwf   G15
movwf   R16
movwf   G16
return

swipehred2green
movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line1red2green
DECF R1
INCF G1
DECF R5
INCF G5
DECF R9
INCF G9
DECF R13
INCF G13
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line1red2green

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line2red2green
DECF R1
INCF G1
DECF R5
INCF G5
DECF R9
INCF G9
DECF R13
INCF G13
call rgbrefresh
DECF R2
INCF G2
DECF R6
INCF G6
DECF R10
INCF G10
DECF R14
INCF G14
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line2red2green

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line3red2green
DECF R1
INCF G1
DECF R5
INCF G5
DECF R9
INCF G9
DECF R13
INCF G13
call rgbrefresh
DECF R2
INCF G2
DECF R6
INCF G6
DECF R10
INCF G10
DECF R14
INCF G14
call rgbrefresh
DECF R3
INCF G3
DECF R7
INCF G7
DECF R11
INCF G11
DECF R15
INCF G15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line3red2green

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4red2green
DECF R4
INCF G4
DECF R8
INCF G8
DECF R12
INCF G12
DECF R16
INCF G16
call rgbrefresh
DECF R2
INCF G2
DECF R6
INCF G6
DECF R10
INCF G10
DECF R14
INCF G14
call rgbrefresh
DECF R3
INCF G3
DECF R7
INCF G7
DECF R11
INCF G11
DECF R15
INCF G15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4red2green

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4bred2green
DECF R4
INCF G4
DECF R8
INCF G8
DECF R12
INCF G12
DECF R16
INCF G16
call rgbrefresh
DECF R3
INCF G3
DECF R7
INCF G7
DECF R11
INCF G11
DECF R15
INCF G15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4bred2green

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line4cred2green
DECF R4
INCF G4
DECF R8
INCF G8
DECF R12
INCF G12
DECF R16
INCF G16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4cred2green
return

swipehgreen2blue
movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line1green2blue
DECF G1
INCF B1
DECF G5
INCF B5
DECF G9
INCF B9
DECF G13
INCF B13
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line1green2blue

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line2green2blue
DECF G1
INCF B1
DECF G5
INCF B5
DECF G9
INCF B9
DECF G13
INCF B13
call rgbrefresh
DECF G2
INCF B2
DECF G6
INCF B6
DECF G10
INCF B10
DECF G14
INCF B14
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line2green2blue

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line3green2blue
DECF G1
INCF B1
DECF G5
INCF B5
DECF G9
INCF B9
DECF G13
INCF B13
call rgbrefresh
DECF G2
INCF B2
DECF G6
INCF B6
DECF G10
INCF B10
DECF G14
INCF B14
call rgbrefresh
DECF G3
INCF B3
DECF G7
INCF B7
DECF G11
INCF B11
DECF G15
INCF B15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line3green2blue

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4green2blue
DECF G4
INCF B4
DECF G8
INCF B8
DECF G12
INCF B12
DECF G16
INCF B16
call rgbrefresh
DECF G2
INCF B2
DECF G6
INCF B6
DECF G10
INCF B10
DECF G14
INCF B14
call rgbrefresh
DECF G3
INCF B3
DECF G7
INCF B7
DECF G11
INCF B11
DECF G15
INCF B15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4green2blue

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4bgreen2blue
DECF G4
INCF B4
DECF G8
INCF B8
DECF G12
INCF B12
DECF G16
INCF B16
call rgbrefresh
DECF G3
INCF B3
DECF G7
INCF B7
DECF G11
INCF B11
DECF G15
INCF B15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4bgreen2blue

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line4cgreen2blue
DECF G4
INCF B4
DECF G8
INCF B8
DECF G12
INCF B12
DECF G16
INCF B16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4cgreen2blue
return

swipehblue2red
movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line1blue2red
DECF B1
INCF R1
DECF B5
INCF R5
DECF B9
INCF R9
DECF B13
INCF R13
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line1blue2red


movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line2blue2red
DECF B1
INCF R1
DECF B5
INCF R5
DECF B9
INCF R9
DECF B13
INCF R13
call rgbrefresh
DECF B2
INCF R2
DECF B6
INCF R6
DECF B10
INCF R10
DECF B14
INCF R14
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line2blue2red

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line3blue2red
DECF B1
INCF R1
DECF B5
INCF R5
DECF B9
INCF R9
DECF B13
INCF R13
call rgbrefresh
DECF B2
INCF R2
DECF B6
INCF R6
DECF B10
INCF R10
DECF B14
INCF R14
call rgbrefresh
DECF B3
INCF R3
DECF B7
INCF R7
DECF B11
INCF R11
DECF B15
INCF R15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line3blue2red

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4blue2red
DECF B4
INCF R4
DECF B8
INCF R8
DECF B12
INCF R12
DECF B16
INCF R16
call rgbrefresh
DECF B2
INCF R2
DECF B6
INCF R6
DECF B10
INCF R10
DECF B14
INCF R14
call rgbrefresh
DECF B3
INCF R3
DECF B7
INCF R7
DECF B11
INCF R11
DECF B15
INCF R15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4blue2red

movlw	d'10'                 
movwf   COUNT2
call rgbrefresh
line4bblue2red
DECF B4
INCF R4
DECF B8
INCF R8
DECF B12
INCF R12
DECF B16
INCF R16
call rgbrefresh
DECF B3
INCF R3
DECF B7
INCF R7
DECF B11
INCF R11
DECF B15
INCF R15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4bblue2red

movlw	d'11'                 
movwf   COUNT2
call rgbrefresh
line4cblue2red
DECF B4
INCF R4
DECF B8
INCF R8
DECF B12
INCF R12
DECF B16
INCF R16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto line4cblue2red
return

redcheckuup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfaderedup
INCF R1
INCF R3
INCF R6
INCF R8
INCF R9
INCF R11
INCF R14
INCF R16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfaderedup
return

greencheckuup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfadegreenup
INCF G1
INCF G3
INCF G6
INCF G8
INCF G9
INCF G11
INCF G14
INCF G16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfadegreenup
return

bluecheckuup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfadeblueup
INCF B1
INCF B3
INCF B6
INCF B8
INCF B9
INCF B11
INCF B14
INCF B16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfadeblueup
return

redcheckudown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfadereddown
DECF R1
DECF R3
DECF R6
DECF R8
DECF R9
DECF R11
DECF R14
DECF R16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfadereddown
return

greencheckudown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfadegreendown
DECF G1
DECF G3
DECF G6
DECF G8
DECF G9
DECF G11
DECF G14
DECF G16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfadegreendown
return

bluecheckudown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
unevenfadebluedown
DECF B1
DECF B3
DECF B6
DECF B8
DECF B9
DECF B11
DECF B14
DECF B16
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto unevenfadebluedown
return

redcheckeup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfaderedup
INCF R2
INCF R4
INCF R5
INCF R7
INCF R10
INCF R12
INCF R13
INCF R15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfaderedup
return

greencheckeup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfadegreenup
INCF G2
INCF G4
INCF G5
INCF G7
INCF G10
INCF G12
INCF G13
INCF G15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfadegreenup
return

bluecheckeup
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfadeblueup
INCF B2 
INCF B4
INCF B5
INCF B7
INCF B10
INCF B12
INCF B13
INCF B15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfadeblueup
return

redcheckedown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfadereddown
DECF R2
DECF R4
DECF R5
DECF R7
DECF R10
DECF R12
DECF R13
DECF R15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfadereddown
return

greencheckedown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfadegreendown
DECF G2
DECF G4
DECF G5
DECF G7
DECF G10
DECF G12
DECF G13
DECF G15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfadegreendown
return

bluecheckedown
movlw	d'31'                 
movwf   COUNT2
call rgbrefresh
evenfadebluedown
DECF B2
DECF B4
DECF B5
DECF B7
DECF B10
DECF B12
DECF B13
DECF B15
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
call rgbrefresh
DECFSZ COUNT2,1
goto evenfadebluedown
return


END

