Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.
DECLARE SUB PALFADE (PSRC() AS ANY, PDST() AS ANY)
DECLARE SUB PALGET (C%, R%, G%, B%)
DECLARE SUB PALSET (C%, R%, G%, B%)
DEFINT A-Z
TYPE PALTYPE
R AS INTEGER
G AS INTEGER
B AS INTEGER
END TYPE
DIM PAL1(255) AS PALTYPE
DIM PAL2(255) AS PALTYPE
SCREEN 13
FOR C = 0 TO 255
PALGET C, PAL1(C).R, PAL1(C).G, PAL1(C).B
SELECT CASE (C \ 63)
CASE 0
PAL2(C).R = C MOD 63
CASE 1
PAL2(C).G = C MOD 63
CASE 2
PAL2(C).B = C MOD 63
CASE 3
PAL2(C).R = C MOD 63
PAL2(C).G = C MOD 63
PAL2(C).B = C MOD 63
END SELECT
NEXT
FOR Y = 0 TO 19
FOR X = 0 TO 31
LINE (X * 10, Y * 10)-(X * 10 + 9, Y * 10 + 9), C, BF
C = (C + 1) MOD 256
NEXT
NEXT
A$ = INPUT$(1)
PALFADE PAL1(), PAL2()
A$ = INPUT$(1)
PALFADE PAL2(), PAL1()
SUB PALFADE (PSRC() AS PALTYPE, PDST() AS PALTYPE)
'PALETTE FADE SUB BY JOSH STRIBLING 4-14-03
'SETUP
DIM TEMP(255, 2) AS SINGLE
'FACTOR IS THE FADE STEPS (2 TO 255)
FACTOR = 255
'PRECALCULATE THE DIVISION
FOR C = 0 TO 255
TEMP(C, 0) = (PDST(C).R - PSRC(C).R) / FACTOR
TEMP(C, 1) = (PDST(C).G - PSRC(C).G) / FACTOR
TEMP(C, 2) = (PDST(C).B - PSRC(C).B) / FACTOR
NEXT
'FADE
FOR F = 1 TO FACTOR - 1
FOR C = 0 TO 255
PALSET C, PSRC(C).R + INT(TEMP(C, 0) * F), PSRC(C).G + INT(TEMP(C, 1) * F), PSRC(C).B + INT(TEMP(C, 2) * F)
NEXT
'DELAY... USE FOR ANYTHING WITH FACTOR UNDER 63
'T! = TIMER: DO: LOOP UNTIL ABS(TIMER - T!) > .1 / FACTOR
NEXT
'FINALIZE
FOR C = 0 TO 255
PALSET C, PDST(C).R, PDST(C).G, PDST(C).B
NEXT
END SUB
SUB PALGET (C, R, G, B)
OUT &H3C7, C
R = INP(&H3C9)
G = INP(&H3C9)
B = INP(&H3C9)
END SUB
SUB PALSET (C, R, G, B)
OUT &H3C8, C
OUT &H3C9, R
OUT &H3C9, G
OUT &H3C9, B
END SUB