Home » Archimedes archive » Archimedes World » AW-1993-06.adf » AWJune93 » !AWJune93/Goodies/SpacePaint/!Space/SPACEPROG
!AWJune93/Goodies/SpacePaint/!Space/SPACEPROG
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
| Tape/disk: | Home » Archimedes archive » Archimedes World » AW-1993-06.adf » AWJune93 |
| Filename: | !AWJune93/Goodies/SpacePaint/!Space/SPACEPROG |
| Read OK: | ✔ |
| File size: | A341 bytes |
| Load address: | 0000 |
| Exec address: | 0000 |
File contents
10REM Author S.Berry Aged 9 (C) Archimedes World 1993
20PROCWimp_Start("SpacePaint",545,425)
30PROCUser_SetInitialData
40PROCCreate_Windows
50PROCCreate_Menus
60PROCWimp_WaitForEvent
70PROCWimp_CloseDown
80END
90
100DEFPROCUser_SetInitialData
110clear=FALSE:COMP=1:COL=62:TIN=128:xxxxxx=50:yyyyyy=900:GRID=0:pos%=0:remake%=9310:SIZE=100
120ENDPROC
130
140DEFPROCCreate_Windows
150Info_Window%=FNWimp_WindowLoad("Info")
160Info2_Window%=FNWimp_WindowLoad("PHONE_NUM")
170Bar_Icon%=FNWimp_IconBar("iconbar")
180ENDPROC
190
200DEFFNEvent_Save(window%)
210CASEwindow%OF
220
230OTHERWISE:=FALSE
240ENDCASE
250
260DEFPROCCreate_Menus
270Bar_Menu%=FNWimp_MenuCreate("SpacePaint\Info>Info_Window%\Main Help\Quit")
280ENDPROC
290
300DEFFNEvent_Menu(window%)
310CASEwindow%OF
320WHENBar_Window%:=Bar_Menu%
330OTHERWISE:=FALSE
340ENDCASE
350
360DEFPROCEvent_WindowClose(window%,buttons%)
370CASEwindow%OF
380ENDCASE
390ENDPROC
400
410DEFPROCEvent_Draw(window%,x_origin%,y_origin%)
420CASEwindow%OF
430WHENInfo_Window%:PROCUser_DrawInfoWindow
440ENDCASE
450ENDPROC
460
470
480DEFPROCEvent_MouseClick(window%,icon%,button%,x%,y%)
490CASEwindow%OF
500WHENBar_Window%:PROCUser_MouseBar
510WHENInfo_Window%:PROCUser_MouseInfo(button%,icon%)
520ENDCASE
530ENDPROC
540
550DEFPROCUser_MouseBar
560PROCmain
570ENDPROC
580
590DEFPROCUser_MouseInfo(button%,icon%)
600PROCWimp_WindowAlert("Info","Mouse button="+STR$button%+"icon="+STR$icon%)
610ENDPROC
620
630DEFPROCEvent_KeyPress(window%,icon%,key%)
640CASEwindow%OF
650ENDCASE
660ENDPROC
670
680DEFPROCEvent_MenuChoice(menu%)
690CASEmenu%OF
700WHENBar_Menu%:PROCUser_MenuChoiceBar
710ENDCASE
720ENDPROC
730
740DEFPROCUser_MenuChoiceBar
750CASEFNWimp_MenuChoice(0)OF
760WHEN1
770WHEN2:PROChelp3
790WHEN3:finished%=TRUE
800ENDCASE
810ENDPROC
820
830DEFPROCEvent_LoadFile(file$,type$)
840ENDPROC
850
860DEFPROCEvent_SaveFile(file$,window%)
870CASEwindow%OF
880WHENSave_Window%:PROCWimp_WindowAlert("Save","Saving file "+file$)
890ENDCASE
900ENDPROC
910
920
930DEFPROCWimp_WindowAlert(title$,message$)
940PROCWimp_WindowAlertBox(title$,message$,0)
950ENDPROC
960
970DEFPROCWimp_WindowAlertBox(title$,message$,button%)
980LOCALresponse%
990$(wimp%+4)=message$
1000CASEbutton%OF
1010WHEN2:response%=1
1020WHEN1:response%=15
1030WHEN3:response%=(1<<5)+16
1040WHEN4:response%=(1<<6)+16
1050OTHERWISE:response%=16
1060ENDCASE
1070SYS"Wimp_ReportError",wimp%,response%,title$TO,response%
1080ENDPROC
1090
1100DEFFNWimp_WindowCancel(title$,message$)
1110$(wimp%+4)=message$
1120response%=23
1130SYS"Wimp_ReportError",wimp%,response%,title$TO,response%
1140=response%-2
1150
1160DEFPROCWimp_WindowErrorBox(title$,message$)
1170PROCWimp_WindowAlertBox(title$,message$,2)
1180ENDPROC
1190
1200DEFFNWimp_WindowTitle(window%)
1210wimp%!0=window%
1220SYS"Wimp_GetWindInfo",,wimp%
1230IF((wimp%!60)AND&100)=0ERROR1,"Title isn't indirected"
1240=$(wimp%!76)
1250
1260DEFFNWimp_WindowLoad(window$)
1270=FNWimp_WindowLoadFrom(window$,"<SPACE$DIR>.Templates")
1280
1290DEFFNWimp_WindowLoadFrom(window$,template$)
1300LOCALc%,i%,n%,j%,sp$,sp2$
1310SYS"Wimp_OpenTemplate",,template$
1320SYS"Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0TO,,icons%
1330CASEsprites%OF
1340WHEN1:wimp%!64=sprites%
1350OTHERWISE:wimp%!64=FNEvent_Sprites(window%)
1360ENDCASE
1370SYS"Wimp_CreateWindow",,wimp%TOc%
1380SYS"Wimp_CloseTemplate"
1390SYS"Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
1400CASEwimp%!40OF
1410WHEN-1
1420OTHERWISE:i%=40
1430REPEAT
1440wimp%!4=wimp%!i%:wimp%!0=c%
1450SYS"Wimp_GetIconState",,wimp%
1460sp$=FNWimp_GetStringAtAddress(wimp%!28)
1470SYS"Wimp_DeleteIcon",,wimp%
1480CASEsprites%OF
1490WHEN1:wimp%!32=1
1500OTHERWISE
1510SYS"OS_SpriteOp",&108,sprites%TO,,,n%
1520j%=0
1530REPEAT:j%+=1
1540SYS"OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
1550sp2$=FNWimp_GetStringAtAddress(pointer_block%)
1560UNTILj%=n%ORsp$=sp2$
1570IFsp$=sp2$THENwimp%!32=sprites%ELSEwimp%!32=1
1580ENDCASE
1590wimp%!4=c%
1600SYS"Wimp_CreateIcon",,wimp%+4TOhandle%
1610i%+=4
1620UNTIL(wimp%!i%)=-1
1630ENDCASE
1640=c%
1650
1660DEFPROCWimp_WindowBringToTop(window%)
1670!wimp%=window%
1680SYS"Wimp_GetWindowState",,wimp%
1690wimp%!28=-1
1700SYS"Wimp_OpenWindow",,wimp%
1710ENDPROC
1720
1730DEFPROCWimp_WindowClose(window%)
1740!wimp%=window%
1750SYS"Wimp_CloseWindow",,wimp%
1760ENDPROC
1770
1780DEFPROCWimp_WindowForceDraw(window%)
1790CASEwindow%OF
1800WHEN-1:SYS"Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
1810OTHERWISE:SYS"Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
1820ENDCASE
1830ENDPROC
1840
1850DEFPROCWimp_WindowOpen(window%)
1860!wimp%=window%
1870SYS"Wimp_GetWindowState",,wimp%
1880SYS"Wimp_OpenWindow",,wimp%
1890ENDPROC
1900
1910PROCWimp_WindowInterface
1920SYS"Wimp_BorderWindow",,wimp%
1930ENDPROC
1940
1950
1960DEFFNWimp_IconBar(Sprite$)
1970LOCALicon%
1980wimp%!0=-1
1990wimp%!4=0:wimp%!8=0
2000wimp%!12=100:wimp%!16=100
2010wimp%!20=&3002
2020$(wimp%+24)=Sprite$
2030SYS"Wimp_CreateIcon",,wimp%TOicon%
2040=icon%
2050
2060DEFPROCWimp_IconCaret(window%,icon%,chars%)
2070SYS"Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
2080ENDPROC
2090
2100DEFFNWimp_IconText(window%,icon%)
2110wimp%!0=window%:wimp%!4=icon%
2120SYS"Wimp_GetIconState",,wimp%
2130IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
2140=$(wimp%!28)
2150
2160DEFFNWimp_IconValidation(window%,icon%)
2170wimp%!0=window%:wimp%!4=icon%
2180SYS"Wimp_GetIconState",,wimp%
2190IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
2200=$(wimp%!32)
2210
2220DEFPROCWimp_IconDisable(window%,icon%)
2230wimp%!0=window%:wimp%!4=icon%
2240wimp%!8=1<<22:wimp%!12=1<<22
2250SYS"Wimp_SetIconState",,wimp%
2260ENDPROC
2270
2280DEFPROCWimp_IconEnable(window%,icon%)
2290wimp%!0=window%:wimp%!4=icon%
2300wimp%!8=0:wimp%!12=1<<22
2310SYS"Wimp_SetIconState",,wimp%
2320ENDPROC
2330
2340DEFFNWimp_IconPutSprite(window%,icon%,sprite$)
2350wimp%!0=window%:wimp%!4=icon%
2360SYS"Wimp_GetIconState",,wimp%
2370SYS"Wimp_DeleteIcon",,wimp%
2380wimp%!4=wimp%!8:wimp%!8=wimp%!12:wimp%!12=wimp%!16
2390wimp%!16=wimp%!20:wimp%!20=wimp%!24:$(wimp%+24)=sprite$
2400SYS"Wimp_CreateIcon",,wimp%TOicon%
2410=icon%
2420
2430DEFPROCWimp_IconPutText(window%,icon%,text$)
2440wimp%!0=window%:wimp%!4=icon%
2450SYS"Wimp_GetIconState",,wimp%
2460IF((wimp%!24)AND&100)=0ERROR1,"Icon isn't indirected"
2470$(wimp%!28)=text$
2480wimp%!0=window%:wimp%!4=icon%
2490wimp%!8=0:wimp%!12=0
2500SYS"Wimp_SetIconState",,wimp%
2510ENDPROC
2520
2530DEFPROCWimp_IconInterfaceStart
2540SYS"Wimp_BorderIcon",,wimp%
2550ENDPROC
2560
2570DEFPROCWimp_IconInterfaceFinish
2580wimp%!8=0
2590SYS"Wimp_BorderIcon",,wimp%
2600ENDPROC
2610
2620DEFPROCWimp_MenuAdjustOn(menu%)
2630SYS"Wimp_GetPointerInfo",,pointer_block%
2640IF((pointer_block%!8)AND1)=1THENSYS"Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
2650ENDPROC
2660
2670DEFFNWimp_MenuChoice(level%)
2680=(wimp%!(4*level%))+1
2690
2700DEFFNWimp_MenuCreate(menu$)
2710IFmenu$="Colours"THEN=FNWimp_MenuColours
2720LOCALmenu%,index%,width%,length%,k%,s%
2730DIMmenu%28+FNWimp_MenuNoOfEntries(menu$)*24
2740menu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0
2750menu%!16=140:menu%!20=44:menu%!24=0
2760index%=menu%+28
2770$menu%=LEFT$(menu$,INSTR(menu$,"\")-1)
2780width%=LEN(LEFT$(menu$,INSTR(menu$,"\")-1))
2790menu$+="\":Menu_NoOfEntries%=0
2800WHILEmenu$<>""
2810menu$=MID$(menu$,INSTR(menu$,"\")+1)
2820CASEmenu$OF
2830WHEN""
2840OTHERWISE
2850!index%=0:index%!4=-1:index%!8=&7000021
2860length%=INSTR(menu$,"\")-1
2870k%=INSTR(LEFT$(menu$,length%),">")
2880CASEk%OF
2890WHEN0
2900OTHERWISE
2910s%=EVAL(MID$(menu$,k%+1,length%-k%))
2920index%!4=s%
2930length%=k%-1
2940ENDCASE
2950$(index%+12)=LEFT$(menu$,length%)
2960IFlength%>width%THENwidth%=length%
2970index%+=24
2980ENDCASE
2990ENDWHILE
3000menu%!16=16*(width%+1)
3010index%!-24=index%!-24OR&80:=menu%
3020
3030DEFFNWimp_MenuColours
3040=FNWimp_MenuCreateColours(" ")
3050
3060DEFFNWimp_MenuCreateColours(title$)
3070LOCALx$,men%,j%,i%
3080x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
3090men%=FNWimp_MenuCreate(x$)
3100FORi%=0TO15
3110CASETRUEOF
3120WHENi%<4,i%=9,i%=12,i%=14,i%=15:j%=7
3130OTHERWISE:j%=0
3140ENDCASE
3150men%?(39+i%*24)=i%*16+j%
3160PROCWimp_MenuCentre(men%,i%+1)
3170NEXT
3180=men%
3190
3200DEFFNWimp_MenuNoOfEntries(menu$)
3210LOCALn%,j%:n%=0:j%=0
3220REPEAT
3230j%=INSTR(menu$,"\",j%+1)
3240IFj%<>0THENn%+=1
3250UNTILj%=0
3260=n%
3270
3280DEFPROCWimp_MenuBackGroundColour(menu%,item%,colour%)
3290LOCALfore%,i%
3300fore%=(menu%?(39+(item%-1)*24))MOD16
3310i%=((menu%?(39+(item%-1)*24))DIV16)MOD16
3320menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
3330ENDPROC
3340
3350DEFPROCWimp_MenuCentre(menu%,item%)
3360menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<3)
3370ENDPROC
3380
3390DEFPROCWimp_MenuClose
3400SYS"Wimp_CreateMenu",-1
3410ENDPROC
3420
3430DEFPROCWimp_MenuDisable(menu%,item%)
3440menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR(1<<22)
3450ENDPROC
3460
3470DEFPROCWimp_MenuDottedLine(menu%,item%)
3480menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR2
3490ENDPROC
3500
3510DEFPROCWimp_MenuEnable(menu%,item%)
3520PROCWimp_MenuDisable(menu%,item%)
3530menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)EOR(1<<22)
3540ENDPROC
3550
3560DEFPROCWimp_MenuForegroundColour(menu%,item%,colour%)
3570menu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))DIV16)
3580ENDPROC
3590
3600DEFPROCWimp_MenuGlue(menu1%,item%,menu2%)
3610menu1%!(8+item%*24)=menu2%
3620ENDPROC
3630
3640DEFPROCWimp_MenuItem(menu%,item%,item$)
3650$(menu%+(40+(item%-1)*24))=LEFT$(item$,12)+CHR$0
3660ENDPROC
3670
3680DEFPROCWimp_MenuMessage(menu%,item%)
3690menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR(1<<3)
3700ENDPROC
3710
3720DEFPROCWimp_MenuPopUp(Menu%,x%,y%)
3730menu%=Menu%
3740SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
3750ENDPROC
3760
3770DEFPROCWimp_MenuPopUpBar(x%,y%)
3780LOCALn%:n%=0
3790WHILE((Bar_Menu%!(28+n%*24))AND%10000000)=0
3800n%+=1
3810ENDWHILE
3820SYS"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
3830menu%=Bar_Menu%
3840ENDPROC
3850
3860DEFPROCWimp_MenuTick(menu%,item%)
3870menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))EOR1
3880ENDPROC
3890
3900DEFPROCWimp_MenuTitle(menu%,title$)
3910$menu%=LEFT$(title$,12)+CHR$0
3920ENDPROC
3930
3940DEFPROCWimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
3950menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))OR4
3960menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)OR&100
3970menu%!(40+(item%-1)*24)=buffer%
3980menu%!(44+(item%-1)*24)=val%
3990menu%!(48+(item%-1)*24)=BufferLength%
4000ENDPROC
4010
4020
4030DEFPROCWimp_SpritesLoad
4040PROCWimp_SpritesPathLoad("<SPACE$DIR>.Sprites")
4050direct_sprites%=sprites%
4060ENDPROC
4070
4080DEFPROCWimp_SpritesPathLoad(pathname$)
4090LOCALS%,T%
4100S%=OPENIN"<SPACE$DIR>.Sprites":T%=EXT#S%+16:CLOSE#S%
4110DIMsprites%T%,spname%12
4120!sprites%=T%:sprites%!8=0
4130SYS"OS_SpriteOp",&109,sprites%
4140SYS"OS_SpriteOp",&10A,sprites%,pathname$
4150ENDPROC
4160
4170DEFFNWimp_FileType(type%)
4180CASEtype%OF
4190WHEN&FFF:="Text"
4200WHEN&FFD:="Data"
4210WHEN&FFB:="Basic"
4220WHEN&FF9:="Sprite"
4230WHEN&FED:="Palette"
4240WHEN&FEC:="Template"
4250WHEN&AFF:="Draw"
4260WHEN&1000:="Folder"
4270WHEN&2000:="Application"
4280OTHERWISE=STR$~(type%)
4290ENDCASE
4300
4310DEFFNWimp_GetFilePathName
4320=FNWimp_GetStringAtAddress(wimp%+44)
4330
4340DEFFNWimp_FileLoad(pathname$)
4350LOCALS%,T%,file%
4360S%=OPENINpathname$
4370T%=EXT#S%+16
4380CLOSE#S%
4390DIMfile%T%
4400OSCLI("LOAD"+pathname$+""+STR$~file%)
4410=file%
4420;
4430DEFFNWimp_GetStringAtAddress(array%)
4440LOCALs$:s$=""
4450WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE
4460=s$
4470
4480DEFFNWimp_GetFileFromPathname(f$)
4490CASEINSTR(f$,".")OF
4500WHEN0:=f$
4510OTHERWISE:=FNWimp_GetFileFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
4520ENDCASE
4530
4540DEFPROCWimp_SendToEdit(file$)
4550LOCALn%
4560wimp%!4=&6CC01C0C
4570wimp%!16=5
4580wimp%!36=0
4590wimp%!40=&FFF
4600$(wimp%+44)=file$+CHR$0
4610n%=LENfile$+45
4620IFn%MOD4THEN!wimp%=4+(n%>>2)<<2ELSE!wimp%=n%
4630SYS"Wimp_SendMessage",17,wimp%,0
4640ENDPROC
4650DEFPROCWimp_Start(TaskName$,wimp_memory%,icon%)
4660DIMwimp%wimp_memory%,icons%icon%
4670IFwimp_memory%<256THENwimp_memory%=256
4680icon_memory%=icons%+icon%
4690task$=TaskName$
4700indirect_sprites%=1:direct_sprites%=1
4710PROCWimp_SetEventVariables
4720ONERRORPROCWimp_Error:END
4730SYS"Wimp_Initialise",200,&4B534154,TaskName$TOversion%,task%
4740ENDPROC
4750
4760DEFFNWimp_BASICParameters
4770LOCALcom$,param$,I%
4780SYS"OS_GetEnv"TOcom$
4790params$=""
4800I%=INSTR(com$," -quit ")
4810IFI%THENparams$=MID$(com$,INSTR(com$," ",I%+LEN" -quit ")+1)
4820=params$
4830
4840DEFPROCWimp_SetEventVariables
4850DIMpointer_block%20
4860interface%=FALSE
4870null%=1:draw%=2:pointer_leaving%=1<<4
4880pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
4890key%=1<<8:menu%=1<<9:scroll%=1<<10
4900lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
4910recorder%=1<<18:acknowledge%=1<<19:window%=0
4920sprites%=1:version%=0:task%=0
4930Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
4940x_origin%=0:y_origin%=0:SaveWindow%=-3
4950message_quit%=0:message_save%=2:message_load%=3
4960mouse_button%=2:save_event%=0
4970top_line%=0:bottom_line%=0
4980ENDPROC
4990
5000DEFPROCWimp_Error
5010LOCALX$,x%
5020ONERROROFF
5030x%=ERL
5040X$=REPORT$+"atline"+STR$(x%DIV10)
5050DIMErrorMsg%36
5060ErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
5070$(ErrorMsg%+24)="!RunImage"
5080SYS"Wimp_SendMessage",17,ErrorMsg%
5090PROCWimp_WindowAlert(task$,X$)
5100PROCWimp_CloseDown
5110ENDPROC
5120
5130DEFPROCWimp_CloseDown
5140SYS"Wimp_CloseDown",task%,"TASK"
5150ENDPROC
5160
5170DEFPROCWimp_Quit
5180finished%=TRUE
5190ENDPROC
5200
5210DEFFNWimp_ReadVariable(Variable$)
5220LOCALlen%,result%,variable%
5230$wimp%=Variable$
5240SYS"OS_ReadVarVal",wimp%,wimp%+255,255,,3TO,,len%
5250wimp%?(len%+255)=13
5260=$(wimp%+255)
5270DEFPROCWimp_WaitForEvent
5280LOCALmask%,event%
5290finished%=FALSE
5300mask%=%111000011001
5310REPEAT
5320SYS"Wimp_Poll",mask%,wimp%TOevent%
5330CASEevent%OF
5340WHEN0
5350WHEN1:PROCWimp_PollDrawWindow
5360WHEN2:SYS"Wimp_OpenWindow",,wimp%
5370WHEN3:PROCWimp_PollCloseWindow
5380WHEN4
5390WHEN5
5400WHEN6:PROCWimp_PollMouseClick
5410WHEN7:PROCWimp_PollSaveMessage
5420WHEN8:PROCWimp_PollKeyPress
5430WHEN9:PROCEvent_MenuChoice(menu%)
5440WHEN10
5450WHEN11
5460WHEN12
5470WHEN17,18:PROCWimp_PollMessages
5480WHEN19
5490ENDCASE
5500UNTILfinished%
5510END
5520ENDPROC
5530
5540DEFPROCWimp_PollDrawWindow
5550LOCALmore%
5560SYS"Wimp_RedrawWindow",,wimp%TOmore%
5570window%=wimp%!0
5580x_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
5590WHILEmore%
5600IFinterface%THENSYS"Wimp_BorderWindow",,wimp%
5610PROCEvent_Draw(window%,x_origin%,y_origin%)
5620SYS"Wimp_GetRectangle",,wimp%TOmore%
5630ENDWHILE
5640ENDPROC
5650
5660DEFPROCWimp_PollCloseWindow
5670SYS"Wimp_GetPointerInfo",,wimp%
5680window%=wimp%!12:buttons%=wimp%!8
5690PROCEvent_WindowClose(window%,buttons%)
5700!wimp%=window%:SYS"Wimp_CloseWindow",,wimp%
5710ENDPROC
5720
5730DEFPROCWimp_PollMouseClick
5740button%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
5750CASEbutton%OF
5760WHEN2:PROCWimp_PollMenuPopUp
5770OTHERWISE:CASEFNEvent_Save(window%)OF
5780WHENTRUE:PROCWimp_PollMouseSave
5790WHENFALSE:PROCWimp_PollEventMouseClick
5800ENDCASE
5810ENDCASE
5820ENDPROC
5830
5840DEFPROCWimp_PollMenuPopUp
5850menu%=FNEvent_Menu(window%)
5860CASEmenu%OF
5870WHENFALSE
5880OTHERWISE
5890CASEwindow%OF
5900WHEN-2:n%=0
5910WHILE((Bar_Menu%!(28+n%*24))AND%10000000)=0
5920n%+=1
5930ENDWHILE
5940SYS"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
5950OTHERWISE:SYS"Wimp_CreateMenu",,menu%,x%-64,y%+20
5960ENDCASE
5970ENDCASE
5980ENDPROC
5990
6000DEFPROCWimp_PollMouseSave
6010CASEicon%OF
6020WHEN0:IFbutton%AND&50THENPROCWimp_PollDragBox(window%)
6030WHEN2:IFbutton%AND 5THENPROCWimp_PollSaveFile(window%)
6040ENDCASE
6050ENDPROC
6060
6070DEFPROCWimp_PollEventMouseClick
6080IFinterface%THENSYS"Wimp_BorderIcon",,wimp%
6090PROCEvent_MouseClick(window%,icon%,button%,x%,y%)
6100CASEinterface%OF
6110WHENTRUE
6120wimp%!0=x%:wimp%!4=y%:wimp%!8=0
6130wimp%!12=window%:wimp%!16=icon%
6140SYS"Wimp_BorderIcon",,wimp%
6150ENDCASE
6160ENDPROC
6170
6180DEFPROCWimp_PollSaveFile(window%)
6190LOCALfile$
6200wimp%!0=window%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
6210file$=$(wimp%!28)
6220CASEINSTR(file$,".")OF
6230WHEN0
6240$(wimp%+4)="To save, drag the icon to a directory window"
6250SYS"Wimp_ReportError",wimp%,16,task$
6260OTHERWISE
6270PROCEvent_SaveFile(file$,window%)
6280ENDCASE
6290SYS"Wimp_CreateMenu",-1
6300ENDPROC
6310
6320DEFPROCWimp_PollDragBox(window%)
6330LOCALx%,y%
6340save%=window%
6350!wimp%=window%
6360SYS"Wimp_GetWindowState",,wimp%
6370x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
6380wimp%!4=0
6390SYS"Wimp_GetIconState",,wimp%
6400!wimp%=window%
6410wimp%!4=5
6420wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
6430wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
6440wimp%!24=0:wimp%!28=0
6450wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
6460SYS"Wimp_DragBox",,wimp%
6470ENDPROC
6480
6490DEFPROCWimp_PollKeyPress
6500window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
6510CASEFNEvent_Save(window%)OF
6520WHENTRUE:PROCWimpPoll_SaveFile(window%)
6530WHENFALSE:PROCEvent_KeyPress(window%,icon%,key%)
6540ENDCASE
6550ENDPROC
6560
6570DEFPROCWimp_PollSaveMessage
6580LOCALfile$,window%,icon%,x%,y%
6590SYS"Wimp_GetPointerInfo",,wimp%
6600window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
6610wimp%!0=save%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
6620file$=$(wimp%!28)
6630file$=FNWimp_GetFileFromPathname(file$)
6640wimp%!20=window%
6650wimp%!24=icon%
6660wimp%!28=x%:wimp%!32=y%
6670wimp%!36=length%
6680wimp%!0=64
6690wimp%!12=0
6700wimp%!16=1
6710wimp%!40=&FFF
6720$(wimp%+44)=file$
6730SYS"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
6740ENDPROC
6750
6760DEFPROCWimp_PollMessages
6770LOCALfile$
6780file$=FNWimp_GetStringAtAddress(wimp%+44)
6790CASEwimp%!16OF
6800WHEN0:finished%=TRUE
6810WHEN1
6820WHEN2
6830
6840wimp%!0=save%:wimp%!4=1:SYS"Wimp_GetIconState",,wimp%
6850$(wimp%!28)=file$
6860wimp%!0=save%:wimp%!4=1:wimp%!8=0:wimp%!12=0
6870SYS"Wimp_SetIconState",,wimp%
6880
6890SYS"Wimp_SetCaretPosition",save%,1,,,-1,LENfile$
6900PROCEvent_SaveFile(file$,save%)
6910WHEN3
6920type$=FNWimp_FileType(wimp%!40):PROCEvent_LoadFile(file$,type$)
6930ENDCASE
6940ENDPROC
6950
6960DEFFNWimp_GetStringAtAddress(array%)
6970LOCALs$:s$=""
6980WHILE(?array%<>13)AND(?array%<>0):s$+=CHR$(?array%):array%+=1:ENDWHILE
6990=s$
7000
7010DEFFNWimp_GetFileFromPathname(f$)
7020CASEINSTR(f$,".")OF
7030WHEN0:=f$
7040OTHERWISE:=FNWimp_GeteFromPathname(RIGHT$(f$,LEN(f$)-INSTR(f$,".")))
7050ENDCASE
7060
7070DEFFNWimp_FileType(type%)
7080CASEtype%OF
7090WHEN&FFF:="Text"
7100WHEN&FFD:="Data"
7110WHEN&FFB:="Basic"
7120WHEN&FF9:="Sprite"
7130WHEN&FED:="Palette"
7140WHEN&FEC:="Template"
7150WHEN&AFF:="Draw"
7160WHEN&1000:="Folder"
7170WHEN&2000:="Application"
7180OTHERWISE=STR$~(type%)
7190ENDCASE
7200ENDPROC
7210DEFPROCmain
7220
7230ONERRORPROCerror
7240MODE15:OFF:GCOL8,0:IF clear THEN GOTO7450
7245GCOL63:FORL=1TO250:CIRCLEFILLRND(1280),RND(1024),RND(3):NEXT
7250*SCHOOSE LOGO
7260GCOL8,0:PLOT&ED,300,200:GCOL63:TIME=0
7270
7280REPEAT
7285IFTIME>200 GOTO7320
7290MOUSEX,Y,Z:UNTIL Z>0
7310
7320VDU12
7330OSCLI"POINTER 1"
7340MOUSESTEP4
7350GRID=0
7360PROCredraw
7370PROCselect
7380PROCpen
7390END
7400DEFPROCselect
7410MOVE0,0
7420MOVE1280,1024
7430OSCLI"SGET SCREENDUMP"
7440clear=TRUE
7450MODE15:OFF
7460FORL=1TO250:CIRCLEFILLRND(1280),RND(1024),RND(3):NEXT
7470OSCLI"POINTER 1"
7480SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001
7490GCOL21TINT0
7500RECTANGLEFILL150,260,900,190
7510GCOL21TINT64
7520RECTANGLEFILL168,270,868,168
7530GCOL21TINT128
7540RECTANGLEFILL186,280,840,146
7550GCOL21TINT192
7560RECTANGLEFILL200,290,810,124
7570GCOL(COL)TINT(TIN)
7580RECTANGLEFILL208,300,800,100
7590GCOL0,0
7600*SCHOOSE PENTOOL
7610PLOT&ED,50,900
7620*SCHOOSE BRUSHTOOL
7630PLOT&ED,133,900
7640*SCHOOSE RUBBERTOOL
7650PLOT&ED,216,900
7660*SCHOOSE LINETOOL
7670PLOT&ED,300,900
7680*SCHOOSE ARCTOOL
7690PLOT&ED,385,900
7700*SCHOOSE RECTOOL2
7710PLOT&ED,467,900
7720*SCHOOSE RECTOOL
7730PLOT&ED,549,900
7740*SCHOOSE CIRTOOL2
7750PLOT&ED,631,900
7760*SCHOOSE CIRTOOL
7770PLOT&ED,713,900
7780*SCHOOSE SECTORTOOL2
7790PLOT&ED,795,900
7800*SCHOOSE SECTORTOOL
7810PLOT&ED,878,900
7820*SCHOOSE TRITOOL2
7830PLOT&ED,961,900
7840*SCHOOSE TRITOOL
7850PLOT&ED,1044,900
7860*SCHOOSE FILES
7870PLOT&ED,300,500
7880*SCHOOSE CLEAR
7890PLOT&ED,700,500
7900*SCHOOSE SIZES
7910PLOT&ED,500,500
7920*SCHOOSE FONTS
7930PLOT&ED,100,500
7940*SCHOOSE END
7950PLOT&ED,900,500
7960*SCHOOSE DITHERTOOL
7970PLOT&ED,50,820
7980*SCHOOSE DASHTOOL
7990PLOT&ED,133,820
8000*SCHOOSE TEXTTOOL
8010PLOT&ED,216,820
8020*SCHOOSE CAMERATOOL
8030PLOT&ED,300,820
8040*SCHOOSE SCISSORTOOL
8050PLOT&ED,383,820
8060*SCHOOSE tile
8070PLOT&ED,466,820
8080*SCHOOSE INVERTTOOL
8090PLOT&ED,549,820
8100*SCHOOSE SELECTTOOL
8110PLOT&ED,632,820
8120*SCHOOSE PARALLELTOOL
8130PLOT&ED,714,820
8140*SCHOOSE PROPELORTOOL
8150PLOT&ED,798,820
8160*SCHOOSE REPLACETOOL
8170PLOT&ED,881,820
8180*SCHOOSE SPRAYTOOL
8190PLOT&ED,964,820
8200*SCHOOSE FILLTOOL
8210PLOT&ED,1047,820
8220*SCHOOSE MULTITOOL
8230PLOT&ED,1126,900
8240*SCHOOSE SMUDGETOOL
8250PLOT&ED,1126,820
8260*SCHOOSE HELP!
8270PLOT&ED,400,710
8280*SCHOOSE !GRID
8290GCOL4,0:ORIGIN0,2:RECTANGLEFILLxxxxxx,yyyyyy,83,76:GCOL0,0:ORIGIN0,0
8300PLOT&ED,600,710:GCOL13:IFGRID=0THENVDU5:MOVE638,770:PRINT"GRID OFF"
8310IFGRID=1THENVDU5:GCOL13:MOVE642,770:PRINT"GRID ON"
8320PROCdocol(1)
8330PROCdocol(2)
8340PROCdocol(3)
8350PROCdocol(23)
8360PROCdocol(7)
8370PROCdocol(11)
8380PROCdocol(10)
8390PROCdocol(15)
8400PROCdocol(95)
8420PROCdocol(47)
8430PROCdocol(4)
8440PROCdocol(8)
8450PROCdocol(29)
8460PROCdocol(45)
8470PROCdocol(32)
8480PROCdocol(48)
8490PROCdocol(53)
8500PROCdocol(58)
8510PROCdocol(56)
8520PROCdocol(60)
8530PROCdocol(61)
8540PROCdocol(62)
8550PROCdocol(50)
8560PROCdocol(51)
8570PROCdocol(55)
8580PROCdocol(63)
8590PROCdocol(42)
8600PROCdocol(21)
8610PROCdocol(0)
8620 pos%=0
8630MOUSEX,Y,Z
8640IFY<255AND Y>0AND Z=4THENCOL=POINT(X,Y):GCOL(COL):TIN=TINT(X,Y):GCOL(COL)TINT(TIN):RECTANGLEFILL208,300,800,100
8650IFX>400AND X<600AND Y>710AND Y<800AND Z>1 AND Z<5 THENPROChelp2
8660IFX>600AND X<800AND Y>710AND Y<800AND Z=4AND GRID=0THENGRID=1:PLOT&ED,600,710:MOVE642,770:GCOL13:PRINT"GRID ON":GCOL(COL)TINT(TIN):REPEAT:MOUSEX,Y,Z:UNTILZ=0:MOUSEX,Y,Z
8670IFX>600AND X<800AND Y>710AND Y<800AND Z=4AND GRID=1THENGRID=0:PLOT&ED,600,710:MOVE638,770:GCOL13:PRINT"GRID OFF":GCOL(COL)TINT(TIN):REPEAT:MOUSEX,Y,Z:UNTILZ=0:MOUSEX,Y,Z
8680IFX>216AND X<300AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(10):PROCrubber
8690IFX>216AND X<300AND Y>900AND Y<985AND Z=2THENhelp$="RUBBER":PROChelp
8700IFX>300AND X<385AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(20):PROCline
8710IFX>300AND X<385AND Y>900AND Y<985AND Z=2THENhelp$="LINE":PROChelp
8720IFX>385AND X<467AND Y>900AND Y<985AND Z=4THENPROCredraw:PROCarc
8730IFX>385AND X<467AND Y>900AND Y<985AND Z=2THENhelp$="arc":PROChelp
8740IFX>467AND X<549AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(20):PROCrec2
8750IFX>467AND X<631AND Y>900AND Y<985AND Z=2THENhelp$="rec":PROChelp
8760IFX>549AND X<631AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(20):PROCrec
8770IFX>549AND X<631AND Y>820AND Y<900AND Z=4THENPROCredraw:PROCinvert
8780IFX>549AND X<631AND Y>820AND Y<900AND Z=2THENhelp$="INVERT":PROChelp
8790IFX>713AND X<795AND Y>900AND Y<985AND Z=4THENPROCredraw:PROCcir
8800IFX>631AND X<795AND Y>900AND Y<985AND Z=2THENhelp$="cir":PROChelp
8810IFX>795AND X<877AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(10):PROCsector2
8820IFX>795AND X<961AND Y>900AND Y<985AND Z=2THENhelp$="sector":PROChelp
8830IFX>877AND X<959AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(10):PROCsector
8840IFX>1047AND X<1130AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(20):PROCfill
8850IFX>1047AND X<1130AND Y>820AND Y<900AND Z=2THENhelp$="fill":PROChelp
8860IFX>1044AND X<1127AND Y>900AND Y<985AND Z=4THENPROCredraw:PROCtri
8870IFX>961AND X<1044AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(20):PROCtri2
8880IFX>961AND X<1126AND Y>900AND Y<985AND Z=2THENhelp$="triangle":PROChelp
8890IFX>133AND X<300AND Y>900AND Y<985AND Z=4THENPROCredraw:PROCbrush
8900IFX>133AND X<300AND Y>900AND Y<985AND Z=2THENhelp$="brush":PROChelp
8910IFX>133AND X<216AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(20):PROCdash
8920IFX>133AND X<216AND Y>820AND Y<900AND Z=2THENhelp$="dash":PROChelp
8930IFX>50AND X<133AND Y>900AND Y<985AND Z=4THENPROCredraw:PROCpen
8940IFX>50AND X<133AND Y>900AND Y<985AND Z=2THENhelp$="pencil":PROChelp
8950IFX>500AND X<700AND Y>500AND Y<700AND Z=4THENREPEAT:MOUSEX,Y,Z:UNTILZ=0:PROCsizes
8960IFX>700AND X<900AND Y>500AND Y<700AND Z=4THENMODE15:PROCcheck_clear
8970IFX>300AND X<500AND Y>500AND Y<700AND Z=4THENREPEAT:MOUSEX,Y,Z:UNTILZ=0:PROCfiles
8980IFX>300AND X<500AND Y>500AND Y<700AND Z=2 THENhelp$="files":PROChelp
8990IFX>100AND X<300AND Y>500AND Y<700AND Z=4THENPROCfonts
9000IFX>900AND X<1100AND Y>500AND Y<700AND Z=4THENPROCexit
9010IFX>300AND X<383AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(20):PROCcamera
9020IFX>300AND X<383AND Y>820AND Y<900AND Z=2THENhelp$="camera":PROChelp
9030IFX>466AND X<549AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(20):PROCtile
9040IFX>466AND X<549AND Y>820AND Y<900AND Z=2THENhelp$="tile":PROChelp
9050IFX>630AND X<713AND Y>900AND Y<985AND Z=4THENPROCredraw:GG=INKEY(20):PROCcir2
9060IFX>383AND X<466AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(20):PROCscissor
9070IFX>383AND X<466AND Y>820AND Y<900AND Z=2THENhelp$="scissor":PROChelp
9075IFX>216AND X<299AND Y>820AND Y<900AND Z=4 THEN *FX21,0
9080IFX>216AND X<299AND Y>820AND Y<900AND Z=4THENGG=INKEY(20):GCOL0TINT0:RECTANGLEFILL0,500,1280,310:GCOL12:RECTANGLE-10,505,1290,120:COLOUR53:PRINTTAB(15,13);"PLEASE TYPE IN YOUR TEXT HERE AND PRESS RETURN:":INPUTTAB(5);"TEXT:"TEXT$:PROCtext
9090IFX>216AND X<299AND Y>820AND Y<900AND Z=2THENhelp$="text":PROChelp
9100IFX>632AND X<713AND Y>820AND Y<900AND Z=4THENPROCredraw:GG=INKEY(10):PROCselect2
9110IFX>632AND X<713AND Y>820AND Y<900AND Z=2THENhelp$="select":PROChelp
9120IFX>798AND X<881AND Y>820AND Y<900AND Z=4THENPROCredraw:REPEAT:MOUSEQ,W,E:UNTILE=0:PROCpropelor
9130IFX>798AND X<881AND Y>820AND Y<900AND Z=2THENhelp$="propellor":PROChelp
9140IFX>881AND X<881+83AND Y>820AND Y<900AND Z=4THENPROCreplacesetup
9150IFX>881AND X<881+83AND Y>820AND Y<900AND Z=2THENhelp$="replace":PROChelp
9160IFX>964AND X<1047AND Y>820AND Y<900AND Z=4THENPROCredraw:REPEAT:MOUSEQ,W,E:UNTILE=0:PROCspray
9170IFX>964AND X<1047AND Y>820AND Y<900AND Z=2THENhelp$="spray":PROChelp
9180IFX>714AND X<797AND Y>820AND Y<900AND Z=4THENPROCredraw:REPEAT:MOUSEQ,W,E:UNTILE=0:PROCparallel
9190IFX>714AND X<797AND Y>820AND Y<900AND Z=2THENhelp$="PARALLEL":PROChelp
9200IFY>0AND Y<255AND Z=1THENREPEAT:MOUSEQ,W,E:UNTILE=0:MOUSETO640,900
9210IFY>820AND Y<1023AND Z=1THENREPEAT:MOUSEQ,W,E:UNTILE=0:MOUSETO640,125
9220IFX>1126AND X<1209AND Y>900AND Y<983AND Z=4THENREPEAT:MOUSEQ,W,E:UNTILE=0:PROCredraw:PROCmulti
9230IFX>1126AND X<1209AND Y>900AND Y<983AND Z=2THENhelp$="multi":PROChelp
9240IFX>1126AND X<1209AND Y>820AND Y<900AND Z=4THENREPEAT:MOUSEQ,W,E:UNTILE=0:PROCredraw:PROCsmudge
9250IFX>1126AND X<1209AND Y>820AND Y<900AND Z=2THENhelp$="smudge":PROChelp
9260IFX>50AND X<133AND Y>820AND Y<900AND Z=4THENREPEAT:MOUSEQ,W,E:UNTILE=0:PROCredraw:PROCmixer
9270IFX>50AND X<133AND Y>820AND Y<900AND Z=2THENhelp$="dither":PROChelp
9280IFZ=1THENPROCredraw:VDU5:GCOL4,0:GOTOremake%
9290GOTO8630
9300ENDPROC
9310DEFPROCpen:PROCremake(9310,50,900)
9320OSCLI"POINTER 0"
9330GCOL4,0
9340A=640:B=512
9350X=640:Y=512
9360MOUSEX,Y,Z
9370IFZ=4THENGCOL(COL)TINT(TIN):LINEX,Y,A,B:GCOL4,0
9380MOUSEA,B,C
9390LINEX-20,Y,X+20,Y:LINEX,Y-20,X,Y+20
9400WAIT
9410LINEX-20,Y,X+20,Y:LINEX,Y-20,X,Y+20
9420IFZ=4THENGCOL(COL)TINT(TIN):LINEX,Y,A,B:GCOL4,0
9430IFZ=2THENPROCselect
9440IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
9450GOTO9360
9460ENDPROC
9470DEFPROCredraw
9480MODE15
9490OFF
9500OSCLI"POINTER 1"
9510SYS"Wimp_SpriteOp",36,,"ptr_cross",%100001,12,5
9520*SCHOOSE SCREENDUMP
9530PLOT&ED,0,0
9540IFGRID=1THENGCOL4,0:PROCdrawgrid:GG=INKEY(30):PROCdrawgrid
9550ENDPROC
9560DEFPROCrec:PROCremake(9560,549,900)
9570REPEAT
9580MOUSEA,B,C
9590IFGRID=1PROCinitgridAB
9600IFC=2THENPROCselect
9610IFINKEY-90THENGCOL0,0:PROCundo:GCOL4,0
9620UNTILC=4
9630REPEAT:MOUSEQ,W,E:UNTILE=0
9640GG=INKEY(20)
9650MOUSEX,Y,Z
9660IFGRID=1PROCinitgridXY
9670IFZ=2THENPROCselect
9680GCOL4,95TINT192
9690RECTANGLEA,B,X-A,Y-B
9700WAIT
9710WAIT
9720GCOL4,0TINT0
9730RECTANGLEA,B,X-A,Y-B
9740IFZ=4THENGCOL(COL)TINT(TIN):RECTANGLEFILLA,B,X-A,Y-B:GG=INKEY(100):PROCrec
9750IFZ=1THENGOTO9570
9760IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
9770GOTO9650
9780ENDPROC
9790DEFPROCdash:PROCremake(9790,133,820)
9800MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
9810GCOL4,0
9820OSCLI"POINTER 0"
9830MOUSEX,Y,Z
9840IFGRID=1PROCinitgridXY
9850LINEX,Y,X+SIZE,Y+SIZE
9860WAIT
9870WAIT
9880LINEX,Y,X+SIZE,Y+SIZE
9890IFZ=4THENGCOL(COL)TINT(TIN):LINEX,Y,X+SIZE,Y+SIZE:GCOL4,0
9900IFZ=2THENPROCselect
9910IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
9920IFINKEY-58 SIZE=SIZE+5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
9930IFINKEY-42 SIZE=SIZE-5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
9940IFSIZE<6THENSIZE=6
9950GOTO9830
9960ENDPROC
9970DEFPROCspray:PROCremake(9970,964,820)
9980OSCLI"POINTER 0"
9990GCOL4,0
10000MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10010MOUSEX,Y,Z
10020IFGRID=1THENPROCinitgridXY
10030IFZ=0THENRECTANGLEX,Y,SIZE
10040WAIT:WAIT
10050IFZ=0THENRECTANGLEX,Y,SIZE
10060IFZ=4THENGCOL(COL)TINT(TIN):FORE=1TO10:POINTRND(SIZE)+X,RND(SIZE)+Y:NEXT:GCOL4,0
10070IFZ=2THENPROCselect
10080IFINKEY-58THENSIZE=SIZE+5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10090IFINKEY-42THENSIZE=SIZE-5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10100IFSIZE>1023THENSIZE=1022
10110IFSIZE<6THENSIZE=6
10120IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10130GOTO10010
10140ENDPROC
10150DEFPROCfill:PROCremake(10150,1047,820)
10160GG=INKEY(20):GCOL(COL)TINT(TIN)
10180MOUSEX,Y,Z
10190IFZ=4THEN PROCdo_a_fill
10200IFZ=2THENPROCselect
10210IFINKEY-90 PROCundo
10220GOTO10180
10230ENDPROC
10240DEFPROCcir:PROCremake(10240,713,900)
10250REPEAT
10260MOUSEA,B,C
10270IFGRID=1PROCinitgridAB
10280IFC=2THENPROCselect
10290IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10300UNTILC=4
10310REPEAT:MOUSEQ,W,E:UNTILE=0
10320MOUSEX,Y,Z
10330IFGRID=1PROCinitgridXY
10340GCOL4,63TINT192
10350CIRCLEA,B,X/2
10360GCOL4,0TINT0
10370WAIT
10380WAIT
10390CIRCLEA,B,X/2
10400IFZ=4THENGCOL(COL)TINT(TIN):CIRCLEFILLA,B,X/2:GG=INKEY(30):PROCcir
10410IFZ=2THENPROCselect
10420IFZ=1THENPROCcir
10430IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10440IFINKEY-58MOUSETOX+5,Y
10450IFINKEY-42MOUSETOX-5,Y
10460GOTO10320
10470ENDPROC
10480DEFPROCline:PROCremake(10480,300,900)
10490REPEAT
10500MOUSEA,B,C
10510IFGRID=1PROCinitgridAB
10520IFC=2THENPROCselect
10530IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10540UNTILC=4
10550REPEAT:MOUSEQ,W,E:UNTILE=0
10560GG=INKEY(20)
10570MOUSEX,Y,Z
10580IFGRID=1PROCinitgridXY
10590GCOL4,63TINT192
10600LINEA,B,X,Y
10610GCOL4,0TINT0
10620WAIT
10630WAIT
10640LINEA,B,X,Y
10650IFZ=4THENGCOL(COL)TINT(TIN):LINEA,B,X,Y:A=X:B=Y:REPEAT:MOUSEQ,W,E:UNTILE=0:GOTO10570
10660IFZ=2THENPROCselect
10670IFZ=1THENGG=INKEY(20):PROCline
10680IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10690GOTO10570
10700ENDPROC
10710DEFPROCrubber:PROCremake(10710,216,900)
10720A=INKEY(20)
10730OSCLI"POINTER 0"
10740GCOL4,0
10750MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10760MOUSEX,Y,Z
10770IFGRID=1PROCinitgridXY
10780RECTANGLEX,Y,SIZE,SIZE
10790WAIT:WAIT
10800RECTANGLEX,Y,SIZE,SIZE
10810IFZ=2THENGCOL(COL)TINT(TIN):PROCselect
10820IFZ=4THENGCOL0TINT0:RECTANGLEFILLX,Y,SIZE:GCOL4,0
10830IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
10840IFINKEY-58 SIZE=SIZE+5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10850IFINKEY-42 SIZE=SIZE-5:MOUSERECTANGLE0,0,1279-SIZE,1023-SIZE
10860GOTO10760
10870ENDPROC
10880DEFPROCtri:PROCremake(10880,1044,900)
10890REPEAT
10900MOUSEA,B,C
10910IFGRID=1PROCinitgridAB
10920IFC=2THENPROCselect
10930IFINKEY-90 GCOL0,0:PROCundo:GCOL4,0
10940UNTILC=4
10950REPEAT:MOUSEQ,W,E:UNTILE=0
10960GG=INKEY(20)
10970MOUSEX,Y,Z
10980IFGRID=1PROCinitgridXY
10990GCOL4,63TINT192
11000LINEA,B,X,Y
11010WAIT:WAIT
11020GCOL4,0TINT0
11030LINEA,B,X,Y
11040IFZ=4THENGG=INKEY(20):GOTO11090
11050IFZ=1THENPROCtri
11060IFZ=2THENPROCselect
11070IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
11080GOTO10970
11090REPEAT:MOUSEQ,W,E:UNTILE=0
11100LINEA,B,X,Y
11110MOUSEAA,BB,CC
11120IFGRID=1PROCinitgridAABB
11130IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
11140GCOL4,63TINT192
11150LINEA,B,AA,BB
11160LINEX,Y,AA,BB
11170WAIT
11180WAIT
11190GCOL4,0TINT0
11200LINEX,Y,AA,BB
11210LINEA,B,AA,BB
11220IFCC=4THENGCOL(COL)TINT(TIN):LINEA,B,X,Y:PLOT85,AA,BB:GG=INKEY(20):PROCtri
11230IFCC=1THENGCOL4,0:LINEA,B,X,Y:A=AA:B=BB:GOTO10960
11240IFCC=2THENPROCselect
11250IFINKEY-90 GCOL0,0:PROCundo:GCOL4,0
11260GOTO11110
11270ENDPROC
11280DEFPROCundo
11290*SCHOOSE SCREENDUMP
11300PLOT&ED,0,0
11310ENDPROC
11320DEFPROCarc:PROCremake(11320,385,900)
11330REPEAT
11340MOUSEA,B,C
11350IFGRID=1PROCinitgridAB
11360IFC=2THENPROCselect
11370IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
11380UNTILC=4
11390REPEAT:MOUSEQ,W,E:UNTILE=0
11400MOUSEX,Y,Z
11410IFGRID=1PROCinitgridXY
11420GCOL4,63
11430LINEA,B,X,Y
11440WAIT
11450WAIT
11460GCOL4,0
11470LINEA,B,X,Y
11480IFZ=4THENGG=INKEY(20):REPEAT:MOUSEQ,W,E:UNTILE=0:GOTO11530
11490IFZ=2THENPROCselect
11500IFZ=1THENGG=INKEY(20):GOTO11330
11510IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
11520GOTO11400
11530MOUSEAA,BB,CC
11540IFGRID=1PROCinitgridAABB
11550IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
11560GCOL4,63
11570MOVEA,B
11580MOVEX,Y
11590PLOT&A5,AA,BB
11600GCOL4,0
11610WAIT
11620WAIT
11630MOVEA,B
11640MOVEX,Y
11650PLOT&A5,AA,BB
11660IFCC=4THENGCOL(COL)TINT(TIN):MOVEA,B:MOVEX,Y:PLOT&A5,AA,BB:GG=INKEY(20):GOTO11330
11670IFCC=2THENPROCselect
11680IFCC=1THENGG=INKEY(20):GOTO11330
11690GOTO11530
11700ENDPROC
11710DEFPROCsaver
11720OSCLI"POINTER 1":*FX21,0
11730REPEAT
11740MOUSEG,H,J
11750IFJ=1ORJ=2THENENDPROC
11760UNTILJ=4
11770MOUSECOLOUR2,50,255,50:MOUSECOLOUR1,0,200,0:MOUSECOLOUR3,150,80,10
11780SYS"Wimp_SpriteOp",36,,"ptr_write",%100001
11790GCOL95TINT255
11800RECTANGLE200,350,800,100
11810VDU5
11820MOVE300,430
11830PRINT"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
11840MOVE300,390
11850INPUTNAME$
11860IFNAME$="0"THENMOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001:GOTO7440
11870VDU4:IF NAME$="" THEN REPORT$="DONT PRESS RETURN!":PROCerror
11880*SCHOOSE SCREENDUMP
11890PROCredraw
11900*DIR <SPACE$DIR>.SPACEPICS
11910SYS"Hourglass_On"
11920IF COMP=1 OSCLI"PICSAVE ERROR" ELSE OSCLI"DIR <SPACE$DIR>.SPRITEPICS":OSCLI"SCREENSAVE "+NAME$
11930IF COMP=1 OSCLI"SETTYPE ERROR 555"
11940IF COMP=1 OSCLI"RENAME ERROR "+NAME$
11950SYS"Hourglass_Smash"
11960SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001
11970MOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:MOUSECOLOUR3,0,0,255
11980VDU4:GOTO7450
11990ENDPROC
12000DEFPROCloader
12010GCOL95TINT255:*FX21,0
12020MOUSECOLOUR2,50,255,50:MOUSECOLOUR1,0,200,0:MOUSECOLOUR3,125,80,10
12030SYS"Wimp_SpriteOp",36,,"ptr_write",%100001
12040RECTANGLE200,350,800,100
12050VDU5
12060MOVE300,430
12070PRINT"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
12080MOVE300,390
12090INPUTNAME$
12100IFNAME$="0"THENMOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:MOUSECOLOUR3,0,0,255:SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001:GOTO7440
12110VDU4
12120*DIR <SPACE$DIR>.SPACEPICS
12130SYS"Hourglass_On"
12140IF COMP=1 OSCLI"PICLOAD "+NAME$ ELSE OSCLI"DIR <SPACE$DIR>.SPRITEPICS":OSCLI"SCREENLOAD "+NAME$
12150SYS"Hourglass_Smash"
12160MOVE0,0:MOVE1280,1024:OSCLI"SGET SCREENDUMP":MOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:MOUSECOLOUR3,0,0,255
12170SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001
12180VDU4:PROCselect
12190ENDPROC
12200DEFPROCfiles
12205*CLOSE
12210VDU12:GCOL63:MOUSE TO 640,400
12220FORL=1TO250:CIRCLEFILLRND(1280),RND(1024),RND(3):NEXT:ORIGIN0,-300
12230IF COMP=1 OSCLI"SCHOOSE OPTON" ELSE OSCLI"SCHOOSE OPTOFF"
12240PLOT&ED,550,1200
12250IF COMP=1 THEN OSCLI"SCHOOSE COMPRESS" ELSE OSCLI"SCHOOSE SPRITE"
12260PLOT&ED,430,1120
12270*SCHOOSE SAVE
12280PLOT&ED,200,800
12290*SCHOOSE LOAD
12300PLOT&ED,400,800
12310*SCHOOSE DELETE
12320PLOT&ED,600,800
12330*SCHOOSE LIST
12340PLOT&ED,800,800
12350GG=INKEY(20)
12360MOUSEX,Y,Z
12370IFX>550AND X<650AND Y>1200AND Y<1300 AND Z=4 AND COMP=0 THEN COMP=1:OSCLI"SCHOOSE OPTON":PLOT&ED,550,1200:OSCLI"SCHOOSE COMPRESS":PLOT&ED,430,1120:REPEAT:MOUSEQ,W,E:UNTIL E=0:MOUSEX,Y,Z
12380IFX>550AND X<650AND Y>1200AND Y<1300 AND Z=4 AND COMP=1 THEN COMP=0:OSCLI"SCHOOSE OPTOFF":PLOT&ED,550,1200:OSCLI"SCHOOSE SPRITE":PLOT&ED,430,1120:REPEAT:MOUSEQ,W,E:UNTIL E=0:MOUSEX,Y,Z
12390IFX>200AND X<400AND Y>800AND Y<1000AND Z=4THENORIGIN0,0:PROCsaver:ORIGIN0,-300
12400IFX>400AND X<600AND Y>800AND Y<1000AND Z=4THENORIGIN0,0:PROCloader:ORIGIN0,-300
12410IFX>600AND X<800AND Y>800AND Y<1000AND Z=4THENORIGIN0,0:PROCdeleter:ORIGIN0,-300
12420IFX>800AND X<1000AND Y>800AND Y<1000AND Z=4THEN PROClist
12430IFZ=2THENGOTO7440
12440GOTO12360
12450ENDPROC
12460DEFPROCsector:PROCremake(12460,878,900)
12470REPEAT
12480MOUSEA,B,C
12490IFGRID=1PROCinitgridAB
12500IFC=2THENPROCselect
12510IFINKEY-90THENGCOL0,0:PROCundo:GCOL4,0
12520UNTILC=4
12530REPEAT:MOUSEQ,W,E:UNTILE=0
12540MOUSEX,Y,Z
12550IFGRID=1PROCinitgridXY
12560GCOL4,63
12570LINEA,B,X,Y
12580GCOL4,0
12590WAIT
12600WAIT
12610LINEA,B,X,Y
12620IFZ=2THENPROCselect
12630IFZ=4THENGOTO12670
12640IFZ=1THENPROCsector
12650IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
12660GOTO12540
12670REPEAT:MOUSEQ,W,E:UNTILE=0
12680MOUSEAA,BB,CC
12690
12700IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
12710GCOL4,63
12720MOVEA,B
12730MOVEX,Y
12740PLOT&A5,AA,BB
12750LINEA,B,X,Y
12760LINEA,B,AA,BB
12770WAIT
12780WAIT
12790GCOL4,0
12800MOVEA,B
12810MOVEX,Y
12820PLOT&A5,AA,BB
12830LINEA,B,X,Y
12840LINEA,B,AA,BB
12850IFCC=1THENPROCsector
12860IFCC=2THENPROCselect
12870IFCC=4THENGCOL(COL)TINT(TIN):MOVEA,B:MOVEX,Y:PLOT&B5,AA,BB:PROCsector
12880GOTO12680
12890ENDPROC
12900DEFPROCtext:PROCremake(12900,216,820)
12910PROCredraw
12920VDU5
12930GCOL4,0
12940OSCLI"POINTER 0"
12950MOUSEX,Y,Z
12960IFGRID=1PROCinitgridXY
12970MOVEX,Y
12980PRINT"";TEXT$;""
12990WAIT
13000WAIT
13010MOVEX,Y
13020PRINT"";TEXT$;""
13030IFZ=4THENOSCLI"POINTER 0":GCOL(COL)TINT(TIN):MOVEX,Y:PRINT"";TEXT$;"":GCOL4,0:REPEAT:MOUSEQ,W,E:UNTILE=0:GOTO12950
13040IFZ=2THENPROCselect
13050IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
13060GOTO12950
13070ENDPROC
13080DEFPROCsizes
13090GCOL63
13100VDU12:OSCLI"POINTER 0":FORDFGF=1TO150:CIRCLEFILLRND(1280),RND(1023),RND(3):NEXT
13110MOUSETOSIZE,0
13120MOUSERECTANGLE0,0,1020,1
13130*SCHOOSE LEFT
13140PLOT&ED,0,0
13150*SFlipY LEFT
13160PLOT&ED,1180,0
13170*SFlipY LEFT
13180GCOL4,0
13190MOUSEX,Y,Z
13200RECTANGLE150,512-X/2,1000,X
13210WAIT
13220WAIT
13230RECTANGLE150,512-X/2,1000,X
13240IFZ=4THENGCOL(COL)TINT(TIN):SIZE=X:GOTO7440
13250IFZ=2THENGOTO7440
13260GOTO13190
13270ENDPROC
13280DEFPROCdeleter
13290MOUSECOLOUR2,50,255,50:MOUSECOLOUR1,0,200,0:MOUSECOLOUR3,150,80,10:*FX21,0
13300SYS"Wimp_SpriteOp",36,,"ptr_write",%100001
13310GCOL95TINT255
13320RECTANGLE200,350,800,100
13330VDU5
13340MOVE300,430
13350PRINT"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
13360MOVE300,390
13370INPUTNAME$
13380IFNAME$="0"THENMOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001:GOTO7440
13390IF COMP=1 OSCLI"DIR <SPACE$DIR>.SPACEPICS" ELSE OSCLI"DIR <SPACE$DIR>.SPRITEPICS"
13400VDU4
13410OSCLI"DELETE "+NAME$
13420MOUSECOLOUR1,255,255,0:MOUSECOLOUR2,0,0,255:MOUSECOLOUR3,0,0,255:SYS"Wimp_SpriteOp",36,,"ptr_rocket",%100001
13430VDU12:GOTO7450
13440ENDPROC
13450DEFPROCfonts
13460MODE13:*FX21,0
13470GCOL95TINT255:MOUSE ON
13480COLOUR15
13490*. <SPACE$DIR>.FONTIES
13500PRINT
13510COLOUR3
13515PRINT" ":SYS"Wimp_SpriteOp",36,,"ptr_write",%100001:MOUSECOLOUR2,50,255,50:MOUSECOLOUR1,0,200,0:MOUSECOLOUR3,150,80,10
13520PRINT"Please type in the font you want.":COLOUR61:PRINT"TYPE '0' TO RETURN TO MENU SCREEN"
13530COLOUR53TINT128
13540GCOL63:FORL=1TO150:POINTRND(1280),RND(1023):NEXT
13550IFZ=2THENGOT7490
13560PRINT:COLOUR53
13570INPUTFILENAME$
13580IFFILENAME$="0"THENGOTO7440
13590MOUSE ON:*DIR <SPACE$DIR>.FONTIES
13600OSCLI"RUN "+FILENAME$:GOTO7440
13610ENDPROC
13620DEFPROCcamera:PROCremake(13620,300,820)
13630REPEAT
13640MOUSEA,B,C
13650IFGRID=1PROCinitgridAB
13660IFC=2THENPROCselect
13670IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
13680UNTILC=4
13690REPEAT:MOUSEQ,W,E:UNTILE=0
13700MOUSERECTANGLEA,B,1278-A,1023-B
13710MOUSEX,Y,Z
13720IFGRID=1PROCinitgridXY
13730GCOL4,0
13740RECTANGLEA,B,X-A,Y-B
13750WAIT:WAIT
13760RECTANGLEA,B,X-A,Y-B
13770IFZ=4THENMOUSERECTANGLE0,0,1279,1023:REPEAT:MOUSEQ,W,E:UNTILE=0:GOTO13820
13780IFZ=2THENPROCselect
13790IFZ=1THENMOUSERECTANGLE0,0,1279,1023:PROCcamera
13800IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
13810GOTO13710
13820MOUSERECTANGLE0,0,1278-(X-A),1022-(Y-B)
13830MOUSEXX,YY,ZZ
13840IFGRID=1PROCinitgridXXYY
13850GCOL4,0
13860RECTANGLEXX,YY,X-A,Y-B
13870WAIT
13880WAIT
13890RECTANGLEXX,YY,X-A,Y-B
13900IFZZ=4THENMOUSERECTANGLE0,0,1279,1023:RECTANGLE(A),(B),(X-A),(Y-B)TO(XX),(YY)
13910IFZZ=2THENPROCselect
13920IFZZ=1THENMOUSERECTANGLE0,0,1279,1023:PROCcamera
13930IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
13940GOTO13820
13950ENDPROC
13960DEFPROCscissor:PROCremake(13960,383,820)
13970REPEAT
13980MOUSEA,B,C
13990IFGRID=1PROCinitgridAB
14000IFC=2THENPROCselect
14010IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
14020UNTILC=4
14030REPEAT:MOUSEQ,W,E:UNTILE=0
14040MOUSERECTANGLEA,B,1279-A,1023-B
14050MOUSEX,Y,Z
14060IFGRID=1PROCinitgridXY
14070GCOL4,0
14080RECTANGLEA,B,X-A,Y-B
14090WAIT
14100WAIT
14110RECTANGLEA,B,X-A,Y-B
14120IFZ=4THENGOTO14170
14130IFZ=2THENPROCselect
14140IFZ=1THENMOUSERECTANGLE0,0,1279,1023:PROCscissor
14150IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
14160GOTO14050
14170REPEAT:MOUSEQ,W,E:UNTILE=0:MOUSERECTANGLE0,0,1279-(X-A),1023-(Y-B)
14180MOUSEXX,YY,ZZ
14190IFGRID=1PROCinitgridXXYY
14200GCOL4,0
14210RECTANGLEXX,YY,X-A,Y-B
14220WAIT
14230WAIT
14240RECTANGLEXX,YY,X-A,Y-B
14250IFZZ=4THENMOVEA,B:MOVEX,Y:PLOT189,XX,YY:GG=INKEY(20):MOUSERECTANGLE0,0,1279,1023:REPEAT:MOUSEQ,W,E:UNTILE=0:MOUSERECTANGLE0,0,1279,1023:PROCscissor
14260IFZZ=2THENPROCselect
14270IFZZ=1THENMOUSERECTANGLE0,0,1279,1023:PROCscissor
14280IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
14290GOTO14180
14300ENDPROC
14310DEFPROCbrush:PROCremake(14310,133,900)
14320OSCLI"POINTER 0"
14330GCOL4,0
14340GG=INKEY(20)
14350MOUSEX,Y,Z
14360IFGRID=1PROCinitgridXY
14370IFZ=0THENCIRCLEX,Y,SIZE/2
14380WAIT
14390WAIT
14400IFZ=0THENCIRCLEX,Y,SIZE/2
14410IFZ=2THENPROCselect
14420IFZ=4THENGCOL(COL)TINT(TIN):CIRCLEFILLX,Y,SIZE/2:GCOL4,0
14430IFINKEY-58THENSIZE=SIZE+5
14440IFINKEY-42THENSIZE=SIZE-5
14450IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
14460IFSIZE<6THENSIZE=6
14470GOTO14350
14480ENDPROC
14490DEFPROCtile:PROCremake(14490,466,820)
14500OSCLI"POINTER 0"
14510GCOL4,0
14520GG=INKEY(50)
14530MOUSEX,Y,Z
14540RECTANGLEX,Y,160,128
14550WAIT
14560RECTANGLEX,Y,160,128
14570IF Z=2 THEN PROCselect
14580IF Z=4 THEN GOTO 14600
14590GOTO14530
14600MOVEX,Y:MOVEX+160,Y+128
14610*SGET PAPER
14620GCOL0,0
14630FORQ=1TO1280STEP160
14640FORZ=1TO1024STEP128
14650PLOT&ED,Q,Z
14660NEXT
14670NEXT
14680REPEAT
14690MOUSEX,Y,Z
14700IF INKEY-90 THEN PROCundo:GOTO remake%
14710IF Z=2 THEN PROCselect
14720UNTIL Z=56
14730ENDPROC
14740DEFPROCrec2:PROCremake(14740,467,900)
14750REPEAT:MOUSEA,B,C
14760IFGRID=1PROCinitgridAB
14770IFC=2THENPROCselect
14780IFINKEY-90THENGCOL0,0:PROCundo:GCOL4,0
14790UNTILC=4
14800REPEAT:MOUSEQ,W,E:UNTILE=0
14810MOUSEX,Y,Z
14820IFGRID=1PROCinitgridXY
14830IFZ=2THENPROCselect
14840GCOL4,0
14850RECTANGLEA,B,X-A,Y-B
14860WAIT
14870WAIT
14880RECTANGLEA,B,X-A,Y-B
14890IFZ=4THENGCOL(COL)TINT(TIN):RECTANGLEA,B,X-A,Y-B:GG=INKEY(20):PROCrec2
14900IFZ=1THENPROCrec2
14910IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
14920GOTO14810
14930ENDPROC
14940DEFPROCcir2:PROCremake(14940,631,900)
14950REPEAT
14960MOUSEA,B,C
14970IFGRID=1PROCinitgridAB
14980IFC=2THENPROCselect
14990IFINKEY-90THENGCOL0,0:PROCundo:GCOL4,0
15000GCOL4,0
15010UNTILC=4
15020REPEAT:MOUSEQ,W,E:UNTILE=0
15030MOUSEX,Y,Z
15040IFGRID=1PROCinitgridXY
15050IFZ=2THENPROCselect
15060CIRCLEA,B,X
15070WAIT
15080WAIT
15090CIRCLEA,B,X
15100IFZ=4THENGCOL(COL)TINT(TIN):CIRCLEA,B,X:GG=INKEY(20):GCOL4,0:PROCcir2
15110IFZ=1THENPROCcir2
15120IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15130IFINKEY-58MOUSETOX+5,Y
15140IFINKEY-42MOUSETOX-5,Y
15150GOTO15030
15160ENDPROC
15170DEFPROCtri2:PROCremake(15170,961,900)
15180REPEAT
15190MOUSEA,B,C
15200IFGRID=1PROCinitgridAB
15210IFC=2THENPROCselect
15220IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15230UNTILC=4
15240REPEAT:MOUSEQ,W,E:UNTILE=0
15250MOUSEX,Y,Z
15260IFGRID=1PROCinitgridXY
15270IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15280IFZ=2THENPROCselect
15290GCOL4,0
15300LINEA,B,X,Y
15310WAIT
15320WAIT
15330LINEA,B,X,Y
15340IFZ=4THENREPEAT:MOUSEQ,W,E:UNTILE=0:GOTO15370
15350IFZ=1THENPROCtri2
15360GOTO15250
15370LINEA,B,X,Y
15380MOUSEXX,YY,ZZ
15390IFGRID=1PROCinitgridXXYY
15400GCOL4,0
15410LINEA,B,XX,YY
15420LINEX,Y,XX,YY
15430WAIT
15440WAIT
15450LINEA,B,XX,YY
15460LINEX,Y,XX,YY
15470IFZZ=1THENLINEA,B,X,Y:PROCtri2
15480IFZZ=2THENPROCselect
15490IFZZ=4THENGCOL(COL)TINT(TIN):LINEA,B,X,Y:LINEX,Y,XX,YY:LINEA,B,XX,YY:GG=INKEY(20):PROCtri2
15500IFINKEY-90GCOL0,0:PROCundo:GCOL4,0:LINEA,B,X,Y
15510GOTO15380
15520ENDPROC
15530DEFPROCsector2:PROCremake(15530,795,900)
15540REPEAT
15550MOUSEA,B,C
15560IFGRID=1PROCinitgridAB
15570IFC=2THENPROCselect
15580IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15590UNTILC=4
15600REPEAT:MOUSEQ,W,E:UNTILE=0
15610MOUSEX,Y,Z
15620IFGRID=1PROCinitgridXY
15630GCOL4,0
15640LINEA,B,X,Y
15650WAIT
15660WAIT
15670LINEA,B,X,Y
15680IFZ=2THENPROCselect
15690IFZ=1THENPROCsector2
15700IFZ=4THENREPEAT:MOUSEQ,W,E:UNTILE=0:GOTO15730
15710IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15720GOTO15610
15730MOUSEXX,YY,ZZ
15740IFGRID=1PROCinitgridXXYY
15750IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15760GCOL4,0
15770MOVEA,B
15780MOVEX,Y
15790PLOT&A5,XX,YY
15800LINEA,B,X,Y
15810LINEA,B,XX,YY
15820WAIT
15830WAIT
15840MOVEA,B
15850MOVEX,Y
15860PLOT&A5,XX,YY
15870LINEA,B,X,Y
15880LINEA,B,XX,YY
15890IFZZ=4THENGCOL(COL)TINT(TIN):MOVEA,B:MOVEX,Y:PLOT&A5,XX,YY:LINEA,B,X,Y:LINEA,B,XX,YY:GG=INKEY(30):PROCsector2
15900IFZZ=2THENPROCselect
15910IFZZ=1THENPROCsector2
15920GOTO15730
15930ENDPROC
15940DEFPROCinvert:PROCremake(15940,549,820)
15950REPEAT
15960MOUSEA,B,C
15970IFGRID=1PROCinitgridAB
15980IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
15990IFC=2THENPROCselect
16000UNTILC=4
16010REPEAT:MOUSEQ,W,E:UNTILE=0
16020MOUSEX,Y,Z
16030IFGRID=1PROCinitgridXY
16040GCOL4,0
16050RECTANGLEA,B,X-A,Y-B
16060WAIT
16070WAIT
16080RECTANGLEA,B,X-A,Y-B
16090IFZ=4THENGCOL4,0:RECTANGLEFILLA,B,X-A,Y-B:GG=INKEY(30):PROCinvert
16100IFZ=2THENPROCselect
16110IFZ=1THENPROCinvert
16120IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
16130GOTO16020
16140ENDPROC
16150DEFPROCerror
16160IF REPORT$="Use *Picture <filename>" THEN REPORT$="DO NOT PRESS 0"
16170MODE15
16180VDU5
16190FORDFGF=1TO150:CIRCLEFILLRND(1280),RND(1023),RND(3):NEXT
16200GCOL3TINT128
16210RECTANGLEFILL0,200,2000,100:GCOL53TINT128
16220MOVE520,700
16230GCOL95
16240PRINT"SORRY FOLKS!"
16250MOVE450,600
16260PRINT"AN ERROR HAS OCCURRED"
16270MOVE100,270
16280PRINT"ERROR: "REPORT$""
16290VDU4
16300*SCHOOSE OK!
16310PLOT&ED,520,350
16320OSCLI"POINTER 1"
16330MOUSEXXX,YYY,ZZZ
16340IFXXX>520AND XXX<720AND YYY>350AND YYY<550AND ZZZ=4THENGOTO7440
16350GOTO16330
16360ENDPROC
16370DEFPROCchange
16380MOUSEX,Y,Z
16390GCOL(COL)TINT(TIN)
16400SYS"Hourglass_On"
16410FORQ%=1TO SIZE STEP2
16420FORC%=1TO SIZE STEP2
16430L=POINT(Q%+X,C%+Y)
16440K=TINT(Q%+X,C%+Y)
16450IF L=COLCHANGE AND K=TINCHANGE THEN POINTQ%+X,C%+Y
16460IFINKEY-11THENSYS"Hourglass_Smash":PROCselect
16470IFINKEY-12THENSYS"Hourglass_Smash":PROCreplace
16480NEXT
16490NEXT
16500SYS"Hourglass_Smash"
16510PROCreplace
16520ENDPROC
16530DEFPROCpropelor:PROCremake(16530,798,820)
16540REPEAT
16550MOUSEA,B,C
16560IFGRID=1PROCinitgridAB
16570IFC=2THENPROCselect
16580IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
16590UNTILC=4
16600REPEAT:MOUSEQ,W,E:UNTILE=0
16610GCOL4,0
16620MOUSEX,Y,Z
16630IFGRID=1PROCinitgridXY
16640LINEA,B,X,Y
16650WAIT
16660WAIT
16670LINEA,B,X,Y
16680IFZ=2THENPROCselect
16690IFZ=4THENGCOL(COL)TINT(TIN):LINEA,B,X,Y:GCOL4,0
16700IFZ=1THENPROCpropelor
16710IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
16720GOTO16620
16730ENDPROC
16740DEFPROCreplace
16750OSCLI"POINTER 0"
16760GCOL4,0
16770MOUSEX,Y,Z
16780IFGRID=1PROCinitgridXY
16790IFZ=0THENRECTANGLEX,Y,SIZE
16800WAIT:WAIT
16810IFZ=0THENRECTANGLEX,Y,SIZE
16820IFZ=4THENPROCchange
16830IFZ=1THENPROCreplacesetup
16840IFZ=2THENPROCselect
16850IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
16860IFINKEY-58 SIZE=SIZE+5
16870IFINKEY-42 SIZE=SIZE-5
16880GOTO16770
16890ENDPROC
16900DEFPROCreplacesetup:PROCremake(16900,881,820)
16910REPEAT:MOUSEQ,W,E:UNTILE=0
16920VDU12
16930PROCredraw
16940GCOL4,0
16950OSCLI"POINTER 0"
16960VDU5
16970MOVE400,900
16980MOUSEX,Y,Z
16990IFGRID=1PROCinitgridXY
17000IFZ=2THENPROCselect
17010LINEX-20,Y,X+20,Y
17020LINEX,Y-18,X,Y+18
17030MOVEX-100,Y-100
17040PRINT"SELECT COLOUR"
17050WAIT
17060WAIT
17070LINEX-20,Y,X+20,Y
17080LINEX,Y-18,X,Y+18
17090MOVEX-100,Y-100
17100PRINT"SELECT COLOUR"
17110IFZ=4THENTINCHANGE=TINT(X,Y):COLCHANGE=POINT(X,Y):GOTO17130
17120GOTO16980
17130PROCredraw
17140REPEAT:MOUSEQ,W,E:UNTILE=0
17150GCOL0,0
17160PROCreplace
17170ENDPROC
17180DEFPROCparallel:PROCremake(17180,714,820)
1790REPEAT
17200MOUSEA,B,C
17210IFGRID=1PROCinitgridAB
17220IFC=2THENPROCselect
17230IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
17240UNTILC=4
17250REPEAT:MOUSEQ,W,E:UNTILE=0
17260GCOL4,0
17270MOUSEX,Y,Z
17280IFGRID=1PROCinitgridXY
17290LINEA,B,X,Y
17300WAIT:WAIT
17310LINEA,B,X,Y
17320IF Z=2 THEN PROCselect
17330IF Z=4 THEN GOTO17360
17340IF Z=1 THEN PROCparallel
17345IF INKEY-90 GCOL0,0:PROCundo:GCOL4,0
17350GOTO17270
17360REPEAT:MOUSEQ,W,E:UNTILE=0
17370DIFX=A-X:DIFY=B-Y
17380MOUSEXX,YY,ZZ
17390IFGRID=1PROCinitgridXXYY
17400LINEA,B,X,Y
17410LINEX,Y,XX,YY
17420LINEXX,YY,XX+DIFX,YY+DIFY
17430LINEXX+DIFX,YY+DIFY,A,B
17440WAIT:WAIT
17450LINEA,B,X,Y
17460LINEX,Y,XX,YY
17470LINEXX,YY,XX+DIFX,YY+DIFY
17480LINEXX+DIFX,YY+DIFY,A,B
17490IF ZZ=2 THEN PROCselect
17500IF INKEY-90 GCOL0,0:PROCundo:GCOL4,0
17510IF ZZ=4 THEN GCOL(COL)TINT(TIN):MOVEA,B:MOVEX,Y:PLOT&75,XX,YY:PROCparallel
17520IF ZZ=1 THEN PROCparallel
17530GOTO17370
17740ENDPROC
17750DEFPROCsmudge:PROCremake(17750,1126,820)
17760OSCLI"POINTER 0"
17770GCOL4,0
17780MOUSERECTANGLE0,0,1278-SIZE,1023-SIZE
17790MOUSEX,Y,Z
17800IFGRID=1PROCinitgridXY
17810WAIT
17820MOUSEA,B,C
17830RECTANGLEX,Y,SIZE
17840WAIT
17850RECTANGLEX,Y,SIZE
17860IFINKEY-58THENSIZE=SIZE+5:MOUSERECTANGLE0,0,1278-SIZE,1023-SIZE
17870IFINKEY-42THENSIZE=SIZE-5:MOUSERECTANGLE0,0,1278-SIZE,1023-SIZE
17880IFZ=4THENRECTANGLEX,Y,(SIZE)TOA,B
17890IFSIZE<0THENSIZE=6
17900IFZ=2THENPROCselect
17910IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
17920GOTO17790
17930ENDPROC
17940DEFPROCselect2:PROCremake(17940,632,820)
17950OSCLI"POINTER 0":VDU5
17960GCOL4,0
17970MOUSEX,Y,Z
17980IFGRID=1PROCinitgridXY
17990LINEX-20,Y,X+20,Y
18000LINEX,Y+20,X,Y-20:MOVEX-105,Y-100:PRINT"SELECT COLOUR"
18010WAIT:WAIT
18020LINEX-20,Y,X+20,Y
18030LINEX,Y+20,X,Y-20:MOVEX-105,Y-100:PRINT"SELECT COLOUR"
18040IFZ=2THENPROCselect
18050IFZ=4THENCOL=POINT(X,Y):TIN=TINT(X,Y):PROCselect
18060GOTO17970
18070ENDPROC
18080DEFPROCmixer:PROCremake(18080,50,820)
18090GCOL4,0:MOUSE OFF:VDU5
18100MOUSEX,Y,Z
18110LINEX-50,Y,X+50,Y:LINEX,Y+50,X,Y-50:MOVEX-105,Y-100:PRINT"SELECT COLOUR"
18120WAIT:WAIT
18130LINEX-50,Y,X+50,Y:LINEX,Y+50,X,Y-50:MOVEX-105,Y-100:PRINT"SELECT COLOUR"
18140IF Z=2 THEN PROCselect
18150IF Z=4 THEN COLCHA=POINT(X,Y):TINCHA=TINT(X,Y):REPEAT:MOUSEQ,W,E:UNTIL E=0:GOTO18170
18160GOTO18090
18170MOUSEX,Y,Z
18180RECTANGLEX,Y,SIZE,SIZE
18190WAIT
18200WAIT
18210RECTANGLEX,Y,SIZE,SIZE
18220IF Z=4 THEN PROCdither
18230IF Z=2 THEN PROCselect
18240IF INKEY-90 GCOL0,0:PROCundo:GCOL4,0
18250IFINKEY-58 SIZE=SIZE+5
18260IFINKEY-42 SIZE=SIZE-5
18270GOTO18170
18280ENDPROC
18290DEFPROCdither
18300GCOL(COL)TINT(TIN)
18310FORA=1TO SIZE STEP4
18320FORB=1TO SIZE STEP4
18330COLCH=POINT(X+A,Y+B):TINCH=TINT(X+A,Y+B):IF COLCH=COLCHA AND TINCH=TINCHA THEN POINTA+X,B+Y
18340IF INKEY-11 PROCselect
18350IF INKEY-12 PROCredraw:PROCmixer
18360NEXT
18370NEXT
18380GCOL4,0
18390ENDPROC
18400DEFPROCmulti:PROCremake(18400,1126,900)
18410GCOL4,0
18420OSCLI"POINTER 0"
18430MOUSEX,Y,Z
18440IFGRID=1 PROCinitgridXY
18450CIRCLEX,Y,SIZE/2
18460WAIT
18470WAIT
18480CIRCLEX,Y,SIZE/2
18490IFZ=4THENGCOLRND(64):CIRCLEFILLX,Y,SIZE/2:GCOL4,0
18500IFZ=2THENPROCselect
18510IFINKEY-90GCOL0,0:PROCundo:GCOL4,0
18520IFINKEY-58 SIZE=SIZE+5
18530IFINKEY-42 SIZE=SIZE-5
18540IFSIZE>1023THENSIZE=1022
18550IFSIZE<6THENSIZE=6
18560GOTO18430
18570ENDPROC
18580DEFPROCexit
18590*alphabet latin1
18600SYS"Hourglass_Smash"
18610SYS"Wimp_SetMode",15
18670GOTO20
18630ENDPROC
18640DEFPROChelp
18650MODE15:MOUSE ON
18660*DIR <SPACE$DIR>.HELP
18670OSCLI"TYPE "+help$
18680COLOUR15
18690PRINT"CLICK A MOUSE BUTTON"
18700REPEAT
18710MOUSEX,Y,Z:UNTILZ<8AND Z>0
18720GOTO7440
18730ENDPROC
18740DEFPROChelp2
18750MODE15:MOUSE ON
18760*DIR <SPACE$DIR>.HELP
18770*TYPE MAIN
18780COLOUR15
18790PRINT"CLICK A MOUSE BUTTON"
18800REPEAT
18810MOUSEX,Y,Z:UNTILZ<8AND Z>0
18820GOTO7440
18830ENDPROC
18840DEFPROCinitgridXY
18850FORQQQQ=1TO1280STEP50
18860IF X>QQQQ AND X<QQQQ+50 THEN X=QQQQ+25
18870IF Y>QQQQ AND Y<QQQQ+50 THEN Y=QQQQ+25
18880NEXT
18890ENDPROC
18900DEFPROCinitgridAB
18910FORQQQQ=1TO1280STEP50
18920IF A>QQQQ AND A<QQQQ+50 THEN A=QQQQ+25
18930IF B>QQQQ AND B<QQQQ+50 THEN B=QQQQ+25
18940NEXT
18950ENDPROC
18960DEFPROCinitgridAABB
18970FORQQQQ=1TO1280STEP50
18980IF AA>QQQQ AND AA<QQQQ+50 THEN AA=QQQQ+25
18990IF BB>QQQQ AND BB<QQQQ+50 THEN BB=QQQQ+25
19000NEXT
19010ENDPROC
19020DEFPROCinitgridXXYY
19030FORQQQQ=1TO1280STEP50
19040IF XX>QQQQ AND XX<QQQQ+50 THEN XX=QQQQ+25
19050IF YY>QQQQ AND YY<QQQQ+50 THEN YY=QQQQ+25
19060NEXT
19070ENDPROC
19080DEFPROCdrawgrid
19090FORFF=1TO1280STEP50
19100LINEFF,0,FF,1280
19110NEXT
19120FORFF=1TO1280STEP50
19130LINE0,FF,1280,FF
19140NEXT
19150ENDPROC
19160DEFPROCremake(hhhh,xxxxx,yyyyy)
19170remake%=hhhh:xxxxxx=xxxxx:yyyyyy=yyyyy
19180ENDPROC
19320DEFPROChelp3
19330*DIR <SPACE$DIR>.HELP
19340MODE15
19350*TYPE MAIN
19360COLOUR53
19370PRINT"CLICK A MOUSE BUTTON"
19380REPEAT:MOUSEX,Y,Z:UNTILZ>0 AND Z<8
19390SYS"Wimp_SetMode",15:PROCWimp_WaitForEvent
19400ENDPROC
19410DEFPROCopendir
19420*FILER_OPENDIR <SPACE$DIR>.spritePICS
19430ENDPROC
19440DEFPROCdocol(gcol%)
19450FORBBF=1TO255STEP64
19460GCOLgcol%TINT(BBF)
19470RECTANGLE FILLpos%,BBF,44,64
19480NEXT
19490pos%=pos%+44
19500ENDPROC
19510DEFPROClist
19520MODE15
19530IF COMP=0 THEN OSCLI"DIR <SPACE$DIR>.SPRITEPICS"
19540IF COMP=1 THEN OSCLI"DIR <SPACE$DIR>.SPACEPICS"
19550*EX
19560COLOUR15
19570PRINT"PRESS THE SPACEBAR"
19580REPEAT
19600UNTIL INKEY-99
19610MOUSE ON:PROCfiles
19620ENDPROC
19630DEFPROCcheck_clear
19640MODE15
19650FORQ=1TO300
19660CIRCLE FILLRND(1280),RND(1024),RND(2)
19670NEXT
19680*SCHOOSE OPTON
19690ORIGIN300,200:PLOT&ED,0,0:PLOT&ED,0,80:PLOT&ED,90,0:PLOT&ED,90,80
19700*SCHOOSE OPTOFF
19710ORIGIN750,200:PLOT&ED,0,0:PLOT&ED,0,80:PLOT&ED,90,0:PLOT&ED,90,80
19720ORIGIN0,0:VDU5:MOVE363,170:GCOL13:PRINT"YES":MOVE823,170:GCOL3:PRINT"NO"
19730ORIGIN-30,0:GCOL31:RECTANGLE FILL500,550,300,100:GCOL48:MOVE550,605:PRINT"ARE YOU SURE?"
19740MOUSE ON
19750MOUSEX,Y,Z
19760IF X>300 AND X<480 AND Y>200 AND Y<360 AND Z>0 THEN MODE15:PROCselect
19765IF X>750 AND X<930 AND Y>200 AND Y<360 AND Z>0 THEN GOTO7450
19770GOTO19750
19800GG=INKEY(1000):GOTO7450
19810ENDPROC
19820DEFPROCdo_a_fill
19825bc=POINT(X,Y):t=TINT(X,Y)
19826IF bc=COL AND t=TIN THEN ENDPROC
19830REPEAT:MOUSEX,Y,E:UNTIL E=0
19850GCOL(128+bc)TINTt
19860FILLX,Y
19865PROCfill
19870ENDPROC
5� Author S.Berry Aged 9 (C) Archimedes World 1993
%�Wimp_Start("SpacePaint",545,425)
�User_SetInitialData
(�Create_Windows
2�Create_Menus
<�Wimp_WaitForEvent
F�Wimp_CloseDown
P�
Z
d��User_SetInitialData
nZclear=�:COMP=1:COL=62:TIN=128:xxxxxx=50:yyyyyy=900:GRID=0:pos%=0:remake%=9310:SIZE=100
x�
�
���Create_Windows
�)Info_Window%=�Wimp_WindowLoad("Info")
�/Info2_Window%=�Wimp_WindowLoad("PHONE_NUM")
�&Bar_Icon%=�Wimp_IconBar("iconbar")
��
�
�ݤEvent_Save(window%)
�Ȏwindow%�
�
�:=�
��
�
��Create_Menus
MBar_Menu%=�Wimp_MenuCreate("SpacePaint\Info>Info_Window%\Main Help\Quit")
�
"
,ݤEvent_Menu(window%)
6Ȏwindow%�
@�Bar_Window%:=Bar_Menu%
J:=�
T�
^
h)��Event_WindowClose(window%,buttons%)
rȎwindow%�
|�
��
�
�-��Event_Draw(window%,x_origin%,y_origin%)
�Ȏwindow%�
�&�Info_Window%:�User_DrawInfoWindow
��
��
�
�
�3��Event_MouseClick(window%,icon%,button%,x%,y%)
�Ȏwindow%�
��Bar_Window%:�User_MouseBar
�0�Info_Window%:�User_MouseInfo(button%,icon%)
�
�
&��User_MouseBar
0 �main
:�
D
N#��User_MouseInfo(button%,icon%)
XE�Wimp_WindowAlert("Info","Mouse button="+�button%+"icon="+�icon%)
b�
l
v(��Event_KeyPress(window%,icon%,key%)
�Ȏwindow%�
��
��
�
���Event_MenuChoice(menu%)
�Ȏmenu%�
�"�Bar_Menu%:�User_MenuChoiceBar
��
��
�
���User_MenuChoiceBar
�Ȏ�Wimp_MenuChoice(0)�
��1
�2:�help3
�3:finished%=�
�
*�
4
>!��Event_LoadFile(file$,type$)
H�
R
\#��Event_SaveFile(file$,window%)
fȎwindow%�
p@�Save_Window%:�Wimp_WindowAlert("Save","Saving file "+file$)
z�
��
�
�
�'��Wimp_WindowAlert(title$,message$)
�+�Wimp_WindowAlertBox(title$,message$,0)
��
�
�2��Wimp_WindowAlertBox(title$,message$,button%)
��response%
�$(wimp%+4)=message$
�Ȏbutton%�
��2:response%=1
��1:response%=15
�3:response%=(1<<5)+16
�4:response%=(1<<6)+16
:response%=16
$�
.:ș"Wimp_ReportError",wimp%,response%,title$�,response%
8�
B
L(ݤWimp_WindowCancel(title$,message$)
V$(wimp%+4)=message$
`response%=23
j:ș"Wimp_ReportError",wimp%,response%,title$�,response%
t=response%-2
~
�*��Wimp_WindowErrorBox(title$,message$)
�+�Wimp_WindowAlertBox(title$,message$,2)
��
�
�ݤWimp_WindowTitle(window%)
�wimp%!0=window%
�ș"Wimp_GetWindInfo",,wimp%
�3�((wimp%!60)�&100)=0�1,"Title isn't indirected"
�=$(wimp%!76)
�
�ݤWimp_WindowLoad(window$)
�:=�Wimp_WindowLoadFrom(window$,"<SPACE$DIR>.Templates")
,ݤWimp_WindowLoadFrom(window$,template$)
�c%,i%,n%,j%,sp$,sp2$
$ș"Wimp_OpenTemplate",,template$
(Jș"Wimp_LoadTemplate",,wimp%,icons%,icon_memory%,-1,window$,0�,,icons%
2Ȏsprites%�
<�1:wimp%!64=sprites%
F&:wimp%!64=�Event_Sprites(window%)
P�
Z#ș"Wimp_CreateWindow",,wimp%�c%
dș"Wimp_CloseTemplate"
n6ș"Wimp_WhichIcon",c%,wimp%+40,1+2+(1<<8),2+(1<<8)
xȎwimp%!40�
��-1
�:i%=40
��
�wimp%!4=wimp%!i%:wimp%!0=c%
� ș"Wimp_GetIconState",,wimp%
�*sp$=�Wimp_GetStringAtAddress(wimp%!28)
�ș"Wimp_DeleteIcon",,wimp%
�Ȏsprites%�
��1:wimp%!32=1
�
�'ș"OS_SpriteOp",&108,sprites%�,,,n%
�j%=0
��:j%+=1
6ș"OS_SpriteOp",&10D,sprites%,pointer_block%,20,j%
1sp2$=�Wimp_GetStringAtAddress(pointer_block%)
�j%=n%�sp$=sp2$
"*�sp$=sp2$�wimp%!32=sprites%�wimp%!32=1
,�
6wimp%!4=c%
@(ș"Wimp_CreateIcon",,wimp%+4�handle%
J i%+=4
T�(wimp%!i%)=-1
^�
h=c%
r
|$��Wimp_WindowBringToTop(window%)
�!wimp%=window%
�"ș"Wimp_GetWindowState",,wimp%
�wimp%!28=-1
�ș"Wimp_OpenWindow",,wimp%
��
�
���Wimp_WindowClose(window%)
�!wimp%=window%
�ș"Wimp_CloseWindow",,wimp%
��
�
�#��Wimp_WindowForceDraw(window%)
�Ȏwindow%�
1�-1:ș"Wimp_ForceRedraw",-1,0,0,2*1280,2*1024
5:ș"Wimp_ForceRedraw",window%,0,-2*1024,2*1280,0
�
&�
0
:��Wimp_WindowOpen(window%)
D!wimp%=window%
N"ș"Wimp_GetWindowState",,wimp%
Xș"Wimp_OpenWindow",,wimp%
b�
l
v�Wimp_WindowInterface
� ș"Wimp_BorderWindow",,wimp%
��
�
�
�ݤWimp_IconBar(Sprite$)
�
�icon%
�wimp%!0=-1
�wimp%!4=0:wimp%!8=0
�wimp%!12=100:wimp%!16=100
�wimp%!20=&3002
�$(wimp%+24)=Sprite$
�$ș"Wimp_CreateIcon",,wimp%�icon%
�
=icon%
*��Wimp_IconCaret(window%,icon%,chars%)
7ș"Wimp_SetCaretPosition",window%,icon%,,,-1,chars%
�
*
4"ݤWimp_IconText(window%,icon%)
>!wimp%!0=window%:wimp%!4=icon%
H ș"Wimp_GetIconState",,wimp%
R2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"
\=$(wimp%!28)
f
p(ݤWimp_IconValidation(window%,icon%)
z!wimp%!0=window%:wimp%!4=icon%
� ș"Wimp_GetIconState",,wimp%
�2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"
�=$(wimp%!32)
�
�%��Wimp_IconDisable(window%,icon%)
�!wimp%!0=window%:wimp%!4=icon%
� wimp%!8=1<<22:wimp%!12=1<<22
� ș"Wimp_SetIconState",,wimp%
��
�
�$��Wimp_IconEnable(window%,icon%)
�!wimp%!0=window%:wimp%!4=icon%
�wimp%!8=0:wimp%!12=1<<22
ș"Wimp_SetIconState",,wimp%
�
$/ݤWimp_IconPutSprite(window%,icon%,sprite$)
.!wimp%!0=window%:wimp%!4=icon%
8 ș"Wimp_GetIconState",,wimp%
Bș"Wimp_DeleteIcon",,wimp%
L6wimp%!4=wimp%!8:wimp%!8=wimp%!12:wimp%!12=wimp%!16
V;wimp%!16=wimp%!20:wimp%!20=wimp%!24:$(wimp%+24)=sprite$
`$ș"Wimp_CreateIcon",,wimp%�icon%
j
=icon%
t
~+��Wimp_IconPutText(window%,icon%,text$)
�!wimp%!0=window%:wimp%!4=icon%
� ș"Wimp_GetIconState",,wimp%
�2�((wimp%!24)�&100)=0�1,"Icon isn't indirected"
�$(wimp%!28)=text$
�!wimp%!0=window%:wimp%!4=icon%
�wimp%!8=0:wimp%!12=0
� ș"Wimp_SetIconState",,wimp%
��
�
���Wimp_IconInterfaceStart
�ș"Wimp_BorderIcon",,wimp%
��
��Wimp_IconInterfaceFinish
wimp%!8=0
ș"Wimp_BorderIcon",,wimp%
(�
2
<��Wimp_MenuAdjustOn(menu%)
F+ș"Wimp_GetPointerInfo",,pointer_block%
PZ�((pointer_block%!8)�1)=1�ș"Wimp_CreateMenu",,menu%,pointer_block%!0,pointer_block%!4
Z�
d
nݤWimp_MenuChoice(level%)
x=(wimp%!(4*level%))+1
�
�ݤWimp_MenuCreate(menu$)
�'�menu$="Colours"�=�Wimp_MenuColours
�&�menu%,index%,width%,length%,k%,s%
�,�menu%28+�Wimp_MenuNoOfEntries(menu$)*24
�/menu%?12=7:menu%?13=2:menu%?14=7:menu%?15=0
�'menu%!16=140:menu%!20=44:menu%!24=0
�index%=menu%+28
� $menu%=�menu$,�menu$,"\")-1)
�#width%=�(�menu$,�menu$,"\")-1))
�"menu$+="\":Menu_NoOfEntries%=0
�ȕmenu$<>""
�menu$=�menu$,�menu$,"\")+1)
Ȏmenu$�
�""
"+!index%=0:index%!4=-1:index%!8=&7000021
,length%=�menu$,"\")-1
6k%=��menu$,length%),">")
@ Ȏk%�
J�0
T
^!s%=�(�menu$,k%+1,length%-k%))
hindex%!4=s%
rlength%=k%-1
|�
� $(index%+12)=�menu$,length%)
�"�length%>width%�width%=length%
�index%+=24
��
��
�menu%!16=16*(width%+1)
�$index%!-24=index%!-24�&80:=menu%
�
�ݤWimp_MenuColours
�!=�Wimp_MenuCreateColours(" ")
�
�$ݤWimp_MenuCreateColours(title$)
��x$,men%,j%,i%
6x$=title$+"\0\1\2\3\4\5\6\7\8\9\10\11\12\13\14\15"
men%=�Wimp_MenuCreate(x$)
�i%=0�15
&ȎTRUEOF
0%�i%<4,i%=9,i%=12,i%=14,i%=15:j%=7
:
:j%=0
D�
Nmen%?(39+i%*24)=i%*16+j%
X�Wimp_MenuCentre(men%,i%+1)
b�
l =men%
v
�!ݤWimp_MenuNoOfEntries(menu$)
��n%,j%:n%=0:j%=0
��
�j%=�menu$,"\",j%+1)
��j%<>0�n%+=1
� �j%=0
�=n%
�
�4��Wimp_MenuBackGroundColour(menu%,item%,colour%)
�
�fore%,i%
�&fore%=(menu%?(39+(item%-1)*24))�16
�(i%=((menu%?(39+(item%-1)*24))�16)�16
�/menu%?(39+(item%-1)*24)=fore%+16*colour%+i%
�
"��Wimp_MenuCentre(menu%,item%)
:menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<3)
*�
4
>��Wimp_MenuClose
Hș"Wimp_CreateMenu",-1
R�
\
f#��Wimp_MenuDisable(menu%,item%)
p;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
z�
�
�&��Wimp_MenuDottedLine(menu%,item%)
�7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�2
��
�
�"��Wimp_MenuEnable(menu%,item%)
�"�Wimp_MenuDisable(menu%,item%)
�;menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�(1<<22)
��
�
�4��Wimp_MenuForegroundColour(menu%,item%,colour%)
�Emenu%?(39+(item%-1)*24)=colour%+16*((menu%?(39+(item%-1)*24))�16)
��
(��Wimp_MenuGlue(menu1%,item%,menu2%)
menu1%!(8+item%*24)=menu2%
$�
.
8&��Wimp_MenuItem(menu%,item%,item$)
B,$(menu%+(40+(item%-1)*24))=�item$,12)+�0
L�
V
`#��Wimp_MenuMessage(menu%,item%)
j<menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�(1<<3)
t�
~
�!��Wimp_MenuPopUp(Menu%,x%,y%)
�menu%=Menu%
�*ș"Wimp_CreateMenu",,menu%,x%-64,y%+20
��
�
���Wimp_MenuPopUpBar(x%,y%)
��n%:n%=0
�*ȕ((Bar_Menu%!(28+n%*24))�%10000000)=0
� n%+=1
��
�1ș"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
�menu%=Bar_Menu%
�
��Wimp_MenuTick(menu%,item%)
7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�1
(�
2
<"��Wimp_MenuTitle(menu%,title$)
F$menu%=�title$,12)+�0
P�
Z
d<��Wimp_MenuWrite(menu%,item%,buffer%,val%,BufferLength%)
n7menu%!(28+(item%-1)*24)=(menu%!(28+(item%-1)*24))�4
x8menu%!(36+(item%-1)*24)=menu%!(36+(item%-1)*24)�&100
�#menu%!(40+(item%-1)*24)=buffer%
� menu%!(44+(item%-1)*24)=val%
�)menu%!(48+(item%-1)*24)=BufferLength%
��
�
�
���Wimp_SpritesLoad
�0�Wimp_SpritesPathLoad("<SPACE$DIR>.Sprites")
�direct_sprites%=sprites%
��
�
�%��Wimp_SpritesPathLoad(pathname$)
�
�S%,T%
-S%=�"<SPACE$DIR>.Sprites":T%=�#S%+16:�#S%
�sprites%T%,spname%12
!sprites%=T%:sprites%!8=0
"!ș"OS_SpriteOp",&109,sprites%
,+ș"OS_SpriteOp",&10A,sprites%,pathname$
6�
@
JݤWimp_FileType(type%)
TȎtype%�
^�&FFF:="Text"
h�&FFD:="Data"
r�&FFB:="Basic"
|�&FF9:="Sprite"
��&FED:="Palette"
��&FEC:="Template"
��&AFF:="Draw"
��&1000:="Folder"
��&2000:="Application"
�=�~(type%)
��
�
�ݤWimp_GetFilePathName
�'=�Wimp_GetStringAtAddress(wimp%+44)
�
�ݤWimp_FileLoad(pathname$)
��S%,T%,file%
S%=�pathname$
T%=�#S%+16
�#S%
&�file%T%
0"�("LOAD"+pathname$+""+�~file%)
:
=file%
D;
N%ݤWimp_GetStringAtAddress(array%)
X
�s$:s$=""
b;ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�
l=s$
v
�"ݤWimp_GetFileFromPathname(f$)
�Ȏ�f$,".")�
�
�0:=f$
�5:=�Wimp_GetFileFromPathname(�f$,�(f$)-�f$,".")))
��
�
���Wimp_SendToEdit(file$)
��n%
�wimp%!4=&6CC01C0C
�wimp%!16=5
�wimp%!36=0
�wimp%!40=&FFF
�$(wimp%+44)=file$+�0
n%=�file$+45
'�n%�4�!wimp%=4+(n%>>2)<<2�!wimp%=n%
#ș"Wimp_SendMessage",17,wimp%,0
�
*.��Wimp_Start(TaskName$,wimp_memory%,icon%)
4"�wimp%wimp_memory%,icons%icon%
>&�wimp_memory%<256�wimp_memory%=256
Hicon_memory%=icons%+icon%
Rtask$=TaskName$
\)indirect_sprites%=1:direct_sprites%=1
f�Wimp_SetEventVariables
p��Wimp_Error:�
z>ș"Wimp_Initialise",200,&4B534154,TaskName$�version%,task%
��
�
�ݤWimp_BASICParameters
��com$,param$,I%
�ș"OS_GetEnv"�com$
�params$=""
�I%=�com$," -quit ")
�1�I%�params$=�com$,�com$," ",I%+�" -quit ")+1)
�=params$
�
���Wimp_SetEventVariables
��pointer_block%20
�interface%=�
)null%=1:draw%=2:pointer_leaving%=1<<4
1pointer_entering%=1<<5:mouse%=1<<6:drag%=1<<7
&key%=1<<8:menu%=1<<9:scroll%=1<<10
$@lose_caret%=1<<11:gain_caret%=1<<12:message%=(1<<17)+(1<<18)
.0recorder%=1<<18:acknowledge%=1<<19:window%=0
8!sprites%=1:version%=0:task%=0
B*Bar_Window%=-2:Bar_Icon%=0:Bar_Menu%=0
L*x_origin%=0:y_origin%=0:SaveWindow%=-3
V3message_quit%=0:message_save%=2:message_load%=3
`!mouse_button%=2:save_event%=0
jtop_line%=0:bottom_line%=0
t�
~
���Wimp_Error
�
�X$,x%
�
�x%=�
�X$=�$+"atline"+�(x%�10)
��ErrorMsg%36
�EErrorMsg%!0=36:ErrorMsg%!12=0:ErrorMsg%!16=&81080:ErrorMsg%!20=x%
�$(ErrorMsg%+24)="!RunImage"
�%ș"Wimp_SendMessage",17,ErrorMsg%
��Wimp_WindowAlert(task$,X$)
��Wimp_CloseDown
��
��Wimp_CloseDown
#ș"Wimp_CloseDown",task%,"TASK"
�
(
2��Wimp_Quit
<finished%=�
F�
P
Z"ݤWimp_ReadVariable(Variable$)
d�len%,result%,variable%
n$wimp%=Variable$
x3ș"OS_ReadVarVal",wimp%,wimp%+255,255,,3�,,len%
�wimp%?(len%+255)=13
�=$(wimp%+255)
���Wimp_WaitForEvent
��mask%,event%
�finished%=�
�mask%=%111000011001
��
�$ș"Wimp_Poll",mask%,wimp%�event%
�
Ȏevent%�
��0
��1:�Wimp_PollDrawWindow
�!�2:ș"Wimp_OpenWindow",,wimp%
��3:�Wimp_PollCloseWindow
�4
�5
�6:�Wimp_PollMouseClick
"�7:�Wimp_PollSaveMessage
,�8:�Wimp_PollKeyPress
6�9:�Event_MenuChoice(menu%)
@�10
J�11
T�12
^�17,18:�Wimp_PollMessages
h�19
r�
|�finished%
��
��
�
���Wimp_PollDrawWindow
�
�more%
�&ș"Wimp_RedrawWindow",,wimp%�more%
�window%=wimp%!0
�Ax_origin%=16+wimp%!4-wimp%!20:y_origin%=-16+wimp%!16-wimp%!24
�ȕmore%
�,�interface%�ș"Wimp_BorderWindow",,wimp%
�,�Event_Draw(window%,x_origin%,y_origin%)
�&ș"Wimp_GetRectangle",,wimp%�more%
��
�
��Wimp_PollCloseWindow
&"ș"Wimp_GetPointerInfo",,wimp%
0%window%=wimp%!12:buttons%=wimp%!8
:(�Event_WindowClose(window%,buttons%)
D.!wimp%=window%:ș"Wimp_CloseWindow",,wimp%
N�
X
b��Wimp_PollMouseClick
lIbutton%=wimp%!8:window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
vȎbutton%�
��2:�Wimp_PollMenuPopUp
�:Ȏ�Event_Save(window%)�
�ɹ:�Wimp_PollMouseSave
� ɣ:�Wimp_PollEventMouseClick
��
��
��
�
���Wimp_PollMenuPopUp
�menu%=�Event_Menu(window%)
�Ȏmenu%�
�ɣ
�
Ȏwindow%�
�-2:n%=0
*ȕ((Bar_Menu%!(28+n%*24))�%10000000)=0
n%+=1
*�
41ș"Wimp_CreateMenu",,Bar_Menu%,x%-64,96+n%*44
>,:ș"Wimp_CreateMenu",,menu%,x%-64,y%+20
H�
R�
\�
f
p��Wimp_PollMouseSave
zȎicon%�
�.�0:�button%�&50��Wimp_PollDragBox(window%)
�.�2:�button%� 5��Wimp_PollSaveFile(window%)
��
��
�
���Wimp_PollEventMouseClick
�*�interface%�ș"Wimp_BorderIcon",,wimp%
�2�Event_MouseClick(window%,icon%,button%,x%,y%)
�Ȏinterface%�
�ɹ
�#wimp%!0=x%:wimp%!4=y%:wimp%!8=0
�#wimp%!12=window%:wimp%!16=icon%
�ș"Wimp_BorderIcon",,wimp%
�
�
$ ��Wimp_PollSaveFile(window%)
.
�file$
8:wimp%!0=window%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
Bfile$=$(wimp%!28)
LȎ�file$,".")�
V�0
`=$(wimp%+4)="To save, drag the icon to a directory window"
j'ș"Wimp_ReportError",wimp%,16,task$
t
~"�Event_SaveFile(file$,window%)
��
�ș"Wimp_CreateMenu",-1
��
�
���Wimp_PollDragBox(window%)
�
�x%,y%
�save%=window%
�!wimp%=window%
�"ș"Wimp_GetWindowState",,wimp%
�,x%=wimp%!4-wimp%!20:y%=wimp%!16-wimp%!24
�
wimp%!4=0
� ș"Wimp_GetIconState",,wimp%
!wimp%=window%
wimp%!4=5
+wimp%!8=x%+wimp%!8:wimp%!12=y%+wimp%!12
-wimp%!16=x%+wimp%!16:wimp%!20=y%+wimp%!20
(wimp%!24=0:wimp%!28=0
2)wimp%!32=&7FFFFFFF:wimp%!36=&7FFFFFFF
<ș"Wimp_DragBox",,wimp%
F�
P
Z��Wimp_PollKeyPress
d/window%=wimp%!0:icon%=wimp%!4:key%=wimp%!24
nȎ�Event_Save(window%)�
x"ɹ:�WimpPoll_SaveFile(window%)
�*ɣ:�Event_KeyPress(window%,icon%,key%)
��
��
�
���Wimp_PollSaveMessage
��file$,window%,icon%,x%,y%
�"ș"Wimp_GetPointerInfo",,wimp%
�9window%=wimp%!12:icon%=wimp%!16:x%=wimp%!0:y%=wimp%!4
�8wimp%!0=save%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
�file$=$(wimp%!28)
�*file$=�Wimp_GetFileFromPathname(file$)
�wimp%!20=window%
�wimp%!24=icon%
wimp%!28=x%:wimp%!32=y%
wimp%!36=length%
wimp%!0=64
"wimp%!12=0
,wimp%!16=1
6wimp%!40=&FFF
@$(wimp%+44)=file$
J3ș"Wimp_SendMessage",17,wimp%,wimp%!20,wimp%!24
T�
^
h��Wimp_PollMessages
r
�file$
|,file$=�Wimp_GetStringAtAddress(wimp%+44)
�Ȏwimp%!16�
��0:finished%=�
��1
��2
�
�8wimp%!0=save%:wimp%!4=1:ș"Wimp_GetIconState",,wimp%
�$(wimp%!28)=file$
�0wimp%!0=save%:wimp%!4=1:wimp%!8=0:wimp%!12=0
� ș"Wimp_SetIconState",,wimp%
�
�1ș"Wimp_SetCaretPosition",save%,1,,,-1,�file$
� �Event_SaveFile(file$,save%)
��3
?type$=�Wimp_FileType(wimp%!40):�Event_LoadFile(file$,type$)
�
�
&
0%ݤWimp_GetStringAtAddress(array%)
:
�s$:s$=""
D;ȕ(?array%<>13)�(?array%<>0):s$+=�(?array%):array%+=1:�
N=s$
X
b"ݤWimp_GetFileFromPathname(f$)
lȎ�f$,".")�
v
�0:=f$
�2:=�Wimp_GeteFromPathname(�f$,�(f$)-�f$,".")))
��
�
�ݤWimp_FileType(type%)
�Ȏtype%�
��&FFF:="Text"
��&FFD:="Data"
��&FFB:="Basic"
��&FF9:="Sprite"
��&FED:="Palette"
��&FEC:="Template"
��&AFF:="Draw"
��&1000:="Folder"
�&2000:="Application"
=�~(type%)
�
�
*
��main
4
>��error
H�15:�:�8,0:� clear � �TZ]
M+�63:�L=1�250:ȏȐ�(1280),�(1024),�(3):�
R*SCHOOSE LOGO
\�8,0:�&ED,300,200:�63:�=0
f
p�
u�>200 �tX\
zȗX,Y,Z:� Z>0
�
��12
��"POINTER 1"
�ȗ�4
�
GRID=0
��redraw
��select
��pen
��
���select
��0,0
��1280,1024
�"SGET SCREENDUMP"
clear=�
�15:�
$'�L=1�250:ȏȐ�(1280),�(1024),�(3):�
.�"POINTER 1"
8.ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001
B
�21Ȝ0
LȓȐ150,260,900,190
V�21Ȝ64
`ȓȐ168,270,868,168
j�21Ȝ128
tȓȐ186,280,840,146
~�21Ȝ192
�ȓȐ200,290,810,124
��(COL)Ȝ(TIN)
�ȓȐ208,300,800,100
��0,0
�*SCHOOSE PENTOOL
��&ED,50,900
�*SCHOOSE BRUSHTOOL
��&ED,133,900
�*SCHOOSE RUBBERTOOL
��&ED,216,900
�*SCHOOSE LINETOOL
��&ED,300,900
*SCHOOSE ARCTOOL
�&ED,385,900
*SCHOOSE RECTOOL2
�&ED,467,900
(*SCHOOSE RECTOOL
2�&ED,549,900
<*SCHOOSE CIRTOOL2
F�&ED,631,900
P*SCHOOSE CIRTOOL
Z�&ED,713,900
d*SCHOOSE SECTORTOOL2
n�&ED,795,900
x*SCHOOSE SECTORTOOL
��&ED,878,900
�*SCHOOSE TRITOOL2
��&ED,961,900
�*SCHOOSE TRITOOL
��&ED,1044,900
�*SCHOOSE FILES
��&ED,300,500
�*SCHOOSE CLEAR
��&ED,700,500
�*SCHOOSE SIZES
��&ED,500,500
�*SCHOOSE FONTS
��&ED,100,500
*SCHOOSE END
�&ED,900,500
*SCHOOSE DITHERTOOL
"�&ED,50,820
,*SCHOOSE DASHTOOL
6�&ED,133,820
@*SCHOOSE TEXTTOOL
J�&ED,216,820
T*SCHOOSE CAMERATOOL
^�&ED,300,820
h*SCHOOSE SCISSORTOOL
r�&ED,383,820
|*SCHOOSE tile
��&ED,466,820
�*SCHOOSE INVERTTOOL
��&ED,549,820
�*SCHOOSE SELECTTOOL
��&ED,632,820
�*SCHOOSE PARALLELTOOL
��&ED,714,820
�*SCHOOSE PROPELORTOOL
��&ED,798,820
�*SCHOOSE REPLACETOOL
��&ED,881,820
�*SCHOOSE SPRAYTOOL
��&ED,964,820
*SCHOOSE FILLTOOL
�&ED,1047,820
*SCHOOSE MULTITOOL
&�&ED,1126,900
0*SCHOOSE SMUDGETOOL
:�&ED,1126,820
D*SCHOOSE HELP!
N�&ED,400,710
X*SCHOOSE !GRID
b1�4,0:ȑ0,2:ȓȐxxxxxx,yyyyyy,83,76:�0,0:ȑ0,0
l4�&ED,600,710:�13:�GRID=0��5:�638,770:�"GRID OFF"
v&�GRID=1��5:�13:�642,770:�"GRID ON"
�
�docol(1)
�
�docol(2)
�
�docol(3)
��docol(23)
�
�docol(7)
��docol(11)
��docol(10)
��docol(15)
��docol(95)
��docol(47)
�
�docol(4)
�
�docol(8)
!�docol(29)
!�docol(45)
!�docol(32)
! �docol(48)
!*�docol(53)
!4�docol(58)
!>�docol(56)
!H�docol(60)
!R�docol(61)
!\�docol(62)
!f�docol(50)
!p�docol(51)
!z�docol(55)
!��docol(63)
!��docol(42)
!��docol(21)
!�
�docol(0)
!� pos%=0
!�ȗX,Y,Z
!�S�Y<255� Y>0� Z=4�COL=�X,Y):�(COL):TIN=Ȝ(X,Y):�(COL)Ȝ(TIN):ȓȐ208,300,800,100
!�2�X>400� X<600� Y>710� Y<800� Z>1 � Z<5 ��help2
!�}�X>600� X<800� Y>710� Y<800� Z=4� GRID=0�GRID=1:�&ED,600,710:�642,770:�13:�"GRID ON":�(COL)Ȝ(TIN):�:ȗX,Y,Z:�Z=0:ȗX,Y,Z
!�~�X>600� X<800� Y>710� Y<800� Z=4� GRID=1�GRID=0:�&ED,600,710:�638,770:�13:�"GRID OFF":�(COL)Ȝ(TIN):�:ȗX,Y,Z:�Z=0:ȗX,Y,Z
!�=�X>216� X<300� Y>900� Y<985� Z=4��redraw:GG=�(10):�rubber
!�9�X>216� X<300� Y>900� Y<985� Z=2�help$="RUBBER":�help
!�;�X>300� X<385� Y>900� Y<985� Z=4��redraw:GG=�(20):�line
"7�X>300� X<385� Y>900� Y<985� Z=2�help$="LINE":�help
"1�X>385� X<467� Y>900� Y<985� Z=4��redraw:�arc
"6�X>385� X<467� Y>900� Y<985� Z=2�help$="arc":�help
"$;�X>467� X<549� Y>900� Y<985� Z=4��redraw:GG=�(20):�rec2
".6�X>467� X<631� Y>900� Y<985� Z=2�help$="rec":�help
"8:�X>549� X<631� Y>900� Y<985� Z=4��redraw:GG=�(20):�rec
"B4�X>549� X<631� Y>820� Y<900� Z=4��redraw:�invert
"L9�X>549� X<631� Y>820� Y<900� Z=2�help$="INVERT":�help
"V1�X>713� X<795� Y>900� Y<985� Z=4��redraw:�cir
"`6�X>631� X<795� Y>900� Y<985� Z=2�help$="cir":�help
"j>�X>795� X<877� Y>900� Y<985� Z=4��redraw:GG=�(10):�sector2
"t9�X>795� X<961� Y>900� Y<985� Z=2�help$="sector":�help
"~=�X>877� X<959� Y>900� Y<985� Z=4��redraw:GG=�(10):�sector
"�=�X>1047� X<1130� Y>820� Y<900� Z=4��redraw:GG=�(20):�fill
"�9�X>1047� X<1130� Y>820� Y<900� Z=2�help$="fill":�help
"�3�X>1044� X<1127� Y>900� Y<985� Z=4��redraw:�tri
"�<�X>961� X<1044� Y>900� Y<985� Z=4��redraw:GG=�(20):�tri2
"�<�X>961� X<1126� Y>900� Y<985� Z=2�help$="triangle":�help
"�3�X>133� X<300� Y>900� Y<985� Z=4��redraw:�brush
"�8�X>133� X<300� Y>900� Y<985� Z=2�help$="brush":�help
"�;�X>133� X<216� Y>820� Y<900� Z=4��redraw:GG=�(20):�dash
"�7�X>133� X<216� Y>820� Y<900� Z=2�help$="dash":�help
"�0�X>50� X<133� Y>900� Y<985� Z=4��redraw:�pen
"�8�X>50� X<133� Y>900� Y<985� Z=2�help$="pencil":�help
"�:�X>500� X<700� Y>500� Y<700� Z=4��:ȗX,Y,Z:�Z=0:�sizes
# 5�X>700� X<900� Y>500� Y<700� Z=4��15:�check_clear
#
:�X>300� X<500� Y>500� Y<700� Z=4��:ȗX,Y,Z:�Z=0:�files
#9�X>300� X<500� Y>500� Y<700� Z=2 �help$="files":�help
#+�X>100� X<300� Y>500� Y<700� Z=4��fonts
#(+�X>900� X<1100� Y>500� Y<700� Z=4��exit
#2=�X>300� X<383� Y>820� Y<900� Z=4��redraw:GG=�(20):�camera
#<9�X>300� X<383� Y>820� Y<900� Z=2�help$="camera":�help
#F;�X>466� X<549� Y>820� Y<900� Z=4��redraw:GG=�(20):�tile
#P7�X>466� X<549� Y>820� Y<900� Z=2�help$="tile":�help
#Z;�X>630� X<713� Y>900� Y<985� Z=4��redraw:GG=�(20):�cir2
#d>�X>383� X<466� Y>820� Y<900� Z=4��redraw:GG=�(20):�scissor
#n:�X>383� X<466� Y>820� Y<900� Z=2�help$="scissor":�help
#s.�X>216� X<299� Y>820� Y<900� Z=4 � *FX21,0
#x��X>216� X<299� Y>820� Y<900� Z=4�GG=�(20):�0Ȝ0:ȓȐ0,500,1280,310:�12:ȓ-10,505,1290,120:�53:�15,13);"PLEASE TYPE IN YOUR TEXT HERE AND PRESS RETURN:":�5);"TEXT:"TEXT$:�text
#�7�X>216� X<299� Y>820� Y<900� Z=2�help$="text":�help
#�>�X>632� X<713� Y>820� Y<900� Z=4��redraw:GG=�(10):�select2
#�9�X>632� X<713� Y>820� Y<900� Z=2�help$="select":�help
#�E�X>798� X<881� Y>820� Y<900� Z=4��redraw:�:ȗQ,W,E:�E=0:�propelor
#�<�X>798� X<881� Y>820� Y<900� Z=2�help$="propellor":�help
#�5�X>881� X<881+83� Y>820� Y<900� Z=4��replacesetup
#�=�X>881� X<881+83� Y>820� Y<900� Z=2�help$="replace":�help
#�C�X>964� X<1047� Y>820� Y<900� Z=4��redraw:�:ȗQ,W,E:�E=0:�spray
#�9�X>964� X<1047� Y>820� Y<900� Z=2�help$="spray":�help
#�E�X>714� X<797� Y>820� Y<900� Z=4��redraw:�:ȗQ,W,E:�E=0:�parallel
#�;�X>714� X<797� Y>820� Y<900� Z=2�help$="PARALLEL":�help
#�.�Y>0� Y<255� Z=1��:ȗQ,W,E:�E=0:ȗ�640,900
#�1�Y>820� Y<1023� Z=1��:ȗQ,W,E:�E=0:ȗ�640,125
$D�X>1126� X<1209� Y>900� Y<983� Z=4��:ȗQ,W,E:�E=0:�redraw:�multi
$:�X>1126� X<1209� Y>900� Y<983� Z=2�help$="multi":�help
$E�X>1126� X<1209� Y>820� Y<900� Z=4��:ȗQ,W,E:�E=0:�redraw:�smudge
$";�X>1126� X<1209� Y>820� Y<900� Z=2�help$="smudge":�help
$,A�X>50� X<133� Y>820� Y<900� Z=4��:ȗQ,W,E:�E=0:�redraw:�mixer
$68�X>50� X<133� Y>820� Y<900� Z=2�help$="dither":�help
$@!�Z=1��redraw:�5:�4,0:�remake%
$J �tva
$T�
$^��pen:�remake(9310,50,900)
$h�"POINTER 0"
$r�4,0
$|A=640:B=512
$�X=640:Y=512
$�ȗX,Y,Z
$�$�Z=4��(COL)Ȝ(TIN):�X,Y,A,B:�4,0
$�ȗA,B,C
$�!�X-20,Y,X+20,Y:�X,Y-20,X,Y+20
$�Ȗ
$�!�X-20,Y,X+20,Y:�X,Y-20,X,Y+20
$�$�Z=4��(COL)Ȝ(TIN):�X,Y,A,B:�4,0
$��Z=2��select
$��-90�0,0:�undo:�4,0
$� �tPd
$��
$���redraw
%�15
%�
%�"POINTER 1"
%&2ș"Wimp_SpriteOp",36,,"ptr_cross",%100001,12,5
%0*SCHOOSE SCREENDUMP
%:�&ED,0,0
%D-�GRID=1��4,0:�drawgrid:GG=�(30):�drawgrid
%N�
%X��rec:�remake(9560,549,900)
%b�
%lȗA,B,C
%v�GRID=1�initgridAB
%��C=2��select
%��-90��0,0:�undo:�4,0
%��C=4
%��:ȗQ,W,E:�E=0
%�GG=�(20)
%�ȗX,Y,Z
%��GRID=1�initgridXY
%��Z=2��select
%��4,95Ȝ192
%�ȓA,B,X-A,Y-B
%�Ȗ
%�Ȗ
%��4,0Ȝ0
&ȓA,B,X-A,Y-B
&5�Z=4��(COL)Ȝ(TIN):ȓȐA,B,X-A,Y-B:GG=�(100):�rec
&�Z=1��Dbe
& �-90�0,0:�undo:�4,0
&* �tre
&4�
&> ��dash:�remake(9790,133,820)
&Hȗȓ0,0,1279-SIZE,1023-SIZE
&R�4,0
&\�"POINTER 0"
&fȗX,Y,Z
&p�GRID=1�initgridXY
&z�X,Y,X+SIZE,Y+SIZE
&�Ȗ
&�Ȗ
&��X,Y,X+SIZE,Y+SIZE
&�.�Z=4��(COL)Ȝ(TIN):�X,Y,X+SIZE,Y+SIZE:�4,0
&��Z=2��select
&��-90�0,0:�undo:�4,0
&�1�-58 SIZE=SIZE+5:ȗȓ0,0,1279-SIZE,1023-SIZE
&�1�-42 SIZE=SIZE-5:ȗȓ0,0,1279-SIZE,1023-SIZE
&��SIZE<6�SIZE=6
&� �Dff
&��
&�!��spray:�remake(9970,964,820)
&��"POINTER 0"
'�4,0
'ȗȓ0,0,1279-SIZE,1023-SIZE
'ȗX,Y,Z
'$�GRID=1��initgridXY
'.�Z=0�ȓX,Y,SIZE
'8 Ȗ:Ȗ
'B�Z=0�ȓX,Y,SIZE
'L;�Z=4��(COL)Ȝ(TIN):�E=1�10:Ȓ�(SIZE)+X,�(SIZE)+Y:�:�4,0
'V�Z=2��select
'`1�-58�SIZE=SIZE+5:ȗȓ0,0,1279-SIZE,1023-SIZE
'j1�-42�SIZE=SIZE-5:ȗȓ0,0,1279-SIZE,1023-SIZE
't�SIZE>1023�SIZE=1022
'~�SIZE<6�SIZE=6
'��-90�0,0:�undo:�4,0
'� �TZg
'��
'�"��fill:�remake(10150,1047,820)
'�GG=�(20):�(COL)Ȝ(TIN)
'�ȗX,Y,Z
'��Z=4� �do_a_fill
'��Z=2��select
'��-90 �undo
'� �dDg
'��
( ��cir:�remake(10240,713,900)
(
�
(ȗA,B,C
(�GRID=1�initgridAB
((�C=2��select
(2�-90�0,0:�undo:�4,0
(<�C=4
(F�:ȗQ,W,E:�E=0
(PȗX,Y,Z
(Z�GRID=1�initgridXY
(d�4,63Ȝ192
(n
ȏA,B,X/2
(x�4,0Ȝ0
(�Ȗ
(�Ȗ
(�
ȏA,B,X/2
(�0�Z=4��(COL)Ȝ(TIN):ȏȐA,B,X/2:GG=�(30):�cir
(��Z=2��select
(�
�Z=1��cir
(��-90�0,0:�undo:�4,0
(��-58ȗ�X+5,Y
(��-42ȗ�X-5,Y
(� �DPh
(��
(�!��line:�remake(10480,300,900)
(��
)ȗA,B,C
)�GRID=1�initgridAB
)�C=2��select
)"�-90�0,0:�undo:�4,0
),�C=4
)6�:ȗQ,W,E:�E=0
)@GG=�(20)
)JȗX,Y,Z
)T�GRID=1�initgridXY
)^�4,63Ȝ192
)h�A,B,X,Y
)r�4,0Ȝ0
)|Ȗ
)�Ȗ
)��A,B,X,Y
)�<�Z=4��(COL)Ȝ(TIN):�A,B,X,Y:A=X:B=Y:�:ȗQ,W,E:�E=0:�DJi
)��Z=2��select
)��Z=1�GG=�(20):�line
)��-90�0,0:�undo:�4,0
)� �DJi
)��
)�#��rubber:�remake(10710,216,900)
)�A=�(20)
)��"POINTER 0"
)��4,0
)�ȗȓ0,0,1279-SIZE,1023-SIZE
*ȗX,Y,Z
*�GRID=1�initgridXY
*ȓX,Y,SIZE,SIZE
*& Ȗ:Ȗ
*0ȓX,Y,SIZE,SIZE
*:�Z=2��(COL)Ȝ(TIN):�select
*D �Z=4��0Ȝ0:ȓȐX,Y,SIZE:�4,0
*N�-90�0,0:�undo:�4,0
*X1�-58 SIZE=SIZE+5:ȗȓ0,0,1279-SIZE,1023-SIZE
*b1�-42 SIZE=SIZE-5:ȗȓ0,0,1279-SIZE,1023-SIZE
*l �THj
*v�
*�!��tri:�remake(10880,1044,900)
*��
*�ȗA,B,C
*��GRID=1�initgridAB
*��C=2��select
*��-90 �0,0:�undo:�4,0
*��C=4
*��:ȗQ,W,E:�E=0
*�GG=�(20)
*�ȗX,Y,Z
*��GRID=1�initgridXY
*��4,63Ȝ192
*��A,B,X,Y
+ Ȗ:Ȗ
+�4,0Ȝ0
+�A,B,X,Y
+ �Z=4�GG=�(20):�DRk
+*
�Z=1��tri
+4�Z=2��select
+>�-90�0,0:�undo:�4,0
+H �dZj
+R�:ȗQ,W,E:�E=0
+\�A,B,X,Y
+fȗAA,BB,CC
+p�GRID=1�initgridAABB
+z�-90�0,0:�undo:�4,0
+��4,63Ȝ192
+��A,B,AA,BB
+��X,Y,AA,BB
+�Ȗ
+�Ȗ
+��4,0Ȝ0
+��X,Y,AA,BB
+��A,B,AA,BB
+�8�CC=4��(COL)Ȝ(TIN):�A,B,X,Y:�85,AA,BB:GG=�(20):�tri
+�'�CC=1��4,0:�A,B,X,Y:A=AA:B=BB:�dPj
+��CC=2��select
+��-90 �0,0:�undo:�4,0
+� �Dfk
,�
,
��undo
,*SCHOOSE SCREENDUMP
,$�&ED,0,0
,.�
,8 ��arc:�remake(11320,385,900)
,B�
,LȗA,B,C
,V�GRID=1�initgridAB
,`�C=2��select
,j�-90�0,0:�undo:�4,0
,t�C=4
,~�:ȗQ,W,E:�E=0
,�ȗX,Y,Z
,��GRID=1�initgridXY
,� �4,63
,��A,B,X,Y
,�Ȗ
,�Ȗ
,��4,0
,��A,B,X,Y
,�&�Z=4�GG=�(20):�:ȗQ,W,E:�E=0:�TJm
,��Z=2��select
,��Z=1�GG=�(20):�DBl
,��-90�0,0:�undo:�4,0
- �tHl
-
ȗAA,BB,CC
-�GRID=1�initgridAABB
-�-90�0,0:�undo:�4,0
-( �4,63
-2�A,B
-<�X,Y
-F�&A5,AA,BB
-P�4,0
-ZȖ
-dȖ
-n�A,B
-x�X,Y
-��&A5,AA,BB
-�;�CC=4��(COL)Ȝ(TIN):�A,B:�X,Y:�&A5,AA,BB:GG=�(20):�DBl
-��CC=2��select
-��CC=1�GG=�(20):�DBl
-� �TJm
-��
-���saver
-��"POINTER 1":*FX21,0
-��
-�ȗG,H,J
-��J=1�J=2��
-��J=4
-�.ȗ�2,50,255,50:ȗ�1,0,200,0:ȗ�3,150,80,10
.-ș"Wimp_SpriteOp",36,,"ptr_write",%100001
.�95Ȝ255
.ȓ200,350,800,100
."�5
.,�300,430
.62�"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
.@�300,390
.J
�NAME$
.T[�NAME$="0"�ȗ�1,255,255,0:ȗ�2,0,0,255:ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001:�TP]
.^2�4:� NAME$="" � �$="DONT PRESS RETURN!":�error
.h*SCHOOSE SCREENDUMP
.r�redraw
.|*DIR <SPACE$DIR>.SPACEPICS
.�ș"Hourglass_On"
.�R� COMP=1 �"PICSAVE ERROR" � �"DIR <SPACE$DIR>.SPRITEPICS":�"SCREENSAVE "+NAME$
.�!� COMP=1 �"SETTYPE ERROR 555"
.�#� COMP=1 �"RENAME ERROR "+NAME$
.�ș"Hourglass_Smash"
.�.ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001
.�,ȗ�1,255,255,0:ȗ�2,0,0,255:ȗ�3,0,0,255
.��4:�TZ]
.��
.���loader
.��95Ȝ255:*FX21,0
.�.ȗ�2,50,255,50:ȗ�1,0,200,0:ȗ�3,125,80,10
.�-ș"Wimp_SpriteOp",36,,"ptr_write",%100001
/ȓ200,350,800,100
/�5
/�300,430
/&2�"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
/0�300,390
/:
�NAME$
/Dh�NAME$="0"�ȗ�1,255,255,0:ȗ�2,0,0,255:ȗ�3,0,0,255:ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001:�TP]
/N�4
/X*DIR <SPACE$DIR>.SPACEPICS
/bș"Hourglass_On"
/lS� COMP=1 �"PICLOAD "+NAME$ � �"DIR <SPACE$DIR>.SPRITEPICS":�"SCREENLOAD "+NAME$
/vș"Hourglass_Smash"
/�O�0,0:�1280,1024:�"SGET SCREENDUMP":ȗ�1,255,255,0:ȗ�2,0,0,255:ȗ�3,0,0,255
/�.ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001
/��4:�select
/��
/���files
/�
*CLOSE
/��12:�63:ȗ � 640,400
/�0�L=1�250:ȏȐ�(1280),�(1024),�(3):�:ȑ0,-300
/�1� COMP=1 �"SCHOOSE OPTON" � �"SCHOOSE OPTOFF"
/��&ED,550,1200
/�6� COMP=1 � �"SCHOOSE COMPRESS" � �"SCHOOSE SPRITE"
/��&ED,430,1120
/�*SCHOOSE SAVE
/��&ED,200,800
0*SCHOOSE LOAD
0�&ED,400,800
0*SCHOOSE DELETE
0 �&ED,600,800
0**SCHOOSE LIST
04�&ED,800,800
0>GG=�(20)
0HȗX,Y,Z
0R��X>550� X<650� Y>1200� Y<1300 � Z=4 � COMP=0 � COMP=1:�"SCHOOSE OPTON":�&ED,550,1200:�"SCHOOSE COMPRESS":�&ED,430,1120:�:ȗQ,W,E:� E=0:ȗX,Y,Z
0\��X>550� X<650� Y>1200� Y<1300 � Z=4 � COMP=1 � COMP=0:�"SCHOOSE OPTOFF":�&ED,550,1200:�"SCHOOSE SPRITE":�&ED,430,1120:�:ȗQ,W,E:� E=0:ȗX,Y,Z
0f;�X>200� X<400� Y>800� Y<1000� Z=4�ȑ0,0:�saver:ȑ0,-300
0p<�X>400� X<600� Y>800� Y<1000� Z=4�ȑ0,0:�loader:ȑ0,-300
0z=�X>600� X<800� Y>800� Y<1000� Z=4�ȑ0,0:�deleter:ȑ0,-300
0�-�X>800� X<1000� Y>800� Y<1000� Z=4� �list
0��Z=2��TP]
0� �DHp
0��
0�#��sector:�remake(12460,878,900)
0��
0�ȗA,B,C
0��GRID=1�initgridAB
0��C=2��select
0��-90��0,0:�undo:�4,0
0��C=4
0��:ȗQ,W,E:�E=0
0�ȗX,Y,Z
1�GRID=1�initgridXY
1 �4,63
1�A,B,X,Y
1$�4,0
1.Ȗ
18Ȗ
1B�A,B,X,Y
1L�Z=2��select
1V�Z=4��D~q
1`�Z=1��sector
1j�-90�0,0:�undo:�4,0
1t �d|p
1~�:ȗQ,W,E:�E=0
1�ȗAA,BB,CC
1�
1��-90�0,0:�undo:�4,0
1� �4,63
1��A,B
1��X,Y
1��&A5,AA,BB
1��A,B,X,Y
1��A,B,AA,BB
1�Ȗ
1�Ȗ
1��4,0
2 �A,B
2
�X,Y
2�&A5,AA,BB
2�A,B,X,Y
2(�A,B,AA,BB
22�CC=1��sector
2<�CC=2��select
2F4�CC=4��(COL)Ȝ(TIN):�A,B:�X,Y:�&B5,AA,BB:�sector
2P �tHq
2Z�
2d!��text:�remake(12900,216,820)
2n�redraw
2x�5
2��4,0
2��"POINTER 0"
2�ȗX,Y,Z
2��GRID=1�initgridXY
2��X,Y
2��"";TEXT$;""
2�Ȗ
2�Ȗ
2��X,Y
2��"";TEXT$;""
2�O�Z=4��"POINTER 0":�(COL)Ȝ(TIN):�X,Y:�"";TEXT$;"":�4,0:�:ȗQ,W,E:�E=0:�tVr
2��Z=2��select
2��-90�0,0:�undo:�4,0
3 �tVr
3�
3��sizes
3"�63
3,;�12:�"POINTER 0":�DFGF=1�150:ȏȐ�(1280),�(1023),�(3):�
36
ȗ�SIZE,0
3@ȗȓ0,0,1020,1
3J*SCHOOSE LEFT
3T�&ED,0,0
3^*SFlipY LEFT
3h�&ED,1180,0
3r*SFlipY LEFT
3|�4,0
3�ȗX,Y,Z
3�ȓ150,512-X/2,1000,X
3�Ȗ
3�Ȗ
3�ȓ150,512-X/2,1000,X
3�#�Z=4��(COL)Ȝ(TIN):SIZE=X:�TP]
3��Z=2��TP]
3� �tFs
3��
3�
��deleter
3�6ȗ�2,50,255,50:ȗ�1,0,200,0:ȗ�3,150,80,10:*FX21,0
3�-ș"Wimp_SpriteOp",36,,"ptr_write",%100001
3��95Ȝ255
4ȓ200,350,800,100
4�5
4�300,430
4&2�"PLEASE TYPE A FILENAME. TYPE '0' TO ABANDON"
40�300,390
4:
�NAME$
4D[�NAME$="0"�ȗ�1,255,255,0:ȗ�2,0,0,255:ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001:�TP]
4NI� COMP=1 �"DIR <SPACE$DIR>.SPACEPICS" � �"DIR <SPACE$DIR>.SPRITEPICS"
4X�4
4b�"DELETE "+NAME$
4lWȗ�1,255,255,0:ȗ�2,0,0,255:ȗ�3,0,0,255:ș"Wimp_SpriteOp",36,,"ptr_rocket",%100001
4v
�12:�TZ]
4��
4���fonts
4��13:*FX21,0
4��95Ȝ255:ȗ �
4��15
4�*. <SPACE$DIR>.FONTIES
4��
4��3
4�]�" ":ș"Wimp_SpriteOp",36,,"ptr_write",%100001:ȗ�2,50,255,50:ȗ�1,0,200,0:ȗ�3,150,80,10
4�Q�"Please type in the font you want.":�61:�"TYPE '0' TO RETURN TO MENU SCREEN"
4��53Ȝ128
4�$�63:�L=1�150:Ȓ�(1280),�(1023):�
4��Z=2�GOT7490
4� �:�53
5�FILENAME$
5�FILENAME$="0"��TP]
5!ȗ �:*DIR <SPACE$DIR>.FONTIES
5 �"RUN "+FILENAME$:�TP]
5*�
54#��camera:�remake(13620,300,820)
5>�
5HȗA,B,C
5R�GRID=1�initgridAB
5\�C=2��select
5f�-90�0,0:�undo:�4,0
5p�C=4
5z�:ȗQ,W,E:�E=0
5�ȗȓA,B,1278-A,1023-B
5�ȗX,Y,Z
5��GRID=1�initgridXY
5��4,0
5�ȓA,B,X-A,Y-B
5� Ȗ:Ȗ
5�ȓA,B,X-A,Y-B
5�/�Z=4�ȗȓ0,0,1279,1023:�:ȗQ,W,E:�E=0:�d|u
5��Z=2��select
5�"�Z=1�ȗȓ0,0,1279,1023:�camera
5��-90�0,0:�undo:�4,0
5� �tNu
5�!ȗȓ0,0,1278-(X-A),1022-(Y-B)
6ȗXX,YY,ZZ
6�GRID=1�initgridXXYY
6�4,0
6$ȓXX,YY,X-A,Y-B
6.Ȗ
68Ȗ
6BȓXX,YY,X-A,Y-B
6L;�ZZ=4�ȗȓ0,0,1279,1023:ȓ(A),(B),(X-A),(Y-B)�(XX),(YY)
6V�ZZ=2��select
6`#�ZZ=1�ȗȓ0,0,1279,1023:�camera
6j�-90�0,0:�undo:�4,0
6t �d|u
6~�
6�$��scissor:�remake(13960,383,820)
6��
6�ȗA,B,C
6��GRID=1�initgridAB
6��C=2��select
6��-90�0,0:�undo:�4,0
6��C=4
6��:ȗQ,W,E:�E=0
6�ȗȓA,B,1279-A,1023-B
6�ȗX,Y,Z
6��GRID=1�initgridXY
6��4,0
7 ȓA,B,X-A,Y-B
7
Ȗ
7Ȗ
7ȓA,B,X-A,Y-B
7(�Z=4��DZw
72�Z=2��select
7<#�Z=1�ȗȓ0,0,1279,1023:�scissor
7F�-90�0,0:�undo:�4,0
7P �dbv
7Z0�:ȗQ,W,E:�E=0:ȗȓ0,0,1279-(X-A),1023-(Y-B)
7dȗXX,YY,ZZ
7n�GRID=1�initgridXXYY
7x�4,0
7�ȓXX,YY,X-A,Y-B
7�Ȗ
7�Ȗ
7�ȓXX,YY,X-A,Y-B
7�c�ZZ=4��A,B:�X,Y:�189,XX,YY:GG=�(20):ȗȓ0,0,1279,1023:�:ȗQ,W,E:�E=0:ȗȓ0,0,1279,1023:�scissor
7��ZZ=2��select
7�$�ZZ=1�ȗȓ0,0,1279,1023:�scissor
7��-90�0,0:�undo:�4,0
7� �Ddw
7��
7�"��brush:�remake(14310,133,900)
7��"POINTER 0"
7��4,0
8GG=�(20)
8ȗX,Y,Z
8�GRID=1�initgridXY
8"�Z=0�ȏX,Y,SIZE/2
8,Ȗ
86Ȗ
8@�Z=0�ȏX,Y,SIZE/2
8J�Z=2��select
8T*�Z=4��(COL)Ȝ(TIN):ȏȐX,Y,SIZE/2:�4,0
8^�-58�SIZE=SIZE+5
8h�-42�SIZE=SIZE-5
8r�-90�0,0:�undo:�4,0
8|�SIZE<6�SIZE=6
8� �TNx
8��
8�!��tile:�remake(14490,466,820)
8��"POINTER 0"
8��4,0
8�GG=�(50)
8�ȗX,Y,Z
8�ȓX,Y,160,128
8�Ȗ
8�ȓX,Y,160,128
8�� Z=2 � �select
8�� Z=4 � � �THy
8� �dBx
9�X,Y:�X+160,Y+128
9*SGET PAPER
9�0,0
9&�Q=1�1280�160
90�Z=1�1024�128
9:�&ED,Q,Z
9D�
9N�
9X�
9bȗX,Y,Z
9l� �-90 � �undo:� remake%
9v� Z=2 � �select
9�
� Z=56
9��
9�!��rec2:�remake(14740,467,900)
9�
�:ȗA,B,C
9��GRID=1�initgridAB
9��C=2��select
9��-90��0,0:�undo:�4,0
9��C=4
9��:ȗQ,W,E:�E=0
9�ȗX,Y,Z
9��GRID=1�initgridXY
9��Z=2��select
9��4,0
:ȓA,B,X-A,Y-B
:Ȗ
:Ȗ
: ȓA,B,X-A,Y-B
:*3�Z=4��(COL)Ȝ(TIN):ȓA,B,X-A,Y-B:GG=�(20):�rec2
:4�Z=1��rec2
:>�-90�0,0:�undo:�4,0
:H �dZy
:R�
:\!��cir2:�remake(14940,631,900)
:f�
:pȗA,B,C
:z�GRID=1�initgridAB
:��C=2��select
:��-90��0,0:�undo:�4,0
:��4,0
:��C=4
:��:ȗQ,W,E:�E=0
:�ȗX,Y,Z
:��GRID=1�initgridXY
:��Z=2��select
:�ȏA,B,X
:�Ȗ
:�Ȗ
:�ȏA,B,X
:�2�Z=4��(COL)Ȝ(TIN):ȏA,B,X:GG=�(20):�4,0:�cir2
;�Z=1��cir2
;�-90�0,0:�undo:�4,0
;�-58ȗ�X+5,Y
;$�-42ȗ�X-5,Y
;. �tvz
;8�
;B!��tri2:�remake(15170,961,900)
;L�
;VȗA,B,C
;`�GRID=1�initgridAB
;j�C=2��select
;t�-90�0,0:�undo:�4,0
;~�C=4
;��:ȗQ,W,E:�E=0
;�ȗX,Y,Z
;��GRID=1�initgridXY
;��-90�0,0:�undo:�4,0
;��Z=2��select
;��4,0
;��A,B,X,Y
;�Ȗ
;�Ȗ
;��A,B,X,Y
;��Z=4��:ȗQ,W,E:�E=0:�TJ|
;��Z=1��tri2
<