- IE Doors
- 27 Oct 2009 09:24:48 am
- Last edited by Xeno_Cre8or on 27 Oct 2009 12:00:08 pm; edited 3 times in total
(no longer) Current code:
Code:
Any optimizations? (I am taking Will_W's into consideration)
Code:
::"Icon Editor for the 83+
::"7FF0411057105450567052505E48404440687FF4000CEEE948AD48AB48A9EEE949636F6E2046696C6500C9"
:Lbl ST
:ClrDraw
:PlotsOff
:FnOff
:AxesOff
:For(A,0,62)
:Pxl-On(A,0)
:Pxl-On(A,64)
:End
:For(A,1,63
:For(B,4,63,4
:Pxl-On(A-1,B)
:Pxl-On(B-1,A)
:End
:End
:Text(0,66,"[CLEAR]")
:Text(6,77,"=Quit")
:For(A,0,17)
:For(B,0,17,17)
:Pxl-On(A+13,B+70)
:Pxl-On(B+13,A+70)
:End
:End
:Text(31,66,"[DEL]="
:Text(37,83,"Clr")
:95→B
:56→A
:Repeat B=77
:B-1→B
:Pxl-On(A,B)
:End
:Pxl-Off(A,B)
:Repeat A=62
:A+1→A
:Pxl-On(A,B)
:End
:Text(57,79,"Save")
:1→C:1→D
:Lbl Z
:Repeat 0
:0→K
:Pxl-Change(4C-2,4D-1)
:Pxl-Change(4C-4,4D-1)
:Pxl-Change(4C-2,4D-3)
:Pxl-Change(4C-4,4D-3)
:Repeat (iPart(K/10)=2) or K=15 or K=34 or iPart(K/10)=4
:getKey→K
:End
:If K=22:Goto M1
:If (K≥42 and K≤44)
:Then
:{16,16}→dim([A])
:For(A,1,16
:For(B,1,16
:Pxl-Off(A+13,B+70)
:0
:If pxl-Test(4A-3,4B-1)
:1
:Ans→[A](A,B)
:Pxl-Change(4A-3,4B-2)
:End:End
:End
:If K=43 or K=44
:Then
:For(Z,1,8)
:rowSwap([A],Z,17-Z)→[A]
:End
:End
:If K=42 or K=44
:Then
:[A]{^T}→[A]
:For(Z,1,8)
:rowSwap([A],Z,17-Z)→[A]
:End
:[A]{^T}→[A]
:End
:If (K≥42 and K≤44)
:Then
:For(A,1,16)
:For(B,1,16)
:If [A](A,B)
:Then
:For(E,4A-4,4A-2)
:For(F,4B-3,4B-1)
:Pxl-On(E,F)
:End
:End
:Pxl-On(A+13,B+70)
:Else
:For(E,4A-4,4A-2)
:For(F,4B-3,4B-1)
:Pxl-Off(E,F)
:End
:End
:Pxl-Off(A+13,B+70)
:End
:End
:End
:End
:If K=41
:Then
:For(A,1,16)
:For(B,1,16)
:For(E,4A-4,4A-2
:For(F,4B-3,4B-1
:Pxl-Change(E,F)
:End
:End
:Pxl-Change(A+13,B+70)
:End
:End
:End
:If (K≥24 and K≤26) or K=34 or K=41
:Then
:Pxl-Change(4C-2,4D-1)
:Pxl-Change(4C-2,4D-3)
:Pxl-Change(4C-4,4D-1)
:Pxl-Change(4C-4,4D-3)
:End
:If K=24 and D≠1
:D-1→D
:If K=25 and C≠1
:C-1→C
:If K=26 and D≠16
:D+1→D
:If K=34 and C≠16
:C+1→C
:If K=21
:Then
:Pxl-Change(4C-2,4D-2)
:Pxl-Change(4C-3,4D-1)
:Pxl-Change(4C-3,4D-2)
:Pxl-Change(4C-3,4D-3)
:Pxl-Change(4C-4,4D-2)
:Pxl-Change(C+13,D+70)
:End
:If K=23
:Goto ST
:If K=15
:Goto SA
:If K=45
:Goto Q
:End
:End
:Lbl M1
:Pxl-Change(4C-2,4D-1)
:Pxl-Change(4C-2,4D-3)
:Pxl-Change(4C-4,4D-1)
:Pxl-Change(4C-4,4D-3)
:Lbl M
:Menu("Recall what? ","Kerm's Icons",KI,"Yarnot Icons",YI,"Last Icon made",LI,"...Back",Z)
:Lbl KI
:Menu("Recall what? (K)","Folder icon",FI,"BASIC prog icon",BI,"ASM prog icon",AI,"ION prog icon",II,"DCS prog icon",DI,"...Back",M)
:Lbl YI
:Menu("Recall what? (Y)","Group icon",GI,"Flash App icon",FA,"...Back",M)
:Lbl LI
:0:Asm(prgmSTREXIST)
:If Ans=1:Then
:If length(Str0)≥66:Then
:2→X:Repeat X=66:X+1→X
:If inString("0123456789ABCDEF",sub(Str0,X,1))=0:Goto Z
:End
:sub(Str0,3,64)→Str3:End
:Else:Goto Z
:End:
:Goto Y
:Lbl FI:"Folder"
:"000038F04708801C80E2870288045004500450045008503033C03C0000000000"→Str3
:Goto Y
:Lbl BI:"BASIC"
:"C000A000E6D392849654E6D300000004FB86A93F2106738400337F4A00490033"→Str3
:Goto Y
:Lbl AI:"ASM"
:"200050005368FA5489548B5400000004FB86A93F2106738400337F4A00490033"→Str3
:Goto Y
:Lbl II:"ION"
:"7DD2822D6EAD2AA52AA96EAD822D7DD200000006380B5C2F8EA6DE80FEA67C2B"→Str3
:Goto Y
:Lbl DI:"DCS"
:"7FD27FD54FD543C941C041D141D145D141CE41C041CE31110D11031F00000000"→Str3
:Goto Y
:Lbl GI:"Group"
:"38F04708801C80E28702880455545FFC5AAC500851F036003B66045505660354"→Str3
:Goto Y
:Lbl FA:"Flash app"
:"1000299829547D984510451200000004FB86A93F2106738400337F4A00490033"→Str3
:Lbl Y
:" "→Str4
:For(X,1,64)
:Str4+sub("000000010010001101000101011001111000100110101011110011101111",4inString("0123456789ABCDEF",sub(Str3,X,1))-3,4)→Str4
:For(Y,16fPart(X/4)+1,16fPart(X/4)+4)
:Pxl-Change(4iPart(X/4)+1,4Y-2)
:Pxl-Off(iPart(X/4)+14,Y+70)
:End
:End
:For(X,1,16)
:For(Y,1,16)
:For(U,4X-3,4X-1)
:For(V,4Y-3,4Y-1)
:If sub(Str4,Y+16X-16)="1"
:Then:Pxl-On(U,V)
:Else:Pxl-Off(U,V)
:End
:End:End
:If sub(Str4,Y+16X-16)="1"
:Pxl-On(Y+13,X+70)
:End:End
:Goto Z
:Lbl SA
:Text(46,85,"I%
:Text(46,85,"
:":→Str1
:For(C,1,16
:For(D,1,16
:"0
:If pxl-Test(4C-3,4D-1)
:"1
:Str1+Ans→Str1
:Pxl-Change(4C-3,4D-2
:If int(50length(Str1)/256)=0
:Then
:Text(46,85,0)
:Else
:Text(46,85-4iPart(log(int(50length(Str1)/256))),int(50(length(Str1)/256
:End
:End:End
:sub(Str1,2,length(Str1)-1→Str1
:":→Str0
:For(X,1,length(Str1),4
:Text(46,85-4iPart(log(int(50(X/255)+50))),int(50(X/255)+50
:sub(Str1,X,4→Str2
:sub("0124936DA5B7FEC8",inString("0000100110101111000",Str2),1
:Str0+Ans→Str0
:End
:sub(Str0,2,length(Str0)-1→Str0
:"AsmPrgm:"+Str0+"49636F6E2046696C6500C9→Str0
:Text(46,77,100
:Pause
:Lbl Q
:ClrDraw
:ClrHome
:Output(1,1,"
Any optimizations? (I am taking Will_W's into consideration)