10 RGB:WIDTH32:PCLEAR6:CLEAR1000,24576:PRINT"* HICOLOR GRAPHICS VIEWER V1.4 ********* BY SOCK MASTER ********* CONVERTS 256 COLOR 320 X 200 ** .BMP AND .IMG FILES *";:IFPEEK(58035)<>1THENLOADM"HICOLOR":POKE58035,1:POKE58037,3 15 ON BRK GOTO220:DR=PEEK(235):DIMB$(15):A$(0)="ONE":A$(1)="TWO":A$(2)="THREE":A$(3)="FOUR":E$(0)="ON":E$(1)="OFF":X$(0)="NORMAL DITHER / ":X$(1)="EXTENDED MIX / ":PE=PEEK(58037):E=(PE AND16)/16 25 B$(0)="16":B$(1)="16":B$(2)="49":B$(3)="136":B$(4)="100":B$(5)="816/3876":B$(6)="169":B$(7)="780":B$(8)="64":B$(9)="64":B$(10)="343":B$(11)="1000":B$(12)="1000":B$(13)="4096":B$(14)="2197":B$(15)="6859 27 PRINT@160,"CONVERT USING:":A=(PE AND1)*48+16:PRINT"A)"A"COCO PALETTES ON SCREEN":B=(PE AND2)/2+(PE AND8)/4:PRINT"B) "A$(B)" GRAPHICS SCREENS":C=(PE AND4)/4:A=(A-16)/6+B*2+C 30 PRINT"C) "X$(C)B$(A)" COLORS":PRINT"E) ERROR DIFFUSION ";E$(E):PRINT:PRINT"D) DRIVE"DR:PRINT"L) LOAD BMP FILE & CONVERT":PRINT"I) LOAD IMG FILE & CONVERT":PRINT"V) VIEW GRAPHICS IN MEMORY":PRINT"S) SAVE CONVERTED GRAPHICS"; 35 ON ERR GOTO200 40 A=PE AND239:Q$=INKEY$:IFQ$="A"ORQ$="a"THENA=((A+1)AND1)+(A AND254)ELSEIFQ$="C"ORQ$="c"THENA=((A+4)AND4)+(A AND251)ELSEIFQ$="B"ORQ$="b"THENB=((A AND2)/2+(A AND8)/4+1)AND3:A=(A AND245)+(B AND1)*2+(B AND2)*4:IFB=2THENB=3:A=A+2 42 E=(PE AND16)/16:IFQ$="E"ORQ$="e"THENE=ABS(E-1) 50 PE=A+E*16:POKE58037,PE:IFQ$="V"ORQ$="v"THEN140ELSEIFQ$="L"ORQ$="l"THEN60ELSEIFQ$="T"ORQ$="t"THEN330ELSEIFQ$="S"ORQ$="s"THEN1000ELSEIFQ$="I"ORQ$="i"THEN2000ELSEIFQ$="D"ORQ$="d"THENDR=(DR+1)AND3:GOTO27ELSE27 60 PRINT:DIRDR:LINEINPUT"FILENAME OF BMP FILE TO CONVERT -->";F$ 70 OPEN"D",#1,F$+".BMP:"+CHR$(48+DR),256:LF=LOF(1)+1:IFLF<2THENCLOSE:PRINT"BAD FILENAME?":KILLF$+".BMP:"+CHR$(48+DR):ENDELSEP=2709:A1=PEEK(P):A2=PEEK(P+1):POKEP+1,0:PRINT"LOADING BMP TO RAM" 79 DATA 0,1,1,8,8,9,11,11,15,29,29,31,31,59,59,63 80 POKE59078,33:HSCREEN2:POKE65433,254-64:POKE65437,199:POKE65438,208:FORG=0TO15:READA:PALETTEG,A:NEXT:'DATA0,0,0,0,7,7,7,7,56,56,56,56,63,63,63,63 90 B=48:S=96:POKE65443,B:FORG=1TOLF:POKEP,S:GET#1,G:S=S+&H1:IFS<&H80 THENNEXT:GOTO120 100 S=96:B=B+1:IFB>55THENB=59 110 POKE65443,B:NEXT 120 POKEP,A1:POKEP+1,A2:CLOSE 130 POKE58036,0:EXEC:RUN 140 POKE58036,2:EXEC:RUN 200 PRINT"ERROR #"ERNO"IN LINE"ERLIN:IFERNO=31 THENPRINT"THE FILE EXTENSION .BMP IS ASSUMED." 220 POKE65496,0:POKE65443,59:CLEAR1000,32768:END 330 WIDTH80:PALETTE0,0:PALETTE8,54:ATTR0,0:CLS1:POKE65496,0:OPEN"I",#1,"HICOLOR.TXT":L=0 340 IFEOF(1)<0THEN360ELSEPOKE65496,0:LINEINPUT#1,A$:POKE65497,0:PRINTA$:L=L+1:IFL<23THEN340ELSEPRINT""; 350 Q$=INKEY$:IFQ$=""THEN350ELSEPRINTSTRING$(13,8);:L=1:GOTO340 360 POKE65496,0:CLOSE:RUN 1000 PRINT:POKE235,DR:CLEAR1000,32767:DR=PEEK(235):G(0)=16:G(1)=30:G(3)=58:A=PEEK(58037):PE=(A AND8)/4+(A AND2)/2:PRINT:PRINT"A DISK WITH"G(PE)"FREE GRANULES IS REQUIRED FOR SAVING.":PRINT"THIS DISK HAS";FREE(DR);"GRANULES":PRINT 1010 PRINT"SAVE AS? ";:LINEINPUTF$:A=INSTR(1,F$,"/"):IFA<>0THENMID$(F$,A,1)="." 1030 A=INSTR(1,F$,":"):IFA=0THENF$=F$+":"+CHR$(DR+48) 1035 A=INSTR(1,F$,"."):IFA=0THENB=INSTR(1,F$,":"):F$=LEFT$(F$,B-1)+".BIN"+MID$(F$,B,10) 1040 BA=122:OPEN"O",#1,F$:RESTORE:PRINT:PRINT"AFTER IT'S DONE, YOU CAN QUICKLYAND EASILY VIEW THIS PICTURE JUST BY TYPING:":PRINT"LOADM"CHR$(34)F$CHR$(34)":EXEC":PRINT 1050 A=(PE AND1)+1:B=PE AND2:PRINT"SAVING IMAGE DATA":S1=393216:E1=393215+A*32000:AD=0:GOSUB1160:IFB<>0THENPRINT"SAVING IMAGE DATA 2":S1=327680:E1=391679:AD=0:GOSUB1160 1060 PRINT"SAVING COLOR & PROGRAM DATA":S1=3584:E1=7151:AD=1:GOSUB1160:S1=58036:E1=58037:AD=1:GOSUB1160 1070 PRINT"CLOSING FILE...";:EX=6797:GOSUB1130:CLOSE 1080 B=INSTR(1,F$,":")+1:D=VAL(MID$(F$,B,1)) 1090 A=INSTR(1,F$,"."):D$=LEFT$(LEFT$(F$,INSTR(1,F$,".")-1)+" ",8)+LEFT$(MID$(F$,A+1,B-A-1)+" ",3) 1100 FORS=3TO18:DSKI$D,17,S,A$(0),A$(1):FORG=0TO1:FORH=1TO127STEP32:IFMID$(A$(G),H,11)=D$THENMID$(A$(G),H+11,2)=CHR$(2)+CHR$(0):DSKO$D,17,S,A$(0),A$(1):H=200:G=9:S=18 1110 NEXT:NEXT:NEXT:PRINT"DONE!":SOUND180,1:RUN 1120 STOP:B=B AND63:IFBA=B THENRETURNELSEA=0:GOSUB1140:A=1:GOSUB1150:A=65442:GOSUB1150:A=B:GOSUB1140:POKE65442,B:BA=B:RETURN 1130 A=255:GOSUB1140:A=0:GOSUB1150:A=EX:GOSUB1150:RETURN 1140 PRINT#1,CHR$(A);:RETURN 1150 AA=A:A=INT(A/256):GOSUB1140:A=AA-A*256:GOSUB1140:RETURN 1160 IFAD=1THENB1=122:B2=B1:A1=INT(S1/256):A2=S1-A1*256:A3=INT(E1/256):A4=E1-A3*256:GOTO1180 1170 B1=INT(S1/8192):B2=INT(E1/8192):A1=S1-B1*8192+16384:A3=E1-B2*8192+16384:A2=A1 AND255:A4=A3 AND 255:A1=A1/256:A3=A3/256 1180 POKE58036,4:POKE58038,B1:POKE58039,A1:POKE58040,A2:POKE58041,B2:POKE58042,A3:POKE58043,A4:POKE111,1:EXEC:POKE111,0:RETURN 2000 PRINT:DIRDR:LINEINPUT"THIS FUNCTION REQUIRES 512K RAM.FILENAME OF IMG FILE TO CONVERT -->";F$ 2010 OPEN"D",#1,F$+".IMG:"+CHR$(48+DR),256:LF=LOF(1)+1:IFLF<50THENCLOSE:PRINT"FILE BAD? OR BAD FILENAME.":ENDELSEP=2709:A1=PEEK(P):A2=PEEK(P+1):POKEP+1,0:PRINT"LOADING IMG TO RAM" 2020 POKE59078,33:HSCREEN4:POKE65433,253-64:POKE65437,0:POKE65438,0:PALETTE0,0:PALETTE1,7:PALETTE2,56:PALETTE3,63 2030 B=0:S=96:POKE65443,B:FORG=1TOLF:POKEP,S:GET#1,G:S=S+&H1:IFS<&H80 THENNEXT:GOTO2060 2040 S=96:B=B+1:POKE65443,B:NEXT 2060 POKEP,A1:POKEP+1,A2:CLOSE 2070 A=LPEEK(1):IFA<>3THENPRINT"ONLY SUPPORTS 4096 COLOR IMG FORMAT":END 2071 POKE58036,3:EXEC:RUN