Home » Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 » !AWMay94/Goodies/MenuMake/!Menaker/!RunImage
!AWMay94/Goodies/MenuMake/!Menaker/!RunImage
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-1994-05-Disc1.adf » Disk1May94 |
Filename: | !AWMay94/Goodies/MenuMake/!Menaker/!RunImage |
Read OK: | ✔ |
File size: | 68D2 bytes |
Load address: | 0000 |
Exec address: | 0000 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 » !AWMay94/Goodies/MenuMake/!Menaker/!RunImage
- Archimedes archive » Archimedes World » AW-1994-05-Disc1.adf » Disk1May94 » !AWMay94/Goodies/MenuMake/Backup/!Menaker/!RunImage
File contents
10REM >!Menaker 20REM Menu Creation System 30REM for Archimedes World 40REM LEN1993 Richard M. Leggett 50REM 1/6/93 - 10/9/93 60 70initialised=FALSE 80LIBRARY "<Menaker$Dir>.WimpLib" 90ON ERROR PROCerror_trap 100 110PROCinitialise 120PROCinitialise_library 130PROCinstall("!Menaker",68,68) 140PROCinitialise_menus(6) 150PROCsetup_windows 160PROCsetup_menus 170PROCread_errors 180PROCload_app_stuff 190PROCread_vdu 200PROCmain_loop 210PROCshutdown 220END 230 240DEFPROCerror_trap 250error$="Whoops! An error has occurred, type "+REPORT$+" "+STR$ERR+"/"+STR$ERL+". It may be best to save, quit and start again. Attempt to continue?" 260IF NOT initialised THEN PRINT error$ 270IF initialised THEN 280 CASE ERR OF 290 WHEN 257:PROCsystem_error(14,1):PROCmain_loop 300 WHEN 654:PROCsystem_error(0,1) 310 OTHERWISE: 320 PROCreport_error(error$,3) 330 IF user_response=1 PROCmain_loop 340 ENDCASE 350ENDIF 360END 370 380DEFPROCinitialise 390DIM sblock% 256 400DIM psprites 512, usprites 80*1024 410DIM sname 16, rename 16, fname 256 420DIM runimage 40*1024,temps 10*1024, run 1024 430DIM icon_menu 512, menus_menu 512, items_menu 512 440DIM menu_menu 512, item_menu 512, opt_menu 512 450DIM action(20,40), fname$(20,40), text$(20,40) 460DIM sprite$(20,40), ftype(20,40) 470DIM no_opts(20), type(20), mname$(20) 480DIM error$(20) 490DIM check$(10) 500 510no_opts()=255:type()=1 520mname$(0)="� Archimedes World 1993" 530os_menu=0:quit=FALSE:oq=FALSE 540type=1:current_menu=0:num_mens=1:alter_item=-1 550modified=FALSE 560prog_name$="Menaker" 570version$="2.19 (14-Sep-93)" 580filename$="" 590runfiles=TRUE 600ENDPROC 610 620DEFPROCsetup_windows 630PROCload_templates("<Menaker$Dir>") 640info_handle=wi_handle%(1) 650crme_handle=wi_handle%(2) 660itin_handle=wi_handle%(3) 670list_handle=wi_handle%(4) 680typ1_handle=wi_handle%(5) 690typ2_handle=wi_handle%(6) 700typ3_handle=wi_handle%(7) 710save_handle=wi_handle%(8) 720mesg_handle=wi_handle%(9) 730copy_handle=wi_handle%(10) 740PROCset_indirected(info_handle,4,version$) 750handle=typ1_handle 760ENDPROC 770 780DEFPROCsetup_menus 790PROCread_menu_data(6) 800FOR menu=1 TO 6 810 PROCmake_menu(menu) 820NEXT 830PROCtick_item(6,1) 840no_mmd=wm_nopts(1)-1 850ENDPROC 860 870DEFPROCmain_loop 880initialised=TRUE 890mask=%10001100000000000000000000000000 900REPEAT 910 SYS "Wimp_Poll",mask,block% TO reason% 920 CASE reason% OF 930 WHEN 2:SYS "Wimp_OpenWindow",,block% 940 WHEN 3:SYS "Wimp_CloseWindow",,block% 950 WHEN 6:PROCclick_icon 960 WHEN 7:PROCend_user_drag 970 WHEN 8:PROCkey_press 980 WHEN 9:PROCmenu_selection 990 WHEN 17,18:PROCreceive 1000 ENDCASE 1010UNTIL quit 1020ENDPROC 1030 1040DEFPROCreceive 1050CASE block%!16 OF 1060 WHEN 0 :PROCshutdown 1070 WHEN 2 :PROCdatasave 1080 WHEN 3 :PROCdataload 1090 WHEN &400C1:PROCread_vdu 1100ENDCASE 1110ENDPROC 1120 1130DEFPROCkey_press 1140key=block%!24 1150window_handle=!block% 1160icon_handle=block%!4 1170CASE key OF 1180 WHEN 13 :PROCreturn 1190 OTHERWISE:SYS"Wimp_ProcessKey",key 1200ENDCASE 1210ENDPROC 1220 1230DEFPROCreturn 1240CASE window_handle OF 1250 WHEN crme_handle:PROCend_alter_menu 1260 WHEN itin_handle:PROCend_alter_item 1270 WHEN save_handle:IF key=13 THEN PROCquicksave 1280ENDCASE 1290ENDPROC 1300 1310DEFPROCmenu_selection 1320option$=FNwhat_selection 1330CASE option$ OF 1340 WHEN "1.Clear":PROCclear_it 1350 WHEN "1.Quit":PROCquit_program 1360 WHEN "1.Copy files":PROCcopy_files 1370 WHEN "2.New menu":PROCnew_menu 1380 WHEN "3.Main menu item":PROCmainmenu_item 1390 WHEN "3.Submenu item":PROCsubmenu_item 1400ENDCASE 1410IF os_menu=2 AND RIGHT$(option$,6)="Delete":PROCdelete_menu 1420IF os_menu=2 AND RIGHT$(option$,4)="type":PROCalter_menu 1430IF os_menu=3 AND RIGHT$(option$,6)="Delete":PROCdelete_item 1440IF os_menu=3 AND RIGHT$(option$,4)="info":PROCalter_item 1450IF os_menu=3 AND RIGHT$(option$,4)="menu":PROCmake_submenu 1460ENDPROC 1470 1480DEFPROCclick_icon 1490xpos=!block%:ypos=block%!4 1500button=block%!8:window=block%!12:icon=block%!16 1510CASE window OF 1520 WHEN -2 :PROCicon_bar_click 1530 WHEN list_handle:PROClist_click 1540 WHEN handle :PROChandle_click 1550 WHEN crme_handle:PROCcrme_click 1560 WHEN itin_handle:PROCitin_click 1570 WHEN save_handle:PROCsave_file_click 1580ENDCASE 1590block%!12=window:block%!16=icon:block%!8=0 1600ENDPROC 1610 1620DEFPROCicon_bar_click 1630CASE button OF 1640 WHEN 4:PROCopen_ib_window 1650 WHEN 2:os_menu=1:PROCshowmenu(icon_menu,!block%-64,140+(no_mmd*44)) 1660ENDCASE 1670ENDPROC 1680 1690DEFPROCend_user_drag 1700minx=!block%:miny=block%!4 1710maxx=block%!8:maxy=block%!12 1720SYS"Wimp_GetPointerInfo",,block% 1730destination=block%!12 1740icon=block%!16 1750CASE current_drag OF 1760 WHEN 1:PROCstart_save 1770 WHEN 2:PROCmove_option 1780ENDCASE 1790ENDPROC 1800 1810DEFPROCstart_save 1820block%!20=destination:block%!24=block%!16 1830block%!28=!block%:block%!32=block%!4 1840block%!36=(12*1024):!block%=64 1850block%!12=0:block%!16=1:block%!40=&2000 1860file$=FNget_indirected(save_handle,1) 1870leaf$=FNgetleaf(file$) 1880IF LEFT$(leaf$,1)<>"!" THEN leaf$="!"+leaf$ 1890$(block%+44)=leaf$ 1900SYS"Wimp_SendMessage",18,block%,destination,block%!24 1910ENDPROC 1920 1930REM ------------------------------------------------------------------ 1940 1950DEFPROCcrme_click 1960CASE icon OF 1970 WHEN 6:PROCend_alter_menu 1980 WHEN 8:PROCclose_window(crme_handle) 1990ENDCASE 2000ENDPROC 2010 2020DEFPROCsave_file_click 2030CASE icon OF 2040 WHEN 0:IF button AND 64 PROCdragbox 2050 WHEN 2:IF button AND 5 PROCquicksave 2060ENDCASE 2070ENDPROC 2080 2090DEFPROCitin_click 2100CASE icon OF 2110 WHEN 9:PROCclose_window(itin_handle) 2120 WHEN 10:PROCend_alter_item 2130ENDCASE 2140ENDPROC 2150 2160DEFPROClist_click 2170CASE button OF 2180 WHEN 4:IF mname$(icon)<>"" THEN PROCselect_current_menu 2190 WHEN 2:PROClist_menu 2200ENDCASE 2210ENDPROC 2220 2230DEFPROChandle_click 2240ds=FALSE 2250CASE button OF 2260 WHEN 4:PROCclicked_on_icon:ds=TRUE 2270 WHEN 2:PROChandle_menu:ds=TRUE 2280ENDCASE 2290IF ds ENDPROC 2300IF icon>=18 AND icon<=35 AND (button AND 64) PROCdrag_option 2310ENDPROC 2320 2330DEFPROCquit_program 2340IF modified THEN 2350 PROCsystem_error(1,3) 2360 IF user_response<>1 ENDPROC 2370ENDIF 2380PROCshutdown 2390ENDPROC 2400 2410DEFPROCdatasave 2420PROCset_indirected(save_handle,1,FNstring(block%+44)) 2430PROCsave_it 2440block%!12=block%!8:block%!16=3:!block%=256 2450SYS"Wimp_SendMessage",18,block%,block%!20,block%!24 2460ENDPROC 2470 2480DEFPROCdataload 2490filetype=block%!40:file$=FNzero_string(block%+44) 2500window=block%!20:icon=block%!24 2510CASE window OF 2520 WHEN -2:PROCicon_bar_drag 2530 WHEN handle:PROCadd_menu_drag 2540 WHEN copy_handle:PROCcopy_file 2550ENDCASE 2560ENDPROC 2570 2580DEFPROCicon_bar_drag 2590IF filetype<>&2000 PROCerror(2,1):ENDPROC 2600PROCload_file 2610ENDPROC 2620 2630DEFPROCadd_menu_drag 2640PROCclose_window(itin_handle) 2650modified=TRUE 2660newpos=no_opts(current_menu)+1 2670IF newpos=256 newpos=0 2680IF newpos>17 THEN 2690 PROCerror(3,1) 2700 ENDPROC 2710ENDIF 2720no_opts(current_menu)=newpos:fname$(current_menu,newpos)=file$ 2730text$(current_menu,newpos)=FNfile(file$):ftype(current_menu,newpos)=filetype 2740act=1 2750CASE filetype OF 2760 WHEN &1000:sprite$(current_menu,newpos)="directory":act=2 2770 WHEN &2000:sprite$(current_menu,newpos)=text$(current_menu,newpos):act=3 2780 OTHERWISE: sprite$(current_menu,newpos)="file_"+STR$~filetype:act=3 2790ENDCASE 2800action(current_menu,newpos)=act 2810PROCredo_all_icons 2820ENDPROC 2830 2840DEFFNfile(fn$) 2850in=LEN(fn$)+1 2860REPEAT 2870 in-=1 2880UNTIL MID$(fn$,in,1)="." 2890=RIGHT$(fn$,LEN(fn$)-in) 2900 2910DEFPROCredo_all_icons 2920plus=18:to=17:title=36 2930FOR icn=0 TO to 2940 PROCset_indirected(handle,icn,text$(current_menu,icn)) 2950 PROCset_indirected(handle,icn+plus,sprite$(current_menu,icn)) 2960 PROCunset_bit(handle,icn+plus,21) 2970NEXT 2980PROCset_indirected(handle,title,mname$(current_menu)) 2990PROCsize_window 3000SYS"Wimp_ForceRedraw",handle,0,-1800,1200,0 3010ENDPROC 3020 3030DEFPROCsize_window 3040n=no_opts(current_menu) 3050IF n=255 n=-1 3060CASE handle OF 3070 WHEN typ1_handle:PROCtype1_size 3080 WHEN typ2_handle:PROCtype2_size 3090 WHEN typ3_handle:PROCtype3_size 3100ENDCASE 3110ENDPROC 3120 3130DEFPROCtype1_size 3140n+=1:x=640:y=160+(n*88) 3150!block%=0:block%!4=-y:block%!8=x:block%!12=0 3160SYS"Wimp_SetExtent",handle,block% 3170IF n>10 THEN y=160+(10*88) 3180!block%=handle 3190SYS"Wimp_GetWindowState",,block% 3200block%!12=block%!4+x:block%!16=block%!8+y 3210SYS"Wimp_OpenWindow",,block% 3220ENDPROC 3230 3240DEFPROCtype2_size 3250y=(n DIV 2)+1 3260IF n>(y*2) THEN y+=1 3270x=1080:y=132+(y*88) 3280!block%=handle 3290SYS"Wimp_GetWindowState",,block% 3300block%!12=block%!4+x:block%!16=block%!8+y 3310SYS"Wimp_OpenWindow",,block% 3320ENDPROC 3330 3340DEFPROCtype3_size 3350y=(n DIV 3)+1 3360IF n>(y*3) THEN y+=1 3370x=872:y=120+(y*132) 3380!block%=handle 3390SYS"Wimp_GetWindowState",,block% 3400block%!12=block%!4+x:block%!16=block%!8+y 3410SYS"Wimp_OpenWindow",,block% 3420ENDPROC 3430 3440DEFPROClist_menu 3450os_menu=2 3460IF icon>=0 AND icon<=20 THEN wm_data$(2,2)="Menu '"+mname$(icon)+"'" 3470PROCmake_menu(2) 3480IF RIGHT$(wm_data$(2,2),2)="''" THEN PROCgrey_item(2,2) 3490PROCshowmenu(menus_menu,!block%-64,block%!4) 3500ENDPROC 3510 3520DEFPROChandle_menu 3530item=FNicon_to_item(icon) 3540os_menu=3 3550it$="Item '" 3560IF item>=0 AND item<=40 THEN 3570 it$=it$+text$(current_menu,item)+"'" 3580ELSE 3590 it$+="'" 3600ENDIF 3610wm_data$(3,1)=it$ 3620PROCmake_menu(3) 3630IF RIGHT$(it$,2)="''" THEN PROCgrey_item(3,1) 3640PROCshowmenu(items_menu,!block%-64,block%!4) 3650ENDPROC 3660 3670DEFPROCopen_ib_window 3680PROCopen_window(list_handle) 3690PROCredraw_list 3700PROCredo_all_icons 3710ENDPROC 3720 3730DEFPROCdelete_menu 3740IF icon=0 THEN PROCerror(4,1):ENDPROC 3750error$="Are you sure you want to delete the menu '"+mname$(icon)+"'?" 3760PROCreport_error(error$,3) 3770IF user_response=2 ENDPROC 3780modified=TRUE 3790IF icon=current_menu THEN 3800 current_menu=0 3810 PROCclose_window(handle) 3820ENDIF 3830FOR loop=icon TO 18 3840 no_opts(loop)=no_opts(loop+1) 3850 type(loop)=type(loop+1) 3860 mname$(loop)=mname$(loop+1) 3870 FOR subloop=0 TO 40 3880 action(loop,subloop)=action(loop+1,subloop) 3890 fname$(loop,subloop)=fname$(loop+1,subloop) 3900 text$(loop,subloop)=text$(loop+1,subloop) 3910 sprite$(loop,subloop)=sprite$(loop+1,subloop) 3920 ftype(loop,subloop)=ftype(loop+1,subloop) 3930 NEXT 3940NEXT 3950mname$(19)="" 3960num_mens-=1 3970PROCredraw_list 3980ENDPROC 3990 4000DEFPROCdelete_item 4010PROCclose_window(itin_handle) 4020item=FNicon_to_item(icon) 4030modified=TRUE 4040FOR loop=item TO 17 4050 action(current_menu,loop)=action(current_menu,loop+1) 4060 fname$(current_menu,loop)=fname$(current_menu,loop+1) 4070 text$(current_menu,loop)=text$(current_menu,loop+1) 4080 sprite$(current_menu,loop)=sprite$(current_menu,loop+1) 4090 ftype(current_menu,loop)=ftype(current_menu,loop+1) 4100NEXT 4110no_opts(current_menu)-=1 4120PROCredo_all_icons 4130ENDPROC 4140 4150DEFPROCnew_menu 4160IF num_mens=20 THEN 4170 PROCerror(5,1) 4180 ENDPROC 4190ENDIF 4200inm=TRUE 4210alter_menu=num_mens 4220PROCcentre_window(crme_handle,508,480) 4230PROCset_indirected(crme_handle,7,"New menu") 4240PROCset_bit(crme_handle,2,21) 4250PROCunset_bit(crme_handle,3,21):PROCunset_bit(crme_handle,4,21) 4260PROCcaret(crme_handle,7) 4270ENDPROC 4280 4290DEFPROCalter_menu 4300IF icon<0 OR icon>19 THEN PROCerror(6,1) 4310inm=FALSE 4320alter_menu=icon 4330PROCcentre_window(crme_handle,508,480) 4340PROCset_indirected(crme_handle,7,mname$(alter_menu)) 4350PROCunset_bit(crme_handle,2,21):PROCunset_bit(crme_handle,3,21) 4360PROCunset_bit(crme_handle,4,21) 4370ty=type(alter_menu) 4380IF ty<1 OR ty>3 THEN PROCerror(7,1) 4390PROCset_bit(crme_handle,1+ty,21) 4400PROCcaret(crme_handle,7) 4410ENDPROC 4420 4430DEFPROCend_alter_menu 4440PROCclose_window(crme_handle) 4450menname$=FNget_indirected(crme_handle,7) 4460IF inm AND FNmenu_exist(menname$) PROCerror(15,1):ENDPROC 4470IF inm THEN num_mens+=1 4480IF mname$(alter_menu)<>"" PROCmenu_exists 4490mname$(alter_menu)=menname$ 4500PROCset_indirected(list_handle,alter_menu,mname$(alter_menu)) 4510ty=1 4520IF FNget_state(crme_handle,2) THEN ty=1 4530IF FNget_state(crme_handle,3) THEN ty=2 4540IF FNget_state(crme_handle,4) THEN ty=3 4550type(alter_menu)=ty 4560IF current_menu=alter_menu THEN 4570 PROCclose_window(handle) 4580 CASE type(current_menu) OF 4590 WHEN 1:handle=typ1_handle 4600 WHEN 2:handle=typ2_handle 4610 WHEN 3:handle=typ3_handle 4620 ENDCASE 4630 PROCopen_window(handle) 4640 PROCredo_all_icons 4650ENDIF 4660PROCredraw_list 4670modified=TRUE 4680ENDPROC 4690 4700DEFPROCmenu_exists 4710FOR menu=0 TO num_mens-1 4720 IF no_opts(menu)<>255 PROCmenu_ex 4730NEXT 4740ENDPROC 4750 4760DEFPROCmenu_ex 4770FOR item=0 TO no_opts(menu) 4780 IF action(menu,item)=1 AND fname$(menu,item)=mname$(alter_menu) THEN 4790 fname$(menu,item)=menname$ 4800 ENDIF 4810NEXT 4820ENDPROC 4830 4840DEFPROCselect_current_menu 4850current_menu=icon 4860SYS"Wimp_ForceRedraw",list_handle,0,-820,220,0 4870PROCclose_window(handle) 4880handle=wi_handle%(type(current_menu)+4) 4890data=wi_data%(type(current_menu)+4) 4900PROCopen_window(handle) 4910PROCredo_all_icons 4920PROCredraw_list 4930PROCclose_window(itin_handle) 4940ENDPROC 4950 4960DEFPROCredraw_list 4970FOR icon=0 TO 19 4980 PROCset_indirected(list_handle,icon," "+FNm(icon)) 4990 IF icon=current_menu THEN PROCset_indirected(list_handle,icon,"* "+FNm(icon)) 5000NEXT 5010PROClist_size 5020SYS"Wimp_ForceRedraw",list_handle,0,-1000,220,0 5030ENDPROC 5040 5050DEFPROClist_size 5060x=220:y=24+(num_mens*40) 5070IF y<=144 THEN y=144 5080!block%=0:block%!4=-y:block%!8=x:block%!12=0 5090SYS"Wimp_SetExtent",list_handle,block% 5100IF num_mens>10 THEN y=424 5110!block%=list_handle 5120SYS"Wimp_GetWindowState",,block% 5130block%!12=block%!4+x:block%!16=block%!8+y 5140SYS"Wimp_OpenWindow",,block% 5150ENDPROC 5160 5170DEFPROCalter_item 5180PROCcentre_window(itin_handle,528,680) 5190item=FNicon_to_item(icon) 5200alter_item=item 5210PROCset_indirected(itin_handle,8,fname$(current_menu,item)) 5220PROCset_indirected(itin_handle,5,text$(current_menu,item)) 5230PROCset_indirected(itin_handle,2,sprite$(current_menu,item)) 5240PROCset_indirected(itin_handle,1,sprite$(current_menu,item)) 5250act=action(current_menu,item):act$="????" 5260CASE act OF 5270 WHEN 1:act$="Open menu:" 5280 WHEN 2:act$="Open dir:" 5290 WHEN 3:act$="Run file:" 5300ENDCASE 5310PROCset_indirected(itin_handle,13,act$) 5320PROCcaret(itin_handle,2) 5330ENDPROC 5340 5350DEFPROCend_alter_item 5360IF alter_item=-1 PROCminus_one 5370IF alter_item>=100 THEN 5380 alter_item-=100 5390 PROCcreate_alter_submenu 5400ENDIF 5410fname$(current_menu,alter_item)=FNget_indirected(itin_handle,8) 5420text$(current_menu,alter_item)=FNget_indirected(itin_handle,5) 5430sprite$(current_menu,alter_item)=FNget_indirected(itin_handle,2) 5440PROCclose_window(itin_handle) 5450PROCredo_all_icons 5460modified=TRUE 5470ENDPROC 5480 5490DEFPROCminus_one 5500IF num_mens=20 THEN 5510 PROCerror(5,1) 5520 ENDPROC 5530ENDIF 5540newpos=no_opts(current_menu)+1 5550IF newpos=256 newpos=0 5560IF newpos>17 THEN 5570 PROCerror(3,1) 5580 ENDPROC 5590ENDIF 5600no_opts(current_menu)=newpos 5610alter_item=newpos 5620action(current_menu,newpos)=1 5630n$=FNget_indirected(itin_handle,8) 5640IF FNmenu_exist(n$) THEN PROCerror(15,1):ENDPROC 5650num_mens+=1 5660n=num_mens-1 5670mname$(n)=n$ 5680type(n)=1 5690no_opts(n)=255 5700PROCredraw_list 5710ENDPROC 5720 5730DEFPROCcreate_alter_submenu 5740IF num_mens=20 THEN 5750 PROCerror(5,1) 5760 ENDPROC 5770ENDIF 5780num_mens+=1 5790n=num_mens-1 5800mname$(n)=FNrz(FNgetleaf(fname$(current_menu,alter_item))) 5810type(n)=1 5820action(current_menu,alter_item)=1 5830CASE ftype(current_menu,alter_item) OF 5840 WHEN &1000:PROCsubmenu_dir 5850 OTHERWISE:PROCsubmenu_file 5860ENDCASE 5870modified=TRUE 5880PROCredo_all_icons 5890PROCredraw_list 5900ENDPROC 5910 5920DEFPROCsubmenu_file 5930no_opts(n)=2 5940fname$(n,0)=fname$(current_menu,alter_item):text$(n,0)="!Run" 5950ftype(n,0)=ftype(current_menu,alter_item) 5960sprite$(n,0)=sprite$(current_menu,alter_item):action(n,0)=3 5970f$=fname$(current_menu,alter_item) 5980leaf$=FNgetleaf(f$) 5990dir$=LEFT$(f$,LEN(f$)-LEN(leaf$)) 6000fname$(n,1)=dir$:text$(n,1)="Open Directory" 6010ftype(n,1)=&1000:sprite$(n,1)="directory":action(n,1)=2 6020fname$(n,2)="Main Menu":text$(n,2)="Main Menu" 6030ftype(n,2)=0:sprite$(n,2)="menu":action(n,2)=1 6040ENDPROC 6050 6060DEFPROCsubmenu_dir 6070no_opts(n)=1 6080fname$(n,0)=fname$(current_menu,alter_item):text$(n,0)="Open Directory" 6090ftype(n,0)=ftype(current_menu,alter_item) 6100sprite$(n,0)=sprite$(current_menu,alter_item):action(n,0)=2 6110fname$(n,1)="Main Menu":text$(n,1)="Main Menu" 6120ftype(n,1)=0:sprite$(n,1)="menu":action(n,1)=1 6130ENDPROC 6140 6150DEFPROCquicksave 6160file$=FNget_indirected(save_handle,1) 6170leaf$=FNgetleaf(file$) 6180IF LEFT$(leaf$,1)<>"!" THEN leaf$="!"+leaf$ 6190IF INSTR(file$,".") THEN 6200 PROCsave_it 6210ELSE 6220 PROCerror(9,1) 6230ENDIF 6240ENDPROC 6250 6260DEFPROCsave_it 6270oldname$=filename$ 6280make=FNget_state(save_handle,3) 6290filename$=FNget_indirected(save_handle,1) 6300l$=FNgetleaf(filename$):r$=LEFT$(filename$,LEN(filename$)-LEN(l$)) 6310IF LEFT$(l$,1)<>"!" filename$=r$+"!"+l$ 6320OSCLI"CDir "+filename$ 6330OSCLI"CDir "+filename$+".Programs" 6340$sname="!menu" 6350$rename=leaf$ 6360SYS"OS_SpriteOp",256+26,psprites,sname,rename 6370$fname=filename$+".!Sprites" 6380SYS"OS_SpriteOp",256+12,psprites,fname 6390SYS"OS_SpriteOp",256+26,psprites,rename,sname 6400IF make THEN 6410 PROCappend_the_sprites 6420 $fname=filename$+".Sprites" 6430 SYS"OS_SpriteOp",256+12,usprites,fname 6440 PROCdelete_sprites 6450ENDIF 6460PROCsave_prog_file(filename$+".!RunImage","Basic",runimage,ri_length) 6470PROCsave_prog_file(filename$+".!Run","Obey",run,ru_length) 6480PROCsave_prog_file(filename$+".Templates","fec",temps,te_length) 6490PROCsave_load_data(TRUE) 6500PROCclose_window(save_handle) 6510modified=FALSE 6520SYS"Wimp_CreateMenu",,-1 6530IF oldname$<>"" AND oldname$<>"<Obey$Dir>" AND oldname$<>filename$ PROCconfirm_copy 6540ENDPROC 6550 6560DEFPROCconfirm_copy 6570error$(18)=" Do you wish to copy the programs from "+oldname$+" to the new save? (Cancel aborts)" 6580PROCerror(18,3) 6590IF user_response=2 ENDPROC 6600*Set OldCopy$Options <Copy$Options> 6610*Set Copy$Options A ~C ~D ~F ~L ~N ~P ~Q R ~S ~T ~V 6620A$="Copy "+oldname$+".Programs "+filename$+".Programs" 6630OSCLI A$ 6640*Set Copy$Options <OldCopy$Options> 6650ENDPROC 6660 6670DEFPROCsave_load_data(s) 6680F$=filename$+".MenuData" 6690IF s X=OPENOUT F$ ELSE X=OPENIN F$ 6700IF X=0 PROCsl_error:ENDPROC 6710r=82:m=77:l=76 6720IF s BPUT#X,82 ELSE r=BGET#X 6730IF s BPUT#X,77 ELSE m=BGET#X 6740IF s BPUT#X,76 ELSE l=BGET#X 6750IF NOT s AND ((r+m+l)<>235) THEN PROCsl_error:ENDPROC 6760IF s BPUT#X,num_mens ELSE num_mens=BGET#X 6770IF s PRINT#X,make ELSE INPUT#X,make 6780FOR menu=0 TO num_mens-1 6790 IF s PRINT#X,mname$(menu) ELSE INPUT#X,mname$(menu) 6800 IF s BPUT#X,type(menu) ELSE type(menu)=BGET#X 6810 IF s BPUT#X,no_opts(menu) ELSE no_opts(menu)=BGET#X 6820 IF no_opts(menu)<>255 THEN PROCsl_each 6830NEXT 6840CLOSE#X 6850IF s OSCLI"SetType "+F$+" Data" 6860IF NOT s OSCLI"Iconsprites "+filename$+".Sprites" 6870modified=FALSE 6880ENDPROC 6890 6900DEFPROCsl_each 6910FOR item=0 TO no_opts(menu) 6920 IF s BPUT#X,action(menu,item) ELSE action(menu,item)=BGET#X 6930 IF s PRINT#X,fname$(menu,item) ELSE INPUT#X,fname$(menu,item) 6940 IF s PRINT#X,text$(menu,item) ELSE INPUT#X,text$(menu,item) 6950 IF s PRINT#X,sprite$(menu,item) ELSE INPUT#X,sprite$(menu,item) 6960 IF s PRINT#X,ftype(menu,item) ELSE INPUT#X,ftype(menu,item) 6970NEXT 6980ENDPROC 6990 7000DEFPROCsl_error 7010CLOSE#0 7020PROCerror(10,1) 7030ENDPROC 7040 7050DEFPROCload_app_stuff 7060PROCcreate_sprite_area("<Menaker$Dir>.Menu.Sprites",usprites,80*1024) 7070PROCcreate_sprite_area("<Menaker$Dir>.Menu.!Sprites",psprites,512) 7080ri_length=FNload_prog_file("<Menaker$Dir>.Menu.!RunImage",runimage) 7090ru_length=FNload_prog_file("<Menaker$Dir>.Menu.!Run",run) 7100te_length=FNload_prog_file("<Menaker$Dir>.Menu.Templates",temps) 7110ENDPROC 7120 7130DEFFNload_prog_file(n$,m) 7140$fname=n$ 7150SYS"OS_File",17,fname TO ,,,,l 7160OSCLI"Load "+n$+" "+STR$~m 7170=l 7180 7190DEFPROCsave_prog_file(n$,t$,m,l) 7200OSCLI"Save "+n$+" "+STR$~m+" +"+STR$~l 7210OSCLI"Settype "+n$+" "+t$ 7220ENDPROC 7230 7240DEFPROCcreate_sprite_area(n$,m,size) 7250!m=size:m!4=0:m!8=16:m!12=16 7260SYS"OS_SpriteOp",256+9,m 7270$fname=n$ 7280SYS"OS_SpriteOp",256+10,m,fname 7290ENDPROC 7300 7310DEFFNicon_to_item(icn) 7320it=icn 7330IF it>17 THEN it-=18 7340=it 7350 7360DEFPROCload_file 7370IF modified THEN 7380 PROCerror(11,3) 7390 IF user_response=2 ENDPROC 7400ENDIF 7410PROCclear_data 7420filename$=file$ 7430PROCsave_load_data(FALSE) 7440PROCclose_window(handle) 7450CASE type(current_menu) OF 7460 WHEN 1:handle=typ1_handle 7470 WHEN 2:handle=typ2_handle 7480 WHEN 3:handle=typ3_handle 7490ENDCASE 7500PROCopen_window(handle) 7510PROCredo_all_icons 7520PROCredraw_list 7530PROCset_indirected(save_handle,1,file$) 7540modified=FALSE 7550OSCLI"Set MenakerServer$Dir "+filename$ 7560ENDPROC 7570 7580DEFPROCclear_it 7590user_response=1 7600IF modified THEN PROCerror(12,3) 7610IF user_response=1 THEN 7620 PROCclear_data 7630 PROCredo_all_icons 7640 PROCredraw_list 7650ENDIF 7660ENDPROC 7670 7680DEFPROCclear_data 7690no_opts()=255:type()=1 7700mname$()="":mname$(0)="Main Menu":action()=0:fname$()="" 7710text$()="":sprite$()="":ftype()=0 7720type=1:current_menu=0:num_mens=1:alter_item=-1:modified=FALSE 7730filename$="" 7740PROCclose_window(copy_handle) 7750PROCset_indirected(save_handle,1,"!MenuFile") 7760ENDPROC 7770 7780DEFPROCappend_the_sprites 7790SYS"OS_SpriteOp",256+8,usprites TO ,,,num 7800check$()="":cc=0 7810FOR menu=0 TO num_mens-1 7820 IF no_opts(menu)<>255 PROCa_b 7830NEXT 7840ENDPROC 7850 7860DEFPROCa_b 7870FOR option=0 TO no_opts(menu) 7880 fi$=fname$(menu,option) 7890 IF action(menu,option)<>1 AND ftype(menu,option)=&2000 AND FNnot_there THEN 7900 PROCappend_sprites(fname$(menu,option)) 7910 IF LEN(check$(cc))>=240 THEN cc+=1 7920 check$(cc)+=fi$ 7930 ENDIF 7940NEXT 7950ENDPROC 7960 7970DEFFNnot_there 7980found=FALSE 7990fi$=FNgetleaf(fi$) 8000FOR c=0 TO cc 8010 IF INSTR(check$(c),fi$) THEN found=TRUE:c=cc 8020NEXT 8030=NOT found 8040 8050DEFPROCdelete_sprites 8060SYS"OS_SpriteOp",256+8,usprites TO ,,,num 8070IF num=1 ENDPROC 8080FOR n=1 TO num-1 8090 SYS"OS_SpriteOp",256+13,usprites,sname,256,2 TO ,,,length 8100 SYS"OS_SpriteOp",256+25,usprites,sname 8110NEXT 8120ENDPROC 8130 8140DEFPROCappend_sprites(f$) 8150leaf$=FNalpha(FNgetleaf(f$)) 8160leaf$=LEFT$(leaf$,LEN(leaf$)-1) 8170fn$=f$+".!Sprites" 8180$fname=fn$ 8190X=OPENIN fn$ 8200CLOSE#X 8210IF X=0 THEN 8220 PROCreport_error("Can't find sprite file for "+f$+", but will continue...",1) 8230 ENDPROC 8240ENDIF 8250SYS"OS_SpriteOp",256+11,usprites,fname 8260old_num=num+1 8270REPEAT 8280 SYS"OS_SpriteOp",256+8,usprites TO ,,,num 8290 d=FALSE 8300 FOR s=old_num TO num 8310 SYS"OS_SpriteOp",256+13,usprites,sname,256,s TO ,,,length 8320 sprite$=FNalpha(FNget_name(sname)) 8330 IF sprite$<>leaf$ THEN 8340 $sname=sprite$ 8350 SYS"OS_SpriteOp",256+25,usprites,sname 8360 s=num 8370 d=TRUE 8380 ENDIF 8390 NEXT 8400UNTIL d=FALSE 8410SYS"OS_SpriteOp",256+8,usprites TO ,,,num 8420ENDPROC 8430 8440DEFFNm(n) 8450=LEFT$(mname$(icon),10) 8460 8470DEFPROCread_errors 8480error$(0)="Sorry, but there's a problem : Please find !Fonts and try loading again." 8490error$(1)="There is unsaved data. Are you sure you want to quit? (Cancel aborts)" 8500error$(2)="The file you dragged is not a recognised menu." 8510error$(3)="Sorry, but this version of the program will not support more items." 8520error$(4)="Sorry, but you can't delete the main menu - I'd only get confused if you did." 8530error$(5)="Sorry, but you can't have any more menus in this version of the program." 8540error$(6)="How did you manage that? You can't alter a non-existant menu!" 8550error$(7)="How did you manage that? You've selected an invalid type!" 8560error$(8)="" 8570error$(9)="To save, drag the icon to a directory viewer." 8580error$(10)="Sorry, there's a problem - the menu data is either not present, or corrupt" 8590error$(11)="Loading the file will overwrite existing data. Are you sure you want to? (Cancel aborts)" 8600error$(12)="Are you sure - All data will be lost? (Cancel aborts)" 8610error$(13)="Fatal error - must exit." 8620error$(14)="To load the sprites for this file, you must increase Module area." 8630error$(15)="A menu of that name already exists." 8640error$(16)="Before copying files, you must have saved the menu." 8650ENDPROC 8660 8670DEFPROCsystem_error(n,c) 8680PROCreport_error(error$(n),c) 8690ENDPROC 8700 8710DEFPROCerror(n,c) 8720PROCset_bit(mesg_handle,1,23) 8730IF c=3 THEN PROCunset_bit(mesg_handle,1,23) 8740PROCset_indirected(mesg_handle,0,error$(n)) 8750x=728:y=276 8760PROCcentre_window(mesg_handle,728,276) 8770MOUSE RECTANGLE block%!4,block%!8,x,y 8780VDU7 8790REPEAT 8800 SYS "Wimp_Poll",mask,block% TO reason% 8810 CASE reason% OF 8820 WHEN 6:PROCclick_icon 8830 WHEN 17,18:PROCreceive 8840 ENDCASE 8850UNTIL reason%=6 8860icon=block%!16 8870IF icon=1 user_response=2 ELSE user_response=1 8880MOUSE RECTANGLE 0,0,xr,yr 8890PROCclose_window(mesg_handle) 8900ENDPROC 8910 8920DEFPROCmainmenu_item 8930modified=TRUE 8940newpos=no_opts(current_menu)+1 8950IF newpos=256 newpos=0 8960IF newpos>17 THEN 8970 PROCerror(3,1) 8980 ENDPROC 8990ENDIF 9000no_opts(current_menu)=newpos 9010fname$(current_menu,newpos)="Main Menu" 9020text$(current_menu,newpos)="Main Menu" 9030ftype(current_menu,newpos)=0 9040sprite$(current_menu,newpos)="menu" 9050action(current_menu,newpos)=1 9060PROCredo_all_icons 9070ENDPROC 9080 9090DEFPROCdragbox 9100PROCstart_drag(save_handle,0) 9110current_drag=1 9120ENDPROC 9130 9140DEFPROCdrag_option 9150modified=TRUE 9160current_drag=2 9170f_dragged=FNicon_to_item(icon) 9180IF f_dragged>no_opts(current_menu) ENDPROC 9190PROCstart_drag(handle,icon) 9200ENDPROC 9210 9220DEFPROCmove_option 9230IF destination<>handle ENDPROC 9240IF icon<0 OR icon>35 ENDPROC 9250s_dragged=FNicon_to_item(icon) 9260IF f_dragged=s_dragged ENDPROC 9270IF s_dragged>no_opts(current_menu) ENDPROC 9280a=action(current_menu,f_dragged) 9290f$=fname$(current_menu,f_dragged) 9300t$=text$(current_menu,f_dragged) 9310s$=sprite$(current_menu,f_dragged) 9320f=ftype(current_menu,f_dragged) 9330IF f_dragged<s_dragged THEN f=f_dragged+1:t=s_dragged:p=-1:s=1 9340IF f_dragged>s_dragged THEN f=f_dragged-1:t=s_dragged:p=1:s=-1 9350FOR d=f TO t STEP s 9360 action(current_menu,d+p) =action(current_menu,d) 9370 fname$(current_menu,d+p) =fname$(current_menu,d) 9380 text$(current_menu,d+p) =text$(current_menu,d) 9390 sprite$(current_menu,d+p)=sprite$(current_menu,d) 9400 ftype(current_menu,d+p) =ftype(current_menu,d) 9410NEXT 9420action(current_menu,s_dragged)=a 9430fname$(current_menu,s_dragged)=f$ 9440text$(current_menu,s_dragged)=t$ 9450sprite$(current_menu,s_dragged)=s$ 9460ftype(current_menu,s_dragged)=f 9470PROCredo_all_icons 9480ENDPROC 9490 9500DEFPROCmake_submenu 9510item=FNicon_to_item(icon) 9520IF FNmenu_exist(text$(current_menu,item)) THEN PROCerror(15,1):ENDPROC 9530alter_item=item+100 9540PROCset_indirected(itin_handle,8,text$(current_menu,item)) 9550PROCset_indirected(itin_handle,5,text$(current_menu,item)) 9560PROCset_indirected(itin_handle,2,sprite$(current_menu,item)) 9570PROCset_indirected(itin_handle,1,sprite$(current_menu,item)) 9580PROCset_indirected(itin_handle,13,"Open menu:") 9590PROCcentre_window(itin_handle,528,680) 9600PROCcaret(itin_handle,2) 9610ENDPROC 9620 9630DEFPROCsubmenu_item 9640alter_item=-1 9650PROCset_indirected(itin_handle,8,"Submenu") 9660PROCset_indirected(itin_handle,5,"Submenu") 9670PROCset_indirected(itin_handle,2,"menu") 9680PROCset_indirected(itin_handle,1,"menu") 9690PROCset_indirected(itin_handle,13,"Open menu:") 9700PROCcentre_window(itin_handle,528,680) 9710PROCcaret(itin_handle,2) 9720ENDPROC 9730 9740DEFFNmenu_exist(A$) 9750m=255:e=FALSE 9760FOR n=0 TO 20 9770 IF mname$(n)=A$ THEN m=n:e=TRUE 9780NEXT 9790=e 9800 9810DEFPROCcopy_files 9820IF filename$="" PROCerror(16,1):ENDPROC 9830PROCcentre_window(copy_handle,620,156) 9840OSCLI"Set MenakerServer$Dir "+filename$ 9850ENDPROC 9860 9870DEFPROCcopy_file 9880l=LEN(file$) 9890l$=FNgetleaf(file$) 9900FOR menu=0 TO num_mens-1 9910 FOR item=0 TO no_opts(menu) 9920 fn$=fname$(menu,item) 9930 IF LEFT$(fn$,l)=file$ THEN PROCcopy_gotone 9940 NEXT 9950NEXT 9960PROCsave_load_data(TRUE) 9970*Set OldCopy$Options <Copy$Options> 9980*Set Copy$Options A ~C ~D ~F ~L ~N ~P ~Q R ~S ~T ~V 9990A$="Copy "+file$+" "+filename$+".Programs."+l$ 10000OSCLI A$ 10010*Set Copy$Options <OldCopy$Options> 10020ENDPROC 10030 10040DEFPROCcopy_gotone 10050n$=RIGHT$(fn$,LEN(fn$)-l+LEN(l$)-1) 10060fname$(menu,item)="<MenakerServer$Dir>.Programs."+n$ 10070ENDPROC 10080 10090DEFPROCclicked_on_icon 10100IF filename$="" filename$="<Obey$Dir>" 10110OSCLI"Set MenakerServer$Dir "+filename$ 10120SYS"OS_Byte",21 10130item=FNicon_to_item(icon) 10140IF action(current_menu,item)=1 THEN PROCnew_menu_found:ENDPROC 10150IF action(current_menu,item)=2 THEN PROCopen_dir_found 10160IF action(current_menu,item)=3 THEN PROCrun_file_found 10170ENDPROC 10180 10190DEFPROCrun_file_found 10200IF NOT runfiles ENDPROC 10210OSCLI"Filer_Run "+fname$(current_menu,item) 10220ENDPROC 10230 10240DEFPROCopen_dir_found 10250IF NOT runfiles ENDPROC 10260OSCLI"Filer_OpenDir "+fname$(current_menu,item) 10270ENDPROC 10280 10290DEFPROCnew_menu_found 10300m$=fname$(current_menu,item) 10310z=FNmenu_exist(m$) 10320IF m$="Main Menu" m=0 10330IF m>=0 AND m<=20 THEN 10340 current_menu=m 10350 PROCclose_window(handle) 10360 handle=wi_handle%(type(current_menu)+4) 10370 data=wi_data%(type(current_menu)+4) 10380 PROCopen_window(handle) 10390 PROCredo_all_icons 10400 PROCredraw_list 10410ENDIF 10420ENDPROC 10430 10440DEFPROCrun_files_from 10450IF runfiles THEN runfiles=FALSE ELSE runfiles=TRUE 10460PROCtick_item(6,1) 10470ENDPROC 10480 10490REM ------------------------------- Menu Data --------------------------- 10500 10510DATA "Menaker",6,icon_menu 10520DATA "Info",info_handle 10530DATA "Save",save_handle 10540DATA "Options",opt_menu 10550DATA "Clear",-1 10560DATA "Copy files",-1 10570DATA "Quit",-1 10580 10590DATA "Menus",2,menus_menu 10600DATA "New menu",-1 10610DATA "Menu ''",menu_menu 10620 10630DATA "Items",3,items_menu 10640DATA "Item ''",item_menu 10650DATA "Main menu item",-1 10660DATA "Submenu item",-1 10670 10680DATA "Menu",2,menu_menu 10690DATA "Delete",-1 10700DATA "Alter type",-1 10710 10720DATA "Item",3,item_menu 10730DATA "Delete",-1 10740DATA "Alter info",-1 10750DATA "Make submenu",-1 10760 10770DATA "Options",1,opt_menu 10780DATA "Run files from Menaker",-1
� >!Menaker � Menu Creation System � for Archimedes World (� �1993 Richard M. Leggett 2� 1/6/93 - 10/9/93 < Finitialised=� Pț "<Menaker$Dir>.WimpLib" Z� � �error_trap d n�initialise x�initialise_library ��install("!Menaker",68,68) ��initialise_menus(6) ��setup_windows ��setup_menus ��read_errors ��load_app_stuff � �read_vdu ��main_loop � �shutdown �� � ���error_trap ��error$="Whoops! An error has occurred, type "+�$+" "+ß+"/"+Þ+". It may be best to save, quit and start again. Attempt to continue?" � � initialised � � error$ � initialised � Ȏ � � ", � 257:�system_error(14,1):�main_loop , � 654:�system_error(0,1) 6 : @! �report_error(error$,3) J& � user_response=1 �main_loop T � ^� h� r |��initialise �� sblock% 256 �'� psprites 512, usprites 80*1024 �1� sname 16, rename 16, fname 256 �0� runimage 40*1024,temps 10*1024, run 1024 �6� icon_menu 512, menus_menu 512, items_menu 512 �4� menu_menu 512, item_menu 512, opt_menu 512 �4� action(20,40), fname$(20,40), text$(20,40) �#� sprite$(20,40), ftype(20,40) �2� no_opts(20), type(20), mname$(20) �� error$(20) �� check$(10) � �no_opts()=255:type()=1 'mname$(0)="� Archimedes World 1993" os_menu=0:quit=�:oq=� 2type=1:current_menu=0:num_mens=1:alter_item=-1 &modified=� 0prog_name$="Menaker" :version$="2.19 (14-Sep-93)" Dfilename$="" Nrunfiles=� X� b l��setup_windows v$�load_templates("<Menaker$Dir>") �info_handle=wi_handle%(1) �crme_handle=wi_handle%(2) �itin_handle=wi_handle%(3) �list_handle=wi_handle%(4) �typ1_handle=wi_handle%(5) �typ2_handle=wi_handle%(6) �typ3_handle=wi_handle%(7) �save_handle=wi_handle%(8) �mesg_handle=wi_handle%(9) �copy_handle=wi_handle%(10) �+�set_indirected(info_handle,4,version$) �handle=typ1_handle �� ��setup_menus �read_menu_data(6) � menu=1 � 6 * �make_menu(menu) 4� >�tick_item(6,1) Hno_mmd=wm_nopts(1)-1 R� \ f��main_loop pinitialised=� z*mask=%10001100000000000000000000000000 �� �* ș "Wimp_Poll",mask,block% � reason% � Ȏ reason% � �( � 2:ș "Wimp_OpenWindow",,block% �) � 3:ș "Wimp_CloseWindow",,block% � � 6:�click_icon � � 7:�end_user_drag � � 8:�key_press � � 9:�menu_selection � � 17,18:�receive � � � � quit �� ��receive Ȏ block%!16 � $ � 0 :�shutdown . � 2 :�datasave 8 � 3 :�dataload B � &400C1:�read_vdu L� V� ` j��key_press tkey=block%!24 ~window_handle=!block% �icon_handle=block%!4 �Ȏ key � � � 13 :�return � :ș"Wimp_ProcessKey",key �� �� � ���return �Ȏ window_handle � �# � crme_handle:�end_alter_menu �# � itin_handle:�end_alter_item �) � save_handle:� key=13 � �quicksave � � ��menu_selection (option$=�what_selection 2Ȏ option$ � < � "1.Clear":�clear_it F � "1.Quit":�quit_program P" � "1.Copy files":�copy_files Z � "2.New menu":�new_menu d) � "3.Main menu item":�mainmenu_item n& � "3.Submenu item":�submenu_item x� �3� os_menu=2 � �option$,6)="Delete":�delete_menu �0� os_menu=2 � �option$,4)="type":�alter_menu �3� os_menu=3 � �option$,6)="Delete":�delete_item �0� os_menu=3 � �option$,4)="info":�alter_item �2� os_menu=3 � �option$,4)="menu":�make_submenu �� � ���click_icon �xpos=!block%:ypos=block%!4 �3button=block%!8:window=block%!12:icon=block%!16 �Ȏ window � �# � -2 :�icon_bar_click � � list_handle:�list_click ! � handle :�handle_click � crme_handle:�crme_click � itin_handle:�itin_click "$ � save_handle:�save_file_click ,� 6.block%!12=window:block%!16=icon:block%!8=0 @� J T��icon_bar_click ^Ȏ button � h � 4:�open_ib_window rC � 2:os_menu=1:�showmenu(icon_menu,!block%-64,140+(no_mmd*44)) |� �� � ���end_user_drag �minx=!block%:miny=block%!4 � maxx=block%!8:maxy=block%!12 �#ș"Wimp_GetPointerInfo",,block% �destination=block%!12 �icon=block%!16 �Ȏ current_drag � � � 1:�start_save � � 2:�move_option �� �� ��start_save -block%!20=destination:block%!24=block%!16 &(block%!28=!block%:block%!32=block%!4 0"block%!36=(12*1024):!block%=64 :+block%!12=0:block%!16=1:block%!40=&2000 D(file$=�get_indirected(save_handle,1) Nleaf$=�getleaf(file$) X&� �leaf$,1)<>"!" � leaf$="!"+leaf$ b$(block%+44)=leaf$ l8ș"Wimp_SendMessage",18,block%,destination,block%!24 v� � �H� ------------------------------------------------------------------ � ���crme_click � Ȏ icon � � � 6:�end_alter_menu �$ � 8:�close_window(crme_handle) �� �� � ���save_file_click � Ȏ icon � � � 0:� button � 64 �dragbox ! � 2:� button � 5 �quicksave � � *��itin_click 4 Ȏ icon � >$ � 9:�close_window(itin_handle) H � 10:�end_alter_item R� \� f p��list_click zȎ button � �3 � 4:� mname$(icon)<>"" � �select_current_menu � � 2:�list_menu �� �� � ���handle_click �ds=� �Ȏ button � � � 4:�clicked_on_icon:ds=� � � 2:�handle_menu:ds=� �� � � ds � �6� icon>=18 � icon<=35 � (button � 64) �drag_option � ��quit_program $� modified � . �system_error(1,3) 8 � user_response<>1 � B� L �shutdown V� ` j��datasave t5�set_indirected(save_handle,1,�string(block%+44)) ~�save_it �.block%!12=block%!8:block%!16=3:!block%=256 �6ș"Wimp_SendMessage",18,block%,block%!20,block%!24 �� � ���dataload �4filetype=block%!40:file$=�zero_string(block%+44) �#window=block%!20:icon=block%!24 �Ȏ window � � � -2:�icon_bar_drag � � handle:�add_menu_drag � � copy_handle:�copy_file �� � ��icon_bar_drag #� filetype<>&2000 �error(2,1):� (�load_file 2� < F��add_menu_drag P�close_window(itin_handle) Zmodified=� d"newpos=no_opts(current_menu)+1 n� newpos=256 newpos=0 x� newpos>17 � � �error(3,1) � � �� �Bno_opts(current_menu)=newpos:fname$(current_menu,newpos)=file$ �Otext$(current_menu,newpos)=�file(file$):ftype(current_menu,newpos)=filetype � act=1 �Ȏ filetype � �< � &1000:sprite$(current_menu,newpos)="directory":act=2 �K � &2000:sprite$(current_menu,newpos)=text$(current_menu,newpos):act=3 �> : sprite$(current_menu,newpos)="file_"+�~filetype:act=3 �� �#action(current_menu,newpos)=act ��redo_all_icons � ݤfile(fn$) "in=�(fn$)+1 ,� 6 in-=1 @� �fn$,in,1)="." J=�fn$,�(fn$)-in) T ^��redo_all_icons hplus=18:to=17:title=36 r� icn=0 � to |9 �set_indirected(handle,icn,text$(current_menu,icn)) �@ �set_indirected(handle,icn+plus,sprite$(current_menu,icn)) �$ �unset_bit(handle,icn+plus,21) �� �6�set_indirected(handle,title,mname$(current_menu)) ��size_window �.ș"Wimp_ForceRedraw",handle,0,-1800,1200,0 �� � ���size_window �n=no_opts(current_menu) �� n=255 n=-1 �Ȏ handle � � � typ1_handle:�type1_size � typ2_handle:�type2_size � typ3_handle:�type3_size � &� 0 :��type1_size Dn+=1:x=640:y=160+(n*88) N0!block%=0:block%!4=-y:block%!8=x:block%!12=0 X$ș"Wimp_SetExtent",handle,block% b� n>10 � y=160+(10*88) l!block%=handle v#ș"Wimp_GetWindowState",,block% �-block%!12=block%!4+x:block%!16=block%!8+y �ș"Wimp_OpenWindow",,block% �� � ���type2_size �y=(n � 2)+1 �� n>(y*2) � y+=1 �x=1080:y=132+(y*88) �!block%=handle �#ș"Wimp_GetWindowState",,block% �-block%!12=block%!4+x:block%!16=block%!8+y �ș"Wimp_OpenWindow",,block% �� ��type3_size y=(n � 3)+1 � n>(y*3) � y+=1 *x=872:y=120+(y*132) 4!block%=handle >#ș"Wimp_GetWindowState",,block% H-block%!12=block%!4+x:block%!16=block%!8+y Rș"Wimp_OpenWindow",,block% \� f p��list_menu z os_menu=2 �B� icon>=0 � icon<=20 � wm_data$(2,2)="Menu '"+mname$(icon)+"'" ��make_menu(2) �.� �wm_data$(2,2),2)="''" � �grey_item(2,2) �-�showmenu(menus_menu,!block%-64,block%!4) �� � ���handle_menu �item=�icon_to_item(icon) � os_menu=3 �it$="Item '" �� item>=0 � item<=40 � �* it$=it$+text$(current_menu,item)+"'" �� it$+="'" � wm_data$(3,1)=it$ $�make_menu(3) .$� �it$,2)="''" � �grey_item(3,1) 8-�showmenu(items_menu,!block%-64,block%!4) B� L V��open_ib_window `�open_window(list_handle) j�redraw_list t�redo_all_icons ~� � ���delete_menu �� icon=0 � �error(4,1):� �Ierror$="Are you sure you want to delete the menu '"+mname$(icon)+"'?" ��report_error(error$,3) �� user_response=2 � �modified=� �� icon=current_menu � � current_menu=0 � �close_window(handle) �� �� loop=icon � 18 # no_opts(loop)=no_opts(loop+1) type(loop)=type(loop+1) ! mname$(loop)=mname$(loop+1) � subloop=0 � 40 (3 action(loop,subloop)=action(loop+1,subloop) 23 fname$(loop,subloop)=fname$(loop+1,subloop) <1 text$(loop,subloop)=text$(loop+1,subloop) F5 sprite$(loop,subloop)=sprite$(loop+1,subloop) P1 ftype(loop,subloop)=ftype(loop+1,subloop) Z � d� nmname$(19)="" xnum_mens-=1 ��redraw_list �� � ���delete_item ��close_window(itin_handle) �item=�icon_to_item(icon) �modified=� �� loop=item � 17 �; action(current_menu,loop)=action(current_menu,loop+1) �; fname$(current_menu,loop)=fname$(current_menu,loop+1) �9 text$(current_menu,loop)=text$(current_menu,loop+1) �= sprite$(current_menu,loop)=sprite$(current_menu,loop+1) �9 ftype(current_menu,loop)=ftype(current_menu,loop+1) � no_opts(current_menu)-=1 �redo_all_icons "� , 6��new_menu @� num_mens=20 � J �error(5,1) T � ^� h inm=� ralter_menu=num_mens |'�centre_window(crme_handle,508,480) �-�set_indirected(crme_handle,7,"New menu") ��set_bit(crme_handle,2,21) �=�unset_bit(crme_handle,3,21):�unset_bit(crme_handle,4,21) ��caret(crme_handle,7) �� � ���alter_menu �$� icon<0 � icon>19 � �error(6,1) � inm=� �alter_menu=icon �'�centre_window(crme_handle,508,480) �5�set_indirected(crme_handle,7,mname$(alter_menu)) �=�unset_bit(crme_handle,2,21):�unset_bit(crme_handle,3,21) �unset_bit(crme_handle,4,21) ty=type(alter_menu) � ty<1 � ty>3 � �error(7,1) &!�set_bit(crme_handle,1+ty,21) 0�caret(crme_handle,7) :� D N��end_alter_menu X�close_window(crme_handle) b+menname$=�get_indirected(crme_handle,7) l0� inm � �menu_exist(menname$) �error(15,1):� v� inm � num_mens+=1 �)� mname$(alter_menu)<>"" �menu_exists �mname$(alter_menu)=menname$ �>�set_indirected(list_handle,alter_menu,mname$(alter_menu)) �ty=1 �&� �get_state(crme_handle,2) � ty=1 �&� �get_state(crme_handle,3) � ty=2 �&� �get_state(crme_handle,4) � ty=3 �type(alter_menu)=ty �� current_menu=alter_menu � � �close_window(handle) � Ȏ type(current_menu) � � � 1:handle=typ1_handle � � 2:handle=typ2_handle � 3:handle=typ3_handle � �open_window(handle) �redo_all_icons *� 4�redraw_list >modified=� H� R \��menu_exists f� menu=0 � num_mens-1 p# � no_opts(menu)<>255 �menu_ex z� �� � � ��menu_ex �� item=0 � no_opts(menu) �D � action(menu,item)=1 � fname$(menu,item)=mname$(alter_menu) � �" fname$(menu,item)=menname$ � � �� �� � ���select_current_menu �current_menu=icon �1ș"Wimp_ForceRedraw",list_handle,0,-820,220,0 �close_window(handle) +handle=wi_handle%(type(current_menu)+4) 'data=wi_data%(type(current_menu)+4) $�open_window(handle) .�redo_all_icons 8�redraw_list B�close_window(itin_handle) L� V `��redraw_list j� icon=0 � 19 t5 �set_indirected(list_handle,icon," "+�m(icon)) ~K � icon=current_menu � �set_indirected(list_handle,icon,"* "+�m(icon)) �� ��list_size �2ș"Wimp_ForceRedraw",list_handle,0,-1000,220,0 �� � ���list_size �x=220:y=24+(num_mens*40) �� y<=144 � y=144 �0!block%=0:block%!4=-y:block%!8=x:block%!12=0 �)ș"Wimp_SetExtent",list_handle,block% �� num_mens>10 � y=424 �!block%=list_handle #ș"Wimp_GetWindowState",,block% -block%!12=block%!4+x:block%!16=block%!8+y ș"Wimp_OpenWindow",,block% � ( 2��alter_item <'�centre_window(itin_handle,528,680) Fitem=�icon_to_item(icon) Palter_item=item Z<�set_indirected(itin_handle,8,fname$(current_menu,item)) d;�set_indirected(itin_handle,5,text$(current_menu,item)) n=�set_indirected(itin_handle,2,sprite$(current_menu,item)) x=�set_indirected(itin_handle,1,sprite$(current_menu,item)) �-act=action(current_menu,item):act$="????" �Ȏ act � � � 1:act$="Open menu:" � � 2:act$="Open dir:" � � 3:act$="Run file:" �� �(�set_indirected(itin_handle,13,act$) ��caret(itin_handle,2) �� � ���end_alter_item �� alter_item=-1 �minus_one �� alter_item>=100 � alter_item-=100 �create_alter_submenu � "Bfname$(current_menu,alter_item)=�get_indirected(itin_handle,8) ,Atext$(current_menu,alter_item)=�get_indirected(itin_handle,5) 6Csprite$(current_menu,alter_item)=�get_indirected(itin_handle,2) @�close_window(itin_handle) J�redo_all_icons Tmodified=� ^� h r��minus_one |� num_mens=20 � � �error(5,1) � � �� �"newpos=no_opts(current_menu)+1 �� newpos=256 newpos=0 �� newpos>17 � � �error(3,1) � � �� � no_opts(current_menu)=newpos �alter_item=newpos �!action(current_menu,newpos)=1 �%n$=�get_indirected(itin_handle,8) &� �menu_exist(n$) � �error(15,1):� num_mens+=1 n=num_mens-1 &mname$(n)=n$ 0 type(n)=1 :no_opts(n)=255 D�redraw_list N� X b��create_alter_submenu l� num_mens=20 � v �error(5,1) � � �� �num_mens+=1 �n=num_mens-1 �<mname$(n)=�rz(�getleaf(fname$(current_menu,alter_item))) � type(n)=1 �%action(current_menu,alter_item)=1 �'Ȏ ftype(current_menu,alter_item) � � � &1000:�submenu_dir � :�submenu_file �� �modified=� ��redo_all_icons �redraw_list � ��submenu_file *no_opts(n)=2 4Afname$(n,0)=fname$(current_menu,alter_item):text$(n,0)="!Run" >-ftype(n,0)=ftype(current_menu,alter_item) H?sprite$(n,0)=sprite$(current_menu,alter_item):action(n,0)=3 R&f$=fname$(current_menu,alter_item) \leaf$=�getleaf(f$) fdir$=�f$,�(f$)-�(leaf$)) p0fname$(n,1)=dir$:text$(n,1)="Open Directory" z;ftype(n,1)=&1000:sprite$(n,1)="directory":action(n,1)=2 �2fname$(n,2)="Main Menu":text$(n,2)="Main Menu" �2ftype(n,2)=0:sprite$(n,2)="menu":action(n,2)=1 �� � ���submenu_dir �no_opts(n)=1 �Kfname$(n,0)=fname$(current_menu,alter_item):text$(n,0)="Open Directory" �-ftype(n,0)=ftype(current_menu,alter_item) �?sprite$(n,0)=sprite$(current_menu,alter_item):action(n,0)=2 �2fname$(n,1)="Main Menu":text$(n,1)="Main Menu" �2ftype(n,1)=0:sprite$(n,1)="menu":action(n,1)=1 �� � ��quicksave (file$=�get_indirected(save_handle,1) leaf$=�getleaf(file$) $&� �leaf$,1)<>"!" � leaf$="!"+leaf$ .� �file$,".") � 8 �save_it B� L �error(9,1) V� `� j t ��save_it ~oldname$=filename$ �"make=�get_state(save_handle,3) �,filename$=�get_indirected(save_handle,1) �<l$=�getleaf(filename$):r$=�filename$,�(filename$)-�(l$)) �%� �l$,1)<>"!" filename$=r$+"!"+l$ ��"CDir "+filename$ �"�"CDir "+filename$+".Programs" �$sname="!menu" �$rename=leaf$ �0ș"OS_SpriteOp",256+26,psprites,sname,rename � $fname=filename$+".!Sprites" �)ș"OS_SpriteOp",256+12,psprites,fname �0ș"OS_SpriteOp",256+26,psprites,rename,sname � make � �append_the_sprites ! $fname=filename$+".Sprites" + ș"OS_SpriteOp",256+12,usprites,fname ( �delete_sprites 2� <F�save_prog_file(filename$+".!RunImage","Basic",runimage,ri_length) F;�save_prog_file(filename$+".!Run","Obey",run,ru_length) PA�save_prog_file(filename$+".Templates","fec",temps,te_length) Z�save_load_data(�) d�close_window(save_handle) nmodified=� xș"Wimp_CreateMenu",,-1 �O� oldname$<>"" � oldname$<>"<Obey$Dir>" � oldname$<>filename$ �confirm_copy �� � ���confirm_copy �eerror$(18)=" Do you wish to copy the programs from "+oldname$+" to the new save? (Cancel aborts)" ��error(18,3) �� user_response=2 � �'*Set OldCopy$Options <Copy$Options> �7*Set Copy$Options A ~C ~D ~F ~L ~N ~P ~Q R ~S ~T ~V �:A$="Copy "+oldname$+".Programs "+filename$+".Programs" �� A$ �'*Set Copy$Options <OldCopy$Options> �� ��save_load_data(s) F$=filename$+".MenuData" "!� s X=� F$ � X=� F$ ,� X=0 �sl_error:� 6r=82:m=77:l=76 @#� s �#X,82 � r=�#X J#� s �#X,77 � m=�#X T#� s �#X,76 � l=�#X ^(� � s � ((r+m+l)<>235) � �sl_error:� h*� s �#X,num_mens � num_mens=�#X r%� s �#X,make � �#X,make |� menu=0 � num_mens-1 �- � s �#X,mname$(menu) � �#X,mname$(menu) �, � s �#X,type(menu) � type(menu)=�#X �/ � s �#X,no_opts(menu) � no_opts(menu)=�#X �% � no_opts(menu)<>255 � �sl_each �� ��#X �� s �"SetType "+F$+" Data" �.� � s �"Iconsprites "+filename$+".Sprites" �modified=� �� � � ��sl_each �� item=0 � no_opts(menu) 9 � s �#X,action(menu,item) � action(menu,item)=�#X 8 � s �#X,fname$(menu,item) � �#X,fname$(menu,item) 7 � s �#X,text$(menu,item) � �#X,text$(menu,item) &9 � s �#X,sprite$(menu,item) � �#X,sprite$(menu,item) 07 � s �#X,ftype(menu,item) � �#X,ftype(menu,item) :� D� N X��sl_error b�#0 l�error(10,1) v� � ���load_app_stuff �F�create_sprite_area("<Menaker$Dir>.Menu.Sprites",usprites,80*1024) �C�create_sprite_area("<Menaker$Dir>.Menu.!Sprites",psprites,512) �Fri_length=�load_prog_file("<Menaker$Dir>.Menu.!RunImage",runimage) �<ru_length=�load_prog_file("<Menaker$Dir>.Menu.!Run",run) �Cte_length=�load_prog_file("<Menaker$Dir>.Menu.Templates",temps) �� � �ݤload_prog_file(n$,m) � $fname=n$ � ș"OS_File",17,fname � ,,,,l ��"Load "+n$+" "+�~m =l ��save_prog_file(n$,t$,m,l) �"Save "+n$+" "+�~m+" +"+�~l *�"Settype "+n$+" "+t$ 4� > H#��create_sprite_area(n$,m,size) R !m=size:m!4=0:m!8=16:m!12=16 \ș"OS_SpriteOp",256+9,m f $fname=n$ p"ș"OS_SpriteOp",256+10,m,fname z� � �ݤicon_to_item(icn) � it=icn �� it>17 � it-=18 �=it � ���load_file �� modified � � �error(11,3) � � user_response=2 � �� ��clear_data �filename$=file$ �save_load_data(�) �close_window(handle) Ȏ type(current_menu) � $ � 1:handle=typ1_handle . � 2:handle=typ2_handle 8 � 3:handle=typ3_handle B� L�open_window(handle) V�redo_all_icons `�redraw_list j(�set_indirected(save_handle,1,file$) tmodified=� ~'�"Set MenakerServer$Dir "+filename$ �� � ���clear_it �user_response=1 �� modified � �error(12,3) �� user_response=1 � � �clear_data � �redo_all_icons � �redraw_list �� �� � ��clear_data no_opts()=255:type()=1 <mname$()="":mname$(0)="Main Menu":action()=0:fname$()="" %text$()="":sprite$()="":ftype()=0 (=type=1:current_menu=0:num_mens=1:alter_item=-1:modified=� 2filename$="" <�close_window(copy_handle) F.�set_indirected(save_handle,1,"!MenuFile") P� Z d��append_the_sprites n+ș"OS_SpriteOp",256+8,usprites � ,,,num xcheck$()="":cc=0 �� menu=0 � num_mens-1 � � no_opts(menu)<>255 �a_b �� �� � � ��a_b �� option=0 � no_opts(menu) � fi$=fname$(menu,option) �H � action(menu,option)<>1 � ftype(menu,option)=&2000 � �not_there � �, �append_sprites(fname$(menu,option)) �$ � �(check$(cc))>=240 � cc+=1 � check$(cc)+=fi$ � � � � "ݤnot_there ,found=� 6fi$=�getleaf(fi$) @� c=0 � cc J& � �check$(c),fi$) � found=�:c=cc T� ^=� found h r��delete_sprites |+ș"OS_SpriteOp",256+8,usprites � ,,,num � � num=1 � �� n=1 � num-1 �= ș"OS_SpriteOp",256+13,usprites,sname,256,2 � ,,,length �+ ș"OS_SpriteOp",256+25,usprites,sname �� �� � ���append_sprites(f$) �leaf$=�alpha(�getleaf(f$)) �leaf$=�leaf$,�(leaf$)-1) �fn$=f$+".!Sprites" �$fname=fn$ �X=� fn$ �#X � X=0 � P �report_error("Can't find sprite file for "+f$+", but will continue...",1) & � 0� :)ș"OS_SpriteOp",256+11,usprites,fname Dold_num=num+1 N� X- ș"OS_SpriteOp",256+8,usprites � ,,,num b d=� l � s=old_num � num v? ș"OS_SpriteOp",256+13,usprites,sname,256,s � ,,,length �( sprite$=�alpha(�get_name(sname)) � � sprite$<>leaf$ � � $sname=sprite$ �/ ș"OS_SpriteOp",256+25,usprites,sname � s=num � d=� � � � � � � d=� �+ș"OS_SpriteOp",256+8,usprites � ,,,num �� � � ݤm(n) !=�mname$(icon),10) ! !��read_errors ! Xerror$(0)="Sorry, but there's a problem : Please find !Fonts and try loading again." !*Uerror$(1)="There is unsaved data. Are you sure you want to quit? (Cancel aborts)" !4>error$(2)="The file you dragged is not a recognised menu." !>Serror$(3)="Sorry, but this version of the program will not support more items." !H]error$(4)="Sorry, but you can't delete the main menu - I'd only get confused if you did." !RXerror$(5)="Sorry, but you can't have any more menus in this version of the program." !\Merror$(6)="How did you manage that? You can't alter a non-existant menu!" !fIerror$(7)="How did you manage that? You've selected an invalid type!" !perror$(8)="" !z=error$(9)="To save, drag the icon to a directory viewer." !�[error$(10)="Sorry, there's a problem - the menu data is either not present, or corrupt" !�ierror$(11)="Loading the file will overwrite existing data. Are you sure you want to? (Cancel aborts)" !�Ferror$(12)="Are you sure - All data will be lost? (Cancel aborts)" !�)error$(13)="Fatal error - must exit." !�Rerror$(14)="To load the sprites for this file, you must increase Module area." !�4error$(15)="A menu of that name already exists." !�Derror$(16)="Before copying files, you must have saved the menu." !�� !� !���system_error(n,c) !��report_error(error$(n),c) !�� !� "��error(n,c) "�set_bit(mesg_handle,1,23) "(� c=3 � �unset_bit(mesg_handle,1,23) "$,�set_indirected(mesg_handle,0,error$(n)) ".x=728:y=276 "8'�centre_window(mesg_handle,728,276) "Bȗ ȓ block%!4,block%!8,x,y "L�7 "V� "`* ș "Wimp_Poll",mask,block% � reason% "j Ȏ reason% � "t � 6:�click_icon "~ � 17,18:�receive "� � "�� reason%=6 "�icon=block%!16 "�.� icon=1 user_response=2 � user_response=1 "�ȗ ȓ 0,0,xr,yr "��close_window(mesg_handle) "�� "� "���mainmenu_item "�modified=� "�"newpos=no_opts(current_menu)+1 "�� newpos=256 newpos=0 # � newpos>17 � # �error(3,1) # � #� #( no_opts(current_menu)=newpos #2+fname$(current_menu,newpos)="Main Menu" #<*text$(current_menu,newpos)="Main Menu" #F ftype(current_menu,newpos)=0 #P'sprite$(current_menu,newpos)="menu" #Z!action(current_menu,newpos)=1 #d�redo_all_icons #n� #x #� ��dragbox #��start_drag(save_handle,0) #�current_drag=1 #�� #� #���drag_option #�modified=� #�current_drag=2 #�!f_dragged=�icon_to_item(icon) #�'� f_dragged>no_opts(current_menu) � #��start_drag(handle,icon) #�� #� $��move_option $� destination<>handle � $� icon<0 � icon>35 � $"!s_dragged=�icon_to_item(icon) $,� f_dragged=s_dragged � $6'� s_dragged>no_opts(current_menu) � $@$a=action(current_menu,f_dragged) $J%f$=fname$(current_menu,f_dragged) $T$t$=text$(current_menu,f_dragged) $^&s$=sprite$(current_menu,f_dragged) $h#f=ftype(current_menu,f_dragged) $r>� f_dragged<s_dragged � f=f_dragged+1:t=s_dragged:p=-1:s=1 $|>� f_dragged>s_dragged � f=f_dragged-1:t=s_dragged:p=1:s=-1 $�� d=f � t � s $�6 action(current_menu,d+p) =action(current_menu,d) $�6 fname$(current_menu,d+p) =fname$(current_menu,d) $�5 text$(current_menu,d+p) =text$(current_menu,d) $�7 sprite$(current_menu,d+p)=sprite$(current_menu,d) $�5 ftype(current_menu,d+p) =ftype(current_menu,d) $�� $�$action(current_menu,s_dragged)=a $�%fname$(current_menu,s_dragged)=f$ $�$text$(current_menu,s_dragged)=t$ $�&sprite$(current_menu,s_dragged)=s$ $�#ftype(current_menu,s_dragged)=f $��redo_all_icons %� % %��make_submenu %&item=�icon_to_item(icon) %0<� �menu_exist(text$(current_menu,item)) � �error(15,1):� %:alter_item=item+100 %D;�set_indirected(itin_handle,8,text$(current_menu,item)) %N;�set_indirected(itin_handle,5,text$(current_menu,item)) %X=�set_indirected(itin_handle,2,sprite$(current_menu,item)) %b=�set_indirected(itin_handle,1,sprite$(current_menu,item)) %l0�set_indirected(itin_handle,13,"Open menu:") %v'�centre_window(itin_handle,528,680) %��caret(itin_handle,2) %�� %� %���submenu_item %�alter_item=-1 %�,�set_indirected(itin_handle,8,"Submenu") %�,�set_indirected(itin_handle,5,"Submenu") %�)�set_indirected(itin_handle,2,"menu") %�)�set_indirected(itin_handle,1,"menu") %�0�set_indirected(itin_handle,13,"Open menu:") %�'�centre_window(itin_handle,528,680) %��caret(itin_handle,2) %�� & &ݤmenu_exist(A$) & m=255:e=� & � n=0 � 20 &* � mname$(n)=A$ � m=n:e=� &4� &>=e &H &R��copy_files &\!� filename$="" �error(16,1):� &f'�centre_window(copy_handle,620,156) &p'�"Set MenakerServer$Dir "+filename$ &z� &� &���copy_file &�l=�(file$) &�l$=�getleaf(file$) &�� menu=0 � num_mens-1 &� � item=0 � no_opts(menu) &� fn$=fname$(menu,item) &�& � �fn$,l)=file$ � �copy_gotone &� � &�� &��save_load_data(�) &�'*Set OldCopy$Options <Copy$Options> &�7*Set Copy$Options A ~C ~D ~F ~L ~N ~P ~Q R ~S ~T ~V '2A$="Copy "+file$+" "+filename$+".Programs."+l$ '� A$ ''*Set Copy$Options <OldCopy$Options> '$� '. '8��copy_gotone 'Bn$=�fn$,�(fn$)-l+�(l$)-1) 'L8fname$(menu,item)="<MenakerServer$Dir>.Programs."+n$ 'V� '` 'j��clicked_on_icon 't)� filename$="" filename$="<Obey$Dir>" '~'�"Set MenakerServer$Dir "+filename$ '�ș"OS_Byte",21 '�item=�icon_to_item(icon) '�5� action(current_menu,item)=1 � �new_menu_found:� '�3� action(current_menu,item)=2 � �open_dir_found '�3� action(current_menu,item)=3 � �run_file_found '�� '� '���run_file_found '�� � runfiles � '�+�"Filer_Run "+fname$(current_menu,item) '�� '� ( ��open_dir_found ( � � runfiles � (/�"Filer_OpenDir "+fname$(current_menu,item) (� (( (2��new_menu_found (< m$=fname$(current_menu,item) (Fz=�menu_exist(m$) (P� m$="Main Menu" m=0 (Z� m>=0 � m<=20 � (d current_menu=m (n �close_window(handle) (x- handle=wi_handle%(type(current_menu)+4) (�) data=wi_data%(type(current_menu)+4) (� �open_window(handle) (� �redo_all_icons (� �redraw_list (�� (�� (� (���run_files_from (�(� runfiles � runfiles=� � runfiles=� (��tick_item(6,1) (�� (� (�K� ------------------------------- Menu Data --------------------------- ) )� "Menaker",6,icon_menu )� "Info",info_handle )"� "Save",save_handle ),� "Options",opt_menu )6� "Clear",-1 )@� "Copy files",-1 )J� "Quit",-1 )T )^� "Menus",2,menus_menu )h� "New menu",-1 )r� "Menu ''",menu_menu )| )�� "Items",3,items_menu )�� "Item ''",item_menu )�� "Main menu item",-1 )�� "Submenu item",-1 )� )�� "Menu",2,menu_menu )�� "Delete",-1 )�� "Alter type",-1 )� )�� "Item",3,item_menu )�� "Delete",-1 )�� "Alter info",-1 )�� "Make submenu",-1 * *� "Options",1,opt_menu *!� "Run files from Menaker",-1 �
00000000 0d 00 0a 0f f4 20 3e 21 4d 65 6e 61 6b 65 72 0d |..... >!Menaker.| 00000010 00 14 1a f4 20 4d 65 6e 75 20 43 72 65 61 74 69 |.... Menu Creati| 00000020 6f 6e 20 53 79 73 74 65 6d 0d 00 1e 1a f4 20 66 |on System..... f| 00000030 6f 72 20 41 72 63 68 69 6d 65 64 65 73 20 57 6f |or Archimedes Wo| 00000040 72 6c 64 0d 00 28 1e f4 20 a9 31 39 39 33 20 52 |rld..(.. .1993 R| 00000050 69 63 68 61 72 64 20 4d 2e 20 4c 65 67 67 65 74 |ichard M. Legget| 00000060 74 0d 00 32 16 f4 20 31 2f 36 2f 39 33 20 2d 20 |t..2.. 1/6/93 - | 00000070 31 30 2f 39 2f 39 33 0d 00 3c 04 0d 00 46 11 69 |10/9/93..<...F.i| 00000080 6e 69 74 69 61 6c 69 73 65 64 3d a3 0d 00 50 1e |nitialised=...P.| 00000090 c8 9b 20 22 3c 4d 65 6e 61 6b 65 72 24 44 69 72 |.. "<Menaker$Dir| 000000a0 3e 2e 57 69 6d 70 4c 69 62 22 0d 00 5a 13 ee 20 |>.WimpLib"..Z.. | 000000b0 85 20 f2 65 72 72 6f 72 5f 74 72 61 70 0d 00 64 |. .error_trap..d| 000000c0 04 0d 00 6e 0f f2 69 6e 69 74 69 61 6c 69 73 65 |...n..initialise| 000000d0 0d 00 78 17 f2 69 6e 69 74 69 61 6c 69 73 65 5f |..x..initialise_| 000000e0 6c 69 62 72 61 72 79 0d 00 82 1e f2 69 6e 73 74 |library.....inst| 000000f0 61 6c 6c 28 22 21 4d 65 6e 61 6b 65 72 22 2c 36 |all("!Menaker",6| 00000100 38 2c 36 38 29 0d 00 8c 18 f2 69 6e 69 74 69 61 |8,68).....initia| 00000110 6c 69 73 65 5f 6d 65 6e 75 73 28 36 29 0d 00 96 |lise_menus(6)...| 00000120 12 f2 73 65 74 75 70 5f 77 69 6e 64 6f 77 73 0d |..setup_windows.| 00000130 00 a0 10 f2 73 65 74 75 70 5f 6d 65 6e 75 73 0d |....setup_menus.| 00000140 00 aa 10 f2 72 65 61 64 5f 65 72 72 6f 72 73 0d |....read_errors.| 00000150 00 b4 13 f2 6c 6f 61 64 5f 61 70 70 5f 73 74 75 |....load_app_stu| 00000160 66 66 0d 00 be 0d f2 72 65 61 64 5f 76 64 75 0d |ff.....read_vdu.| 00000170 00 c8 0e f2 6d 61 69 6e 5f 6c 6f 6f 70 0d 00 d2 |....main_loop...| 00000180 0d f2 73 68 75 74 64 6f 77 6e 0d 00 dc 05 e0 0d |..shutdown......| 00000190 00 e6 04 0d 00 f0 10 dd f2 65 72 72 6f 72 5f 74 |.........error_t| 000001a0 72 61 70 0d 00 fa 89 65 72 72 6f 72 24 3d 22 57 |rap....error$="W| 000001b0 68 6f 6f 70 73 21 20 41 6e 20 65 72 72 6f 72 20 |hoops! An error | 000001c0 68 61 73 20 6f 63 63 75 72 72 65 64 2c 20 74 79 |has occurred, ty| 000001d0 70 65 20 22 2b f6 24 2b 22 20 22 2b c3 9f 2b 22 |pe "+.$+" "+..+"| 000001e0 2f 22 2b c3 9e 2b 22 2e 20 49 74 20 6d 61 79 20 |/"+..+". It may | 000001f0 62 65 20 62 65 73 74 20 74 6f 20 73 61 76 65 2c |be best to save,| 00000200 20 71 75 69 74 20 61 6e 64 20 73 74 61 72 74 20 | quit and start | 00000210 61 67 61 69 6e 2e 20 41 74 74 65 6d 70 74 20 74 |again. Attempt t| 00000220 6f 20 63 6f 6e 74 69 6e 75 65 3f 22 0d 01 04 1e |o continue?"....| 00000230 e7 20 ac 20 69 6e 69 74 69 61 6c 69 73 65 64 20 |. . initialised | 00000240 8c 20 f1 20 65 72 72 6f 72 24 0d 01 0e 13 e7 20 |. . error$..... | 00000250 69 6e 69 74 69 61 6c 69 73 65 64 20 8c 0d 01 18 |initialised ....| 00000260 0c 20 20 c8 8e 20 9f 20 ca 0d 01 22 2c 20 20 20 |. .. . ...", | 00000270 20 c9 20 32 35 37 3a f2 73 79 73 74 65 6d 5f 65 | . 257:.system_e| 00000280 72 72 6f 72 28 31 34 2c 31 29 3a f2 6d 61 69 6e |rror(14,1):.main| 00000290 5f 6c 6f 6f 70 0d 01 2c 20 20 20 20 20 c9 20 36 |_loop.., . 6| 000002a0 35 34 3a f2 73 79 73 74 65 6d 5f 65 72 72 6f 72 |54:.system_error| 000002b0 28 30 2c 31 29 0d 01 36 0a 20 20 20 20 7f 3a 0d |(0,1)..6. .:.| 000002c0 01 40 21 20 20 20 20 20 20 f2 72 65 70 6f 72 74 |.@! .report| 000002d0 5f 65 72 72 6f 72 28 65 72 72 6f 72 24 2c 33 29 |_error(error$,3)| 000002e0 0d 01 4a 26 20 20 20 20 20 20 e7 20 75 73 65 72 |..J& . user| 000002f0 5f 72 65 73 70 6f 6e 73 65 3d 31 20 f2 6d 61 69 |_response=1 .mai| 00000300 6e 5f 6c 6f 6f 70 0d 01 54 07 20 20 cb 0d 01 5e |n_loop..T. ...^| 00000310 05 cd 0d 01 68 05 e0 0d 01 72 04 0d 01 7c 10 dd |....h....r...|..| 00000320 f2 69 6e 69 74 69 61 6c 69 73 65 0d 01 86 11 de |.initialise.....| 00000330 20 73 62 6c 6f 63 6b 25 20 32 35 36 0d 01 90 27 | sblock% 256...'| 00000340 de 20 70 73 70 72 69 74 65 73 20 35 31 32 2c 20 |. psprites 512, | 00000350 20 20 20 75 73 70 72 69 74 65 73 20 38 30 2a 31 | usprites 80*1| 00000360 30 32 34 0d 01 9a 31 de 20 73 6e 61 6d 65 20 31 |024...1. sname 1| 00000370 36 2c 20 20 20 20 20 20 20 20 72 65 6e 61 6d 65 |6, rename| 00000380 20 31 36 2c 20 20 20 20 20 20 20 66 6e 61 6d 65 | 16, fname| 00000390 20 32 35 36 0d 01 a4 30 de 20 72 75 6e 69 6d 61 | 256...0. runima| 000003a0 67 65 20 34 30 2a 31 30 32 34 2c 74 65 6d 70 73 |ge 40*1024,temps| 000003b0 20 31 30 2a 31 30 32 34 2c 20 20 20 72 75 6e 20 | 10*1024, run | 000003c0 31 30 32 34 0d 01 ae 36 de 20 69 63 6f 6e 5f 6d |1024...6. icon_m| 000003d0 65 6e 75 20 35 31 32 2c 20 20 20 6d 65 6e 75 73 |enu 512, menus| 000003e0 5f 6d 65 6e 75 20 35 31 32 2c 20 20 69 74 65 6d |_menu 512, item| 000003f0 73 5f 6d 65 6e 75 20 35 31 32 0d 01 b8 34 de 20 |s_menu 512...4. | 00000400 6d 65 6e 75 5f 6d 65 6e 75 20 35 31 32 2c 20 20 |menu_menu 512, | 00000410 20 69 74 65 6d 5f 6d 65 6e 75 20 35 31 32 2c 20 | item_menu 512, | 00000420 20 20 6f 70 74 5f 6d 65 6e 75 20 35 31 32 0d 01 | opt_menu 512..| 00000430 c2 34 de 20 61 63 74 69 6f 6e 28 32 30 2c 34 30 |.4. action(20,40| 00000440 29 2c 20 20 20 66 6e 61 6d 65 24 28 32 30 2c 34 |), fname$(20,4| 00000450 30 29 2c 20 20 20 74 65 78 74 24 28 32 30 2c 34 |0), text$(20,4| 00000460 30 29 0d 01 cc 23 de 20 73 70 72 69 74 65 24 28 |0)...#. sprite$(| 00000470 32 30 2c 34 30 29 2c 20 20 66 74 79 70 65 28 32 |20,40), ftype(2| 00000480 30 2c 34 30 29 0d 01 d6 32 de 20 6e 6f 5f 6f 70 |0,40)...2. no_op| 00000490 74 73 28 32 30 29 2c 20 20 20 20 20 74 79 70 65 |ts(20), type| 000004a0 28 32 30 29 2c 20 20 20 20 20 20 20 20 6d 6e 61 |(20), mna| 000004b0 6d 65 24 28 32 30 29 0d 01 e0 10 de 20 65 72 72 |me$(20)..... err| 000004c0 6f 72 24 28 32 30 29 0d 01 ea 10 de 20 63 68 65 |or$(20)..... che| 000004d0 63 6b 24 28 31 30 29 0d 01 f4 04 0d 01 fe 1a 6e |ck$(10)........n| 000004e0 6f 5f 6f 70 74 73 28 29 3d 32 35 35 3a 74 79 70 |o_opts()=255:typ| 000004f0 65 28 29 3d 31 0d 02 08 27 6d 6e 61 6d 65 24 28 |e()=1...'mname$(| 00000500 30 29 3d 22 a9 20 41 72 63 68 69 6d 65 64 65 73 |0)=". Archimedes| 00000510 20 57 6f 72 6c 64 20 31 39 39 33 22 0d 02 12 19 | World 1993"....| 00000520 6f 73 5f 6d 65 6e 75 3d 30 3a 71 75 69 74 3d a3 |os_menu=0:quit=.| 00000530 3a 6f 71 3d a3 0d 02 1c 32 74 79 70 65 3d 31 3a |:oq=....2type=1:| 00000540 63 75 72 72 65 6e 74 5f 6d 65 6e 75 3d 30 3a 6e |current_menu=0:n| 00000550 75 6d 5f 6d 65 6e 73 3d 31 3a 61 6c 74 65 72 5f |um_mens=1:alter_| 00000560 69 74 65 6d 3d 2d 31 0d 02 26 0e 6d 6f 64 69 66 |item=-1..&.modif| 00000570 69 65 64 3d a3 0d 02 30 18 70 72 6f 67 5f 6e 61 |ied=...0.prog_na| 00000580 6d 65 24 3d 22 4d 65 6e 61 6b 65 72 22 0d 02 3a |me$="Menaker"..:| 00000590 1f 76 65 72 73 69 6f 6e 24 3d 22 32 2e 31 39 20 |.version$="2.19 | 000005a0 28 31 34 2d 53 65 70 2d 39 33 29 22 0d 02 44 10 |(14-Sep-93)"..D.| 000005b0 66 69 6c 65 6e 61 6d 65 24 3d 22 22 0d 02 4e 0e |filename$=""..N.| 000005c0 72 75 6e 66 69 6c 65 73 3d b9 0d 02 58 05 e1 0d |runfiles=...X...| 000005d0 02 62 04 0d 02 6c 13 dd f2 73 65 74 75 70 5f 77 |.b...l...setup_w| 000005e0 69 6e 64 6f 77 73 0d 02 76 24 f2 6c 6f 61 64 5f |indows..v$.load_| 000005f0 74 65 6d 70 6c 61 74 65 73 28 22 3c 4d 65 6e 61 |templates("<Mena| 00000600 6b 65 72 24 44 69 72 3e 22 29 0d 02 80 1d 69 6e |ker$Dir>")....in| 00000610 66 6f 5f 68 61 6e 64 6c 65 3d 77 69 5f 68 61 6e |fo_handle=wi_han| 00000620 64 6c 65 25 28 31 29 0d 02 8a 1d 63 72 6d 65 5f |dle%(1)....crme_| 00000630 68 61 6e 64 6c 65 3d 77 69 5f 68 61 6e 64 6c 65 |handle=wi_handle| 00000640 25 28 32 29 0d 02 94 1d 69 74 69 6e 5f 68 61 6e |%(2)....itin_han| 00000650 64 6c 65 3d 77 69 5f 68 61 6e 64 6c 65 25 28 33 |dle=wi_handle%(3| 00000660 29 0d 02 9e 1d 6c 69 73 74 5f 68 61 6e 64 6c 65 |)....list_handle| 00000670 3d 77 69 5f 68 61 6e 64 6c 65 25 28 34 29 0d 02 |=wi_handle%(4)..| 00000680 a8 1d 74 79 70 31 5f 68 61 6e 64 6c 65 3d 77 69 |..typ1_handle=wi| 00000690 5f 68 61 6e 64 6c 65 25 28 35 29 0d 02 b2 1d 74 |_handle%(5)....t| 000006a0 79 70 32 5f 68 61 6e 64 6c 65 3d 77 69 5f 68 61 |yp2_handle=wi_ha| 000006b0 6e 64 6c 65 25 28 36 29 0d 02 bc 1d 74 79 70 33 |ndle%(6)....typ3| 000006c0 5f 68 61 6e 64 6c 65 3d 77 69 5f 68 61 6e 64 6c |_handle=wi_handl| 000006d0 65 25 28 37 29 0d 02 c6 1d 73 61 76 65 5f 68 61 |e%(7)....save_ha| 000006e0 6e 64 6c 65 3d 77 69 5f 68 61 6e 64 6c 65 25 28 |ndle=wi_handle%(| 000006f0 38 29 0d 02 d0 1d 6d 65 73 67 5f 68 61 6e 64 6c |8)....mesg_handl| 00000700 65 3d 77 69 5f 68 61 6e 64 6c 65 25 28 39 29 0d |e=wi_handle%(9).| 00000710 02 da 1e 63 6f 70 79 5f 68 61 6e 64 6c 65 3d 77 |...copy_handle=w| 00000720 69 5f 68 61 6e 64 6c 65 25 28 31 30 29 0d 02 e4 |i_handle%(10)...| 00000730 2b f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 64 |+.set_indirected| 00000740 28 69 6e 66 6f 5f 68 61 6e 64 6c 65 2c 34 2c 76 |(info_handle,4,v| 00000750 65 72 73 69 6f 6e 24 29 0d 02 ee 16 68 61 6e 64 |ersion$)....hand| 00000760 6c 65 3d 74 79 70 31 5f 68 61 6e 64 6c 65 0d 02 |le=typ1_handle..| 00000770 f8 05 e1 0d 03 02 04 0d 03 0c 11 dd f2 73 65 74 |.............set| 00000780 75 70 5f 6d 65 6e 75 73 0d 03 16 16 f2 72 65 61 |up_menus.....rea| 00000790 64 5f 6d 65 6e 75 5f 64 61 74 61 28 36 29 0d 03 |d_menu_data(6)..| 000007a0 20 10 e3 20 6d 65 6e 75 3d 31 20 b8 20 36 0d 03 | .. menu=1 . 6..| 000007b0 2a 16 20 20 f2 6d 61 6b 65 5f 6d 65 6e 75 28 6d |*. .make_menu(m| 000007c0 65 6e 75 29 0d 03 34 05 ed 0d 03 3e 13 f2 74 69 |enu)..4....>..ti| 000007d0 63 6b 5f 69 74 65 6d 28 36 2c 31 29 0d 03 48 18 |ck_item(6,1)..H.| 000007e0 6e 6f 5f 6d 6d 64 3d 77 6d 5f 6e 6f 70 74 73 28 |no_mmd=wm_nopts(| 000007f0 31 29 2d 31 0d 03 52 05 e1 0d 03 5c 04 0d 03 66 |1)-1..R....\...f| 00000800 0f dd f2 6d 61 69 6e 5f 6c 6f 6f 70 0d 03 70 11 |...main_loop..p.| 00000810 69 6e 69 74 69 61 6c 69 73 65 64 3d b9 0d 03 7a |initialised=...z| 00000820 2a 6d 61 73 6b 3d 25 31 30 30 30 31 31 30 30 30 |*mask=%100011000| 00000830 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 |0000000000000000| 00000840 30 30 30 30 30 30 30 0d 03 84 05 f5 0d 03 8e 2a |0000000........*| 00000850 20 20 c8 99 20 22 57 69 6d 70 5f 50 6f 6c 6c 22 | .. "Wimp_Poll"| 00000860 2c 6d 61 73 6b 2c 62 6c 6f 63 6b 25 20 b8 20 72 |,mask,block% . r| 00000870 65 61 73 6f 6e 25 0d 03 98 12 20 20 c8 8e 20 72 |eason%.... .. r| 00000880 65 61 73 6f 6e 25 20 ca 0d 03 a2 28 20 20 20 20 |eason% ....( | 00000890 c9 20 32 3a c8 99 20 22 57 69 6d 70 5f 4f 70 65 |. 2:.. "Wimp_Ope| 000008a0 6e 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 25 |nWindow",,block%| 000008b0 0d 03 ac 29 20 20 20 20 c9 20 33 3a c8 99 20 22 |...) . 3:.. "| 000008c0 57 69 6d 70 5f 43 6c 6f 73 65 57 69 6e 64 6f 77 |Wimp_CloseWindow| 000008d0 22 2c 2c 62 6c 6f 63 6b 25 0d 03 b6 17 20 20 20 |",,block%.... | 000008e0 20 c9 20 36 3a f2 63 6c 69 63 6b 5f 69 63 6f 6e | . 6:.click_icon| 000008f0 0d 03 c0 1a 20 20 20 20 c9 20 37 3a f2 65 6e 64 |.... . 7:.end| 00000900 5f 75 73 65 72 5f 64 72 61 67 0d 03 ca 16 20 20 |_user_drag.... | 00000910 20 20 c9 20 38 3a f2 6b 65 79 5f 70 72 65 73 73 | . 8:.key_press| 00000920 0d 03 d4 1b 20 20 20 20 c9 20 39 3a f2 6d 65 6e |.... . 9:.men| 00000930 75 5f 73 65 6c 65 63 74 69 6f 6e 0d 03 de 18 20 |u_selection.... | 00000940 20 20 20 c9 20 31 37 2c 31 38 3a f2 72 65 63 65 | . 17,18:.rece| 00000950 69 76 65 0d 03 e8 07 20 20 cb 0d 03 f2 0a fd 20 |ive.... ...... | 00000960 71 75 69 74 0d 03 fc 05 e1 0d 04 06 04 0d 04 10 |quit............| 00000970 0d dd f2 72 65 63 65 69 76 65 0d 04 1a 12 c8 8e |...receive......| 00000980 20 62 6c 6f 63 6b 25 21 31 36 20 ca 0d 04 24 18 | block%!16 ...$.| 00000990 20 20 c9 20 30 20 20 20 20 20 3a f2 73 68 75 74 | . 0 :.shut| 000009a0 64 6f 77 6e 0d 04 2e 18 20 20 c9 20 32 20 20 20 |down.... . 2 | 000009b0 20 20 3a f2 64 61 74 61 73 61 76 65 0d 04 38 18 | :.datasave..8.| 000009c0 20 20 c9 20 33 20 20 20 20 20 3a f2 64 61 74 61 | . 3 :.data| 000009d0 6c 6f 61 64 0d 04 42 18 20 20 c9 20 26 34 30 30 |load..B. . &400| 000009e0 43 31 3a f2 72 65 61 64 5f 76 64 75 0d 04 4c 05 |C1:.read_vdu..L.| 000009f0 cb 0d 04 56 05 e1 0d 04 60 04 0d 04 6a 0f dd f2 |...V....`...j...| 00000a00 6b 65 79 5f 70 72 65 73 73 0d 04 74 11 6b 65 79 |key_press..t.key| 00000a10 3d 62 6c 6f 63 6b 25 21 32 34 0d 04 7e 19 77 69 |=block%!24..~.wi| 00000a20 6e 64 6f 77 5f 68 61 6e 64 6c 65 3d 21 62 6c 6f |ndow_handle=!blo| 00000a30 63 6b 25 0d 04 88 18 69 63 6f 6e 5f 68 61 6e 64 |ck%....icon_hand| 00000a40 6c 65 3d 62 6c 6f 63 6b 25 21 34 0d 04 92 0c c8 |le=block%!4.....| 00000a50 8e 20 6b 65 79 20 ca 0d 04 9c 14 20 20 c9 20 31 |. key ..... . 1| 00000a60 33 20 20 3a f2 72 65 74 75 72 6e 0d 04 a6 1f 20 |3 :.return.... | 00000a70 20 7f 3a c8 99 22 57 69 6d 70 5f 50 72 6f 63 65 | .:.."Wimp_Proce| 00000a80 73 73 4b 65 79 22 2c 6b 65 79 0d 04 b0 05 cb 0d |ssKey",key......| 00000a90 04 ba 05 e1 0d 04 c4 04 0d 04 ce 0c dd f2 72 65 |..............re| 00000aa0 74 75 72 6e 0d 04 d8 16 c8 8e 20 77 69 6e 64 6f |turn...... windo| 00000ab0 77 5f 68 61 6e 64 6c 65 20 ca 0d 04 e2 23 20 20 |w_handle ....# | 00000ac0 c9 20 63 72 6d 65 5f 68 61 6e 64 6c 65 3a f2 65 |. crme_handle:.e| 00000ad0 6e 64 5f 61 6c 74 65 72 5f 6d 65 6e 75 0d 04 ec |nd_alter_menu...| 00000ae0 23 20 20 c9 20 69 74 69 6e 5f 68 61 6e 64 6c 65 |# . itin_handle| 00000af0 3a f2 65 6e 64 5f 61 6c 74 65 72 5f 69 74 65 6d |:.end_alter_item| 00000b00 0d 04 f6 29 20 20 c9 20 73 61 76 65 5f 68 61 6e |...) . save_han| 00000b10 64 6c 65 3a e7 20 6b 65 79 3d 31 33 20 8c 20 f2 |dle:. key=13 . .| 00000b20 71 75 69 63 6b 73 61 76 65 0d 05 00 05 cb 0d 05 |quicksave.......| 00000b30 0a 05 e1 0d 05 14 04 0d 05 1e 14 dd f2 6d 65 6e |.............men| 00000b40 75 5f 73 65 6c 65 63 74 69 6f 6e 0d 05 28 1b 6f |u_selection..(.o| 00000b50 70 74 69 6f 6e 24 3d a4 77 68 61 74 5f 73 65 6c |ption$=.what_sel| 00000b60 65 63 74 69 6f 6e 0d 05 32 10 c8 8e 20 6f 70 74 |ection..2... opt| 00000b70 69 6f 6e 24 20 ca 0d 05 3c 1b 20 20 c9 20 22 31 |ion$ ...<. . "1| 00000b80 2e 43 6c 65 61 72 22 3a f2 63 6c 65 61 72 5f 69 |.Clear":.clear_i| 00000b90 74 0d 05 46 1e 20 20 c9 20 22 31 2e 51 75 69 74 |t..F. . "1.Quit| 00000ba0 22 3a f2 71 75 69 74 5f 70 72 6f 67 72 61 6d 0d |":.quit_program.| 00000bb0 05 50 22 20 20 c9 20 22 31 2e 43 6f 70 79 20 66 |.P" . "1.Copy f| 00000bc0 69 6c 65 73 22 3a f2 63 6f 70 79 5f 66 69 6c 65 |iles":.copy_file| 00000bd0 73 0d 05 5a 1e 20 20 c9 20 22 32 2e 4e 65 77 20 |s..Z. . "2.New | 00000be0 6d 65 6e 75 22 3a f2 6e 65 77 5f 6d 65 6e 75 0d |menu":.new_menu.| 00000bf0 05 64 29 20 20 c9 20 22 33 2e 4d 61 69 6e 20 6d |.d) . "3.Main m| 00000c00 65 6e 75 20 69 74 65 6d 22 3a f2 6d 61 69 6e 6d |enu item":.mainm| 00000c10 65 6e 75 5f 69 74 65 6d 0d 05 6e 26 20 20 c9 20 |enu_item..n& . | 00000c20 22 33 2e 53 75 62 6d 65 6e 75 20 69 74 65 6d 22 |"3.Submenu item"| 00000c30 3a f2 73 75 62 6d 65 6e 75 5f 69 74 65 6d 0d 05 |:.submenu_item..| 00000c40 78 05 cb 0d 05 82 33 e7 20 6f 73 5f 6d 65 6e 75 |x.....3. os_menu| 00000c50 3d 32 20 80 20 c2 6f 70 74 69 6f 6e 24 2c 36 29 |=2 . .option$,6)| 00000c60 3d 22 44 65 6c 65 74 65 22 3a f2 64 65 6c 65 74 |="Delete":.delet| 00000c70 65 5f 6d 65 6e 75 0d 05 8c 30 e7 20 6f 73 5f 6d |e_menu...0. os_m| 00000c80 65 6e 75 3d 32 20 80 20 c2 6f 70 74 69 6f 6e 24 |enu=2 . .option$| 00000c90 2c 34 29 3d 22 74 79 70 65 22 3a f2 61 6c 74 65 |,4)="type":.alte| 00000ca0 72 5f 6d 65 6e 75 0d 05 96 33 e7 20 6f 73 5f 6d |r_menu...3. os_m| 00000cb0 65 6e 75 3d 33 20 80 20 c2 6f 70 74 69 6f 6e 24 |enu=3 . .option$| 00000cc0 2c 36 29 3d 22 44 65 6c 65 74 65 22 3a f2 64 65 |,6)="Delete":.de| 00000cd0 6c 65 74 65 5f 69 74 65 6d 0d 05 a0 30 e7 20 6f |lete_item...0. o| 00000ce0 73 5f 6d 65 6e 75 3d 33 20 80 20 c2 6f 70 74 69 |s_menu=3 . .opti| 00000cf0 6f 6e 24 2c 34 29 3d 22 69 6e 66 6f 22 3a f2 61 |on$,4)="info":.a| 00000d00 6c 74 65 72 5f 69 74 65 6d 0d 05 aa 32 e7 20 6f |lter_item...2. o| 00000d10 73 5f 6d 65 6e 75 3d 33 20 80 20 c2 6f 70 74 69 |s_menu=3 . .opti| 00000d20 6f 6e 24 2c 34 29 3d 22 6d 65 6e 75 22 3a f2 6d |on$,4)="menu":.m| 00000d30 61 6b 65 5f 73 75 62 6d 65 6e 75 0d 05 b4 05 e1 |ake_submenu.....| 00000d40 0d 05 be 04 0d 05 c8 10 dd f2 63 6c 69 63 6b 5f |..........click_| 00000d50 69 63 6f 6e 0d 05 d2 1e 78 70 6f 73 3d 21 62 6c |icon....xpos=!bl| 00000d60 6f 63 6b 25 3a 79 70 6f 73 3d 62 6c 6f 63 6b 25 |ock%:ypos=block%| 00000d70 21 34 0d 05 dc 33 62 75 74 74 6f 6e 3d 62 6c 6f |!4...3button=blo| 00000d80 63 6b 25 21 38 3a 77 69 6e 64 6f 77 3d 62 6c 6f |ck%!8:window=blo| 00000d90 63 6b 25 21 31 32 3a 69 63 6f 6e 3d 62 6c 6f 63 |ck%!12:icon=bloc| 00000da0 6b 25 21 31 36 0d 05 e6 0f c8 8e 20 77 69 6e 64 |k%!16...... wind| 00000db0 6f 77 20 ca 0d 05 f0 23 20 20 c9 20 2d 32 20 20 |ow ....# . -2 | 00000dc0 20 20 20 20 20 20 20 3a f2 69 63 6f 6e 5f 62 61 | :.icon_ba| 00000dd0 72 5f 63 6c 69 63 6b 0d 05 fa 1f 20 20 c9 20 6c |r_click.... . l| 00000de0 69 73 74 5f 68 61 6e 64 6c 65 3a f2 6c 69 73 74 |ist_handle:.list| 00000df0 5f 63 6c 69 63 6b 0d 06 04 21 20 20 c9 20 68 61 |_click...! . ha| 00000e00 6e 64 6c 65 20 20 20 20 20 3a f2 68 61 6e 64 6c |ndle :.handl| 00000e10 65 5f 63 6c 69 63 6b 0d 06 0e 1f 20 20 c9 20 63 |e_click.... . c| 00000e20 72 6d 65 5f 68 61 6e 64 6c 65 3a f2 63 72 6d 65 |rme_handle:.crme| 00000e30 5f 63 6c 69 63 6b 0d 06 18 1f 20 20 c9 20 69 74 |_click.... . it| 00000e40 69 6e 5f 68 61 6e 64 6c 65 3a f2 69 74 69 6e 5f |in_handle:.itin_| 00000e50 63 6c 69 63 6b 0d 06 22 24 20 20 c9 20 73 61 76 |click.."$ . sav| 00000e60 65 5f 68 61 6e 64 6c 65 3a f2 73 61 76 65 5f 66 |e_handle:.save_f| 00000e70 69 6c 65 5f 63 6c 69 63 6b 0d 06 2c 05 cb 0d 06 |ile_click..,....| 00000e80 36 2e 62 6c 6f 63 6b 25 21 31 32 3d 77 69 6e 64 |6.block%!12=wind| 00000e90 6f 77 3a 62 6c 6f 63 6b 25 21 31 36 3d 69 63 6f |ow:block%!16=ico| 00000ea0 6e 3a 62 6c 6f 63 6b 25 21 38 3d 30 0d 06 40 05 |n:block%!8=0..@.| 00000eb0 e1 0d 06 4a 04 0d 06 54 14 dd f2 69 63 6f 6e 5f |...J...T...icon_| 00000ec0 62 61 72 5f 63 6c 69 63 6b 0d 06 5e 0f c8 8e 20 |bar_click..^... | 00000ed0 62 75 74 74 6f 6e 20 ca 0d 06 68 19 20 20 c9 20 |button ...h. . | 00000ee0 34 3a f2 6f 70 65 6e 5f 69 62 5f 77 69 6e 64 6f |4:.open_ib_windo| 00000ef0 77 0d 06 72 43 20 20 c9 20 32 3a 6f 73 5f 6d 65 |w..rC . 2:os_me| 00000f00 6e 75 3d 31 3a f2 73 68 6f 77 6d 65 6e 75 28 69 |nu=1:.showmenu(i| 00000f10 63 6f 6e 5f 6d 65 6e 75 2c 21 62 6c 6f 63 6b 25 |con_menu,!block%| 00000f20 2d 36 34 2c 31 34 30 2b 28 6e 6f 5f 6d 6d 64 2a |-64,140+(no_mmd*| 00000f30 34 34 29 29 0d 06 7c 05 cb 0d 06 86 05 e1 0d 06 |44))..|.........| 00000f40 90 04 0d 06 9a 13 dd f2 65 6e 64 5f 75 73 65 72 |........end_user| 00000f50 5f 64 72 61 67 0d 06 a4 1e 6d 69 6e 78 3d 21 62 |_drag....minx=!b| 00000f60 6c 6f 63 6b 25 3a 6d 69 6e 79 3d 62 6c 6f 63 6b |lock%:miny=block| 00000f70 25 21 34 0d 06 ae 20 6d 61 78 78 3d 62 6c 6f 63 |%!4... maxx=bloc| 00000f80 6b 25 21 38 3a 6d 61 78 79 3d 62 6c 6f 63 6b 25 |k%!8:maxy=block%| 00000f90 21 31 32 0d 06 b8 23 c8 99 22 57 69 6d 70 5f 47 |!12...#.."Wimp_G| 00000fa0 65 74 50 6f 69 6e 74 65 72 49 6e 66 6f 22 2c 2c |etPointerInfo",,| 00000fb0 62 6c 6f 63 6b 25 0d 06 c2 19 64 65 73 74 69 6e |block%....destin| 00000fc0 61 74 69 6f 6e 3d 62 6c 6f 63 6b 25 21 31 32 0d |ation=block%!12.| 00000fd0 06 cc 12 69 63 6f 6e 3d 62 6c 6f 63 6b 25 21 31 |...icon=block%!1| 00000fe0 36 0d 06 d6 15 c8 8e 20 63 75 72 72 65 6e 74 5f |6...... current_| 00000ff0 64 72 61 67 20 ca 0d 06 e0 15 20 20 c9 20 31 3a |drag ..... . 1:| 00001000 f2 73 74 61 72 74 5f 73 61 76 65 0d 06 ea 16 20 |.start_save.... | 00001010 20 c9 20 32 3a f2 6d 6f 76 65 5f 6f 70 74 69 6f | . 2:.move_optio| 00001020 6e 0d 06 f4 05 cb 0d 06 fe 05 e1 0d 07 08 04 0d |n...............| 00001030 07 12 10 dd f2 73 74 61 72 74 5f 73 61 76 65 0d |.....start_save.| 00001040 07 1c 2d 62 6c 6f 63 6b 25 21 32 30 3d 64 65 73 |..-block%!20=des| 00001050 74 69 6e 61 74 69 6f 6e 3a 62 6c 6f 63 6b 25 21 |tination:block%!| 00001060 32 34 3d 62 6c 6f 63 6b 25 21 31 36 0d 07 26 28 |24=block%!16..&(| 00001070 62 6c 6f 63 6b 25 21 32 38 3d 21 62 6c 6f 63 6b |block%!28=!block| 00001080 25 3a 62 6c 6f 63 6b 25 21 33 32 3d 62 6c 6f 63 |%:block%!32=bloc| 00001090 6b 25 21 34 0d 07 30 22 62 6c 6f 63 6b 25 21 33 |k%!4..0"block%!3| 000010a0 36 3d 28 31 32 2a 31 30 32 34 29 3a 21 62 6c 6f |6=(12*1024):!blo| 000010b0 63 6b 25 3d 36 34 0d 07 3a 2b 62 6c 6f 63 6b 25 |ck%=64..:+block%| 000010c0 21 31 32 3d 30 3a 62 6c 6f 63 6b 25 21 31 36 3d |!12=0:block%!16=| 000010d0 31 3a 62 6c 6f 63 6b 25 21 34 30 3d 26 32 30 30 |1:block%!40=&200| 000010e0 30 0d 07 44 28 66 69 6c 65 24 3d a4 67 65 74 5f |0..D(file$=.get_| 000010f0 69 6e 64 69 72 65 63 74 65 64 28 73 61 76 65 5f |indirected(save_| 00001100 68 61 6e 64 6c 65 2c 31 29 0d 07 4e 19 6c 65 61 |handle,1)..N.lea| 00001110 66 24 3d a4 67 65 74 6c 65 61 66 28 66 69 6c 65 |f$=.getleaf(file| 00001120 24 29 0d 07 58 26 e7 20 c0 6c 65 61 66 24 2c 31 |$)..X&. .leaf$,1| 00001130 29 3c 3e 22 21 22 20 8c 20 6c 65 61 66 24 3d 22 |)<>"!" . leaf$="| 00001140 21 22 2b 6c 65 61 66 24 0d 07 62 16 24 28 62 6c |!"+leaf$..b.$(bl| 00001150 6f 63 6b 25 2b 34 34 29 3d 6c 65 61 66 24 0d 07 |ock%+44)=leaf$..| 00001160 6c 38 c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 |l8.."Wimp_SendMe| 00001170 73 73 61 67 65 22 2c 31 38 2c 62 6c 6f 63 6b 25 |ssage",18,block%| 00001180 2c 64 65 73 74 69 6e 61 74 69 6f 6e 2c 62 6c 6f |,destination,blo| 00001190 63 6b 25 21 32 34 0d 07 76 05 e1 0d 07 80 04 0d |ck%!24..v.......| 000011a0 07 8a 48 f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |..H. -----------| 000011b0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| * 000011e0 2d 2d 2d 2d 2d 2d 2d 0d 07 94 04 0d 07 9e 10 dd |-------.........| 000011f0 f2 63 72 6d 65 5f 63 6c 69 63 6b 0d 07 a8 0d c8 |.crme_click.....| 00001200 8e 20 69 63 6f 6e 20 ca 0d 07 b2 19 20 20 c9 20 |. icon ..... . | 00001210 36 3a f2 65 6e 64 5f 61 6c 74 65 72 5f 6d 65 6e |6:.end_alter_men| 00001220 75 0d 07 bc 24 20 20 c9 20 38 3a f2 63 6c 6f 73 |u...$ . 8:.clos| 00001230 65 5f 77 69 6e 64 6f 77 28 63 72 6d 65 5f 68 61 |e_window(crme_ha| 00001240 6e 64 6c 65 29 0d 07 c6 05 cb 0d 07 d0 05 e1 0d |ndle)...........| 00001250 07 da 04 0d 07 e4 15 dd f2 73 61 76 65 5f 66 69 |.........save_fi| 00001260 6c 65 5f 63 6c 69 63 6b 0d 07 ee 0d c8 8e 20 69 |le_click...... i| 00001270 63 6f 6e 20 ca 0d 07 f8 20 20 20 c9 20 30 3a e7 |con .... . 0:.| 00001280 20 62 75 74 74 6f 6e 20 80 20 36 34 20 f2 64 72 | button . 64 .dr| 00001290 61 67 62 6f 78 0d 08 02 21 20 20 c9 20 32 3a e7 |agbox...! . 2:.| 000012a0 20 62 75 74 74 6f 6e 20 80 20 35 20 f2 71 75 69 | button . 5 .qui| 000012b0 63 6b 73 61 76 65 0d 08 0c 05 cb 0d 08 16 05 e1 |cksave..........| 000012c0 0d 08 20 04 0d 08 2a 10 dd f2 69 74 69 6e 5f 63 |.. ...*...itin_c| 000012d0 6c 69 63 6b 0d 08 34 0d c8 8e 20 69 63 6f 6e 20 |lick..4... icon | 000012e0 ca 0d 08 3e 24 20 20 c9 20 39 3a f2 63 6c 6f 73 |...>$ . 9:.clos| 000012f0 65 5f 77 69 6e 64 6f 77 28 69 74 69 6e 5f 68 61 |e_window(itin_ha| 00001300 6e 64 6c 65 29 0d 08 48 1a 20 20 c9 20 31 30 3a |ndle)..H. . 10:| 00001310 f2 65 6e 64 5f 61 6c 74 65 72 5f 69 74 65 6d 0d |.end_alter_item.| 00001320 08 52 05 cb 0d 08 5c 05 e1 0d 08 66 04 0d 08 70 |.R....\....f...p| 00001330 10 dd f2 6c 69 73 74 5f 63 6c 69 63 6b 0d 08 7a |...list_click..z| 00001340 0f c8 8e 20 62 75 74 74 6f 6e 20 ca 0d 08 84 33 |... button ....3| 00001350 20 20 c9 20 34 3a e7 20 6d 6e 61 6d 65 24 28 69 | . 4:. mname$(i| 00001360 63 6f 6e 29 3c 3e 22 22 20 8c 20 f2 73 65 6c 65 |con)<>"" . .sele| 00001370 63 74 5f 63 75 72 72 65 6e 74 5f 6d 65 6e 75 0d |ct_current_menu.| 00001380 08 8e 14 20 20 c9 20 32 3a f2 6c 69 73 74 5f 6d |... . 2:.list_m| 00001390 65 6e 75 0d 08 98 05 cb 0d 08 a2 05 e1 0d 08 ac |enu.............| 000013a0 04 0d 08 b6 12 dd f2 68 61 6e 64 6c 65 5f 63 6c |.......handle_cl| 000013b0 69 63 6b 0d 08 c0 08 64 73 3d a3 0d 08 ca 0f c8 |ick....ds=......| 000013c0 8e 20 62 75 74 74 6f 6e 20 ca 0d 08 d4 1f 20 20 |. button ..... | 000013d0 c9 20 34 3a f2 63 6c 69 63 6b 65 64 5f 6f 6e 5f |. 4:.clicked_on_| 000013e0 69 63 6f 6e 3a 64 73 3d b9 0d 08 de 1b 20 20 c9 |icon:ds=..... .| 000013f0 20 32 3a f2 68 61 6e 64 6c 65 5f 6d 65 6e 75 3a | 2:.handle_menu:| 00001400 64 73 3d b9 0d 08 e8 05 cb 0d 08 f2 0a e7 20 64 |ds=........... d| 00001410 73 20 e1 0d 08 fc 36 e7 20 69 63 6f 6e 3e 3d 31 |s ....6. icon>=1| 00001420 38 20 80 20 69 63 6f 6e 3c 3d 33 35 20 80 20 28 |8 . icon<=35 . (| 00001430 62 75 74 74 6f 6e 20 80 20 36 34 29 20 f2 64 72 |button . 64) .dr| 00001440 61 67 5f 6f 70 74 69 6f 6e 0d 09 06 05 e1 0d 09 |ag_option.......| 00001450 10 04 0d 09 1a 12 dd f2 71 75 69 74 5f 70 72 6f |........quit_pro| 00001460 67 72 61 6d 0d 09 24 10 e7 20 6d 6f 64 69 66 69 |gram..$.. modifi| 00001470 65 64 20 8c 0d 09 2e 18 20 20 f2 73 79 73 74 65 |ed ..... .syste| 00001480 6d 5f 65 72 72 6f 72 28 31 2c 33 29 0d 09 38 1a |m_error(1,3)..8.| 00001490 20 20 e7 20 75 73 65 72 5f 72 65 73 70 6f 6e 73 | . user_respons| 000014a0 65 3c 3e 31 20 e1 0d 09 42 05 cd 0d 09 4c 0d f2 |e<>1 ...B....L..| 000014b0 73 68 75 74 64 6f 77 6e 0d 09 56 05 e1 0d 09 60 |shutdown..V....`| 000014c0 04 0d 09 6a 0e dd f2 64 61 74 61 73 61 76 65 0d |...j...datasave.| 000014d0 09 74 35 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 |.t5.set_indirect| 000014e0 65 64 28 73 61 76 65 5f 68 61 6e 64 6c 65 2c 31 |ed(save_handle,1| 000014f0 2c a4 73 74 72 69 6e 67 28 62 6c 6f 63 6b 25 2b |,.string(block%+| 00001500 34 34 29 29 0d 09 7e 0c f2 73 61 76 65 5f 69 74 |44))..~..save_it| 00001510 0d 09 88 2e 62 6c 6f 63 6b 25 21 31 32 3d 62 6c |....block%!12=bl| 00001520 6f 63 6b 25 21 38 3a 62 6c 6f 63 6b 25 21 31 36 |ock%!8:block%!16| 00001530 3d 33 3a 21 62 6c 6f 63 6b 25 3d 32 35 36 0d 09 |=3:!block%=256..| 00001540 92 36 c8 99 22 57 69 6d 70 5f 53 65 6e 64 4d 65 |.6.."Wimp_SendMe| 00001550 73 73 61 67 65 22 2c 31 38 2c 62 6c 6f 63 6b 25 |ssage",18,block%| 00001560 2c 62 6c 6f 63 6b 25 21 32 30 2c 62 6c 6f 63 6b |,block%!20,block| 00001570 25 21 32 34 0d 09 9c 05 e1 0d 09 a6 04 0d 09 b0 |%!24............| 00001580 0e dd f2 64 61 74 61 6c 6f 61 64 0d 09 ba 34 66 |...dataload...4f| 00001590 69 6c 65 74 79 70 65 3d 62 6c 6f 63 6b 25 21 34 |iletype=block%!4| 000015a0 30 3a 66 69 6c 65 24 3d a4 7a 65 72 6f 5f 73 74 |0:file$=.zero_st| 000015b0 72 69 6e 67 28 62 6c 6f 63 6b 25 2b 34 34 29 0d |ring(block%+44).| 000015c0 09 c4 23 77 69 6e 64 6f 77 3d 62 6c 6f 63 6b 25 |..#window=block%| 000015d0 21 32 30 3a 69 63 6f 6e 3d 62 6c 6f 63 6b 25 21 |!20:icon=block%!| 000015e0 32 34 0d 09 ce 0f c8 8e 20 77 69 6e 64 6f 77 20 |24...... window | 000015f0 ca 0d 09 d8 19 20 20 c9 20 2d 32 3a f2 69 63 6f |..... . -2:.ico| 00001600 6e 5f 62 61 72 5f 64 72 61 67 0d 09 e2 1d 20 20 |n_bar_drag.... | 00001610 c9 20 68 61 6e 64 6c 65 3a f2 61 64 64 5f 6d 65 |. handle:.add_me| 00001620 6e 75 5f 64 72 61 67 0d 09 ec 1e 20 20 c9 20 63 |nu_drag.... . c| 00001630 6f 70 79 5f 68 61 6e 64 6c 65 3a f2 63 6f 70 79 |opy_handle:.copy| 00001640 5f 66 69 6c 65 0d 09 f6 05 cb 0d 0a 00 05 e1 0d |_file...........| 00001650 0a 0a 04 0d 0a 14 13 dd f2 69 63 6f 6e 5f 62 61 |.........icon_ba| 00001660 72 5f 64 72 61 67 0d 0a 1e 23 e7 20 66 69 6c 65 |r_drag...#. file| 00001670 74 79 70 65 3c 3e 26 32 30 30 30 20 f2 65 72 72 |type<>&2000 .err| 00001680 6f 72 28 32 2c 31 29 3a e1 0d 0a 28 0e f2 6c 6f |or(2,1):...(..lo| 00001690 61 64 5f 66 69 6c 65 0d 0a 32 05 e1 0d 0a 3c 04 |ad_file..2....<.| 000016a0 0d 0a 46 13 dd f2 61 64 64 5f 6d 65 6e 75 5f 64 |..F...add_menu_d| 000016b0 72 61 67 0d 0a 50 1e f2 63 6c 6f 73 65 5f 77 69 |rag..P..close_wi| 000016c0 6e 64 6f 77 28 69 74 69 6e 5f 68 61 6e 64 6c 65 |ndow(itin_handle| 000016d0 29 0d 0a 5a 0e 6d 6f 64 69 66 69 65 64 3d b9 0d |)..Z.modified=..| 000016e0 0a 64 22 6e 65 77 70 6f 73 3d 6e 6f 5f 6f 70 74 |.d"newpos=no_opt| 000016f0 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 29 2b |s(current_menu)+| 00001700 31 0d 0a 6e 19 e7 20 6e 65 77 70 6f 73 3d 32 35 |1..n.. newpos=25| 00001710 36 20 6e 65 77 70 6f 73 3d 30 0d 0a 78 11 e7 20 |6 newpos=0..x.. | 00001720 6e 65 77 70 6f 73 3e 31 37 20 8c 0d 0a 82 11 20 |newpos>17 ..... | 00001730 20 f2 65 72 72 6f 72 28 33 2c 31 29 0d 0a 8c 07 | .error(3,1)....| 00001740 20 20 e1 0d 0a 96 05 cd 0d 0a a0 42 6e 6f 5f 6f | .........Bno_o| 00001750 70 74 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |pts(current_menu| 00001760 29 3d 6e 65 77 70 6f 73 3a 66 6e 61 6d 65 24 28 |)=newpos:fname$(| 00001770 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6e 65 77 |current_menu,new| 00001780 70 6f 73 29 3d 66 69 6c 65 24 0d 0a aa 4f 74 65 |pos)=file$...Ote| 00001790 78 74 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |xt$(current_menu| 000017a0 2c 6e 65 77 70 6f 73 29 3d a4 66 69 6c 65 28 66 |,newpos)=.file(f| 000017b0 69 6c 65 24 29 3a 66 74 79 70 65 28 63 75 72 72 |ile$):ftype(curr| 000017c0 65 6e 74 5f 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 |ent_menu,newpos)| 000017d0 3d 66 69 6c 65 74 79 70 65 0d 0a b4 09 61 63 74 |=filetype....act| 000017e0 3d 31 0d 0a be 11 c8 8e 20 66 69 6c 65 74 79 70 |=1...... filetyp| 000017f0 65 20 ca 0d 0a c8 3c 20 20 c9 20 26 31 30 30 30 |e ....< . &1000| 00001800 3a 73 70 72 69 74 65 24 28 63 75 72 72 65 6e 74 |:sprite$(current| 00001810 5f 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d 22 64 |_menu,newpos)="d| 00001820 69 72 65 63 74 6f 72 79 22 3a 61 63 74 3d 32 0d |irectory":act=2.| 00001830 0a d2 4b 20 20 c9 20 26 32 30 30 30 3a 73 70 72 |..K . &2000:spr| 00001840 69 74 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ite$(current_men| 00001850 75 2c 6e 65 77 70 6f 73 29 3d 74 65 78 74 24 28 |u,newpos)=text$(| 00001860 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6e 65 77 |current_menu,new| 00001870 70 6f 73 29 3a 61 63 74 3d 33 0d 0a dc 3e 20 20 |pos):act=3...> | 00001880 7f 3a 20 73 70 72 69 74 65 24 28 63 75 72 72 65 |.: sprite$(curre| 00001890 6e 74 5f 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d |nt_menu,newpos)=| 000018a0 22 66 69 6c 65 5f 22 2b c3 7e 66 69 6c 65 74 79 |"file_"+.~filety| 000018b0 70 65 3a 61 63 74 3d 33 0d 0a e6 05 cb 0d 0a f0 |pe:act=3........| 000018c0 23 61 63 74 69 6f 6e 28 63 75 72 72 65 6e 74 5f |#action(current_| 000018d0 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d 61 63 74 |menu,newpos)=act| 000018e0 0d 0a fa 13 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 |.....redo_all_ic| 000018f0 6f 6e 73 0d 0b 04 05 e1 0d 0b 0e 04 0d 0b 18 0f |ons.............| 00001900 dd a4 66 69 6c 65 28 66 6e 24 29 0d 0b 22 0f 69 |..file(fn$)..".i| 00001910 6e 3d a9 28 66 6e 24 29 2b 31 0d 0b 2c 05 f5 0d |n=.(fn$)+1..,...| 00001920 0b 36 0b 20 20 69 6e 2d 3d 31 0d 0b 40 14 fd 20 |.6. in-=1..@.. | 00001930 c1 66 6e 24 2c 69 6e 2c 31 29 3d 22 2e 22 0d 0b |.fn$,in,1)="."..| 00001940 4a 14 3d c2 66 6e 24 2c a9 28 66 6e 24 29 2d 69 |J.=.fn$,.(fn$)-i| 00001950 6e 29 0d 0b 54 04 0d 0b 5e 14 dd f2 72 65 64 6f |n)..T...^...redo| 00001960 5f 61 6c 6c 5f 69 63 6f 6e 73 0d 0b 68 1a 70 6c |_all_icons..h.pl| 00001970 75 73 3d 31 38 3a 74 6f 3d 31 37 3a 74 69 74 6c |us=18:to=17:titl| 00001980 65 3d 33 36 0d 0b 72 10 e3 20 69 63 6e 3d 30 20 |e=36..r.. icn=0 | 00001990 b8 20 74 6f 0d 0b 7c 39 20 20 f2 73 65 74 5f 69 |. to..|9 .set_i| 000019a0 6e 64 69 72 65 63 74 65 64 28 68 61 6e 64 6c 65 |ndirected(handle| 000019b0 2c 69 63 6e 2c 74 65 78 74 24 28 63 75 72 72 65 |,icn,text$(curre| 000019c0 6e 74 5f 6d 65 6e 75 2c 69 63 6e 29 29 0d 0b 86 |nt_menu,icn))...| 000019d0 40 20 20 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 |@ .set_indirect| 000019e0 65 64 28 68 61 6e 64 6c 65 2c 69 63 6e 2b 70 6c |ed(handle,icn+pl| 000019f0 75 73 2c 73 70 72 69 74 65 24 28 63 75 72 72 65 |us,sprite$(curre| 00001a00 6e 74 5f 6d 65 6e 75 2c 69 63 6e 29 29 0d 0b 90 |nt_menu,icn))...| 00001a10 24 20 20 f2 75 6e 73 65 74 5f 62 69 74 28 68 61 |$ .unset_bit(ha| 00001a20 6e 64 6c 65 2c 69 63 6e 2b 70 6c 75 73 2c 32 31 |ndle,icn+plus,21| 00001a30 29 0d 0b 9a 05 ed 0d 0b a4 36 f2 73 65 74 5f 69 |)........6.set_i| 00001a40 6e 64 69 72 65 63 74 65 64 28 68 61 6e 64 6c 65 |ndirected(handle| 00001a50 2c 74 69 74 6c 65 2c 6d 6e 61 6d 65 24 28 63 75 |,title,mname$(cu| 00001a60 72 72 65 6e 74 5f 6d 65 6e 75 29 29 0d 0b ae 10 |rrent_menu))....| 00001a70 f2 73 69 7a 65 5f 77 69 6e 64 6f 77 0d 0b b8 2e |.size_window....| 00001a80 c8 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 |.."Wimp_ForceRed| 00001a90 72 61 77 22 2c 68 61 6e 64 6c 65 2c 30 2c 2d 31 |raw",handle,0,-1| 00001aa0 38 30 30 2c 31 32 30 30 2c 30 0d 0b c2 05 e1 0d |800,1200,0......| 00001ab0 0b cc 04 0d 0b d6 11 dd f2 73 69 7a 65 5f 77 69 |.........size_wi| 00001ac0 6e 64 6f 77 0d 0b e0 1b 6e 3d 6e 6f 5f 6f 70 74 |ndow....n=no_opt| 00001ad0 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 29 0d |s(current_menu).| 00001ae0 0b ea 10 e7 20 6e 3d 32 35 35 20 6e 3d 2d 31 0d |.... n=255 n=-1.| 00001af0 0b f4 0f c8 8e 20 68 61 6e 64 6c 65 20 ca 0d 0b |..... handle ...| 00001b00 fe 1f 20 20 c9 20 74 79 70 31 5f 68 61 6e 64 6c |.. . typ1_handl| 00001b10 65 3a f2 74 79 70 65 31 5f 73 69 7a 65 0d 0c 08 |e:.type1_size...| 00001b20 1f 20 20 c9 20 74 79 70 32 5f 68 61 6e 64 6c 65 |. . typ2_handle| 00001b30 3a f2 74 79 70 65 32 5f 73 69 7a 65 0d 0c 12 1f |:.type2_size....| 00001b40 20 20 c9 20 74 79 70 33 5f 68 61 6e 64 6c 65 3a | . typ3_handle:| 00001b50 f2 74 79 70 65 33 5f 73 69 7a 65 0d 0c 1c 05 cb |.type3_size.....| 00001b60 0d 0c 26 05 e1 0d 0c 30 04 0d 0c 3a 10 dd f2 74 |..&....0...:...t| 00001b70 79 70 65 31 5f 73 69 7a 65 0d 0c 44 1b 6e 2b 3d |ype1_size..D.n+=| 00001b80 31 3a 78 3d 36 34 30 3a 79 3d 31 36 30 2b 28 6e |1:x=640:y=160+(n| 00001b90 2a 38 38 29 0d 0c 4e 30 21 62 6c 6f 63 6b 25 3d |*88)..N0!block%=| 00001ba0 30 3a 62 6c 6f 63 6b 25 21 34 3d 2d 79 3a 62 6c |0:block%!4=-y:bl| 00001bb0 6f 63 6b 25 21 38 3d 78 3a 62 6c 6f 63 6b 25 21 |ock%!8=x:block%!| 00001bc0 31 32 3d 30 0d 0c 58 24 c8 99 22 57 69 6d 70 5f |12=0..X$.."Wimp_| 00001bd0 53 65 74 45 78 74 65 6e 74 22 2c 68 61 6e 64 6c |SetExtent",handl| 00001be0 65 2c 62 6c 6f 63 6b 25 0d 0c 62 1a e7 20 6e 3e |e,block%..b.. n>| 00001bf0 31 30 20 8c 20 79 3d 31 36 30 2b 28 31 30 2a 38 |10 . y=160+(10*8| 00001c00 38 29 0d 0c 6c 12 21 62 6c 6f 63 6b 25 3d 68 61 |8)..l.!block%=ha| 00001c10 6e 64 6c 65 0d 0c 76 23 c8 99 22 57 69 6d 70 5f |ndle..v#.."Wimp_| 00001c20 47 65 74 57 69 6e 64 6f 77 53 74 61 74 65 22 2c |GetWindowState",| 00001c30 2c 62 6c 6f 63 6b 25 0d 0c 80 2d 62 6c 6f 63 6b |,block%...-block| 00001c40 25 21 31 32 3d 62 6c 6f 63 6b 25 21 34 2b 78 3a |%!12=block%!4+x:| 00001c50 62 6c 6f 63 6b 25 21 31 36 3d 62 6c 6f 63 6b 25 |block%!16=block%| 00001c60 21 38 2b 79 0d 0c 8a 1f c8 99 22 57 69 6d 70 5f |!8+y......"Wimp_| 00001c70 4f 70 65 6e 57 69 6e 64 6f 77 22 2c 2c 62 6c 6f |OpenWindow",,blo| 00001c80 63 6b 25 0d 0c 94 05 e1 0d 0c 9e 04 0d 0c a8 10 |ck%.............| 00001c90 dd f2 74 79 70 65 32 5f 73 69 7a 65 0d 0c b2 0f |..type2_size....| 00001ca0 79 3d 28 6e 20 81 20 32 29 2b 31 0d 0c bc 14 e7 |y=(n . 2)+1.....| 00001cb0 20 6e 3e 28 79 2a 32 29 20 8c 20 79 2b 3d 31 0d | n>(y*2) . y+=1.| 00001cc0 0c c6 17 78 3d 31 30 38 30 3a 79 3d 31 33 32 2b |...x=1080:y=132+| 00001cd0 28 79 2a 38 38 29 0d 0c d0 12 21 62 6c 6f 63 6b |(y*88)....!block| 00001ce0 25 3d 68 61 6e 64 6c 65 0d 0c da 23 c8 99 22 57 |%=handle...#.."W| 00001cf0 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 74 61 |imp_GetWindowSta| 00001d00 74 65 22 2c 2c 62 6c 6f 63 6b 25 0d 0c e4 2d 62 |te",,block%...-b| 00001d10 6c 6f 63 6b 25 21 31 32 3d 62 6c 6f 63 6b 25 21 |lock%!12=block%!| 00001d20 34 2b 78 3a 62 6c 6f 63 6b 25 21 31 36 3d 62 6c |4+x:block%!16=bl| 00001d30 6f 63 6b 25 21 38 2b 79 0d 0c ee 1f c8 99 22 57 |ock%!8+y......"W| 00001d40 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 2c |imp_OpenWindow",| 00001d50 2c 62 6c 6f 63 6b 25 0d 0c f8 05 e1 0d 0d 02 04 |,block%.........| 00001d60 0d 0d 0c 10 dd f2 74 79 70 65 33 5f 73 69 7a 65 |......type3_size| 00001d70 0d 0d 16 0f 79 3d 28 6e 20 81 20 33 29 2b 31 0d |....y=(n . 3)+1.| 00001d80 0d 20 14 e7 20 6e 3e 28 79 2a 33 29 20 8c 20 79 |. .. n>(y*3) . y| 00001d90 2b 3d 31 0d 0d 2a 17 78 3d 38 37 32 3a 79 3d 31 |+=1..*.x=872:y=1| 00001da0 32 30 2b 28 79 2a 31 33 32 29 0d 0d 34 12 21 62 |20+(y*132)..4.!b| 00001db0 6c 6f 63 6b 25 3d 68 61 6e 64 6c 65 0d 0d 3e 23 |lock%=handle..>#| 00001dc0 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |.."Wimp_GetWindo| 00001dd0 77 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b 25 0d |wState",,block%.| 00001de0 0d 48 2d 62 6c 6f 63 6b 25 21 31 32 3d 62 6c 6f |.H-block%!12=blo| 00001df0 63 6b 25 21 34 2b 78 3a 62 6c 6f 63 6b 25 21 31 |ck%!4+x:block%!1| 00001e00 36 3d 62 6c 6f 63 6b 25 21 38 2b 79 0d 0d 52 1f |6=block%!8+y..R.| 00001e10 c8 99 22 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 |.."Wimp_OpenWind| 00001e20 6f 77 22 2c 2c 62 6c 6f 63 6b 25 0d 0d 5c 05 e1 |ow",,block%..\..| 00001e30 0d 0d 66 04 0d 0d 70 0f dd f2 6c 69 73 74 5f 6d |..f...p...list_m| 00001e40 65 6e 75 0d 0d 7a 0d 6f 73 5f 6d 65 6e 75 3d 32 |enu..z.os_menu=2| 00001e50 0d 0d 84 42 e7 20 69 63 6f 6e 3e 3d 30 20 80 20 |...B. icon>=0 . | 00001e60 69 63 6f 6e 3c 3d 32 30 20 8c 20 77 6d 5f 64 61 |icon<=20 . wm_da| 00001e70 74 61 24 28 32 2c 32 29 3d 22 4d 65 6e 75 20 27 |ta$(2,2)="Menu '| 00001e80 22 2b 6d 6e 61 6d 65 24 28 69 63 6f 6e 29 2b 22 |"+mname$(icon)+"| 00001e90 27 22 0d 0d 8e 11 f2 6d 61 6b 65 5f 6d 65 6e 75 |'".....make_menu| 00001ea0 28 32 29 0d 0d 98 2e e7 20 c2 77 6d 5f 64 61 74 |(2)..... .wm_dat| 00001eb0 61 24 28 32 2c 32 29 2c 32 29 3d 22 27 27 22 20 |a$(2,2),2)="''" | 00001ec0 8c 20 f2 67 72 65 79 5f 69 74 65 6d 28 32 2c 32 |. .grey_item(2,2| 00001ed0 29 0d 0d a2 2d f2 73 68 6f 77 6d 65 6e 75 28 6d |)...-.showmenu(m| 00001ee0 65 6e 75 73 5f 6d 65 6e 75 2c 21 62 6c 6f 63 6b |enus_menu,!block| 00001ef0 25 2d 36 34 2c 62 6c 6f 63 6b 25 21 34 29 0d 0d |%-64,block%!4)..| 00001f00 ac 05 e1 0d 0d b6 04 0d 0d c0 11 dd f2 68 61 6e |.............han| 00001f10 64 6c 65 5f 6d 65 6e 75 0d 0d ca 1c 69 74 65 6d |dle_menu....item| 00001f20 3d a4 69 63 6f 6e 5f 74 6f 5f 69 74 65 6d 28 69 |=.icon_to_item(i| 00001f30 63 6f 6e 29 0d 0d d4 0d 6f 73 5f 6d 65 6e 75 3d |con)....os_menu=| 00001f40 33 0d 0d de 10 69 74 24 3d 22 49 74 65 6d 20 27 |3....it$="Item '| 00001f50 22 0d 0d e8 1a e7 20 69 74 65 6d 3e 3d 30 20 80 |"..... item>=0 .| 00001f60 20 69 74 65 6d 3c 3d 34 30 20 8c 0d 0d f2 2a 20 | item<=40 ....* | 00001f70 20 69 74 24 3d 69 74 24 2b 74 65 78 74 24 28 63 | it$=it$+text$(c| 00001f80 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d |urrent_menu,item| 00001f90 29 2b 22 27 22 0d 0d fc 05 cc 0d 0e 06 0e 20 20 |)+"'"......... | 00001fa0 69 74 24 2b 3d 22 27 22 0d 0e 10 05 cd 0d 0e 1a |it$+="'"........| 00001fb0 15 77 6d 5f 64 61 74 61 24 28 33 2c 31 29 3d 69 |.wm_data$(3,1)=i| 00001fc0 74 24 0d 0e 24 11 f2 6d 61 6b 65 5f 6d 65 6e 75 |t$..$..make_menu| 00001fd0 28 33 29 0d 0e 2e 24 e7 20 c2 69 74 24 2c 32 29 |(3)...$. .it$,2)| 00001fe0 3d 22 27 27 22 20 8c 20 f2 67 72 65 79 5f 69 74 |="''" . .grey_it| 00001ff0 65 6d 28 33 2c 31 29 0d 0e 38 2d f2 73 68 6f 77 |em(3,1)..8-.show| 00002000 6d 65 6e 75 28 69 74 65 6d 73 5f 6d 65 6e 75 2c |menu(items_menu,| 00002010 21 62 6c 6f 63 6b 25 2d 36 34 2c 62 6c 6f 63 6b |!block%-64,block| 00002020 25 21 34 29 0d 0e 42 05 e1 0d 0e 4c 04 0d 0e 56 |%!4)..B....L...V| 00002030 14 dd f2 6f 70 65 6e 5f 69 62 5f 77 69 6e 64 6f |...open_ib_windo| 00002040 77 0d 0e 60 1d f2 6f 70 65 6e 5f 77 69 6e 64 6f |w..`..open_windo| 00002050 77 28 6c 69 73 74 5f 68 61 6e 64 6c 65 29 0d 0e |w(list_handle)..| 00002060 6a 10 f2 72 65 64 72 61 77 5f 6c 69 73 74 0d 0e |j..redraw_list..| 00002070 74 13 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 6f 6e |t..redo_all_icon| 00002080 73 0d 0e 7e 05 e1 0d 0e 88 04 0d 0e 92 11 dd f2 |s..~............| 00002090 64 65 6c 65 74 65 5f 6d 65 6e 75 0d 0e 9c 1c e7 |delete_menu.....| 000020a0 20 69 63 6f 6e 3d 30 20 8c 20 f2 65 72 72 6f 72 | icon=0 . .error| 000020b0 28 34 2c 31 29 3a e1 0d 0e a6 49 65 72 72 6f 72 |(4,1):....Ierror| 000020c0 24 3d 22 41 72 65 20 79 6f 75 20 73 75 72 65 20 |$="Are you sure | 000020d0 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 65 6c 65 |you want to dele| 000020e0 74 65 20 74 68 65 20 6d 65 6e 75 20 27 22 2b 6d |te the menu '"+m| 000020f0 6e 61 6d 65 24 28 69 63 6f 6e 29 2b 22 27 3f 22 |name$(icon)+"'?"| 00002100 0d 0e b0 1b f2 72 65 70 6f 72 74 5f 65 72 72 6f |.....report_erro| 00002110 72 28 65 72 72 6f 72 24 2c 33 29 0d 0e ba 17 e7 |r(error$,3).....| 00002120 20 75 73 65 72 5f 72 65 73 70 6f 6e 73 65 3d 32 | user_response=2| 00002130 20 e1 0d 0e c4 0e 6d 6f 64 69 66 69 65 64 3d b9 | .....modified=.| 00002140 0d 0e ce 19 e7 20 69 63 6f 6e 3d 63 75 72 72 65 |..... icon=curre| 00002150 6e 74 5f 6d 65 6e 75 20 8c 0d 0e d8 14 20 20 63 |nt_menu ..... c| 00002160 75 72 72 65 6e 74 5f 6d 65 6e 75 3d 30 0d 0e e2 |urrent_menu=0...| 00002170 1b 20 20 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 |. .close_window| 00002180 28 68 61 6e 64 6c 65 29 0d 0e ec 05 cd 0d 0e f6 |(handle)........| 00002190 14 e3 20 6c 6f 6f 70 3d 69 63 6f 6e 20 b8 20 31 |.. loop=icon . 1| 000021a0 38 0d 0f 00 23 20 20 6e 6f 5f 6f 70 74 73 28 6c |8...# no_opts(l| 000021b0 6f 6f 70 29 3d 6e 6f 5f 6f 70 74 73 28 6c 6f 6f |oop)=no_opts(loo| 000021c0 70 2b 31 29 0d 0f 0a 1d 20 20 74 79 70 65 28 6c |p+1).... type(l| 000021d0 6f 6f 70 29 3d 74 79 70 65 28 6c 6f 6f 70 2b 31 |oop)=type(loop+1| 000021e0 29 0d 0f 14 21 20 20 6d 6e 61 6d 65 24 28 6c 6f |)...! mname$(lo| 000021f0 6f 70 29 3d 6d 6e 61 6d 65 24 28 6c 6f 6f 70 2b |op)=mname$(loop+| 00002200 31 29 0d 0f 1e 16 20 20 e3 20 73 75 62 6c 6f 6f |1).... . subloo| 00002210 70 3d 30 20 b8 20 34 30 0d 0f 28 33 20 20 20 20 |p=0 . 40..(3 | 00002220 61 63 74 69 6f 6e 28 6c 6f 6f 70 2c 73 75 62 6c |action(loop,subl| 00002230 6f 6f 70 29 3d 61 63 74 69 6f 6e 28 6c 6f 6f 70 |oop)=action(loop| 00002240 2b 31 2c 73 75 62 6c 6f 6f 70 29 0d 0f 32 33 20 |+1,subloop)..23 | 00002250 20 20 20 66 6e 61 6d 65 24 28 6c 6f 6f 70 2c 73 | fname$(loop,s| 00002260 75 62 6c 6f 6f 70 29 3d 66 6e 61 6d 65 24 28 6c |ubloop)=fname$(l| 00002270 6f 6f 70 2b 31 2c 73 75 62 6c 6f 6f 70 29 0d 0f |oop+1,subloop)..| 00002280 3c 31 20 20 20 20 74 65 78 74 24 28 6c 6f 6f 70 |<1 text$(loop| 00002290 2c 73 75 62 6c 6f 6f 70 29 3d 74 65 78 74 24 28 |,subloop)=text$(| 000022a0 6c 6f 6f 70 2b 31 2c 73 75 62 6c 6f 6f 70 29 0d |loop+1,subloop).| 000022b0 0f 46 35 20 20 20 20 73 70 72 69 74 65 24 28 6c |.F5 sprite$(l| 000022c0 6f 6f 70 2c 73 75 62 6c 6f 6f 70 29 3d 73 70 72 |oop,subloop)=spr| 000022d0 69 74 65 24 28 6c 6f 6f 70 2b 31 2c 73 75 62 6c |ite$(loop+1,subl| 000022e0 6f 6f 70 29 0d 0f 50 31 20 20 20 20 66 74 79 70 |oop)..P1 ftyp| 000022f0 65 28 6c 6f 6f 70 2c 73 75 62 6c 6f 6f 70 29 3d |e(loop,subloop)=| 00002300 66 74 79 70 65 28 6c 6f 6f 70 2b 31 2c 73 75 62 |ftype(loop+1,sub| 00002310 6c 6f 6f 70 29 0d 0f 5a 07 20 20 ed 0d 0f 64 05 |loop)..Z. ...d.| 00002320 ed 0d 0f 6e 11 6d 6e 61 6d 65 24 28 31 39 29 3d |...n.mname$(19)=| 00002330 22 22 0d 0f 78 0f 6e 75 6d 5f 6d 65 6e 73 2d 3d |""..x.num_mens-=| 00002340 31 0d 0f 82 10 f2 72 65 64 72 61 77 5f 6c 69 73 |1.....redraw_lis| 00002350 74 0d 0f 8c 05 e1 0d 0f 96 04 0d 0f a0 11 dd f2 |t...............| 00002360 64 65 6c 65 74 65 5f 69 74 65 6d 0d 0f aa 1e f2 |delete_item.....| 00002370 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 69 74 69 |close_window(iti| 00002380 6e 5f 68 61 6e 64 6c 65 29 0d 0f b4 1c 69 74 65 |n_handle)....ite| 00002390 6d 3d a4 69 63 6f 6e 5f 74 6f 5f 69 74 65 6d 28 |m=.icon_to_item(| 000023a0 69 63 6f 6e 29 0d 0f be 0e 6d 6f 64 69 66 69 65 |icon)....modifie| 000023b0 64 3d b9 0d 0f c8 14 e3 20 6c 6f 6f 70 3d 69 74 |d=...... loop=it| 000023c0 65 6d 20 b8 20 31 37 0d 0f d2 3b 20 20 61 63 74 |em . 17...; act| 000023d0 69 6f 6e 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ion(current_menu| 000023e0 2c 6c 6f 6f 70 29 3d 61 63 74 69 6f 6e 28 63 75 |,loop)=action(cu| 000023f0 72 72 65 6e 74 5f 6d 65 6e 75 2c 6c 6f 6f 70 2b |rrent_menu,loop+| 00002400 31 29 0d 0f dc 3b 20 20 66 6e 61 6d 65 24 28 63 |1)...; fname$(c| 00002410 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6c 6f 6f 70 |urrent_menu,loop| 00002420 29 3d 66 6e 61 6d 65 24 28 63 75 72 72 65 6e 74 |)=fname$(current| 00002430 5f 6d 65 6e 75 2c 6c 6f 6f 70 2b 31 29 0d 0f e6 |_menu,loop+1)...| 00002440 39 20 20 74 65 78 74 24 28 63 75 72 72 65 6e 74 |9 text$(current| 00002450 5f 6d 65 6e 75 2c 6c 6f 6f 70 29 3d 74 65 78 74 |_menu,loop)=text| 00002460 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6c |$(current_menu,l| 00002470 6f 6f 70 2b 31 29 0d 0f f0 3d 20 20 73 70 72 69 |oop+1)...= spri| 00002480 74 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |te$(current_menu| 00002490 2c 6c 6f 6f 70 29 3d 73 70 72 69 74 65 24 28 63 |,loop)=sprite$(c| 000024a0 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6c 6f 6f 70 |urrent_menu,loop| 000024b0 2b 31 29 0d 0f fa 39 20 20 66 74 79 70 65 28 63 |+1)...9 ftype(c| 000024c0 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6c 6f 6f 70 |urrent_menu,loop| 000024d0 29 3d 66 74 79 70 65 28 63 75 72 72 65 6e 74 5f |)=ftype(current_| 000024e0 6d 65 6e 75 2c 6c 6f 6f 70 2b 31 29 0d 10 04 05 |menu,loop+1)....| 000024f0 ed 0d 10 0e 1c 6e 6f 5f 6f 70 74 73 28 63 75 72 |.....no_opts(cur| 00002500 72 65 6e 74 5f 6d 65 6e 75 29 2d 3d 31 0d 10 18 |rent_menu)-=1...| 00002510 13 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 6f 6e 73 |..redo_all_icons| 00002520 0d 10 22 05 e1 0d 10 2c 04 0d 10 36 0e dd f2 6e |.."....,...6...n| 00002530 65 77 5f 6d 65 6e 75 0d 10 40 13 e7 20 6e 75 6d |ew_menu..@.. num| 00002540 5f 6d 65 6e 73 3d 32 30 20 8c 0d 10 4a 11 20 20 |_mens=20 ...J. | 00002550 f2 65 72 72 6f 72 28 35 2c 31 29 0d 10 54 07 20 |.error(5,1)..T. | 00002560 20 e1 0d 10 5e 05 cd 0d 10 68 09 69 6e 6d 3d b9 | ...^....h.inm=.| 00002570 0d 10 72 17 61 6c 74 65 72 5f 6d 65 6e 75 3d 6e |..r.alter_menu=n| 00002580 75 6d 5f 6d 65 6e 73 0d 10 7c 27 f2 63 65 6e 74 |um_mens..|'.cent| 00002590 72 65 5f 77 69 6e 64 6f 77 28 63 72 6d 65 5f 68 |re_window(crme_h| 000025a0 61 6e 64 6c 65 2c 35 30 38 2c 34 38 30 29 0d 10 |andle,508,480)..| 000025b0 86 2d f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 |.-.set_indirecte| 000025c0 64 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 37 2c |d(crme_handle,7,| 000025d0 22 4e 65 77 20 6d 65 6e 75 22 29 0d 10 90 1e f2 |"New menu").....| 000025e0 73 65 74 5f 62 69 74 28 63 72 6d 65 5f 68 61 6e |set_bit(crme_han| 000025f0 64 6c 65 2c 32 2c 32 31 29 0d 10 9a 3d f2 75 6e |dle,2,21)...=.un| 00002600 73 65 74 5f 62 69 74 28 63 72 6d 65 5f 68 61 6e |set_bit(crme_han| 00002610 64 6c 65 2c 33 2c 32 31 29 3a f2 75 6e 73 65 74 |dle,3,21):.unset| 00002620 5f 62 69 74 28 63 72 6d 65 5f 68 61 6e 64 6c 65 |_bit(crme_handle| 00002630 2c 34 2c 32 31 29 0d 10 a4 19 f2 63 61 72 65 74 |,4,21).....caret| 00002640 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 37 29 0d |(crme_handle,7).| 00002650 10 ae 05 e1 0d 10 b8 04 0d 10 c2 10 dd f2 61 6c |..............al| 00002660 74 65 72 5f 6d 65 6e 75 0d 10 cc 24 e7 20 69 63 |ter_menu...$. ic| 00002670 6f 6e 3c 30 20 84 20 69 63 6f 6e 3e 31 39 20 8c |on<0 . icon>19 .| 00002680 20 f2 65 72 72 6f 72 28 36 2c 31 29 0d 10 d6 09 | .error(6,1)....| 00002690 69 6e 6d 3d a3 0d 10 e0 13 61 6c 74 65 72 5f 6d |inm=.....alter_m| 000026a0 65 6e 75 3d 69 63 6f 6e 0d 10 ea 27 f2 63 65 6e |enu=icon...'.cen| 000026b0 74 72 65 5f 77 69 6e 64 6f 77 28 63 72 6d 65 5f |tre_window(crme_| 000026c0 68 61 6e 64 6c 65 2c 35 30 38 2c 34 38 30 29 0d |handle,508,480).| 000026d0 10 f4 35 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 |..5.set_indirect| 000026e0 65 64 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 37 |ed(crme_handle,7| 000026f0 2c 6d 6e 61 6d 65 24 28 61 6c 74 65 72 5f 6d 65 |,mname$(alter_me| 00002700 6e 75 29 29 0d 10 fe 3d f2 75 6e 73 65 74 5f 62 |nu))...=.unset_b| 00002710 69 74 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 32 |it(crme_handle,2| 00002720 2c 32 31 29 3a f2 75 6e 73 65 74 5f 62 69 74 28 |,21):.unset_bit(| 00002730 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 33 2c 32 31 |crme_handle,3,21| 00002740 29 0d 11 08 20 f2 75 6e 73 65 74 5f 62 69 74 28 |)... .unset_bit(| 00002750 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 34 2c 32 31 |crme_handle,4,21| 00002760 29 0d 11 12 17 74 79 3d 74 79 70 65 28 61 6c 74 |)....ty=type(alt| 00002770 65 72 5f 6d 65 6e 75 29 0d 11 1c 1f e7 20 74 79 |er_menu)..... ty| 00002780 3c 31 20 84 20 74 79 3e 33 20 8c 20 f2 65 72 72 |<1 . ty>3 . .err| 00002790 6f 72 28 37 2c 31 29 0d 11 26 21 f2 73 65 74 5f |or(7,1)..&!.set_| 000027a0 62 69 74 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c |bit(crme_handle,| 000027b0 31 2b 74 79 2c 32 31 29 0d 11 30 19 f2 63 61 72 |1+ty,21)..0..car| 000027c0 65 74 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 37 |et(crme_handle,7| 000027d0 29 0d 11 3a 05 e1 0d 11 44 04 0d 11 4e 14 dd f2 |)..:....D...N...| 000027e0 65 6e 64 5f 61 6c 74 65 72 5f 6d 65 6e 75 0d 11 |end_alter_menu..| 000027f0 58 1e f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 |X..close_window(| 00002800 63 72 6d 65 5f 68 61 6e 64 6c 65 29 0d 11 62 2b |crme_handle)..b+| 00002810 6d 65 6e 6e 61 6d 65 24 3d a4 67 65 74 5f 69 6e |menname$=.get_in| 00002820 64 69 72 65 63 74 65 64 28 63 72 6d 65 5f 68 61 |directed(crme_ha| 00002830 6e 64 6c 65 2c 37 29 0d 11 6c 30 e7 20 69 6e 6d |ndle,7)..l0. inm| 00002840 20 80 20 a4 6d 65 6e 75 5f 65 78 69 73 74 28 6d | . .menu_exist(m| 00002850 65 6e 6e 61 6d 65 24 29 20 f2 65 72 72 6f 72 28 |enname$) .error(| 00002860 31 35 2c 31 29 3a e1 0d 11 76 17 e7 20 69 6e 6d |15,1):...v.. inm| 00002870 20 8c 20 6e 75 6d 5f 6d 65 6e 73 2b 3d 31 0d 11 | . num_mens+=1..| 00002880 80 29 e7 20 6d 6e 61 6d 65 24 28 61 6c 74 65 72 |.). mname$(alter| 00002890 5f 6d 65 6e 75 29 3c 3e 22 22 20 f2 6d 65 6e 75 |_menu)<>"" .menu| 000028a0 5f 65 78 69 73 74 73 0d 11 8a 1f 6d 6e 61 6d 65 |_exists....mname| 000028b0 24 28 61 6c 74 65 72 5f 6d 65 6e 75 29 3d 6d 65 |$(alter_menu)=me| 000028c0 6e 6e 61 6d 65 24 0d 11 94 3e f2 73 65 74 5f 69 |nname$...>.set_i| 000028d0 6e 64 69 72 65 63 74 65 64 28 6c 69 73 74 5f 68 |ndirected(list_h| 000028e0 61 6e 64 6c 65 2c 61 6c 74 65 72 5f 6d 65 6e 75 |andle,alter_menu| 000028f0 2c 6d 6e 61 6d 65 24 28 61 6c 74 65 72 5f 6d 65 |,mname$(alter_me| 00002900 6e 75 29 29 0d 11 9e 08 74 79 3d 31 0d 11 a8 26 |nu))....ty=1...&| 00002910 e7 20 a4 67 65 74 5f 73 74 61 74 65 28 63 72 6d |. .get_state(crm| 00002920 65 5f 68 61 6e 64 6c 65 2c 32 29 20 8c 20 74 79 |e_handle,2) . ty| 00002930 3d 31 0d 11 b2 26 e7 20 a4 67 65 74 5f 73 74 61 |=1...&. .get_sta| 00002940 74 65 28 63 72 6d 65 5f 68 61 6e 64 6c 65 2c 33 |te(crme_handle,3| 00002950 29 20 8c 20 74 79 3d 32 0d 11 bc 26 e7 20 a4 67 |) . ty=2...&. .g| 00002960 65 74 5f 73 74 61 74 65 28 63 72 6d 65 5f 68 61 |et_state(crme_ha| 00002970 6e 64 6c 65 2c 34 29 20 8c 20 74 79 3d 33 0d 11 |ndle,4) . ty=3..| 00002980 c6 17 74 79 70 65 28 61 6c 74 65 72 5f 6d 65 6e |..type(alter_men| 00002990 75 29 3d 74 79 0d 11 d0 1f e7 20 63 75 72 72 65 |u)=ty..... curre| 000029a0 6e 74 5f 6d 65 6e 75 3d 61 6c 74 65 72 5f 6d 65 |nt_menu=alter_me| 000029b0 6e 75 20 8c 0d 11 da 1b 20 20 f2 63 6c 6f 73 65 |nu ..... .close| 000029c0 5f 77 69 6e 64 6f 77 28 68 61 6e 64 6c 65 29 0d |_window(handle).| 000029d0 11 e4 1d 20 20 c8 8e 20 74 79 70 65 28 63 75 72 |... .. type(cur| 000029e0 72 65 6e 74 5f 6d 65 6e 75 29 20 ca 0d 11 ee 1f |rent_menu) .....| 000029f0 20 20 20 20 20 c9 20 31 3a 68 61 6e 64 6c 65 3d | . 1:handle=| 00002a00 74 79 70 31 5f 68 61 6e 64 6c 65 0d 11 f8 1f 20 |typ1_handle.... | 00002a10 20 20 20 20 c9 20 32 3a 68 61 6e 64 6c 65 3d 74 | . 2:handle=t| 00002a20 79 70 32 5f 68 61 6e 64 6c 65 0d 12 02 1f 20 20 |yp2_handle.... | 00002a30 20 20 20 c9 20 33 3a 68 61 6e 64 6c 65 3d 74 79 | . 3:handle=ty| 00002a40 70 33 5f 68 61 6e 64 6c 65 0d 12 0c 07 20 20 cb |p3_handle.... .| 00002a50 0d 12 16 1a 20 20 f2 6f 70 65 6e 5f 77 69 6e 64 |.... .open_wind| 00002a60 6f 77 28 68 61 6e 64 6c 65 29 0d 12 20 15 20 20 |ow(handle).. . | 00002a70 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 6f 6e 73 0d |.redo_all_icons.| 00002a80 12 2a 05 cd 0d 12 34 10 f2 72 65 64 72 61 77 5f |.*....4..redraw_| 00002a90 6c 69 73 74 0d 12 3e 0e 6d 6f 64 69 66 69 65 64 |list..>.modified| 00002aa0 3d b9 0d 12 48 05 e1 0d 12 52 04 0d 12 5c 11 dd |=...H....R...\..| 00002ab0 f2 6d 65 6e 75 5f 65 78 69 73 74 73 0d 12 66 19 |.menu_exists..f.| 00002ac0 e3 20 6d 65 6e 75 3d 30 20 b8 20 6e 75 6d 5f 6d |. menu=0 . num_m| 00002ad0 65 6e 73 2d 31 0d 12 70 23 20 20 e7 20 6e 6f 5f |ens-1..p# . no_| 00002ae0 6f 70 74 73 28 6d 65 6e 75 29 3c 3e 32 35 35 20 |opts(menu)<>255 | 00002af0 f2 6d 65 6e 75 5f 65 78 0d 12 7a 05 ed 0d 12 84 |.menu_ex..z.....| 00002b00 05 e1 0d 12 8e 04 0d 12 98 0d dd f2 6d 65 6e 75 |............menu| 00002b10 5f 65 78 0d 12 a2 1c e3 20 69 74 65 6d 3d 30 20 |_ex..... item=0 | 00002b20 b8 20 6e 6f 5f 6f 70 74 73 28 6d 65 6e 75 29 0d |. no_opts(menu).| 00002b30 12 ac 44 20 20 e7 20 61 63 74 69 6f 6e 28 6d 65 |..D . action(me| 00002b40 6e 75 2c 69 74 65 6d 29 3d 31 20 80 20 66 6e 61 |nu,item)=1 . fna| 00002b50 6d 65 24 28 6d 65 6e 75 2c 69 74 65 6d 29 3d 6d |me$(menu,item)=m| 00002b60 6e 61 6d 65 24 28 61 6c 74 65 72 5f 6d 65 6e 75 |name$(alter_menu| 00002b70 29 20 8c 0d 12 b6 22 20 20 20 20 66 6e 61 6d 65 |) ...." fname| 00002b80 24 28 6d 65 6e 75 2c 69 74 65 6d 29 3d 6d 65 6e |$(menu,item)=men| 00002b90 6e 61 6d 65 24 0d 12 c0 07 20 20 cd 0d 12 ca 05 |name$.... .....| 00002ba0 ed 0d 12 d4 05 e1 0d 12 de 04 0d 12 e8 19 dd f2 |................| 00002bb0 73 65 6c 65 63 74 5f 63 75 72 72 65 6e 74 5f 6d |select_current_m| 00002bc0 65 6e 75 0d 12 f2 15 63 75 72 72 65 6e 74 5f 6d |enu....current_m| 00002bd0 65 6e 75 3d 69 63 6f 6e 0d 12 fc 31 c8 99 22 57 |enu=icon...1.."W| 00002be0 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 |imp_ForceRedraw"| 00002bf0 2c 6c 69 73 74 5f 68 61 6e 64 6c 65 2c 30 2c 2d |,list_handle,0,-| 00002c00 38 32 30 2c 32 32 30 2c 30 0d 13 06 19 f2 63 6c |820,220,0.....cl| 00002c10 6f 73 65 5f 77 69 6e 64 6f 77 28 68 61 6e 64 6c |ose_window(handl| 00002c20 65 29 0d 13 10 2b 68 61 6e 64 6c 65 3d 77 69 5f |e)...+handle=wi_| 00002c30 68 61 6e 64 6c 65 25 28 74 79 70 65 28 63 75 72 |handle%(type(cur| 00002c40 72 65 6e 74 5f 6d 65 6e 75 29 2b 34 29 0d 13 1a |rent_menu)+4)...| 00002c50 27 64 61 74 61 3d 77 69 5f 64 61 74 61 25 28 74 |'data=wi_data%(t| 00002c60 79 70 65 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ype(current_menu| 00002c70 29 2b 34 29 0d 13 24 18 f2 6f 70 65 6e 5f 77 69 |)+4)..$..open_wi| 00002c80 6e 64 6f 77 28 68 61 6e 64 6c 65 29 0d 13 2e 13 |ndow(handle)....| 00002c90 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 6f 6e 73 0d |.redo_all_icons.| 00002ca0 13 38 10 f2 72 65 64 72 61 77 5f 6c 69 73 74 0d |.8..redraw_list.| 00002cb0 13 42 1e f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 |.B..close_window| 00002cc0 28 69 74 69 6e 5f 68 61 6e 64 6c 65 29 0d 13 4c |(itin_handle)..L| 00002cd0 05 e1 0d 13 56 04 0d 13 60 11 dd f2 72 65 64 72 |....V...`...redr| 00002ce0 61 77 5f 6c 69 73 74 0d 13 6a 11 e3 20 69 63 6f |aw_list..j.. ico| 00002cf0 6e 3d 30 20 b8 20 31 39 0d 13 74 35 20 20 f2 73 |n=0 . 19..t5 .s| 00002d00 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 6c 69 |et_indirected(li| 00002d10 73 74 5f 68 61 6e 64 6c 65 2c 69 63 6f 6e 2c 22 |st_handle,icon,"| 00002d20 20 20 22 2b a4 6d 28 69 63 6f 6e 29 29 0d 13 7e | "+.m(icon))..~| 00002d30 4b 20 20 e7 20 69 63 6f 6e 3d 63 75 72 72 65 6e |K . icon=curren| 00002d40 74 5f 6d 65 6e 75 20 8c 20 f2 73 65 74 5f 69 6e |t_menu . .set_in| 00002d50 64 69 72 65 63 74 65 64 28 6c 69 73 74 5f 68 61 |directed(list_ha| 00002d60 6e 64 6c 65 2c 69 63 6f 6e 2c 22 2a 20 22 2b a4 |ndle,icon,"* "+.| 00002d70 6d 28 69 63 6f 6e 29 29 0d 13 88 05 ed 0d 13 92 |m(icon))........| 00002d80 0e f2 6c 69 73 74 5f 73 69 7a 65 0d 13 9c 32 c8 |..list_size...2.| 00002d90 99 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 64 72 |."Wimp_ForceRedr| 00002da0 61 77 22 2c 6c 69 73 74 5f 68 61 6e 64 6c 65 2c |aw",list_handle,| 00002db0 30 2c 2d 31 30 30 30 2c 32 32 30 2c 30 0d 13 a6 |0,-1000,220,0...| 00002dc0 05 e1 0d 13 b0 04 0d 13 ba 0f dd f2 6c 69 73 74 |............list| 00002dd0 5f 73 69 7a 65 0d 13 c4 1c 78 3d 32 32 30 3a 79 |_size....x=220:y| 00002de0 3d 32 34 2b 28 6e 75 6d 5f 6d 65 6e 73 2a 34 30 |=24+(num_mens*40| 00002df0 29 0d 13 ce 14 e7 20 79 3c 3d 31 34 34 20 8c 20 |)..... y<=144 . | 00002e00 79 3d 31 34 34 0d 13 d8 30 21 62 6c 6f 63 6b 25 |y=144...0!block%| 00002e10 3d 30 3a 62 6c 6f 63 6b 25 21 34 3d 2d 79 3a 62 |=0:block%!4=-y:b| 00002e20 6c 6f 63 6b 25 21 38 3d 78 3a 62 6c 6f 63 6b 25 |lock%!8=x:block%| 00002e30 21 31 32 3d 30 0d 13 e2 29 c8 99 22 57 69 6d 70 |!12=0...).."Wimp| 00002e40 5f 53 65 74 45 78 74 65 6e 74 22 2c 6c 69 73 74 |_SetExtent",list| 00002e50 5f 68 61 6e 64 6c 65 2c 62 6c 6f 63 6b 25 0d 13 |_handle,block%..| 00002e60 ec 19 e7 20 6e 75 6d 5f 6d 65 6e 73 3e 31 30 20 |... num_mens>10 | 00002e70 8c 20 79 3d 34 32 34 0d 13 f6 17 21 62 6c 6f 63 |. y=424....!bloc| 00002e80 6b 25 3d 6c 69 73 74 5f 68 61 6e 64 6c 65 0d 14 |k%=list_handle..| 00002e90 00 23 c8 99 22 57 69 6d 70 5f 47 65 74 57 69 6e |.#.."Wimp_GetWin| 00002ea0 64 6f 77 53 74 61 74 65 22 2c 2c 62 6c 6f 63 6b |dowState",,block| 00002eb0 25 0d 14 0a 2d 62 6c 6f 63 6b 25 21 31 32 3d 62 |%...-block%!12=b| 00002ec0 6c 6f 63 6b 25 21 34 2b 78 3a 62 6c 6f 63 6b 25 |lock%!4+x:block%| 00002ed0 21 31 36 3d 62 6c 6f 63 6b 25 21 38 2b 79 0d 14 |!16=block%!8+y..| 00002ee0 14 1f c8 99 22 57 69 6d 70 5f 4f 70 65 6e 57 69 |...."Wimp_OpenWi| 00002ef0 6e 64 6f 77 22 2c 2c 62 6c 6f 63 6b 25 0d 14 1e |ndow",,block%...| 00002f00 05 e1 0d 14 28 04 0d 14 32 10 dd f2 61 6c 74 65 |....(...2...alte| 00002f10 72 5f 69 74 65 6d 0d 14 3c 27 f2 63 65 6e 74 72 |r_item..<'.centr| 00002f20 65 5f 77 69 6e 64 6f 77 28 69 74 69 6e 5f 68 61 |e_window(itin_ha| 00002f30 6e 64 6c 65 2c 35 32 38 2c 36 38 30 29 0d 14 46 |ndle,528,680)..F| 00002f40 1c 69 74 65 6d 3d a4 69 63 6f 6e 5f 74 6f 5f 69 |.item=.icon_to_i| 00002f50 74 65 6d 28 69 63 6f 6e 29 0d 14 50 13 61 6c 74 |tem(icon)..P.alt| 00002f60 65 72 5f 69 74 65 6d 3d 69 74 65 6d 0d 14 5a 3c |er_item=item..Z<| 00002f70 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 |.set_indirected(| 00002f80 69 74 69 6e 5f 68 61 6e 64 6c 65 2c 38 2c 66 6e |itin_handle,8,fn| 00002f90 61 6d 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ame$(current_men| 00002fa0 75 2c 69 74 65 6d 29 29 0d 14 64 3b f2 73 65 74 |u,item))..d;.set| 00002fb0 5f 69 6e 64 69 72 65 63 74 65 64 28 69 74 69 6e |_indirected(itin| 00002fc0 5f 68 61 6e 64 6c 65 2c 35 2c 74 65 78 74 24 28 |_handle,5,text$(| 00002fd0 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 |current_menu,ite| 00002fe0 6d 29 29 0d 14 6e 3d f2 73 65 74 5f 69 6e 64 69 |m))..n=.set_indi| 00002ff0 72 65 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 |rected(itin_hand| 00003000 6c 65 2c 32 2c 73 70 72 69 74 65 24 28 63 75 72 |le,2,sprite$(cur| 00003010 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d 29 29 |rent_menu,item))| 00003020 0d 14 78 3d f2 73 65 74 5f 69 6e 64 69 72 65 63 |..x=.set_indirec| 00003030 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 6c 65 2c |ted(itin_handle,| 00003040 31 2c 73 70 72 69 74 65 24 28 63 75 72 72 65 6e |1,sprite$(curren| 00003050 74 5f 6d 65 6e 75 2c 69 74 65 6d 29 29 0d 14 82 |t_menu,item))...| 00003060 2d 61 63 74 3d 61 63 74 69 6f 6e 28 63 75 72 72 |-act=action(curr| 00003070 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d 29 3a 61 |ent_menu,item):a| 00003080 63 74 24 3d 22 3f 3f 3f 3f 22 0d 14 8c 0c c8 8e |ct$="????"......| 00003090 20 61 63 74 20 ca 0d 14 96 1b 20 20 c9 20 31 3a | act ..... . 1:| 000030a0 61 63 74 24 3d 22 4f 70 65 6e 20 6d 65 6e 75 3a |act$="Open menu:| 000030b0 22 0d 14 a0 1a 20 20 c9 20 32 3a 61 63 74 24 3d |".... . 2:act$=| 000030c0 22 4f 70 65 6e 20 64 69 72 3a 22 0d 14 aa 1a 20 |"Open dir:".... | 000030d0 20 c9 20 33 3a 61 63 74 24 3d 22 52 75 6e 20 66 | . 3:act$="Run f| 000030e0 69 6c 65 3a 22 0d 14 b4 05 cb 0d 14 be 28 f2 73 |ile:"........(.s| 000030f0 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 69 74 |et_indirected(it| 00003100 69 6e 5f 68 61 6e 64 6c 65 2c 31 33 2c 61 63 74 |in_handle,13,act| 00003110 24 29 0d 14 c8 19 f2 63 61 72 65 74 28 69 74 69 |$).....caret(iti| 00003120 6e 5f 68 61 6e 64 6c 65 2c 32 29 0d 14 d2 05 e1 |n_handle,2).....| 00003130 0d 14 dc 04 0d 14 e6 14 dd f2 65 6e 64 5f 61 6c |..........end_al| 00003140 74 65 72 5f 69 74 65 6d 0d 14 f0 1e e7 20 61 6c |ter_item..... al| 00003150 74 65 72 5f 69 74 65 6d 3d 2d 31 20 f2 6d 69 6e |ter_item=-1 .min| 00003160 75 73 5f 6f 6e 65 0d 14 fa 17 e7 20 61 6c 74 65 |us_one..... alte| 00003170 72 5f 69 74 65 6d 3e 3d 31 30 30 20 8c 0d 15 04 |r_item>=100 ....| 00003180 15 20 20 61 6c 74 65 72 5f 69 74 65 6d 2d 3d 31 |. alter_item-=1| 00003190 30 30 0d 15 0e 1b 20 20 f2 63 72 65 61 74 65 5f |00.... .create_| 000031a0 61 6c 74 65 72 5f 73 75 62 6d 65 6e 75 0d 15 18 |alter_submenu...| 000031b0 05 cd 0d 15 22 42 66 6e 61 6d 65 24 28 63 75 72 |...."Bfname$(cur| 000031c0 72 65 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f |rent_menu,alter_| 000031d0 69 74 65 6d 29 3d a4 67 65 74 5f 69 6e 64 69 72 |item)=.get_indir| 000031e0 65 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 6c |ected(itin_handl| 000031f0 65 2c 38 29 0d 15 2c 41 74 65 78 74 24 28 63 75 |e,8)..,Atext$(cu| 00003200 72 72 65 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 |rrent_menu,alter| 00003210 5f 69 74 65 6d 29 3d a4 67 65 74 5f 69 6e 64 69 |_item)=.get_indi| 00003220 72 65 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 |rected(itin_hand| 00003230 6c 65 2c 35 29 0d 15 36 43 73 70 72 69 74 65 24 |le,5)..6Csprite$| 00003240 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 61 6c |(current_menu,al| 00003250 74 65 72 5f 69 74 65 6d 29 3d a4 67 65 74 5f 69 |ter_item)=.get_i| 00003260 6e 64 69 72 65 63 74 65 64 28 69 74 69 6e 5f 68 |ndirected(itin_h| 00003270 61 6e 64 6c 65 2c 32 29 0d 15 40 1e f2 63 6c 6f |andle,2)..@..clo| 00003280 73 65 5f 77 69 6e 64 6f 77 28 69 74 69 6e 5f 68 |se_window(itin_h| 00003290 61 6e 64 6c 65 29 0d 15 4a 13 f2 72 65 64 6f 5f |andle)..J..redo_| 000032a0 61 6c 6c 5f 69 63 6f 6e 73 0d 15 54 0e 6d 6f 64 |all_icons..T.mod| 000032b0 69 66 69 65 64 3d b9 0d 15 5e 05 e1 0d 15 68 04 |ified=...^....h.| 000032c0 0d 15 72 0f dd f2 6d 69 6e 75 73 5f 6f 6e 65 0d |..r...minus_one.| 000032d0 15 7c 13 e7 20 6e 75 6d 5f 6d 65 6e 73 3d 32 30 |.|.. num_mens=20| 000032e0 20 8c 0d 15 86 11 20 20 f2 65 72 72 6f 72 28 35 | ..... .error(5| 000032f0 2c 31 29 0d 15 90 07 20 20 e1 0d 15 9a 05 cd 0d |,1).... .......| 00003300 15 a4 22 6e 65 77 70 6f 73 3d 6e 6f 5f 6f 70 74 |.."newpos=no_opt| 00003310 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 29 2b |s(current_menu)+| 00003320 31 0d 15 ae 19 e7 20 6e 65 77 70 6f 73 3d 32 35 |1..... newpos=25| 00003330 36 20 6e 65 77 70 6f 73 3d 30 0d 15 b8 11 e7 20 |6 newpos=0..... | 00003340 6e 65 77 70 6f 73 3e 31 37 20 8c 0d 15 c2 11 20 |newpos>17 ..... | 00003350 20 f2 65 72 72 6f 72 28 33 2c 31 29 0d 15 cc 07 | .error(3,1)....| 00003360 20 20 e1 0d 15 d6 05 cd 0d 15 e0 20 6e 6f 5f 6f | ......... no_o| 00003370 70 74 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |pts(current_menu| 00003380 29 3d 6e 65 77 70 6f 73 0d 15 ea 15 61 6c 74 65 |)=newpos....alte| 00003390 72 5f 69 74 65 6d 3d 6e 65 77 70 6f 73 0d 15 f4 |r_item=newpos...| 000033a0 21 61 63 74 69 6f 6e 28 63 75 72 72 65 6e 74 5f |!action(current_| 000033b0 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d 31 0d 15 |menu,newpos)=1..| 000033c0 fe 25 6e 24 3d a4 67 65 74 5f 69 6e 64 69 72 65 |.%n$=.get_indire| 000033d0 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 6c 65 |cted(itin_handle| 000033e0 2c 38 29 0d 16 08 26 e7 20 a4 6d 65 6e 75 5f 65 |,8)...&. .menu_e| 000033f0 78 69 73 74 28 6e 24 29 20 8c 20 f2 65 72 72 6f |xist(n$) . .erro| 00003400 72 28 31 35 2c 31 29 3a e1 0d 16 12 0f 6e 75 6d |r(15,1):.....num| 00003410 5f 6d 65 6e 73 2b 3d 31 0d 16 1c 10 6e 3d 6e 75 |_mens+=1....n=nu| 00003420 6d 5f 6d 65 6e 73 2d 31 0d 16 26 10 6d 6e 61 6d |m_mens-1..&.mnam| 00003430 65 24 28 6e 29 3d 6e 24 0d 16 30 0d 74 79 70 65 |e$(n)=n$..0.type| 00003440 28 6e 29 3d 31 0d 16 3a 12 6e 6f 5f 6f 70 74 73 |(n)=1..:.no_opts| 00003450 28 6e 29 3d 32 35 35 0d 16 44 10 f2 72 65 64 72 |(n)=255..D..redr| 00003460 61 77 5f 6c 69 73 74 0d 16 4e 05 e1 0d 16 58 04 |aw_list..N....X.| 00003470 0d 16 62 1a dd f2 63 72 65 61 74 65 5f 61 6c 74 |..b...create_alt| 00003480 65 72 5f 73 75 62 6d 65 6e 75 0d 16 6c 13 e7 20 |er_submenu..l.. | 00003490 6e 75 6d 5f 6d 65 6e 73 3d 32 30 20 8c 0d 16 76 |num_mens=20 ...v| 000034a0 11 20 20 f2 65 72 72 6f 72 28 35 2c 31 29 0d 16 |. .error(5,1)..| 000034b0 80 07 20 20 e1 0d 16 8a 05 cd 0d 16 94 0f 6e 75 |.. ..........nu| 000034c0 6d 5f 6d 65 6e 73 2b 3d 31 0d 16 9e 10 6e 3d 6e |m_mens+=1....n=n| 000034d0 75 6d 5f 6d 65 6e 73 2d 31 0d 16 a8 3c 6d 6e 61 |um_mens-1...<mna| 000034e0 6d 65 24 28 6e 29 3d a4 72 7a 28 a4 67 65 74 6c |me$(n)=.rz(.getl| 000034f0 65 61 66 28 66 6e 61 6d 65 24 28 63 75 72 72 65 |eaf(fname$(curre| 00003500 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f 69 74 |nt_menu,alter_it| 00003510 65 6d 29 29 29 0d 16 b2 0d 74 79 70 65 28 6e 29 |em)))....type(n)| 00003520 3d 31 0d 16 bc 25 61 63 74 69 6f 6e 28 63 75 72 |=1...%action(cur| 00003530 72 65 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f |rent_menu,alter_| 00003540 69 74 65 6d 29 3d 31 0d 16 c6 27 c8 8e 20 66 74 |item)=1...'.. ft| 00003550 79 70 65 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ype(current_menu| 00003560 2c 61 6c 74 65 72 5f 69 74 65 6d 29 20 ca 0d 16 |,alter_item) ...| 00003570 d0 1a 20 20 c9 20 26 31 30 30 30 3a f2 73 75 62 |.. . &1000:.sub| 00003580 6d 65 6e 75 5f 64 69 72 0d 16 da 15 20 20 7f 3a |menu_dir.... .:| 00003590 f2 73 75 62 6d 65 6e 75 5f 66 69 6c 65 0d 16 e4 |.submenu_file...| 000035a0 05 cb 0d 16 ee 0e 6d 6f 64 69 66 69 65 64 3d b9 |......modified=.| 000035b0 0d 16 f8 13 f2 72 65 64 6f 5f 61 6c 6c 5f 69 63 |.....redo_all_ic| 000035c0 6f 6e 73 0d 17 02 10 f2 72 65 64 72 61 77 5f 6c |ons.....redraw_l| 000035d0 69 73 74 0d 17 0c 05 e1 0d 17 16 04 0d 17 20 12 |ist........... .| 000035e0 dd f2 73 75 62 6d 65 6e 75 5f 66 69 6c 65 0d 17 |..submenu_file..| 000035f0 2a 10 6e 6f 5f 6f 70 74 73 28 6e 29 3d 32 0d 17 |*.no_opts(n)=2..| 00003600 34 41 66 6e 61 6d 65 24 28 6e 2c 30 29 3d 66 6e |4Afname$(n,0)=fn| 00003610 61 6d 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ame$(current_men| 00003620 75 2c 61 6c 74 65 72 5f 69 74 65 6d 29 3a 74 65 |u,alter_item):te| 00003630 78 74 24 28 6e 2c 30 29 3d 22 21 52 75 6e 22 0d |xt$(n,0)="!Run".| 00003640 17 3e 2d 66 74 79 70 65 28 6e 2c 30 29 3d 66 74 |.>-ftype(n,0)=ft| 00003650 79 70 65 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ype(current_menu| 00003660 2c 61 6c 74 65 72 5f 69 74 65 6d 29 0d 17 48 3f |,alter_item)..H?| 00003670 73 70 72 69 74 65 24 28 6e 2c 30 29 3d 73 70 72 |sprite$(n,0)=spr| 00003680 69 74 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ite$(current_men| 00003690 75 2c 61 6c 74 65 72 5f 69 74 65 6d 29 3a 61 63 |u,alter_item):ac| 000036a0 74 69 6f 6e 28 6e 2c 30 29 3d 33 0d 17 52 26 66 |tion(n,0)=3..R&f| 000036b0 24 3d 66 6e 61 6d 65 24 28 63 75 72 72 65 6e 74 |$=fname$(current| 000036c0 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f 69 74 65 6d |_menu,alter_item| 000036d0 29 0d 17 5c 16 6c 65 61 66 24 3d a4 67 65 74 6c |)..\.leaf$=.getl| 000036e0 65 61 66 28 66 24 29 0d 17 66 1c 64 69 72 24 3d |eaf(f$)..f.dir$=| 000036f0 c0 66 24 2c a9 28 66 24 29 2d a9 28 6c 65 61 66 |.f$,.(f$)-.(leaf| 00003700 24 29 29 0d 17 70 30 66 6e 61 6d 65 24 28 6e 2c |$))..p0fname$(n,| 00003710 31 29 3d 64 69 72 24 3a 74 65 78 74 24 28 6e 2c |1)=dir$:text$(n,| 00003720 31 29 3d 22 4f 70 65 6e 20 44 69 72 65 63 74 6f |1)="Open Directo| 00003730 72 79 22 0d 17 7a 3b 66 74 79 70 65 28 6e 2c 31 |ry"..z;ftype(n,1| 00003740 29 3d 26 31 30 30 30 3a 73 70 72 69 74 65 24 28 |)=&1000:sprite$(| 00003750 6e 2c 31 29 3d 22 64 69 72 65 63 74 6f 72 79 22 |n,1)="directory"| 00003760 3a 61 63 74 69 6f 6e 28 6e 2c 31 29 3d 32 0d 17 |:action(n,1)=2..| 00003770 84 32 66 6e 61 6d 65 24 28 6e 2c 32 29 3d 22 4d |.2fname$(n,2)="M| 00003780 61 69 6e 20 4d 65 6e 75 22 3a 74 65 78 74 24 28 |ain Menu":text$(| 00003790 6e 2c 32 29 3d 22 4d 61 69 6e 20 4d 65 6e 75 22 |n,2)="Main Menu"| 000037a0 0d 17 8e 32 66 74 79 70 65 28 6e 2c 32 29 3d 30 |...2ftype(n,2)=0| 000037b0 3a 73 70 72 69 74 65 24 28 6e 2c 32 29 3d 22 6d |:sprite$(n,2)="m| 000037c0 65 6e 75 22 3a 61 63 74 69 6f 6e 28 6e 2c 32 29 |enu":action(n,2)| 000037d0 3d 31 0d 17 98 05 e1 0d 17 a2 04 0d 17 ac 11 dd |=1..............| 000037e0 f2 73 75 62 6d 65 6e 75 5f 64 69 72 0d 17 b6 10 |.submenu_dir....| 000037f0 6e 6f 5f 6f 70 74 73 28 6e 29 3d 31 0d 17 c0 4b |no_opts(n)=1...K| 00003800 66 6e 61 6d 65 24 28 6e 2c 30 29 3d 66 6e 61 6d |fname$(n,0)=fnam| 00003810 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c |e$(current_menu,| 00003820 61 6c 74 65 72 5f 69 74 65 6d 29 3a 74 65 78 74 |alter_item):text| 00003830 24 28 6e 2c 30 29 3d 22 4f 70 65 6e 20 44 69 72 |$(n,0)="Open Dir| 00003840 65 63 74 6f 72 79 22 0d 17 ca 2d 66 74 79 70 65 |ectory"...-ftype| 00003850 28 6e 2c 30 29 3d 66 74 79 70 65 28 63 75 72 72 |(n,0)=ftype(curr| 00003860 65 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f 69 |ent_menu,alter_i| 00003870 74 65 6d 29 0d 17 d4 3f 73 70 72 69 74 65 24 28 |tem)...?sprite$(| 00003880 6e 2c 30 29 3d 73 70 72 69 74 65 24 28 63 75 72 |n,0)=sprite$(cur| 00003890 72 65 6e 74 5f 6d 65 6e 75 2c 61 6c 74 65 72 5f |rent_menu,alter_| 000038a0 69 74 65 6d 29 3a 61 63 74 69 6f 6e 28 6e 2c 30 |item):action(n,0| 000038b0 29 3d 32 0d 17 de 32 66 6e 61 6d 65 24 28 6e 2c |)=2...2fname$(n,| 000038c0 31 29 3d 22 4d 61 69 6e 20 4d 65 6e 75 22 3a 74 |1)="Main Menu":t| 000038d0 65 78 74 24 28 6e 2c 31 29 3d 22 4d 61 69 6e 20 |ext$(n,1)="Main | 000038e0 4d 65 6e 75 22 0d 17 e8 32 66 74 79 70 65 28 6e |Menu"...2ftype(n| 000038f0 2c 31 29 3d 30 3a 73 70 72 69 74 65 24 28 6e 2c |,1)=0:sprite$(n,| 00003900 31 29 3d 22 6d 65 6e 75 22 3a 61 63 74 69 6f 6e |1)="menu":action| 00003910 28 6e 2c 31 29 3d 31 0d 17 f2 05 e1 0d 17 fc 04 |(n,1)=1.........| 00003920 0d 18 06 0f dd f2 71 75 69 63 6b 73 61 76 65 0d |......quicksave.| 00003930 18 10 28 66 69 6c 65 24 3d a4 67 65 74 5f 69 6e |..(file$=.get_in| 00003940 64 69 72 65 63 74 65 64 28 73 61 76 65 5f 68 61 |directed(save_ha| 00003950 6e 64 6c 65 2c 31 29 0d 18 1a 19 6c 65 61 66 24 |ndle,1)....leaf$| 00003960 3d a4 67 65 74 6c 65 61 66 28 66 69 6c 65 24 29 |=.getleaf(file$)| 00003970 0d 18 24 26 e7 20 c0 6c 65 61 66 24 2c 31 29 3c |..$&. .leaf$,1)<| 00003980 3e 22 21 22 20 8c 20 6c 65 61 66 24 3d 22 21 22 |>"!" . leaf$="!"| 00003990 2b 6c 65 61 66 24 0d 18 2e 13 e7 20 a7 66 69 6c |+leaf$..... .fil| 000039a0 65 24 2c 22 2e 22 29 20 8c 0d 18 38 0e 20 20 f2 |e$,".") ...8. .| 000039b0 73 61 76 65 5f 69 74 0d 18 42 05 cc 0d 18 4c 11 |save_it..B....L.| 000039c0 20 20 f2 65 72 72 6f 72 28 39 2c 31 29 0d 18 56 | .error(9,1)..V| 000039d0 05 cd 0d 18 60 05 e1 0d 18 6a 04 0d 18 74 0d dd |....`....j...t..| 000039e0 f2 73 61 76 65 5f 69 74 0d 18 7e 16 6f 6c 64 6e |.save_it..~.oldn| 000039f0 61 6d 65 24 3d 66 69 6c 65 6e 61 6d 65 24 0d 18 |ame$=filename$..| 00003a00 88 22 6d 61 6b 65 3d a4 67 65 74 5f 73 74 61 74 |."make=.get_stat| 00003a10 65 28 73 61 76 65 5f 68 61 6e 64 6c 65 2c 33 29 |e(save_handle,3)| 00003a20 0d 18 92 2c 66 69 6c 65 6e 61 6d 65 24 3d a4 67 |...,filename$=.g| 00003a30 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 73 61 |et_indirected(sa| 00003a40 76 65 5f 68 61 6e 64 6c 65 2c 31 29 0d 18 9c 3c |ve_handle,1)...<| 00003a50 6c 24 3d a4 67 65 74 6c 65 61 66 28 66 69 6c 65 |l$=.getleaf(file| 00003a60 6e 61 6d 65 24 29 3a 72 24 3d c0 66 69 6c 65 6e |name$):r$=.filen| 00003a70 61 6d 65 24 2c a9 28 66 69 6c 65 6e 61 6d 65 24 |ame$,.(filename$| 00003a80 29 2d a9 28 6c 24 29 29 0d 18 a6 25 e7 20 c0 6c |)-.(l$))...%. .l| 00003a90 24 2c 31 29 3c 3e 22 21 22 20 66 69 6c 65 6e 61 |$,1)<>"!" filena| 00003aa0 6d 65 24 3d 72 24 2b 22 21 22 2b 6c 24 0d 18 b0 |me$=r$+"!"+l$...| 00003ab0 16 ff 22 43 44 69 72 20 22 2b 66 69 6c 65 6e 61 |.."CDir "+filena| 00003ac0 6d 65 24 0d 18 ba 22 ff 22 43 44 69 72 20 22 2b |me$..."."CDir "+| 00003ad0 66 69 6c 65 6e 61 6d 65 24 2b 22 2e 50 72 6f 67 |filename$+".Prog| 00003ae0 72 61 6d 73 22 0d 18 c4 12 24 73 6e 61 6d 65 3d |rams"....$sname=| 00003af0 22 21 6d 65 6e 75 22 0d 18 ce 11 24 72 65 6e 61 |"!menu"....$rena| 00003b00 6d 65 3d 6c 65 61 66 24 0d 18 d8 30 c8 99 22 4f |me=leaf$...0.."O| 00003b10 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00003b20 32 36 2c 70 73 70 72 69 74 65 73 2c 73 6e 61 6d |26,psprites,snam| 00003b30 65 2c 72 65 6e 61 6d 65 0d 18 e2 20 24 66 6e 61 |e,rename... $fna| 00003b40 6d 65 3d 66 69 6c 65 6e 61 6d 65 24 2b 22 2e 21 |me=filename$+".!| 00003b50 53 70 72 69 74 65 73 22 0d 18 ec 29 c8 99 22 4f |Sprites"...).."O| 00003b60 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00003b70 31 32 2c 70 73 70 72 69 74 65 73 2c 66 6e 61 6d |12,psprites,fnam| 00003b80 65 0d 18 f6 30 c8 99 22 4f 53 5f 53 70 72 69 74 |e...0.."OS_Sprit| 00003b90 65 4f 70 22 2c 32 35 36 2b 32 36 2c 70 73 70 72 |eOp",256+26,pspr| 00003ba0 69 74 65 73 2c 72 65 6e 61 6d 65 2c 73 6e 61 6d |ites,rename,snam| 00003bb0 65 0d 19 00 0c e7 20 6d 61 6b 65 20 8c 0d 19 0a |e..... make ....| 00003bc0 19 20 20 f2 61 70 70 65 6e 64 5f 74 68 65 5f 73 |. .append_the_s| 00003bd0 70 72 69 74 65 73 0d 19 14 21 20 20 24 66 6e 61 |prites...! $fna| 00003be0 6d 65 3d 66 69 6c 65 6e 61 6d 65 24 2b 22 2e 53 |me=filename$+".S| 00003bf0 70 72 69 74 65 73 22 0d 19 1e 2b 20 20 c8 99 22 |prites"...+ .."| 00003c00 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 |OS_SpriteOp",256| 00003c10 2b 31 32 2c 75 73 70 72 69 74 65 73 2c 66 6e 61 |+12,usprites,fna| 00003c20 6d 65 0d 19 28 15 20 20 f2 64 65 6c 65 74 65 5f |me..(. .delete_| 00003c30 73 70 72 69 74 65 73 0d 19 32 05 cd 0d 19 3c 46 |sprites..2....<F| 00003c40 f2 73 61 76 65 5f 70 72 6f 67 5f 66 69 6c 65 28 |.save_prog_file(| 00003c50 66 69 6c 65 6e 61 6d 65 24 2b 22 2e 21 52 75 6e |filename$+".!Run| 00003c60 49 6d 61 67 65 22 2c 22 42 61 73 69 63 22 2c 72 |Image","Basic",r| 00003c70 75 6e 69 6d 61 67 65 2c 72 69 5f 6c 65 6e 67 74 |unimage,ri_lengt| 00003c80 68 29 0d 19 46 3b f2 73 61 76 65 5f 70 72 6f 67 |h)..F;.save_prog| 00003c90 5f 66 69 6c 65 28 66 69 6c 65 6e 61 6d 65 24 2b |_file(filename$+| 00003ca0 22 2e 21 52 75 6e 22 2c 22 4f 62 65 79 22 2c 72 |".!Run","Obey",r| 00003cb0 75 6e 2c 72 75 5f 6c 65 6e 67 74 68 29 0d 19 50 |un,ru_length)..P| 00003cc0 41 f2 73 61 76 65 5f 70 72 6f 67 5f 66 69 6c 65 |A.save_prog_file| 00003cd0 28 66 69 6c 65 6e 61 6d 65 24 2b 22 2e 54 65 6d |(filename$+".Tem| 00003ce0 70 6c 61 74 65 73 22 2c 22 66 65 63 22 2c 74 65 |plates","fec",te| 00003cf0 6d 70 73 2c 74 65 5f 6c 65 6e 67 74 68 29 0d 19 |mps,te_length)..| 00003d00 5a 16 f2 73 61 76 65 5f 6c 6f 61 64 5f 64 61 74 |Z..save_load_dat| 00003d10 61 28 b9 29 0d 19 64 1e f2 63 6c 6f 73 65 5f 77 |a(.)..d..close_w| 00003d20 69 6e 64 6f 77 28 73 61 76 65 5f 68 61 6e 64 6c |indow(save_handl| 00003d30 65 29 0d 19 6e 0e 6d 6f 64 69 66 69 65 64 3d a3 |e)..n.modified=.| 00003d40 0d 19 78 1b c8 99 22 57 69 6d 70 5f 43 72 65 61 |..x..."Wimp_Crea| 00003d50 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 19 82 4f e7 |teMenu",,-1...O.| 00003d60 20 6f 6c 64 6e 61 6d 65 24 3c 3e 22 22 20 80 20 | oldname$<>"" . | 00003d70 6f 6c 64 6e 61 6d 65 24 3c 3e 22 3c 4f 62 65 79 |oldname$<>"<Obey| 00003d80 24 44 69 72 3e 22 20 80 20 6f 6c 64 6e 61 6d 65 |$Dir>" . oldname| 00003d90 24 3c 3e 66 69 6c 65 6e 61 6d 65 24 20 f2 63 6f |$<>filename$ .co| 00003da0 6e 66 69 72 6d 5f 63 6f 70 79 0d 19 8c 05 e1 0d |nfirm_copy......| 00003db0 19 96 04 0d 19 a0 12 dd f2 63 6f 6e 66 69 72 6d |.........confirm| 00003dc0 5f 63 6f 70 79 0d 19 aa 65 65 72 72 6f 72 24 28 |_copy...eerror$(| 00003dd0 31 38 29 3d 22 20 44 6f 20 79 6f 75 20 77 69 73 |18)=" Do you wis| 00003de0 68 20 74 6f 20 63 6f 70 79 20 74 68 65 20 70 72 |h to copy the pr| 00003df0 6f 67 72 61 6d 73 20 66 72 6f 6d 20 22 2b 6f 6c |ograms from "+ol| 00003e00 64 6e 61 6d 65 24 2b 22 20 74 6f 20 74 68 65 20 |dname$+" to the | 00003e10 6e 65 77 20 73 61 76 65 3f 20 28 43 61 6e 63 65 |new save? (Cance| 00003e20 6c 20 61 62 6f 72 74 73 29 22 0d 19 b4 10 f2 65 |l aborts)".....e| 00003e30 72 72 6f 72 28 31 38 2c 33 29 0d 19 be 17 e7 20 |rror(18,3)..... | 00003e40 75 73 65 72 5f 72 65 73 70 6f 6e 73 65 3d 32 20 |user_response=2 | 00003e50 e1 0d 19 c8 27 2a 53 65 74 20 4f 6c 64 43 6f 70 |....'*Set OldCop| 00003e60 79 24 4f 70 74 69 6f 6e 73 20 3c 43 6f 70 79 24 |y$Options <Copy$| 00003e70 4f 70 74 69 6f 6e 73 3e 0d 19 d2 37 2a 53 65 74 |Options>...7*Set| 00003e80 20 43 6f 70 79 24 4f 70 74 69 6f 6e 73 20 41 20 | Copy$Options A | 00003e90 7e 43 20 7e 44 20 7e 46 20 7e 4c 20 7e 4e 20 7e |~C ~D ~F ~L ~N ~| 00003ea0 50 20 7e 51 20 52 20 7e 53 20 7e 54 20 7e 56 0d |P ~Q R ~S ~T ~V.| 00003eb0 19 dc 3a 41 24 3d 22 43 6f 70 79 20 22 2b 6f 6c |..:A$="Copy "+ol| 00003ec0 64 6e 61 6d 65 24 2b 22 2e 50 72 6f 67 72 61 6d |dname$+".Program| 00003ed0 73 20 22 2b 66 69 6c 65 6e 61 6d 65 24 2b 22 2e |s "+filename$+".| 00003ee0 50 72 6f 67 72 61 6d 73 22 0d 19 e6 08 ff 20 41 |Programs"..... A| 00003ef0 24 0d 19 f0 27 2a 53 65 74 20 43 6f 70 79 24 4f |$...'*Set Copy$O| 00003f00 70 74 69 6f 6e 73 20 3c 4f 6c 64 43 6f 70 79 24 |ptions <OldCopy$| 00003f10 4f 70 74 69 6f 6e 73 3e 0d 19 fa 05 e1 0d 1a 04 |Options>........| 00003f20 04 0d 1a 0e 17 dd f2 73 61 76 65 5f 6c 6f 61 64 |.......save_load| 00003f30 5f 64 61 74 61 28 73 29 0d 1a 18 1c 46 24 3d 66 |_data(s)....F$=f| 00003f40 69 6c 65 6e 61 6d 65 24 2b 22 2e 4d 65 6e 75 44 |ilename$+".MenuD| 00003f50 61 74 61 22 0d 1a 22 21 e7 20 73 20 58 3d ae 20 |ata".."!. s X=. | 00003f60 46 24 20 20 20 20 20 20 20 20 20 20 20 8b 20 58 |F$ . X| 00003f70 3d 8e 20 46 24 0d 1a 2c 15 e7 20 58 3d 30 20 f2 |=. F$..,.. X=0 .| 00003f80 73 6c 5f 65 72 72 6f 72 3a e1 0d 1a 36 12 72 3d |sl_error:...6.r=| 00003f90 38 32 3a 6d 3d 37 37 3a 6c 3d 37 36 0d 1a 40 23 |82:m=77:l=76..@#| 00003fa0 e7 20 73 20 d5 23 58 2c 38 32 20 20 20 20 20 20 |. s .#X,82 | 00003fb0 20 20 20 20 20 20 20 20 8b 20 72 3d 9a 23 58 0d | . r=.#X.| 00003fc0 1a 4a 23 e7 20 73 20 d5 23 58 2c 37 37 20 20 20 |.J#. s .#X,77 | 00003fd0 20 20 20 20 20 20 20 20 20 20 20 8b 20 6d 3d 9a | . m=.| 00003fe0 23 58 0d 1a 54 23 e7 20 73 20 d5 23 58 2c 37 36 |#X..T#. s .#X,76| 00003ff0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 8b 20 | . | 00004000 6c 3d 9a 23 58 0d 1a 5e 28 e7 20 ac 20 73 20 80 |l=.#X..^(. . s .| 00004010 20 28 28 72 2b 6d 2b 6c 29 3c 3e 32 33 35 29 20 | ((r+m+l)<>235) | 00004020 8c 20 f2 73 6c 5f 65 72 72 6f 72 3a e1 0d 1a 68 |. .sl_error:...h| 00004030 2a e7 20 73 20 d5 23 58 2c 6e 75 6d 5f 6d 65 6e |*. s .#X,num_men| 00004040 73 20 20 20 20 20 20 20 20 8b 20 6e 75 6d 5f 6d |s . num_m| 00004050 65 6e 73 3d 9a 23 58 0d 1a 72 25 e7 20 73 20 f1 |ens=.#X..r%. s .| 00004060 23 58 2c 6d 61 6b 65 20 20 20 20 20 20 20 20 20 |#X,make | 00004070 20 20 8b 20 e8 23 58 2c 6d 61 6b 65 0d 1a 7c 19 | . .#X,make..|.| 00004080 e3 20 6d 65 6e 75 3d 30 20 b8 20 6e 75 6d 5f 6d |. menu=0 . num_m| 00004090 65 6e 73 2d 31 0d 1a 86 2d 20 20 e7 20 73 20 f1 |ens-1...- . s .| 000040a0 23 58 2c 6d 6e 61 6d 65 24 28 6d 65 6e 75 29 20 |#X,mname$(menu) | 000040b0 8b 20 e8 23 58 2c 6d 6e 61 6d 65 24 28 6d 65 6e |. .#X,mname$(men| 000040c0 75 29 0d 1a 90 2c 20 20 e7 20 73 20 d5 23 58 2c |u)..., . s .#X,| 000040d0 74 79 70 65 28 6d 65 6e 75 29 20 20 20 20 8b 20 |type(menu) . | 000040e0 74 79 70 65 28 6d 65 6e 75 29 3d 9a 23 58 0d 1a |type(menu)=.#X..| 000040f0 9a 2f 20 20 e7 20 73 20 d5 23 58 2c 6e 6f 5f 6f |./ . s .#X,no_o| 00004100 70 74 73 28 6d 65 6e 75 29 20 8b 20 6e 6f 5f 6f |pts(menu) . no_o| 00004110 70 74 73 28 6d 65 6e 75 29 3d 9a 23 58 0d 1a a4 |pts(menu)=.#X...| 00004120 25 20 20 e7 20 6e 6f 5f 6f 70 74 73 28 6d 65 6e |% . no_opts(men| 00004130 75 29 3c 3e 32 35 35 20 8c 20 f2 73 6c 5f 65 61 |u)<>255 . .sl_ea| 00004140 63 68 0d 1a ae 05 ed 0d 1a b8 07 d9 23 58 0d 1a |ch..........#X..| 00004150 c2 1e e7 20 73 20 ff 22 53 65 74 54 79 70 65 20 |... s ."SetType | 00004160 22 2b 46 24 2b 22 20 44 61 74 61 22 0d 1a cc 2e |"+F$+" Data"....| 00004170 e7 20 ac 20 73 20 ff 22 49 63 6f 6e 73 70 72 69 |. . s ."Iconspri| 00004180 74 65 73 20 22 2b 66 69 6c 65 6e 61 6d 65 24 2b |tes "+filename$+| 00004190 22 2e 53 70 72 69 74 65 73 22 0d 1a d6 0e 6d 6f |".Sprites"....mo| 000041a0 64 69 66 69 65 64 3d a3 0d 1a e0 05 e1 0d 1a ea |dified=.........| 000041b0 04 0d 1a f4 0d dd f2 73 6c 5f 65 61 63 68 0d 1a |.......sl_each..| 000041c0 fe 1c e3 20 69 74 65 6d 3d 30 20 b8 20 6e 6f 5f |... item=0 . no_| 000041d0 6f 70 74 73 28 6d 65 6e 75 29 0d 1b 08 39 20 20 |opts(menu)...9 | 000041e0 e7 20 73 20 d5 23 58 2c 61 63 74 69 6f 6e 28 6d |. s .#X,action(m| 000041f0 65 6e 75 2c 69 74 65 6d 29 20 20 20 8b 20 61 63 |enu,item) . ac| 00004200 74 69 6f 6e 28 6d 65 6e 75 2c 69 74 65 6d 29 3d |tion(menu,item)=| 00004210 9a 23 58 0d 1b 12 38 20 20 e7 20 73 20 f1 23 58 |.#X...8 . s .#X| 00004220 2c 66 6e 61 6d 65 24 28 6d 65 6e 75 2c 69 74 65 |,fname$(menu,ite| 00004230 6d 29 20 20 8b 20 e8 23 58 2c 66 6e 61 6d 65 24 |m) . .#X,fname$| 00004240 28 6d 65 6e 75 2c 69 74 65 6d 29 0d 1b 1c 37 20 |(menu,item)...7 | 00004250 20 e7 20 73 20 f1 23 58 2c 74 65 78 74 24 28 6d | . s .#X,text$(m| 00004260 65 6e 75 2c 69 74 65 6d 29 20 20 20 8b 20 e8 23 |enu,item) . .#| 00004270 58 2c 74 65 78 74 24 28 6d 65 6e 75 2c 69 74 65 |X,text$(menu,ite| 00004280 6d 29 0d 1b 26 39 20 20 e7 20 73 20 f1 23 58 2c |m)..&9 . s .#X,| 00004290 73 70 72 69 74 65 24 28 6d 65 6e 75 2c 69 74 65 |sprite$(menu,ite| 000042a0 6d 29 20 8b 20 e8 23 58 2c 73 70 72 69 74 65 24 |m) . .#X,sprite$| 000042b0 28 6d 65 6e 75 2c 69 74 65 6d 29 0d 1b 30 37 20 |(menu,item)..07 | 000042c0 20 e7 20 73 20 f1 23 58 2c 66 74 79 70 65 28 6d | . s .#X,ftype(m| 000042d0 65 6e 75 2c 69 74 65 6d 29 20 20 20 8b 20 e8 23 |enu,item) . .#| 000042e0 58 2c 66 74 79 70 65 28 6d 65 6e 75 2c 69 74 65 |X,ftype(menu,ite| 000042f0 6d 29 0d 1b 3a 05 ed 0d 1b 44 05 e1 0d 1b 4e 04 |m)..:....D....N.| 00004300 0d 1b 58 0e dd f2 73 6c 5f 65 72 72 6f 72 0d 1b |..X...sl_error..| 00004310 62 07 d9 23 30 0d 1b 6c 10 f2 65 72 72 6f 72 28 |b..#0..l..error(| 00004320 31 30 2c 31 29 0d 1b 76 05 e1 0d 1b 80 04 0d 1b |10,1)..v........| 00004330 8a 14 dd f2 6c 6f 61 64 5f 61 70 70 5f 73 74 75 |....load_app_stu| 00004340 66 66 0d 1b 94 46 f2 63 72 65 61 74 65 5f 73 70 |ff...F.create_sp| 00004350 72 69 74 65 5f 61 72 65 61 28 22 3c 4d 65 6e 61 |rite_area("<Mena| 00004360 6b 65 72 24 44 69 72 3e 2e 4d 65 6e 75 2e 53 70 |ker$Dir>.Menu.Sp| 00004370 72 69 74 65 73 22 2c 75 73 70 72 69 74 65 73 2c |rites",usprites,| 00004380 38 30 2a 31 30 32 34 29 0d 1b 9e 43 f2 63 72 65 |80*1024)...C.cre| 00004390 61 74 65 5f 73 70 72 69 74 65 5f 61 72 65 61 28 |ate_sprite_area(| 000043a0 22 3c 4d 65 6e 61 6b 65 72 24 44 69 72 3e 2e 4d |"<Menaker$Dir>.M| 000043b0 65 6e 75 2e 21 53 70 72 69 74 65 73 22 2c 70 73 |enu.!Sprites",ps| 000043c0 70 72 69 74 65 73 2c 35 31 32 29 0d 1b a8 46 72 |prites,512)...Fr| 000043d0 69 5f 6c 65 6e 67 74 68 3d a4 6c 6f 61 64 5f 70 |i_length=.load_p| 000043e0 72 6f 67 5f 66 69 6c 65 28 22 3c 4d 65 6e 61 6b |rog_file("<Menak| 000043f0 65 72 24 44 69 72 3e 2e 4d 65 6e 75 2e 21 52 75 |er$Dir>.Menu.!Ru| 00004400 6e 49 6d 61 67 65 22 2c 72 75 6e 69 6d 61 67 65 |nImage",runimage| 00004410 29 0d 1b b2 3c 72 75 5f 6c 65 6e 67 74 68 3d a4 |)...<ru_length=.| 00004420 6c 6f 61 64 5f 70 72 6f 67 5f 66 69 6c 65 28 22 |load_prog_file("| 00004430 3c 4d 65 6e 61 6b 65 72 24 44 69 72 3e 2e 4d 65 |<Menaker$Dir>.Me| 00004440 6e 75 2e 21 52 75 6e 22 2c 72 75 6e 29 0d 1b bc |nu.!Run",run)...| 00004450 43 74 65 5f 6c 65 6e 67 74 68 3d a4 6c 6f 61 64 |Cte_length=.load| 00004460 5f 70 72 6f 67 5f 66 69 6c 65 28 22 3c 4d 65 6e |_prog_file("<Men| 00004470 61 6b 65 72 24 44 69 72 3e 2e 4d 65 6e 75 2e 54 |aker$Dir>.Menu.T| 00004480 65 6d 70 6c 61 74 65 73 22 2c 74 65 6d 70 73 29 |emplates",temps)| 00004490 0d 1b c6 05 e1 0d 1b d0 04 0d 1b da 1a dd a4 6c |...............l| 000044a0 6f 61 64 5f 70 72 6f 67 5f 66 69 6c 65 28 6e 24 |oad_prog_file(n$| 000044b0 2c 6d 29 0d 1b e4 0d 24 66 6e 61 6d 65 3d 6e 24 |,m)....$fname=n$| 000044c0 0d 1b ee 20 c8 99 22 4f 53 5f 46 69 6c 65 22 2c |... .."OS_File",| 000044d0 31 37 2c 66 6e 61 6d 65 20 b8 20 2c 2c 2c 2c 6c |17,fname . ,,,,l| 000044e0 0d 1b f8 17 ff 22 4c 6f 61 64 20 22 2b 6e 24 2b |....."Load "+n$+| 000044f0 22 20 22 2b c3 7e 6d 0d 1c 02 06 3d 6c 0d 1c 0c |" "+.~m....=l...| 00004500 04 0d 1c 16 1f dd f2 73 61 76 65 5f 70 72 6f 67 |.......save_prog| 00004510 5f 66 69 6c 65 28 6e 24 2c 74 24 2c 6d 2c 6c 29 |_file(n$,t$,m,l)| 00004520 0d 1c 20 20 ff 22 53 61 76 65 20 22 2b 6e 24 2b |.. ."Save "+n$+| 00004530 22 20 22 2b c3 7e 6d 2b 22 20 2b 22 2b c3 7e 6c |" "+.~m+" +"+.~l| 00004540 0d 1c 2a 19 ff 22 53 65 74 74 79 70 65 20 22 2b |..*.."Settype "+| 00004550 6e 24 2b 22 20 22 2b 74 24 0d 1c 34 05 e1 0d 1c |n$+" "+t$..4....| 00004560 3e 04 0d 1c 48 23 dd f2 63 72 65 61 74 65 5f 73 |>...H#..create_s| 00004570 70 72 69 74 65 5f 61 72 65 61 28 6e 24 2c 6d 2c |prite_area(n$,m,| 00004580 73 69 7a 65 29 0d 1c 52 20 21 6d 3d 73 69 7a 65 |size)..R !m=size| 00004590 3a 6d 21 34 3d 30 3a 6d 21 38 3d 31 36 3a 6d 21 |:m!4=0:m!8=16:m!| 000045a0 31 32 3d 31 36 0d 1c 5c 1b c8 99 22 4f 53 5f 53 |12=16..\..."OS_S| 000045b0 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 39 2c 6d |priteOp",256+9,m| 000045c0 0d 1c 66 0d 24 66 6e 61 6d 65 3d 6e 24 0d 1c 70 |..f.$fname=n$..p| 000045d0 22 c8 99 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 |".."OS_SpriteOp"| 000045e0 2c 32 35 36 2b 31 30 2c 6d 2c 66 6e 61 6d 65 0d |,256+10,m,fname.| 000045f0 1c 7a 05 e1 0d 1c 84 04 0d 1c 8e 17 dd a4 69 63 |.z............ic| 00004600 6f 6e 5f 74 6f 5f 69 74 65 6d 28 69 63 6e 29 0d |on_to_item(icn).| 00004610 1c 98 0a 69 74 3d 69 63 6e 0d 1c a2 14 e7 20 69 |...it=icn..... i| 00004620 74 3e 31 37 20 8c 20 69 74 2d 3d 31 38 0d 1c ac |t>17 . it-=18...| 00004630 07 3d 69 74 0d 1c b6 04 0d 1c c0 0f dd f2 6c 6f |.=it..........lo| 00004640 61 64 5f 66 69 6c 65 0d 1c ca 10 e7 20 6d 6f 64 |ad_file..... mod| 00004650 69 66 69 65 64 20 8c 0d 1c d4 12 20 20 f2 65 72 |ified ..... .er| 00004660 72 6f 72 28 31 31 2c 33 29 0d 1c de 19 20 20 e7 |ror(11,3).... .| 00004670 20 75 73 65 72 5f 72 65 73 70 6f 6e 73 65 3d 32 | user_response=2| 00004680 20 e1 0d 1c e8 05 cd 0d 1c f2 0f f2 63 6c 65 61 | ...........clea| 00004690 72 5f 64 61 74 61 0d 1c fc 13 66 69 6c 65 6e 61 |r_data....filena| 000046a0 6d 65 24 3d 66 69 6c 65 24 0d 1d 06 16 f2 73 61 |me$=file$.....sa| 000046b0 76 65 5f 6c 6f 61 64 5f 64 61 74 61 28 a3 29 0d |ve_load_data(.).| 000046c0 1d 10 19 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 |....close_window| 000046d0 28 68 61 6e 64 6c 65 29 0d 1d 1a 1b c8 8e 20 74 |(handle)...... t| 000046e0 79 70 65 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ype(current_menu| 000046f0 29 20 ca 0d 1d 24 1d 20 20 20 c9 20 31 3a 68 61 |) ...$. . 1:ha| 00004700 6e 64 6c 65 3d 74 79 70 31 5f 68 61 6e 64 6c 65 |ndle=typ1_handle| 00004710 0d 1d 2e 1d 20 20 20 c9 20 32 3a 68 61 6e 64 6c |.... . 2:handl| 00004720 65 3d 74 79 70 32 5f 68 61 6e 64 6c 65 0d 1d 38 |e=typ2_handle..8| 00004730 1d 20 20 20 c9 20 33 3a 68 61 6e 64 6c 65 3d 74 |. . 3:handle=t| 00004740 79 70 33 5f 68 61 6e 64 6c 65 0d 1d 42 05 cb 0d |yp3_handle..B...| 00004750 1d 4c 18 f2 6f 70 65 6e 5f 77 69 6e 64 6f 77 28 |.L..open_window(| 00004760 68 61 6e 64 6c 65 29 0d 1d 56 13 f2 72 65 64 6f |handle)..V..redo| 00004770 5f 61 6c 6c 5f 69 63 6f 6e 73 0d 1d 60 10 f2 72 |_all_icons..`..r| 00004780 65 64 72 61 77 5f 6c 69 73 74 0d 1d 6a 28 f2 73 |edraw_list..j(.s| 00004790 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 73 61 |et_indirected(sa| 000047a0 76 65 5f 68 61 6e 64 6c 65 2c 31 2c 66 69 6c 65 |ve_handle,1,file| 000047b0 24 29 0d 1d 74 0e 6d 6f 64 69 66 69 65 64 3d a3 |$)..t.modified=.| 000047c0 0d 1d 7e 27 ff 22 53 65 74 20 4d 65 6e 61 6b 65 |..~'."Set Menake| 000047d0 72 53 65 72 76 65 72 24 44 69 72 20 22 2b 66 69 |rServer$Dir "+fi| 000047e0 6c 65 6e 61 6d 65 24 0d 1d 88 05 e1 0d 1d 92 04 |lename$.........| 000047f0 0d 1d 9c 0e dd f2 63 6c 65 61 72 5f 69 74 0d 1d |......clear_it..| 00004800 a6 13 75 73 65 72 5f 72 65 73 70 6f 6e 73 65 3d |..user_response=| 00004810 31 0d 1d b0 1d e7 20 6d 6f 64 69 66 69 65 64 20 |1..... modified | 00004820 8c 20 f2 65 72 72 6f 72 28 31 32 2c 33 29 0d 1d |. .error(12,3)..| 00004830 ba 17 e7 20 75 73 65 72 5f 72 65 73 70 6f 6e 73 |... user_respons| 00004840 65 3d 31 20 8c 0d 1d c4 11 20 20 f2 63 6c 65 61 |e=1 ..... .clea| 00004850 72 5f 64 61 74 61 0d 1d ce 15 20 20 f2 72 65 64 |r_data.... .red| 00004860 6f 5f 61 6c 6c 5f 69 63 6f 6e 73 0d 1d d8 12 20 |o_all_icons.... | 00004870 20 f2 72 65 64 72 61 77 5f 6c 69 73 74 0d 1d e2 | .redraw_list...| 00004880 05 cd 0d 1d ec 05 e1 0d 1d f6 04 0d 1e 00 10 dd |................| 00004890 f2 63 6c 65 61 72 5f 64 61 74 61 0d 1e 0a 1a 6e |.clear_data....n| 000048a0 6f 5f 6f 70 74 73 28 29 3d 32 35 35 3a 74 79 70 |o_opts()=255:typ| 000048b0 65 28 29 3d 31 0d 1e 14 3c 6d 6e 61 6d 65 24 28 |e()=1...<mname$(| 000048c0 29 3d 22 22 3a 6d 6e 61 6d 65 24 28 30 29 3d 22 |)="":mname$(0)="| 000048d0 4d 61 69 6e 20 4d 65 6e 75 22 3a 61 63 74 69 6f |Main Menu":actio| 000048e0 6e 28 29 3d 30 3a 66 6e 61 6d 65 24 28 29 3d 22 |n()=0:fname$()="| 000048f0 22 0d 1e 1e 25 74 65 78 74 24 28 29 3d 22 22 3a |"...%text$()="":| 00004900 73 70 72 69 74 65 24 28 29 3d 22 22 3a 66 74 79 |sprite$()="":fty| 00004910 70 65 28 29 3d 30 0d 1e 28 3d 74 79 70 65 3d 31 |pe()=0..(=type=1| 00004920 3a 63 75 72 72 65 6e 74 5f 6d 65 6e 75 3d 30 3a |:current_menu=0:| 00004930 6e 75 6d 5f 6d 65 6e 73 3d 31 3a 61 6c 74 65 72 |num_mens=1:alter| 00004940 5f 69 74 65 6d 3d 2d 31 3a 6d 6f 64 69 66 69 65 |_item=-1:modifie| 00004950 64 3d a3 0d 1e 32 10 66 69 6c 65 6e 61 6d 65 24 |d=...2.filename$| 00004960 3d 22 22 0d 1e 3c 1e f2 63 6c 6f 73 65 5f 77 69 |=""..<..close_wi| 00004970 6e 64 6f 77 28 63 6f 70 79 5f 68 61 6e 64 6c 65 |ndow(copy_handle| 00004980 29 0d 1e 46 2e f2 73 65 74 5f 69 6e 64 69 72 65 |)..F..set_indire| 00004990 63 74 65 64 28 73 61 76 65 5f 68 61 6e 64 6c 65 |cted(save_handle| 000049a0 2c 31 2c 22 21 4d 65 6e 75 46 69 6c 65 22 29 0d |,1,"!MenuFile").| 000049b0 1e 50 05 e1 0d 1e 5a 04 0d 1e 64 18 dd f2 61 70 |.P....Z...d...ap| 000049c0 70 65 6e 64 5f 74 68 65 5f 73 70 72 69 74 65 73 |pend_the_sprites| 000049d0 0d 1e 6e 2b c8 99 22 4f 53 5f 53 70 72 69 74 65 |..n+.."OS_Sprite| 000049e0 4f 70 22 2c 32 35 36 2b 38 2c 75 73 70 72 69 74 |Op",256+8,usprit| 000049f0 65 73 20 b8 20 2c 2c 2c 6e 75 6d 0d 1e 78 14 63 |es . ,,,num..x.c| 00004a00 68 65 63 6b 24 28 29 3d 22 22 3a 63 63 3d 30 0d |heck$()="":cc=0.| 00004a10 1e 82 19 e3 20 6d 65 6e 75 3d 30 20 b8 20 6e 75 |.... menu=0 . nu| 00004a20 6d 5f 6d 65 6e 73 2d 31 0d 1e 8c 1f 20 20 e7 20 |m_mens-1.... . | 00004a30 6e 6f 5f 6f 70 74 73 28 6d 65 6e 75 29 3c 3e 32 |no_opts(menu)<>2| 00004a40 35 35 20 f2 61 5f 62 0d 1e 96 05 ed 0d 1e a0 05 |55 .a_b.........| 00004a50 e1 0d 1e aa 04 0d 1e b4 09 dd f2 61 5f 62 0d 1e |...........a_b..| 00004a60 be 1e e3 20 6f 70 74 69 6f 6e 3d 30 20 b8 20 6e |... option=0 . n| 00004a70 6f 5f 6f 70 74 73 28 6d 65 6e 75 29 0d 1e c8 1d |o_opts(menu)....| 00004a80 20 20 66 69 24 3d 66 6e 61 6d 65 24 28 6d 65 6e | fi$=fname$(men| 00004a90 75 2c 6f 70 74 69 6f 6e 29 0d 1e d2 48 20 20 e7 |u,option)...H .| 00004aa0 20 61 63 74 69 6f 6e 28 6d 65 6e 75 2c 6f 70 74 | action(menu,opt| 00004ab0 69 6f 6e 29 3c 3e 31 20 80 20 66 74 79 70 65 28 |ion)<>1 . ftype(| 00004ac0 6d 65 6e 75 2c 6f 70 74 69 6f 6e 29 3d 26 32 30 |menu,option)=&20| 00004ad0 30 30 20 80 20 a4 6e 6f 74 5f 74 68 65 72 65 20 |00 . .not_there | 00004ae0 8c 0d 1e dc 2c 20 20 20 20 f2 61 70 70 65 6e 64 |...., .append| 00004af0 5f 73 70 72 69 74 65 73 28 66 6e 61 6d 65 24 28 |_sprites(fname$(| 00004b00 6d 65 6e 75 2c 6f 70 74 69 6f 6e 29 29 0d 1e e6 |menu,option))...| 00004b10 24 20 20 20 20 e7 20 a9 28 63 68 65 63 6b 24 28 |$ . .(check$(| 00004b20 63 63 29 29 3e 3d 32 34 30 20 8c 20 63 63 2b 3d |cc))>=240 . cc+=| 00004b30 31 0d 1e f0 17 20 20 20 20 63 68 65 63 6b 24 28 |1.... check$(| 00004b40 63 63 29 2b 3d 66 69 24 0d 1e fa 07 20 20 cd 0d |cc)+=fi$.... ..| 00004b50 1f 04 05 ed 0d 1f 0e 05 e1 0d 1f 18 04 0d 1f 22 |..............."| 00004b60 0f dd a4 6e 6f 74 5f 74 68 65 72 65 0d 1f 2c 0b |...not_there..,.| 00004b70 66 6f 75 6e 64 3d a3 0d 1f 36 15 66 69 24 3d a4 |found=...6.fi$=.| 00004b80 67 65 74 6c 65 61 66 28 66 69 24 29 0d 1f 40 0e |getleaf(fi$)..@.| 00004b90 e3 20 63 3d 30 20 b8 20 63 63 0d 1f 4a 26 20 20 |. c=0 . cc..J& | 00004ba0 e7 20 a7 63 68 65 63 6b 24 28 63 29 2c 66 69 24 |. .check$(c),fi$| 00004bb0 29 20 8c 20 66 6f 75 6e 64 3d b9 3a 63 3d 63 63 |) . found=.:c=cc| 00004bc0 0d 1f 54 05 ed 0d 1f 5e 0c 3d ac 20 66 6f 75 6e |..T....^.=. foun| 00004bd0 64 0d 1f 68 04 0d 1f 72 14 dd f2 64 65 6c 65 74 |d..h...r...delet| 00004be0 65 5f 73 70 72 69 74 65 73 0d 1f 7c 2b c8 99 22 |e_sprites..|+.."| 00004bf0 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 |OS_SpriteOp",256| 00004c00 2b 38 2c 75 73 70 72 69 74 65 73 20 b8 20 2c 2c |+8,usprites . ,,| 00004c10 2c 6e 75 6d 0d 1f 86 0d e7 20 6e 75 6d 3d 31 20 |,num..... num=1 | 00004c20 e1 0d 1f 90 11 e3 20 6e 3d 31 20 b8 20 6e 75 6d |...... n=1 . num| 00004c30 2d 31 0d 1f 9a 3d 20 20 c8 99 22 4f 53 5f 53 70 |-1...= .."OS_Sp| 00004c40 72 69 74 65 4f 70 22 2c 32 35 36 2b 31 33 2c 75 |riteOp",256+13,u| 00004c50 73 70 72 69 74 65 73 2c 73 6e 61 6d 65 2c 32 35 |sprites,sname,25| 00004c60 36 2c 32 20 b8 20 2c 2c 2c 6c 65 6e 67 74 68 0d |6,2 . ,,,length.| 00004c70 1f a4 2b 20 20 c8 99 22 4f 53 5f 53 70 72 69 74 |..+ .."OS_Sprit| 00004c80 65 4f 70 22 2c 32 35 36 2b 32 35 2c 75 73 70 72 |eOp",256+25,uspr| 00004c90 69 74 65 73 2c 73 6e 61 6d 65 0d 1f ae 05 ed 0d |ites,sname......| 00004ca0 1f b8 05 e1 0d 1f c2 04 0d 1f cc 18 dd f2 61 70 |..............ap| 00004cb0 70 65 6e 64 5f 73 70 72 69 74 65 73 28 66 24 29 |pend_sprites(f$)| 00004cc0 0d 1f d6 1e 6c 65 61 66 24 3d a4 61 6c 70 68 61 |....leaf$=.alpha| 00004cd0 28 a4 67 65 74 6c 65 61 66 28 66 24 29 29 0d 1f |(.getleaf(f$))..| 00004ce0 e0 1c 6c 65 61 66 24 3d c0 6c 65 61 66 24 2c a9 |..leaf$=.leaf$,.| 00004cf0 28 6c 65 61 66 24 29 2d 31 29 0d 1f ea 16 66 6e |(leaf$)-1)....fn| 00004d00 24 3d 66 24 2b 22 2e 21 53 70 72 69 74 65 73 22 |$=f$+".!Sprites"| 00004d10 0d 1f f4 0e 24 66 6e 61 6d 65 3d 66 6e 24 0d 1f |....$fname=fn$..| 00004d20 fe 0b 58 3d 8e 20 66 6e 24 0d 20 08 07 d9 23 58 |..X=. fn$. ...#X| 00004d30 0d 20 12 0b e7 20 58 3d 30 20 8c 0d 20 1c 50 20 |. ... X=0 .. .P | 00004d40 20 f2 72 65 70 6f 72 74 5f 65 72 72 6f 72 28 22 | .report_error("| 00004d50 43 61 6e 27 74 20 66 69 6e 64 20 73 70 72 69 74 |Can't find sprit| 00004d60 65 20 66 69 6c 65 20 66 6f 72 20 22 2b 66 24 2b |e file for "+f$+| 00004d70 22 2c 20 62 75 74 20 77 69 6c 6c 20 63 6f 6e 74 |", but will cont| 00004d80 69 6e 75 65 2e 2e 2e 22 2c 31 29 0d 20 26 07 20 |inue...",1). &. | 00004d90 20 e1 0d 20 30 05 cd 0d 20 3a 29 c8 99 22 4f 53 | .. 0... :).."OS| 00004da0 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 31 |_SpriteOp",256+1| 00004db0 31 2c 75 73 70 72 69 74 65 73 2c 66 6e 61 6d 65 |1,usprites,fname| 00004dc0 0d 20 44 11 6f 6c 64 5f 6e 75 6d 3d 6e 75 6d 2b |. D.old_num=num+| 00004dd0 31 0d 20 4e 05 f5 0d 20 58 2d 20 20 c8 99 22 4f |1. N... X- .."O| 00004de0 53 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b |S_SpriteOp",256+| 00004df0 38 2c 75 73 70 72 69 74 65 73 20 b8 20 2c 2c 2c |8,usprites . ,,,| 00004e00 6e 75 6d 0d 20 62 09 20 20 64 3d a3 0d 20 6c 17 |num. b. d=.. l.| 00004e10 20 20 e3 20 73 3d 6f 6c 64 5f 6e 75 6d 20 b8 20 | . s=old_num . | 00004e20 6e 75 6d 0d 20 76 3f 20 20 20 20 c8 99 22 4f 53 |num. v? .."OS| 00004e30 5f 53 70 72 69 74 65 4f 70 22 2c 32 35 36 2b 31 |_SpriteOp",256+1| 00004e40 33 2c 75 73 70 72 69 74 65 73 2c 73 6e 61 6d 65 |3,usprites,sname| 00004e50 2c 32 35 36 2c 73 20 b8 20 2c 2c 2c 6c 65 6e 67 |,256,s . ,,,leng| 00004e60 74 68 0d 20 80 28 20 20 20 20 73 70 72 69 74 65 |th. .( sprite| 00004e70 24 3d a4 61 6c 70 68 61 28 a4 67 65 74 5f 6e 61 |$=.alpha(.get_na| 00004e80 6d 65 28 73 6e 61 6d 65 29 29 0d 20 8a 1a 20 20 |me(sname)). .. | 00004e90 20 20 e7 20 73 70 72 69 74 65 24 3c 3e 6c 65 61 | . sprite$<>lea| 00004ea0 66 24 20 8c 0d 20 94 18 20 20 20 20 20 20 24 73 |f$ .. .. $s| 00004eb0 6e 61 6d 65 3d 73 70 72 69 74 65 24 0d 20 9e 2f |name=sprite$. ./| 00004ec0 20 20 20 20 20 20 c8 99 22 4f 53 5f 53 70 72 69 | .."OS_Spri| 00004ed0 74 65 4f 70 22 2c 32 35 36 2b 32 35 2c 75 73 70 |teOp",256+25,usp| 00004ee0 72 69 74 65 73 2c 73 6e 61 6d 65 0d 20 a8 0f 20 |rites,sname. .. | 00004ef0 20 20 20 20 20 73 3d 6e 75 6d 0d 20 b2 0d 20 20 | s=num. .. | 00004f00 20 20 20 20 64 3d b9 0d 20 bc 09 20 20 20 20 cd | d=.. .. .| 00004f10 0d 20 c6 07 20 20 ed 0d 20 d0 09 fd 20 64 3d a3 |. .. .. ... d=.| 00004f20 0d 20 da 2b c8 99 22 4f 53 5f 53 70 72 69 74 65 |. .+.."OS_Sprite| 00004f30 4f 70 22 2c 32 35 36 2b 38 2c 75 73 70 72 69 74 |Op",256+8,usprit| 00004f40 65 73 20 b8 20 2c 2c 2c 6e 75 6d 0d 20 e4 05 e1 |es . ,,,num. ...| 00004f50 0d 20 ee 04 0d 20 f8 0a dd a4 6d 28 6e 29 0d 21 |. ... ....m(n).!| 00004f60 02 16 3d c0 6d 6e 61 6d 65 24 28 69 63 6f 6e 29 |..=.mname$(icon)| 00004f70 2c 31 30 29 0d 21 0c 04 0d 21 16 11 dd f2 72 65 |,10).!...!....re| 00004f80 61 64 5f 65 72 72 6f 72 73 0d 21 20 58 65 72 72 |ad_errors.! Xerr| 00004f90 6f 72 24 28 30 29 3d 22 53 6f 72 72 79 2c 20 62 |or$(0)="Sorry, b| 00004fa0 75 74 20 74 68 65 72 65 27 73 20 61 20 70 72 6f |ut there's a pro| 00004fb0 62 6c 65 6d 20 3a 20 50 6c 65 61 73 65 20 66 69 |blem : Please fi| 00004fc0 6e 64 20 21 46 6f 6e 74 73 20 61 6e 64 20 74 72 |nd !Fonts and tr| 00004fd0 79 20 6c 6f 61 64 69 6e 67 20 61 67 61 69 6e 2e |y loading again.| 00004fe0 22 0d 21 2a 55 65 72 72 6f 72 24 28 31 29 3d 22 |".!*Uerror$(1)="| 00004ff0 54 68 65 72 65 20 69 73 20 75 6e 73 61 76 65 64 |There is unsaved| 00005000 20 64 61 74 61 2e 20 41 72 65 20 79 6f 75 20 73 | data. Are you s| 00005010 75 72 65 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 |ure you want to | 00005020 71 75 69 74 3f 20 28 43 61 6e 63 65 6c 20 61 62 |quit? (Cancel ab| 00005030 6f 72 74 73 29 22 0d 21 34 3e 65 72 72 6f 72 24 |orts)".!4>error$| 00005040 28 32 29 3d 22 54 68 65 20 66 69 6c 65 20 79 6f |(2)="The file yo| 00005050 75 20 64 72 61 67 67 65 64 20 69 73 20 6e 6f 74 |u dragged is not| 00005060 20 61 20 72 65 63 6f 67 6e 69 73 65 64 20 6d 65 | a recognised me| 00005070 6e 75 2e 22 0d 21 3e 53 65 72 72 6f 72 24 28 33 |nu.".!>Serror$(3| 00005080 29 3d 22 53 6f 72 72 79 2c 20 62 75 74 20 74 68 |)="Sorry, but th| 00005090 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 |is version of th| 000050a0 65 20 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 6e |e program will n| 000050b0 6f 74 20 73 75 70 70 6f 72 74 20 6d 6f 72 65 20 |ot support more | 000050c0 69 74 65 6d 73 2e 22 0d 21 48 5d 65 72 72 6f 72 |items.".!H]error| 000050d0 24 28 34 29 3d 22 53 6f 72 72 79 2c 20 62 75 74 |$(4)="Sorry, but| 000050e0 20 79 6f 75 20 63 61 6e 27 74 20 64 65 6c 65 74 | you can't delet| 000050f0 65 20 74 68 65 20 6d 61 69 6e 20 6d 65 6e 75 20 |e the main menu | 00005100 2d 20 49 27 64 20 6f 6e 6c 79 20 67 65 74 20 63 |- I'd only get c| 00005110 6f 6e 66 75 73 65 64 20 69 66 20 79 6f 75 20 64 |onfused if you d| 00005120 69 64 2e 22 0d 21 52 58 65 72 72 6f 72 24 28 35 |id.".!RXerror$(5| 00005130 29 3d 22 53 6f 72 72 79 2c 20 62 75 74 20 79 6f |)="Sorry, but yo| 00005140 75 20 63 61 6e 27 74 20 68 61 76 65 20 61 6e 79 |u can't have any| 00005150 20 6d 6f 72 65 20 6d 65 6e 75 73 20 69 6e 20 74 | more menus in t| 00005160 68 69 73 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 |his version of t| 00005170 68 65 20 70 72 6f 67 72 61 6d 2e 22 0d 21 5c 4d |he program.".!\M| 00005180 65 72 72 6f 72 24 28 36 29 3d 22 48 6f 77 20 64 |error$(6)="How d| 00005190 69 64 20 79 6f 75 20 6d 61 6e 61 67 65 20 74 68 |id you manage th| 000051a0 61 74 3f 20 59 6f 75 20 63 61 6e 27 74 20 61 6c |at? You can't al| 000051b0 74 65 72 20 61 20 6e 6f 6e 2d 65 78 69 73 74 61 |ter a non-exista| 000051c0 6e 74 20 6d 65 6e 75 21 22 0d 21 66 49 65 72 72 |nt menu!".!fIerr| 000051d0 6f 72 24 28 37 29 3d 22 48 6f 77 20 64 69 64 20 |or$(7)="How did | 000051e0 79 6f 75 20 6d 61 6e 61 67 65 20 74 68 61 74 3f |you manage that?| 000051f0 20 59 6f 75 27 76 65 20 73 65 6c 65 63 74 65 64 | You've selected| 00005200 20 61 6e 20 69 6e 76 61 6c 69 64 20 74 79 70 65 | an invalid type| 00005210 21 22 0d 21 70 10 65 72 72 6f 72 24 28 38 29 3d |!".!p.error$(8)=| 00005220 22 22 0d 21 7a 3d 65 72 72 6f 72 24 28 39 29 3d |"".!z=error$(9)=| 00005230 22 54 6f 20 73 61 76 65 2c 20 64 72 61 67 20 74 |"To save, drag t| 00005240 68 65 20 69 63 6f 6e 20 74 6f 20 61 20 64 69 72 |he icon to a dir| 00005250 65 63 74 6f 72 79 20 76 69 65 77 65 72 2e 22 0d |ectory viewer.".| 00005260 21 84 5b 65 72 72 6f 72 24 28 31 30 29 3d 22 53 |!.[error$(10)="S| 00005270 6f 72 72 79 2c 20 74 68 65 72 65 27 73 20 61 20 |orry, there's a | 00005280 70 72 6f 62 6c 65 6d 20 2d 20 74 68 65 20 6d 65 |problem - the me| 00005290 6e 75 20 64 61 74 61 20 69 73 20 65 69 74 68 65 |nu data is eithe| 000052a0 72 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 6f |r not present, o| 000052b0 72 20 63 6f 72 72 75 70 74 22 0d 21 8e 69 65 72 |r corrupt".!.ier| 000052c0 72 6f 72 24 28 31 31 29 3d 22 4c 6f 61 64 69 6e |ror$(11)="Loadin| 000052d0 67 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 |g the file will | 000052e0 6f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 |overwrite existi| 000052f0 6e 67 20 64 61 74 61 2e 20 41 72 65 20 79 6f 75 |ng data. Are you| 00005300 20 73 75 72 65 20 79 6f 75 20 77 61 6e 74 20 74 | sure you want t| 00005310 6f 3f 20 28 43 61 6e 63 65 6c 20 61 62 6f 72 74 |o? (Cancel abort| 00005320 73 29 22 0d 21 98 46 65 72 72 6f 72 24 28 31 32 |s)".!.Ferror$(12| 00005330 29 3d 22 41 72 65 20 79 6f 75 20 73 75 72 65 20 |)="Are you sure | 00005340 2d 20 41 6c 6c 20 64 61 74 61 20 77 69 6c 6c 20 |- All data will | 00005350 62 65 20 6c 6f 73 74 3f 20 28 43 61 6e 63 65 6c |be lost? (Cancel| 00005360 20 61 62 6f 72 74 73 29 22 0d 21 a2 29 65 72 72 | aborts)".!.)err| 00005370 6f 72 24 28 31 33 29 3d 22 46 61 74 61 6c 20 65 |or$(13)="Fatal e| 00005380 72 72 6f 72 20 2d 20 6d 75 73 74 20 65 78 69 74 |rror - must exit| 00005390 2e 22 0d 21 ac 52 65 72 72 6f 72 24 28 31 34 29 |.".!.Rerror$(14)| 000053a0 3d 22 54 6f 20 6c 6f 61 64 20 74 68 65 20 73 70 |="To load the sp| 000053b0 72 69 74 65 73 20 66 6f 72 20 74 68 69 73 20 66 |rites for this f| 000053c0 69 6c 65 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e |ile, you must in| 000053d0 63 72 65 61 73 65 20 4d 6f 64 75 6c 65 20 61 72 |crease Module ar| 000053e0 65 61 2e 22 0d 21 b6 34 65 72 72 6f 72 24 28 31 |ea.".!.4error$(1| 000053f0 35 29 3d 22 41 20 6d 65 6e 75 20 6f 66 20 74 68 |5)="A menu of th| 00005400 61 74 20 6e 61 6d 65 20 61 6c 72 65 61 64 79 20 |at name already | 00005410 65 78 69 73 74 73 2e 22 0d 21 c0 44 65 72 72 6f |exists.".!.Derro| 00005420 72 24 28 31 36 29 3d 22 42 65 66 6f 72 65 20 63 |r$(16)="Before c| 00005430 6f 70 79 69 6e 67 20 66 69 6c 65 73 2c 20 79 6f |opying files, yo| 00005440 75 20 6d 75 73 74 20 68 61 76 65 20 73 61 76 65 |u must have save| 00005450 64 20 74 68 65 20 6d 65 6e 75 2e 22 0d 21 ca 05 |d the menu.".!..| 00005460 e1 0d 21 d4 04 0d 21 de 17 dd f2 73 79 73 74 65 |..!...!....syste| 00005470 6d 5f 65 72 72 6f 72 28 6e 2c 63 29 0d 21 e8 1e |m_error(n,c).!..| 00005480 f2 72 65 70 6f 72 74 5f 65 72 72 6f 72 28 65 72 |.report_error(er| 00005490 72 6f 72 24 28 6e 29 2c 63 29 0d 21 f2 05 e1 0d |ror$(n),c).!....| 000054a0 21 fc 04 0d 22 06 10 dd f2 65 72 72 6f 72 28 6e |!..."....error(n| 000054b0 2c 63 29 0d 22 10 1e f2 73 65 74 5f 62 69 74 28 |,c)."...set_bit(| 000054c0 6d 65 73 67 5f 68 61 6e 64 6c 65 2c 31 2c 32 33 |mesg_handle,1,23| 000054d0 29 0d 22 1a 28 e7 20 63 3d 33 20 8c 20 f2 75 6e |).".(. c=3 . .un| 000054e0 73 65 74 5f 62 69 74 28 6d 65 73 67 5f 68 61 6e |set_bit(mesg_han| 000054f0 64 6c 65 2c 31 2c 32 33 29 0d 22 24 2c f2 73 65 |dle,1,23)."$,.se| 00005500 74 5f 69 6e 64 69 72 65 63 74 65 64 28 6d 65 73 |t_indirected(mes| 00005510 67 5f 68 61 6e 64 6c 65 2c 30 2c 65 72 72 6f 72 |g_handle,0,error| 00005520 24 28 6e 29 29 0d 22 2e 0f 78 3d 37 32 38 3a 79 |$(n))."..x=728:y| 00005530 3d 32 37 36 0d 22 38 27 f2 63 65 6e 74 72 65 5f |=276."8'.centre_| 00005540 77 69 6e 64 6f 77 28 6d 65 73 67 5f 68 61 6e 64 |window(mesg_hand| 00005550 6c 65 2c 37 32 38 2c 32 37 36 29 0d 22 42 1f c8 |le,728,276)."B..| 00005560 97 20 c8 93 20 62 6c 6f 63 6b 25 21 34 2c 62 6c |. .. block%!4,bl| 00005570 6f 63 6b 25 21 38 2c 78 2c 79 0d 22 4c 06 ef 37 |ock%!8,x,y."L..7| 00005580 0d 22 56 05 f5 0d 22 60 2a 20 20 c8 99 20 22 57 |."V..."`* .. "W| 00005590 69 6d 70 5f 50 6f 6c 6c 22 2c 6d 61 73 6b 2c 62 |imp_Poll",mask,b| 000055a0 6c 6f 63 6b 25 20 b8 20 72 65 61 73 6f 6e 25 0d |lock% . reason%.| 000055b0 22 6a 12 20 20 c8 8e 20 72 65 61 73 6f 6e 25 20 |"j. .. reason% | 000055c0 ca 0d 22 74 17 20 20 20 20 c9 20 36 3a f2 63 6c |.."t. . 6:.cl| 000055d0 69 63 6b 5f 69 63 6f 6e 0d 22 7e 18 20 20 20 20 |ick_icon."~. | 000055e0 c9 20 31 37 2c 31 38 3a f2 72 65 63 65 69 76 65 |. 17,18:.receive| 000055f0 0d 22 88 07 20 20 cb 0d 22 92 0f fd 20 72 65 61 |.".. .."... rea| 00005600 73 6f 6e 25 3d 36 0d 22 9c 12 69 63 6f 6e 3d 62 |son%=6."..icon=b| 00005610 6c 6f 63 6b 25 21 31 36 0d 22 a6 2e e7 20 69 63 |lock%!16."... ic| 00005620 6f 6e 3d 31 20 75 73 65 72 5f 72 65 73 70 6f 6e |on=1 user_respon| 00005630 73 65 3d 32 20 8b 20 75 73 65 72 5f 72 65 73 70 |se=2 . user_resp| 00005640 6f 6e 73 65 3d 31 0d 22 b0 13 c8 97 20 c8 93 20 |onse=1.".... .. | 00005650 30 2c 30 2c 78 72 2c 79 72 0d 22 ba 1e f2 63 6c |0,0,xr,yr."...cl| 00005660 6f 73 65 5f 77 69 6e 64 6f 77 28 6d 65 73 67 5f |ose_window(mesg_| 00005670 68 61 6e 64 6c 65 29 0d 22 c4 05 e1 0d 22 ce 04 |handle)."...."..| 00005680 0d 22 d8 13 dd f2 6d 61 69 6e 6d 65 6e 75 5f 69 |."....mainmenu_i| 00005690 74 65 6d 0d 22 e2 0e 6d 6f 64 69 66 69 65 64 3d |tem."..modified=| 000056a0 b9 0d 22 ec 22 6e 65 77 70 6f 73 3d 6e 6f 5f 6f |.."."newpos=no_o| 000056b0 70 74 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |pts(current_menu| 000056c0 29 2b 31 0d 22 f6 19 e7 20 6e 65 77 70 6f 73 3d |)+1."... newpos=| 000056d0 32 35 36 20 6e 65 77 70 6f 73 3d 30 0d 23 00 11 |256 newpos=0.#..| 000056e0 e7 20 6e 65 77 70 6f 73 3e 31 37 20 8c 0d 23 0a |. newpos>17 ..#.| 000056f0 11 20 20 f2 65 72 72 6f 72 28 33 2c 31 29 0d 23 |. .error(3,1).#| 00005700 14 07 20 20 e1 0d 23 1e 05 cd 0d 23 28 20 6e 6f |.. ..#....#( no| 00005710 5f 6f 70 74 73 28 63 75 72 72 65 6e 74 5f 6d 65 |_opts(current_me| 00005720 6e 75 29 3d 6e 65 77 70 6f 73 0d 23 32 2b 66 6e |nu)=newpos.#2+fn| 00005730 61 6d 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ame$(current_men| 00005740 75 2c 6e 65 77 70 6f 73 29 3d 22 4d 61 69 6e 20 |u,newpos)="Main | 00005750 4d 65 6e 75 22 0d 23 3c 2a 74 65 78 74 24 28 63 |Menu".#<*text$(c| 00005760 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6e 65 77 70 |urrent_menu,newp| 00005770 6f 73 29 3d 22 4d 61 69 6e 20 4d 65 6e 75 22 0d |os)="Main Menu".| 00005780 23 46 20 66 74 79 70 65 28 63 75 72 72 65 6e 74 |#F ftype(current| 00005790 5f 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d 30 0d |_menu,newpos)=0.| 000057a0 23 50 27 73 70 72 69 74 65 24 28 63 75 72 72 65 |#P'sprite$(curre| 000057b0 6e 74 5f 6d 65 6e 75 2c 6e 65 77 70 6f 73 29 3d |nt_menu,newpos)=| 000057c0 22 6d 65 6e 75 22 0d 23 5a 21 61 63 74 69 6f 6e |"menu".#Z!action| 000057d0 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 6e 65 |(current_menu,ne| 000057e0 77 70 6f 73 29 3d 31 0d 23 64 13 f2 72 65 64 6f |wpos)=1.#d..redo| 000057f0 5f 61 6c 6c 5f 69 63 6f 6e 73 0d 23 6e 05 e1 0d |_all_icons.#n...| 00005800 23 78 04 0d 23 82 0d dd f2 64 72 61 67 62 6f 78 |#x..#....dragbox| 00005810 0d 23 8c 1e f2 73 74 61 72 74 5f 64 72 61 67 28 |.#...start_drag(| 00005820 73 61 76 65 5f 68 61 6e 64 6c 65 2c 30 29 0d 23 |save_handle,0).#| 00005830 96 12 63 75 72 72 65 6e 74 5f 64 72 61 67 3d 31 |..current_drag=1| 00005840 0d 23 a0 05 e1 0d 23 aa 04 0d 23 b4 11 dd f2 64 |.#....#...#....d| 00005850 72 61 67 5f 6f 70 74 69 6f 6e 0d 23 be 0e 6d 6f |rag_option.#..mo| 00005860 64 69 66 69 65 64 3d b9 0d 23 c8 12 63 75 72 72 |dified=..#..curr| 00005870 65 6e 74 5f 64 72 61 67 3d 32 0d 23 d2 21 66 5f |ent_drag=2.#.!f_| 00005880 64 72 61 67 67 65 64 3d a4 69 63 6f 6e 5f 74 6f |dragged=.icon_to| 00005890 5f 69 74 65 6d 28 69 63 6f 6e 29 0d 23 dc 27 e7 |_item(icon).#.'.| 000058a0 20 66 5f 64 72 61 67 67 65 64 3e 6e 6f 5f 6f 70 | f_dragged>no_op| 000058b0 74 73 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 29 |ts(current_menu)| 000058c0 20 e1 0d 23 e6 1c f2 73 74 61 72 74 5f 64 72 61 | ..#...start_dra| 000058d0 67 28 68 61 6e 64 6c 65 2c 69 63 6f 6e 29 0d 23 |g(handle,icon).#| 000058e0 f0 05 e1 0d 23 fa 04 0d 24 04 11 dd f2 6d 6f 76 |....#...$....mov| 000058f0 65 5f 6f 70 74 69 6f 6e 0d 24 0e 1b e7 20 64 65 |e_option.$... de| 00005900 73 74 69 6e 61 74 69 6f 6e 3c 3e 68 61 6e 64 6c |stination<>handl| 00005910 65 20 e1 0d 24 18 18 e7 20 69 63 6f 6e 3c 30 20 |e ..$... icon<0 | 00005920 84 20 69 63 6f 6e 3e 33 35 20 e1 0d 24 22 21 73 |. icon>35 ..$"!s| 00005930 5f 64 72 61 67 67 65 64 3d a4 69 63 6f 6e 5f 74 |_dragged=.icon_t| 00005940 6f 5f 69 74 65 6d 28 69 63 6f 6e 29 0d 24 2c 1b |o_item(icon).$,.| 00005950 e7 20 66 5f 64 72 61 67 67 65 64 3d 73 5f 64 72 |. f_dragged=s_dr| 00005960 61 67 67 65 64 20 e1 0d 24 36 27 e7 20 73 5f 64 |agged ..$6'. s_d| 00005970 72 61 67 67 65 64 3e 6e 6f 5f 6f 70 74 73 28 63 |ragged>no_opts(c| 00005980 75 72 72 65 6e 74 5f 6d 65 6e 75 29 20 e1 0d 24 |urrent_menu) ..$| 00005990 40 24 61 3d 61 63 74 69 6f 6e 28 63 75 72 72 65 |@$a=action(curre| 000059a0 6e 74 5f 6d 65 6e 75 2c 66 5f 64 72 61 67 67 65 |nt_menu,f_dragge| 000059b0 64 29 0d 24 4a 25 66 24 3d 66 6e 61 6d 65 24 28 |d).$J%f$=fname$(| 000059c0 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 66 5f 64 |current_menu,f_d| 000059d0 72 61 67 67 65 64 29 0d 24 54 24 74 24 3d 74 65 |ragged).$T$t$=te| 000059e0 78 74 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |xt$(current_menu| 000059f0 2c 66 5f 64 72 61 67 67 65 64 29 0d 24 5e 26 73 |,f_dragged).$^&s| 00005a00 24 3d 73 70 72 69 74 65 24 28 63 75 72 72 65 6e |$=sprite$(curren| 00005a10 74 5f 6d 65 6e 75 2c 66 5f 64 72 61 67 67 65 64 |t_menu,f_dragged| 00005a20 29 0d 24 68 23 66 3d 66 74 79 70 65 28 63 75 72 |).$h#f=ftype(cur| 00005a30 72 65 6e 74 5f 6d 65 6e 75 2c 66 5f 64 72 61 67 |rent_menu,f_drag| 00005a40 67 65 64 29 0d 24 72 3e e7 20 66 5f 64 72 61 67 |ged).$r>. f_drag| 00005a50 67 65 64 3c 73 5f 64 72 61 67 67 65 64 20 8c 20 |ged<s_dragged . | 00005a60 66 3d 66 5f 64 72 61 67 67 65 64 2b 31 3a 74 3d |f=f_dragged+1:t=| 00005a70 73 5f 64 72 61 67 67 65 64 3a 70 3d 2d 31 3a 73 |s_dragged:p=-1:s| 00005a80 3d 31 0d 24 7c 3e e7 20 66 5f 64 72 61 67 67 65 |=1.$|>. f_dragge| 00005a90 64 3e 73 5f 64 72 61 67 67 65 64 20 8c 20 66 3d |d>s_dragged . f=| 00005aa0 66 5f 64 72 61 67 67 65 64 2d 31 3a 74 3d 73 5f |f_dragged-1:t=s_| 00005ab0 64 72 61 67 67 65 64 3a 70 3d 31 3a 73 3d 2d 31 |dragged:p=1:s=-1| 00005ac0 0d 24 86 11 e3 20 64 3d 66 20 b8 20 74 20 88 20 |.$... d=f . t . | 00005ad0 73 0d 24 90 36 20 20 61 63 74 69 6f 6e 28 63 75 |s.$.6 action(cu| 00005ae0 72 72 65 6e 74 5f 6d 65 6e 75 2c 64 2b 70 29 20 |rrent_menu,d+p) | 00005af0 3d 61 63 74 69 6f 6e 28 63 75 72 72 65 6e 74 5f |=action(current_| 00005b00 6d 65 6e 75 2c 64 29 0d 24 9a 36 20 20 66 6e 61 |menu,d).$.6 fna| 00005b10 6d 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |me$(current_menu| 00005b20 2c 64 2b 70 29 20 3d 66 6e 61 6d 65 24 28 63 75 |,d+p) =fname$(cu| 00005b30 72 72 65 6e 74 5f 6d 65 6e 75 2c 64 29 0d 24 a4 |rrent_menu,d).$.| 00005b40 35 20 20 74 65 78 74 24 28 63 75 72 72 65 6e 74 |5 text$(current| 00005b50 5f 6d 65 6e 75 2c 64 2b 70 29 20 20 3d 74 65 78 |_menu,d+p) =tex| 00005b60 74 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c |t$(current_menu,| 00005b70 64 29 0d 24 ae 37 20 20 73 70 72 69 74 65 24 28 |d).$.7 sprite$(| 00005b80 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 64 2b 70 |current_menu,d+p| 00005b90 29 3d 73 70 72 69 74 65 24 28 63 75 72 72 65 6e |)=sprite$(curren| 00005ba0 74 5f 6d 65 6e 75 2c 64 29 0d 24 b8 35 20 20 66 |t_menu,d).$.5 f| 00005bb0 74 79 70 65 28 63 75 72 72 65 6e 74 5f 6d 65 6e |type(current_men| 00005bc0 75 2c 64 2b 70 29 20 20 3d 66 74 79 70 65 28 63 |u,d+p) =ftype(c| 00005bd0 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 64 29 0d 24 |urrent_menu,d).$| 00005be0 c2 05 ed 0d 24 cc 24 61 63 74 69 6f 6e 28 63 75 |....$.$action(cu| 00005bf0 72 72 65 6e 74 5f 6d 65 6e 75 2c 73 5f 64 72 61 |rrent_menu,s_dra| 00005c00 67 67 65 64 29 3d 61 0d 24 d6 25 66 6e 61 6d 65 |gged)=a.$.%fname| 00005c10 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 73 |$(current_menu,s| 00005c20 5f 64 72 61 67 67 65 64 29 3d 66 24 0d 24 e0 24 |_dragged)=f$.$.$| 00005c30 74 65 78 74 24 28 63 75 72 72 65 6e 74 5f 6d 65 |text$(current_me| 00005c40 6e 75 2c 73 5f 64 72 61 67 67 65 64 29 3d 74 24 |nu,s_dragged)=t$| 00005c50 0d 24 ea 26 73 70 72 69 74 65 24 28 63 75 72 72 |.$.&sprite$(curr| 00005c60 65 6e 74 5f 6d 65 6e 75 2c 73 5f 64 72 61 67 67 |ent_menu,s_dragg| 00005c70 65 64 29 3d 73 24 0d 24 f4 23 66 74 79 70 65 28 |ed)=s$.$.#ftype(| 00005c80 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 73 5f 64 |current_menu,s_d| 00005c90 72 61 67 67 65 64 29 3d 66 0d 24 fe 13 f2 72 65 |ragged)=f.$...re| 00005ca0 64 6f 5f 61 6c 6c 5f 69 63 6f 6e 73 0d 25 08 05 |do_all_icons.%..| 00005cb0 e1 0d 25 12 04 0d 25 1c 12 dd f2 6d 61 6b 65 5f |..%...%....make_| 00005cc0 73 75 62 6d 65 6e 75 0d 25 26 1c 69 74 65 6d 3d |submenu.%&.item=| 00005cd0 a4 69 63 6f 6e 5f 74 6f 5f 69 74 65 6d 28 69 63 |.icon_to_item(ic| 00005ce0 6f 6e 29 0d 25 30 3c e7 20 a4 6d 65 6e 75 5f 65 |on).%0<. .menu_e| 00005cf0 78 69 73 74 28 74 65 78 74 24 28 63 75 72 72 65 |xist(text$(curre| 00005d00 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d 29 29 20 8c |nt_menu,item)) .| 00005d10 20 f2 65 72 72 6f 72 28 31 35 2c 31 29 3a e1 0d | .error(15,1):..| 00005d20 25 3a 17 61 6c 74 65 72 5f 69 74 65 6d 3d 69 74 |%:.alter_item=it| 00005d30 65 6d 2b 31 30 30 0d 25 44 3b f2 73 65 74 5f 69 |em+100.%D;.set_i| 00005d40 6e 64 69 72 65 63 74 65 64 28 69 74 69 6e 5f 68 |ndirected(itin_h| 00005d50 61 6e 64 6c 65 2c 38 2c 74 65 78 74 24 28 63 75 |andle,8,text$(cu| 00005d60 72 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d 29 |rrent_menu,item)| 00005d70 29 0d 25 4e 3b f2 73 65 74 5f 69 6e 64 69 72 65 |).%N;.set_indire| 00005d80 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 6c 65 |cted(itin_handle| 00005d90 2c 35 2c 74 65 78 74 24 28 63 75 72 72 65 6e 74 |,5,text$(current| 00005da0 5f 6d 65 6e 75 2c 69 74 65 6d 29 29 0d 25 58 3d |_menu,item)).%X=| 00005db0 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 |.set_indirected(| 00005dc0 69 74 69 6e 5f 68 61 6e 64 6c 65 2c 32 2c 73 70 |itin_handle,2,sp| 00005dd0 72 69 74 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 |rite$(current_me| 00005de0 6e 75 2c 69 74 65 6d 29 29 0d 25 62 3d f2 73 65 |nu,item)).%b=.se| 00005df0 74 5f 69 6e 64 69 72 65 63 74 65 64 28 69 74 69 |t_indirected(iti| 00005e00 6e 5f 68 61 6e 64 6c 65 2c 31 2c 73 70 72 69 74 |n_handle,1,sprit| 00005e10 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c |e$(current_menu,| 00005e20 69 74 65 6d 29 29 0d 25 6c 30 f2 73 65 74 5f 69 |item)).%l0.set_i| 00005e30 6e 64 69 72 65 63 74 65 64 28 69 74 69 6e 5f 68 |ndirected(itin_h| 00005e40 61 6e 64 6c 65 2c 31 33 2c 22 4f 70 65 6e 20 6d |andle,13,"Open m| 00005e50 65 6e 75 3a 22 29 0d 25 76 27 f2 63 65 6e 74 72 |enu:").%v'.centr| 00005e60 65 5f 77 69 6e 64 6f 77 28 69 74 69 6e 5f 68 61 |e_window(itin_ha| 00005e70 6e 64 6c 65 2c 35 32 38 2c 36 38 30 29 0d 25 80 |ndle,528,680).%.| 00005e80 19 f2 63 61 72 65 74 28 69 74 69 6e 5f 68 61 6e |..caret(itin_han| 00005e90 64 6c 65 2c 32 29 0d 25 8a 05 e1 0d 25 94 04 0d |dle,2).%....%...| 00005ea0 25 9e 12 dd f2 73 75 62 6d 65 6e 75 5f 69 74 65 |%....submenu_ite| 00005eb0 6d 0d 25 a8 11 61 6c 74 65 72 5f 69 74 65 6d 3d |m.%..alter_item=| 00005ec0 2d 31 0d 25 b2 2c f2 73 65 74 5f 69 6e 64 69 72 |-1.%.,.set_indir| 00005ed0 65 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 6c |ected(itin_handl| 00005ee0 65 2c 38 2c 22 53 75 62 6d 65 6e 75 22 29 0d 25 |e,8,"Submenu").%| 00005ef0 bc 2c f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 |.,.set_indirecte| 00005f00 64 28 69 74 69 6e 5f 68 61 6e 64 6c 65 2c 35 2c |d(itin_handle,5,| 00005f10 22 53 75 62 6d 65 6e 75 22 29 0d 25 c6 29 f2 73 |"Submenu").%.).s| 00005f20 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 69 74 |et_indirected(it| 00005f30 69 6e 5f 68 61 6e 64 6c 65 2c 32 2c 22 6d 65 6e |in_handle,2,"men| 00005f40 75 22 29 0d 25 d0 29 f2 73 65 74 5f 69 6e 64 69 |u").%.).set_indi| 00005f50 72 65 63 74 65 64 28 69 74 69 6e 5f 68 61 6e 64 |rected(itin_hand| 00005f60 6c 65 2c 31 2c 22 6d 65 6e 75 22 29 0d 25 da 30 |le,1,"menu").%.0| 00005f70 f2 73 65 74 5f 69 6e 64 69 72 65 63 74 65 64 28 |.set_indirected(| 00005f80 69 74 69 6e 5f 68 61 6e 64 6c 65 2c 31 33 2c 22 |itin_handle,13,"| 00005f90 4f 70 65 6e 20 6d 65 6e 75 3a 22 29 0d 25 e4 27 |Open menu:").%.'| 00005fa0 f2 63 65 6e 74 72 65 5f 77 69 6e 64 6f 77 28 69 |.centre_window(i| 00005fb0 74 69 6e 5f 68 61 6e 64 6c 65 2c 35 32 38 2c 36 |tin_handle,528,6| 00005fc0 38 30 29 0d 25 ee 19 f2 63 61 72 65 74 28 69 74 |80).%...caret(it| 00005fd0 69 6e 5f 68 61 6e 64 6c 65 2c 32 29 0d 25 f8 05 |in_handle,2).%..| 00005fe0 e1 0d 26 02 04 0d 26 0c 14 dd a4 6d 65 6e 75 5f |..&...&....menu_| 00005ff0 65 78 69 73 74 28 41 24 29 0d 26 16 0d 6d 3d 32 |exist(A$).&..m=2| 00006000 35 35 3a 65 3d a3 0d 26 20 0e e3 20 6e 3d 30 20 |55:e=..& .. n=0 | 00006010 b8 20 32 30 0d 26 2a 1e 20 20 e7 20 6d 6e 61 6d |. 20.&*. . mnam| 00006020 65 24 28 6e 29 3d 41 24 20 8c 20 6d 3d 6e 3a 65 |e$(n)=A$ . m=n:e| 00006030 3d b9 0d 26 34 05 ed 0d 26 3e 06 3d 65 0d 26 48 |=..&4...&>.=e.&H| 00006040 04 0d 26 52 10 dd f2 63 6f 70 79 5f 66 69 6c 65 |..&R...copy_file| 00006050 73 0d 26 5c 21 e7 20 66 69 6c 65 6e 61 6d 65 24 |s.&\!. filename$| 00006060 3d 22 22 20 f2 65 72 72 6f 72 28 31 36 2c 31 29 |="" .error(16,1)| 00006070 3a e1 0d 26 66 27 f2 63 65 6e 74 72 65 5f 77 69 |:..&f'.centre_wi| 00006080 6e 64 6f 77 28 63 6f 70 79 5f 68 61 6e 64 6c 65 |ndow(copy_handle| 00006090 2c 36 32 30 2c 31 35 36 29 0d 26 70 27 ff 22 53 |,620,156).&p'."S| 000060a0 65 74 20 4d 65 6e 61 6b 65 72 53 65 72 76 65 72 |et MenakerServer| 000060b0 24 44 69 72 20 22 2b 66 69 6c 65 6e 61 6d 65 24 |$Dir "+filename$| 000060c0 0d 26 7a 05 e1 0d 26 84 04 0d 26 8e 0f dd f2 63 |.&z...&...&....c| 000060d0 6f 70 79 5f 66 69 6c 65 0d 26 98 0e 6c 3d a9 28 |opy_file.&..l=.(| 000060e0 66 69 6c 65 24 29 0d 26 a2 16 6c 24 3d a4 67 65 |file$).&..l$=.ge| 000060f0 74 6c 65 61 66 28 66 69 6c 65 24 29 0d 26 ac 19 |tleaf(file$).&..| 00006100 e3 20 6d 65 6e 75 3d 30 20 b8 20 6e 75 6d 5f 6d |. menu=0 . num_m| 00006110 65 6e 73 2d 31 0d 26 b6 1e 20 20 e3 20 69 74 65 |ens-1.&.. . ite| 00006120 6d 3d 30 20 b8 20 6e 6f 5f 6f 70 74 73 28 6d 65 |m=0 . no_opts(me| 00006130 6e 75 29 0d 26 c0 1d 20 20 20 20 66 6e 24 3d 66 |nu).&.. fn$=f| 00006140 6e 61 6d 65 24 28 6d 65 6e 75 2c 69 74 65 6d 29 |name$(menu,item)| 00006150 0d 26 ca 26 20 20 20 20 e7 20 c0 66 6e 24 2c 6c |.&.& . .fn$,l| 00006160 29 3d 66 69 6c 65 24 20 8c 20 f2 63 6f 70 79 5f |)=file$ . .copy_| 00006170 67 6f 74 6f 6e 65 0d 26 d4 07 20 20 ed 0d 26 de |gotone.&.. ..&.| 00006180 05 ed 0d 26 e8 16 f2 73 61 76 65 5f 6c 6f 61 64 |...&...save_load| 00006190 5f 64 61 74 61 28 b9 29 0d 26 f2 27 2a 53 65 74 |_data(.).&.'*Set| 000061a0 20 4f 6c 64 43 6f 70 79 24 4f 70 74 69 6f 6e 73 | OldCopy$Options| 000061b0 20 3c 43 6f 70 79 24 4f 70 74 69 6f 6e 73 3e 0d | <Copy$Options>.| 000061c0 26 fc 37 2a 53 65 74 20 43 6f 70 79 24 4f 70 74 |&.7*Set Copy$Opt| 000061d0 69 6f 6e 73 20 41 20 7e 43 20 7e 44 20 7e 46 20 |ions A ~C ~D ~F | 000061e0 7e 4c 20 7e 4e 20 7e 50 20 7e 51 20 52 20 7e 53 |~L ~N ~P ~Q R ~S| 000061f0 20 7e 54 20 7e 56 0d 27 06 32 41 24 3d 22 43 6f | ~T ~V.'.2A$="Co| 00006200 70 79 20 22 2b 66 69 6c 65 24 2b 22 20 22 2b 66 |py "+file$+" "+f| 00006210 69 6c 65 6e 61 6d 65 24 2b 22 2e 50 72 6f 67 72 |ilename$+".Progr| 00006220 61 6d 73 2e 22 2b 6c 24 0d 27 10 08 ff 20 41 24 |ams."+l$.'... A$| 00006230 0d 27 1a 27 2a 53 65 74 20 43 6f 70 79 24 4f 70 |.'.'*Set Copy$Op| 00006240 74 69 6f 6e 73 20 3c 4f 6c 64 43 6f 70 79 24 4f |tions <OldCopy$O| 00006250 70 74 69 6f 6e 73 3e 0d 27 24 05 e1 0d 27 2e 04 |ptions>.'$...'..| 00006260 0d 27 38 11 dd f2 63 6f 70 79 5f 67 6f 74 6f 6e |.'8...copy_goton| 00006270 65 0d 27 42 1d 6e 24 3d c2 66 6e 24 2c a9 28 66 |e.'B.n$=.fn$,.(f| 00006280 6e 24 29 2d 6c 2b a9 28 6c 24 29 2d 31 29 0d 27 |n$)-l+.(l$)-1).'| 00006290 4c 38 66 6e 61 6d 65 24 28 6d 65 6e 75 2c 69 74 |L8fname$(menu,it| 000062a0 65 6d 29 3d 22 3c 4d 65 6e 61 6b 65 72 53 65 72 |em)="<MenakerSer| 000062b0 76 65 72 24 44 69 72 3e 2e 50 72 6f 67 72 61 6d |ver$Dir>.Program| 000062c0 73 2e 22 2b 6e 24 0d 27 56 05 e1 0d 27 60 04 0d |s."+n$.'V...'`..| 000062d0 27 6a 15 dd f2 63 6c 69 63 6b 65 64 5f 6f 6e 5f |'j...clicked_on_| 000062e0 69 63 6f 6e 0d 27 74 29 e7 20 66 69 6c 65 6e 61 |icon.'t). filena| 000062f0 6d 65 24 3d 22 22 20 66 69 6c 65 6e 61 6d 65 24 |me$="" filename$| 00006300 3d 22 3c 4f 62 65 79 24 44 69 72 3e 22 0d 27 7e |="<Obey$Dir>".'~| 00006310 27 ff 22 53 65 74 20 4d 65 6e 61 6b 65 72 53 65 |'."Set MenakerSe| 00006320 72 76 65 72 24 44 69 72 20 22 2b 66 69 6c 65 6e |rver$Dir "+filen| 00006330 61 6d 65 24 0d 27 88 12 c8 99 22 4f 53 5f 42 79 |ame$.'...."OS_By| 00006340 74 65 22 2c 32 31 0d 27 92 1c 69 74 65 6d 3d a4 |te",21.'..item=.| 00006350 69 63 6f 6e 5f 74 6f 5f 69 74 65 6d 28 69 63 6f |icon_to_item(ico| 00006360 6e 29 0d 27 9c 35 e7 20 61 63 74 69 6f 6e 28 63 |n).'.5. action(c| 00006370 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 6d |urrent_menu,item| 00006380 29 3d 31 20 8c 20 f2 6e 65 77 5f 6d 65 6e 75 5f |)=1 . .new_menu_| 00006390 66 6f 75 6e 64 3a e1 0d 27 a6 33 e7 20 61 63 74 |found:..'.3. act| 000063a0 69 6f 6e 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 |ion(current_menu| 000063b0 2c 69 74 65 6d 29 3d 32 20 8c 20 f2 6f 70 65 6e |,item)=2 . .open| 000063c0 5f 64 69 72 5f 66 6f 75 6e 64 0d 27 b0 33 e7 20 |_dir_found.'.3. | 000063d0 61 63 74 69 6f 6e 28 63 75 72 72 65 6e 74 5f 6d |action(current_m| 000063e0 65 6e 75 2c 69 74 65 6d 29 3d 33 20 8c 20 f2 72 |enu,item)=3 . .r| 000063f0 75 6e 5f 66 69 6c 65 5f 66 6f 75 6e 64 0d 27 ba |un_file_found.'.| 00006400 05 e1 0d 27 c4 04 0d 27 ce 14 dd f2 72 75 6e 5f |...'...'....run_| 00006410 66 69 6c 65 5f 66 6f 75 6e 64 0d 27 d8 12 e7 20 |file_found.'... | 00006420 ac 20 72 75 6e 66 69 6c 65 73 20 e1 0d 27 e2 2b |. runfiles ..'.+| 00006430 ff 22 46 69 6c 65 72 5f 52 75 6e 20 22 2b 66 6e |."Filer_Run "+fn| 00006440 61 6d 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e |ame$(current_men| 00006450 75 2c 69 74 65 6d 29 0d 27 ec 05 e1 0d 27 f6 04 |u,item).'....'..| 00006460 0d 28 00 14 dd f2 6f 70 65 6e 5f 64 69 72 5f 66 |.(....open_dir_f| 00006470 6f 75 6e 64 0d 28 0a 12 e7 20 ac 20 72 75 6e 66 |ound.(... . runf| 00006480 69 6c 65 73 20 e1 0d 28 14 2f ff 22 46 69 6c 65 |iles ..(./."File| 00006490 72 5f 4f 70 65 6e 44 69 72 20 22 2b 66 6e 61 6d |r_OpenDir "+fnam| 000064a0 65 24 28 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c |e$(current_menu,| 000064b0 69 74 65 6d 29 0d 28 1e 05 e1 0d 28 28 04 0d 28 |item).(....((..(| 000064c0 32 14 dd f2 6e 65 77 5f 6d 65 6e 75 5f 66 6f 75 |2...new_menu_fou| 000064d0 6e 64 0d 28 3c 20 6d 24 3d 66 6e 61 6d 65 24 28 |nd.(< m$=fname$(| 000064e0 63 75 72 72 65 6e 74 5f 6d 65 6e 75 2c 69 74 65 |current_menu,ite| 000064f0 6d 29 0d 28 46 15 7a 3d a4 6d 65 6e 75 5f 65 78 |m).(F.z=.menu_ex| 00006500 69 73 74 28 6d 24 29 0d 28 50 18 e7 20 6d 24 3d |ist(m$).(P.. m$=| 00006510 22 4d 61 69 6e 20 4d 65 6e 75 22 20 6d 3d 30 0d |"Main Menu" m=0.| 00006520 28 5a 14 e7 20 6d 3e 3d 30 20 80 20 6d 3c 3d 32 |(Z.. m>=0 . m<=2| 00006530 30 20 8c 0d 28 64 14 20 20 63 75 72 72 65 6e 74 |0 ..(d. current| 00006540 5f 6d 65 6e 75 3d 6d 0d 28 6e 1b 20 20 f2 63 6c |_menu=m.(n. .cl| 00006550 6f 73 65 5f 77 69 6e 64 6f 77 28 68 61 6e 64 6c |ose_window(handl| 00006560 65 29 0d 28 78 2d 20 20 68 61 6e 64 6c 65 3d 77 |e).(x- handle=w| 00006570 69 5f 68 61 6e 64 6c 65 25 28 74 79 70 65 28 63 |i_handle%(type(c| 00006580 75 72 72 65 6e 74 5f 6d 65 6e 75 29 2b 34 29 0d |urrent_menu)+4).| 00006590 28 82 29 20 20 64 61 74 61 3d 77 69 5f 64 61 74 |(.) data=wi_dat| 000065a0 61 25 28 74 79 70 65 28 63 75 72 72 65 6e 74 5f |a%(type(current_| 000065b0 6d 65 6e 75 29 2b 34 29 0d 28 8c 1a 20 20 f2 6f |menu)+4).(.. .o| 000065c0 70 65 6e 5f 77 69 6e 64 6f 77 28 68 61 6e 64 6c |pen_window(handl| 000065d0 65 29 0d 28 96 15 20 20 f2 72 65 64 6f 5f 61 6c |e).(.. .redo_al| 000065e0 6c 5f 69 63 6f 6e 73 0d 28 a0 12 20 20 f2 72 65 |l_icons.(.. .re| 000065f0 64 72 61 77 5f 6c 69 73 74 0d 28 aa 05 cd 0d 28 |draw_list.(....(| 00006600 b4 05 e1 0d 28 be 04 0d 28 c8 14 dd f2 72 75 6e |....(...(....run| 00006610 5f 66 69 6c 65 73 5f 66 72 6f 6d 0d 28 d2 28 e7 |_files_from.(.(.| 00006620 20 72 75 6e 66 69 6c 65 73 20 8c 20 72 75 6e 66 | runfiles . runf| 00006630 69 6c 65 73 3d a3 20 8b 20 72 75 6e 66 69 6c 65 |iles=. . runfile| 00006640 73 3d b9 0d 28 dc 13 f2 74 69 63 6b 5f 69 74 65 |s=..(...tick_ite| 00006650 6d 28 36 2c 31 29 0d 28 e6 05 e1 0d 28 f0 04 0d |m(6,1).(....(...| 00006660 28 fa 4b f4 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |(.K. -----------| 00006670 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 00006680 2d 2d 2d 2d 20 4d 65 6e 75 20 44 61 74 61 20 2d |---- Menu Data -| 00006690 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d |----------------| 000066a0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 29 04 04 0d 29 |----------.)...)| 000066b0 0e 1b dc 20 22 4d 65 6e 61 6b 65 72 22 2c 36 2c |... "Menaker",6,| 000066c0 69 63 6f 6e 5f 6d 65 6e 75 0d 29 18 18 dc 20 22 |icon_menu.)... "| 000066d0 49 6e 66 6f 22 2c 69 6e 66 6f 5f 68 61 6e 64 6c |Info",info_handl| 000066e0 65 0d 29 22 18 dc 20 22 53 61 76 65 22 2c 73 61 |e.)".. "Save",sa| 000066f0 76 65 5f 68 61 6e 64 6c 65 0d 29 2c 18 dc 20 22 |ve_handle.),.. "| 00006700 4f 70 74 69 6f 6e 73 22 2c 6f 70 74 5f 6d 65 6e |Options",opt_men| 00006710 75 0d 29 36 10 dc 20 22 43 6c 65 61 72 22 2c 2d |u.)6.. "Clear",-| 00006720 31 0d 29 40 15 dc 20 22 43 6f 70 79 20 66 69 6c |1.)@.. "Copy fil| 00006730 65 73 22 2c 2d 31 0d 29 4a 0f dc 20 22 51 75 69 |es",-1.)J.. "Qui| 00006740 74 22 2c 2d 31 0d 29 54 04 0d 29 5e 1a dc 20 22 |t",-1.)T..)^.. "| 00006750 4d 65 6e 75 73 22 2c 32 2c 6d 65 6e 75 73 5f 6d |Menus",2,menus_m| 00006760 65 6e 75 0d 29 68 13 dc 20 22 4e 65 77 20 6d 65 |enu.)h.. "New me| 00006770 6e 75 22 2c 2d 31 0d 29 72 19 dc 20 22 4d 65 6e |nu",-1.)r.. "Men| 00006780 75 20 27 27 22 2c 6d 65 6e 75 5f 6d 65 6e 75 0d |u ''",menu_menu.| 00006790 29 7c 04 0d 29 86 1a dc 20 22 49 74 65 6d 73 22 |)|..)... "Items"| 000067a0 2c 33 2c 69 74 65 6d 73 5f 6d 65 6e 75 0d 29 90 |,3,items_menu.).| 000067b0 19 dc 20 22 49 74 65 6d 20 27 27 22 2c 69 74 65 |.. "Item ''",ite| 000067c0 6d 5f 6d 65 6e 75 0d 29 9a 19 dc 20 22 4d 61 69 |m_menu.)... "Mai| 000067d0 6e 20 6d 65 6e 75 20 69 74 65 6d 22 2c 2d 31 0d |n menu item",-1.| 000067e0 29 a4 17 dc 20 22 53 75 62 6d 65 6e 75 20 69 74 |)... "Submenu it| 000067f0 65 6d 22 2c 2d 31 0d 29 ae 04 0d 29 b8 18 dc 20 |em",-1.)...)... | 00006800 22 4d 65 6e 75 22 2c 32 2c 6d 65 6e 75 5f 6d 65 |"Menu",2,menu_me| 00006810 6e 75 0d 29 c2 11 dc 20 22 44 65 6c 65 74 65 22 |nu.)... "Delete"| 00006820 2c 2d 31 0d 29 cc 15 dc 20 22 41 6c 74 65 72 20 |,-1.)... "Alter | 00006830 74 79 70 65 22 2c 2d 31 0d 29 d6 04 0d 29 e0 18 |type",-1.)...)..| 00006840 dc 20 22 49 74 65 6d 22 2c 33 2c 69 74 65 6d 5f |. "Item",3,item_| 00006850 6d 65 6e 75 0d 29 ea 11 dc 20 22 44 65 6c 65 74 |menu.)... "Delet| 00006860 65 22 2c 2d 31 0d 29 f4 15 dc 20 22 41 6c 74 65 |e",-1.)... "Alte| 00006870 72 20 69 6e 66 6f 22 2c 2d 31 0d 29 fe 17 dc 20 |r info",-1.)... | 00006880 22 4d 61 6b 65 20 73 75 62 6d 65 6e 75 22 2c 2d |"Make submenu",-| 00006890 31 0d 2a 08 04 0d 2a 12 1a dc 20 22 4f 70 74 69 |1.*...*... "Opti| 000068a0 6f 6e 73 22 2c 31 2c 6f 70 74 5f 6d 65 6e 75 0d |ons",1,opt_menu.| 000068b0 2a 1c 21 dc 20 22 52 75 6e 20 66 69 6c 65 73 20 |*.!. "Run files | 000068c0 66 72 6f 6d 20 4d 65 6e 61 6b 65 72 22 2c 2d 31 |from Menaker",-1| 000068d0 0d ff |..| 000068d2