0 'PALETT.200 v1.1 c/R.W.Hess [73267,552] 10/28/88 2 'using OVAL/DL10, LCDSAV/DL10, LCDPRT/DL10 & SHPDRW/DL10 by James Yi. 4 IFPEEK(1)<>171THENENDELSECLEAR500:LOADM"OVAL":LOADM"LCDSAV":CALL20318 6 CLS:ONERRORGOTO120:D=1:DF=1:DG=1:F=0:B=0:L=0:S=1:MI=0:GJ=1:GM=5:X=120:Y=63 7 DF=1:GOSUB180:LINE(78,15)-(155,15):CALL20360:PRINT@93," PALETTE.200 ":CALL20365 8 G=0:PRINT@243,;:FORN=62111TO62628STEP11 9 IFPEEK(N)=160ANDPEEK(N+8)=91THENPR=PEEK(N+1)+256*PEEK(N+2):IFPEEK(PR)+256*PEEK(PR+1)=57260THENG=G+1:FORP=3TO8:P$=P$+CHR$(PEEK(N+P)):NEXT:P$(G)=P$+".CO":PRINTP$(G)" ";:P$="" 10 NEXT:GL=231:GP=1:PRINT@483,"(Spacebar, then ENTER; ESC to end.)":PRINT@243,;:GOSUB280:IFFRE(0)>4000THENG=G+1:P$(G)=" New file":PRINT@GL+12*G,P$(G) 11 I$=INKEY$:IFI$=""THENCALL20360:GOSUB18:GOTO11ELSECALL20365:GOSUB18:GOSUB330 12 IFI=32THENGP=GP+1:IFGP>GTHENGP=1 13 IFI=13THEN15 14 IFI=27THEN318ELSE11 15 IFINSTR(P$(GP),"[.CO")THENA$=P$(GP):CLS:GOSUB254:GOTO19 16 IFG=0THENRUNELSEGL=GL+12*GP:PRINT@GL," [.CO":PRINT@GL,;:LINEINPUT"";F$:FL=LEN(F$):IFFL=0THENRUNELSEIFFL>5THENF$=LEFT$(F$,5):FL=5 17 A$=F$+SPACE$(5-FL)+"[.CO":CLS:GOTO19 18 PRINT@(GL+12*GP)-1," "P$(GP)" ":RETURN 19 GOSUB292 20 I$=INKEY$:IFI$=""THENGOSUB302:GOSUB114:GOSUB302:GOSUB112:GOTO20ELSEGOSUB330 21 GJ=1:PD=PEEK(64781):IFPD=1ORPD=32THENGJ=GM'shift? 22 IFI=11THENGOSUB117:GOSUB292:GOTO20'keep 24 IFI=16THENGOSUB117:GOTO202'print 25 IFI=4THENGOSUB117:GOTO325'shpdrw 26 IFI=72THENGOSUB117:GOTO210'hole 28 IFI=2THENGOSUB117:GOSUB280:GOSUB180:DF=1-DF'brdr 30 IFI=7THENGOSUB117:GOSUB280:GOSUB182:DG=1-DG'grid 32 IFI=84THENGOSUB117:GOSUB186:GOSUB292'tri 34 IFI=75THENGOSUB117:GOSUB186:GOSUB292'filled tri 36 IFI=63THENGOSUB117:GOSUB260'help 37 IFI=45THENGOSUB280:GM=GM-5:IFGM<5THENGM=5'lngth 38 IFI=61THENGOSUB280:GM=GM+5 39 IFI=80THENGOSUB117:GOSUB250:GOSUB310'position 40 IFI<48ORI>57THEN41ELSEGOSUB117:D=1-D:GOSUB118:D=1-D:GOSUB280::S=1+2*(I-48):SP=S\2:GOSUB118 41 IFI<28ORI>31THEN52ELSEGOSUB118:S=1 42 PJ=PEEK(64781):IFPJ=4ORPJ=36THENPH=1ELSEPH=10 43 IFI=28THENX=X+PH 45 IFI=29THENX=X-PH 46 IFI=30THENY=Y-PH 47 IFI=31THENY=Y+PH 48 GOSUB107 49 I$=INKEY$:IFI$=""THENGOSUB133:GOTO49ELSEGOSUB330:IFI>27ANDI<32THEN42ELSEGOSUB118:GOTO21 52 IFI=24THENGOSUB117:GOSUB280:GOSUB250:GOTO6'menu 53 IFI=77THENMI=1 54 IFMITHENGOSUB340 63 IFI=69THENCY=1:CX=0:FORGF=1TOGJ:Y=Y-1:GOSUB118:NEXT 64 IFI=87THENFORGF=1TOGJ:X=X-1:Y=Y-1:GOSUB118:NEXT 65 IFI=83THENCX=1:CY=0:FORGF=1TOGJ:X=X-1:GOSUB118:NEXT 66 IFI=90THENFORGF=1TOGJ:X=X-1:Y=Y+1:GOSUB118:NEXT 67 IFI=88THENCY=1:CX=0:FORGF=1TOGJ:Y=Y+1:GOSUB118:NEXT 68 IFI=67THENFORGF=1TOGJ:X=X+1:Y=Y+1:GOSUB118:NEXT 69 IFI=68THENCX=1:CY=0:FORGF=1TOGJ:X=X+1:GOSUB118:NEXT 70 IFI=82THENFORGF=1TOGJ:X=X+1:Y=Y-1:GOSUB118:NEXT 74 IFI=20THENGOSUB117:GOSUB112:GOSUB250:GOSUB280:GOTO152'text 75 IFI<>79THEN84'pxl jmp 76 GOSUB254:GOSUB250:GOSUB314:GOSUB280:PRINT@CP," X"CHR$(154)"/Y"CHR$(153);:LINEINPUT" ";XY$:WS=INSTR(XY$,"/"):WL=LEN(XY$):IFWSTHENX=VAL(LEFT$(XY$,WS-1)):Y=VAL(RIGHT$(XY$,WL-WS)) 78 GOSUB254:GOSUB292:GOSUB250:IFBORLORFTHENGOSUB314:GOSUB280:PRINT@CP,PF$:GOTO104 84 IFI=73THENGOSUB117:FORI=0TO639:PRINT@I,;:CALL21349:NEXT:D=1-D:GOSUB292'rvrs screen 86 IFI=66ANDB=1THENGOSUB254:LINE(BX,BY)-(X,Y),D,BF:B=0:S=TS:GOSUB282:GOTO20'box 88 IFI=66ANDF=0ANDL=0THENPF$=" BOX: B=done ":GOSUB134:B=1:BX=X:BY=Y:TS=S:S=1' 90 IFI=70ANDF=1THENS=TS:IFS=1THENGOSUB254:LINE(FX,FY)-(X,Y),D,B:F=0:GOSUB282:GOTO20'fram 92 IFI=70ANDF=1THENS=TS:IFS>1THENGOSUB254:GOSUB304:F=0:GOSUB282:GOTO20 94 IFI=70ANDB=0ANDL=0THENPF$=" FRAME: F=done":GOSUB134:F=1:FX=X:FY=Y:TS=S:S=1 96 IFI=76ANDL=1THENS=TS:IFS=1THENGOSUB254:LINE(LX,LY)-(X,Y),D:L=0:S=TS:GOSUB282:GOTO20 98 IFI=76ANDL=1THENS=TS:IFS>1THENGOSUB254:LS=(S-1)/2:FORSW=1TOS:LINE(LX,LY+LS)-(X,Y+LS),D:LINE(LX+LS,LY)-(X+LS,Y),D:LS=LS-1:NEXT:L=0:S=TS:GOSUB282:GOTO20 100 IFI=76ANDB=0ANDF=0THENPF$=" LINE: L=done":GOSUB134:L=1:LX=X:LY=Y:TS=S:S=1'line 102 IFI=9THENGOSUB117:GOSUB280:D=1-D'pixel color 103 IFS<1THENS=1 104 GOSUB107:IFSMOD2=0THENS=S+1 105 GOTO20 107 IFY>127THENY=127 108 IFY<0THENY=0 109 IFX<0THENX=0 110 IFX>239THENX=239 111 RETURN 112 LINE(X,Y)-(X,Y),D:RETURN 114 LINE(X,Y)-(X,Y),1-D:RETURN 117 IFL=0ANDF=0ANDB=0THENRETURNELSEBEEP:BEEP:GOTO20 118 GOSUB107:IFS=1THENGOSUB112ELSEGOSUB138 119 RETURN 120 IFBORLORFTHENGOSUB254 121 BEEP:GOSUB250:IFERR=5THENPRINT@130," OUT OF RANGE! ":GOSUB258:GOSUB254:ELSECLS:PRINTID$" saved but ERR"ERR"LINE"ERL:END 130 GOSUB107:L=0:B=0:F=0:S=1 132 RESUME20 133 GOSUB302:GOSUB112:GOSUB302:GOSUB114:RETURN 134 GOSUB250:GOSUB280:GOSUB314:PRINT@CP,PF$;:RETURN 138 SL=SP:SB=SP:ST=SP:SR=SP 140 IFY>63ANDCX=1THENIFSP>127-YTHENSB=(127-Y):GOSUB150:RETURNELSEGOSUB150:RETURN 142 IFY<64ANDCX=1THENIFSP>YTHENST=Y:GOSUB150:RETURNELSEGOSUB150:RETURN 144 IFX>119ANDCY=1THENIFSP>239-XTHENSR=239-X:GOSUB148:RETURNELSEGOSUB148:RETURN 146 IFX<120ANDCY=1THENIFSP>XTHENSL=X:GOSUB148:RETURNELSEGOSUB148:RETURN 148 LINE(X-SL,Y)-(X+SR,Y),D:RETURN 150 LINE(X,Y-ST)-(X,Y+SB),D:RETURN 152 GOSUB314:PRINT@CP,"Spacing: (norm 6) ";:SX=VAL(INPUT$(1)):SY=SX+2:GOSUB254:LOADM"SHPDRW":POKE-12,1:POKE-11,1:POKE-10,255*D:OX=X:OY=Y:XT=SX:YT=SY:GOSUB164 153 S$=INKEY$:IFS$=""THENGOSUB133:GOTO153ELSESD=ASC(S$) 154 SX=XT:SY=YT:IFPEEK(64781)=4THENSX=1:SY=1 155 IFSD=20THENGOSUB114:LOADM"LCDSAV":GOSUB284:IFI=89THEN19ELSEY=OY:X=OX:GOTO19 156 IFSD=28THENX=X+SX 157 IFSD=29THENX=X-SX 158 IFSD=30THENY=Y-SY 159 IFSD=31THENY=Y+SY 160 IFSD=127THENSD=239:POKE-10,255*(1-D):GOSUB163:POKE-10,255*D:GOTO153 161 IFSD>32THENGOSUB114:GOSUB163:X=X+SX 162 GOSUB164:GOTO153 163 CALL63574,SD,(X-2)+256*(Y-3):RETURN 164 IFX>236THENX=236 165 IFX<2THENX=2 166 IFY>123THENY=123 167 IFY<3THENY=3 168 RETURN 170 FORTT=1TO75:NEXT:RETURN 180 LINE(0,0)-(239,127),DF,B:IFS=1THENRETURNELSEFORTB=1TOS-1:LINE(0+TB,0+TB)-(239-TB,127-TB),DF,B:NEXT:RETURN 182 FORGX=10TO230STEP10:LINE(GX,0)-(GX,0),DG:LINE(GX,127)-(GX,127),DG:NEXT:FORGY=10TO120STEP10:LINE(0,GY)-(0,GY),DG:LINE(239,GY)-(239,GY),DG:NEXT:RETURN 184 RETURN 186 GOSUB280:I3=I:GOSUB114:GOSUB250:GOSUB314:PRINT@CP," "CHR$(254)"? ";:LINEINPUT"";H$:GOSUB254 190 CALL20365:H=VAL(H$)/2 192 IFI3=75THEN198 194 LINE(X-H,Y+H)-(X,Y-H),D:LINE(X+H,Y+H)-(X,Y-H),D:LINE(X-H,Y+H)-(X+H,Y+H),D 196 GOTO282:RETURN 198 FORH3=1TOH 200 LINE(X-H3,Y+H3)-(X,Y-H3),D:LINE(X-H3,Y+H3)-(X+H3,Y+H3),D:LINE(X+H3,Y+H3)-(X,Y-H3),D:NEXTH3:GOTO196 202 GOSUB250:GOSUB280:GOSUB314:PRINT@CP,;:INPUT"Left in./0-3";LM:GOSUB254:LM=INT(LM*40):IFLM>127THEN202ELSELOADM"LCDPRT":CALL63574,LM,16:LOADM"LCDSAV":GOTO19'16=NO LF, 272=LF 208 GOSUB254:GOSUB292:GOTO108 210 GOSUB250:GOSUB314:GOSUB280:PRINT@CP,"Xr"CHR$(154)"/Yr"CHR$(153);:QF=0:LINEINPUT"? ";R$:WS=INSTR(R$,"/"):IFWS=0THENXR=VAL(R$):YR=XR:ELSEWL=LEN(R$):XR=VAL(LEFT$(R$,WS-1)):YR=VAL(RIGHT$(R$,WL-WS)) 211 GOSUB314:GOSUB280:PRINT@CP,"Fill? Y/N";:IFINSTR("Yy",INPUT$(1))THENQF=1 212 GOSUB254:LOADM"OVAL":IFS=1THENGOSUB226ELSEGOSUB228 213 LOADM"LCDSAV":GOTO282 226 POKE63574,XR:POKE63575,YR:CALL63576,2*(1-D)+QF,256*X+Y:RETURN 228 IX=XR-SP:IY=YR-SP:FORTC=0TOS-1:XR=IX+TC:YR=IY+TC:GOSUB226:NEXT:RETURN 244 ID$=A$:ID=VARPTR(ID$):RETURN 250 GOSUB244:CALL63580,1,ID:RETURN'save 254 GOSUB244:CALL63580,0,ID:RETURN'call 258 FORW=1TO800:NEXT:W=0:RETURN 260 GOSUB250:CLS:GOSUB280:PRINT"E"CHR$(152)" ^K-Keep ^T-Text I-Invert" 262 PRINT"R"CHR$(152)"r ^G-Guide ^B-Bordr T-Triangle 264 PRINT"D"CHR$(154)" ^P-Print ^X-Menu K-Solid tri" 266 PRINT"C"CHR$(153)"r ^D-SHPDRW ?-Help H-Hole" 268 PRINT"X"CHR$(153)" O-Go X/Y F-Frame =/- lngth" 270 PRINT"Z"CHR$(153)"l P-Pos. B-Box "CHR$(155);CHR$(152);CHR$(154);CHR$(153)" move" 272 PRINT"S"CHR$(155)" #s-Brush L-Line M-Mouse" 273 PRINT"W"CHR$(152)"l TAB-B/W Shift/lock-Qwikdraw":LINE(0,67)-(239,67):PRINT: 274 PRINT" To draw a straight Line, Box or Framepress L, B or F; move to the other end of your Line or to the opposite corner of a Box or Frame, then press the SAME letter again." 275 PRINT" ALL shape routines and Text require asubsequent Y or N response to complete." 276 K$=INKEY$:IFK$=""THEN276ELSECLS:GOSUB280:GOSUB254:GOSUB292:GOTO20 280 SOUND(1108+(VAL(RIGHT$(TIME$,1))/2*400)),1:RETURN 282 GOSUB284:GOSUB250:GOSUB292:GOTO104 284 I$=INKEY$:IFI$=""THENGOSUB280:GOSUB258:GOTO284ELSEGOSUB330 286 IFI=89THENGOSUB250:RETURN 288 IFI=78THENGOSUB254:GOSUB250:RETURNELSE284 292 GOSUB250 293 GOSUB280:LOADM"OVAL":QF=0:FORT=1TO3 294 FORBR=2TO10STEP2 296 XR=12-BR:YR=12-BR:GOSUB226 298 NEXT:D=1-D:NEXT:D=1-D:LOADM"LCDSAV":GOSUB254:RETURN 302 FORTQ=1TO30:NEXT:RETURN 304 IFFX>XTHENDX=FX-X:FX=X:X=X+DX 306 IFFY>YTHENDY=FY-Y:FY=Y:Y=Y+DY 308 RF=(S-1)/2:FORFW=0TOS-1:LINE(FX+RF,FY+RF)-(X-RF,Y-RF),D,B:RF=RF-1:NEXT:Y=Y-DX:X=X-DX:RETURN 310 GOSUB314:PRINT@CP," X"X",Y"Y:GOSUB293:GOSUB258:RETURN 314 IFY>63THENCP=0ELSECP=600 315 PRINT@CP,SPACE$(15) 316 RETURN 318 GOSUB280:CALL20323:MENU 325 GOSUB114:GOSUB250:LOADM"SHPTBL":LB=PEEK(62715):MB=PEEK(62716):GOSUB314 326 PRINT@CP,SPACE$(18):GOSUB280:PRINT@CP,PEEK(LB+256*MB)+1;:LINEINPUT"shapes; #? ";TL$:TL=VAL(TL$):GOSUB254:GOSUB250:LOADM"SHPDRW":POKE-14,LB:POKE-13,MB:POKE-12,0:POKE-11,1:POKE-10,255*D 328 CALL63574,TL,X+Y*256:LOADM"LCDSAV":GOTO282 330 I=ASC(I$) 331 IFI>96ANDI<123THENI=IAND95 332 RETURN 340 MI=0:RETURN'mouse X/Y reader