L,€‚COLOUR UTILS(C) 1987 Hugh HaskellHЩ №Щ№zh`˜HŠHБђЩ №ЂџˆшШНобђ№їЩў№hЊhЈh` ]€Lь€ чџЂџшН € уџаї чџ` ]€ чџЂџшНЏ уџЩ аѕ чџ џЂЉ уџЪањШЙР0 уџаѕЊ чџрџ№H˜iЩџ№@Јаи˜HŠHˆ„VЂџшШНР03БђнР№ђЩ.а ШшНРњLђ€шНРњЩџ№ŠiЩџ№ЊЄVLИ€hЊhЈh`Щџ№і…SшНР…RшНР…TшНР…UшНР…V№0n…Щ№АЉŒ єџЅ…XЉ…WІUр№ БR‘WШаљцXцSЪађЄTБR‘WˆаљБR‘WЅV0YЉŠЂ O єџ L єџ D єџ  єџ R єџ U єџ N єџ  єџhhhЉ`шНР…WшНР…XЉ`ЄVРџаЉL…YшНР…ZшНР…[L) YL| Program List CHANGEр7#€Init–<#€џCў є CHAMELION PALLETTE SETUP є By Mike Cook &є Beeb Body Building Course Feb 90 (ы 7 2 *FX 200,2 < *DIR C F*K.0 "LSNAPPER|M|Q" Pо R(15),G(15),B(15),M% 18 Zо RT(7),GT(7),BT(7) d P%=&FE60 n?&FE62=&FF x?&FE6C=&AE ‚ SCOL=M% Œ P%=M% –[   OPT 0 Њ STA &FE60 Д STX &FE60 О STY &FE60 Ш LDA #&E0 в STA &FE60 мRTS ц] №C=0 њ у A=0 И 7 ч A € 1 Œ R(A)=15 ‹ R(A)=0 ч A € 2 Œ G(A)=15 ‹ G(A)=0 ч A € 4 Œ B(A)=15 ‹ B(A)=0 "ђDCOL(A,R(A),G(A),B(A)) ,ђDCOL(A+8,C,C,C) 6R(A+8)=C:G(A+8)=C:B(A+8)=C @ C=C+2 Jэ Tл ^+ё" CHAMELEON COLOUR PALETTE SELECTOR" hё r!ё"Select a working colour by" |ё" typing its number." †ё  ё"Add more Red Green & Blue" šё"by hitting R G B Keys" Є"ё"Hold down shift to subtract" Ўё И$ё"S - Will alter the saturation" Т$ё"V - Will alter the brightness" Ьё"H - Will alter the hue" жё р0ё"E - To exchange main & alternate palettes" ъ/ё"I - Will interpolate between two colours" є!ё"L - To load a palette file" ў"ё"W - To write a palette file" ё ё"CTRL Q - To Quit" ё &€ё"‚…Note For VAL, Press ANY KEY then the ‚…FIRSTRED KEY…ON THE LEFT MARKED f0. ‚…THEN FOLLOW No. 6 ON THE INSTRUCTIONS"; 0 ё"PRESS ANY KEY TO CONTINUE" :N=Ѕ Dы2 N ё Š0,15) X у A=1 И 7 b ћ A:ц 0,A lё "COLOUR NUMBER ";A vё €ь 177*(A-1),1023 Š№ 0,0,-200 ”№ 81,177,0 ž № 0,0,200 Ј№ 81,-177,0 Вэ М ё Š0,7);" 1 2 3 4 5 6 7" ЦN=1 а#ё Š0,10);"WORKING COLOUR No.";N кё фѕ юё"RED =";R(N);" " јё"GREEN =";G(N);" " ё"BLUE =";B(N);" "  C$=О ч І(-1) Œ INC=-1 ‹ INC=1  ?ч C$="R" Œ R(N)=R(N)+INC:ч R(N)<0 „ R(N)>15 Œ R(N)=R(N)-INC *?ч C$="G" Œ G(N)=G(N)+INC:ч G(N)<0 „ G(N)>15 Œ G(N)=G(N)-INC 4?ч C$="B" Œ B(N)=B(N)+INC:ч B(N)<0 „ B(N)>15 Œ B(N)=B(N)-INC >ч C$="E" Œ ђPSWAP Hч C$="I" Œ ђINTERP R$ч C$="H" Œ ђHVAL(R(N),G(N),B(N)) \$ч C$="V" Œ ђVVAL(R(N),G(N),B(N)) f$ч C$="S" Œ ђSVAL(R(N),G(N),B(N)) pч C$="W" Œ ђFILE(1) zч C$="L" Œ ђFILE(0) „ч C$=Н(17) Œ х D~I ŽђDCOL(N,R(N),G(N),B(N)) ˜ ё Š0,12); Ђ§ —(C$)<&3A ЌN=—(C$) € 7 Ж х dPB РнђDCOL(CN%,R%,G%,B%) Ъ?&FE60=&E0+CN% дA%=R% ‚ 15 оX%=(G% ‚ 15)+64 шY%=(B% ‚ 15)+128 ђ *FX19 ќ ж SCOL с  н ђPSWAP  ъ TEMP% $ у A=0 И 7 .'TEMP%=R(A):R(A)=R(A+8):R(A+8)=TEMP% 8'TEMP%=G(A):G(A)=G(A+8):G(A+8)=TEMP% B'TEMP%=B(A):B(A)=B(A+8):B(A+8)=TEMP% Lэ Vу A=0 И 15 `ђDCOL(A,R(A),G(A),B(A)) jэ tс ~ н ђINTERP ˆ у A=0 И 7 ’RT(A)=R(A) œGT(A)=G(A) ІBT(A)=B(A) Аэ Кё Š0,10);Ф120," ") Ф"ё Š0,10);"INTERPOLATE BETWEEN" Юё иё " COLOUR"; т S%=Ѕ € 7 ь ё " ";S% іё "TO COLOUR";  F%=Ѕ € 7  ё " ";F% ч S%>F% Œ T%=S%:S%=F%:F%=T% DIS%=F%-S% (ч DIS%<1 Œ d\E 2RI=(R(F%)-R(S%))/DIS% <GI=(G(F%)-G(S%))/DIS% FBI=(B(F%)-B(S%))/DIS% P!AGR=R(S%):AGG=G(S%):AGB=B(S%) Zу A=S%+1 И F%-1 dAGR=AGR+RI nRT(A)=Ј(AGR) xAGG=AGG+GI ‚GT(A)=Ј(AGG) ŒAGB=AGB+BI –BT(A)=Ј(AGB)  ђDCOL(A,RT(A),GT(A),BT(A)) Њэ Дё"KEEP/REJECT (K/R)"; ОC$=О Шч C$="R" Œ dzE вч C$="K" Œ d\E ‹ t~E м у A=0 И 7 ц$R(A)=RT(A):G(A)=GT(A):B(A)=BT(A) №э њ у A=0 И 7 ђDCOL(A,R(A),G(A),B(A)) э ё Š0,10);Ф120," ") " C$=Н(N) ,с 6н ђHVAL(RI,GI,BI) @ђRGB_HSV(RI,GI,BI) JH=H+INC*60 Tч H<0 Œ H=0 ^ч H>430 Œ H=180:S=1/15 hч H>360 Œ H=H-360 r ђHVS_RGB |&ч CERR=0 Œ R(N)=RI:G(N)=GI:B(N)=BI †с н ђVVAL(RI,GI,BI) šђRGB_HSV(RI,GI,BI) ЄV=V+(INC/15) Ўч V>1 Œ V=1 Ич V<0 Œ V=0 Т ђHVS_RGB Ь&ч CERR=0 Œ R(N)=RI:G(N)=GI:B(N)=BI жс рн ђSVAL(RI,GI,BI) ъђRGB_HSV(RI,GI,BI) єS=S+(INC/15) ўч S>1 Œ S=1 ч S<0 Œ S=0 ч S<>0 € H>400 Œ H=180  ђHVS_RGB &&ч CERR=0 Œ R(N)=RI:G(N)=GI:B(N)=BI 0с :н ђRGB_HSV(RI,GI,BI) DRI=RI/15:GI=GI/15:BI=BI/15 N MAX=RI Xч RIGI Œ MIN=GI €ч MIN>BI Œ MIN=BI Šч MAX=0 Œ S=0:V=0:х trG ” V=MAX žS=(MAX-MIN)/MAX Јч MAX=MIN Œ S=0 Вч S=0 Œ H=999:х TLH МRC=(MAX-RI)/(MAX-MIN) ЦGC=(MAX-GI)/(MAX-MIN) аBC=(MAX-BI)/(MAX-MIN) кч RI=MAX Œ H=BC-GC фч GI=MAX Œ H=2+RC-BC юч BI=MAX Œ H=4+GC-RC ј H=H*60 ч H<0 Œ H=H+360  с  нђHVS_RGB   ъ I,F,P,Q * CERR=0 4"ч H>400 Œ RI=V:GI=V:BI=V:хdJH >ч S=0 € H<361 Œ CERR=1:с Hч H=360 Œ H=0 R H=H/60 \ I=Ј(H) f F=H-I p P=V*(1-S) zQ=V*(1-(S*F)) „T=V*(1-(S*(1-F))) Žч I=0 Œ RI=V:GI=T:BI=P ˜ч I=1 Œ RI=Q:GI=V:BI=P Ђч I=2 Œ RI=P:GI=V:BI=T Ќч I=3 Œ RI=P:GI=Q:BI=V Жч I=4 Œ RI=T:GI=P:BI=V Рч I=5 Œ RI=V:GI=P:BI=Q Ъ0RI=Ј(RI*15+.5):GI=Ј(GI*15+.5):BI=Ј(BI*15+.5) дс он ђFILE(D%) шё Š0,10);Ф120," ") ђё Š0,10);"FILE NAME"; ќ(ч D%=0 Œ ё" TO READ" ‹ ё " TO WRITE" ё "TYPE Q TO QUIT" ш C$ ч C$="Q" Œ D`I $ч D%=0 Œ P%=Ž C$ ‹ P%=Ў C$ .у A=0 И 15 86ч D%=0 Œ ш#P%,R(A),G(A),B(A) ‹ ё#P%,R(A),G(A),B(A) B$ч D%=0 Œ ђDCOL(A,R(A),G(A),B(A)) Lэ Vй#P% ` C$=Н(N+&30) jё Š0,10);Ф120," ") tс ~[ы7:ё''"‚‡Note ForˆVAL.‰Don't forget that PAC- ‚‡MAN is on Games Disc No.„‡TWELVE..." ˆЃё"‡TO ADVOIDˆFLICKERING OF SCREEN‰YOU ‡MUST REMOVE THE CABLE FROM OUT OF ‡THE UNDERNEATH OF THE COMPUTER. ƒ IT IS THE THIN ONE ON THE RIGHT." ’Pё'''''" PLEASE INSERT YOUR GAMES DISC AND PRESS ANY KEY." œG=Ѕ І *DIR $ А*EXEC !BOOT џ ю…љ  *FX 200,2 Šё"Chameleon Initialisation":ё"Using Basic":ё"By Mike Cook":?&FE62=&FF:?&FE60=&E0:?&FE6C=&AE:ё:їtj@:уA=0И15:ѓR,G,B:ђPROGCOL(A,R,G,B):э Њ м0,0,0,15,0,0,0,15,0,15,15,0 Д$м0,0,15,15,0,15,0,15,15,15,15,15 О Шм0,0,0,2,2,2,4,4,4,6,6,6 в%м8,8,8,10,10,10,12,12,12,14,14,14 мё"Done":хD@A №0нђPROGCOL(CN%,R%,G%,B%):?&FE60=CN%+&E0:*FX19 B?&FE60=R%‚15:?&FE60=(G%‚15)+64:?&FE60=(B%‚15)+128:?&FE60=&E0:с @/ы2:уA=0И7:ћA:ёŠ0,A);"COLOUR ";A:эA:*FX 15,1 rѕё"PRESS ANY KEY.":G=Ѕ:?&FE62=&FF:?&FE60=&C0:ё"AND AGAIN.":G=Ѕ:?&FE60=&E0:ы7:ё''''"WOULD YOU LIKE TO :-":ё'"1) USE COLOUR CHANGE PROGRAM":ё'"2) CONTINUE WITH A DISC":ё'"…‡ CHOOSE 1 OR 2":ё"„‡Note For VAL. Press 1 To Continue.. " Т.ѕ:G$=О:§G$="1"„G$="2":чG$="1"Œз"||.CHANGE" ж>ё'"INSERT GAMES DISC AND PRESS ANY KEY...":G=Ѕ:*EXEC !BOOT џџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ