All pastes #47399 Raw Copy code Copy link Edit

Turing-PLZ HELP

public text v1 · immutable
#47399 ·published 2006-03-29 04:01 UTC
rendered paste body
% MS Paint-wannabe turing code. Please fix and/or make better/enhance.
% any help will be appreciated. Thank you very much! ^^

setscreen ("graphics:max,max")
var font : int := Font.New ("sans serif:14:bold")
var xrad : int
var yrad : int
var xdif : int
var ydif : int
var ttext : string
var col : int
var size : int := 5
var colur : int := 7
var stamp : int := 0
var mx, my, mb : int
var tool : int := 1
var pencil : int
var eraser : int
var clear : int
var square : int
var circle : int
var text : int
var line : int
var fill : int
var pencil2 : int
var eraser2 : int
var clear2 : int
var square2 : int
var circle2 : int
var text2 : int
var line2 : int
var fill2 : int
var smiley : int
var smiley2 : int
var x, y, btnNumber, btnUpDown, buttons : int


%background
pencil := Pic.FileNew ("pencil.jpg")
eraser := Pic.FileNew ("eraser.jpg")
clear := Pic.FileNew ("clear.jpg")
square := Pic.FileNew ("drawbox.jpg")
circle := Pic.FileNew ("circle.jpg")
text := Pic.FileNew ("text tool.jpg")
line := Pic.FileNew ("line tool.jpg")
fill := Pic.FileNew ("paint can.jpg")
pencil2 := Pic.FileNew ("pencil2.jpg")
eraser2 := Pic.FileNew ("eraser2.jpg")
% clear2 := Pic.FileNew ("clear2.jpg")
square2 := Pic.FileNew ("drawbox2.jpg")
circle2 := Pic.FileNew ("circle2.jpg")
text2 := Pic.FileNew ("text tool2.jpg")
line2 := Pic.FileNew ("line tool2.jpg")
fill2 := Pic.FileNew ("paint can2.jpg")
smiley := Pic.FileNew ("nVidia.jpg")
smiley2 := Pic.FileNew ("nvidia_logo.jpg")
drawfillbox (0, 0, maxx, maxy, 13)
drawfillbox (250, 50, maxx - 20, maxy - 20, white)
drawfillbox (10, maxy - 25, 30, maxy - 45, 2)
drawfillbox (30, maxy - 25, 50, maxy - 45, 3)
drawfillbox (10, maxy - 45, 30, maxy - 65, 4)
drawfillbox (30, maxy - 45, 50, maxy - 65, 5)
drawfillbox (10, maxy - 65, 30, maxy - 80, 6)
drawfillbox (30, maxy - 65, 50, maxy - 80, 7)
drawfillbox (10, maxy - 80, 30, maxy - 100, 8)
drawfillbox (30, maxy - 80, 50, maxy - 100, 9)
drawfillbox (10, maxy - 100, 30, maxy - 120, 10)
drawfillbox (30, maxy - 100, 50, maxy - 120, 11)
drawfillbox (10, maxy - 120, 30, maxy - 140, 12)
drawfillbox (30, maxy - 120, 50, maxy - 140, 13)
drawfillbox (10, maxy - 140, 30, maxy - 160, 14)
drawfillbox (30, maxy - 140, 50, maxy - 160, 15)
drawfillbox (50, maxy - 25, 70, maxy - 45, 39)
drawfillbox (70, maxy - 25, 90, maxy - 45, 40)
drawfillbox (50, maxy - 45, 70, maxy - 65, 41)
drawfillbox (70, maxy - 45, 90, maxy - 65, 42)
drawfillbox (50, maxy - 65, 70, maxy - 80, 44)
drawfillbox (70, maxy - 65, 90, maxy - 80, 46)
drawfillbox (50, maxy - 80, 70, maxy - 100, 48)
drawfillbox (70, maxy - 80, 90, maxy - 100, 113)
drawfillbox (50, maxy - 100, 70, maxy - 120, 112)
drawfillbox (70, maxy - 100, 90, maxy - 120, 107)
drawfillbox (50, maxy - 120, 70, maxy - 140, 40)
drawfillbox (70, maxy - 120, 90, maxy - 140, 41)
drawfillbox (50, maxy - 140, 70, maxy - 160, 17)
drawfillbox (70, maxy - 140, 90, maxy - 160, 28)
drawbox (30, maxy - 170, 70, maxy - 210, brightred)

color (13)
put "                                                      Adobe Photochop 7.1"

%stamps
drawfillbox (30, 180, 150, 10, white)
locatexy (100, 170)
put "stamps" ..
drawfillstar (45, 140, 65, 160, yellow)
Pic.Draw (smiley, 75, 135, picCopy)

%FINDFAST

drawbox (120, 240, 200, 300, black) %load
Font.Draw ("Load", 138, 265, font, white)

drawbox (120, 320, 200, 380, black) %load
Font.Draw ("Save", 138, 345, font, white)

%size select
drawfillbox (10, maxy div 2 + 90, 100, 200, white)
locatexy (40, maxy div 2 + 75)
put "size" ..
locatexy (40, maxy div 2 + 60)
put "size=", size div 5 ..
drawfilloval (55, 368, 1, 1, black)
drawfilloval (55, 358, 5, 5, black)
drawfilloval (55, 341, 10, 10, black)
drawfilloval (55, 314, 15, 15, black)
drawfilloval (55, 277, 20, 20, black)
drawfilloval (55, 230, 25, 25, black)
%tool select
drawfillbox (124, maxy - 30, 176, maxy - 177, 29)
locatexy (130, maxy - 35)
put "tools" ..

Pic.Draw (pencil, 125, maxy - 100, picCopy)
Pic.Draw (eraser, 151, maxy - 100, picCopy)
Pic.Draw (clear, 125, maxy - 126, picCopy)
Pic.Draw (square, 151, maxy - 126, picCopy)
Pic.Draw (circle, 125, maxy - 151, picCopy)
Pic.Draw (text, 151, maxy - 151, picCopy)
Pic.Draw (line, 125, maxy - 176, picCopy)
Pic.Draw (fill, 151, maxy - 176, picCopy)

loop
    color (black)
    locatexy (40, maxy div 2 + 60)
    put "size=", size div 5 ..
    mousewhere (mx, my, mb)

    %size select
    if mx > 50 and mx < 60 and my > 367 and my < 380 and mb = 1 then
        size := 1
    elsif mx > 49 and mx < 61 and my > 352 and my < 364 and mb = 1 then
        size := 5
    elsif mx > 44 and mx < 66 and my > 331 and my < 352 and mb = 1 then
        size := 10
    elsif mx > 39 and mx < 71 and my > 298 and my < 330 and mb = 1 then
        size := 15
    elsif mx > 34 and mx < 76 and my > 256 and my < 298 and mb = 1 then
        size := 20
    elsif mx > 29 and mx < 81 and my > 200 and my < 256 and mb = 1 then
        size := 25

        %tool select
    elsif mx > 125 and mx < 151 and my > maxy - 100 and my < maxy - 74 and mb = 1 then
        tool := 1
        Pic.Draw (pencil2, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 151 and mx < 176 and my > maxy - 100 and my < maxy - 74 and mb = 1 then
        tool := 2
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser2, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 125 and mx < 151 and my > maxy - 126 and my < maxy - 100 and mb = 1 then
        tool := 3
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        %Pic.Draw (clear2, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 151 and mx < 176 and my > maxy - 126 and my < maxy - 100 and mb = 1 then
        tool := 4
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square2, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 125 and mx < 151 and my > maxy - 151 and my < maxy - 126 and mb = 1 then
        tool := 5
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle2, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 151 and mx < 176 and my > maxy - 151 and my < maxy - 126 and mb = 1 then
        tool := 6
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text2, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 125 and mx < 151 and my > maxy - 176 and my < maxy - 151 and mb = 1 then
        tool := 7
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line2, 125, maxy - 176, picCopy)
        Pic.Draw (fill, 151, maxy - 176, picCopy)
    elsif mx > 151 and mx < 176 and my > maxy - 176 and my < maxy - 151 and mb = 1 then
        tool := 8
        Pic.Draw (pencil, 125, maxy - 100, picCopy)
        Pic.Draw (eraser, 151, maxy - 100, picCopy)
        Pic.Draw (clear, 125, maxy - 126, picCopy)
        Pic.Draw (square, 151, maxy - 126, picCopy)
        Pic.Draw (circle, 125, maxy - 151, picCopy)
        Pic.Draw (text, 151, maxy - 151, picCopy)
        Pic.Draw (line, 125, maxy - 176, picCopy)
        Pic.Draw (fill2, 151, maxy - 176, picCopy)
    end if

    %stamp select
    if mx > 35 and mx < 55 and my > 140 and my < 160 and mb = 1 then
        stamp := 1
        tool := 0
    elsif mx > 75 and mx < 100 and my > 135 and my < 160 and mb = 1 then
        stamp := 2
        tool := 0
    end if

    %colour select
    if mx > 10 and mx < 90 and my < maxy - 25 and my > maxy - 160 and mb = 1 then
        colur := whatdotcolour (mx, my)
        drawfillbox (31, maxy - 171, 69, maxy - 209, colur)
    end if

    %draw on canvas
    if tool = 0 and mx > 250 + size * 3 and my > 50 + size * 3 and mx < (maxx - 20) - size * 3 and my < maxy - 20 + size * 3 and mb = 1 and stamp = 1 then
        drawfillstar (mx - size * 3, my - size * 3, mx + size * 3, my + size * 3, colur)
    elsif tool = 0 and mx > 300 and my > 100 and mx < maxx - 70 and my < maxy - 70 and mb = 1 and stamp = 2 then
        Pic.Draw (smiley2, mx - 50, my - 50, picCopy)
    end if
    if tool = 1 and mx > 250 + size and my > 50 + size and mx < maxx - 20 - size and my < maxy - 20 - size and mb = 1 then
        drawfilloval (mx, my, size, size, colur)

    elsif tool = 2 and mx > 250 + size and my > 50 + size and mx < maxx - 20 - size and my < maxy - 20 - size and mb = 1 then
        drawfilloval (mx, my, size, size, white)
    elsif tool = 3 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
        drawfillbox (250, 50, maxx - 20, maxy - 20, white)
    elsif tool = 4 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
        Mouse.ButtonWait ("down", x, y, btnNumber, btnUpDown)
        mx := x
        my := y
        loop
            drawfillbox (x, y, mx, my, 0)     % Erase previous line
            exit when Mouse.ButtonMoved ("up")
            drawfillbox (x, y, mx, my, colur)     % Draw line to position
        end loop
        Mouse.ButtonWait ("up", mx, my, btnNumber, btnUpDown)
        drawfillbox (x, y, mx, my, colur)     % Draw line to final position

    elsif tool = 7 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
        Mouse.ButtonWait ("down", x, y, btnNumber, btnUpDown)
        mx := x
        my := y
        loop
            drawline (x, y, mx, my, 0)     % Erase previous line
            exit when Mouse.ButtonMoved ("up")
            drawline (x, y, mx, my, colur)     % Draw line to position
        end loop
        Mouse.ButtonWait ("up", mx, my, btnNumber, btnUpDown)
        drawline (x, y, mx, my, colur)     % Draw line to final position

    elsif tool = 5 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then




        loop
            mousewhere (mx, my, mb)
            if mb = 1 then
                mx := x
                my := y


                if mx < x then
                    xrad := (x - mx) div 2
                else
                    xrad := (mx - x) div 2
                end if
                if my < y then
                    yrad := (y - my) div 2
                else
                    yrad := (my - y) div 2
                end if
                if mx < x then
                    xdif := x - xrad
                else
                    xdif := mx - xrad
                end if
                if my < y then
                    ydif := y - yrad
                else
                    ydif := my - yrad
                end if

                drawfilloval (xdif, ydif, xrad, yrad, 0) % Erase previous line
                exit when mb = 0
                drawfilloval (xdif, ydif, xrad, yrad, colur) % Draw line to position
            end if
        end loop
        if mb = 0 then
            drawfilloval (xdif, ydif, xrad, yrad, colur)     % Draw line to final position
        end if

    elsif tool = 6 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then


        color (colur)
        locatexy (mx, my)

        get ttext

    end if

end loop
put "size=", size div 5 ..
mousewhere (mx, my, mb)

%size select
if mx > 50 and mx < 60 and my > 367 and my < 380 and mb = 1 then
    size := 1
elsif mx > 49 and mx < 61 and my > 352 and my < 364 and mb = 1 then
    size := 5
elsif mx > 44 and mx < 66 and my > 331 and my < 352 and mb = 1 then
    size := 10
elsif mx > 39 and mx < 71 and my > 298 and my < 330 and mb = 1 then
    size := 15
elsif mx > 34 and mx < 76 and my > 256 and my < 298 and mb = 1 then
    size := 20
elsif mx > 29 and mx < 81 and my > 200 and my < 256 and mb = 1 then
    size := 25

    %tool select
elsif mx > 125 and mx < 151 and my > maxy - 100 and my < maxy - 74 and mb = 1 then
    tool := 1
    Pic.Draw (pencil2, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 151 and mx < 176 and my > maxy - 100 and my < maxy - 74 and mb = 1 then
    tool := 2
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser2, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 125 and mx < 151 and my > maxy - 126 and my < maxy - 100 and mb = 1 then
    tool := 3
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    %Pic.Draw (clear2, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 151 and mx < 176 and my > maxy - 126 and my < maxy - 100 and mb = 1 then
    tool := 4
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square2, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 125 and mx < 151 and my > maxy - 151 and my < maxy - 126 and mb = 1 then
    tool := 5
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle2, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 151 and mx < 176 and my > maxy - 151 and my < maxy - 126 and mb = 1 then
    tool := 6
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text2, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 125 and mx < 151 and my > maxy - 176 and my < maxy - 151 and mb = 1 then
    tool := 7
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line2, 125, maxy - 176, picCopy)
    Pic.Draw (fill, 151, maxy - 176, picCopy)
elsif mx > 151 and mx < 176 and my > maxy - 176 and my < maxy - 151 and mb = 1 then
    tool := 8
    Pic.Draw (pencil, 125, maxy - 100, picCopy)
    Pic.Draw (eraser, 151, maxy - 100, picCopy)
    Pic.Draw (clear, 125, maxy - 126, picCopy)
    Pic.Draw (square, 151, maxy - 126, picCopy)
    Pic.Draw (circle, 125, maxy - 151, picCopy)
    Pic.Draw (text, 151, maxy - 151, picCopy)
    Pic.Draw (line, 125, maxy - 176, picCopy)
    Pic.Draw (fill2, 151, maxy - 176, picCopy)
end if

%stamp select
if mx > 35 and mx < 55 and my > 140 and my < 160 and mb = 1 then
    stamp := 1
    tool := 0
elsif mx > 75 and mx < 100 and my > 135 and my < 160 and mb = 1 then
    stamp := 2
    tool := 0
end if

%colour select
if mx > 10 and mx < 90 and my < maxy - 25 and my > maxy - 160 and mb = 1 then
    colur := whatdotcolour (mx, my)
    drawfillbox (31, maxy - 171, 69, maxy - 209, colur)
end if

%draw on canvas
if tool = 0 and mx > 250 + size * 3 and my > 50 + size * 3 and mx < (maxx - 20) - size * 3 and my < maxy - 20 + size * 3 and mb = 1 and stamp = 1 then
    drawfillstar (mx - size * 3, my - size * 3, mx + size * 3, my + size * 3, colur)
elsif tool = 0 and mx > 300 and my > 100 and mx < maxx - 70 and my < maxy - 70 and mb = 1 and stamp = 2 then
    Pic.Draw (smiley2, mx - 50, my - 50, picCopy)
end if
if tool = 1 and mx > 250 + size and my > 50 + size and mx < maxx - 20 - size and my < maxy - 20 - size and mb = 1 then
    drawfilloval (mx, my, size, size, colur)

elsif tool = 2 and mx > 250 + size and my > 50 + size and mx < maxx - 20 - size and my < maxy - 20 - size and mb = 1 then
    drawfilloval (mx, my, size, size, white)
elsif tool = 3 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
    drawfillbox (250, 50, maxx - 20, maxy - 20, white)
elsif tool = 4 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
    Mouse.ButtonWait ("down", x, y, btnNumber, btnUpDown)
    mx := x
    my := y
    loop
        drawfillbox (x, y, mx, my, 0)         % Erase previous line
        exit when Mouse.ButtonMoved ("up")
        drawfillbox (x, y, mx, my, colur)         % Draw line to position
    end loop
    Mouse.ButtonWait ("up", mx, my, btnNumber, btnUpDown)
    drawfillbox (x, y, mx, my, colur)         % Draw line to final position

elsif tool = 7 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then
    Mouse.ButtonWait ("down", x, y, btnNumber, btnUpDown)
    mx := x
    my := y
    loop
        drawline (x, y, mx, my, 0)         % Erase previous line
        exit when Mouse.ButtonMoved ("up")
        drawline (x, y, mx, my, colur)         % Draw line to position
    end loop
    Mouse.ButtonWait ("up", mx, my, btnNumber, btnUpDown)
    drawline (x, y, mx, my, colur)         % Draw line to final position

elsif tool = 5 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then




    loop
        mousewhere (mx, my, mb)
        if mb = 1 then
            mx := x
            my := y


            if mx < x then
                xrad := (x - mx) div 2
            else
                xrad := (mx - x) div 2
            end if
            if my < y then
                yrad := (y - my) div 2
            else
                yrad := (my - y) div 2
            end if
            if mx < x then
                xdif := x - xrad
            else
                xdif := mx - xrad
            end if
            if my < y then
                ydif := y - yrad
            else
                ydif := my - yrad
            end if

            drawfilloval (xdif, ydif, xrad, yrad, 0)     % Erase previous line
            exit when mb = 0
            drawfilloval (xdif, ydif, xrad, yrad, colur)     % Draw line to position
        end if
    end loop
    if mb = 0 then
        drawfilloval (xdif, ydif, xrad, yrad, colur)         % Draw line to final position
    end if

elsif tool = 6 and mx > 250 and my > 50 and mx < maxx - 20 and my < maxy - 20 and mb = 1 then


    color (colur)
    locatexy (mx, my)

    get ttext

end if

loop
    mousewhere (mx, my, mb)
    % tool selection
   
   if mb = 1 and mx > 120 and my > 240 and mx < 200 and my < 300 then     % load
        Pic.ScreenLoad ("mypic.bmp", 250, 50, picCopy)
    elsif mb = 1 and mx > 120 and my > 320 and mx < 200 and my < 380 then  %save
        Pic.ScreenSave (250, 50, 800, 400, "mypic.bmp")
end if
end loop