Home » Archimedes archive » Acorn User » AU 1994-05.adf » !StarInfo_StarInfo » Daly/!Keyboard/!RunImage
Daly/!Keyboard/!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 » Acorn User » AU 1994-05.adf » !StarInfo_StarInfo |
Filename: | Daly/!Keyboard/!RunImage |
Read OK: | ✔ |
File size: | 9A5D bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10 REM >!RunImage (Keyboard) 20 REM by Thomas Daly 30 REM (c) AU May 1994 40 50 PROCinitall 60 ON ERROR PROCreport_err(REPORT$,ERR,ERL):IF finish% PROCclosedown:END 70 80 REPEAT 90 SYS "Wimp_Poll",mask%,blk% TO A% 100 CASE A% OF 110 WHEN 0: 120 IF keydown%<>&FF THEN 130 SYS "OS_Byte",&7A TO ,kcode% 140 IF kcode%=&FF PROCdecode_drag:mask%=&80033:keydown%=&FF 150 ENDIF 160 IF dragbar%<>0 THEN 170 PROCget_pointer_info 180 IF dragbar%=&FF PROCget_window_state(con%) 190 dragbar%=(((mousex%-x0%)DIV 23)*23)+12 200 IF dragbar%<>olddragbar% THEN 210 PROCget_icon_state(con%,19) 220 blk%!16=dragbar%:SYS "Wimp_DeleteIcon",,blk% 230 blk%!4=con%:SYS "Wimp_CreateIcon",,blk%+4 240 SYS "Wimp_ForceRedraw",con%,blk%!8,blk%!12,(x1%-x0%)-20,blk%!20 250 olddragbar%=dragbar% 260 ENDIF 270 ENDIF 280 WHEN 2:PROCopen_window 290 WHEN 3:PROCclose_window(!blk%) 300 WHEN 6:PROCmouse_click(!blk%,blk%!4,blk%!8,blk%!12,blk%!16,FALSE) 310 WHEN 7:PROCdecode_drag 320 WHEN 8:PROCkey_pressed(!blk%,blk%!4,blk%!24) 330 WHEN 9:PROCdecode_menu(blk%) 340 WHEN 11:IF !blk%=main% ifneeded%=TRUE:suneeded%=TRUE 350 WHEN 12:IF !blk%=main% ifneeded%=FALSE 360 WHEN 17,18:PROCreceive_mess 370 ENDCASE 380 UNTIL finish% 390 PROCclosedown:END 400 410 DEFPROCreceive_mess 420 FOR N%=0 TO !blk%-1 STEP 4:messblk%!N%=blk%!N%:NEXT 430 CASE blk%!16 OF 440 WHEN 0:finish%=TRUE 450 WHEN 1 460 CASE blk%!40 OF 470 WHEN &DF9,&CB5,&ED0,&D3C,&FFD,&FFA,&10C 480 SYS "XOS_ReadVarVal","Wimp$Scrap",,-1,0,3 TO ,,N% 490 IF N%=0 PROCreport_err("Wimp$Scrap not defined",100,ERL):ENDPROC 500 leafname$=FNstring(blk%+44) 510 IF FNfile_present(leafname$,blk%!40)=TRUE PROCreport_err("Sample name '"+leafname$+"' already present",100,ERL):ENDPROC 520 !messblk%=64:messblk%!12=messblk%!8:messblk%!16=2 530 messblk%!36=-1:$(messblk%+44)="<Wimp$Scrap>"+CHR$0 540 SYS "Wimp_SendMessage",17,messblk%,messblk%!4 550 scrap%=messblk%!8 560 ENDCASE 570 WHEN 2 580 IF blk%!12<>saveref% ERROR 1,"Unexpected DataSave packet received" 590 IF blk%!40<>&10C ERROR 1,"Unexpected DataSave filetype received" 600 filename$=FNstring(blk%+44) 610 IF menubut%<>1 SYS "Wimp_CreateMenu",,-1 620 menubut%=0 630 IF blk%!36<>-1 PROCkeyboarddataout(filename$,TRUE) ELSE PROCkeyboarddataout(filename$,FALSE) 640 messblk%!12=messblk%!8:messblk%!16=3 650 SYS "Wimp_SendMessage",17,messblk%,messblk%!4 660 WHEN 3 670 filename$=FNstring(blk%+44):filetype%=blk%!40:PROCload_file 680 WHEN 5 690 IF blk%!40=&10C filename$=FNstring(blk%+44):filetype%=&10C:PROCload_file 700 WHEN 8 710 IF changed% THEN 720 blk%!12=blk%!8:SYS "Wimp_SendMessage",19,blk% 730 PROCmessage_box(3) 740 ENDIF 750 WHEN 10:PROCdesksave 760 WHEN &400C1:PROCgetmodeinfo 770 ENDCASE 780 ENDPROC 790 800 DEFFNstring(a%) 810 LOCAL d$:d$="":WHILE ?a%<>0:d$+=CHR$?a%:a%+=1:ENDWHILE:=d$ 820 830 DEFPROCinitall 840 ON ERROR PROCreport_err(REPORT$,ERR,ERL):PROCclosedown:END 850 LOCAL N%,N2%,f$ 860 SYS "Hourglass_On" 870 SYS "Wimp_Initialise",200,&4B534154,"Keyboard" TO version% 880 code%=0:samplebase%=0 890 : 900 DIM blk% &1000,buf% &1000,fmitem% 20,mst% 64,menudata% &600,mblk% 36,messblk% 256,slotblk% 31,vlistblk% 703 910 bufstart%=buf%:mdatastart%=menudata%:vlstart%=vlistblk% 920 version$="1.32 (16-Oct-93)":mask%=&80033:finish%=FALSE 930 controls%=FALSE:sampopen%=FALSE:mainopen%=FALSE 940 ifneeded%=TRUE:suneeded%=TRUE:dragbar%=0:olddragbar%=0 950 x0%=0:x1%=0:y0%=0:y1%=0:wf%=0 960 mhan%=0:mousex%=0:mousey%=0:mbut%=0:micon%=0:menubut%=0 970 menuwidth%=174:keystat%=0:redrawreq%=TRUE 980 maction%=0 990 : 1000 DIM pathname$(31),size%(31),type%(31),sampaddr%(31),sstereo%(7),loadedvoices$(31) 1010 filename$="":filetype%=0:next%=0:saveref%=0:leafname$="":scrap%=0 1020 : 1030 DIM mv%(32),pitchtable%(11),voice$(7) 1040 chan%=1:oct%=0:vlsel%=0:keydown%=&FF:salone%=FALSE 1050 dura%=20:trans%=0:volume%=-12:count%=0:tunoct%=0:tunsemi%=0 1060 keymap$="ZSXDCVGBHNJMQ2W3ER5T6Y7UI9O0P[=]�\":showkeys%=TRUE 1070 savechoices%=FALSE:autoinst%=TRUE:changed%=FALSE 1080 : 1090 code%=FNclaim(&E00) 1100 IF code%=0 ERROR 1,"Not enough room in RMA" 1110 OSCLI "Load <Keyboard$Dir>.Code "+STR$~code% 1120 : 1130 FOR N%=0 TO 11:READ pitchtable%(N%):NEXT 1140 DATA &4000,&4155,&42AA,&4400,&4555,&46AA,&4800,&49AA,&4AAA,&4C00,&4D55,&4EAA 1150 : 1160 N%=OPENIN "<Keyboard$Dir>.Sprites":N2%=EXT#N%+16:CLOSE#N% 1170 DIM sprites% N2% 1180 !sprites%=N2%:sprites%!8=1 1190 SYS "OS_SpriteOp",&109,sprites% 1200 SYS "OS_SpriteOp",&10A,sprites%,"<Keyboard$Dir>.Sprites" 1210 : 1220 PROCgetmodeinfo 1230 SYS "Wimp_OpenTemplate",,"<Keyboard$Dir>.Templates" 1240 con%=FNcreate_window("Toolbox",FALSE) 1250 main%=FNcreate_window("Main",TRUE) 1260 info%=FNcreate_window("Info",FALSE) 1270 samples%=FNcreate_window("Samples",FALSE) 1280 samplist%=FNcreate_window("SampList",FALSE) 1290 savebox%=FNcreate_window("save",FALSE) 1300 sampinfo%=FNcreate_window("SampInfo",FALSE) 1310 message%=FNcreate_window("Message",FALSE) 1320 tuning%=FNcreate_window("Tuning",FALSE) 1330 SYS "Wimp_CloseTemplate" 1340 PROCset_icon(info%,11,version$) 1350 PROCset_icon(message%,0,"Are you sure? Your current choices are not saved") 1360 winmenu%=FNmenutree(3,FALSE) 1370 icmenu%=FNmenutree(1,FALSE) 1380 vlmenu%=FNmenutree(1,TRUE) 1390 PROClinks(winmenu%,&600) 1400 : 1410 samplebase%=0:sampoffset%=0 1420 : 1430 SYS "Sound_InstallVoice",0,mv%(0) TO curvoice$ 1440 kiconbar%=FNiconbar 1450 PROCtogglechars 1460 SYS "OS_GetEnv" TO f$ 1470 IF INSTR(f$," ",13)<>0 AND RIGHT$(f$,1)<>" " THEN 1480 N%=LEN f$:WHILE MID$(f$,N%,1)<>" " AND N%>1:N%-=1:ENDWHILE 1490 PROCkeyboarddatain(RIGHT$(f$,LENf$-N%)) 1500 ENDIF 1510 SYS "Hourglass_Off" 1520 *Pointer 1530 ENDPROC 1540 1550 DATA Keyboard,6,Sample '',4,Select all,0,Save,0,Voice,0,Tuning,0,Options,0 1560 DATA Selection,5,Info,0,Delete ^X,0,Install ^I,0,Remove ^R,0,Clear ^Z,0 1570 DATA Options,5,Auto install,1,Save choices,0,Stand alone,0,Controls... ^C,0,Samples... ^S,0 1580 DATA 5,Keyboard,0,Selection,Keyboard,2,#savebox%,Keyboard,4,#tuning%,Keyboard,5,Options,Selection,0,#sampinfo% 1590 : 1600 DATA Keyboard,2,Info,0,Quit,0 1610 DATA 1,Keyboard,0,#info% 1620 : 1630 DATA Voice list,32 1640 DATA 0 1650 DATA 1,Keyboard,3,Voice list 1660 1670 DEFPROCmouse_click(mousex%,mousey%,but%,han%,icon%,key%) 1680 LOCAL pitch%,text$,i% 1690 : 1700 IF but% AND 2 THEN 1710 CASE han% OF 1720 WHEN -2 1730 curmenu%=icmenu%:cmx%=mousex%-80:cmy%=184 1740 PROCshowmenu 1750 WHEN main%: PROCfirst_items(TRUE,TRUE,main%) 1760 WHEN samples%: PROCfirst_items(FALSE,FALSE,samples%) 1770 WHEN samplist% 1780 IF (next%>0 AND icon%>-1) AND FNicons_selected<2 THEN 1790 PROCentire_list(1) 1800 PROCupdate_icon(han%,icon%,%1<<21,%1<<21) 1810 ENDIF 1820 PROCfirst_items(FALSE,FALSE,samplist%) 1830 ENDCASE 1840 IF han%=main% OR han%=samplist% OR han%=samples% THEN 1850 PROCupdatevoicelist:PROCsetsavefield 1860 curmenu%=winmenu%:cmx%=mousex%:cmy%=mousey% 1870 PROCshowmenu 1880 ENDIF 1890 ENDIF 1900 : 1910 CASE han% OF 1920 WHEN -2 1930 IF but% AND 4 THEN 1940 IF mainopen% THEN 1950 PROCpopup_window(main%,0) 1960 ELSE 1970 i%=FALSE 1980 SYS "Wimp_GetCaretPosition",,blk% 1990 IF !blk%=-1 i%=TRUE 2000 PROCpopup_window(main%,1):mainopen%=TRUE 2010 IF i% PROCgetif 2020 ENDIF 2030 ENDIF 2040 : 2050 WHEN main% 2060 IF but%=4 OR but%=1 THEN 2070 IF icon%=-1 PROCgetif 2080 ENDIF 2090 IF icon%>=0 THEN 2100 IF icon%>35 icon%=35-(icon%-36) 2110 IF but%=4 AND keydown%=&FF AND dragbar%<>&FF THEN 2120 PROCupdate_icon(main%,icon%,%1<<21,0) 2130 PROCgetif 2140 IF suneeded% PROCsetsoundsys:suneeded%=FALSE 2150 pitch%=pitchtable%((35-icon%)MOD 12)+(trans%*&156)+(&1000*((35-icon%)DIV 12))+((oct%-1)*&1000) 2160 IF pitch%>0 AND pitch%<=&7EAA SOUND chan%,volume%,pitch%,dura% 2170 keydown%=icon% 2180 IF NOT key% THEN 2190 blk%!4=7:blk%!24=0:blk%!28=0:blk%!32=swidth%:blk%!36=sheight% 2200 SYS "Wimp_DragBox",,blk% 2210 ENDIF 2220 ENDIF 2230 ENDIF 2240 : 2250 WHEN con% 2260 IF but%<>2 THEN 2270 PROCcheckchange(TRUE) 2280 IF but%=1 THEN 2290 IF icon% MOD 2=1 icon%-=1 ELSE icon%+=1 2300 ENDIF 2310 PROCsetvars:CASE icon% OF 2320 WHEN 21: 2330 oct%+=1:IF oct%>=5 oct%=-4 2340 PROCset_icon(con%,23,STR$(oct%)) 2350 WHEN 22: 2360 oct%-=1:IF oct%<=-5 oct%=4 2370 PROCset_icon(con%,23,STR$(oct%)) 2380 WHEN 24: 2390 trans%+=1:IF trans%>=12 trans%=-11 2400 PROCset_icon(con%,26,STR$(trans%)) 2410 WHEN 25: 2420 trans%-=1:IF trans%<=-12 trans%=11 2430 PROCset_icon(con%,26,STR$(trans%)) 2440 WHEN 27: 2450 chan%+=1:IF chan%>=9 chan%=1 2460 PROCset_icon(con%,32,STR$(chan%)) 2470 suneeded%=TRUE 2480 WHEN 28: 2490 chan%-=1:IF chan%<=0 chan%=8 2500 PROCset_icon(con%,32,STR$(chan%)) 2510 suneeded%=TRUE 2520 WHEN 29: 2530 dura%+=5:IF dura%>=256 dura%=0 2540 PROCset_icon(con%,31,STR$(dura%)) 2550 WHEN 30: 2560 dura%-=5:IF dura%<0 dura%=255 2570 PROCset_icon(con%,31,STR$(dura%)) 2580 WHEN 20,34: PROCtogglechars 2590 PROCupdate_icon(con%,34,%1<<21,%0<<21) 2600 WHEN 18,19 2610 PROCget_window_state(con%):PROCget_pointer_info 2620 IF icon%=19 OR (icon%=18 AND (mousex%>x0%+46 AND mousex%<x1%-46 AND mousey%>y0%+62 AND mousey%<y0%+86)) THEN 2630 blk%!4=7:blk%!24=x0%+56:blk%!28=y0%+66:blk%!32=x1%-56:blk%!36=y0%+82 2640 SYS "Wimp_DragBox",,blk% 2650 dragbar%=&FF:mask%=&80032 2660 ENDIF 2670 ENDCASE 2680 ENDIF 2690 : 2700 WHEN samplist%,samples% 2710 IF but%=4 OR but%=1 THEN 2720 IF icon%=-1 OR han%=samples% PROCentire_list(1) 2730 ENDIF 2740 : 2750 WHEN savebox% 2760 CASE icon% OF 2770 WHEN 0: IF but%<>1 SYS "Wimp_CreateMenu",,-1 2780 PROCkeyboarddataout($FNiconaddr(savebox%,2),TRUE) 2790 WHEN 3: PROCdrag_icon(mousex%,mousey%,savebox%,3) 2800 ENDCASE 2810 : 2820 WHEN tuning% 2830 IF but%<>2 THEN 2840 tunoct%=VAL($FNiconaddr(tuning%,6)) 2850 tunsemi%=VAL($FNiconaddr(tuning%,9)) 2860 CASE icon% OF 2870 WHEN 2 2880 tunoct%+=1:IF tunoct%>=4 tunoct%=-3 2890 PROCset_icon(tuning%,6,STR$(tunoct%)) 2900 WHEN 4 2910 tunoct%-=1:IF tunoct%<=-4 tunoct%=3 2920 PROCset_icon(tuning%,6,STR$(tunoct%)) 2930 WHEN 13 2940 tunsemi%+=1:IF tunsemi%>=12 tunsemi%=-11 2950 PROCset_icon(tuning%,9,STR$(tunsemi%)) 2960 WHEN 11 2970 tunsemi%-=1:IF tunsemi%<=-12 tunsemi%=11 2980 PROCset_icon(tuning%,9,STR$(tunsemi%)) 2990 WHEN 15 3000 PROCcheckchange(TRUE) 3010 *Tuning 0 3020 OSCLI "Tuning "+STR$((tunoct%*4096)+(tunsemi%*341)) 3030 IF but%<>1 SYS "Wimp_CreateMenu",,-1 3040 ENDIF 3050 ENDCASE 3060 : 3070 WHEN message% 3080 PROCclose_window(message%) 3090 SYS "OS_Byte",&C9,keystat%,0 3100 MOUSE RECTANGLE 0,0,swidth%,sheight% 3110 IF redrawreq%=FALSE PROCshowmenu 3120 IF icon%=2 THEN 3130 CASE maction% OF 3140 WHEN 1: finish%=TRUE 3150 WHEN 2: PROCkeyboarddatain(filename$) 3160 WHEN 3 3170 changed%=FALSE 3180 SYS "Wimp_GetCaretPosition",,blk% 3190 blk%!24=&1FC 3200 SYS "Wimp_SendMessage",8,blk%,messblk%!4 3210 ENDCASE 3220 ELSE 3230 CASE maction% OF 3240 WHEN 2: IF scrap%<>0 OSCLI "Delete <Wimp$Scrap>":scrap%=0 3250 ENDCASE 3260 ENDIF 3270 maction%=0 3280 ENDCASE 3290 ENDPROC 3300 3310 DEFPROCfirst_items(g1%,g2%,han%) 3320 LOCAL a% 3330 IF g1%=TRUE OR FNicons_selected=0 THEN 3340 PROCmenu_text("Sample ''",winmenu%+28,1) 3350 winmenu%!16=menuwidth%:g1%=TRUE 3360 ELSE 3370 IF han%<>main% THEN 3380 IF FNicons_selected=1 THEN 3390 SYS "Wimp_WhichIcon",samplist%,blk%+128,%1<<21,%1<<21 3400 text$="Sample '"+FNicontext(samplist%,!(blk%+128))+"'" 3410 PROCmenu_text(text$,winmenu%+28,0) 3420 a%=((LEN text$)*16)+14 3430 IF a%>menuwidth% winmenu%!16=a% ELSE winmenu%!16=menuwidth% 3440 PROCupdateinfobox(!(blk%+128)) 3450 ELSE 3460 PROCmenu_text("Selection",winmenu%+28,0) 3470 winmenu%!16=menuwidth% 3480 ENDIF 3490 PROCselection_items 3500 ENDIF 3510 ENDIF 3520 winmenu%!36=FNSpecItem(g1%,winmenu%!36,22) 3530 IF next%>0 winmenu%!60=FNSpecItem(g2%,winmenu%!60,22) ELSE winmenu%!60=FNSpecItem(TRUE,winmenu%!60,22) 3540 ENDPROC 3550 3560 DEFPROCselection_items 3570 LOCAL a%,b%,i%:a%=FALSE:b%=FALSE:i%=FALSE 3580 IF FNcheck_list(0)=TRUE OR count%>=32 a%=TRUE 3590 IF FNcheck_list(1)=TRUE b%=TRUE 3600 winmenu%!256=FNSpecItem(a%,winmenu%!256,22) 3610 winmenu%!280=FNSpecItem(b%,winmenu%!280,22) 3620 IF FNicons_selected>1 i%=TRUE 3630 winmenu%!208=FNSpecItem(i%,winmenu%!208,22) 3640 ENDPROC 3650 3660 DEFPROCmenu_width(p%,len%) 3670 IF len%>16 !p%=(len%*16)+1F4 ELSE !p%=(16*16)+14 3680 ENDPROC 3690 3700 DEFPROCkey_pressed(han%,icon%,ch%) 3710 LOCAL p%,k%,ci%,s%:p%=FALSE 3720 IF han%<>savebox% AND han%<>tuning% SYS "Wimp_CreateMenu",,-1 3730 : 3740 CASE han% OF 3750 WHEN con% 3760 s%=FNshortcuts 3770 CASE ch% OF 3780 WHEN &18F 3790 CASE icon% OF 3800 WHEN 23: ci%=31 3810 WHEN 26: ci%=23 3820 WHEN 32: ci%=26 3830 WHEN 31: ci%=32 3840 ENDCASE 3850 PROCcaret(con%,ci%) 3860 WHEN &18E,&D 3870 CASE icon% OF 3880 WHEN 23: ci%=26 3890 WHEN 26: ci%=32 3900 WHEN 32: ci%=31 3910 WHEN 31: ci%=23 3920 ENDCASE 3930 PROCcaret(con%,ci%) 3940 OTHERWISE 3950 IF s%=FALSE p%=TRUE 3960 ENDCASE 3970 : 3980 WHEN savebox% 3990 IF ch%=&D PROCmouse_click(0,0,4,savebox%,0,0) ELSE p%=TRUE 4000 : 4010 WHEN tuning% 4020 p%=TRUE 4030 IF ch%=&D AND icon%=9 THEN 4040 PROCmouse_click(0,0,4,tuning%,15,0):p%=FALSE 4050 ELSE 4060 IF ch%=&18F OR ch%=&18E OR ch%=&D THEN 4070 IF icon%=6 PROCcaret(tuning%,9) ELSE PROCcaret(tuning%,6) 4080 p%=FALSE 4090 ENDIF 4100 ENDIF 4110 : 4120 WHEN main% 4130 s%=FNshortcuts 4140 IF ch%>96 AND ch%<123 ch%=ch%-32 4150 k%=INSTR(keymap$,CHR$(ch%)) 4160 IF k%>0 THEN 4170 IF keydown%=&FF THEN 4180 PROCmouse_click(0,0,4,main%,36-k%,TRUE) 4190 keydown%=36-k%:mask%=&80032 4200 ENDIF 4210 IF keydown%<>&FF AND (36-k%<>keydown%) THEN 4220 PROCdecode_drag 4230 PROCmouse_click(0,0,4,main%,36-k%,TRUE) 4240 keydown%=36-k%:mask%=&80032 4250 ENDIF 4260 ELSE 4270 IF s%=FALSE p%=TRUE 4280 ENDIF 4290 ENDCASE 4300 IF p% SYS "Wimp_ProcessKey",ch% 4310 ENDPROC 4320 4330 DEFFNshortcuts 4340 LOCAL a%:a%=TRUE 4350 CASE ch% OF 4360 WHEN &183 4370 PROCsetsavefield 4380 PROCget_pointer_info 4390 SYS "Wimp_CreateMenu",,savebox%,mousex%,mousey% 4400 WHEN 127,24 4410 IF FNicons_selected>0 AND next%>0 THEN 4420 SYS "Hourglass_On" 4430 PROCentire_list(2):PROCcheckchange(FALSE) 4440 PROCentire_list(3) 4450 PROCfirst_items(TRUE,FALSE,samplist%) 4460 PROCupdatevoicelist 4470 SYS "Hourglass_Off" 4480 ENDIF 4490 WHEN 26 4500 PROCentire_list(1) 4510 PROCfirst_items(TRUE,FALSE,samplist%) 4520 WHEN 1 4530 PROCentire_list(0) 4540 PROCfirst_items(FALSE,FALSE,samplist%) 4550 WHEN 19 4560 IF sampopen%=FALSE sampopen%=TRUE:winmenu%!444=FNSpecItem(sampopen%,winmenu%!444,0) 4570 PROCpopup_window(samples%,0) 4580 WHEN 3 4590 PROCpopup_window(con%,0) 4600 IF controls%=FALSE controls%=TRUE:winmenu%!420=FNSpecItem(controls%,winmenu%!420,0) 4610 WHEN 22 4620 PROCget_pointer_info 4630 curmenu%=vlmenu%:cmx%=mousex%:cmy%=mousey% 4640 PROCupdatevoicelist:PROCshowmenu 4650 WHEN 9 4660 PROCentire_list(5) 4670 PROCupdatevoicelist 4680 WHEN 18 4690 PROCentire_list(6) 4700 PROCupdatevoicelist 4710 WHEN 20 4720 PROCget_pointer_info 4730 SYS "Wimp_CreateMenu",,tuning%,mousex%,mousey% 4740 OTHERWISE 4750 a%=FALSE 4760 ENDCASE 4770 =a% 4780 4790 DEFPROCsetsavefield 4800 LOCAL t$,a$ 4810 PROCget_window_info(main%) 4820 IF (blk%!80 AND %100000000)=0 ERROR 1,"Window title bar is not indirected" 4830 t$=$(blk%!76) 4840 IF changed% t$=LEFT$(t$,LENt$-2) 4850 IF LEFT$(t$,8)="Keyboard" PROCset_icon(savebox%,2,"SampleList") ELSE PROCset_icon(savebox%,2,t$) 4860 ENDPROC 4870 4880 DEFPROCcaret(han%,i%) 4890 LOCAL a% 4900 a%=LEN($FNiconaddr(han%,i%)) 4910 SYS "Wimp_SetCaretPosition",han%,i%,0,0,-1,a% 4920 ENDPROC 4930 4940 DEFPROCset_icon(han%,i%,value$) 4950 LOCAL A% 4960 A%=FNiconaddr(han%,i%) 4970 $A%=value$ 4980 PROCupdate_icon(han%,i%,0,0) 4990 SYS "Wimp_GetCaretPosition",,blk% 5000 IF !blk%=han% AND blk%!4=i% THEN 5010 A%=LEN value$ 5020 SYS "Wimp_SetCaretPosition",han%,i%,,,-1,A% 5030 ENDIF 5040 ENDPROC 5050 5060 DEFPROCupdate_icon(han%,i%,e%,c%) 5070 blk%!0=han%:blk%!4=i% 5080 blk%!8=e%:blk%!12=c% 5090 SYS "Wimp_SetIconState",,blk% 5100 ENDPROC 5110 5120 DEFFNiconaddr(h%,i%) 5130 PROCget_icon_state(h%,i%) 5140 IF (blk%!24 AND %100000000)=0 ERROR 1,"Icon is not indirected" 5150 =blk%!28 5160 5170 DEFFNicontext(h%,i%) 5180 PROCget_icon_state(h%,i%) 5190 IF (blk%!24 AND %100000000)=1 ERROR 1,"Icon is indirected" 5200 =$(blk%+28) 5210 5220 DEFPROCclose_window(han%) 5230 !blk%=han% 5240 SYS "Wimp_CloseWindow",,blk% 5250 CASE han% OF 5260 WHEN main%: mainopen%=FALSE:ifneeded%=TRUE 5270 WHEN con% 5280 controls%=FALSE 5290 winmenu%!420=FNSpecItem(controls%,winmenu%!420,0) 5300 WHEN samples% 5310 PROCclose_window(samplist%):sampopen%=FALSE 5320 winmenu%!444=FNSpecItem(sampopen%,winmenu%!444,0) 5330 ENDCASE 5340 ENDPROC 5350 5360 DEFPROCclosedown 5370 LOCAL N%,a% 5380 IF next%>0 THEN 5390 FOR N%=0 TO next%-1 5400 IF ?(code%+&9D0+N%)>0 PROCremove_sample(N%) 5410 NEXT 5420 ENDIF 5430 IF samplebase%>0 SYS "OS_Module",7,,samplebase% 5440 IF code%>0 SYS "OS_Module",7,,code% 5450 SYS "Hourglass_Smash" 5460 SYS "Wimp_CloseDown" 5470 ENDPROC 5480 5490 DEFFNmenutree(menus%,voicelist%) 5500 LOCAL N%,N2%,next%,menustart%,treestart%,text$,maxlen%,menuptr% 5510 menuptr%=mdatastart% 5520 treestart%=menuptr% 5530 FOR N%=1 TO menus% 5540 menustart%=menuptr% 5550 READ text$:IF LEN text$>12 ERROR 1,"Menu title too long" 5560 $menuptr%=text$:maxlen%=LEN text$ 5570 menuptr%?12=7:menuptr%?13=2:menuptr%?14=7:menuptr%?15=0 5580 menuptr%!20=44:menuptr%!24=0:menuptr%+=28 5590 count%=0 5600 READ next% 5610 FOR N2%=1 TO next% 5620 PROCmenuitem:NEXT 5630 menuptr%!-24=(menuptr%!-24) OR &80 5640 menustart%!16=(maxlen%*16)+14 5650 NEXT 5660 IF voicelist%=FALSE THEN 5670 mdatastart%=menuptr% 5680 ELSE 5690 IF count%=0 winmenu%!108=FNSpecItem(TRUE,winmenu%!108,22) ELSE winmenu%!108=FNSpecItem(FALSE,winmenu%!108,22) 5700 mv%(count%)=0 5710 ENDIF 5720 IF mdatastart%>menudata%+&600 ERROR 1,"Menu data area full" 5730 PROClinks(treestart%,mdatastart%-treestart%) 5740 =treestart% 5750 5760 DEFPROCmenuitem 5770 LOCAL text$,flag%,it%,f% 5780 IF voicelist% THEN 5790 SYS "Sound_InstallVoice",0,N2% TO f% 5800 IF f%<>0 SYS "Sound_InstallVoice",0,N2% TO text$ 5810 IF f%<>0 THEN 5820 mv%(count%)=N2%:count%+=1 5830 ELSE 5840 IF (N2%=32 AND count%=0) text$="****":f%=0 ELSE ENDPROC 5850 ENDIF 5860 ELSE 5870 READ text$,flag% 5880 ENDIF 5890 menuptr%!0=0:menuptr%!4=-1:menuptr%!8=&07000021 5900 IF voicelist% THEN 5910 PROCmenu_text(text$,menuptr%,2) 5920 ELSE 5930 PROCmenu_text(text$,menuptr%,0) 5940 ENDIF 5950 IF flag% AND 2 !menuptr%=2 AND %111 5960 IF flag% AND 1 !menuptr%=FNSpecItem(TRUE,!menuptr%,0) 5970 IF flag% AND 4 menuptr%!8=FNSpecItem(TRUE,menuptr%!8,22) 5980 menuptr%+=24 5990 ENDPROC 6000 6010 DEFPROCmenu_text(t$,mptr%,p%) 6020 LOCAL s% 6030 IF LEN t$>21 t$=LEFT$(t$,21) 6040 IF LEN t$<12 THEN 6050 $(mptr%+12)=t$ 6060 mptr%!8=mptr%!8 AND NOT &100 6070 ELSE 6080 CASE p% OF 6090 WHEN 1: s%=fmitem% 6100 WHEN 2: s%=vlstart%:vlstart%+=(LENt$+1) 6110 OTHERWISE: s%=FNtextspace(LENt$+1) 6120 ENDCASE 6130 $s%=t$ 6140 mptr%!12=s%:mptr%!16=-1:mptr%!20=LENt$+1 6150 mptr%!8=mptr%!8 OR &100 6160 ENDIF 6170 IF LEN t$>maxlen% maxlen%=LEN t$ 6180 ENDPROC 6190 6200 DEFFNtextspace(L%) 6210 bufstart%+=L% 6220 IF bufstart%>(buf%+&1000) ERROR 1,"Buffer space full" 6230 =bufstart%-L% 6240 6250 DEFPROClinks(datastart%,len%) 6260 LOCAL ptr1%,ptr2%,nolinks%,N%,startmenu$,item%,destobj$ 6270 READ nolinks%:IF nolinks%=0 ENDPROC 6280 FOR N%=1 TO nolinks% 6290 READ startmenu$,item%,destobj$ 6300 ptr1%=FNmenustart(startmenu$,datastart%-1) 6310 ptr1%+=28:ptr1%+=(item%*24) 6320 IF LEFT$(destobj$,1)="#"THEN 6330 ptr1%!4=EVAL(RIGHT$(destobj$,(LENdestobj$-1))) 6340 ELSE 6350 ptr2%=FNmenustart(destobj$,datastart%-1) 6360 ptr1%!4=ptr2% 6370 ENDIF 6380 NEXT 6390 ENDPROC 6400 6410 DEFFNmenustart(m$,p%) 6420 REPEAT:p%+=1 6430 IF p%>(datastart%+len%) ERROR 1,"Failed to link menu" 6440 UNTIL $p%=m$ AND p%?12=7 AND p%?13=2 AND p%?14=7 AND p%?15=0:=p% 6450 6460 DEFPROCshowmenu 6470 SYS "Wimp_CreateMenu",,curmenu%,cmx%,cmy% 6480 rdmenu%=0 6490 ENDPROC 6500 6510 DEFPROCdecode_menu(mselect%) 6520 LOCAL p%,a%,v$:redrawreq%=TRUE 6530 SYS "Wimp_DecodeMenu",,curmenu%,mselect%,mst% 6540 IF (!mselect%=3 AND mselect%!4<>-1) OR curmenu%=vlmenu% THEN 6550 IF curmenu%=vlmenu% p%=!mselect% ELSE p%=mselect%!4 6560 IF p%<0 OR p%>32 ENDPROC 6570 SYS "Sound_InstallVoice",0,mv%(p%) TO a% 6580 IF a%<>0 SYS "Sound_InstallVoice",0,mv%(p%) TO v$ ELSE SYS "Sound_InstallVoice",0,1 TO v$ 6590 curvoice$=v$ 6600 IF a%=0 vlsel%=p%:PROCupdatevoicelist:PROCmenuredraw:PROCreport_err("Voice not found",100,ERL):ENDPROC 6610 vlmenu%!(28+(vlsel%*24))=FNSpecItem(FALSE,vlmenu%!(28+(vlsel%*24)),0) 6620 vlmenu%!(28+(p%*24))=FNSpecItem(TRUE,vlmenu%!(28+(p%*24)),0) 6630 vlsel%=p%:suneeded%=TRUE 6640 PROCcheckchange(TRUE) 6650 ENDIF 6660 CASE $mst% OF 6670 WHEN "Options.Controls... ^C" 6680 PROCpopup_window(con%,0) 6690 IF controls%=FALSE controls%=TRUE:winmenu%!420=FNSpecItem(controls%,winmenu%!420,0) 6700 WHEN "Options.Samples... ^S" 6710 IF sampopen%=FALSE sampopen%=TRUE:winmenu%!444=FNSpecItem(sampopen%,winmenu%!444,0) 6720 PROCpopup_window(samples%,0) 6730 ENDCASE 6740 CASE FNleafname($mst%) OF 6750 WHEN "Quit" 6760 IF changed%=TRUE PROCmessage_box(1):redrawreq%=FALSE ELSE finish%=TRUE 6770 WHEN "Select all" 6780 PROCentire_list(0) 6790 PROCfirst_items(FALSE,FALSE,samplist%) 6800 WHEN "Clear ^Z" 6810 PROCentire_list(1) 6820 PROCfirst_items(TRUE,FALSE,samplist%) 6830 WHEN "Auto install" 6840 IF autoinst%=TRUE autoinst%=FALSE ELSE autoinst%=TRUE 6850 winmenu%!348=FNSpecItem(autoinst%,winmenu%!348,0) 6860 PROCcheckchange(TRUE) 6870 WHEN "Save choices" 6880 IF savechoices%=TRUE savechoices%=FALSE ELSE savechoices%=TRUE 6890 winmenu%!372=FNSpecItem(savechoices%,winmenu%!372,0) 6900 WHEN "Stand alone" 6910 IF salone%=TRUE salone%=FALSE ELSE salone%=TRUE 6920 winmenu%!396=FNSpecItem(salone%,winmenu%!396,0) 6930 WHEN "Delete ^X" 6940 SYS "Hourglass_On" 6950 PROCentire_list(2):PROCcheckchange(FALSE) 6960 PROCentire_list(3) 6970 PROCfirst_items(TRUE,FALSE,samplist%) 6980 PROCupdatevoicelist 6990 SYS "Hourglass_Off" 7000 WHEN "Install ^I" 7010 PROCentire_list(5) 7020 PROCupdatevoicelist 7030 PROCselection_items 7040 PROCset_icon(sampinfo%,12,"Yes") 7050 WHEN "Remove ^R" 7060 PROCentire_list(6) 7070 PROCupdatevoicelist 7080 PROCselection_items 7090 PROCset_icon(sampinfo%,12,"No") 7100 ENDCASE 7110 PROCmenuredraw 7120 ENDPROC 7130 7140 DEFPROCmenuredraw 7150 PROCget_pointer_info:IF (mbut% AND 1) THEN 7160 IF redrawreq%=TRUE PROCshowmenu 7170 ELSE 7180 redrawreq%=TRUE 7190 ENDIF 7200 ENDPROC 7210 7220 DEFPROCupdatevoicelist 7230 LOCAL voice$ 7240 RESTORE 1630:vlstart%=vlistblk% 7250 vlmenu%=FNmenutree(1,TRUE) 7260 IF count%=0 vlsel%=0:curvoice$="":ENDPROC 7270 vlsel%=-1:REPEAT:vlsel%+=1 7280 SYS "Sound_InstallVoice",0,mv%(vlsel%) TO voice$ 7290 UNTIL voice$=curvoice$ OR mv%(vlsel%)=0 OR vlsel%>=31 7300 IF vlsel%>(count%-1) vlsel%=0:curvoice$="" 7310 vlmenu%!(28+(vlsel%*24))=FNSpecItem(TRUE,vlmenu%!(28+(vlsel%*24)),0) 7320 suneeded%=TRUE 7330 ENDPROC 7340 7350 DEFPROCget_pointer_info 7360 SYS "Wimp_GetPointerInfo",,blk% 7370 mousex%=!blk%:mousey%=blk%!4:mbut%=blk%!8:mhan%=blk%!12:micon%=blk%!16 7380 ENDPROC 7390 7400 DEFPROCreport_err(r$,e%,el%) 7410 LOCAL flag%,text$ 7420 IF scrap%<>0 SYS "XOS_File",6,"<Wimp$Scrap>":scrap%=0 7430 !blk%=e% 7440 : 7450 $(blk%+4)=r$+CHR$0:finish%=FALSE 7460 text$="Keyboard":flag%=%1 7470 : 7480 IF e%>=0 AND e%<=127 THEN 7490 $(blk%+4)="Fatal internal error: "+r$+" (internal error code "+STR$e%+") "+CHR$0 7500 text$="Keyboard":flag%=%1:finish%=TRUE 7510 ENDIF 7520 : 7530 IF e%=100 THEN 7540 $(blk%+4)=r$+CHR$0:finish%=FALSE 7550 flag%=%10001:text$="Message from Keyboard" 7560 ENDIF 7570 : 7580 SYS "OS_Byte",&C9,keystat%,0 7590 SYS "Wimp_ReportError",blk%,flag%,text$ 7600 ENDPROC 7610 7620 DEFFNSpecItem(t%,w%,bit%) 7630 IF t% THEN 7640 =w% OR (1<<bit%) 7650 ELSE 7660 =w% AND NOT (1<<bit%) 7670 ENDIF 7680 7690 DEFFNcreate_window(a$,c%) 7700 LOCAL han%,a% 7710 SYS "Wimp_LoadTemplate",,blk%,bufstart%,buf%+&1000,-1,a$,0 TO ,,bufstart%,,,,a% 7720 IF a%=0 ERROR 1,"Template '"+a$+"' not found" 7730 IF c% blk%!64=sprites% 7740 SYS "Wimp_CreateWindow",,blk% TO han% 7750 =han% 7760 7770 DEFPROCopen_window 7780 IF !blk%=samples% THEN 7790 LOCAL mx0%,mx1%,my0%,my1%,mb% 7800 mx0%=blk%!4:mx1%=blk%!12:my0%=blk%!8:my1%=blk%!16:mb%=blk%!28 7810 PROCsubwindow(samplist%,90,mb%) 7820 !blk%=samples%:blk%!4=mx0%:blk%!12=mx1%:blk%!8=my0%:blk%!16=my1%:blk%!28=samplist% 7830 ENDIF 7840 SYS "Wimp_OpenWindow",,blk% 7850 ENDPROC 7860 7870 DEFPROCget_window_state(han%) 7880 !blk%=han%:SYS "Wimp_GetWindowState",,blk% 7890 x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16:wf%=blk%!28 7900 ENDPROC 7910 7920 DEFPROCget_window_info(han%) 7930 !blk%=han%:SYS "Wimp_GetWindowInfo",,blk% 7940 x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16 7950 ENDPROC 7960 7970 DEFPROCget_window_outline(han%) 7980 !blk%=han%:SYS "Wimp_GetWindowOutline",,blk% 7990 x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16 8000 ENDPROC 8010 8020 DEFPROCget_icon_state(han%,icon%) 8030 !blk%=han%:blk%!4=icon%:SYS "Wimp_GetIconState",,blk% 8040 ENDPROC 8050 8060 DEFPROCsubwindow(han%,y%,bhan%) 8070 LOCAL w%,h% 8080 PROCget_window_state(han%) 8090 w%=x1%-x0%:h%=y1%-y0% 8100 !blk%=han%:blk%!4=mx0%+(((mx1%-mx0%)-(w%+40))/2) 8110 blk%!8=my0%+y%:blk%!12=blk%!4+w%:blk%!16=blk%!8+h%:blk%!28=bhan% 8120 PROCopen_window 8130 ENDIF 8140 ENDPROC 8150 8160 DEFFNiconbar 8170 LOCAL iconhan% 8180 $bufstart%="!keyboard" 8190 !blk%=-1:blk%!4=0:blk%!8=0:blk%!12=68:blk%!16=68 8200 blk%!20=%11000100000010:blk%!24=bufstart%:blk%!28=1:blk%!32=9 8210 bufstart%+=10 8220 SYS "Wimp_CreateIcon",,blk% TO iconhan% 8230 =iconhan% 8240 8250 DEFPROCdecode_drag 8260 LOCAL e%:e%=FALSE 8270 IF dragbar%=0 AND keydown%=&FF THEN 8280 LOCAL f$:f$=FNleafname($FNiconaddr(savebox%,2)) 8290 PROCget_pointer_info 8300 CASE mhan% OF 8310 WHEN savebox%,main%,con%,samplist%,samples%: e%=TRUE 8320 ENDCASE 8330 IF micon%=kiconbar% OR e%=TRUE ENDPROC 8340 !blk%=56:blk%!12=0:blk%!16=1:blk%!20=mhan%:blk%!24=micon% 8350 blk%!28=mousex%:blk%!32=mousey%:blk%!36=1024:blk%!40=&10C 8360 $(blk%+44)=f$+CHR$0 8370 SYS "Wimp_SendMessage",17,blk%,mhan%,micon% 8380 saveref%=blk%!8 8390 ENDIF 8400 IF keydown%<&FF THEN 8410 PROCupdate_icon(main%,keydown%,%1<<21,0) 8420 keydown%=&FF 8430 ENDIF 8440 IF dragbar%<>0 volume%=-(((dragbar%-12)DIV 23)-2):dragbar%=0:mask%=&80033 8450 ENDPROC 8460 8470 DEFPROCpopup_window(han%,a%) 8480 LOCAL wwidth%,wheight%,cx%,cy% 8490 PROCget_window_info(han%) 8500 cx%=(swidth% DIV 2) 8510 cy%=(sheight% DIV 2) 8520 CASE a% OF 8530 WHEN 1 8540 wwidth%=(blk%!52-blk%!44) DIV 2:wheight%=(blk%!56-blk%!48) DIV 2 8550 x0%=cx%-wwidth%-20:x1%=cx%+wwidth%-20 8560 y0%=cy%-wheight%:y1%=cy%+wheight% 8570 WHEN 2 8580 wwidth%=(x1%-x0%) DIV 2:wheight%=(y1%-y0%) DIV 2 8590 x0%=cx%-wwidth%:x1%=cx%+wwidth%:y0%=cy%-wheight%:y1%=cy%+wheight% 8600 ENDCASE 8610 !blk%=han%:blk%!28=-1:blk%!4=x0%:blk%!8=y0%:blk%!12=x1%:blk%!16=y1% 8620 PROCopen_window 8630 ENDPROC 8640 8650 DEFPROCgetmodeinfo 8660 LOCAL Hi%,Vi% 8670 mblk%!0=0:mblk%!4=1:mblk%!8=2:mblk%!12=3:mblk%!16=4:mblk%!20=5 8680 mblk%!24=11:mblk%!28=12:mblk%!32=-1 8690 SYS "OS_ReadVduVariables",mblk%,blk% 8700 Hi%=1<<(blk%!16):Vi%=1<<(blk%!20) 8710 swidth%=Hi%*((blk%!24)+1)-2:sheight%=Vi%*((blk%!28)+1)-4 8720 ENDPROC 8730 8740 DEFPROCsetsoundsys 8750 LOCAL i% 8760 PROCsetvars 8770 SYS "Sound_AttachVoice",chan%,mv%(vlsel%) TO i% 8780 IF i%=0 ERROR 1,"Illegal voice number" 8790 IF salone% VOICES chan% 8800 ENDPROC 8810 8820 DEFPROCsetvars 8830 chan%=VAL($FNiconaddr(con%,32)) 8840 oct%=VAL($FNiconaddr(con%,23)) 8850 trans%=VAL($FNiconaddr(con%,26)) 8860 dura%=VAL($FNiconaddr(con%,31)) 8870 IF oct%>4 OR oct%<-4 PROCreport_err("Value for octave out of range",100,ERL):oct%=0:PROCset_icon(con%,23,STR$(oct%)) 8880 IF dura%>255 PROCreport_err("Value for duration out of range",100,ERL):dura%=20:PROCset_icon(con%,31,STR$(dura%)) 8890 IF trans%>11 OR trans%<-11 PROCreport_err("Value for transpose out of range",100,ERL):trans%=0:PROCset_icon(con%,26,STR$(trans%)) 8900 IF chan%>8 OR chan%<1 PROCreport_err("Sound channel number out of range",100,ERL):chan%=1:PROCset_icon(con%,32,STR$(chan%)) 8910 ENDPROC 8920 8930 DEFPROCtogglechars 8940 SYS "Hourglass_On" 8950 IF showkeys%=TRUE THEN 8960 FOR N%=36 TO 70:PROCupdate_icon(main%,N%,0,1):NEXT 8970 showkeys%=FALSE 8980 ELSE 8990 FOR N%=36 TO 70:PROCupdate_icon(main%,N%,1,1):NEXT 9000 showkeys%=TRUE 9010 ENDIF 9020 SYS "Hourglass_Off" 9030 ENDPROC 9040 9050 DEFPROCgetif 9060 IF ifneeded% THEN 9070 SYS "Wimp_SetCaretPosition",main%,-1,,,%1<<25 9080 ifneeded%=FALSE 9090 ENDIF 9100 ENDPROC 9110 9120 DEFPROCupdate_title(han%,a%,t$) 9130 LOCAL b% 9140 PROCget_window_info(han%) 9150 IF (blk%!80 AND %100000000)=0 ERROR 1,"Window title bar is not indirected" 9160 IF LEN t$>blk%!84 ERROR 1,"Indirected area insufficient for data" 9170 b%=blk%!76 9180 CASE a% OF 9190 WHEN 0: $b%=t$ 9200 WHEN 1: $b%="Keyboard: "+t$ 9210 WHEN 2: $b%=$b%+" *" 9220 ENDCASE 9230 IF mainopen% SYS "Wimp_ForceRedraw",-1,x0%,y1%,x1%,y1%+40 9240 ENDPROC 9250 9260 DEFFNleafname(f$) 9270 LOCAL i%:REPEAT:i%=INSTR(f$,"."):IF i%<>0 f$=MID$(f$,i%+1):UNTIL i%=0 9280 =f$ 9290 9300 DEFPROCkeyboarddataout(fname$,u%) 9310 LOCAL N%,A%,svol%,sspeaker%,V$,e% 9320 IF INSTR(fname$,".")=0 AND u%=TRUE PROCreport_err("To save, drag the file icon to a directory viewer",100,ERL):ENDPROC 9330 svol%=0:sspeaker%=0:sstereo%()=0 9340 e%=0:WHILE mv%(e%)<>0:e%+=1:ENDWHILE 9350 SYS "Hourglass_On" 9360 A%=OPENOUT(fname$) 9370 PRINT# A%,"Keyboard" 9380 PRINT# A%,version$ 9390 BPUT# A%,savechoices% 9400 IF savechoices%=TRUE THEN 9410 BPUT# A%,autoinst% 9420 BPUT# A%,oct% 9430 BPUT# A%,trans% 9440 BPUT# A%,chan% 9450 BPUT# A%,dura% 9460 BPUT# A%,showkeys% 9470 BPUT# A%,volume% 9480 BPUT# A%,vlsel% 9490 PRINT# A%,tunoct% 9500 PRINT# A%,tunsemi% 9510 BPUT# A%,svol% 9520 BPUT# A%,sspeaker% 9530 FOR N%=0 TO 7 9540 BPUT# A%,sstereo%(N%):NEXT 9550 BPUT# A%,salone% 9560 FOR N%=0 TO 6 9570 BPUT# A%,0:NEXT 9580 ELSE 9590 FOR N%=0 TO 30 9600 BPUT# A%,0:NEXT 9610 ENDIF 9620 BPUT# A%,next% 9630 IF next%<>0 THEN 9640 FOR N%=1 TO next% 9650 PRINT# A%,pathname$(N%-1) 9660 PRINT# A%,type%(N%-1) 9670 BPUT# A%,?(code%+&9D0+N%-1) 9680 NEXT 9690 ENDIF 9700 CLOSE# A% 9710 OSCLI("Settype "+fname$+" 10C") 9720 IF u% THEN 9730 PROCupdate_title(main%,0,fname$) 9740 changed%=FALSE 9750 ENDIF 9760 SYS "Hourglass_Off" 9770 ENDPROC 9780 9790 DEFPROCdrag_icon(mx%,my%,han%,icon%) 9800 LOCAL ix0%,ix1%,iy0%,iy1%,b% 9810 IF han%<>savebox% ENDPROC 9820 PROCget_pointer_info:IF mbut%=2 ENDPROC 9830 menubut%=mbut%:PROCget_window_info(han%) 9840 PROCget_icon_state(han%,icon%) 9850 ix0%=blk%!8:iy0%=blk%!12:ix1%=blk%!16:iy1%=blk%!20:!blk%=han%:blk%!4=5 9860 blk%!8=x0%+ix0%:blk%!12=y1%+iy0%:blk%!16=x0%+ix1%:blk%!20=y1%+iy1% 9870 blk%!24=blk%!8-mx%:blk%!28=blk%!12-my%:blk%!32=swidth%+(blk%!16-mx%) 9880 blk%!36=sheight%+(blk%!20-my%) 9890 IF version%>=300 THEN 9900 SYS "OS_Byte",161,28 TO ,,b% 9910 IF b% AND 2 THEN 9920 SYS "XDragASprite_Start",197,1,"file_10c",blk%+8 9930 ELSE 9940 SYS "Wimp_DragBox",,blk% 9950 ENDIF 9960 ELSE 9970 SYS "Wimp_DragBox",,blk% 9980 ENDIF 9990 ENDPROC 10000 10010 DEFPROCload_file 10020 LOCAL len%,o%,modpresent%,modname$,loaded%:loaded%=TRUE 10030 SYS "Hourglass_On" 10040 IF filetype%<>&10C AND next%>=32 PROCreport_err("Can't load any more samples",100,ERL):ENDPROC 10050 SYS "OS_File",17,filename$ TO o%,,,,len% 10060 IF o%=0 ERROR 1,"File not found" 10070 IF FNfile_present(FNleafname(filename$),filetype%)=TRUE PROCreport_err("Sample name '"+FNleafname(filename$)+"' already present",100,ERL):ENDPROC 10080 CASE filetype% OF 10090 WHEN &FFA 10100 modname$=FNget_module_name(filename$) 10110 modpresent%=FNmodule_present(modname$) 10120 IF modpresent% PROCkill_module(modname$) 10130 PROCstoresamples(0,FNleafname(filename$)) 10140 OSCLI "RMLoad "+filename$ 10150 PROCstoresamples(32,FNleafname(filename$)) 10160 IF loaded%=FALSE AND modpresent%=FALSE PROCkill_module(modname$) 10170 IF scrap%<>0 OSCLI "Delete <Wimp$Scrap>":scrap%=0:filename$=leafname$ 10180 IF loaded% sampaddr%(next%)=0:PROCupdatesamparrays(len%,TRUE) 10190 PROCdataload_ack 10200 WHEN &DF9,&CB5,&ED0,&D3C,&FFD 10210 IF FNextend(len%)=FALSE THEN 10220 PROCload_sample(len%,TRUE) 10230 IF autoinst% PROCinstall_sample(next%-1) 10240 PROCdataload_ack 10250 ENDIF 10260 WHEN &10C 10270 PROCdataload_ack 10280 IF changed% PROCmessage_box(2) ELSE PROCkeyboarddatain(filename$) 10290 ENDCASE 10300 SYS "Hourglass_Off" 10310 ENDPROC 10320 10330 DEFPROCupdatesamparrays(len%,p%) 10340 IF p% pathname$(next%)=filename$:type%(next%)=filetype% 10350 size%(next%)=len% 10360 PROCupdatesamplist(FNleafname(filename$)) 10370 next%+=1 10380 PROCupdatesampicon(next%) 10390 PROCcheckchange(FALSE) 10400 ENDPROC 10410 10420 DEFPROCupdatesamplist(name$) 10430 IF LEN name$>11 ERROR 1,"Sample name too long" 10440 PROCget_window_state(samplist%) 10450 !blk%=samplist%:blk%!4=0:blk%!8=0-(next%*44)-44:blk%!12=x1%-x0%:blk%!16=0-(next%*44) 10460 blk%!20=&701B431:$(blk%+24)=name$ 10470 SYS "Wimp_CreateIcon",,blk% 10480 IF sampopen% SYS "Wimp_ForceRedraw",samplist%,0,(0-(next%*44)-44),x1%-x0%,(0-(next%*44)) 10490 IF (0-(next%*44)-44)<-(y1%-y0%) THEN 10500 !blk%=0:blk%!4=0-(next%*44)-44:blk%!8=x1%-x0%:blk%!12=0 10510 SYS "Wimp_SetExtent",samplist%,blk% 10520 ENDIF 10530 ENDPROC 10540 10550 DEFPROCentire_list(action%) 10560 LOCAL mask%,bmatch%,addr%,p%,n%:n%=0:addr%=blk%+256:p%=0 10570 mask%=%1<<21 10580 CASE action% OF 10590 WHEN 0,3: bmatch%=0 10600 WHEN 1,2,5,6: bmatch%=%1<<21 10610 ENDCASE 10620 SYS "Wimp_WhichIcon",samplist%,addr%,mask%,bmatch% 10630 : 10640 IF action%=2 OR action%=6 PROCmute 10650 : 10660 IF action%=2 THEN 10670 WHILE !addr%<>-1:addr%+=4:n%+=1:ENDWHILE 10680 IF n%=next% PROCdelete_all:action%=-1 10690 addr%=blk%+256 10700 ENDIF 10710 : 10720 IF action%>-1 THEN 10730 WHILE !addr%<>-1 10740 CASE action% OF 10750 WHEN 0: PROCupdate_icon(samplist%,!addr%,mask%,mask%) 10760 WHEN 1: PROCupdate_icon(samplist%,!addr%,0,mask%) 10770 WHEN 2: PROCdelete_sample(!addr%) 10780 WHEN 3: PROCrenumber_icon(!addr%) 10790 WHEN 5: PROCinstall_sample(!addr%) 10800 WHEN 6: PROCremove_sample(!addr%) 10810 ENDCASE 10820 addr%+=4 10830 ENDWHILE 10840 ENDIF 10850 IF action%=2 PROCreinitvoices 10860 IF action%=2 OR action%=-1 PROCupdatesampicon(next%) 10870 IF action%=2 OR action%=6 OR action%=-1 PROCrestore 10880 IF action%=3 THEN 10890 PROCget_window_state(samplist%) 10900 IF (0-(next%*44))<-(y1%-y0%) THEN 10910 !blk%=0:blk%!4=0-(next%*44):blk%!8=x1%-x0%:blk%!12=0 10920 ELSE 10930 !blk%=0:blk%!4=-(y1%-y0%):blk%!8=x1%-x0%:blk%!12=0 10940 ENDIF 10950 SYS "Wimp_SetExtent",samplist%,blk% 10960 IF sampopen% THEN 10970 SYS "Wimp_ForceRedraw",-1,x0%,y0%,x1%,y1% 10980 PROCget_window_info(samplist%):PROCopen_window 10990 ENDIF 11000 ENDIF 11010 ENDPROC 11020 11030 DEFPROCdelete_all 11040 IF next%=0 ENDPROC 11050 !blk%=samplist% 11060 FOR N%=0 TO next%-1 11070 blk%!4=N% 11080 SYS "Wimp_DeleteIcon",,blk% 11090 IF ?(code%+&9D0+N%)>0 PROCremove_sample(N%) 11100 NEXT 11110 pathname$()="":size%()=0:type%()=0:sampaddr%()=0 11120 IF samplebase%>0 SYS "OS_Module",7,,samplebase% 11130 next%=0:samplebase%=0:sampoffset%=0 11140 ENDPROC 11150 11160 DEFPROCupdateinfobox(icon%) 11170 LOCAL a$,b$,c$ 11180 PROCset_icon(sampinfo%,8,pathname$(icon%)) 11190 PROCset_icon(sampinfo%,7,STR$ size%(icon%)) 11200 b$=STR$ ~type%(icon%) 11210 CASE b$ OF 11220 WHEN "FFA": a$="Module" 11230 WHEN "DF9": a$="EMR" 11240 WHEN "CB5": a$="SoundTracker" 11250 WHEN "ED0": a$="DSEdit" 11260 WHEN "FFD": a$="Logarithmic" 11270 WHEN "D3C": a$="Armadeus" 11280 ENDCASE 11290 PROCset_icon(sampinfo%,3,a$) 11300 IF ?(code%+&9D0+icon%)>0 c$="Yes" ELSE c$="No" 11310 IF type%(icon%)=&FFA c$="Yes" 11320 PROCset_icon(sampinfo%,12,c$) 11330 PROCget_icon_state(sampinfo%,13) 11340 SYS "Wimp_DeleteIcon",,blk% 11350 blk%!4=sampinfo%:$(blk%+28)="file_"+b$ 11360 SYS "Wimp_CreateIcon",,blk%+4 11370 ENDPROC 11380 11390 DEFFNicons_selected 11400 LOCAL n%:n%=-1 11410 SYS "Wimp_WhichIcon",samplist%,blk%+128,%1<<21,%1<<21 11420 REPEAT:n%+=1:UNTIL !(blk%+128+(n%*4))=-1 11430 =n% 11440 11450 DEFPROCmessage_box(a%) 11460 PROCpopup_window(message%,2):maction%=a% 11470 PROCget_window_outline(message%) 11480 MOUSE RECTANGLE x0%,y0%,x1%-x0%-2,y1%-y0%-4 11490 SYS "OS_Byte",&C9,0,&FF TO ,keystat% 11500 SYS "OS_Byte",&C9,1,0 11510 ENDPROC 11520 11530 DEFPROCkeyboarddatain(f$) 11540 LOCAL f%,o%,l%,a$,b$,n%,A%,svol%,sspeaker%,e%,i%,s$,sk%,len% 11550 SYS "Hourglass_On" 11560 PROCclose_window(con%):PROCclose_window(samples%) 11570 PROCclose_window(main%) 11580 PROCmute:PROCdelete_all:PROCrestore 11590 sk%=showkeys% 11600 mv%()=0 11610 loadedvoices$()="" 11620 : 11630 A%=OPENIN(f$) 11640 INPUT# A%,a$ 11650 INPUT# A%,b$ 11660 savechoices%=FNnegative(BGET# A%) 11670 IF savechoices%=TRUE THEN 11680 autoinst%=FNnegative(BGET# A%) 11690 oct%=FNnegative(BGET# A%) 11700 trans%=FNnegative(BGET# A%) 11710 chan%=BGET# A% 11720 dura%=BGET# A% 11730 showkeys%=FNnegative(BGET# A%) 11740 volume%=FNnegative(BGET# A%) 11750 vlsel%=BGET# A% 11760 INPUT# A%,tunoct% 11770 INPUT# A%,tunsemi% 11780 svol%=BGET# A% 11790 sspeaker%=BGET# A% 11800 FOR n%=0 TO 7 11810 sstereo%(n%)=FNnegative(BGET# A%):NEXT 11820 salone%=FNnegative(BGET# A%) 11830 FOR n%=0 TO 6 11840 PTR# A%=PTR# A%+1:NEXT 11850 ELSE 11860 FOR n%=0 TO 30 11870 PTR# A%=PTR# A%+1:NEXT 11880 ENDIF 11890 i%=BGET# A% 11900 IF i%<>0 THEN 11910 FOR n%=1 TO i% 11920 INPUT# A%,s$ 11930 INPUT# A%,type%(n%-1) 11940 ?(slotblk%+n%-1)=BGET# A% 11950 pathname$(n%-1)=s$ 11960 NEXT 11970 ENDIF 11980 CLOSE# A% 11990 : 12000 PROCset_icon(tuning%,6,STR$(tunoct%)) 12010 PROCset_icon(tuning%,9,STR$(tunsemi%)) 12020 *Tuning 0 12030 OSCLI "Tuning "+STR$((tunoct%*4096)+(tunsemi%*341)) 12040 PROCupdatevoicelist 12050 : 12060 winmenu%!372=FNSpecItem(savechoices%,winmenu%!372,0) 12070 IF savechoices%=TRUE THEN 12080 winmenu%!348=FNSpecItem(autoinst%,winmenu%!348,0) 12090 winmenu%!396=FNSpecItem(salone%,winmenu%!396,0) 12100 PROCset_icon(con%,23,STR$(oct%)) 12110 PROCset_icon(con%,26,STR$(trans%)) 12120 PROCset_icon(con%,32,STR$(chan%)) 12130 PROCset_icon(con%,31,STR$(dura%)) 12140 IF sk% EOR showkeys%=TRUE THEN 12150 showkeys%=sk%:PROCtogglechars:PROCupdate_icon(con%,34,%1<<21,%0<<21) 12160 ENDIF 12170 PROCget_icon_state(con%,19) 12180 blk%!16=58-(23*volume%):SYS "Wimp_DeleteIcon",,blk% 12190 blk%!4=con%:SYS "Wimp_CreateIcon",,blk%+4 12200 ENDIF 12210 : 12220 IF i%>0 THEN 12230 f%=0:LOCAL ERROR 12240 FOR n%=1 TO i% 12250 ON ERROR LOCAL f%+=1:pathname$(n%-1)="":type%(n%-1)=0:GOTO 12310 12260 filename$=pathname$(n%-1):filetype%=type%(n%-1) 12270 SYS "XOS_File",17,filename$ TO o%,,,,len% 12280 IF o%=0 ERROR 100,"File not found" 12290 IF FNextend(len%)=TRUE ERROR 100,"Not enough room in RMA" 12300 PROCload_sample(len%,FALSE) 12310 NEXT 12320 RESTORE ERROR 12330 IF f%=1 PROCreport_err("Failed to load one sample",100,ERL) 12340 IF f%>1 PROCreport_err("Failed to load "+STR$f%+" samples",100,ERL) 12350 : 12360 f%=0:LOCAL ERROR 12370 FOR n%=0 TO i%-1 12380 ON ERROR LOCAL f%+=1:GOTO 12470 12390 o%=slotblk%?n% 12400 IF o%>0 THEN 12410 IF pathname$(n%)<>"" THEN 12420 IF FNinstall_in_slot(n%,o%)=FALSE ERROR 100,"Sample slot occupied" 12430 ELSE 12440 f%+=1 12450 ENDIF 12460 ENDIF 12470 NEXT 12480 RESTORE ERROR 12490 IF f%=1 PROCreport_err("Failed to install one sample",100,ERL) 12500 IF f%>1 PROCreport_err("Failed to install "+STR$f%+" samples",100,ERL) 12510 ENDIF 12520 : 12530 IF f$="<Wimp$Scrap>" f$=leafname$ 12540 PROCupdate_title(main%,0,f$) 12550 SYS "Wimp_GetCaretPosition",,blk% 12560 IF !blk%=-1 o%=TRUE ELSE o%=FALSE 12570 PROCpopup_window(main%,1):mainopen%=TRUE 12580 IF o% PROCgetif 12590 changed%=FALSE 12600 IF scrap%<>0 OSCLI "Delete <Wimp$Scrap>":scrap%=0 12610 SYS "Hourglass_Off" 12620 ENDPROC 12630 12640 DEFPROCdataload_ack 12650 messblk%!12=messblk%!8:messblk%!16=4 12660 SYS "Wimp_SendMessage",17,messblk%,messblk%!4 12670 ENDPROC 12680 12690 DEFPROCcheckchange(a%) 12700 IF a%=TRUE THEN 12710 IF savechoices%=TRUE THEN 12720 IF changed%=FALSE changed%=TRUE:PROCupdate_title(main%,2,"") 12730 ENDIF 12740 ELSE 12750 IF changed%=FALSE changed%=TRUE:PROCupdate_title(main%,2,"") 12760 ENDIF 12770 ENDPROC 12780 12790 DEFFNnegative(a%) 12800 IF a%>127 =(&FFFFFF00 OR a%) ELSE =a% 12810 12820 DEFPROCload_sample(len%,p%) 12830 LOCAL sft%,addr% 12840 sft%=FNset_sft(filetype%) 12850 IF scrap%<>0 filename$="<Wimp$Scrap>" 12860 IF sft%<1 OR sft%>7 ERROR 1,"Sample file type out of range" 12870 IF sampoffset% MOD 4<>0 ERROR 1,"Sample block not word aligned" 12880 SYS "Hourglass_On" 12890 addr%=samplebase%+sampoffset% 12900 OSCLI "Load "+filename$+" "+STR$~addr% 12910 CALL code%+&240,sft%,addr%,len% 12920 sampaddr%(next%)=sampoffset% 12930 sampoffset%+=len% 12940 sampoffset%=FNword_align(sampoffset%) 12950 IF scrap%<>0 OSCLI "Delete <Wimp$Scrap>":scrap%=0:filename$=leafname$ 12960 PROCupdatesamparrays(len%,p%) 12970 SYS "Hourglass_Off" 12980 ENDPROC 12990 13000 DEFPROCdelete_sample(i%) 13010 LOCAL a%,b%,icon%,len1%,len2%,saddr%,t%:icon%=i%-p% 13020 t%=type%(icon%):len1%=size%(icon%):saddr%=samplebase%+sampaddr%(icon%) 13030 IF t%<>&FFA AND ?(code%+&9D0+icon%)>0 CALL code%+&864,icon% 13040 IF t%=&FFA len1%=0 13050 len1%=FNword_align(len1%) 13060 IF icon%<(next%-1) THEN 13070 FOR a%=icon% TO next%-2 13080 IF t%<>&FFA AND len1%<>0 THEN 13090 IF type%(a%+1)<>&FFA AND size%(a%+1)<>0 THEN 13100 len2%=size%(a%+1):len2%=FNword_align(len2%) 13110 b%=samplebase%+sampaddr%(a%+1) 13120 CALL code%,b%,saddr%,len2% 13130 sampaddr%(a%)=saddr%-samplebase%:saddr%+=len2% 13140 ENDIF 13150 ELSE 13160 sampaddr%(a%)=sampaddr%(a%+1) 13170 ENDIF 13180 ?(code%+&9D0+a%)=?(code%+&9D0+a%+1):?(code%+&9D0+a%+1)=0 13190 pathname$(a%)=pathname$(a%+1) 13200 size%(a%)=size%(a%+1) 13210 type%(a%)=type%(a%+1) 13220 NEXT 13230 p%+=1 13240 ENDIF 13250 !blk%=samplist%:blk%!4=i%:SYS "Wimp_DeleteIcon",,blk% 13260 next%-=1:IF t%<>&FFA THEN 13270 t%=FNextend(-len1%):sampoffset%-=len1% 13280 IF sampoffset%<=0 SYS "OS_Module",7,,samplebase%:samplebase%=0:sampoffset%=0 13290 ENDIF 13300 ENDPROC 13310 13320 DEFPROCrenumber_icon(icon%) 13330 PROCget_icon_state(samplist%,icon%) 13340 blk%!12=0-(p%*44)-44:blk%!20=0-(p%*44) 13350 SYS "Wimp_DeleteIcon",,blk% 13360 blk%!4=samplist%:SYS "Wimp_CreateIcon",,blk%+4 13370 p%+=1 13380 ENDPROC 13390 13400 DEFFNfile_present(f$,t%) 13410 LOCAL N%,a%:a%=FALSE 13420 IF next%=0 OR t%=&10C =FALSE 13430 FOR N%=1 TO next% 13440 IF FNleafname(pathname$(N%-1))=f$ a%=TRUE 13450 NEXT 13460 =a% 13470 13480 DEFPROCupdatesampicon(i%) 13490 PROCset_icon(samples%,1,STR$i%) 13500 ENDPROC 13510 13520 DEFPROCstoresamples(offset%,c$) 13530 LOCAL a%,b%,a$,b$,c%,N%:c%=FALSE 13540 FOR N%=1 TO 32 13550 SYS "Sound_InstallVoice",0,N% TO f% 13560 IF f%<>0 SYS "Sound_InstallVoice",0,N% TO text$ ELSE text$="" 13570 IF LEN text$>32 text$=LEFT$(text$,32) 13580 $(blk%+(((N%-1)+offset%)*32))=text$ 13590 NEXT 13600 IF offset%=32 THEN 13610 FOR N%=0 TO 31 13620 a$=$(blk%+(N%*32)):b$=$(blk%+((N%+32)*32)) 13630 IF a$<>b$ c%=TRUE 13640 NEXT 13650 IF c%=FALSE loaded%=FALSE:PROCreport_err("Not a sample module",100,ERL) 13660 ENDIF 13670 ENDPROC 13680 13690 DEFFNget_module_name(path$) 13700 LOCAL a$,a%,b% 13710 a%=OPENIN path$ 13720 REPEAT:b%=BGET# a%:UNTIL PTR#a%=&10 13730 FOR N%=0 TO 3:blk%?N%=BGET# a%:NEXT 13740 PTR#a%=!blk% 13750 REPEAT:b%=BGET# a%:a$=a$+CHR$(b%):UNTIL b%=0 13760 a$=LEFT$(a$,LENa$-1) 13770 CLOSE# a% 13780 =a$ 13790 13800 DEFPROCkill_module(name$) 13810 IF FNmodule_present(name$)=TRUE OSCLI "RMKill "+name$ 13820 ENDPROC 13830 13840 DEFFNmodule_present(name$) 13850 LOCAL a%,b% 13860 *Set KeyboardTempVar Present 13870 OSCLI "RMEnsure "+name$+" 0 Set KeyboardTempVar NotPresent" 13880 SYS "OS_ReadVarVal","KeyboardTempVar",blk%,&1500,0,0 TO ,,a% 13890 ?(blk%+a%)=&D 13900 *Unset KeyboardTempVar 13910 IF $blk%="Present" =TRUE ELSE =FALSE 13920 13930 DEFFNset_sft(t%) 13940 LOCAL a% 13950 CASE t% OF 13960 WHEN &FFA:a%=1 13970 WHEN &DF9:a%=2 13980 WHEN &CB5:a%=3 13990 WHEN &ED0:a%=4 14000 WHEN &D3C:a%=6 14010 WHEN &FFD:a%=5 14020 ENDCASE 14030 =a% 14040 14050 DEFFNword_align(a%) 14060 WHILE a% MOD 4<>0:a%+=1:ENDWHILE:=a% 14070 14080 DEFPROCdesksave 14090 LOCAL N% 14100 ON ERROR LOCAL messblk%!12=messblk%!8:SYS "Wimp_SendMessage",19,messblk%,messblk%!4:PROCreport_err(REPORT$,ERR,ERL):ENDPROC 14110 SYS "XOS_ReadVarVal","Keyboard$Dir",blk%,&1500,0,3 TO ,,N% 14120 blk%?N%=13 14130 BPUT# messblk%!20,"Run "+$blk% 14140 ENDPROC 14150 14160 DEFPROCinstall_sample(i%) 14170 LOCAL a$,t%,addr%,a%:a%=0 14180 SYS "Sound_InstallVoice",0,0 TO ,a% 14190 IF a%=0 OR type%(i%)=&FFA ENDPROC 14200 IF ?(code%+&9D0+i%)=0 THEN 14210 a$=FNleafname(pathname$(i%)) 14220 t%=FNset_sft(type%(i%)) 14230 addr%=samplebase%+sampaddr%(i%) 14240 CALL code%+&8CC,a%,i%,a$,t%,addr%,size%(i%) 14250 t%=?(code%+&9D0+i%) 14260 IF t%=0 PROCreport_err("Failed to install sample",100,ERL) 14270 ENDIF 14280 ENDPROC 14290 14300 DEFPROCremove_sample(i%) 14310 IF type%(i%)=&FFA ENDPROC 14320 IF ?(code%+&9D0+i%)>0 THEN 14330 CALL code%+&864,i% 14340 ENDIF 14350 ENDPROC 14360 14370 DEFFNclaim(len%) 14380 LOCAL a%,N% 14390 SYS "XOS_Module",6,,,len% TO ,,a%;N% 14400 IF N% AND %0001 =0 14410 =a% 14420 14430 DEFFNextend(len%) 14440 LOCAL s%,N%,a%,i%:a%=samplebase% 14450 len%=FNword_align(len%) 14460 IF sampoffset%=0 THEN 14470 samplebase%=FNclaim(len%) 14480 IF samplebase%=0 PROCreport_err("Not enough room in RMA",100,ERL):=TRUE 14490 ELSE 14500 SYS "XOS_Module",13,,samplebase%,len% TO ,,samplebase%;N% 14510 IF N% AND %0001 PROCreport_err("Not enough room in RMA",100,ERL):=TRUE 14520 IF samplebase%<>a% PROCreinitvoices 14530 ENDIF 14540 =FALSE 14550 14560 DEFPROCreinitvoices 14570 LOCAL i%,s%,addr%,a$,a% 14580 FOR i%=0 TO 31 14590 s%=?(code%+&9D0+i%) 14600 IF s%>0 THEN 14610 CALL code%+&864,i% 14620 addr%=samplebase%+sampaddr%(i%) 14630 a$=FNleafname(pathname$(i%)):a%=FNset_sft(type%(i%)) 14640 CALL code%+&8CC,s%,i%,a$,a%,addr%,size%(i%) 14650 ENDIF 14660 NEXT 14670 ENDPROC 14680 14690 DEFFNinstall_in_slot(i%,s%) 14700 LOCAL addr%,a$,a% 14710 IF s%<1 OR s%>32 ERROR 1,"Voice slot number out of range" 14720 SYS "Sound_InstallVoice",0,s% TO a% 14730 IF a%<>0 =FALSE 14740 addr%=samplebase%+sampaddr%(i%) 14750 a$=FNleafname(pathname$(i%)):a%=FNset_sft(type%(i%)) 14760 CALL code%+&8CC,s%,i%,a$,a%,addr%,size%(i%) 14770 =TRUE 14780 14790 DEFFNcheck_list(action%) 14800 LOCAL n%,addr%,a%:n%=0:a%=0 14810 SYS "Wimp_WhichIcon",samplist%,blk%,%1<<21,%1<<21 14820 addr%=blk% 14830 REPEAT 14840 IF type%(!addr%)=&FFA THEN 14850 n%+=1 14860 ELSE 14870 CASE action% OF 14880 WHEN 0 14890 IF ?(code%+&9D0+!addr%)>0 n%+=1 14900 WHEN 1 14910 IF ?(code%+&9D0+!addr%)=0 n%+=1 14920 ENDCASE 14930 ENDIF 14940 addr%+=4:a%+=1:UNTIL !addr%=-1 14950 IF a%=n% =TRUE 14960 =FALSE 14970 14980 DEFPROCmute 14990 LOCAL v%,N% 15000 *Audio Off 15010 voice$()="" 15020 FOR N%=1 TO 8 15030 SYS "Sound_AttachVoice",N%,0 TO ,v% 15040 IF v%>0 SYS "Sound_InstallVoice",0,v% TO voice$(N%-1) 15050 NEXT 15060 ENDPROC 15070 15080 DEFPROCrestore 15090 LOCAL N% 15100 FOR N%=1 TO 8 15110 SYS "XSound_AttachNamedVoice",N%,voice$(N%-1) 15120 NEXT 15130 *Audio On 15140 ENDPROC
� >!RunImage (Keyboard) � by Thomas Daly � (c) AU May 1994 ( 2 �initall <3 � � �report_err(�$,�,�):� finish% �closedown:� F P � Z# ș "Wimp_Poll",mask%,blk% � A% d Ȏ A% � n � 0: x � keydown%<>&FF � � ș "OS_Byte",&7A � ,kcode% �8 � kcode%=&FF �decode_drag:mask%=&80033:keydown%=&FF � � � � dragbar%<>0 � � �get_pointer_info �+ � dragbar%=&FF �get_window_state(con%) �) dragbar%=(((mousex%-x0%)� 23)*23)+12 � � dragbar%<>olddragbar% � � �get_icon_state(con%,19) �0 blk%!16=dragbar%:ș "Wimp_DeleteIcon",,blk% �- blk%!4=con%:ș "Wimp_CreateIcon",,blk%+4 �C ș "Wimp_ForceRedraw",con%,blk%!8,blk%!12,(x1%-x0%)-20,blk%!20 � olddragbar%=dragbar% � � � 2:�open_window " � 3:�close_window(!blk%) ,< � 6:�mouse_click(!blk%,blk%!4,blk%!8,blk%!12,blk%!16,�) 6 � 7:�decode_drag @+ � 8:�key_pressed(!blk%,blk%!4,blk%!24) J � 9:�decode_menu(blk%) T/ � 11:� !blk%=main% ifneeded%=�:suneeded%=� ^# � 12:� !blk%=main% ifneeded%=� h � 17,18:�receive_mess r � | � finish% � �closedown:� � � ��receive_mess �/ � N%=0 � !blk%-1 � 4:messblk%!N%=blk%!N%:� � Ȏ blk%!16 � � � 0:finish%=� � � 1 � Ȏ blk%!40 � �) � &DF9,&CB5,&ED0,&D3C,&FFD,&FFA,&10C �4 ș "XOS_ReadVarVal","Wimp$Scrap",,-1,0,3 � ,,N% �9 � N%=0 �report_err("Wimp$Scrap not defined",100,�):� � leafname$=�string(blk%+44) �l � �file_present(leafname$,blk%!40)=� �report_err("Sample name '"+leafname$+"' already present",100,�):� 6 !messblk%=64:messblk%!12=messblk%!8:messblk%!16=2 4 messblk%!36=-1:$(messblk%+44)="<Wimp$Scrap>"+�0 1 ș "Wimp_SendMessage",17,messblk%,messblk%!4 & scrap%=messblk%!8 0 � : � 2 DB � blk%!12<>saveref% � 1,"Unexpected DataSave packet received" N@ � blk%!40<>&10C � 1,"Unexpected DataSave filetype received" X filename$=�string(blk%+44) b+ � menubut%<>1 ș "Wimp_CreateMenu",,-1 l menubut%=0 vP � blk%!36<>-1 �keyboarddataout(filename$,�) � �keyboarddataout(filename$,�) �) messblk%!12=messblk%!8:messblk%!16=3 �1 ș "Wimp_SendMessage",17,messblk%,messblk%!4 � � 3 �< filename$=�string(blk%+44):filetype%=blk%!40:�load_file � � 5 �H � blk%!40=&10C filename$=�string(blk%+44):filetype%=&10C:�load_file � � 8 � � changed% � �1 blk%!12=blk%!8:ș "Wimp_SendMessage",19,blk% � �message_box(3) � � � � 10:�desksave � � &400C1:�getmodeinfo � � ݤstring(a%) *. � d$:d$="":ȕ ?a%<>0:d$+=�?a%:a%+=1:�:=d$ 4 > ��initall H) � � �report_err(�$,�,�):�closedown:� R � N%,N2%,f$ \ ș "Hourglass_On" f= ș "Wimp_Initialise",200,&4B534154,"Keyboard" � version% p code%=0:samplebase%=0 z : �n � blk% &1000,buf% &1000,fmitem% 20,mst% 64,menudata% &600,mblk% 36,messblk% 256,slotblk% 31,vlistblk% 703 �< bufstart%=buf%:mdatastart%=menudata%:vlstart%=vlistblk% �7 version$="1.32 (16-Oct-93)":mask%=&80033:finish%=� �( controls%=�:sampopen%=�:mainopen%=� �5 ifneeded%=�:suneeded%=�:dragbar%=0:olddragbar%=0 �" x0%=0:x1%=0:y0%=0:y1%=0:wf%=0 �< mhan%=0:mousex%=0:mousey%=0:mbut%=0:micon%=0:menubut%=0 �+ menuwidth%=174:keystat%=0:redrawreq%=� � maction%=0 � : �T � pathname$(31),size%(31),type%(31),sampaddr%(31),sstereo%(7),loadedvoices$(31) �F filename$="":filetype%=0:next%=0:saveref%=0:leafname$="":scrap%=0 � : ( � mv%(32),pitchtable%(11),voice$(7) 3 chan%=1:oct%=0:vlsel%=0:keydown%=&FF:salone%=� @ dura%=20:trans%=0:volume%=-12:count%=0:tunoct%=0:tunsemi%=0 $= keymap$="ZSXDCVGBHNJMQ2W3ER5T6Y7UI9O0P[=]�\":showkeys%=� .* savechoices%=�:autoinst%=�:changed%=� 8 : B code%=�claim(&E00) L+ � code%=0 � 1,"Not enough room in RMA" V* � "Load <Keyboard$Dir>.Code "+�~code% ` : j$ � N%=0 � 11:� pitchtable%(N%):� tN � &4000,&4155,&42AA,&4400,&4555,&46AA,&4800,&49AA,&4AAA,&4C00,&4D55,&4EAA ~ : �3 N%=� "<Keyboard$Dir>.Sprites":N2%=�#N%+16:�#N% � � sprites% N2% � !sprites%=N2%:sprites%!8=1 �# ș "OS_SpriteOp",&109,sprites% �< ș "OS_SpriteOp",&10A,sprites%,"<Keyboard$Dir>.Sprites" � : � �getmodeinfo �7 ș "Wimp_OpenTemplate",,"<Keyboard$Dir>.Templates" �% con%=�create_window("Toolbox",�) �# main%=�create_window("Main",�) �# info%=�create_window("Info",�) �) samples%=�create_window("Samples",�) + samplist%=�create_window("SampList",�) & savebox%=�create_window("save",�) + sampinfo%=�create_window("SampInfo",�) ) message%=�create_window("Message",�) (' tuning%=�create_window("Tuning",�) 2 ș "Wimp_CloseTemplate" <! �set_icon(info%,11,version$) FM �set_icon(message%,0,"Are you sure? Your current choices are not saved") P winmenu%=�menutree(3,�) Z icmenu%=�menutree(1,�) d vlmenu%=�menutree(1,�) n �links(winmenu%,&600) x : � samplebase%=0:sampoffset%=0 � : �1 ș "Sound_InstallVoice",0,mv%(0) � curvoice$ � kiconbar%=�iconbar � �togglechars � ș "OS_GetEnv" � f$ �% � �f$," ",13)<>0 � �f$,1)<>" " � �- N%=� f$:ȕ �f$,N%,1)<>" " � N%>1:N%-=1:� �! �keyboarddatain(�f$,�f$-N%)) � � � ș "Hourglass_Off" � *Pointer � � L � Keyboard,6,Sample '',4,Select all,0,Save,0,Voice,0,Tuning,0,Options,0 M � Selection,5,Info,0,Delete ^X,0,Install ^I,0,Remove ^R,0,Clear ^Z,0 "` � Options,5,Auto install,1,Save choices,0,Stand alone,0,Controls... ^C,0,Samples... ^S,0 ,p � 5,Keyboard,0,Selection,Keyboard,2,#savebox%,Keyboard,4,#tuning%,Keyboard,5,Options,Selection,0,#sampinfo% 6 : @ � Keyboard,2,Info,0,Quit,0 J � 1,Keyboard,0,#info% T : ^ � Voice list,32 h � 0 r � 1,Keyboard,3,Voice list | �8 ��mouse_click(mousex%,mousey%,but%,han%,icon%,key%) � � pitch%,text$,i% � : � � but% � 2 � � Ȏ han% � � � -2 �. curmenu%=icmenu%:cmx%=mousex%-80:cmy%=184 � �showmenu �% � main%: �first_items(�,�,main%) �+ � samples%: �first_items(�,�,samples%) � � samplist% �1 � (next%>0 � icon%>-1) � �icons_selected<2 � � �entire_list(1) + �update_icon(han%,icon%,%1<<21,%1<<21) � �first_items(�,�,samplist%) & � 04 � han%=main% � han%=samplist% � han%=samples% � :# �updatevoicelist:�setsavefield D0 curmenu%=winmenu%:cmx%=mousex%:cmy%=mousey% N �showmenu X � b � l : v Ȏ han% � � � -2 � � but% � 4 � � � mainopen% � � �popup_window(main%,0) � � � i%=� �% ș "Wimp_GetCaretPosition",,blk% � � !blk%=-1 i%=� �' �popup_window(main%,1):mainopen%=� � � i% �getif � � � � � : � main% � but%=4 � but%=1 � � icon%=-1 �getif � * � icon%>=0 � 4# � icon%>35 icon%=35-(icon%-36) >. � but%=4 � keydown%=&FF � dragbar%<>&FF � H' �update_icon(main%,icon%,%1<<21,0) R �getif \) � suneeded% �setsoundsys:suneeded%=� f_ pitch%=pitchtable%((35-icon%)� 12)+(trans%*&156)+(&1000*((35-icon%)� 12))+((oct%-1)*&1000) p< � pitch%>0 � pitch%<=&7EAA � chan%,volume%,pitch%,dura% z keydown%=icon% � � � key% � �B blk%!4=7:blk%!24=0:blk%!28=0:blk%!32=swidth%:blk%!36=sheight% � ș "Wimp_DragBox",,blk% � � � � � � � : � � con% � � but%<>2 � � �checkchange(�) � � but%=1 � �& � icon% � 2=1 icon%-=1 � icon%+=1 � � �setvars:Ȏ icon% � � 21: oct%+=1:� oct%>=5 oct%=-4 $ �set_icon(con%,23,�(oct%)) . � 22: 8 oct%-=1:� oct%<=-5 oct%=4 B �set_icon(con%,23,�(oct%)) L � 24: V& trans%+=1:� trans%>=12 trans%=-11 `! �set_icon(con%,26,�(trans%)) j � 25: t& trans%-=1:� trans%<=-12 trans%=11 ~! �set_icon(con%,26,�(trans%)) � � 27: � chan%+=1:� chan%>=9 chan%=1 � �set_icon(con%,32,�(chan%)) � suneeded%=� � � 28: � chan%-=1:� chan%<=0 chan%=8 � �set_icon(con%,32,�(chan%)) � suneeded%=� � � 29: �" dura%+=5:� dura%>=256 dura%=0 � �set_icon(con%,31,�(dura%)) � � 30: ! dura%-=5:� dura%<0 dura%=255 �set_icon(con%,31,�(dura%)) � 20,34: �togglechars ( �update_icon(con%,34,%1<<21,%0<<21) ( � 18,19 2. �get_window_state(con%):�get_pointer_info <d � icon%=19 � (icon%=18 � (mousex%>x0%+46 � mousex%<x1%-46 � mousey%>y0%+62 � mousey%<y0%+86)) � FI blk%!4=7:blk%!24=x0%+56:blk%!28=y0%+66:blk%!32=x1%-56:blk%!36=y0%+82 P ș "Wimp_DragBox",,blk% Z dragbar%=&FF:mask%=&80032 d � n � x � � : � � samplist%,samples% � � but%=4 � but%=1 � �/ � icon%=-1 � han%=samples% �entire_list(1) � � � : � � savebox% � Ȏ icon% � �, � 0: � but%<>1 ș "Wimp_CreateMenu",,-1 �/ �keyboarddataout($�iconaddr(savebox%,2),�) �0 � 3: �drag_icon(mousex%,mousey%,savebox%,3) � � � : � tuning% � but%<>2 � % tunoct%=�($�iconaddr(tuning%,6)) "& tunsemi%=�($�iconaddr(tuning%,9)) , Ȏ icon% � 6 � 2 @' tunoct%+=1:� tunoct%>=4 tunoct%=-3 J$ �set_icon(tuning%,6,�(tunoct%)) T � 4 ^' tunoct%-=1:� tunoct%<=-4 tunoct%=3 h$ �set_icon(tuning%,6,�(tunoct%)) r � 13 |, tunsemi%+=1:� tunsemi%>=12 tunsemi%=-11 �% �set_icon(tuning%,9,�(tunsemi%)) � � 11 �, tunsemi%-=1:� tunsemi%<=-12 tunsemi%=11 �% �set_icon(tuning%,9,�(tunsemi%)) � � 15 � �checkchange(�) � *Tuning 0 �1 � "Tuning "+�((tunoct%*4096)+(tunsemi%*341)) �' � but%<>1 ș "Wimp_CreateMenu",,-1 � � � � � : � � message% �close_window(message%) ș "OS_Byte",&C9,keystat%,0 ȗ ȓ 0,0,swidth%,sheight% & � redrawreq%=� �showmenu 0 � icon%=2 � : Ȏ maction% � D � 1: finish%=� N% � 2: �keyboarddatain(filename$) X � 3 b changed%=� l& ș "Wimp_GetCaretPosition",,blk% v blk%!24=&1FC �- ș "Wimp_SendMessage",8,blk%,messblk%!4 � � � � � Ȏ maction% � �7 � 2: � scrap%<>0 � "Delete <Wimp$Scrap>":scrap%=0 � � � � � maction%=0 � � � � � � ��first_items(g1%,g2%,han%) � � a% " � g1%=� � �icons_selected=0 � * �menu_text("Sample ''",winmenu%+28,1) ! winmenu%!16=menuwidth%:g1%=� � * � han%<>main% � 4 � �icons_selected=1 � >9 ș "Wimp_WhichIcon",samplist%,blk%+128,%1<<21,%1<<21 H: text$="Sample '"+�icontext(samplist%,!(blk%+128))+"'" R$ �menu_text(text$,winmenu%+28,0) \ a%=((� text$)*16)+14 f< � a%>menuwidth% winmenu%!16=a% � winmenu%!16=menuwidth% p �updateinfobox(!(blk%+128)) z � �* �menu_text("Selection",winmenu%+28,0) � winmenu%!16=menuwidth% � � � �selection_items � � � � �. winmenu%!36=�SpecItem(g1%,winmenu%!36,22) �b � next%>0 winmenu%!60=�SpecItem(g2%,winmenu%!60,22) � winmenu%!60=�SpecItem(�,winmenu%!60,22) � � � � ��selection_items � � a%,b%,i%:a%=�:b%=�:i%=� �) � �check_list(0)=� � count%>=32 a%=� � �check_list(1)=� b%=� / winmenu%!256=�SpecItem(a%,winmenu%!256,22) / winmenu%!280=�SpecItem(b%,winmenu%!280,22) $ � �icons_selected>1 i%=� ./ winmenu%!208=�SpecItem(i%,winmenu%!208,22) 8 � B L ��menu_width(p%,len%) V1 � len%>16 !p%=(len%*16)+1F4 � !p%=(16*16)+14 ` � j t" ��key_pressed(han%,icon%,ch%) ~ � p%,k%,ci%,s%:p%=� �> � han%<>savebox% � han%<>tuning% ș "Wimp_CreateMenu",,-1 � : � Ȏ han% � � � con% � s%=�shortcuts � Ȏ ch% � � � &18F � Ȏ icon% � � � 23: ci%=31 � � 26: ci%=23 � � 32: ci%=26 � � 31: ci%=32 � �caret(con%,ci%) � &18E,&D Ȏ icon% � ( � 23: ci%=26 2 � 26: ci%=32 < � 32: ci%=31 F � 31: ci%=23 P � Z �caret(con%,ci%) d n � s%=� p%=� x � � : � � savebox% �5 � ch%=&D �mouse_click(0,0,4,savebox%,0,0) � p%=� � : � � tuning% � p%=� � � ch%=&D � icon%=9 � �+ �mouse_click(0,0,4,tuning%,15,0):p%=� � � �& � ch%=&18F � ch%=&18E � ch%=&D � �5 � icon%=6 �caret(tuning%,9) � �caret(tuning%,6) � p%=� � � � : � main% " s%=�shortcuts ," � ch%>96 � ch%<123 ch%=ch%-32 6 k%=�keymap$,�(ch%)) @ � k%>0 � J � keydown%=&FF � T& �mouse_click(0,0,4,main%,36-k%,�) ^ keydown%=36-k%:mask%=&80032 h � r* � keydown%<>&FF � (36-k%<>keydown%) � | �decode_drag �& �mouse_click(0,0,4,main%,36-k%,�) � keydown%=36-k%:mask%=&80032 � � � � � � s%=� p%=� � � � � �" � p% ș "Wimp_ProcessKey",ch% � � � � ݤshortcuts � � a%:a%=� � Ȏ ch% � � &183 �setsavefield �get_pointer_info &3 ș "Wimp_CreateMenu",,savebox%,mousex%,mousey% 0 � 127,24 :$ � �icons_selected>0 � next%>0 � D ș "Hourglass_On" N$ �entire_list(2):�checkchange(�) X �entire_list(3) b �first_items(�,�,samplist%) l �updatevoicelist v ș "Hourglass_Off" � � � � 26 � �entire_list(1) � �first_items(�,�,samplist%) � � 1 � �entire_list(0) � �first_items(�,�,samplist%) � � 19 �O � sampopen%=� sampopen%=�:winmenu%!444=�SpecItem(sampopen%,winmenu%!444,0) � �popup_window(samples%,0) � � 3 � �popup_window(con%,0) �O � controls%=� controls%=�:winmenu%!420=�SpecItem(controls%,winmenu%!420,0) � 22 �get_pointer_info / curmenu%=vlmenu%:cmx%=mousex%:cmy%=mousey% �updatevoicelist:�showmenu * � 9 4 �entire_list(5) > �updatevoicelist H � 18 R �entire_list(6) \ �updatevoicelist f � 20 p �get_pointer_info z2 ș "Wimp_CreateMenu",,tuning%,mousex%,mousey% � � a%=� � � � =a% � � ��setsavefield � � t$,a$ � �get_window_info(main%) �H � (blk%!80 � %100000000)=0 � 1,"Window title bar is not indirected" � t$=$(blk%!76) � � changed% t$=�t$,�t$-2) �V � �t$,8)="Keyboard" �set_icon(savebox%,2,"SampleList") � �set_icon(savebox%,2,t$) � � ��caret(han%,i%) � a% $ a%=�($�iconaddr(han%,i%)) .1 ș "Wimp_SetCaretPosition",han%,i%,0,0,-1,a% 8 � B L ��set_icon(han%,i%,value$) V � A% ` A%=�iconaddr(han%,i%) j $A%=value$ t �update_icon(han%,i%,0,0) ~% ș "Wimp_GetCaretPosition",,blk% � � !blk%=han% � blk%!4=i% � � A%=� value$ �/ ș "Wimp_SetCaretPosition",han%,i%,,,-1,A% � � � � � �! ��update_icon(han%,i%,e%,c%) � blk%!0=han%:blk%!4=i% � blk%!8=e%:blk%!12=c% �! ș "Wimp_SetIconState",,blk% � � � ݤiconaddr(h%,i%) �get_icon_state(h%,i%) < � (blk%!24 � %100000000)=0 � 1,"Icon is not indirected" =blk%!28 ( 2 ݤicontext(h%,i%) < �get_icon_state(h%,i%) F8 � (blk%!24 � %100000000)=1 � 1,"Icon is indirected" P =$(blk%+28) Z d ��close_window(han%) n !blk%=han% x ș "Wimp_CloseWindow",,blk% � Ȏ han% � �% � main%: mainopen%=�:ifneeded%=� � � con% � controls%=� �5 winmenu%!420=�SpecItem(controls%,winmenu%!420,0) � � samples% �) �close_window(samplist%):sampopen%=� �5 winmenu%!444=�SpecItem(sampopen%,winmenu%!444,0) � � � � � � ��closedown � � N%,a% � next%>0 � � N%=0 � next%-1 , � ?(code%+&9D0+N%)>0 �remove_sample(N%) " � , � 62 � samplebase%>0 ș "OS_Module",7,,samplebase% @& � code%>0 ș "OS_Module",7,,code% J ș "Hourglass_Smash" T ș "Wimp_CloseDown" ^ � h r" ݤmenutree(menus%,voicelist%) |@ � N%,N2%,next%,menustart%,treestart%,text$,maxlen%,menuptr% � menuptr%=mdatastart% � treestart%=menuptr% � � N%=1 � menus% � menustart%=menuptr% �3 � text$:� � text$>12 � 1,"Menu title too long" �$ $menuptr%=text$:maxlen%=� text$ �< menuptr%?12=7:menuptr%?13=2:menuptr%?14=7:menuptr%?15=0 �. menuptr%!20=44:menuptr%!24=0:menuptr%+=28 � count%=0 � � next% � � N2%=1 � next% � �menuitem:� �& menuptr%!-24=(menuptr%!-24) � &80 " menustart%!16=(maxlen%*16)+14 � � voicelist%=� � & mdatastart%=menuptr% 0 � :e � count%=0 winmenu%!108=�SpecItem(�,winmenu%!108,22) � winmenu%!108=�SpecItem(�,winmenu%!108,22) D mv%(count%)=0 N � X; � mdatastart%>menudata%+&600 � 1,"Menu data area full" b. �links(treestart%,mdatastart%-treestart%) l =treestart% v � ��menuitem � � text$,flag%,it%,f% � � voicelist% � �( ș "Sound_InstallVoice",0,N2% � f% �3 � f%<>0 ș "Sound_InstallVoice",0,N2% � text$ � � f%<>0 � � mv%(count%)=N2%:count%+=1 � � �1 � (N2%=32 � count%=0) text$="****":f%=0 � � � � � � � � text$,flag% � � 4 menuptr%!0=0:menuptr%!4=-1:menuptr%!8=&07000021 � voicelist% � ! �menu_text(text$,menuptr%,2) � *! �menu_text(text$,menuptr%,0) 4 � ># � flag% � 2 !menuptr%=2 � %111 H3 � flag% � 1 !menuptr%=�SpecItem(�,!menuptr%,0) R6 � flag% � 4 menuptr%!8=�SpecItem(�,menuptr%!8,22) \ menuptr%+=24 f � p z ��menu_text(t$,mptr%,p%) � � s% � � � t$>21 t$=�t$,21) � � � t$<12 � � $(mptr%+12)=t$ � mptr%!8=mptr%!8 � � &100 � � � Ȏ p% � � � 1: s%=fmitem% �( � 2: s%=vlstart%:vlstart%+=(�t$+1) � : s%=�textspace(�t$+1) � � � $s%=t$ �, mptr%!12=s%:mptr%!16=-1:mptr%!20=�t$+1 mptr%!8=mptr%!8 � &100 � � � t$>maxlen% maxlen%=� t$ $ � . 8 ݤtextspace(L%) B bufstart%+=L% L5 � bufstart%>(buf%+&1000) � 1,"Buffer space full" V =bufstart%-L% ` j ��links(datastart%,len%) t8 � ptr1%,ptr2%,nolinks%,N%,startmenu$,item%,destobj$ ~ � nolinks%:� nolinks%=0 � � � N%=1 � nolinks% � � startmenu$,item%,destobj$ �. ptr1%=�menustart(startmenu$,datastart%-1) � ptr1%+=28:ptr1%+=(item%*24) � � �destobj$,1)="#"� �( ptr1%!4=�(�destobj$,(�destobj$-1))) � � �, ptr2%=�menustart(destobj$,datastart%-1) � ptr1%!4=ptr2% � � � � � � ݤmenustart(m$,p%) �:p%+=1 5 � p%>(datastart%+len%) � 1,"Failed to link menu" (9 � $p%=m$ � p%?12=7 � p%?13=2 � p%?14=7 � p%?15=0:=p% 2 < ��showmenu F- ș "Wimp_CreateMenu",,curmenu%,cmx%,cmy% P rdmenu%=0 Z � d n ��decode_menu(mselect%) x � p%,a%,v$:redrawreq%=� �1 ș "Wimp_DecodeMenu",,curmenu%,mselect%,mst% �: � (!mselect%=3 � mselect%!4<>-1) � curmenu%=vlmenu% � �4 � curmenu%=vlmenu% p%=!mselect% � p%=mselect%!4 � � p%<0 � p%>32 � �+ ș "Sound_InstallVoice",0,mv%(p%) � a% �V � a%<>0 ș "Sound_InstallVoice",0,mv%(p%) � v$ � ș "Sound_InstallVoice",0,1 � v$ � curvoice$=v$ �Y � a%=0 vlsel%=p%:�updatevoicelist:�menuredraw:�report_err("Voice not found",100,�):� �E vlmenu%!(28+(vlsel%*24))=�SpecItem(�,vlmenu%!(28+(vlsel%*24)),0) �= vlmenu%!(28+(p%*24))=�SpecItem(�,vlmenu%!(28+(p%*24)),0) � vlsel%=p%:suneeded%=� � �checkchange(�) � � Ȏ $mst% � � "Options.Controls... ^C" �popup_window(con%,0) "O � controls%=� controls%=�:winmenu%!420=�SpecItem(controls%,winmenu%!420,0) , � "Options.Samples... ^S" 6O � sampopen%=� sampopen%=�:winmenu%!444=�SpecItem(sampopen%,winmenu%!444,0) @ �popup_window(samples%,0) J � T Ȏ �leafname($mst%) � ^ � "Quit" h: � changed%=� �message_box(1):redrawreq%=� � finish%=� r � "Select all" | �entire_list(0) � �first_items(�,�,samplist%) � � "Clear ^Z" � �entire_list(1) � �first_items(�,�,samplist%) � � "Auto install" �, � autoinst%=� autoinst%=� � autoinst%=� �5 winmenu%!348=�SpecItem(autoinst%,winmenu%!348,0) � �checkchange(�) � � "Save choices" �5 � savechoices%=� savechoices%=� � savechoices%=� �8 winmenu%!372=�SpecItem(savechoices%,winmenu%!372,0) � � "Stand alone" �& � salone%=� salone%=� � salone%=� 3 winmenu%!396=�SpecItem(salone%,winmenu%!396,0) � "Delete ^X" ș "Hourglass_On" &$ �entire_list(2):�checkchange(�) 0 �entire_list(3) : �first_items(�,�,samplist%) D �updatevoicelist N ș "Hourglass_Off" X � "Install ^I" b �entire_list(5) l �updatevoicelist v �selection_items �" �set_icon(sampinfo%,12,"Yes") � � "Remove ^R" � �entire_list(6) � �updatevoicelist � �selection_items �! �set_icon(sampinfo%,12,"No") � � � �menuredraw � � � � ��menuredraw �& �get_pointer_info:� (mbut% � 1) � � � redrawreq%=� �showmenu � redrawreq%=� � � * 4 ��updatevoicelist > � voice$ H � �D^F:vlstart%=vlistblk% R vlmenu%=�menutree(1,�) \' � count%=0 vlsel%=0:curvoice$="":� f vlsel%=-1:�:vlsel%+=1 p3 ș "Sound_InstallVoice",0,mv%(vlsel%) � voice$ z4 � voice$=curvoice$ � mv%(vlsel%)=0 � vlsel%>=31 �. � vlsel%>(count%-1) vlsel%=0:curvoice$="" �E vlmenu%!(28+(vlsel%*24))=�SpecItem(�,vlmenu%!(28+(vlsel%*24)),0) � suneeded%=� � � � � ��get_pointer_info �# ș "Wimp_GetPointerInfo",,blk% �K mousex%=!blk%:mousey%=blk%!4:mbut%=blk%!8:mhan%=blk%!12:micon%=blk%!16 � � � � ��report_err(r$,e%,el%) � � flag%,text$ �8 � scrap%<>0 ș "XOS_File",6,"<Wimp$Scrap>":scrap%=0 !blk%=e% : $(blk%+4)=r$+�0:finish%=� $ text$="Keyboard":flag%=%1 . : 8 � e%>=0 � e%<=127 � BO $(blk%+4)="Fatal internal error: "+r$+" (internal error code "+�e%+") "+�0 L( text$="Keyboard":flag%=%1:finish%=� V � ` : j � e%=100 � t $(blk%+4)=r$+�0:finish%=� ~/ flag%=%10001:text$="Message from Keyboard" � � � : � ș "OS_Byte",&C9,keystat%,0 �+ ș "Wimp_ReportError",blk%,flag%,text$ � � � � ݤSpecItem(t%,w%,bit%) � � t% � � =w% � (1<<bit%) � � � =w% � � (1<<bit%) � � ݤcreate_window(a$,c%) � han%,a% R ș "Wimp_LoadTemplate",,blk%,bufstart%,buf%+&1000,-1,a$,0 � ,,bufstart%,,,,a% (- � a%=0 � 1,"Template '"+a$+"' not found" 2 � c% blk%!64=sprites% <( ș "Wimp_CreateWindow",,blk% � han% F =han% P Z ��open_window d � !blk%=samples% � n � mx0%,mx1%,my0%,my1%,mb% xB mx0%=blk%!4:mx1%=blk%!12:my0%=blk%!8:my1%=blk%!16:mb%=blk%!28 �! �subwindow(samplist%,90,mb%) �W !blk%=samples%:blk%!4=mx0%:blk%!12=mx1%:blk%!8=my0%:blk%!16=my1%:blk%!28=samplist% � � � ș "Wimp_OpenWindow",,blk% � � � � ��get_window_state(han%) �. !blk%=han%:ș "Wimp_GetWindowState",,blk% �> x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16:wf%=blk%!28 � � � � ��get_window_info(han%) �- !blk%=han%:ș "Wimp_GetWindowInfo",,blk% 2 x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16 � " ��get_window_outline(han%) ,0 !blk%=han%:ș "Wimp_GetWindowOutline",,blk% 62 x0%=blk%!4:y0%=blk%!8:x1%=blk%!12:y1%=blk%!16 @ � J T! ��get_icon_state(han%,icon%) ^9 !blk%=han%:blk%!4=icon%:ș "Wimp_GetIconState",,blk% h � r | ��subwindow(han%,y%,bhan%) � � w%,h% � �get_window_state(han%) � w%=x1%-x0%:h%=y1%-y0% �5 !blk%=han%:blk%!4=mx0%+(((mx1%-mx0%)-(w%+40))/2) �E blk%!8=my0%+y%:blk%!12=blk%!4+w%:blk%!16=blk%!8+h%:blk%!28=bhan% � �open_window � � � � � � ݤiconbar � � iconhan% � $bufstart%="!keyboard" �5 !blk%=-1:blk%!4=0:blk%!8=0:blk%!12=68:blk%!16=68 B blk%!20=%11000100000010:blk%!24=bufstart%:blk%!28=1:blk%!32=9 bufstart%+=10 * ș "Wimp_CreateIcon",,blk% � iconhan% & =iconhan% 0 : ��decode_drag D � e%:e%=� N" � dragbar%=0 � keydown%=&FF � X. � f$:f$=�leafname($�iconaddr(savebox%,2)) b �get_pointer_info l Ȏ mhan% � v3 � savebox%,main%,con%,samplist%,samples%: e%=� � � � � micon%=kiconbar% � e%=� � �> !blk%=56:blk%!12=0:blk%!16=1:blk%!20=mhan%:blk%!24=micon% �> blk%!28=mousex%:blk%!32=mousey%:blk%!36=1024:blk%!40=&10C � $(blk%+44)=f$+�0 �/ ș "Wimp_SendMessage",17,blk%,mhan%,micon% � saveref%=blk%!8 � � � � keydown%<&FF � �* �update_icon(main%,keydown%,%1<<21,0) � keydown%=&FF � � �K � dragbar%<>0 volume%=-(((dragbar%-12)� 23)-2):dragbar%=0:mask%=&80033 ! � ! ! ��popup_window(han%,a%) ! � wwidth%,wheight%,cx%,cy% !* �get_window_info(han%) !4 cx%=(swidth% � 2) !> cy%=(sheight% � 2) !H Ȏ a% � !R � 1 !\A wwidth%=(blk%!52-blk%!44) � 2:wheight%=(blk%!56-blk%!48) � 2 !f* x0%=cx%-wwidth%-20:x1%=cx%+wwidth%-20 !p& y0%=cy%-wheight%:y1%=cy%+wheight% !z � 2 !�1 wwidth%=(x1%-x0%) � 2:wheight%=(y1%-y0%) � 2 !�F x0%=cx%-wwidth%:x1%=cx%+wwidth%:y0%=cy%-wheight%:y1%=cy%+wheight% !� � !�H !blk%=han%:blk%!28=-1:blk%!4=x0%:blk%!8=y0%:blk%!12=x1%:blk%!16=y1% !� �open_window !� � !� !� ��getmodeinfo !� � Hi%,Vi% !�C mblk%!0=0:mblk%!4=1:mblk%!8=2:mblk%!12=3:mblk%!16=4:mblk%!20=5 !�( mblk%!24=11:mblk%!28=12:mblk%!32=-1 !�( ș "OS_ReadVduVariables",mblk%,blk% !�& Hi%=1<<(blk%!16):Vi%=1<<(blk%!20) "= swidth%=Hi%*((blk%!24)+1)-2:sheight%=Vi%*((blk%!28)+1)-4 " � " "$ ��setsoundsys ". � i% "8 �setvars "B2 ș "Sound_AttachVoice",chan%,mv%(vlsel%) � i% "L& � i%=0 � 1,"Illegal voice number" "V � salone% Ƞ chan% "` � "j "t ��setvars "~! chan%=�($�iconaddr(con%,32)) "� oct%=�($�iconaddr(con%,23)) "�" trans%=�($�iconaddr(con%,26)) "�! dura%=�($�iconaddr(con%,31)) "�l � oct%>4 � oct%<-4 �report_err("Value for octave out of range",100,�):oct%=0:�set_icon(con%,23,�(oct%)) "�j � dura%>255 �report_err("Value for duration out of range",100,�):dura%=20:�set_icon(con%,31,�(dura%)) "�y � trans%>11 � trans%<-11 �report_err("Value for transpose out of range",100,�):trans%=0:�set_icon(con%,26,�(trans%)) "�s � chan%>8 � chan%<1 �report_err("Sound channel number out of range",100,�):chan%=1:�set_icon(con%,32,�(chan%)) "� � "� "� ��togglechars "� ș "Hourglass_On" "� � showkeys%=� � # . � N%=36 � 70:�update_icon(main%,N%,0,1):� # showkeys%=� # � #. � N%=36 � 70:�update_icon(main%,N%,1,1):� #( showkeys%=� #2 � #< ș "Hourglass_Off" #F � #P #Z ��getif #d � ifneeded% � #n1 ș "Wimp_SetCaretPosition",main%,-1,,,%1<<25 #x ifneeded%=� #� � #� � #� #� ��update_title(han%,a%,t$) #� � b% #� �get_window_info(han%) #�H � (blk%!80 � %100000000)=0 � 1,"Window title bar is not indirected" #�? � � t$>blk%!84 � 1,"Indirected area insufficient for data" #� b%=blk%!76 #� Ȏ a% � #� � 0: $b%=t$ #� � 1: $b%="Keyboard: "+t$ #� � 2: $b%=$b%+" *" $ � $< � mainopen% ș "Wimp_ForceRedraw",-1,x0%,y1%,x1%,y1%+40 $ � $" $, ݤleafname(f$) $63 � i%:�:i%=�f$,"."):� i%<>0 f$=�f$,i%+1):� i%=0 $@ =f$ $J $T! ��keyboarddataout(fname$,u%) $^" � N%,A%,svol%,sspeaker%,V$,e% $he � �fname$,".")=0 � u%=� �report_err("To save, drag the file icon to a directory viewer",100,�):� $r% svol%=0:sspeaker%=0:sstereo%()=0 $| e%=0:ȕ mv%(e%)<>0:e%+=1:� $� ș "Hourglass_On" $� A%=�(fname$) $� �# A%,"Keyboard" $� �# A%,version$ $� �# A%,savechoices% $� � savechoices%=� � $� �# A%,autoinst% $� �# A%,oct% $� �# A%,trans% $� �# A%,chan% $� �# A%,dura% $� �# A%,showkeys% $� �# A%,volume% % �# A%,vlsel% % �# A%,tunoct% % �# A%,tunsemi% %& �# A%,svol% %0 �# A%,sspeaker% %: � N%=0 � 7 %D �# A%,sstereo%(N%):� %N �# A%,salone% %X � N%=0 � 6 %b �# A%,0:� %l � %v � N%=0 � 30 %� �# A%,0:� %� � %� �# A%,next% %� � next%<>0 � %� � N%=1 � next% %� �# A%,pathname$(N%-1) %� �# A%,type%(N%-1) %� �# A%,?(code%+&9D0+N%-1) %� � %� � %� �# A% %� �("Settype "+fname$+" 10C") %� � u% � &" �update_title(main%,0,fname$) & changed%=� & � & ș "Hourglass_Off" &* � &4 &>$ ��drag_icon(mx%,my%,han%,icon%) &H � ix0%,ix1%,iy0%,iy1%,b% &R � han%<>savebox% � &\" �get_pointer_info:� mbut%=2 � &f* menubut%=mbut%:�get_window_info(han%) &p �get_icon_state(han%,icon%) &zK ix0%=blk%!8:iy0%=blk%!12:ix1%=blk%!16:iy1%=blk%!20:!blk%=han%:blk%!4=5 &�G blk%!8=x0%+ix0%:blk%!12=y1%+iy0%:blk%!16=x0%+ix1%:blk%!20=y1%+iy1% &�I blk%!24=blk%!8-mx%:blk%!28=blk%!12-my%:blk%!32=swidth%+(blk%!16-mx%) &�# blk%!36=sheight%+(blk%!20-my%) &� � version%>=300 � &� ș "OS_Byte",161,28 � ,,b% &� � b% � 2 � &�5 ș "XDragASprite_Start",197,1,"file_10c",blk%+8 &� � &� ș "Wimp_DragBox",,blk% &� � &� � &� ș "Wimp_DragBox",,blk% &� � ' � ' ' ��load_file '$5 � len%,o%,modpresent%,modname$,loaded%:loaded%=� '. ș "Hourglass_On" '8U � filetype%<>&10C � next%>=32 �report_err("Can't load any more samples",100,�):� 'B+ ș "OS_File",17,filename$ � o%,,,,len% 'L � o%=0 � 1,"File not found" 'V� � �file_present(�leafname(filename$),filetype%)=� �report_err("Sample name '"+�leafname(filename$)+"' already present",100,�):� '` Ȏ filetype% � 'j � &FFA 't) modname$=�get_module_name(filename$) '~* modpresent%=�module_present(modname$) '�) � modpresent% �kill_module(modname$) '�* �storesamples(0,�leafname(filename$)) '� � "RMLoad "+filename$ '�+ �storesamples(32,�leafname(filename$)) '�7 � loaded%=� � modpresent%=� �kill_module(modname$) '�E � scrap%<>0 � "Delete <Wimp$Scrap>":scrap%=0:filename$=leafname$ '�; � loaded% sampaddr%(next%)=0:�updatesamparrays(len%,�) '� �dataload_ack '� � &DF9,&CB5,&ED0,&D3C,&FFD '� � �extend(len%)=� � '� �load_sample(len%,�) '�) � autoinst% �install_sample(next%-1) ( �dataload_ack ( � ( � &10C ( �dataload_ack ((< � changed% �message_box(2) � �keyboarddatain(filename$) (2 � (< ș "Hourglass_Off" (F � (P (Z ��updatesamparrays(len%,p%) (d; � p% pathname$(next%)=filename$:type%(next%)=filetype% (n size%(next%)=len% (x* �updatesamplist(�leafname(filename$)) (� next%+=1 (� �updatesampicon(next%) (� �checkchange(�) (� � (� (� ��updatesamplist(name$) (�, � � name$>11 � 1,"Sample name too long" (�! �get_window_state(samplist%) (�Y !blk%=samplist%:blk%!4=0:blk%!8=0-(next%*44)-44:blk%!12=x1%-x0%:blk%!16=0-(next%*44) (�& blk%!20=&701B431:$(blk%+24)=name$ (� ș "Wimp_CreateIcon",,blk% (�[ � sampopen% ș "Wimp_ForceRedraw",samplist%,0,(0-(next%*44)-44),x1%-x0%,(0-(next%*44)) (�% � (0-(next%*44)-44)<-(y1%-y0%) � )< !blk%=0:blk%!4=0-(next%*44)-44:blk%!8=x1%-x0%:blk%!12=0 )' ș "Wimp_SetExtent",samplist%,blk% ) � )" � ), )6 ��entire_list(action%) )@9 � mask%,bmatch%,addr%,p%,n%:n%=0:addr%=blk%+256:p%=0 )J mask%=%1<<21 )T Ȏ action% � )^ � 0,3: bmatch%=0 )h � 1,2,5,6: bmatch%=%1<<21 )r � )|6 ș "Wimp_WhichIcon",samplist%,addr%,mask%,bmatch% )� : )�" � action%=2 � action%=6 �mute )� : )� � action%=2 � )�# ȕ !addr%<>-1:addr%+=4:n%+=1:� )�& � n%=next% �delete_all:action%=-1 )� addr%=blk%+256 )� � )� : )� � action%>-1 � )� ȕ !addr%<>-1 )� Ȏ action% � )�4 � 0: �update_icon(samplist%,!addr%,mask%,mask%) *0 � 1: �update_icon(samplist%,!addr%,0,mask%) * � 2: �delete_sample(!addr%) * � 3: �renumber_icon(!addr%) *&! � 5: �install_sample(!addr%) *0 � 6: �remove_sample(!addr%) *: � *D addr%+=4 *N � *X � *b � action%=2 �reinitvoices *l4 � action%=2 � action%=-1 �updatesampicon(next%) *v2 � action%=2 � action%=6 � action%=-1 �restore *� � action%=3 � *�! �get_window_state(samplist%) *�" � (0-(next%*44))<-(y1%-y0%) � *�9 !blk%=0:blk%!4=0-(next%*44):blk%!8=x1%-x0%:blk%!12=0 *� � *�7 !blk%=0:blk%!4=-(y1%-y0%):blk%!8=x1%-x0%:blk%!12=0 *� � *�' ș "Wimp_SetExtent",samplist%,blk% *� � sampopen% � *�- ș "Wimp_ForceRedraw",-1,x0%,y0%,x1%,y1% *�- �get_window_info(samplist%):�open_window *� � *� � + � + + ��delete_all + � next%=0 � +* !blk%=samplist% +4 � N%=0 � next%-1 +> blk%!4=N% +H ș "Wimp_DeleteIcon",,blk% +R, � ?(code%+&9D0+N%)>0 �remove_sample(N%) +\ � +f5 pathname$()="":size%()=0:type%()=0:sampaddr%()=0 +p2 � samplebase%>0 ș "OS_Module",7,,samplebase% +z( next%=0:samplebase%=0:sampoffset%=0 +� � +� +� ��updateinfobox(icon%) +� � a$,b$,c$ +�, �set_icon(sampinfo%,8,pathname$(icon%)) +�* �set_icon(sampinfo%,7,� size%(icon%)) +� b$=� ~type%(icon%) +� Ȏ b$ � +� � "FFA": a$="Module" +� � "DF9": a$="EMR" +� � "CB5": a$="SoundTracker" +� � "ED0": a$="DSEdit" +� � "FFD": a$="Logarithmic" , � "D3C": a$="Armadeus" , � , �set_icon(sampinfo%,3,a$) ,$/ � ?(code%+&9D0+icon%)>0 c$="Yes" � c$="No" ,.! � type%(icon%)=&FFA c$="Yes" ,8 �set_icon(sampinfo%,12,c$) ,B" �get_icon_state(sampinfo%,13) ,L ș "Wimp_DeleteIcon",,blk% ,V+ blk%!4=sampinfo%:$(blk%+28)="file_"+b$ ,`! ș "Wimp_CreateIcon",,blk%+4 ,j � ,t ,~ ݤicons_selected ,� � n%:n%=-1 ,�9 ș "Wimp_WhichIcon",samplist%,blk%+128,%1<<21,%1<<21 ,�$ �:n%+=1:� !(blk%+128+(n%*4))=-1 ,� =n% ,� ,� ��message_box(a%) ,�* �popup_window(message%,2):maction%=a% ,�" �get_window_outline(message%) ,�& ȗ ȓ x0%,y0%,x1%-x0%-2,y1%-y0%-4 ,�' ș "OS_Byte",&C9,0,&FF � ,keystat% ,� ș "OS_Byte",&C9,1,0 ,� � - - ��keyboarddatain(f$) -= � f%,o%,l%,a$,b$,n%,A%,svol%,sspeaker%,e%,i%,s$,sk%,len% - ș "Hourglass_On" -(0 �close_window(con%):�close_window(samples%) -2 �close_window(main%) -< �mute:�delete_all:�restore -F sk%=showkeys% -P mv%()=0 -Z loadedvoices$()="" -d : -n A%=�(f$) -x �# A%,a$ -� �# A%,b$ -�" savechoices%=�negative(�# A%) -� � savechoices%=� � -� autoinst%=�negative(�# A%) -� oct%=�negative(�# A%) -� trans%=�negative(�# A%) -� chan%=�# A% -� dura%=�# A% -� showkeys%=�negative(�# A%) -� volume%=�negative(�# A%) -� vlsel%=�# A% -� �# A%,tunoct% -� �# A%,tunsemi% . svol%=�# A% . sspeaker%=�# A% . � n%=0 � 7 ."$ sstereo%(n%)=�negative(�# A%):� ., salone%=�negative(�# A%) .6 � n%=0 � 6 .@ �# A%=�# A%+1:� .J � .T � n%=0 � 30 .^ �# A%=�# A%+1:� .h � .r i%=�# A% .| � i%<>0 � .� � n%=1 � i% .� �# A%,s$ .� �# A%,type%(n%-1) .� ?(slotblk%+n%-1)=�# A% .� pathname$(n%-1)=s$ .� � .� � .� �# A% .� : .�$ �set_icon(tuning%,6,�(tunoct%)) .�% �set_icon(tuning%,9,�(tunsemi%)) .� *Tuning 0 .�1 � "Tuning "+�((tunoct%*4096)+(tunsemi%*341)) / �updatevoicelist / : /8 winmenu%!372=�SpecItem(savechoices%,winmenu%!372,0) /& � savechoices%=� � /05 winmenu%!348=�SpecItem(autoinst%,winmenu%!348,0) /:3 winmenu%!396=�SpecItem(salone%,winmenu%!396,0) /D �set_icon(con%,23,�(oct%)) /N! �set_icon(con%,26,�(trans%)) /X �set_icon(con%,32,�(chan%)) /b �set_icon(con%,31,�(dura%)) /l � sk% � showkeys%=� � /vC showkeys%=sk%:�togglechars:�update_icon(con%,34,%1<<21,%0<<21) /� � /� �get_icon_state(con%,19) /�7 blk%!16=58-(23*volume%):ș "Wimp_DeleteIcon",,blk% /�- blk%!4=con%:ș "Wimp_CreateIcon",,blk%+4 /� � /� : /� � i%>0 � /� f%=0:� � /� � n%=1 � i% /�8 � � � f%+=1:pathname$(n%-1)="":type%(n%-1)=0:� �TVp /�4 filename$=pathname$(n%-1):filetype%=type%(n%-1) /�, ș "XOS_File",17,filename$ � o%,,,,len% /�" � o%=0 � 100,"File not found" 05 � �extend(len%)=� � 100,"Not enough room in RMA" 0 �load_sample(len%,�) 0 � 0 � � 0*: � f%=1 �report_err("Failed to load one sample",100,�) 04? � f%>1 �report_err("Failed to load "+�f%+" samples",100,�) 0> : 0H f%=0:� � 0R � n%=0 � i%-1 0\ � � � f%+=1:� �tvp 0f o%=slotblk%?n% 0p � o%>0 � 0z � pathname$(n%)<>"" � 0�? � �install_in_slot(n%,o%)=� � 100,"Sample slot occupied" 0� � 0� f%+=1 0� � 0� � 0� � 0� � � 0�= � f%=1 �report_err("Failed to install one sample",100,�) 0�B � f%>1 �report_err("Failed to install "+�f%+" samples",100,�) 0� � 0� : 0�% � f$="<Wimp$Scrap>" f$=leafname$ 0� �update_title(main%,0,f$) 1% ș "Wimp_GetCaretPosition",,blk% 1 � !blk%=-1 o%=� � o%=� 1' �popup_window(main%,1):mainopen%=� 1$ � o% �getif 1. changed%=� 181 � scrap%<>0 � "Delete <Wimp$Scrap>":scrap%=0 1B ș "Hourglass_Off" 1L � 1V 1` ��dataload_ack 1j) messblk%!12=messblk%!8:messblk%!16=4 1t1 ș "Wimp_SendMessage",17,messblk%,messblk%!4 1~ � 1� 1� ��checkchange(a%) 1� � a%=� � 1� � savechoices%=� � 1�6 � changed%=� changed%=�:�update_title(main%,2,"") 1� � 1� � 1�6 � changed%=� changed%=�:�update_title(main%,2,"") 1� � 1� � 1� 1� ݤnegative(a%) 2 % � a%>127 =(&FFFFFF00 � a%) � =a% 2 2 ��load_sample(len%,p%) 2 � sft%,addr% 2( sft%=�set_sft(filetype%) 22) � scrap%<>0 filename$="<Wimp$Scrap>" 2<: � sft%<1 � sft%>7 � 1,"Sample file type out of range" 2F= � sampoffset% � 4<>0 � 1,"Sample block not word aligned" 2P ș "Hourglass_On" 2Z" addr%=samplebase%+sampoffset% 2d$ � "Load "+filename$+" "+�~addr% 2n! � code%+&240,sft%,addr%,len% 2x! sampaddr%(next%)=sampoffset% 2� sampoffset%+=len% 2�) sampoffset%=�word_align(sampoffset%) 2�E � scrap%<>0 � "Delete <Wimp$Scrap>":scrap%=0:filename$=leafname$ 2� �updatesamparrays(len%,p%) 2� ș "Hourglass_Off" 2� � 2� 2� ��delete_sample(i%) 2�4 � a%,b%,icon%,len1%,len2%,saddr%,t%:icon%=i%-p% 2�K t%=type%(icon%):len1%=size%(icon%):saddr%=samplebase%+sampaddr%(icon%) 2�: � t%<>&FFA � ?(code%+&9D0+icon%)>0 � code%+&864,icon% 2� � t%=&FFA len1%=0 2� len1%=�word_align(len1%) 3 � icon%<(next%-1) � 3 � a%=icon% � next%-2 3 � t%<>&FFA � len1%<>0 � 3"+ � type%(a%+1)<>&FFA � size%(a%+1)<>0 � 3,/ len2%=size%(a%+1):len2%=�word_align(len2%) 36# b%=samplebase%+sampaddr%(a%+1) 3@ � code%,b%,saddr%,len2% 3J3 sampaddr%(a%)=saddr%-samplebase%:saddr%+=len2% 3T � 3^ � 3h" sampaddr%(a%)=sampaddr%(a%+1) 3r � 3|= ?(code%+&9D0+a%)=?(code%+&9D0+a%+1):?(code%+&9D0+a%+1)=0 3�" pathname$(a%)=pathname$(a%+1) 3� size%(a%)=size%(a%+1) 3� type%(a%)=type%(a%+1) 3� � 3� p%+=1 3� � 3�9 !blk%=samplist%:blk%!4=i%:ș "Wimp_DeleteIcon",,blk% 3� next%-=1:� t%<>&FFA � 3�* t%=�extend(-len1%):sampoffset%-=len1% 3�O � sampoffset%<=0 ș "OS_Module",7,,samplebase%:samplebase%=0:sampoffset%=0 3� � 3� � 3� 4 ��renumber_icon(icon%) 4% �get_icon_state(samplist%,icon%) 4+ blk%!12=0-(p%*44)-44:blk%!20=0-(p%*44) 4& ș "Wimp_DeleteIcon",,blk% 402 blk%!4=samplist%:ș "Wimp_CreateIcon",,blk%+4 4: p%+=1 4D � 4N 4X ݤfile_present(f$,t%) 4b � N%,a%:a%=� 4l � next%=0 � t%=&10C =� 4v � N%=1 � next% 4�) � �leafname(pathname$(N%-1))=f$ a%=� 4� � 4� =a% 4� 4� ��updatesampicon(i%) 4� �set_icon(samples%,1,�i%) 4� � 4� 4� ��storesamples(offset%,c$) 4� � a%,b%,a$,b$,c%,N%:c%=� 4� � N%=1 � 32 4�& ș "Sound_InstallVoice",0,N% � f% 4�< � f%<>0 ș "Sound_InstallVoice",0,N% � text$ � text$="" 5" � � text$>32 text$=�text$,32) 5( $(blk%+(((N%-1)+offset%)*32))=text$ 5 � 5 � offset%=32 � 5* � N%=0 � 31 54/ a$=$(blk%+(N%*32)):b$=$(blk%+((N%+32)*32)) 5> � a$<>b$ c%=� 5H � 5R> � c%=� loaded%=�:�report_err("Not a sample module",100,�) 5\ � 5f � 5p 5z ݤget_module_name(path$) 5� � a$,a%,b% 5� a%=� path$ 5� �:b%=�# a%:� �#a%=&10 5� � N%=0 � 3:blk%?N%=�# a%:� 5� �#a%=!blk% 5�" �:b%=�# a%:a$=a$+�(b%):� b%=0 5� a$=�a$,�a$-1) 5� �# a% 5� =a$ 5� 5� ��kill_module(name$) 5�1 � �module_present(name$)=� � "RMKill "+name$ 5� � 6 6 ݤmodule_present(name$) 6 � a%,b% 6$! *Set KeyboardTempVar Present 6.< � "RMEnsure "+name$+" 0 Set KeyboardTempVar NotPresent" 68? ș "OS_ReadVarVal","KeyboardTempVar",blk%,&1500,0,0 � ,,a% 6B ?(blk%+a%)=&D 6L *Unset KeyboardTempVar 6V � $blk%="Present" =� � =� 6` 6j ݤset_sft(t%) 6t � a% 6~ Ȏ t% � 6� � &FFA:a%=1 6� � &DF9:a%=2 6� � &CB5:a%=3 6� � &ED0:a%=4 6� � &D3C:a%=6 6� � &FFD:a%=5 6� � 6� =a% 6� 6� ݤword_align(a%) 6� ȕ a% � 4<>0:a%+=1:�:=a% 6� 7 ��desksave 7 � N% 7d � � � messblk%!12=messblk%!8:ș "Wimp_SendMessage",19,messblk%,messblk%!4:�report_err(�$,�,�):� 7= ș "XOS_ReadVarVal","Keyboard$Dir",blk%,&1500,0,3 � ,,N% 7( blk%?N%=13 72 �# messblk%!20,"Run "+$blk% 7< � 7F 7P ��install_sample(i%) 7Z � a$,t%,addr%,a%:a%=0 7d& ș "Sound_InstallVoice",0,0 � ,a% 7n � a%=0 � type%(i%)=&FFA � 7x � ?(code%+&9D0+i%)=0 � 7� a$=�leafname(pathname$(i%)) 7� t%=�set_sft(type%(i%)) 7�$ addr%=samplebase%+sampaddr%(i%) 7�- � code%+&8CC,a%,i%,a$,t%,addr%,size%(i%) 7� t%=?(code%+&9D0+i%) 7�9 � t%=0 �report_err("Failed to install sample",100,�) 7� � 7� � 7� 7� ��remove_sample(i%) 7� � type%(i%)=&FFA � 7� � ?(code%+&9D0+i%)>0 � 7� � code%+&864,i% 8 � 8 � 8 8" ݤclaim(len%) 8, � a%,N% 86' ș "XOS_Module",6,,,len% � ,,a%;N% 8@ � N% � %0001 =0 8J =a% 8T 8^ ݤextend(len%) 8h! � s%,N%,a%,i%:a%=samplebase% 8r len%=�word_align(len%) 8| � sampoffset%=0 � 8� samplebase%=�claim(len%) 8�C � samplebase%=0 �report_err("Not enough room in RMA",100,�):=� 8� � 8�< ș "XOS_Module",13,,samplebase%,len% � ,,samplebase%;N% 8�@ � N% � %0001 �report_err("Not enough room in RMA",100,�):=� 8�$ � samplebase%<>a% �reinitvoices 8� � 8� =� 8� 8� ��reinitvoices 8� � i%,s%,addr%,a$,a% 8� � i%=0 � 31 8� s%=?(code%+&9D0+i%) 9 � s%>0 � 9 � code%+&864,i% 9$ addr%=samplebase%+sampaddr%(i%) 9&7 a$=�leafname(pathname$(i%)):a%=�set_sft(type%(i%)) 90- � code%+&8CC,s%,i%,a$,a%,addr%,size%(i%) 9: � 9D � 9N � 9X 9b ݤinstall_in_slot(i%,s%) 9l � addr%,a$,a% 9v8 � s%<1 � s%>32 � 1,"Voice slot number out of range" 9�& ș "Sound_InstallVoice",0,s% � a% 9� � a%<>0 =� 9�$ addr%=samplebase%+sampaddr%(i%) 9�7 a$=�leafname(pathname$(i%)):a%=�set_sft(type%(i%)) 9�- � code%+&8CC,s%,i%,a$,a%,addr%,size%(i%) 9� =� 9� 9� ݤcheck_list(action%) 9� � n%,addr%,a%:n%=0:a%=0 9�5 ș "Wimp_WhichIcon",samplist%,blk%,%1<<21,%1<<21 9� addr%=blk% 9� � 9� � type%(!addr%)=&FFA � : n%+=1 : � : Ȏ action% � : � 0 :*$ � ?(code%+&9D0+!addr%)>0 n%+=1 :4 � 1 :>$ � ?(code%+&9D0+!addr%)=0 n%+=1 :H � :R � :\ addr%+=4:a%+=1:� !addr%=-1 :f � a%=n% =� :p =� :z :� ��mute :� � v%,N% :� *Audio Off :� voice$()="" :� � N%=1 � 8 :�& ș "Sound_AttachVoice",N%,0 � ,v% :�7 � v%>0 ș "Sound_InstallVoice",0,v% � voice$(N%-1) :� � :� � :� :� ��restore :� � N% :� � N%=1 � 8 ;1 ș "XSound_AttachNamedVoice",N%,voice$(N%-1) ; � ; *Audio On ;$ � �
00000000 0d 00 0a 20 20 f4 20 20 20 20 20 3e 21 52 75 6e |... . >!Run| 00000010 49 6d 61 67 65 20 28 4b 65 79 62 6f 61 72 64 29 |Image (Keyboard)| 00000020 0d 00 14 16 20 f4 20 62 79 20 20 54 68 6f 6d 61 |.... . by Thoma| 00000030 73 20 44 61 6c 79 0d 00 1e 16 20 f4 20 28 63 29 |s Daly.... . (c)| 00000040 20 41 55 20 4d 61 79 20 31 39 39 34 0d 00 28 04 | AU May 1994..(.| 00000050 0d 00 32 0d 20 f2 69 6e 69 74 61 6c 6c 0d 00 3c |..2. .initall..<| 00000060 33 20 ee 20 85 20 f2 72 65 70 6f 72 74 5f 65 72 |3 . . .report_er| 00000070 72 28 f6 24 2c 9f 2c 9e 29 3a e7 20 66 69 6e 69 |r(.$,.,.):. fini| 00000080 73 68 25 20 f2 63 6c 6f 73 65 64 6f 77 6e 3a e0 |sh% .closedown:.| 00000090 0d 00 46 04 0d 00 50 06 20 f5 0d 00 5a 23 20 c8 |..F...P. ...Z# .| 000000a0 99 20 22 57 69 6d 70 5f 50 6f 6c 6c 22 2c 6d 61 |. "Wimp_Poll",ma| 000000b0 73 6b 25 2c 62 6c 6b 25 20 b8 20 41 25 0d 00 64 |sk%,blk% . A%..d| 000000c0 0c 20 c8 8e 20 41 25 20 ca 0d 00 6e 09 20 c9 20 |. .. A% ...n. . | 000000d0 30 3a 0d 00 78 16 20 e7 20 6b 65 79 64 6f 77 6e |0:..x. . keydown| 000000e0 25 3c 3e 26 46 46 20 8c 0d 00 82 1f 20 c8 99 20 |%<>&FF ..... .. | 000000f0 22 4f 53 5f 42 79 74 65 22 2c 26 37 41 20 b8 20 |"OS_Byte",&7A . | 00000100 2c 6b 63 6f 64 65 25 0d 00 8c 38 20 e7 20 6b 63 |,kcode%...8 . kc| 00000110 6f 64 65 25 3d 26 46 46 20 f2 64 65 63 6f 64 65 |ode%=&FF .decode| 00000120 5f 64 72 61 67 3a 6d 61 73 6b 25 3d 26 38 30 30 |_drag:mask%=&800| 00000130 33 33 3a 6b 65 79 64 6f 77 6e 25 3d 26 46 46 0d |33:keydown%=&FF.| 00000140 00 96 06 20 cd 0d 00 a0 14 20 e7 20 64 72 61 67 |... ..... . drag| 00000150 62 61 72 25 3c 3e 30 20 8c 0d 00 aa 16 20 f2 67 |bar%<>0 ..... .g| 00000160 65 74 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 6f 0d |et_pointer_info.| 00000170 00 b4 2b 20 e7 20 64 72 61 67 62 61 72 25 3d 26 |..+ . dragbar%=&| 00000180 46 46 20 f2 67 65 74 5f 77 69 6e 64 6f 77 5f 73 |FF .get_window_s| 00000190 74 61 74 65 28 63 6f 6e 25 29 0d 00 be 29 20 64 |tate(con%)...) d| 000001a0 72 61 67 62 61 72 25 3d 28 28 28 6d 6f 75 73 65 |ragbar%=(((mouse| 000001b0 78 25 2d 78 30 25 29 81 20 32 33 29 2a 32 33 29 |x%-x0%). 23)*23)| 000001c0 2b 31 32 0d 00 c8 1e 20 e7 20 64 72 61 67 62 61 |+12.... . dragba| 000001d0 72 25 3c 3e 6f 6c 64 64 72 61 67 62 61 72 25 20 |r%<>olddragbar% | 000001e0 8c 0d 00 d2 1d 20 f2 67 65 74 5f 69 63 6f 6e 5f |..... .get_icon_| 000001f0 73 74 61 74 65 28 63 6f 6e 25 2c 31 39 29 0d 00 |state(con%,19)..| 00000200 dc 30 20 62 6c 6b 25 21 31 36 3d 64 72 61 67 62 |.0 blk%!16=dragb| 00000210 61 72 25 3a c8 99 20 22 57 69 6d 70 5f 44 65 6c |ar%:.. "Wimp_Del| 00000220 65 74 65 49 63 6f 6e 22 2c 2c 62 6c 6b 25 0d 00 |eteIcon",,blk%..| 00000230 e6 2d 20 62 6c 6b 25 21 34 3d 63 6f 6e 25 3a c8 |.- blk%!4=con%:.| 00000240 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 |. "Wimp_CreateIc| 00000250 6f 6e 22 2c 2c 62 6c 6b 25 2b 34 0d 00 f0 43 20 |on",,blk%+4...C | 00000260 c8 99 20 22 57 69 6d 70 5f 46 6f 72 63 65 52 65 |.. "Wimp_ForceRe| 00000270 64 72 61 77 22 2c 63 6f 6e 25 2c 62 6c 6b 25 21 |draw",con%,blk%!| 00000280 38 2c 62 6c 6b 25 21 31 32 2c 28 78 31 25 2d 78 |8,blk%!12,(x1%-x| 00000290 30 25 29 2d 32 30 2c 62 6c 6b 25 21 32 30 0d 00 |0%)-20,blk%!20..| 000002a0 fa 19 20 6f 6c 64 64 72 61 67 62 61 72 25 3d 64 |.. olddragbar%=d| 000002b0 72 61 67 62 61 72 25 0d 01 04 06 20 cd 0d 01 0e |ragbar%.... ....| 000002c0 06 20 cd 0d 01 18 15 20 c9 20 32 3a f2 6f 70 65 |. ..... . 2:.ope| 000002d0 6e 5f 77 69 6e 64 6f 77 0d 01 22 1d 20 c9 20 33 |n_window..". . 3| 000002e0 3a f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 21 |:.close_window(!| 000002f0 62 6c 6b 25 29 0d 01 2c 3c 20 c9 20 36 3a f2 6d |blk%)..,< . 6:.m| 00000300 6f 75 73 65 5f 63 6c 69 63 6b 28 21 62 6c 6b 25 |ouse_click(!blk%| 00000310 2c 62 6c 6b 25 21 34 2c 62 6c 6b 25 21 38 2c 62 |,blk%!4,blk%!8,b| 00000320 6c 6b 25 21 31 32 2c 62 6c 6b 25 21 31 36 2c a3 |lk%!12,blk%!16,.| 00000330 29 0d 01 36 15 20 c9 20 37 3a f2 64 65 63 6f 64 |)..6. . 7:.decod| 00000340 65 5f 64 72 61 67 0d 01 40 2b 20 c9 20 38 3a f2 |e_drag..@+ . 8:.| 00000350 6b 65 79 5f 70 72 65 73 73 65 64 28 21 62 6c 6b |key_pressed(!blk| 00000360 25 2c 62 6c 6b 25 21 34 2c 62 6c 6b 25 21 32 34 |%,blk%!4,blk%!24| 00000370 29 0d 01 4a 1b 20 c9 20 39 3a f2 64 65 63 6f 64 |)..J. . 9:.decod| 00000380 65 5f 6d 65 6e 75 28 62 6c 6b 25 29 0d 01 54 2f |e_menu(blk%)..T/| 00000390 20 c9 20 31 31 3a e7 20 21 62 6c 6b 25 3d 6d 61 | . 11:. !blk%=ma| 000003a0 69 6e 25 20 69 66 6e 65 65 64 65 64 25 3d b9 3a |in% ifneeded%=.:| 000003b0 73 75 6e 65 65 64 65 64 25 3d b9 0d 01 5e 23 20 |suneeded%=...^# | 000003c0 c9 20 31 32 3a e7 20 21 62 6c 6b 25 3d 6d 61 69 |. 12:. !blk%=mai| 000003d0 6e 25 20 69 66 6e 65 65 64 65 64 25 3d a3 0d 01 |n% ifneeded%=...| 000003e0 68 1a 20 c9 20 31 37 2c 31 38 3a f2 72 65 63 65 |h. . 17,18:.rece| 000003f0 69 76 65 5f 6d 65 73 73 0d 01 72 06 20 cb 0d 01 |ive_mess..r. ...| 00000400 7c 0e 20 fd 20 66 69 6e 69 73 68 25 0d 01 86 11 ||. . finish%....| 00000410 20 f2 63 6c 6f 73 65 64 6f 77 6e 3a e0 0d 01 90 | .closedown:....| 00000420 04 0d 01 9a 13 20 dd f2 72 65 63 65 69 76 65 5f |..... ..receive_| 00000430 6d 65 73 73 0d 01 a4 2f 20 e3 20 4e 25 3d 30 20 |mess.../ . N%=0 | 00000440 b8 20 21 62 6c 6b 25 2d 31 20 88 20 34 3a 6d 65 |. !blk%-1 . 4:me| 00000450 73 73 62 6c 6b 25 21 4e 25 3d 62 6c 6b 25 21 4e |ssblk%!N%=blk%!N| 00000460 25 3a ed 0d 01 ae 11 20 c8 8e 20 62 6c 6b 25 21 |%:..... .. blk%!| 00000470 31 36 20 ca 0d 01 b8 12 20 c9 20 30 3a 66 69 6e |16 ..... . 0:fin| 00000480 69 73 68 25 3d b9 0d 01 c2 08 20 c9 20 31 0d 01 |ish%=..... . 1..| 00000490 cc 11 20 c8 8e 20 62 6c 6b 25 21 34 30 20 ca 0d |.. .. blk%!40 ..| 000004a0 01 d6 29 20 c9 20 26 44 46 39 2c 26 43 42 35 2c |..) . &DF9,&CB5,| 000004b0 26 45 44 30 2c 26 44 33 43 2c 26 46 46 44 2c 26 |&ED0,&D3C,&FFD,&| 000004c0 46 46 41 2c 26 31 30 43 0d 01 e0 34 20 c8 99 20 |FFA,&10C...4 .. | 000004d0 22 58 4f 53 5f 52 65 61 64 56 61 72 56 61 6c 22 |"XOS_ReadVarVal"| 000004e0 2c 22 57 69 6d 70 24 53 63 72 61 70 22 2c 2c 2d |,"Wimp$Scrap",,-| 000004f0 31 2c 30 2c 33 20 b8 20 2c 2c 4e 25 0d 01 ea 39 |1,0,3 . ,,N%...9| 00000500 20 e7 20 4e 25 3d 30 20 f2 72 65 70 6f 72 74 5f | . N%=0 .report_| 00000510 65 72 72 28 22 57 69 6d 70 24 53 63 72 61 70 20 |err("Wimp$Scrap | 00000520 6e 6f 74 20 64 65 66 69 6e 65 64 22 2c 31 30 30 |not defined",100| 00000530 2c 9e 29 3a e1 0d 01 f4 1f 20 6c 65 61 66 6e 61 |,.):..... leafna| 00000540 6d 65 24 3d a4 73 74 72 69 6e 67 28 62 6c 6b 25 |me$=.string(blk%| 00000550 2b 34 34 29 0d 01 fe 6c 20 e7 20 a4 66 69 6c 65 |+44)...l . .file| 00000560 5f 70 72 65 73 65 6e 74 28 6c 65 61 66 6e 61 6d |_present(leafnam| 00000570 65 24 2c 62 6c 6b 25 21 34 30 29 3d b9 20 f2 72 |e$,blk%!40)=. .r| 00000580 65 70 6f 72 74 5f 65 72 72 28 22 53 61 6d 70 6c |eport_err("Sampl| 00000590 65 20 6e 61 6d 65 20 27 22 2b 6c 65 61 66 6e 61 |e name '"+leafna| 000005a0 6d 65 24 2b 22 27 20 61 6c 72 65 61 64 79 20 70 |me$+"' already p| 000005b0 72 65 73 65 6e 74 22 2c 31 30 30 2c 9e 29 3a e1 |resent",100,.):.| 000005c0 0d 02 08 36 20 21 6d 65 73 73 62 6c 6b 25 3d 36 |...6 !messblk%=6| 000005d0 34 3a 6d 65 73 73 62 6c 6b 25 21 31 32 3d 6d 65 |4:messblk%!12=me| 000005e0 73 73 62 6c 6b 25 21 38 3a 6d 65 73 73 62 6c 6b |ssblk%!8:messblk| 000005f0 25 21 31 36 3d 32 0d 02 12 34 20 6d 65 73 73 62 |%!16=2...4 messb| 00000600 6c 6b 25 21 33 36 3d 2d 31 3a 24 28 6d 65 73 73 |lk%!36=-1:$(mess| 00000610 62 6c 6b 25 2b 34 34 29 3d 22 3c 57 69 6d 70 24 |blk%+44)="<Wimp$| 00000620 53 63 72 61 70 3e 22 2b bd 30 0d 02 1c 31 20 c8 |Scrap>"+.0...1 .| 00000630 99 20 22 57 69 6d 70 5f 53 65 6e 64 4d 65 73 73 |. "Wimp_SendMess| 00000640 61 67 65 22 2c 31 37 2c 6d 65 73 73 62 6c 6b 25 |age",17,messblk%| 00000650 2c 6d 65 73 73 62 6c 6b 25 21 34 0d 02 26 16 20 |,messblk%!4..&. | 00000660 73 63 72 61 70 25 3d 6d 65 73 73 62 6c 6b 25 21 |scrap%=messblk%!| 00000670 38 0d 02 30 06 20 cb 0d 02 3a 08 20 c9 20 32 0d |8..0. ...:. . 2.| 00000680 02 44 42 20 e7 20 62 6c 6b 25 21 31 32 3c 3e 73 |.DB . blk%!12<>s| 00000690 61 76 65 72 65 66 25 20 85 20 31 2c 22 55 6e 65 |averef% . 1,"Une| 000006a0 78 70 65 63 74 65 64 20 44 61 74 61 53 61 76 65 |xpected DataSave| 000006b0 20 70 61 63 6b 65 74 20 72 65 63 65 69 76 65 64 | packet received| 000006c0 22 0d 02 4e 40 20 e7 20 62 6c 6b 25 21 34 30 3c |"..N@ . blk%!40<| 000006d0 3e 26 31 30 43 20 85 20 31 2c 22 55 6e 65 78 70 |>&10C . 1,"Unexp| 000006e0 65 63 74 65 64 20 44 61 74 61 53 61 76 65 20 66 |ected DataSave f| 000006f0 69 6c 65 74 79 70 65 20 72 65 63 65 69 76 65 64 |iletype received| 00000700 22 0d 02 58 1f 20 66 69 6c 65 6e 61 6d 65 24 3d |"..X. filename$=| 00000710 a4 73 74 72 69 6e 67 28 62 6c 6b 25 2b 34 34 29 |.string(blk%+44)| 00000720 0d 02 62 2b 20 e7 20 6d 65 6e 75 62 75 74 25 3c |..b+ . menubut%<| 00000730 3e 31 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 |>1 .. "Wimp_Crea| 00000740 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 02 6c 0f 20 |teMenu",,-1..l. | 00000750 6d 65 6e 75 62 75 74 25 3d 30 0d 02 76 50 20 e7 |menubut%=0..vP .| 00000760 20 62 6c 6b 25 21 33 36 3c 3e 2d 31 20 f2 6b 65 | blk%!36<>-1 .ke| 00000770 79 62 6f 61 72 64 64 61 74 61 6f 75 74 28 66 69 |yboarddataout(fi| 00000780 6c 65 6e 61 6d 65 24 2c b9 29 20 8b 20 f2 6b 65 |lename$,.) . .ke| 00000790 79 62 6f 61 72 64 64 61 74 61 6f 75 74 28 66 69 |yboarddataout(fi| 000007a0 6c 65 6e 61 6d 65 24 2c a3 29 0d 02 80 29 20 6d |lename$,.)...) m| 000007b0 65 73 73 62 6c 6b 25 21 31 32 3d 6d 65 73 73 62 |essblk%!12=messb| 000007c0 6c 6b 25 21 38 3a 6d 65 73 73 62 6c 6b 25 21 31 |lk%!8:messblk%!1| 000007d0 36 3d 33 0d 02 8a 31 20 c8 99 20 22 57 69 6d 70 |6=3...1 .. "Wimp| 000007e0 5f 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 |_SendMessage",17| 000007f0 2c 6d 65 73 73 62 6c 6b 25 2c 6d 65 73 73 62 6c |,messblk%,messbl| 00000800 6b 25 21 34 0d 02 94 08 20 c9 20 33 0d 02 9e 3c |k%!4.... . 3...<| 00000810 20 66 69 6c 65 6e 61 6d 65 24 3d a4 73 74 72 69 | filename$=.stri| 00000820 6e 67 28 62 6c 6b 25 2b 34 34 29 3a 66 69 6c 65 |ng(blk%+44):file| 00000830 74 79 70 65 25 3d 62 6c 6b 25 21 34 30 3a f2 6c |type%=blk%!40:.l| 00000840 6f 61 64 5f 66 69 6c 65 0d 02 a8 08 20 c9 20 35 |oad_file.... . 5| 00000850 0d 02 b2 48 20 e7 20 62 6c 6b 25 21 34 30 3d 26 |...H . blk%!40=&| 00000860 31 30 43 20 66 69 6c 65 6e 61 6d 65 24 3d a4 73 |10C filename$=.s| 00000870 74 72 69 6e 67 28 62 6c 6b 25 2b 34 34 29 3a 66 |tring(blk%+44):f| 00000880 69 6c 65 74 79 70 65 25 3d 26 31 30 43 3a f2 6c |iletype%=&10C:.l| 00000890 6f 61 64 5f 66 69 6c 65 0d 02 bc 08 20 c9 20 38 |oad_file.... . 8| 000008a0 0d 02 c6 11 20 e7 20 63 68 61 6e 67 65 64 25 20 |.... . changed% | 000008b0 8c 0d 02 d0 31 20 62 6c 6b 25 21 31 32 3d 62 6c |....1 blk%!12=bl| 000008c0 6b 25 21 38 3a c8 99 20 22 57 69 6d 70 5f 53 65 |k%!8:.. "Wimp_Se| 000008d0 6e 64 4d 65 73 73 61 67 65 22 2c 31 39 2c 62 6c |ndMessage",19,bl| 000008e0 6b 25 0d 02 da 14 20 f2 6d 65 73 73 61 67 65 5f |k%.... .message_| 000008f0 62 6f 78 28 33 29 0d 02 e4 06 20 cd 0d 02 ee 13 |box(3).... .....| 00000900 20 c9 20 31 30 3a f2 64 65 73 6b 73 61 76 65 0d | . 10:.desksave.| 00000910 02 f8 1a 20 c9 20 26 34 30 30 43 31 3a f2 67 65 |... . &400C1:.ge| 00000920 74 6d 6f 64 65 69 6e 66 6f 0d 03 02 06 20 cb 0d |tmodeinfo.... ..| 00000930 03 0c 06 20 e1 0d 03 16 04 0d 03 20 11 20 dd a4 |... ....... . ..| 00000940 73 74 72 69 6e 67 28 61 25 29 0d 03 2a 2e 20 ea |string(a%)..*. .| 00000950 20 64 24 3a 64 24 3d 22 22 3a c8 95 20 3f 61 25 | d$:d$="":.. ?a%| 00000960 3c 3e 30 3a 64 24 2b 3d bd 3f 61 25 3a 61 25 2b |<>0:d$+=.?a%:a%+| 00000970 3d 31 3a ce 3a 3d 64 24 0d 03 34 04 0d 03 3e 0e |=1:.:=d$..4...>.| 00000980 20 dd f2 69 6e 69 74 61 6c 6c 0d 03 48 29 20 ee | ..initall..H) .| 00000990 20 85 20 f2 72 65 70 6f 72 74 5f 65 72 72 28 f6 | . .report_err(.| 000009a0 24 2c 9f 2c 9e 29 3a f2 63 6c 6f 73 65 64 6f 77 |$,.,.):.closedow| 000009b0 6e 3a e0 0d 03 52 10 20 ea 20 4e 25 2c 4e 32 25 |n:...R. . N%,N2%| 000009c0 2c 66 24 0d 03 5c 16 20 c8 99 20 22 48 6f 75 72 |,f$..\. .. "Hour| 000009d0 67 6c 61 73 73 5f 4f 6e 22 0d 03 66 3d 20 c8 99 |glass_On"..f= ..| 000009e0 20 22 57 69 6d 70 5f 49 6e 69 74 69 61 6c 69 73 | "Wimp_Initialis| 000009f0 65 22 2c 32 30 30 2c 26 34 42 35 33 34 31 35 34 |e",200,&4B534154| 00000a00 2c 22 4b 65 79 62 6f 61 72 64 22 20 b8 20 76 65 |,"Keyboard" . ve| 00000a10 72 73 69 6f 6e 25 0d 03 70 1a 20 63 6f 64 65 25 |rsion%..p. code%| 00000a20 3d 30 3a 73 61 6d 70 6c 65 62 61 73 65 25 3d 30 |=0:samplebase%=0| 00000a30 0d 03 7a 06 20 3a 0d 03 84 6e 20 de 20 62 6c 6b |..z. :...n . blk| 00000a40 25 20 26 31 30 30 30 2c 62 75 66 25 20 26 31 30 |% &1000,buf% &10| 00000a50 30 30 2c 66 6d 69 74 65 6d 25 20 32 30 2c 6d 73 |00,fmitem% 20,ms| 00000a60 74 25 20 36 34 2c 6d 65 6e 75 64 61 74 61 25 20 |t% 64,menudata% | 00000a70 26 36 30 30 2c 6d 62 6c 6b 25 20 33 36 2c 6d 65 |&600,mblk% 36,me| 00000a80 73 73 62 6c 6b 25 20 32 35 36 2c 73 6c 6f 74 62 |ssblk% 256,slotb| 00000a90 6c 6b 25 20 33 31 2c 76 6c 69 73 74 62 6c 6b 25 |lk% 31,vlistblk%| 00000aa0 20 37 30 33 0d 03 8e 3c 20 62 75 66 73 74 61 72 | 703...< bufstar| 00000ab0 74 25 3d 62 75 66 25 3a 6d 64 61 74 61 73 74 61 |t%=buf%:mdatasta| 00000ac0 72 74 25 3d 6d 65 6e 75 64 61 74 61 25 3a 76 6c |rt%=menudata%:vl| 00000ad0 73 74 61 72 74 25 3d 76 6c 69 73 74 62 6c 6b 25 |start%=vlistblk%| 00000ae0 0d 03 98 37 20 76 65 72 73 69 6f 6e 24 3d 22 31 |...7 version$="1| 00000af0 2e 33 32 20 28 31 36 2d 4f 63 74 2d 39 33 29 22 |.32 (16-Oct-93)"| 00000b00 3a 6d 61 73 6b 25 3d 26 38 30 30 33 33 3a 66 69 |:mask%=&80033:fi| 00000b10 6e 69 73 68 25 3d a3 0d 03 a2 28 20 63 6f 6e 74 |nish%=....( cont| 00000b20 72 6f 6c 73 25 3d a3 3a 73 61 6d 70 6f 70 65 6e |rols%=.:sampopen| 00000b30 25 3d a3 3a 6d 61 69 6e 6f 70 65 6e 25 3d a3 0d |%=.:mainopen%=..| 00000b40 03 ac 35 20 69 66 6e 65 65 64 65 64 25 3d b9 3a |..5 ifneeded%=.:| 00000b50 73 75 6e 65 65 64 65 64 25 3d b9 3a 64 72 61 67 |suneeded%=.:drag| 00000b60 62 61 72 25 3d 30 3a 6f 6c 64 64 72 61 67 62 61 |bar%=0:olddragba| 00000b70 72 25 3d 30 0d 03 b6 22 20 78 30 25 3d 30 3a 78 |r%=0..." x0%=0:x| 00000b80 31 25 3d 30 3a 79 30 25 3d 30 3a 79 31 25 3d 30 |1%=0:y0%=0:y1%=0| 00000b90 3a 77 66 25 3d 30 0d 03 c0 3c 20 6d 68 61 6e 25 |:wf%=0...< mhan%| 00000ba0 3d 30 3a 6d 6f 75 73 65 78 25 3d 30 3a 6d 6f 75 |=0:mousex%=0:mou| 00000bb0 73 65 79 25 3d 30 3a 6d 62 75 74 25 3d 30 3a 6d |sey%=0:mbut%=0:m| 00000bc0 69 63 6f 6e 25 3d 30 3a 6d 65 6e 75 62 75 74 25 |icon%=0:menubut%| 00000bd0 3d 30 0d 03 ca 2b 20 6d 65 6e 75 77 69 64 74 68 |=0...+ menuwidth| 00000be0 25 3d 31 37 34 3a 6b 65 79 73 74 61 74 25 3d 30 |%=174:keystat%=0| 00000bf0 3a 72 65 64 72 61 77 72 65 71 25 3d b9 0d 03 d4 |:redrawreq%=....| 00000c00 0f 20 6d 61 63 74 69 6f 6e 25 3d 30 0d 03 de 06 |. maction%=0....| 00000c10 20 3a 0d 03 e8 54 20 de 20 70 61 74 68 6e 61 6d | :...T . pathnam| 00000c20 65 24 28 33 31 29 2c 73 69 7a 65 25 28 33 31 29 |e$(31),size%(31)| 00000c30 2c 74 79 70 65 25 28 33 31 29 2c 73 61 6d 70 61 |,type%(31),sampa| 00000c40 64 64 72 25 28 33 31 29 2c 73 73 74 65 72 65 6f |ddr%(31),sstereo| 00000c50 25 28 37 29 2c 6c 6f 61 64 65 64 76 6f 69 63 65 |%(7),loadedvoice| 00000c60 73 24 28 33 31 29 0d 03 f2 46 20 66 69 6c 65 6e |s$(31)...F filen| 00000c70 61 6d 65 24 3d 22 22 3a 66 69 6c 65 74 79 70 65 |ame$="":filetype| 00000c80 25 3d 30 3a 6e 65 78 74 25 3d 30 3a 73 61 76 65 |%=0:next%=0:save| 00000c90 72 65 66 25 3d 30 3a 6c 65 61 66 6e 61 6d 65 24 |ref%=0:leafname$| 00000ca0 3d 22 22 3a 73 63 72 61 70 25 3d 30 0d 03 fc 06 |="":scrap%=0....| 00000cb0 20 3a 0d 04 06 28 20 de 20 6d 76 25 28 33 32 29 | :...( . mv%(32)| 00000cc0 2c 70 69 74 63 68 74 61 62 6c 65 25 28 31 31 29 |,pitchtable%(11)| 00000cd0 2c 76 6f 69 63 65 24 28 37 29 0d 04 10 33 20 63 |,voice$(7)...3 c| 00000ce0 68 61 6e 25 3d 31 3a 6f 63 74 25 3d 30 3a 76 6c |han%=1:oct%=0:vl| 00000cf0 73 65 6c 25 3d 30 3a 6b 65 79 64 6f 77 6e 25 3d |sel%=0:keydown%=| 00000d00 26 46 46 3a 73 61 6c 6f 6e 65 25 3d a3 0d 04 1a |&FF:salone%=....| 00000d10 40 20 64 75 72 61 25 3d 32 30 3a 74 72 61 6e 73 |@ dura%=20:trans| 00000d20 25 3d 30 3a 76 6f 6c 75 6d 65 25 3d 2d 31 32 3a |%=0:volume%=-12:| 00000d30 63 6f 75 6e 74 25 3d 30 3a 74 75 6e 6f 63 74 25 |count%=0:tunoct%| 00000d40 3d 30 3a 74 75 6e 73 65 6d 69 25 3d 30 0d 04 24 |=0:tunsemi%=0..$| 00000d50 3d 20 6b 65 79 6d 61 70 24 3d 22 5a 53 58 44 43 |= keymap$="ZSXDC| 00000d60 56 47 42 48 4e 4a 4d 51 32 57 33 45 52 35 54 36 |VGBHNJMQ2W3ER5T6| 00000d70 59 37 55 49 39 4f 30 50 5b 3d 5d a3 5c 22 3a 73 |Y7UI9O0P[=].\":s| 00000d80 68 6f 77 6b 65 79 73 25 3d b9 0d 04 2e 2a 20 73 |howkeys%=....* s| 00000d90 61 76 65 63 68 6f 69 63 65 73 25 3d a3 3a 61 75 |avechoices%=.:au| 00000da0 74 6f 69 6e 73 74 25 3d b9 3a 63 68 61 6e 67 65 |toinst%=.:change| 00000db0 64 25 3d a3 0d 04 38 06 20 3a 0d 04 42 17 20 63 |d%=...8. :..B. c| 00000dc0 6f 64 65 25 3d a4 63 6c 61 69 6d 28 26 45 30 30 |ode%=.claim(&E00| 00000dd0 29 0d 04 4c 2b 20 e7 20 63 6f 64 65 25 3d 30 20 |)..L+ . code%=0 | 00000de0 85 20 31 2c 22 4e 6f 74 20 65 6e 6f 75 67 68 20 |. 1,"Not enough | 00000df0 72 6f 6f 6d 20 69 6e 20 52 4d 41 22 0d 04 56 2a |room in RMA"..V*| 00000e00 20 ff 20 22 4c 6f 61 64 20 3c 4b 65 79 62 6f 61 | . "Load <Keyboa| 00000e10 72 64 24 44 69 72 3e 2e 43 6f 64 65 20 22 2b c3 |rd$Dir>.Code "+.| 00000e20 7e 63 6f 64 65 25 0d 04 60 06 20 3a 0d 04 6a 24 |~code%..`. :..j$| 00000e30 20 e3 20 4e 25 3d 30 20 b8 20 31 31 3a f3 20 70 | . N%=0 . 11:. p| 00000e40 69 74 63 68 74 61 62 6c 65 25 28 4e 25 29 3a ed |itchtable%(N%):.| 00000e50 0d 04 74 4e 20 dc 20 26 34 30 30 30 2c 26 34 31 |..tN . &4000,&41| 00000e60 35 35 2c 26 34 32 41 41 2c 26 34 34 30 30 2c 26 |55,&42AA,&4400,&| 00000e70 34 35 35 35 2c 26 34 36 41 41 2c 26 34 38 30 30 |4555,&46AA,&4800| 00000e80 2c 26 34 39 41 41 2c 26 34 41 41 41 2c 26 34 43 |,&49AA,&4AAA,&4C| 00000e90 30 30 2c 26 34 44 35 35 2c 26 34 45 41 41 0d 04 |00,&4D55,&4EAA..| 00000ea0 7e 06 20 3a 0d 04 88 33 20 4e 25 3d 8e 20 22 3c |~. :...3 N%=. "<| 00000eb0 4b 65 79 62 6f 61 72 64 24 44 69 72 3e 2e 53 70 |Keyboard$Dir>.Sp| 00000ec0 72 69 74 65 73 22 3a 4e 32 25 3d a2 23 4e 25 2b |rites":N2%=.#N%+| 00000ed0 31 36 3a d9 23 4e 25 0d 04 92 13 20 de 20 73 70 |16:.#N%.... . sp| 00000ee0 72 69 74 65 73 25 20 4e 32 25 0d 04 9c 1f 20 21 |rites% N2%.... !| 00000ef0 73 70 72 69 74 65 73 25 3d 4e 32 25 3a 73 70 72 |sprites%=N2%:spr| 00000f00 69 74 65 73 25 21 38 3d 31 0d 04 a6 23 20 c8 99 |ites%!8=1...# ..| 00000f10 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 22 2c 26 | "OS_SpriteOp",&| 00000f20 31 30 39 2c 73 70 72 69 74 65 73 25 0d 04 b0 3c |109,sprites%...<| 00000f30 20 c8 99 20 22 4f 53 5f 53 70 72 69 74 65 4f 70 | .. "OS_SpriteOp| 00000f40 22 2c 26 31 30 41 2c 73 70 72 69 74 65 73 25 2c |",&10A,sprites%,| 00000f50 22 3c 4b 65 79 62 6f 61 72 64 24 44 69 72 3e 2e |"<Keyboard$Dir>.| 00000f60 53 70 72 69 74 65 73 22 0d 04 ba 06 20 3a 0d 04 |Sprites".... :..| 00000f70 c4 11 20 f2 67 65 74 6d 6f 64 65 69 6e 66 6f 0d |.. .getmodeinfo.| 00000f80 04 ce 37 20 c8 99 20 22 57 69 6d 70 5f 4f 70 65 |..7 .. "Wimp_Ope| 00000f90 6e 54 65 6d 70 6c 61 74 65 22 2c 2c 22 3c 4b 65 |nTemplate",,"<Ke| 00000fa0 79 62 6f 61 72 64 24 44 69 72 3e 2e 54 65 6d 70 |yboard$Dir>.Temp| 00000fb0 6c 61 74 65 73 22 0d 04 d8 25 20 63 6f 6e 25 3d |lates"...% con%=| 00000fc0 a4 63 72 65 61 74 65 5f 77 69 6e 64 6f 77 28 22 |.create_window("| 00000fd0 54 6f 6f 6c 62 6f 78 22 2c a3 29 0d 04 e2 23 20 |Toolbox",.)...# | 00000fe0 6d 61 69 6e 25 3d a4 63 72 65 61 74 65 5f 77 69 |main%=.create_wi| 00000ff0 6e 64 6f 77 28 22 4d 61 69 6e 22 2c b9 29 0d 04 |ndow("Main",.)..| 00001000 ec 23 20 69 6e 66 6f 25 3d a4 63 72 65 61 74 65 |.# info%=.create| 00001010 5f 77 69 6e 64 6f 77 28 22 49 6e 66 6f 22 2c a3 |_window("Info",.| 00001020 29 0d 04 f6 29 20 73 61 6d 70 6c 65 73 25 3d a4 |)...) samples%=.| 00001030 63 72 65 61 74 65 5f 77 69 6e 64 6f 77 28 22 53 |create_window("S| 00001040 61 6d 70 6c 65 73 22 2c a3 29 0d 05 00 2b 20 73 |amples",.)...+ s| 00001050 61 6d 70 6c 69 73 74 25 3d a4 63 72 65 61 74 65 |amplist%=.create| 00001060 5f 77 69 6e 64 6f 77 28 22 53 61 6d 70 4c 69 73 |_window("SampLis| 00001070 74 22 2c a3 29 0d 05 0a 26 20 73 61 76 65 62 6f |t",.)...& savebo| 00001080 78 25 3d a4 63 72 65 61 74 65 5f 77 69 6e 64 6f |x%=.create_windo| 00001090 77 28 22 73 61 76 65 22 2c a3 29 0d 05 14 2b 20 |w("save",.)...+ | 000010a0 73 61 6d 70 69 6e 66 6f 25 3d a4 63 72 65 61 74 |sampinfo%=.creat| 000010b0 65 5f 77 69 6e 64 6f 77 28 22 53 61 6d 70 49 6e |e_window("SampIn| 000010c0 66 6f 22 2c a3 29 0d 05 1e 29 20 6d 65 73 73 61 |fo",.)...) messa| 000010d0 67 65 25 3d a4 63 72 65 61 74 65 5f 77 69 6e 64 |ge%=.create_wind| 000010e0 6f 77 28 22 4d 65 73 73 61 67 65 22 2c a3 29 0d |ow("Message",.).| 000010f0 05 28 27 20 74 75 6e 69 6e 67 25 3d a4 63 72 65 |.(' tuning%=.cre| 00001100 61 74 65 5f 77 69 6e 64 6f 77 28 22 54 75 6e 69 |ate_window("Tuni| 00001110 6e 67 22 2c a3 29 0d 05 32 1c 20 c8 99 20 22 57 |ng",.)..2. .. "W| 00001120 69 6d 70 5f 43 6c 6f 73 65 54 65 6d 70 6c 61 74 |imp_CloseTemplat| 00001130 65 22 0d 05 3c 21 20 f2 73 65 74 5f 69 63 6f 6e |e"..<! .set_icon| 00001140 28 69 6e 66 6f 25 2c 31 31 2c 76 65 72 73 69 6f |(info%,11,versio| 00001150 6e 24 29 0d 05 46 4d 20 f2 73 65 74 5f 69 63 6f |n$)..FM .set_ico| 00001160 6e 28 6d 65 73 73 61 67 65 25 2c 30 2c 22 41 72 |n(message%,0,"Ar| 00001170 65 20 79 6f 75 20 73 75 72 65 3f 20 59 6f 75 72 |e you sure? Your| 00001180 20 63 75 72 72 65 6e 74 20 63 68 6f 69 63 65 73 | current choices| 00001190 20 61 72 65 20 6e 6f 74 20 73 61 76 65 64 22 29 | are not saved")| 000011a0 0d 05 50 1c 20 77 69 6e 6d 65 6e 75 25 3d a4 6d |..P. winmenu%=.m| 000011b0 65 6e 75 74 72 65 65 28 33 2c a3 29 0d 05 5a 1b |enutree(3,.)..Z.| 000011c0 20 69 63 6d 65 6e 75 25 3d a4 6d 65 6e 75 74 72 | icmenu%=.menutr| 000011d0 65 65 28 31 2c a3 29 0d 05 64 1b 20 76 6c 6d 65 |ee(1,.)..d. vlme| 000011e0 6e 75 25 3d a4 6d 65 6e 75 74 72 65 65 28 31 2c |nu%=.menutree(1,| 000011f0 b9 29 0d 05 6e 1a 20 f2 6c 69 6e 6b 73 28 77 69 |.)..n. .links(wi| 00001200 6e 6d 65 6e 75 25 2c 26 36 30 30 29 0d 05 78 06 |nmenu%,&600)..x.| 00001210 20 3a 0d 05 82 20 20 73 61 6d 70 6c 65 62 61 73 | :... samplebas| 00001220 65 25 3d 30 3a 73 61 6d 70 6f 66 66 73 65 74 25 |e%=0:sampoffset%| 00001230 3d 30 0d 05 8c 06 20 3a 0d 05 96 31 20 c8 99 20 |=0.... :...1 .. | 00001240 22 53 6f 75 6e 64 5f 49 6e 73 74 61 6c 6c 56 6f |"Sound_InstallVo| 00001250 69 63 65 22 2c 30 2c 6d 76 25 28 30 29 20 b8 20 |ice",0,mv%(0) . | 00001260 63 75 72 76 6f 69 63 65 24 0d 05 a0 17 20 6b 69 |curvoice$.... ki| 00001270 63 6f 6e 62 61 72 25 3d a4 69 63 6f 6e 62 61 72 |conbar%=.iconbar| 00001280 0d 05 aa 11 20 f2 74 6f 67 67 6c 65 63 68 61 72 |.... .togglechar| 00001290 73 0d 05 b4 18 20 c8 99 20 22 4f 53 5f 47 65 74 |s.... .. "OS_Get| 000012a0 45 6e 76 22 20 b8 20 66 24 0d 05 be 25 20 e7 20 |Env" . f$...% . | 000012b0 a7 66 24 2c 22 20 22 2c 31 33 29 3c 3e 30 20 80 |.f$," ",13)<>0 .| 000012c0 20 c2 66 24 2c 31 29 3c 3e 22 20 22 20 8c 0d 05 | .f$,1)<>" " ...| 000012d0 c8 2d 20 4e 25 3d a9 20 66 24 3a c8 95 20 c1 66 |.- N%=. f$:.. .f| 000012e0 24 2c 4e 25 2c 31 29 3c 3e 22 20 22 20 80 20 4e |$,N%,1)<>" " . N| 000012f0 25 3e 31 3a 4e 25 2d 3d 31 3a ce 0d 05 d2 21 20 |%>1:N%-=1:....! | 00001300 f2 6b 65 79 62 6f 61 72 64 64 61 74 61 69 6e 28 |.keyboarddatain(| 00001310 c2 66 24 2c a9 66 24 2d 4e 25 29 29 0d 05 dc 06 |.f$,.f$-N%))....| 00001320 20 cd 0d 05 e6 17 20 c8 99 20 22 48 6f 75 72 67 | ..... .. "Hourg| 00001330 6c 61 73 73 5f 4f 66 66 22 0d 05 f0 0d 20 2a 50 |lass_Off".... *P| 00001340 6f 69 6e 74 65 72 0d 05 fa 06 20 e1 0d 06 04 04 |ointer.... .....| 00001350 0d 06 0e 4c 20 dc 20 4b 65 79 62 6f 61 72 64 2c |...L . Keyboard,| 00001360 36 2c 53 61 6d 70 6c 65 20 27 27 2c 34 2c 53 65 |6,Sample '',4,Se| 00001370 6c 65 63 74 20 61 6c 6c 2c 30 2c 53 61 76 65 2c |lect all,0,Save,| 00001380 30 2c 56 6f 69 63 65 2c 30 2c 54 75 6e 69 6e 67 |0,Voice,0,Tuning| 00001390 2c 30 2c 4f 70 74 69 6f 6e 73 2c 30 0d 06 18 4d |,0,Options,0...M| 000013a0 20 dc 20 53 65 6c 65 63 74 69 6f 6e 2c 35 2c 49 | . Selection,5,I| 000013b0 6e 66 6f 2c 30 2c 44 65 6c 65 74 65 20 20 5e 58 |nfo,0,Delete ^X| 000013c0 2c 30 2c 49 6e 73 74 61 6c 6c 20 5e 49 2c 30 2c |,0,Install ^I,0,| 000013d0 52 65 6d 6f 76 65 20 20 5e 52 2c 30 2c 43 6c 65 |Remove ^R,0,Cle| 000013e0 61 72 20 20 20 5e 5a 2c 30 0d 06 22 60 20 dc 20 |ar ^Z,0.."` . | 000013f0 4f 70 74 69 6f 6e 73 2c 35 2c 41 75 74 6f 20 69 |Options,5,Auto i| 00001400 6e 73 74 61 6c 6c 2c 31 2c 53 61 76 65 20 63 68 |nstall,1,Save ch| 00001410 6f 69 63 65 73 2c 30 2c 53 74 61 6e 64 20 61 6c |oices,0,Stand al| 00001420 6f 6e 65 2c 30 2c 43 6f 6e 74 72 6f 6c 73 2e 2e |one,0,Controls..| 00001430 2e 20 20 5e 43 2c 30 2c 53 61 6d 70 6c 65 73 2e |. ^C,0,Samples.| 00001440 2e 2e 20 20 20 5e 53 2c 30 0d 06 2c 70 20 dc 20 |.. ^S,0..,p . | 00001450 35 2c 4b 65 79 62 6f 61 72 64 2c 30 2c 53 65 6c |5,Keyboard,0,Sel| 00001460 65 63 74 69 6f 6e 2c 4b 65 79 62 6f 61 72 64 2c |ection,Keyboard,| 00001470 32 2c 23 73 61 76 65 62 6f 78 25 2c 4b 65 79 62 |2,#savebox%,Keyb| 00001480 6f 61 72 64 2c 34 2c 23 74 75 6e 69 6e 67 25 2c |oard,4,#tuning%,| 00001490 4b 65 79 62 6f 61 72 64 2c 35 2c 4f 70 74 69 6f |Keyboard,5,Optio| 000014a0 6e 73 2c 53 65 6c 65 63 74 69 6f 6e 2c 30 2c 23 |ns,Selection,0,#| 000014b0 73 61 6d 70 69 6e 66 6f 25 0d 06 36 06 20 3a 0d |sampinfo%..6. :.| 000014c0 06 40 1f 20 dc 20 4b 65 79 62 6f 61 72 64 2c 32 |.@. . Keyboard,2| 000014d0 2c 49 6e 66 6f 2c 30 2c 51 75 69 74 2c 30 0d 06 |,Info,0,Quit,0..| 000014e0 4a 1a 20 dc 20 31 2c 4b 65 79 62 6f 61 72 64 2c |J. . 1,Keyboard,| 000014f0 30 2c 23 69 6e 66 6f 25 0d 06 54 06 20 3a 0d 06 |0,#info%..T. :..| 00001500 5e 14 20 dc 20 56 6f 69 63 65 20 6c 69 73 74 2c |^. . Voice list,| 00001510 33 32 0d 06 68 08 20 dc 20 30 0d 06 72 1e 20 dc |32..h. . 0..r. .| 00001520 20 31 2c 4b 65 79 62 6f 61 72 64 2c 33 2c 56 6f | 1,Keyboard,3,Vo| 00001530 69 63 65 20 6c 69 73 74 0d 06 7c 04 0d 06 86 38 |ice list..|....8| 00001540 20 dd f2 6d 6f 75 73 65 5f 63 6c 69 63 6b 28 6d | ..mouse_click(m| 00001550 6f 75 73 65 78 25 2c 6d 6f 75 73 65 79 25 2c 62 |ousex%,mousey%,b| 00001560 75 74 25 2c 68 61 6e 25 2c 69 63 6f 6e 25 2c 6b |ut%,han%,icon%,k| 00001570 65 79 25 29 0d 06 90 16 20 ea 20 70 69 74 63 68 |ey%).... . pitch| 00001580 25 2c 74 65 78 74 24 2c 69 25 0d 06 9a 06 20 3a |%,text$,i%.... :| 00001590 0d 06 a4 11 20 e7 20 62 75 74 25 20 80 20 32 20 |.... . but% . 2 | 000015a0 8c 0d 06 ae 0e 20 c8 8e 20 68 61 6e 25 20 ca 0d |..... .. han% ..| 000015b0 06 b8 09 20 c9 20 2d 32 0d 06 c2 2e 20 63 75 72 |... . -2.... cur| 000015c0 6d 65 6e 75 25 3d 69 63 6d 65 6e 75 25 3a 63 6d |menu%=icmenu%:cm| 000015d0 78 25 3d 6d 6f 75 73 65 78 25 2d 38 30 3a 63 6d |x%=mousex%-80:cm| 000015e0 79 25 3d 31 38 34 0d 06 cc 0e 20 f2 73 68 6f 77 |y%=184.... .show| 000015f0 6d 65 6e 75 0d 06 d6 25 20 c9 20 6d 61 69 6e 25 |menu...% . main%| 00001600 3a 20 f2 66 69 72 73 74 5f 69 74 65 6d 73 28 b9 |: .first_items(.| 00001610 2c b9 2c 6d 61 69 6e 25 29 0d 06 e0 2b 20 c9 20 |,.,main%)...+ . | 00001620 73 61 6d 70 6c 65 73 25 3a 20 f2 66 69 72 73 74 |samples%: .first| 00001630 5f 69 74 65 6d 73 28 a3 2c a3 2c 73 61 6d 70 6c |_items(.,.,sampl| 00001640 65 73 25 29 0d 06 ea 10 20 c9 20 73 61 6d 70 6c |es%).... . sampl| 00001650 69 73 74 25 0d 06 f4 31 20 e7 20 28 6e 65 78 74 |ist%...1 . (next| 00001660 25 3e 30 20 80 20 69 63 6f 6e 25 3e 2d 31 29 20 |%>0 . icon%>-1) | 00001670 80 20 a4 69 63 6f 6e 73 5f 73 65 6c 65 63 74 65 |. .icons_selecte| 00001680 64 3c 32 20 8c 0d 06 fe 14 20 f2 65 6e 74 69 72 |d<2 ..... .entir| 00001690 65 5f 6c 69 73 74 28 31 29 0d 07 08 2b 20 f2 75 |e_list(1)...+ .u| 000016a0 70 64 61 74 65 5f 69 63 6f 6e 28 68 61 6e 25 2c |pdate_icon(han%,| 000016b0 69 63 6f 6e 25 2c 25 31 3c 3c 32 31 2c 25 31 3c |icon%,%1<<21,%1<| 000016c0 3c 32 31 29 0d 07 12 06 20 cd 0d 07 1c 20 20 f2 |<21).... .... .| 000016d0 66 69 72 73 74 5f 69 74 65 6d 73 28 a3 2c a3 2c |first_items(.,.,| 000016e0 73 61 6d 70 6c 69 73 74 25 29 0d 07 26 06 20 cb |samplist%)..&. .| 000016f0 0d 07 30 34 20 e7 20 68 61 6e 25 3d 6d 61 69 6e |..04 . han%=main| 00001700 25 20 84 20 68 61 6e 25 3d 73 61 6d 70 6c 69 73 |% . han%=samplis| 00001710 74 25 20 84 20 68 61 6e 25 3d 73 61 6d 70 6c 65 |t% . han%=sample| 00001720 73 25 20 8c 0d 07 3a 23 20 f2 75 70 64 61 74 65 |s% ...:# .update| 00001730 76 6f 69 63 65 6c 69 73 74 3a f2 73 65 74 73 61 |voicelist:.setsa| 00001740 76 65 66 69 65 6c 64 0d 07 44 30 20 63 75 72 6d |vefield..D0 curm| 00001750 65 6e 75 25 3d 77 69 6e 6d 65 6e 75 25 3a 63 6d |enu%=winmenu%:cm| 00001760 78 25 3d 6d 6f 75 73 65 78 25 3a 63 6d 79 25 3d |x%=mousex%:cmy%=| 00001770 6d 6f 75 73 65 79 25 0d 07 4e 0e 20 f2 73 68 6f |mousey%..N. .sho| 00001780 77 6d 65 6e 75 0d 07 58 06 20 cd 0d 07 62 06 20 |wmenu..X. ...b. | 00001790 cd 0d 07 6c 06 20 3a 0d 07 76 0e 20 c8 8e 20 68 |...l. :..v. .. h| 000017a0 61 6e 25 20 ca 0d 07 80 09 20 c9 20 2d 32 0d 07 |an% ..... . -2..| 000017b0 8a 11 20 e7 20 62 75 74 25 20 80 20 34 20 8c 0d |.. . but% . 4 ..| 000017c0 07 94 12 20 e7 20 6d 61 69 6e 6f 70 65 6e 25 20 |... . mainopen% | 000017d0 8c 0d 07 9e 1b 20 f2 70 6f 70 75 70 5f 77 69 6e |..... .popup_win| 000017e0 64 6f 77 28 6d 61 69 6e 25 2c 30 29 0d 07 a8 06 |dow(main%,0)....| 000017f0 20 cc 0d 07 b2 09 20 69 25 3d a3 0d 07 bc 25 20 | ..... i%=....% | 00001800 c8 99 20 22 57 69 6d 70 5f 47 65 74 43 61 72 65 |.. "Wimp_GetCare| 00001810 74 50 6f 73 69 74 69 6f 6e 22 2c 2c 62 6c 6b 25 |tPosition",,blk%| 00001820 0d 07 c6 14 20 e7 20 21 62 6c 6b 25 3d 2d 31 20 |.... . !blk%=-1 | 00001830 69 25 3d b9 0d 07 d0 27 20 f2 70 6f 70 75 70 5f |i%=....' .popup_| 00001840 77 69 6e 64 6f 77 28 6d 61 69 6e 25 2c 31 29 3a |window(main%,1):| 00001850 6d 61 69 6e 6f 70 65 6e 25 3d b9 0d 07 da 10 20 |mainopen%=..... | 00001860 e7 20 69 25 20 f2 67 65 74 69 66 0d 07 e4 06 20 |. i% .getif.... | 00001870 cd 0d 07 ee 06 20 cd 0d 07 f8 06 20 3a 0d 08 02 |..... ..... :...| 00001880 0c 20 c9 20 6d 61 69 6e 25 0d 08 0c 18 20 e7 20 |. . main%.... . | 00001890 62 75 74 25 3d 34 20 84 20 62 75 74 25 3d 31 20 |but%=4 . but%=1 | 000018a0 8c 0d 08 16 16 20 e7 20 69 63 6f 6e 25 3d 2d 31 |..... . icon%=-1| 000018b0 20 f2 67 65 74 69 66 0d 08 20 06 20 cd 0d 08 2a | .getif.. . ...*| 000018c0 11 20 e7 20 69 63 6f 6e 25 3e 3d 30 20 8c 0d 08 |. . icon%>=0 ...| 000018d0 34 23 20 e7 20 69 63 6f 6e 25 3e 33 35 20 69 63 |4# . icon%>35 ic| 000018e0 6f 6e 25 3d 33 35 2d 28 69 63 6f 6e 25 2d 33 36 |on%=35-(icon%-36| 000018f0 29 0d 08 3e 2e 20 e7 20 62 75 74 25 3d 34 20 80 |)..>. . but%=4 .| 00001900 20 6b 65 79 64 6f 77 6e 25 3d 26 46 46 20 80 20 | keydown%=&FF . | 00001910 64 72 61 67 62 61 72 25 3c 3e 26 46 46 20 8c 0d |dragbar%<>&FF ..| 00001920 08 48 27 20 f2 75 70 64 61 74 65 5f 69 63 6f 6e |.H' .update_icon| 00001930 28 6d 61 69 6e 25 2c 69 63 6f 6e 25 2c 25 31 3c |(main%,icon%,%1<| 00001940 3c 32 31 2c 30 29 0d 08 52 0b 20 f2 67 65 74 69 |<21,0)..R. .geti| 00001950 66 0d 08 5c 29 20 e7 20 73 75 6e 65 65 64 65 64 |f..\) . suneeded| 00001960 25 20 f2 73 65 74 73 6f 75 6e 64 73 79 73 3a 73 |% .setsoundsys:s| 00001970 75 6e 65 65 64 65 64 25 3d a3 0d 08 66 5f 20 70 |uneeded%=...f_ p| 00001980 69 74 63 68 25 3d 70 69 74 63 68 74 61 62 6c 65 |itch%=pitchtable| 00001990 25 28 28 33 35 2d 69 63 6f 6e 25 29 83 20 31 32 |%((35-icon%). 12| 000019a0 29 2b 28 74 72 61 6e 73 25 2a 26 31 35 36 29 2b |)+(trans%*&156)+| 000019b0 28 26 31 30 30 30 2a 28 28 33 35 2d 69 63 6f 6e |(&1000*((35-icon| 000019c0 25 29 81 20 31 32 29 29 2b 28 28 6f 63 74 25 2d |%). 12))+((oct%-| 000019d0 31 29 2a 26 31 30 30 30 29 0d 08 70 3c 20 e7 20 |1)*&1000)..p< . | 000019e0 70 69 74 63 68 25 3e 30 20 80 20 70 69 74 63 68 |pitch%>0 . pitch| 000019f0 25 3c 3d 26 37 45 41 41 20 d4 20 63 68 61 6e 25 |%<=&7EAA . chan%| 00001a00 2c 76 6f 6c 75 6d 65 25 2c 70 69 74 63 68 25 2c |,volume%,pitch%,| 00001a10 64 75 72 61 25 0d 08 7a 13 20 6b 65 79 64 6f 77 |dura%..z. keydow| 00001a20 6e 25 3d 69 63 6f 6e 25 0d 08 84 0f 20 e7 20 ac |n%=icon%.... . .| 00001a30 20 6b 65 79 25 20 8c 0d 08 8e 42 20 62 6c 6b 25 | key% ....B blk%| 00001a40 21 34 3d 37 3a 62 6c 6b 25 21 32 34 3d 30 3a 62 |!4=7:blk%!24=0:b| 00001a50 6c 6b 25 21 32 38 3d 30 3a 62 6c 6b 25 21 33 32 |lk%!28=0:blk%!32| 00001a60 3d 73 77 69 64 74 68 25 3a 62 6c 6b 25 21 33 36 |=swidth%:blk%!36| 00001a70 3d 73 68 65 69 67 68 74 25 0d 08 98 1c 20 c8 99 |=sheight%.... ..| 00001a80 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 22 2c | "Wimp_DragBox",| 00001a90 2c 62 6c 6b 25 0d 08 a2 06 20 cd 0d 08 ac 06 20 |,blk%.... ..... | 00001aa0 cd 0d 08 b6 06 20 cd 0d 08 c0 06 20 3a 0d 08 ca |..... ..... :...| 00001ab0 0b 20 c9 20 63 6f 6e 25 0d 08 d4 10 20 e7 20 62 |. . con%.... . b| 00001ac0 75 74 25 3c 3e 32 20 8c 0d 08 de 14 20 f2 63 68 |ut%<>2 ..... .ch| 00001ad0 65 63 6b 63 68 61 6e 67 65 28 b9 29 0d 08 e8 0f |eckchange(.)....| 00001ae0 20 e7 20 62 75 74 25 3d 31 20 8c 0d 08 f2 26 20 | . but%=1 ....& | 00001af0 e7 20 69 63 6f 6e 25 20 83 20 32 3d 31 20 69 63 |. icon% . 2=1 ic| 00001b00 6f 6e 25 2d 3d 31 20 8b 20 69 63 6f 6e 25 2b 3d |on%-=1 . icon%+=| 00001b10 31 0d 08 fc 06 20 cd 0d 09 06 18 20 f2 73 65 74 |1.... ..... .set| 00001b20 76 61 72 73 3a c8 8e 20 69 63 6f 6e 25 20 ca 0d |vars:.. icon% ..| 00001b30 09 10 0a 20 c9 20 32 31 3a 0d 09 1a 1e 20 6f 63 |... . 21:.... oc| 00001b40 74 25 2b 3d 31 3a e7 20 6f 63 74 25 3e 3d 35 20 |t%+=1:. oct%>=5 | 00001b50 6f 63 74 25 3d 2d 34 0d 09 24 1f 20 f2 73 65 74 |oct%=-4..$. .set| 00001b60 5f 69 63 6f 6e 28 63 6f 6e 25 2c 32 33 2c c3 28 |_icon(con%,23,.(| 00001b70 6f 63 74 25 29 29 0d 09 2e 0a 20 c9 20 32 32 3a |oct%)).... . 22:| 00001b80 0d 09 38 1e 20 6f 63 74 25 2d 3d 31 3a e7 20 6f |..8. oct%-=1:. o| 00001b90 63 74 25 3c 3d 2d 35 20 6f 63 74 25 3d 34 0d 09 |ct%<=-5 oct%=4..| 00001ba0 42 1f 20 f2 73 65 74 5f 69 63 6f 6e 28 63 6f 6e |B. .set_icon(con| 00001bb0 25 2c 32 33 2c c3 28 6f 63 74 25 29 29 0d 09 4c |%,23,.(oct%))..L| 00001bc0 0a 20 c9 20 32 34 3a 0d 09 56 26 20 74 72 61 6e |. . 24:..V& tran| 00001bd0 73 25 2b 3d 31 3a e7 20 74 72 61 6e 73 25 3e 3d |s%+=1:. trans%>=| 00001be0 31 32 20 74 72 61 6e 73 25 3d 2d 31 31 0d 09 60 |12 trans%=-11..`| 00001bf0 21 20 f2 73 65 74 5f 69 63 6f 6e 28 63 6f 6e 25 |! .set_icon(con%| 00001c00 2c 32 36 2c c3 28 74 72 61 6e 73 25 29 29 0d 09 |,26,.(trans%))..| 00001c10 6a 0a 20 c9 20 32 35 3a 0d 09 74 26 20 74 72 61 |j. . 25:..t& tra| 00001c20 6e 73 25 2d 3d 31 3a e7 20 74 72 61 6e 73 25 3c |ns%-=1:. trans%<| 00001c30 3d 2d 31 32 20 74 72 61 6e 73 25 3d 31 31 0d 09 |=-12 trans%=11..| 00001c40 7e 21 20 f2 73 65 74 5f 69 63 6f 6e 28 63 6f 6e |~! .set_icon(con| 00001c50 25 2c 32 36 2c c3 28 74 72 61 6e 73 25 29 29 0d |%,26,.(trans%)).| 00001c60 09 88 0a 20 c9 20 32 37 3a 0d 09 92 20 20 63 68 |... . 27:... ch| 00001c70 61 6e 25 2b 3d 31 3a e7 20 63 68 61 6e 25 3e 3d |an%+=1:. chan%>=| 00001c80 39 20 63 68 61 6e 25 3d 31 0d 09 9c 20 20 f2 73 |9 chan%=1... .s| 00001c90 65 74 5f 69 63 6f 6e 28 63 6f 6e 25 2c 33 32 2c |et_icon(con%,32,| 00001ca0 c3 28 63 68 61 6e 25 29 29 0d 09 a6 10 20 73 75 |.(chan%)).... su| 00001cb0 6e 65 65 64 65 64 25 3d b9 0d 09 b0 0a 20 c9 20 |needed%=..... . | 00001cc0 32 38 3a 0d 09 ba 20 20 63 68 61 6e 25 2d 3d 31 |28:... chan%-=1| 00001cd0 3a e7 20 63 68 61 6e 25 3c 3d 30 20 63 68 61 6e |:. chan%<=0 chan| 00001ce0 25 3d 38 0d 09 c4 20 20 f2 73 65 74 5f 69 63 6f |%=8... .set_ico| 00001cf0 6e 28 63 6f 6e 25 2c 33 32 2c c3 28 63 68 61 6e |n(con%,32,.(chan| 00001d00 25 29 29 0d 09 ce 10 20 73 75 6e 65 65 64 65 64 |%)).... suneeded| 00001d10 25 3d b9 0d 09 d8 0a 20 c9 20 32 39 3a 0d 09 e2 |%=..... . 29:...| 00001d20 22 20 64 75 72 61 25 2b 3d 35 3a e7 20 64 75 72 |" dura%+=5:. dur| 00001d30 61 25 3e 3d 32 35 36 20 64 75 72 61 25 3d 30 0d |a%>=256 dura%=0.| 00001d40 09 ec 20 20 f2 73 65 74 5f 69 63 6f 6e 28 63 6f |.. .set_icon(co| 00001d50 6e 25 2c 33 31 2c c3 28 64 75 72 61 25 29 29 0d |n%,31,.(dura%)).| 00001d60 09 f6 0a 20 c9 20 33 30 3a 0d 0a 00 21 20 64 75 |... . 30:...! du| 00001d70 72 61 25 2d 3d 35 3a e7 20 64 75 72 61 25 3c 30 |ra%-=5:. dura%<0| 00001d80 20 64 75 72 61 25 3d 32 35 35 0d 0a 0a 20 20 f2 | dura%=255... .| 00001d90 73 65 74 5f 69 63 6f 6e 28 63 6f 6e 25 2c 33 31 |set_icon(con%,31| 00001da0 2c c3 28 64 75 72 61 25 29 29 0d 0a 14 1a 20 c9 |,.(dura%)).... .| 00001db0 20 32 30 2c 33 34 3a 20 f2 74 6f 67 67 6c 65 63 | 20,34: .togglec| 00001dc0 68 61 72 73 0d 0a 1e 28 20 f2 75 70 64 61 74 65 |hars...( .update| 00001dd0 5f 69 63 6f 6e 28 63 6f 6e 25 2c 33 34 2c 25 31 |_icon(con%,34,%1| 00001de0 3c 3c 32 31 2c 25 30 3c 3c 32 31 29 0d 0a 28 0c |<<21,%0<<21)..(.| 00001df0 20 c9 20 31 38 2c 31 39 0d 0a 32 2e 20 f2 67 65 | . 18,19..2. .ge| 00001e00 74 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 28 63 |t_window_state(c| 00001e10 6f 6e 25 29 3a f2 67 65 74 5f 70 6f 69 6e 74 65 |on%):.get_pointe| 00001e20 72 5f 69 6e 66 6f 0d 0a 3c 64 20 e7 20 69 63 6f |r_info..<d . ico| 00001e30 6e 25 3d 31 39 20 84 20 28 69 63 6f 6e 25 3d 31 |n%=19 . (icon%=1| 00001e40 38 20 80 20 28 6d 6f 75 73 65 78 25 3e 78 30 25 |8 . (mousex%>x0%| 00001e50 2b 34 36 20 80 20 6d 6f 75 73 65 78 25 3c 78 31 |+46 . mousex%<x1| 00001e60 25 2d 34 36 20 80 20 6d 6f 75 73 65 79 25 3e 79 |%-46 . mousey%>y| 00001e70 30 25 2b 36 32 20 80 20 6d 6f 75 73 65 79 25 3c |0%+62 . mousey%<| 00001e80 79 30 25 2b 38 36 29 29 20 8c 0d 0a 46 49 20 62 |y0%+86)) ...FI b| 00001e90 6c 6b 25 21 34 3d 37 3a 62 6c 6b 25 21 32 34 3d |lk%!4=7:blk%!24=| 00001ea0 78 30 25 2b 35 36 3a 62 6c 6b 25 21 32 38 3d 79 |x0%+56:blk%!28=y| 00001eb0 30 25 2b 36 36 3a 62 6c 6b 25 21 33 32 3d 78 31 |0%+66:blk%!32=x1| 00001ec0 25 2d 35 36 3a 62 6c 6b 25 21 33 36 3d 79 30 25 |%-56:blk%!36=y0%| 00001ed0 2b 38 32 0d 0a 50 1c 20 c8 99 20 22 57 69 6d 70 |+82..P. .. "Wimp| 00001ee0 5f 44 72 61 67 42 6f 78 22 2c 2c 62 6c 6b 25 0d |_DragBox",,blk%.| 00001ef0 0a 5a 1e 20 64 72 61 67 62 61 72 25 3d 26 46 46 |.Z. dragbar%=&FF| 00001f00 3a 6d 61 73 6b 25 3d 26 38 30 30 33 32 0d 0a 64 |:mask%=&80032..d| 00001f10 06 20 cd 0d 0a 6e 06 20 cb 0d 0a 78 06 20 cd 0d |. ...n. ...x. ..| 00001f20 0a 82 06 20 3a 0d 0a 8c 19 20 c9 20 73 61 6d 70 |... :.... . samp| 00001f30 6c 69 73 74 25 2c 73 61 6d 70 6c 65 73 25 0d 0a |list%,samples%..| 00001f40 96 18 20 e7 20 62 75 74 25 3d 34 20 84 20 62 75 |.. . but%=4 . bu| 00001f50 74 25 3d 31 20 8c 0d 0a a0 2f 20 e7 20 69 63 6f |t%=1 ..../ . ico| 00001f60 6e 25 3d 2d 31 20 84 20 68 61 6e 25 3d 73 61 6d |n%=-1 . han%=sam| 00001f70 70 6c 65 73 25 20 f2 65 6e 74 69 72 65 5f 6c 69 |ples% .entire_li| 00001f80 73 74 28 31 29 0d 0a aa 06 20 cd 0d 0a b4 06 20 |st(1).... ..... | 00001f90 3a 0d 0a be 0f 20 c9 20 73 61 76 65 62 6f 78 25 |:.... . savebox%| 00001fa0 0d 0a c8 0f 20 c8 8e 20 69 63 6f 6e 25 20 ca 0d |.... .. icon% ..| 00001fb0 0a d2 2c 20 c9 20 30 3a 20 e7 20 62 75 74 25 3c |.., . 0: . but%<| 00001fc0 3e 31 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 |>1 .. "Wimp_Crea| 00001fd0 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 0a dc 2f 20 |teMenu",,-1.../ | 00001fe0 f2 6b 65 79 62 6f 61 72 64 64 61 74 61 6f 75 74 |.keyboarddataout| 00001ff0 28 24 a4 69 63 6f 6e 61 64 64 72 28 73 61 76 65 |($.iconaddr(save| 00002000 62 6f 78 25 2c 32 29 2c b9 29 0d 0a e6 30 20 c9 |box%,2),.)...0 .| 00002010 20 33 3a 20 f2 64 72 61 67 5f 69 63 6f 6e 28 6d | 3: .drag_icon(m| 00002020 6f 75 73 65 78 25 2c 6d 6f 75 73 65 79 25 2c 73 |ousex%,mousey%,s| 00002030 61 76 65 62 6f 78 25 2c 33 29 0d 0a f0 06 20 cb |avebox%,3).... .| 00002040 0d 0a fa 06 20 3a 0d 0b 04 0e 20 c9 20 74 75 6e |.... :.... . tun| 00002050 69 6e 67 25 0d 0b 0e 10 20 e7 20 62 75 74 25 3c |ing%.... . but%<| 00002060 3e 32 20 8c 0d 0b 18 25 20 74 75 6e 6f 63 74 25 |>2 ....% tunoct%| 00002070 3d bb 28 24 a4 69 63 6f 6e 61 64 64 72 28 74 75 |=.($.iconaddr(tu| 00002080 6e 69 6e 67 25 2c 36 29 29 0d 0b 22 26 20 74 75 |ning%,6)).."& tu| 00002090 6e 73 65 6d 69 25 3d bb 28 24 a4 69 63 6f 6e 61 |nsemi%=.($.icona| 000020a0 64 64 72 28 74 75 6e 69 6e 67 25 2c 39 29 29 0d |ddr(tuning%,9)).| 000020b0 0b 2c 0f 20 c8 8e 20 69 63 6f 6e 25 20 ca 0d 0b |.,. .. icon% ...| 000020c0 36 08 20 c9 20 32 0d 0b 40 27 20 74 75 6e 6f 63 |6. . 2..@' tunoc| 000020d0 74 25 2b 3d 31 3a e7 20 74 75 6e 6f 63 74 25 3e |t%+=1:. tunoct%>| 000020e0 3d 34 20 74 75 6e 6f 63 74 25 3d 2d 33 0d 0b 4a |=4 tunoct%=-3..J| 000020f0 24 20 f2 73 65 74 5f 69 63 6f 6e 28 74 75 6e 69 |$ .set_icon(tuni| 00002100 6e 67 25 2c 36 2c c3 28 74 75 6e 6f 63 74 25 29 |ng%,6,.(tunoct%)| 00002110 29 0d 0b 54 08 20 c9 20 34 0d 0b 5e 27 20 74 75 |)..T. . 4..^' tu| 00002120 6e 6f 63 74 25 2d 3d 31 3a e7 20 74 75 6e 6f 63 |noct%-=1:. tunoc| 00002130 74 25 3c 3d 2d 34 20 74 75 6e 6f 63 74 25 3d 33 |t%<=-4 tunoct%=3| 00002140 0d 0b 68 24 20 f2 73 65 74 5f 69 63 6f 6e 28 74 |..h$ .set_icon(t| 00002150 75 6e 69 6e 67 25 2c 36 2c c3 28 74 75 6e 6f 63 |uning%,6,.(tunoc| 00002160 74 25 29 29 0d 0b 72 09 20 c9 20 31 33 0d 0b 7c |t%))..r. . 13..|| 00002170 2c 20 74 75 6e 73 65 6d 69 25 2b 3d 31 3a e7 20 |, tunsemi%+=1:. | 00002180 74 75 6e 73 65 6d 69 25 3e 3d 31 32 20 74 75 6e |tunsemi%>=12 tun| 00002190 73 65 6d 69 25 3d 2d 31 31 0d 0b 86 25 20 f2 73 |semi%=-11...% .s| 000021a0 65 74 5f 69 63 6f 6e 28 74 75 6e 69 6e 67 25 2c |et_icon(tuning%,| 000021b0 39 2c c3 28 74 75 6e 73 65 6d 69 25 29 29 0d 0b |9,.(tunsemi%))..| 000021c0 90 09 20 c9 20 31 31 0d 0b 9a 2c 20 74 75 6e 73 |.. . 11..., tuns| 000021d0 65 6d 69 25 2d 3d 31 3a e7 20 74 75 6e 73 65 6d |emi%-=1:. tunsem| 000021e0 69 25 3c 3d 2d 31 32 20 74 75 6e 73 65 6d 69 25 |i%<=-12 tunsemi%| 000021f0 3d 31 31 0d 0b a4 25 20 f2 73 65 74 5f 69 63 6f |=11...% .set_ico| 00002200 6e 28 74 75 6e 69 6e 67 25 2c 39 2c c3 28 74 75 |n(tuning%,9,.(tu| 00002210 6e 73 65 6d 69 25 29 29 0d 0b ae 09 20 c9 20 31 |nsemi%)).... . 1| 00002220 35 0d 0b b8 14 20 f2 63 68 65 63 6b 63 68 61 6e |5.... .checkchan| 00002230 67 65 28 b9 29 0d 0b c2 0e 20 2a 54 75 6e 69 6e |ge(.).... *Tunin| 00002240 67 20 30 0d 0b cc 31 20 ff 20 22 54 75 6e 69 6e |g 0...1 . "Tunin| 00002250 67 20 22 2b c3 28 28 74 75 6e 6f 63 74 25 2a 34 |g "+.((tunoct%*4| 00002260 30 39 36 29 2b 28 74 75 6e 73 65 6d 69 25 2a 33 |096)+(tunsemi%*3| 00002270 34 31 29 29 0d 0b d6 27 20 e7 20 62 75 74 25 3c |41))...' . but%<| 00002280 3e 31 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 |>1 .. "Wimp_Crea| 00002290 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 0b e0 06 20 |teMenu",,-1.... | 000022a0 cd 0d 0b ea 06 20 cb 0d 0b f4 06 20 3a 0d 0b fe |..... ..... :...| 000022b0 0f 20 c9 20 6d 65 73 73 61 67 65 25 0d 0c 08 1c |. . message%....| 000022c0 20 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 6d | .close_window(m| 000022d0 65 73 73 61 67 65 25 29 0d 0c 12 20 20 c8 99 20 |essage%)... .. | 000022e0 22 4f 53 5f 42 79 74 65 22 2c 26 43 39 2c 6b 65 |"OS_Byte",&C9,ke| 000022f0 79 73 74 61 74 25 2c 30 0d 0c 1c 1f 20 c8 97 20 |ystat%,0.... .. | 00002300 c8 93 20 30 2c 30 2c 73 77 69 64 74 68 25 2c 73 |.. 0,0,swidth%,s| 00002310 68 65 69 67 68 74 25 0d 0c 26 1d 20 e7 20 72 65 |height%..&. . re| 00002320 64 72 61 77 72 65 71 25 3d a3 20 f2 73 68 6f 77 |drawreq%=. .show| 00002330 6d 65 6e 75 0d 0c 30 10 20 e7 20 69 63 6f 6e 25 |menu..0. . icon%| 00002340 3d 32 20 8c 0d 0c 3a 13 20 20 c8 8e 20 6d 61 63 |=2 ...:. .. mac| 00002350 74 69 6f 6e 25 20 ca 0d 0c 44 14 20 20 c9 20 31 |tion% ...D. . 1| 00002360 3a 20 66 69 6e 69 73 68 25 3d b9 0d 0c 4e 25 20 |: finish%=...N% | 00002370 20 c9 20 32 3a 20 f2 6b 65 79 62 6f 61 72 64 64 | . 2: .keyboardd| 00002380 61 74 61 69 6e 28 66 69 6c 65 6e 61 6d 65 24 29 |atain(filename$)| 00002390 0d 0c 58 09 20 20 c9 20 33 0d 0c 62 10 20 20 63 |..X. . 3..b. c| 000023a0 68 61 6e 67 65 64 25 3d a3 0d 0c 6c 26 20 20 c8 |hanged%=...l& .| 000023b0 99 20 22 57 69 6d 70 5f 47 65 74 43 61 72 65 74 |. "Wimp_GetCaret| 000023c0 50 6f 73 69 74 69 6f 6e 22 2c 2c 62 6c 6b 25 0d |Position",,blk%.| 000023d0 0c 76 12 20 20 62 6c 6b 25 21 32 34 3d 26 31 46 |.v. blk%!24=&1F| 000023e0 43 0d 0c 80 2d 20 20 c8 99 20 22 57 69 6d 70 5f |C...- .. "Wimp_| 000023f0 53 65 6e 64 4d 65 73 73 61 67 65 22 2c 38 2c 62 |SendMessage",8,b| 00002400 6c 6b 25 2c 6d 65 73 73 62 6c 6b 25 21 34 0d 0c |lk%,messblk%!4..| 00002410 8a 07 20 20 cb 0d 0c 94 06 20 cc 0d 0c 9e 13 20 |.. ..... ..... | 00002420 20 c8 8e 20 6d 61 63 74 69 6f 6e 25 20 ca 0d 0c | .. maction% ...| 00002430 a8 37 20 20 c9 20 32 3a 20 e7 20 73 63 72 61 70 |.7 . 2: . scrap| 00002440 25 3c 3e 30 20 ff 20 22 44 65 6c 65 74 65 20 3c |%<>0 . "Delete <| 00002450 57 69 6d 70 24 53 63 72 61 70 3e 22 3a 73 63 72 |Wimp$Scrap>":scr| 00002460 61 70 25 3d 30 0d 0c b2 07 20 20 cb 0d 0c bc 06 |ap%=0.... .....| 00002470 20 cd 0d 0c c6 0f 20 6d 61 63 74 69 6f 6e 25 3d | ..... maction%=| 00002480 30 0d 0c d0 06 20 cb 0d 0c da 06 20 e1 0d 0c e4 |0.... ..... ....| 00002490 04 0d 0c ee 20 20 dd f2 66 69 72 73 74 5f 69 74 |.... ..first_it| 000024a0 65 6d 73 28 67 31 25 2c 67 32 25 2c 68 61 6e 25 |ems(g1%,g2%,han%| 000024b0 29 0d 0c f8 09 20 ea 20 61 25 0d 0d 02 22 20 e7 |).... . a%..." .| 000024c0 20 67 31 25 3d b9 20 84 20 a4 69 63 6f 6e 73 5f | g1%=. . .icons_| 000024d0 73 65 6c 65 63 74 65 64 3d 30 20 8c 0d 0d 0c 2a |selected=0 ....*| 000024e0 20 f2 6d 65 6e 75 5f 74 65 78 74 28 22 53 61 6d | .menu_text("Sam| 000024f0 70 6c 65 20 27 27 22 2c 77 69 6e 6d 65 6e 75 25 |ple ''",winmenu%| 00002500 2b 32 38 2c 31 29 0d 0d 16 21 20 77 69 6e 6d 65 |+28,1)...! winme| 00002510 6e 75 25 21 31 36 3d 6d 65 6e 75 77 69 64 74 68 |nu%!16=menuwidth| 00002520 25 3a 67 31 25 3d b9 0d 0d 20 06 20 cc 0d 0d 2a |%:g1%=... . ...*| 00002530 14 20 e7 20 68 61 6e 25 3c 3e 6d 61 69 6e 25 20 |. . han%<>main% | 00002540 8c 0d 0d 34 1a 20 e7 20 a4 69 63 6f 6e 73 5f 73 |...4. . .icons_s| 00002550 65 6c 65 63 74 65 64 3d 31 20 8c 0d 0d 3e 39 20 |elected=1 ...>9 | 00002560 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 63 |.. "Wimp_WhichIc| 00002570 6f 6e 22 2c 73 61 6d 70 6c 69 73 74 25 2c 62 6c |on",samplist%,bl| 00002580 6b 25 2b 31 32 38 2c 25 31 3c 3c 32 31 2c 25 31 |k%+128,%1<<21,%1| 00002590 3c 3c 32 31 0d 0d 48 3a 20 74 65 78 74 24 3d 22 |<<21..H: text$="| 000025a0 53 61 6d 70 6c 65 20 27 22 2b a4 69 63 6f 6e 74 |Sample '"+.icont| 000025b0 65 78 74 28 73 61 6d 70 6c 69 73 74 25 2c 21 28 |ext(samplist%,!(| 000025c0 62 6c 6b 25 2b 31 32 38 29 29 2b 22 27 22 0d 0d |blk%+128))+"'"..| 000025d0 52 24 20 f2 6d 65 6e 75 5f 74 65 78 74 28 74 65 |R$ .menu_text(te| 000025e0 78 74 24 2c 77 69 6e 6d 65 6e 75 25 2b 32 38 2c |xt$,winmenu%+28,| 000025f0 30 29 0d 0d 5c 19 20 61 25 3d 28 28 a9 20 74 65 |0)..\. a%=((. te| 00002600 78 74 24 29 2a 31 36 29 2b 31 34 0d 0d 66 3c 20 |xt$)*16)+14..f< | 00002610 e7 20 61 25 3e 6d 65 6e 75 77 69 64 74 68 25 20 |. a%>menuwidth% | 00002620 77 69 6e 6d 65 6e 75 25 21 31 36 3d 61 25 20 8b |winmenu%!16=a% .| 00002630 20 77 69 6e 6d 65 6e 75 25 21 31 36 3d 6d 65 6e | winmenu%!16=men| 00002640 75 77 69 64 74 68 25 0d 0d 70 20 20 f2 75 70 64 |uwidth%..p .upd| 00002650 61 74 65 69 6e 66 6f 62 6f 78 28 21 28 62 6c 6b |ateinfobox(!(blk| 00002660 25 2b 31 32 38 29 29 0d 0d 7a 06 20 cc 0d 0d 84 |%+128))..z. ....| 00002670 2a 20 f2 6d 65 6e 75 5f 74 65 78 74 28 22 53 65 |* .menu_text("Se| 00002680 6c 65 63 74 69 6f 6e 22 2c 77 69 6e 6d 65 6e 75 |lection",winmenu| 00002690 25 2b 32 38 2c 30 29 0d 0d 8e 1b 20 77 69 6e 6d |%+28,0).... winm| 000026a0 65 6e 75 25 21 31 36 3d 6d 65 6e 75 77 69 64 74 |enu%!16=menuwidt| 000026b0 68 25 0d 0d 98 06 20 cd 0d 0d a2 15 20 f2 73 65 |h%.... ..... .se| 000026c0 6c 65 63 74 69 6f 6e 5f 69 74 65 6d 73 0d 0d ac |lection_items...| 000026d0 06 20 cd 0d 0d b6 06 20 cd 0d 0d c0 2e 20 77 69 |. ..... ..... wi| 000026e0 6e 6d 65 6e 75 25 21 33 36 3d a4 53 70 65 63 49 |nmenu%!36=.SpecI| 000026f0 74 65 6d 28 67 31 25 2c 77 69 6e 6d 65 6e 75 25 |tem(g1%,winmenu%| 00002700 21 33 36 2c 32 32 29 0d 0d ca 62 20 e7 20 6e 65 |!36,22)...b . ne| 00002710 78 74 25 3e 30 20 77 69 6e 6d 65 6e 75 25 21 36 |xt%>0 winmenu%!6| 00002720 30 3d a4 53 70 65 63 49 74 65 6d 28 67 32 25 2c |0=.SpecItem(g2%,| 00002730 77 69 6e 6d 65 6e 75 25 21 36 30 2c 32 32 29 20 |winmenu%!60,22) | 00002740 8b 20 77 69 6e 6d 65 6e 75 25 21 36 30 3d a4 53 |. winmenu%!60=.S| 00002750 70 65 63 49 74 65 6d 28 b9 2c 77 69 6e 6d 65 6e |pecItem(.,winmen| 00002760 75 25 21 36 30 2c 32 32 29 0d 0d d4 06 20 e1 0d |u%!60,22).... ..| 00002770 0d de 04 0d 0d e8 16 20 dd f2 73 65 6c 65 63 74 |....... ..select| 00002780 69 6f 6e 5f 69 74 65 6d 73 0d 0d f2 1e 20 ea 20 |ion_items.... . | 00002790 61 25 2c 62 25 2c 69 25 3a 61 25 3d a3 3a 62 25 |a%,b%,i%:a%=.:b%| 000027a0 3d a3 3a 69 25 3d a3 0d 0d fc 29 20 e7 20 a4 63 |=.:i%=....) . .c| 000027b0 68 65 63 6b 5f 6c 69 73 74 28 30 29 3d b9 20 84 |heck_list(0)=. .| 000027c0 20 63 6f 75 6e 74 25 3e 3d 33 32 20 61 25 3d b9 | count%>=32 a%=.| 000027d0 0d 0e 06 1c 20 e7 20 a4 63 68 65 63 6b 5f 6c 69 |.... . .check_li| 000027e0 73 74 28 31 29 3d b9 20 62 25 3d b9 0d 0e 10 2f |st(1)=. b%=..../| 000027f0 20 77 69 6e 6d 65 6e 75 25 21 32 35 36 3d a4 53 | winmenu%!256=.S| 00002800 70 65 63 49 74 65 6d 28 61 25 2c 77 69 6e 6d 65 |pecItem(a%,winme| 00002810 6e 75 25 21 32 35 36 2c 32 32 29 0d 0e 1a 2f 20 |nu%!256,22).../ | 00002820 77 69 6e 6d 65 6e 75 25 21 32 38 30 3d a4 53 70 |winmenu%!280=.Sp| 00002830 65 63 49 74 65 6d 28 62 25 2c 77 69 6e 6d 65 6e |ecItem(b%,winmen| 00002840 75 25 21 32 38 30 2c 32 32 29 0d 0e 24 1d 20 e7 |u%!280,22)..$. .| 00002850 20 a4 69 63 6f 6e 73 5f 73 65 6c 65 63 74 65 64 | .icons_selected| 00002860 3e 31 20 69 25 3d b9 0d 0e 2e 2f 20 77 69 6e 6d |>1 i%=..../ winm| 00002870 65 6e 75 25 21 32 30 38 3d a4 53 70 65 63 49 74 |enu%!208=.SpecIt| 00002880 65 6d 28 69 25 2c 77 69 6e 6d 65 6e 75 25 21 32 |em(i%,winmenu%!2| 00002890 30 38 2c 32 32 29 0d 0e 38 06 20 e1 0d 0e 42 04 |08,22)..8. ...B.| 000028a0 0d 0e 4c 1a 20 dd f2 6d 65 6e 75 5f 77 69 64 74 |..L. ..menu_widt| 000028b0 68 28 70 25 2c 6c 65 6e 25 29 0d 0e 56 31 20 e7 |h(p%,len%)..V1 .| 000028c0 20 6c 65 6e 25 3e 31 36 20 21 70 25 3d 28 6c 65 | len%>16 !p%=(le| 000028d0 6e 25 2a 31 36 29 2b 31 46 34 20 8b 20 21 70 25 |n%*16)+1F4 . !p%| 000028e0 3d 28 31 36 2a 31 36 29 2b 31 34 0d 0e 60 06 20 |=(16*16)+14..`. | 000028f0 e1 0d 0e 6a 04 0d 0e 74 22 20 dd f2 6b 65 79 5f |...j...t" ..key_| 00002900 70 72 65 73 73 65 64 28 68 61 6e 25 2c 69 63 6f |pressed(han%,ico| 00002910 6e 25 2c 63 68 25 29 0d 0e 7e 18 20 ea 20 70 25 |n%,ch%)..~. . p%| 00002920 2c 6b 25 2c 63 69 25 2c 73 25 3a 70 25 3d a3 0d |,k%,ci%,s%:p%=..| 00002930 0e 88 3e 20 e7 20 68 61 6e 25 3c 3e 73 61 76 65 |..> . han%<>save| 00002940 62 6f 78 25 20 80 20 68 61 6e 25 3c 3e 74 75 6e |box% . han%<>tun| 00002950 69 6e 67 25 20 c8 99 20 22 57 69 6d 70 5f 43 72 |ing% .. "Wimp_Cr| 00002960 65 61 74 65 4d 65 6e 75 22 2c 2c 2d 31 0d 0e 92 |eateMenu",,-1...| 00002970 06 20 3a 0d 0e 9c 0e 20 c8 8e 20 68 61 6e 25 20 |. :.... .. han% | 00002980 ca 0d 0e a6 0b 20 c9 20 63 6f 6e 25 0d 0e b0 12 |..... . con%....| 00002990 20 73 25 3d a4 73 68 6f 72 74 63 75 74 73 0d 0e | s%=.shortcuts..| 000029a0 ba 0d 20 c8 8e 20 63 68 25 20 ca 0d 0e c4 0b 20 |.. .. ch% ..... | 000029b0 c9 20 26 31 38 46 0d 0e ce 0f 20 c8 8e 20 69 63 |. &18F.... .. ic| 000029c0 6f 6e 25 20 ca 0d 0e d8 11 20 c9 20 32 33 3a 20 |on% ..... . 23: | 000029d0 63 69 25 3d 33 31 0d 0e e2 11 20 c9 20 32 36 3a |ci%=31.... . 26:| 000029e0 20 63 69 25 3d 32 33 0d 0e ec 11 20 c9 20 33 32 | ci%=23.... . 32| 000029f0 3a 20 63 69 25 3d 32 36 0d 0e f6 11 20 c9 20 33 |: ci%=26.... . 3| 00002a00 31 3a 20 63 69 25 3d 33 32 0d 0f 00 06 20 cb 0d |1: ci%=32.... ..| 00002a10 0f 0a 15 20 f2 63 61 72 65 74 28 63 6f 6e 25 2c |... .caret(con%,| 00002a20 63 69 25 29 0d 0f 14 0e 20 c9 20 26 31 38 45 2c |ci%).... . &18E,| 00002a30 26 44 0d 0f 1e 0f 20 c8 8e 20 69 63 6f 6e 25 20 |&D.... .. icon% | 00002a40 ca 0d 0f 28 11 20 c9 20 32 33 3a 20 63 69 25 3d |...(. . 23: ci%=| 00002a50 32 36 0d 0f 32 11 20 c9 20 32 36 3a 20 63 69 25 |26..2. . 26: ci%| 00002a60 3d 33 32 0d 0f 3c 11 20 c9 20 33 32 3a 20 63 69 |=32..<. . 32: ci| 00002a70 25 3d 33 31 0d 0f 46 11 20 c9 20 33 31 3a 20 63 |%=31..F. . 31: c| 00002a80 69 25 3d 32 33 0d 0f 50 06 20 cb 0d 0f 5a 15 20 |i%=23..P. ...Z. | 00002a90 f2 63 61 72 65 74 28 63 6f 6e 25 2c 63 69 25 29 |.caret(con%,ci%)| 00002aa0 0d 0f 64 06 20 7f 0d 0f 6e 10 20 e7 20 73 25 3d |..d. ...n. . s%=| 00002ab0 a3 20 70 25 3d b9 0d 0f 78 06 20 cb 0d 0f 82 06 |. p%=...x. .....| 00002ac0 20 3a 0d 0f 8c 0f 20 c9 20 73 61 76 65 62 6f 78 | :.... . savebox| 00002ad0 25 0d 0f 96 35 20 e7 20 63 68 25 3d 26 44 20 f2 |%...5 . ch%=&D .| 00002ae0 6d 6f 75 73 65 5f 63 6c 69 63 6b 28 30 2c 30 2c |mouse_click(0,0,| 00002af0 34 2c 73 61 76 65 62 6f 78 25 2c 30 2c 30 29 20 |4,savebox%,0,0) | 00002b00 8b 20 70 25 3d b9 0d 0f a0 06 20 3a 0d 0f aa 0e |. p%=..... :....| 00002b10 20 c9 20 74 75 6e 69 6e 67 25 0d 0f b4 09 20 70 | . tuning%.... p| 00002b20 25 3d b9 0d 0f be 19 20 e7 20 63 68 25 3d 26 44 |%=..... . ch%=&D| 00002b30 20 80 20 69 63 6f 6e 25 3d 39 20 8c 0d 0f c8 2b | . icon%=9 ....+| 00002b40 20 20 f2 6d 6f 75 73 65 5f 63 6c 69 63 6b 28 30 | .mouse_click(0| 00002b50 2c 30 2c 34 2c 74 75 6e 69 6e 67 25 2c 31 35 2c |,0,4,tuning%,15,| 00002b60 30 29 3a 70 25 3d a3 0d 0f d2 06 20 cc 0d 0f dc |0):p%=..... ....| 00002b70 26 20 20 e7 20 63 68 25 3d 26 31 38 46 20 84 20 |& . ch%=&18F . | 00002b80 63 68 25 3d 26 31 38 45 20 84 20 63 68 25 3d 26 |ch%=&18E . ch%=&| 00002b90 44 20 8c 0d 0f e6 35 20 20 e7 20 69 63 6f 6e 25 |D ....5 . icon%| 00002ba0 3d 36 20 f2 63 61 72 65 74 28 74 75 6e 69 6e 67 |=6 .caret(tuning| 00002bb0 25 2c 39 29 20 8b 20 f2 63 61 72 65 74 28 74 75 |%,9) . .caret(tu| 00002bc0 6e 69 6e 67 25 2c 36 29 0d 0f f0 0a 20 20 70 25 |ning%,6).... p%| 00002bd0 3d a3 0d 0f fa 07 20 20 cd 0d 10 04 06 20 cd 0d |=..... ..... ..| 00002be0 10 0e 06 20 3a 0d 10 18 0c 20 c9 20 6d 61 69 6e |... :.... . main| 00002bf0 25 0d 10 22 12 20 73 25 3d a4 73 68 6f 72 74 63 |%..". s%=.shortc| 00002c00 75 74 73 0d 10 2c 22 20 e7 20 63 68 25 3e 39 36 |uts..," . ch%>96| 00002c10 20 80 20 63 68 25 3c 31 32 33 20 63 68 25 3d 63 | . ch%<123 ch%=c| 00002c20 68 25 2d 33 32 0d 10 36 18 20 6b 25 3d a7 6b 65 |h%-32..6. k%=.ke| 00002c30 79 6d 61 70 24 2c bd 28 63 68 25 29 29 0d 10 40 |ymap$,.(ch%))..@| 00002c40 0d 20 e7 20 6b 25 3e 30 20 8c 0d 10 4a 15 20 e7 |. . k%>0 ...J. .| 00002c50 20 6b 65 79 64 6f 77 6e 25 3d 26 46 46 20 8c 0d | keydown%=&FF ..| 00002c60 10 54 26 20 f2 6d 6f 75 73 65 5f 63 6c 69 63 6b |.T& .mouse_click| 00002c70 28 30 2c 30 2c 34 2c 6d 61 69 6e 25 2c 33 36 2d |(0,0,4,main%,36-| 00002c80 6b 25 2c b9 29 0d 10 5e 20 20 6b 65 79 64 6f 77 |k%,.)..^ keydow| 00002c90 6e 25 3d 33 36 2d 6b 25 3a 6d 61 73 6b 25 3d 26 |n%=36-k%:mask%=&| 00002ca0 38 30 30 33 32 0d 10 68 06 20 cd 0d 10 72 2a 20 |80032..h. ...r* | 00002cb0 e7 20 6b 65 79 64 6f 77 6e 25 3c 3e 26 46 46 20 |. keydown%<>&FF | 00002cc0 80 20 28 33 36 2d 6b 25 3c 3e 6b 65 79 64 6f 77 |. (36-k%<>keydow| 00002cd0 6e 25 29 20 8c 0d 10 7c 11 20 f2 64 65 63 6f 64 |n%) ...|. .decod| 00002ce0 65 5f 64 72 61 67 0d 10 86 26 20 f2 6d 6f 75 73 |e_drag...& .mous| 00002cf0 65 5f 63 6c 69 63 6b 28 30 2c 30 2c 34 2c 6d 61 |e_click(0,0,4,ma| 00002d00 69 6e 25 2c 33 36 2d 6b 25 2c b9 29 0d 10 90 20 |in%,36-k%,.)... | 00002d10 20 6b 65 79 64 6f 77 6e 25 3d 33 36 2d 6b 25 3a | keydown%=36-k%:| 00002d20 6d 61 73 6b 25 3d 26 38 30 30 33 32 0d 10 9a 06 |mask%=&80032....| 00002d30 20 cd 0d 10 a4 06 20 cc 0d 10 ae 10 20 e7 20 73 | ..... ..... . s| 00002d40 25 3d a3 20 70 25 3d b9 0d 10 b8 06 20 cd 0d 10 |%=. p%=..... ...| 00002d50 c2 06 20 cb 0d 10 cc 22 20 e7 20 70 25 20 c8 99 |.. ...." . p% ..| 00002d60 20 22 57 69 6d 70 5f 50 72 6f 63 65 73 73 4b 65 | "Wimp_ProcessKe| 00002d70 79 22 2c 63 68 25 0d 10 d6 06 20 e1 0d 10 e0 04 |y",ch%.... .....| 00002d80 0d 10 ea 10 20 dd a4 73 68 6f 72 74 63 75 74 73 |.... ..shortcuts| 00002d90 0d 10 f4 0e 20 ea 20 61 25 3a 61 25 3d b9 0d 10 |.... . a%:a%=...| 00002da0 fe 0d 20 c8 8e 20 63 68 25 20 ca 0d 11 08 0b 20 |.. .. ch% ..... | 00002db0 c9 20 26 31 38 33 0d 11 12 12 20 f2 73 65 74 73 |. &183.... .sets| 00002dc0 61 76 65 66 69 65 6c 64 0d 11 1c 16 20 f2 67 65 |avefield.... .ge| 00002dd0 74 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 6f 0d 11 |t_pointer_info..| 00002de0 26 33 20 c8 99 20 22 57 69 6d 70 5f 43 72 65 61 |&3 .. "Wimp_Crea| 00002df0 74 65 4d 65 6e 75 22 2c 2c 73 61 76 65 62 6f 78 |teMenu",,savebox| 00002e00 25 2c 6d 6f 75 73 65 78 25 2c 6d 6f 75 73 65 79 |%,mousex%,mousey| 00002e10 25 0d 11 30 0d 20 c9 20 31 32 37 2c 32 34 0d 11 |%..0. . 127,24..| 00002e20 3a 24 20 e7 20 a4 69 63 6f 6e 73 5f 73 65 6c 65 |:$ . .icons_sele| 00002e30 63 74 65 64 3e 30 20 80 20 6e 65 78 74 25 3e 30 |cted>0 . next%>0| 00002e40 20 8c 0d 11 44 16 20 c8 99 20 22 48 6f 75 72 67 | ...D. .. "Hourg| 00002e50 6c 61 73 73 5f 4f 6e 22 0d 11 4e 24 20 f2 65 6e |lass_On"..N$ .en| 00002e60 74 69 72 65 5f 6c 69 73 74 28 32 29 3a f2 63 68 |tire_list(2):.ch| 00002e70 65 63 6b 63 68 61 6e 67 65 28 a3 29 0d 11 58 14 |eckchange(.)..X.| 00002e80 20 f2 65 6e 74 69 72 65 5f 6c 69 73 74 28 33 29 | .entire_list(3)| 00002e90 0d 11 62 20 20 f2 66 69 72 73 74 5f 69 74 65 6d |..b .first_item| 00002ea0 73 28 b9 2c a3 2c 73 61 6d 70 6c 69 73 74 25 29 |s(.,.,samplist%)| 00002eb0 0d 11 6c 15 20 f2 75 70 64 61 74 65 76 6f 69 63 |..l. .updatevoic| 00002ec0 65 6c 69 73 74 0d 11 76 17 20 c8 99 20 22 48 6f |elist..v. .. "Ho| 00002ed0 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 11 80 06 |urglass_Off"....| 00002ee0 20 cd 0d 11 8a 09 20 c9 20 32 36 0d 11 94 14 20 | ..... . 26.... | 00002ef0 f2 65 6e 74 69 72 65 5f 6c 69 73 74 28 31 29 0d |.entire_list(1).| 00002f00 11 9e 20 20 f2 66 69 72 73 74 5f 69 74 65 6d 73 |.. .first_items| 00002f10 28 b9 2c a3 2c 73 61 6d 70 6c 69 73 74 25 29 0d |(.,.,samplist%).| 00002f20 11 a8 08 20 c9 20 31 0d 11 b2 14 20 f2 65 6e 74 |... . 1.... .ent| 00002f30 69 72 65 5f 6c 69 73 74 28 30 29 0d 11 bc 20 20 |ire_list(0)... | 00002f40 f2 66 69 72 73 74 5f 69 74 65 6d 73 28 a3 2c a3 |.first_items(.,.| 00002f50 2c 73 61 6d 70 6c 69 73 74 25 29 0d 11 c6 09 20 |,samplist%).... | 00002f60 c9 20 31 39 0d 11 d0 4f 20 e7 20 73 61 6d 70 6f |. 19...O . sampo| 00002f70 70 65 6e 25 3d a3 20 73 61 6d 70 6f 70 65 6e 25 |pen%=. sampopen%| 00002f80 3d b9 3a 77 69 6e 6d 65 6e 75 25 21 34 34 34 3d |=.:winmenu%!444=| 00002f90 a4 53 70 65 63 49 74 65 6d 28 73 61 6d 70 6f 70 |.SpecItem(sampop| 00002fa0 65 6e 25 2c 77 69 6e 6d 65 6e 75 25 21 34 34 34 |en%,winmenu%!444| 00002fb0 2c 30 29 0d 11 da 1e 20 f2 70 6f 70 75 70 5f 77 |,0).... .popup_w| 00002fc0 69 6e 64 6f 77 28 73 61 6d 70 6c 65 73 25 2c 30 |indow(samples%,0| 00002fd0 29 0d 11 e4 08 20 c9 20 33 0d 11 ee 1a 20 f2 70 |).... . 3.... .p| 00002fe0 6f 70 75 70 5f 77 69 6e 64 6f 77 28 63 6f 6e 25 |opup_window(con%| 00002ff0 2c 30 29 0d 11 f8 4f 20 e7 20 63 6f 6e 74 72 6f |,0)...O . contro| 00003000 6c 73 25 3d a3 20 63 6f 6e 74 72 6f 6c 73 25 3d |ls%=. controls%=| 00003010 b9 3a 77 69 6e 6d 65 6e 75 25 21 34 32 30 3d a4 |.:winmenu%!420=.| 00003020 53 70 65 63 49 74 65 6d 28 63 6f 6e 74 72 6f 6c |SpecItem(control| 00003030 73 25 2c 77 69 6e 6d 65 6e 75 25 21 34 32 30 2c |s%,winmenu%!420,| 00003040 30 29 0d 12 02 09 20 c9 20 32 32 0d 12 0c 16 20 |0).... . 22.... | 00003050 f2 67 65 74 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 |.get_pointer_inf| 00003060 6f 0d 12 16 2f 20 63 75 72 6d 65 6e 75 25 3d 76 |o.../ curmenu%=v| 00003070 6c 6d 65 6e 75 25 3a 63 6d 78 25 3d 6d 6f 75 73 |lmenu%:cmx%=mous| 00003080 65 78 25 3a 63 6d 79 25 3d 6d 6f 75 73 65 79 25 |ex%:cmy%=mousey%| 00003090 0d 12 20 1f 20 f2 75 70 64 61 74 65 76 6f 69 63 |.. . .updatevoic| 000030a0 65 6c 69 73 74 3a f2 73 68 6f 77 6d 65 6e 75 0d |elist:.showmenu.| 000030b0 12 2a 08 20 c9 20 39 0d 12 34 14 20 f2 65 6e 74 |.*. . 9..4. .ent| 000030c0 69 72 65 5f 6c 69 73 74 28 35 29 0d 12 3e 15 20 |ire_list(5)..>. | 000030d0 f2 75 70 64 61 74 65 76 6f 69 63 65 6c 69 73 74 |.updatevoicelist| 000030e0 0d 12 48 09 20 c9 20 31 38 0d 12 52 14 20 f2 65 |..H. . 18..R. .e| 000030f0 6e 74 69 72 65 5f 6c 69 73 74 28 36 29 0d 12 5c |ntire_list(6)..\| 00003100 15 20 f2 75 70 64 61 74 65 76 6f 69 63 65 6c 69 |. .updatevoiceli| 00003110 73 74 0d 12 66 09 20 c9 20 32 30 0d 12 70 16 20 |st..f. . 20..p. | 00003120 f2 67 65 74 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 |.get_pointer_inf| 00003130 6f 0d 12 7a 32 20 c8 99 20 22 57 69 6d 70 5f 43 |o..z2 .. "Wimp_C| 00003140 72 65 61 74 65 4d 65 6e 75 22 2c 2c 74 75 6e 69 |reateMenu",,tuni| 00003150 6e 67 25 2c 6d 6f 75 73 65 78 25 2c 6d 6f 75 73 |ng%,mousex%,mous| 00003160 65 79 25 0d 12 84 06 20 7f 0d 12 8e 09 20 61 25 |ey%.... ..... a%| 00003170 3d a3 0d 12 98 06 20 cb 0d 12 a2 08 20 3d 61 25 |=..... ..... =a%| 00003180 0d 12 ac 04 0d 12 b6 13 20 dd f2 73 65 74 73 61 |........ ..setsa| 00003190 76 65 66 69 65 6c 64 0d 12 c0 0c 20 ea 20 74 24 |vefield.... . t$| 000031a0 2c 61 24 0d 12 ca 1c 20 f2 67 65 74 5f 77 69 6e |,a$.... .get_win| 000031b0 64 6f 77 5f 69 6e 66 6f 28 6d 61 69 6e 25 29 0d |dow_info(main%).| 000031c0 12 d4 48 20 e7 20 28 62 6c 6b 25 21 38 30 20 80 |..H . (blk%!80 .| 000031d0 20 25 31 30 30 30 30 30 30 30 30 29 3d 30 20 85 | %100000000)=0 .| 000031e0 20 31 2c 22 57 69 6e 64 6f 77 20 74 69 74 6c 65 | 1,"Window title| 000031f0 20 62 61 72 20 69 73 20 6e 6f 74 20 69 6e 64 69 | bar is not indi| 00003200 72 65 63 74 65 64 22 0d 12 de 12 20 74 24 3d 24 |rected".... t$=$| 00003210 28 62 6c 6b 25 21 37 36 29 0d 12 e8 1d 20 e7 20 |(blk%!76).... . | 00003220 63 68 61 6e 67 65 64 25 20 74 24 3d c0 74 24 2c |changed% t$=.t$,| 00003230 a9 74 24 2d 32 29 0d 12 f2 56 20 e7 20 c0 74 24 |.t$-2)...V . .t$| 00003240 2c 38 29 3d 22 4b 65 79 62 6f 61 72 64 22 20 f2 |,8)="Keyboard" .| 00003250 73 65 74 5f 69 63 6f 6e 28 73 61 76 65 62 6f 78 |set_icon(savebox| 00003260 25 2c 32 2c 22 53 61 6d 70 6c 65 4c 69 73 74 22 |%,2,"SampleList"| 00003270 29 20 8b 20 f2 73 65 74 5f 69 63 6f 6e 28 73 61 |) . .set_icon(sa| 00003280 76 65 62 6f 78 25 2c 32 2c 74 24 29 0d 12 fc 06 |vebox%,2,t$)....| 00003290 20 e1 0d 13 06 04 0d 13 10 15 20 dd f2 63 61 72 | ......... ..car| 000032a0 65 74 28 68 61 6e 25 2c 69 25 29 0d 13 1a 09 20 |et(han%,i%).... | 000032b0 ea 20 61 25 0d 13 24 1e 20 61 25 3d a9 28 24 a4 |. a%..$. a%=.($.| 000032c0 69 63 6f 6e 61 64 64 72 28 68 61 6e 25 2c 69 25 |iconaddr(han%,i%| 000032d0 29 29 0d 13 2e 31 20 c8 99 20 22 57 69 6d 70 5f |))...1 .. "Wimp_| 000032e0 53 65 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e |SetCaretPosition| 000032f0 22 2c 68 61 6e 25 2c 69 25 2c 30 2c 30 2c 2d 31 |",han%,i%,0,0,-1| 00003300 2c 61 25 0d 13 38 06 20 e1 0d 13 42 04 0d 13 4c |,a%..8. ...B...L| 00003310 1f 20 dd f2 73 65 74 5f 69 63 6f 6e 28 68 61 6e |. ..set_icon(han| 00003320 25 2c 69 25 2c 76 61 6c 75 65 24 29 0d 13 56 09 |%,i%,value$)..V.| 00003330 20 ea 20 41 25 0d 13 60 1a 20 41 25 3d a4 69 63 | . A%..`. A%=.ic| 00003340 6f 6e 61 64 64 72 28 68 61 6e 25 2c 69 25 29 0d |onaddr(han%,i%).| 00003350 13 6a 0f 20 24 41 25 3d 76 61 6c 75 65 24 0d 13 |.j. $A%=value$..| 00003360 74 1e 20 f2 75 70 64 61 74 65 5f 69 63 6f 6e 28 |t. .update_icon(| 00003370 68 61 6e 25 2c 69 25 2c 30 2c 30 29 0d 13 7e 25 |han%,i%,0,0)..~%| 00003380 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 43 61 72 | .. "Wimp_GetCar| 00003390 65 74 50 6f 73 69 74 69 6f 6e 22 2c 2c 62 6c 6b |etPosition",,blk| 000033a0 25 0d 13 88 1f 20 e7 20 21 62 6c 6b 25 3d 68 61 |%.... . !blk%=ha| 000033b0 6e 25 20 80 20 62 6c 6b 25 21 34 3d 69 25 20 8c |n% . blk%!4=i% .| 000033c0 0d 13 92 10 20 41 25 3d a9 20 76 61 6c 75 65 24 |.... A%=. value$| 000033d0 0d 13 9c 2f 20 c8 99 20 22 57 69 6d 70 5f 53 65 |.../ .. "Wimp_Se| 000033e0 74 43 61 72 65 74 50 6f 73 69 74 69 6f 6e 22 2c |tCaretPosition",| 000033f0 68 61 6e 25 2c 69 25 2c 2c 2c 2d 31 2c 41 25 0d |han%,i%,,,-1,A%.| 00003400 13 a6 06 20 cd 0d 13 b0 06 20 e1 0d 13 ba 04 0d |... ..... ......| 00003410 13 c4 21 20 dd f2 75 70 64 61 74 65 5f 69 63 6f |..! ..update_ico| 00003420 6e 28 68 61 6e 25 2c 69 25 2c 65 25 2c 63 25 29 |n(han%,i%,e%,c%)| 00003430 0d 13 ce 1a 20 62 6c 6b 25 21 30 3d 68 61 6e 25 |.... blk%!0=han%| 00003440 3a 62 6c 6b 25 21 34 3d 69 25 0d 13 d8 19 20 62 |:blk%!4=i%.... b| 00003450 6c 6b 25 21 38 3d 65 25 3a 62 6c 6b 25 21 31 32 |lk%!8=e%:blk%!12| 00003460 3d 63 25 0d 13 e2 21 20 c8 99 20 22 57 69 6d 70 |=c%...! .. "Wimp| 00003470 5f 53 65 74 49 63 6f 6e 53 74 61 74 65 22 2c 2c |_SetIconState",,| 00003480 62 6c 6b 25 0d 13 ec 06 20 e1 0d 13 f6 04 0d 14 |blk%.... .......| 00003490 00 16 20 dd a4 69 63 6f 6e 61 64 64 72 28 68 25 |.. ..iconaddr(h%| 000034a0 2c 69 25 29 0d 14 0a 1b 20 f2 67 65 74 5f 69 63 |,i%).... .get_ic| 000034b0 6f 6e 5f 73 74 61 74 65 28 68 25 2c 69 25 29 0d |on_state(h%,i%).| 000034c0 14 14 3c 20 e7 20 28 62 6c 6b 25 21 32 34 20 80 |..< . (blk%!24 .| 000034d0 20 25 31 30 30 30 30 30 30 30 30 29 3d 30 20 85 | %100000000)=0 .| 000034e0 20 31 2c 22 49 63 6f 6e 20 69 73 20 6e 6f 74 20 | 1,"Icon is not | 000034f0 69 6e 64 69 72 65 63 74 65 64 22 0d 14 1e 0d 20 |indirected".... | 00003500 3d 62 6c 6b 25 21 32 38 0d 14 28 04 0d 14 32 16 |=blk%!28..(...2.| 00003510 20 dd a4 69 63 6f 6e 74 65 78 74 28 68 25 2c 69 | ..icontext(h%,i| 00003520 25 29 0d 14 3c 1b 20 f2 67 65 74 5f 69 63 6f 6e |%)..<. .get_icon| 00003530 5f 73 74 61 74 65 28 68 25 2c 69 25 29 0d 14 46 |_state(h%,i%)..F| 00003540 38 20 e7 20 28 62 6c 6b 25 21 32 34 20 80 20 25 |8 . (blk%!24 . %| 00003550 31 30 30 30 30 30 30 30 30 29 3d 31 20 85 20 31 |100000000)=1 . 1| 00003560 2c 22 49 63 6f 6e 20 69 73 20 69 6e 64 69 72 65 |,"Icon is indire| 00003570 63 74 65 64 22 0d 14 50 10 20 3d 24 28 62 6c 6b |cted"..P. =$(blk| 00003580 25 2b 32 38 29 0d 14 5a 04 0d 14 64 19 20 dd f2 |%+28)..Z...d. ..| 00003590 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 68 61 6e |close_window(han| 000035a0 25 29 0d 14 6e 0f 20 21 62 6c 6b 25 3d 68 61 6e |%)..n. !blk%=han| 000035b0 25 0d 14 78 20 20 c8 99 20 22 57 69 6d 70 5f 43 |%..x .. "Wimp_C| 000035c0 6c 6f 73 65 57 69 6e 64 6f 77 22 2c 2c 62 6c 6b |loseWindow",,blk| 000035d0 25 0d 14 82 0e 20 c8 8e 20 68 61 6e 25 20 ca 0d |%.... .. han% ..| 000035e0 14 8c 25 20 c9 20 6d 61 69 6e 25 3a 20 6d 61 69 |..% . main%: mai| 000035f0 6e 6f 70 65 6e 25 3d a3 3a 69 66 6e 65 65 64 65 |nopen%=.:ifneede| 00003600 64 25 3d b9 0d 14 96 0b 20 c9 20 63 6f 6e 25 0d |d%=..... . con%.| 00003610 14 a0 10 20 63 6f 6e 74 72 6f 6c 73 25 3d a3 0d |... controls%=..| 00003620 14 aa 35 20 77 69 6e 6d 65 6e 75 25 21 34 32 30 |..5 winmenu%!420| 00003630 3d a4 53 70 65 63 49 74 65 6d 28 63 6f 6e 74 72 |=.SpecItem(contr| 00003640 6f 6c 73 25 2c 77 69 6e 6d 65 6e 75 25 21 34 32 |ols%,winmenu%!42| 00003650 30 2c 30 29 0d 14 b4 0f 20 c9 20 73 61 6d 70 6c |0,0).... . sampl| 00003660 65 73 25 0d 14 be 29 20 f2 63 6c 6f 73 65 5f 77 |es%...) .close_w| 00003670 69 6e 64 6f 77 28 73 61 6d 70 6c 69 73 74 25 29 |indow(samplist%)| 00003680 3a 73 61 6d 70 6f 70 65 6e 25 3d a3 0d 14 c8 35 |:sampopen%=....5| 00003690 20 77 69 6e 6d 65 6e 75 25 21 34 34 34 3d a4 53 | winmenu%!444=.S| 000036a0 70 65 63 49 74 65 6d 28 73 61 6d 70 6f 70 65 6e |pecItem(sampopen| 000036b0 25 2c 77 69 6e 6d 65 6e 75 25 21 34 34 34 2c 30 |%,winmenu%!444,0| 000036c0 29 0d 14 d2 06 20 cb 0d 14 dc 06 20 e1 0d 14 e6 |).... ..... ....| 000036d0 04 0d 14 f0 10 20 dd f2 63 6c 6f 73 65 64 6f 77 |..... ..closedow| 000036e0 6e 0d 14 fa 0c 20 ea 20 4e 25 2c 61 25 0d 15 04 |n.... . N%,a%...| 000036f0 10 20 e7 20 6e 65 78 74 25 3e 30 20 8c 0d 15 0e |. . next%>0 ....| 00003700 15 20 e3 20 4e 25 3d 30 20 b8 20 6e 65 78 74 25 |. . N%=0 . next%| 00003710 2d 31 0d 15 18 2c 20 e7 20 3f 28 63 6f 64 65 25 |-1..., . ?(code%| 00003720 2b 26 39 44 30 2b 4e 25 29 3e 30 20 f2 72 65 6d |+&9D0+N%)>0 .rem| 00003730 6f 76 65 5f 73 61 6d 70 6c 65 28 4e 25 29 0d 15 |ove_sample(N%)..| 00003740 22 06 20 ed 0d 15 2c 06 20 cd 0d 15 36 32 20 e7 |". ...,. ...62 .| 00003750 20 73 61 6d 70 6c 65 62 61 73 65 25 3e 30 20 c8 | samplebase%>0 .| 00003760 99 20 22 4f 53 5f 4d 6f 64 75 6c 65 22 2c 37 2c |. "OS_Module",7,| 00003770 2c 73 61 6d 70 6c 65 62 61 73 65 25 0d 15 40 26 |,samplebase%..@&| 00003780 20 e7 20 63 6f 64 65 25 3e 30 20 c8 99 20 22 4f | . code%>0 .. "O| 00003790 53 5f 4d 6f 64 75 6c 65 22 2c 37 2c 2c 63 6f 64 |S_Module",7,,cod| 000037a0 65 25 0d 15 4a 19 20 c8 99 20 22 48 6f 75 72 67 |e%..J. .. "Hourg| 000037b0 6c 61 73 73 5f 53 6d 61 73 68 22 0d 15 54 18 20 |lass_Smash"..T. | 000037c0 c8 99 20 22 57 69 6d 70 5f 43 6c 6f 73 65 44 6f |.. "Wimp_CloseDo| 000037d0 77 6e 22 0d 15 5e 06 20 e1 0d 15 68 04 0d 15 72 |wn"..^. ...h...r| 000037e0 22 20 dd a4 6d 65 6e 75 74 72 65 65 28 6d 65 6e |" ..menutree(men| 000037f0 75 73 25 2c 76 6f 69 63 65 6c 69 73 74 25 29 0d |us%,voicelist%).| 00003800 15 7c 40 20 ea 20 4e 25 2c 4e 32 25 2c 6e 65 78 |.|@ . N%,N2%,nex| 00003810 74 25 2c 6d 65 6e 75 73 74 61 72 74 25 2c 74 72 |t%,menustart%,tr| 00003820 65 65 73 74 61 72 74 25 2c 74 65 78 74 24 2c 6d |eestart%,text$,m| 00003830 61 78 6c 65 6e 25 2c 6d 65 6e 75 70 74 72 25 0d |axlen%,menuptr%.| 00003840 15 86 19 20 6d 65 6e 75 70 74 72 25 3d 6d 64 61 |... menuptr%=mda| 00003850 74 61 73 74 61 72 74 25 0d 15 90 18 20 74 72 65 |tastart%.... tre| 00003860 65 73 74 61 72 74 25 3d 6d 65 6e 75 70 74 72 25 |estart%=menuptr%| 00003870 0d 15 9a 14 20 e3 20 4e 25 3d 31 20 b8 20 6d 65 |.... . N%=1 . me| 00003880 6e 75 73 25 0d 15 a4 18 20 6d 65 6e 75 73 74 61 |nus%.... menusta| 00003890 72 74 25 3d 6d 65 6e 75 70 74 72 25 0d 15 ae 33 |rt%=menuptr%...3| 000038a0 20 f3 20 74 65 78 74 24 3a e7 20 a9 20 74 65 78 | . text$:. . tex| 000038b0 74 24 3e 31 32 20 85 20 31 2c 22 4d 65 6e 75 20 |t$>12 . 1,"Menu | 000038c0 74 69 74 6c 65 20 74 6f 6f 20 6c 6f 6e 67 22 0d |title too long".| 000038d0 15 b8 24 20 24 6d 65 6e 75 70 74 72 25 3d 74 65 |..$ $menuptr%=te| 000038e0 78 74 24 3a 6d 61 78 6c 65 6e 25 3d a9 20 74 65 |xt$:maxlen%=. te| 000038f0 78 74 24 0d 15 c2 3c 20 6d 65 6e 75 70 74 72 25 |xt$...< menuptr%| 00003900 3f 31 32 3d 37 3a 6d 65 6e 75 70 74 72 25 3f 31 |?12=7:menuptr%?1| 00003910 33 3d 32 3a 6d 65 6e 75 70 74 72 25 3f 31 34 3d |3=2:menuptr%?14=| 00003920 37 3a 6d 65 6e 75 70 74 72 25 3f 31 35 3d 30 0d |7:menuptr%?15=0.| 00003930 15 cc 2e 20 6d 65 6e 75 70 74 72 25 21 32 30 3d |... menuptr%!20=| 00003940 34 34 3a 6d 65 6e 75 70 74 72 25 21 32 34 3d 30 |44:menuptr%!24=0| 00003950 3a 6d 65 6e 75 70 74 72 25 2b 3d 32 38 0d 15 d6 |:menuptr%+=28...| 00003960 0d 20 63 6f 75 6e 74 25 3d 30 0d 15 e0 0c 20 f3 |. count%=0.... .| 00003970 20 6e 65 78 74 25 0d 15 ea 14 20 e3 20 4e 32 25 | next%.... . N2%| 00003980 3d 31 20 b8 20 6e 65 78 74 25 0d 15 f4 10 20 f2 |=1 . next%.... .| 00003990 6d 65 6e 75 69 74 65 6d 3a ed 0d 15 fe 26 20 6d |menuitem:....& m| 000039a0 65 6e 75 70 74 72 25 21 2d 32 34 3d 28 6d 65 6e |enuptr%!-24=(men| 000039b0 75 70 74 72 25 21 2d 32 34 29 20 84 20 26 38 30 |uptr%!-24) . &80| 000039c0 0d 16 08 22 20 6d 65 6e 75 73 74 61 72 74 25 21 |..." menustart%!| 000039d0 31 36 3d 28 6d 61 78 6c 65 6e 25 2a 31 36 29 2b |16=(maxlen%*16)+| 000039e0 31 34 0d 16 12 06 20 ed 0d 16 1c 15 20 e7 20 76 |14.... ..... . v| 000039f0 6f 69 63 65 6c 69 73 74 25 3d a3 20 8c 0d 16 26 |oicelist%=. ...&| 00003a00 19 20 6d 64 61 74 61 73 74 61 72 74 25 3d 6d 65 |. mdatastart%=me| 00003a10 6e 75 70 74 72 25 0d 16 30 06 20 cc 0d 16 3a 65 |nuptr%..0. ...:e| 00003a20 20 e7 20 63 6f 75 6e 74 25 3d 30 20 77 69 6e 6d | . count%=0 winm| 00003a30 65 6e 75 25 21 31 30 38 3d a4 53 70 65 63 49 74 |enu%!108=.SpecIt| 00003a40 65 6d 28 b9 2c 77 69 6e 6d 65 6e 75 25 21 31 30 |em(.,winmenu%!10| 00003a50 38 2c 32 32 29 20 8b 20 77 69 6e 6d 65 6e 75 25 |8,22) . winmenu%| 00003a60 21 31 30 38 3d a4 53 70 65 63 49 74 65 6d 28 a3 |!108=.SpecItem(.| 00003a70 2c 77 69 6e 6d 65 6e 75 25 21 31 30 38 2c 32 32 |,winmenu%!108,22| 00003a80 29 0d 16 44 12 20 6d 76 25 28 63 6f 75 6e 74 25 |)..D. mv%(count%| 00003a90 29 3d 30 0d 16 4e 06 20 cd 0d 16 58 3b 20 e7 20 |)=0..N. ...X; . | 00003aa0 6d 64 61 74 61 73 74 61 72 74 25 3e 6d 65 6e 75 |mdatastart%>menu| 00003ab0 64 61 74 61 25 2b 26 36 30 30 20 85 20 31 2c 22 |data%+&600 . 1,"| 00003ac0 4d 65 6e 75 20 64 61 74 61 20 61 72 65 61 20 66 |Menu data area f| 00003ad0 75 6c 6c 22 0d 16 62 2e 20 f2 6c 69 6e 6b 73 28 |ull"..b. .links(| 00003ae0 74 72 65 65 73 74 61 72 74 25 2c 6d 64 61 74 61 |treestart%,mdata| 00003af0 73 74 61 72 74 25 2d 74 72 65 65 73 74 61 72 74 |start%-treestart| 00003b00 25 29 0d 16 6c 10 20 3d 74 72 65 65 73 74 61 72 |%)..l. =treestar| 00003b10 74 25 0d 16 76 04 0d 16 80 0f 20 dd f2 6d 65 6e |t%..v..... ..men| 00003b20 75 69 74 65 6d 0d 16 8a 19 20 ea 20 74 65 78 74 |uitem.... . text| 00003b30 24 2c 66 6c 61 67 25 2c 69 74 25 2c 66 25 0d 16 |$,flag%,it%,f%..| 00003b40 94 13 20 e7 20 76 6f 69 63 65 6c 69 73 74 25 20 |.. . voicelist% | 00003b50 8c 0d 16 9e 28 20 20 c8 99 20 22 53 6f 75 6e 64 |....( .. "Sound| 00003b60 5f 49 6e 73 74 61 6c 6c 56 6f 69 63 65 22 2c 30 |_InstallVoice",0| 00003b70 2c 4e 32 25 20 b8 20 66 25 0d 16 a8 33 20 20 e7 |,N2% . f%...3 .| 00003b80 20 66 25 3c 3e 30 20 c8 99 20 22 53 6f 75 6e 64 | f%<>0 .. "Sound| 00003b90 5f 49 6e 73 74 61 6c 6c 56 6f 69 63 65 22 2c 30 |_InstallVoice",0| 00003ba0 2c 4e 32 25 20 b8 20 74 65 78 74 24 0d 16 b2 0f |,N2% . text$....| 00003bb0 20 20 e7 20 66 25 3c 3e 30 20 8c 0d 16 bc 1f 20 | . f%<>0 ..... | 00003bc0 20 6d 76 25 28 63 6f 75 6e 74 25 29 3d 4e 32 25 | mv%(count%)=N2%| 00003bd0 3a 63 6f 75 6e 74 25 2b 3d 31 0d 16 c6 07 20 20 |:count%+=1.... | 00003be0 cc 0d 16 d0 31 20 20 e7 20 28 4e 32 25 3d 33 32 |....1 . (N2%=32| 00003bf0 20 80 20 63 6f 75 6e 74 25 3d 30 29 20 74 65 78 | . count%=0) tex| 00003c00 74 24 3d 22 2a 2a 2a 2a 22 3a 66 25 3d 30 20 8b |t$="****":f%=0 .| 00003c10 20 e1 0d 16 da 07 20 20 cd 0d 16 e4 06 20 cc 0d | ..... ..... ..| 00003c20 16 ee 13 20 20 f3 20 74 65 78 74 24 2c 66 6c 61 |... . text$,fla| 00003c30 67 25 0d 16 f8 06 20 cd 0d 17 02 34 20 6d 65 6e |g%.... ....4 men| 00003c40 75 70 74 72 25 21 30 3d 30 3a 6d 65 6e 75 70 74 |uptr%!0=0:menupt| 00003c50 72 25 21 34 3d 2d 31 3a 6d 65 6e 75 70 74 72 25 |r%!4=-1:menuptr%| 00003c60 21 38 3d 26 30 37 30 30 30 30 32 31 0d 17 0c 13 |!8=&07000021....| 00003c70 20 e7 20 76 6f 69 63 65 6c 69 73 74 25 20 8c 0d | . voicelist% ..| 00003c80 17 16 21 20 f2 6d 65 6e 75 5f 74 65 78 74 28 74 |..! .menu_text(t| 00003c90 65 78 74 24 2c 6d 65 6e 75 70 74 72 25 2c 32 29 |ext$,menuptr%,2)| 00003ca0 0d 17 20 06 20 cc 0d 17 2a 21 20 f2 6d 65 6e 75 |.. . ...*! .menu| 00003cb0 5f 74 65 78 74 28 74 65 78 74 24 2c 6d 65 6e 75 |_text(text$,menu| 00003cc0 70 74 72 25 2c 30 29 0d 17 34 06 20 cd 0d 17 3e |ptr%,0)..4. ...>| 00003cd0 23 20 e7 20 66 6c 61 67 25 20 80 20 32 20 21 6d |# . flag% . 2 !m| 00003ce0 65 6e 75 70 74 72 25 3d 32 20 80 20 25 31 31 31 |enuptr%=2 . %111| 00003cf0 0d 17 48 33 20 e7 20 66 6c 61 67 25 20 80 20 31 |..H3 . flag% . 1| 00003d00 20 21 6d 65 6e 75 70 74 72 25 3d a4 53 70 65 63 | !menuptr%=.Spec| 00003d10 49 74 65 6d 28 b9 2c 21 6d 65 6e 75 70 74 72 25 |Item(.,!menuptr%| 00003d20 2c 30 29 0d 17 52 36 20 e7 20 66 6c 61 67 25 20 |,0)..R6 . flag% | 00003d30 80 20 34 20 6d 65 6e 75 70 74 72 25 21 38 3d a4 |. 4 menuptr%!8=.| 00003d40 53 70 65 63 49 74 65 6d 28 b9 2c 6d 65 6e 75 70 |SpecItem(.,menup| 00003d50 74 72 25 21 38 2c 32 32 29 0d 17 5c 11 20 6d 65 |tr%!8,22)..\. me| 00003d60 6e 75 70 74 72 25 2b 3d 32 34 0d 17 66 06 20 e1 |nuptr%+=24..f. .| 00003d70 0d 17 70 04 0d 17 7a 1d 20 dd f2 6d 65 6e 75 5f |..p...z. ..menu_| 00003d80 74 65 78 74 28 74 24 2c 6d 70 74 72 25 2c 70 25 |text(t$,mptr%,p%| 00003d90 29 0d 17 84 09 20 ea 20 73 25 0d 17 8e 19 20 e7 |).... . s%.... .| 00003da0 20 a9 20 74 24 3e 32 31 20 74 24 3d c0 74 24 2c | . t$>21 t$=.t$,| 00003db0 32 31 29 0d 17 98 10 20 e7 20 a9 20 74 24 3c 31 |21).... . . t$<1| 00003dc0 32 20 8c 0d 17 a2 14 20 20 24 28 6d 70 74 72 25 |2 ..... $(mptr%| 00003dd0 2b 31 32 29 3d 74 24 0d 17 ac 1e 20 20 6d 70 74 |+12)=t$.... mpt| 00003de0 72 25 21 38 3d 6d 70 74 72 25 21 38 20 80 20 ac |r%!8=mptr%!8 . .| 00003df0 20 26 31 30 30 0d 17 b6 06 20 cc 0d 17 c0 0d 20 | &100.... ..... | 00003e00 20 c8 8e 20 70 25 20 ca 0d 17 ca 15 20 20 c9 20 | .. p% ..... . | 00003e10 31 3a 20 73 25 3d 66 6d 69 74 65 6d 25 0d 17 d4 |1: s%=fmitem%...| 00003e20 28 20 20 c9 20 32 3a 20 73 25 3d 76 6c 73 74 61 |( . 2: s%=vlsta| 00003e30 72 74 25 3a 76 6c 73 74 61 72 74 25 2b 3d 28 a9 |rt%:vlstart%+=(.| 00003e40 74 24 2b 31 29 0d 17 de 1d 20 20 7f 3a 20 73 25 |t$+1).... .: s%| 00003e50 3d a4 74 65 78 74 73 70 61 63 65 28 a9 74 24 2b |=.textspace(.t$+| 00003e60 31 29 0d 17 e8 07 20 20 cb 0d 17 f2 0c 20 20 24 |1).... ..... $| 00003e70 73 25 3d 74 24 0d 17 fc 2c 20 20 6d 70 74 72 25 |s%=t$..., mptr%| 00003e80 21 31 32 3d 73 25 3a 6d 70 74 72 25 21 31 36 3d |!12=s%:mptr%!16=| 00003e90 2d 31 3a 6d 70 74 72 25 21 32 30 3d a9 74 24 2b |-1:mptr%!20=.t$+| 00003ea0 31 0d 18 06 1c 20 20 6d 70 74 72 25 21 38 3d 6d |1.... mptr%!8=m| 00003eb0 70 74 72 25 21 38 20 84 20 26 31 30 30 0d 18 10 |ptr%!8 . &100...| 00003ec0 06 20 cd 0d 18 1a 20 20 e7 20 a9 20 74 24 3e 6d |. .... . . t$>m| 00003ed0 61 78 6c 65 6e 25 20 6d 61 78 6c 65 6e 25 3d a9 |axlen% maxlen%=.| 00003ee0 20 74 24 0d 18 24 06 20 e1 0d 18 2e 04 0d 18 38 | t$..$. .......8| 00003ef0 14 20 dd a4 74 65 78 74 73 70 61 63 65 28 4c 25 |. ..textspace(L%| 00003f00 29 0d 18 42 12 20 62 75 66 73 74 61 72 74 25 2b |)..B. bufstart%+| 00003f10 3d 4c 25 0d 18 4c 35 20 e7 20 62 75 66 73 74 61 |=L%..L5 . bufsta| 00003f20 72 74 25 3e 28 62 75 66 25 2b 26 31 30 30 30 29 |rt%>(buf%+&1000)| 00003f30 20 85 20 31 2c 22 42 75 66 66 65 72 20 73 70 61 | . 1,"Buffer spa| 00003f40 63 65 20 66 75 6c 6c 22 0d 18 56 12 20 3d 62 75 |ce full"..V. =bu| 00003f50 66 73 74 61 72 74 25 2d 4c 25 0d 18 60 04 0d 18 |fstart%-L%..`...| 00003f60 6a 1d 20 dd f2 6c 69 6e 6b 73 28 64 61 74 61 73 |j. ..links(datas| 00003f70 74 61 72 74 25 2c 6c 65 6e 25 29 0d 18 74 38 20 |tart%,len%)..t8 | 00003f80 ea 20 70 74 72 31 25 2c 70 74 72 32 25 2c 6e 6f |. ptr1%,ptr2%,no| 00003f90 6c 69 6e 6b 73 25 2c 4e 25 2c 73 74 61 72 74 6d |links%,N%,startm| 00003fa0 65 6e 75 24 2c 69 74 65 6d 25 2c 64 65 73 74 6f |enu$,item%,desto| 00003fb0 62 6a 24 0d 18 7e 1e 20 f3 20 6e 6f 6c 69 6e 6b |bj$..~. . nolink| 00003fc0 73 25 3a e7 20 6e 6f 6c 69 6e 6b 73 25 3d 30 20 |s%:. nolinks%=0 | 00003fd0 e1 0d 18 88 16 20 e3 20 4e 25 3d 31 20 b8 20 6e |..... . N%=1 . n| 00003fe0 6f 6c 69 6e 6b 73 25 0d 18 92 20 20 f3 20 73 74 |olinks%... . st| 00003ff0 61 72 74 6d 65 6e 75 24 2c 69 74 65 6d 25 2c 64 |artmenu$,item%,d| 00004000 65 73 74 6f 62 6a 24 0d 18 9c 2e 20 70 74 72 31 |estobj$.... ptr1| 00004010 25 3d a4 6d 65 6e 75 73 74 61 72 74 28 73 74 61 |%=.menustart(sta| 00004020 72 74 6d 65 6e 75 24 2c 64 61 74 61 73 74 61 72 |rtmenu$,datastar| 00004030 74 25 2d 31 29 0d 18 a6 20 20 70 74 72 31 25 2b |t%-1)... ptr1%+| 00004040 3d 32 38 3a 70 74 72 31 25 2b 3d 28 69 74 65 6d |=28:ptr1%+=(item| 00004050 25 2a 32 34 29 0d 18 b0 18 20 e7 20 c0 64 65 73 |%*24).... . .des| 00004060 74 6f 62 6a 24 2c 31 29 3d 22 23 22 8c 0d 18 ba |tobj$,1)="#"....| 00004070 28 20 70 74 72 31 25 21 34 3d a0 28 c2 64 65 73 |( ptr1%!4=.(.des| 00004080 74 6f 62 6a 24 2c 28 a9 64 65 73 74 6f 62 6a 24 |tobj$,(.destobj$| 00004090 2d 31 29 29 29 0d 18 c4 06 20 cc 0d 18 ce 2c 20 |-1))).... ...., | 000040a0 70 74 72 32 25 3d a4 6d 65 6e 75 73 74 61 72 74 |ptr2%=.menustart| 000040b0 28 64 65 73 74 6f 62 6a 24 2c 64 61 74 61 73 74 |(destobj$,datast| 000040c0 61 72 74 25 2d 31 29 0d 18 d8 12 20 70 74 72 31 |art%-1).... ptr1| 000040d0 25 21 34 3d 70 74 72 32 25 0d 18 e2 06 20 cd 0d |%!4=ptr2%.... ..| 000040e0 18 ec 06 20 ed 0d 18 f6 06 20 e1 0d 19 00 04 0d |... ..... ......| 000040f0 19 0a 17 20 dd a4 6d 65 6e 75 73 74 61 72 74 28 |... ..menustart(| 00004100 6d 24 2c 70 25 29 0d 19 14 0c 20 f5 3a 70 25 2b |m$,p%).... .:p%+| 00004110 3d 31 0d 19 1e 35 20 e7 20 70 25 3e 28 64 61 74 |=1...5 . p%>(dat| 00004120 61 73 74 61 72 74 25 2b 6c 65 6e 25 29 20 85 20 |astart%+len%) . | 00004130 31 2c 22 46 61 69 6c 65 64 20 74 6f 20 6c 69 6e |1,"Failed to lin| 00004140 6b 20 6d 65 6e 75 22 0d 19 28 39 20 fd 20 24 70 |k menu"..(9 . $p| 00004150 25 3d 6d 24 20 80 20 70 25 3f 31 32 3d 37 20 80 |%=m$ . p%?12=7 .| 00004160 20 70 25 3f 31 33 3d 32 20 80 20 70 25 3f 31 34 | p%?13=2 . p%?14| 00004170 3d 37 20 80 20 70 25 3f 31 35 3d 30 3a 3d 70 25 |=7 . p%?15=0:=p%| 00004180 0d 19 32 04 0d 19 3c 0f 20 dd f2 73 68 6f 77 6d |..2...<. ..showm| 00004190 65 6e 75 0d 19 46 2d 20 c8 99 20 22 57 69 6d 70 |enu..F- .. "Wimp| 000041a0 5f 43 72 65 61 74 65 4d 65 6e 75 22 2c 2c 63 75 |_CreateMenu",,cu| 000041b0 72 6d 65 6e 75 25 2c 63 6d 78 25 2c 63 6d 79 25 |rmenu%,cmx%,cmy%| 000041c0 0d 19 50 0e 20 72 64 6d 65 6e 75 25 3d 30 0d 19 |..P. rdmenu%=0..| 000041d0 5a 06 20 e1 0d 19 64 04 0d 19 6e 1c 20 dd f2 64 |Z. ...d...n. ..d| 000041e0 65 63 6f 64 65 5f 6d 65 6e 75 28 6d 73 65 6c 65 |ecode_menu(msele| 000041f0 63 74 25 29 0d 19 78 1c 20 ea 20 70 25 2c 61 25 |ct%)..x. . p%,a%| 00004200 2c 76 24 3a 72 65 64 72 61 77 72 65 71 25 3d b9 |,v$:redrawreq%=.| 00004210 0d 19 82 31 20 c8 99 20 22 57 69 6d 70 5f 44 65 |...1 .. "Wimp_De| 00004220 63 6f 64 65 4d 65 6e 75 22 2c 2c 63 75 72 6d 65 |codeMenu",,curme| 00004230 6e 75 25 2c 6d 73 65 6c 65 63 74 25 2c 6d 73 74 |nu%,mselect%,mst| 00004240 25 0d 19 8c 3a 20 e7 20 28 21 6d 73 65 6c 65 63 |%...: . (!mselec| 00004250 74 25 3d 33 20 80 20 6d 73 65 6c 65 63 74 25 21 |t%=3 . mselect%!| 00004260 34 3c 3e 2d 31 29 20 84 20 63 75 72 6d 65 6e 75 |4<>-1) . curmenu| 00004270 25 3d 76 6c 6d 65 6e 75 25 20 8c 0d 19 96 34 20 |%=vlmenu% ....4 | 00004280 e7 20 63 75 72 6d 65 6e 75 25 3d 76 6c 6d 65 6e |. curmenu%=vlmen| 00004290 75 25 20 70 25 3d 21 6d 73 65 6c 65 63 74 25 20 |u% p%=!mselect% | 000042a0 8b 20 70 25 3d 6d 73 65 6c 65 63 74 25 21 34 0d |. p%=mselect%!4.| 000042b0 19 a0 15 20 e7 20 70 25 3c 30 20 84 20 70 25 3e |... . p%<0 . p%>| 000042c0 33 32 20 e1 0d 19 aa 2b 20 c8 99 20 22 53 6f 75 |32 ....+ .. "Sou| 000042d0 6e 64 5f 49 6e 73 74 61 6c 6c 56 6f 69 63 65 22 |nd_InstallVoice"| 000042e0 2c 30 2c 6d 76 25 28 70 25 29 20 b8 20 61 25 0d |,0,mv%(p%) . a%.| 000042f0 19 b4 56 20 e7 20 61 25 3c 3e 30 20 c8 99 20 22 |..V . a%<>0 .. "| 00004300 53 6f 75 6e 64 5f 49 6e 73 74 61 6c 6c 56 6f 69 |Sound_InstallVoi| 00004310 63 65 22 2c 30 2c 6d 76 25 28 70 25 29 20 b8 20 |ce",0,mv%(p%) . | 00004320 76 24 20 8b 20 c8 99 20 22 53 6f 75 6e 64 5f 49 |v$ . .. "Sound_I| 00004330 6e 73 74 61 6c 6c 56 6f 69 63 65 22 2c 30 2c 31 |nstallVoice",0,1| 00004340 20 b8 20 76 24 0d 19 be 11 20 63 75 72 76 6f 69 | . v$.... curvoi| 00004350 63 65 24 3d 76 24 0d 19 c8 59 20 e7 20 61 25 3d |ce$=v$...Y . a%=| 00004360 30 20 76 6c 73 65 6c 25 3d 70 25 3a f2 75 70 64 |0 vlsel%=p%:.upd| 00004370 61 74 65 76 6f 69 63 65 6c 69 73 74 3a f2 6d 65 |atevoicelist:.me| 00004380 6e 75 72 65 64 72 61 77 3a f2 72 65 70 6f 72 74 |nuredraw:.report| 00004390 5f 65 72 72 28 22 56 6f 69 63 65 20 6e 6f 74 20 |_err("Voice not | 000043a0 66 6f 75 6e 64 22 2c 31 30 30 2c 9e 29 3a e1 0d |found",100,.):..| 000043b0 19 d2 45 20 76 6c 6d 65 6e 75 25 21 28 32 38 2b |..E vlmenu%!(28+| 000043c0 28 76 6c 73 65 6c 25 2a 32 34 29 29 3d a4 53 70 |(vlsel%*24))=.Sp| 000043d0 65 63 49 74 65 6d 28 a3 2c 76 6c 6d 65 6e 75 25 |ecItem(.,vlmenu%| 000043e0 21 28 32 38 2b 28 76 6c 73 65 6c 25 2a 32 34 29 |!(28+(vlsel%*24)| 000043f0 29 2c 30 29 0d 19 dc 3d 20 76 6c 6d 65 6e 75 25 |),0)...= vlmenu%| 00004400 21 28 32 38 2b 28 70 25 2a 32 34 29 29 3d a4 53 |!(28+(p%*24))=.S| 00004410 70 65 63 49 74 65 6d 28 b9 2c 76 6c 6d 65 6e 75 |pecItem(.,vlmenu| 00004420 25 21 28 32 38 2b 28 70 25 2a 32 34 29 29 2c 30 |%!(28+(p%*24)),0| 00004430 29 0d 19 e6 1a 20 76 6c 73 65 6c 25 3d 70 25 3a |).... vlsel%=p%:| 00004440 73 75 6e 65 65 64 65 64 25 3d b9 0d 19 f0 14 20 |suneeded%=..... | 00004450 f2 63 68 65 63 6b 63 68 61 6e 67 65 28 b9 29 0d |.checkchange(.).| 00004460 19 fa 06 20 cd 0d 1a 04 0f 20 c8 8e 20 24 6d 73 |... ..... .. $ms| 00004470 74 25 20 ca 0d 1a 0e 20 20 c9 20 22 4f 70 74 69 |t% .... . "Opti| 00004480 6f 6e 73 2e 43 6f 6e 74 72 6f 6c 73 2e 2e 2e 20 |ons.Controls... | 00004490 20 5e 43 22 0d 1a 18 1a 20 f2 70 6f 70 75 70 5f | ^C".... .popup_| 000044a0 77 69 6e 64 6f 77 28 63 6f 6e 25 2c 30 29 0d 1a |window(con%,0)..| 000044b0 22 4f 20 e7 20 63 6f 6e 74 72 6f 6c 73 25 3d a3 |"O . controls%=.| 000044c0 20 63 6f 6e 74 72 6f 6c 73 25 3d b9 3a 77 69 6e | controls%=.:win| 000044d0 6d 65 6e 75 25 21 34 32 30 3d a4 53 70 65 63 49 |menu%!420=.SpecI| 000044e0 74 65 6d 28 63 6f 6e 74 72 6f 6c 73 25 2c 77 69 |tem(controls%,wi| 000044f0 6e 6d 65 6e 75 25 21 34 32 30 2c 30 29 0d 1a 2c |nmenu%!420,0)..,| 00004500 20 20 c9 20 22 4f 70 74 69 6f 6e 73 2e 53 61 6d | . "Options.Sam| 00004510 70 6c 65 73 2e 2e 2e 20 20 20 5e 53 22 0d 1a 36 |ples... ^S"..6| 00004520 4f 20 e7 20 73 61 6d 70 6f 70 65 6e 25 3d a3 20 |O . sampopen%=. | 00004530 73 61 6d 70 6f 70 65 6e 25 3d b9 3a 77 69 6e 6d |sampopen%=.:winm| 00004540 65 6e 75 25 21 34 34 34 3d a4 53 70 65 63 49 74 |enu%!444=.SpecIt| 00004550 65 6d 28 73 61 6d 70 6f 70 65 6e 25 2c 77 69 6e |em(sampopen%,win| 00004560 6d 65 6e 75 25 21 34 34 34 2c 30 29 0d 1a 40 1e |menu%!444,0)..@.| 00004570 20 f2 70 6f 70 75 70 5f 77 69 6e 64 6f 77 28 73 | .popup_window(s| 00004580 61 6d 70 6c 65 73 25 2c 30 29 0d 1a 4a 06 20 cb |amples%,0)..J. .| 00004590 0d 1a 54 1a 20 c8 8e 20 a4 6c 65 61 66 6e 61 6d |..T. .. .leafnam| 000045a0 65 28 24 6d 73 74 25 29 20 ca 0d 1a 5e 0d 20 c9 |e($mst%) ...^. .| 000045b0 20 22 51 75 69 74 22 0d 1a 68 3a 20 e7 20 63 68 | "Quit"..h: . ch| 000045c0 61 6e 67 65 64 25 3d b9 20 f2 6d 65 73 73 61 67 |anged%=. .messag| 000045d0 65 5f 62 6f 78 28 31 29 3a 72 65 64 72 61 77 72 |e_box(1):redrawr| 000045e0 65 71 25 3d a3 20 8b 20 66 69 6e 69 73 68 25 3d |eq%=. . finish%=| 000045f0 b9 0d 1a 72 13 20 c9 20 22 53 65 6c 65 63 74 20 |...r. . "Select | 00004600 61 6c 6c 22 0d 1a 7c 14 20 f2 65 6e 74 69 72 65 |all"..|. .entire| 00004610 5f 6c 69 73 74 28 30 29 0d 1a 86 20 20 f2 66 69 |_list(0)... .fi| 00004620 72 73 74 5f 69 74 65 6d 73 28 a3 2c a3 2c 73 61 |rst_items(.,.,sa| 00004630 6d 70 6c 69 73 74 25 29 0d 1a 90 13 20 c9 20 22 |mplist%).... . "| 00004640 43 6c 65 61 72 20 20 20 5e 5a 22 0d 1a 9a 14 20 |Clear ^Z".... | 00004650 f2 65 6e 74 69 72 65 5f 6c 69 73 74 28 31 29 0d |.entire_list(1).| 00004660 1a a4 20 20 f2 66 69 72 73 74 5f 69 74 65 6d 73 |.. .first_items| 00004670 28 b9 2c a3 2c 73 61 6d 70 6c 69 73 74 25 29 0d |(.,.,samplist%).| 00004680 1a ae 15 20 c9 20 22 41 75 74 6f 20 69 6e 73 74 |... . "Auto inst| 00004690 61 6c 6c 22 0d 1a b8 2c 20 e7 20 61 75 74 6f 69 |all"..., . autoi| 000046a0 6e 73 74 25 3d b9 20 61 75 74 6f 69 6e 73 74 25 |nst%=. autoinst%| 000046b0 3d a3 20 8b 20 61 75 74 6f 69 6e 73 74 25 3d b9 |=. . autoinst%=.| 000046c0 0d 1a c2 35 20 77 69 6e 6d 65 6e 75 25 21 33 34 |...5 winmenu%!34| 000046d0 38 3d a4 53 70 65 63 49 74 65 6d 28 61 75 74 6f |8=.SpecItem(auto| 000046e0 69 6e 73 74 25 2c 77 69 6e 6d 65 6e 75 25 21 33 |inst%,winmenu%!3| 000046f0 34 38 2c 30 29 0d 1a cc 14 20 f2 63 68 65 63 6b |48,0).... .check| 00004700 63 68 61 6e 67 65 28 b9 29 0d 1a d6 15 20 c9 20 |change(.).... . | 00004710 22 53 61 76 65 20 63 68 6f 69 63 65 73 22 0d 1a |"Save choices"..| 00004720 e0 35 20 e7 20 73 61 76 65 63 68 6f 69 63 65 73 |.5 . savechoices| 00004730 25 3d b9 20 73 61 76 65 63 68 6f 69 63 65 73 25 |%=. savechoices%| 00004740 3d a3 20 8b 20 73 61 76 65 63 68 6f 69 63 65 73 |=. . savechoices| 00004750 25 3d b9 0d 1a ea 38 20 77 69 6e 6d 65 6e 75 25 |%=....8 winmenu%| 00004760 21 33 37 32 3d a4 53 70 65 63 49 74 65 6d 28 73 |!372=.SpecItem(s| 00004770 61 76 65 63 68 6f 69 63 65 73 25 2c 77 69 6e 6d |avechoices%,winm| 00004780 65 6e 75 25 21 33 37 32 2c 30 29 0d 1a f4 14 20 |enu%!372,0).... | 00004790 c9 20 22 53 74 61 6e 64 20 61 6c 6f 6e 65 22 0d |. "Stand alone".| 000047a0 1a fe 26 20 e7 20 73 61 6c 6f 6e 65 25 3d b9 20 |..& . salone%=. | 000047b0 73 61 6c 6f 6e 65 25 3d a3 20 8b 20 73 61 6c 6f |salone%=. . salo| 000047c0 6e 65 25 3d b9 0d 1b 08 33 20 77 69 6e 6d 65 6e |ne%=....3 winmen| 000047d0 75 25 21 33 39 36 3d a4 53 70 65 63 49 74 65 6d |u%!396=.SpecItem| 000047e0 28 73 61 6c 6f 6e 65 25 2c 77 69 6e 6d 65 6e 75 |(salone%,winmenu| 000047f0 25 21 33 39 36 2c 30 29 0d 1b 12 13 20 c9 20 22 |%!396,0).... . "| 00004800 44 65 6c 65 74 65 20 20 5e 58 22 0d 1b 1c 16 20 |Delete ^X".... | 00004810 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e |.. "Hourglass_On| 00004820 22 0d 1b 26 24 20 f2 65 6e 74 69 72 65 5f 6c 69 |"..&$ .entire_li| 00004830 73 74 28 32 29 3a f2 63 68 65 63 6b 63 68 61 6e |st(2):.checkchan| 00004840 67 65 28 a3 29 0d 1b 30 14 20 f2 65 6e 74 69 72 |ge(.)..0. .entir| 00004850 65 5f 6c 69 73 74 28 33 29 0d 1b 3a 20 20 f2 66 |e_list(3)..: .f| 00004860 69 72 73 74 5f 69 74 65 6d 73 28 b9 2c a3 2c 73 |irst_items(.,.,s| 00004870 61 6d 70 6c 69 73 74 25 29 0d 1b 44 15 20 f2 75 |amplist%)..D. .u| 00004880 70 64 61 74 65 76 6f 69 63 65 6c 69 73 74 0d 1b |pdatevoicelist..| 00004890 4e 17 20 c8 99 20 22 48 6f 75 72 67 6c 61 73 73 |N. .. "Hourglass| 000048a0 5f 4f 66 66 22 0d 1b 58 13 20 c9 20 22 49 6e 73 |_Off"..X. . "Ins| 000048b0 74 61 6c 6c 20 5e 49 22 0d 1b 62 14 20 f2 65 6e |tall ^I"..b. .en| 000048c0 74 69 72 65 5f 6c 69 73 74 28 35 29 0d 1b 6c 15 |tire_list(5)..l.| 000048d0 20 f2 75 70 64 61 74 65 76 6f 69 63 65 6c 69 73 | .updatevoicelis| 000048e0 74 0d 1b 76 15 20 f2 73 65 6c 65 63 74 69 6f 6e |t..v. .selection| 000048f0 5f 69 74 65 6d 73 0d 1b 80 22 20 f2 73 65 74 5f |_items..." .set_| 00004900 69 63 6f 6e 28 73 61 6d 70 69 6e 66 6f 25 2c 31 |icon(sampinfo%,1| 00004910 32 2c 22 59 65 73 22 29 0d 1b 8a 13 20 c9 20 22 |2,"Yes").... . "| 00004920 52 65 6d 6f 76 65 20 20 5e 52 22 0d 1b 94 14 20 |Remove ^R".... | 00004930 f2 65 6e 74 69 72 65 5f 6c 69 73 74 28 36 29 0d |.entire_list(6).| 00004940 1b 9e 15 20 f2 75 70 64 61 74 65 76 6f 69 63 65 |... .updatevoice| 00004950 6c 69 73 74 0d 1b a8 15 20 f2 73 65 6c 65 63 74 |list.... .select| 00004960 69 6f 6e 5f 69 74 65 6d 73 0d 1b b2 21 20 f2 73 |ion_items...! .s| 00004970 65 74 5f 69 63 6f 6e 28 73 61 6d 70 69 6e 66 6f |et_icon(sampinfo| 00004980 25 2c 31 32 2c 22 4e 6f 22 29 0d 1b bc 06 20 cb |%,12,"No").... .| 00004990 0d 1b c6 10 20 f2 6d 65 6e 75 72 65 64 72 61 77 |.... .menuredraw| 000049a0 0d 1b d0 06 20 e1 0d 1b da 04 0d 1b e4 11 20 dd |.... ......... .| 000049b0 f2 6d 65 6e 75 72 65 64 72 61 77 0d 1b ee 26 20 |.menuredraw...& | 000049c0 f2 67 65 74 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 |.get_pointer_inf| 000049d0 6f 3a e7 20 28 6d 62 75 74 25 20 80 20 31 29 20 |o:. (mbut% . 1) | 000049e0 8c 0d 1b f8 1d 20 e7 20 72 65 64 72 61 77 72 65 |..... . redrawre| 000049f0 71 25 3d b9 20 f2 73 68 6f 77 6d 65 6e 75 0d 1c |q%=. .showmenu..| 00004a00 02 06 20 cc 0d 1c 0c 11 20 72 65 64 72 61 77 72 |.. ..... redrawr| 00004a10 65 71 25 3d b9 0d 1c 16 06 20 cd 0d 1c 20 06 20 |eq%=..... ... . | 00004a20 e1 0d 1c 2a 04 0d 1c 34 16 20 dd f2 75 70 64 61 |...*...4. ..upda| 00004a30 74 65 76 6f 69 63 65 6c 69 73 74 0d 1c 3e 0d 20 |tevoicelist..>. | 00004a40 ea 20 76 6f 69 63 65 24 0d 1c 48 1e 20 f7 20 8d |. voice$..H. . .| 00004a50 44 5e 46 3a 76 6c 73 74 61 72 74 25 3d 76 6c 69 |D^F:vlstart%=vli| 00004a60 73 74 62 6c 6b 25 0d 1c 52 1b 20 76 6c 6d 65 6e |stblk%..R. vlmen| 00004a70 75 25 3d a4 6d 65 6e 75 74 72 65 65 28 31 2c b9 |u%=.menutree(1,.| 00004a80 29 0d 1c 5c 27 20 e7 20 63 6f 75 6e 74 25 3d 30 |)..\' . count%=0| 00004a90 20 76 6c 73 65 6c 25 3d 30 3a 63 75 72 76 6f 69 | vlsel%=0:curvoi| 00004aa0 63 65 24 3d 22 22 3a e1 0d 1c 66 1a 20 76 6c 73 |ce$="":...f. vls| 00004ab0 65 6c 25 3d 2d 31 3a f5 3a 76 6c 73 65 6c 25 2b |el%=-1:.:vlsel%+| 00004ac0 3d 31 0d 1c 70 33 20 c8 99 20 22 53 6f 75 6e 64 |=1..p3 .. "Sound| 00004ad0 5f 49 6e 73 74 61 6c 6c 56 6f 69 63 65 22 2c 30 |_InstallVoice",0| 00004ae0 2c 6d 76 25 28 76 6c 73 65 6c 25 29 20 b8 20 76 |,mv%(vlsel%) . v| 00004af0 6f 69 63 65 24 0d 1c 7a 34 20 fd 20 76 6f 69 63 |oice$..z4 . voic| 00004b00 65 24 3d 63 75 72 76 6f 69 63 65 24 20 84 20 6d |e$=curvoice$ . m| 00004b10 76 25 28 76 6c 73 65 6c 25 29 3d 30 20 84 20 76 |v%(vlsel%)=0 . v| 00004b20 6c 73 65 6c 25 3e 3d 33 31 0d 1c 84 2e 20 e7 20 |lsel%>=31.... . | 00004b30 76 6c 73 65 6c 25 3e 28 63 6f 75 6e 74 25 2d 31 |vlsel%>(count%-1| 00004b40 29 20 76 6c 73 65 6c 25 3d 30 3a 63 75 72 76 6f |) vlsel%=0:curvo| 00004b50 69 63 65 24 3d 22 22 0d 1c 8e 45 20 76 6c 6d 65 |ice$=""...E vlme| 00004b60 6e 75 25 21 28 32 38 2b 28 76 6c 73 65 6c 25 2a |nu%!(28+(vlsel%*| 00004b70 32 34 29 29 3d a4 53 70 65 63 49 74 65 6d 28 b9 |24))=.SpecItem(.| 00004b80 2c 76 6c 6d 65 6e 75 25 21 28 32 38 2b 28 76 6c |,vlmenu%!(28+(vl| 00004b90 73 65 6c 25 2a 32 34 29 29 2c 30 29 0d 1c 98 10 |sel%*24)),0)....| 00004ba0 20 73 75 6e 65 65 64 65 64 25 3d b9 0d 1c a2 06 | suneeded%=.....| 00004bb0 20 e1 0d 1c ac 04 0d 1c b6 17 20 dd f2 67 65 74 | ......... ..get| 00004bc0 5f 70 6f 69 6e 74 65 72 5f 69 6e 66 6f 0d 1c c0 |_pointer_info...| 00004bd0 23 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 50 6f |# .. "Wimp_GetPo| 00004be0 69 6e 74 65 72 49 6e 66 6f 22 2c 2c 62 6c 6b 25 |interInfo",,blk%| 00004bf0 0d 1c ca 4b 20 6d 6f 75 73 65 78 25 3d 21 62 6c |...K mousex%=!bl| 00004c00 6b 25 3a 6d 6f 75 73 65 79 25 3d 62 6c 6b 25 21 |k%:mousey%=blk%!| 00004c10 34 3a 6d 62 75 74 25 3d 62 6c 6b 25 21 38 3a 6d |4:mbut%=blk%!8:m| 00004c20 68 61 6e 25 3d 62 6c 6b 25 21 31 32 3a 6d 69 63 |han%=blk%!12:mic| 00004c30 6f 6e 25 3d 62 6c 6b 25 21 31 36 0d 1c d4 06 20 |on%=blk%!16.... | 00004c40 e1 0d 1c de 04 0d 1c e8 1c 20 dd f2 72 65 70 6f |......... ..repo| 00004c50 72 74 5f 65 72 72 28 72 24 2c 65 25 2c 65 6c 25 |rt_err(r$,e%,el%| 00004c60 29 0d 1c f2 12 20 ea 20 66 6c 61 67 25 2c 74 65 |).... . flag%,te| 00004c70 78 74 24 0d 1c fc 38 20 e7 20 73 63 72 61 70 25 |xt$...8 . scrap%| 00004c80 3c 3e 30 20 c8 99 20 22 58 4f 53 5f 46 69 6c 65 |<>0 .. "XOS_File| 00004c90 22 2c 36 2c 22 3c 57 69 6d 70 24 53 63 72 61 70 |",6,"<Wimp$Scrap| 00004ca0 3e 22 3a 73 63 72 61 70 25 3d 30 0d 1d 06 0d 20 |>":scrap%=0.... | 00004cb0 21 62 6c 6b 25 3d 65 25 0d 1d 10 06 20 3a 0d 1d |!blk%=e%.... :..| 00004cc0 1a 1e 20 24 28 62 6c 6b 25 2b 34 29 3d 72 24 2b |.. $(blk%+4)=r$+| 00004cd0 bd 30 3a 66 69 6e 69 73 68 25 3d a3 0d 1d 24 1e |.0:finish%=...$.| 00004ce0 20 74 65 78 74 24 3d 22 4b 65 79 62 6f 61 72 64 | text$="Keyboard| 00004cf0 22 3a 66 6c 61 67 25 3d 25 31 0d 1d 2e 06 20 3a |":flag%=%1.... :| 00004d00 0d 1d 38 18 20 e7 20 65 25 3e 3d 30 20 80 20 65 |..8. . e%>=0 . e| 00004d10 25 3c 3d 31 32 37 20 8c 0d 1d 42 4f 20 24 28 62 |%<=127 ...BO $(b| 00004d20 6c 6b 25 2b 34 29 3d 22 46 61 74 61 6c 20 69 6e |lk%+4)="Fatal in| 00004d30 74 65 72 6e 61 6c 20 65 72 72 6f 72 3a 20 22 2b |ternal error: "+| 00004d40 72 24 2b 22 20 28 69 6e 74 65 72 6e 61 6c 20 65 |r$+" (internal e| 00004d50 72 72 6f 72 20 63 6f 64 65 20 22 2b c3 65 25 2b |rror code "+.e%+| 00004d60 22 29 20 22 2b bd 30 0d 1d 4c 28 20 74 65 78 74 |") "+.0..L( text| 00004d70 24 3d 22 4b 65 79 62 6f 61 72 64 22 3a 66 6c 61 |$="Keyboard":fla| 00004d80 67 25 3d 25 31 3a 66 69 6e 69 73 68 25 3d b9 0d |g%=%1:finish%=..| 00004d90 1d 56 06 20 cd 0d 1d 60 06 20 3a 0d 1d 6a 0f 20 |.V. ...`. :..j. | 00004da0 e7 20 65 25 3d 31 30 30 20 8c 0d 1d 74 1e 20 24 |. e%=100 ...t. $| 00004db0 28 62 6c 6b 25 2b 34 29 3d 72 24 2b bd 30 3a 66 |(blk%+4)=r$+.0:f| 00004dc0 69 6e 69 73 68 25 3d a3 0d 1d 7e 2f 20 66 6c 61 |inish%=...~/ fla| 00004dd0 67 25 3d 25 31 30 30 30 31 3a 74 65 78 74 24 3d |g%=%10001:text$=| 00004de0 22 4d 65 73 73 61 67 65 20 66 72 6f 6d 20 4b 65 |"Message from Ke| 00004df0 79 62 6f 61 72 64 22 0d 1d 88 06 20 cd 0d 1d 92 |yboard".... ....| 00004e00 06 20 3a 0d 1d 9c 20 20 c8 99 20 22 4f 53 5f 42 |. :... .. "OS_B| 00004e10 79 74 65 22 2c 26 43 39 2c 6b 65 79 73 74 61 74 |yte",&C9,keystat| 00004e20 25 2c 30 0d 1d a6 2b 20 c8 99 20 22 57 69 6d 70 |%,0...+ .. "Wimp| 00004e30 5f 52 65 70 6f 72 74 45 72 72 6f 72 22 2c 62 6c |_ReportError",bl| 00004e40 6b 25 2c 66 6c 61 67 25 2c 74 65 78 74 24 0d 1d |k%,flag%,text$..| 00004e50 b0 06 20 e1 0d 1d ba 04 0d 1d c4 1b 20 dd a4 53 |.. ......... ..S| 00004e60 70 65 63 49 74 65 6d 28 74 25 2c 77 25 2c 62 69 |pecItem(t%,w%,bi| 00004e70 74 25 29 0d 1d ce 0b 20 e7 20 74 25 20 8c 0d 1d |t%).... . t% ...| 00004e80 d8 14 20 3d 77 25 20 84 20 28 31 3c 3c 62 69 74 |.. =w% . (1<<bit| 00004e90 25 29 0d 1d e2 06 20 cc 0d 1d ec 16 20 3d 77 25 |%).... ..... =w%| 00004ea0 20 80 20 ac 20 28 31 3c 3c 62 69 74 25 29 0d 1d | . . (1<<bit%)..| 00004eb0 f6 06 20 cd 0d 1e 00 04 0d 1e 0a 1b 20 dd a4 63 |.. ......... ..c| 00004ec0 72 65 61 74 65 5f 77 69 6e 64 6f 77 28 61 24 2c |reate_window(a$,| 00004ed0 63 25 29 0d 1e 14 0e 20 ea 20 68 61 6e 25 2c 61 |c%).... . han%,a| 00004ee0 25 0d 1e 1e 52 20 c8 99 20 22 57 69 6d 70 5f 4c |%...R .. "Wimp_L| 00004ef0 6f 61 64 54 65 6d 70 6c 61 74 65 22 2c 2c 62 6c |oadTemplate",,bl| 00004f00 6b 25 2c 62 75 66 73 74 61 72 74 25 2c 62 75 66 |k%,bufstart%,buf| 00004f10 25 2b 26 31 30 30 30 2c 2d 31 2c 61 24 2c 30 20 |%+&1000,-1,a$,0 | 00004f20 b8 20 2c 2c 62 75 66 73 74 61 72 74 25 2c 2c 2c |. ,,bufstart%,,,| 00004f30 2c 61 25 0d 1e 28 2d 20 e7 20 61 25 3d 30 20 85 |,a%..(- . a%=0 .| 00004f40 20 31 2c 22 54 65 6d 70 6c 61 74 65 20 27 22 2b | 1,"Template '"+| 00004f50 61 24 2b 22 27 20 6e 6f 74 20 66 6f 75 6e 64 22 |a$+"' not found"| 00004f60 0d 1e 32 1a 20 e7 20 63 25 20 62 6c 6b 25 21 36 |..2. . c% blk%!6| 00004f70 34 3d 73 70 72 69 74 65 73 25 0d 1e 3c 28 20 c8 |4=sprites%..<( .| 00004f80 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 57 69 |. "Wimp_CreateWi| 00004f90 6e 64 6f 77 22 2c 2c 62 6c 6b 25 20 b8 20 68 61 |ndow",,blk% . ha| 00004fa0 6e 25 0d 1e 46 0a 20 3d 68 61 6e 25 0d 1e 50 04 |n%..F. =han%..P.| 00004fb0 0d 1e 5a 12 20 dd f2 6f 70 65 6e 5f 77 69 6e 64 |..Z. ..open_wind| 00004fc0 6f 77 0d 1e 64 17 20 e7 20 21 62 6c 6b 25 3d 73 |ow..d. . !blk%=s| 00004fd0 61 6d 70 6c 65 73 25 20 8c 0d 1e 6e 1e 20 ea 20 |amples% ...n. . | 00004fe0 6d 78 30 25 2c 6d 78 31 25 2c 6d 79 30 25 2c 6d |mx0%,mx1%,my0%,m| 00004ff0 79 31 25 2c 6d 62 25 0d 1e 78 42 20 6d 78 30 25 |y1%,mb%..xB mx0%| 00005000 3d 62 6c 6b 25 21 34 3a 6d 78 31 25 3d 62 6c 6b |=blk%!4:mx1%=blk| 00005010 25 21 31 32 3a 6d 79 30 25 3d 62 6c 6b 25 21 38 |%!12:my0%=blk%!8| 00005020 3a 6d 79 31 25 3d 62 6c 6b 25 21 31 36 3a 6d 62 |:my1%=blk%!16:mb| 00005030 25 3d 62 6c 6b 25 21 32 38 0d 1e 82 21 20 f2 73 |%=blk%!28...! .s| 00005040 75 62 77 69 6e 64 6f 77 28 73 61 6d 70 6c 69 73 |ubwindow(samplis| 00005050 74 25 2c 39 30 2c 6d 62 25 29 0d 1e 8c 57 20 21 |t%,90,mb%)...W !| 00005060 62 6c 6b 25 3d 73 61 6d 70 6c 65 73 25 3a 62 6c |blk%=samples%:bl| 00005070 6b 25 21 34 3d 6d 78 30 25 3a 62 6c 6b 25 21 31 |k%!4=mx0%:blk%!1| 00005080 32 3d 6d 78 31 25 3a 62 6c 6b 25 21 38 3d 6d 79 |2=mx1%:blk%!8=my| 00005090 30 25 3a 62 6c 6b 25 21 31 36 3d 6d 79 31 25 3a |0%:blk%!16=my1%:| 000050a0 62 6c 6b 25 21 32 38 3d 73 61 6d 70 6c 69 73 74 |blk%!28=samplist| 000050b0 25 0d 1e 96 06 20 cd 0d 1e a0 1f 20 c8 99 20 22 |%.... ..... .. "| 000050c0 57 69 6d 70 5f 4f 70 65 6e 57 69 6e 64 6f 77 22 |Wimp_OpenWindow"| 000050d0 2c 2c 62 6c 6b 25 0d 1e aa 06 20 e1 0d 1e b4 04 |,,blk%.... .....| 000050e0 0d 1e be 1d 20 dd f2 67 65 74 5f 77 69 6e 64 6f |.... ..get_windo| 000050f0 77 5f 73 74 61 74 65 28 68 61 6e 25 29 0d 1e c8 |w_state(han%)...| 00005100 2e 20 21 62 6c 6b 25 3d 68 61 6e 25 3a c8 99 20 |. !blk%=han%:.. | 00005110 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f 77 53 |"Wimp_GetWindowS| 00005120 74 61 74 65 22 2c 2c 62 6c 6b 25 0d 1e d2 3e 20 |tate",,blk%...> | 00005130 78 30 25 3d 62 6c 6b 25 21 34 3a 79 30 25 3d 62 |x0%=blk%!4:y0%=b| 00005140 6c 6b 25 21 38 3a 78 31 25 3d 62 6c 6b 25 21 31 |lk%!8:x1%=blk%!1| 00005150 32 3a 79 31 25 3d 62 6c 6b 25 21 31 36 3a 77 66 |2:y1%=blk%!16:wf| 00005160 25 3d 62 6c 6b 25 21 32 38 0d 1e dc 06 20 e1 0d |%=blk%!28.... ..| 00005170 1e e6 04 0d 1e f0 1c 20 dd f2 67 65 74 5f 77 69 |....... ..get_wi| 00005180 6e 64 6f 77 5f 69 6e 66 6f 28 68 61 6e 25 29 0d |ndow_info(han%).| 00005190 1e fa 2d 20 21 62 6c 6b 25 3d 68 61 6e 25 3a c8 |..- !blk%=han%:.| 000051a0 99 20 22 57 69 6d 70 5f 47 65 74 57 69 6e 64 6f |. "Wimp_GetWindo| 000051b0 77 49 6e 66 6f 22 2c 2c 62 6c 6b 25 0d 1f 04 32 |wInfo",,blk%...2| 000051c0 20 78 30 25 3d 62 6c 6b 25 21 34 3a 79 30 25 3d | x0%=blk%!4:y0%=| 000051d0 62 6c 6b 25 21 38 3a 78 31 25 3d 62 6c 6b 25 21 |blk%!8:x1%=blk%!| 000051e0 31 32 3a 79 31 25 3d 62 6c 6b 25 21 31 36 0d 1f |12:y1%=blk%!16..| 000051f0 0e 06 20 e1 0d 1f 18 04 0d 1f 22 1f 20 dd f2 67 |.. .......". ..g| 00005200 65 74 5f 77 69 6e 64 6f 77 5f 6f 75 74 6c 69 6e |et_window_outlin| 00005210 65 28 68 61 6e 25 29 0d 1f 2c 30 20 21 62 6c 6b |e(han%)..,0 !blk| 00005220 25 3d 68 61 6e 25 3a c8 99 20 22 57 69 6d 70 5f |%=han%:.. "Wimp_| 00005230 47 65 74 57 69 6e 64 6f 77 4f 75 74 6c 69 6e 65 |GetWindowOutline| 00005240 22 2c 2c 62 6c 6b 25 0d 1f 36 32 20 78 30 25 3d |",,blk%..62 x0%=| 00005250 62 6c 6b 25 21 34 3a 79 30 25 3d 62 6c 6b 25 21 |blk%!4:y0%=blk%!| 00005260 38 3a 78 31 25 3d 62 6c 6b 25 21 31 32 3a 79 31 |8:x1%=blk%!12:y1| 00005270 25 3d 62 6c 6b 25 21 31 36 0d 1f 40 06 20 e1 0d |%=blk%!16..@. ..| 00005280 1f 4a 04 0d 1f 54 21 20 dd f2 67 65 74 5f 69 63 |.J...T! ..get_ic| 00005290 6f 6e 5f 73 74 61 74 65 28 68 61 6e 25 2c 69 63 |on_state(han%,ic| 000052a0 6f 6e 25 29 0d 1f 5e 39 20 21 62 6c 6b 25 3d 68 |on%)..^9 !blk%=h| 000052b0 61 6e 25 3a 62 6c 6b 25 21 34 3d 69 63 6f 6e 25 |an%:blk%!4=icon%| 000052c0 3a c8 99 20 22 57 69 6d 70 5f 47 65 74 49 63 6f |:.. "Wimp_GetIco| 000052d0 6e 53 74 61 74 65 22 2c 2c 62 6c 6b 25 0d 1f 68 |nState",,blk%..h| 000052e0 06 20 e1 0d 1f 72 04 0d 1f 7c 1f 20 dd f2 73 75 |. ...r...|. ..su| 000052f0 62 77 69 6e 64 6f 77 28 68 61 6e 25 2c 79 25 2c |bwindow(han%,y%,| 00005300 62 68 61 6e 25 29 0d 1f 86 0c 20 ea 20 77 25 2c |bhan%).... . w%,| 00005310 68 25 0d 1f 90 1c 20 f2 67 65 74 5f 77 69 6e 64 |h%.... .get_wind| 00005320 6f 77 5f 73 74 61 74 65 28 68 61 6e 25 29 0d 1f |ow_state(han%)..| 00005330 9a 1a 20 77 25 3d 78 31 25 2d 78 30 25 3a 68 25 |.. w%=x1%-x0%:h%| 00005340 3d 79 31 25 2d 79 30 25 0d 1f a4 35 20 21 62 6c |=y1%-y0%...5 !bl| 00005350 6b 25 3d 68 61 6e 25 3a 62 6c 6b 25 21 34 3d 6d |k%=han%:blk%!4=m| 00005360 78 30 25 2b 28 28 28 6d 78 31 25 2d 6d 78 30 25 |x0%+(((mx1%-mx0%| 00005370 29 2d 28 77 25 2b 34 30 29 29 2f 32 29 0d 1f ae |)-(w%+40))/2)...| 00005380 45 20 62 6c 6b 25 21 38 3d 6d 79 30 25 2b 79 25 |E blk%!8=my0%+y%| 00005390 3a 62 6c 6b 25 21 31 32 3d 62 6c 6b 25 21 34 2b |:blk%!12=blk%!4+| 000053a0 77 25 3a 62 6c 6b 25 21 31 36 3d 62 6c 6b 25 21 |w%:blk%!16=blk%!| 000053b0 38 2b 68 25 3a 62 6c 6b 25 21 32 38 3d 62 68 61 |8+h%:blk%!28=bha| 000053c0 6e 25 0d 1f b8 11 20 f2 6f 70 65 6e 5f 77 69 6e |n%.... .open_win| 000053d0 64 6f 77 0d 1f c2 06 20 cd 0d 1f cc 06 20 e1 0d |dow.... ..... ..| 000053e0 1f d6 04 0d 1f e0 0e 20 dd a4 69 63 6f 6e 62 61 |....... ..iconba| 000053f0 72 0d 1f ea 0f 20 ea 20 69 63 6f 6e 68 61 6e 25 |r.... . iconhan%| 00005400 0d 1f f4 1b 20 24 62 75 66 73 74 61 72 74 25 3d |.... $bufstart%=| 00005410 22 21 6b 65 79 62 6f 61 72 64 22 0d 1f fe 35 20 |"!keyboard"...5 | 00005420 21 62 6c 6b 25 3d 2d 31 3a 62 6c 6b 25 21 34 3d |!blk%=-1:blk%!4=| 00005430 30 3a 62 6c 6b 25 21 38 3d 30 3a 62 6c 6b 25 21 |0:blk%!8=0:blk%!| 00005440 31 32 3d 36 38 3a 62 6c 6b 25 21 31 36 3d 36 38 |12=68:blk%!16=68| 00005450 0d 20 08 42 20 62 6c 6b 25 21 32 30 3d 25 31 31 |. .B blk%!20=%11| 00005460 30 30 30 31 30 30 30 30 30 30 31 30 3a 62 6c 6b |000100000010:blk| 00005470 25 21 32 34 3d 62 75 66 73 74 61 72 74 25 3a 62 |%!24=bufstart%:b| 00005480 6c 6b 25 21 32 38 3d 31 3a 62 6c 6b 25 21 33 32 |lk%!28=1:blk%!32| 00005490 3d 39 0d 20 12 12 20 62 75 66 73 74 61 72 74 25 |=9. .. bufstart%| 000054a0 2b 3d 31 30 0d 20 1c 2a 20 c8 99 20 22 57 69 6d |+=10. .* .. "Wim| 000054b0 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c 62 |p_CreateIcon",,b| 000054c0 6c 6b 25 20 b8 20 69 63 6f 6e 68 61 6e 25 0d 20 |lk% . iconhan%. | 000054d0 26 0e 20 3d 69 63 6f 6e 68 61 6e 25 0d 20 30 04 |&. =iconhan%. 0.| 000054e0 0d 20 3a 12 20 dd f2 64 65 63 6f 64 65 5f 64 72 |. :. ..decode_dr| 000054f0 61 67 0d 20 44 0e 20 ea 20 65 25 3a 65 25 3d a3 |ag. D. . e%:e%=.| 00005500 0d 20 4e 22 20 e7 20 64 72 61 67 62 61 72 25 3d |. N" . dragbar%=| 00005510 30 20 80 20 6b 65 79 64 6f 77 6e 25 3d 26 46 46 |0 . keydown%=&FF| 00005520 20 8c 0d 20 58 2e 20 ea 20 66 24 3a 66 24 3d a4 | .. X. . f$:f$=.| 00005530 6c 65 61 66 6e 61 6d 65 28 24 a4 69 63 6f 6e 61 |leafname($.icona| 00005540 64 64 72 28 73 61 76 65 62 6f 78 25 2c 32 29 29 |ddr(savebox%,2))| 00005550 0d 20 62 16 20 f2 67 65 74 5f 70 6f 69 6e 74 65 |. b. .get_pointe| 00005560 72 5f 69 6e 66 6f 0d 20 6c 0f 20 c8 8e 20 6d 68 |r_info. l. .. mh| 00005570 61 6e 25 20 ca 0d 20 76 33 20 c9 20 73 61 76 65 |an% .. v3 . save| 00005580 62 6f 78 25 2c 6d 61 69 6e 25 2c 63 6f 6e 25 2c |box%,main%,con%,| 00005590 73 61 6d 70 6c 69 73 74 25 2c 73 61 6d 70 6c 65 |samplist%,sample| 000055a0 73 25 3a 20 65 25 3d b9 0d 20 80 06 20 cb 0d 20 |s%: e%=.. .. .. | 000055b0 8a 20 20 e7 20 6d 69 63 6f 6e 25 3d 6b 69 63 6f |. . micon%=kico| 000055c0 6e 62 61 72 25 20 84 20 65 25 3d b9 20 e1 0d 20 |nbar% . e%=. .. | 000055d0 94 3e 20 21 62 6c 6b 25 3d 35 36 3a 62 6c 6b 25 |.> !blk%=56:blk%| 000055e0 21 31 32 3d 30 3a 62 6c 6b 25 21 31 36 3d 31 3a |!12=0:blk%!16=1:| 000055f0 62 6c 6b 25 21 32 30 3d 6d 68 61 6e 25 3a 62 6c |blk%!20=mhan%:bl| 00005600 6b 25 21 32 34 3d 6d 69 63 6f 6e 25 0d 20 9e 3e |k%!24=micon%. .>| 00005610 20 62 6c 6b 25 21 32 38 3d 6d 6f 75 73 65 78 25 | blk%!28=mousex%| 00005620 3a 62 6c 6b 25 21 33 32 3d 6d 6f 75 73 65 79 25 |:blk%!32=mousey%| 00005630 3a 62 6c 6b 25 21 33 36 3d 31 30 32 34 3a 62 6c |:blk%!36=1024:bl| 00005640 6b 25 21 34 30 3d 26 31 30 43 0d 20 a8 15 20 24 |k%!40=&10C. .. $| 00005650 28 62 6c 6b 25 2b 34 34 29 3d 66 24 2b bd 30 0d |(blk%+44)=f$+.0.| 00005660 20 b2 2f 20 c8 99 20 22 57 69 6d 70 5f 53 65 6e | ./ .. "Wimp_Sen| 00005670 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 62 6c 6b |dMessage",17,blk| 00005680 25 2c 6d 68 61 6e 25 2c 6d 69 63 6f 6e 25 0d 20 |%,mhan%,micon%. | 00005690 bc 14 20 73 61 76 65 72 65 66 25 3d 62 6c 6b 25 |.. saveref%=blk%| 000056a0 21 38 0d 20 c6 06 20 cd 0d 20 d0 15 20 e7 20 6b |!8. .. .. .. . k| 000056b0 65 79 64 6f 77 6e 25 3c 26 46 46 20 8c 0d 20 da |eydown%<&FF .. .| 000056c0 2a 20 f2 75 70 64 61 74 65 5f 69 63 6f 6e 28 6d |* .update_icon(m| 000056d0 61 69 6e 25 2c 6b 65 79 64 6f 77 6e 25 2c 25 31 |ain%,keydown%,%1| 000056e0 3c 3c 32 31 2c 30 29 0d 20 e4 11 20 6b 65 79 64 |<<21,0). .. keyd| 000056f0 6f 77 6e 25 3d 26 46 46 0d 20 ee 06 20 cd 0d 20 |own%=&FF. .. .. | 00005700 f8 4b 20 e7 20 64 72 61 67 62 61 72 25 3c 3e 30 |.K . dragbar%<>0| 00005710 20 76 6f 6c 75 6d 65 25 3d 2d 28 28 28 64 72 61 | volume%=-(((dra| 00005720 67 62 61 72 25 2d 31 32 29 81 20 32 33 29 2d 32 |gbar%-12). 23)-2| 00005730 29 3a 64 72 61 67 62 61 72 25 3d 30 3a 6d 61 73 |):dragbar%=0:mas| 00005740 6b 25 3d 26 38 30 30 33 33 0d 21 02 06 20 e1 0d |k%=&80033.!.. ..| 00005750 21 0c 04 0d 21 16 1c 20 dd f2 70 6f 70 75 70 5f |!...!.. ..popup_| 00005760 77 69 6e 64 6f 77 28 68 61 6e 25 2c 61 25 29 0d |window(han%,a%).| 00005770 21 20 1f 20 ea 20 77 77 69 64 74 68 25 2c 77 68 |! . . wwidth%,wh| 00005780 65 69 67 68 74 25 2c 63 78 25 2c 63 79 25 0d 21 |eight%,cx%,cy%.!| 00005790 2a 1b 20 f2 67 65 74 5f 77 69 6e 64 6f 77 5f 69 |*. .get_window_i| 000057a0 6e 66 6f 28 68 61 6e 25 29 0d 21 34 16 20 63 78 |nfo(han%).!4. cx| 000057b0 25 3d 28 73 77 69 64 74 68 25 20 81 20 32 29 0d |%=(swidth% . 2).| 000057c0 21 3e 17 20 63 79 25 3d 28 73 68 65 69 67 68 74 |!>. cy%=(sheight| 000057d0 25 20 81 20 32 29 0d 21 48 0c 20 c8 8e 20 61 25 |% . 2).!H. .. a%| 000057e0 20 ca 0d 21 52 08 20 c9 20 31 0d 21 5c 41 20 77 | ..!R. . 1.!\A w| 000057f0 77 69 64 74 68 25 3d 28 62 6c 6b 25 21 35 32 2d |width%=(blk%!52-| 00005800 62 6c 6b 25 21 34 34 29 20 81 20 32 3a 77 68 65 |blk%!44) . 2:whe| 00005810 69 67 68 74 25 3d 28 62 6c 6b 25 21 35 36 2d 62 |ight%=(blk%!56-b| 00005820 6c 6b 25 21 34 38 29 20 81 20 32 0d 21 66 2a 20 |lk%!48) . 2.!f* | 00005830 78 30 25 3d 63 78 25 2d 77 77 69 64 74 68 25 2d |x0%=cx%-wwidth%-| 00005840 32 30 3a 78 31 25 3d 63 78 25 2b 77 77 69 64 74 |20:x1%=cx%+wwidt| 00005850 68 25 2d 32 30 0d 21 70 26 20 79 30 25 3d 63 79 |h%-20.!p& y0%=cy| 00005860 25 2d 77 68 65 69 67 68 74 25 3a 79 31 25 3d 63 |%-wheight%:y1%=c| 00005870 79 25 2b 77 68 65 69 67 68 74 25 0d 21 7a 08 20 |y%+wheight%.!z. | 00005880 c9 20 32 0d 21 84 31 20 77 77 69 64 74 68 25 3d |. 2.!.1 wwidth%=| 00005890 28 78 31 25 2d 78 30 25 29 20 81 20 32 3a 77 68 |(x1%-x0%) . 2:wh| 000058a0 65 69 67 68 74 25 3d 28 79 31 25 2d 79 30 25 29 |eight%=(y1%-y0%)| 000058b0 20 81 20 32 0d 21 8e 46 20 78 30 25 3d 63 78 25 | . 2.!.F x0%=cx%| 000058c0 2d 77 77 69 64 74 68 25 3a 78 31 25 3d 63 78 25 |-wwidth%:x1%=cx%| 000058d0 2b 77 77 69 64 74 68 25 3a 79 30 25 3d 63 79 25 |+wwidth%:y0%=cy%| 000058e0 2d 77 68 65 69 67 68 74 25 3a 79 31 25 3d 63 79 |-wheight%:y1%=cy| 000058f0 25 2b 77 68 65 69 67 68 74 25 0d 21 98 06 20 cb |%+wheight%.!.. .| 00005900 0d 21 a2 48 20 21 62 6c 6b 25 3d 68 61 6e 25 3a |.!.H !blk%=han%:| 00005910 62 6c 6b 25 21 32 38 3d 2d 31 3a 62 6c 6b 25 21 |blk%!28=-1:blk%!| 00005920 34 3d 78 30 25 3a 62 6c 6b 25 21 38 3d 79 30 25 |4=x0%:blk%!8=y0%| 00005930 3a 62 6c 6b 25 21 31 32 3d 78 31 25 3a 62 6c 6b |:blk%!12=x1%:blk| 00005940 25 21 31 36 3d 79 31 25 0d 21 ac 11 20 f2 6f 70 |%!16=y1%.!.. .op| 00005950 65 6e 5f 77 69 6e 64 6f 77 0d 21 b6 06 20 e1 0d |en_window.!.. ..| 00005960 21 c0 04 0d 21 ca 12 20 dd f2 67 65 74 6d 6f 64 |!...!.. ..getmod| 00005970 65 69 6e 66 6f 0d 21 d4 0e 20 ea 20 48 69 25 2c |einfo.!.. . Hi%,| 00005980 56 69 25 0d 21 de 43 20 6d 62 6c 6b 25 21 30 3d |Vi%.!.C mblk%!0=| 00005990 30 3a 6d 62 6c 6b 25 21 34 3d 31 3a 6d 62 6c 6b |0:mblk%!4=1:mblk| 000059a0 25 21 38 3d 32 3a 6d 62 6c 6b 25 21 31 32 3d 33 |%!8=2:mblk%!12=3| 000059b0 3a 6d 62 6c 6b 25 21 31 36 3d 34 3a 6d 62 6c 6b |:mblk%!16=4:mblk| 000059c0 25 21 32 30 3d 35 0d 21 e8 28 20 6d 62 6c 6b 25 |%!20=5.!.( mblk%| 000059d0 21 32 34 3d 31 31 3a 6d 62 6c 6b 25 21 32 38 3d |!24=11:mblk%!28=| 000059e0 31 32 3a 6d 62 6c 6b 25 21 33 32 3d 2d 31 0d 21 |12:mblk%!32=-1.!| 000059f0 f2 28 20 c8 99 20 22 4f 53 5f 52 65 61 64 56 64 |.( .. "OS_ReadVd| 00005a00 75 56 61 72 69 61 62 6c 65 73 22 2c 6d 62 6c 6b |uVariables",mblk| 00005a10 25 2c 62 6c 6b 25 0d 21 fc 26 20 48 69 25 3d 31 |%,blk%.!.& Hi%=1| 00005a20 3c 3c 28 62 6c 6b 25 21 31 36 29 3a 56 69 25 3d |<<(blk%!16):Vi%=| 00005a30 31 3c 3c 28 62 6c 6b 25 21 32 30 29 0d 22 06 3d |1<<(blk%!20).".=| 00005a40 20 73 77 69 64 74 68 25 3d 48 69 25 2a 28 28 62 | swidth%=Hi%*((b| 00005a50 6c 6b 25 21 32 34 29 2b 31 29 2d 32 3a 73 68 65 |lk%!24)+1)-2:she| 00005a60 69 67 68 74 25 3d 56 69 25 2a 28 28 62 6c 6b 25 |ight%=Vi%*((blk%| 00005a70 21 32 38 29 2b 31 29 2d 34 0d 22 10 06 20 e1 0d |!28)+1)-4.".. ..| 00005a80 22 1a 04 0d 22 24 12 20 dd f2 73 65 74 73 6f 75 |"..."$. ..setsou| 00005a90 6e 64 73 79 73 0d 22 2e 09 20 ea 20 69 25 0d 22 |ndsys.".. . i%."| 00005aa0 38 0d 20 f2 73 65 74 76 61 72 73 0d 22 42 32 20 |8. .setvars."B2 | 00005ab0 c8 99 20 22 53 6f 75 6e 64 5f 41 74 74 61 63 68 |.. "Sound_Attach| 00005ac0 56 6f 69 63 65 22 2c 63 68 61 6e 25 2c 6d 76 25 |Voice",chan%,mv%| 00005ad0 28 76 6c 73 65 6c 25 29 20 b8 20 69 25 0d 22 4c |(vlsel%) . i%."L| 00005ae0 26 20 e7 20 69 25 3d 30 20 85 20 31 2c 22 49 6c |& . i%=0 . 1,"Il| 00005af0 6c 65 67 61 6c 20 76 6f 69 63 65 20 6e 75 6d 62 |legal voice numb| 00005b00 65 72 22 0d 22 56 17 20 e7 20 73 61 6c 6f 6e 65 |er"."V. . salone| 00005b10 25 20 c8 a0 20 63 68 61 6e 25 0d 22 60 06 20 e1 |% .. chan%."`. .| 00005b20 0d 22 6a 04 0d 22 74 0e 20 dd f2 73 65 74 76 61 |."j.."t. ..setva| 00005b30 72 73 0d 22 7e 21 20 63 68 61 6e 25 3d bb 28 24 |rs."~! chan%=.($| 00005b40 a4 69 63 6f 6e 61 64 64 72 28 63 6f 6e 25 2c 33 |.iconaddr(con%,3| 00005b50 32 29 29 0d 22 88 20 20 6f 63 74 25 3d bb 28 24 |2)).". oct%=.($| 00005b60 a4 69 63 6f 6e 61 64 64 72 28 63 6f 6e 25 2c 32 |.iconaddr(con%,2| 00005b70 33 29 29 0d 22 92 22 20 74 72 61 6e 73 25 3d bb |3))."." trans%=.| 00005b80 28 24 a4 69 63 6f 6e 61 64 64 72 28 63 6f 6e 25 |($.iconaddr(con%| 00005b90 2c 32 36 29 29 0d 22 9c 21 20 64 75 72 61 25 3d |,26)).".! dura%=| 00005ba0 bb 28 24 a4 69 63 6f 6e 61 64 64 72 28 63 6f 6e |.($.iconaddr(con| 00005bb0 25 2c 33 31 29 29 0d 22 a6 6c 20 e7 20 6f 63 74 |%,31)).".l . oct| 00005bc0 25 3e 34 20 84 20 6f 63 74 25 3c 2d 34 20 f2 72 |%>4 . oct%<-4 .r| 00005bd0 65 70 6f 72 74 5f 65 72 72 28 22 56 61 6c 75 65 |eport_err("Value| 00005be0 20 66 6f 72 20 6f 63 74 61 76 65 20 6f 75 74 20 | for octave out | 00005bf0 6f 66 20 72 61 6e 67 65 22 2c 31 30 30 2c 9e 29 |of range",100,.)| 00005c00 3a 6f 63 74 25 3d 30 3a f2 73 65 74 5f 69 63 6f |:oct%=0:.set_ico| 00005c10 6e 28 63 6f 6e 25 2c 32 33 2c c3 28 6f 63 74 25 |n(con%,23,.(oct%| 00005c20 29 29 0d 22 b0 6a 20 e7 20 64 75 72 61 25 3e 32 |)).".j . dura%>2| 00005c30 35 35 20 f2 72 65 70 6f 72 74 5f 65 72 72 28 22 |55 .report_err("| 00005c40 56 61 6c 75 65 20 66 6f 72 20 64 75 72 61 74 69 |Value for durati| 00005c50 6f 6e 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 22 |on out of range"| 00005c60 2c 31 30 30 2c 9e 29 3a 64 75 72 61 25 3d 32 30 |,100,.):dura%=20| 00005c70 3a f2 73 65 74 5f 69 63 6f 6e 28 63 6f 6e 25 2c |:.set_icon(con%,| 00005c80 33 31 2c c3 28 64 75 72 61 25 29 29 0d 22 ba 79 |31,.(dura%)).".y| 00005c90 20 e7 20 74 72 61 6e 73 25 3e 31 31 20 84 20 74 | . trans%>11 . t| 00005ca0 72 61 6e 73 25 3c 2d 31 31 20 f2 72 65 70 6f 72 |rans%<-11 .repor| 00005cb0 74 5f 65 72 72 28 22 56 61 6c 75 65 20 66 6f 72 |t_err("Value for| 00005cc0 20 74 72 61 6e 73 70 6f 73 65 20 6f 75 74 20 6f | transpose out o| 00005cd0 66 20 72 61 6e 67 65 22 2c 31 30 30 2c 9e 29 3a |f range",100,.):| 00005ce0 74 72 61 6e 73 25 3d 30 3a f2 73 65 74 5f 69 63 |trans%=0:.set_ic| 00005cf0 6f 6e 28 63 6f 6e 25 2c 32 36 2c c3 28 74 72 61 |on(con%,26,.(tra| 00005d00 6e 73 25 29 29 0d 22 c4 73 20 e7 20 63 68 61 6e |ns%)).".s . chan| 00005d10 25 3e 38 20 84 20 63 68 61 6e 25 3c 31 20 f2 72 |%>8 . chan%<1 .r| 00005d20 65 70 6f 72 74 5f 65 72 72 28 22 53 6f 75 6e 64 |eport_err("Sound| 00005d30 20 63 68 61 6e 6e 65 6c 20 6e 75 6d 62 65 72 20 | channel number | 00005d40 6f 75 74 20 6f 66 20 72 61 6e 67 65 22 2c 31 30 |out of range",10| 00005d50 30 2c 9e 29 3a 63 68 61 6e 25 3d 31 3a f2 73 65 |0,.):chan%=1:.se| 00005d60 74 5f 69 63 6f 6e 28 63 6f 6e 25 2c 33 32 2c c3 |t_icon(con%,32,.| 00005d70 28 63 68 61 6e 25 29 29 0d 22 ce 06 20 e1 0d 22 |(chan%)).".. .."| 00005d80 d8 04 0d 22 e2 12 20 dd f2 74 6f 67 67 6c 65 63 |...".. ..togglec| 00005d90 68 61 72 73 0d 22 ec 16 20 c8 99 20 22 48 6f 75 |hars.".. .. "Hou| 00005da0 72 67 6c 61 73 73 5f 4f 6e 22 0d 22 f6 14 20 e7 |rglass_On".".. .| 00005db0 20 73 68 6f 77 6b 65 79 73 25 3d b9 20 8c 0d 23 | showkeys%=. ..#| 00005dc0 00 2e 20 e3 20 4e 25 3d 33 36 20 b8 20 37 30 3a |.. . N%=36 . 70:| 00005dd0 f2 75 70 64 61 74 65 5f 69 63 6f 6e 28 6d 61 69 |.update_icon(mai| 00005de0 6e 25 2c 4e 25 2c 30 2c 31 29 3a ed 0d 23 0a 10 |n%,N%,0,1):..#..| 00005df0 20 73 68 6f 77 6b 65 79 73 25 3d a3 0d 23 14 06 | showkeys%=..#..| 00005e00 20 cc 0d 23 1e 2e 20 e3 20 4e 25 3d 33 36 20 b8 | ..#.. . N%=36 .| 00005e10 20 37 30 3a f2 75 70 64 61 74 65 5f 69 63 6f 6e | 70:.update_icon| 00005e20 28 6d 61 69 6e 25 2c 4e 25 2c 31 2c 31 29 3a ed |(main%,N%,1,1):.| 00005e30 0d 23 28 10 20 73 68 6f 77 6b 65 79 73 25 3d b9 |.#(. showkeys%=.| 00005e40 0d 23 32 06 20 cd 0d 23 3c 17 20 c8 99 20 22 48 |.#2. ..#<. .. "H| 00005e50 6f 75 72 67 6c 61 73 73 5f 4f 66 66 22 0d 23 46 |ourglass_Off".#F| 00005e60 06 20 e1 0d 23 50 04 0d 23 5a 0c 20 dd f2 67 65 |. ..#P..#Z. ..ge| 00005e70 74 69 66 0d 23 64 12 20 e7 20 69 66 6e 65 65 64 |tif.#d. . ifneed| 00005e80 65 64 25 20 8c 0d 23 6e 31 20 c8 99 20 22 57 69 |ed% ..#n1 .. "Wi| 00005e90 6d 70 5f 53 65 74 43 61 72 65 74 50 6f 73 69 74 |mp_SetCaretPosit| 00005ea0 69 6f 6e 22 2c 6d 61 69 6e 25 2c 2d 31 2c 2c 2c |ion",main%,-1,,,| 00005eb0 25 31 3c 3c 32 35 0d 23 78 10 20 69 66 6e 65 65 |%1<<25.#x. ifnee| 00005ec0 64 65 64 25 3d a3 0d 23 82 06 20 cd 0d 23 8c 06 |ded%=..#.. ..#..| 00005ed0 20 e1 0d 23 96 04 0d 23 a0 1f 20 dd f2 75 70 64 | ..#...#.. ..upd| 00005ee0 61 74 65 5f 74 69 74 6c 65 28 68 61 6e 25 2c 61 |ate_title(han%,a| 00005ef0 25 2c 74 24 29 0d 23 aa 09 20 ea 20 62 25 0d 23 |%,t$).#.. . b%.#| 00005f00 b4 1b 20 f2 67 65 74 5f 77 69 6e 64 6f 77 5f 69 |.. .get_window_i| 00005f10 6e 66 6f 28 68 61 6e 25 29 0d 23 be 48 20 e7 20 |nfo(han%).#.H . | 00005f20 28 62 6c 6b 25 21 38 30 20 80 20 25 31 30 30 30 |(blk%!80 . %1000| 00005f30 30 30 30 30 30 29 3d 30 20 85 20 31 2c 22 57 69 |00000)=0 . 1,"Wi| 00005f40 6e 64 6f 77 20 74 69 74 6c 65 20 62 61 72 20 69 |ndow title bar i| 00005f50 73 20 6e 6f 74 20 69 6e 64 69 72 65 63 74 65 64 |s not indirected| 00005f60 22 0d 23 c8 3f 20 e7 20 a9 20 74 24 3e 62 6c 6b |".#.? . . t$>blk| 00005f70 25 21 38 34 20 85 20 31 2c 22 49 6e 64 69 72 65 |%!84 . 1,"Indire| 00005f80 63 74 65 64 20 61 72 65 61 20 69 6e 73 75 66 66 |cted area insuff| 00005f90 69 63 69 65 6e 74 20 66 6f 72 20 64 61 74 61 22 |icient for data"| 00005fa0 0d 23 d2 0f 20 62 25 3d 62 6c 6b 25 21 37 36 0d |.#.. b%=blk%!76.| 00005fb0 23 dc 0c 20 c8 8e 20 61 25 20 ca 0d 23 e6 10 20 |#.. .. a% ..#.. | 00005fc0 c9 20 30 3a 20 24 62 25 3d 74 24 0d 23 f0 1d 20 |. 0: $b%=t$.#.. | 00005fd0 c9 20 31 3a 20 24 62 25 3d 22 4b 65 79 62 6f 61 |. 1: $b%="Keyboa| 00005fe0 72 64 3a 20 22 2b 74 24 0d 23 fa 16 20 c9 20 32 |rd: "+t$.#.. . 2| 00005ff0 3a 20 24 62 25 3d 24 62 25 2b 22 20 2a 22 0d 24 |: $b%=$b%+" *".$| 00006000 04 06 20 cb 0d 24 0e 3c 20 e7 20 6d 61 69 6e 6f |.. ..$.< . maino| 00006010 70 65 6e 25 20 c8 99 20 22 57 69 6d 70 5f 46 6f |pen% .. "Wimp_Fo| 00006020 72 63 65 52 65 64 72 61 77 22 2c 2d 31 2c 78 30 |rceRedraw",-1,x0| 00006030 25 2c 79 31 25 2c 78 31 25 2c 79 31 25 2b 34 30 |%,y1%,x1%,y1%+40| 00006040 0d 24 18 06 20 e1 0d 24 22 04 0d 24 2c 13 20 dd |.$.. ..$"..$,. .| 00006050 a4 6c 65 61 66 6e 61 6d 65 28 66 24 29 0d 24 36 |.leafname(f$).$6| 00006060 33 20 ea 20 69 25 3a f5 3a 69 25 3d a7 66 24 2c |3 . i%:.:i%=.f$,| 00006070 22 2e 22 29 3a e7 20 69 25 3c 3e 30 20 66 24 3d |"."):. i%<>0 f$=| 00006080 c1 66 24 2c 69 25 2b 31 29 3a fd 20 69 25 3d 30 |.f$,i%+1):. i%=0| 00006090 0d 24 40 08 20 3d 66 24 0d 24 4a 04 0d 24 54 21 |.$@. =f$.$J..$T!| 000060a0 20 dd f2 6b 65 79 62 6f 61 72 64 64 61 74 61 6f | ..keyboarddatao| 000060b0 75 74 28 66 6e 61 6d 65 24 2c 75 25 29 0d 24 5e |ut(fname$,u%).$^| 000060c0 22 20 ea 20 4e 25 2c 41 25 2c 73 76 6f 6c 25 2c |" . N%,A%,svol%,| 000060d0 73 73 70 65 61 6b 65 72 25 2c 56 24 2c 65 25 0d |sspeaker%,V$,e%.| 000060e0 24 68 65 20 e7 20 a7 66 6e 61 6d 65 24 2c 22 2e |$he . .fname$,".| 000060f0 22 29 3d 30 20 80 20 75 25 3d b9 20 f2 72 65 70 |")=0 . u%=. .rep| 00006100 6f 72 74 5f 65 72 72 28 22 54 6f 20 73 61 76 65 |ort_err("To save| 00006110 2c 20 64 72 61 67 20 74 68 65 20 66 69 6c 65 20 |, drag the file | 00006120 69 63 6f 6e 20 74 6f 20 61 20 64 69 72 65 63 74 |icon to a direct| 00006130 6f 72 79 20 76 69 65 77 65 72 22 2c 31 30 30 2c |ory viewer",100,| 00006140 9e 29 3a e1 0d 24 72 25 20 73 76 6f 6c 25 3d 30 |.):..$r% svol%=0| 00006150 3a 73 73 70 65 61 6b 65 72 25 3d 30 3a 73 73 74 |:sspeaker%=0:sst| 00006160 65 72 65 6f 25 28 29 3d 30 0d 24 7c 1f 20 65 25 |ereo%()=0.$|. e%| 00006170 3d 30 3a c8 95 20 6d 76 25 28 65 25 29 3c 3e 30 |=0:.. mv%(e%)<>0| 00006180 3a 65 25 2b 3d 31 3a ce 0d 24 86 16 20 c8 99 20 |:e%+=1:..$.. .. | 00006190 22 48 6f 75 72 67 6c 61 73 73 5f 4f 6e 22 0d 24 |"Hourglass_On".$| 000061a0 90 11 20 41 25 3d ae 28 66 6e 61 6d 65 24 29 0d |.. A%=.(fname$).| 000061b0 24 9a 15 20 f1 23 20 41 25 2c 22 4b 65 79 62 6f |$.. .# A%,"Keybo| 000061c0 61 72 64 22 0d 24 a4 13 20 f1 23 20 41 25 2c 76 |ard".$.. .# A%,v| 000061d0 65 72 73 69 6f 6e 24 0d 24 ae 17 20 d5 23 20 41 |ersion$.$.. .# A| 000061e0 25 2c 73 61 76 65 63 68 6f 69 63 65 73 25 0d 24 |%,savechoices%.$| 000061f0 b8 17 20 e7 20 73 61 76 65 63 68 6f 69 63 65 73 |.. . savechoices| 00006200 25 3d b9 20 8c 0d 24 c2 14 20 d5 23 20 41 25 2c |%=. ..$.. .# A%,| 00006210 61 75 74 6f 69 6e 73 74 25 0d 24 cc 0f 20 d5 23 |autoinst%.$.. .#| 00006220 20 41 25 2c 6f 63 74 25 0d 24 d6 11 20 d5 23 20 | A%,oct%.$.. .# | 00006230 41 25 2c 74 72 61 6e 73 25 0d 24 e0 10 20 d5 23 |A%,trans%.$.. .#| 00006240 20 41 25 2c 63 68 61 6e 25 0d 24 ea 10 20 d5 23 | A%,chan%.$.. .#| 00006250 20 41 25 2c 64 75 72 61 25 0d 24 f4 14 20 d5 23 | A%,dura%.$.. .#| 00006260 20 41 25 2c 73 68 6f 77 6b 65 79 73 25 0d 24 fe | A%,showkeys%.$.| 00006270 12 20 d5 23 20 41 25 2c 76 6f 6c 75 6d 65 25 0d |. .# A%,volume%.| 00006280 25 08 11 20 d5 23 20 41 25 2c 76 6c 73 65 6c 25 |%.. .# A%,vlsel%| 00006290 0d 25 12 12 20 f1 23 20 41 25 2c 74 75 6e 6f 63 |.%.. .# A%,tunoc| 000062a0 74 25 0d 25 1c 13 20 f1 23 20 41 25 2c 74 75 6e |t%.%.. .# A%,tun| 000062b0 73 65 6d 69 25 0d 25 26 10 20 d5 23 20 41 25 2c |semi%.%&. .# A%,| 000062c0 73 76 6f 6c 25 0d 25 30 14 20 d5 23 20 41 25 2c |svol%.%0. .# A%,| 000062d0 73 73 70 65 61 6b 65 72 25 0d 25 3a 0f 20 e3 20 |sspeaker%.%:. . | 000062e0 4e 25 3d 30 20 b8 20 37 0d 25 44 19 20 d5 23 20 |N%=0 . 7.%D. .# | 000062f0 41 25 2c 73 73 74 65 72 65 6f 25 28 4e 25 29 3a |A%,sstereo%(N%):| 00006300 ed 0d 25 4e 12 20 d5 23 20 41 25 2c 73 61 6c 6f |..%N. .# A%,salo| 00006310 6e 65 25 0d 25 58 0f 20 e3 20 4e 25 3d 30 20 b8 |ne%.%X. . N%=0 .| 00006320 20 36 0d 25 62 0e 20 d5 23 20 41 25 2c 30 3a ed | 6.%b. .# A%,0:.| 00006330 0d 25 6c 06 20 cc 0d 25 76 10 20 e3 20 4e 25 3d |.%l. ..%v. . N%=| 00006340 30 20 b8 20 33 30 0d 25 80 0e 20 d5 23 20 41 25 |0 . 30.%.. .# A%| 00006350 2c 30 3a ed 0d 25 8a 06 20 cd 0d 25 94 10 20 d5 |,0:..%.. ..%.. .| 00006360 23 20 41 25 2c 6e 65 78 74 25 0d 25 9e 11 20 e7 |# A%,next%.%.. .| 00006370 20 6e 65 78 74 25 3c 3e 30 20 8c 0d 25 a8 13 20 | next%<>0 ..%.. | 00006380 e3 20 4e 25 3d 31 20 b8 20 6e 65 78 74 25 0d 25 |. N%=1 . next%.%| 00006390 b2 1a 20 f1 23 20 41 25 2c 70 61 74 68 6e 61 6d |.. .# A%,pathnam| 000063a0 65 24 28 4e 25 2d 31 29 0d 25 bc 16 20 f1 23 20 |e$(N%-1).%.. .# | 000063b0 41 25 2c 74 79 70 65 25 28 4e 25 2d 31 29 0d 25 |A%,type%(N%-1).%| 000063c0 c6 1d 20 d5 23 20 41 25 2c 3f 28 63 6f 64 65 25 |.. .# A%,?(code%| 000063d0 2b 26 39 44 30 2b 4e 25 2d 31 29 0d 25 d0 06 20 |+&9D0+N%-1).%.. | 000063e0 ed 0d 25 da 06 20 cd 0d 25 e4 0a 20 d9 23 20 41 |..%.. ..%.. .# A| 000063f0 25 0d 25 ee 20 20 ff 28 22 53 65 74 74 79 70 65 |%.%. .("Settype| 00006400 20 22 2b 66 6e 61 6d 65 24 2b 22 20 31 30 43 22 | "+fname$+" 10C"| 00006410 29 0d 25 f8 0b 20 e7 20 75 25 20 8c 0d 26 02 22 |).%.. . u% ..&."| 00006420 20 f2 75 70 64 61 74 65 5f 74 69 74 6c 65 28 6d | .update_title(m| 00006430 61 69 6e 25 2c 30 2c 66 6e 61 6d 65 24 29 0d 26 |ain%,0,fname$).&| 00006440 0c 0f 20 63 68 61 6e 67 65 64 25 3d a3 0d 26 16 |.. changed%=..&.| 00006450 06 20 cd 0d 26 20 17 20 c8 99 20 22 48 6f 75 72 |. ..& . .. "Hour| 00006460 67 6c 61 73 73 5f 4f 66 66 22 0d 26 2a 06 20 e1 |glass_Off".&*. .| 00006470 0d 26 34 04 0d 26 3e 24 20 dd f2 64 72 61 67 5f |.&4..&>$ ..drag_| 00006480 69 63 6f 6e 28 6d 78 25 2c 6d 79 25 2c 68 61 6e |icon(mx%,my%,han| 00006490 25 2c 69 63 6f 6e 25 29 0d 26 48 1d 20 ea 20 69 |%,icon%).&H. . i| 000064a0 78 30 25 2c 69 78 31 25 2c 69 79 30 25 2c 69 79 |x0%,ix1%,iy0%,iy| 000064b0 31 25 2c 62 25 0d 26 52 17 20 e7 20 68 61 6e 25 |1%,b%.&R. . han%| 000064c0 3c 3e 73 61 76 65 62 6f 78 25 20 e1 0d 26 5c 22 |<>savebox% ..&\"| 000064d0 20 f2 67 65 74 5f 70 6f 69 6e 74 65 72 5f 69 6e | .get_pointer_in| 000064e0 66 6f 3a e7 20 6d 62 75 74 25 3d 32 20 e1 0d 26 |fo:. mbut%=2 ..&| 000064f0 66 2a 20 6d 65 6e 75 62 75 74 25 3d 6d 62 75 74 |f* menubut%=mbut| 00006500 25 3a f2 67 65 74 5f 77 69 6e 64 6f 77 5f 69 6e |%:.get_window_in| 00006510 66 6f 28 68 61 6e 25 29 0d 26 70 20 20 f2 67 65 |fo(han%).&p .ge| 00006520 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 68 61 6e |t_icon_state(han| 00006530 25 2c 69 63 6f 6e 25 29 0d 26 7a 4b 20 69 78 30 |%,icon%).&zK ix0| 00006540 25 3d 62 6c 6b 25 21 38 3a 69 79 30 25 3d 62 6c |%=blk%!8:iy0%=bl| 00006550 6b 25 21 31 32 3a 69 78 31 25 3d 62 6c 6b 25 21 |k%!12:ix1%=blk%!| 00006560 31 36 3a 69 79 31 25 3d 62 6c 6b 25 21 32 30 3a |16:iy1%=blk%!20:| 00006570 21 62 6c 6b 25 3d 68 61 6e 25 3a 62 6c 6b 25 21 |!blk%=han%:blk%!| 00006580 34 3d 35 0d 26 84 47 20 62 6c 6b 25 21 38 3d 78 |4=5.&.G blk%!8=x| 00006590 30 25 2b 69 78 30 25 3a 62 6c 6b 25 21 31 32 3d |0%+ix0%:blk%!12=| 000065a0 79 31 25 2b 69 79 30 25 3a 62 6c 6b 25 21 31 36 |y1%+iy0%:blk%!16| 000065b0 3d 78 30 25 2b 69 78 31 25 3a 62 6c 6b 25 21 32 |=x0%+ix1%:blk%!2| 000065c0 30 3d 79 31 25 2b 69 79 31 25 0d 26 8e 49 20 62 |0=y1%+iy1%.&.I b| 000065d0 6c 6b 25 21 32 34 3d 62 6c 6b 25 21 38 2d 6d 78 |lk%!24=blk%!8-mx| 000065e0 25 3a 62 6c 6b 25 21 32 38 3d 62 6c 6b 25 21 31 |%:blk%!28=blk%!1| 000065f0 32 2d 6d 79 25 3a 62 6c 6b 25 21 33 32 3d 73 77 |2-my%:blk%!32=sw| 00006600 69 64 74 68 25 2b 28 62 6c 6b 25 21 31 36 2d 6d |idth%+(blk%!16-m| 00006610 78 25 29 0d 26 98 23 20 62 6c 6b 25 21 33 36 3d |x%).&.# blk%!36=| 00006620 73 68 65 69 67 68 74 25 2b 28 62 6c 6b 25 21 32 |sheight%+(blk%!2| 00006630 30 2d 6d 79 25 29 0d 26 a2 16 20 e7 20 76 65 72 |0-my%).&.. . ver| 00006640 73 69 6f 6e 25 3e 3d 33 30 30 20 8c 0d 26 ac 20 |sion%>=300 ..&. | 00006650 20 20 c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 31 | .. "OS_Byte",1| 00006660 36 31 2c 32 38 20 b8 20 2c 2c 62 25 0d 26 b6 10 |61,28 . ,,b%.&..| 00006670 20 20 e7 20 62 25 20 80 20 32 20 8c 0d 26 c0 35 | . b% . 2 ..&.5| 00006680 20 20 c8 99 20 22 58 44 72 61 67 41 53 70 72 69 | .. "XDragASpri| 00006690 74 65 5f 53 74 61 72 74 22 2c 31 39 37 2c 31 2c |te_Start",197,1,| 000066a0 22 66 69 6c 65 5f 31 30 63 22 2c 62 6c 6b 25 2b |"file_10c",blk%+| 000066b0 38 0d 26 ca 07 20 20 cc 0d 26 d4 1d 20 20 c8 99 |8.&.. ..&.. ..| 000066c0 20 22 57 69 6d 70 5f 44 72 61 67 42 6f 78 22 2c | "Wimp_DragBox",| 000066d0 2c 62 6c 6b 25 0d 26 de 07 20 20 cd 0d 26 e8 06 |,blk%.&.. ..&..| 000066e0 20 cc 0d 26 f2 1d 20 20 c8 99 20 22 57 69 6d 70 | ..&.. .. "Wimp| 000066f0 5f 44 72 61 67 42 6f 78 22 2c 2c 62 6c 6b 25 0d |_DragBox",,blk%.| 00006700 26 fc 06 20 cd 0d 27 06 06 20 e1 0d 27 10 04 0d |&.. ..'.. ..'...| 00006710 27 1a 10 20 dd f2 6c 6f 61 64 5f 66 69 6c 65 0d |'.. ..load_file.| 00006720 27 24 35 20 ea 20 6c 65 6e 25 2c 6f 25 2c 6d 6f |'$5 . len%,o%,mo| 00006730 64 70 72 65 73 65 6e 74 25 2c 6d 6f 64 6e 61 6d |dpresent%,modnam| 00006740 65 24 2c 6c 6f 61 64 65 64 25 3a 6c 6f 61 64 65 |e$,loaded%:loade| 00006750 64 25 3d b9 0d 27 2e 16 20 c8 99 20 22 48 6f 75 |d%=..'.. .. "Hou| 00006760 72 67 6c 61 73 73 5f 4f 6e 22 0d 27 38 55 20 e7 |rglass_On".'8U .| 00006770 20 66 69 6c 65 74 79 70 65 25 3c 3e 26 31 30 43 | filetype%<>&10C| 00006780 20 80 20 6e 65 78 74 25 3e 3d 33 32 20 f2 72 65 | . next%>=32 .re| 00006790 70 6f 72 74 5f 65 72 72 28 22 43 61 6e 27 74 20 |port_err("Can't | 000067a0 6c 6f 61 64 20 61 6e 79 20 6d 6f 72 65 20 73 61 |load any more sa| 000067b0 6d 70 6c 65 73 22 2c 31 30 30 2c 9e 29 3a e1 0d |mples",100,.):..| 000067c0 27 42 2b 20 c8 99 20 22 4f 53 5f 46 69 6c 65 22 |'B+ .. "OS_File"| 000067d0 2c 31 37 2c 66 69 6c 65 6e 61 6d 65 24 20 b8 20 |,17,filename$ . | 000067e0 6f 25 2c 2c 2c 2c 6c 65 6e 25 0d 27 4c 20 20 e7 |o%,,,,len%.'L .| 000067f0 20 6f 25 3d 30 20 85 20 31 2c 22 46 69 6c 65 20 | o%=0 . 1,"File | 00006800 6e 6f 74 20 66 6f 75 6e 64 22 0d 27 56 84 20 e7 |not found".'V. .| 00006810 20 a4 66 69 6c 65 5f 70 72 65 73 65 6e 74 28 a4 | .file_present(.| 00006820 6c 65 61 66 6e 61 6d 65 28 66 69 6c 65 6e 61 6d |leafname(filenam| 00006830 65 24 29 2c 66 69 6c 65 74 79 70 65 25 29 3d b9 |e$),filetype%)=.| 00006840 20 f2 72 65 70 6f 72 74 5f 65 72 72 28 22 53 61 | .report_err("Sa| 00006850 6d 70 6c 65 20 6e 61 6d 65 20 27 22 2b a4 6c 65 |mple name '"+.le| 00006860 61 66 6e 61 6d 65 28 66 69 6c 65 6e 61 6d 65 24 |afname(filename$| 00006870 29 2b 22 27 20 61 6c 72 65 61 64 79 20 70 72 65 |)+"' already pre| 00006880 73 65 6e 74 22 2c 31 30 30 2c 9e 29 3a e1 0d 27 |sent",100,.):..'| 00006890 60 13 20 c8 8e 20 66 69 6c 65 74 79 70 65 25 20 |`. .. filetype% | 000068a0 ca 0d 27 6a 0b 20 c9 20 26 46 46 41 0d 27 74 29 |..'j. . &FFA.'t)| 000068b0 20 6d 6f 64 6e 61 6d 65 24 3d a4 67 65 74 5f 6d | modname$=.get_m| 000068c0 6f 64 75 6c 65 5f 6e 61 6d 65 28 66 69 6c 65 6e |odule_name(filen| 000068d0 61 6d 65 24 29 0d 27 7e 2a 20 6d 6f 64 70 72 65 |ame$).'~* modpre| 000068e0 73 65 6e 74 25 3d a4 6d 6f 64 75 6c 65 5f 70 72 |sent%=.module_pr| 000068f0 65 73 65 6e 74 28 6d 6f 64 6e 61 6d 65 24 29 0d |esent(modname$).| 00006900 27 88 29 20 e7 20 6d 6f 64 70 72 65 73 65 6e 74 |'.) . modpresent| 00006910 25 20 f2 6b 69 6c 6c 5f 6d 6f 64 75 6c 65 28 6d |% .kill_module(m| 00006920 6f 64 6e 61 6d 65 24 29 0d 27 92 2a 20 f2 73 74 |odname$).'.* .st| 00006930 6f 72 65 73 61 6d 70 6c 65 73 28 30 2c a4 6c 65 |oresamples(0,.le| 00006940 61 66 6e 61 6d 65 28 66 69 6c 65 6e 61 6d 65 24 |afname(filename$| 00006950 29 29 0d 27 9c 1a 20 ff 20 22 52 4d 4c 6f 61 64 |)).'.. . "RMLoad| 00006960 20 22 2b 66 69 6c 65 6e 61 6d 65 24 0d 27 a6 2b | "+filename$.'.+| 00006970 20 f2 73 74 6f 72 65 73 61 6d 70 6c 65 73 28 33 | .storesamples(3| 00006980 32 2c a4 6c 65 61 66 6e 61 6d 65 28 66 69 6c 65 |2,.leafname(file| 00006990 6e 61 6d 65 24 29 29 0d 27 b0 37 20 e7 20 6c 6f |name$)).'.7 . lo| 000069a0 61 64 65 64 25 3d a3 20 80 20 6d 6f 64 70 72 65 |aded%=. . modpre| 000069b0 73 65 6e 74 25 3d a3 20 f2 6b 69 6c 6c 5f 6d 6f |sent%=. .kill_mo| 000069c0 64 75 6c 65 28 6d 6f 64 6e 61 6d 65 24 29 0d 27 |dule(modname$).'| 000069d0 ba 45 20 e7 20 73 63 72 61 70 25 3c 3e 30 20 ff |.E . scrap%<>0 .| 000069e0 20 22 44 65 6c 65 74 65 20 3c 57 69 6d 70 24 53 | "Delete <Wimp$S| 000069f0 63 72 61 70 3e 22 3a 73 63 72 61 70 25 3d 30 3a |crap>":scrap%=0:| 00006a00 66 69 6c 65 6e 61 6d 65 24 3d 6c 65 61 66 6e 61 |filename$=leafna| 00006a10 6d 65 24 0d 27 c4 3b 20 e7 20 6c 6f 61 64 65 64 |me$.'.; . loaded| 00006a20 25 20 73 61 6d 70 61 64 64 72 25 28 6e 65 78 74 |% sampaddr%(next| 00006a30 25 29 3d 30 3a f2 75 70 64 61 74 65 73 61 6d 70 |%)=0:.updatesamp| 00006a40 61 72 72 61 79 73 28 6c 65 6e 25 2c b9 29 0d 27 |arrays(len%,.).'| 00006a50 ce 12 20 f2 64 61 74 61 6c 6f 61 64 5f 61 63 6b |.. .dataload_ack| 00006a60 0d 27 d8 1f 20 c9 20 26 44 46 39 2c 26 43 42 35 |.'.. . &DF9,&CB5| 00006a70 2c 26 45 44 30 2c 26 44 33 43 2c 26 46 46 44 0d |,&ED0,&D3C,&FFD.| 00006a80 27 e2 18 20 e7 20 a4 65 78 74 65 6e 64 28 6c 65 |'.. . .extend(le| 00006a90 6e 25 29 3d a3 20 8c 0d 27 ec 19 20 f2 6c 6f 61 |n%)=. ..'.. .loa| 00006aa0 64 5f 73 61 6d 70 6c 65 28 6c 65 6e 25 2c b9 29 |d_sample(len%,.)| 00006ab0 0d 27 f6 29 20 e7 20 61 75 74 6f 69 6e 73 74 25 |.'.) . autoinst%| 00006ac0 20 f2 69 6e 73 74 61 6c 6c 5f 73 61 6d 70 6c 65 | .install_sample| 00006ad0 28 6e 65 78 74 25 2d 31 29 0d 28 00 12 20 f2 64 |(next%-1).(.. .d| 00006ae0 61 74 61 6c 6f 61 64 5f 61 63 6b 0d 28 0a 06 20 |ataload_ack.(.. | 00006af0 cd 0d 28 14 0b 20 c9 20 26 31 30 43 0d 28 1e 12 |..(.. . &10C.(..| 00006b00 20 f2 64 61 74 61 6c 6f 61 64 5f 61 63 6b 0d 28 | .dataload_ack.(| 00006b10 28 3c 20 e7 20 63 68 61 6e 67 65 64 25 20 f2 6d |(< . changed% .m| 00006b20 65 73 73 61 67 65 5f 62 6f 78 28 32 29 20 8b 20 |essage_box(2) . | 00006b30 f2 6b 65 79 62 6f 61 72 64 64 61 74 61 69 6e 28 |.keyboarddatain(| 00006b40 66 69 6c 65 6e 61 6d 65 24 29 0d 28 32 06 20 cb |filename$).(2. .| 00006b50 0d 28 3c 17 20 c8 99 20 22 48 6f 75 72 67 6c 61 |.(<. .. "Hourgla| 00006b60 73 73 5f 4f 66 66 22 0d 28 46 06 20 e1 0d 28 50 |ss_Off".(F. ..(P| 00006b70 04 0d 28 5a 20 20 dd f2 75 70 64 61 74 65 73 61 |..(Z ..updatesa| 00006b80 6d 70 61 72 72 61 79 73 28 6c 65 6e 25 2c 70 25 |mparrays(len%,p%| 00006b90 29 0d 28 64 3b 20 e7 20 70 25 20 70 61 74 68 6e |).(d; . p% pathn| 00006ba0 61 6d 65 24 28 6e 65 78 74 25 29 3d 66 69 6c 65 |ame$(next%)=file| 00006bb0 6e 61 6d 65 24 3a 74 79 70 65 25 28 6e 65 78 74 |name$:type%(next| 00006bc0 25 29 3d 66 69 6c 65 74 79 70 65 25 0d 28 6e 16 |%)=filetype%.(n.| 00006bd0 20 73 69 7a 65 25 28 6e 65 78 74 25 29 3d 6c 65 | size%(next%)=le| 00006be0 6e 25 0d 28 78 2a 20 f2 75 70 64 61 74 65 73 61 |n%.(x* .updatesa| 00006bf0 6d 70 6c 69 73 74 28 a4 6c 65 61 66 6e 61 6d 65 |mplist(.leafname| 00006c00 28 66 69 6c 65 6e 61 6d 65 24 29 29 0d 28 82 0d |(filename$)).(..| 00006c10 20 6e 65 78 74 25 2b 3d 31 0d 28 8c 1b 20 f2 75 | next%+=1.(.. .u| 00006c20 70 64 61 74 65 73 61 6d 70 69 63 6f 6e 28 6e 65 |pdatesampicon(ne| 00006c30 78 74 25 29 0d 28 96 14 20 f2 63 68 65 63 6b 63 |xt%).(.. .checkc| 00006c40 68 61 6e 67 65 28 a3 29 0d 28 a0 06 20 e1 0d 28 |hange(.).(.. ..(| 00006c50 aa 04 0d 28 b4 1c 20 dd f2 75 70 64 61 74 65 73 |...(.. ..updates| 00006c60 61 6d 70 6c 69 73 74 28 6e 61 6d 65 24 29 0d 28 |amplist(name$).(| 00006c70 be 2c 20 e7 20 a9 20 6e 61 6d 65 24 3e 31 31 20 |., . . name$>11 | 00006c80 85 20 31 2c 22 53 61 6d 70 6c 65 20 6e 61 6d 65 |. 1,"Sample name| 00006c90 20 74 6f 6f 20 6c 6f 6e 67 22 0d 28 c8 21 20 f2 | too long".(.! .| 00006ca0 67 65 74 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 |get_window_state| 00006cb0 28 73 61 6d 70 6c 69 73 74 25 29 0d 28 d2 59 20 |(samplist%).(.Y | 00006cc0 21 62 6c 6b 25 3d 73 61 6d 70 6c 69 73 74 25 3a |!blk%=samplist%:| 00006cd0 62 6c 6b 25 21 34 3d 30 3a 62 6c 6b 25 21 38 3d |blk%!4=0:blk%!8=| 00006ce0 30 2d 28 6e 65 78 74 25 2a 34 34 29 2d 34 34 3a |0-(next%*44)-44:| 00006cf0 62 6c 6b 25 21 31 32 3d 78 31 25 2d 78 30 25 3a |blk%!12=x1%-x0%:| 00006d00 62 6c 6b 25 21 31 36 3d 30 2d 28 6e 65 78 74 25 |blk%!16=0-(next%| 00006d10 2a 34 34 29 0d 28 dc 26 20 62 6c 6b 25 21 32 30 |*44).(.& blk%!20| 00006d20 3d 26 37 30 31 42 34 33 31 3a 24 28 62 6c 6b 25 |=&701B431:$(blk%| 00006d30 2b 32 34 29 3d 6e 61 6d 65 24 0d 28 e6 1f 20 c8 |+24)=name$.(.. .| 00006d40 99 20 22 57 69 6d 70 5f 43 72 65 61 74 65 49 63 |. "Wimp_CreateIc| 00006d50 6f 6e 22 2c 2c 62 6c 6b 25 0d 28 f0 5b 20 e7 20 |on",,blk%.(.[ . | 00006d60 73 61 6d 70 6f 70 65 6e 25 20 c8 99 20 22 57 69 |sampopen% .. "Wi| 00006d70 6d 70 5f 46 6f 72 63 65 52 65 64 72 61 77 22 2c |mp_ForceRedraw",| 00006d80 73 61 6d 70 6c 69 73 74 25 2c 30 2c 28 30 2d 28 |samplist%,0,(0-(| 00006d90 6e 65 78 74 25 2a 34 34 29 2d 34 34 29 2c 78 31 |next%*44)-44),x1| 00006da0 25 2d 78 30 25 2c 28 30 2d 28 6e 65 78 74 25 2a |%-x0%,(0-(next%*| 00006db0 34 34 29 29 0d 28 fa 25 20 e7 20 28 30 2d 28 6e |44)).(.% . (0-(n| 00006dc0 65 78 74 25 2a 34 34 29 2d 34 34 29 3c 2d 28 79 |ext%*44)-44)<-(y| 00006dd0 31 25 2d 79 30 25 29 20 8c 0d 29 04 3c 20 21 62 |1%-y0%) ..).< !b| 00006de0 6c 6b 25 3d 30 3a 62 6c 6b 25 21 34 3d 30 2d 28 |lk%=0:blk%!4=0-(| 00006df0 6e 65 78 74 25 2a 34 34 29 2d 34 34 3a 62 6c 6b |next%*44)-44:blk| 00006e00 25 21 38 3d 78 31 25 2d 78 30 25 3a 62 6c 6b 25 |%!8=x1%-x0%:blk%| 00006e10 21 31 32 3d 30 0d 29 0e 27 20 c8 99 20 22 57 69 |!12=0.).' .. "Wi| 00006e20 6d 70 5f 53 65 74 45 78 74 65 6e 74 22 2c 73 61 |mp_SetExtent",sa| 00006e30 6d 70 6c 69 73 74 25 2c 62 6c 6b 25 0d 29 18 06 |mplist%,blk%.)..| 00006e40 20 cd 0d 29 22 06 20 e1 0d 29 2c 04 0d 29 36 1b | ..)". ..),..)6.| 00006e50 20 dd f2 65 6e 74 69 72 65 5f 6c 69 73 74 28 61 | ..entire_list(a| 00006e60 63 74 69 6f 6e 25 29 0d 29 40 39 20 ea 20 6d 61 |ction%).)@9 . ma| 00006e70 73 6b 25 2c 62 6d 61 74 63 68 25 2c 61 64 64 72 |sk%,bmatch%,addr| 00006e80 25 2c 70 25 2c 6e 25 3a 6e 25 3d 30 3a 61 64 64 |%,p%,n%:n%=0:add| 00006e90 72 25 3d 62 6c 6b 25 2b 32 35 36 3a 70 25 3d 30 |r%=blk%+256:p%=0| 00006ea0 0d 29 4a 11 20 6d 61 73 6b 25 3d 25 31 3c 3c 32 |.)J. mask%=%1<<2| 00006eb0 31 0d 29 54 11 20 c8 8e 20 61 63 74 69 6f 6e 25 |1.)T. .. action%| 00006ec0 20 ca 0d 29 5e 15 20 c9 20 30 2c 33 3a 20 62 6d | ..)^. . 0,3: bm| 00006ed0 61 74 63 68 25 3d 30 0d 29 68 1e 20 c9 20 31 2c |atch%=0.)h. . 1,| 00006ee0 32 2c 35 2c 36 3a 20 62 6d 61 74 63 68 25 3d 25 |2,5,6: bmatch%=%| 00006ef0 31 3c 3c 32 31 0d 29 72 06 20 cb 0d 29 7c 36 20 |1<<21.)r. ..)|6 | 00006f00 c8 99 20 22 57 69 6d 70 5f 57 68 69 63 68 49 63 |.. "Wimp_WhichIc| 00006f10 6f 6e 22 2c 73 61 6d 70 6c 69 73 74 25 2c 61 64 |on",samplist%,ad| 00006f20 64 72 25 2c 6d 61 73 6b 25 2c 62 6d 61 74 63 68 |dr%,mask%,bmatch| 00006f30 25 0d 29 86 06 20 3a 0d 29 90 22 20 e7 20 61 63 |%.).. :.)." . ac| 00006f40 74 69 6f 6e 25 3d 32 20 84 20 61 63 74 69 6f 6e |tion%=2 . action| 00006f50 25 3d 36 20 f2 6d 75 74 65 0d 29 9a 06 20 3a 0d |%=6 .mute.).. :.| 00006f60 29 a4 12 20 e7 20 61 63 74 69 6f 6e 25 3d 32 20 |).. . action%=2 | 00006f70 8c 0d 29 ae 23 20 c8 95 20 21 61 64 64 72 25 3c |..).# .. !addr%<| 00006f80 3e 2d 31 3a 61 64 64 72 25 2b 3d 34 3a 6e 25 2b |>-1:addr%+=4:n%+| 00006f90 3d 31 3a ce 0d 29 b8 26 20 e7 20 6e 25 3d 6e 65 |=1:..).& . n%=ne| 00006fa0 78 74 25 20 f2 64 65 6c 65 74 65 5f 61 6c 6c 3a |xt% .delete_all:| 00006fb0 61 63 74 69 6f 6e 25 3d 2d 31 0d 29 c2 13 20 61 |action%=-1.).. a| 00006fc0 64 64 72 25 3d 62 6c 6b 25 2b 32 35 36 0d 29 cc |ddr%=blk%+256.).| 00006fd0 06 20 cd 0d 29 d6 06 20 3a 0d 29 e0 13 20 e7 20 |. ..).. :.).. . | 00006fe0 61 63 74 69 6f 6e 25 3e 2d 31 20 8c 0d 29 ea 12 |action%>-1 ..)..| 00006ff0 20 c8 95 20 21 61 64 64 72 25 3c 3e 2d 31 0d 29 | .. !addr%<>-1.)| 00007000 f4 11 20 c8 8e 20 61 63 74 69 6f 6e 25 20 ca 0d |.. .. action% ..| 00007010 29 fe 34 20 c9 20 30 3a 20 f2 75 70 64 61 74 65 |).4 . 0: .update| 00007020 5f 69 63 6f 6e 28 73 61 6d 70 6c 69 73 74 25 2c |_icon(samplist%,| 00007030 21 61 64 64 72 25 2c 6d 61 73 6b 25 2c 6d 61 73 |!addr%,mask%,mas| 00007040 6b 25 29 0d 2a 08 30 20 c9 20 31 3a 20 f2 75 70 |k%).*.0 . 1: .up| 00007050 64 61 74 65 5f 69 63 6f 6e 28 73 61 6d 70 6c 69 |date_icon(sampli| 00007060 73 74 25 2c 21 61 64 64 72 25 2c 30 2c 6d 61 73 |st%,!addr%,0,mas| 00007070 6b 25 29 0d 2a 12 20 20 c9 20 32 3a 20 f2 64 65 |k%).*. . 2: .de| 00007080 6c 65 74 65 5f 73 61 6d 70 6c 65 28 21 61 64 64 |lete_sample(!add| 00007090 72 25 29 0d 2a 1c 20 20 c9 20 33 3a 20 f2 72 65 |r%).*. . 3: .re| 000070a0 6e 75 6d 62 65 72 5f 69 63 6f 6e 28 21 61 64 64 |number_icon(!add| 000070b0 72 25 29 0d 2a 26 21 20 c9 20 35 3a 20 f2 69 6e |r%).*&! . 5: .in| 000070c0 73 74 61 6c 6c 5f 73 61 6d 70 6c 65 28 21 61 64 |stall_sample(!ad| 000070d0 64 72 25 29 0d 2a 30 20 20 c9 20 36 3a 20 f2 72 |dr%).*0 . 6: .r| 000070e0 65 6d 6f 76 65 5f 73 61 6d 70 6c 65 28 21 61 64 |emove_sample(!ad| 000070f0 64 72 25 29 0d 2a 3a 06 20 cb 0d 2a 44 0d 20 61 |dr%).*:. ..*D. a| 00007100 64 64 72 25 2b 3d 34 0d 2a 4e 06 20 ce 0d 2a 58 |ddr%+=4.*N. ..*X| 00007110 06 20 cd 0d 2a 62 1e 20 e7 20 61 63 74 69 6f 6e |. ..*b. . action| 00007120 25 3d 32 20 f2 72 65 69 6e 69 74 76 6f 69 63 65 |%=2 .reinitvoice| 00007130 73 0d 2a 6c 34 20 e7 20 61 63 74 69 6f 6e 25 3d |s.*l4 . action%=| 00007140 32 20 84 20 61 63 74 69 6f 6e 25 3d 2d 31 20 f2 |2 . action%=-1 .| 00007150 75 70 64 61 74 65 73 61 6d 70 69 63 6f 6e 28 6e |updatesampicon(n| 00007160 65 78 74 25 29 0d 2a 76 32 20 e7 20 61 63 74 69 |ext%).*v2 . acti| 00007170 6f 6e 25 3d 32 20 84 20 61 63 74 69 6f 6e 25 3d |on%=2 . action%=| 00007180 36 20 84 20 61 63 74 69 6f 6e 25 3d 2d 31 20 f2 |6 . action%=-1 .| 00007190 72 65 73 74 6f 72 65 0d 2a 80 12 20 e7 20 61 63 |restore.*.. . ac| 000071a0 74 69 6f 6e 25 3d 33 20 8c 0d 2a 8a 21 20 f2 67 |tion%=3 ..*.! .g| 000071b0 65 74 5f 77 69 6e 64 6f 77 5f 73 74 61 74 65 28 |et_window_state(| 000071c0 73 61 6d 70 6c 69 73 74 25 29 0d 2a 94 22 20 e7 |samplist%).*." .| 000071d0 20 28 30 2d 28 6e 65 78 74 25 2a 34 34 29 29 3c | (0-(next%*44))<| 000071e0 2d 28 79 31 25 2d 79 30 25 29 20 8c 0d 2a 9e 39 |-(y1%-y0%) ..*.9| 000071f0 20 21 62 6c 6b 25 3d 30 3a 62 6c 6b 25 21 34 3d | !blk%=0:blk%!4=| 00007200 30 2d 28 6e 65 78 74 25 2a 34 34 29 3a 62 6c 6b |0-(next%*44):blk| 00007210 25 21 38 3d 78 31 25 2d 78 30 25 3a 62 6c 6b 25 |%!8=x1%-x0%:blk%| 00007220 21 31 32 3d 30 0d 2a a8 06 20 cc 0d 2a b2 37 20 |!12=0.*.. ..*.7 | 00007230 21 62 6c 6b 25 3d 30 3a 62 6c 6b 25 21 34 3d 2d |!blk%=0:blk%!4=-| 00007240 28 79 31 25 2d 79 30 25 29 3a 62 6c 6b 25 21 38 |(y1%-y0%):blk%!8| 00007250 3d 78 31 25 2d 78 30 25 3a 62 6c 6b 25 21 31 32 |=x1%-x0%:blk%!12| 00007260 3d 30 0d 2a bc 06 20 cd 0d 2a c6 27 20 c8 99 20 |=0.*.. ..*.' .. | 00007270 22 57 69 6d 70 5f 53 65 74 45 78 74 65 6e 74 22 |"Wimp_SetExtent"| 00007280 2c 73 61 6d 70 6c 69 73 74 25 2c 62 6c 6b 25 0d |,samplist%,blk%.| 00007290 2a d0 12 20 e7 20 73 61 6d 70 6f 70 65 6e 25 20 |*.. . sampopen% | 000072a0 8c 0d 2a da 2d 20 c8 99 20 22 57 69 6d 70 5f 46 |..*.- .. "Wimp_F| 000072b0 6f 72 63 65 52 65 64 72 61 77 22 2c 2d 31 2c 78 |orceRedraw",-1,x| 000072c0 30 25 2c 79 30 25 2c 78 31 25 2c 79 31 25 0d 2a |0%,y0%,x1%,y1%.*| 000072d0 e4 2d 20 f2 67 65 74 5f 77 69 6e 64 6f 77 5f 69 |.- .get_window_i| 000072e0 6e 66 6f 28 73 61 6d 70 6c 69 73 74 25 29 3a f2 |nfo(samplist%):.| 000072f0 6f 70 65 6e 5f 77 69 6e 64 6f 77 0d 2a ee 06 20 |open_window.*.. | 00007300 cd 0d 2a f8 06 20 cd 0d 2b 02 06 20 e1 0d 2b 0c |..*.. ..+.. ..+.| 00007310 04 0d 2b 16 11 20 dd f2 64 65 6c 65 74 65 5f 61 |..+.. ..delete_a| 00007320 6c 6c 0d 2b 20 10 20 e7 20 6e 65 78 74 25 3d 30 |ll.+ . . next%=0| 00007330 20 e1 0d 2b 2a 14 20 21 62 6c 6b 25 3d 73 61 6d | ..+*. !blk%=sam| 00007340 70 6c 69 73 74 25 0d 2b 34 15 20 e3 20 4e 25 3d |plist%.+4. . N%=| 00007350 30 20 b8 20 6e 65 78 74 25 2d 31 0d 2b 3e 0e 20 |0 . next%-1.+>. | 00007360 62 6c 6b 25 21 34 3d 4e 25 0d 2b 48 1f 20 c8 99 |blk%!4=N%.+H. ..| 00007370 20 22 57 69 6d 70 5f 44 65 6c 65 74 65 49 63 6f | "Wimp_DeleteIco| 00007380 6e 22 2c 2c 62 6c 6b 25 0d 2b 52 2c 20 e7 20 3f |n",,blk%.+R, . ?| 00007390 28 63 6f 64 65 25 2b 26 39 44 30 2b 4e 25 29 3e |(code%+&9D0+N%)>| 000073a0 30 20 f2 72 65 6d 6f 76 65 5f 73 61 6d 70 6c 65 |0 .remove_sample| 000073b0 28 4e 25 29 0d 2b 5c 06 20 ed 0d 2b 66 35 20 70 |(N%).+\. ..+f5 p| 000073c0 61 74 68 6e 61 6d 65 24 28 29 3d 22 22 3a 73 69 |athname$()="":si| 000073d0 7a 65 25 28 29 3d 30 3a 74 79 70 65 25 28 29 3d |ze%()=0:type%()=| 000073e0 30 3a 73 61 6d 70 61 64 64 72 25 28 29 3d 30 0d |0:sampaddr%()=0.| 000073f0 2b 70 32 20 e7 20 73 61 6d 70 6c 65 62 61 73 65 |+p2 . samplebase| 00007400 25 3e 30 20 c8 99 20 22 4f 53 5f 4d 6f 64 75 6c |%>0 .. "OS_Modul| 00007410 65 22 2c 37 2c 2c 73 61 6d 70 6c 65 62 61 73 65 |e",7,,samplebase| 00007420 25 0d 2b 7a 28 20 6e 65 78 74 25 3d 30 3a 73 61 |%.+z( next%=0:sa| 00007430 6d 70 6c 65 62 61 73 65 25 3d 30 3a 73 61 6d 70 |mplebase%=0:samp| 00007440 6f 66 66 73 65 74 25 3d 30 0d 2b 84 06 20 e1 0d |offset%=0.+.. ..| 00007450 2b 8e 04 0d 2b 98 1b 20 dd f2 75 70 64 61 74 65 |+...+.. ..update| 00007460 69 6e 66 6f 62 6f 78 28 69 63 6f 6e 25 29 0d 2b |infobox(icon%).+| 00007470 a2 0f 20 ea 20 61 24 2c 62 24 2c 63 24 0d 2b ac |.. . a$,b$,c$.+.| 00007480 2c 20 f2 73 65 74 5f 69 63 6f 6e 28 73 61 6d 70 |, .set_icon(samp| 00007490 69 6e 66 6f 25 2c 38 2c 70 61 74 68 6e 61 6d 65 |info%,8,pathname| 000074a0 24 28 69 63 6f 6e 25 29 29 0d 2b b6 2a 20 f2 73 |$(icon%)).+.* .s| 000074b0 65 74 5f 69 63 6f 6e 28 73 61 6d 70 69 6e 66 6f |et_icon(sampinfo| 000074c0 25 2c 37 2c c3 20 73 69 7a 65 25 28 69 63 6f 6e |%,7,. size%(icon| 000074d0 25 29 29 0d 2b c0 17 20 62 24 3d c3 20 7e 74 79 |%)).+.. b$=. ~ty| 000074e0 70 65 25 28 69 63 6f 6e 25 29 0d 2b ca 0c 20 c8 |pe%(icon%).+.. .| 000074f0 8e 20 62 24 20 ca 0d 2b d4 19 20 c9 20 22 46 46 |. b$ ..+.. . "FF| 00007500 41 22 3a 20 61 24 3d 22 4d 6f 64 75 6c 65 22 0d |A": a$="Module".| 00007510 2b de 16 20 c9 20 22 44 46 39 22 3a 20 61 24 3d |+.. . "DF9": a$=| 00007520 22 45 4d 52 22 0d 2b e8 1f 20 c9 20 22 43 42 35 |"EMR".+.. . "CB5| 00007530 22 3a 20 61 24 3d 22 53 6f 75 6e 64 54 72 61 63 |": a$="SoundTrac| 00007540 6b 65 72 22 0d 2b f2 19 20 c9 20 22 45 44 30 22 |ker".+.. . "ED0"| 00007550 3a 20 61 24 3d 22 44 53 45 64 69 74 22 0d 2b fc |: a$="DSEdit".+.| 00007560 1e 20 c9 20 22 46 46 44 22 3a 20 61 24 3d 22 4c |. . "FFD": a$="L| 00007570 6f 67 61 72 69 74 68 6d 69 63 22 0d 2c 06 1b 20 |ogarithmic".,.. | 00007580 c9 20 22 44 33 43 22 3a 20 61 24 3d 22 41 72 6d |. "D3C": a$="Arm| 00007590 61 64 65 75 73 22 0d 2c 10 06 20 cb 0d 2c 1a 1e |adeus".,.. ..,..| 000075a0 20 f2 73 65 74 5f 69 63 6f 6e 28 73 61 6d 70 69 | .set_icon(sampi| 000075b0 6e 66 6f 25 2c 33 2c 61 24 29 0d 2c 24 2f 20 e7 |nfo%,3,a$).,$/ .| 000075c0 20 3f 28 63 6f 64 65 25 2b 26 39 44 30 2b 69 63 | ?(code%+&9D0+ic| 000075d0 6f 6e 25 29 3e 30 20 63 24 3d 22 59 65 73 22 20 |on%)>0 c$="Yes" | 000075e0 8b 20 63 24 3d 22 4e 6f 22 0d 2c 2e 21 20 e7 20 |. c$="No".,.! . | 000075f0 74 79 70 65 25 28 69 63 6f 6e 25 29 3d 26 46 46 |type%(icon%)=&FF| 00007600 41 20 63 24 3d 22 59 65 73 22 0d 2c 38 1f 20 f2 |A c$="Yes".,8. .| 00007610 73 65 74 5f 69 63 6f 6e 28 73 61 6d 70 69 6e 66 |set_icon(sampinf| 00007620 6f 25 2c 31 32 2c 63 24 29 0d 2c 42 22 20 f2 67 |o%,12,c$).,B" .g| 00007630 65 74 5f 69 63 6f 6e 5f 73 74 61 74 65 28 73 61 |et_icon_state(sa| 00007640 6d 70 69 6e 66 6f 25 2c 31 33 29 0d 2c 4c 1f 20 |mpinfo%,13).,L. | 00007650 c8 99 20 22 57 69 6d 70 5f 44 65 6c 65 74 65 49 |.. "Wimp_DeleteI| 00007660 63 6f 6e 22 2c 2c 62 6c 6b 25 0d 2c 56 2b 20 62 |con",,blk%.,V+ b| 00007670 6c 6b 25 21 34 3d 73 61 6d 70 69 6e 66 6f 25 3a |lk%!4=sampinfo%:| 00007680 24 28 62 6c 6b 25 2b 32 38 29 3d 22 66 69 6c 65 |$(blk%+28)="file| 00007690 5f 22 2b 62 24 0d 2c 60 21 20 c8 99 20 22 57 69 |_"+b$.,`! .. "Wi| 000076a0 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c |mp_CreateIcon",,| 000076b0 62 6c 6b 25 2b 34 0d 2c 6a 06 20 e1 0d 2c 74 04 |blk%+4.,j. ..,t.| 000076c0 0d 2c 7e 15 20 dd a4 69 63 6f 6e 73 5f 73 65 6c |.,~. ..icons_sel| 000076d0 65 63 74 65 64 0d 2c 88 0f 20 ea 20 6e 25 3a 6e |ected.,.. . n%:n| 000076e0 25 3d 2d 31 0d 2c 92 39 20 c8 99 20 22 57 69 6d |%=-1.,.9 .. "Wim| 000076f0 70 5f 57 68 69 63 68 49 63 6f 6e 22 2c 73 61 6d |p_WhichIcon",sam| 00007700 70 6c 69 73 74 25 2c 62 6c 6b 25 2b 31 32 38 2c |plist%,blk%+128,| 00007710 25 31 3c 3c 32 31 2c 25 31 3c 3c 32 31 0d 2c 9c |%1<<21,%1<<21.,.| 00007720 24 20 f5 3a 6e 25 2b 3d 31 3a fd 20 21 28 62 6c |$ .:n%+=1:. !(bl| 00007730 6b 25 2b 31 32 38 2b 28 6e 25 2a 34 29 29 3d 2d |k%+128+(n%*4))=-| 00007740 31 0d 2c a6 08 20 3d 6e 25 0d 2c b0 04 0d 2c ba |1.,.. =n%.,...,.| 00007750 16 20 dd f2 6d 65 73 73 61 67 65 5f 62 6f 78 28 |. ..message_box(| 00007760 61 25 29 0d 2c c4 2a 20 f2 70 6f 70 75 70 5f 77 |a%).,.* .popup_w| 00007770 69 6e 64 6f 77 28 6d 65 73 73 61 67 65 25 2c 32 |indow(message%,2| 00007780 29 3a 6d 61 63 74 69 6f 6e 25 3d 61 25 0d 2c ce |):maction%=a%.,.| 00007790 22 20 f2 67 65 74 5f 77 69 6e 64 6f 77 5f 6f 75 |" .get_window_ou| 000077a0 74 6c 69 6e 65 28 6d 65 73 73 61 67 65 25 29 0d |tline(message%).| 000077b0 2c d8 26 20 c8 97 20 c8 93 20 78 30 25 2c 79 30 |,.& .. .. x0%,y0| 000077c0 25 2c 78 31 25 2d 78 30 25 2d 32 2c 79 31 25 2d |%,x1%-x0%-2,y1%-| 000077d0 79 30 25 2d 34 0d 2c e2 27 20 c8 99 20 22 4f 53 |y0%-4.,.' .. "OS| 000077e0 5f 42 79 74 65 22 2c 26 43 39 2c 30 2c 26 46 46 |_Byte",&C9,0,&FF| 000077f0 20 b8 20 2c 6b 65 79 73 74 61 74 25 0d 2c ec 19 | . ,keystat%.,..| 00007800 20 c8 99 20 22 4f 53 5f 42 79 74 65 22 2c 26 43 | .. "OS_Byte",&C| 00007810 39 2c 31 2c 30 0d 2c f6 06 20 e1 0d 2d 00 04 0d |9,1,0.,.. ..-...| 00007820 2d 0a 19 20 dd f2 6b 65 79 62 6f 61 72 64 64 61 |-.. ..keyboardda| 00007830 74 61 69 6e 28 66 24 29 0d 2d 14 3d 20 ea 20 66 |tain(f$).-.= . f| 00007840 25 2c 6f 25 2c 6c 25 2c 61 24 2c 62 24 2c 6e 25 |%,o%,l%,a$,b$,n%| 00007850 2c 41 25 2c 73 76 6f 6c 25 2c 73 73 70 65 61 6b |,A%,svol%,sspeak| 00007860 65 72 25 2c 65 25 2c 69 25 2c 73 24 2c 73 6b 25 |er%,e%,i%,s$,sk%| 00007870 2c 6c 65 6e 25 0d 2d 1e 16 20 c8 99 20 22 48 6f |,len%.-.. .. "Ho| 00007880 75 72 67 6c 61 73 73 5f 4f 6e 22 0d 2d 28 30 20 |urglass_On".-(0 | 00007890 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 63 6f |.close_window(co| 000078a0 6e 25 29 3a f2 63 6c 6f 73 65 5f 77 69 6e 64 6f |n%):.close_windo| 000078b0 77 28 73 61 6d 70 6c 65 73 25 29 0d 2d 32 19 20 |w(samples%).-2. | 000078c0 f2 63 6c 6f 73 65 5f 77 69 6e 64 6f 77 28 6d 61 |.close_window(ma| 000078d0 69 6e 25 29 0d 2d 3c 1f 20 f2 6d 75 74 65 3a f2 |in%).-<. .mute:.| 000078e0 64 65 6c 65 74 65 5f 61 6c 6c 3a f2 72 65 73 74 |delete_all:.rest| 000078f0 6f 72 65 0d 2d 46 12 20 73 6b 25 3d 73 68 6f 77 |ore.-F. sk%=show| 00007900 6b 65 79 73 25 0d 2d 50 0c 20 6d 76 25 28 29 3d |keys%.-P. mv%()=| 00007910 30 0d 2d 5a 17 20 6c 6f 61 64 65 64 76 6f 69 63 |0.-Z. loadedvoic| 00007920 65 73 24 28 29 3d 22 22 0d 2d 64 06 20 3a 0d 2d |es$()="".-d. :.-| 00007930 6e 0d 20 41 25 3d 8e 28 66 24 29 0d 2d 78 0d 20 |n. A%=.(f$).-x. | 00007940 e8 23 20 41 25 2c 61 24 0d 2d 82 0d 20 e8 23 20 |.# A%,a$.-.. .# | 00007950 41 25 2c 62 24 0d 2d 8c 22 20 73 61 76 65 63 68 |A%,b$.-." savech| 00007960 6f 69 63 65 73 25 3d a4 6e 65 67 61 74 69 76 65 |oices%=.negative| 00007970 28 9a 23 20 41 25 29 0d 2d 96 17 20 e7 20 73 61 |(.# A%).-.. . sa| 00007980 76 65 63 68 6f 69 63 65 73 25 3d b9 20 8c 0d 2d |vechoices%=. ..-| 00007990 a0 1f 20 61 75 74 6f 69 6e 73 74 25 3d a4 6e 65 |.. autoinst%=.ne| 000079a0 67 61 74 69 76 65 28 9a 23 20 41 25 29 0d 2d aa |gative(.# A%).-.| 000079b0 1a 20 6f 63 74 25 3d a4 6e 65 67 61 74 69 76 65 |. oct%=.negative| 000079c0 28 9a 23 20 41 25 29 0d 2d b4 1c 20 74 72 61 6e |(.# A%).-.. tran| 000079d0 73 25 3d a4 6e 65 67 61 74 69 76 65 28 9a 23 20 |s%=.negative(.# | 000079e0 41 25 29 0d 2d be 10 20 63 68 61 6e 25 3d 9a 23 |A%).-.. chan%=.#| 000079f0 20 41 25 0d 2d c8 10 20 64 75 72 61 25 3d 9a 23 | A%.-.. dura%=.#| 00007a00 20 41 25 0d 2d d2 1f 20 73 68 6f 77 6b 65 79 73 | A%.-.. showkeys| 00007a10 25 3d a4 6e 65 67 61 74 69 76 65 28 9a 23 20 41 |%=.negative(.# A| 00007a20 25 29 0d 2d dc 1d 20 76 6f 6c 75 6d 65 25 3d a4 |%).-.. volume%=.| 00007a30 6e 65 67 61 74 69 76 65 28 9a 23 20 41 25 29 0d |negative(.# A%).| 00007a40 2d e6 11 20 76 6c 73 65 6c 25 3d 9a 23 20 41 25 |-.. vlsel%=.# A%| 00007a50 0d 2d f0 12 20 e8 23 20 41 25 2c 74 75 6e 6f 63 |.-.. .# A%,tunoc| 00007a60 74 25 0d 2d fa 13 20 e8 23 20 41 25 2c 74 75 6e |t%.-.. .# A%,tun| 00007a70 73 65 6d 69 25 0d 2e 04 10 20 73 76 6f 6c 25 3d |semi%.... svol%=| 00007a80 9a 23 20 41 25 0d 2e 0e 14 20 73 73 70 65 61 6b |.# A%.... sspeak| 00007a90 65 72 25 3d 9a 23 20 41 25 0d 2e 18 0f 20 e3 20 |er%=.# A%.... . | 00007aa0 6e 25 3d 30 20 b8 20 37 0d 2e 22 24 20 73 73 74 |n%=0 . 7.."$ sst| 00007ab0 65 72 65 6f 25 28 6e 25 29 3d a4 6e 65 67 61 74 |ereo%(n%)=.negat| 00007ac0 69 76 65 28 9a 23 20 41 25 29 3a ed 0d 2e 2c 1d |ive(.# A%):...,.| 00007ad0 20 73 61 6c 6f 6e 65 25 3d a4 6e 65 67 61 74 69 | salone%=.negati| 00007ae0 76 65 28 9a 23 20 41 25 29 0d 2e 36 0f 20 e3 20 |ve(.# A%)..6. . | 00007af0 6e 25 3d 30 20 b8 20 36 0d 2e 40 14 20 cf 23 20 |n%=0 . 6..@. .# | 00007b00 41 25 3d 8f 23 20 41 25 2b 31 3a ed 0d 2e 4a 06 |A%=.# A%+1:...J.| 00007b10 20 cc 0d 2e 54 10 20 e3 20 6e 25 3d 30 20 b8 20 | ...T. . n%=0 . | 00007b20 33 30 0d 2e 5e 14 20 cf 23 20 41 25 3d 8f 23 20 |30..^. .# A%=.# | 00007b30 41 25 2b 31 3a ed 0d 2e 68 06 20 cd 0d 2e 72 0d |A%+1:...h. ...r.| 00007b40 20 69 25 3d 9a 23 20 41 25 0d 2e 7c 0e 20 e7 20 | i%=.# A%..|. . | 00007b50 69 25 3c 3e 30 20 8c 0d 2e 86 10 20 e3 20 6e 25 |i%<>0 ..... . n%| 00007b60 3d 31 20 b8 20 69 25 0d 2e 90 0d 20 e8 23 20 41 |=1 . i%.... .# A| 00007b70 25 2c 73 24 0d 2e 9a 16 20 e8 23 20 41 25 2c 74 |%,s$.... .# A%,t| 00007b80 79 70 65 25 28 6e 25 2d 31 29 0d 2e a4 1b 20 3f |ype%(n%-1).... ?| 00007b90 28 73 6c 6f 74 62 6c 6b 25 2b 6e 25 2d 31 29 3d |(slotblk%+n%-1)=| 00007ba0 9a 23 20 41 25 0d 2e ae 17 20 70 61 74 68 6e 61 |.# A%.... pathna| 00007bb0 6d 65 24 28 6e 25 2d 31 29 3d 73 24 0d 2e b8 06 |me$(n%-1)=s$....| 00007bc0 20 ed 0d 2e c2 06 20 cd 0d 2e cc 0a 20 d9 23 20 | ..... ..... .# | 00007bd0 41 25 0d 2e d6 06 20 3a 0d 2e e0 24 20 f2 73 65 |A%.... :...$ .se| 00007be0 74 5f 69 63 6f 6e 28 74 75 6e 69 6e 67 25 2c 36 |t_icon(tuning%,6| 00007bf0 2c c3 28 74 75 6e 6f 63 74 25 29 29 0d 2e ea 25 |,.(tunoct%))...%| 00007c00 20 f2 73 65 74 5f 69 63 6f 6e 28 74 75 6e 69 6e | .set_icon(tunin| 00007c10 67 25 2c 39 2c c3 28 74 75 6e 73 65 6d 69 25 29 |g%,9,.(tunsemi%)| 00007c20 29 0d 2e f4 0e 20 2a 54 75 6e 69 6e 67 20 30 0d |).... *Tuning 0.| 00007c30 2e fe 31 20 ff 20 22 54 75 6e 69 6e 67 20 22 2b |..1 . "Tuning "+| 00007c40 c3 28 28 74 75 6e 6f 63 74 25 2a 34 30 39 36 29 |.((tunoct%*4096)| 00007c50 2b 28 74 75 6e 73 65 6d 69 25 2a 33 34 31 29 29 |+(tunsemi%*341))| 00007c60 0d 2f 08 15 20 f2 75 70 64 61 74 65 76 6f 69 63 |./.. .updatevoic| 00007c70 65 6c 69 73 74 0d 2f 12 06 20 3a 0d 2f 1c 38 20 |elist./.. :./.8 | 00007c80 77 69 6e 6d 65 6e 75 25 21 33 37 32 3d a4 53 70 |winmenu%!372=.Sp| 00007c90 65 63 49 74 65 6d 28 73 61 76 65 63 68 6f 69 63 |ecItem(savechoic| 00007ca0 65 73 25 2c 77 69 6e 6d 65 6e 75 25 21 33 37 32 |es%,winmenu%!372| 00007cb0 2c 30 29 0d 2f 26 17 20 e7 20 73 61 76 65 63 68 |,0)./&. . savech| 00007cc0 6f 69 63 65 73 25 3d b9 20 8c 0d 2f 30 35 20 77 |oices%=. ../05 w| 00007cd0 69 6e 6d 65 6e 75 25 21 33 34 38 3d a4 53 70 65 |inmenu%!348=.Spe| 00007ce0 63 49 74 65 6d 28 61 75 74 6f 69 6e 73 74 25 2c |cItem(autoinst%,| 00007cf0 77 69 6e 6d 65 6e 75 25 21 33 34 38 2c 30 29 0d |winmenu%!348,0).| 00007d00 2f 3a 33 20 77 69 6e 6d 65 6e 75 25 21 33 39 36 |/:3 winmenu%!396| 00007d10 3d a4 53 70 65 63 49 74 65 6d 28 73 61 6c 6f 6e |=.SpecItem(salon| 00007d20 65 25 2c 77 69 6e 6d 65 6e 75 25 21 33 39 36 2c |e%,winmenu%!396,| 00007d30 30 29 0d 2f 44 1f 20 f2 73 65 74 5f 69 63 6f 6e |0)./D. .set_icon| 00007d40 28 63 6f 6e 25 2c 32 33 2c c3 28 6f 63 74 25 29 |(con%,23,.(oct%)| 00007d50 29 0d 2f 4e 21 20 f2 73 65 74 5f 69 63 6f 6e 28 |)./N! .set_icon(| 00007d60 63 6f 6e 25 2c 32 36 2c c3 28 74 72 61 6e 73 25 |con%,26,.(trans%| 00007d70 29 29 0d 2f 58 20 20 f2 73 65 74 5f 69 63 6f 6e |))./X .set_icon| 00007d80 28 63 6f 6e 25 2c 33 32 2c c3 28 63 68 61 6e 25 |(con%,32,.(chan%| 00007d90 29 29 0d 2f 62 20 20 f2 73 65 74 5f 69 63 6f 6e |))./b .set_icon| 00007da0 28 63 6f 6e 25 2c 33 31 2c c3 28 64 75 72 61 25 |(con%,31,.(dura%| 00007db0 29 29 0d 2f 6c 1a 20 e7 20 73 6b 25 20 82 20 73 |))./l. . sk% . s| 00007dc0 68 6f 77 6b 65 79 73 25 3d b9 20 8c 0d 2f 76 43 |howkeys%=. ../vC| 00007dd0 20 73 68 6f 77 6b 65 79 73 25 3d 73 6b 25 3a f2 | showkeys%=sk%:.| 00007de0 74 6f 67 67 6c 65 63 68 61 72 73 3a f2 75 70 64 |togglechars:.upd| 00007df0 61 74 65 5f 69 63 6f 6e 28 63 6f 6e 25 2c 33 34 |ate_icon(con%,34| 00007e00 2c 25 31 3c 3c 32 31 2c 25 30 3c 3c 32 31 29 0d |,%1<<21,%0<<21).| 00007e10 2f 80 06 20 cd 0d 2f 8a 1d 20 f2 67 65 74 5f 69 |/.. ../.. .get_i| 00007e20 63 6f 6e 5f 73 74 61 74 65 28 63 6f 6e 25 2c 31 |con_state(con%,1| 00007e30 39 29 0d 2f 94 37 20 62 6c 6b 25 21 31 36 3d 35 |9)./.7 blk%!16=5| 00007e40 38 2d 28 32 33 2a 76 6f 6c 75 6d 65 25 29 3a c8 |8-(23*volume%):.| 00007e50 99 20 22 57 69 6d 70 5f 44 65 6c 65 74 65 49 63 |. "Wimp_DeleteIc| 00007e60 6f 6e 22 2c 2c 62 6c 6b 25 0d 2f 9e 2d 20 62 6c |on",,blk%./.- bl| 00007e70 6b 25 21 34 3d 63 6f 6e 25 3a c8 99 20 22 57 69 |k%!4=con%:.. "Wi| 00007e80 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c 2c |mp_CreateIcon",,| 00007e90 62 6c 6b 25 2b 34 0d 2f a8 06 20 cd 0d 2f b2 06 |blk%+4./.. ../..| 00007ea0 20 3a 0d 2f bc 0d 20 e7 20 69 25 3e 30 20 8c 0d | :./.. . i%>0 ..| 00007eb0 2f c6 0d 20 66 25 3d 30 3a ea 20 85 0d 2f d0 10 |/.. f%=0:. ../..| 00007ec0 20 e3 20 6e 25 3d 31 20 b8 20 69 25 0d 2f da 38 | . n%=1 . i%./.8| 00007ed0 20 ee 20 85 20 ea 20 66 25 2b 3d 31 3a 70 61 74 | . . . f%+=1:pat| 00007ee0 68 6e 61 6d 65 24 28 6e 25 2d 31 29 3d 22 22 3a |hname$(n%-1)="":| 00007ef0 74 79 70 65 25 28 6e 25 2d 31 29 3d 30 3a e5 20 |type%(n%-1)=0:. | 00007f00 8d 54 56 70 0d 2f e4 34 20 66 69 6c 65 6e 61 6d |.TVp./.4 filenam| 00007f10 65 24 3d 70 61 74 68 6e 61 6d 65 24 28 6e 25 2d |e$=pathname$(n%-| 00007f20 31 29 3a 66 69 6c 65 74 79 70 65 25 3d 74 79 70 |1):filetype%=typ| 00007f30 65 25 28 6e 25 2d 31 29 0d 2f ee 2c 20 c8 99 20 |e%(n%-1)./., .. | 00007f40 22 58 4f 53 5f 46 69 6c 65 22 2c 31 37 2c 66 69 |"XOS_File",17,fi| 00007f50 6c 65 6e 61 6d 65 24 20 b8 20 6f 25 2c 2c 2c 2c |lename$ . o%,,,,| 00007f60 6c 65 6e 25 0d 2f f8 22 20 e7 20 6f 25 3d 30 20 |len%./." . o%=0 | 00007f70 85 20 31 30 30 2c 22 46 69 6c 65 20 6e 6f 74 20 |. 100,"File not | 00007f80 66 6f 75 6e 64 22 0d 30 02 35 20 e7 20 a4 65 78 |found".0.5 . .ex| 00007f90 74 65 6e 64 28 6c 65 6e 25 29 3d b9 20 85 20 31 |tend(len%)=. . 1| 00007fa0 30 30 2c 22 4e 6f 74 20 65 6e 6f 75 67 68 20 72 |00,"Not enough r| 00007fb0 6f 6f 6d 20 69 6e 20 52 4d 41 22 0d 30 0c 19 20 |oom in RMA".0.. | 00007fc0 f2 6c 6f 61 64 5f 73 61 6d 70 6c 65 28 6c 65 6e |.load_sample(len| 00007fd0 25 2c a3 29 0d 30 16 06 20 ed 0d 30 20 08 20 f7 |%,.).0.. ..0 . .| 00007fe0 20 85 0d 30 2a 3a 20 e7 20 66 25 3d 31 20 f2 72 | ..0*: . f%=1 .r| 00007ff0 65 70 6f 72 74 5f 65 72 72 28 22 46 61 69 6c 65 |eport_err("Faile| 00008000 64 20 74 6f 20 6c 6f 61 64 20 6f 6e 65 20 73 61 |d to load one sa| 00008010 6d 70 6c 65 22 2c 31 30 30 2c 9e 29 0d 30 34 3f |mple",100,.).04?| 00008020 20 e7 20 66 25 3e 31 20 f2 72 65 70 6f 72 74 5f | . f%>1 .report_| 00008030 65 72 72 28 22 46 61 69 6c 65 64 20 74 6f 20 6c |err("Failed to l| 00008040 6f 61 64 20 22 2b c3 66 25 2b 22 20 73 61 6d 70 |oad "+.f%+" samp| 00008050 6c 65 73 22 2c 31 30 30 2c 9e 29 0d 30 3e 06 20 |les",100,.).0>. | 00008060 3a 0d 30 48 0d 20 66 25 3d 30 3a ea 20 85 0d 30 |:.0H. f%=0:. ..0| 00008070 52 12 20 e3 20 6e 25 3d 30 20 b8 20 69 25 2d 31 |R. . n%=0 . i%-1| 00008080 0d 30 5c 17 20 ee 20 85 20 ea 20 66 25 2b 3d 31 |.0\. . . . f%+=1| 00008090 3a e5 20 8d 74 76 70 0d 30 66 13 20 6f 25 3d 73 |:. .tvp.0f. o%=s| 000080a0 6c 6f 74 62 6c 6b 25 3f 6e 25 0d 30 70 0d 20 e7 |lotblk%?n%.0p. .| 000080b0 20 6f 25 3e 30 20 8c 0d 30 7a 1b 20 20 e7 20 70 | o%>0 ..0z. . p| 000080c0 61 74 68 6e 61 6d 65 24 28 6e 25 29 3c 3e 22 22 |athname$(n%)<>""| 000080d0 20 8c 0d 30 84 3f 20 20 20 e7 20 a4 69 6e 73 74 | ..0.? . .inst| 000080e0 61 6c 6c 5f 69 6e 5f 73 6c 6f 74 28 6e 25 2c 6f |all_in_slot(n%,o| 000080f0 25 29 3d a3 20 85 20 31 30 30 2c 22 53 61 6d 70 |%)=. . 100,"Samp| 00008100 6c 65 20 73 6c 6f 74 20 6f 63 63 75 70 69 65 64 |le slot occupied| 00008110 22 0d 30 8e 07 20 20 cc 0d 30 98 0c 20 20 20 66 |".0.. ..0.. f| 00008120 25 2b 3d 31 0d 30 a2 07 20 20 cd 0d 30 ac 06 20 |%+=1.0.. ..0.. | 00008130 cd 0d 30 b6 06 20 ed 0d 30 c0 08 20 f7 20 85 0d |..0.. ..0.. . ..| 00008140 30 ca 3d 20 e7 20 66 25 3d 31 20 f2 72 65 70 6f |0.= . f%=1 .repo| 00008150 72 74 5f 65 72 72 28 22 46 61 69 6c 65 64 20 74 |rt_err("Failed t| 00008160 6f 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 73 61 |o install one sa| 00008170 6d 70 6c 65 22 2c 31 30 30 2c 9e 29 0d 30 d4 42 |mple",100,.).0.B| 00008180 20 e7 20 66 25 3e 31 20 f2 72 65 70 6f 72 74 5f | . f%>1 .report_| 00008190 65 72 72 28 22 46 61 69 6c 65 64 20 74 6f 20 69 |err("Failed to i| 000081a0 6e 73 74 61 6c 6c 20 22 2b c3 66 25 2b 22 20 73 |nstall "+.f%+" s| 000081b0 61 6d 70 6c 65 73 22 2c 31 30 30 2c 9e 29 0d 30 |amples",100,.).0| 000081c0 de 06 20 cd 0d 30 e8 06 20 3a 0d 30 f2 25 20 e7 |.. ..0.. :.0.% .| 000081d0 20 66 24 3d 22 3c 57 69 6d 70 24 53 63 72 61 70 | f$="<Wimp$Scrap| 000081e0 3e 22 20 66 24 3d 6c 65 61 66 6e 61 6d 65 24 0d |>" f$=leafname$.| 000081f0 30 fc 1e 20 f2 75 70 64 61 74 65 5f 74 69 74 6c |0.. .update_titl| 00008200 65 28 6d 61 69 6e 25 2c 30 2c 66 24 29 0d 31 06 |e(main%,0,f$).1.| 00008210 25 20 c8 99 20 22 57 69 6d 70 5f 47 65 74 43 61 |% .. "Wimp_GetCa| 00008220 72 65 74 50 6f 73 69 74 69 6f 6e 22 2c 2c 62 6c |retPosition",,bl| 00008230 6b 25 0d 31 10 1b 20 e7 20 21 62 6c 6b 25 3d 2d |k%.1.. . !blk%=-| 00008240 31 20 6f 25 3d b9 20 8b 20 6f 25 3d a3 0d 31 1a |1 o%=. . o%=..1.| 00008250 27 20 f2 70 6f 70 75 70 5f 77 69 6e 64 6f 77 28 |' .popup_window(| 00008260 6d 61 69 6e 25 2c 31 29 3a 6d 61 69 6e 6f 70 65 |main%,1):mainope| 00008270 6e 25 3d b9 0d 31 24 10 20 e7 20 6f 25 20 f2 67 |n%=..1$. . o% .g| 00008280 65 74 69 66 0d 31 2e 0f 20 63 68 61 6e 67 65 64 |etif.1.. changed| 00008290 25 3d a3 0d 31 38 31 20 e7 20 73 63 72 61 70 25 |%=..181 . scrap%| 000082a0 3c 3e 30 20 ff 20 22 44 65 6c 65 74 65 20 3c 57 |<>0 . "Delete <W| 000082b0 69 6d 70 24 53 63 72 61 70 3e 22 3a 73 63 72 61 |imp$Scrap>":scra| 000082c0 70 25 3d 30 0d 31 42 17 20 c8 99 20 22 48 6f 75 |p%=0.1B. .. "Hou| 000082d0 72 67 6c 61 73 73 5f 4f 66 66 22 0d 31 4c 06 20 |rglass_Off".1L. | 000082e0 e1 0d 31 56 04 0d 31 60 13 20 dd f2 64 61 74 61 |..1V..1`. ..data| 000082f0 6c 6f 61 64 5f 61 63 6b 0d 31 6a 29 20 6d 65 73 |load_ack.1j) mes| 00008300 73 62 6c 6b 25 21 31 32 3d 6d 65 73 73 62 6c 6b |sblk%!12=messblk| 00008310 25 21 38 3a 6d 65 73 73 62 6c 6b 25 21 31 36 3d |%!8:messblk%!16=| 00008320 34 0d 31 74 31 20 c8 99 20 22 57 69 6d 70 5f 53 |4.1t1 .. "Wimp_S| 00008330 65 6e 64 4d 65 73 73 61 67 65 22 2c 31 37 2c 6d |endMessage",17,m| 00008340 65 73 73 62 6c 6b 25 2c 6d 65 73 73 62 6c 6b 25 |essblk%,messblk%| 00008350 21 34 0d 31 7e 06 20 e1 0d 31 88 04 0d 31 92 16 |!4.1~. ..1...1..| 00008360 20 dd f2 63 68 65 63 6b 63 68 61 6e 67 65 28 61 | ..checkchange(a| 00008370 25 29 0d 31 9c 0d 20 e7 20 61 25 3d b9 20 8c 0d |%).1.. . a%=. ..| 00008380 31 a6 17 20 e7 20 73 61 76 65 63 68 6f 69 63 65 |1.. . savechoice| 00008390 73 25 3d b9 20 8c 0d 31 b0 36 20 e7 20 63 68 61 |s%=. ..1.6 . cha| 000083a0 6e 67 65 64 25 3d a3 20 63 68 61 6e 67 65 64 25 |nged%=. changed%| 000083b0 3d b9 3a f2 75 70 64 61 74 65 5f 74 69 74 6c 65 |=.:.update_title| 000083c0 28 6d 61 69 6e 25 2c 32 2c 22 22 29 0d 31 ba 06 |(main%,2,"").1..| 000083d0 20 cd 0d 31 c4 06 20 cc 0d 31 ce 36 20 e7 20 63 | ..1.. ..1.6 . c| 000083e0 68 61 6e 67 65 64 25 3d a3 20 63 68 61 6e 67 65 |hanged%=. change| 000083f0 64 25 3d b9 3a f2 75 70 64 61 74 65 5f 74 69 74 |d%=.:.update_tit| 00008400 6c 65 28 6d 61 69 6e 25 2c 32 2c 22 22 29 0d 31 |le(main%,2,"").1| 00008410 d8 06 20 cd 0d 31 e2 06 20 e1 0d 31 ec 04 0d 31 |.. ..1.. ..1...1| 00008420 f6 13 20 dd a4 6e 65 67 61 74 69 76 65 28 61 25 |.. ..negative(a%| 00008430 29 0d 32 00 25 20 e7 20 61 25 3e 31 32 37 20 3d |).2.% . a%>127 =| 00008440 28 26 46 46 46 46 46 46 30 30 20 84 20 61 25 29 |(&FFFFFF00 . a%)| 00008450 20 8b 20 3d 61 25 0d 32 0a 04 0d 32 14 1b 20 dd | . =a%.2...2.. .| 00008460 f2 6c 6f 61 64 5f 73 61 6d 70 6c 65 28 6c 65 6e |.load_sample(len| 00008470 25 2c 70 25 29 0d 32 1e 11 20 ea 20 73 66 74 25 |%,p%).2.. . sft%| 00008480 2c 61 64 64 72 25 0d 32 28 1d 20 73 66 74 25 3d |,addr%.2(. sft%=| 00008490 a4 73 65 74 5f 73 66 74 28 66 69 6c 65 74 79 70 |.set_sft(filetyp| 000084a0 65 25 29 0d 32 32 29 20 e7 20 73 63 72 61 70 25 |e%).22) . scrap%| 000084b0 3c 3e 30 20 66 69 6c 65 6e 61 6d 65 24 3d 22 3c |<>0 filename$="<| 000084c0 57 69 6d 70 24 53 63 72 61 70 3e 22 0d 32 3c 3a |Wimp$Scrap>".2<:| 000084d0 20 e7 20 73 66 74 25 3c 31 20 84 20 73 66 74 25 | . sft%<1 . sft%| 000084e0 3e 37 20 85 20 31 2c 22 53 61 6d 70 6c 65 20 66 |>7 . 1,"Sample f| 000084f0 69 6c 65 20 74 79 70 65 20 6f 75 74 20 6f 66 20 |ile type out of | 00008500 72 61 6e 67 65 22 0d 32 46 3d 20 e7 20 73 61 6d |range".2F= . sam| 00008510 70 6f 66 66 73 65 74 25 20 83 20 34 3c 3e 30 20 |poffset% . 4<>0 | 00008520 85 20 31 2c 22 53 61 6d 70 6c 65 20 62 6c 6f 63 |. 1,"Sample bloc| 00008530 6b 20 6e 6f 74 20 77 6f 72 64 20 61 6c 69 67 6e |k not word align| 00008540 65 64 22 0d 32 50 16 20 c8 99 20 22 48 6f 75 72 |ed".2P. .. "Hour| 00008550 67 6c 61 73 73 5f 4f 6e 22 0d 32 5a 22 20 61 64 |glass_On".2Z" ad| 00008560 64 72 25 3d 73 61 6d 70 6c 65 62 61 73 65 25 2b |dr%=samplebase%+| 00008570 73 61 6d 70 6f 66 66 73 65 74 25 0d 32 64 24 20 |sampoffset%.2d$ | 00008580 ff 20 22 4c 6f 61 64 20 22 2b 66 69 6c 65 6e 61 |. "Load "+filena| 00008590 6d 65 24 2b 22 20 22 2b c3 7e 61 64 64 72 25 0d |me$+" "+.~addr%.| 000085a0 32 6e 21 20 d6 20 63 6f 64 65 25 2b 26 32 34 30 |2n! . code%+&240| 000085b0 2c 73 66 74 25 2c 61 64 64 72 25 2c 6c 65 6e 25 |,sft%,addr%,len%| 000085c0 0d 32 78 21 20 73 61 6d 70 61 64 64 72 25 28 6e |.2x! sampaddr%(n| 000085d0 65 78 74 25 29 3d 73 61 6d 70 6f 66 66 73 65 74 |ext%)=sampoffset| 000085e0 25 0d 32 82 16 20 73 61 6d 70 6f 66 66 73 65 74 |%.2.. sampoffset| 000085f0 25 2b 3d 6c 65 6e 25 0d 32 8c 29 20 73 61 6d 70 |%+=len%.2.) samp| 00008600 6f 66 66 73 65 74 25 3d a4 77 6f 72 64 5f 61 6c |offset%=.word_al| 00008610 69 67 6e 28 73 61 6d 70 6f 66 66 73 65 74 25 29 |ign(sampoffset%)| 00008620 0d 32 96 45 20 e7 20 73 63 72 61 70 25 3c 3e 30 |.2.E . scrap%<>0| 00008630 20 ff 20 22 44 65 6c 65 74 65 20 3c 57 69 6d 70 | . "Delete <Wimp| 00008640 24 53 63 72 61 70 3e 22 3a 73 63 72 61 70 25 3d |$Scrap>":scrap%=| 00008650 30 3a 66 69 6c 65 6e 61 6d 65 24 3d 6c 65 61 66 |0:filename$=leaf| 00008660 6e 61 6d 65 24 0d 32 a0 1f 20 f2 75 70 64 61 74 |name$.2.. .updat| 00008670 65 73 61 6d 70 61 72 72 61 79 73 28 6c 65 6e 25 |esamparrays(len%| 00008680 2c 70 25 29 0d 32 aa 17 20 c8 99 20 22 48 6f 75 |,p%).2.. .. "Hou| 00008690 72 67 6c 61 73 73 5f 4f 66 66 22 0d 32 b4 06 20 |rglass_Off".2.. | 000086a0 e1 0d 32 be 04 0d 32 c8 18 20 dd f2 64 65 6c 65 |..2...2.. ..dele| 000086b0 74 65 5f 73 61 6d 70 6c 65 28 69 25 29 0d 32 d2 |te_sample(i%).2.| 000086c0 34 20 ea 20 61 25 2c 62 25 2c 69 63 6f 6e 25 2c |4 . a%,b%,icon%,| 000086d0 6c 65 6e 31 25 2c 6c 65 6e 32 25 2c 73 61 64 64 |len1%,len2%,sadd| 000086e0 72 25 2c 74 25 3a 69 63 6f 6e 25 3d 69 25 2d 70 |r%,t%:icon%=i%-p| 000086f0 25 0d 32 dc 4b 20 74 25 3d 74 79 70 65 25 28 69 |%.2.K t%=type%(i| 00008700 63 6f 6e 25 29 3a 6c 65 6e 31 25 3d 73 69 7a 65 |con%):len1%=size| 00008710 25 28 69 63 6f 6e 25 29 3a 73 61 64 64 72 25 3d |%(icon%):saddr%=| 00008720 73 61 6d 70 6c 65 62 61 73 65 25 2b 73 61 6d 70 |samplebase%+samp| 00008730 61 64 64 72 25 28 69 63 6f 6e 25 29 0d 32 e6 3a |addr%(icon%).2.:| 00008740 20 e7 20 74 25 3c 3e 26 46 46 41 20 80 20 3f 28 | . t%<>&FFA . ?(| 00008750 63 6f 64 65 25 2b 26 39 44 30 2b 69 63 6f 6e 25 |code%+&9D0+icon%| 00008760 29 3e 30 20 d6 20 63 6f 64 65 25 2b 26 38 36 34 |)>0 . code%+&864| 00008770 2c 69 63 6f 6e 25 0d 32 f0 16 20 e7 20 74 25 3d |,icon%.2.. . t%=| 00008780 26 46 46 41 20 6c 65 6e 31 25 3d 30 0d 32 fa 1d |&FFA len1%=0.2..| 00008790 20 6c 65 6e 31 25 3d a4 77 6f 72 64 5f 61 6c 69 | len1%=.word_ali| 000087a0 67 6e 28 6c 65 6e 31 25 29 0d 33 04 18 20 e7 20 |gn(len1%).3.. . | 000087b0 69 63 6f 6e 25 3c 28 6e 65 78 74 25 2d 31 29 20 |icon%<(next%-1) | 000087c0 8c 0d 33 0e 19 20 e3 20 61 25 3d 69 63 6f 6e 25 |..3.. . a%=icon%| 000087d0 20 b8 20 6e 65 78 74 25 2d 32 0d 33 18 1c 20 e7 | . next%-2.3.. .| 000087e0 20 74 25 3c 3e 26 46 46 41 20 80 20 6c 65 6e 31 | t%<>&FFA . len1| 000087f0 25 3c 3e 30 20 8c 0d 33 22 2b 20 e7 20 74 79 70 |%<>0 ..3"+ . typ| 00008800 65 25 28 61 25 2b 31 29 3c 3e 26 46 46 41 20 80 |e%(a%+1)<>&FFA .| 00008810 20 73 69 7a 65 25 28 61 25 2b 31 29 3c 3e 30 20 | size%(a%+1)<>0 | 00008820 8c 0d 33 2c 2f 20 6c 65 6e 32 25 3d 73 69 7a 65 |..3,/ len2%=size| 00008830 25 28 61 25 2b 31 29 3a 6c 65 6e 32 25 3d a4 77 |%(a%+1):len2%=.w| 00008840 6f 72 64 5f 61 6c 69 67 6e 28 6c 65 6e 32 25 29 |ord_align(len2%)| 00008850 0d 33 36 23 20 62 25 3d 73 61 6d 70 6c 65 62 61 |.36# b%=sampleba| 00008860 73 65 25 2b 73 61 6d 70 61 64 64 72 25 28 61 25 |se%+sampaddr%(a%| 00008870 2b 31 29 0d 33 40 1c 20 d6 20 63 6f 64 65 25 2c |+1).3@. . code%,| 00008880 62 25 2c 73 61 64 64 72 25 2c 6c 65 6e 32 25 0d |b%,saddr%,len2%.| 00008890 33 4a 33 20 73 61 6d 70 61 64 64 72 25 28 61 25 |3J3 sampaddr%(a%| 000088a0 29 3d 73 61 64 64 72 25 2d 73 61 6d 70 6c 65 62 |)=saddr%-sampleb| 000088b0 61 73 65 25 3a 73 61 64 64 72 25 2b 3d 6c 65 6e |ase%:saddr%+=len| 000088c0 32 25 0d 33 54 06 20 cd 0d 33 5e 06 20 cc 0d 33 |2%.3T. ..3^. ..3| 000088d0 68 22 20 73 61 6d 70 61 64 64 72 25 28 61 25 29 |h" sampaddr%(a%)| 000088e0 3d 73 61 6d 70 61 64 64 72 25 28 61 25 2b 31 29 |=sampaddr%(a%+1)| 000088f0 0d 33 72 06 20 cd 0d 33 7c 3d 20 3f 28 63 6f 64 |.3r. ..3|= ?(cod| 00008900 65 25 2b 26 39 44 30 2b 61 25 29 3d 3f 28 63 6f |e%+&9D0+a%)=?(co| 00008910 64 65 25 2b 26 39 44 30 2b 61 25 2b 31 29 3a 3f |de%+&9D0+a%+1):?| 00008920 28 63 6f 64 65 25 2b 26 39 44 30 2b 61 25 2b 31 |(code%+&9D0+a%+1| 00008930 29 3d 30 0d 33 86 22 20 70 61 74 68 6e 61 6d 65 |)=0.3." pathname| 00008940 24 28 61 25 29 3d 70 61 74 68 6e 61 6d 65 24 28 |$(a%)=pathname$(| 00008950 61 25 2b 31 29 0d 33 90 1a 20 73 69 7a 65 25 28 |a%+1).3.. size%(| 00008960 61 25 29 3d 73 69 7a 65 25 28 61 25 2b 31 29 0d |a%)=size%(a%+1).| 00008970 33 9a 1a 20 74 79 70 65 25 28 61 25 29 3d 74 79 |3.. type%(a%)=ty| 00008980 70 65 25 28 61 25 2b 31 29 0d 33 a4 06 20 ed 0d |pe%(a%+1).3.. ..| 00008990 33 ae 0a 20 70 25 2b 3d 31 0d 33 b8 06 20 cd 0d |3.. p%+=1.3.. ..| 000089a0 33 c2 39 20 21 62 6c 6b 25 3d 73 61 6d 70 6c 69 |3.9 !blk%=sampli| 000089b0 73 74 25 3a 62 6c 6b 25 21 34 3d 69 25 3a c8 99 |st%:blk%!4=i%:..| 000089c0 20 22 57 69 6d 70 5f 44 65 6c 65 74 65 49 63 6f | "Wimp_DeleteIco| 000089d0 6e 22 2c 2c 62 6c 6b 25 0d 33 cc 1a 20 6e 65 78 |n",,blk%.3.. nex| 000089e0 74 25 2d 3d 31 3a e7 20 74 25 3c 3e 26 46 46 41 |t%-=1:. t%<>&FFA| 000089f0 20 8c 0d 33 d6 2a 20 74 25 3d a4 65 78 74 65 6e | ..3.* t%=.exten| 00008a00 64 28 2d 6c 65 6e 31 25 29 3a 73 61 6d 70 6f 66 |d(-len1%):sampof| 00008a10 66 73 65 74 25 2d 3d 6c 65 6e 31 25 0d 33 e0 4f |fset%-=len1%.3.O| 00008a20 20 e7 20 73 61 6d 70 6f 66 66 73 65 74 25 3c 3d | . sampoffset%<=| 00008a30 30 20 c8 99 20 22 4f 53 5f 4d 6f 64 75 6c 65 22 |0 .. "OS_Module"| 00008a40 2c 37 2c 2c 73 61 6d 70 6c 65 62 61 73 65 25 3a |,7,,samplebase%:| 00008a50 73 61 6d 70 6c 65 62 61 73 65 25 3d 30 3a 73 61 |samplebase%=0:sa| 00008a60 6d 70 6f 66 66 73 65 74 25 3d 30 0d 33 ea 06 20 |mpoffset%=0.3.. | 00008a70 cd 0d 33 f4 06 20 e1 0d 33 fe 04 0d 34 08 1b 20 |..3.. ..3...4.. | 00008a80 dd f2 72 65 6e 75 6d 62 65 72 5f 69 63 6f 6e 28 |..renumber_icon(| 00008a90 69 63 6f 6e 25 29 0d 34 12 25 20 f2 67 65 74 5f |icon%).4.% .get_| 00008aa0 69 63 6f 6e 5f 73 74 61 74 65 28 73 61 6d 70 6c |icon_state(sampl| 00008ab0 69 73 74 25 2c 69 63 6f 6e 25 29 0d 34 1c 2b 20 |ist%,icon%).4.+ | 00008ac0 62 6c 6b 25 21 31 32 3d 30 2d 28 70 25 2a 34 34 |blk%!12=0-(p%*44| 00008ad0 29 2d 34 34 3a 62 6c 6b 25 21 32 30 3d 30 2d 28 |)-44:blk%!20=0-(| 00008ae0 70 25 2a 34 34 29 0d 34 26 1f 20 c8 99 20 22 57 |p%*44).4&. .. "W| 00008af0 69 6d 70 5f 44 65 6c 65 74 65 49 63 6f 6e 22 2c |imp_DeleteIcon",| 00008b00 2c 62 6c 6b 25 0d 34 30 32 20 62 6c 6b 25 21 34 |,blk%.402 blk%!4| 00008b10 3d 73 61 6d 70 6c 69 73 74 25 3a c8 99 20 22 57 |=samplist%:.. "W| 00008b20 69 6d 70 5f 43 72 65 61 74 65 49 63 6f 6e 22 2c |imp_CreateIcon",| 00008b30 2c 62 6c 6b 25 2b 34 0d 34 3a 0a 20 70 25 2b 3d |,blk%+4.4:. p%+=| 00008b40 31 0d 34 44 06 20 e1 0d 34 4e 04 0d 34 58 1a 20 |1.4D. ..4N..4X. | 00008b50 dd a4 66 69 6c 65 5f 70 72 65 73 65 6e 74 28 66 |..file_present(f| 00008b60 24 2c 74 25 29 0d 34 62 11 20 ea 20 4e 25 2c 61 |$,t%).4b. . N%,a| 00008b70 25 3a 61 25 3d a3 0d 34 6c 1b 20 e7 20 6e 65 78 |%:a%=..4l. . nex| 00008b80 74 25 3d 30 20 84 20 74 25 3d 26 31 30 43 20 3d |t%=0 . t%=&10C =| 00008b90 a3 0d 34 76 13 20 e3 20 4e 25 3d 31 20 b8 20 6e |..4v. . N%=1 . n| 00008ba0 65 78 74 25 0d 34 80 29 20 e7 20 a4 6c 65 61 66 |ext%.4.) . .leaf| 00008bb0 6e 61 6d 65 28 70 61 74 68 6e 61 6d 65 24 28 4e |name(pathname$(N| 00008bc0 25 2d 31 29 29 3d 66 24 20 61 25 3d b9 0d 34 8a |%-1))=f$ a%=..4.| 00008bd0 06 20 ed 0d 34 94 08 20 3d 61 25 0d 34 9e 04 0d |. ..4.. =a%.4...| 00008be0 34 a8 19 20 dd f2 75 70 64 61 74 65 73 61 6d 70 |4.. ..updatesamp| 00008bf0 69 63 6f 6e 28 69 25 29 0d 34 b2 1e 20 f2 73 65 |icon(i%).4.. .se| 00008c00 74 5f 69 63 6f 6e 28 73 61 6d 70 6c 65 73 25 2c |t_icon(samples%,| 00008c10 31 2c c3 69 25 29 0d 34 bc 06 20 e1 0d 34 c6 04 |1,.i%).4.. ..4..| 00008c20 0d 34 d0 1f 20 dd f2 73 74 6f 72 65 73 61 6d 70 |.4.. ..storesamp| 00008c30 6c 65 73 28 6f 66 66 73 65 74 25 2c 63 24 29 0d |les(offset%,c$).| 00008c40 34 da 1d 20 ea 20 61 25 2c 62 25 2c 61 24 2c 62 |4.. . a%,b%,a$,b| 00008c50 24 2c 63 25 2c 4e 25 3a 63 25 3d a3 0d 34 e4 10 |$,c%,N%:c%=..4..| 00008c60 20 e3 20 4e 25 3d 31 20 b8 20 33 32 0d 34 ee 26 | . N%=1 . 32.4.&| 00008c70 20 c8 99 20 22 53 6f 75 6e 64 5f 49 6e 73 74 61 | .. "Sound_Insta| 00008c80 6c 6c 56 6f 69 63 65 22 2c 30 2c 4e 25 20 b8 20 |llVoice",0,N% . | 00008c90 66 25 0d 34 f8 3c 20 e7 20 66 25 3c 3e 30 20 c8 |f%.4.< . f%<>0 .| 00008ca0 99 20 22 53 6f 75 6e 64 5f 49 6e 73 74 61 6c 6c |. "Sound_Install| 00008cb0 56 6f 69 63 65 22 2c 30 2c 4e 25 20 b8 20 74 65 |Voice",0,N% . te| 00008cc0 78 74 24 20 8b 20 74 65 78 74 24 3d 22 22 0d 35 |xt$ . text$="".5| 00008cd0 02 22 20 e7 20 a9 20 74 65 78 74 24 3e 33 32 20 |." . . text$>32 | 00008ce0 74 65 78 74 24 3d c0 74 65 78 74 24 2c 33 32 29 |text$=.text$,32)| 00008cf0 0d 35 0c 28 20 24 28 62 6c 6b 25 2b 28 28 28 4e |.5.( $(blk%+(((N| 00008d00 25 2d 31 29 2b 6f 66 66 73 65 74 25 29 2a 33 32 |%-1)+offset%)*32| 00008d10 29 29 3d 74 65 78 74 24 0d 35 16 06 20 ed 0d 35 |))=text$.5.. ..5| 00008d20 20 13 20 e7 20 6f 66 66 73 65 74 25 3d 33 32 20 | . . offset%=32 | 00008d30 8c 0d 35 2a 10 20 e3 20 4e 25 3d 30 20 b8 20 33 |..5*. . N%=0 . 3| 00008d40 31 0d 35 34 2f 20 61 24 3d 24 28 62 6c 6b 25 2b |1.54/ a$=$(blk%+| 00008d50 28 4e 25 2a 33 32 29 29 3a 62 24 3d 24 28 62 6c |(N%*32)):b$=$(bl| 00008d60 6b 25 2b 28 28 4e 25 2b 33 32 29 2a 33 32 29 29 |k%+((N%+32)*32))| 00008d70 0d 35 3e 12 20 e7 20 61 24 3c 3e 62 24 20 63 25 |.5>. . a$<>b$ c%| 00008d80 3d b9 0d 35 48 06 20 ed 0d 35 52 3e 20 e7 20 63 |=..5H. ..5R> . c| 00008d90 25 3d a3 20 6c 6f 61 64 65 64 25 3d a3 3a f2 72 |%=. loaded%=.:.r| 00008da0 65 70 6f 72 74 5f 65 72 72 28 22 4e 6f 74 20 61 |eport_err("Not a| 00008db0 20 73 61 6d 70 6c 65 20 6d 6f 64 75 6c 65 22 2c | sample module",| 00008dc0 31 30 30 2c 9e 29 0d 35 5c 06 20 cd 0d 35 66 06 |100,.).5\. ..5f.| 00008dd0 20 e1 0d 35 70 04 0d 35 7a 1d 20 dd a4 67 65 74 | ..5p..5z. ..get| 00008de0 5f 6d 6f 64 75 6c 65 5f 6e 61 6d 65 28 70 61 74 |_module_name(pat| 00008df0 68 24 29 0d 35 84 0f 20 ea 20 61 24 2c 61 25 2c |h$).5.. . a$,a%,| 00008e00 62 25 0d 35 8e 0f 20 61 25 3d 8e 20 70 61 74 68 |b%.5.. a%=. path| 00008e10 24 0d 35 98 1a 20 f5 3a 62 25 3d 9a 23 20 61 25 |$.5.. .:b%=.# a%| 00008e20 3a fd 20 8f 23 61 25 3d 26 31 30 0d 35 a2 1f 20 |:. .#a%=&10.5.. | 00008e30 e3 20 4e 25 3d 30 20 b8 20 33 3a 62 6c 6b 25 3f |. N%=0 . 3:blk%?| 00008e40 4e 25 3d 9a 23 20 61 25 3a ed 0d 35 ac 0f 20 cf |N%=.# a%:..5.. .| 00008e50 23 61 25 3d 21 62 6c 6b 25 0d 35 b6 22 20 f5 3a |#a%=!blk%.5." .:| 00008e60 62 25 3d 9a 23 20 61 25 3a 61 24 3d 61 24 2b bd |b%=.# a%:a$=a$+.| 00008e70 28 62 25 29 3a fd 20 62 25 3d 30 0d 35 c0 12 20 |(b%):. b%=0.5.. | 00008e80 61 24 3d c0 61 24 2c a9 61 24 2d 31 29 0d 35 ca |a$=.a$,.a$-1).5.| 00008e90 0a 20 d9 23 20 61 25 0d 35 d4 08 20 3d 61 24 0d |. .# a%.5.. =a$.| 00008ea0 35 de 04 0d 35 e8 19 20 dd f2 6b 69 6c 6c 5f 6d |5...5.. ..kill_m| 00008eb0 6f 64 75 6c 65 28 6e 61 6d 65 24 29 0d 35 f2 31 |odule(name$).5.1| 00008ec0 20 e7 20 a4 6d 6f 64 75 6c 65 5f 70 72 65 73 65 | . .module_prese| 00008ed0 6e 74 28 6e 61 6d 65 24 29 3d b9 20 ff 20 22 52 |nt(name$)=. . "R| 00008ee0 4d 4b 69 6c 6c 20 22 2b 6e 61 6d 65 24 0d 35 fc |MKill "+name$.5.| 00008ef0 06 20 e1 0d 36 06 04 0d 36 10 1c 20 dd a4 6d 6f |. ..6...6.. ..mo| 00008f00 64 75 6c 65 5f 70 72 65 73 65 6e 74 28 6e 61 6d |dule_present(nam| 00008f10 65 24 29 0d 36 1a 0c 20 ea 20 61 25 2c 62 25 0d |e$).6.. . a%,b%.| 00008f20 36 24 21 20 2a 53 65 74 20 4b 65 79 62 6f 61 72 |6$! *Set Keyboar| 00008f30 64 54 65 6d 70 56 61 72 20 50 72 65 73 65 6e 74 |dTempVar Present| 00008f40 0d 36 2e 3c 20 ff 20 22 52 4d 45 6e 73 75 72 65 |.6.< . "RMEnsure| 00008f50 20 22 2b 6e 61 6d 65 24 2b 22 20 30 20 53 65 74 | "+name$+" 0 Set| 00008f60 20 4b 65 79 62 6f 61 72 64 54 65 6d 70 56 61 72 | KeyboardTempVar| 00008f70 20 4e 6f 74 50 72 65 73 65 6e 74 22 0d 36 38 3f | NotPresent".68?| 00008f80 20 c8 99 20 22 4f 53 5f 52 65 61 64 56 61 72 56 | .. "OS_ReadVarV| 00008f90 61 6c 22 2c 22 4b 65 79 62 6f 61 72 64 54 65 6d |al","KeyboardTem| 00008fa0 70 56 61 72 22 2c 62 6c 6b 25 2c 26 31 35 30 30 |pVar",blk%,&1500| 00008fb0 2c 30 2c 30 20 b8 20 2c 2c 61 25 0d 36 42 12 20 |,0,0 . ,,a%.6B. | 00008fc0 3f 28 62 6c 6b 25 2b 61 25 29 3d 26 44 0d 36 4c |?(blk%+a%)=&D.6L| 00008fd0 1b 20 2a 55 6e 73 65 74 20 4b 65 79 62 6f 61 72 |. *Unset Keyboar| 00008fe0 64 54 65 6d 70 56 61 72 0d 36 56 1e 20 e7 20 24 |dTempVar.6V. . $| 00008ff0 62 6c 6b 25 3d 22 50 72 65 73 65 6e 74 22 20 3d |blk%="Present" =| 00009000 b9 20 8b 20 3d a3 0d 36 60 04 0d 36 6a 12 20 dd |. . =..6`..6j. .| 00009010 a4 73 65 74 5f 73 66 74 28 74 25 29 0d 36 74 09 |.set_sft(t%).6t.| 00009020 20 ea 20 61 25 0d 36 7e 0c 20 c8 8e 20 74 25 20 | . a%.6~. .. t% | 00009030 ca 0d 36 88 10 20 c9 20 26 46 46 41 3a 61 25 3d |..6.. . &FFA:a%=| 00009040 31 0d 36 92 10 20 c9 20 26 44 46 39 3a 61 25 3d |1.6.. . &DF9:a%=| 00009050 32 0d 36 9c 10 20 c9 20 26 43 42 35 3a 61 25 3d |2.6.. . &CB5:a%=| 00009060 33 0d 36 a6 10 20 c9 20 26 45 44 30 3a 61 25 3d |3.6.. . &ED0:a%=| 00009070 34 0d 36 b0 10 20 c9 20 26 44 33 43 3a 61 25 3d |4.6.. . &D3C:a%=| 00009080 36 0d 36 ba 10 20 c9 20 26 46 46 44 3a 61 25 3d |6.6.. . &FFD:a%=| 00009090 35 0d 36 c4 06 20 cb 0d 36 ce 08 20 3d 61 25 0d |5.6.. ..6.. =a%.| 000090a0 36 d8 04 0d 36 e2 15 20 dd a4 77 6f 72 64 5f 61 |6...6.. ..word_a| 000090b0 6c 69 67 6e 28 61 25 29 0d 36 ec 1d 20 c8 95 20 |lign(a%).6.. .. | 000090c0 61 25 20 83 20 34 3c 3e 30 3a 61 25 2b 3d 31 3a |a% . 4<>0:a%+=1:| 000090d0 ce 3a 3d 61 25 0d 36 f6 04 0d 37 00 0f 20 dd f2 |.:=a%.6...7.. ..| 000090e0 64 65 73 6b 73 61 76 65 0d 37 0a 09 20 ea 20 4e |desksave.7.. . N| 000090f0 25 0d 37 14 64 20 ee 20 85 20 ea 20 6d 65 73 73 |%.7.d . . . mess| 00009100 62 6c 6b 25 21 31 32 3d 6d 65 73 73 62 6c 6b 25 |blk%!12=messblk%| 00009110 21 38 3a c8 99 20 22 57 69 6d 70 5f 53 65 6e 64 |!8:.. "Wimp_Send| 00009120 4d 65 73 73 61 67 65 22 2c 31 39 2c 6d 65 73 73 |Message",19,mess| 00009130 62 6c 6b 25 2c 6d 65 73 73 62 6c 6b 25 21 34 3a |blk%,messblk%!4:| 00009140 f2 72 65 70 6f 72 74 5f 65 72 72 28 f6 24 2c 9f |.report_err(.$,.| 00009150 2c 9e 29 3a e1 0d 37 1e 3d 20 c8 99 20 22 58 4f |,.):..7.= .. "XO| 00009160 53 5f 52 65 61 64 56 61 72 56 61 6c 22 2c 22 4b |S_ReadVarVal","K| 00009170 65 79 62 6f 61 72 64 24 44 69 72 22 2c 62 6c 6b |eyboard$Dir",blk| 00009180 25 2c 26 31 35 30 30 2c 30 2c 33 20 b8 20 2c 2c |%,&1500,0,3 . ,,| 00009190 4e 25 0d 37 28 0f 20 62 6c 6b 25 3f 4e 25 3d 31 |N%.7(. blk%?N%=1| 000091a0 33 0d 37 32 20 20 d5 23 20 6d 65 73 73 62 6c 6b |3.72 .# messblk| 000091b0 25 21 32 30 2c 22 52 75 6e 20 22 2b 24 62 6c 6b |%!20,"Run "+$blk| 000091c0 25 0d 37 3c 06 20 e1 0d 37 46 04 0d 37 50 19 20 |%.7<. ..7F..7P. | 000091d0 dd f2 69 6e 73 74 61 6c 6c 5f 73 61 6d 70 6c 65 |..install_sample| 000091e0 28 69 25 29 0d 37 5a 1a 20 ea 20 61 24 2c 74 25 |(i%).7Z. . a$,t%| 000091f0 2c 61 64 64 72 25 2c 61 25 3a 61 25 3d 30 0d 37 |,addr%,a%:a%=0.7| 00009200 64 26 20 c8 99 20 22 53 6f 75 6e 64 5f 49 6e 73 |d& .. "Sound_Ins| 00009210 74 61 6c 6c 56 6f 69 63 65 22 2c 30 2c 30 20 b8 |tallVoice",0,0 .| 00009220 20 2c 61 25 0d 37 6e 1e 20 e7 20 61 25 3d 30 20 | ,a%.7n. . a%=0 | 00009230 84 20 74 79 70 65 25 28 69 25 29 3d 26 46 46 41 |. type%(i%)=&FFA| 00009240 20 e1 0d 37 78 1b 20 e7 20 3f 28 63 6f 64 65 25 | ..7x. . ?(code%| 00009250 2b 26 39 44 30 2b 69 25 29 3d 30 20 8c 0d 37 82 |+&9D0+i%)=0 ..7.| 00009260 20 20 61 24 3d a4 6c 65 61 66 6e 61 6d 65 28 70 | a$=.leafname(p| 00009270 61 74 68 6e 61 6d 65 24 28 69 25 29 29 0d 37 8c |athname$(i%)).7.| 00009280 1b 20 74 25 3d a4 73 65 74 5f 73 66 74 28 74 79 |. t%=.set_sft(ty| 00009290 70 65 25 28 69 25 29 29 0d 37 96 24 20 61 64 64 |pe%(i%)).7.$ add| 000092a0 72 25 3d 73 61 6d 70 6c 65 62 61 73 65 25 2b 73 |r%=samplebase%+s| 000092b0 61 6d 70 61 64 64 72 25 28 69 25 29 0d 37 a0 2d |ampaddr%(i%).7.-| 000092c0 20 d6 20 63 6f 64 65 25 2b 26 38 43 43 2c 61 25 | . code%+&8CC,a%| 000092d0 2c 69 25 2c 61 24 2c 74 25 2c 61 64 64 72 25 2c |,i%,a$,t%,addr%,| 000092e0 73 69 7a 65 25 28 69 25 29 0d 37 aa 18 20 74 25 |size%(i%).7.. t%| 000092f0 3d 3f 28 63 6f 64 65 25 2b 26 39 44 30 2b 69 25 |=?(code%+&9D0+i%| 00009300 29 0d 37 b4 39 20 e7 20 74 25 3d 30 20 f2 72 65 |).7.9 . t%=0 .re| 00009310 70 6f 72 74 5f 65 72 72 28 22 46 61 69 6c 65 64 |port_err("Failed| 00009320 20 74 6f 20 69 6e 73 74 61 6c 6c 20 73 61 6d 70 | to install samp| 00009330 6c 65 22 2c 31 30 30 2c 9e 29 0d 37 be 06 20 cd |le",100,.).7.. .| 00009340 0d 37 c8 06 20 e1 0d 37 d2 04 0d 37 dc 18 20 dd |.7.. ..7...7.. .| 00009350 f2 72 65 6d 6f 76 65 5f 73 61 6d 70 6c 65 28 69 |.remove_sample(i| 00009360 25 29 0d 37 e6 17 20 e7 20 74 79 70 65 25 28 69 |%).7.. . type%(i| 00009370 25 29 3d 26 46 46 41 20 e1 0d 37 f0 1b 20 e7 20 |%)=&FFA ..7.. . | 00009380 3f 28 63 6f 64 65 25 2b 26 39 44 30 2b 69 25 29 |?(code%+&9D0+i%)| 00009390 3e 30 20 8c 0d 37 fa 14 20 d6 20 63 6f 64 65 25 |>0 ..7.. . code%| 000093a0 2b 26 38 36 34 2c 69 25 0d 38 04 06 20 cd 0d 38 |+&864,i%.8.. ..8| 000093b0 0e 06 20 e1 0d 38 18 04 0d 38 22 12 20 dd a4 63 |.. ..8...8". ..c| 000093c0 6c 61 69 6d 28 6c 65 6e 25 29 0d 38 2c 0c 20 ea |laim(len%).8,. .| 000093d0 20 61 25 2c 4e 25 0d 38 36 27 20 c8 99 20 22 58 | a%,N%.86' .. "X| 000093e0 4f 53 5f 4d 6f 64 75 6c 65 22 2c 36 2c 2c 2c 6c |OS_Module",6,,,l| 000093f0 65 6e 25 20 b8 20 2c 2c 61 25 3b 4e 25 0d 38 40 |en% . ,,a%;N%.8@| 00009400 14 20 e7 20 4e 25 20 80 20 25 30 30 30 31 20 3d |. . N% . %0001 =| 00009410 30 0d 38 4a 08 20 3d 61 25 0d 38 54 04 0d 38 5e |0.8J. =a%.8T..8^| 00009420 13 20 dd a4 65 78 74 65 6e 64 28 6c 65 6e 25 29 |. ..extend(len%)| 00009430 0d 38 68 21 20 ea 20 73 25 2c 4e 25 2c 61 25 2c |.8h! . s%,N%,a%,| 00009440 69 25 3a 61 25 3d 73 61 6d 70 6c 65 62 61 73 65 |i%:a%=samplebase| 00009450 25 0d 38 72 1b 20 6c 65 6e 25 3d a4 77 6f 72 64 |%.8r. len%=.word| 00009460 5f 61 6c 69 67 6e 28 6c 65 6e 25 29 0d 38 7c 16 |_align(len%).8|.| 00009470 20 e7 20 73 61 6d 70 6f 66 66 73 65 74 25 3d 30 | . sampoffset%=0| 00009480 20 8c 0d 38 86 1d 20 73 61 6d 70 6c 65 62 61 73 | ..8.. samplebas| 00009490 65 25 3d a4 63 6c 61 69 6d 28 6c 65 6e 25 29 0d |e%=.claim(len%).| 000094a0 38 90 43 20 e7 20 73 61 6d 70 6c 65 62 61 73 65 |8.C . samplebase| 000094b0 25 3d 30 20 f2 72 65 70 6f 72 74 5f 65 72 72 28 |%=0 .report_err(| 000094c0 22 4e 6f 74 20 65 6e 6f 75 67 68 20 72 6f 6f 6d |"Not enough room| 000094d0 20 69 6e 20 52 4d 41 22 2c 31 30 30 2c 9e 29 3a | in RMA",100,.):| 000094e0 3d b9 0d 38 9a 06 20 cc 0d 38 a4 3c 20 c8 99 20 |=..8.. ..8.< .. | 000094f0 22 58 4f 53 5f 4d 6f 64 75 6c 65 22 2c 31 33 2c |"XOS_Module",13,| 00009500 2c 73 61 6d 70 6c 65 62 61 73 65 25 2c 6c 65 6e |,samplebase%,len| 00009510 25 20 b8 20 2c 2c 73 61 6d 70 6c 65 62 61 73 65 |% . ,,samplebase| 00009520 25 3b 4e 25 0d 38 ae 40 20 e7 20 4e 25 20 80 20 |%;N%.8.@ . N% . | 00009530 25 30 30 30 31 20 f2 72 65 70 6f 72 74 5f 65 72 |%0001 .report_er| 00009540 72 28 22 4e 6f 74 20 65 6e 6f 75 67 68 20 72 6f |r("Not enough ro| 00009550 6f 6d 20 69 6e 20 52 4d 41 22 2c 31 30 30 2c 9e |om in RMA",100,.| 00009560 29 3a 3d b9 0d 38 b8 24 20 e7 20 73 61 6d 70 6c |):=..8.$ . sampl| 00009570 65 62 61 73 65 25 3c 3e 61 25 20 f2 72 65 69 6e |ebase%<>a% .rein| 00009580 69 74 76 6f 69 63 65 73 0d 38 c2 06 20 cd 0d 38 |itvoices.8.. ..8| 00009590 cc 07 20 3d a3 0d 38 d6 04 0d 38 e0 13 20 dd f2 |.. =..8...8.. ..| 000095a0 72 65 69 6e 69 74 76 6f 69 63 65 73 0d 38 ea 18 |reinitvoices.8..| 000095b0 20 ea 20 69 25 2c 73 25 2c 61 64 64 72 25 2c 61 | . i%,s%,addr%,a| 000095c0 24 2c 61 25 0d 38 f4 10 20 e3 20 69 25 3d 30 20 |$,a%.8.. . i%=0 | 000095d0 b8 20 33 31 0d 38 fe 18 20 73 25 3d 3f 28 63 6f |. 31.8.. s%=?(co| 000095e0 64 65 25 2b 26 39 44 30 2b 69 25 29 0d 39 08 0d |de%+&9D0+i%).9..| 000095f0 20 e7 20 73 25 3e 30 20 8c 0d 39 12 14 20 d6 20 | . s%>0 ..9.. . | 00009600 63 6f 64 65 25 2b 26 38 36 34 2c 69 25 0d 39 1c |code%+&864,i%.9.| 00009610 24 20 61 64 64 72 25 3d 73 61 6d 70 6c 65 62 61 |$ addr%=sampleba| 00009620 73 65 25 2b 73 61 6d 70 61 64 64 72 25 28 69 25 |se%+sampaddr%(i%| 00009630 29 0d 39 26 37 20 61 24 3d a4 6c 65 61 66 6e 61 |).9&7 a$=.leafna| 00009640 6d 65 28 70 61 74 68 6e 61 6d 65 24 28 69 25 29 |me(pathname$(i%)| 00009650 29 3a 61 25 3d a4 73 65 74 5f 73 66 74 28 74 79 |):a%=.set_sft(ty| 00009660 70 65 25 28 69 25 29 29 0d 39 30 2d 20 d6 20 63 |pe%(i%)).90- . c| 00009670 6f 64 65 25 2b 26 38 43 43 2c 73 25 2c 69 25 2c |ode%+&8CC,s%,i%,| 00009680 61 24 2c 61 25 2c 61 64 64 72 25 2c 73 69 7a 65 |a$,a%,addr%,size| 00009690 25 28 69 25 29 0d 39 3a 06 20 cd 0d 39 44 06 20 |%(i%).9:. ..9D. | 000096a0 ed 0d 39 4e 06 20 e1 0d 39 58 04 0d 39 62 1d 20 |..9N. ..9X..9b. | 000096b0 dd a4 69 6e 73 74 61 6c 6c 5f 69 6e 5f 73 6c 6f |..install_in_slo| 000096c0 74 28 69 25 2c 73 25 29 0d 39 6c 12 20 ea 20 61 |t(i%,s%).9l. . a| 000096d0 64 64 72 25 2c 61 24 2c 61 25 0d 39 76 38 20 e7 |ddr%,a$,a%.9v8 .| 000096e0 20 73 25 3c 31 20 84 20 73 25 3e 33 32 20 85 20 | s%<1 . s%>32 . | 000096f0 31 2c 22 56 6f 69 63 65 20 73 6c 6f 74 20 6e 75 |1,"Voice slot nu| 00009700 6d 62 65 72 20 6f 75 74 20 6f 66 20 72 61 6e 67 |mber out of rang| 00009710 65 22 0d 39 80 26 20 c8 99 20 22 53 6f 75 6e 64 |e".9.& .. "Sound| 00009720 5f 49 6e 73 74 61 6c 6c 56 6f 69 63 65 22 2c 30 |_InstallVoice",0| 00009730 2c 73 25 20 b8 20 61 25 0d 39 8a 0f 20 e7 20 61 |,s% . a%.9.. . a| 00009740 25 3c 3e 30 20 3d a3 0d 39 94 24 20 61 64 64 72 |%<>0 =..9.$ addr| 00009750 25 3d 73 61 6d 70 6c 65 62 61 73 65 25 2b 73 61 |%=samplebase%+sa| 00009760 6d 70 61 64 64 72 25 28 69 25 29 0d 39 9e 37 20 |mpaddr%(i%).9.7 | 00009770 61 24 3d a4 6c 65 61 66 6e 61 6d 65 28 70 61 74 |a$=.leafname(pat| 00009780 68 6e 61 6d 65 24 28 69 25 29 29 3a 61 25 3d a4 |hname$(i%)):a%=.| 00009790 73 65 74 5f 73 66 74 28 74 79 70 65 25 28 69 25 |set_sft(type%(i%| 000097a0 29 29 0d 39 a8 2d 20 d6 20 63 6f 64 65 25 2b 26 |)).9.- . code%+&| 000097b0 38 43 43 2c 73 25 2c 69 25 2c 61 24 2c 61 25 2c |8CC,s%,i%,a$,a%,| 000097c0 61 64 64 72 25 2c 73 69 7a 65 25 28 69 25 29 0d |addr%,size%(i%).| 000097d0 39 b2 07 20 3d b9 0d 39 bc 04 0d 39 c6 1a 20 dd |9.. =..9...9.. .| 000097e0 a4 63 68 65 63 6b 5f 6c 69 73 74 28 61 63 74 69 |.check_list(acti| 000097f0 6f 6e 25 29 0d 39 d0 1c 20 ea 20 6e 25 2c 61 64 |on%).9.. . n%,ad| 00009800 64 72 25 2c 61 25 3a 6e 25 3d 30 3a 61 25 3d 30 |dr%,a%:n%=0:a%=0| 00009810 0d 39 da 35 20 c8 99 20 22 57 69 6d 70 5f 57 68 |.9.5 .. "Wimp_Wh| 00009820 69 63 68 49 63 6f 6e 22 2c 73 61 6d 70 6c 69 73 |ichIcon",samplis| 00009830 74 25 2c 62 6c 6b 25 2c 25 31 3c 3c 32 31 2c 25 |t%,blk%,%1<<21,%| 00009840 31 3c 3c 32 31 0d 39 e4 0f 20 61 64 64 72 25 3d |1<<21.9.. addr%=| 00009850 62 6c 6b 25 0d 39 ee 06 20 f5 0d 39 f8 1b 20 e7 |blk%.9.. ..9.. .| 00009860 20 74 79 70 65 25 28 21 61 64 64 72 25 29 3d 26 | type%(!addr%)=&| 00009870 46 46 41 20 8c 0d 3a 02 0b 20 20 6e 25 2b 3d 31 |FFA ..:.. n%+=1| 00009880 0d 3a 0c 06 20 cc 0d 3a 16 12 20 20 c8 8e 20 61 |.:.. ..:.. .. a| 00009890 63 74 69 6f 6e 25 20 ca 0d 3a 20 09 20 20 c9 20 |ction% ..: . . | 000098a0 30 0d 3a 2a 24 20 20 e7 20 3f 28 63 6f 64 65 25 |0.:*$ . ?(code%| 000098b0 2b 26 39 44 30 2b 21 61 64 64 72 25 29 3e 30 20 |+&9D0+!addr%)>0 | 000098c0 6e 25 2b 3d 31 0d 3a 34 09 20 20 c9 20 31 0d 3a |n%+=1.:4. . 1.:| 000098d0 3e 24 20 20 e7 20 3f 28 63 6f 64 65 25 2b 26 39 |>$ . ?(code%+&9| 000098e0 44 30 2b 21 61 64 64 72 25 29 3d 30 20 6e 25 2b |D0+!addr%)=0 n%+| 000098f0 3d 31 0d 3a 48 07 20 20 cb 0d 3a 52 06 20 cd 0d |=1.:H. ..:R. ..| 00009900 3a 5c 1f 20 61 64 64 72 25 2b 3d 34 3a 61 25 2b |:\. addr%+=4:a%+| 00009910 3d 31 3a fd 20 21 61 64 64 72 25 3d 2d 31 0d 3a |=1:. !addr%=-1.:| 00009920 66 0f 20 e7 20 61 25 3d 6e 25 20 3d b9 0d 3a 70 |f. . a%=n% =..:p| 00009930 07 20 3d a3 0d 3a 7a 04 0d 3a 84 0b 20 dd f2 6d |. =..:z..:.. ..m| 00009940 75 74 65 0d 3a 8e 0c 20 ea 20 76 25 2c 4e 25 0d |ute.:.. . v%,N%.| 00009950 3a 98 0f 20 2a 41 75 64 69 6f 20 4f 66 66 0d 3a |:.. *Audio Off.:| 00009960 a2 10 20 76 6f 69 63 65 24 28 29 3d 22 22 0d 3a |.. voice$()="".:| 00009970 ac 0f 20 e3 20 4e 25 3d 31 20 b8 20 38 0d 3a b6 |.. . N%=1 . 8.:.| 00009980 26 20 c8 99 20 22 53 6f 75 6e 64 5f 41 74 74 61 |& .. "Sound_Atta| 00009990 63 68 56 6f 69 63 65 22 2c 4e 25 2c 30 20 b8 20 |chVoice",N%,0 . | 000099a0 2c 76 25 0d 3a c0 37 20 e7 20 76 25 3e 30 20 c8 |,v%.:.7 . v%>0 .| 000099b0 99 20 22 53 6f 75 6e 64 5f 49 6e 73 74 61 6c 6c |. "Sound_Install| 000099c0 56 6f 69 63 65 22 2c 30 2c 76 25 20 b8 20 76 6f |Voice",0,v% . vo| 000099d0 69 63 65 24 28 4e 25 2d 31 29 0d 3a ca 06 20 ed |ice$(N%-1).:.. .| 000099e0 0d 3a d4 06 20 e1 0d 3a de 04 0d 3a e8 0e 20 dd |.:.. ..:...:.. .| 000099f0 f2 72 65 73 74 6f 72 65 0d 3a f2 09 20 ea 20 4e |.restore.:.. . N| 00009a00 25 0d 3a fc 0f 20 e3 20 4e 25 3d 31 20 b8 20 38 |%.:.. . N%=1 . 8| 00009a10 0d 3b 06 31 20 c8 99 20 22 58 53 6f 75 6e 64 5f |.;.1 .. "XSound_| 00009a20 41 74 74 61 63 68 4e 61 6d 65 64 56 6f 69 63 65 |AttachNamedVoice| 00009a30 22 2c 4e 25 2c 76 6f 69 63 65 24 28 4e 25 2d 31 |",N%,voice$(N%-1| 00009a40 29 0d 3b 10 06 20 ed 0d 3b 1a 0e 20 2a 41 75 64 |).;.. ..;.. *Aud| 00009a50 69 6f 20 4f 6e 0d 3b 24 06 20 e1 0d ff |io On.;$. ...| 00009a5d