Data 0,3786,3584,2560,3456,4064,2288,128,182,221,175,124,15,1807,3086,3080,1568,3666,2642,4042,819,1092,1365,1638,1911,2184,2457,2730,3276,3549,3822,4095
End Proc
Procedure UELLIPSE
Gr Writing 2
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
RX=Abs(X1-X)
RY=Abs(Y1-Y)
If RX=0 Then RX=1
If RY=0 Then RY=1
If Key Shift>0 and Key Shift<4 Then RY=RX
Ellipse X1,Y1,RX,RY
Wait Vbl
Ellipse X1,Y1,RX,RY
Until Mouse Key=0
Gr Writing 0
Ink C
Ellipse X1,Y1,RX,RY
End Proc
Procedure FELLIPSE
Gr Writing 2
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
RX=Abs(X1-X)
RY=Abs(Y1-Y)
If RX=0 Then RX=1
If RY=0 Then RY=1
If Key Shift>0 and Key Shift<4 Then RY=RX
Ellipse X1,Y1,RX,RY
Wait Vbl
Ellipse X1,Y1,RX,RY
Until Mouse Key=0
Gr Writing 1
Change Mouse 3
If C=I Then C2=P
If C=P Then C2=I
Ink C,C2
Ellipse X1,Y1,RX,RY
For F=1 To RY
Ellipse X1,Y1,RX,F
Next F
Draw X1-RX,Y1 To X1+RX,Y1
Paint X1,Y1,1
Change Mouse 2
End Proc
Procedure PA1NT
Ink C
Paint X,Y,1
End Proc
Procedure DTTY
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
Ink C
SPOT
Wait Vbl
Until Mouse Key=0
End Proc
Procedure SPOT
Plot X,Y
If BRSIZE=1 Then Goto SKIPPY
X=X+BRSIZE/2
Y=Y+BRSIZE/2
Bar X-BRSIZE,Y-BRSIZE To X,Y
SKIPPY:
End Proc
Procedure FBLOCK
Gr Writing 2
Plot X1,Y1
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
Box X1,Y1 To X,Y
Wait Vbl
Box X1,Y1 To X,Y
Until Mouse Key=0
Gr Writing 1
If C=I Then C2=P
If C=P Then C2=I
Ink C,C2
If X=X1 Then X=X+1
If Y=Y1 Then Y=Y+1
If X1>X Then Swap X1,X
If Y1>Y Then Swap Y1,Y
Bar X1,Y1 To X,Y
Ink C,0
End Proc
Procedure UBLOCK
Gr Writing 2
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
Box X1,Y1 To X,Y
Wait Vbl
Box X1,Y1 To X,Y
Until Mouse Key=0
Gr Writing 0
Ink C
Box X1,Y1 To X,Y
End Proc
Procedure LINE
Gr Writing 2
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
Draw X1,Y1 To X,Y
Wait Vbl
Draw X1,Y1 To X,Y
Until Mouse Key=0
Gr Writing 0
Ink C
Draw X1,Y1 To X,Y
End Proc
Procedure CONTINUOUS
Ink C
Plot X1,Y1
Repeat
Draw To X Screen(X Mouse),Y Screen(Y Mouse)
Wait Vbl
Until Mouse Key=0
End Proc
Procedure MESSAGE[M$]
Screen 7
Paper 7
Gr Writing 0
For F=16 To 20
Paste Icon(F*16-16),0,F
Next F
If Len(M$)>9 Then M$="Too long!"
Text 244,10,M$
Screen 0
End Proc
Procedure CUT
On Error Proc ERR
Resume Label CUTERR
HFLIP=0
VFLIP=0
MD=11
Gr Writing 2
Plot X1,Y1
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
Box X1,Y1 To X,Y
Wait Vbl
Box X1,Y1 To X,Y
Until Mouse Key=0
X=X+1
Y=Y+1
Gr Writing 0
If X1>X Then Swap X1,X
If Y1>Y Then Swap Y1,Y
If X1=X Then X=X+1
If Y1=Y Then Y=Y+1
Get Bob 1,X1,Y1 To X,Y
Hot Spot 1,$11
CUTERR:
End Proc
Procedure PASTE
On Error Proc ERR
Resume Label PASTERR
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
If HFLIP=0 and VFLIP=0
Bob 1,X,Y,1
End If
If HFLIP=1 and VFLIP=0
Bob 1,X,Y,$8001
End If
If VFLIP=1 and HFLIP=0
Bob 1,X,Y,$4001
End If
If VFLIP=1 and HFLIP=1
Bob 1,X,Y,$C001
End If
Put Bob 1
Until Mouse Key=0
Bob Off 1
PASTERR:
End Proc
Procedure MENU
Screen 7
X1=X Mouse
Y1=Y Mouse
X=X Screen(X)
Y=Y Screen(Y)
X=X/16
X=X+1
Y=Y/16
MESSAGE["Selected!"]
If Y=0 Then TPMENU
If Y=1 Then BTMENU
Repeat
Until Mouse Key=0
End Proc
Procedure TPMENU
If X<12 Then MD=X : Pop Proc
If X=12 and HFLIP=1 Then HFLIP=0 : Goto SKIP
If X=12 and HFLIP=0 Then HFLIP=1 : Goto SKIP
If X=13 and VFLIP=1 Then VFLIP=0 : Goto SKIP
If X=13 and VFLIP=0 Then VFLIP=1 : Goto SKIP
SKIP:
If X=14 Then RGBSPLIT : Pop Proc
If X=15 Then HID
If X>15 Then DRAGBAR
End Proc
Procedure BTMENU
If X=1 and BRSIZE>1 Then BRSIZE=BRSIZE-1
If X=2 and BRSIZE<40 Then BRSIZE=BRSIZE+1
If X>2 and X<9 Then MD=X+20 : Pop Proc
If X=9 Then NEWFONT : Pop Proc
If X=10 Then MAGNIFY : Pop Proc
If X=11 Then NEWPATT : Pop Proc
If X=12 Then PICK : Pop Proc
If X=13 Then UNDO : Pop Proc
If X=14 Then SYSINFO : Pop Proc
If X=15 Then PROGDATA : Pop Proc
If X=16 Then REQUEST["Printer not implimented","Ok",""] : Pop Proc
If X=17 Then DISK : Pop Proc
If X=18 Then PAL : Pop Proc
If X=19 Then SNAP : Screen 0 : Paper P : Ink I : Cls
If X=20 Then QUIT
If X=1 or X=2
MESSAGE["Size:"+Right$(Str$(BRSIZE),2)] : Wait 5
End If
End Proc
Procedure SYSINFO
On Error Proc ERR
Resume Label CANNEDO
DISK$=Str$(Dfree)
MEM$=Str$(Fast Free+Chip Free)
WINDO[16,16,34,6]
Print
Centre "Disk free :"+DISK$+" bytes"
Print
Centre "Memory free :"+MEM$+" bytes"
Print
Print
Centre "Click mouse"
Repeat
Until Mouse Key=0
Repeat
Until Mouse Key<>0
WINDCLO
CANNEDO:
End Proc
Procedure PROGDATA
WINDO[16,32,36,19]
Print
Repeat
Until Mouse Key=0
Restore 999
Repeat
Read R$
Centre R$+" "
Print
Until R$="Click mouse"
Repeat
Until Mouse Key=1
WINDCLO
999
Data "Spectrapaint V3.0"
Data ""
Data "A new generation of"
Data "Spectrapaint"
Data ""
Data "(C)1991 Twilight Software"
Data "Written by K.Hudson"
Data ""
Data "K.K.Hudson"
Data "4 Brunt Road"
Data "Rawmarsh"
Data "Rotherham"
Data "S.Yorkshire"
Data "England"
Data "S62 5EW"
Data ""
Data "Click mouse"
End Proc
Procedure NEWFONT
Repeat
Until Mouse Key=0
HID
WINDO[16,16,32,12]
Repeat
N=0
Repeat
N=N+1
F$
Until F Extension_0_FFA1 ""
N=N-1
Reserve Zone Extension_0_803E Extension_0_4000 Extension_0_200A Extension_0_F000
If EX=False Then REQUEST["File not found","Ok",""] : Pop Proc
F$=Fsel$("","","- - Spectrapaint - -","Select new name for file")
If F$="" Then Pop Proc
EX=Exist(F$)
If EX=True Then REQUEST["File already�e8iStc" Extension_0_085C Extension_0_3C26 Extension_0_0602 Extension_0_4C6B Asc Extension_0_00E6 Illegal_Constant_0020 Not # Extension_0_0338
Rename S$ To F$
REERR:
End Proc
Procedure NEWDIR
On Error Proc ERR
Resume Label DER
F=Exist(F$)
If F=True Then REQUEST["File already exists","Ok",""] : Pop Proc
Mkdir F$
DER:
End Proc
Procedure DELETE
On Error Proc ERR
Resume Label DIDNTWORK
F=Exist(F$)
If F=False Then Pop Proc
REQUEST["Do you want to delete "+F$+"?","Yes","No"]
If BUTTON=2 Then Pop Proc
Kill F$
DIDNTWORK:
End Proc
Procedure MAGNIFY
MAGSIZE=16
Repeat
Until Mouse Key=0
Screen 0
Screen To Front 0
Gr Writing 2
Wait Vbl
Hide On
Set Pattern 0
Repeat
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
If X+MAGSIZE>REZ Then X=REZ-MAGSIZE
If 9
Bar X Extension_0_5373 Extension_0_637A Extension_0_6000 Extension_0_FD4A Extension_0_017E Extension_0_00A0 Extension_0_0071 Extension_0_0078
Wait Vbl #
Bar X$,Y To X+MA�S�Z Extension_0_AFCA Extension_0_383E Extension_0_0C00 Extension_0_0A01 HtanRnd Extension_0_FE83 Extension_0_0260 Extension_0_7970 Extension_0_FFA8 MCGRI{E# Extension_0_FFCB Illegal_Constant_003F#