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 <