>DefIcon 2.11  Icon defining program  By J.G.Harston (+&84:ver$="2.11":oflg%=0:*K.10O.|MRUN|M 2 _ERROR:oflg%:tt@TDA 32);0;0;0:os%=6:*POINTER 1 F=totalI%=(--1024-(8192 >&FFFF))/32:icons% 32*totalI% PYic%=0:thisI%=0:mx%=0:my%=0:ms%=0:mL%=0:mM%=0:mR%=0:xo%=640:yo%=382:X%=ctrl%:Y%=X%256 Z+23,132,255,129,129,129,129,129,129,255 d *FX219,9 n *FX225,1 x*FX226,128 *K.11|!K *K.12|!L *K.13|!M *K.14|!N *K.15|!O oflg%: _CSET:oflg%=0:23,21);"Type ";F%3;15,26)"Icon area start: &";~icons%;12,27)"Display area start: &";~icons%;17,28)"Maximum icons: ";totalI% ):Q=9:: A$:18,Q);A$:Q=Q+1: A$="" &Q=9::A$:28,Q);A$:Q=Q+1: A$="" B Get,Put,Load,Save,Display,Quit," ",Cursors,to move,& scroll, x I Invert,M Mirror <>,T Tip ^v,+ Rotate +90,- Rotate -90,\ Reflect,/ Reflect,V Reflect ^v,H Reflect <>,F Icon Type, 922,23)"DefIcon "ver$;18,24)"1985-2019 J.G.Harston" %x%=0:y%=0:_EXPAND(thisI%):*FX4,2 31,x%+1,y%+9 $:X%=ctrl%:Y%=X%256:wait:ch%= $mx%>196mx%<1216my%>764:msChr ")mx%>8mx%<564my%>200my%<756:msKlk ,=my%<736((mx%>576my%>544)(mx%>899my%>412))mL%:klik2 6,A$<>"":0,7:A$>"`"A$<"{":A$=(A$-32) @3A%=ch%>:A%:A$="C":thisI%=ch%:dz@A%:tbC J&A%=A$&CF:A%>&CB:A$=(A%+64*-1) TA$=&CC:x%=(x%-1)15 ^A$=&CD:x%=(x%+1)15 hA$=&CE:y%=(y%+1)15 rA$=&CF:y%=(y%-1)15 |(A$>139A$<144:_SCROLL((A$)-140) A$=13A$="P":tXC A$="*":dhC A$="S":TZD A$="L":TxD 1(A$=203A$=9)xo%+x%*4,yo%-y%*4)=0:A$="1" (A$=203A$=9):A$="0" DA$="1":69,xo%+x%*4,yo%-y%*4:135:31,x%+1,y%+9,32,8:128:TNA LA$="0":71,xo%+x%*4,yo%-y%*4:save128:31,x%+1,y%+9,128,8:get128:TNA DA$="G"A$="C":bot;:"Get which icon: "thisI%:bot;clr:dz@ 2A$="F":F%=(F%+1)4:28,21);F%3:_CSET:TDA A$="I":inv:TDA A$="T":tip:TDA A$="M":mir:TDA A$="+"A$=";":rotP:TDA A$="-"A$="=":rotM:TDA A$="/"A$="?":refD1:TDA &A$="\"A$="|":refD2:TDA 0A$="H":refH:TDA :A$="V":refV:TDA DA$="Q":quit:TDA NoA$="D":bot;:"Display start icon "ic%:ic%=(ic%&FFF0):_CSET:bot;clr;33,27);~icons%+32*ic%" ";:TDA X TDA b_ERROR:ms%=-1:p l)bot;11;clr'clr;:#0:<>17:tJB v-1-2:"FX4":bot: "FX4,2": @: <128 -1:" at line ";:"FX4": A$=:bot;clr;: 9_CSET:30:A=ic%ic%+63:(A 15)=0:(5-A);A;" "; icon(A):(A 15)=15:' : :pic(I%):(I%15)*2+6,((I%-ic%)&70)8);:icon(I%): icon(I%):I%>totalI%:  A%=03 "(F%3)=0:C%=icons%+I%*32+A%*8 0(F%3)=1:C%=icons%+I%*32+(A%2)*8+(A%1)*16 -(F%3)=2:C%=icons%+I%*32+(A%1)+(A%2)*8 0(F%3)=3:C%=icons%+I%*32+(A%1)-(A%2)*8+16  23,A%+128 (F%2)=0:B%=07:C%?B%:  "(F%3)=2:B%=07:C%?(B%*2): &(F%3)=3:B%=70 -1:C%?(B%*2):  ":128,129,8,8,10,130,131,11: *I_EXPAND(C%):22,20);" Icon ";C%;" ";20,20);:icon(C%):_BIGGER: 4Ksave128:?X%=128:A%=10:&FFF1:g128=:&8017;&81FF;&8181;&8181;&FF81;: >get128:g128: H%23,128:A%=18:X%?A%::g128=0: Rݤd(A%):="00"+A%,3) \'_BIGGER:Y=015:1,9+Y);:X=015 f3xo%+X*4,yo%-Y*4):135: 32:128:A=A+1 132 p :: z1wait:mse:mL%+mM%+mR%=0:ms%=0:A$=(50): Rox%=mx%:oy%=my%:p:mse:A$=(5):A$(mL%mM%mR%)(mx%<>ox%)(oy%<>my%):p: Hp:4,0:ox%-12,oy%:ox%+12,oy%:ox%,oy%-12:ox%,oy%+12:ms%=ms%1: -bot;:"Enter onto icon "ch%:bot;clr; PD%=icons%+32*ch%:I%=D%:ch%>totalI%:" Out of range";:A%=:bot;clr;:TDA 6(F%3)=3:" Can't store!";:A%=:bot;clr;:TDA +C%=03:(F%2)=2:I%=D%+8*(C%2)+(C%1) QA%=07:Q%=0:B%=07:Q%=Q%*2:xo%+B%*4+32*(C%1),yo%-A%*4-16*(C%2)):Q%=Q%+1 [:(F%3)=2:?I%=Q%:I%=I%+2 (F%1):?(I%+((C%2)+2*(C%1))*8+A%)=Q% ?(I%+C%*8+A%)=Q% 6::0,29)(20):ch%-ic%<64:ch%-ic%>=0:pic(ch%)  TDA 0,26);(120);0,26);"*"; M"FX4":oflg%=::""A$:A$:":";:A$=:13+"LlSs*",A$):A$="*":127,42 4A$<>"*":':A$="L"A$="l":TxD A$=13:tt@ A$=fn("save"):A$="":tt@ $5" End at icon "end:os%=32:A$,".")=0:A$=A$+"." .["SAVE "+A$+" "+~(icons%+start*32)+" "+~(icons%+end*32+32)+" FFFFFF00 FFFFFD00":tt@ 8A$=fn("load"):A$="":tt@ B)ch=(A$):ch:#ch os%=32:A$=A$+"." L-"LOAD "+A$+" "+~(icons%+start*32):tt@ MPݤfn(A$):oflg%=:"FX4":bot;11;:"Filename to ";A$;:": "A$:A$="":=A$ N" Start at icon "start:=A$ V/_SCROLL(A): X,Y,xs,xe,xst,ys,ye,yst,temp `. A+1 DtD,DjD,t\D,tfD:_BIGGER:0,7: jxs=15:xe=1:xst=-1:D~D txs=0:xe=14:xst=1 ~3Y=015:tmp=xo%+xs*4,yo%-Y*4):X=xs xe xst 40,xo%+(X+xst)*4,yo%-Y*4):69,xo%+X*4,yo%-Y*4: )0,tmp:69,xo%+(xe+xst)*4,yo%-Y*4:: ys=15:ye=1:yst=-1:tpD ys=0:ye=14:yst=1 3X=015:tmp=xo%+X*4,yo%-ys*4):Y=ys ye yst 40,xo%+X*4,yo%-(Y+yst)*4):69,xo%+X*4,yo%-Y*4: )0,tmp:69,xo%+X*4,yo%-(ye+yst)*4:: msKlk:mL%+mM%+mR%=0: mx%<32:A$=140: mx%>539:A$=141: my%<224:A$=142: my%>732:A$=143: mL%:A$="1"  mM%:A$=9 mR%:A$="0" *x%=mx%32-1:y%=22-my%32:31,x%+1,y%+9 (mM%:mse:mM% 2 <msChr:mL%+mR%=0: F8ch%=ic%+(mx%64-3+16*(15-my%64)):mL%:A$="C"A$=13 P Z,klik2:x0%=mx%32:x0%>27:x0%=28x0%=18 d831,x0%,31-my%32:A$=byte(135,0,0):31,x%+1,y%+8: n3mse:>&FFFFF:mx%,my%,A% mx%=(7):my%=(8) x0ms%=mx%<&FFF:ms%:mL%=-10:mM%=-11:mR%=-12  Ainv:4,0:X=015:Y=015:69,xo%+X*4,yo%-Y*4:::_BIGGER: tip:X=015:Y=07:A=xo%+X*4,yo%-Y*4):0,xo%+X*4,yo%-60+Y*4):69,xo%+X*4,yo%-Y*4:0,A:69,xo%+X*4,yo%-60+Y*4:::_BIGGER: mir:Y=015:X=07:A=xo%+X*4,yo%-Y*4):0,xo%+60-X*4,yo%-Y*4):69,xo%+X*4,yo%-Y*4:0,A:69,xo%+60-X*4,yo%-Y*4:::_BIGGER: DrefD1:bot;"Copy Topleft or Bottomright?";:A=upDn("TB"):clr |Y=015:X=Y 15: A: 0,xo%+60-4*Y,yo%-4*X): 69,xo%+60-4*X,yo%-4*Y 0,xo%+60-4*X,yo%-4*Y): 69,xo%+60-4*Y,yo%-4*X ::_BIGGER: DrefD2:bot;"Copy Topright or Bottomleft?";:A=upDn("TB"):clr kX=015:Y=X 15:A:0,xo%+4*X,yo%-4*Y):69,xo%+4*Y,yo%-4*X 0,xo%+4*Y,yo%-4*X):69,xo%+4*X,yo%-4*Y ::_BIGGER: JݤupDn(B$):x0%=*32::mse:mL%+mM%+mR%=0::wait:A$>"`":A$=(A$-32) mR%B$="NY":A$="N" AmL%my%<64mx%"":A$;:=B$,A$)=2 rotP:rotD2:mir: rotM:rotD1:tip: "xrotD1:X=015:Y=X 15:A=xo%+4*X,yo%-4*Y):0,xo%+4*Y,yo%-4*X):69,xo%+4*X,yo%-4*Y:0,A:69,xo%+4*Y,yo%-4*X::: ,xrotD2:Y=015:X=Y 15:A=xo%+4*X,yo%-4*Y):0,xo%+4*Y,yo%-4*X):69,xo%+4*X,yo%-4*Y:0,A:69,xo%+4*Y,yo%-4*X::: 6;refV:bot;"Copy Top or Bottom?";:A=upDn("TB"):clr @oX=015:Y=07:A:0,xo%+4*X,yo%-4*Y):69,xo%+X*4,yo%-60+Y*4 0,xo%+4*X,yo%-60+4*Y):69,xo%+X*4,yo%-Y*4 J::_BIGGER: T;refH:bot;"Copy Left or Right?";:A=upDn("LR"):clr ^oY=015:X=07:A:0,xo%+4*X,yo%-4*Y):69,xo%+60-X*4,yo%-Y*4 0,xo%+60-4*X,yo%-4*Y):69,xo%+X*4,yo%-Y*4 h::_BIGGER: rGquit:bot"Quit program? ";:A=upDn("NY"):clr:A:"FX4":end |(end:23;10,103;0;0;0:ok%=:ok%= ok%:>&8000:*QUIT : ݤbot:1,30);:="" clr:clr;: ݤclr:13;40;40,8);:="" *ݤbyte(A%,X%,Y%):=((&FFF4)&FF00)256