Sure here it is.
sync on
set display mode 1024,768,32
dim color(11,15) as dword
type imagepoint
xpos as integer
ypos as integer
endtype
dim color_check(-1) as imagepoint
#constant max_width=800
#constant max_height = 600
global canvas_width
global canvas_height
global draw_mode as string
global spray_size=12
global brush_size=1
global brush_style=0
global color5
global color6
global undo_level=50
global across
global down
global noise_level=1
global psycho_level=1
draw_mode="pencil"
color6=rgb(255,255,255)
for a = 0 to 11
for b = 0 to 15
read color(a,b)
next b
next a
for rr = 1 to 12
create bitmap 1,20,20
for a = 0 to 19
for b = 0 to 19
read x
ink x,0
dot b,a
next b:next a
get image rr,0,0,19,19,1
delete bitmap 1
next rr
for rr = 1 to 2
create bitmap 1,10,10
for a = 0 to 9
for b = 0 to 9
read x
ink x,0
dot b,a
next b:next a
get image rr+500,0,0,9,9,1
delete bitmap 1
next rr
draw_interface()
make_canvas(128,128)
drawing=1
do
ink rgb(212,209,201),0
for a = 0 to 5
box 4+a*25,219,25+a*25,240
next a
box 5,245,160,270
box 99,174,120,195
box 5,321,55,341
ink 0,0
select draw_mode
case "pencil"
box 4,219,25,240
endcase
case "flood"
box 29,219,50,240
endcase
case "spray"
box 54,219,75,240
endcase
case "box"
box 79,219,100,240
endcase
case "circle"
box 104,219,125,240
endcase
case "line"
box 129,219,150,240
endcase
endselect
if brush_style=1 then box 99,174,120,195
center text 15,245,str$(brush_size)
center text 65,245,str$(spray_size)
center text 15,325,str$(Noise_level)
center text 40,325,str$(Psycho_level)
text 60,302,"Filters"
text 35,372,"New Canvas"
text 60,402,"Save/Load"
paste image 1,5,220
paste image 2,30,220
paste image 3,55,220
paste image 4,80,220
paste image 5,105,220
paste image 6,130,220
paste image 11,5,300
paste image 12,30,300
paste image 501,5,288
paste image 502,16,288
paste image 501,30,288
paste image 502,41,288
paste image 7,5,400
paste image 9,30,400
paste image 10,5,370
paste image 8,100,175
paste image 501,5,208
paste image 502,16,208
paste image 501,55,208
paste image 502,66,208
ink color6,0
box 40,170,70,200
ink color5,0
box 2,170,32,200
mx=mousex():my=mousey()
ucm=mouseclick()
if drawing=1 and ucm=0
drawing=0
inc undo_level
if undo_level>80
shift_undo()
undo_level=80
endif
get image undo_level,across,down,across+canvas_width,down+canvas_height,1
endif
if mx>=across and mx<=across+canvas_width and my>=down and my<=down+canvas_height and ucm>0 and ucm<3
if ucm=1 then ink color5,0
if ucm=2 then ink color6,0
if draw_mode="pencil"
if drawing=1
line oldmx,oldmy,mx,my
if brush_size>1
for a=mx-brush_size+1 to mx+brush_size-1
for b = my-brush_size+1 to my+brush_size-1
x1=a:x2=oldmx+(a-mx):y1=b:y2=oldmy+(b-my)
if x1<across then x1=across
if x2<across then x2=across
if y1<down then y1=down
if y2<down then y2=down
if x1>across+canvas_width then x1=across+canvas_width
if x2>across+canvas_width then x2=across+canvas_width
if y1>down+canvas_height then y1=down+canvas_height
if y2>down+canvas_height then y2=down+canvas_height
if brush_style=1
if a>mx
ink color6,0
else
ink color5,0
endif
endif
line x1,y1,x2,y2
next b: next a
endif
endif
for a = mx-brush_size+1 to mx+brush_size-1
for b = my-brush_size+1 to my+brush_size-1
if a>=across and a<=across+canvas_width and b>=down and b<=down+canvas_height
dot a,b
endif
next b:next a
oldmx=mx:oldmy=my:drawing=1
endif
if draw_mode="flood"
color_test=point(mx,my)
if ucm=1
if color_test<>color5 then flood(mx,my,color5,color_test)
else
if color_test<>color6 then flood(mx,my,color6,color_test)
endif
drawing=1
repeat
until mouseclick()=0
endif
if draw_mode="spray"
where=rnd(359)
rad=rnd(spray_size)
newx=newxvalue(mx,where,rad)
newy=newzvalue(my,where,rad)
if newx>=across and newx<=across+canvas_width and newy>=down and newy<=down+canvas_height then dot newx,newy
drawing=1
endif
if draw_mode="box"
make_box(mx,my,ucm,0)
drawing=1
endif
if draw_mode="line"
make_line(mx,my,ucm,0)
drawing=1
endif
if draw_mode="circle"
make_circle(mx,my,ucm,0)
add_undo()
ink 0,0
box 170,0,screen width(),screen height()
paste image undo_level,across,down
endif
endif
test_buttons()
if keystate(29)=1 and keystate(44)=1 and undo_level>10 and image exist(undo_level-1)
paste image undo_level-1,across,down
dec undo_level
delete image undo_level+1
repeat
until scancode()=0
endif
sync
loop
`palette
data 16777215,5063201,4672801,3624225,2575649,2182444,2182460,2182476,2178381,2174285,2498893,3613005,4661581,5054786,5054770,5054754
data 5713687,5719831,5199639,3626775,2053911,1529638,1529663,1529687,1523799,1517399,1972055,3544919,5183319,5707592,5707568,5707544
data 6433804,6441996,5792268,3629580,1532428,811553,811585,811618,803426,795234,1444962,3542114,5639266,6425678,6425645,6425613
data 7153921,7164417,6319361,3632385,1010945,93467,93508,93548,83309,73069,917869,3539309,6160749,7143763,7143723,7143683
data 10052419,10060611,9410883,7248195,5151043,4430168,4430200,4430233,4422041,4413849,5063577,7160729,9257881,10044293,10044260,10044228
data 11492909,11505197,10465069,7253805,4108077,2993997,2994045,2994094,2981807,2969519,3943855,7155119,10300847,11480464,11480416,11480367
data 12867608,12884248,11519000,3064856,7324696,1623106,1623171,1623235,1607108,1590468,2889924,7084228,11344068,12851355,12851291,12851226
data 14308098,14328834,12573186,7330306,2021890,186935,187016,187096,166874,146138,1770202,7078618,12321498,14287527,14287446,14287365
data 14325872,14335856,13490800,10869360,8313456,7395978,7396018,7396057,7386074,7375834,8155354,10776794,13332698,14315713,14315673,14315634
data 15504222,15517790,14347358,10873950,7466078,6220929,6220982,6221035,6207724,6194156,7298796,10772204,14180076,15490762,15490709,15490656
data 16617293,16634189,15269197,10943821,6618445,5111160,5111226,5111292,5094653,5077757,6376957,10702333,15027709,16600531,16600465,16600399
data 12566463,11711154,10921638,10066329,9211020,8421504,7566195,6710886,5855577,5000268,4210752,3355443,2500134,1710618,855309,0
`penciltool
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,0,0,0,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,0,12517376,12517376,12517376,0,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,12517376,16777215,16777215,0,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,12517376,16777215,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,0,12636233,0,0,0,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,0,12636233,11649842,10465069,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,12636233,11649842,0,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,0,12636233,11649842,10465069,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,0,11649842,10465069,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,0,12636233,11649842,10465069,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,0,0,10465069,0,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,0,0,0,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,0,0,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,0,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,0,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,13947080
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
`Fill Tool
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,4193787,4193787,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,4193787,16777215,4193787,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,11344068,11344068,9704872,16777215,4193787,16777215,16777215,16777215,4193787,4193787,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,11344068,9704872,9704872,12632256,175274,16777215,16777215,16777215,4193787,16777215,16777215,4193787,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,11344068,9704872,9704872,12632256,175274,11344068,11344068,11344068,175274,11344068,11344068,0,0,4193787,13947080,16777215,13947080,16777215
data 16777215,13947080,11344068,9704872,12632256,175274,11344068,11344068,11344068,175274,11344068,11344068,0,0,0,0,4193787,13947080,16777215,13947080
data 13947080,16777215,11344068,9704872,12632256,175274,175274,11344068,175274,11344068,11344068,0,0,0,0,0,9704872,4193787,13947080,16777215
data 16777215,13947080,11344068,9704872,9704872,13947080,16777215,175274,11344068,11344068,0,0,0,0,0,11344068,9704872,4193787,16777215,13947080
data 13947080,16777215,11344068,11344068,9704872,16777215,13947080,175274,11344068,0,0,0,0,0,11344068,9704872,175274,16777215,13947080,16777215
data 16777215,13947080,11344068,11344068,9704872,13947080,16777215,13947080,175274,0,0,0,0,11344068,9704872,175274,16777215,13947080,16777215,13947080
data 13947080,16777215,11344068,11344068,9704872,16777215,13947080,16777215,13947080,175274,0,0,11344068,9704872,175274,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,11344068,9704872,13947080,16777215,13947080,16777215,13947080,175274,9704872,9704872,175274,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,11344068,9704872,16777215,13947080,16777215,13947080,16777215,13947080,175274,175274,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,9704872,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
`Spray Tool
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,32768,16777215,32768,16777215,13947080,191,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,32768,12632256,65280,32768,191,191,191,0,0,0,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,65280,12632256,65280,12632256,65280,16777215,0,0,16777215,16777215,0,0,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,65280,12632256,32768,16777215,13947080,0,16777215,16777215,0,0,16711680,0,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,32768,12632256,65280,16777215,13947080,16777215,0,16777215,0,0,16711680,16711680,16711680,0,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,32768,12632256,65280,16777215,13947080,0,0,0,8388608,0,16711680,16711680,16711680,0,13947080,16777215
data 16777215,13947080,16777215,65280,12632256,32768,16777215,13947080,16777215,13947080,0,0,0,8388608,0,16711680,16711680,16711680,0,13947080
data 13947080,16777215,13947080,16777215,65280,16777215,13947080,16777215,13947080,16777215,13947080,0,0,0,8388608,0,16711680,16711680,0,16777215
data 16777215,13947080,16777215,32768,12632256,65280,16777215,13947080,16777215,13947080,16777215,13947080,0,0,0,8388608,0,0,16777215,13947080
data 13947080,16777215,13947080,16777215,32768,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,0,0,16777215,13947080,16777215
data 16777215,13947080,16777215,65280,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,32768,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,65280,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
`box
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16777215,13947080
data 13947080,16777215,13947080,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
`circle
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,0,0,0,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,0,0,16777215,16777215,16777215,16777215,16777215,0,0,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215
data 16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215
data 16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215
data 16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215
data 16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215
data 16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215
data 16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215
data 16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215
data 16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215
data 16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215
data 16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,0,0,16777215,16777215,16777215,16777215,16777215,0,0,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,0,0,0,0,0,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
`line
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,0,0,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215
`save
data 16777215,13947080,16777215,13947080,16777215,13947080,65280,65280,65280,65280,65280,65280,65280,65280,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,0,0,0,0,0,65280,65280,65280,65280,65280,65280,65280,65280,0,0,0,0,0,16777215
data 16777215,0,3618815,3618815,3618815,3618815,65280,65280,65280,65280,65280,65280,65280,65280,3618815,3618815,3618815,3618815,0,13947080
data 13947080,0,255,16777215,16777215,16777215,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,16777215
data 16777215,0,255,16777215,16777215,16777215,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,13947080
data 13947080,0,255,16777215,16777215,16777215,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,16777215
data 16777215,0,255,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,13947080
data 13947080,0,255,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,16777215
data 16777215,0,255,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,13947080
data 13947080,0,255,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,16777215
data 16777215,0,255,65280,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,65280,3618815,0,13947080
data 13947080,0,255,255,65280,255,65280,65280,65280,65280,65280,65280,65280,65280,255,65280,255,3618815,0,16777215
data 16777215,0,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,65280,65280,255,255,3618815,0,13947080
data 13947080,0,255,255,255,255,65280,65280,65280,65280,65280,65280,65280,65280,255,255,255,3618815,0,16777215
data 16777215,0,255,255,255,255,255,65280,65280,65280,65280,65280,65280,255,255,255,255,3618815,0,13947080
data 13947080,0,255,255,255,255,255,255,65280,65280,65280,65280,255,255,255,255,255,3618815,0,16777215
data 16777215,0,255,255,255,255,255,255,255,65280,65280,255,255,255,255,255,255,3618815,0,13947080
data 13947080,0,255,255,255,255,255,255,255,8421504,8421504,255,255,255,255,255,255,3618815,0,16777215
data 16777215,0,255,255,255,255,255,255,255,8421504,8421504,255,255,255,255,255,255,3618815,0,13947080
data 13947080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777215
`dual
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,0,0,0,33023,33023,0,33023,33023,0,33023,33023,0,0,33023,33023,0,33023,33023,33023
data 33023,0,33023,0,0,33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,33023
data 33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,33023
data 33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,0,0,0,33023,0,33023,33023,33023
data 33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,33023
data 33023,0,33023,0,0,33023,0,33023,33023,0,33023,0,33023,33023,0,33023,0,33023,33023,33023
data 33023,0,0,0,33023,33023,33023,0,0,33023,33023,0,33023,33023,0,33023,0,0,0,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,16711680,16711680,16711680,255,255,255,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,16711680,16711680,16711680,255,255,255,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,16711680,16711680,16711680,255,255,255,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,16711680,16711680,16711680,255,255,255,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,16711680,16711680,16711680,255,255,255,33023,33023,33023,33023,33023,33023,33023,33023
data 33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023,33023
`load
data 16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,16711680,16711680,13947080,16777215,13947080,16777215,13947080,16777215,13947080,16777215,13947080
data 13947080,0,0,0,0,0,0,0,16711680,16711680,16711680,16711680,0,0,0,0,0,0,0,16777215
data 16777215,0,3618815,3618815,3618815,3618815,3618815,16711680,16711680,16711680,16711680,16711680,16711680,3618815,3618815,3618815,3618815,3618815,0,13947080
data 13947080,0,255,16777215,16777215,16777215,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,255,3618815,0,16777215
data 16777215,0,255,16777215,16777215,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,16777215,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,3618815,0,16777215
data 16777215,0,255,16711680,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,16711680,3618815,0,13947080
data 13947080,0,16711680,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,16711680,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,16777215
data 16777215,0,255,255,255,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,16711680,255,255,3618815,0,13947080
data 13947080,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777215
`newcanvas
data 12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215
data 16777215,12632256,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,8421440,8421440,8421440,8421440,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,8421440,8421440,8421440,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,8421440,8421440,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,8421440,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,12632256,16777215
data 16777215,12632256,0,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,16777088,0,16777215,12632256
data 12632256,16777215,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12632256,16777215
data 16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256,16777215,12632256
`noise
data 16776960,16776960,16776960,16776960,8421376,16776960,16776960,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,16776960,16776960
data 16776960,16776960,16776960,8421376,16776960,16776960,16776960,16776960,8421376,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960
data 8421376,16776960,16776960,16776960,8421376,8421376,16776960,16776960,8421376,16776960,16776960,8421376,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960
data 16776960,16776960,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,8421376,8421376,16776960,16776960,16776960,16776960
data 16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,16776960,8421376,16776960,8421376,16776960,16776960,8421376,8421376,16776960,16776960,16776960
data 16776960,16776960,8421376,8421376,16776960,16776960,16776960,8421376,16776960,16776960,8421376,8421376,16776960,16776960,8421376,16776960,16776960,8421376,16776960,16776960
data 8421376,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,8421376,8421376,16776960,16776960,16776960,16776960,16776960,16776960
data 16776960,16776960,16776960,8421376,8421376,16776960,16776960,16776960,8421376,16776960,16776960,8421376,8421376,16776960,16776960,16776960,16776960,8421376,16776960,16776960
data 16776960,16776960,16776960,8421376,16776960,8421376,16776960,8421376,16776960,8421376,8421376,8421376,16776960,8421376,8421376,8421376,16776960,8421376,8421376,8421376
data 16776960,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,8421376
data 8421376,8421376,8421376,16776960,8421376,16776960,16776960,8421376,8421376,8421376,16776960,8421376,8421376,16776960,8421376,8421376,8421376,8421376,16776960,8421376
data 8421376,16776960,16776960,16776960,16776960,8421376,8421376,8421376,16776960,16776960,16776960,8421376,16776960,16776960,8421376,16776960,8421376,16776960,8421376,16776960
data 16776960,8421376,16776960,16776960,8421376,16776960,8421376,16776960,16776960,16776960,8421376,16776960,8421376,16776960,8421376,16776960,8421376,16776960,16776960,16776960
data 16776960,8421376,16776960,8421376,16776960,16776960,8421376,16776960,16776960,16776960,8421376,16776960,16776960,16776960,8421376,8421376,8421376,16776960,16776960,8421376
data 16776960,16776960,16776960,16776960,8421376,8421376,8421376,16776960,16776960,8421376,16776960,8421376,8421376,8421376,16776960,16776960,8421376,16776960,16776960,16776960
data 16776960,16776960,16776960,16776960,16776960,8421376,16776960,8421376,8421376,8421376,8421376,8421376,16776960,8421376,8421376,8421376,16776960,16776960,16776960,8421376
data 16776960,16776960,16776960,16776960,16776960,8421376,16776960,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960
data 8421376,16776960,16776960,16776960,16776960,8421376,8421376,8421376,8421376,16776960,16776960,16776960,16776960,8421376,8421376,16776960,16776960,8421376,8421376,8421376
data 8421376,16776960,8421376,16776960,16776960,16776960,16776960,16776960,8421376,8421376,16776960,8421376,16776960,16776960,16776960,8421376,8421376,8421376,16776960,16776960
data 16776960,8421376,8421376,16776960,16776960,8421376,8421376,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,16776960,8421376,8421376,8421376,16776960
`psycho
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16711680,16711680,16711680,16776960,16776960,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16711680,16711680,16711680,16711680,16711680,16776960,16776960,16776960,16776960,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16711680,16711680,16711680,16711680,16711680,16711680,16776960,16776960,16776960,16776960,16776960,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,65535,65535,16711680,16711680,16711680,16711680,16711680,16776960,16776960,16776960,16776960,255,255,16777215,16777215,16777215,16777215
data 16777215,16777215,65535,65535,65535,65535,16711680,16711680,16711680,16711680,16776960,16776960,16776960,255,255,255,255,16777215,16777215,16777215
data 16777215,16777215,65535,65535,65535,65535,65535,16711680,16711680,16711680,16776960,16776960,255,255,255,255,255,16777215,16777215,16777215
data 16777215,65535,65535,65535,65535,65535,65535,65535,16711680,16711680,16776960,255,255,255,255,255,255,255,16777215,16777215
data 16777215,65535,65535,32768,32768,32768,32768,32768,32768,16711680,255,255,255,255,255,255,255,255,16777215,16777215
data 16777215,32768,32768,32768,32768,32768,32768,16711808,16711808,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16777215,16777215
data 16777215,32768,32768,32768,32768,32768,16711808,16711808,16711808,16776960,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16777215,16777215
data 16777215,16777215,32768,32768,32768,16711808,16711808,16711808,16711808,16776960,16776960,16711935,16711935,16711935,16711935,16711935,16711935,16777215,16777215,16777215
data 16777215,16777215,32768,32768,16711808,16711808,16711808,16711808,16711808,16776960,16776960,16776960,16711935,16711935,16711935,16711935,16711935,16777215,16777215,16777215
data 16777215,16777215,16777215,16711808,16711808,16711808,16711808,16711808,16711808,16776960,16776960,16776960,16776960,16711935,16711935,16711935,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16711808,16711808,16711808,16711808,16711808,16776960,16776960,16776960,16776960,16776960,16711935,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16711808,16711808,16711808,16711808,16776960,16776960,16776960,16776960,16776960,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16711808,16711808,16711808,16776960,16776960,16776960,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
data 16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215,16777215
`add
data 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,16777215,16777215,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,16777215,16777215,8388736,8388736,8388736,8388608
data 16711935,8388736,16777215,16777215,16777215,16777215,16777215,16777215,8388736,8388608
data 16711935,8388736,16777215,16777215,16777215,16777215,16777215,16777215,8388736,8388608
data 16711935,8388736,8388736,8388736,16777215,16777215,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,16777215,16777215,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608
`subtract
data 16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935,16711935
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,16777215,16777215,16777215,16777215,16777215,16777215,8388736,8388608
data 16711935,8388736,16777215,16777215,16777215,16777215,16777215,16777215,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 16711935,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388736,8388608
data 8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608,8388608
function test_buttons()
mx=mousex():my=mousey():ucm=mouseclick()
if mx>=5 and mx<=25 and my>=220 and my<=240 and ucm=1 then draw_mode="pencil"
if mx>=30 and mx<=50 and my>=220 and my<=240 and ucm=1 then draw_mode="flood"
if mx>=55 and mx<=75 and my>=220 and my<=240 and ucm=1 then draw_mode="spray"
if mx>=80 and mx<=100 and my>=220 and my<=240 and ucm=1 then draw_mode="box"
if mx>=105 and mx<=125 and my>=220 and my<=240 and ucm=1 then draw_mode="circle"
if mx>=130 and mx<=150 and my>=220 and my<=240 and ucm=1 then draw_mode="line"
if mx>=5 and mx<=15 and my>=208 and my<=218 and brush_size<10 and ucm=1 then inc brush_size:repeat:until mouseclick()=0
if mx>=16 and mx<=26 and my>=208 and my<=218 and brush_size>1 and ucm=1 then dec brush_size:repeat:until mouseclick()=0
if mx>=55 and mx<=65 and my>=208 and my<=218 and spray_size<99 and ucm=1 then inc spray_size:repeat:until mouseclick()=0
if mx>=66 and mx<=76 and my>=208 and my<=218 and spray_size>1 and ucm=1 then dec spray_size:repeat:until mouseclick()=0
if mx>=5 and mx<=15 and my>=288 and my<=298 and Noise_level<20 and ucm=1 then inc noise_level:repeat:until mouseclick()=0
if mx>=16 and mx<=26 and my>=288 and my<=298 and noise_level>1 and ucm=1 then dec noise_level:repeat:until mouseclick()=0
if mx>=30 and mx<=40 and my>=288 and my<=298 and psycho_level<20 and ucm=1 then inc psycho_level:repeat:until mouseclick()=0
if mx>=41 and mx<=50 and my>=288 and my<=298 and psycho_level>1 and ucm=1 then dec psycho_level:repeat:until mouseclick()=0
if mx>1 and mx<162 and my>1 and my<122 and ucm=1 then color5=point(mx,my)
if mx>1 and mx<162 and my>1 and my<122 and ucm=2 then color6=point(mx,my)
if mx>=100 and mx<=120 and my>=175 and my<=195 and ucm=1
if brush_style=1
brush_style=0
else
brush_style=1
endif
repeat
until mouseclick()=0
endif
if mx>=5 and mx<=25 and my>=400 and my<=420 and ucm=1 then save_image()
if mx>=30 and mx<=50 and my>=400 and my<=420 and ucm=1 then load_image()
if mx>=5 and mx<=25 and my>=370 and my<=390 and ucm=1 then pick_new()
if mx>=5 and mx<=25 and my>=300 and my<=320 and ucm=1 then noise(noise_level)
if mx>=30 and mx<=50 and my>=300 and my<=320 and ucm=1 then blur(psycho_level)
endfunction
function shift_undo()
for a = 51 to 80
make memblock from image a,a
next a
for a=51 to 79
make image from memblock a,a+1
delete memblock a+1
next a
endfunction
function flood(xpos,ypos,new,old)
array insert at top color_check()
color_check(0).xpos=xpos
color_check(0).ypos=ypos
lock pixels
ink new,0
dot xpos,ypos
repeat
if array count(color_check())>maxel then maxel=array count(color_check())
for a = array count(color_check()) to 0 step -1
curx=color_check(a).xpos
cury=color_check(a).ypos
edge_reached=0
if point(curx-1,cury)=old and curx-1>=across
dot curx-1,cury
array insert at bottom color_check()
color_check(array count(color_check())).xpos=curx-1
color_check(array count(color_check())).ypos=cury
else
inc edge_reached
endif
if point(curx+1,cury)=old and curx+1<=across+canvas_width
dot curx+1,cury
array insert at bottom color_check()
color_check(array count(color_check())).xpos=curx+1
color_check(array count(color_check())).ypos=cury
else
inc edge_reached
endif
if point(curx,cury-1)=old and cury-1>=down
dot curx,cury-1
array insert at bottom color_check()
color_check(array count(color_check())).xpos=curx
color_check(array count(color_check())).ypos=cury-1
else
inc edge_reached
endif
if point(curx,cury+1)=old and cury+1<=down+canvas_height
dot curx,cury+1
array insert at bottom color_check()
color_check(array count(color_check())).xpos=curx
color_check(array count(color_check())).ypos=cury+1
else
inc edge_reached
endif
if edge_reached=4
array delete element color_check(),a
endif
next a
until array count(color_check())<0
unlock pixels
endfunction maxel
function make_box(startx,starty,choice,mode)
repeat
until mouseclick()=0
repeat
paste image undo_level,across,down
if choice=1
ink color5,0
else
ink color6,0
endif
if startx<=mousex()
x1=startx
x2=mousex()
else
x1=mousex()
x2=startx
endif
if starty<=mousey()
y1=starty
y2=mousey()
else
y1=mousey()
y2=starty
endif
if x1<across then x1=across
if x2>across+canvas_width then x2=across+canvas_width
if y1<down then y1=down
if y2>down+canvas_height then y2=down+canvas_height
box x1,y1,x2,y2
if brush_style=1
if choice=1
ink color6,0
else
ink color5,0
endif
if brush_size=1
box x1+brush_size,y1+brush_size,x2-brush_size,y2-brush_size-1
else
box x1+(brush_size-1)*2,y1+(brush_size-1)*2,x2-(brush_size-1)*2,y2-(brush_size-1)*2
endif
endif
sync
until mouseclick()=choice
repeat
until mouseclick()=0
endfunction
function make_line(startx,starty,choice,mode)
linemode=check_for_double()
repeat
repeat
paste image undo_level,across,down
if choice=1
ink color5,0
else
ink color6,0
endif
mx=mousex():my=mousey()
if mx<across then mx=across
if mx>across+canvas_width then mx=across+canvas_width
if my<down then my=down
if my>down+canvas_height then my=down+canvas_height
line startx,starty,mx,my
if brush_size>1
for a=mx-brush_size+1 to mx+brush_size-1
for b = my-brush_size+1 to my+brush_size-1
x1=a:x2=startx+(a-mx):y1=b:y2=starty+(b-my)
if x1<across then x1=across
if x2<across then x2=across
if y1<down then y1=down
if y2<down then y2=down
if x1>across+canvas_width then x1=across+canvas_width
if x2>across+canvas_width then x2=across+canvas_width
if y1>down+canvas_height then y1=down+canvas_height
if y2>down+canvas_height then y2=down+canvas_height
if brush_style=1
if a>mx
ink color6,0
else
ink color5,0
endif
endif
line x1,y1,x2,y2
next b: next a
endif
sync
until mouseclick()=choice
newcheck=check_for_double()
if linemode>0 and newcheck=0
startx=mx:starty=my
add_undo()
else
done=1
endif
until done=1
repeat
until mouseclick()=0
endfunction
function check_for_double()
repeat
until mouseclick()=0
starttime=timer()+100
repeat
if mouseclick()>0 then clicked=1
until starttime<timer() or clicked>0
endfunction clicked
function add_undo()
inc undo_level
if undo_level>80
shift_undo()
undo_level=80
endif
get image undo_level,across,down,across+canvas_width,down+canvas_height,1
endfunction
function make_circle(startx,starty,choice,mode)
get image 800,0,0,170,screen height(),1
repeat
until mouseclick()=0
repeat
ink 0,0
box 171,0,screen width(),screen height()
paste image undo_level,across,down
if choice=1
ink color5,0
else
ink color6,0
endif
mx=mousex():my=mousey()
if mx<across then mx=across
if mx>across+canvas_width then mx=across+canvas_width
if my<down then my=down
if my>down+canvas_height then my=down+canvas_height
rad=abs(startx-mx)
circle startx,starty,rad
if brush_size>1
for circount = 0-brush_size to brush_size
circle startx,starty,rad+circount
circle startx-1,starty-1,rad+circount
circle startx+1,starty+1,rad+circount
circle startx-1,starty+1,rad+circount
circle startx+1,starty-1,rad+circount
if brush_size>2
circle startx+2,starty+2,rad+circount
circle startx-2,starty-2,rad+circount
circle startx-2,starty+2,rad+circount
circle startx+2,starty-2,rad+circount
endif
if brush_style=1
if circount>0
if choice=1
ink color6,0
else
ink color5,0
endif
endif
endif
next circount
endif
paste image 800,0,0
sync
until mouseclick()=choice
repeat
until mouseclick()=0
endfunction
function enter_text(x,y)
word$=""
clear entry buffer
repeat
ink rgb(255,255,255),0
box x,y,x+120,y+20
ink 0,0
x$=entry$(1)
if x$<>""
word$=word$+left$(x$,1)
clear entry buffer
repeat
until scancode()=0
endif
sc=scancode()
if sc=14 and len(word$)>0
word$=left$(word$,len(word$)-1)
repeat
until scancode()=0
endif
text x,y,word$
tl=text width(word$)
if blink=0
ink rgb(255,255,255),0
box x+text width(word$)+2,y,x+text width(word$)+8,y+text height("W")
else
ink rgb(100,100,100),0
box x+text width(word$)+2,y,x+text width(word$)+8,y+text height("W")
endif
if blinkspeed<timer()
if blink=0
blink=1
else
blink=0
endif
blinkspeed=timer()+250
endif
remstart
` this is to test what words were parsed and their lengths
if array count(words())>-1
for a=0 to array count(words())
print words(a);"-";str$(len(words(a)))
next a
endif
remend
sync
until scancode()=28
repeat
until scancode()=0
ink rgb(212,209,201),0
box x,y,x+140,y+21
ink color5,0
endfunction word$
function save_image()
file$=enter_text(5,430)
file$=file$+".bmp"
if file exist(file$)
delete file file$
endif
save image file$,undo_level
endfunction
function blur(amount)
get image 1999,across,down,across+canvas_width,down+canvas_width,1
lock pixels
for c = 0 to amount
for a = across to across+canvas_width-2
for b = down to down+canvas_height-2
x1=point(a,b):x2=point(a+1,b)
x3=(x1+x2)/2
dot a,b,x3
next b
next a
for a = across to across+canvas_width-2
for b = down to down+canvas_height-2
x1=point(a,b):x2=point(a,b+1)
x3=(x1+x2)/2
dot a,b,x3
next b
next a
next c
unlock pixels
get image 1998,across,down,across+canvas_width,down+canvas_width,1
paste image 1999,across,down
paste image 1998,across+1,down+1
ink 0,0
box across+canvas_width+1,down,across+canvas_width+4,down+canvas_height+3
add_undo()
repeat
until spacekey()=0
endfunction
function noise(amount)
lock pixels
for a = across to across+canvas_width
for b = down to down+canvas_height
x1=point(a,b)
col1=rgbr(x1):col2=rgbg(x1):col3=rgbb(x1)
col1=col1+rnd(amount*10)-rnd(amount*10)
col2=col2+rnd(amount*10)-rnd(amount*10)
col3=col3+rnd(amount*10)-rnd(amount*10)
if col1<0 then col1=0
if col2<0 then col2=0
if col3<0 then col3=0
if col1>255 then col1=255
if col2>255 then col2=255
if col3>255 then col3=255
ink rgb(col1,col2,col3),0
dot a,b
next b
next a
unlock pixels
add_undo()
repeat
until spacekey()=0
endfunction
function make_canvas(x,y)
if x>max_width then x=max_width
if y>max_height then y=max_height
Canvas_width=x:canvas_height=y
ink rgb(255,255,255),0
lock pixels
across=(screen width()-canvas_width)/2+85
down=((screen height()-10)-canvas_height)/2
for a = across to across+canvas_width
for b = down to down+canvas_height
dot a,b
next b
next a
unlock pixels
endfunction
function load_image()
file$=enter_text(5,430)
file$=file$+".bmp"
if file exist(file$)=0 then exitfunction
load bitmap file$,1
canvas_width=bitmap width(1)
canvas_height=bitmap height(1)
if canvas_width>800 then canvas_width=800
if canvas_height>600 then canvas_height=600
undo_level=50
get image undo_level,0,0,canvas_width,canvas_height,1
delete bitmap 1
set current bitmap 0
across=(screen width()-canvas_width)/2+85
down=((screen height()-10)-canvas_height)/2
draw_interface()
paste image undo_level,across,down
add_undo()
endfunction
function draw_interface()
cls
ink rgb(212,209,201),0
box 0,0,165,screen height()
ink rgb(255,255,255),0
box 2,2,161,121
for a = 0 to 11
for b = 0 to 15
ink color(a,b),0
box b*10+2,a*10+2,b*10+11,a*10+11
next b
next a
endfunction
function pick_new()
text 5,600,"Width (max 800)"
text 5,650,"Height (max 600)"
repeat
wid$=enter_text(5,620)
valid=0
picked=0
for a = 1 to len(wid$)
xx$=mid$(wid$,a)
if xx$="1" or xx$="2" or xx$="3" or xx$="4" or xx$="5" or xx$="6" or xx$="7" or xx$="8" or xx$="9" or xx$="0" then inc valid
next a
if valid=len(wid$)
value1=val(wid$)
if value1>0 and value1<=800
canvas_width=value1
picked=1
endif
endif
until picked=1
repeat
wid$=enter_text(5,670)
valid=0
picked=0
for a = 1 to len(wid$)
xx$=mid$(wid$,a)
if xx$="1" or xx$="2" or xx$="3" or xx$="4" or xx$="5" or xx$="6" or xx$="7" or xx$="8" or xx$="9" or xx$="0" then inc valid
next a
if valid=len(wid$)
value1=val(wid$)
if value1>0 and value1<=600
canvas_height=value1
picked=1
endif
endif
until picked=1
draw_interface()
make_canvas(canvas_width,Canvas_height)
undo_level=50
get image undo_level,across,down,across+canvas_width,down+canvas_height,1
endfunction
There is a sticky at the to of the DBP forums that says coding challenges, you can find alot of help there for many things.