\START92\ \COMMENT= \NAME=grey4pnt \FILE=GREY4PNT.89P () Prgm \(C)\Interactive Prgm, no args, F1 for help Run the program & press F1 again! Local p1,p2,p3,t,f,c,b,x,y,s,i,j,k,\xi\,u,t1 getType(t1)\->\t1 StoPic p1 XorPic p1 StoPic p1 StoPic p2 StoPic p3 4\->\c 1\->\b 0\->\x 0\->\y \(-)\1\->\\xi\ \(-)\1\->\u 1\->\s Try Loop RplcPic p1 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p1 RplcPic p2 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p2 RplcPic p3 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p3 0\->\t While t=0 CyclePic "p",3,0,10 getKey()\->\t EndWhile RplcPic p1 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p1 RplcPic p2 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p2 RplcPic p3 PxlLine y,max(x-2,0),y,min(x+2,158),\(-)\1 PxlLine max(y-2,0),x,min(y+2,76),x,\(-)\1 StoPic p3 If t=264 Then Exit ElseIf t=268 Then Dialog Title "Keys" Text "F1=Help" Text "F2=Open\...\" Text "F3=Save\...\ (whole screen)" Text "2nd+F3=F8=StoPic\...\ (part of the screen)" Text "F4=New" Text "F5=Foreground Color\...\" Text "5=Background Color\...\" Text "APPS=Choose Tool\...\" EndDlog Dialog Title "Cursor Keys" Text "You can use cursor keys or 1-9" Text "Cursor ALONE = \^+\1" Text "Cursor + 2nd = \^+\10" Text "Cursor + ["&char(27)&"] = \^+\25" Text "Cursor + ["&char(127)&"] = To corner" EndDlog Dialog Title "Special text chars" Text "To allow you to enter special chars," Text "strings must be quoted. To enter a quote," Text "type """". Enter special chars as:" Text " ""string1""&char(n)&""string2""" Text "char(1) = \element\ (Euro char)" Text "char(2) = \pound\ (Italian lire char)" Text "char(3) = "&char(16)&" (Totally filled graphic char)" Text "char(4) = - (Horizontal graphic char)" Text "char(5) = | (Vertical graphic char)" Text "char(6) = + (Plus graphic char (crossing))" EndDlog ElseIf t=269 Then Lbl fo Request "Filename",f If dim(f)>7 Then Text "Filename too long!" Goto fo EndIf If ok=0:Cycle StoPic p1 XorPic p1 RplcPic #(f&"1") StoPic p1 RplcPic #(f&"2") StoPic p2 RplcPic #(f&"3") StoPic p3 ElseIf t=270 Then Lbl fs Request "Filename",f If dim(f)>7 Then Text "Filename too long!" Goto fs EndIf If ok=0:Cycle If getType(#(f&"1"))\!=\t1 Then Dialog Text "Overwrite "&f&"?" EndDlog If ok=0:Cycle EndIf DelVar #(f&"1"),#(f&"2"),#(f&"3") CopyVar p1,#(f&"1") CopyVar p2,#(f&"2") CopyVar p3,#(f&"3") ElseIf t=275 Then 32\->\s ElseIf t=271 Then StoPic p1 XorPic p1 StoPic p1 StoPic p2 StoPic p3 ElseIf t=272 Then PopUp {"White","Light grey","Dark grey","Black"},c ElseIf t=53 Then PopUp {"White bg","Light grey bg","Dark grey bg","Black bg"},b ElseIf t=265 Then PopUp {"Pixel on","Invert pixel","Line on","Invert line","Vert. line on","Inv. vert. line","Horz. line on","Inv. horz. line","Rect. on","Invert rect.","Filled rect. on","Inv. filled rect.","Circle on","Invert circle","Filled circle on","Inv. filled circle","Eraser","Text","Move","Duplicate","RclPic (b/w)","RclPic (4 grey)","+Pic (4 grey)","-Pic (4 grey)","RplcPic (b/w)","RplcPic (4 grey)","XorPic (b/w)","DiffPic (4 grey)","AndPic (b/w)","LightrPic (4 grey)","DarkerPic (4 grey)","StoPic(4grey) (F8)"},s If s=19 or s=20 Then DelVar j,k \(-)\1\->\k \(-)\1\->\j EndIf ElseIf t=337 or t=52 Then max(x-1,0)\->\x ElseIf t=340 or t=54 Then min(x+1,158)\->\x ElseIf t=338 or t=56 Then max(y-1,0)\->\y ElseIf t=344 or t=50 Then min(y+1,76)\->\y ElseIf t=339 or t=55 Then max(x-1,0)\->\x max(y-1,0)\->\y ElseIf t=342 or t=57 Then min(x+1,158)\->\x max(y-1,0)\->\y ElseIf t=345 or t=49 Then max(x-1,0)\->\x min(y+1,76)\->\y ElseIf t=348 or t=51 Then min(x+1,158)\->\x min(y+1,76)\->\y ElseIf t=4433 or t=58 Then max(x-10,0)\->\x ElseIf t=4436 or t=4150 Then min(x+10,158)\->\x ElseIf t=4434 or t=4152 Then max(y-10,0)\->\y ElseIf t=4440 or t=92 Then min(y+10,76)\->\y ElseIf t=4435 or t=4151 Then max(x-10,0)\->\x max(y-10,0)\->\y ElseIf t=4438 or t=59 Then min(x+10,158)\->\x max(y-10,0)\->\y ElseIf t=4441 or t=34 Then max(x-10,0)\->\x min(y+10,76)\->\y ElseIf t=4444 or t=4147 Then min(x+10,158)\->\x min(y+10,76)\->\y ElseIf t=16721 or t=76 Then max(x-25,0)\->\x ElseIf t=16724 or t=78 Then min(x+25,158)\->\x ElseIf t=16722 or t=72 Then max(y-25,0)\->\y ElseIf t=16728 or t=82 Then min(y+25,76)\->\y ElseIf t=16723 or t=71 Then max(x-25,0)\->\x max(y-25,0)\->\y ElseIf t=16726 or t=73 Then min(x+25,158)\->\x max(y-25,0)\->\y ElseIf t=16729 or t=81 Then max(x-25,0)\->\x min(y+25,76)\->\y ElseIf t=16732 or t=83 Then min(x+25,158)\->\x min(y+25,76)\->\y ElseIf t=8529 or t=8244 Then 0\->\x ElseIf t=8532 or t=8246 Then 158\->\x ElseIf t=8530 or t=8248 Then 0\->\y ElseIf t=8536 or t=8242 Then 76\->\y ElseIf t=8531 or t=8247 Then 0\->\x 0\->\y ElseIf t=8534 or t=8249 Then 158\->\x 0\->\y ElseIf t=8537 or t=8241 Then 0\->\x 76\->\y ElseIf t=8540 or t=8243 Then 158\->\x 76\->\y ElseIf t=13 Then If s=3 or s=4 or s\>=\9 and s\<=\16 or s=32 Then If \xi\=\(-)\1 Then x\->\\xi\ y\->\u Cycle EndIf EndIf If s=19 or s=20 Then If \xi\=\(-)\1 Then x\->\\xi\ y\->\u Cycle ElseIf k=\(-)\1 Then x\->\k y\->\j Cycle EndIf EndIf If s=1 Then RplcPic p1 If c<4 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p1 RplcPic p2 If c<3 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p2 RplcPic p3 If c<2 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p3 ElseIf s=2 Then DelVar i 0\->\i RplcPic p1 If pxlTest(y,x):i+1\->\i RplcPic p2 If pxlTest(y,x):i+1\->\i RplcPic p3 If pxlTest(y,x):i+1\->\i RplcPic p1 If i>0 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p1 RplcPic p2 If i>1 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p2 RplcPic p3 If i>2 Then PxlOff y,x Else PxlOn y,x EndIf StoPic p3 ElseIf s=3 Then RplcPic p1 PxlLine u,\xi\,y,x,when(c<4,0,1) StoPic p1 RplcPic p2 PxlLine u,\xi\,y,x,when(c<3,0,1) StoPic p2 RplcPic p3 PxlLine u,\xi\,y,x,when(c<2,0,1) StoPic p3 ElseIf s=4 Then RplcPic p1 PxlLine u,\xi\,y,x,\(-)\1 StoPic i,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 StoPic p1 RplcPic p2 PxlLine u,\xi\,y,x,\(-)\1 StoPic p2 RplcPic p3 PxlLine u,\xi\,y,x,\(-)\1 StoPic j,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 RclPic i,min(u,y),min(\xi\,x) StoPic p3 RplcPic p1 AndPic j,min(u,y),min(\xi\,x) StoPic p1 ElseIf s=5 Then RplcPic p1 PxlVert x,when(c<4,0,1) StoPic p1 RplcPic p2 PxlVert x,when(c<3,0,1) StoPic p2 RplcPic p3 PxlVert x,when(c<2,0,1) StoPic p3 ElseIf s=6 Then RplcPic p1 PxlVert x,\(-)\1 StoPic i,0,x,1,77 StoPic p1 RplcPic p2 PxlVert x,\(-)\1 StoPic p2 RplcPic p3 PxlVert x,\(-)\1 StoPic j,0,x,1,77 RplcPic i,0,x StoPic p3 RplcPic p1 RplcPic j,0,x StoPic p1 ElseIf s=7 Then RplcPic p1 PxlHorz y,when(c<4,0,1) StoPic p1 RplcPic p2 PxlHorz y,when(c<3,0,1) StoPic p2 RplcPic p3 PxlHorz y,when(c<2,0,1) StoPic p3 ElseIf s=8 Then RplcPic p1 PxlHorz y,\(-)\1 StoPic i,y,0,159,1 StoPic p1 RplcPic p2 PxlHorz y,\(-)\1 StoPic p2 RplcPic p3 PxlHorz y,\(-)\1 StoPic j,y,0,159,1 RplcPic i,y,0 StoPic p3 RplcPic p1 RplcPic j,y,0 StoPic p1 ElseIf s=9 Then RplcPic p1 PxlLine u,\xi\,u,x,when(c<4,0,1) PxlLine u,\xi\,y,\xi\,when(c<4,0,1) PxlLine u,x,y,x,when(c<4,0,1) PxlLine y,\xi\,y,x,when(c<4,0,1) StoPic p1 RplcPic p2 PxlLine u,\xi\,u,x,when(c<3,0,1) PxlLine u,\xi\,y,\xi\,when(c<3,0,1) PxlLine u,x,y,x,when(c<3,0,1) PxlLine y,\xi\,y,x,when(c<3,0,1) StoPic p2 RplcPic p3 PxlLine u,\xi\,u,x,when(c<2,0,1) PxlLine u,\xi\,y,\xi\,when(c<2,0,1) PxlLine u,x,y,x,when(c<2,0,1) PxlLine y,\xi\,y,x,when(c<2,0,1) StoPic p3 ElseIf s=10 Then RplcPic p1 PxlLine u,\xi\,u,x,\(-)\1 PxlLine u,\xi\,y,\xi\,\(-)\1 PxlLine u,x,y,x,\(-)\1 PxlLine y,\xi\,y,x,\(-)\1 StoPic i,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 StoPic p1 RplcPic p2 PxlLine u,\xi\,u,x,\(-)\1 PxlLine u,\xi\,y,\xi\,\(-)\1 PxlLine u,x,y,x,\(-)\1 PxlLine y,\xi\,y,x,\(-)\1 StoPic p2 RplcPic p3 PxlLine u,\xi\,u,x,\(-)\1 PxlLine u,\xi\,y,\xi\,\(-)\1 PxlLine u,x,y,x,\(-)\1 PxlLine y,\xi\,y,x,\(-)\1 StoPic j,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 RclPic i,min(u,y),min(\xi\,x) StoPic p3 RplcPic p1 AndPic j,min(u,y),min(\xi\,x) StoPic p1 ElseIf s=11 Then RplcPic p1 PxlLine u,\xi\,u,x,when(c<4,0,1) PxlLine u,\xi\,y,\xi\,when(c<4,0,1) PxlLine u,x,y,x,when(c<4,0,1) PxlLine y,\xi\,y,x,when(c<4,0,1) StoPic p1 RplcPic p2 PxlLine u,\xi\,u,x,when(c<3,0,1) PxlLine u,\xi\,y,\xi\,when(c<3,0,1) PxlLine u,x,y,x,when(c<3,0,1) PxlLine y,\xi\,y,x,when(c<3,0,1) StoPic p2 RplcPic p3 PxlLine u,\xi\,u,x,when(c<2,0,1) PxlLine u,\xi\,y,\xi\,when(c<2,0,1) PxlLine u,x,y,x,when(c<2,0,1) PxlLine y,\xi\,y,x,when(c<2,0,1) StoPic p3 If abs(x-\xi\)\>=\2 and abs(y-u)\>=\2 Then DelVar i If b=1 Then RplcPic p1 For i,min(x,\xi\)+1,max(x,\xi\)-1 PxlLine min(y,u)+1,i,max(y,u)-1,i,0 EndFor StoPic j,min(y,u)+1,min(x,\xi\)+1,abs(x-\xi\)-1,abs(y-u)-1 StoPic p1 RplcPic p2 RplcPic j,min(y,u)+1,min(x,\xi\)+1 StoPic p2 RplcPic p3 RplcPic j,min(y,u)+1,min(x,\xi\)+1 StoPic p3 Else RplcPic p3 For i,min(x,\xi\)+1,max(x,\xi\)-1 PxlLine min(y,u)+1,i,max(y,u)-1,i EndFor StoPic j,min(y,u)+1,min(x,\xi\)+1,abs(x-\xi\)-1,abs(y-u)-1 StoPic p3 RplcPic p2 RclPic j,min(y,u)+1,min(x,\xi\)+1 If b<3:XorPic j,min(y,u)+1,min(x,\xi\)+1 StoPic p2 RplcPic p1 RclPic j,min(y,u)+1,min(x,\xi\)+1 If b<4:XorPic j,min(y,u)+1,min(x,\xi\)+1 StoPic p1 EndIf EndIf ElseIf s=12 Then RplcPic p1 For k,min(x,\xi\),max(x,\xi\) PxlLine y,k,u,k,\(-)\1 EndFor StoPic i,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 StoPic p1 RplcPic p2 For k,min(x,\xi\),max(x,\xi\) PxlLine y,k,u,k,\(-)\1 EndFor StoPic p2 RplcPic p3 For k,min(x,\xi\),max(x,\xi\) PxlLine y,k,u,k,\(-)\1 EndFor StoPic j,min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 RclPic i,min(u,y),min(\xi\,x) StoPic p3 RplcPic p1 AndPic j,min(u,y),min(\xi\,x) StoPic p1 ElseIf s=13 Then RplcPic p1 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<4,0,1) StoPic p1 RplcPic p2 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<3,0,1) StoPic p2 RplcPic p3 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<2,0,1) StoPic p3 ElseIf s=14 Then RplcPic p1 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\1 StoPic i,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,159-max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,77-max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)) StoPic p1 RplcPic p2 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\1 StoPic p2 RplcPic p3 PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\1 StoPic j,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,159-max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,77-max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)) RclPic i,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0) StoPic p3 RplcPic p1 AndPic j,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0) StoPic p1 ElseIf s=15 Then DelVar i RplcPic p1 For i,max(1-round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0)-1,158-\xi\) If 2*round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)\>=\2 Then PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)+1,0),\xi\+i,min(u+round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)-1,76),\xi\+i,when(b<4,0,1) EndIf EndFor PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<4,0,1) StoPic p1 RplcPic p2 For i,max(1-round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0)-1,158-\xi\) If 2*round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)\>=\2 Then PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)+1,0),\xi\+i,min(u+round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)-1,76),\xi\+i,when(b<3,0,1) EndIf EndFor PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<3,0,1) StoPic p2 RplcPic p3 For i,max(1-round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0)-1,158-\xi\) If 2*round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)\>=\2 Then PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)+1,0),\xi\+i,min(u+round(\root\((x-\xi\)^2+(y-u)^2-i^2),0)-1,76),\xi\+i,when(b<2,0,1) EndIf EndFor PxlCrcl u,\xi\,round(\root\((x-\xi\)^2+(y-u)^2),0),when(c<2,0,1) StoPic p3 ElseIf s=16 Then RplcPic p1 For k,max(\(-)\round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0),158-\xi\) PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),0),\xi\+k,min(u+round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),76),\xi\+k,\(-)\1 EndFor StoPic i,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,159-max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,77-max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)) StoPic p1 RplcPic p2 For k,max(\(-)\round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0),158-\xi\) PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),0),\xi\+k,min(u+round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),76),\xi\+k,\(-)\1 EndFor StoPic p2 RplcPic p3 For k,max(\(-)\round(\root\((x-\xi\)^2+(y-u)^2),0),\(-)\\xi\),min(round(\root\((x-\xi\)^2+(y-u)^2),0),158-\xi\) PxlLine max(u-round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),0),\xi\+k,min(u+round(\root\((x-\xi\)^2+(y-u)^2-k^2),0),76),\xi\+k,\(-)\1 EndFor StoPic j,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,159-max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0)),min(2*round(\root\((x-\xi\)^2+(y-u)^2),0)+min(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)+1,77-max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0)) RclPic i,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0) StoPic p3 RplcPic p1 AndPic j,max(u-round(\root\((x-\xi\)^2+(y-u)^2),0),0),max(\xi\-round(\root\((x-\xi\)^2+(y-u)^2),0),0) StoPic p1 ElseIf s=17 Then DelVar i RplcPic p1 For i,max(x-2,0),min(x+2,158) PxlLine max(y-2,0),i,min(y+2,76),i,0 EndFor StoPic p1 RplcPic p2 For i,max(x-2,0),min(x+2,158) PxlLine max(y-2,0),i,min(y+2,76),i,0 EndFor StoPic p2 RplcPic p3 For i,max(x-2,0),min(x+2,158) PxlLine max(y-2,0),i,min(y+2,76),i,0 EndFor StoPic p3 ElseIf s=18 Then DelVar i,j,k """"""\->\i 1\->\\xi\ 1\->\k Dialog Title "Insert Text\...\" Request "Text",i DropDown "Style:",{"Normal","Bold","Italic","Bold Italic"},\xi\ DropDown "Transparent:",{"YES","NO"},k EndDlog If ok=1 Then expr(i)\->\i If getType(i)\!=\"STR":string(i)\->\i StoPic j XorPic j PxlText i,0,0 inString(i,char(1))\->\u While u>0 PxlText "=",0,6*(u-1) StoPic j,0,6*(u-1),6,8 PxlText "(",0,6*(u-1) PxlOn 0,6*u-1 PxlOn 6,6*u-1 RclPic j,0,6*(u-1) inString(i,char(1),u+1)\->\u EndWhile inString(i,char(2))\->\u While u>0 PxlText "\pound\",0,6*(u-1) PxlOn 2,6*u-5 PxlOn 2,6*u-3 PxlOn 4,6*u-5 PxlOn 4,6*u-3 PxlOff 3,6*u-5 PxlOff 3,6*u-3 inString(i,char(2),u+1)\->\u EndWhile inString(i,char(3))\->\u While u>0 DelVar j For j,6*(u-1),6*u-1 PxlLine 0,j,7,j EndFor inString(i,char(3),u+1)\->\u EndWhile inString(i,char(4))\->\u While u>0 PxlText "-",0,6*(u-1) PxlOn 3,6*(u-1) PxlOn 3,6*u-1 inString(i,char(4),u+1)\->\u EndWhile inString(i,char(5))\->\u While u>0 PxlText "|",0,6*(u-1) PxlOn 7,6*u-3 inString(i,char(5),u+1)\->\u EndWhile inString(i,char(6))\->\u While u>0 PxlText " ",0,6*(u-1) PxlLine 3,6*(u-1),3,6*u-1 PxlLine 0,6*u-3,7,6*u-3 inString(i,char(6),u+1)\->\u EndWhile PxlLine 0,6*dim(i),7,6*dim(i),0 If \xi\=2 Then StoPic j,0,0,6*dim(i),8 RclPic j,0,1 ElseIf \xi\=3 Then StoPic j,0,0,6*dim(i),4 RplcPic j,0,1 ElseIf \xi\=4 Then StoPic j,0,0,6*dim(i),4 RclPic j,0,1 StoPic j,4,1,6*dim(i)-1,4 RclPic j,4,0 EndIf StoPic j,0,0,6*dim(i)+1,8 RplcPic p1 If k=2 and b<4 Then RplcPic j,y,x ElseIf k=2 Then For u,y,y+7 PxlLine u,x,u,x+6*dim(i) EndFor Else RclPic j,y,x EndIf If c<4:XorPic j,y,x StoPic p1 RplcPic p2 If k=2 and b<3 Then RplcPic j,y,x ElseIf k=2 Then For u,y,y+7 PxlLine u,x,u,x+6*dim(i) EndFor Else RclPic j,y,x EndIf If c<3:XorPic j,y,x StoPic p2 RplcPic p3 If k=2 and b<2 Then RplcPic j,y,x ElseIf k=2 Then For u,y,y+7 PxlLine u,x,u,x+6*dim(i) EndFor Else RclPic j,y,x EndIf If c<2:XorPic j,y,x StoPic p3 EndIf ElseIf s=19 Then {\xi\,k}\->\\xi\ RplcPic p1 StoPic i,min(u,j),min(\xi\),abs(\xi\[2]-\xi\[1])+1,abs(j-u)+1 For k,min(\xi\),max(\xi\) PxlLine u,k,j,k,when(b<4,0,1) EndFor RplcPic i,y,x StoPic p1 RplcPic p2 StoPic i,min(u,j),min(\xi\),abs(\xi\[2]-\xi\[1])+1,abs(j-u)+1 For k,min(\xi\),max(\xi\) PxlLine u,k,j,k,when(b<3,0,1) EndFor RplcPic i,y,x StoPic p2 RplcPic p3 StoPic i,min(u,j),min(\xi\),abs(\xi\[2]-\xi\[1])+1,abs(j-u)+1 For k,min(\xi\),max(\xi\) PxlLine u,k,j,k,when(b<2,0,1) EndFor RplcPic i,y,x StoPic p3 ElseIf s=20 Then RplcPic p1 StoPic i,min(u,j),min(\xi\,k),abs(k-\xi\)+1,abs(j-u)+1 RplcPic i,y,x StoPic p1 RplcPic p2 StoPic i,min(u,j),min(\xi\,k),abs(k-\xi\)+1,abs(j-u)+1 RplcPic i,y,x StoPic p2 RplcPic p3 StoPic i,min(u,j),min(\xi\,k),abs(k-\xi\)+1,abs(j-u)+1 RplcPic i,y,x StoPic p3 ElseIf s=32 Then Lbl fp Request "Filename",f If dim(f)>7 Then Text "Filename too long!" Goto fp EndIf If ok=0:Cycle If getType(#(f&"1"))\!=\t1 Then Dialog Text "Overwrite "&f&"?" EndDlog If ok=0:Cycle EndIf RplcPic p1 StoPic #(f&"1"),min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 RplcPic p2 StoPic #(f&"2"),min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 RplcPic p3 StoPic #(f&"3"),min(u,y),min(\xi\,x),abs(x-\xi\)+1,abs(y-u)+1 Else Lbl fx Request "Filename",f If mod(s,2)=0 or s=23 or s=31 Then If dim(f)>7 Then Text "Filename too long!" Goto fx EndIf Else If dim(f)>8 Then Text "Filename too long!" Goto fx EndIf EndIf If s=21 Then RplcPic p1 RclPic #f,y,x StoPic p1 RplcPic p2 RclPic #f,y,x StoPic p2 RplcPic p3 RclPic #f,y,x StoPic p3 ElseIf s=22 Then RplcPic p1 RclPic #(f&"3"),y,x XorPic #(f&"3"),y,x RclPic #(f&"1"),y,x StoPic p1 RplcPic p2 RclPic #(f&"3"),y,x XorPic #(f&"3"),y,x RclPic #(f&"2"),y,x StoPic p2 RplcPic p3 RclPic #(f&"3"),y,x StoPic p3 ElseIf s=23 Then For k,49,51 RplcPic p1 RclPic #(f&char(k)),y,x StoPic i,y,x,159-x,77-y StoPic p1 RplcPic p2 StoPic j,y,x,159-x,77-y RclPic i,y,x StoPic i,y,x,159-x,77-y StoPic p2 RplcPic p1 AndPic j,y,x StoPic p1 RplcPic p3 StoPic j,y,x,159-x,77-y RclPic i,y,x StoPic p3 RplcPic p2 AndPic j,y,x StoPic p2 EndFor ElseIf s=24 Then For k,49,51 RplcPic p3 RclPic #(f&char(k)),y,x XorPic #(f&char(k)),y,x StoPic i,y,x,159-x,77-y StoPic p3 RplcPic p2 StoPic j,y,x,159-x,77-y AndPic i,y,x StoPic i,y,x,159-x,77-y StoPic p2 RplcPic p3 RclPic j,y,x StoPic p3 RplcPic p1 StoPic j,y,x,159-x,77-y AndPic i,y,x StoPic p1 RplcPic p2 RclPic j,y,x StoPic p2 EndFor ElseIf s=25 Then RplcPic p1 RplcPic #f,y,x StoPic p1 RplcPic p2 RplcPic #f,y,x StoPic p2 RplcPic p3 RplcPic #f,y,x StoPic p3 ElseIf s=26 Then RplcPic p1 RplcPic #(f&"1"),y,x StoPic p1 RplcPic p2 RplcPic #(f&"2"),y,x StoPic p2 RplcPic p3 RplcPic #(f&"3"),y,x StoPic p3 ElseIf s=27 Then RplcPic p1 XorPic #f,y,x StoPic i,y,x,159-x,77-y StoPic p1 RplcPic p2 XorPic #f,y,x StoPic p2 RplcPic p3 XorPic #f,y,x StoPic j,y,x,159-x,77-y RclPic i,y,x StoPic p3 RplcPic p1 AndPic j,y,x StoPic p1 ElseIf s=28 Then RplcPic p1 XorPic #(f&"1"),y,x StoPic i,y,x,159-x,77-y StoPic p1 RplcPic p2 XorPic #(f&"2"),y,x StoPic j,y,x,159-x,77-y RclPic i,y,x StoPic i,y,x,159-x,77-y StoPic p2 RplcPic p1 AndPic j,y,x StoPic p1 RplcPic p3 XorPic #(f&"3"),y,x StoPic j,y,x,159-x,77-y RclPic i,y,x StoPic p3 RplcPic p2 AndPic j,y,x StoPic j,y,x,159-x,77-y StoPic p2 RplcPic p1 StoPic i,y,x,159-x,77-y AndPic j,y,x StoPic p1 RplcPic p2 RclPic i,y,x StoPic p2 ElseIf s=29 Then RplcPic p1 AndPic #f,y,x StoPic p1 RplcPic p2 AndPic #f,y,x StoPic p2 RplcPic p3 AndPic #f,y,x StoPic p3 ElseIf s=30 Then RplcPic p1 AndPic #(f&"1"),y,x StoPic p1 RplcPic p2 AndPic #(f&"2"),y,x StoPic p2 RplcPic p3 AndPic #(f&"3"),y,x StoPic p3 ElseIf s=31 Then RplcPic p1 RclPic #(f&"1"),y,x StoPic p1 RplcPic p2 RclPic #(f&"2"),y,x StoPic p2 RplcPic p3 RclPic #(f&"3"),y,x StoPic p3 EndIf EndIf If s=3 or s=4 or s\>=\9 and s\<=\16 or s\>=\18 and s\<=\20 or s=32 Then \(-)\1\->\\xi\ \(-)\1\->\u EndIf If s=19 or s=20 Then \(-)\1\->\k \(-)\1\->\j EndIf EndIf EndLoop Else Text "Error n\o\"&string(errornum) ClrErr CopyVar p1,autosav1 CopyVar p2,autosav2 CopyVar p3,autosav3 Text "Picture saved to ""autosav""!" EndTry ClrDraw DispHome EndPrgm \STOP92\