Ok, have upgraded the program a bit, i havn't tried to fit it in 20 lines.

You can now save the picks by pressing s, im not sure if it allways works because it worked at firsn but after a whle is stopped working.

You can no crate rings, boxes, and lines by prssing r,b or l.

for boxes First click were you want the box to begin, then press were you want it to end. When the box is painted, prss enter or left mousebutton.

For rings, first klick were you want the center then click hpw far from the center you want the radius.(Click center, then outside)

Rem Project: paint
Rem Created: Wednesday, May 26, 2010
Rem ***** Main Source File *****
Rem ***** Included Source File *****
start:
key=scancode()
ink rgb(255,255,255),(255)
print "press P to start over"
Center text 600,120, "1=red"
center text 600,130, "2=green"
center text 600,140, "3=Blue"
center text 600,150, "4=yellow"
center text 600,160, "5=black"
center text 600,170, "6=white"
center text 600,180, "7=grey"
do
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
If c=1 then dot x,y
If c=1 then dot x+1,y+1
If c=1 then dot x-1,y-1
if c=1 then dot x-1,y-1
if c=1 then dot x-1,y+1
if c=1 then dot x+1,y-1
if c=1 then dot x+1,y+1
If C=1 then dot x,y+1
If C=1 then dot x+1,y
If C=1 then dot x,y-1
If C=1 then dot x-1,y
if key=25 then gosub StartOver
key=scancode()
if key=2 then ink rgb (255,0,0),(255)
if key=3 then ink rgb (0,255,0),(255)
if key=4 then ink rgb (0,0,255),(255)
if key=6 then ink rgb (0,0,0),(255)
if key=7 then ink rgb (255,255,255),(255)
if key=5 then ink rgb (255,255,0),(255)
if key=8 then ink rgb (155,155,155),(0)
if key=31 then gosub save
if key=19 then gosub ring2
if key=48 then gosub box1
if key=38 then gosub line1
loop
// start over script
StartOver:
cls
goto start
return
//savescript
save:
input Sname$
get image 1,0,25,550,480,
if key=28 then save image sname$,1
return
//ringscript
//Ring:
input r
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 then circle x,y,r
until key=24
return
//boxscriptP1
Box1:
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 then X2=x
if c=1 then y2=y
if c=1 then gosub Box2
until key=28
return
//boxScript2
Box2:
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 then box x2,y2,x,y
until c=2 or key=28
return
//lineScript1
Line1:
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 then Xl=x
if c=1 then yl=y
if c=1 then gosub line2
until key=28
return
//linescript2
line2:
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 then line Xl,Yl,x,y
until c=2 or key=28
return
//Ring2
Ring2:
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1 and x>20
x1=x
y1=y
gosub ring1
endif
until key=28
return
//ring1
ring1:
wait 500
repeat
x=mousex(): y=mousey(): C=mouseclick(): key=scancode()
if c=1
s1=x1-x
s2=y1-y
r=sqrt(s1*s1+s2*s2)
circle x1,y1,r
endif
until c=2 or key=28
return
//save
save:
input Sname$
Sync
get image 1, 0, 35, 550, 480
save image sname$, 1
return

Compressed

start:
key=scancode()
ink rgb(255,255,255),(255)
print "press P to start over"
Center text 600,120, "1=red"
center text 600,130, "2=green"
center text 600,140, "3=Blue"
center text 600,150, "4=yellow" :center text 600,160, "5=black" :center text 600,170, "6=white" :center text 600,180, "7=grey"
do
x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :If c=1 then dot x,y :If c=1 then dot x+1,y+1 :If c=1 then dot x-1,y-1 :if c=1 then dot x-1,y-1 :if c=1 then dot x-1,y+1 :if c=1 then dot x+1,y-1 :if c=1 then dot x+1,y+1 :If C=1 then dot x,y+1 :If C=1 then dot x+1,y :If C=1 then dot x,y-1 :If C=1 then dot x-1,y
if key=25 then gosub StartOver :key=scancode() :if key=2 then ink rgb (255,0,0),(255) :if key=3 then ink rgb (0,255,0),(255) :if key=4 then ink rgb (0,0,255),(255) :if key=6 then ink rgb (0,0,0),(255) :if key=7 then ink rgb (255,255,255),(255) :if key=5 then ink rgb (255,255,0),(255) :if key=8 then ink rgb (155,155,155),(0) :if key=31 then gosub save :if key=19 then gosub ring2 :if key=48 then gosub box1 :if key=38 then gosub line1
loop
StartOver: cls :goto start :return
Box1: repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :if c=1 then X2=x :if c=1 then y2=y :if c=1 then gosub Box2 :until key=28 :return
Box2: repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :if c=1 then box x2,y2,x,y :until c=2 or key=28 :return
Line1: repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() .if c=1 then Xl=x :if c=1 then yl=y :if c=1 then gosub line2 :until key=28 return
line2: repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :if c=1 then line Xl,Yl,x,y :until c=2 or key=28 :return
Ring2: :repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :if c=1 and x>20 :x1=x :y1=y :gosub ring1 :endif :until key=28 :return
ring1: wait 500 :repeat :x=mousex(): y=mousey(): C=mouseclick(): key=scancode() :if c=1 :s1=x1-x :s2=y1-y :r=sqrt(s1*s1+s2*s2) :circle x1,y1,r :endif :until c=2 or key=28 :return
save: input Sname$ : Sync :get image 1, 0, 35, 550, 480 :save image sname$, 1 :return

There is something wrong with the 20 line version , probaly some : that's missing.

But the uncompressed works and if you look you can see that it's the same

Srry about my english im from sweeden