Home » Archimedes archive » Micro User » MU 1992-02.adf » Listings » 32/!DSEdit/!RunImage

32/!DSEdit/!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 » Micro User » MU 1992-02.adf » Listings
Filename: 32/!DSEdit/!RunImage
Read OK:
File size: 8759 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > $.!DSEdit.!RunImage V0.96 <
   20REM RISCOS Raw Digitised Sound Editor
   30REM LEN Copyright '89,'90 Jason Williams
   40REM This program is in the public domain
   50
   60REM Search for @@@@ **** and %%%% for all the bugs and missing code!
   70
   80ONERROR PROCerror(REPORT$):PROCerrorend
   90
  100SYS "OS_GetEnv" TO c$
  110p%=INSTR(c$,"""",INSTR(c$,"""")+1)
  120c$=MID$(c$,p%+1)
  130WHILELEFT$(c$,1)=" ":c$=MID$(c$,2):ENDWHILE
  140
  150version=0.96
  160PROCwimpinit
  170roundsize%=16*1024
  180
  190PROCinit
  200PROCinitdriver
  210PROCassemble
  220
  230snum%=0
  240wstartoff%=0
  250
  260IF c$<>"" THEN crap%=FNload(c$):c$=""
  270
  280REPEAT
  290 IF dragging% THEN mask%=0 ELSE mask%=1
  300 SYS "Wimp_Poll",mask%,b% TO returncode%
  310 CASE returncode% OF
  320  WHEN 0 :     PROCdrag
  330  WHEN 1 :     PROCredraw(b%)
  340  WHEN 2 :     SYS "Wimp_OpenWindow",,b%
  350  WHEN 3 :     PROCclosewindow(!b%)
  360  WHEN 6 :     PROCbuttonclick(b%!8,b%!12,b%!16)
  370  WHEN 7 :     PROCfinishdrag
  380  WHEN 8 :     PROCprocesskey
  390  WHEN 9 :     PROCmenuselect(!b%,b%!4)
  400  WHEN 17,18 : PROCreceive
  410 ENDCASE
  420UNTIL quit%
  430IF snum%>0 THEN
  440  FOR Z%=1 TO snum%
  450    IF whandle%(Z%)>0 THEN PROCclosewindow(whandle%(Z%))
  460  NEXT
  470ENDIF
  480PROCrelease(driver%)
  490SYS "Wimp_CloseDown"
  500END
  510:
  520DEF FNload(name$)
  530LOCAL num%
  540IF snum%<1 THEN
  550  snum%+=1:num%=snum%
  560ELSE
  570  num%=0
  580  Z%=0
  590  REPEAT:Z%+=1
  600    IF whandle%(Z%)<1 THEN num%=Z%
  610  UNTIL num%>0 OR Z%>=16
  620  IF num%>snum% THEN snum%=num%
  630  IF num%=0 THEN PROCerror("Only 16 sounds can be edited at once"):num%=-1
  640ENDIF
  650
  660IF num%<1 THEN=FALSE
  670
  680$(names%+16*(num%-1))=FNleaf(name$)
  690whandle%(num%)=FNcreatewindow(names%+16*(num%-1),96-wstartoff%,512+wstartoff%,1056,368,0,13,&87001003)
  700PROCaddicons(num%)
  710wstartoff%-=48:IF wstartoff%<-160 THEN wstartoff%=0
  720PROCopenwindow(whandle%(num%))
  730name$(num%)=name$
  740
  750PROCloadfile(start%,length%,rmalen%(num%),name$)
  760IF start%<1 THEN =FALSE
  770start%(num%)=start%:length%(num%)=length%
  780sstart%(num%)=start%:slen%(num%)=length%
  790magstart%(num%)=start%:maglen%(num%)=length%
  800changed%(num%)=FALSE:speed%(num%)=&30
  810flags%(num%)=1:zoomlev%(num%)=19
  820PROCsetupdt(num%)
  830PROCinfotext(num%):lastloaded%=num%
  840=TRUE
  850:
  860DEF PROCinfotext(n%):LOCAL M%
  870M%=slen%(n%):IF M%>length%(n%) THEN M%=length%(n%)
  880IF M%<1 M%=1
  890$(infoicons%+(n%*40))="Selection: "+STR$M%+" of "+STR$length%(n%)+" bytes"
  900!b%=whandle%(n%):b%!4=infoicon1%(n%):b%!8=0:b%!12=0
  910SYS "Wimp_SetIconState",,b%
  920ENDPROC
  930:
  940DEF PROCaddicons(n%)
  950LOCAL h%
  960h%=FNicon(whandle%(n%),0,wbott%,1056,wbott%+wheight%+4,&6080,0,0,0)
  970h%=FNspriteicon(whandle%(n%),20,292,88,360,&3102,sprspace%,"left")
  980h%=FNspriteicon(whandle%(n%),108,292,168,360,&3102,1,"!dsicon")
  990
 1000 h%=FNspriteicon(whandle%(n%),196,292,256,360,&3102,sprspace%,"19")
 1010 zoominame%(n%)=alloc%
 1020
 1030 REM NOTE!!!! -If icon position changes, you must change ForceRedraw of it
 1040
 1050h%=FNspriteicon(whandle%(n%),284,292,344,360,&3102,sprspace%,"right")
 1060
 1070!b%=whandle%(n%)
 1080b%!4=376:b%!8=324:b%!12=1048:b%!16=364:b%!20=&07002119
 1090b%!24=infoicons%+(40*n%):b%!28=-1:b%!32=20
 1100SYS "Wimp_CreateIcon",,b% TO infoicon1%(n%)
 1110spdicon%(n%)=FNspriteicon(whandle%(n%),376,wbott%+wheight%+12,1048,324,&2102,sprspace%,"kbd")
 1120ENDPROC
 1130:
 1140DEF FNleaf(a$)
 1150LOCAL p%
 1160p%=LENa$
 1170WHILEMID$(a$,p%,1)=" " AND p%>0:p%-=1:ENDWHILE
 1180a$=LEFT$(a$,p%)
 1190WHILEMID$(a$,p%,1)<>"." AND p%>0:p%-=1:ENDWHILE
 1200=MID$(a$,p%+1)
 1210:
 1220DEF PROCinit
 1230LOCAL colms%,rows%,cols%
 1240driver%=FNclaim(2048)
 1250IF driver%=0 THEN END
 1260
 1270DIM mtable% 256
 1280DIM start%(16),length%(16),name$(16)
 1290DIM speed%(16),sstart%(16),slen%(16)
 1300DIM magstart%(16),maglen%(16)
 1310DIM whandle%(16),rmalen%(16)
 1320DIM flags%(16),changed%(16)
 1330DIM dt%(16),infoicon1%(16),spdicon%(16)
 1340DIM zoomlev%(16),zoominame%(16)
 1350DIM infoicons% 650
 1360
 1370FOR F%=infoicons% TO infoicons%+640 STEP 40
 1380  $F%=STRING$(42,CHR$0)
 1390NEXT
 1400
 1410DIM sprspace% 12*1024
 1420!sprspace%=12*1024:sprspace%!4=0
 1430sprspace%!8=16:sprspace%!12=16
 1440SYS "OS_SpriteOp",&10A,sprspace%,"<DSEdit$Dir>.Sprites"
 1450
 1460start%()=0:length%()=0:
 1470FOR F%=0 TO 16:name$(F%)="RawSound":NEXT
 1480speed%()=&30:sstart%()=0:slen%()=0
 1490magstart%()=0:maglen%()=0:whandle%()=0:changed%()=FALSE
 1500zoomlev%()=19:flags%()=1
 1510
 1520volume%=15
 1530clipit%=TRUE
 1540
 1550savesel%=FALSE
 1560savewind%=0
 1570PROCgetsteps(xstep%,ystep%)
 1580
 1590changed%=FALSE
 1600PROCcreatefilew(filewindow%,filename%)
 1610PROCcreatefilew(filewindow2%,filename2%)
 1620
 1630
 1640REM ****%%%% The items below followed by "V" are shaded due to lack of
 1650REM implementation, or rather, lack of input routines to pass the correct
 1660REM info to the procedures to do these things.
 1670
 1680menu$="Play sound ,SaveY,Select all ,>Selection ,SaveZ,Play ,Delete ,<,>Edit ,Ramp up ,Ramp down ,AmplifyW,Move centreV,Limit upV,Limit downV,SqueezeV,Make silenceW,<,"
 1690menu2$=">Special FX ,Add constW,Eor constW,Reverse ,EchoW,Flange EchoW,<,>Options ,Set speedW,Set volumeX,ClippingB,LinesB,<,"
 1700
 1710lastval1$="200":lastval2$="128":lastval3$="128"
 1720lastval4$="1024":lastval5$="4096"
 1730DIM dialogb%(3)
 1740dialog%=0
 1750insert$="":dragging%=FALSE:dragn%=0:dragsx%=0:olddrag%=0:dragy%=0
 1760lastloaded%=0
 1770ENDPROC
 1780:
 1790DEF PROCgetsteps(RETURN xstep%,RETURN ystep%)
 1800xmax%=1280:ymax%=1024
 1810mode%=MODE
 1820wleft%=16:wbott%=16
 1830wwidth%=1024:wheight%=256
 1840CASE mode% OF
 1850  WHEN 0,8,11,12,14,15,18,19,20,21,25,26,27,28: xstep%=2
 1860  WHEN 1,4,9,13: xstep%=4
 1870  WHEN 2,5,10: xstep%=8
 1880  WHEN 16,17,24: xstep%=2 :xmax%=1056*2
 1890  WHEN 23: xstep%=1 :xmax%=1152
 1900ENDCASE
 1910IF mode%<18 THEN ystep%=4 ELSE ystep%=2
 1920IF mode%>21 THEN ystep%=1
 1930ENDPROC
 1940:
 1950DEF PROCassemble
 1960DIM code% 20*1024
 1970OSCLI("LOAD <DSEdit$Dir>.Code "+STR$~code%)
 1980
 1990tfer      =(code%!0)+code%
 2000bfer      =(code%!4)+code%
 2010tablemod  =(code%!8)+code%
 2020addblocks =(code%!12)+code%
 2030addclip   =(code%!16)+code%
 2040avgblocks =(code%!20)+code%
 2050avgclip   =(code%!24)+code%
 2060ENDPROC
 2070:
 2080DEF PROCstartdrag(n%):LOCAL x%,xl%,xw%,conv
 2090dragging%=TRUE
 2100dragn%=n%              :REM Number of sound being dragged
 2110dragsx%=b%!0           :REM Start-x (screen coords) of drag
 2120olddrag%=&42424242     :REM Old end-x ( "     "   ) of drag
 2130
 2140b%!0=whandle%(n%)
 2150SYS "Wimp_GetWindowState",,b%
 2160x%=b%!4-b%!20+wleft%
 2170IF dragsx%<x% THEN dragsx%=x%
 2180IF dragsx%>x%+wwidth% THEN dragsx%=x%+wwidth%
 2190dragy%=b%!16-b%!24+wbott%
 2200
 2210REM Invert out the old inversion
 2220 conv=wwidth%/maglen%(n%)
 2230 xl%=(sstart%(n%)-magstart%(n%))*conv+x%
 2240 IF xl%<x% THEN xl%=x%
 2250 xw%=slen%(n%)*conv:IF xw%>1023 OR xw%<0 THEN xw%=1023
 2260 IF xl%+xw%-x%>1023 THEN xw%=1023-(xl%-x%)
 2270 PROCdraginv(xl%,xw%)
 2280
 2290REM Now start Wimp_DragBox drag:
 2300
 2310!b%=whandle%(n%)
 2320b%!4=7     :REM Wimp doesn't draw the dragbox for me
 2330b%!8=0:b%!12=0:b%!16=0:b%!20=0
 2340b%!24=x%   :REM Mouse bounds rectangle - keep pointer within sound_window
 2350b%!28=dragy%
 2360b%!32=x%+wwidth%
 2370b%!36=dragy%+wheight%
 2380SYS "Wimp_DragBox",,b%
 2390ENDPROC
 2400:
 2410DEF PROCfinishdrag
 2420IF NOTdragging% THEN PROCsendsave:ENDPROC
 2430dragging%=FALSE
 2440
 2450b%!0=whandle%(dragn%)
 2460SYS "Wimp_GetWindowState",,b%
 2470x%=b%!4-b%!20+wleft%
 2480
 2490IF olddrag%=&42424242 THEN
 2500  olddrag%=dragsx%
 2510ENDIF
 2520IF olddrag%<dragsx% THEN SWAP dragsx%,olddrag%
 2530olddrag%-=dragsx%:dragsx%-=x%
 2540IF dragsx%<0 dragsx%=0
 2550IF dragsx%>1056 THEN dragsx%=1056
 2560IF olddrag%<0 THEN olddrag%=0
 2570IF dragsx%+olddrag%>1056 THEN olddrag%=1056-dragsx%
 2580
 2590sstart%(dragn%)=magstart%(dragn%)+maglen%(dragn%)*(dragsx%/wwidth%)
 2600slen%(dragn%)=maglen%(dragn%)*(olddrag%/wwidth%)
 2610PROCchkmag(dragn%)
 2620PROCinfotext(dragn%)
 2630SYS"Wimp_ForceRedraw",whandle%(dragn%),0,0,1279,288
 2640ENDPROC
 2650:
 2660DEF PROCdrag:LOCAL x%,y%,but%,step%
 2670IF NOTdragging% THEN ENDPROC
 2680SYS "OS_Mouse" TO x%,y%,but%
 2690
 2700IF olddrag%=&42424242 THEN GCOL3,7:olddrag%=x%:PROCdraginv(dragsx%,x%-dragsx%):ENDPROC
 2710IF x%DIVxstep%=olddrag%DIVxstep% THEN ENDPROC
 2720
 2730        REM For non-flicker-but-not-quite-right invert...
 2740step%=xstep%
 2750IF (olddrag%<dragsx% AND x%>dragsx%) OR (olddrag%>dragsx% AND x%<dragsx%) THEN step%=0
 2760
 2770IF x%>dragsx% THEN
 2780  IF olddrag%>x% THEN
 2790    PROCdraginv(x%+step%,olddrag%-(x%+step%))
 2800  ELSE
 2810    PROCdraginv(olddrag%+step%,x%-(olddrag%+step%))
 2820  ENDIF
 2830ELSE
 2840  IF olddrag%>x% THEN
 2850    PROCdraginv(x%,(olddrag%-step%)-x%)
 2860  ELSE
 2870    PROCdraginv(olddrag%,x%-(olddrag%+step%))
 2880  ENDIF
 2890ENDIF
 2900olddrag%=x%
 2910ENDPROC
 2920:
 2930DEF PROCdraginv(x1%,x2%):LOCAL more%,x0%,y0%
 2940IF x2%<0 THEN x2%=ABS(x2%):x1%-=x2%
 2950
 2960!b%=whandle%(dragn%)
 2970SYS"Wimp_GetWindowState",,b%
 2980x0%=b%!4-b%!20
 2990
 3000b%!4=(x1%-xstep%)-x0%
 3010b%!8=wbott%
 3020b%!12=(x1%+x2%+xstep%)-x0%
 3030b%!16=wbott%+wheight%+ystep%
 3040
 3050SYS "Wimp_UpdateWindow",,b% TO more%
 3060GCOL3,7
 3070WHILE more%
 3080  y0%=b%!16-b%!24
 3090  GCOL 3,7:RECTANGLEFILL x1%,y0%+wbott%,x2%,wheight%
 3100  SYS "Wimp_GetRectangle",,b% TO more%
 3110ENDWHILE
 3120ENDPROC
 3130:
 3140DEF PROCinvert(n%,x%,y%):LOCAL xl%,xw%,conv
 3150IF dragging% THEN ENDPROC  :REM NO INVERSION if dragging
 3160IF maglen%(n%)<1 THEN maglen%(n%)=1
 3170conv=wwidth%/maglen%(n%)
 3180xl%=(sstart%(n%)-magstart%(n%))*conv+x%
 3190IF xl%<x% THEN xl%=x%
 3200xw%=slen%(n%)*conv:IF xw%>1023 OR xw%<0 THEN xw%=1023
 3210IF xl%+xw%-x%>1023 THEN xw%=1023-(xl%-x%)
 3220
 3230GCOL3,7
 3240RECTANGLEFILL xl%,y%,xw%,wheight%
 3250ENDPROC
 3260:
 3270DEF PROCredraw(b%)
 3280LOCAL more%,num%,x0%,y0%
 3290num%=FNhandletosnum(!b%)
 3300SYS "Wimp_RedrawWindow",,b% TO more%
 3310
 3320WHILE more%
 3330  x0%=b%!4-b%!20
 3340  y0%=b%!16-b%!24
 3350  PROCdraw(num%,x0%,y0%)
 3360  SYS "Wimp_GetRectangle",,b% TO more%
 3370ENDWHILE
 3380ENDPROC
 3390:
 3400DEF FNhandletosnum(handle%)
 3410LOCAL num%,Z%
 3420Z%=0:num%=0
 3430REPEAT:Z%+=1
 3440  IF whandle%(Z%)=handle% THEN num%=Z%
 3450UNTIL num%>0 OR Z%>=snum%
 3460=num%
 3470:
 3480DEF PROCsetupdt(num%)
 3490PROCrelease(dt%(num%))
 3500dt%(num%)=FNclaim(1024)
 3510IF dt%(num%)=0 THEN ERROR 42,"Fatal error: No room in RMA"
 3520FOR Z%=0 TO 1023
 3530  dt%(num%)?Z%=magstart%(num%)?((Z%/wwidth%)*maglen%(num%))
 3540NEXT
 3550ENDPROC
 3560:
 3570DEF PROCdraw(num%,x0%,y0%)
 3580LOCAL x%,y%,w%
 3590left%=b%!28-x0%-wleft%-xstep%
 3600right%=b%!36-x0%-wleft%
 3610IF left%<0 left%=0
 3620IF ABS(right%-left%)>1023 THEN right%=left%+1023
 3630IF right%>1023 THENright%=1023
 3640w%=ABS(right%-left%)
 3650IF w%<=0 THEN ENDPROC
 3660
 3670y%=y0%+wbott%
 3680x%=x0%+wleft%
 3690
 3700line%=(flags%(num%) AND 1)
 3710
 3720PROCcol(0):RECTANGLEFILL x%,y%,wwidth%,wheight%
 3730PROCcol(15):LINE x%,y%+wheight%DIV2,x%+wwidth%,y%+wheight%DIV2
 3740PROCcol(7):RECTANGLE x%-8,y%-8,wwidth%+16,wheight%+16
 3750
 3760
 3770PROCcol(5)
 3780IF left%<xstep% THEN
 3790  MOVE x%,y%+wheight%DIV2
 3800ELSE
 3810  MOVE x%,y%+(dt%(num%)?(left%-xstep%))
 3820ENDIF
 3830
 3840IFline% PROCdrawline ELSE PROCdrawdot
 3850PROCinvert(num%,x%,y%)
 3860ENDPROC
 3870:
 3880DEF PROCdrawline
 3890FOR X%=left% TO right% STEP xstep%
 3900  DRAW X%+x%,dt%(num%)?X%+y%
 3910NEXT
 3920ENDPROC
 3930:
 3940DEF PROCdrawdot
 3950FOR X%=left% TO right% STEP xstep%
 3960  POINT X%+x%,dt%(num%)?X%+y%:POINT X%+x%,y%+dt%(num%)?(X%+1)
 3970NEXT
 3980ENDPROC
 3990:
 4000DEF PROCcol(c%)
 4010SYS "Wimp_SetColour",c%
 4020ENDPROC
 4030:
 4040DEF PROCloadfile(RETURN start%,RETURN length%,RETURN l%,name$)
 4050LOCAL ch%,l%
 4060
 4070ch%=OPENIN(name$):IF ch%=0 THEN CLOSE#ch%:start%=-1:ENDPROC
 4080length%=EXT#ch%
 4090CLOSE#ch%
 4100l%=((length%DIVroundsize%)+1)*roundsize%
 4110start%=FNclaim(l%)
 4120IF start%<1 THEN ENDPROC
 4130
 4140OSCLI("LOAD "+name$+" "+STR$~start%)
 4150ENDPROC
 4160:
 4170DEF PROCinitdriver
 4180OSCLI("*LO. <DSEdit$Dir>.Speaker "+STR$~driver%)
 4190CALL driver%+&F4
 4200ENDPROC
 4210:
 4220DEF PROCplay(n%,start%,length%,speed%,volume%)
 4230
 4240driver%!0=start%
 4250driver%!4=start%+length%
 4260driver%?&1C=speed%
 4270CALL driver%+&F4
 4280
 4290VOICES 2
 4300*VOLUME 127
 4310*CHA. 2 8
 4320SOUND 2,-volume%,255,255
 4330*FX21
 4340ENDPROC
 4350:
 4360=========================================================================
 4370:
 4380DEF PROCtransfer(A%,C%,B%) :REM Transfer block (A% to A%+C%) to B%
 4390CALL tfer
 4400ENDPROC
 4410:
 4420DEF PROCdelete(s%,l%,n%)
 4430SYS "Hourglass_On"
 4440PROCtransfer(s%+l%,start%(n%)+length%(n%)-(s%+l%),s%)
 4450length%(n%)-=l%
 4460maglen%(n%)-=l%
 4470PROCchkmag(n%)
 4480slen%(n%)=1
 4490changed%=TRUE
 4500SYS "Hourglass_Off"
 4510ENDPROC
 4520:
 4530DEF PROCchkmag(n%)
 4540IF sstart%(n%)<start%(n%) THEN sstart%(n%)=start%(n%)
 4550IF magstart%(n%)<start%(n%) THEN magstart%(n%)=start%(n%)
 4560IF length%(n%)<1 length%(n%)=1
 4570IF slen%(n%)<1 slen%(n%)=1
 4580IF (maglen%(n%)<1) OR (magstart%(n%)>start%(n%)+length%(n%)) THEN
 4590  magstart%(n%)=start%(n%):maglen%(n%)=length%(n%)
 4600ENDIF
 4610IF magstart%(n%)<start%(n%) THEN magstart%(n%)=start%(n%)
 4620IF magstart%(n%)+maglen%(n%)>start%(n%)+length%(n%) THEN
 4630  maglen%(n%)=start%(n%)+length%(n%)-magstart%(n%)
 4640ENDIF
 4650ENDPROC
 4660:
 4670DEF PROCpaste(n%,fname$,insert%)
 4680LOCAL c%,istart%,ilen%,pstart%,plen%,newstart%,plenround%
 4690ilen%=0
 4700c%=OPENIN(fname$):IF c%<>0 THEN ilen%=EXT#c%  :REM Insert length
 4710CLOSE#c%
 4720IF c%=0 OR ilen%<1 THEN ENDPROC
 4730SYS "Hourglass_On"
 4740PROCclaimmore(n%,ilen%)
 4750IF newstart%<1 THEN GOTO4910
 4760
 4770istart%=FNclaim(ilen%):IF istart%<1 THEN GOTO4910
 4780
 4790OSCLI("LOAD "+fname$+" "+STR$~istart%)
 4800IF insert% THEN
 4810 A%=sstart%(n%)+ilen%
 4820 B%=pstart%+plen%+ilen%
 4830 C%=pstart%+plen%
 4840 CALL bfer
 4850ENDIF
 4860PROCtransfer(istart%,ilen%,sstart%(n%))
 4870IF insert% THEN length%(n%)+=ilen%
 4880sstart%(n%)=start%(n%):slen%(n%)=length%(n%)
 4890magstart%(n%)=start%(n%):maglen%(n%)=length%(n%)
 4900PROCrelease(istart%)
 4910SYS "Hourglass_Off"
 4920ENDPROC
 4930:
 4940DEF PROCadd(n%,fname$,add%)
 4950LOCAL c%,clipboard%,l%
 4960
 4970c%=OPENIN(fname$):IF c%<>0 THEN l%=EXT#c%
 4980CLOSE#c%
 4990IF c%=0 THEN ENDPROC
 5000SYS "Hourglass_On"
 5010clipboard%=FNclaim(l%+16)
 5020IF clipboard%<1 THEN SYS "Hourglass_Off":ENDPROC
 5030OSCLI("LOAD "+fname$+" "+STR$~clipboard%)
 5040A%=clipboard%
 5050B%=sstart%(n%)
 5060IF l%<slen%(n%) THEN
 5070  C%=l%
 5080ELSE
 5090  C%=slen%(n%)
 5100ENDIF
 5110IF add% THEN
 5120  IF clipit% THEN CALL addclip ELSE CALL addblocks
 5130ELSE
 5140  IF clipit% THEN CALL avgclip ELSE CALL avgblocks
 5150ENDIF
 5160PROCrelease(clipboard%)
 5170SYS "Hourglass_Off"
 5180ENDPROC
 5190:
 5200DEF PROCmakesilence(n%):LOCAL pstart%,plen%,plenround%,newstart%,l%
 5210SYS "Hourglass_On"
 5220l%=FNmenuval(16,lastval5$,1,10000,4)
 5230PROCclaimmore(n%,l%)
 5240IF newstart%<1 THEN SYS"Hourglass_Off":ENDPROC
 5250
 5260PROCtransfer(sstart%(n%),plen%-(sstart%(n%)-start%(n%)),sstart%(n%)+l%)
 5270
 5280FOR Z%=0 TO 255
 5290 mtable%?Z%=128
 5300NEXT
 5310PROCtablemod(sstart%(n%),l%)
 5320
 5330length%(n%)+=l%
 5340magstart%(n%)=newstart%:maglen%(n%)=length%(n%)
 5350PROCchkmag(n%)
 5360changed%=TRUE
 5370SYS "Hourglass_Off"
 5380ENDPROC
 5390:
 5400DEF PROCrampup(s%,l%)
 5410 SYS "Hourglass_On"
 5420 FOR Z%=0 TO l%
 5430   B%=s%?Z%
 5440   B%=(B%-128)*ABS(Z%/l%)
 5450   B%+=128
 5460   s%?Z%=B%
 5470 NEXT
 5480 changed%=TRUE
 5490 SYS "Hourglass_Off"
 5500ENDPROC
 5510:
 5520DEF PROCrampdown(s%,l%)
 5530 SYS "Hourglass_On"
 5540 FOR Z%=0 TO l%
 5550   B%=s%?Z%
 5560   B%=(B%-128)*ABS((l%-Z%)/l%)
 5570   B%+=128
 5580   s%?Z%=B%
 5590 NEXT
 5600 changed%=TRUE
 5610 SYS "Hourglass_Off"
 5620ENDPROC
 5630:
 5640DEF PROCmovecentre(s%,l%)
 5650 changed%=TRUE
 5660ENDPROC
 5670:
 5680DEF PROClimits(s%,l%)
 5690 changed%=TRUE
 5700ENDPROC
 5710:
 5720DEF PROCreverse(s%,l%):LOCAL e%
 5730 SYS "Hourglass_On"
 5740 e%=2*s%+l%
 5750 FOR Z%=s% TO s%+(l%>>1)
 5760   SWAP ?Z%,e%?-Z%
 5770 NEXT
 5780 changed%=TRUE
 5790 SYS "Hourglass_Off"
 5800ENDPROC
 5810:
 5820DEF PROCamplify(s%,l%,pc%):LOCAL amp
 5830 IF pc%=-1 THEN pc%=FNmenuval(0,lastval1$,1,999,3)
 5840 IF pc%=100 OR pc%<1 OR pc%>999 THEN ENDPROC
 5850 SYS "Hourglass_On"
 5860
 5870 amp=pc%/100
 5880 FOR Z%=0 TO 255
 5890   B%=((Z%-128)*amp)+128
 5900   PROCclipit
 5910   mtable%?Z%=B%
 5920 NEXT
 5930 PROCtablemod(s%,l%)
 5940 changed%=TRUE
 5950
 5960 SYS "Hourglass_Off"
 5970ENDPROC
 5980:
 5990DEF PROCaddconst(s%,l%):LOCAL n%
 6000 n%=FNmenuval(32,lastval2$,1,255,3)
 6010 IF n%<1 OR n%>255 THEN n%=n% MOD 256
 6020 SYS "Hourglass_On"
 6030
 6040 FOR Z%=0 TO 255
 6050   B%=Z%+n%:PROCclipit
 6060   mtable%?Z%=B%
 6070 NEXT
 6080 PROCtablemod(s%,l%)
 6090 changed%=TRUE
 6100
 6110 SYS "Hourglass_Off"
 6120ENDPROC
 6130:
 6140DEF PROCeorconst(s%,l%)
 6150 n%=FNmenuval(48,lastval3$,1,255,3)
 6160 IF n%<1 OR n%>255 THEN n%=n%AND&FF
 6170 SYS "Hourglass_On"
 6180
 6190 FOR Z%=0 TO 255
 6200   mtable%?Z%=Z%EORn%
 6210 NEXT
 6220 PROCtablemod(s%,l%)
 6230 changed%=TRUE
 6240
 6250 SYS "Hourglass_Off"
 6260ENDPROC
 6270:
 6280DEF PROCflange(s%,l%):LOCAL echolength%,echostrength
 6290echolength%=FNmenuval(80,lastval4$,1,9999,4)
 6300echostrength=.7
 6310
 6320SYS "Hourglass_On"
 6330FOR Z%=s% TO s%+l%-echolength%
 6340 T%=(?Z%-128)*echostrength
 6350 B%=(Z%?echolength%)+T%
 6360 PROCclipit:Z%?echolength%=B%
 6370NEXT
 6380changed%=TRUE
 6390SYS "Hourglass_Off"
 6400ENDPROC
 6410:
 6420DEF PROCecho(s%,l%):LOCAL echolength%,echostrength
 6430echolength%=FNmenuval(64,lastval4$,1,9999,4)
 6440echostrength=.7
 6450
 6460SYS "Hourglass_On"
 6470FOR Z%=s%+l% TO s%+echolength% STEP-1
 6480 T%=((Z%?-echolength%)-128)*echostrength
 6490 B%=(?Z%)+T%:PROCclipit
 6500 ?Z%=B%
 6510NEXT
 6520changed%=TRUE
 6530SYS "Hourglass_Off"
 6540ENDPROC
 6550:
 6560DEF PROCtablemod(A%,B%)
 6570 B%+=A%
 6580 C%=mtable%
 6590 CALL tablemod
 6600ENDPROC
 6610:
 6620DEF PROCchangespeed(num%):LOCAL A$
 6630n%=FNmenuval(96,A$,1,255,3)
 6640speed%(num%)=n% AND &FF
 6650ENDPROC
 6660:
 6670DEF PROCchangevol:LOCAL A$
 6680n%=FNmenuval(112,A$,1,15,2)
 6690volume%=n%MOD16
 6700ENDPROC
 6710:
 6720DEF PROCzoom(n%,but%)
 6730LOCAL z%:z%=zoomlev%(n%)
 6740IF but%=1 THEN z%+=1 ELSE z%-=1
 6750IF z%<8 THEN z%=19
 6760IF z%>19 THEN z%=8
 6770
 6780IF z%=19 THEN
 6790  start%=start%(n%):len%=length%(n%)
 6800ELSE
 6810  IF 2^z%>length%(n%) THEN
 6820    IF but%=4 THEN
 6830      REPEAT:z%-=1:UNTIL 2^z%<=length%(n%)
 6840      IF z%<8 THEN z%=19
 6850      len%=length%(n%):start%=start%(n%)
 6860    ELSE
 6870     z%=19
 6880    ENDIF
 6890    IF z%=19 THEN start%=start%(n%):len%=length%(n%)
 6900  ELSE
 6910    len%=2^z%
 6920    start%=(magstart%(n%)+maglen%(n%)DIV2)-len%DIV2
 6930  ENDIF
 6940ENDIF
 6950
 6960$zoominame%(n%)=RIGHT$("00"+STR$(z%),2)
 6970
 6980zoomlev%(n%)=z%
 6990magstart%(n%)=start%
 7000maglen%(n%)=len%
 7010PROCsetupdt(n%)
 7020
 7030SYS "Wimp_ForceRedraw",whandle%(n%),0,0,1280,288
 7040SYS "Wimp_ForceRedraw",whandle%(n%),196,292,256,360
 7050ENDPROC
 7060:
 7070DEF PROCscroll(n%,d%)
 7080IF zoomlev%(n%)=19 THEN ENDPROC
 7090magstart%(n%)+=d%*((2^zoomlev%(n%))DIV 4)
 7100PROCchkmag(n%)
 7110PROCsetupdt(n%)
 7120SYS "Wimp_ForceRedraw",whandle%(n%),0,0,1280,288
 7130ENDPROC
 7140:
 7150DEF PROCscale(s%,l%,n%):LOCAL n,newlen%
 7160 n=FNinputval("scale factor (0.00-99.99)",0,99)
 7170 IF n=1.00 THEN ENDPROC
 7180
 7190 SYS "Hourglass_On"
 7200 newlen%=n*l%
 7210
 7220 IF n>1.00 THEN
 7230   PROCtransfer(s%+l%,start%(n%)+length%(n%)-s%,s%+newlen%)
 7240   FOR Z%=newlen% TO 0 STEP-1
 7250     s%?Z%=s%?(Z%/n)
 7260   NEXT
 7270 ELSE
 7280   FOR Z%=0 TO newlen%
 7290     s%?Z%=s%?(Z%/n)
 7300   NEXT
 7310   A%=s%+newlen%
 7320   B%=start%(n%)+length%(n%)-(newlen%-l%)
 7330   C%=start%(n%)+length%(n%)
 7340   CALL bfer
 7350
 7360 ENDIF
 7370
 7380   l%=((n*l%)-l%)
 7390   length%(n%)+=l%
 7400   slen%(n%)+=l%
 7410   maglen%(n%)+=l%:PROCchkmag(n%)
 7420
 7430 changed%=TRUE
 7440 SYS "Hourglass_Off"
 7450ENDPROC
 7460:
 7470DEF PROCclipit:IF NOTclipit% B%=B%MOD256:ENDPROC
 7480IF B%>255 THEN B%=255:ENDPROC
 7490IF B%<0 THEN B%=0
 7500ENDPROC
 7510:
 7520========================================================================
 7530:
 7540DEF FNclaim(size%)
 7550LOCAL ERROR
 7560ON ERROR LOCAL PROCerrorend(REPORT$)
 7570
 7580REM Do OS_Module call to find biggest block - If too small, complain
 7590REM - This may bugger up auto-allocation to RMA
 7600REM - This may be a good thing: the user must explicitly give us the mem.
 7610
 7620SYS "OS_Module",6,,,size% TO ,,ptr%;flags%
 7630IF ptr%<1 OR flags%<>6 THEN PROCerror("Not enough room in RMA"):=0
 7640=ptr%
 7650:
 7660DEF PROCclaimmore(n%,l%) :REM Get l% free bytes at end of sound
 7670pstart%=start%(n%):plen%=length%(n%)
 7680rmalen%=rmalen%(n%)
 7690IF (rmalen%-plen%)<l% THEN
 7700  PROCrelease(start%(n%))
 7710  newlen%=((plen%+l%)DIVroundsize%+1)*roundsize%
 7720  newstart%=FNclaim(newlen%)
 7730  IF newstart%>0 THEN
 7740    IF newstart%<pstart% THEN
 7750      A%=newstart%
 7760      B%=newstart%+plen%
 7770      C%=pstart%+plen%
 7780      CALL bfer
 7790    ENDIF
 7800    IF newstart%>pstart% THEN
 7810      PROCtransfer(pstart%,plen%,newstart%)
 7820    ENDIF
 7830    start%(n%)=newstart%:rmalen%(n%)=newlen%
 7840    sstart%(n%)=(sstart%(n%)-pstart%)+newstart%
 7850    pstart%=newstart%
 7860  ENDIF
 7870ELSE
 7880  newstart%=pstart%
 7890ENDIF
 7900ENDPROC
 7910:
 7920DEF PROCrelease(RETURN ptr%)
 7930
 7940IF ptr%>0 THEN SYS "OS_Module",7,,ptr%
 7950ptr%=0
 7960ENDPROC
 7970:
 7980DEF PROCbuttonclick(B%,W%,I%)
 7990CASE B% OF
 8000 WHEN 1 : PROCsaclick(B%,W%,I%)
 8010 WHEN 2 : PROCmenuclick(W%,b%!0-16,b%!4-12)
 8020 WHEN 4 : PROCsaclick(B%,W%,I%)
 8030ENDCASE
 8040ENDPROC
 8050:
 8060DEF PROCsaclick(B%,W%,I%)
 8070LOCAL proc%,n%,xrange%,x0%:proc%=FALSE
 8080IF snum%<1 THEN ENDPROC
 8090
 8100IF W%=filewindow% THEN
 8110 n%=FNhandletosnum(mw%)
 8120 CASE I% OF
 8130  WHEN fileicon%:   savesel%=FALSE:savewind%=mw%:PROCdragfile:proc%=TRUE
 8140  WHEN fileok%,filenameicon%: PROCsaveit(n%,$filename%,start%(n%),length%(n%)):proc%=TRUE:name$(n%)=$filename%
 8150 ENDCASE
 8160ENDIF
 8170
 8180IF W%=filewindow2% THEN
 8190 n%=FNhandletosnum(mw%)
 8200 CASE I% OF
 8210  WHEN fileicon%:   savesel%=TRUE:savewind%=mw%:PROCdragfile:proc%=TRUE
 8220  WHEN fileok%,filenameicon%: PROCsaveit(n%,$filename2%,sstart%(n%),slen%(n%)):proc%=TRUE
 8230 ENDCASE
 8240ENDIF
 8250
 8260IF W%=dialog% THEN
 8270 IF I%>-1 AND I%<6 THEN proc%=TRUE
 8280 CASE I% OF
 8290   WHEN 0,1,2,3: PROCsadialog(I%,B%,FNhandletosnum(loadwind%))
 8300   WHEN 4: PROCsadialog(4,13,FNhandletosnum(loadwind%))
 8310   WHEN 5: PROCkilldialog
 8320 ENDCASE
 8330ENDIF
 8340IF proc% ENDPROC
 8350
 8360Z%=1
 8370REPEAT
 8380  IF W%=whandle%(Z%) THEN
 8390   SYS "Wimp_SetCaretPosition",W%,-1,0,-1000,0,-1
 8400   REM Grab the input focus
 8410   CASE I% OF
 8420      WHEN 0: PROCstartdrag(Z%)
 8430      WHEN 1: IF B%=4 THEN PROCscroll(Z%,-1) ELSE PROCscroll(Z%,1)
 8440      WHEN 2: PROCplay(Z%,sstart%(Z%),slen%(Z%),speed%(Z%),volume%)
 8450      WHEN 3: PROCzoom(Z%,B%)
 8460      WHEN 4: IF B%=4 THEN PROCscroll(Z%,1) ELSE PROCscroll(Z%,-1)
 8470      WHEN spdicon%(Z%),infoicon1%(Z%):
 8480          b%!32=whandle%(Z%):b%!36=infoicon1%(Z%)
 8490          SYS "Wimp_GetIconState",,b%+32,b%!36
 8500          xrange%=b%!48-b%!40:x0%=b%!40
 8510          b%!32=whandle%(Z%):SYS "Wimp_GetWindowState",,b%+32
 8520          x0%+=(b%!36-b%!52)
 8530          speed%(Z%)=255-(((!b%-x0%)/xrange%)*255)
 8540          PROCplay(Z%,start%(Z%),length%(Z%),speed%(Z%),volume%)
 8550          SYS "Wimp_GetPointerInfo",,b%
 8560          IF !b%<>0 THEN x0%=INKEY(40)  :REM Short pause for auto-repeat
 8570   ENDCASE
 8580  ENDIF
 8590  Z%+=1
 8600UNTIL Z%>snum% OR Z%>=17
 8610ENDPROC
 8620:
 8630DEF FNinsrect(x%,y%,n%)
 8640!b%=whandle%(n%):SYS "Wimp_GetWindowState",,b%
 8650x%=x%-(b%!4-b%!20)-wleft%
 8660y%=y%-(b%!16-b%!24)-wbott%
 8670=(x%>0 AND y%>0 AND x%<wwidth% AND y%<wheight%)
 8680:
 8690DEF PROCmenuclick(W%,X%,Y%)
 8700LOCAL A$
 8710mw%=W%:mx%=X%:my%=Y%
 8720
 8730IF W%=-2 THENPROCmastermenu("DS Edit "+LEFT$(STR$(version+0.0001),4),"Quit ,","",X%,140,0):ENDPROC
 8740
 8750IF snum%>0 THEN
 8760  FOR Z%=1 TO snum%
 8770    IF W%=whandle%(Z%) PROCmastermenu("DS Edit",menu$,menu2$,X%,Y%,Z%)
 8780  NEXT
 8790ENDIF
 8800ENDPROC
 8810:
 8820DEF PROCmenuselect(mitem%,subitem%)
 8830LOCAL stay%,num%
 8840SYS "Wimp_GetPointerInfo",,b%
 8850stay%=(b%!8=1)
 8860
 8870IF mw%=-2 AND mitem%=0 quit%=TRUE:ENDPROC
 8880
 8890num%=FNhandletosnum(mw%)
 8900IF snum%>0 THEN
 8910  start%=sstart%(num%)
 8920  length%=slen%(num%)
 8930  changed%=FALSE
 8940  CASE mitem% OF
 8950    WHEN 0: PROCplay(num%,start%(num%),length%(num%),speed%(num%),volume%)
 8960    WHEN 1: REM Save- Done thru icons on file window
 8970    WHEN 2: sstart%(num%)=start%(num%):slen%(num%)=length%(num%):SYS"Wimp_ForceRedraw",whandle%(num%),0,0,1279,288:PROCinfotext(num%)
 8980    WHEN 3:
 8990      CASE subitem% OF
 9000        WHEN 0: REM Save Selection -Done thru' icon clicks
 9010        WHEN 1: PROCplay(num%,sstart%(num%),slen%(num%),speed%(num%),volume%)
 9020        WHEN 2: PROCdelete(start%,length%,num%)
 9030      ENDCASE
 9040    WHEN 4:
 9050      CASE subitem% OF
 9060        WHEN 0: PROCrampup(start%,length%)
 9070        WHEN 1: PROCrampdown(start%,length%)
 9080        WHEN 2: PROCamplify(start%,length%,-1)
 9090        WHEN 3: REM MOVE CENTRE
 9100        WHEN 4: REM LIMIT UPPER
 9110        WHEN 5: REM LIMIT LOWER
 9120        WHEN 6: REM LENGTHEN/SHORTEN (Squeeze)
 9130        WHEN 7: PROCmakesilence(num%)
 9140      ENDCASE
 9150    WHEN 5:
 9160      CASE subitem% OF
 9170        WHEN 0: PROCaddconst(start%,length%)
 9180        WHEN 1: PROCeorconst(start%,length%)
 9190        WHEN 2: PROCreverse(start%,length%)
 9200        WHEN 3: PROCecho(start%,length%)
 9210        WHEN 4: PROCflange(start%,length%)
 9220      ENDCASE
 9230    WHEN 6:
 9240      CASE subitem% OF
 9250        WHEN 0: PROCchangespeed(num%)
 9260        WHEN 1: PROCchangevol
 9270        WHEN 2: clipit%=NOTclipit%:PROCmenutick("Clipping",clipit%,menu2$)
 9280        WHEN 3: flags%(num%)=flags%(num%)EOR1:SYS "Wimp_ForceRedraw",mw%,0,0,1279,288
 9290      ENDCASE
 9300  ENDCASE
 9310  IF changed% THEN PROCchanged(num%)
 9320ENDIF
 9330IF stay% PROCmastermenu("DS Edit",menu$,menu2$,mx%,my%,num%)
 9340ENDPROC
 9350:
 9360DEF PROCchanged(num%)
 9370changed%(num%)=TRUE:!b%=mw%
 9380PROCsetupdt(num%)
 9390$(names%+16*(num%-1))=FNleaf(name$(num%))+" *"
 9400PROCretitle(whandle%(num%))
 9410SYS "Wimp_ForceRedraw",mw%,0,0,1279,288
 9420PROCinfotext(num%)
 9430ENDPROC
 9440:
 9450DEF PROCprocesskey
 9460LOCAL key%,num%
 9470num%=FNhandletosnum(!b%)
 9480key%=b%!24
 9490
 9500CASE key% OF
 9510  WHEN 13:
 9520      IF num%>0 THEN
 9530        PROCplay(num%,start%(num%),length%(num%),speed%(num%),volume%)
 9540      ELSE
 9550        PROCsaclick(13,!b%,b%!4)
 9560      ENDIF
 9570
 9580  WHEN 127,8:                      :REM Delete key pressed (delete)
 9590      IF num%>0 THEN
 9600        VDU7
 9610        PROCdelete(sstart%(num%),slen%(num%),num%)
 9620        mw%=whandle%(num%):PROCchanged(num%)
 9630        SYS "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
 9640      ENDIF
 9650
 9660  WHEN 32:                         :REM Space bar (play selection)
 9670      IF num%>0 PROCplay(num%,sstart%(num%),slen%(num%),speed%(num%),volume%)
 9680
 9690  WHEN 414:                        :REM Page down (Amplify 75%)
 9700      IF num%>0 THEN
 9710        VDU7
 9720        PROCamplify(sstart%(num%),slen%(num%),75)
 9730        mw%=whandle%(num%):PROCchanged(num%)
 9740        SYS "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
 9750      ENDIF
 9760
 9770  WHEN 415:                        :REM Page up (Amplify 150%)
 9780      IF num%>0 THEN
 9790        VDU7
 9800        PROCamplify(sstart%(num%),slen%(num%),150)
 9810        mw%=whandle%(num%):PROCchanged(num%)
 9820        SYS "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
 9830      ENDIF
 9840
 9850  WHEN 395:                        :REM Copy (Select all)
 9860      sstart%(num%)=start%(num%)
 9870      slen%(num%)=length%(num%)
 9880      SYS"Wimp_ForceRedraw",whandle%(num%),0,0,1279,288
 9890      PROCinfotext(num%)
 9900
 9910
 9920  OTHERWISE: SYS "Wimp_ProcessKey",key%
 9930ENDCASE
 9940ENDPROC
 9950:
 9960DEF PROCdragfile
 9970  IF savesel% THEN !b%=filewindow2% ELSE !b%=filewindow%
 9980  SYS"Wimp_GetWindowState",,b%
 9990  wex%=b%!4-b%!20:wey%=b%!16-b%!24
10000  b%!4=fileicon%
10010  SYS"Wimp_GetIconState",,b%
10020  IF savesel% THEN !b%=filewindow2% ELSE !b%=filewindow%
10030  b%!4=5
10040  b%!8+=wex%:b%!12+=wey%
10050  b%!16+=wex%:b%!20+=wey%
10060  b%!24=0:b%!28=0
10070  b%!32=&7FFFFFFF:b%!36=&7FFFFFFF
10080  SYS "Wimp_DragBox",,b%
10090ENDPROC
10100:
10110DEF PROCretitle(handle%)
10120!b%=handle%
10130SYS "Wimp_GetWindowState",,b%
10140SYS "Wimp_CloseWindow",,b%
10150SYS "Wimp_OpenWindow",,b%
10160ENDPROC
10170:
10180DEF PROCsaveit(n%,name$,start%,end%)
10190end%+=start%
10200IF INSTR(name$,".") THEN
10210  SYS "OS_File",10,name$,&ED0,,start%,end%
10220  $(names%+16*(n%-1))=FNleaf(name$)
10230  PROCretitle(whandle%(n%))
10240  changed%(n%)=FALSE
10250ELSE
10260  PROCerror("To save, drag the icon to a directory viewer")
10270ENDIF
10280!b%=filewindow%:SYS "Wimp_CloseWindow",,b%
10290!b%=filewindow2%:SYS "Wimp_CloseWindow",,b%
10300SYS "Wimp_CreateMenu",,-1
10310ENDPROC
10320:
10330DEF PROCcreatefilew(RETURN hand%,fname%)
10340IF hand%<>0 THEN
10350  !b%=hand%
10360  SYS "Wimp_DeleteWindow",,b%
10370ENDIF
10380
10390b%!0=0:b%!4=0
10400b%!8=246:b%!12=168
10410b%!16=0:b%!20=0
10420b%!24=-1:b%!28=&93
10430b%!32=&1070207:b%!36=&20D04
10440b%!40=0:b%!44=-1024
10450b%!48=1280:b%!52=0
10460b%!56=&3D:b%!60=0
10470b%!64=1:b%!68=0
10480b%!84=0:$(b%+72)="Save as:"
10490SYS "Wimp_CreateWindow",,b% TO hand%
10500
10510fileok%=FNicon(hand%,192,-160,238,-112,&C701913D,oks%,0,3)
10520filenameicon%=FNicon(hand%,10,-160,186,-112,&700F13D,fname%,valid%,256)
10530fileicon%=FNicon(hand%,56,-92,184,-20,&D7006102,sprite%,1,20)
10540ENDPROC
10550:
10560DEF PROCdialog(num%)
10570LOCAL crap%,A$
10580IF dialog%>0 THEN PROCkilldialog
10590$scratch%="Save to "+FNleaf(name$(num%))+CHR$0
10600dialog%=FNcreatewindow(scratch%,320,320,640,384,0,12,%10010011)
10610
10620FOR i%=0 TO 3
10630  IF i%=0 THEN
10640    crap%=FNspriteicon(dialog%,48,288-i%*48,96,336-i%*48,&3102,sprspace%,"radioon")
10650  ELSE
10660    crap%=FNspriteicon(dialog%,48,288-i%*48,96,336-i%*48,&3102,sprspace%,"radiooff")
10670  ENDIF
10680  dialogb%(i%)=alloc%
10690NEXT
10700
10710crap%=FNtexticon(dialog%,48,48,176,96,&C701913D,"OK")
10720crap%=FNtexticon(dialog%,464,48,592,96,&0701913D,"CANCEL")
10730
10740RESTORE 10840
10750FOR i%=0 TO 3
10760 READ A$
10770  crap%=FNtexticon(dialog%,144,288-i%*48,688,336-i%*48,&C7000111,A$)
10780NEXT
10790
10800VDU7:PROCopenwindow(dialog%)
10810MOUSE RECTANGLE 320,320,640,384
10820ENDPROC
10830:
10840DATA "Insert at selection start","Overwrite from sel. start","Add sounds together","Average sounds together"
10850:
10860DEF PROCkilldialog
10870MOUSE RECTANGLE 0,0,1279,1023
10880!b%=dialog%
10890SYS "Wimp_DeleteWindow",,b%
10900dialog%=0
10910ENDPROC
10920:
10930DEF PROCsadialog(I%,B%,n%)
10940 i%=-1
10950 REPEAT:i%+=1
10960 UNTIL LEFT$($dialogb%(i%),7)="radioon" OR i%=3
10970 IF LEFT$($dialogb%(i%),7)<>"radioon" THEN ENDPROC
10980
10990IF B%=13 OR I%=4 THEN
11000  I%=4
11010  PROCkilldialog
11020  n%=FNhandletosnum(loadwind%)
11030  CASE i% OF
11040    WHEN 0: PROCpaste(n%,insert$,TRUE)
11050    WHEN 1: PROCpaste(n%,insert$,FALSE)
11060    WHEN 2: PROCadd(n%,insert$,TRUE)
11070    WHEN 3: PROCadd(n%,insert$,FALSE)
11080  ENDCASE
11090  changed%(n%)=TRUE
11100  $(names%+16*(n%-1))=FNleaf(name$(n%))+" *"
11110  PROCretitle(loadwind%)
11120  PROCsetupdt(n%):SYS "Wimp_ForceRedraw",loadwind%,0,0,1279,288
11130ELSE
11140 IF i%<>I% THEN
11150  $(dialogb%(i%))="radiooff"
11160  $(dialogb%(I%))="radioon"
11170  SYS "Wimp_ForceRedraw",dialog%,48,288-I%*48,96,336-I%*48
11180  SYS "Wimp_ForceRedraw",dialog%,48,288-i%*48,96,336-i%*48
11190 ENDIF
11200ENDIF
11210PROCinfotext(n%)
11220ENDPROC
11230:
11240DEF FNcreatewindow(titleptr%,X%,Y%,W%,H%,bg%,hg%,F%)
11250$b%=STRING$(92,CHR$0)
11260!b%=X%:b%!4=Y%
11270b%!8=X%+W%:b%!12=Y%+H%
11280b%!16=0:b%!20=0
11290b%!24=-1:b%!28=F%
11300b%?32=7:b%?33=2
11310b%?34=7:b%?35=1
11320b%?36=3:b%?37=1
11330b%?38=12:b%!40=0
11340b%!44=0:b%!48=W%
11350b%!52=H%:b%!56=&13D
11360b%!60=&A000
11370b%!72=titleptr%:b%!76=-1
11380b%!80=LEN$titleptr%
11390SYS "Wimp_CreateWindow",,b% TO H%
11400=H%
11410:
11420DEF PROCopenwindow(!b%)
11430SYS "Wimp_GetWindowState",,b%
11440b%!28=-1
11450SYS "Wimp_OpenWindow",,b%
11460ENDPROC
11470:
11480DEF PROCclosewindow(W%)
11490LOCAL n%
11500
11510SYS "Hourglass_On"
11520n%=FNhandletosnum(W%)
11530
11540IF FNquit(n%) THEN
11550 PROCcompactrma(n%)
11560 PROCrelease(start%(n%))
11570 PROCrelease(dt%(n%))
11580 length%(n%)=0
11590 sstart%(n%)=0:slen%(n%)=0
11600 magstart%(n%)=0:maglen%(n%)=0
11610 changed%(n%)=FALSE:speed%(n%)=&30
11620
11630 !b%=W%
11640 SYS "Wimp_CloseWindow",,b%
11650 SYS "Wimp_DeleteWindow",,b%
11660 whandle%(n%)=0:IF n%=snum% THEN snum%-=1
11670ENDIF
11680SYS "Hourglass_Off"
11690ENDPROC
11700:
11710DEF PROCcompactrma(n%) :REM Moves other sounds down if room is made
11720
11730REM If @@@@****%%%% possible, uses SYS "OS_Module" calls to get
11740REM free spaces in RMA, and compact sounds together to save holes
11750REM appearing in the RMA
11760
11770REM 6 Months later: Ha! As if I can do THAT!
11780ENDPROC
11790:
11800DEF FNquit(num%)
11810LOCAL q%
11820IF NOTchanged%(num%) THEN=TRUE
11830
11840$b%="'"+name$(num%)+"' not saved: Really Quit?"+CHR$0
11850SYS "Wimp_ReportError",b%,3,"DS Edit" TO ,q%
11860IF q%=1 THEN:=TRUE
11870=FALSE
11880:
11890DEF FNtexticon(!b%,b%!4,b%!8,b%!12,b%!16,f%,t$):LOCAL h% :REM @@@@****%%%%
11900b%!20=f%: REM general: %11000111000000010100000000111101
11910REM    ^   ^   ^   ^   ^   ^   ^   ^   ^
11920REM    31  28  24  20  16  12  8   4   0
11930DIM b%!24 LENt$+1
11940b%!28=-1
11950b%!32=LENt$
11960$(b%!24)=t$+CHR$0
11970SYS "Wimp_CreateIcon",,b% TO h%
11980=h%
11990:
12000DEF FNspriteicon(!b%,x1,y1,x2,y2,flags%,sptr%,sname$)
12010DIM b%!24 LENsname$+1:b%!28=sptr%
12020alloc%=b%!24
12030b%!32=LENsname$+1:$b%!24=sname$
12040b%!4=x1:b%!8=y1
12050b%!12=x2:b%!16=y2
12060b%!20=flags%
12070SYS "Wimp_CreateIcon",,b% TO h%
12080=h%
12090:
12100DEF FNicon(!b%,x1,y1,x2,y2,flags%,i1,i2,i3)
12110LOCAL h%
12120b%!4=x1:b%!8=y1
12130b%!12=x2:b%!16=y2
12140b%!20=flags%
12150b%!24=i1:b%!28=i2
12160b%!32=i3
12170SYS "Wimp_CreateIcon",,b% TO h%
12180=h%
12190:
12200DEF PROCmastermenu(title$,m$,m2$,X%,Y%,n%)
12210LOCAL base%,wbase%,wmptr%
12220IF n%>0 THEN
12230  base%=menu%:wbase%=menu%+1792:wmptr%=wmenu%
12240  $filename%=name$(n%)
12250  $filename2%="Selection"
12260  PROCmenutick("Lines",flags%(n%)AND1,m2$)
12270  PROCcreatemenu(menu%,title$,m$,m2$)
12280  $wmenu%=STRING$(128,CHR$0):$wmenu%=lastval1$
12290  $(wmenu%+16)=lastval5$:$(wmenu%+32)=lastval2$
12300  $(wmenu%+48)=lastval3$:$(wmenu%+64)=lastval4$
12310  $(wmenu%+80)=lastval4$
12320  $(wmenu%+96)=RIGHT$("000"+STR$(speed%(n%)),3)
12330  $(wmenu%+112)=RIGHT$("000"+STR$volume%,2)
12340ELSE
12350  PROCcreatemenu(menu%,title$,m$,m2$)
12360ENDIF
12370SYS "Wimp_CreateMenu",,menu%,X%-menu%!16/2,Y%
12380ENDPROC
12390:
12400DEF PROCcreatemenu(M%,title$,m$,m2$)
12410LOCAL I%,max%,doneboth%
12420
12430doneboth%=FALSE
12440$M%=title$:M%!12=&70207
12450M%!20=44:M%!24=0
12460I%=M%+28:max%=LEN(title$)-2
12470
12480REPEAT
12490 REPEAT
12500  A%=INSTR(m$,",")
12510  I%!4=FNsubmenu(base%,m$):IF A%>max% max%=A%
12520  I%!8=&7000021
12530  $(I%+12)=LEFT$(m$,A%-2)
12540  special%=ASC(MID$(m$,A%-1,1))-65
12550    REM Folowing line used to shade permanently unavailable items
12560  IF special%=21 THEN I%!8=(I%!8)OR&400000
12570
12580  IF special%=22 THEN I%!4=FNwriteable(LEFT$(m$,A%-2),5)
12590  IF special%=23 THEN I%!4=FNwriteable(LEFT$(m$,A%-2),3)
12600  IF special%=24 THEN I%!4=filewindow%
12610  IF special%=25 THEN I%!4=filewindow2%
12620  IF special%<0 OR special%>7 THEN special%=0
12630  I%!0=(special% AND 3)
12640  m$=MID$(m$,A%+1)
12650  I%+=24
12660 UNTIL m$=""
12670 IFm2$="" THEN doneboth%=TRUE
12680 m$=m2$:m2$=""
12690UNTIL doneboth%
12700
12710I%!-24=(I%!-24) OR &80:M%!16=max%*16
12720ENDPROC
12730:
12740DEF FNwriteable(t$,width%)
12750$wbase%=t$:wbase%!12=&70207
12760wbase%!16=132:wbase%!20=48
12770wbase%!24=0:wbase%+=28
12780wbase%!0=&84:wbase%!4=-1
12790wbase%!8=&7000121:wbase%!12=wmptr%
12800wbase%!16=-1
12810wbase%!20=width%
12820wbase%+=36:wmptr%+=16
12830=wbase%-64
12840:
12850DEF FNsubmenu(RETURN base%,RETURN m$)
12860LOCAL a%,t$,new$
12870IF LEFT$(m$,1)<>">" THEN=-1
12880
12890m$=RIGHT$(m$,LENm$-1)
12900a%=INSTR(m$,"<")
12910new$=LEFT$(m$,a%-1)
12920
12930A%=INSTR(m$,",")
12940PROCcreatemenu(base%+256,LEFT$(m$,A%-1),MID$(new$,INSTR(new$,",")+1),"")
12950
12960m$=LEFT$(new$,INSTR(new$,",")-1)+MID$(m$,a%+1)
12970A%=INSTR(m$,",")
12980base%+=256
12990=base%
13000:
13010DEF PROCmenutick(A$,state%,RETURN menu$)
13020LOCAL p%
13030IF state% THEN state%=ASC"B" ELSE state%=ASC"b"
13040p%=INSTR(menu$,A$):p%=INSTR(menu$,",",p%)-1
13050MID$(menu$,p%,1)=CHR$(state%)
13060ENDPROC
13070:
13080DEF FNmenuval(addr%,RETURN lastval$,min%,max%,digits%)
13090LOCAL A$:A$="":addr%+=wmenu%
13100FOR Z%=0 TO digits%
13110  IF addr%?Z%>=ASC"0" AND addr%?Z%<=ASC"9" A$+=CHR$addr%?Z%
13120NEXT
13130IF VAL(A$)>=min% AND VAL(A$)<=max% THEN lastval$=RIGHT$("000"+A$,digits%) ELSE VDU7
13140=VAL(A$)
13150:
13160DEF PROCreceive
13170CASE b%!16 OF
13180 WHEN 0 : quit%=TRUE
13190 WHEN 2 : PROCrecsave
13200 WHEN 3 : PROCrecload
13210 WHEN 5 : PROCrecopen
13220ENDCASE
13230ENDPROC
13240:
13250DEF PROCrecsave
13260LOCAL n%,s%,l%
13270n%=FNhandletosnum(savewind%)
13280name$(n%)=FNzerostring(b%+44)
13290IF savesel% THEN
13300 s%=sstart%(n%):l%=slen%(n%)
13310ELSE
13320 s%=start%(n%):l%=length%(n%)
13330ENDIF
13340
13350PROCsaveit(n%,name$(n%),s%,l%)
13360b%!12=b%!8:b%!16=3:!b%=64
13370SYS "Wimp_SendMessage",17,b%,b%!20,b%!24
13380ENDPROC
13390:
13400DEF PROCrecload
13410LOCAL pn$,wh%
13420IF b%!12<>0 THEN ENDPROC :REM Not from filer @@@@****%%%%
13430wh%=b%!20
13440pn$=FNzerostring(b%+44)
13450IF wh%=-2 THEN
13460  PROCsaveblock
13470  IF FNload(pn$) THEN
13480    PROCrestoreblock
13490    PROCsendloadack
13500  ENDIF
13510ELSE
13520  loadwind%=b%!20
13530  insert$=FNzerostring(b%+44)
13540  PROCdialog(FNhandletosnum(wh%))
13550ENDIF
13560ENDPROC
13570:
13580DEF PROCrecopen
13590LOCAL pn$,wh%,Z%
13600pn$=FNzerostring(b%+44)
13610
13620IF b%!40=&ED0 THEN
13630  PROCsaveblock
13640  IF FNload(pn$) THEN
13650    PROCrestoreblock
13660    PROCsendloadack
13670  ENDIF
13680ENDIF
13690
13700IF b%!40=&ED1 THEN
13710  REM **** Compressed DSEdit raw-sound
13720ENDIF
13730
13740IF b%!40=&DF9 THEN
13750  PROCsaveblock                    :REM **** Load SoundSynth samples
13760                                   :REM Note this doesn't remove header
13770  IF FNload(pn$) THEN
13780    PROCrestoreblock
13790    PROCsendloadack
13800
13810    SYS "Hourglass_On"             :REM Eor by 128
13820    FOR Z%=0 TO 255
13830      mtable%?Z%=(Z% EOR 128)
13840    NEXT
13850    PROCtablemod(start%(lastloaded%),length%(lastloaded%))
13860    PROCsetupdt(lastloaded%)
13870    SYS "Hourglass_Off"
13880  ENDIF
13890ENDIF
13900ENDPROC
13910:
13920DEF PROCsaveblock
13930FOR Z%=0 TO 240 STEP 4
13940  scratch%!Z%=b%!Z%
13950NEXT
13960ENDPROC
13970:
13980DEF PROCrestoreblock
13990FOR Z%=0 TO 240 STEP 4
14000  b%!Z%=scratch%!Z%
14010NEXT
14020ENDPROC
14030:
14040DEF PROCsendsave
14050LOCAL p%
14060SYS "Wimp_GetPointerInfo",,b%
14070b%!20=64:b%!32=0:b%!36=1:b%!40=b%!12
14080b%!44=b%!16:b%!48=!b%:b%!52=b%!4
14090
14100IF savesel% THEN
14110  b%!56=slen%(FNhandletosnum(savewind%))
14120  p%=filename2%
14130ELSE
14140  b%!56=length%(FNhandletosnum(savewind%))
14150  p%=filename%
14160ENDIF
14170
14180b%!60=&ED0
14190$(b%+64)=FNleaf($p%)
14200SYS "Wimp_SendMessage",17,b%+20,b%!12,b%!16
14210ENDPROC
14220:
14230DEF PROCsendloadack
14240b%!16=4
14250b%!12=b%!8
14260SYS "Wimp_SendMessage",17,b%,b%!4
14270ENDPROC
14280:
14290DEF FNzerostring(addr%)
14300LOCAL A$
14310WHILE ?addr%>31 AND ?addr%<127
14320  A$+=CHR$(?addr%):addr%+=1
14330ENDWHILE
14340=A$
14350:
14360DEF PROCwimpinit
14370DIM b% 255,menu% 2304,wmenu% 255,oldb% 100
14380DIM scratch% 255,saveblock% 241
14390
14400quit%=FALSE
14410$b%="TASK"
14420SYS "Wimp_Initialise",200,!b%,"DS Edit" TO ,taskhandle%
14430
14440DIM oks% 2,filename% 255,filename2% 255,valid% 3,sprite% 20
14450$oks%="OK":$valid%="a~ ":$sprite%="file_ed0"
14460$filename%="RawSound"
14470$filename2%="Selection"
14480
14490DIM sprite2% 20:$sprite2%="!dsicon"
14500DIM names% 256
14510FOR Z%=0 TO 15:$(names%+Z%*16)="<Untitled>"
14520appicon%=FNicon(-1,0,0,68,68,&3102,sprite2%,1,20)
14530ENDPROC
14540:
14550DEF PROCerror(e$)
14560$b%="    "+e$
14570b%?(LEN($b%)+4)=0
14580SYS "Wimp_ReportError",b%,1,"DS Edit"
14590ENDPROC
14600:
14610DEF PROCerrorend
14620FOR Z%=1 TO snum%
14630  PROCrelease(start%(Z%))
14640  PROCrelease(dt%(Z%))
14650NEXT
14660SYS"Wimp_CloseDown"
14670END
#� > $.!DSEdit.!RunImage V0.96 <
'� RISCOS Raw Digitised Sound Editor
(� � Copyright '89,'90 Jason Williams
(*� This program is in the public domain
2
<F� Search for @@@@ **** and %%%% for all the bugs and missing code!
F
P� �error(�$):�errorend
Z
dș "OS_GetEnv" � c$
np%=�c$,"""",�c$,"""")+1)
xc$=�c$,p%+1)
�ȕ�c$,1)=" ":c$=�c$,2):�
�
�version=0.96
�
�wimpinit
�roundsize%=16*1024
�
�	�init
��initdriver
�
�assemble
�
�snum%=0
�wstartoff%=0
�
$� c$<>"" � crap%=�load(c$):c$=""

�
"$ � dragging% � mask%=0 � mask%=1
,* ș "Wimp_Poll",mask%,b% � returncode%
6 Ȏ returncode% �
@  � 0 :     �drag
J  � 1 :     �redraw(b%)
T(  � 2 :     ș "Wimp_OpenWindow",,b%
^!  � 3 :     �closewindow(!b%)
h.  � 6 :     �buttonclick(b%!8,b%!12,b%!16)
r  � 7 :     �finishdrag
|  � 8 :     �processkey
�%  � 9 :     �menuselect(!b%,b%!4)
�  � 17,18 : �receive
� �
�� quit%
�� snum%>0 �
�  � Z%=1 � snum%
�5    � whandle%(Z%)>0 � �closewindow(whandle%(Z%))
�  �
��
��release(driver%)
�ș "Wimp_CloseDown"
��
�:
� �load(name$)

� num%
� snum%<1 �
&  snum%+=1:num%=snum%
0�
:  num%=0
D
  Z%=0
N
  �:Z%+=1
X"    � whandle%(Z%)<1 � num%=Z%
b  � num%>0 � Z%>=16
l  � num%>snum% � snum%=num%
vG  � num%=0 � �error("Only 16 sounds can be edited at once"):num%=-1
��
�
�� num%<1 �=�
�
�&$(names%+16*(num%-1))=�leaf(name$)
�iwhandle%(num%)=�createwindow(names%+16*(num%-1),96-wstartoff%,512+wstartoff%,1056,368,0,13,&87001003)
��addicons(num%)
�3wstartoff%-=48:� wstartoff%<-160 � wstartoff%=0
��openwindow(whandle%(num%))
�name$(num%)=name$
�
�1�loadfile(start%,length%,rmalen%(num%),name$)
�� start%<1 � =�
-start%(num%)=start%:length%(num%)=length%
,sstart%(num%)=start%:slen%(num%)=length%
0magstart%(num%)=start%:maglen%(num%)=length%
 %changed%(num%)=�:speed%(num%)=&30
*$flags%(num%)=1:zoomlev%(num%)=19
4�setupdt(num%)
>$�infotext(num%):lastloaded%=num%
H=�
R:
\� �infotext(n%):� M%
f2M%=slen%(n%):� M%>length%(n%) � M%=length%(n%)
p� M%<1 M%=1
zH$(infoicons%+(n%*40))="Selection: "+�M%+" of "+�length%(n%)+" bytes"
�7!b%=whandle%(n%):b%!4=infoicon1%(n%):b%!8=0:b%!12=0
�ș "Wimp_SetIconState",,b%
��
�:
�� �addicons(n%)
�� h%
�Fh%=�icon(whandle%(n%),0,wbott%,1056,wbott%+wheight%+4,&6080,0,0,0)
�Eh%=�spriteicon(whandle%(n%),20,292,88,360,&3102,sprspace%,"left")
�Bh%=�spriteicon(whandle%(n%),108,292,168,360,&3102,1,"!dsicon")
�
�F h%=�spriteicon(whandle%(n%),196,292,256,360,&3102,sprspace%,"19")
� zoominame%(n%)=alloc%
�
L � NOTE!!!! -If icon position changes, you must change ForceRedraw of it

Hh%=�spriteicon(whandle%(n%),284,292,344,360,&3102,sprspace%,"right")
$
.!b%=whandle%(n%)
8:b%!4=376:b%!8=324:b%!12=1048:b%!16=364:b%!20=&07002119
B.b%!24=infoicons%+(40*n%):b%!28=-1:b%!32=20
L-ș "Wimp_CreateIcon",,b% � infoicon1%(n%)
V`spdicon%(n%)=�spriteicon(whandle%(n%),376,wbott%+wheight%+12,1048,324,&2102,sprspace%,"kbd")
`�
j:
t� �leaf(a$)
~� p%
�
p%=�a$
�"ȕ�a$,p%,1)=" " � p%>0:p%-=1:�
�a$=�a$,p%)
�#ȕ�a$,p%,1)<>"." � p%>0:p%-=1:�
�=�a$,p%+1)
�:
�� �init
�� colms%,rows%,cols%
�driver%=�claim(2048)
�� driver%=0 � �
�
�� mtable% 256
&� start%(16),length%(16),name$(16)

&� speed%(16),sstart%(16),slen%(16)
� magstart%(16),maglen%(16)
� whandle%(16),rmalen%(16)
(� flags%(16),changed%(16)
2)� dt%(16),infoicon1%(16),spdicon%(16)
<!� zoomlev%(16),zoominame%(16)
F� infoicons% 650
P
Z)� F%=infoicons% � infoicons%+640 � 40
d  $F%=�42,�0)
n�
x
�� sprspace% 12*1024
�$!sprspace%=12*1024:sprspace%!4=0
�"sprspace%!8=16:sprspace%!12=16
�:ș "OS_SpriteOp",&10A,sprspace%,"<DSEdit$Dir>.Sprites"
�
�start%()=0:length%()=0:
�&� F%=0 � 16:name$(F%)="RawSound":�
�&speed%()=&30:sstart%()=0:slen%()=0
�7magstart%()=0:maglen%()=0:whandle%()=0:changed%()=�
�zoomlev%()=19:flags%()=1
�
�volume%=15
�
clipit%=�

savesel%=�
savewind%=0
"�getsteps(xstep%,ystep%)
,
6changed%=�
@'�createfilew(filewindow%,filename%)
J)�createfilew(filewindow2%,filename2%)
T
^
hH� ****%%%% The items below followed by "V" are shaded due to lack of
rK� implementation, or rather, lack of input routines to pass the correct
|0� info to the procedures to do these things.
�
��menu$="Play sound ,SaveY,Select all ,>Selection ,SaveZ,Play ,Delete ,<,>Edit ,Ramp up ,Ramp down ,AmplifyW,Move centreV,Limit upV,Limit downV,SqueezeV,Make silenceW,<,"
��menu2$=">Special FX ,Add constW,Eor constW,Reverse ,EchoW,Flange EchoW,<,>Options ,Set speedW,Set volumeX,ClippingB,LinesB,<,"
�
�3lastval1$="200":lastval2$="128":lastval3$="128"
�%lastval4$="1024":lastval5$="4096"
�� dialogb%(3)
�
dialog%=0
�Ainsert$="":dragging%=�:dragn%=0:dragsx%=0:olddrag%=0:dragy%=0
�lastloaded%=0
��
�:
�"� �getsteps(� xstep%,� ystep%)
xmax%=1280:ymax%=1024
mode%=�
wleft%=16:wbott%=16
&wwidth%=1024:wheight%=256
0Ȏ mode% �
:9  � 0,8,11,12,14,15,18,19,20,21,25,26,27,28: xstep%=2
D  � 1,4,9,13: xstep%=4
N  � 2,5,10: xstep%=8
X(  � 16,17,24: xstep%=2 :xmax%=1056*2
b   � 23: xstep%=1 :xmax%=1152
l�
v$� mode%<18 � ystep%=4 � ystep%=2
�� mode%>21 � ystep%=1
��
�:
�� �assemble
�� code% 20*1024
�(�("LOAD <DSEdit$Dir>.Code "+�~code%)
�
�tfer      =(code%!0)+code%
�bfer      =(code%!4)+code%
�tablemod  =(code%!8)+code%
�addblocks =(code%!12)+code%
�addclip   =(code%!16)+code%
�avgblocks =(code%!20)+code%
avgclip   =(code%!24)+code%
�
:
 &� �startdrag(n%):� x%,xl%,xw%,conv
*dragging%=�
4;dragn%=n%              :� Number of sound being dragged
>=dragsx%=b%!0           :� Start-x (screen coords) of drag
H=olddrag%=&42424242     :� Old end-x ( "     "   ) of drag
R
\b%!0=whandle%(n%)
f ș "Wimp_GetWindowState",,b%
px%=b%!4-b%!20+wleft%
z� dragsx%<x% � dragsx%=x%
�-� dragsx%>x%+wwidth% � dragsx%=x%+wwidth%
�dragy%=b%!16-b%!24+wbott%
�
�"� Invert out the old inversion
� conv=wwidth%/maglen%(n%)
�, xl%=(sstart%(n%)-magstart%(n%))*conv+x%
� � xl%<x% � xl%=x%
�5 xw%=slen%(n%)*conv:� xw%>1023 � xw%<0 � xw%=1023
�* � xl%+xw%-x%>1023 � xw%=1023-(xl%-x%)
� �draginv(xl%,xw%)
�
�"� Now start Wimp_DragBox drag:
�
	!b%=whandle%(n%)
	6b%!4=7     :� Wimp doesn't draw the dragbox for me
	"b%!8=0:b%!12=0:b%!16=0:b%!20=0
	$Kb%!24=x%   :� Mouse bounds rectangle - keep pointer within sound_window
	.b%!28=dragy%
	8b%!32=x%+wwidth%
	Bb%!36=dragy%+wheight%
	Lș "Wimp_DragBox",,b%
	V�
	`:
	j� �finishdrag
	t� �dragging% � �sendsave:�
	~dragging%=�
	�
	�b%!0=whandle%(dragn%)
	� ș "Wimp_GetWindowState",,b%
	�x%=b%!4-b%!20+wleft%
	�
	�� olddrag%=&42424242 �
	�  olddrag%=dragsx%
	��
	�,� olddrag%<dragsx% � Ȕ dragsx%,olddrag%
	�!olddrag%-=dragsx%:dragsx%-=x%
	�� dragsx%<0 dragsx%=0
	�!� dragsx%>1056 � dragsx%=1056
� olddrag%<0 � olddrag%=0

3� dragsx%+olddrag%>1056 � olddrag%=1056-dragsx%

Gsstart%(dragn%)=magstart%(dragn%)+maglen%(dragn%)*(dragsx%/wwidth%)
(4slen%(dragn%)=maglen%(dragn%)*(olddrag%/wwidth%)
2�chkmag(dragn%)
<�infotext(dragn%)
F6ș"Wimp_ForceRedraw",whandle%(dragn%),0,0,1279,288
P�
Z:
d� �drag:� x%,y%,but%,step%
n� �dragging% � �
xș "OS_Mouse" � x%,y%,but%
�
�J� olddrag%=&42424242 � �3,7:olddrag%=x%:�draginv(dragsx%,x%-dragsx%):�
�#� x%�xstep%=olddrag%�xstep% � �
�
�;        � For non-flicker-but-not-quite-right invert...
�step%=xstep%
�Q� (olddrag%<dragsx% � x%>dragsx%) � (olddrag%>dragsx% � x%<dragsx%) � step%=0
�
�� x%>dragsx% �
�  � olddrag%>x% �
�.    �draginv(x%+step%,olddrag%-(x%+step%))
�  �
�4    �draginv(olddrag%+step%,x%-(olddrag%+step%))
  �
�
  � olddrag%>x% �
"(    �draginv(x%,(olddrag%-step%)-x%)
,  �
6.    �draginv(olddrag%,x%-(olddrag%+step%))
@  �
J�
Tolddrag%=x%
^�
h:
r'� �draginv(x1%,x2%):� more%,x0%,y0%
|!� x2%<0 � x2%=�(x2%):x1%-=x2%
�
�!b%=whandle%(dragn%)
�ș"Wimp_GetWindowState",,b%
�x0%=b%!4-b%!20
�
�b%!4=(x1%-xstep%)-x0%
�b%!8=wbott%
�b%!12=(x1%+x2%+xstep%)-x0%
� b%!16=wbott%+wheight%+ystep%
�
�&ș "Wimp_UpdateWindow",,b% � more%
��3,7
�ȕ more%
  y0%=b%!16-b%!24
,  � 3,7:ȓȐ x1%,y0%+wbott%,x2%,wheight%
(  ș "Wimp_GetRectangle",,b% � more%
&�
0�
::
D&� �invert(n%,x%,y%):� xl%,xw%,conv
N0� dragging% � �  :� NO INVERSION if dragging
X#� maglen%(n%)<1 � maglen%(n%)=1
bconv=wwidth%/maglen%(n%)
l+xl%=(sstart%(n%)-magstart%(n%))*conv+x%
v� xl%<x% � xl%=x%
�4xw%=slen%(n%)*conv:� xw%>1023 � xw%<0 � xw%=1023
�)� xl%+xw%-x%>1023 � xw%=1023-(xl%-x%)
�
��3,7
�ȓȐ xl%,y%,xw%,wheight%
��
�:
�� �redraw(b%)
�� more%,num%,x0%,y0%
�num%=�handletosnum(!b%)
�&ș "Wimp_RedrawWindow",,b% � more%
�
�ȕ more%

  x0%=b%!4-b%!20

  y0%=b%!16-b%!24

  �draw(num%,x0%,y0%)

 (  ș "Wimp_GetRectangle",,b% � more%

*�

4�

>:

H� �handletosnum(handle%)

R
� num%,Z%

\Z%=0:num%=0

f�:Z%+=1

p&  � whandle%(Z%)=handle% � num%=Z%

z� num%>0 � Z%>=snum%

�	=num%

�:

�� �setupdt(num%)

��release(dt%(num%))

�dt%(num%)=�claim(1024)

�6� dt%(num%)=0 � � 42,"Fatal error: No room in RMA"

�� Z%=0 � 1023

�?  dt%(num%)?Z%=magstart%(num%)?((Z%/wwidth%)*maglen%(num%))

��

��

�:

�� �draw(num%,x0%,y0%)

�� x%,y%,w%
!left%=b%!28-x0%-wleft%-xstep%
right%=b%!36-x0%-wleft%
� left%<0 left%=0
$.� �(right%-left%)>1023 � right%=left%+1023
.� right%>1023 �right%=1023
8w%=�(right%-left%)
B� w%<=0 � �
L
Vy%=y0%+wbott%
`x%=x0%+wleft%
j
tline%=(flags%(num%) � 1)
~
�'�col(0):ȓȐ x%,y%,wwidth%,wheight%
�8�col(15):� x%,y%+wheight%�2,x%+wwidth%,y%+wheight%�2
�/�col(7):ȓ x%-8,y%-8,wwidth%+16,wheight%+16
�
�
��col(5)
�� left%<xstep% �
�  � x%,y%+wheight%�2
��
�(  � x%,y%+(dt%(num%)?(left%-xstep%))
��
�
�line% �drawline � �drawdot

�invert(num%,x%,y%)
�
:
(� �drawline
2 � X%=left% � right% � xstep%
<  � X%+x%,dt%(num%)?X%+y%
F�
P�
Z:
d� �drawdot
n � X%=left% � right% � xstep%
x;  Ȓ X%+x%,dt%(num%)?X%+y%:Ȓ X%+x%,y%+dt%(num%)?(X%+1)
��
��
�:
�� �col(c%)
�ș "Wimp_SetColour",c%
��
�:
�.� �loadfile(� start%,� length%,� l%,name$)
�� ch%,l%
�
�,ch%=�(name$):� ch%=0 � �#ch%:start%=-1:�
�length%=�#ch%
�	�#ch%
*l%=((length%�roundsize%)+1)*roundsize%
start%=�claim(l%)
� start%<1 � �
"
,!�("LOAD "+name$+" "+�~start%)
6�
@:
J� �initdriver
T-�("*LO. <DSEdit$Dir>.Speaker "+�~driver%)
^� driver%+&F4
h�
r:
|-� �play(n%,start%,length%,speed%,volume%)
�
�driver%!0=start%
�driver%!4=start%+length%
�driver%?&1C=speed%
�� driver%+&F4
�
�Ƞ 2
�*VOLUME 127
�
*CHA. 2 8
�� 2,-volume%,255,255
�	*FX21
��
�:
M=========================================================================
:
?� �transfer(A%,C%,B%) :� Transfer block (A% to A%+C%) to B%
&
� tfer
0�
::
D� �delete(s%,l%,n%)
Nș "Hourglass_On"
X6�transfer(s%+l%,start%(n%)+length%(n%)-(s%+l%),s%)
blength%(n%)-=l%
lmaglen%(n%)-=l%
v�chkmag(n%)
�slen%(n%)=1
�changed%=�
�ș "Hourglass_Off"
��
�:
�� �chkmag(n%)
�5� sstart%(n%)<start%(n%) � sstart%(n%)=start%(n%)
�9� magstart%(n%)<start%(n%) � magstart%(n%)=start%(n%)
�!� length%(n%)<1 length%(n%)=1
�� slen%(n%)<1 slen%(n%)=1
�@� (maglen%(n%)<1) � (magstart%(n%)>start%(n%)+length%(n%)) �
�6  magstart%(n%)=start%(n%):maglen%(n%)=length%(n%)
��
9� magstart%(n%)<start%(n%) � magstart%(n%)=start%(n%)
8� magstart%(n%)+maglen%(n%)>start%(n%)+length%(n%) �
6  maglen%(n%)=start%(n%)+length%(n%)-magstart%(n%)
 �
*�
4:
>� �paste(n%,fname$,insert%)
H9� c%,istart%,ilen%,pstart%,plen%,newstart%,plenround%
Rilen%=0
\7c%=�(fname$):� c%<>0 � ilen%=�#c%  :� Insert length
f�#c%
p� c%=0 � ilen%<1 � �
zș "Hourglass_On"
��claimmore(n%,ilen%)
�� newstart%<1 � �TnS
�
�-istart%=�claim(ilen%):� istart%<1 � �TnS
�
�#�("LOAD "+fname$+" "+�~istart%)
�� insert% �
� A%=sstart%(n%)+ilen%
� B%=pstart%+plen%+ilen%
� C%=pstart%+plen%
� � bfer
��
�(�transfer(istart%,ilen%,sstart%(n%))
"� insert% � length%(n%)+=ilen%
0sstart%(n%)=start%(n%):slen%(n%)=length%(n%)
4magstart%(n%)=start%(n%):maglen%(n%)=length%(n%)
$�release(istart%)
.ș "Hourglass_Off"
8�
B:
L� �add(n%,fname$,add%)
V� c%,clipboard%,l%
`
j"c%=�(fname$):� c%<>0 � l%=�#c%
t�#c%
~� c%=0 � �
�ș "Hourglass_On"
�clipboard%=�claim(l%+16)
�)� clipboard%<1 � ș "Hourglass_Off":�
�&�("LOAD "+fname$+" "+�~clipboard%)
�A%=clipboard%
�B%=sstart%(n%)
�� l%<slen%(n%) �
�  C%=l%
��
�  C%=slen%(n%)
��
�� add% �
)  � clipit% � � addclip � � addblocks

�
)  � clipit% � � avgclip � � avgblocks
�
(�release(clipboard%)
2ș "Hourglass_Off"
<�
F:
P>� �makesilence(n%):� pstart%,plen%,plenround%,newstart%,l%
Zș "Hourglass_On"
d'l%=�menuval(16,lastval5$,1,10000,4)
n�claimmore(n%,l%)
x'� newstart%<1 � ș"Hourglass_Off":�
�
�H�transfer(sstart%(n%),plen%-(sstart%(n%)-start%(n%)),sstart%(n%)+l%)
�
�� Z%=0 � 255
� mtable%?Z%=128
��
��tablemod(sstart%(n%),l%)
�
�length%(n%)+=l%
�3magstart%(n%)=newstart%:maglen%(n%)=length%(n%)
��chkmag(n%)
�changed%=�
�ș "Hourglass_Off"
�
:
� �rampup(s%,l%)
" ș "Hourglass_On"
, � Z%=0 � l%
6   B%=s%?Z%
@   B%=(B%-128)*�(Z%/l%)
J   B%+=128
T   s%?Z%=B%
^ �
h changed%=�
r ș "Hourglass_Off"
|�
�:
�� �rampdown(s%,l%)
� ș "Hourglass_On"
� � Z%=0 � l%
�   B%=s%?Z%
�    B%=(B%-128)*�((l%-Z%)/l%)
�   B%+=128
�   s%?Z%=B%
� �
� changed%=�
� ș "Hourglass_Off"
��
�:
� �movecentre(s%,l%)
 changed%=�
�
&:
0� �limits(s%,l%)
: changed%=�
D�
N:
X� �reverse(s%,l%):� e%
b ș "Hourglass_On"
l e%=2*s%+l%
v � Z%=s% � s%+(l%>>1)
�   Ȕ ?Z%,e%?-Z%
� �
� changed%=�
� ș "Hourglass_Off"
��
�:
�� �amplify(s%,l%,pc%):� amp
�1 � pc%=-1 � pc%=�menuval(0,lastval1$,1,999,3)
�$ � pc%=100 � pc%<1 � pc%>999 � �
� ș "Hourglass_On"
�
� amp=pc%/100
� � Z%=0 � 255
   B%=((Z%-128)*amp)+128
   �clipit
   mtable%?Z%=B%
  �
* �tablemod(s%,l%)
4 changed%=�
>
H ș "Hourglass_Off"
R�
\:
f� �addconst(s%,l%):� n%
p& n%=�menuval(32,lastval2$,1,255,3)
z" � n%<1 � n%>255 � n%=n% � 256
� ș "Hourglass_On"
�
� � Z%=0 � 255
�   B%=Z%+n%:�clipit
�   mtable%?Z%=B%
� �
� �tablemod(s%,l%)
� changed%=�
�
� ș "Hourglass_Off"
��
�:
�� �eorconst(s%,l%)
& n%=�menuval(48,lastval3$,1,255,3)
  � n%<1 � n%>255 � n%=n%�&FF
 ș "Hourglass_On"
$
. � Z%=0 � 255
8   mtable%?Z%=Z%�n%
B �
L �tablemod(s%,l%)
V changed%=�
`
j ș "Hourglass_Off"
t�
~:
�/� �flange(s%,l%):� echolength%,echostrength
�/echolength%=�menuval(80,lastval4$,1,9999,4)
�echostrength=.7
�
�ș "Hourglass_On"
�� Z%=s% � s%+l%-echolength%
� T%=(?Z%-128)*echostrength
� B%=(Z%?echolength%)+T%
� �clipit:Z%?echolength%=B%
��
�changed%=�
�ș "Hourglass_Off"
�

:
-� �echo(s%,l%):� echolength%,echostrength
/echolength%=�menuval(64,lastval4$,1,9999,4)
(echostrength=.7
2
<ș "Hourglass_On"
F#� Z%=s%+l% � s%+echolength% �-1
P, T%=((Z%?-echolength%)-128)*echostrength
Z B%=(?Z%)+T%:�clipit
d ?Z%=B%
n�
xchanged%=�
�ș "Hourglass_Off"
��
�:
�� �tablemod(A%,B%)
� B%+=A%
� C%=mtable%
� � tablemod
��
�:
�� �changespeed(num%):� A$
�n%=�menuval(96,A$,1,255,3)
�speed%(num%)=n% � &FF
��
:
� �changevol:� A$
n%=�menuval(112,A$,1,15,2)
"volume%=n%�16
,�
6:
@� �zoom(n%,but%)
J� z%:z%=zoomlev%(n%)
T� but%=1 � z%+=1 � z%-=1
^� z%<8 � z%=19
h� z%>19 � z%=8
r
|
� z%=19 �
�(  start%=start%(n%):len%=length%(n%)
��
�  � 2^z%>length%(n%) �
�    � but%=4 �
�%      �:z%-=1:� 2^z%<=length%(n%)
�      � z%<8 � z%=19
�,      len%=length%(n%):start%=start%(n%)
�	    �
�     z%=19
�	    �
�4    � z%=19 � start%=start%(n%):len%=length%(n%)
�  �
�    len%=2^z%
3    start%=(magstart%(n%)+maglen%(n%)�2)-len%�2
  �
�
&
0"$zoominame%(n%)=�"00"+�(z%),2)
:
Dzoomlev%(n%)=z%
Nmagstart%(n%)=start%
Xmaglen%(n%)=len%
b�setupdt(n%)
l
v3ș "Wimp_ForceRedraw",whandle%(n%),0,0,1280,288
�6ș "Wimp_ForceRedraw",whandle%(n%),196,292,256,360
��
�:
�� �scroll(n%,d%)
�� zoomlev%(n%)=19 � �
�+magstart%(n%)+=d%*((2^zoomlev%(n%))� 4)
��chkmag(n%)
��setupdt(n%)
�3ș "Wimp_ForceRedraw",whandle%(n%),0,0,1280,288
��
�:
�"� �scale(s%,l%,n%):� n,newlen%
�2 n=�inputval("scale factor (0.00-99.99)",0,99)
 � n=1.00 � �

 ș "Hourglass_On"
  newlen%=n*l%
*
4 � n>1.00 �
><   �transfer(s%+l%,start%(n%)+length%(n%)-s%,s%+newlen%)
H   � Z%=newlen% � 0 �-1
R     s%?Z%=s%?(Z%/n)
\   �
f �
p   � Z%=0 � newlen%
z     s%?Z%=s%?(Z%/n)
�   �
�   A%=s%+newlen%
�-   B%=start%(n%)+length%(n%)-(newlen%-l%)
�    C%=start%(n%)+length%(n%)
�
   � bfer
�
� �
�
�   l%=((n*l%)-l%)
�   length%(n%)+=l%
�   slen%(n%)+=l%
�"   maglen%(n%)+=l%:�chkmag(n%)
�
 changed%=�
 ș "Hourglass_Off"
�
$:
.$� �clipit:� �clipit% B%=B%�256:�
8� B%>255 � B%=255:�
B� B%<0 � B%=0
L�
V:
`L========================================================================
j:
t� �claim(size%)
~� �
�� � � �errorend(�$)
�
�F� Do OS_Module call to find biggest block - If too small, complain
�1� - This may bugger up auto-allocation to RMA
�K� - This may be a good thing: the user must explicitly give us the mem.
�
�,ș "OS_Module",6,,,size% � ,,ptr%;flags%
�>� ptr%<1 � flags%<>6 � �error("Not enough room in RMA"):=0
�	=ptr%
�:
�<� �claimmore(n%,l%) :� Get l% free bytes at end of sound
�(pstart%=start%(n%):plen%=length%(n%)
rmalen%=rmalen%(n%)

� (rmalen%-plen%)<l% �
  �release(start%(n%))
2  newlen%=((plen%+l%)�roundsize%+1)*roundsize%
(  newstart%=�claim(newlen%)
2  � newstart%>0 �
<    � newstart%<pstart% �
F      A%=newstart%
P      B%=newstart%+plen%
Z      C%=pstart%+plen%
d      � bfer
n	    �
x    � newstart%>pstart% �
�,      �transfer(pstart%,plen%,newstart%)
�	    �
�0    start%(n%)=newstart%:rmalen%(n%)=newlen%
�3    sstart%(n%)=(sstart%(n%)-pstart%)+newstart%
�    pstart%=newstart%
�  �
��
�  newstart%=pstart%
��
��
�:
�� �release(� ptr%)
�
%� ptr%>0 � ș "OS_Module",7,,ptr%

ptr%=0
�
":
,� �buttonclick(B%,W%,I%)
6Ȏ B% �
@ � 1 : �saclick(B%,W%,I%)
J) � 2 : �menuclick(W%,b%!0-16,b%!4-12)
T � 4 : �saclick(B%,W%,I%)
^�
h�
r:
|� �saclick(B%,W%,I%)
�"� proc%,n%,xrange%,x0%:proc%=�
�� snum%<1 � �
�
�� W%=filewindow% �
� n%=�handletosnum(mw%)
� Ȏ I% �
�?  � fileicon%:   savesel%=�:savewind%=mw%:�dragfile:proc%=�
�i  � fileok%,filenameicon%: �saveit(n%,$filename%,start%(n%),length%(n%)):proc%=�:name$(n%)=$filename%
� �
��
�
�� W%=filewindow2% �
� n%=�handletosnum(mw%)
  Ȏ I% �
 ?  � fileicon%:   savesel%=�:savewind%=mw%:�dragfile:proc%=�
 T  � fileok%,filenameicon%: �saveit(n%,$filename2%,sstart%(n%),slen%(n%)):proc%=�
 & �
 0�
 :
 D� W%=dialog% �
 N � I%>-1 � I%<6 � proc%=�
 X Ȏ I% �
 b;   � 0,1,2,3: �sadialog(I%,B%,�handletosnum(loadwind%))
 l4   � 4: �sadialog(4,13,�handletosnum(loadwind%))
 v   � 5: �killdialog
 � �
 ��
 �
� proc% �
 �
 �Z%=1
 ��
 �  � W%=whandle%(Z%) �
 �4   ș "Wimp_SetCaretPosition",W%,-1,0,-1000,0,-1
 �   � Grab the input focus
 �   Ȏ I% �
 �      � 0: �startdrag(Z%)
 �6      � 1: � B%=4 � �scroll(Z%,-1) � �scroll(Z%,1)
 �A      � 2: �play(Z%,sstart%(Z%),slen%(Z%),speed%(Z%),volume%)
!      � 3: �zoom(Z%,B%)
!6      � 4: � B%=4 � �scroll(Z%,1) � �scroll(Z%,-1)
!(      � spdicon%(Z%),infoicon1%(Z%):
! 5          b%!32=whandle%(Z%):b%!36=infoicon1%(Z%)
!*1          ș "Wimp_GetIconState",,b%+32,b%!36
!4+          xrange%=b%!48-b%!40:x0%=b%!40
!>@          b%!32=whandle%(Z%):ș "Wimp_GetWindowState",,b%+32
!H           x0%+=(b%!36-b%!52)
!R6          speed%(Z%)=255-(((!b%-x0%)/xrange%)*255)
!\A          �play(Z%,start%(Z%),length%(Z%),speed%(Z%),volume%)
!f*          ș "Wimp_GetPointerInfo",,b%
!pB          � !b%<>0 � x0%=�(40)  :� Short pause for auto-repeat
!z   �
!�  �
!�  Z%+=1
!�� Z%>snum% � Z%>=17
!��
!�:
!�� �insrect(x%,y%,n%)
!�1!b%=whandle%(n%):ș "Wimp_GetWindowState",,b%
!�x%=x%-(b%!4-b%!20)-wleft%
!�y%=y%-(b%!16-b%!24)-wbott%
!�-=(x%>0 � y%>0 � x%<wwidth% � y%<wheight%)
!�:
!�� �menuclick(W%,X%,Y%)
!�� A$
"mw%=W%:mx%=X%:my%=Y%
"
"Q� W%=-2 ��mastermenu("DS Edit "+��(version+0.0001),4),"Quit ,","",X%,140,0):�
"$
".� snum%>0 �
"8  � Z%=1 � snum%
"BF    � W%=whandle%(Z%) �mastermenu("DS Edit",menu$,menu2$,X%,Y%,Z%)
"L  �
"V�
"`�
"j:
"t"� �menuselect(mitem%,subitem%)
"~� stay%,num%
"� ș "Wimp_GetPointerInfo",,b%
"�stay%=(b%!8=1)
"�
"�!� mw%=-2 � mitem%=0 quit%=�:�
"�
"�num%=�handletosnum(mw%)
"�� snum%>0 �
"�  start%=sstart%(num%)
"�  length%=slen%(num%)
"�  changed%=�
"�  Ȏ mitem% �
"�H    � 0: �play(num%,start%(num%),length%(num%),speed%(num%),volume%)
#3    � 1: � Save- Done thru icons on file window
#
�    � 2: sstart%(num%)=start%(num%):slen%(num%)=length%(num%):ș"Wimp_ForceRedraw",whandle%(num%),0,0,1279,288:�infotext(num%)
#    � 3:
#      Ȏ subitem% �
#(9        � 0: � Save Selection -Done thru' icon clicks
#2K        � 1: �play(num%,sstart%(num%),slen%(num%),speed%(num%),volume%)
#<-        � 2: �delete(start%,length%,num%)
#F      �
#P    � 4:
#Z      Ȏ subitem% �
#d(        � 0: �rampup(start%,length%)
#n*        � 1: �rampdown(start%,length%)
#x,        � 2: �amplify(start%,length%,-1)
#�        � 3: � MOVE CENTRE
#�        � 4: � LIMIT UPPER
#�        � 5: � LIMIT LOWER
#�-        � 6: � LENGTHEN/SHORTEN (Squeeze)
#�#        � 7: �makesilence(num%)
#�      �
#�    � 5:
#�      Ȏ subitem% �
#�*        � 0: �addconst(start%,length%)
#�*        � 1: �eorconst(start%,length%)
#�)        � 2: �reverse(start%,length%)
#�&        � 3: �echo(start%,length%)
#�(        � 4: �flange(start%,length%)
$      �
$    � 6:
$      Ȏ subitem% �
$"#        � 0: �changespeed(num%)
$,        � 1: �changevol
$6F        � 2: clipit%=�clipit%:�menutick("Clipping",clipit%,menu2$)
$@S        � 3: flags%(num%)=flags%(num%)�1:ș "Wimp_ForceRedraw",mw%,0,0,1279,288
$J      �
$T  �
$^!  � changed% � �changed(num%)
$h�
$r<� stay% �mastermenu("DS Edit",menu$,menu2$,mx%,my%,num%)
$|�
$�:
$�� �changed(num%)
$�changed%(num%)=�:!b%=mw%
$��setupdt(num%)
$�1$(names%+16*(num%-1))=�leaf(name$(num%))+" *"
$��retitle(whandle%(num%))
$�*ș "Wimp_ForceRedraw",mw%,0,0,1279,288
$��infotext(num%)
$��
$�:
$�� �processkey
$�� key%,num%
$�num%=�handletosnum(!b%)
%key%=b%!24
%
%
Ȏ key% �
%&  � 13:
%0      � num%>0 �
%:G        �play(num%,start%(num%),length%(num%),speed%(num%),volume%)
%D      �
%N!        �saclick(13,!b%,b%!4)
%X      �
%b
%lB  � 127,8:                      :� Delete key pressed (delete)
%v      � num%>0 �
%�        �7
%�3        �delete(sstart%(num%),slen%(num%),num%)
%�-        mw%=whandle%(num%):�changed(num%)
%�E        ș "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
%�      �
%�
%�A  � 32:                         :� Space bar (play selection)
%�M      � num%>0 �play(num%,sstart%(num%),slen%(num%),speed%(num%),volume%)
%�
%�>  � 414:                        :� Page down (Amplify 75%)
%�      � num%>0 �
%�        �7
%�2        �amplify(sstart%(num%),slen%(num%),75)
&-        mw%=whandle%(num%):�changed(num%)
&E        ș "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
&      �
& 
&*=  � 415:                        :� Page up (Amplify 150%)
&4      � num%>0 �
&>        �7
&H3        �amplify(sstart%(num%),slen%(num%),150)
&R-        mw%=whandle%(num%):�changed(num%)
&\E        ș "Wimp_SetCaretPosition",whandle%(num%),-1,0,-1000,0,-1
&f      �
&p
&z8  � 395:                        :� Copy (Select all)
&�$      sstart%(num%)=start%(num%)
&�#      slen%(num%)=length%(num%)
&�:      ș"Wimp_ForceRedraw",whandle%(num%),0,0,1279,288
&�      �infotext(num%)
&�
&�
&�"  : ș "Wimp_ProcessKey",key%
&��
&��
&�:
&�� �dragfile
&�5  � savesel% � !b%=filewindow2% � !b%=filewindow%
&�!  ș"Wimp_GetWindowState",,b%
'&  wex%=b%!4-b%!20:wey%=b%!16-b%!24
'  b%!4=fileicon%
'  ș"Wimp_GetIconState",,b%
'$5  � savesel% � !b%=filewindow2% � !b%=filewindow%
'.  b%!4=5
'8  b%!8+=wex%:b%!12+=wey%
'B  b%!16+=wex%:b%!20+=wey%
'L  b%!24=0:b%!28=0
'V%  b%!32=&7FFFFFFF:b%!36=&7FFFFFFF
'`  ș "Wimp_DragBox",,b%
'j�
't:
'~� �retitle(handle%)
'�!b%=handle%
'� ș "Wimp_GetWindowState",,b%
'�ș "Wimp_CloseWindow",,b%
'�ș "Wimp_OpenWindow",,b%
'��
'�:
'�#� �saveit(n%,name$,start%,end%)
'�end%+=start%
'�� �name$,".") �
'�-  ș "OS_File",10,name$,&ED0,,start%,end%
'�&  $(names%+16*(n%-1))=�leaf(name$)
'�  �retitle(whandle%(n%))
(  changed%(n%)=�
(
�
(<  �error("To save, drag the icon to a directory viewer")
(�
((-!b%=filewindow%:ș "Wimp_CloseWindow",,b%
(2.!b%=filewindow2%:ș "Wimp_CloseWindow",,b%
(<ș "Wimp_CreateMenu",,-1
(F�
(P:
(Z"� �createfilew(� hand%,fname%)
(d� hand%<>0 �
(n  !b%=hand%
(x   ș "Wimp_DeleteWindow",,b%
(��
(�
(�b%!0=0:b%!4=0
(�b%!8=246:b%!12=168
(�b%!16=0:b%!20=0
(�b%!24=-1:b%!28=&93
(�b%!32=&1070207:b%!36=&20D04
(�b%!40=0:b%!44=-1024
(�b%!48=1280:b%!52=0
(�b%!56=&3D:b%!60=0
(�b%!64=1:b%!68=0
(�b%!84=0:$(b%+72)="Save as:"
(�&ș "Wimp_CreateWindow",,b% � hand%
)
)=fileok%=�icon(hand%,192,-160,238,-112,&C701913D,oks%,0,3)
)Jfilenameicon%=�icon(hand%,10,-160,186,-112,&700F13D,fname%,valid%,256)
)"@fileicon%=�icon(hand%,56,-92,184,-20,&D7006102,sprite%,1,20)
),�
)6:
)@� �dialog(num%)
)J� crap%,A$
)T� dialog%>0 � �killdialog
)^.$scratch%="Save to "+�leaf(name$(num%))+�0
)hBdialog%=�createwindow(scratch%,320,320,640,384,0,12,%10010011)
)r
)|� i%=0 � 3
)�  � i%=0 �
)�V    crap%=�spriteicon(dialog%,48,288-i%*48,96,336-i%*48,&3102,sprspace%,"radioon")
)�  �
)�W    crap%=�spriteicon(dialog%,48,288-i%*48,96,336-i%*48,&3102,sprspace%,"radiooff")
)�  �
)�  dialogb%(i%)=alloc%
)��
)�
)�8crap%=�texticon(dialog%,48,48,176,96,&C701913D,"OK")
)�=crap%=�texticon(dialog%,464,48,592,96,&0701913D,"CANCEL")
)�
)�
� �DXj
)�� i%=0 � 3
*	 � A$
*G  crap%=�texticon(dialog%,144,288-i%*48,688,336-i%*48,&C7000111,A$)
*�
*&
*0�7:�openwindow(dialog%)
*:ȗ ȓ 320,320,640,384
*D�
*N:
*Xm� "Insert at selection start","Overwrite from sel. start","Add sounds together","Average sounds together"
*b:
*l� �killdialog
*vȗ ȓ 0,0,1279,1023
*�!b%=dialog%
*�ș "Wimp_DeleteWindow",,b%
*�
dialog%=0
*��
*�:
*�� �sadialog(I%,B%,n%)
*�
 i%=-1
*� �:i%+=1
*�) � �$dialogb%(i%),7)="radioon" � i%=3
*�' � �$dialogb%(i%),7)<>"radioon" � �
*�
*�� B%=13 � I%=4 �
*�
  I%=4
+  �killdialog
+!  n%=�handletosnum(loadwind%)
+
  Ȏ i% �
+ !    � 0: �paste(n%,insert$,�)
+*!    � 1: �paste(n%,insert$,�)
+4    � 2: �add(n%,insert$,�)
+>    � 3: �add(n%,insert$,�)
+H  �
+R  changed%(n%)=�
+\/  $(names%+16*(n%-1))=�leaf(name$(n%))+" *"
+f  �retitle(loadwind%)
+p?  �setupdt(n%):ș "Wimp_ForceRedraw",loadwind%,0,0,1279,288
+z�
+� � i%<>I% �
+�   $(dialogb%(i%))="radiooff"
+�  $(dialogb%(I%))="radioon"
+�=  ș "Wimp_ForceRedraw",dialog%,48,288-I%*48,96,336-I%*48
+�=  ș "Wimp_ForceRedraw",dialog%,48,288-i%*48,96,336-i%*48
+� �
+��
+��infotext(n%)
+��
+�:
+�5� �createwindow(titleptr%,X%,Y%,W%,H%,bg%,hg%,F%)
+�$b%=�92,�0)
+�!b%=X%:b%!4=Y%
,b%!8=X%+W%:b%!12=Y%+H%
,b%!16=0:b%!20=0
,b%!24=-1:b%!28=F%
,$b%?32=7:b%?33=2
,.b%?34=7:b%?35=1
,8b%?36=3:b%?37=1
,Bb%?38=12:b%!40=0
,Lb%!44=0:b%!48=W%
,Vb%!52=H%:b%!56=&13D
,`b%!60=&A000
,jb%!72=titleptr%:b%!76=-1
,tb%!80=�$titleptr%
,~#ș "Wimp_CreateWindow",,b% � H%
,�=H%
,�:
,�� �openwindow(!b%)
,� ș "Wimp_GetWindowState",,b%
,�b%!28=-1
,�ș "Wimp_OpenWindow",,b%
,��
,�:
,�� �closewindow(W%)
,�� n%
,�
,�ș "Hourglass_On"
-n%=�handletosnum(W%)
-

-� �quit(n%) �
- �compactrma(n%)
-( �release(start%(n%))
-2 �release(dt%(n%))
-< length%(n%)=0
-F sstart%(n%)=0:slen%(n%)=0
-P" magstart%(n%)=0:maglen%(n%)=0
-Z" changed%(n%)=�:speed%(n%)=&30
-d
-n !b%=W%
-x ș "Wimp_CloseWindow",,b%
-� ș "Wimp_DeleteWindow",,b%
-�) whandle%(n%)=0:� n%=snum% � snum%-=1
-��
-�ș "Hourglass_Off"
-��
-�:
-�@� �compactrma(n%) :� Moves other sounds down if room is made
-�
-�A� If @@@@****%%%% possible, uses SYS "OS_Module" calls to get
-�C� free spaces in RMA, and compact sounds together to save holes
-�� appearing in the RMA
-�
-�.� 6 Months later: Ha! As if I can do THAT!
.�
.:
.� �quit(num%)
."� q%
.,� �changed%(num%) �=�
.6
.@6$b%="'"+name$(num%)+"' not saved: Really Quit?"+�0
.J.ș "Wimp_ReportError",b%,3,"DS Edit" � ,q%
.T� q%=1 �:=�
.^=�
.h:
.rE� �texticon(!b%,b%!4,b%!8,b%!12,b%!16,f%,t$):� h% :� @@@@****%%%%
.|:b%!20=f%: � general: %11000111000000010100000000111101
.�*�    ^   ^   ^   ^   ^   ^   ^   ^   ^
.�*�    31  28  24  20  16  12  8   4   0
.�� b%!24 �t$+1
.�b%!28=-1
.�
b%!32=�t$
.�$(b%!24)=t$+�0
.�!ș "Wimp_CreateIcon",,b% � h%
.�=h%
.�:
.�6� �spriteicon(!b%,x1,y1,x2,y2,flags%,sptr%,sname$)
.�!� b%!24 �sname$+1:b%!28=sptr%
.�alloc%=b%!24
.�!b%!32=�sname$+1:$b%!24=sname$
/b%!4=x1:b%!8=y1
/b%!12=x2:b%!16=y2
/b%!20=flags%
/&!ș "Wimp_CreateIcon",,b% � h%
/0=h%
/::
/D,� �icon(!b%,x1,y1,x2,y2,flags%,i1,i2,i3)
/N� h%
/Xb%!4=x1:b%!8=y1
/bb%!12=x2:b%!16=y2
/lb%!20=flags%
/vb%!24=i1:b%!28=i2
/�b%!32=i3
/�!ș "Wimp_CreateIcon",,b% � h%
/�=h%
/�:
/�)� �mastermenu(title$,m$,m2$,X%,Y%,n%)
/�� base%,wbase%,wmptr%
/�� n%>0 �
/�1  base%=menu%:wbase%=menu%+1792:wmptr%=wmenu%
/�  $filename%=name$(n%)
/�  $filename2%="Selection"
/�)  �menutick("Lines",flags%(n%)�1,m2$)
/�&  �createmenu(menu%,title$,m$,m2$)
/�(  $wmenu%=�128,�0):$wmenu%=lastval1$
03  $(wmenu%+16)=lastval5$:$(wmenu%+32)=lastval2$
03  $(wmenu%+48)=lastval3$:$(wmenu%+64)=lastval4$
0  $(wmenu%+80)=lastval4$
0 *  $(wmenu%+96)=�"000"+�(speed%(n%)),3)
0*&  $(wmenu%+112)=�"000"+�volume%,2)
04�
0>&  �createmenu(menu%,title$,m$,m2$)
0H�
0R0ș "Wimp_CreateMenu",,menu%,X%-menu%!16/2,Y%
0\�
0f:
0p#� �createmenu(M%,title$,m$,m2$)
0z� I%,max%,doneboth%
0�
0�doneboth%=�
0�$M%=title$:M%!12=&70207
0�M%!20=44:M%!24=0
0�I%=M%+28:max%=�(title$)-2
0�
0��
0� �
0�  A%=�m$,",")
0�/  I%!4=�submenu(base%,m$):� A%>max% max%=A%
0�  I%!8=&7000021
0�  $(I%+12)=�m$,A%-2)
0�   special%=�(�m$,A%-1,1))-65
1C    � Folowing line used to shade permanently unavailable items
1)  � special%=21 � I%!8=(I%!8)�&400000
1
1$2  � special%=22 � I%!4=�writeable(�m$,A%-2),5)
1.2  � special%=23 � I%!4=�writeable(�m$,A%-2),3)
18&  � special%=24 � I%!4=filewindow%
1B'  � special%=25 � I%!4=filewindow2%
1L,  � special%<0 � special%>7 � special%=0
1V  I%!0=(special% � 3)
1`  m$=�m$,A%+1)
1j  I%+=24
1t � m$=""
1~ �m2$="" � doneboth%=�
1� m$=m2$:m2$=""
1�� doneboth%
1�
1�'I%!-24=(I%!-24) � &80:M%!16=max%*16
1��
1�:
1�� �writeable(t$,width%)
1�$wbase%=t$:wbase%!12=&70207
1�wbase%!16=132:wbase%!20=48
1�wbase%!24=0:wbase%+=28
1�wbase%!0=&84:wbase%!4=-1
1�&wbase%!8=&7000121:wbase%!12=wmptr%
2wbase%!16=-1
2
wbase%!20=width%
2wbase%+=36:wmptr%+=16
2=wbase%-64
2(:
22� �submenu(� base%,� m$)
2<� a%,t$,new$
2F� �m$,1)<>">" �=-1
2P
2Zm$=�m$,�m$-1)
2da%=�m$,"<")
2nnew$=�m$,a%-1)
2x
2�A%=�m$,",")
2�;�createmenu(base%+256,�m$,A%-1),�new$,�new$,",")+1),"")
2�
2�$m$=�new$,�new$,",")-1)+�m$,a%+1)
2�A%=�m$,",")
2�base%+=256
2�
=base%
2�:
2�"� �menutick(A$,state%,� menu$)
2�� p%
2�(� state% � state%=�"B" � state%=�"b"
2�%p%=�menu$,A$):p%=�menu$,",",p%)-1
2��menu$,p%,1)=�(state%)
3�
3:
32� �menuval(addr%,� lastval$,min%,max%,digits%)
3"� A$:A$="":addr%+=wmenu%
3,� Z%=0 � digits%
365  � addr%?Z%>=�"0" � addr%?Z%<=�"9" A$+=�addr%?Z%
3@�
3JB� �(A$)>=min% � �(A$)<=max% � lastval$=�"000"+A$,digits%) � �7
3T
=�(A$)
3^:
3h� �receive
3rȎ b%!16 �
3| � 0 : quit%=�
3� � 2 : �recsave
3� � 3 : �recload
3� � 5 : �recopen
3��
3��
3�:
3�� �recsave
3�� n%,s%,l%
3�n%=�handletosnum(savewind%)
3� name$(n%)=�zerostring(b%+44)
3�� savesel% �
3�  s%=sstart%(n%):l%=slen%(n%)
3��
4! s%=start%(n%):l%=length%(n%)
4�
4
4&�saveit(n%,name$(n%),s%,l%)
40b%!12=b%!8:b%!16=3:!b%=64
4:+ș "Wimp_SendMessage",17,b%,b%!20,b%!24
4D�
4N:
4X� �recload
4b
� pn$,wh%
4l1� b%!12<>0 � � :� Not from filer @@@@****%%%%
4v
wh%=b%!20
4�pn$=�zerostring(b%+44)
4�� wh%=-2 �
4�  �saveblock
4�  � �load(pn$) �
4�    �restoreblock
4�    �sendloadack
4�  �
4��
4�  loadwind%=b%!20
4�   insert$=�zerostring(b%+44)
4�!  �dialog(�handletosnum(wh%))
4��
4��
5:
5� �recopen
5� pn$,wh%,Z%
5 pn$=�zerostring(b%+44)
5*
54� b%!40=&ED0 �
5>  �saveblock
5H  � �load(pn$) �
5R    �restoreblock
5\    �sendloadack
5f  �
5p�
5z
5�� b%!40=&ED1 �
5�(  � **** Compressed DSEdit raw-sound
5��
5�
5�� b%!40=&DF9 �
5�C  �saveblock                    :� **** Load SoundSynth samples
5�I                                   :� Note this doesn't remove header
5�  � �load(pn$) �
5�    �restoreblock
5�    �sendloadack
5�
5�3    ș "Hourglass_On"             :� Eor by 128
5�    � Z%=0 � 255
6      mtable%?Z%=(Z% � 128)
6	    �
6;    �tablemod(start%(lastloaded%),length%(lastloaded%))
6$    �setupdt(lastloaded%)
6.    ș "Hourglass_Off"
68  �
6B�
6L�
6V:
6`� �saveblock
6j� Z%=0 � 240 � 4
6t  scratch%!Z%=b%!Z%
6~�
6��
6�:
6�� �restoreblock
6�� Z%=0 � 240 � 4
6�  b%!Z%=scratch%!Z%
6��
6��
6�:
6�� �sendsave
6�� p%
6� ș "Wimp_GetPointerInfo",,b%
6�(b%!20=64:b%!32=0:b%!36=1:b%!40=b%!12
7$b%!44=b%!16:b%!48=!b%:b%!52=b%!4
7

7� savesel% �
7+  b%!56=slen%(�handletosnum(savewind%))
7(  p%=filename2%
72�
7<-  b%!56=length%(�handletosnum(savewind%))
7F  p%=filename%
7P�
7Z
7db%!60=&ED0
7n$(b%+64)=�leaf($p%)
7x.ș "Wimp_SendMessage",17,b%+20,b%!12,b%!16
7��
7�:
7�� �sendloadack
7�b%!16=4
7�b%!12=b%!8
7�$ș "Wimp_SendMessage",17,b%,b%!4
7��
7�:
7�� �zerostring(addr%)
7�� A$
7�ȕ ?addr%>31 � ?addr%<127
7�  A$+=�(?addr%):addr%+=1
7��
8=A$
8:
8� �wimpinit
8",� b% 255,menu% 2304,wmenu% 255,oldb% 100
8,!� scratch% 255,saveblock% 241
86
8@quit%=�
8J$b%="TASK"
8T9ș "Wimp_Initialise",200,!b%,"DS Edit" � ,taskhandle%
8^
8h=� oks% 2,filename% 255,filename2% 255,valid% 3,sprite% 20
8r0$oks%="OK":$valid%="a~ ":$sprite%="file_ed0"
8|$filename%="RawSound"
8�$filename2%="Selection"
8�
8�%� sprite2% 20:$sprite2%="!dsicon"
8�� names% 256
8�,� Z%=0 � 15:$(names%+Z%*16)="<Untitled>"
8�4appicon%=�icon(-1,0,0,68,68,&3102,sprite2%,1,20)
8��
8�:
8�� �error(e$)
8�$b%="    "+e$
8�b%?(�($b%)+4)=0
8�(ș "Wimp_ReportError",b%,1,"DS Edit"
8��
9:
9� �errorend
9� Z%=1 � snum%
9&  �release(start%(Z%))
90  �release(dt%(Z%))
9:�
9Dș"Wimp_CloseDown"
9N�
�
00000000  0d 00 0a 23 f4 20 3e 20  24 2e 21 44 53 45 64 69  |...#. > $.!DSEdi|
00000010  74 2e 21 52 75 6e 49 6d  61 67 65 20 56 30 2e 39  |t.!RunImage V0.9|
00000020  36 20 3c 0d 00 14 27 f4  20 52 49 53 43 4f 53 20  |6 <...'. RISCOS |
00000030  52 61 77 20 44 69 67 69  74 69 73 65 64 20 53 6f  |Raw Digitised So|
00000040  75 6e 64 20 45 64 69 74  6f 72 0d 00 1e 28 f4 20  |und Editor...(. |
00000050  a9 20 43 6f 70 79 72 69  67 68 74 20 27 38 39 2c  |. Copyright '89,|
00000060  27 39 30 20 4a 61 73 6f  6e 20 57 69 6c 6c 69 61  |'90 Jason Willia|
00000070  6d 73 0d 00 28 2a f4 20  54 68 69 73 20 70 72 6f  |ms..(*. This pro|
00000080  67 72 61 6d 20 69 73 20  69 6e 20 74 68 65 20 70  |gram is in the p|
00000090  75 62 6c 69 63 20 64 6f  6d 61 69 6e 0d 00 32 04  |ublic domain..2.|
000000a0  0d 00 3c 46 f4 20 53 65  61 72 63 68 20 66 6f 72  |..<F. Search for|
000000b0  20 40 40 40 40 20 2a 2a  2a 2a 20 61 6e 64 20 25  | @@@@ **** and %|
000000c0  25 25 25 20 66 6f 72 20  61 6c 6c 20 74 68 65 20  |%%% for all the |
000000d0  62 75 67 73 20 61 6e 64  20 6d 69 73 73 69 6e 67  |bugs and missing|
000000e0  20 63 6f 64 65 21 0d 00  46 04 0d 00 50 1b ee 85  | code!..F...P...|
000000f0  20 f2 65 72 72 6f 72 28  f6 24 29 3a f2 65 72 72  | .error(.$):.err|
00000100  6f 72 65 6e 64 0d 00 5a  04 0d 00 64 17 c8 99 20  |orend..Z...d... |
00000110  22 4f 53 5f 47 65 74 45  6e 76 22 20 b8 20 63 24  |"OS_GetEnv" . c$|
00000120  0d 00 6e 1c 70 25 3d a7  63 24 2c 22 22 22 22 2c  |..n.p%=.c$,"""",|
00000130  a7 63 24 2c 22 22 22 22  29 2b 31 29 0d 00 78 10  |.c$,"""")+1)..x.|
00000140  63 24 3d c1 63 24 2c 70  25 2b 31 29 0d 00 82 1c  |c$=.c$,p%+1)....|
00000150  c8 95 c0 63 24 2c 31 29  3d 22 20 22 3a 63 24 3d  |...c$,1)=" ":c$=|
00000160  c1 63 24 2c 32 29 3a ce  0d 00 8c 04 0d 00 96 10  |.c$,2):.........|
00000170  76 65 72 73 69 6f 6e 3d  30 2e 39 36 0d 00 a0 0d  |version=0.96....|
00000180  f2 77 69 6d 70 69 6e 69  74 0d 00 aa 16 72 6f 75  |.wimpinit....rou|
00000190  6e 64 73 69 7a 65 25 3d  31 36 2a 31 30 32 34 0d  |ndsize%=16*1024.|
000001a0  00 b4 04 0d 00 be 09 f2  69 6e 69 74 0d 00 c8 0f  |........init....|
000001b0  f2 69 6e 69 74 64 72 69  76 65 72 0d 00 d2 0d f2  |.initdriver.....|
000001c0  61 73 73 65 6d 62 6c 65  0d 00 dc 04 0d 00 e6 0b  |assemble........|
000001d0  73 6e 75 6d 25 3d 30 0d  00 f0 10 77 73 74 61 72  |snum%=0....wstar|
000001e0  74 6f 66 66 25 3d 30 0d  00 fa 04 0d 01 04 24 e7  |toff%=0.......$.|
000001f0  20 63 24 3c 3e 22 22 20  8c 20 63 72 61 70 25 3d  | c$<>"" . crap%=|
00000200  a4 6c 6f 61 64 28 63 24  29 3a 63 24 3d 22 22 0d  |.load(c$):c$="".|
00000210  01 0e 04 0d 01 18 05 f5  0d 01 22 24 20 e7 20 64  |.........."$ . d|
00000220  72 61 67 67 69 6e 67 25  20 8c 20 6d 61 73 6b 25  |ragging% . mask%|
00000230  3d 30 20 8b 20 6d 61 73  6b 25 3d 31 0d 01 2c 2a  |=0 . mask%=1..,*|
00000240  20 c8 99 20 22 57 69 6d  70 5f 50 6f 6c 6c 22 2c  | .. "Wimp_Poll",|
00000250  6d 61 73 6b 25 2c 62 25  20 b8 20 72 65 74 75 72  |mask%,b% . retur|
00000260  6e 63 6f 64 65 25 0d 01  36 15 20 c8 8e 20 72 65  |ncode%..6. .. re|
00000270  74 75 72 6e 63 6f 64 65  25 20 ca 0d 01 40 15 20  |turncode% ...@. |
00000280  20 c9 20 30 20 3a 20 20  20 20 20 f2 64 72 61 67  | . 0 :     .drag|
00000290  0d 01 4a 1b 20 20 c9 20  31 20 3a 20 20 20 20 20  |..J.  . 1 :     |
000002a0  f2 72 65 64 72 61 77 28  62 25 29 0d 01 54 28 20  |.redraw(b%)..T( |
000002b0  20 c9 20 32 20 3a 20 20  20 20 20 c8 99 20 22 57  | . 2 :     .. "W|
000002c0  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
000002d0  2c 62 25 0d 01 5e 21 20  20 c9 20 33 20 3a 20 20  |,b%..^!  . 3 :  |
000002e0  20 20 20 f2 63 6c 6f 73  65 77 69 6e 64 6f 77 28  |   .closewindow(|
000002f0  21 62 25 29 0d 01 68 2e  20 20 c9 20 36 20 3a 20  |!b%)..h.  . 6 : |
00000300  20 20 20 20 f2 62 75 74  74 6f 6e 63 6c 69 63 6b  |    .buttonclick|
00000310  28 62 25 21 38 2c 62 25  21 31 32 2c 62 25 21 31  |(b%!8,b%!12,b%!1|
00000320  36 29 0d 01 72 1b 20 20  c9 20 37 20 3a 20 20 20  |6)..r.  . 7 :   |
00000330  20 20 f2 66 69 6e 69 73  68 64 72 61 67 0d 01 7c  |  .finishdrag..||
00000340  1b 20 20 c9 20 38 20 3a  20 20 20 20 20 f2 70 72  |.  . 8 :     .pr|
00000350  6f 63 65 73 73 6b 65 79  0d 01 86 25 20 20 c9 20  |ocesskey...%  . |
00000360  39 20 3a 20 20 20 20 20  f2 6d 65 6e 75 73 65 6c  |9 :     .menusel|
00000370  65 63 74 28 21 62 25 2c  62 25 21 34 29 0d 01 90  |ect(!b%,b%!4)...|
00000380  18 20 20 c9 20 31 37 2c  31 38 20 3a 20 f2 72 65  |.  . 17,18 : .re|
00000390  63 65 69 76 65 0d 01 9a  06 20 cb 0d 01 a4 0b fd  |ceive.... ......|
000003a0  20 71 75 69 74 25 0d 01  ae 0f e7 20 73 6e 75 6d  | quit%..... snum|
000003b0  25 3e 30 20 8c 0d 01 b8  14 20 20 e3 20 5a 25 3d  |%>0 .....  . Z%=|
000003c0  31 20 b8 20 73 6e 75 6d  25 0d 01 c2 35 20 20 20  |1 . snum%...5   |
000003d0  20 e7 20 77 68 61 6e 64  6c 65 25 28 5a 25 29 3e  | . whandle%(Z%)>|
000003e0  30 20 8c 20 f2 63 6c 6f  73 65 77 69 6e 64 6f 77  |0 . .closewindow|
000003f0  28 77 68 61 6e 64 6c 65  25 28 5a 25 29 29 0d 01  |(whandle%(Z%))..|
00000400  cc 07 20 20 ed 0d 01 d6  05 cd 0d 01 e0 15 f2 72  |..  ...........r|
00000410  65 6c 65 61 73 65 28 64  72 69 76 65 72 25 29 0d  |elease(driver%).|
00000420  01 ea 17 c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |..... "Wimp_Clos|
00000430  65 44 6f 77 6e 22 0d 01  f4 05 e0 0d 01 fe 05 3a  |eDown".........:|
00000440  0d 02 08 12 dd 20 a4 6c  6f 61 64 28 6e 61 6d 65  |..... .load(name|
00000450  24 29 0d 02 12 0a ea 20  6e 75 6d 25 0d 02 1c 0f  |$)..... num%....|
00000460  e7 20 73 6e 75 6d 25 3c  31 20 8c 0d 02 26 19 20  |. snum%<1 ...&. |
00000470  20 73 6e 75 6d 25 2b 3d  31 3a 6e 75 6d 25 3d 73  | snum%+=1:num%=s|
00000480  6e 75 6d 25 0d 02 30 05  cc 0d 02 3a 0c 20 20 6e  |num%..0....:.  n|
00000490  75 6d 25 3d 30 0d 02 44  0a 20 20 5a 25 3d 30 0d  |um%=0..D.  Z%=0.|
000004a0  02 4e 0d 20 20 f5 3a 5a  25 2b 3d 31 0d 02 58 22  |.N.  .:Z%+=1..X"|
000004b0  20 20 20 20 e7 20 77 68  61 6e 64 6c 65 25 28 5a  |    . whandle%(Z|
000004c0  25 29 3c 31 20 8c 20 6e  75 6d 25 3d 5a 25 0d 02  |%)<1 . num%=Z%..|
000004d0  62 17 20 20 fd 20 6e 75  6d 25 3e 30 20 84 20 5a  |b.  . num%>0 . Z|
000004e0  25 3e 3d 31 36 0d 02 6c  1f 20 20 e7 20 6e 75 6d  |%>=16..l.  . num|
000004f0  25 3e 73 6e 75 6d 25 20  8c 20 73 6e 75 6d 25 3d  |%>snum% . snum%=|
00000500  6e 75 6d 25 0d 02 76 47  20 20 e7 20 6e 75 6d 25  |num%..vG  . num%|
00000510  3d 30 20 8c 20 f2 65 72  72 6f 72 28 22 4f 6e 6c  |=0 . .error("Onl|
00000520  79 20 31 36 20 73 6f 75  6e 64 73 20 63 61 6e 20  |y 16 sounds can |
00000530  62 65 20 65 64 69 74 65  64 20 61 74 20 6f 6e 63  |be edited at onc|
00000540  65 22 29 3a 6e 75 6d 25  3d 2d 31 0d 02 80 05 cd  |e"):num%=-1.....|
00000550  0d 02 8a 04 0d 02 94 10  e7 20 6e 75 6d 25 3c 31  |......... num%<1|
00000560  20 8c 3d a3 0d 02 9e 04  0d 02 a8 26 24 28 6e 61  | .=........&$(na|
00000570  6d 65 73 25 2b 31 36 2a  28 6e 75 6d 25 2d 31 29  |mes%+16*(num%-1)|
00000580  29 3d a4 6c 65 61 66 28  6e 61 6d 65 24 29 0d 02  |)=.leaf(name$)..|
00000590  b2 69 77 68 61 6e 64 6c  65 25 28 6e 75 6d 25 29  |.iwhandle%(num%)|
000005a0  3d a4 63 72 65 61 74 65  77 69 6e 64 6f 77 28 6e  |=.createwindow(n|
000005b0  61 6d 65 73 25 2b 31 36  2a 28 6e 75 6d 25 2d 31  |ames%+16*(num%-1|
000005c0  29 2c 39 36 2d 77 73 74  61 72 74 6f 66 66 25 2c  |),96-wstartoff%,|
000005d0  35 31 32 2b 77 73 74 61  72 74 6f 66 66 25 2c 31  |512+wstartoff%,1|
000005e0  30 35 36 2c 33 36 38 2c  30 2c 31 33 2c 26 38 37  |056,368,0,13,&87|
000005f0  30 30 31 30 30 33 29 0d  02 bc 13 f2 61 64 64 69  |001003).....addi|
00000600  63 6f 6e 73 28 6e 75 6d  25 29 0d 02 c6 33 77 73  |cons(num%)...3ws|
00000610  74 61 72 74 6f 66 66 25  2d 3d 34 38 3a e7 20 77  |tartoff%-=48:. w|
00000620  73 74 61 72 74 6f 66 66  25 3c 2d 31 36 30 20 8c  |startoff%<-160 .|
00000630  20 77 73 74 61 72 74 6f  66 66 25 3d 30 0d 02 d0  | wstartoff%=0...|
00000640  1f f2 6f 70 65 6e 77 69  6e 64 6f 77 28 77 68 61  |..openwindow(wha|
00000650  6e 64 6c 65 25 28 6e 75  6d 25 29 29 0d 02 da 15  |ndle%(num%))....|
00000660  6e 61 6d 65 24 28 6e 75  6d 25 29 3d 6e 61 6d 65  |name$(num%)=name|
00000670  24 0d 02 e4 04 0d 02 ee  31 f2 6c 6f 61 64 66 69  |$.......1.loadfi|
00000680  6c 65 28 73 74 61 72 74  25 2c 6c 65 6e 67 74 68  |le(start%,length|
00000690  25 2c 72 6d 61 6c 65 6e  25 28 6e 75 6d 25 29 2c  |%,rmalen%(num%),|
000006a0  6e 61 6d 65 24 29 0d 02  f8 13 e7 20 73 74 61 72  |name$)..... star|
000006b0  74 25 3c 31 20 8c 20 3d  a3 0d 03 02 2d 73 74 61  |t%<1 . =....-sta|
000006c0  72 74 25 28 6e 75 6d 25  29 3d 73 74 61 72 74 25  |rt%(num%)=start%|
000006d0  3a 6c 65 6e 67 74 68 25  28 6e 75 6d 25 29 3d 6c  |:length%(num%)=l|
000006e0  65 6e 67 74 68 25 0d 03  0c 2c 73 73 74 61 72 74  |ength%...,sstart|
000006f0  25 28 6e 75 6d 25 29 3d  73 74 61 72 74 25 3a 73  |%(num%)=start%:s|
00000700  6c 65 6e 25 28 6e 75 6d  25 29 3d 6c 65 6e 67 74  |len%(num%)=lengt|
00000710  68 25 0d 03 16 30 6d 61  67 73 74 61 72 74 25 28  |h%...0magstart%(|
00000720  6e 75 6d 25 29 3d 73 74  61 72 74 25 3a 6d 61 67  |num%)=start%:mag|
00000730  6c 65 6e 25 28 6e 75 6d  25 29 3d 6c 65 6e 67 74  |len%(num%)=lengt|
00000740  68 25 0d 03 20 25 63 68  61 6e 67 65 64 25 28 6e  |h%.. %changed%(n|
00000750  75 6d 25 29 3d a3 3a 73  70 65 65 64 25 28 6e 75  |um%)=.:speed%(nu|
00000760  6d 25 29 3d 26 33 30 0d  03 2a 24 66 6c 61 67 73  |m%)=&30..*$flags|
00000770  25 28 6e 75 6d 25 29 3d  31 3a 7a 6f 6f 6d 6c 65  |%(num%)=1:zoomle|
00000780  76 25 28 6e 75 6d 25 29  3d 31 39 0d 03 34 12 f2  |v%(num%)=19..4..|
00000790  73 65 74 75 70 64 74 28  6e 75 6d 25 29 0d 03 3e  |setupdt(num%)..>|
000007a0  24 f2 69 6e 66 6f 74 65  78 74 28 6e 75 6d 25 29  |$.infotext(num%)|
000007b0  3a 6c 61 73 74 6c 6f 61  64 65 64 25 3d 6e 75 6d  |:lastloaded%=num|
000007c0  25 0d 03 48 06 3d b9 0d  03 52 05 3a 0d 03 5c 18  |%..H.=...R.:..\.|
000007d0  dd 20 f2 69 6e 66 6f 74  65 78 74 28 6e 25 29 3a  |. .infotext(n%):|
000007e0  ea 20 4d 25 0d 03 66 32  4d 25 3d 73 6c 65 6e 25  |. M%..f2M%=slen%|
000007f0  28 6e 25 29 3a e7 20 4d  25 3e 6c 65 6e 67 74 68  |(n%):. M%>length|
00000800  25 28 6e 25 29 20 8c 20  4d 25 3d 6c 65 6e 67 74  |%(n%) . M%=lengt|
00000810  68 25 28 6e 25 29 0d 03  70 0f e7 20 4d 25 3c 31  |h%(n%)..p.. M%<1|
00000820  20 4d 25 3d 31 0d 03 7a  48 24 28 69 6e 66 6f 69  | M%=1..zH$(infoi|
00000830  63 6f 6e 73 25 2b 28 6e  25 2a 34 30 29 29 3d 22  |cons%+(n%*40))="|
00000840  53 65 6c 65 63 74 69 6f  6e 3a 20 22 2b c3 4d 25  |Selection: "+.M%|
00000850  2b 22 20 6f 66 20 22 2b  c3 6c 65 6e 67 74 68 25  |+" of "+.length%|
00000860  28 6e 25 29 2b 22 20 62  79 74 65 73 22 0d 03 84  |(n%)+" bytes"...|
00000870  37 21 62 25 3d 77 68 61  6e 64 6c 65 25 28 6e 25  |7!b%=whandle%(n%|
00000880  29 3a 62 25 21 34 3d 69  6e 66 6f 69 63 6f 6e 31  |):b%!4=infoicon1|
00000890  25 28 6e 25 29 3a 62 25  21 38 3d 30 3a 62 25 21  |%(n%):b%!8=0:b%!|
000008a0  31 32 3d 30 0d 03 8e 1e  c8 99 20 22 57 69 6d 70  |12=0...... "Wimp|
000008b0  5f 53 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 2c  |_SetIconState",,|
000008c0  62 25 0d 03 98 05 e1 0d  03 a2 05 3a 0d 03 ac 13  |b%.........:....|
000008d0  dd 20 f2 61 64 64 69 63  6f 6e 73 28 6e 25 29 0d  |. .addicons(n%).|
000008e0  03 b6 08 ea 20 68 25 0d  03 c0 46 68 25 3d a4 69  |.... h%...Fh%=.i|
000008f0  63 6f 6e 28 77 68 61 6e  64 6c 65 25 28 6e 25 29  |con(whandle%(n%)|
00000900  2c 30 2c 77 62 6f 74 74  25 2c 31 30 35 36 2c 77  |,0,wbott%,1056,w|
00000910  62 6f 74 74 25 2b 77 68  65 69 67 68 74 25 2b 34  |bott%+wheight%+4|
00000920  2c 26 36 30 38 30 2c 30  2c 30 2c 30 29 0d 03 ca  |,&6080,0,0,0)...|
00000930  45 68 25 3d a4 73 70 72  69 74 65 69 63 6f 6e 28  |Eh%=.spriteicon(|
00000940  77 68 61 6e 64 6c 65 25  28 6e 25 29 2c 32 30 2c  |whandle%(n%),20,|
00000950  32 39 32 2c 38 38 2c 33  36 30 2c 26 33 31 30 32  |292,88,360,&3102|
00000960  2c 73 70 72 73 70 61 63  65 25 2c 22 6c 65 66 74  |,sprspace%,"left|
00000970  22 29 0d 03 d4 42 68 25  3d a4 73 70 72 69 74 65  |")...Bh%=.sprite|
00000980  69 63 6f 6e 28 77 68 61  6e 64 6c 65 25 28 6e 25  |icon(whandle%(n%|
00000990  29 2c 31 30 38 2c 32 39  32 2c 31 36 38 2c 33 36  |),108,292,168,36|
000009a0  30 2c 26 33 31 30 32 2c  31 2c 22 21 64 73 69 63  |0,&3102,1,"!dsic|
000009b0  6f 6e 22 29 0d 03 de 04  0d 03 e8 46 20 68 25 3d  |on").......F h%=|
000009c0  a4 73 70 72 69 74 65 69  63 6f 6e 28 77 68 61 6e  |.spriteicon(whan|
000009d0  64 6c 65 25 28 6e 25 29  2c 31 39 36 2c 32 39 32  |dle%(n%),196,292|
000009e0  2c 32 35 36 2c 33 36 30  2c 26 33 31 30 32 2c 73  |,256,360,&3102,s|
000009f0  70 72 73 70 61 63 65 25  2c 22 31 39 22 29 0d 03  |prspace%,"19")..|
00000a00  f2 1a 20 7a 6f 6f 6d 69  6e 61 6d 65 25 28 6e 25  |.. zoominame%(n%|
00000a10  29 3d 61 6c 6c 6f 63 25  0d 03 fc 04 0d 04 06 4c  |)=alloc%.......L|
00000a20  20 f4 20 4e 4f 54 45 21  21 21 21 20 2d 49 66 20  | . NOTE!!!! -If |
00000a30  69 63 6f 6e 20 70 6f 73  69 74 69 6f 6e 20 63 68  |icon position ch|
00000a40  61 6e 67 65 73 2c 20 79  6f 75 20 6d 75 73 74 20  |anges, you must |
00000a50  63 68 61 6e 67 65 20 46  6f 72 63 65 52 65 64 72  |change ForceRedr|
00000a60  61 77 20 6f 66 20 69 74  0d 04 10 04 0d 04 1a 48  |aw of it.......H|
00000a70  68 25 3d a4 73 70 72 69  74 65 69 63 6f 6e 28 77  |h%=.spriteicon(w|
00000a80  68 61 6e 64 6c 65 25 28  6e 25 29 2c 32 38 34 2c  |handle%(n%),284,|
00000a90  32 39 32 2c 33 34 34 2c  33 36 30 2c 26 33 31 30  |292,344,360,&310|
00000aa0  32 2c 73 70 72 73 70 61  63 65 25 2c 22 72 69 67  |2,sprspace%,"rig|
00000ab0  68 74 22 29 0d 04 24 04  0d 04 2e 14 21 62 25 3d  |ht")..$.....!b%=|
00000ac0  77 68 61 6e 64 6c 65 25  28 6e 25 29 0d 04 38 3a  |whandle%(n%)..8:|
00000ad0  62 25 21 34 3d 33 37 36  3a 62 25 21 38 3d 33 32  |b%!4=376:b%!8=32|
00000ae0  34 3a 62 25 21 31 32 3d  31 30 34 38 3a 62 25 21  |4:b%!12=1048:b%!|
00000af0  31 36 3d 33 36 34 3a 62  25 21 32 30 3d 26 30 37  |16=364:b%!20=&07|
00000b00  30 30 32 31 31 39 0d 04  42 2e 62 25 21 32 34 3d  |002119..B.b%!24=|
00000b10  69 6e 66 6f 69 63 6f 6e  73 25 2b 28 34 30 2a 6e  |infoicons%+(40*n|
00000b20  25 29 3a 62 25 21 32 38  3d 2d 31 3a 62 25 21 33  |%):b%!28=-1:b%!3|
00000b30  32 3d 32 30 0d 04 4c 2d  c8 99 20 22 57 69 6d 70  |2=20..L-.. "Wimp|
00000b40  5f 43 72 65 61 74 65 49  63 6f 6e 22 2c 2c 62 25  |_CreateIcon",,b%|
00000b50  20 b8 20 69 6e 66 6f 69  63 6f 6e 31 25 28 6e 25  | . infoicon1%(n%|
00000b60  29 0d 04 56 60 73 70 64  69 63 6f 6e 25 28 6e 25  |)..V`spdicon%(n%|
00000b70  29 3d a4 73 70 72 69 74  65 69 63 6f 6e 28 77 68  |)=.spriteicon(wh|
00000b80  61 6e 64 6c 65 25 28 6e  25 29 2c 33 37 36 2c 77  |andle%(n%),376,w|
00000b90  62 6f 74 74 25 2b 77 68  65 69 67 68 74 25 2b 31  |bott%+wheight%+1|
00000ba0  32 2c 31 30 34 38 2c 33  32 34 2c 26 32 31 30 32  |2,1048,324,&2102|
00000bb0  2c 73 70 72 73 70 61 63  65 25 2c 22 6b 62 64 22  |,sprspace%,"kbd"|
00000bc0  29 0d 04 60 05 e1 0d 04  6a 05 3a 0d 04 74 0f dd  |)..`....j.:..t..|
00000bd0  20 a4 6c 65 61 66 28 61  24 29 0d 04 7e 08 ea 20  | .leaf(a$)..~.. |
00000be0  70 25 0d 04 88 0a 70 25  3d a9 61 24 0d 04 92 22  |p%....p%=.a$..."|
00000bf0  c8 95 c1 61 24 2c 70 25  2c 31 29 3d 22 20 22 20  |...a$,p%,1)=" " |
00000c00  80 20 70 25 3e 30 3a 70  25 2d 3d 31 3a ce 0d 04  |. p%>0:p%-=1:...|
00000c10  9c 0e 61 24 3d c0 61 24  2c 70 25 29 0d 04 a6 23  |..a$=.a$,p%)...#|
00000c20  c8 95 c1 61 24 2c 70 25  2c 31 29 3c 3e 22 2e 22  |...a$,p%,1)<>"."|
00000c30  20 80 20 70 25 3e 30 3a  70 25 2d 3d 31 3a ce 0d  | . p%>0:p%-=1:..|
00000c40  04 b0 0e 3d c1 61 24 2c  70 25 2b 31 29 0d 04 ba  |...=.a$,p%+1)...|
00000c50  05 3a 0d 04 c4 0b dd 20  f2 69 6e 69 74 0d 04 ce  |.:..... .init...|
00000c60  18 ea 20 63 6f 6c 6d 73  25 2c 72 6f 77 73 25 2c  |.. colms%,rows%,|
00000c70  63 6f 6c 73 25 0d 04 d8  18 64 72 69 76 65 72 25  |cols%....driver%|
00000c80  3d a4 63 6c 61 69 6d 28  32 30 34 38 29 0d 04 e2  |=.claim(2048)...|
00000c90  13 e7 20 64 72 69 76 65  72 25 3d 30 20 8c 20 e0  |.. driver%=0 . .|
00000ca0  0d 04 ec 04 0d 04 f6 11  de 20 6d 74 61 62 6c 65  |......... mtable|
00000cb0  25 20 32 35 36 0d 05 00  26 de 20 73 74 61 72 74  |% 256...&. start|
00000cc0  25 28 31 36 29 2c 6c 65  6e 67 74 68 25 28 31 36  |%(16),length%(16|
00000cd0  29 2c 6e 61 6d 65 24 28  31 36 29 0d 05 0a 26 de  |),name$(16)...&.|
00000ce0  20 73 70 65 65 64 25 28  31 36 29 2c 73 73 74 61  | speed%(16),ssta|
00000cf0  72 74 25 28 31 36 29 2c  73 6c 65 6e 25 28 31 36  |rt%(16),slen%(16|
00000d00  29 0d 05 14 1f de 20 6d  61 67 73 74 61 72 74 25  |)..... magstart%|
00000d10  28 31 36 29 2c 6d 61 67  6c 65 6e 25 28 31 36 29  |(16),maglen%(16)|
00000d20  0d 05 1e 1e de 20 77 68  61 6e 64 6c 65 25 28 31  |..... whandle%(1|
00000d30  36 29 2c 72 6d 61 6c 65  6e 25 28 31 36 29 0d 05  |6),rmalen%(16)..|
00000d40  28 1d de 20 66 6c 61 67  73 25 28 31 36 29 2c 63  |(.. flags%(16),c|
00000d50  68 61 6e 67 65 64 25 28  31 36 29 0d 05 32 29 de  |hanged%(16)..2).|
00000d60  20 64 74 25 28 31 36 29  2c 69 6e 66 6f 69 63 6f  | dt%(16),infoico|
00000d70  6e 31 25 28 31 36 29 2c  73 70 64 69 63 6f 6e 25  |n1%(16),spdicon%|
00000d80  28 31 36 29 0d 05 3c 21  de 20 7a 6f 6f 6d 6c 65  |(16)..<!. zoomle|
00000d90  76 25 28 31 36 29 2c 7a  6f 6f 6d 69 6e 61 6d 65  |v%(16),zoominame|
00000da0  25 28 31 36 29 0d 05 46  14 de 20 69 6e 66 6f 69  |%(16)..F.. infoi|
00000db0  63 6f 6e 73 25 20 36 35  30 0d 05 50 04 0d 05 5a  |cons% 650..P...Z|
00000dc0  29 e3 20 46 25 3d 69 6e  66 6f 69 63 6f 6e 73 25  |). F%=infoicons%|
00000dd0  20 b8 20 69 6e 66 6f 69  63 6f 6e 73 25 2b 36 34  | . infoicons%+64|
00000de0  30 20 88 20 34 30 0d 05  64 11 20 20 24 46 25 3d  |0 . 40..d.  $F%=|
00000df0  c4 34 32 2c bd 30 29 0d  05 6e 05 ed 0d 05 78 04  |.42,.0)..n....x.|
00000e00  0d 05 82 17 de 20 73 70  72 73 70 61 63 65 25 20  |..... sprspace% |
00000e10  31 32 2a 31 30 32 34 0d  05 8c 24 21 73 70 72 73  |12*1024...$!sprs|
00000e20  70 61 63 65 25 3d 31 32  2a 31 30 32 34 3a 73 70  |pace%=12*1024:sp|
00000e30  72 73 70 61 63 65 25 21  34 3d 30 0d 05 96 22 73  |rspace%!4=0..."s|
00000e40  70 72 73 70 61 63 65 25  21 38 3d 31 36 3a 73 70  |prspace%!8=16:sp|
00000e50  72 73 70 61 63 65 25 21  31 32 3d 31 36 0d 05 a0  |rspace%!12=16...|
00000e60  3a c8 99 20 22 4f 53 5f  53 70 72 69 74 65 4f 70  |:.. "OS_SpriteOp|
00000e70  22 2c 26 31 30 41 2c 73  70 72 73 70 61 63 65 25  |",&10A,sprspace%|
00000e80  2c 22 3c 44 53 45 64 69  74 24 44 69 72 3e 2e 53  |,"<DSEdit$Dir>.S|
00000e90  70 72 69 74 65 73 22 0d  05 aa 04 0d 05 b4 1b 73  |prites"........s|
00000ea0  74 61 72 74 25 28 29 3d  30 3a 6c 65 6e 67 74 68  |tart%()=0:length|
00000eb0  25 28 29 3d 30 3a 0d 05  be 26 e3 20 46 25 3d 30  |%()=0:...&. F%=0|
00000ec0  20 b8 20 31 36 3a 6e 61  6d 65 24 28 46 25 29 3d  | . 16:name$(F%)=|
00000ed0  22 52 61 77 53 6f 75 6e  64 22 3a ed 0d 05 c8 26  |"RawSound":....&|
00000ee0  73 70 65 65 64 25 28 29  3d 26 33 30 3a 73 73 74  |speed%()=&30:sst|
00000ef0  61 72 74 25 28 29 3d 30  3a 73 6c 65 6e 25 28 29  |art%()=0:slen%()|
00000f00  3d 30 0d 05 d2 37 6d 61  67 73 74 61 72 74 25 28  |=0...7magstart%(|
00000f10  29 3d 30 3a 6d 61 67 6c  65 6e 25 28 29 3d 30 3a  |)=0:maglen%()=0:|
00000f20  77 68 61 6e 64 6c 65 25  28 29 3d 30 3a 63 68 61  |whandle%()=0:cha|
00000f30  6e 67 65 64 25 28 29 3d  a3 0d 05 dc 1c 7a 6f 6f  |nged%()=.....zoo|
00000f40  6d 6c 65 76 25 28 29 3d  31 39 3a 66 6c 61 67 73  |mlev%()=19:flags|
00000f50  25 28 29 3d 31 0d 05 e6  04 0d 05 f0 0e 76 6f 6c  |%()=1........vol|
00000f60  75 6d 65 25 3d 31 35 0d  05 fa 0d 63 6c 69 70 69  |ume%=15....clipi|
00000f70  74 25 3d b9 0d 06 04 04  0d 06 0e 0e 73 61 76 65  |t%=.........save|
00000f80  73 65 6c 25 3d a3 0d 06  18 0f 73 61 76 65 77 69  |sel%=.....savewi|
00000f90  6e 64 25 3d 30 0d 06 22  1c f2 67 65 74 73 74 65  |nd%=0.."..getste|
00000fa0  70 73 28 78 73 74 65 70  25 2c 79 73 74 65 70 25  |ps(xstep%,ystep%|
00000fb0  29 0d 06 2c 04 0d 06 36  0e 63 68 61 6e 67 65 64  |)..,...6.changed|
00000fc0  25 3d a3 0d 06 40 27 f2  63 72 65 61 74 65 66 69  |%=...@'.createfi|
00000fd0  6c 65 77 28 66 69 6c 65  77 69 6e 64 6f 77 25 2c  |lew(filewindow%,|
00000fe0  66 69 6c 65 6e 61 6d 65  25 29 0d 06 4a 29 f2 63  |filename%)..J).c|
00000ff0  72 65 61 74 65 66 69 6c  65 77 28 66 69 6c 65 77  |reatefilew(filew|
00001000  69 6e 64 6f 77 32 25 2c  66 69 6c 65 6e 61 6d 65  |indow2%,filename|
00001010  32 25 29 0d 06 54 04 0d  06 5e 04 0d 06 68 48 f4  |2%)..T...^...hH.|
00001020  20 2a 2a 2a 2a 25 25 25  25 20 54 68 65 20 69 74  | ****%%%% The it|
00001030  65 6d 73 20 62 65 6c 6f  77 20 66 6f 6c 6c 6f 77  |ems below follow|
00001040  65 64 20 62 79 20 22 56  22 20 61 72 65 20 73 68  |ed by "V" are sh|
00001050  61 64 65 64 20 64 75 65  20 74 6f 20 6c 61 63 6b  |aded due to lack|
00001060  20 6f 66 0d 06 72 4b f4  20 69 6d 70 6c 65 6d 65  | of..rK. impleme|
00001070  6e 74 61 74 69 6f 6e 2c  20 6f 72 20 72 61 74 68  |ntation, or rath|
00001080  65 72 2c 20 6c 61 63 6b  20 6f 66 20 69 6e 70 75  |er, lack of inpu|
00001090  74 20 72 6f 75 74 69 6e  65 73 20 74 6f 20 70 61  |t routines to pa|
000010a0  73 73 20 74 68 65 20 63  6f 72 72 65 63 74 0d 06  |ss the correct..|
000010b0  7c 30 f4 20 69 6e 66 6f  20 74 6f 20 74 68 65 20  ||0. info to the |
000010c0  70 72 6f 63 65 64 75 72  65 73 20 74 6f 20 64 6f  |procedures to do|
000010d0  20 74 68 65 73 65 20 74  68 69 6e 67 73 2e 0d 06  | these things...|
000010e0  86 04 0d 06 90 ac 6d 65  6e 75 24 3d 22 50 6c 61  |......menu$="Pla|
000010f0  79 20 73 6f 75 6e 64 20  2c 53 61 76 65 59 2c 53  |y sound ,SaveY,S|
00001100  65 6c 65 63 74 20 61 6c  6c 20 2c 3e 53 65 6c 65  |elect all ,>Sele|
00001110  63 74 69 6f 6e 20 2c 53  61 76 65 5a 2c 50 6c 61  |ction ,SaveZ,Pla|
00001120  79 20 2c 44 65 6c 65 74  65 20 2c 3c 2c 3e 45 64  |y ,Delete ,<,>Ed|
00001130  69 74 20 2c 52 61 6d 70  20 75 70 20 2c 52 61 6d  |it ,Ramp up ,Ram|
00001140  70 20 64 6f 77 6e 20 2c  41 6d 70 6c 69 66 79 57  |p down ,AmplifyW|
00001150  2c 4d 6f 76 65 20 63 65  6e 74 72 65 56 2c 4c 69  |,Move centreV,Li|
00001160  6d 69 74 20 75 70 56 2c  4c 69 6d 69 74 20 64 6f  |mit upV,Limit do|
00001170  77 6e 56 2c 53 71 75 65  65 7a 65 56 2c 4d 61 6b  |wnV,SqueezeV,Mak|
00001180  65 20 73 69 6c 65 6e 63  65 57 2c 3c 2c 22 0d 06  |e silenceW,<,"..|
00001190  9a 82 6d 65 6e 75 32 24  3d 22 3e 53 70 65 63 69  |..menu2$=">Speci|
000011a0  61 6c 20 46 58 20 2c 41  64 64 20 63 6f 6e 73 74  |al FX ,Add const|
000011b0  57 2c 45 6f 72 20 63 6f  6e 73 74 57 2c 52 65 76  |W,Eor constW,Rev|
000011c0  65 72 73 65 20 2c 45 63  68 6f 57 2c 46 6c 61 6e  |erse ,EchoW,Flan|
000011d0  67 65 20 45 63 68 6f 57  2c 3c 2c 3e 4f 70 74 69  |ge EchoW,<,>Opti|
000011e0  6f 6e 73 20 2c 53 65 74  20 73 70 65 65 64 57 2c  |ons ,Set speedW,|
000011f0  53 65 74 20 76 6f 6c 75  6d 65 58 2c 43 6c 69 70  |Set volumeX,Clip|
00001200  70 69 6e 67 42 2c 4c 69  6e 65 73 42 2c 3c 2c 22  |pingB,LinesB,<,"|
00001210  0d 06 a4 04 0d 06 ae 33  6c 61 73 74 76 61 6c 31  |.......3lastval1|
00001220  24 3d 22 32 30 30 22 3a  6c 61 73 74 76 61 6c 32  |$="200":lastval2|
00001230  24 3d 22 31 32 38 22 3a  6c 61 73 74 76 61 6c 33  |$="128":lastval3|
00001240  24 3d 22 31 32 38 22 0d  06 b8 25 6c 61 73 74 76  |$="128"...%lastv|
00001250  61 6c 34 24 3d 22 31 30  32 34 22 3a 6c 61 73 74  |al4$="1024":last|
00001260  76 61 6c 35 24 3d 22 34  30 39 36 22 0d 06 c2 11  |val5$="4096"....|
00001270  de 20 64 69 61 6c 6f 67  62 25 28 33 29 0d 06 cc  |. dialogb%(3)...|
00001280  0d 64 69 61 6c 6f 67 25  3d 30 0d 06 d6 41 69 6e  |.dialog%=0...Ain|
00001290  73 65 72 74 24 3d 22 22  3a 64 72 61 67 67 69 6e  |sert$="":draggin|
000012a0  67 25 3d a3 3a 64 72 61  67 6e 25 3d 30 3a 64 72  |g%=.:dragn%=0:dr|
000012b0  61 67 73 78 25 3d 30 3a  6f 6c 64 64 72 61 67 25  |agsx%=0:olddrag%|
000012c0  3d 30 3a 64 72 61 67 79  25 3d 30 0d 06 e0 11 6c  |=0:dragy%=0....l|
000012d0  61 73 74 6c 6f 61 64 65  64 25 3d 30 0d 06 ea 05  |astloaded%=0....|
000012e0  e1 0d 06 f4 05 3a 0d 06  fe 22 dd 20 f2 67 65 74  |.....:...". .get|
000012f0  73 74 65 70 73 28 f8 20  78 73 74 65 70 25 2c f8  |steps(. xstep%,.|
00001300  20 79 73 74 65 70 25 29  0d 07 08 19 78 6d 61 78  | ystep%)....xmax|
00001310  25 3d 31 32 38 30 3a 79  6d 61 78 25 3d 31 30 32  |%=1280:ymax%=102|
00001320  34 0d 07 12 0b 6d 6f 64  65 25 3d eb 0d 07 1c 17  |4....mode%=.....|
00001330  77 6c 65 66 74 25 3d 31  36 3a 77 62 6f 74 74 25  |wleft%=16:wbott%|
00001340  3d 31 36 0d 07 26 1d 77  77 69 64 74 68 25 3d 31  |=16..&.wwidth%=1|
00001350  30 32 34 3a 77 68 65 69  67 68 74 25 3d 32 35 36  |024:wheight%=256|
00001360  0d 07 30 0e c8 8e 20 6d  6f 64 65 25 20 ca 0d 07  |..0... mode% ...|
00001370  3a 39 20 20 c9 20 30 2c  38 2c 31 31 2c 31 32 2c  |:9  . 0,8,11,12,|
00001380  31 34 2c 31 35 2c 31 38  2c 31 39 2c 32 30 2c 32  |14,15,18,19,20,2|
00001390  31 2c 32 35 2c 32 36 2c  32 37 2c 32 38 3a 20 78  |1,25,26,27,28: x|
000013a0  73 74 65 70 25 3d 32 0d  07 44 1a 20 20 c9 20 31  |step%=2..D.  . 1|
000013b0  2c 34 2c 39 2c 31 33 3a  20 78 73 74 65 70 25 3d  |,4,9,13: xstep%=|
000013c0  34 0d 07 4e 18 20 20 c9  20 32 2c 35 2c 31 30 3a  |4..N.  . 2,5,10:|
000013d0  20 78 73 74 65 70 25 3d  38 0d 07 58 28 20 20 c9  | xstep%=8..X(  .|
000013e0  20 31 36 2c 31 37 2c 32  34 3a 20 78 73 74 65 70  | 16,17,24: xstep|
000013f0  25 3d 32 20 3a 78 6d 61  78 25 3d 31 30 35 36 2a  |%=2 :xmax%=1056*|
00001400  32 0d 07 62 20 20 20 c9  20 32 33 3a 20 78 73 74  |2..b   . 23: xst|
00001410  65 70 25 3d 31 20 3a 78  6d 61 78 25 3d 31 31 35  |ep%=1 :xmax%=115|
00001420  32 0d 07 6c 05 cb 0d 07  76 24 e7 20 6d 6f 64 65  |2..l....v$. mode|
00001430  25 3c 31 38 20 8c 20 79  73 74 65 70 25 3d 34 20  |%<18 . ystep%=4 |
00001440  8b 20 79 73 74 65 70 25  3d 32 0d 07 80 19 e7 20  |. ystep%=2..... |
00001450  6d 6f 64 65 25 3e 32 31  20 8c 20 79 73 74 65 70  |mode%>21 . ystep|
00001460  25 3d 31 0d 07 8a 05 e1  0d 07 94 05 3a 0d 07 9e  |%=1.........:...|
00001470  0f dd 20 f2 61 73 73 65  6d 62 6c 65 0d 07 a8 13  |.. .assemble....|
00001480  de 20 63 6f 64 65 25 20  32 30 2a 31 30 32 34 0d  |. code% 20*1024.|
00001490  07 b2 28 ff 28 22 4c 4f  41 44 20 3c 44 53 45 64  |..(.("LOAD <DSEd|
000014a0  69 74 24 44 69 72 3e 2e  43 6f 64 65 20 22 2b c3  |it$Dir>.Code "+.|
000014b0  7e 63 6f 64 65 25 29 0d  07 bc 04 0d 07 c6 1e 74  |~code%)........t|
000014c0  66 65 72 20 20 20 20 20  20 3d 28 63 6f 64 65 25  |fer      =(code%|
000014d0  21 30 29 2b 63 6f 64 65  25 0d 07 d0 1e 62 66 65  |!0)+code%....bfe|
000014e0  72 20 20 20 20 20 20 3d  28 63 6f 64 65 25 21 34  |r      =(code%!4|
000014f0  29 2b 63 6f 64 65 25 0d  07 da 1e 74 61 62 6c 65  |)+code%....table|
00001500  6d 6f 64 20 20 3d 28 63  6f 64 65 25 21 38 29 2b  |mod  =(code%!8)+|
00001510  63 6f 64 65 25 0d 07 e4  1f 61 64 64 62 6c 6f 63  |code%....addbloc|
00001520  6b 73 20 3d 28 63 6f 64  65 25 21 31 32 29 2b 63  |ks =(code%!12)+c|
00001530  6f 64 65 25 0d 07 ee 1f  61 64 64 63 6c 69 70 20  |ode%....addclip |
00001540  20 20 3d 28 63 6f 64 65  25 21 31 36 29 2b 63 6f  |  =(code%!16)+co|
00001550  64 65 25 0d 07 f8 1f 61  76 67 62 6c 6f 63 6b 73  |de%....avgblocks|
00001560  20 3d 28 63 6f 64 65 25  21 32 30 29 2b 63 6f 64  | =(code%!20)+cod|
00001570  65 25 0d 08 02 1f 61 76  67 63 6c 69 70 20 20 20  |e%....avgclip   |
00001580  3d 28 63 6f 64 65 25 21  32 34 29 2b 63 6f 64 65  |=(code%!24)+code|
00001590  25 0d 08 0c 05 e1 0d 08  16 05 3a 0d 08 20 26 dd  |%.........:.. &.|
000015a0  20 f2 73 74 61 72 74 64  72 61 67 28 6e 25 29 3a  | .startdrag(n%):|
000015b0  ea 20 78 25 2c 78 6c 25  2c 78 77 25 2c 63 6f 6e  |. x%,xl%,xw%,con|
000015c0  76 0d 08 2a 0f 64 72 61  67 67 69 6e 67 25 3d b9  |v..*.dragging%=.|
000015d0  0d 08 34 3b 64 72 61 67  6e 25 3d 6e 25 20 20 20  |..4;dragn%=n%   |
000015e0  20 20 20 20 20 20 20 20  20 20 20 3a f4 20 4e 75  |           :. Nu|
000015f0  6d 62 65 72 20 6f 66 20  73 6f 75 6e 64 20 62 65  |mber of sound be|
00001600  69 6e 67 20 64 72 61 67  67 65 64 0d 08 3e 3d 64  |ing dragged..>=d|
00001610  72 61 67 73 78 25 3d 62  25 21 30 20 20 20 20 20  |ragsx%=b%!0     |
00001620  20 20 20 20 20 20 3a f4  20 53 74 61 72 74 2d 78  |      :. Start-x|
00001630  20 28 73 63 72 65 65 6e  20 63 6f 6f 72 64 73 29  | (screen coords)|
00001640  20 6f 66 20 64 72 61 67  0d 08 48 3d 6f 6c 64 64  | of drag..H=oldd|
00001650  72 61 67 25 3d 26 34 32  34 32 34 32 34 32 20 20  |rag%=&42424242  |
00001660  20 20 20 3a f4 20 4f 6c  64 20 65 6e 64 2d 78 20  |   :. Old end-x |
00001670  28 20 22 20 20 20 20 20  22 20 20 20 29 20 6f 66  |( "     "   ) of|
00001680  20 64 72 61 67 0d 08 52  04 0d 08 5c 15 62 25 21  | drag..R...\.b%!|
00001690  30 3d 77 68 61 6e 64 6c  65 25 28 6e 25 29 0d 08  |0=whandle%(n%)..|
000016a0  66 20 c8 99 20 22 57 69  6d 70 5f 47 65 74 57 69  |f .. "Wimp_GetWi|
000016b0  6e 64 6f 77 53 74 61 74  65 22 2c 2c 62 25 0d 08  |ndowState",,b%..|
000016c0  70 18 78 25 3d 62 25 21  34 2d 62 25 21 32 30 2b  |p.x%=b%!4-b%!20+|
000016d0  77 6c 65 66 74 25 0d 08  7a 1d e7 20 64 72 61 67  |wleft%..z.. drag|
000016e0  73 78 25 3c 78 25 20 8c  20 64 72 61 67 73 78 25  |sx%<x% . dragsx%|
000016f0  3d 78 25 0d 08 84 2d e7  20 64 72 61 67 73 78 25  |=x%...-. dragsx%|
00001700  3e 78 25 2b 77 77 69 64  74 68 25 20 8c 20 64 72  |>x%+wwidth% . dr|
00001710  61 67 73 78 25 3d 78 25  2b 77 77 69 64 74 68 25  |agsx%=x%+wwidth%|
00001720  0d 08 8e 1d 64 72 61 67  79 25 3d 62 25 21 31 36  |....dragy%=b%!16|
00001730  2d 62 25 21 32 34 2b 77  62 6f 74 74 25 0d 08 98  |-b%!24+wbott%...|
00001740  04 0d 08 a2 22 f4 20 49  6e 76 65 72 74 20 6f 75  |....". Invert ou|
00001750  74 20 74 68 65 20 6f 6c  64 20 69 6e 76 65 72 73  |t the old invers|
00001760  69 6f 6e 0d 08 ac 1d 20  63 6f 6e 76 3d 77 77 69  |ion.... conv=wwi|
00001770  64 74 68 25 2f 6d 61 67  6c 65 6e 25 28 6e 25 29  |dth%/maglen%(n%)|
00001780  0d 08 b6 2c 20 78 6c 25  3d 28 73 73 74 61 72 74  |..., xl%=(sstart|
00001790  25 28 6e 25 29 2d 6d 61  67 73 74 61 72 74 25 28  |%(n%)-magstart%(|
000017a0  6e 25 29 29 2a 63 6f 6e  76 2b 78 25 0d 08 c0 16  |n%))*conv+x%....|
000017b0  20 e7 20 78 6c 25 3c 78  25 20 8c 20 78 6c 25 3d  | . xl%<x% . xl%=|
000017c0  78 25 0d 08 ca 35 20 78  77 25 3d 73 6c 65 6e 25  |x%...5 xw%=slen%|
000017d0  28 6e 25 29 2a 63 6f 6e  76 3a e7 20 78 77 25 3e  |(n%)*conv:. xw%>|
000017e0  31 30 32 33 20 84 20 78  77 25 3c 30 20 8c 20 78  |1023 . xw%<0 . x|
000017f0  77 25 3d 31 30 32 33 0d  08 d4 2a 20 e7 20 78 6c  |w%=1023...* . xl|
00001800  25 2b 78 77 25 2d 78 25  3e 31 30 32 33 20 8c 20  |%+xw%-x%>1023 . |
00001810  78 77 25 3d 31 30 32 33  2d 28 78 6c 25 2d 78 25  |xw%=1023-(xl%-x%|
00001820  29 0d 08 de 16 20 f2 64  72 61 67 69 6e 76 28 78  |).... .draginv(x|
00001830  6c 25 2c 78 77 25 29 0d  08 e8 04 0d 08 f2 22 f4  |l%,xw%).......".|
00001840  20 4e 6f 77 20 73 74 61  72 74 20 57 69 6d 70 5f  | Now start Wimp_|
00001850  44 72 61 67 42 6f 78 20  64 72 61 67 3a 0d 08 fc  |DragBox drag:...|
00001860  04 0d 09 06 14 21 62 25  3d 77 68 61 6e 64 6c 65  |.....!b%=whandle|
00001870  25 28 6e 25 29 0d 09 10  36 62 25 21 34 3d 37 20  |%(n%)...6b%!4=7 |
00001880  20 20 20 20 3a f4 20 57  69 6d 70 20 64 6f 65 73  |    :. Wimp does|
00001890  6e 27 74 20 64 72 61 77  20 74 68 65 20 64 72 61  |n't draw the dra|
000018a0  67 62 6f 78 20 66 6f 72  20 6d 65 0d 09 1a 22 62  |gbox for me..."b|
000018b0  25 21 38 3d 30 3a 62 25  21 31 32 3d 30 3a 62 25  |%!8=0:b%!12=0:b%|
000018c0  21 31 36 3d 30 3a 62 25  21 32 30 3d 30 0d 09 24  |!16=0:b%!20=0..$|
000018d0  4b 62 25 21 32 34 3d 78  25 20 20 20 3a f4 20 4d  |Kb%!24=x%   :. M|
000018e0  6f 75 73 65 20 62 6f 75  6e 64 73 20 72 65 63 74  |ouse bounds rect|
000018f0  61 6e 67 6c 65 20 2d 20  6b 65 65 70 20 70 6f 69  |angle - keep poi|
00001900  6e 74 65 72 20 77 69 74  68 69 6e 20 73 6f 75 6e  |nter within soun|
00001910  64 5f 77 69 6e 64 6f 77  0d 09 2e 10 62 25 21 32  |d_window....b%!2|
00001920  38 3d 64 72 61 67 79 25  0d 09 38 14 62 25 21 33  |8=dragy%..8.b%!3|
00001930  32 3d 78 25 2b 77 77 69  64 74 68 25 0d 09 42 19  |2=x%+wwidth%..B.|
00001940  62 25 21 33 36 3d 64 72  61 67 79 25 2b 77 68 65  |b%!36=dragy%+whe|
00001950  69 67 68 74 25 0d 09 4c  19 c8 99 20 22 57 69 6d  |ight%..L... "Wim|
00001960  70 5f 44 72 61 67 42 6f  78 22 2c 2c 62 25 0d 09  |p_DragBox",,b%..|
00001970  56 05 e1 0d 09 60 05 3a  0d 09 6a 11 dd 20 f2 66  |V....`.:..j.. .f|
00001980  69 6e 69 73 68 64 72 61  67 0d 09 74 1e e7 20 ac  |inishdrag..t.. .|
00001990  64 72 61 67 67 69 6e 67  25 20 8c 20 f2 73 65 6e  |dragging% . .sen|
000019a0  64 73 61 76 65 3a e1 0d  09 7e 0f 64 72 61 67 67  |dsave:...~.dragg|
000019b0  69 6e 67 25 3d a3 0d 09  88 04 0d 09 92 19 62 25  |ing%=.........b%|
000019c0  21 30 3d 77 68 61 6e 64  6c 65 25 28 64 72 61 67  |!0=whandle%(drag|
000019d0  6e 25 29 0d 09 9c 20 c8  99 20 22 57 69 6d 70 5f  |n%)... .. "Wimp_|
000019e0  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
000019f0  2c 62 25 0d 09 a6 18 78  25 3d 62 25 21 34 2d 62  |,b%....x%=b%!4-b|
00001a00  25 21 32 30 2b 77 6c 65  66 74 25 0d 09 b0 04 0d  |%!20+wleft%.....|
00001a10  09 ba 1a e7 20 6f 6c 64  64 72 61 67 25 3d 26 34  |.... olddrag%=&4|
00001a20  32 34 32 34 32 34 32 20  8c 0d 09 c4 16 20 20 6f  |2424242 .....  o|
00001a30  6c 64 64 72 61 67 25 3d  64 72 61 67 73 78 25 0d  |lddrag%=dragsx%.|
00001a40  09 ce 05 cd 0d 09 d8 2c  e7 20 6f 6c 64 64 72 61  |.......,. olddra|
00001a50  67 25 3c 64 72 61 67 73  78 25 20 8c 20 c8 94 20  |g%<dragsx% . .. |
00001a60  64 72 61 67 73 78 25 2c  6f 6c 64 64 72 61 67 25  |dragsx%,olddrag%|
00001a70  0d 09 e2 21 6f 6c 64 64  72 61 67 25 2d 3d 64 72  |...!olddrag%-=dr|
00001a80  61 67 73 78 25 3a 64 72  61 67 73 78 25 2d 3d 78  |agsx%:dragsx%-=x|
00001a90  25 0d 09 ec 19 e7 20 64  72 61 67 73 78 25 3c 30  |%..... dragsx%<0|
00001aa0  20 64 72 61 67 73 78 25  3d 30 0d 09 f6 21 e7 20  | dragsx%=0...!. |
00001ab0  64 72 61 67 73 78 25 3e  31 30 35 36 20 8c 20 64  |dragsx%>1056 . d|
00001ac0  72 61 67 73 78 25 3d 31  30 35 36 0d 0a 00 1d e7  |ragsx%=1056.....|
00001ad0  20 6f 6c 64 64 72 61 67  25 3c 30 20 8c 20 6f 6c  | olddrag%<0 . ol|
00001ae0  64 64 72 61 67 25 3d 30  0d 0a 0a 33 e7 20 64 72  |ddrag%=0...3. dr|
00001af0  61 67 73 78 25 2b 6f 6c  64 64 72 61 67 25 3e 31  |agsx%+olddrag%>1|
00001b00  30 35 36 20 8c 20 6f 6c  64 64 72 61 67 25 3d 31  |056 . olddrag%=1|
00001b10  30 35 36 2d 64 72 61 67  73 78 25 0d 0a 14 04 0d  |056-dragsx%.....|
00001b20  0a 1e 47 73 73 74 61 72  74 25 28 64 72 61 67 6e  |..Gsstart%(dragn|
00001b30  25 29 3d 6d 61 67 73 74  61 72 74 25 28 64 72 61  |%)=magstart%(dra|
00001b40  67 6e 25 29 2b 6d 61 67  6c 65 6e 25 28 64 72 61  |gn%)+maglen%(dra|
00001b50  67 6e 25 29 2a 28 64 72  61 67 73 78 25 2f 77 77  |gn%)*(dragsx%/ww|
00001b60  69 64 74 68 25 29 0d 0a  28 34 73 6c 65 6e 25 28  |idth%)..(4slen%(|
00001b70  64 72 61 67 6e 25 29 3d  6d 61 67 6c 65 6e 25 28  |dragn%)=maglen%(|
00001b80  64 72 61 67 6e 25 29 2a  28 6f 6c 64 64 72 61 67  |dragn%)*(olddrag|
00001b90  25 2f 77 77 69 64 74 68  25 29 0d 0a 32 13 f2 63  |%/wwidth%)..2..c|
00001ba0  68 6b 6d 61 67 28 64 72  61 67 6e 25 29 0d 0a 3c  |hkmag(dragn%)..<|
00001bb0  15 f2 69 6e 66 6f 74 65  78 74 28 64 72 61 67 6e  |..infotext(dragn|
00001bc0  25 29 0d 0a 46 36 c8 99  22 57 69 6d 70 5f 46 6f  |%)..F6.."Wimp_Fo|
00001bd0  72 63 65 52 65 64 72 61  77 22 2c 77 68 61 6e 64  |rceRedraw",whand|
00001be0  6c 65 25 28 64 72 61 67  6e 25 29 2c 30 2c 30 2c  |le%(dragn%),0,0,|
00001bf0  31 32 37 39 2c 32 38 38  0d 0a 50 05 e1 0d 0a 5a  |1279,288..P....Z|
00001c00  05 3a 0d 0a 64 1e dd 20  f2 64 72 61 67 3a ea 20  |.:..d.. .drag:. |
00001c10  78 25 2c 79 25 2c 62 75  74 25 2c 73 74 65 70 25  |x%,y%,but%,step%|
00001c20  0d 0a 6e 14 e7 20 ac 64  72 61 67 67 69 6e 67 25  |..n.. .dragging%|
00001c30  20 8c 20 e1 0d 0a 78 1e  c8 99 20 22 4f 53 5f 4d  | . ...x... "OS_M|
00001c40  6f 75 73 65 22 20 b8 20  78 25 2c 79 25 2c 62 75  |ouse" . x%,y%,bu|
00001c50  74 25 0d 0a 82 04 0d 0a  8c 4a e7 20 6f 6c 64 64  |t%.......J. oldd|
00001c60  72 61 67 25 3d 26 34 32  34 32 34 32 34 32 20 8c  |rag%=&42424242 .|
00001c70  20 e6 33 2c 37 3a 6f 6c  64 64 72 61 67 25 3d 78  | .3,7:olddrag%=x|
00001c80  25 3a f2 64 72 61 67 69  6e 76 28 64 72 61 67 73  |%:.draginv(drags|
00001c90  78 25 2c 78 25 2d 64 72  61 67 73 78 25 29 3a e1  |x%,x%-dragsx%):.|
00001ca0  0d 0a 96 23 e7 20 78 25  81 78 73 74 65 70 25 3d  |...#. x%.xstep%=|
00001cb0  6f 6c 64 64 72 61 67 25  81 78 73 74 65 70 25 20  |olddrag%.xstep% |
00001cc0  8c 20 e1 0d 0a a0 04 0d  0a aa 3b 20 20 20 20 20  |. ........;     |
00001cd0  20 20 20 f4 20 46 6f 72  20 6e 6f 6e 2d 66 6c 69  |   . For non-fli|
00001ce0  63 6b 65 72 2d 62 75 74  2d 6e 6f 74 2d 71 75 69  |cker-but-not-qui|
00001cf0  74 65 2d 72 69 67 68 74  20 69 6e 76 65 72 74 2e  |te-right invert.|
00001d00  2e 2e 0d 0a b4 10 73 74  65 70 25 3d 78 73 74 65  |......step%=xste|
00001d10  70 25 0d 0a be 51 e7 20  28 6f 6c 64 64 72 61 67  |p%...Q. (olddrag|
00001d20  25 3c 64 72 61 67 73 78  25 20 80 20 78 25 3e 64  |%<dragsx% . x%>d|
00001d30  72 61 67 73 78 25 29 20  84 20 28 6f 6c 64 64 72  |ragsx%) . (olddr|
00001d40  61 67 25 3e 64 72 61 67  73 78 25 20 80 20 78 25  |ag%>dragsx% . x%|
00001d50  3c 64 72 61 67 73 78 25  29 20 8c 20 73 74 65 70  |<dragsx%) . step|
00001d60  25 3d 30 0d 0a c8 04 0d  0a d2 12 e7 20 78 25 3e  |%=0......... x%>|
00001d70  64 72 61 67 73 78 25 20  8c 0d 0a dc 15 20 20 e7  |dragsx% .....  .|
00001d80  20 6f 6c 64 64 72 61 67  25 3e 78 25 20 8c 0d 0a  | olddrag%>x% ...|
00001d90  e6 2e 20 20 20 20 f2 64  72 61 67 69 6e 76 28 78  |..    .draginv(x|
00001da0  25 2b 73 74 65 70 25 2c  6f 6c 64 64 72 61 67 25  |%+step%,olddrag%|
00001db0  2d 28 78 25 2b 73 74 65  70 25 29 29 0d 0a f0 07  |-(x%+step%))....|
00001dc0  20 20 cc 0d 0a fa 34 20  20 20 20 f2 64 72 61 67  |  ....4    .drag|
00001dd0  69 6e 76 28 6f 6c 64 64  72 61 67 25 2b 73 74 65  |inv(olddrag%+ste|
00001de0  70 25 2c 78 25 2d 28 6f  6c 64 64 72 61 67 25 2b  |p%,x%-(olddrag%+|
00001df0  73 74 65 70 25 29 29 0d  0b 04 07 20 20 cd 0d 0b  |step%))....  ...|
00001e00  0e 05 cc 0d 0b 18 15 20  20 e7 20 6f 6c 64 64 72  |.......  . olddr|
00001e10  61 67 25 3e 78 25 20 8c  0d 0b 22 28 20 20 20 20  |ag%>x% ..."(    |
00001e20  f2 64 72 61 67 69 6e 76  28 78 25 2c 28 6f 6c 64  |.draginv(x%,(old|
00001e30  64 72 61 67 25 2d 73 74  65 70 25 29 2d 78 25 29  |drag%-step%)-x%)|
00001e40  0d 0b 2c 07 20 20 cc 0d  0b 36 2e 20 20 20 20 f2  |..,.  ...6.    .|
00001e50  64 72 61 67 69 6e 76 28  6f 6c 64 64 72 61 67 25  |draginv(olddrag%|
00001e60  2c 78 25 2d 28 6f 6c 64  64 72 61 67 25 2b 73 74  |,x%-(olddrag%+st|
00001e70  65 70 25 29 29 0d 0b 40  07 20 20 cd 0d 0b 4a 05  |ep%))..@.  ...J.|
00001e80  cd 0d 0b 54 0f 6f 6c 64  64 72 61 67 25 3d 78 25  |...T.olddrag%=x%|
00001e90  0d 0b 5e 05 e1 0d 0b 68  05 3a 0d 0b 72 27 dd 20  |..^....h.:..r'. |
00001ea0  f2 64 72 61 67 69 6e 76  28 78 31 25 2c 78 32 25  |.draginv(x1%,x2%|
00001eb0  29 3a ea 20 6d 6f 72 65  25 2c 78 30 25 2c 79 30  |):. more%,x0%,y0|
00001ec0  25 0d 0b 7c 21 e7 20 78  32 25 3c 30 20 8c 20 78  |%..|!. x2%<0 . x|
00001ed0  32 25 3d 94 28 78 32 25  29 3a 78 31 25 2d 3d 78  |2%=.(x2%):x1%-=x|
00001ee0  32 25 0d 0b 86 04 0d 0b  90 18 21 62 25 3d 77 68  |2%........!b%=wh|
00001ef0  61 6e 64 6c 65 25 28 64  72 61 67 6e 25 29 0d 0b  |andle%(dragn%)..|
00001f00  9a 1f c8 99 22 57 69 6d  70 5f 47 65 74 57 69 6e  |...."Wimp_GetWin|
00001f10  64 6f 77 53 74 61 74 65  22 2c 2c 62 25 0d 0b a4  |dowState",,b%...|
00001f20  12 78 30 25 3d 62 25 21  34 2d 62 25 21 32 30 0d  |.x0%=b%!4-b%!20.|
00001f30  0b ae 04 0d 0b b8 19 62  25 21 34 3d 28 78 31 25  |.......b%!4=(x1%|
00001f40  2d 78 73 74 65 70 25 29  2d 78 30 25 0d 0b c2 0f  |-xstep%)-x0%....|
00001f50  62 25 21 38 3d 77 62 6f  74 74 25 0d 0b cc 1e 62  |b%!8=wbott%....b|
00001f60  25 21 31 32 3d 28 78 31  25 2b 78 32 25 2b 78 73  |%!12=(x1%+x2%+xs|
00001f70  74 65 70 25 29 2d 78 30  25 0d 0b d6 20 62 25 21  |tep%)-x0%... b%!|
00001f80  31 36 3d 77 62 6f 74 74  25 2b 77 68 65 69 67 68  |16=wbott%+wheigh|
00001f90  74 25 2b 79 73 74 65 70  25 0d 0b e0 04 0d 0b ea  |t%+ystep%.......|
00001fa0  26 c8 99 20 22 57 69 6d  70 5f 55 70 64 61 74 65  |&.. "Wimp_Update|
00001fb0  57 69 6e 64 6f 77 22 2c  2c 62 25 20 b8 20 6d 6f  |Window",,b% . mo|
00001fc0  72 65 25 0d 0b f4 08 e6  33 2c 37 0d 0b fe 0c c8  |re%.....3,7.....|
00001fd0  95 20 6d 6f 72 65 25 0d  0c 08 15 20 20 79 30 25  |. more%....  y0%|
00001fe0  3d 62 25 21 31 36 2d 62  25 21 32 34 0d 0c 12 2c  |=b%!16-b%!24...,|
00001ff0  20 20 e6 20 33 2c 37 3a  c8 93 c8 90 20 78 31 25  |  . 3,7:.... x1%|
00002000  2c 79 30 25 2b 77 62 6f  74 74 25 2c 78 32 25 2c  |,y0%+wbott%,x2%,|
00002010  77 68 65 69 67 68 74 25  0d 0c 1c 28 20 20 c8 99  |wheight%...(  ..|
00002020  20 22 57 69 6d 70 5f 47  65 74 52 65 63 74 61 6e  | "Wimp_GetRectan|
00002030  67 6c 65 22 2c 2c 62 25  20 b8 20 6d 6f 72 65 25  |gle",,b% . more%|
00002040  0d 0c 26 05 ce 0d 0c 30  05 e1 0d 0c 3a 05 3a 0d  |..&....0....:.:.|
00002050  0c 44 26 dd 20 f2 69 6e  76 65 72 74 28 6e 25 2c  |.D&. .invert(n%,|
00002060  78 25 2c 79 25 29 3a ea  20 78 6c 25 2c 78 77 25  |x%,y%):. xl%,xw%|
00002070  2c 63 6f 6e 76 0d 0c 4e  30 e7 20 64 72 61 67 67  |,conv..N0. dragg|
00002080  69 6e 67 25 20 8c 20 e1  20 20 3a f4 20 4e 4f 20  |ing% . .  :. NO |
00002090  49 4e 56 45 52 53 49 4f  4e 20 69 66 20 64 72 61  |INVERSION if dra|
000020a0  67 67 69 6e 67 0d 0c 58  23 e7 20 6d 61 67 6c 65  |gging..X#. magle|
000020b0  6e 25 28 6e 25 29 3c 31  20 8c 20 6d 61 67 6c 65  |n%(n%)<1 . magle|
000020c0  6e 25 28 6e 25 29 3d 31  0d 0c 62 1c 63 6f 6e 76  |n%(n%)=1..b.conv|
000020d0  3d 77 77 69 64 74 68 25  2f 6d 61 67 6c 65 6e 25  |=wwidth%/maglen%|
000020e0  28 6e 25 29 0d 0c 6c 2b  78 6c 25 3d 28 73 73 74  |(n%)..l+xl%=(sst|
000020f0  61 72 74 25 28 6e 25 29  2d 6d 61 67 73 74 61 72  |art%(n%)-magstar|
00002100  74 25 28 6e 25 29 29 2a  63 6f 6e 76 2b 78 25 0d  |t%(n%))*conv+x%.|
00002110  0c 76 15 e7 20 78 6c 25  3c 78 25 20 8c 20 78 6c  |.v.. xl%<x% . xl|
00002120  25 3d 78 25 0d 0c 80 34  78 77 25 3d 73 6c 65 6e  |%=x%...4xw%=slen|
00002130  25 28 6e 25 29 2a 63 6f  6e 76 3a e7 20 78 77 25  |%(n%)*conv:. xw%|
00002140  3e 31 30 32 33 20 84 20  78 77 25 3c 30 20 8c 20  |>1023 . xw%<0 . |
00002150  78 77 25 3d 31 30 32 33  0d 0c 8a 29 e7 20 78 6c  |xw%=1023...). xl|
00002160  25 2b 78 77 25 2d 78 25  3e 31 30 32 33 20 8c 20  |%+xw%-x%>1023 . |
00002170  78 77 25 3d 31 30 32 33  2d 28 78 6c 25 2d 78 25  |xw%=1023-(xl%-x%|
00002180  29 0d 0c 94 04 0d 0c 9e  08 e6 33 2c 37 0d 0c a8  |).........3,7...|
00002190  1c c8 93 c8 90 20 78 6c  25 2c 79 25 2c 78 77 25  |..... xl%,y%,xw%|
000021a0  2c 77 68 65 69 67 68 74  25 0d 0c b2 05 e1 0d 0c  |,wheight%.......|
000021b0  bc 05 3a 0d 0c c6 11 dd  20 f2 72 65 64 72 61 77  |..:..... .redraw|
000021c0  28 62 25 29 0d 0c d0 18  ea 20 6d 6f 72 65 25 2c  |(b%)..... more%,|
000021d0  6e 75 6d 25 2c 78 30 25  2c 79 30 25 0d 0c da 1b  |num%,x0%,y0%....|
000021e0  6e 75 6d 25 3d a4 68 61  6e 64 6c 65 74 6f 73 6e  |num%=.handletosn|
000021f0  75 6d 28 21 62 25 29 0d  0c e4 26 c8 99 20 22 57  |um(!b%)...&.. "W|
00002200  69 6d 70 5f 52 65 64 72  61 77 57 69 6e 64 6f 77  |imp_RedrawWindow|
00002210  22 2c 2c 62 25 20 b8 20  6d 6f 72 65 25 0d 0c ee  |",,b% . more%...|
00002220  04 0d 0c f8 0c c8 95 20  6d 6f 72 65 25 0d 0d 02  |....... more%...|
00002230  14 20 20 78 30 25 3d 62  25 21 34 2d 62 25 21 32  |.  x0%=b%!4-b%!2|
00002240  30 0d 0d 0c 15 20 20 79  30 25 3d 62 25 21 31 36  |0....  y0%=b%!16|
00002250  2d 62 25 21 32 34 0d 0d  16 19 20 20 f2 64 72 61  |-b%!24....  .dra|
00002260  77 28 6e 75 6d 25 2c 78  30 25 2c 79 30 25 29 0d  |w(num%,x0%,y0%).|
00002270  0d 20 28 20 20 c8 99 20  22 57 69 6d 70 5f 47 65  |. (  .. "Wimp_Ge|
00002280  74 52 65 63 74 61 6e 67  6c 65 22 2c 2c 62 25 20  |tRectangle",,b% |
00002290  b8 20 6d 6f 72 65 25 0d  0d 2a 05 ce 0d 0d 34 05  |. more%..*....4.|
000022a0  e1 0d 0d 3e 05 3a 0d 0d  48 1c dd 20 a4 68 61 6e  |...>.:..H.. .han|
000022b0  64 6c 65 74 6f 73 6e 75  6d 28 68 61 6e 64 6c 65  |dletosnum(handle|
000022c0  25 29 0d 0d 52 0d ea 20  6e 75 6d 25 2c 5a 25 0d  |%)..R.. num%,Z%.|
000022d0  0d 5c 0f 5a 25 3d 30 3a  6e 75 6d 25 3d 30 0d 0d  |.\.Z%=0:num%=0..|
000022e0  66 0b f5 3a 5a 25 2b 3d  31 0d 0d 70 26 20 20 e7  |f..:Z%+=1..p&  .|
000022f0  20 77 68 61 6e 64 6c 65  25 28 5a 25 29 3d 68 61  | whandle%(Z%)=ha|
00002300  6e 64 6c 65 25 20 8c 20  6e 75 6d 25 3d 5a 25 0d  |ndle% . num%=Z%.|
00002310  0d 7a 18 fd 20 6e 75 6d  25 3e 30 20 84 20 5a 25  |.z.. num%>0 . Z%|
00002320  3e 3d 73 6e 75 6d 25 0d  0d 84 09 3d 6e 75 6d 25  |>=snum%....=num%|
00002330  0d 0d 8e 05 3a 0d 0d 98  14 dd 20 f2 73 65 74 75  |....:..... .setu|
00002340  70 64 74 28 6e 75 6d 25  29 0d 0d a2 17 f2 72 65  |pdt(num%).....re|
00002350  6c 65 61 73 65 28 64 74  25 28 6e 75 6d 25 29 29  |lease(dt%(num%))|
00002360  0d 0d ac 1a 64 74 25 28  6e 75 6d 25 29 3d a4 63  |....dt%(num%)=.c|
00002370  6c 61 69 6d 28 31 30 32  34 29 0d 0d b6 36 e7 20  |laim(1024)...6. |
00002380  64 74 25 28 6e 75 6d 25  29 3d 30 20 8c 20 85 20  |dt%(num%)=0 . . |
00002390  34 32 2c 22 46 61 74 61  6c 20 65 72 72 6f 72 3a  |42,"Fatal error:|
000023a0  20 4e 6f 20 72 6f 6f 6d  20 69 6e 20 52 4d 41 22  | No room in RMA"|
000023b0  0d 0d c0 11 e3 20 5a 25  3d 30 20 b8 20 31 30 32  |..... Z%=0 . 102|
000023c0  33 0d 0d ca 3f 20 20 64  74 25 28 6e 75 6d 25 29  |3...?  dt%(num%)|
000023d0  3f 5a 25 3d 6d 61 67 73  74 61 72 74 25 28 6e 75  |?Z%=magstart%(nu|
000023e0  6d 25 29 3f 28 28 5a 25  2f 77 77 69 64 74 68 25  |m%)?((Z%/wwidth%|
000023f0  29 2a 6d 61 67 6c 65 6e  25 28 6e 75 6d 25 29 29  |)*maglen%(num%))|
00002400  0d 0d d4 05 ed 0d 0d de  05 e1 0d 0d e8 05 3a 0d  |..............:.|
00002410  0d f2 19 dd 20 f2 64 72  61 77 28 6e 75 6d 25 2c  |.... .draw(num%,|
00002420  78 30 25 2c 79 30 25 29  0d 0d fc 0e ea 20 78 25  |x0%,y0%)..... x%|
00002430  2c 79 25 2c 77 25 0d 0e  06 21 6c 65 66 74 25 3d  |,y%,w%...!left%=|
00002440  62 25 21 32 38 2d 78 30  25 2d 77 6c 65 66 74 25  |b%!28-x0%-wleft%|
00002450  2d 78 73 74 65 70 25 0d  0e 10 1b 72 69 67 68 74  |-xstep%....right|
00002460  25 3d 62 25 21 33 36 2d  78 30 25 2d 77 6c 65 66  |%=b%!36-x0%-wlef|
00002470  74 25 0d 0e 1a 15 e7 20  6c 65 66 74 25 3c 30 20  |t%..... left%<0 |
00002480  6c 65 66 74 25 3d 30 0d  0e 24 2e e7 20 94 28 72  |left%=0..$.. .(r|
00002490  69 67 68 74 25 2d 6c 65  66 74 25 29 3e 31 30 32  |ight%-left%)>102|
000024a0  33 20 8c 20 72 69 67 68  74 25 3d 6c 65 66 74 25  |3 . right%=left%|
000024b0  2b 31 30 32 33 0d 0e 2e  1e e7 20 72 69 67 68 74  |+1023..... right|
000024c0  25 3e 31 30 32 33 20 8c  72 69 67 68 74 25 3d 31  |%>1023 .right%=1|
000024d0  30 32 33 0d 0e 38 16 77  25 3d 94 28 72 69 67 68  |023..8.w%=.(righ|
000024e0  74 25 2d 6c 65 66 74 25  29 0d 0e 42 0f e7 20 77  |t%-left%)..B.. w|
000024f0  25 3c 3d 30 20 8c 20 e1  0d 0e 4c 04 0d 0e 56 11  |%<=0 . ...L...V.|
00002500  79 25 3d 79 30 25 2b 77  62 6f 74 74 25 0d 0e 60  |y%=y0%+wbott%..`|
00002510  11 78 25 3d 78 30 25 2b  77 6c 65 66 74 25 0d 0e  |.x%=x0%+wleft%..|
00002520  6a 04 0d 0e 74 1c 6c 69  6e 65 25 3d 28 66 6c 61  |j...t.line%=(fla|
00002530  67 73 25 28 6e 75 6d 25  29 20 80 20 31 29 0d 0e  |gs%(num%) . 1)..|
00002540  7e 04 0d 0e 88 27 f2 63  6f 6c 28 30 29 3a c8 93  |~....'.col(0):..|
00002550  c8 90 20 78 25 2c 79 25  2c 77 77 69 64 74 68 25  |.. x%,y%,wwidth%|
00002560  2c 77 68 65 69 67 68 74  25 0d 0e 92 38 f2 63 6f  |,wheight%...8.co|
00002570  6c 28 31 35 29 3a 86 20  78 25 2c 79 25 2b 77 68  |l(15):. x%,y%+wh|
00002580  65 69 67 68 74 25 81 32  2c 78 25 2b 77 77 69 64  |eight%.2,x%+wwid|
00002590  74 68 25 2c 79 25 2b 77  68 65 69 67 68 74 25 81  |th%,y%+wheight%.|
000025a0  32 0d 0e 9c 2f f2 63 6f  6c 28 37 29 3a c8 93 20  |2.../.col(7):.. |
000025b0  78 25 2d 38 2c 79 25 2d  38 2c 77 77 69 64 74 68  |x%-8,y%-8,wwidth|
000025c0  25 2b 31 36 2c 77 68 65  69 67 68 74 25 2b 31 36  |%+16,wheight%+16|
000025d0  0d 0e a6 04 0d 0e b0 04  0d 0e ba 0b f2 63 6f 6c  |.............col|
000025e0  28 35 29 0d 0e c4 14 e7  20 6c 65 66 74 25 3c 78  |(5)..... left%<x|
000025f0  73 74 65 70 25 20 8c 0d  0e ce 18 20 20 ec 20 78  |step% .....  . x|
00002600  25 2c 79 25 2b 77 68 65  69 67 68 74 25 81 32 0d  |%,y%+wheight%.2.|
00002610  0e d8 05 cc 0d 0e e2 28  20 20 ec 20 78 25 2c 79  |.......(  . x%,y|
00002620  25 2b 28 64 74 25 28 6e  75 6d 25 29 3f 28 6c 65  |%+(dt%(num%)?(le|
00002630  66 74 25 2d 78 73 74 65  70 25 29 29 0d 0e ec 05  |ft%-xstep%))....|
00002640  cd 0d 0e f6 04 0d 0f 00  1f e7 6c 69 6e 65 25 20  |..........line% |
00002650  f2 64 72 61 77 6c 69 6e  65 20 8b 20 f2 64 72 61  |.drawline . .dra|
00002660  77 64 6f 74 0d 0f 0a 17  f2 69 6e 76 65 72 74 28  |wdot.....invert(|
00002670  6e 75 6d 25 2c 78 25 2c  79 25 29 0d 0f 14 05 e1  |num%,x%,y%).....|
00002680  0d 0f 1e 05 3a 0d 0f 28  0f dd 20 f2 64 72 61 77  |....:..(.. .draw|
00002690  6c 69 6e 65 0d 0f 32 20  e3 20 58 25 3d 6c 65 66  |line..2 . X%=lef|
000026a0  74 25 20 b8 20 72 69 67  68 74 25 20 88 20 78 73  |t% . right% . xs|
000026b0  74 65 70 25 0d 0f 3c 1d  20 20 df 20 58 25 2b 78  |tep%..<.  . X%+x|
000026c0  25 2c 64 74 25 28 6e 75  6d 25 29 3f 58 25 2b 79  |%,dt%(num%)?X%+y|
000026d0  25 0d 0f 46 05 ed 0d 0f  50 05 e1 0d 0f 5a 05 3a  |%..F....P....Z.:|
000026e0  0d 0f 64 0e dd 20 f2 64  72 61 77 64 6f 74 0d 0f  |..d.. .drawdot..|
000026f0  6e 20 e3 20 58 25 3d 6c  65 66 74 25 20 b8 20 72  |n . X%=left% . r|
00002700  69 67 68 74 25 20 88 20  78 73 74 65 70 25 0d 0f  |ight% . xstep%..|
00002710  78 3b 20 20 c8 92 20 58  25 2b 78 25 2c 64 74 25  |x;  .. X%+x%,dt%|
00002720  28 6e 75 6d 25 29 3f 58  25 2b 79 25 3a c8 92 20  |(num%)?X%+y%:.. |
00002730  58 25 2b 78 25 2c 79 25  2b 64 74 25 28 6e 75 6d  |X%+x%,y%+dt%(num|
00002740  25 29 3f 28 58 25 2b 31  29 0d 0f 82 05 ed 0d 0f  |%)?(X%+1).......|
00002750  8c 05 e1 0d 0f 96 05 3a  0d 0f a0 0e dd 20 f2 63  |.......:..... .c|
00002760  6f 6c 28 63 25 29 0d 0f  aa 1a c8 99 20 22 57 69  |ol(c%)...... "Wi|
00002770  6d 70 5f 53 65 74 43 6f  6c 6f 75 72 22 2c 63 25  |mp_SetColour",c%|
00002780  0d 0f b4 05 e1 0d 0f be  05 3a 0d 0f c8 2e dd 20  |.........:..... |
00002790  f2 6c 6f 61 64 66 69 6c  65 28 f8 20 73 74 61 72  |.loadfile(. star|
000027a0  74 25 2c f8 20 6c 65 6e  67 74 68 25 2c f8 20 6c  |t%,. length%,. l|
000027b0  25 2c 6e 61 6d 65 24 29  0d 0f d2 0c ea 20 63 68  |%,name$)..... ch|
000027c0  25 2c 6c 25 0d 0f dc 04  0d 0f e6 2c 63 68 25 3d  |%,l%.......,ch%=|
000027d0  8e 28 6e 61 6d 65 24 29  3a e7 20 63 68 25 3d 30  |.(name$):. ch%=0|
000027e0  20 8c 20 d9 23 63 68 25  3a 73 74 61 72 74 25 3d  | . .#ch%:start%=|
000027f0  2d 31 3a e1 0d 0f f0 11  6c 65 6e 67 74 68 25 3d  |-1:.....length%=|
00002800  a2 23 63 68 25 0d 0f fa  09 d9 23 63 68 25 0d 10  |.#ch%.....#ch%..|
00002810  04 2a 6c 25 3d 28 28 6c  65 6e 67 74 68 25 81 72  |.*l%=((length%.r|
00002820  6f 75 6e 64 73 69 7a 65  25 29 2b 31 29 2a 72 6f  |oundsize%)+1)*ro|
00002830  75 6e 64 73 69 7a 65 25  0d 10 0e 15 73 74 61 72  |undsize%....star|
00002840  74 25 3d a4 63 6c 61 69  6d 28 6c 25 29 0d 10 18  |t%=.claim(l%)...|
00002850  12 e7 20 73 74 61 72 74  25 3c 31 20 8c 20 e1 0d  |.. start%<1 . ..|
00002860  10 22 04 0d 10 2c 21 ff  28 22 4c 4f 41 44 20 22  |."...,!.("LOAD "|
00002870  2b 6e 61 6d 65 24 2b 22  20 22 2b c3 7e 73 74 61  |+name$+" "+.~sta|
00002880  72 74 25 29 0d 10 36 05  e1 0d 10 40 05 3a 0d 10  |rt%)..6....@.:..|
00002890  4a 11 dd 20 f2 69 6e 69  74 64 72 69 76 65 72 0d  |J.. .initdriver.|
000028a0  10 54 2d ff 28 22 2a 4c  4f 2e 20 3c 44 53 45 64  |.T-.("*LO. <DSEd|
000028b0  69 74 24 44 69 72 3e 2e  53 70 65 61 6b 65 72 20  |it$Dir>.Speaker |
000028c0  22 2b c3 7e 64 72 69 76  65 72 25 29 0d 10 5e 11  |"+.~driver%)..^.|
000028d0  d6 20 64 72 69 76 65 72  25 2b 26 46 34 0d 10 68  |. driver%+&F4..h|
000028e0  05 e1 0d 10 72 05 3a 0d  10 7c 2d dd 20 f2 70 6c  |....r.:..|-. .pl|
000028f0  61 79 28 6e 25 2c 73 74  61 72 74 25 2c 6c 65 6e  |ay(n%,start%,len|
00002900  67 74 68 25 2c 73 70 65  65 64 25 2c 76 6f 6c 75  |gth%,speed%,volu|
00002910  6d 65 25 29 0d 10 86 04  0d 10 90 14 64 72 69 76  |me%)........driv|
00002920  65 72 25 21 30 3d 73 74  61 72 74 25 0d 10 9a 1c  |er%!0=start%....|
00002930  64 72 69 76 65 72 25 21  34 3d 73 74 61 72 74 25  |driver%!4=start%|
00002940  2b 6c 65 6e 67 74 68 25  0d 10 a4 16 64 72 69 76  |+length%....driv|
00002950  65 72 25 3f 26 31 43 3d  73 70 65 65 64 25 0d 10  |er%?&1C=speed%..|
00002960  ae 11 d6 20 64 72 69 76  65 72 25 2b 26 46 34 0d  |... driver%+&F4.|
00002970  10 b8 04 0d 10 c2 08 c8  a0 20 32 0d 10 cc 0f 2a  |......... 2....*|
00002980  56 4f 4c 55 4d 45 20 31  32 37 0d 10 d6 0d 2a 43  |VOLUME 127....*C|
00002990  48 41 2e 20 32 20 38 0d  10 e0 18 d4 20 32 2c 2d  |HA. 2 8..... 2,-|
000029a0  76 6f 6c 75 6d 65 25 2c  32 35 35 2c 32 35 35 0d  |volume%,255,255.|
000029b0  10 ea 09 2a 46 58 32 31  0d 10 f4 05 e1 0d 10 fe  |...*FX21........|
000029c0  05 3a 0d 11 08 4d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |.:...M==========|
000029d0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00002a00  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 0d  |===============.|
00002a10  11 12 05 3a 0d 11 1c 3f  dd 20 f2 74 72 61 6e 73  |...:...?. .trans|
00002a20  66 65 72 28 41 25 2c 43  25 2c 42 25 29 20 3a f4  |fer(A%,C%,B%) :.|
00002a30  20 54 72 61 6e 73 66 65  72 20 62 6c 6f 63 6b 20  | Transfer block |
00002a40  28 41 25 20 74 6f 20 41  25 2b 43 25 29 20 74 6f  |(A% to A%+C%) to|
00002a50  20 42 25 0d 11 26 0a d6  20 74 66 65 72 0d 11 30  | B%..&.. tfer..0|
00002a60  05 e1 0d 11 3a 05 3a 0d  11 44 17 dd 20 f2 64 65  |....:.:..D.. .de|
00002a70  6c 65 74 65 28 73 25 2c  6c 25 2c 6e 25 29 0d 11  |lete(s%,l%,n%)..|
00002a80  4e 15 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |N... "Hourglass_|
00002a90  4f 6e 22 0d 11 58 36 f2  74 72 61 6e 73 66 65 72  |On"..X6.transfer|
00002aa0  28 73 25 2b 6c 25 2c 73  74 61 72 74 25 28 6e 25  |(s%+l%,start%(n%|
00002ab0  29 2b 6c 65 6e 67 74 68  25 28 6e 25 29 2d 28 73  |)+length%(n%)-(s|
00002ac0  25 2b 6c 25 29 2c 73 25  29 0d 11 62 13 6c 65 6e  |%+l%),s%)..b.len|
00002ad0  67 74 68 25 28 6e 25 29  2d 3d 6c 25 0d 11 6c 13  |gth%(n%)-=l%..l.|
00002ae0  6d 61 67 6c 65 6e 25 28  6e 25 29 2d 3d 6c 25 0d  |maglen%(n%)-=l%.|
00002af0  11 76 0f f2 63 68 6b 6d  61 67 28 6e 25 29 0d 11  |.v..chkmag(n%)..|
00002b00  80 0f 73 6c 65 6e 25 28  6e 25 29 3d 31 0d 11 8a  |..slen%(n%)=1...|
00002b10  0e 63 68 61 6e 67 65 64  25 3d b9 0d 11 94 16 c8  |.changed%=......|
00002b20  99 20 22 48 6f 75 72 67  6c 61 73 73 5f 4f 66 66  |. "Hourglass_Off|
00002b30  22 0d 11 9e 05 e1 0d 11  a8 05 3a 0d 11 b2 11 dd  |".........:.....|
00002b40  20 f2 63 68 6b 6d 61 67  28 6e 25 29 0d 11 bc 35  | .chkmag(n%)...5|
00002b50  e7 20 73 73 74 61 72 74  25 28 6e 25 29 3c 73 74  |. sstart%(n%)<st|
00002b60  61 72 74 25 28 6e 25 29  20 8c 20 73 73 74 61 72  |art%(n%) . sstar|
00002b70  74 25 28 6e 25 29 3d 73  74 61 72 74 25 28 6e 25  |t%(n%)=start%(n%|
00002b80  29 0d 11 c6 39 e7 20 6d  61 67 73 74 61 72 74 25  |)...9. magstart%|
00002b90  28 6e 25 29 3c 73 74 61  72 74 25 28 6e 25 29 20  |(n%)<start%(n%) |
00002ba0  8c 20 6d 61 67 73 74 61  72 74 25 28 6e 25 29 3d  |. magstart%(n%)=|
00002bb0  73 74 61 72 74 25 28 6e  25 29 0d 11 d0 21 e7 20  |start%(n%)...!. |
00002bc0  6c 65 6e 67 74 68 25 28  6e 25 29 3c 31 20 6c 65  |length%(n%)<1 le|
00002bd0  6e 67 74 68 25 28 6e 25  29 3d 31 0d 11 da 1d e7  |ngth%(n%)=1.....|
00002be0  20 73 6c 65 6e 25 28 6e  25 29 3c 31 20 73 6c 65  | slen%(n%)<1 sle|
00002bf0  6e 25 28 6e 25 29 3d 31  0d 11 e4 40 e7 20 28 6d  |n%(n%)=1...@. (m|
00002c00  61 67 6c 65 6e 25 28 6e  25 29 3c 31 29 20 84 20  |aglen%(n%)<1) . |
00002c10  28 6d 61 67 73 74 61 72  74 25 28 6e 25 29 3e 73  |(magstart%(n%)>s|
00002c20  74 61 72 74 25 28 6e 25  29 2b 6c 65 6e 67 74 68  |tart%(n%)+length|
00002c30  25 28 6e 25 29 29 20 8c  0d 11 ee 36 20 20 6d 61  |%(n%)) ....6  ma|
00002c40  67 73 74 61 72 74 25 28  6e 25 29 3d 73 74 61 72  |gstart%(n%)=star|
00002c50  74 25 28 6e 25 29 3a 6d  61 67 6c 65 6e 25 28 6e  |t%(n%):maglen%(n|
00002c60  25 29 3d 6c 65 6e 67 74  68 25 28 6e 25 29 0d 11  |%)=length%(n%)..|
00002c70  f8 05 cd 0d 12 02 39 e7  20 6d 61 67 73 74 61 72  |......9. magstar|
00002c80  74 25 28 6e 25 29 3c 73  74 61 72 74 25 28 6e 25  |t%(n%)<start%(n%|
00002c90  29 20 8c 20 6d 61 67 73  74 61 72 74 25 28 6e 25  |) . magstart%(n%|
00002ca0  29 3d 73 74 61 72 74 25  28 6e 25 29 0d 12 0c 38  |)=start%(n%)...8|
00002cb0  e7 20 6d 61 67 73 74 61  72 74 25 28 6e 25 29 2b  |. magstart%(n%)+|
00002cc0  6d 61 67 6c 65 6e 25 28  6e 25 29 3e 73 74 61 72  |maglen%(n%)>star|
00002cd0  74 25 28 6e 25 29 2b 6c  65 6e 67 74 68 25 28 6e  |t%(n%)+length%(n|
00002ce0  25 29 20 8c 0d 12 16 36  20 20 6d 61 67 6c 65 6e  |%) ....6  maglen|
00002cf0  25 28 6e 25 29 3d 73 74  61 72 74 25 28 6e 25 29  |%(n%)=start%(n%)|
00002d00  2b 6c 65 6e 67 74 68 25  28 6e 25 29 2d 6d 61 67  |+length%(n%)-mag|
00002d10  73 74 61 72 74 25 28 6e  25 29 0d 12 20 05 cd 0d  |start%(n%).. ...|
00002d20  12 2a 05 e1 0d 12 34 05  3a 0d 12 3e 1f dd 20 f2  |.*....4.:..>.. .|
00002d30  70 61 73 74 65 28 6e 25  2c 66 6e 61 6d 65 24 2c  |paste(n%,fname$,|
00002d40  69 6e 73 65 72 74 25 29  0d 12 48 39 ea 20 63 25  |insert%)..H9. c%|
00002d50  2c 69 73 74 61 72 74 25  2c 69 6c 65 6e 25 2c 70  |,istart%,ilen%,p|
00002d60  73 74 61 72 74 25 2c 70  6c 65 6e 25 2c 6e 65 77  |start%,plen%,new|
00002d70  73 74 61 72 74 25 2c 70  6c 65 6e 72 6f 75 6e 64  |start%,plenround|
00002d80  25 0d 12 52 0b 69 6c 65  6e 25 3d 30 0d 12 5c 37  |%..R.ilen%=0..\7|
00002d90  63 25 3d 8e 28 66 6e 61  6d 65 24 29 3a e7 20 63  |c%=.(fname$):. c|
00002da0  25 3c 3e 30 20 8c 20 69  6c 65 6e 25 3d a2 23 63  |%<>0 . ilen%=.#c|
00002db0  25 20 20 3a f4 20 49 6e  73 65 72 74 20 6c 65 6e  |%  :. Insert len|
00002dc0  67 74 68 0d 12 66 08 d9  23 63 25 0d 12 70 18 e7  |gth..f..#c%..p..|
00002dd0  20 63 25 3d 30 20 84 20  69 6c 65 6e 25 3c 31 20  | c%=0 . ilen%<1 |
00002de0  8c 20 e1 0d 12 7a 15 c8  99 20 22 48 6f 75 72 67  |. ...z... "Hourg|
00002df0  6c 61 73 73 5f 4f 6e 22  0d 12 84 18 f2 63 6c 61  |lass_On".....cla|
00002e00  69 6d 6d 6f 72 65 28 6e  25 2c 69 6c 65 6e 25 29  |immore(n%,ilen%)|
00002e10  0d 12 8e 19 e7 20 6e 65  77 73 74 61 72 74 25 3c  |..... newstart%<|
00002e20  31 20 8c 20 e5 8d 54 6e  53 0d 12 98 04 0d 12 a2  |1 . ..TnS.......|
00002e30  2d 69 73 74 61 72 74 25  3d a4 63 6c 61 69 6d 28  |-istart%=.claim(|
00002e40  69 6c 65 6e 25 29 3a e7  20 69 73 74 61 72 74 25  |ilen%):. istart%|
00002e50  3c 31 20 8c 20 e5 8d 54  6e 53 0d 12 ac 04 0d 12  |<1 . ..TnS......|
00002e60  b6 23 ff 28 22 4c 4f 41  44 20 22 2b 66 6e 61 6d  |.#.("LOAD "+fnam|
00002e70  65 24 2b 22 20 22 2b c3  7e 69 73 74 61 72 74 25  |e$+" "+.~istart%|
00002e80  29 0d 12 c0 0f e7 20 69  6e 73 65 72 74 25 20 8c  |)..... insert% .|
00002e90  0d 12 ca 19 20 41 25 3d  73 73 74 61 72 74 25 28  |.... A%=sstart%(|
00002ea0  6e 25 29 2b 69 6c 65 6e  25 0d 12 d4 1b 20 42 25  |n%)+ilen%.... B%|
00002eb0  3d 70 73 74 61 72 74 25  2b 70 6c 65 6e 25 2b 69  |=pstart%+plen%+i|
00002ec0  6c 65 6e 25 0d 12 de 15  20 43 25 3d 70 73 74 61  |len%.... C%=psta|
00002ed0  72 74 25 2b 70 6c 65 6e  25 0d 12 e8 0b 20 d6 20  |rt%+plen%.... . |
00002ee0  62 66 65 72 0d 12 f2 05  cd 0d 12 fc 28 f2 74 72  |bfer........(.tr|
00002ef0  61 6e 73 66 65 72 28 69  73 74 61 72 74 25 2c 69  |ansfer(istart%,i|
00002f00  6c 65 6e 25 2c 73 73 74  61 72 74 25 28 6e 25 29  |len%,sstart%(n%)|
00002f10  29 0d 13 06 22 e7 20 69  6e 73 65 72 74 25 20 8c  |)...". insert% .|
00002f20  20 6c 65 6e 67 74 68 25  28 6e 25 29 2b 3d 69 6c  | length%(n%)+=il|
00002f30  65 6e 25 0d 13 10 30 73  73 74 61 72 74 25 28 6e  |en%...0sstart%(n|
00002f40  25 29 3d 73 74 61 72 74  25 28 6e 25 29 3a 73 6c  |%)=start%(n%):sl|
00002f50  65 6e 25 28 6e 25 29 3d  6c 65 6e 67 74 68 25 28  |en%(n%)=length%(|
00002f60  6e 25 29 0d 13 1a 34 6d  61 67 73 74 61 72 74 25  |n%)...4magstart%|
00002f70  28 6e 25 29 3d 73 74 61  72 74 25 28 6e 25 29 3a  |(n%)=start%(n%):|
00002f80  6d 61 67 6c 65 6e 25 28  6e 25 29 3d 6c 65 6e 67  |maglen%(n%)=leng|
00002f90  74 68 25 28 6e 25 29 0d  13 24 15 f2 72 65 6c 65  |th%(n%)..$..rele|
00002fa0  61 73 65 28 69 73 74 61  72 74 25 29 0d 13 2e 16  |ase(istart%)....|
00002fb0  c8 99 20 22 48 6f 75 72  67 6c 61 73 73 5f 4f 66  |.. "Hourglass_Of|
00002fc0  66 22 0d 13 38 05 e1 0d  13 42 05 3a 0d 13 4c 1a  |f"..8....B.:..L.|
00002fd0  dd 20 f2 61 64 64 28 6e  25 2c 66 6e 61 6d 65 24  |. .add(n%,fname$|
00002fe0  2c 61 64 64 25 29 0d 13  56 16 ea 20 63 25 2c 63  |,add%)..V.. c%,c|
00002ff0  6c 69 70 62 6f 61 72 64  25 2c 6c 25 0d 13 60 04  |lipboard%,l%..`.|
00003000  0d 13 6a 22 63 25 3d 8e  28 66 6e 61 6d 65 24 29  |..j"c%=.(fname$)|
00003010  3a e7 20 63 25 3c 3e 30  20 8c 20 6c 25 3d a2 23  |:. c%<>0 . l%=.#|
00003020  63 25 0d 13 74 08 d9 23  63 25 0d 13 7e 0e e7 20  |c%..t..#c%..~.. |
00003030  63 25 3d 30 20 8c 20 e1  0d 13 88 15 c8 99 20 22  |c%=0 . ....... "|
00003040  48 6f 75 72 67 6c 61 73  73 5f 4f 6e 22 0d 13 92  |Hourglass_On"...|
00003050  1c 63 6c 69 70 62 6f 61  72 64 25 3d a4 63 6c 61  |.clipboard%=.cla|
00003060  69 6d 28 6c 25 2b 31 36  29 0d 13 9c 29 e7 20 63  |im(l%+16)...). c|
00003070  6c 69 70 62 6f 61 72 64  25 3c 31 20 8c 20 c8 99  |lipboard%<1 . ..|
00003080  20 22 48 6f 75 72 67 6c  61 73 73 5f 4f 66 66 22  | "Hourglass_Off"|
00003090  3a e1 0d 13 a6 26 ff 28  22 4c 4f 41 44 20 22 2b  |:....&.("LOAD "+|
000030a0  66 6e 61 6d 65 24 2b 22  20 22 2b c3 7e 63 6c 69  |fname$+" "+.~cli|
000030b0  70 62 6f 61 72 64 25 29  0d 13 b0 11 41 25 3d 63  |pboard%)....A%=c|
000030c0  6c 69 70 62 6f 61 72 64  25 0d 13 ba 12 42 25 3d  |lipboard%....B%=|
000030d0  73 73 74 61 72 74 25 28  6e 25 29 0d 13 c4 14 e7  |sstart%(n%).....|
000030e0  20 6c 25 3c 73 6c 65 6e  25 28 6e 25 29 20 8c 0d  | l%<slen%(n%) ..|
000030f0  13 ce 0b 20 20 43 25 3d  6c 25 0d 13 d8 05 cc 0d  |...  C%=l%......|
00003100  13 e2 12 20 20 43 25 3d  73 6c 65 6e 25 28 6e 25  |...  C%=slen%(n%|
00003110  29 0d 13 ec 05 cd 0d 13  f6 0c e7 20 61 64 64 25  |).......... add%|
00003120  20 8c 0d 14 00 29 20 20  e7 20 63 6c 69 70 69 74  | ....)  . clipit|
00003130  25 20 8c 20 d6 20 61 64  64 63 6c 69 70 20 8b 20  |% . . addclip . |
00003140  d6 20 61 64 64 62 6c 6f  63 6b 73 0d 14 0a 05 cc  |. addblocks.....|
00003150  0d 14 14 29 20 20 e7 20  63 6c 69 70 69 74 25 20  |...)  . clipit% |
00003160  8c 20 d6 20 61 76 67 63  6c 69 70 20 8b 20 d6 20  |. . avgclip . . |
00003170  61 76 67 62 6c 6f 63 6b  73 0d 14 1e 05 cd 0d 14  |avgblocks.......|
00003180  28 18 f2 72 65 6c 65 61  73 65 28 63 6c 69 70 62  |(..release(clipb|
00003190  6f 61 72 64 25 29 0d 14  32 16 c8 99 20 22 48 6f  |oard%)..2... "Ho|
000031a0  75 72 67 6c 61 73 73 5f  4f 66 66 22 0d 14 3c 05  |urglass_Off"..<.|
000031b0  e1 0d 14 46 05 3a 0d 14  50 3e dd 20 f2 6d 61 6b  |...F.:..P>. .mak|
000031c0  65 73 69 6c 65 6e 63 65  28 6e 25 29 3a ea 20 70  |esilence(n%):. p|
000031d0  73 74 61 72 74 25 2c 70  6c 65 6e 25 2c 70 6c 65  |start%,plen%,ple|
000031e0  6e 72 6f 75 6e 64 25 2c  6e 65 77 73 74 61 72 74  |nround%,newstart|
000031f0  25 2c 6c 25 0d 14 5a 15  c8 99 20 22 48 6f 75 72  |%,l%..Z... "Hour|
00003200  67 6c 61 73 73 5f 4f 6e  22 0d 14 64 27 6c 25 3d  |glass_On"..d'l%=|
00003210  a4 6d 65 6e 75 76 61 6c  28 31 36 2c 6c 61 73 74  |.menuval(16,last|
00003220  76 61 6c 35 24 2c 31 2c  31 30 30 30 30 2c 34 29  |val5$,1,10000,4)|
00003230  0d 14 6e 15 f2 63 6c 61  69 6d 6d 6f 72 65 28 6e  |..n..claimmore(n|
00003240  25 2c 6c 25 29 0d 14 78  27 e7 20 6e 65 77 73 74  |%,l%)..x'. newst|
00003250  61 72 74 25 3c 31 20 8c  20 c8 99 22 48 6f 75 72  |art%<1 . .."Hour|
00003260  67 6c 61 73 73 5f 4f 66  66 22 3a e1 0d 14 82 04  |glass_Off":.....|
00003270  0d 14 8c 48 f2 74 72 61  6e 73 66 65 72 28 73 73  |...H.transfer(ss|
00003280  74 61 72 74 25 28 6e 25  29 2c 70 6c 65 6e 25 2d  |tart%(n%),plen%-|
00003290  28 73 73 74 61 72 74 25  28 6e 25 29 2d 73 74 61  |(sstart%(n%)-sta|
000032a0  72 74 25 28 6e 25 29 29  2c 73 73 74 61 72 74 25  |rt%(n%)),sstart%|
000032b0  28 6e 25 29 2b 6c 25 29  0d 14 96 04 0d 14 a0 10  |(n%)+l%)........|
000032c0  e3 20 5a 25 3d 30 20 b8  20 32 35 35 0d 14 aa 13  |. Z%=0 . 255....|
000032d0  20 6d 74 61 62 6c 65 25  3f 5a 25 3d 31 32 38 0d  | mtable%?Z%=128.|
000032e0  14 b4 05 ed 0d 14 be 1d  f2 74 61 62 6c 65 6d 6f  |.........tablemo|
000032f0  64 28 73 73 74 61 72 74  25 28 6e 25 29 2c 6c 25  |d(sstart%(n%),l%|
00003300  29 0d 14 c8 04 0d 14 d2  13 6c 65 6e 67 74 68 25  |)........length%|
00003310  28 6e 25 29 2b 3d 6c 25  0d 14 dc 33 6d 61 67 73  |(n%)+=l%...3mags|
00003320  74 61 72 74 25 28 6e 25  29 3d 6e 65 77 73 74 61  |tart%(n%)=newsta|
00003330  72 74 25 3a 6d 61 67 6c  65 6e 25 28 6e 25 29 3d  |rt%:maglen%(n%)=|
00003340  6c 65 6e 67 74 68 25 28  6e 25 29 0d 14 e6 0f f2  |length%(n%).....|
00003350  63 68 6b 6d 61 67 28 6e  25 29 0d 14 f0 0e 63 68  |chkmag(n%)....ch|
00003360  61 6e 67 65 64 25 3d b9  0d 14 fa 16 c8 99 20 22  |anged%=....... "|
00003370  48 6f 75 72 67 6c 61 73  73 5f 4f 66 66 22 0d 15  |Hourglass_Off"..|
00003380  04 05 e1 0d 15 0e 05 3a  0d 15 18 14 dd 20 f2 72  |.......:..... .r|
00003390  61 6d 70 75 70 28 73 25  2c 6c 25 29 0d 15 22 16  |ampup(s%,l%)..".|
000033a0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
000033b0  6e 22 0d 15 2c 10 20 e3  20 5a 25 3d 30 20 b8 20  |n"..,. . Z%=0 . |
000033c0  6c 25 0d 15 36 0f 20 20  20 42 25 3d 73 25 3f 5a  |l%..6.   B%=s%?Z|
000033d0  25 0d 15 40 1b 20 20 20  42 25 3d 28 42 25 2d 31  |%..@.   B%=(B%-1|
000033e0  32 38 29 2a 94 28 5a 25  2f 6c 25 29 0d 15 4a 0e  |28)*.(Z%/l%)..J.|
000033f0  20 20 20 42 25 2b 3d 31  32 38 0d 15 54 0f 20 20  |   B%+=128..T.  |
00003400  20 73 25 3f 5a 25 3d 42  25 0d 15 5e 06 20 ed 0d  | s%?Z%=B%..^. ..|
00003410  15 68 0f 20 63 68 61 6e  67 65 64 25 3d b9 0d 15  |.h. changed%=...|
00003420  72 17 20 c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |r. .. "Hourglass|
00003430  5f 4f 66 66 22 0d 15 7c  05 e1 0d 15 86 05 3a 0d  |_Off"..|......:.|
00003440  15 90 16 dd 20 f2 72 61  6d 70 64 6f 77 6e 28 73  |.... .rampdown(s|
00003450  25 2c 6c 25 29 0d 15 9a  16 20 c8 99 20 22 48 6f  |%,l%).... .. "Ho|
00003460  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 15 a4 10 20  |urglass_On".... |
00003470  e3 20 5a 25 3d 30 20 b8  20 6c 25 0d 15 ae 0f 20  |. Z%=0 . l%.... |
00003480  20 20 42 25 3d 73 25 3f  5a 25 0d 15 b8 20 20 20  |  B%=s%?Z%...   |
00003490  20 42 25 3d 28 42 25 2d  31 32 38 29 2a 94 28 28  | B%=(B%-128)*.((|
000034a0  6c 25 2d 5a 25 29 2f 6c  25 29 0d 15 c2 0e 20 20  |l%-Z%)/l%)....  |
000034b0  20 42 25 2b 3d 31 32 38  0d 15 cc 0f 20 20 20 73  | B%+=128....   s|
000034c0  25 3f 5a 25 3d 42 25 0d  15 d6 06 20 ed 0d 15 e0  |%?Z%=B%.... ....|
000034d0  0f 20 63 68 61 6e 67 65  64 25 3d b9 0d 15 ea 17  |. changed%=.....|
000034e0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
000034f0  66 66 22 0d 15 f4 05 e1  0d 15 fe 05 3a 0d 16 08  |ff".........:...|
00003500  18 dd 20 f2 6d 6f 76 65  63 65 6e 74 72 65 28 73  |.. .movecentre(s|
00003510  25 2c 6c 25 29 0d 16 12  0f 20 63 68 61 6e 67 65  |%,l%).... change|
00003520  64 25 3d b9 0d 16 1c 05  e1 0d 16 26 05 3a 0d 16  |d%=........&.:..|
00003530  30 14 dd 20 f2 6c 69 6d  69 74 73 28 73 25 2c 6c  |0.. .limits(s%,l|
00003540  25 29 0d 16 3a 0f 20 63  68 61 6e 67 65 64 25 3d  |%)..:. changed%=|
00003550  b9 0d 16 44 05 e1 0d 16  4e 05 3a 0d 16 58 1a dd  |...D....N.:..X..|
00003560  20 f2 72 65 76 65 72 73  65 28 73 25 2c 6c 25 29  | .reverse(s%,l%)|
00003570  3a ea 20 65 25 0d 16 62  16 20 c8 99 20 22 48 6f  |:. e%..b. .. "Ho|
00003580  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 16 6c 0f 20  |urglass_On"..l. |
00003590  65 25 3d 32 2a 73 25 2b  6c 25 0d 16 76 19 20 e3  |e%=2*s%+l%..v. .|
000035a0  20 5a 25 3d 73 25 20 b8  20 73 25 2b 28 6c 25 3e  | Z%=s% . s%+(l%>|
000035b0  3e 31 29 0d 16 80 14 20  20 20 c8 94 20 3f 5a 25  |>1)....   .. ?Z%|
000035c0  2c 65 25 3f 2d 5a 25 0d  16 8a 06 20 ed 0d 16 94  |,e%?-Z%.... ....|
000035d0  0f 20 63 68 61 6e 67 65  64 25 3d b9 0d 16 9e 17  |. changed%=.....|
000035e0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
000035f0  66 66 22 0d 16 a8 05 e1  0d 16 b2 05 3a 0d 16 bc  |ff".........:...|
00003600  1f dd 20 f2 61 6d 70 6c  69 66 79 28 73 25 2c 6c  |.. .amplify(s%,l|
00003610  25 2c 70 63 25 29 3a ea  20 61 6d 70 0d 16 c6 31  |%,pc%):. amp...1|
00003620  20 e7 20 70 63 25 3d 2d  31 20 8c 20 70 63 25 3d  | . pc%=-1 . pc%=|
00003630  a4 6d 65 6e 75 76 61 6c  28 30 2c 6c 61 73 74 76  |.menuval(0,lastv|
00003640  61 6c 31 24 2c 31 2c 39  39 39 2c 33 29 0d 16 d0  |al1$,1,999,3)...|
00003650  24 20 e7 20 70 63 25 3d  31 30 30 20 84 20 70 63  |$ . pc%=100 . pc|
00003660  25 3c 31 20 84 20 70 63  25 3e 39 39 39 20 8c 20  |%<1 . pc%>999 . |
00003670  e1 0d 16 da 16 20 c8 99  20 22 48 6f 75 72 67 6c  |..... .. "Hourgl|
00003680  61 73 73 5f 4f 6e 22 0d  16 e4 04 0d 16 ee 10 20  |ass_On"........ |
00003690  61 6d 70 3d 70 63 25 2f  31 30 30 0d 16 f8 11 20  |amp=pc%/100.... |
000036a0  e3 20 5a 25 3d 30 20 b8  20 32 35 35 0d 17 02 1c  |. Z%=0 . 255....|
000036b0  20 20 20 42 25 3d 28 28  5a 25 2d 31 32 38 29 2a  |   B%=((Z%-128)*|
000036c0  61 6d 70 29 2b 31 32 38  0d 17 0c 0e 20 20 20 f2  |amp)+128....   .|
000036d0  63 6c 69 70 69 74 0d 17  16 14 20 20 20 6d 74 61  |clipit....   mta|
000036e0  62 6c 65 25 3f 5a 25 3d  42 25 0d 17 20 06 20 ed  |ble%?Z%=B%.. . .|
000036f0  0d 17 2a 15 20 f2 74 61  62 6c 65 6d 6f 64 28 73  |..*. .tablemod(s|
00003700  25 2c 6c 25 29 0d 17 34  0f 20 63 68 61 6e 67 65  |%,l%)..4. change|
00003710  64 25 3d b9 0d 17 3e 04  0d 17 48 17 20 c8 99 20  |d%=...>...H. .. |
00003720  22 48 6f 75 72 67 6c 61  73 73 5f 4f 66 66 22 0d  |"Hourglass_Off".|
00003730  17 52 05 e1 0d 17 5c 05  3a 0d 17 66 1b dd 20 f2  |.R....\.:..f.. .|
00003740  61 64 64 63 6f 6e 73 74  28 73 25 2c 6c 25 29 3a  |addconst(s%,l%):|
00003750  ea 20 6e 25 0d 17 70 26  20 6e 25 3d a4 6d 65 6e  |. n%..p& n%=.men|
00003760  75 76 61 6c 28 33 32 2c  6c 61 73 74 76 61 6c 32  |uval(32,lastval2|
00003770  24 2c 31 2c 32 35 35 2c  33 29 0d 17 7a 22 20 e7  |$,1,255,3)..z" .|
00003780  20 6e 25 3c 31 20 84 20  6e 25 3e 32 35 35 20 8c  | n%<1 . n%>255 .|
00003790  20 6e 25 3d 6e 25 20 83  20 32 35 36 0d 17 84 16  | n%=n% . 256....|
000037a0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
000037b0  6e 22 0d 17 8e 04 0d 17  98 11 20 e3 20 5a 25 3d  |n"........ . Z%=|
000037c0  30 20 b8 20 32 35 35 0d  17 a2 17 20 20 20 42 25  |0 . 255....   B%|
000037d0  3d 5a 25 2b 6e 25 3a f2  63 6c 69 70 69 74 0d 17  |=Z%+n%:.clipit..|
000037e0  ac 14 20 20 20 6d 74 61  62 6c 65 25 3f 5a 25 3d  |..   mtable%?Z%=|
000037f0  42 25 0d 17 b6 06 20 ed  0d 17 c0 15 20 f2 74 61  |B%.... ..... .ta|
00003800  62 6c 65 6d 6f 64 28 73  25 2c 6c 25 29 0d 17 ca  |blemod(s%,l%)...|
00003810  0f 20 63 68 61 6e 67 65  64 25 3d b9 0d 17 d4 04  |. changed%=.....|
00003820  0d 17 de 17 20 c8 99 20  22 48 6f 75 72 67 6c 61  |.... .. "Hourgla|
00003830  73 73 5f 4f 66 66 22 0d  17 e8 05 e1 0d 17 f2 05  |ss_Off".........|
00003840  3a 0d 17 fc 16 dd 20 f2  65 6f 72 63 6f 6e 73 74  |:..... .eorconst|
00003850  28 73 25 2c 6c 25 29 0d  18 06 26 20 6e 25 3d a4  |(s%,l%)...& n%=.|
00003860  6d 65 6e 75 76 61 6c 28  34 38 2c 6c 61 73 74 76  |menuval(48,lastv|
00003870  61 6c 33 24 2c 31 2c 32  35 35 2c 33 29 0d 18 10  |al3$,1,255,3)...|
00003880  20 20 e7 20 6e 25 3c 31  20 84 20 6e 25 3e 32 35  |  . n%<1 . n%>25|
00003890  35 20 8c 20 6e 25 3d 6e  25 80 26 46 46 0d 18 1a  |5 . n%=n%.&FF...|
000038a0  16 20 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |. .. "Hourglass_|
000038b0  4f 6e 22 0d 18 24 04 0d  18 2e 11 20 e3 20 5a 25  |On"..$..... . Z%|
000038c0  3d 30 20 b8 20 32 35 35  0d 18 38 17 20 20 20 6d  |=0 . 255..8.   m|
000038d0  74 61 62 6c 65 25 3f 5a  25 3d 5a 25 82 6e 25 0d  |table%?Z%=Z%.n%.|
000038e0  18 42 06 20 ed 0d 18 4c  15 20 f2 74 61 62 6c 65  |.B. ...L. .table|
000038f0  6d 6f 64 28 73 25 2c 6c  25 29 0d 18 56 0f 20 63  |mod(s%,l%)..V. c|
00003900  68 61 6e 67 65 64 25 3d  b9 0d 18 60 04 0d 18 6a  |hanged%=...`...j|
00003910  17 20 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |. .. "Hourglass_|
00003920  4f 66 66 22 0d 18 74 05  e1 0d 18 7e 05 3a 0d 18  |Off"..t....~.:..|
00003930  88 2f dd 20 f2 66 6c 61  6e 67 65 28 73 25 2c 6c  |./. .flange(s%,l|
00003940  25 29 3a ea 20 65 63 68  6f 6c 65 6e 67 74 68 25  |%):. echolength%|
00003950  2c 65 63 68 6f 73 74 72  65 6e 67 74 68 0d 18 92  |,echostrength...|
00003960  2f 65 63 68 6f 6c 65 6e  67 74 68 25 3d a4 6d 65  |/echolength%=.me|
00003970  6e 75 76 61 6c 28 38 30  2c 6c 61 73 74 76 61 6c  |nuval(80,lastval|
00003980  34 24 2c 31 2c 39 39 39  39 2c 34 29 0d 18 9c 13  |4$,1,9999,4)....|
00003990  65 63 68 6f 73 74 72 65  6e 67 74 68 3d 2e 37 0d  |echostrength=.7.|
000039a0  18 a6 04 0d 18 b0 15 c8  99 20 22 48 6f 75 72 67  |......... "Hourg|
000039b0  6c 61 73 73 5f 4f 6e 22  0d 18 ba 1f e3 20 5a 25  |lass_On"..... Z%|
000039c0  3d 73 25 20 b8 20 73 25  2b 6c 25 2d 65 63 68 6f  |=s% . s%+l%-echo|
000039d0  6c 65 6e 67 74 68 25 0d  18 c4 1e 20 54 25 3d 28  |length%.... T%=(|
000039e0  3f 5a 25 2d 31 32 38 29  2a 65 63 68 6f 73 74 72  |?Z%-128)*echostr|
000039f0  65 6e 67 74 68 0d 18 ce  1b 20 42 25 3d 28 5a 25  |ength.... B%=(Z%|
00003a00  3f 65 63 68 6f 6c 65 6e  67 74 68 25 29 2b 54 25  |?echolength%)+T%|
00003a10  0d 18 d8 1e 20 f2 63 6c  69 70 69 74 3a 5a 25 3f  |.... .clipit:Z%?|
00003a20  65 63 68 6f 6c 65 6e 67  74 68 25 3d 42 25 0d 18  |echolength%=B%..|
00003a30  e2 05 ed 0d 18 ec 0e 63  68 61 6e 67 65 64 25 3d  |.......changed%=|
00003a40  b9 0d 18 f6 16 c8 99 20  22 48 6f 75 72 67 6c 61  |....... "Hourgla|
00003a50  73 73 5f 4f 66 66 22 0d  19 00 05 e1 0d 19 0a 05  |ss_Off".........|
00003a60  3a 0d 19 14 2d dd 20 f2  65 63 68 6f 28 73 25 2c  |:...-. .echo(s%,|
00003a70  6c 25 29 3a ea 20 65 63  68 6f 6c 65 6e 67 74 68  |l%):. echolength|
00003a80  25 2c 65 63 68 6f 73 74  72 65 6e 67 74 68 0d 19  |%,echostrength..|
00003a90  1e 2f 65 63 68 6f 6c 65  6e 67 74 68 25 3d a4 6d  |./echolength%=.m|
00003aa0  65 6e 75 76 61 6c 28 36  34 2c 6c 61 73 74 76 61  |enuval(64,lastva|
00003ab0  6c 34 24 2c 31 2c 39 39  39 39 2c 34 29 0d 19 28  |l4$,1,9999,4)..(|
00003ac0  13 65 63 68 6f 73 74 72  65 6e 67 74 68 3d 2e 37  |.echostrength=.7|
00003ad0  0d 19 32 04 0d 19 3c 15  c8 99 20 22 48 6f 75 72  |..2...<... "Hour|
00003ae0  67 6c 61 73 73 5f 4f 6e  22 0d 19 46 23 e3 20 5a  |glass_On"..F#. Z|
00003af0  25 3d 73 25 2b 6c 25 20  b8 20 73 25 2b 65 63 68  |%=s%+l% . s%+ech|
00003b00  6f 6c 65 6e 67 74 68 25  20 88 2d 31 0d 19 50 2c  |olength% .-1..P,|
00003b10  20 54 25 3d 28 28 5a 25  3f 2d 65 63 68 6f 6c 65  | T%=((Z%?-echole|
00003b20  6e 67 74 68 25 29 2d 31  32 38 29 2a 65 63 68 6f  |ngth%)-128)*echo|
00003b30  73 74 72 65 6e 67 74 68  0d 19 5a 18 20 42 25 3d  |strength..Z. B%=|
00003b40  28 3f 5a 25 29 2b 54 25  3a f2 63 6c 69 70 69 74  |(?Z%)+T%:.clipit|
00003b50  0d 19 64 0b 20 3f 5a 25  3d 42 25 0d 19 6e 05 ed  |..d. ?Z%=B%..n..|
00003b60  0d 19 78 0e 63 68 61 6e  67 65 64 25 3d b9 0d 19  |..x.changed%=...|
00003b70  82 16 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |.... "Hourglass_|
00003b80  4f 66 66 22 0d 19 8c 05  e1 0d 19 96 05 3a 0d 19  |Off".........:..|
00003b90  a0 16 dd 20 f2 74 61 62  6c 65 6d 6f 64 28 41 25  |... .tablemod(A%|
00003ba0  2c 42 25 29 0d 19 aa 0b  20 42 25 2b 3d 41 25 0d  |,B%).... B%+=A%.|
00003bb0  19 b4 0f 20 43 25 3d 6d  74 61 62 6c 65 25 0d 19  |... C%=mtable%..|
00003bc0  be 0f 20 d6 20 74 61 62  6c 65 6d 6f 64 0d 19 c8  |.. . tablemod...|
00003bd0  05 e1 0d 19 d2 05 3a 0d  19 dc 1d dd 20 f2 63 68  |......:..... .ch|
00003be0  61 6e 67 65 73 70 65 65  64 28 6e 75 6d 25 29 3a  |angespeed(num%):|
00003bf0  ea 20 41 24 0d 19 e6 1e  6e 25 3d a4 6d 65 6e 75  |. A$....n%=.menu|
00003c00  76 61 6c 28 39 36 2c 41  24 2c 31 2c 32 35 35 2c  |val(96,A$,1,255,|
00003c10  33 29 0d 19 f0 19 73 70  65 65 64 25 28 6e 75 6d  |3)....speed%(num|
00003c20  25 29 3d 6e 25 20 80 20  26 46 46 0d 19 fa 05 e1  |%)=n% . &FF.....|
00003c30  0d 1a 04 05 3a 0d 1a 0e  15 dd 20 f2 63 68 61 6e  |....:..... .chan|
00003c40  67 65 76 6f 6c 3a ea 20  41 24 0d 1a 18 1e 6e 25  |gevol:. A$....n%|
00003c50  3d a4 6d 65 6e 75 76 61  6c 28 31 31 32 2c 41 24  |=.menuval(112,A$|
00003c60  2c 31 2c 31 35 2c 32 29  0d 1a 22 11 76 6f 6c 75  |,1,15,2)..".volu|
00003c70  6d 65 25 3d 6e 25 83 31  36 0d 1a 2c 05 e1 0d 1a  |me%=n%.16..,....|
00003c80  36 05 3a 0d 1a 40 14 dd  20 f2 7a 6f 6f 6d 28 6e  |6.:..@.. .zoom(n|
00003c90  25 2c 62 75 74 25 29 0d  1a 4a 18 ea 20 7a 25 3a  |%,but%)..J.. z%:|
00003ca0  7a 25 3d 7a 6f 6f 6d 6c  65 76 25 28 6e 25 29 0d  |z%=zoomlev%(n%).|
00003cb0  1a 54 1c e7 20 62 75 74  25 3d 31 20 8c 20 7a 25  |.T.. but%=1 . z%|
00003cc0  2b 3d 31 20 8b 20 7a 25  2d 3d 31 0d 1a 5e 12 e7  |+=1 . z%-=1..^..|
00003cd0  20 7a 25 3c 38 20 8c 20  7a 25 3d 31 39 0d 1a 68  | z%<8 . z%=19..h|
00003ce0  12 e7 20 7a 25 3e 31 39  20 8c 20 7a 25 3d 38 0d  |.. z%>19 . z%=8.|
00003cf0  1a 72 04 0d 1a 7c 0d e7  20 7a 25 3d 31 39 20 8c  |.r...|.. z%=19 .|
00003d00  0d 1a 86 28 20 20 73 74  61 72 74 25 3d 73 74 61  |...(  start%=sta|
00003d10  72 74 25 28 6e 25 29 3a  6c 65 6e 25 3d 6c 65 6e  |rt%(n%):len%=len|
00003d20  67 74 68 25 28 6e 25 29  0d 1a 90 05 cc 0d 1a 9a  |gth%(n%)........|
00003d30  1a 20 20 e7 20 32 5e 7a  25 3e 6c 65 6e 67 74 68  |.  . 2^z%>length|
00003d40  25 28 6e 25 29 20 8c 0d  1a a4 12 20 20 20 20 e7  |%(n%) .....    .|
00003d50  20 62 75 74 25 3d 34 20  8c 0d 1a ae 25 20 20 20  | but%=4 ....%   |
00003d60  20 20 20 f5 3a 7a 25 2d  3d 31 3a fd 20 32 5e 7a  |   .:z%-=1:. 2^z|
00003d70  25 3c 3d 6c 65 6e 67 74  68 25 28 6e 25 29 0d 1a  |%<=length%(n%)..|
00003d80  b8 18 20 20 20 20 20 20  e7 20 7a 25 3c 38 20 8c  |..      . z%<8 .|
00003d90  20 7a 25 3d 31 39 0d 1a  c2 2c 20 20 20 20 20 20  | z%=19...,      |
00003da0  6c 65 6e 25 3d 6c 65 6e  67 74 68 25 28 6e 25 29  |len%=length%(n%)|
00003db0  3a 73 74 61 72 74 25 3d  73 74 61 72 74 25 28 6e  |:start%=start%(n|
00003dc0  25 29 0d 1a cc 09 20 20  20 20 cc 0d 1a d6 0e 20  |%)....    ..... |
00003dd0  20 20 20 20 7a 25 3d 31  39 0d 1a e0 09 20 20 20  |    z%=19....   |
00003de0  20 cd 0d 1a ea 34 20 20  20 20 e7 20 7a 25 3d 31  | ....4    . z%=1|
00003df0  39 20 8c 20 73 74 61 72  74 25 3d 73 74 61 72 74  |9 . start%=start|
00003e00  25 28 6e 25 29 3a 6c 65  6e 25 3d 6c 65 6e 67 74  |%(n%):len%=lengt|
00003e10  68 25 28 6e 25 29 0d 1a  f4 07 20 20 cc 0d 1a fe  |h%(n%)....  ....|
00003e20  11 20 20 20 20 6c 65 6e  25 3d 32 5e 7a 25 0d 1b  |.    len%=2^z%..|
00003e30  08 33 20 20 20 20 73 74  61 72 74 25 3d 28 6d 61  |.3    start%=(ma|
00003e40  67 73 74 61 72 74 25 28  6e 25 29 2b 6d 61 67 6c  |gstart%(n%)+magl|
00003e50  65 6e 25 28 6e 25 29 81  32 29 2d 6c 65 6e 25 81  |en%(n%).2)-len%.|
00003e60  32 0d 1b 12 07 20 20 cd  0d 1b 1c 05 cd 0d 1b 26  |2....  ........&|
00003e70  04 0d 1b 30 22 24 7a 6f  6f 6d 69 6e 61 6d 65 25  |...0"$zoominame%|
00003e80  28 6e 25 29 3d c2 22 30  30 22 2b c3 28 7a 25 29  |(n%)=."00"+.(z%)|
00003e90  2c 32 29 0d 1b 3a 04 0d  1b 44 13 7a 6f 6f 6d 6c  |,2)..:...D.zooml|
00003ea0  65 76 25 28 6e 25 29 3d  7a 25 0d 1b 4e 18 6d 61  |ev%(n%)=z%..N.ma|
00003eb0  67 73 74 61 72 74 25 28  6e 25 29 3d 73 74 61 72  |gstart%(n%)=star|
00003ec0  74 25 0d 1b 58 14 6d 61  67 6c 65 6e 25 28 6e 25  |t%..X.maglen%(n%|
00003ed0  29 3d 6c 65 6e 25 0d 1b  62 10 f2 73 65 74 75 70  |)=len%..b..setup|
00003ee0  64 74 28 6e 25 29 0d 1b  6c 04 0d 1b 76 33 c8 99  |dt(n%)..l...v3..|
00003ef0  20 22 57 69 6d 70 5f 46  6f 72 63 65 52 65 64 72  | "Wimp_ForceRedr|
00003f00  61 77 22 2c 77 68 61 6e  64 6c 65 25 28 6e 25 29  |aw",whandle%(n%)|
00003f10  2c 30 2c 30 2c 31 32 38  30 2c 32 38 38 0d 1b 80  |,0,0,1280,288...|
00003f20  36 c8 99 20 22 57 69 6d  70 5f 46 6f 72 63 65 52  |6.. "Wimp_ForceR|
00003f30  65 64 72 61 77 22 2c 77  68 61 6e 64 6c 65 25 28  |edraw",whandle%(|
00003f40  6e 25 29 2c 31 39 36 2c  32 39 32 2c 32 35 36 2c  |n%),196,292,256,|
00003f50  33 36 30 0d 1b 8a 05 e1  0d 1b 94 05 3a 0d 1b 9e  |360.........:...|
00003f60  14 dd 20 f2 73 63 72 6f  6c 6c 28 6e 25 2c 64 25  |.. .scroll(n%,d%|
00003f70  29 0d 1b a8 19 e7 20 7a  6f 6f 6d 6c 65 76 25 28  |)..... zoomlev%(|
00003f80  6e 25 29 3d 31 39 20 8c  20 e1 0d 1b b2 2b 6d 61  |n%)=19 . ....+ma|
00003f90  67 73 74 61 72 74 25 28  6e 25 29 2b 3d 64 25 2a  |gstart%(n%)+=d%*|
00003fa0  28 28 32 5e 7a 6f 6f 6d  6c 65 76 25 28 6e 25 29  |((2^zoomlev%(n%)|
00003fb0  29 81 20 34 29 0d 1b bc  0f f2 63 68 6b 6d 61 67  |). 4).....chkmag|
00003fc0  28 6e 25 29 0d 1b c6 10  f2 73 65 74 75 70 64 74  |(n%).....setupdt|
00003fd0  28 6e 25 29 0d 1b d0 33  c8 99 20 22 57 69 6d 70  |(n%)...3.. "Wimp|
00003fe0  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 77 68  |_ForceRedraw",wh|
00003ff0  61 6e 64 6c 65 25 28 6e  25 29 2c 30 2c 30 2c 31  |andle%(n%),0,0,1|
00004000  32 38 30 2c 32 38 38 0d  1b da 05 e1 0d 1b e4 05  |280,288.........|
00004010  3a 0d 1b ee 22 dd 20 f2  73 63 61 6c 65 28 73 25  |:...". .scale(s%|
00004020  2c 6c 25 2c 6e 25 29 3a  ea 20 6e 2c 6e 65 77 6c  |,l%,n%):. n,newl|
00004030  65 6e 25 0d 1b f8 32 20  6e 3d a4 69 6e 70 75 74  |en%...2 n=.input|
00004040  76 61 6c 28 22 73 63 61  6c 65 20 66 61 63 74 6f  |val("scale facto|
00004050  72 20 28 30 2e 30 30 2d  39 39 2e 39 39 29 22 2c  |r (0.00-99.99)",|
00004060  30 2c 39 39 29 0d 1c 02  11 20 e7 20 6e 3d 31 2e  |0,99).... . n=1.|
00004070  30 30 20 8c 20 e1 0d 1c  0c 04 0d 1c 16 16 20 c8  |00 . ......... .|
00004080  99 20 22 48 6f 75 72 67  6c 61 73 73 5f 4f 6e 22  |. "Hourglass_On"|
00004090  0d 1c 20 11 20 6e 65 77  6c 65 6e 25 3d 6e 2a 6c  |.. . newlen%=n*l|
000040a0  25 0d 1c 2a 04 0d 1c 34  0f 20 e7 20 6e 3e 31 2e  |%..*...4. . n>1.|
000040b0  30 30 20 8c 0d 1c 3e 3c  20 20 20 f2 74 72 61 6e  |00 ...><   .tran|
000040c0  73 66 65 72 28 73 25 2b  6c 25 2c 73 74 61 72 74  |sfer(s%+l%,start|
000040d0  25 28 6e 25 29 2b 6c 65  6e 67 74 68 25 28 6e 25  |%(n%)+length%(n%|
000040e0  29 2d 73 25 2c 73 25 2b  6e 65 77 6c 65 6e 25 29  |)-s%,s%+newlen%)|
000040f0  0d 1c 48 1b 20 20 20 e3  20 5a 25 3d 6e 65 77 6c  |..H.   . Z%=newl|
00004100  65 6e 25 20 b8 20 30 20  88 2d 31 0d 1c 52 18 20  |en% . 0 .-1..R. |
00004110  20 20 20 20 73 25 3f 5a  25 3d 73 25 3f 28 5a 25  |    s%?Z%=s%?(Z%|
00004120  2f 6e 29 0d 1c 5c 08 20  20 20 ed 0d 1c 66 06 20  |/n)..\.   ...f. |
00004130  cc 0d 1c 70 17 20 20 20  e3 20 5a 25 3d 30 20 b8  |...p.   . Z%=0 .|
00004140  20 6e 65 77 6c 65 6e 25  0d 1c 7a 18 20 20 20 20  | newlen%..z.    |
00004150  20 73 25 3f 5a 25 3d 73  25 3f 28 5a 25 2f 6e 29  | s%?Z%=s%?(Z%/n)|
00004160  0d 1c 84 08 20 20 20 ed  0d 1c 8e 14 20 20 20 41  |....   .....   A|
00004170  25 3d 73 25 2b 6e 65 77  6c 65 6e 25 0d 1c 98 2d  |%=s%+newlen%...-|
00004180  20 20 20 42 25 3d 73 74  61 72 74 25 28 6e 25 29  |   B%=start%(n%)|
00004190  2b 6c 65 6e 67 74 68 25  28 6e 25 29 2d 28 6e 65  |+length%(n%)-(ne|
000041a0  77 6c 65 6e 25 2d 6c 25  29 0d 1c a2 20 20 20 20  |wlen%-l%)...    |
000041b0  43 25 3d 73 74 61 72 74  25 28 6e 25 29 2b 6c 65  |C%=start%(n%)+le|
000041c0  6e 67 74 68 25 28 6e 25  29 0d 1c ac 0d 20 20 20  |ngth%(n%)....   |
000041d0  d6 20 62 66 65 72 0d 1c  b6 04 0d 1c c0 06 20 cd  |. bfer........ .|
000041e0  0d 1c ca 04 0d 1c d4 15  20 20 20 6c 25 3d 28 28  |........   l%=((|
000041f0  6e 2a 6c 25 29 2d 6c 25  29 0d 1c de 16 20 20 20  |n*l%)-l%)....   |
00004200  6c 65 6e 67 74 68 25 28  6e 25 29 2b 3d 6c 25 0d  |length%(n%)+=l%.|
00004210  1c e8 14 20 20 20 73 6c  65 6e 25 28 6e 25 29 2b  |...   slen%(n%)+|
00004220  3d 6c 25 0d 1c f2 22 20  20 20 6d 61 67 6c 65 6e  |=l%..."   maglen|
00004230  25 28 6e 25 29 2b 3d 6c  25 3a f2 63 68 6b 6d 61  |%(n%)+=l%:.chkma|
00004240  67 28 6e 25 29 0d 1c fc  04 0d 1d 06 0f 20 63 68  |g(n%)........ ch|
00004250  61 6e 67 65 64 25 3d b9  0d 1d 10 17 20 c8 99 20  |anged%=..... .. |
00004260  22 48 6f 75 72 67 6c 61  73 73 5f 4f 66 66 22 0d  |"Hourglass_Off".|
00004270  1d 1a 05 e1 0d 1d 24 05  3a 0d 1d 2e 24 dd 20 f2  |......$.:...$. .|
00004280  63 6c 69 70 69 74 3a e7  20 ac 63 6c 69 70 69 74  |clipit:. .clipit|
00004290  25 20 42 25 3d 42 25 83  32 35 36 3a e1 0d 1d 38  |% B%=B%.256:...8|
000042a0  17 e7 20 42 25 3e 32 35  35 20 8c 20 42 25 3d 32  |.. B%>255 . B%=2|
000042b0  35 35 3a e1 0d 1d 42 11  e7 20 42 25 3c 30 20 8c  |55:...B.. B%<0 .|
000042c0  20 42 25 3d 30 0d 1d 4c  05 e1 0d 1d 56 05 3a 0d  | B%=0..L....V.:.|
000042d0  1d 60 4c 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |.`L=============|
000042e0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00004310  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 0d 1d 6a 05 3a  |===========..j.:|
00004320  0d 1d 74 13 dd 20 a4 63  6c 61 69 6d 28 73 69 7a  |..t.. .claim(siz|
00004330  65 25 29 0d 1d 7e 07 ea  20 85 0d 1d 88 17 ee 20  |e%)..~.. ...... |
00004340  85 20 ea 20 f2 65 72 72  6f 72 65 6e 64 28 f6 24  |. . .errorend(.$|
00004350  29 0d 1d 92 04 0d 1d 9c  46 f4 20 44 6f 20 4f 53  |).......F. Do OS|
00004360  5f 4d 6f 64 75 6c 65 20  63 61 6c 6c 20 74 6f 20  |_Module call to |
00004370  66 69 6e 64 20 62 69 67  67 65 73 74 20 62 6c 6f  |find biggest blo|
00004380  63 6b 20 2d 20 49 66 20  74 6f 6f 20 73 6d 61 6c  |ck - If too smal|
00004390  6c 2c 20 63 6f 6d 70 6c  61 69 6e 0d 1d a6 31 f4  |l, complain...1.|
000043a0  20 2d 20 54 68 69 73 20  6d 61 79 20 62 75 67 67  | - This may bugg|
000043b0  65 72 20 75 70 20 61 75  74 6f 2d 61 6c 6c 6f 63  |er up auto-alloc|
000043c0  61 74 69 6f 6e 20 74 6f  20 52 4d 41 0d 1d b0 4b  |ation to RMA...K|
000043d0  f4 20 2d 20 54 68 69 73  20 6d 61 79 20 62 65 20  |. - This may be |
000043e0  61 20 67 6f 6f 64 20 74  68 69 6e 67 3a 20 74 68  |a good thing: th|
000043f0  65 20 75 73 65 72 20 6d  75 73 74 20 65 78 70 6c  |e user must expl|
00004400  69 63 69 74 6c 79 20 67  69 76 65 20 75 73 20 74  |icitly give us t|
00004410  68 65 20 6d 65 6d 2e 0d  1d ba 04 0d 1d c4 2c c8  |he mem........,.|
00004420  99 20 22 4f 53 5f 4d 6f  64 75 6c 65 22 2c 36 2c  |. "OS_Module",6,|
00004430  2c 2c 73 69 7a 65 25 20  b8 20 2c 2c 70 74 72 25  |,,size% . ,,ptr%|
00004440  3b 66 6c 61 67 73 25 0d  1d ce 3e e7 20 70 74 72  |;flags%...>. ptr|
00004450  25 3c 31 20 84 20 66 6c  61 67 73 25 3c 3e 36 20  |%<1 . flags%<>6 |
00004460  8c 20 f2 65 72 72 6f 72  28 22 4e 6f 74 20 65 6e  |. .error("Not en|
00004470  6f 75 67 68 20 72 6f 6f  6d 20 69 6e 20 52 4d 41  |ough room in RMA|
00004480  22 29 3a 3d 30 0d 1d d8  09 3d 70 74 72 25 0d 1d  |"):=0....=ptr%..|
00004490  e2 05 3a 0d 1d ec 3c dd  20 f2 63 6c 61 69 6d 6d  |..:...<. .claimm|
000044a0  6f 72 65 28 6e 25 2c 6c  25 29 20 3a f4 20 47 65  |ore(n%,l%) :. Ge|
000044b0  74 20 6c 25 20 66 72 65  65 20 62 79 74 65 73 20  |t l% free bytes |
000044c0  61 74 20 65 6e 64 20 6f  66 20 73 6f 75 6e 64 0d  |at end of sound.|
000044d0  1d f6 28 70 73 74 61 72  74 25 3d 73 74 61 72 74  |..(pstart%=start|
000044e0  25 28 6e 25 29 3a 70 6c  65 6e 25 3d 6c 65 6e 67  |%(n%):plen%=leng|
000044f0  74 68 25 28 6e 25 29 0d  1e 00 17 72 6d 61 6c 65  |th%(n%)....rmale|
00004500  6e 25 3d 72 6d 61 6c 65  6e 25 28 6e 25 29 0d 1e  |n%=rmalen%(n%)..|
00004510  0a 1a e7 20 28 72 6d 61  6c 65 6e 25 2d 70 6c 65  |... (rmalen%-ple|
00004520  6e 25 29 3c 6c 25 20 8c  0d 1e 14 1a 20 20 f2 72  |n%)<l% .....  .r|
00004530  65 6c 65 61 73 65 28 73  74 61 72 74 25 28 6e 25  |elease(start%(n%|
00004540  29 29 0d 1e 1e 32 20 20  6e 65 77 6c 65 6e 25 3d  |))...2  newlen%=|
00004550  28 28 70 6c 65 6e 25 2b  6c 25 29 81 72 6f 75 6e  |((plen%+l%).roun|
00004560  64 73 69 7a 65 25 2b 31  29 2a 72 6f 75 6e 64 73  |dsize%+1)*rounds|
00004570  69 7a 65 25 0d 1e 28 1f  20 20 6e 65 77 73 74 61  |ize%..(.  newsta|
00004580  72 74 25 3d a4 63 6c 61  69 6d 28 6e 65 77 6c 65  |rt%=.claim(newle|
00004590  6e 25 29 0d 1e 32 15 20  20 e7 20 6e 65 77 73 74  |n%)..2.  . newst|
000045a0  61 72 74 25 3e 30 20 8c  0d 1e 3c 1d 20 20 20 20  |art%>0 ...<.    |
000045b0  e7 20 6e 65 77 73 74 61  72 74 25 3c 70 73 74 61  |. newstart%<psta|
000045c0  72 74 25 20 8c 0d 1e 46  16 20 20 20 20 20 20 41  |rt% ...F.      A|
000045d0  25 3d 6e 65 77 73 74 61  72 74 25 0d 1e 50 1c 20  |%=newstart%..P. |
000045e0  20 20 20 20 20 42 25 3d  6e 65 77 73 74 61 72 74  |     B%=newstart|
000045f0  25 2b 70 6c 65 6e 25 0d  1e 5a 1a 20 20 20 20 20  |%+plen%..Z.     |
00004600  20 43 25 3d 70 73 74 61  72 74 25 2b 70 6c 65 6e  | C%=pstart%+plen|
00004610  25 0d 1e 64 10 20 20 20  20 20 20 d6 20 62 66 65  |%..d.      . bfe|
00004620  72 0d 1e 6e 09 20 20 20  20 cd 0d 1e 78 1d 20 20  |r..n.    ...x.  |
00004630  20 20 e7 20 6e 65 77 73  74 61 72 74 25 3e 70 73  |  . newstart%>ps|
00004640  74 61 72 74 25 20 8c 0d  1e 82 2c 20 20 20 20 20  |tart% ....,     |
00004650  20 f2 74 72 61 6e 73 66  65 72 28 70 73 74 61 72  | .transfer(pstar|
00004660  74 25 2c 70 6c 65 6e 25  2c 6e 65 77 73 74 61 72  |t%,plen%,newstar|
00004670  74 25 29 0d 1e 8c 09 20  20 20 20 cd 0d 1e 96 30  |t%)....    ....0|
00004680  20 20 20 20 73 74 61 72  74 25 28 6e 25 29 3d 6e  |    start%(n%)=n|
00004690  65 77 73 74 61 72 74 25  3a 72 6d 61 6c 65 6e 25  |ewstart%:rmalen%|
000046a0  28 6e 25 29 3d 6e 65 77  6c 65 6e 25 0d 1e a0 33  |(n%)=newlen%...3|
000046b0  20 20 20 20 73 73 74 61  72 74 25 28 6e 25 29 3d  |    sstart%(n%)=|
000046c0  28 73 73 74 61 72 74 25  28 6e 25 29 2d 70 73 74  |(sstart%(n%)-pst|
000046d0  61 72 74 25 29 2b 6e 65  77 73 74 61 72 74 25 0d  |art%)+newstart%.|
000046e0  1e aa 19 20 20 20 20 70  73 74 61 72 74 25 3d 6e  |...    pstart%=n|
000046f0  65 77 73 74 61 72 74 25  0d 1e b4 07 20 20 cd 0d  |ewstart%....  ..|
00004700  1e be 05 cc 0d 1e c8 17  20 20 6e 65 77 73 74 61  |........  newsta|
00004710  72 74 25 3d 70 73 74 61  72 74 25 0d 1e d2 05 cd  |rt%=pstart%.....|
00004720  0d 1e dc 05 e1 0d 1e e6  05 3a 0d 1e f0 16 dd 20  |.........:..... |
00004730  f2 72 65 6c 65 61 73 65  28 f8 20 70 74 72 25 29  |.release(. ptr%)|
00004740  0d 1e fa 04 0d 1f 04 25  e7 20 70 74 72 25 3e 30  |.......%. ptr%>0|
00004750  20 8c 20 c8 99 20 22 4f  53 5f 4d 6f 64 75 6c 65  | . .. "OS_Module|
00004760  22 2c 37 2c 2c 70 74 72  25 0d 1f 0e 0a 70 74 72  |",7,,ptr%....ptr|
00004770  25 3d 30 0d 1f 18 05 e1  0d 1f 22 05 3a 0d 1f 2c  |%=0.......".:..,|
00004780  1c dd 20 f2 62 75 74 74  6f 6e 63 6c 69 63 6b 28  |.. .buttonclick(|
00004790  42 25 2c 57 25 2c 49 25  29 0d 1f 36 0b c8 8e 20  |B%,W%,I%)..6... |
000047a0  42 25 20 ca 0d 1f 40 1d  20 c9 20 31 20 3a 20 f2  |B% ...@. . 1 : .|
000047b0  73 61 63 6c 69 63 6b 28  42 25 2c 57 25 2c 49 25  |saclick(B%,W%,I%|
000047c0  29 0d 1f 4a 29 20 c9 20  32 20 3a 20 f2 6d 65 6e  |)..J) . 2 : .men|
000047d0  75 63 6c 69 63 6b 28 57  25 2c 62 25 21 30 2d 31  |uclick(W%,b%!0-1|
000047e0  36 2c 62 25 21 34 2d 31  32 29 0d 1f 54 1d 20 c9  |6,b%!4-12)..T. .|
000047f0  20 34 20 3a 20 f2 73 61  63 6c 69 63 6b 28 42 25  | 4 : .saclick(B%|
00004800  2c 57 25 2c 49 25 29 0d  1f 5e 05 cb 0d 1f 68 05  |,W%,I%)..^....h.|
00004810  e1 0d 1f 72 05 3a 0d 1f  7c 18 dd 20 f2 73 61 63  |...r.:..|.. .sac|
00004820  6c 69 63 6b 28 42 25 2c  57 25 2c 49 25 29 0d 1f  |lick(B%,W%,I%)..|
00004830  86 22 ea 20 70 72 6f 63  25 2c 6e 25 2c 78 72 61  |.". proc%,n%,xra|
00004840  6e 67 65 25 2c 78 30 25  3a 70 72 6f 63 25 3d a3  |nge%,x0%:proc%=.|
00004850  0d 1f 90 11 e7 20 73 6e  75 6d 25 3c 31 20 8c 20  |..... snum%<1 . |
00004860  e1 0d 1f 9a 04 0d 1f a4  16 e7 20 57 25 3d 66 69  |.......... W%=fi|
00004870  6c 65 77 69 6e 64 6f 77  25 20 8c 0d 1f ae 1a 20  |lewindow% ..... |
00004880  6e 25 3d a4 68 61 6e 64  6c 65 74 6f 73 6e 75 6d  |n%=.handletosnum|
00004890  28 6d 77 25 29 0d 1f b8  0c 20 c8 8e 20 49 25 20  |(mw%).... .. I% |
000048a0  ca 0d 1f c2 3f 20 20 c9  20 66 69 6c 65 69 63 6f  |....?  . fileico|
000048b0  6e 25 3a 20 20 20 73 61  76 65 73 65 6c 25 3d a3  |n%:   savesel%=.|
000048c0  3a 73 61 76 65 77 69 6e  64 25 3d 6d 77 25 3a f2  |:savewind%=mw%:.|
000048d0  64 72 61 67 66 69 6c 65  3a 70 72 6f 63 25 3d b9  |dragfile:proc%=.|
000048e0  0d 1f cc 69 20 20 c9 20  66 69 6c 65 6f 6b 25 2c  |...i  . fileok%,|
000048f0  66 69 6c 65 6e 61 6d 65  69 63 6f 6e 25 3a 20 f2  |filenameicon%: .|
00004900  73 61 76 65 69 74 28 6e  25 2c 24 66 69 6c 65 6e  |saveit(n%,$filen|
00004910  61 6d 65 25 2c 73 74 61  72 74 25 28 6e 25 29 2c  |ame%,start%(n%),|
00004920  6c 65 6e 67 74 68 25 28  6e 25 29 29 3a 70 72 6f  |length%(n%)):pro|
00004930  63 25 3d b9 3a 6e 61 6d  65 24 28 6e 25 29 3d 24  |c%=.:name$(n%)=$|
00004940  66 69 6c 65 6e 61 6d 65  25 0d 1f d6 06 20 cb 0d  |filename%.... ..|
00004950  1f e0 05 cd 0d 1f ea 04  0d 1f f4 17 e7 20 57 25  |............. W%|
00004960  3d 66 69 6c 65 77 69 6e  64 6f 77 32 25 20 8c 0d  |=filewindow2% ..|
00004970  1f fe 1a 20 6e 25 3d a4  68 61 6e 64 6c 65 74 6f  |... n%=.handleto|
00004980  73 6e 75 6d 28 6d 77 25  29 0d 20 08 0c 20 c8 8e  |snum(mw%). .. ..|
00004990  20 49 25 20 ca 0d 20 12  3f 20 20 c9 20 66 69 6c  | I% .. .?  . fil|
000049a0  65 69 63 6f 6e 25 3a 20  20 20 73 61 76 65 73 65  |eicon%:   savese|
000049b0  6c 25 3d b9 3a 73 61 76  65 77 69 6e 64 25 3d 6d  |l%=.:savewind%=m|
000049c0  77 25 3a f2 64 72 61 67  66 69 6c 65 3a 70 72 6f  |w%:.dragfile:pro|
000049d0  63 25 3d b9 0d 20 1c 54  20 20 c9 20 66 69 6c 65  |c%=.. .T  . file|
000049e0  6f 6b 25 2c 66 69 6c 65  6e 61 6d 65 69 63 6f 6e  |ok%,filenameicon|
000049f0  25 3a 20 f2 73 61 76 65  69 74 28 6e 25 2c 24 66  |%: .saveit(n%,$f|
00004a00  69 6c 65 6e 61 6d 65 32  25 2c 73 73 74 61 72 74  |ilename2%,sstart|
00004a10  25 28 6e 25 29 2c 73 6c  65 6e 25 28 6e 25 29 29  |%(n%),slen%(n%))|
00004a20  3a 70 72 6f 63 25 3d b9  0d 20 26 06 20 cb 0d 20  |:proc%=.. &. .. |
00004a30  30 05 cd 0d 20 3a 04 0d  20 44 12 e7 20 57 25 3d  |0... :.. D.. W%=|
00004a40  64 69 61 6c 6f 67 25 20  8c 0d 20 4e 1d 20 e7 20  |dialog% .. N. . |
00004a50  49 25 3e 2d 31 20 80 20  49 25 3c 36 20 8c 20 70  |I%>-1 . I%<6 . p|
00004a60  72 6f 63 25 3d b9 0d 20  58 0c 20 c8 8e 20 49 25  |roc%=.. X. .. I%|
00004a70  20 ca 0d 20 62 3b 20 20  20 c9 20 30 2c 31 2c 32  | .. b;   . 0,1,2|
00004a80  2c 33 3a 20 f2 73 61 64  69 61 6c 6f 67 28 49 25  |,3: .sadialog(I%|
00004a90  2c 42 25 2c a4 68 61 6e  64 6c 65 74 6f 73 6e 75  |,B%,.handletosnu|
00004aa0  6d 28 6c 6f 61 64 77 69  6e 64 25 29 29 0d 20 6c  |m(loadwind%)). l|
00004ab0  34 20 20 20 c9 20 34 3a  20 f2 73 61 64 69 61 6c  |4   . 4: .sadial|
00004ac0  6f 67 28 34 2c 31 33 2c  a4 68 61 6e 64 6c 65 74  |og(4,13,.handlet|
00004ad0  6f 73 6e 75 6d 28 6c 6f  61 64 77 69 6e 64 25 29  |osnum(loadwind%)|
00004ae0  29 0d 20 76 17 20 20 20  c9 20 35 3a 20 f2 6b 69  |). v.   . 5: .ki|
00004af0  6c 6c 64 69 61 6c 6f 67  0d 20 80 06 20 cb 0d 20  |lldialog. .. .. |
00004b00  8a 05 cd 0d 20 94 0d e7  20 70 72 6f 63 25 20 e1  |.... ... proc% .|
00004b10  0d 20 9e 04 0d 20 a8 08  5a 25 3d 31 0d 20 b2 05  |. ... ..Z%=1. ..|
00004b20  f5 0d 20 bc 19 20 20 e7  20 57 25 3d 77 68 61 6e  |.. ..  . W%=whan|
00004b30  64 6c 65 25 28 5a 25 29  20 8c 0d 20 c6 34 20 20  |dle%(Z%) .. .4  |
00004b40  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 43 61 72  | .. "Wimp_SetCar|
00004b50  65 74 50 6f 73 69 74 69  6f 6e 22 2c 57 25 2c 2d  |etPosition",W%,-|
00004b60  31 2c 30 2c 2d 31 30 30  30 2c 30 2c 2d 31 0d 20  |1,0,-1000,0,-1. |
00004b70  d0 1d 20 20 20 f4 20 47  72 61 62 20 74 68 65 20  |..   . Grab the |
00004b80  69 6e 70 75 74 20 66 6f  63 75 73 0d 20 da 0e 20  |input focus. .. |
00004b90  20 20 c8 8e 20 49 25 20  ca 0d 20 e4 1d 20 20 20  |  .. I% .. ..   |
00004ba0  20 20 20 c9 20 30 3a 20  f2 73 74 61 72 74 64 72  |   . 0: .startdr|
00004bb0  61 67 28 5a 25 29 0d 20  ee 36 20 20 20 20 20 20  |ag(Z%). .6      |
00004bc0  c9 20 31 3a 20 e7 20 42  25 3d 34 20 8c 20 f2 73  |. 1: . B%=4 . .s|
00004bd0  63 72 6f 6c 6c 28 5a 25  2c 2d 31 29 20 8b 20 f2  |croll(Z%,-1) . .|
00004be0  73 63 72 6f 6c 6c 28 5a  25 2c 31 29 0d 20 f8 41  |scroll(Z%,1). .A|
00004bf0  20 20 20 20 20 20 c9 20  32 3a 20 f2 70 6c 61 79  |      . 2: .play|
00004c00  28 5a 25 2c 73 73 74 61  72 74 25 28 5a 25 29 2c  |(Z%,sstart%(Z%),|
00004c10  73 6c 65 6e 25 28 5a 25  29 2c 73 70 65 65 64 25  |slen%(Z%),speed%|
00004c20  28 5a 25 29 2c 76 6f 6c  75 6d 65 25 29 0d 21 02  |(Z%),volume%).!.|
00004c30  1b 20 20 20 20 20 20 c9  20 33 3a 20 f2 7a 6f 6f  |.      . 3: .zoo|
00004c40  6d 28 5a 25 2c 42 25 29  0d 21 0c 36 20 20 20 20  |m(Z%,B%).!.6    |
00004c50  20 20 c9 20 34 3a 20 e7  20 42 25 3d 34 20 8c 20  |  . 4: . B%=4 . |
00004c60  f2 73 63 72 6f 6c 6c 28  5a 25 2c 31 29 20 8b 20  |.scroll(Z%,1) . |
00004c70  f2 73 63 72 6f 6c 6c 28  5a 25 2c 2d 31 29 0d 21  |.scroll(Z%,-1).!|
00004c80  16 28 20 20 20 20 20 20  c9 20 73 70 64 69 63 6f  |.(      . spdico|
00004c90  6e 25 28 5a 25 29 2c 69  6e 66 6f 69 63 6f 6e 31  |n%(Z%),infoicon1|
00004ca0  25 28 5a 25 29 3a 0d 21  20 35 20 20 20 20 20 20  |%(Z%):.! 5      |
00004cb0  20 20 20 20 62 25 21 33  32 3d 77 68 61 6e 64 6c  |    b%!32=whandl|
00004cc0  65 25 28 5a 25 29 3a 62  25 21 33 36 3d 69 6e 66  |e%(Z%):b%!36=inf|
00004cd0  6f 69 63 6f 6e 31 25 28  5a 25 29 0d 21 2a 31 20  |oicon1%(Z%).!*1 |
00004ce0  20 20 20 20 20 20 20 20  20 c8 99 20 22 57 69 6d  |         .. "Wim|
00004cf0  70 5f 47 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_GetIconState",|
00004d00  2c 62 25 2b 33 32 2c 62  25 21 33 36 0d 21 34 2b  |,b%+32,b%!36.!4+|
00004d10  20 20 20 20 20 20 20 20  20 20 78 72 61 6e 67 65  |          xrange|
00004d20  25 3d 62 25 21 34 38 2d  62 25 21 34 30 3a 78 30  |%=b%!48-b%!40:x0|
00004d30  25 3d 62 25 21 34 30 0d  21 3e 40 20 20 20 20 20  |%=b%!40.!>@     |
00004d40  20 20 20 20 20 62 25 21  33 32 3d 77 68 61 6e 64  |     b%!32=whand|
00004d50  6c 65 25 28 5a 25 29 3a  c8 99 20 22 57 69 6d 70  |le%(Z%):.. "Wimp|
00004d60  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00004d70  2c 2c 62 25 2b 33 32 0d  21 48 20 20 20 20 20 20  |,,b%+32.!H      |
00004d80  20 20 20 20 20 78 30 25  2b 3d 28 62 25 21 33 36  |     x0%+=(b%!36|
00004d90  2d 62 25 21 35 32 29 0d  21 52 36 20 20 20 20 20  |-b%!52).!R6     |
00004da0  20 20 20 20 20 73 70 65  65 64 25 28 5a 25 29 3d  |     speed%(Z%)=|
00004db0  32 35 35 2d 28 28 28 21  62 25 2d 78 30 25 29 2f  |255-(((!b%-x0%)/|
00004dc0  78 72 61 6e 67 65 25 29  2a 32 35 35 29 0d 21 5c  |xrange%)*255).!\|
00004dd0  41 20 20 20 20 20 20 20  20 20 20 f2 70 6c 61 79  |A          .play|
00004de0  28 5a 25 2c 73 74 61 72  74 25 28 5a 25 29 2c 6c  |(Z%,start%(Z%),l|
00004df0  65 6e 67 74 68 25 28 5a  25 29 2c 73 70 65 65 64  |ength%(Z%),speed|
00004e00  25 28 5a 25 29 2c 76 6f  6c 75 6d 65 25 29 0d 21  |%(Z%),volume%).!|
00004e10  66 2a 20 20 20 20 20 20  20 20 20 20 c8 99 20 22  |f*          .. "|
00004e20  57 69 6d 70 5f 47 65 74  50 6f 69 6e 74 65 72 49  |Wimp_GetPointerI|
00004e30  6e 66 6f 22 2c 2c 62 25  0d 21 70 42 20 20 20 20  |nfo",,b%.!pB    |
00004e40  20 20 20 20 20 20 e7 20  21 62 25 3c 3e 30 20 8c  |      . !b%<>0 .|
00004e50  20 78 30 25 3d a6 28 34  30 29 20 20 3a f4 20 53  | x0%=.(40)  :. S|
00004e60  68 6f 72 74 20 70 61 75  73 65 20 66 6f 72 20 61  |hort pause for a|
00004e70  75 74 6f 2d 72 65 70 65  61 74 0d 21 7a 08 20 20  |uto-repeat.!z.  |
00004e80  20 cb 0d 21 84 07 20 20  cd 0d 21 8e 0b 20 20 5a  | ..!..  ..!..  Z|
00004e90  25 2b 3d 31 0d 21 98 17  fd 20 5a 25 3e 73 6e 75  |%+=1.!... Z%>snu|
00004ea0  6d 25 20 84 20 5a 25 3e  3d 31 37 0d 21 a2 05 e1  |m% . Z%>=17.!...|
00004eb0  0d 21 ac 05 3a 0d 21 b6  18 dd 20 a4 69 6e 73 72  |.!..:.!... .insr|
00004ec0  65 63 74 28 78 25 2c 79  25 2c 6e 25 29 0d 21 c0  |ect(x%,y%,n%).!.|
00004ed0  31 21 62 25 3d 77 68 61  6e 64 6c 65 25 28 6e 25  |1!b%=whandle%(n%|
00004ee0  29 3a c8 99 20 22 57 69  6d 70 5f 47 65 74 57 69  |):.. "Wimp_GetWi|
00004ef0  6e 64 6f 77 53 74 61 74  65 22 2c 2c 62 25 0d 21  |ndowState",,b%.!|
00004f00  ca 1d 78 25 3d 78 25 2d  28 62 25 21 34 2d 62 25  |..x%=x%-(b%!4-b%|
00004f10  21 32 30 29 2d 77 6c 65  66 74 25 0d 21 d4 1e 79  |!20)-wleft%.!..y|
00004f20  25 3d 79 25 2d 28 62 25  21 31 36 2d 62 25 21 32  |%=y%-(b%!16-b%!2|
00004f30  34 29 2d 77 62 6f 74 74  25 0d 21 de 2d 3d 28 78  |4)-wbott%.!.-=(x|
00004f40  25 3e 30 20 80 20 79 25  3e 30 20 80 20 78 25 3c  |%>0 . y%>0 . x%<|
00004f50  77 77 69 64 74 68 25 20  80 20 79 25 3c 77 68 65  |wwidth% . y%<whe|
00004f60  69 67 68 74 25 29 0d 21  e8 05 3a 0d 21 f2 1a dd  |ight%).!..:.!...|
00004f70  20 f2 6d 65 6e 75 63 6c  69 63 6b 28 57 25 2c 58  | .menuclick(W%,X|
00004f80  25 2c 59 25 29 0d 21 fc  08 ea 20 41 24 0d 22 06  |%,Y%).!... A$.".|
00004f90  18 6d 77 25 3d 57 25 3a  6d 78 25 3d 58 25 3a 6d  |.mw%=W%:mx%=X%:m|
00004fa0  79 25 3d 59 25 0d 22 10  04 0d 22 1a 51 e7 20 57  |y%=Y%."...".Q. W|
00004fb0  25 3d 2d 32 20 8c f2 6d  61 73 74 65 72 6d 65 6e  |%=-2 ..mastermen|
00004fc0  75 28 22 44 53 20 45 64  69 74 20 22 2b c0 c3 28  |u("DS Edit "+..(|
00004fd0  76 65 72 73 69 6f 6e 2b  30 2e 30 30 30 31 29 2c  |version+0.0001),|
00004fe0  34 29 2c 22 51 75 69 74  20 2c 22 2c 22 22 2c 58  |4),"Quit ,","",X|
00004ff0  25 2c 31 34 30 2c 30 29  3a e1 0d 22 24 04 0d 22  |%,140,0):.."$.."|
00005000  2e 0f e7 20 73 6e 75 6d  25 3e 30 20 8c 0d 22 38  |... snum%>0 .."8|
00005010  14 20 20 e3 20 5a 25 3d  31 20 b8 20 73 6e 75 6d  |.  . Z%=1 . snum|
00005020  25 0d 22 42 46 20 20 20  20 e7 20 57 25 3d 77 68  |%."BF    . W%=wh|
00005030  61 6e 64 6c 65 25 28 5a  25 29 20 f2 6d 61 73 74  |andle%(Z%) .mast|
00005040  65 72 6d 65 6e 75 28 22  44 53 20 45 64 69 74 22  |ermenu("DS Edit"|
00005050  2c 6d 65 6e 75 24 2c 6d  65 6e 75 32 24 2c 58 25  |,menu$,menu2$,X%|
00005060  2c 59 25 2c 5a 25 29 0d  22 4c 07 20 20 ed 0d 22  |,Y%,Z%)."L.  .."|
00005070  56 05 cd 0d 22 60 05 e1  0d 22 6a 05 3a 0d 22 74  |V..."`..."j.:."t|
00005080  22 dd 20 f2 6d 65 6e 75  73 65 6c 65 63 74 28 6d  |". .menuselect(m|
00005090  69 74 65 6d 25 2c 73 75  62 69 74 65 6d 25 29 0d  |item%,subitem%).|
000050a0  22 7e 10 ea 20 73 74 61  79 25 2c 6e 75 6d 25 0d  |"~.. stay%,num%.|
000050b0  22 88 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |". .. "Wimp_GetP|
000050c0  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 62 25 0d  |ointerInfo",,b%.|
000050d0  22 92 12 73 74 61 79 25  3d 28 62 25 21 38 3d 31  |"..stay%=(b%!8=1|
000050e0  29 0d 22 9c 04 0d 22 a6  21 e7 20 6d 77 25 3d 2d  |)."...".!. mw%=-|
000050f0  32 20 80 20 6d 69 74 65  6d 25 3d 30 20 71 75 69  |2 . mitem%=0 qui|
00005100  74 25 3d b9 3a e1 0d 22  b0 04 0d 22 ba 1b 6e 75  |t%=.:.."..."..nu|
00005110  6d 25 3d a4 68 61 6e 64  6c 65 74 6f 73 6e 75 6d  |m%=.handletosnum|
00005120  28 6d 77 25 29 0d 22 c4  0f e7 20 73 6e 75 6d 25  |(mw%)."... snum%|
00005130  3e 30 20 8c 0d 22 ce 1a  20 20 73 74 61 72 74 25  |>0 .."..  start%|
00005140  3d 73 73 74 61 72 74 25  28 6e 75 6d 25 29 0d 22  |=sstart%(num%)."|
00005150  d8 19 20 20 6c 65 6e 67  74 68 25 3d 73 6c 65 6e  |..  length%=slen|
00005160  25 28 6e 75 6d 25 29 0d  22 e2 10 20 20 63 68 61  |%(num%)."..  cha|
00005170  6e 67 65 64 25 3d a3 0d  22 ec 11 20 20 c8 8e 20  |nged%=.."..  .. |
00005180  6d 69 74 65 6d 25 20 ca  0d 22 f6 48 20 20 20 20  |mitem% ..".H    |
00005190  c9 20 30 3a 20 f2 70 6c  61 79 28 6e 75 6d 25 2c  |. 0: .play(num%,|
000051a0  73 74 61 72 74 25 28 6e  75 6d 25 29 2c 6c 65 6e  |start%(num%),len|
000051b0  67 74 68 25 28 6e 75 6d  25 29 2c 73 70 65 65 64  |gth%(num%),speed|
000051c0  25 28 6e 75 6d 25 29 2c  76 6f 6c 75 6d 65 25 29  |%(num%),volume%)|
000051d0  0d 23 00 33 20 20 20 20  c9 20 31 3a 20 f4 20 53  |.#.3    . 1: . S|
000051e0  61 76 65 2d 20 44 6f 6e  65 20 74 68 72 75 20 69  |ave- Done thru i|
000051f0  63 6f 6e 73 20 6f 6e 20  66 69 6c 65 20 77 69 6e  |cons on file win|
00005200  64 6f 77 0d 23 0a 82 20  20 20 20 c9 20 32 3a 20  |dow.#..    . 2: |
00005210  73 73 74 61 72 74 25 28  6e 75 6d 25 29 3d 73 74  |sstart%(num%)=st|
00005220  61 72 74 25 28 6e 75 6d  25 29 3a 73 6c 65 6e 25  |art%(num%):slen%|
00005230  28 6e 75 6d 25 29 3d 6c  65 6e 67 74 68 25 28 6e  |(num%)=length%(n|
00005240  75 6d 25 29 3a c8 99 22  57 69 6d 70 5f 46 6f 72  |um%):.."Wimp_For|
00005250  63 65 52 65 64 72 61 77  22 2c 77 68 61 6e 64 6c  |ceRedraw",whandl|
00005260  65 25 28 6e 75 6d 25 29  2c 30 2c 30 2c 31 32 37  |e%(num%),0,0,127|
00005270  39 2c 32 38 38 3a f2 69  6e 66 6f 74 65 78 74 28  |9,288:.infotext(|
00005280  6e 75 6d 25 29 0d 23 14  0c 20 20 20 20 c9 20 33  |num%).#..    . 3|
00005290  3a 0d 23 1e 17 20 20 20  20 20 20 c8 8e 20 73 75  |:.#..      .. su|
000052a0  62 69 74 65 6d 25 20 ca  0d 23 28 39 20 20 20 20  |bitem% ..#(9    |
000052b0  20 20 20 20 c9 20 30 3a  20 f4 20 53 61 76 65 20  |    . 0: . Save |
000052c0  53 65 6c 65 63 74 69 6f  6e 20 2d 44 6f 6e 65 20  |Selection -Done |
000052d0  74 68 72 75 27 20 69 63  6f 6e 20 63 6c 69 63 6b  |thru' icon click|
000052e0  73 0d 23 32 4b 20 20 20  20 20 20 20 20 c9 20 31  |s.#2K        . 1|
000052f0  3a 20 f2 70 6c 61 79 28  6e 75 6d 25 2c 73 73 74  |: .play(num%,sst|
00005300  61 72 74 25 28 6e 75 6d  25 29 2c 73 6c 65 6e 25  |art%(num%),slen%|
00005310  28 6e 75 6d 25 29 2c 73  70 65 65 64 25 28 6e 75  |(num%),speed%(nu|
00005320  6d 25 29 2c 76 6f 6c 75  6d 65 25 29 0d 23 3c 2d  |m%),volume%).#<-|
00005330  20 20 20 20 20 20 20 20  c9 20 32 3a 20 f2 64 65  |        . 2: .de|
00005340  6c 65 74 65 28 73 74 61  72 74 25 2c 6c 65 6e 67  |lete(start%,leng|
00005350  74 68 25 2c 6e 75 6d 25  29 0d 23 46 0b 20 20 20  |th%,num%).#F.   |
00005360  20 20 20 cb 0d 23 50 0c  20 20 20 20 c9 20 34 3a  |   ..#P.    . 4:|
00005370  0d 23 5a 17 20 20 20 20  20 20 c8 8e 20 73 75 62  |.#Z.      .. sub|
00005380  69 74 65 6d 25 20 ca 0d  23 64 28 20 20 20 20 20  |item% ..#d(     |
00005390  20 20 20 c9 20 30 3a 20  f2 72 61 6d 70 75 70 28  |   . 0: .rampup(|
000053a0  73 74 61 72 74 25 2c 6c  65 6e 67 74 68 25 29 0d  |start%,length%).|
000053b0  23 6e 2a 20 20 20 20 20  20 20 20 c9 20 31 3a 20  |#n*        . 1: |
000053c0  f2 72 61 6d 70 64 6f 77  6e 28 73 74 61 72 74 25  |.rampdown(start%|
000053d0  2c 6c 65 6e 67 74 68 25  29 0d 23 78 2c 20 20 20  |,length%).#x,   |
000053e0  20 20 20 20 20 c9 20 32  3a 20 f2 61 6d 70 6c 69  |     . 2: .ampli|
000053f0  66 79 28 73 74 61 72 74  25 2c 6c 65 6e 67 74 68  |fy(start%,length|
00005400  25 2c 2d 31 29 0d 23 82  1e 20 20 20 20 20 20 20  |%,-1).#..       |
00005410  20 c9 20 33 3a 20 f4 20  4d 4f 56 45 20 43 45 4e  | . 3: . MOVE CEN|
00005420  54 52 45 0d 23 8c 1e 20  20 20 20 20 20 20 20 c9  |TRE.#..        .|
00005430  20 34 3a 20 f4 20 4c 49  4d 49 54 20 55 50 50 45  | 4: . LIMIT UPPE|
00005440  52 0d 23 96 1e 20 20 20  20 20 20 20 20 c9 20 35  |R.#..        . 5|
00005450  3a 20 f4 20 4c 49 4d 49  54 20 4c 4f 57 45 52 0d  |: . LIMIT LOWER.|
00005460  23 a0 2d 20 20 20 20 20  20 20 20 c9 20 36 3a 20  |#.-        . 6: |
00005470  f4 20 4c 45 4e 47 54 48  45 4e 2f 53 48 4f 52 54  |. LENGTHEN/SHORT|
00005480  45 4e 20 28 53 71 75 65  65 7a 65 29 0d 23 aa 23  |EN (Squeeze).#.#|
00005490  20 20 20 20 20 20 20 20  c9 20 37 3a 20 f2 6d 61  |        . 7: .ma|
000054a0  6b 65 73 69 6c 65 6e 63  65 28 6e 75 6d 25 29 0d  |kesilence(num%).|
000054b0  23 b4 0b 20 20 20 20 20  20 cb 0d 23 be 0c 20 20  |#..      ..#..  |
000054c0  20 20 c9 20 35 3a 0d 23  c8 17 20 20 20 20 20 20  |  . 5:.#..      |
000054d0  c8 8e 20 73 75 62 69 74  65 6d 25 20 ca 0d 23 d2  |.. subitem% ..#.|
000054e0  2a 20 20 20 20 20 20 20  20 c9 20 30 3a 20 f2 61  |*        . 0: .a|
000054f0  64 64 63 6f 6e 73 74 28  73 74 61 72 74 25 2c 6c  |ddconst(start%,l|
00005500  65 6e 67 74 68 25 29 0d  23 dc 2a 20 20 20 20 20  |ength%).#.*     |
00005510  20 20 20 c9 20 31 3a 20  f2 65 6f 72 63 6f 6e 73  |   . 1: .eorcons|
00005520  74 28 73 74 61 72 74 25  2c 6c 65 6e 67 74 68 25  |t(start%,length%|
00005530  29 0d 23 e6 29 20 20 20  20 20 20 20 20 c9 20 32  |).#.)        . 2|
00005540  3a 20 f2 72 65 76 65 72  73 65 28 73 74 61 72 74  |: .reverse(start|
00005550  25 2c 6c 65 6e 67 74 68  25 29 0d 23 f0 26 20 20  |%,length%).#.&  |
00005560  20 20 20 20 20 20 c9 20  33 3a 20 f2 65 63 68 6f  |      . 3: .echo|
00005570  28 73 74 61 72 74 25 2c  6c 65 6e 67 74 68 25 29  |(start%,length%)|
00005580  0d 23 fa 28 20 20 20 20  20 20 20 20 c9 20 34 3a  |.#.(        . 4:|
00005590  20 f2 66 6c 61 6e 67 65  28 73 74 61 72 74 25 2c  | .flange(start%,|
000055a0  6c 65 6e 67 74 68 25 29  0d 24 04 0b 20 20 20 20  |length%).$..    |
000055b0  20 20 cb 0d 24 0e 0c 20  20 20 20 c9 20 36 3a 0d  |  ..$..    . 6:.|
000055c0  24 18 17 20 20 20 20 20  20 c8 8e 20 73 75 62 69  |$..      .. subi|
000055d0  74 65 6d 25 20 ca 0d 24  22 23 20 20 20 20 20 20  |tem% ..$"#      |
000055e0  20 20 c9 20 30 3a 20 f2  63 68 61 6e 67 65 73 70  |  . 0: .changesp|
000055f0  65 65 64 28 6e 75 6d 25  29 0d 24 2c 1b 20 20 20  |eed(num%).$,.   |
00005600  20 20 20 20 20 c9 20 31  3a 20 f2 63 68 61 6e 67  |     . 1: .chang|
00005610  65 76 6f 6c 0d 24 36 46  20 20 20 20 20 20 20 20  |evol.$6F        |
00005620  c9 20 32 3a 20 63 6c 69  70 69 74 25 3d ac 63 6c  |. 2: clipit%=.cl|
00005630  69 70 69 74 25 3a f2 6d  65 6e 75 74 69 63 6b 28  |ipit%:.menutick(|
00005640  22 43 6c 69 70 70 69 6e  67 22 2c 63 6c 69 70 69  |"Clipping",clipi|
00005650  74 25 2c 6d 65 6e 75 32  24 29 0d 24 40 53 20 20  |t%,menu2$).$@S  |
00005660  20 20 20 20 20 20 c9 20  33 3a 20 66 6c 61 67 73  |      . 3: flags|
00005670  25 28 6e 75 6d 25 29 3d  66 6c 61 67 73 25 28 6e  |%(num%)=flags%(n|
00005680  75 6d 25 29 82 31 3a c8  99 20 22 57 69 6d 70 5f  |um%).1:.. "Wimp_|
00005690  46 6f 72 63 65 52 65 64  72 61 77 22 2c 6d 77 25  |ForceRedraw",mw%|
000056a0  2c 30 2c 30 2c 31 32 37  39 2c 32 38 38 0d 24 4a  |,0,0,1279,288.$J|
000056b0  0b 20 20 20 20 20 20 cb  0d 24 54 07 20 20 cb 0d  |.      ..$T.  ..|
000056c0  24 5e 21 20 20 e7 20 63  68 61 6e 67 65 64 25 20  |$^!  . changed% |
000056d0  8c 20 f2 63 68 61 6e 67  65 64 28 6e 75 6d 25 29  |. .changed(num%)|
000056e0  0d 24 68 05 cd 0d 24 72  3c e7 20 73 74 61 79 25  |.$h...$r<. stay%|
000056f0  20 f2 6d 61 73 74 65 72  6d 65 6e 75 28 22 44 53  | .mastermenu("DS|
00005700  20 45 64 69 74 22 2c 6d  65 6e 75 24 2c 6d 65 6e  | Edit",menu$,men|
00005710  75 32 24 2c 6d 78 25 2c  6d 79 25 2c 6e 75 6d 25  |u2$,mx%,my%,num%|
00005720  29 0d 24 7c 05 e1 0d 24  86 05 3a 0d 24 90 14 dd  |).$|...$..:.$...|
00005730  20 f2 63 68 61 6e 67 65  64 28 6e 75 6d 25 29 0d  | .changed(num%).|
00005740  24 9a 1c 63 68 61 6e 67  65 64 25 28 6e 75 6d 25  |$..changed%(num%|
00005750  29 3d b9 3a 21 62 25 3d  6d 77 25 0d 24 a4 12 f2  |)=.:!b%=mw%.$...|
00005760  73 65 74 75 70 64 74 28  6e 75 6d 25 29 0d 24 ae  |setupdt(num%).$.|
00005770  31 24 28 6e 61 6d 65 73  25 2b 31 36 2a 28 6e 75  |1$(names%+16*(nu|
00005780  6d 25 2d 31 29 29 3d a4  6c 65 61 66 28 6e 61 6d  |m%-1))=.leaf(nam|
00005790  65 24 28 6e 75 6d 25 29  29 2b 22 20 2a 22 0d 24  |e$(num%))+" *".$|
000057a0  b8 1c f2 72 65 74 69 74  6c 65 28 77 68 61 6e 64  |...retitle(whand|
000057b0  6c 65 25 28 6e 75 6d 25  29 29 0d 24 c2 2a c8 99  |le%(num%)).$.*..|
000057c0  20 22 57 69 6d 70 5f 46  6f 72 63 65 52 65 64 72  | "Wimp_ForceRedr|
000057d0  61 77 22 2c 6d 77 25 2c  30 2c 30 2c 31 32 37 39  |aw",mw%,0,0,1279|
000057e0  2c 32 38 38 0d 24 cc 13  f2 69 6e 66 6f 74 65 78  |,288.$...infotex|
000057f0  74 28 6e 75 6d 25 29 0d  24 d6 05 e1 0d 24 e0 05  |t(num%).$....$..|
00005800  3a 0d 24 ea 11 dd 20 f2  70 72 6f 63 65 73 73 6b  |:.$... .processk|
00005810  65 79 0d 24 f4 0f ea 20  6b 65 79 25 2c 6e 75 6d  |ey.$... key%,num|
00005820  25 0d 24 fe 1b 6e 75 6d  25 3d a4 68 61 6e 64 6c  |%.$..num%=.handl|
00005830  65 74 6f 73 6e 75 6d 28  21 62 25 29 0d 25 08 0e  |etosnum(!b%).%..|
00005840  6b 65 79 25 3d 62 25 21  32 34 0d 25 12 04 0d 25  |key%=b%!24.%...%|
00005850  1c 0d c8 8e 20 6b 65 79  25 20 ca 0d 25 26 0b 20  |.... key% ..%&. |
00005860  20 c9 20 31 33 3a 0d 25  30 14 20 20 20 20 20 20  | . 13:.%0.      |
00005870  e7 20 6e 75 6d 25 3e 30  20 8c 0d 25 3a 47 20 20  |. num%>0 ..%:G  |
00005880  20 20 20 20 20 20 f2 70  6c 61 79 28 6e 75 6d 25  |      .play(num%|
00005890  2c 73 74 61 72 74 25 28  6e 75 6d 25 29 2c 6c 65  |,start%(num%),le|
000058a0  6e 67 74 68 25 28 6e 75  6d 25 29 2c 73 70 65 65  |ngth%(num%),spee|
000058b0  64 25 28 6e 75 6d 25 29  2c 76 6f 6c 75 6d 65 25  |d%(num%),volume%|
000058c0  29 0d 25 44 0b 20 20 20  20 20 20 cc 0d 25 4e 21  |).%D.      ..%N!|
000058d0  20 20 20 20 20 20 20 20  f2 73 61 63 6c 69 63 6b  |        .saclick|
000058e0  28 31 33 2c 21 62 25 2c  62 25 21 34 29 0d 25 58  |(13,!b%,b%!4).%X|
000058f0  0b 20 20 20 20 20 20 cd  0d 25 62 04 0d 25 6c 42  |.      ..%b..%lB|
00005900  20 20 c9 20 31 32 37 2c  38 3a 20 20 20 20 20 20  |  . 127,8:      |
00005910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005920  3a f4 20 44 65 6c 65 74  65 20 6b 65 79 20 70 72  |:. Delete key pr|
00005930  65 73 73 65 64 20 28 64  65 6c 65 74 65 29 0d 25  |essed (delete).%|
00005940  76 14 20 20 20 20 20 20  e7 20 6e 75 6d 25 3e 30  |v.      . num%>0|
00005950  20 8c 0d 25 80 0e 20 20  20 20 20 20 20 20 ef 37  | ..%..        .7|
00005960  0d 25 8a 33 20 20 20 20  20 20 20 20 f2 64 65 6c  |.%.3        .del|
00005970  65 74 65 28 73 73 74 61  72 74 25 28 6e 75 6d 25  |ete(sstart%(num%|
00005980  29 2c 73 6c 65 6e 25 28  6e 75 6d 25 29 2c 6e 75  |),slen%(num%),nu|
00005990  6d 25 29 0d 25 94 2d 20  20 20 20 20 20 20 20 6d  |m%).%.-        m|
000059a0  77 25 3d 77 68 61 6e 64  6c 65 25 28 6e 75 6d 25  |w%=whandle%(num%|
000059b0  29 3a f2 63 68 61 6e 67  65 64 28 6e 75 6d 25 29  |):.changed(num%)|
000059c0  0d 25 9e 45 20 20 20 20  20 20 20 20 c8 99 20 22  |.%.E        .. "|
000059d0  57 69 6d 70 5f 53 65 74  43 61 72 65 74 50 6f 73  |Wimp_SetCaretPos|
000059e0  69 74 69 6f 6e 22 2c 77  68 61 6e 64 6c 65 25 28  |ition",whandle%(|
000059f0  6e 75 6d 25 29 2c 2d 31  2c 30 2c 2d 31 30 30 30  |num%),-1,0,-1000|
00005a00  2c 30 2c 2d 31 0d 25 a8  0b 20 20 20 20 20 20 cd  |,0,-1.%..      .|
00005a10  0d 25 b2 04 0d 25 bc 41  20 20 c9 20 33 32 3a 20  |.%...%.A  . 32: |
00005a20  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005a30  20 20 20 20 20 20 20 20  3a f4 20 53 70 61 63 65  |        :. Space|
00005a40  20 62 61 72 20 28 70 6c  61 79 20 73 65 6c 65 63  | bar (play selec|
00005a50  74 69 6f 6e 29 0d 25 c6  4d 20 20 20 20 20 20 e7  |tion).%.M      .|
00005a60  20 6e 75 6d 25 3e 30 20  f2 70 6c 61 79 28 6e 75  | num%>0 .play(nu|
00005a70  6d 25 2c 73 73 74 61 72  74 25 28 6e 75 6d 25 29  |m%,sstart%(num%)|
00005a80  2c 73 6c 65 6e 25 28 6e  75 6d 25 29 2c 73 70 65  |,slen%(num%),spe|
00005a90  65 64 25 28 6e 75 6d 25  29 2c 76 6f 6c 75 6d 65  |ed%(num%),volume|
00005aa0  25 29 0d 25 d0 04 0d 25  da 3e 20 20 c9 20 34 31  |%).%...%.>  . 41|
00005ab0  34 3a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |4:              |
00005ac0  20 20 20 20 20 20 20 20  20 20 3a f4 20 50 61 67  |          :. Pag|
00005ad0  65 20 64 6f 77 6e 20 28  41 6d 70 6c 69 66 79 20  |e down (Amplify |
00005ae0  37 35 25 29 0d 25 e4 14  20 20 20 20 20 20 e7 20  |75%).%..      . |
00005af0  6e 75 6d 25 3e 30 20 8c  0d 25 ee 0e 20 20 20 20  |num%>0 ..%..    |
00005b00  20 20 20 20 ef 37 0d 25  f8 32 20 20 20 20 20 20  |    .7.%.2      |
00005b10  20 20 f2 61 6d 70 6c 69  66 79 28 73 73 74 61 72  |  .amplify(sstar|
00005b20  74 25 28 6e 75 6d 25 29  2c 73 6c 65 6e 25 28 6e  |t%(num%),slen%(n|
00005b30  75 6d 25 29 2c 37 35 29  0d 26 02 2d 20 20 20 20  |um%),75).&.-    |
00005b40  20 20 20 20 6d 77 25 3d  77 68 61 6e 64 6c 65 25  |    mw%=whandle%|
00005b50  28 6e 75 6d 25 29 3a f2  63 68 61 6e 67 65 64 28  |(num%):.changed(|
00005b60  6e 75 6d 25 29 0d 26 0c  45 20 20 20 20 20 20 20  |num%).&.E       |
00005b70  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 43 61 72  | .. "Wimp_SetCar|
00005b80  65 74 50 6f 73 69 74 69  6f 6e 22 2c 77 68 61 6e  |etPosition",whan|
00005b90  64 6c 65 25 28 6e 75 6d  25 29 2c 2d 31 2c 30 2c  |dle%(num%),-1,0,|
00005ba0  2d 31 30 30 30 2c 30 2c  2d 31 0d 26 16 0b 20 20  |-1000,0,-1.&..  |
00005bb0  20 20 20 20 cd 0d 26 20  04 0d 26 2a 3d 20 20 c9  |    ..& ..&*=  .|
00005bc0  20 34 31 35 3a 20 20 20  20 20 20 20 20 20 20 20  | 415:           |
00005bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 3a f4 20  |             :. |
00005be0  50 61 67 65 20 75 70 20  28 41 6d 70 6c 69 66 79  |Page up (Amplify|
00005bf0  20 31 35 30 25 29 0d 26  34 14 20 20 20 20 20 20  | 150%).&4.      |
00005c00  e7 20 6e 75 6d 25 3e 30  20 8c 0d 26 3e 0e 20 20  |. num%>0 ..&>.  |
00005c10  20 20 20 20 20 20 ef 37  0d 26 48 33 20 20 20 20  |      .7.&H3    |
00005c20  20 20 20 20 f2 61 6d 70  6c 69 66 79 28 73 73 74  |    .amplify(sst|
00005c30  61 72 74 25 28 6e 75 6d  25 29 2c 73 6c 65 6e 25  |art%(num%),slen%|
00005c40  28 6e 75 6d 25 29 2c 31  35 30 29 0d 26 52 2d 20  |(num%),150).&R- |
00005c50  20 20 20 20 20 20 20 6d  77 25 3d 77 68 61 6e 64  |       mw%=whand|
00005c60  6c 65 25 28 6e 75 6d 25  29 3a f2 63 68 61 6e 67  |le%(num%):.chang|
00005c70  65 64 28 6e 75 6d 25 29  0d 26 5c 45 20 20 20 20  |ed(num%).&\E    |
00005c80  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 53 65 74  |    .. "Wimp_Set|
00005c90  43 61 72 65 74 50 6f 73  69 74 69 6f 6e 22 2c 77  |CaretPosition",w|
00005ca0  68 61 6e 64 6c 65 25 28  6e 75 6d 25 29 2c 2d 31  |handle%(num%),-1|
00005cb0  2c 30 2c 2d 31 30 30 30  2c 30 2c 2d 31 0d 26 66  |,0,-1000,0,-1.&f|
00005cc0  0b 20 20 20 20 20 20 cd  0d 26 70 04 0d 26 7a 38  |.      ..&p..&z8|
00005cd0  20 20 c9 20 33 39 35 3a  20 20 20 20 20 20 20 20  |  . 395:        |
00005ce0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005cf0  3a f4 20 43 6f 70 79 20  28 53 65 6c 65 63 74 20  |:. Copy (Select |
00005d00  61 6c 6c 29 0d 26 84 24  20 20 20 20 20 20 73 73  |all).&.$      ss|
00005d10  74 61 72 74 25 28 6e 75  6d 25 29 3d 73 74 61 72  |tart%(num%)=star|
00005d20  74 25 28 6e 75 6d 25 29  0d 26 8e 23 20 20 20 20  |t%(num%).&.#    |
00005d30  20 20 73 6c 65 6e 25 28  6e 75 6d 25 29 3d 6c 65  |  slen%(num%)=le|
00005d40  6e 67 74 68 25 28 6e 75  6d 25 29 0d 26 98 3a 20  |ngth%(num%).&.: |
00005d50  20 20 20 20 20 c8 99 22  57 69 6d 70 5f 46 6f 72  |     .."Wimp_For|
00005d60  63 65 52 65 64 72 61 77  22 2c 77 68 61 6e 64 6c  |ceRedraw",whandl|
00005d70  65 25 28 6e 75 6d 25 29  2c 30 2c 30 2c 31 32 37  |e%(num%),0,0,127|
00005d80  39 2c 32 38 38 0d 26 a2  19 20 20 20 20 20 20 f2  |9,288.&..      .|
00005d90  69 6e 66 6f 74 65 78 74  28 6e 75 6d 25 29 0d 26  |infotext(num%).&|
00005da0  ac 04 0d 26 b6 04 0d 26  c0 22 20 20 7f 3a 20 c8  |...&...&."  .: .|
00005db0  99 20 22 57 69 6d 70 5f  50 72 6f 63 65 73 73 4b  |. "Wimp_ProcessK|
00005dc0  65 79 22 2c 6b 65 79 25  0d 26 ca 05 cb 0d 26 d4  |ey",key%.&....&.|
00005dd0  05 e1 0d 26 de 05 3a 0d  26 e8 0f dd 20 f2 64 72  |...&..:.&... .dr|
00005de0  61 67 66 69 6c 65 0d 26  f2 35 20 20 e7 20 73 61  |agfile.&.5  . sa|
00005df0  76 65 73 65 6c 25 20 8c  20 21 62 25 3d 66 69 6c  |vesel% . !b%=fil|
00005e00  65 77 69 6e 64 6f 77 32  25 20 8b 20 21 62 25 3d  |ewindow2% . !b%=|
00005e10  66 69 6c 65 77 69 6e 64  6f 77 25 0d 26 fc 21 20  |filewindow%.&.! |
00005e20  20 c8 99 22 57 69 6d 70  5f 47 65 74 57 69 6e 64  | .."Wimp_GetWind|
00005e30  6f 77 53 74 61 74 65 22  2c 2c 62 25 0d 27 06 26  |owState",,b%.'.&|
00005e40  20 20 77 65 78 25 3d 62  25 21 34 2d 62 25 21 32  |  wex%=b%!4-b%!2|
00005e50  30 3a 77 65 79 25 3d 62  25 21 31 36 2d 62 25 21  |0:wey%=b%!16-b%!|
00005e60  32 34 0d 27 10 14 20 20  62 25 21 34 3d 66 69 6c  |24.'..  b%!4=fil|
00005e70  65 69 63 6f 6e 25 0d 27  1a 1f 20 20 c8 99 22 57  |eicon%.'..  .."W|
00005e80  69 6d 70 5f 47 65 74 49  63 6f 6e 53 74 61 74 65  |imp_GetIconState|
00005e90  22 2c 2c 62 25 0d 27 24  35 20 20 e7 20 73 61 76  |",,b%.'$5  . sav|
00005ea0  65 73 65 6c 25 20 8c 20  21 62 25 3d 66 69 6c 65  |esel% . !b%=file|
00005eb0  77 69 6e 64 6f 77 32 25  20 8b 20 21 62 25 3d 66  |window2% . !b%=f|
00005ec0  69 6c 65 77 69 6e 64 6f  77 25 0d 27 2e 0c 20 20  |ilewindow%.'..  |
00005ed0  62 25 21 34 3d 35 0d 27  38 1c 20 20 62 25 21 38  |b%!4=5.'8.  b%!8|
00005ee0  2b 3d 77 65 78 25 3a 62  25 21 31 32 2b 3d 77 65  |+=wex%:b%!12+=we|
00005ef0  79 25 0d 27 42 1d 20 20  62 25 21 31 36 2b 3d 77  |y%.'B.  b%!16+=w|
00005f00  65 78 25 3a 62 25 21 32  30 2b 3d 77 65 79 25 0d  |ex%:b%!20+=wey%.|
00005f10  27 4c 15 20 20 62 25 21  32 34 3d 30 3a 62 25 21  |'L.  b%!24=0:b%!|
00005f20  32 38 3d 30 0d 27 56 25  20 20 62 25 21 33 32 3d  |28=0.'V%  b%!32=|
00005f30  26 37 46 46 46 46 46 46  46 3a 62 25 21 33 36 3d  |&7FFFFFFF:b%!36=|
00005f40  26 37 46 46 46 46 46 46  46 0d 27 60 1b 20 20 c8  |&7FFFFFFF.'`.  .|
00005f50  99 20 22 57 69 6d 70 5f  44 72 61 67 42 6f 78 22  |. "Wimp_DragBox"|
00005f60  2c 2c 62 25 0d 27 6a 05  e1 0d 27 74 05 3a 0d 27  |,,b%.'j...'t.:.'|
00005f70  7e 17 dd 20 f2 72 65 74  69 74 6c 65 28 68 61 6e  |~.. .retitle(han|
00005f80  64 6c 65 25 29 0d 27 88  0f 21 62 25 3d 68 61 6e  |dle%).'..!b%=han|
00005f90  64 6c 65 25 0d 27 92 20  c8 99 20 22 57 69 6d 70  |dle%.'. .. "Wimp|
00005fa0  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00005fb0  2c 2c 62 25 0d 27 9c 1d  c8 99 20 22 57 69 6d 70  |,,b%.'.... "Wimp|
00005fc0  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 62  |_CloseWindow",,b|
00005fd0  25 0d 27 a6 1c c8 99 20  22 57 69 6d 70 5f 4f 70  |%.'.... "Wimp_Op|
00005fe0  65 6e 57 69 6e 64 6f 77  22 2c 2c 62 25 0d 27 b0  |enWindow",,b%.'.|
00005ff0  05 e1 0d 27 ba 05 3a 0d  27 c4 23 dd 20 f2 73 61  |...'..:.'.#. .sa|
00006000  76 65 69 74 28 6e 25 2c  6e 61 6d 65 24 2c 73 74  |veit(n%,name$,st|
00006010  61 72 74 25 2c 65 6e 64  25 29 0d 27 ce 10 65 6e  |art%,end%).'..en|
00006020  64 25 2b 3d 73 74 61 72  74 25 0d 27 d8 13 e7 20  |d%+=start%.'... |
00006030  a7 6e 61 6d 65 24 2c 22  2e 22 29 20 8c 0d 27 e2  |.name$,".") ..'.|
00006040  2d 20 20 c8 99 20 22 4f  53 5f 46 69 6c 65 22 2c  |-  .. "OS_File",|
00006050  31 30 2c 6e 61 6d 65 24  2c 26 45 44 30 2c 2c 73  |10,name$,&ED0,,s|
00006060  74 61 72 74 25 2c 65 6e  64 25 0d 27 ec 26 20 20  |tart%,end%.'.&  |
00006070  24 28 6e 61 6d 65 73 25  2b 31 36 2a 28 6e 25 2d  |$(names%+16*(n%-|
00006080  31 29 29 3d a4 6c 65 61  66 28 6e 61 6d 65 24 29  |1))=.leaf(name$)|
00006090  0d 27 f6 1c 20 20 f2 72  65 74 69 74 6c 65 28 77  |.'..  .retitle(w|
000060a0  68 61 6e 64 6c 65 25 28  6e 25 29 29 0d 28 00 14  |handle%(n%)).(..|
000060b0  20 20 63 68 61 6e 67 65  64 25 28 6e 25 29 3d a3  |  changed%(n%)=.|
000060c0  0d 28 0a 05 cc 0d 28 14  3c 20 20 f2 65 72 72 6f  |.(....(.<  .erro|
000060d0  72 28 22 54 6f 20 73 61  76 65 2c 20 64 72 61 67  |r("To save, drag|
000060e0  20 74 68 65 20 69 63 6f  6e 20 74 6f 20 61 20 64  | the icon to a d|
000060f0  69 72 65 63 74 6f 72 79  20 76 69 65 77 65 72 22  |irectory viewer"|
00006100  29 0d 28 1e 05 cd 0d 28  28 2d 21 62 25 3d 66 69  |).(....((-!b%=fi|
00006110  6c 65 77 69 6e 64 6f 77  25 3a c8 99 20 22 57 69  |lewindow%:.. "Wi|
00006120  6d 70 5f 43 6c 6f 73 65  57 69 6e 64 6f 77 22 2c  |mp_CloseWindow",|
00006130  2c 62 25 0d 28 32 2e 21  62 25 3d 66 69 6c 65 77  |,b%.(2.!b%=filew|
00006140  69 6e 64 6f 77 32 25 3a  c8 99 20 22 57 69 6d 70  |indow2%:.. "Wimp|
00006150  5f 43 6c 6f 73 65 57 69  6e 64 6f 77 22 2c 2c 62  |_CloseWindow",,b|
00006160  25 0d 28 3c 1c c8 99 20  22 57 69 6d 70 5f 43 72  |%.(<... "Wimp_Cr|
00006170  65 61 74 65 4d 65 6e 75  22 2c 2c 2d 31 0d 28 46  |eateMenu",,-1.(F|
00006180  05 e1 0d 28 50 05 3a 0d  28 5a 22 dd 20 f2 63 72  |...(P.:.(Z". .cr|
00006190  65 61 74 65 66 69 6c 65  77 28 f8 20 68 61 6e 64  |eatefilew(. hand|
000061a0  25 2c 66 6e 61 6d 65 25  29 0d 28 64 10 e7 20 68  |%,fname%).(d.. h|
000061b0  61 6e 64 25 3c 3e 30 20  8c 0d 28 6e 0f 20 20 21  |and%<>0 ..(n.  !|
000061c0  62 25 3d 68 61 6e 64 25  0d 28 78 20 20 20 c8 99  |b%=hand%.(x   ..|
000061d0  20 22 57 69 6d 70 5f 44  65 6c 65 74 65 57 69 6e  | "Wimp_DeleteWin|
000061e0  64 6f 77 22 2c 2c 62 25  0d 28 82 05 cd 0d 28 8c  |dow",,b%.(....(.|
000061f0  04 0d 28 96 11 62 25 21  30 3d 30 3a 62 25 21 34  |..(..b%!0=0:b%!4|
00006200  3d 30 0d 28 a0 16 62 25  21 38 3d 32 34 36 3a 62  |=0.(..b%!8=246:b|
00006210  25 21 31 32 3d 31 36 38  0d 28 aa 13 62 25 21 31  |%!12=168.(..b%!1|
00006220  36 3d 30 3a 62 25 21 32  30 3d 30 0d 28 b4 16 62  |6=0:b%!20=0.(..b|
00006230  25 21 32 34 3d 2d 31 3a  62 25 21 32 38 3d 26 39  |%!24=-1:b%!28=&9|
00006240  33 0d 28 be 1f 62 25 21  33 32 3d 26 31 30 37 30  |3.(..b%!32=&1070|
00006250  32 30 37 3a 62 25 21 33  36 3d 26 32 30 44 30 34  |207:b%!36=&20D04|
00006260  0d 28 c8 17 62 25 21 34  30 3d 30 3a 62 25 21 34  |.(..b%!40=0:b%!4|
00006270  34 3d 2d 31 30 32 34 0d  28 d2 16 62 25 21 34 38  |4=-1024.(..b%!48|
00006280  3d 31 32 38 30 3a 62 25  21 35 32 3d 30 0d 28 dc  |=1280:b%!52=0.(.|
00006290  15 62 25 21 35 36 3d 26  33 44 3a 62 25 21 36 30  |.b%!56=&3D:b%!60|
000062a0  3d 30 0d 28 e6 13 62 25  21 36 34 3d 31 3a 62 25  |=0.(..b%!64=1:b%|
000062b0  21 36 38 3d 30 0d 28 f0  1f 62 25 21 38 34 3d 30  |!68=0.(..b%!84=0|
000062c0  3a 24 28 62 25 2b 37 32  29 3d 22 53 61 76 65 20  |:$(b%+72)="Save |
000062d0  61 73 3a 22 0d 28 fa 26  c8 99 20 22 57 69 6d 70  |as:".(.&.. "Wimp|
000062e0  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
000062f0  62 25 20 b8 20 68 61 6e  64 25 0d 29 04 04 0d 29  |b% . hand%.)...)|
00006300  0e 3d 66 69 6c 65 6f 6b  25 3d a4 69 63 6f 6e 28  |.=fileok%=.icon(|
00006310  68 61 6e 64 25 2c 31 39  32 2c 2d 31 36 30 2c 32  |hand%,192,-160,2|
00006320  33 38 2c 2d 31 31 32 2c  26 43 37 30 31 39 31 33  |38,-112,&C701913|
00006330  44 2c 6f 6b 73 25 2c 30  2c 33 29 0d 29 18 4a 66  |D,oks%,0,3).).Jf|
00006340  69 6c 65 6e 61 6d 65 69  63 6f 6e 25 3d a4 69 63  |ilenameicon%=.ic|
00006350  6f 6e 28 68 61 6e 64 25  2c 31 30 2c 2d 31 36 30  |on(hand%,10,-160|
00006360  2c 31 38 36 2c 2d 31 31  32 2c 26 37 30 30 46 31  |,186,-112,&700F1|
00006370  33 44 2c 66 6e 61 6d 65  25 2c 76 61 6c 69 64 25  |3D,fname%,valid%|
00006380  2c 32 35 36 29 0d 29 22  40 66 69 6c 65 69 63 6f  |,256).)"@fileico|
00006390  6e 25 3d a4 69 63 6f 6e  28 68 61 6e 64 25 2c 35  |n%=.icon(hand%,5|
000063a0  36 2c 2d 39 32 2c 31 38  34 2c 2d 32 30 2c 26 44  |6,-92,184,-20,&D|
000063b0  37 30 30 36 31 30 32 2c  73 70 72 69 74 65 25 2c  |7006102,sprite%,|
000063c0  31 2c 32 30 29 0d 29 2c  05 e1 0d 29 36 05 3a 0d  |1,20).),...)6.:.|
000063d0  29 40 13 dd 20 f2 64 69  61 6c 6f 67 28 6e 75 6d  |)@.. .dialog(num|
000063e0  25 29 0d 29 4a 0e ea 20  63 72 61 70 25 2c 41 24  |%).)J.. crap%,A$|
000063f0  0d 29 54 1d e7 20 64 69  61 6c 6f 67 25 3e 30 20  |.)T.. dialog%>0 |
00006400  8c 20 f2 6b 69 6c 6c 64  69 61 6c 6f 67 0d 29 5e  |. .killdialog.)^|
00006410  2e 24 73 63 72 61 74 63  68 25 3d 22 53 61 76 65  |.$scratch%="Save|
00006420  20 74 6f 20 22 2b a4 6c  65 61 66 28 6e 61 6d 65  | to "+.leaf(name|
00006430  24 28 6e 75 6d 25 29 29  2b bd 30 0d 29 68 42 64  |$(num%))+.0.)hBd|
00006440  69 61 6c 6f 67 25 3d a4  63 72 65 61 74 65 77 69  |ialog%=.createwi|
00006450  6e 64 6f 77 28 73 63 72  61 74 63 68 25 2c 33 32  |ndow(scratch%,32|
00006460  30 2c 33 32 30 2c 36 34  30 2c 33 38 34 2c 30 2c  |0,320,640,384,0,|
00006470  31 32 2c 25 31 30 30 31  30 30 31 31 29 0d 29 72  |12,%10010011).)r|
00006480  04 0d 29 7c 0e e3 20 69  25 3d 30 20 b8 20 33 0d  |..)|.. i%=0 . 3.|
00006490  29 86 0e 20 20 e7 20 69  25 3d 30 20 8c 0d 29 90  |)..  . i%=0 ..).|
000064a0  56 20 20 20 20 63 72 61  70 25 3d a4 73 70 72 69  |V    crap%=.spri|
000064b0  74 65 69 63 6f 6e 28 64  69 61 6c 6f 67 25 2c 34  |teicon(dialog%,4|
000064c0  38 2c 32 38 38 2d 69 25  2a 34 38 2c 39 36 2c 33  |8,288-i%*48,96,3|
000064d0  33 36 2d 69 25 2a 34 38  2c 26 33 31 30 32 2c 73  |36-i%*48,&3102,s|
000064e0  70 72 73 70 61 63 65 25  2c 22 72 61 64 69 6f 6f  |prspace%,"radioo|
000064f0  6e 22 29 0d 29 9a 07 20  20 cc 0d 29 a4 57 20 20  |n").)..  ..).W  |
00006500  20 20 63 72 61 70 25 3d  a4 73 70 72 69 74 65 69  |  crap%=.spritei|
00006510  63 6f 6e 28 64 69 61 6c  6f 67 25 2c 34 38 2c 32  |con(dialog%,48,2|
00006520  38 38 2d 69 25 2a 34 38  2c 39 36 2c 33 33 36 2d  |88-i%*48,96,336-|
00006530  69 25 2a 34 38 2c 26 33  31 30 32 2c 73 70 72 73  |i%*48,&3102,sprs|
00006540  70 61 63 65 25 2c 22 72  61 64 69 6f 6f 66 66 22  |pace%,"radiooff"|
00006550  29 0d 29 ae 07 20 20 cd  0d 29 b8 19 20 20 64 69  |).)..  ..)..  di|
00006560  61 6c 6f 67 62 25 28 69  25 29 3d 61 6c 6c 6f 63  |alogb%(i%)=alloc|
00006570  25 0d 29 c2 05 ed 0d 29  cc 04 0d 29 d6 38 63 72  |%.)....)...).8cr|
00006580  61 70 25 3d a4 74 65 78  74 69 63 6f 6e 28 64 69  |ap%=.texticon(di|
00006590  61 6c 6f 67 25 2c 34 38  2c 34 38 2c 31 37 36 2c  |alog%,48,48,176,|
000065a0  39 36 2c 26 43 37 30 31  39 31 33 44 2c 22 4f 4b  |96,&C701913D,"OK|
000065b0  22 29 0d 29 e0 3d 63 72  61 70 25 3d a4 74 65 78  |").).=crap%=.tex|
000065c0  74 69 63 6f 6e 28 64 69  61 6c 6f 67 25 2c 34 36  |ticon(dialog%,46|
000065d0  34 2c 34 38 2c 35 39 32  2c 39 36 2c 26 30 37 30  |4,48,592,96,&070|
000065e0  31 39 31 33 44 2c 22 43  41 4e 43 45 4c 22 29 0d  |1913D,"CANCEL").|
000065f0  29 ea 04 0d 29 f4 0a f7  20 8d 44 58 6a 0d 29 fe  |)...)... .DXj.).|
00006600  0e e3 20 69 25 3d 30 20  b8 20 33 0d 2a 08 09 20  |.. i%=0 . 3.*.. |
00006610  f3 20 41 24 0d 2a 12 47  20 20 63 72 61 70 25 3d  |. A$.*.G  crap%=|
00006620  a4 74 65 78 74 69 63 6f  6e 28 64 69 61 6c 6f 67  |.texticon(dialog|
00006630  25 2c 31 34 34 2c 32 38  38 2d 69 25 2a 34 38 2c  |%,144,288-i%*48,|
00006640  36 38 38 2c 33 33 36 2d  69 25 2a 34 38 2c 26 43  |688,336-i%*48,&C|
00006650  37 30 30 30 31 31 31 2c  41 24 29 0d 2a 1c 05 ed  |7000111,A$).*...|
00006660  0d 2a 26 04 0d 2a 30 1b  ef 37 3a f2 6f 70 65 6e  |.*&..*0..7:.open|
00006670  77 69 6e 64 6f 77 28 64  69 61 6c 6f 67 25 29 0d  |window(dialog%).|
00006680  2a 3a 19 c8 97 20 c8 93  20 33 32 30 2c 33 32 30  |*:... .. 320,320|
00006690  2c 36 34 30 2c 33 38 34  0d 2a 44 05 e1 0d 2a 4e  |,640,384.*D...*N|
000066a0  05 3a 0d 2a 58 6d dc 20  22 49 6e 73 65 72 74 20  |.:.*Xm. "Insert |
000066b0  61 74 20 73 65 6c 65 63  74 69 6f 6e 20 73 74 61  |at selection sta|
000066c0  72 74 22 2c 22 4f 76 65  72 77 72 69 74 65 20 66  |rt","Overwrite f|
000066d0  72 6f 6d 20 73 65 6c 2e  20 73 74 61 72 74 22 2c  |rom sel. start",|
000066e0  22 41 64 64 20 73 6f 75  6e 64 73 20 74 6f 67 65  |"Add sounds toge|
000066f0  74 68 65 72 22 2c 22 41  76 65 72 61 67 65 20 73  |ther","Average s|
00006700  6f 75 6e 64 73 20 74 6f  67 65 74 68 65 72 22 0d  |ounds together".|
00006710  2a 62 05 3a 0d 2a 6c 11  dd 20 f2 6b 69 6c 6c 64  |*b.:.*l.. .killd|
00006720  69 61 6c 6f 67 0d 2a 76  17 c8 97 20 c8 93 20 30  |ialog.*v... .. 0|
00006730  2c 30 2c 31 32 37 39 2c  31 30 32 33 0d 2a 80 0f  |,0,1279,1023.*..|
00006740  21 62 25 3d 64 69 61 6c  6f 67 25 0d 2a 8a 1e c8  |!b%=dialog%.*...|
00006750  99 20 22 57 69 6d 70 5f  44 65 6c 65 74 65 57 69  |. "Wimp_DeleteWi|
00006760  6e 64 6f 77 22 2c 2c 62  25 0d 2a 94 0d 64 69 61  |ndow",,b%.*..dia|
00006770  6c 6f 67 25 3d 30 0d 2a  9e 05 e1 0d 2a a8 05 3a  |log%=0.*....*..:|
00006780  0d 2a b2 19 dd 20 f2 73  61 64 69 61 6c 6f 67 28  |.*... .sadialog(|
00006790  49 25 2c 42 25 2c 6e 25  29 0d 2a bc 0a 20 69 25  |I%,B%,n%).*.. i%|
000067a0  3d 2d 31 0d 2a c6 0c 20  f5 3a 69 25 2b 3d 31 0d  |=-1.*.. .:i%+=1.|
000067b0  2a d0 29 20 fd 20 c0 24  64 69 61 6c 6f 67 62 25  |*.) . .$dialogb%|
000067c0  28 69 25 29 2c 37 29 3d  22 72 61 64 69 6f 6f 6e  |(i%),7)="radioon|
000067d0  22 20 84 20 69 25 3d 33  0d 2a da 27 20 e7 20 c0  |" . i%=3.*.' . .|
000067e0  24 64 69 61 6c 6f 67 62  25 28 69 25 29 2c 37 29  |$dialogb%(i%),7)|
000067f0  3c 3e 22 72 61 64 69 6f  6f 6e 22 20 8c 20 e1 0d  |<>"radioon" . ..|
00006800  2a e4 04 0d 2a ee 14 e7  20 42 25 3d 31 33 20 84  |*...*... B%=13 .|
00006810  20 49 25 3d 34 20 8c 0d  2a f8 0a 20 20 49 25 3d  | I%=4 ..*..  I%=|
00006820  34 0d 2b 02 11 20 20 f2  6b 69 6c 6c 64 69 61 6c  |4.+..  .killdial|
00006830  6f 67 0d 2b 0c 21 20 20  6e 25 3d a4 68 61 6e 64  |og.+.!  n%=.hand|
00006840  6c 65 74 6f 73 6e 75 6d  28 6c 6f 61 64 77 69 6e  |letosnum(loadwin|
00006850  64 25 29 0d 2b 16 0d 20  20 c8 8e 20 69 25 20 ca  |d%).+..  .. i% .|
00006860  0d 2b 20 21 20 20 20 20  c9 20 30 3a 20 f2 70 61  |.+ !    . 0: .pa|
00006870  73 74 65 28 6e 25 2c 69  6e 73 65 72 74 24 2c b9  |ste(n%,insert$,.|
00006880  29 0d 2b 2a 21 20 20 20  20 c9 20 31 3a 20 f2 70  |).+*!    . 1: .p|
00006890  61 73 74 65 28 6e 25 2c  69 6e 73 65 72 74 24 2c  |aste(n%,insert$,|
000068a0  a3 29 0d 2b 34 1f 20 20  20 20 c9 20 32 3a 20 f2  |.).+4.    . 2: .|
000068b0  61 64 64 28 6e 25 2c 69  6e 73 65 72 74 24 2c b9  |add(n%,insert$,.|
000068c0  29 0d 2b 3e 1f 20 20 20  20 c9 20 33 3a 20 f2 61  |).+>.    . 3: .a|
000068d0  64 64 28 6e 25 2c 69 6e  73 65 72 74 24 2c a3 29  |dd(n%,insert$,.)|
000068e0  0d 2b 48 07 20 20 cb 0d  2b 52 14 20 20 63 68 61  |.+H.  ..+R.  cha|
000068f0  6e 67 65 64 25 28 6e 25  29 3d b9 0d 2b 5c 2f 20  |nged%(n%)=..+\/ |
00006900  20 24 28 6e 61 6d 65 73  25 2b 31 36 2a 28 6e 25  | $(names%+16*(n%|
00006910  2d 31 29 29 3d a4 6c 65  61 66 28 6e 61 6d 65 24  |-1))=.leaf(name$|
00006920  28 6e 25 29 29 2b 22 20  2a 22 0d 2b 66 19 20 20  |(n%))+" *".+f.  |
00006930  f2 72 65 74 69 74 6c 65  28 6c 6f 61 64 77 69 6e  |.retitle(loadwin|
00006940  64 25 29 0d 2b 70 3f 20  20 f2 73 65 74 75 70 64  |d%).+p?  .setupd|
00006950  74 28 6e 25 29 3a c8 99  20 22 57 69 6d 70 5f 46  |t(n%):.. "Wimp_F|
00006960  6f 72 63 65 52 65 64 72  61 77 22 2c 6c 6f 61 64  |orceRedraw",load|
00006970  77 69 6e 64 25 2c 30 2c  30 2c 31 32 37 39 2c 32  |wind%,0,0,1279,2|
00006980  38 38 0d 2b 7a 05 cc 0d  2b 84 0f 20 e7 20 69 25  |88.+z...+.. . i%|
00006990  3c 3e 49 25 20 8c 0d 2b  8e 20 20 20 24 28 64 69  |<>I% ..+.   $(di|
000069a0  61 6c 6f 67 62 25 28 69  25 29 29 3d 22 72 61 64  |alogb%(i%))="rad|
000069b0  69 6f 6f 66 66 22 0d 2b  98 1f 20 20 24 28 64 69  |iooff".+..  $(di|
000069c0  61 6c 6f 67 62 25 28 49  25 29 29 3d 22 72 61 64  |alogb%(I%))="rad|
000069d0  69 6f 6f 6e 22 0d 2b a2  3d 20 20 c8 99 20 22 57  |ioon".+.=  .. "W|
000069e0  69 6d 70 5f 46 6f 72 63  65 52 65 64 72 61 77 22  |imp_ForceRedraw"|
000069f0  2c 64 69 61 6c 6f 67 25  2c 34 38 2c 32 38 38 2d  |,dialog%,48,288-|
00006a00  49 25 2a 34 38 2c 39 36  2c 33 33 36 2d 49 25 2a  |I%*48,96,336-I%*|
00006a10  34 38 0d 2b ac 3d 20 20  c8 99 20 22 57 69 6d 70  |48.+.=  .. "Wimp|
00006a20  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 64 69  |_ForceRedraw",di|
00006a30  61 6c 6f 67 25 2c 34 38  2c 32 38 38 2d 69 25 2a  |alog%,48,288-i%*|
00006a40  34 38 2c 39 36 2c 33 33  36 2d 69 25 2a 34 38 0d  |48,96,336-i%*48.|
00006a50  2b b6 06 20 cd 0d 2b c0  05 cd 0d 2b ca 11 f2 69  |+.. ..+....+...i|
00006a60  6e 66 6f 74 65 78 74 28  6e 25 29 0d 2b d4 05 e1  |nfotext(n%).+...|
00006a70  0d 2b de 05 3a 0d 2b e8  35 dd 20 a4 63 72 65 61  |.+..:.+.5. .crea|
00006a80  74 65 77 69 6e 64 6f 77  28 74 69 74 6c 65 70 74  |tewindow(titlept|
00006a90  72 25 2c 58 25 2c 59 25  2c 57 25 2c 48 25 2c 62  |r%,X%,Y%,W%,H%,b|
00006aa0  67 25 2c 68 67 25 2c 46  25 29 0d 2b f2 0f 24 62  |g%,hg%,F%).+..$b|
00006ab0  25 3d c4 39 32 2c bd 30  29 0d 2b fc 12 21 62 25  |%=.92,.0).+..!b%|
00006ac0  3d 58 25 3a 62 25 21 34  3d 59 25 0d 2c 06 1a 62  |=X%:b%!4=Y%.,..b|
00006ad0  25 21 38 3d 58 25 2b 57  25 3a 62 25 21 31 32 3d  |%!8=X%+W%:b%!12=|
00006ae0  59 25 2b 48 25 0d 2c 10  13 62 25 21 31 36 3d 30  |Y%+H%.,..b%!16=0|
00006af0  3a 62 25 21 32 30 3d 30  0d 2c 1a 15 62 25 21 32  |:b%!20=0.,..b%!2|
00006b00  34 3d 2d 31 3a 62 25 21  32 38 3d 46 25 0d 2c 24  |4=-1:b%!28=F%.,$|
00006b10  13 62 25 3f 33 32 3d 37  3a 62 25 3f 33 33 3d 32  |.b%?32=7:b%?33=2|
00006b20  0d 2c 2e 13 62 25 3f 33  34 3d 37 3a 62 25 3f 33  |.,..b%?34=7:b%?3|
00006b30  35 3d 31 0d 2c 38 13 62  25 3f 33 36 3d 33 3a 62  |5=1.,8.b%?36=3:b|
00006b40  25 3f 33 37 3d 31 0d 2c  42 14 62 25 3f 33 38 3d  |%?37=1.,B.b%?38=|
00006b50  31 32 3a 62 25 21 34 30  3d 30 0d 2c 4c 14 62 25  |12:b%!40=0.,L.b%|
00006b60  21 34 34 3d 30 3a 62 25  21 34 38 3d 57 25 0d 2c  |!44=0:b%!48=W%.,|
00006b70  56 17 62 25 21 35 32 3d  48 25 3a 62 25 21 35 36  |V.b%!52=H%:b%!56|
00006b80  3d 26 31 33 44 0d 2c 60  0f 62 25 21 36 30 3d 26  |=&13D.,`.b%!60=&|
00006b90  41 30 30 30 0d 2c 6a 1c  62 25 21 37 32 3d 74 69  |A000.,j.b%!72=ti|
00006ba0  74 6c 65 70 74 72 25 3a  62 25 21 37 36 3d 2d 31  |tleptr%:b%!76=-1|
00006bb0  0d 2c 74 15 62 25 21 38  30 3d a9 24 74 69 74 6c  |.,t.b%!80=.$titl|
00006bc0  65 70 74 72 25 0d 2c 7e  23 c8 99 20 22 57 69 6d  |eptr%.,~#.. "Wim|
00006bd0  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
00006be0  2c 62 25 20 b8 20 48 25  0d 2c 88 07 3d 48 25 0d  |,b% . H%.,..=H%.|
00006bf0  2c 92 05 3a 0d 2c 9c 16  dd 20 f2 6f 70 65 6e 77  |,..:.,... .openw|
00006c00  69 6e 64 6f 77 28 21 62  25 29 0d 2c a6 20 c8 99  |indow(!b%).,. ..|
00006c10  20 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  | "Wimp_GetWindow|
00006c20  53 74 61 74 65 22 2c 2c  62 25 0d 2c b0 0c 62 25  |State",,b%.,..b%|
00006c30  21 32 38 3d 2d 31 0d 2c  ba 1c c8 99 20 22 57 69  |!28=-1.,.... "Wi|
00006c40  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00006c50  62 25 0d 2c c4 05 e1 0d  2c ce 05 3a 0d 2c d8 16  |b%.,....,..:.,..|
00006c60  dd 20 f2 63 6c 6f 73 65  77 69 6e 64 6f 77 28 57  |. .closewindow(W|
00006c70  25 29 0d 2c e2 08 ea 20  6e 25 0d 2c ec 04 0d 2c  |%).,... n%.,...,|
00006c80  f6 15 c8 99 20 22 48 6f  75 72 67 6c 61 73 73 5f  |.... "Hourglass_|
00006c90  4f 6e 22 0d 2d 00 18 6e  25 3d a4 68 61 6e 64 6c  |On".-..n%=.handl|
00006ca0  65 74 6f 73 6e 75 6d 28  57 25 29 0d 2d 0a 04 0d  |etosnum(W%).-...|
00006cb0  2d 14 11 e7 20 a4 71 75  69 74 28 6e 25 29 20 8c  |-... .quit(n%) .|
00006cc0  0d 2d 1e 14 20 f2 63 6f  6d 70 61 63 74 72 6d 61  |.-.. .compactrma|
00006cd0  28 6e 25 29 0d 2d 28 19  20 f2 72 65 6c 65 61 73  |(n%).-(. .releas|
00006ce0  65 28 73 74 61 72 74 25  28 6e 25 29 29 0d 2d 32  |e(start%(n%)).-2|
00006cf0  16 20 f2 72 65 6c 65 61  73 65 28 64 74 25 28 6e  |. .release(dt%(n|
00006d00  25 29 29 0d 2d 3c 12 20  6c 65 6e 67 74 68 25 28  |%)).-<. length%(|
00006d10  6e 25 29 3d 30 0d 2d 46  1e 20 73 73 74 61 72 74  |n%)=0.-F. sstart|
00006d20  25 28 6e 25 29 3d 30 3a  73 6c 65 6e 25 28 6e 25  |%(n%)=0:slen%(n%|
00006d30  29 3d 30 0d 2d 50 22 20  6d 61 67 73 74 61 72 74  |)=0.-P" magstart|
00006d40  25 28 6e 25 29 3d 30 3a  6d 61 67 6c 65 6e 25 28  |%(n%)=0:maglen%(|
00006d50  6e 25 29 3d 30 0d 2d 5a  22 20 63 68 61 6e 67 65  |n%)=0.-Z" change|
00006d60  64 25 28 6e 25 29 3d a3  3a 73 70 65 65 64 25 28  |d%(n%)=.:speed%(|
00006d70  6e 25 29 3d 26 33 30 0d  2d 64 04 0d 2d 6e 0b 20  |n%)=&30.-d..-n. |
00006d80  21 62 25 3d 57 25 0d 2d  78 1e 20 c8 99 20 22 57  |!b%=W%.-x. .. "W|
00006d90  69 6d 70 5f 43 6c 6f 73  65 57 69 6e 64 6f 77 22  |imp_CloseWindow"|
00006da0  2c 2c 62 25 0d 2d 82 1f  20 c8 99 20 22 57 69 6d  |,,b%.-.. .. "Wim|
00006db0  70 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 22 2c  |p_DeleteWindow",|
00006dc0  2c 62 25 0d 2d 8c 29 20  77 68 61 6e 64 6c 65 25  |,b%.-.) whandle%|
00006dd0  28 6e 25 29 3d 30 3a e7  20 6e 25 3d 73 6e 75 6d  |(n%)=0:. n%=snum|
00006de0  25 20 8c 20 73 6e 75 6d  25 2d 3d 31 0d 2d 96 05  |% . snum%-=1.-..|
00006df0  cd 0d 2d a0 16 c8 99 20  22 48 6f 75 72 67 6c 61  |..-.... "Hourgla|
00006e00  73 73 5f 4f 66 66 22 0d  2d aa 05 e1 0d 2d b4 05  |ss_Off".-....-..|
00006e10  3a 0d 2d be 40 dd 20 f2  63 6f 6d 70 61 63 74 72  |:.-.@. .compactr|
00006e20  6d 61 28 6e 25 29 20 3a  f4 20 4d 6f 76 65 73 20  |ma(n%) :. Moves |
00006e30  6f 74 68 65 72 20 73 6f  75 6e 64 73 20 64 6f 77  |other sounds dow|
00006e40  6e 20 69 66 20 72 6f 6f  6d 20 69 73 20 6d 61 64  |n if room is mad|
00006e50  65 0d 2d c8 04 0d 2d d2  41 f4 20 49 66 20 40 40  |e.-...-.A. If @@|
00006e60  40 40 2a 2a 2a 2a 25 25  25 25 20 70 6f 73 73 69  |@@****%%%% possi|
00006e70  62 6c 65 2c 20 75 73 65  73 20 53 59 53 20 22 4f  |ble, uses SYS "O|
00006e80  53 5f 4d 6f 64 75 6c 65  22 20 63 61 6c 6c 73 20  |S_Module" calls |
00006e90  74 6f 20 67 65 74 0d 2d  dc 43 f4 20 66 72 65 65  |to get.-.C. free|
00006ea0  20 73 70 61 63 65 73 20  69 6e 20 52 4d 41 2c 20  | spaces in RMA, |
00006eb0  61 6e 64 20 63 6f 6d 70  61 63 74 20 73 6f 75 6e  |and compact soun|
00006ec0  64 73 20 74 6f 67 65 74  68 65 72 20 74 6f 20 73  |ds together to s|
00006ed0  61 76 65 20 68 6f 6c 65  73 0d 2d e6 1a f4 20 61  |ave holes.-... a|
00006ee0  70 70 65 61 72 69 6e 67  20 69 6e 20 74 68 65 20  |ppearing in the |
00006ef0  52 4d 41 0d 2d f0 04 0d  2d fa 2e f4 20 36 20 4d  |RMA.-...-... 6 M|
00006f00  6f 6e 74 68 73 20 6c 61  74 65 72 3a 20 48 61 21  |onths later: Ha!|
00006f10  20 41 73 20 69 66 20 49  20 63 61 6e 20 64 6f 20  | As if I can do |
00006f20  54 48 41 54 21 0d 2e 04  05 e1 0d 2e 0e 05 3a 0d  |THAT!.........:.|
00006f30  2e 18 11 dd 20 a4 71 75  69 74 28 6e 75 6d 25 29  |.... .quit(num%)|
00006f40  0d 2e 22 08 ea 20 71 25  0d 2e 2c 19 e7 20 ac 63  |..".. q%..,.. .c|
00006f50  68 61 6e 67 65 64 25 28  6e 75 6d 25 29 20 8c 3d  |hanged%(num%) .=|
00006f60  b9 0d 2e 36 04 0d 2e 40  36 24 62 25 3d 22 27 22  |...6...@6$b%="'"|
00006f70  2b 6e 61 6d 65 24 28 6e  75 6d 25 29 2b 22 27 20  |+name$(num%)+"' |
00006f80  6e 6f 74 20 73 61 76 65  64 3a 20 52 65 61 6c 6c  |not saved: Reall|
00006f90  79 20 51 75 69 74 3f 22  2b bd 30 0d 2e 4a 2e c8  |y Quit?"+.0..J..|
00006fa0  99 20 22 57 69 6d 70 5f  52 65 70 6f 72 74 45 72  |. "Wimp_ReportEr|
00006fb0  72 6f 72 22 2c 62 25 2c  33 2c 22 44 53 20 45 64  |ror",b%,3,"DS Ed|
00006fc0  69 74 22 20 b8 20 2c 71  25 0d 2e 54 0f e7 20 71  |it" . ,q%..T.. q|
00006fd0  25 3d 31 20 8c 3a 3d b9  0d 2e 5e 06 3d a3 0d 2e  |%=1 .:=...^.=...|
00006fe0  68 05 3a 0d 2e 72 45 dd  20 a4 74 65 78 74 69 63  |h.:..rE. .textic|
00006ff0  6f 6e 28 21 62 25 2c 62  25 21 34 2c 62 25 21 38  |on(!b%,b%!4,b%!8|
00007000  2c 62 25 21 31 32 2c 62  25 21 31 36 2c 66 25 2c  |,b%!12,b%!16,f%,|
00007010  74 24 29 3a ea 20 68 25  20 3a f4 20 40 40 40 40  |t$):. h% :. @@@@|
00007020  2a 2a 2a 2a 25 25 25 25  0d 2e 7c 3a 62 25 21 32  |****%%%%..|:b%!2|
00007030  30 3d 66 25 3a 20 f4 20  67 65 6e 65 72 61 6c 3a  |0=f%: . general:|
00007040  20 25 31 31 30 30 30 31  31 31 30 30 30 30 30 30  | %11000111000000|
00007050  30 31 30 31 30 30 30 30  30 30 30 30 31 31 31 31  |0101000000001111|
00007060  30 31 0d 2e 86 2a f4 20  20 20 20 5e 20 20 20 5e  |01...*.    ^   ^|
00007070  20 20 20 5e 20 20 20 5e  20 20 20 5e 20 20 20 5e  |   ^   ^   ^   ^|
00007080  20 20 20 5e 20 20 20 5e  20 20 20 5e 0d 2e 90 2a  |   ^   ^   ^...*|
00007090  f4 20 20 20 20 33 31 20  20 32 38 20 20 32 34 20  |.    31  28  24 |
000070a0  20 32 30 20 20 31 36 20  20 31 32 20 20 38 20 20  | 20  16  12  8  |
000070b0  20 34 20 20 20 30 0d 2e  9a 11 de 20 62 25 21 32  | 4   0..... b%!2|
000070c0  34 20 a9 74 24 2b 31 0d  2e a4 0c 62 25 21 32 38  |4 .t$+1....b%!28|
000070d0  3d 2d 31 0d 2e ae 0d 62  25 21 33 32 3d a9 74 24  |=-1....b%!32=.t$|
000070e0  0d 2e b8 12 24 28 62 25  21 32 34 29 3d 74 24 2b  |....$(b%!24)=t$+|
000070f0  bd 30 0d 2e c2 21 c8 99  20 22 57 69 6d 70 5f 43  |.0...!.. "Wimp_C|
00007100  72 65 61 74 65 49 63 6f  6e 22 2c 2c 62 25 20 b8  |reateIcon",,b% .|
00007110  20 68 25 0d 2e cc 07 3d  68 25 0d 2e d6 05 3a 0d  | h%....=h%....:.|
00007120  2e e0 36 dd 20 a4 73 70  72 69 74 65 69 63 6f 6e  |..6. .spriteicon|
00007130  28 21 62 25 2c 78 31 2c  79 31 2c 78 32 2c 79 32  |(!b%,x1,y1,x2,y2|
00007140  2c 66 6c 61 67 73 25 2c  73 70 74 72 25 2c 73 6e  |,flags%,sptr%,sn|
00007150  61 6d 65 24 29 0d 2e ea  21 de 20 62 25 21 32 34  |ame$)...!. b%!24|
00007160  20 a9 73 6e 61 6d 65 24  2b 31 3a 62 25 21 32 38  | .sname$+1:b%!28|
00007170  3d 73 70 74 72 25 0d 2e  f4 10 61 6c 6c 6f 63 25  |=sptr%....alloc%|
00007180  3d 62 25 21 32 34 0d 2e  fe 21 62 25 21 33 32 3d  |=b%!24...!b%!32=|
00007190  a9 73 6e 61 6d 65 24 2b  31 3a 24 62 25 21 32 34  |.sname$+1:$b%!24|
000071a0  3d 73 6e 61 6d 65 24 0d  2f 08 13 62 25 21 34 3d  |=sname$./..b%!4=|
000071b0  78 31 3a 62 25 21 38 3d  79 31 0d 2f 12 15 62 25  |x1:b%!8=y1./..b%|
000071c0  21 31 32 3d 78 32 3a 62  25 21 31 36 3d 79 32 0d  |!12=x2:b%!16=y2.|
000071d0  2f 1c 10 62 25 21 32 30  3d 66 6c 61 67 73 25 0d  |/..b%!20=flags%.|
000071e0  2f 26 21 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |/&!.. "Wimp_Crea|
000071f0  74 65 49 63 6f 6e 22 2c  2c 62 25 20 b8 20 68 25  |teIcon",,b% . h%|
00007200  0d 2f 30 07 3d 68 25 0d  2f 3a 05 3a 0d 2f 44 2c  |./0.=h%./:.:./D,|
00007210  dd 20 a4 69 63 6f 6e 28  21 62 25 2c 78 31 2c 79  |. .icon(!b%,x1,y|
00007220  31 2c 78 32 2c 79 32 2c  66 6c 61 67 73 25 2c 69  |1,x2,y2,flags%,i|
00007230  31 2c 69 32 2c 69 33 29  0d 2f 4e 08 ea 20 68 25  |1,i2,i3)./N.. h%|
00007240  0d 2f 58 13 62 25 21 34  3d 78 31 3a 62 25 21 38  |./X.b%!4=x1:b%!8|
00007250  3d 79 31 0d 2f 62 15 62  25 21 31 32 3d 78 32 3a  |=y1./b.b%!12=x2:|
00007260  62 25 21 31 36 3d 79 32  0d 2f 6c 10 62 25 21 32  |b%!16=y2./l.b%!2|
00007270  30 3d 66 6c 61 67 73 25  0d 2f 76 15 62 25 21 32  |0=flags%./v.b%!2|
00007280  34 3d 69 31 3a 62 25 21  32 38 3d 69 32 0d 2f 80  |4=i1:b%!28=i2./.|
00007290  0c 62 25 21 33 32 3d 69  33 0d 2f 8a 21 c8 99 20  |.b%!32=i3./.!.. |
000072a0  22 57 69 6d 70 5f 43 72  65 61 74 65 49 63 6f 6e  |"Wimp_CreateIcon|
000072b0  22 2c 2c 62 25 20 b8 20  68 25 0d 2f 94 07 3d 68  |",,b% . h%./..=h|
000072c0  25 0d 2f 9e 05 3a 0d 2f  a8 29 dd 20 f2 6d 61 73  |%./..:./.). .mas|
000072d0  74 65 72 6d 65 6e 75 28  74 69 74 6c 65 24 2c 6d  |termenu(title$,m|
000072e0  24 2c 6d 32 24 2c 58 25  2c 59 25 2c 6e 25 29 0d  |$,m2$,X%,Y%,n%).|
000072f0  2f b2 19 ea 20 62 61 73  65 25 2c 77 62 61 73 65  |/... base%,wbase|
00007300  25 2c 77 6d 70 74 72 25  0d 2f bc 0c e7 20 6e 25  |%,wmptr%./... n%|
00007310  3e 30 20 8c 0d 2f c6 31  20 20 62 61 73 65 25 3d  |>0 ../.1  base%=|
00007320  6d 65 6e 75 25 3a 77 62  61 73 65 25 3d 6d 65 6e  |menu%:wbase%=men|
00007330  75 25 2b 31 37 39 32 3a  77 6d 70 74 72 25 3d 77  |u%+1792:wmptr%=w|
00007340  6d 65 6e 75 25 0d 2f d0  1a 20 20 24 66 69 6c 65  |menu%./..  $file|
00007350  6e 61 6d 65 25 3d 6e 61  6d 65 24 28 6e 25 29 0d  |name%=name$(n%).|
00007360  2f da 1d 20 20 24 66 69  6c 65 6e 61 6d 65 32 25  |/..  $filename2%|
00007370  3d 22 53 65 6c 65 63 74  69 6f 6e 22 0d 2f e4 29  |="Selection"./.)|
00007380  20 20 f2 6d 65 6e 75 74  69 63 6b 28 22 4c 69 6e  |  .menutick("Lin|
00007390  65 73 22 2c 66 6c 61 67  73 25 28 6e 25 29 80 31  |es",flags%(n%).1|
000073a0  2c 6d 32 24 29 0d 2f ee  26 20 20 f2 63 72 65 61  |,m2$)./.&  .crea|
000073b0  74 65 6d 65 6e 75 28 6d  65 6e 75 25 2c 74 69 74  |temenu(menu%,tit|
000073c0  6c 65 24 2c 6d 24 2c 6d  32 24 29 0d 2f f8 28 20  |le$,m$,m2$)./.( |
000073d0  20 24 77 6d 65 6e 75 25  3d c4 31 32 38 2c bd 30  | $wmenu%=.128,.0|
000073e0  29 3a 24 77 6d 65 6e 75  25 3d 6c 61 73 74 76 61  |):$wmenu%=lastva|
000073f0  6c 31 24 0d 30 02 33 20  20 24 28 77 6d 65 6e 75  |l1$.0.3  $(wmenu|
00007400  25 2b 31 36 29 3d 6c 61  73 74 76 61 6c 35 24 3a  |%+16)=lastval5$:|
00007410  24 28 77 6d 65 6e 75 25  2b 33 32 29 3d 6c 61 73  |$(wmenu%+32)=las|
00007420  74 76 61 6c 32 24 0d 30  0c 33 20 20 24 28 77 6d  |tval2$.0.3  $(wm|
00007430  65 6e 75 25 2b 34 38 29  3d 6c 61 73 74 76 61 6c  |enu%+48)=lastval|
00007440  33 24 3a 24 28 77 6d 65  6e 75 25 2b 36 34 29 3d  |3$:$(wmenu%+64)=|
00007450  6c 61 73 74 76 61 6c 34  24 0d 30 16 1c 20 20 24  |lastval4$.0..  $|
00007460  28 77 6d 65 6e 75 25 2b  38 30 29 3d 6c 61 73 74  |(wmenu%+80)=last|
00007470  76 61 6c 34 24 0d 30 20  2a 20 20 24 28 77 6d 65  |val4$.0 *  $(wme|
00007480  6e 75 25 2b 39 36 29 3d  c2 22 30 30 30 22 2b c3  |nu%+96)=."000"+.|
00007490  28 73 70 65 65 64 25 28  6e 25 29 29 2c 33 29 0d  |(speed%(n%)),3).|
000074a0  30 2a 26 20 20 24 28 77  6d 65 6e 75 25 2b 31 31  |0*&  $(wmenu%+11|
000074b0  32 29 3d c2 22 30 30 30  22 2b c3 76 6f 6c 75 6d  |2)=."000"+.volum|
000074c0  65 25 2c 32 29 0d 30 34  05 cc 0d 30 3e 26 20 20  |e%,2).04...0>&  |
000074d0  f2 63 72 65 61 74 65 6d  65 6e 75 28 6d 65 6e 75  |.createmenu(menu|
000074e0  25 2c 74 69 74 6c 65 24  2c 6d 24 2c 6d 32 24 29  |%,title$,m$,m2$)|
000074f0  0d 30 48 05 cd 0d 30 52  30 c8 99 20 22 57 69 6d  |.0H...0R0.. "Wim|
00007500  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 2c 2c 6d  |p_CreateMenu",,m|
00007510  65 6e 75 25 2c 58 25 2d  6d 65 6e 75 25 21 31 36  |enu%,X%-menu%!16|
00007520  2f 32 2c 59 25 0d 30 5c  05 e1 0d 30 66 05 3a 0d  |/2,Y%.0\...0f.:.|
00007530  30 70 23 dd 20 f2 63 72  65 61 74 65 6d 65 6e 75  |0p#. .createmenu|
00007540  28 4d 25 2c 74 69 74 6c  65 24 2c 6d 24 2c 6d 32  |(M%,title$,m$,m2|
00007550  24 29 0d 30 7a 17 ea 20  49 25 2c 6d 61 78 25 2c  |$).0z.. I%,max%,|
00007560  64 6f 6e 65 62 6f 74 68  25 0d 30 84 04 0d 30 8e  |doneboth%.0...0.|
00007570  0f 64 6f 6e 65 62 6f 74  68 25 3d a3 0d 30 98 1b  |.doneboth%=..0..|
00007580  24 4d 25 3d 74 69 74 6c  65 24 3a 4d 25 21 31 32  |$M%=title$:M%!12|
00007590  3d 26 37 30 32 30 37 0d  30 a2 14 4d 25 21 32 30  |=&70207.0..M%!20|
000075a0  3d 34 34 3a 4d 25 21 32  34 3d 30 0d 30 ac 1d 49  |=44:M%!24=0.0..I|
000075b0  25 3d 4d 25 2b 32 38 3a  6d 61 78 25 3d a9 28 74  |%=M%+28:max%=.(t|
000075c0  69 74 6c 65 24 29 2d 32  0d 30 b6 04 0d 30 c0 05  |itle$)-2.0...0..|
000075d0  f5 0d 30 ca 06 20 f5 0d  30 d4 11 20 20 41 25 3d  |..0.. ..0..  A%=|
000075e0  a7 6d 24 2c 22 2c 22 29  0d 30 de 2f 20 20 49 25  |.m$,",").0./  I%|
000075f0  21 34 3d a4 73 75 62 6d  65 6e 75 28 62 61 73 65  |!4=.submenu(base|
00007600  25 2c 6d 24 29 3a e7 20  41 25 3e 6d 61 78 25 20  |%,m$):. A%>max% |
00007610  6d 61 78 25 3d 41 25 0d  30 e8 13 20 20 49 25 21  |max%=A%.0..  I%!|
00007620  38 3d 26 37 30 30 30 30  32 31 0d 30 f2 18 20 20  |8=&7000021.0..  |
00007630  24 28 49 25 2b 31 32 29  3d c0 6d 24 2c 41 25 2d  |$(I%+12)=.m$,A%-|
00007640  32 29 0d 30 fc 20 20 20  73 70 65 63 69 61 6c 25  |2).0.   special%|
00007650  3d 97 28 c1 6d 24 2c 41  25 2d 31 2c 31 29 29 2d  |=.(.m$,A%-1,1))-|
00007660  36 35 0d 31 06 43 20 20  20 20 f4 20 46 6f 6c 6f  |65.1.C    . Folo|
00007670  77 69 6e 67 20 6c 69 6e  65 20 75 73 65 64 20 74  |wing line used t|
00007680  6f 20 73 68 61 64 65 20  70 65 72 6d 61 6e 65 6e  |o shade permanen|
00007690  74 6c 79 20 75 6e 61 76  61 69 6c 61 62 6c 65 20  |tly unavailable |
000076a0  69 74 65 6d 73 0d 31 10  29 20 20 e7 20 73 70 65  |items.1.)  . spe|
000076b0  63 69 61 6c 25 3d 32 31  20 8c 20 49 25 21 38 3d  |cial%=21 . I%!8=|
000076c0  28 49 25 21 38 29 84 26  34 30 30 30 30 30 0d 31  |(I%!8).&400000.1|
000076d0  1a 04 0d 31 24 32 20 20  e7 20 73 70 65 63 69 61  |...1$2  . specia|
000076e0  6c 25 3d 32 32 20 8c 20  49 25 21 34 3d a4 77 72  |l%=22 . I%!4=.wr|
000076f0  69 74 65 61 62 6c 65 28  c0 6d 24 2c 41 25 2d 32  |iteable(.m$,A%-2|
00007700  29 2c 35 29 0d 31 2e 32  20 20 e7 20 73 70 65 63  |),5).1.2  . spec|
00007710  69 61 6c 25 3d 32 33 20  8c 20 49 25 21 34 3d a4  |ial%=23 . I%!4=.|
00007720  77 72 69 74 65 61 62 6c  65 28 c0 6d 24 2c 41 25  |writeable(.m$,A%|
00007730  2d 32 29 2c 33 29 0d 31  38 26 20 20 e7 20 73 70  |-2),3).18&  . sp|
00007740  65 63 69 61 6c 25 3d 32  34 20 8c 20 49 25 21 34  |ecial%=24 . I%!4|
00007750  3d 66 69 6c 65 77 69 6e  64 6f 77 25 0d 31 42 27  |=filewindow%.1B'|
00007760  20 20 e7 20 73 70 65 63  69 61 6c 25 3d 32 35 20  |  . special%=25 |
00007770  8c 20 49 25 21 34 3d 66  69 6c 65 77 69 6e 64 6f  |. I%!4=filewindo|
00007780  77 32 25 0d 31 4c 2c 20  20 e7 20 73 70 65 63 69  |w2%.1L,  . speci|
00007790  61 6c 25 3c 30 20 84 20  73 70 65 63 69 61 6c 25  |al%<0 . special%|
000077a0  3e 37 20 8c 20 73 70 65  63 69 61 6c 25 3d 30 0d  |>7 . special%=0.|
000077b0  31 56 19 20 20 49 25 21  30 3d 28 73 70 65 63 69  |1V.  I%!0=(speci|
000077c0  61 6c 25 20 80 20 33 29  0d 31 60 12 20 20 6d 24  |al% . 3).1`.  m$|
000077d0  3d c1 6d 24 2c 41 25 2b  31 29 0d 31 6a 0c 20 20  |=.m$,A%+1).1j.  |
000077e0  49 25 2b 3d 32 34 0d 31  74 0c 20 fd 20 6d 24 3d  |I%+=24.1t. . m$=|
000077f0  22 22 0d 31 7e 1a 20 e7  6d 32 24 3d 22 22 20 8c  |"".1~. .m2$="" .|
00007800  20 64 6f 6e 65 62 6f 74  68 25 3d b9 0d 31 88 12  | doneboth%=..1..|
00007810  20 6d 24 3d 6d 32 24 3a  6d 32 24 3d 22 22 0d 31  | m$=m2$:m2$="".1|
00007820  92 0f fd 20 64 6f 6e 65  62 6f 74 68 25 0d 31 9c  |... doneboth%.1.|
00007830  04 0d 31 a6 27 49 25 21  2d 32 34 3d 28 49 25 21  |..1.'I%!-24=(I%!|
00007840  2d 32 34 29 20 84 20 26  38 30 3a 4d 25 21 31 36  |-24) . &80:M%!16|
00007850  3d 6d 61 78 25 2a 31 36  0d 31 b0 05 e1 0d 31 ba  |=max%*16.1....1.|
00007860  05 3a 0d 31 c4 1b dd 20  a4 77 72 69 74 65 61 62  |.:.1... .writeab|
00007870  6c 65 28 74 24 2c 77 69  64 74 68 25 29 0d 31 ce  |le(t$,width%).1.|
00007880  1f 24 77 62 61 73 65 25  3d 74 24 3a 77 62 61 73  |.$wbase%=t$:wbas|
00007890  65 25 21 31 32 3d 26 37  30 32 30 37 0d 31 d8 1e  |e%!12=&70207.1..|
000078a0  77 62 61 73 65 25 21 31  36 3d 31 33 32 3a 77 62  |wbase%!16=132:wb|
000078b0  61 73 65 25 21 32 30 3d  34 38 0d 31 e2 1a 77 62  |ase%!20=48.1..wb|
000078c0  61 73 65 25 21 32 34 3d  30 3a 77 62 61 73 65 25  |ase%!24=0:wbase%|
000078d0  2b 3d 32 38 0d 31 ec 1c  77 62 61 73 65 25 21 30  |+=28.1..wbase%!0|
000078e0  3d 26 38 34 3a 77 62 61  73 65 25 21 34 3d 2d 31  |=&84:wbase%!4=-1|
000078f0  0d 31 f6 26 77 62 61 73  65 25 21 38 3d 26 37 30  |.1.&wbase%!8=&70|
00007900  30 30 31 32 31 3a 77 62  61 73 65 25 21 31 32 3d  |00121:wbase%!12=|
00007910  77 6d 70 74 72 25 0d 32  00 10 77 62 61 73 65 25  |wmptr%.2..wbase%|
00007920  21 31 36 3d 2d 31 0d 32  0a 14 77 62 61 73 65 25  |!16=-1.2..wbase%|
00007930  21 32 30 3d 77 69 64 74  68 25 0d 32 14 19 77 62  |!20=width%.2..wb|
00007940  61 73 65 25 2b 3d 33 36  3a 77 6d 70 74 72 25 2b  |ase%+=36:wmptr%+|
00007950  3d 31 36 0d 32 1e 0e 3d  77 62 61 73 65 25 2d 36  |=16.2..=wbase%-6|
00007960  34 0d 32 28 05 3a 0d 32  32 1c dd 20 a4 73 75 62  |4.2(.:.22.. .sub|
00007970  6d 65 6e 75 28 f8 20 62  61 73 65 25 2c f8 20 6d  |menu(. base%,. m|
00007980  24 29 0d 32 3c 10 ea 20  61 25 2c 74 24 2c 6e 65  |$).2<.. a%,t$,ne|
00007990  77 24 0d 32 46 16 e7 20  c0 6d 24 2c 31 29 3c 3e  |w$.2F.. .m$,1)<>|
000079a0  22 3e 22 20 8c 3d 2d 31  0d 32 50 04 0d 32 5a 11  |">" .=-1.2P..2Z.|
000079b0  6d 24 3d c2 6d 24 2c a9  6d 24 2d 31 29 0d 32 64  |m$=.m$,.m$-1).2d|
000079c0  0f 61 25 3d a7 6d 24 2c  22 3c 22 29 0d 32 6e 12  |.a%=.m$,"<").2n.|
000079d0  6e 65 77 24 3d c0 6d 24  2c 61 25 2d 31 29 0d 32  |new$=.m$,a%-1).2|
000079e0  78 04 0d 32 82 0f 41 25  3d a7 6d 24 2c 22 2c 22  |x..2..A%=.m$,","|
000079f0  29 0d 32 8c 3b f2 63 72  65 61 74 65 6d 65 6e 75  |).2.;.createmenu|
00007a00  28 62 61 73 65 25 2b 32  35 36 2c c0 6d 24 2c 41  |(base%+256,.m$,A|
00007a10  25 2d 31 29 2c c1 6e 65  77 24 2c a7 6e 65 77 24  |%-1),.new$,.new$|
00007a20  2c 22 2c 22 29 2b 31 29  2c 22 22 29 0d 32 96 04  |,",")+1),"").2..|
00007a30  0d 32 a0 24 6d 24 3d c0  6e 65 77 24 2c a7 6e 65  |.2.$m$=.new$,.ne|
00007a40  77 24 2c 22 2c 22 29 2d  31 29 2b c1 6d 24 2c 61  |w$,",")-1)+.m$,a|
00007a50  25 2b 31 29 0d 32 aa 0f  41 25 3d a7 6d 24 2c 22  |%+1).2..A%=.m$,"|
00007a60  2c 22 29 0d 32 b4 0e 62  61 73 65 25 2b 3d 32 35  |,").2..base%+=25|
00007a70  36 0d 32 be 0a 3d 62 61  73 65 25 0d 32 c8 05 3a  |6.2..=base%.2..:|
00007a80  0d 32 d2 22 dd 20 f2 6d  65 6e 75 74 69 63 6b 28  |.2.". .menutick(|
00007a90  41 24 2c 73 74 61 74 65  25 2c f8 20 6d 65 6e 75  |A$,state%,. menu|
00007aa0  24 29 0d 32 dc 08 ea 20  70 25 0d 32 e6 28 e7 20  |$).2... p%.2.(. |
00007ab0  73 74 61 74 65 25 20 8c  20 73 74 61 74 65 25 3d  |state% . state%=|
00007ac0  97 22 42 22 20 8b 20 73  74 61 74 65 25 3d 97 22  |."B" . state%=."|
00007ad0  62 22 0d 32 f0 25 70 25  3d a7 6d 65 6e 75 24 2c  |b".2.%p%=.menu$,|
00007ae0  41 24 29 3a 70 25 3d a7  6d 65 6e 75 24 2c 22 2c  |A$):p%=.menu$,",|
00007af0  22 2c 70 25 29 2d 31 0d  32 fa 1a c1 6d 65 6e 75  |",p%)-1.2...menu|
00007b00  24 2c 70 25 2c 31 29 3d  bd 28 73 74 61 74 65 25  |$,p%,1)=.(state%|
00007b10  29 0d 33 04 05 e1 0d 33  0e 05 3a 0d 33 18 32 dd  |).3....3..:.3.2.|
00007b20  20 a4 6d 65 6e 75 76 61  6c 28 61 64 64 72 25 2c  | .menuval(addr%,|
00007b30  f8 20 6c 61 73 74 76 61  6c 24 2c 6d 69 6e 25 2c  |. lastval$,min%,|
00007b40  6d 61 78 25 2c 64 69 67  69 74 73 25 29 0d 33 22  |max%,digits%).3"|
00007b50  1c ea 20 41 24 3a 41 24  3d 22 22 3a 61 64 64 72  |.. A$:A$="":addr|
00007b60  25 2b 3d 77 6d 65 6e 75  25 0d 33 2c 14 e3 20 5a  |%+=wmenu%.3,.. Z|
00007b70  25 3d 30 20 b8 20 64 69  67 69 74 73 25 0d 33 36  |%=0 . digits%.36|
00007b80  35 20 20 e7 20 61 64 64  72 25 3f 5a 25 3e 3d 97  |5  . addr%?Z%>=.|
00007b90  22 30 22 20 80 20 61 64  64 72 25 3f 5a 25 3c 3d  |"0" . addr%?Z%<=|
00007ba0  97 22 39 22 20 41 24 2b  3d bd 61 64 64 72 25 3f  |."9" A$+=.addr%?|
00007bb0  5a 25 0d 33 40 05 ed 0d  33 4a 42 e7 20 bb 28 41  |Z%.3@...3JB. .(A|
00007bc0  24 29 3e 3d 6d 69 6e 25  20 80 20 bb 28 41 24 29  |$)>=min% . .(A$)|
00007bd0  3c 3d 6d 61 78 25 20 8c  20 6c 61 73 74 76 61 6c  |<=max% . lastval|
00007be0  24 3d c2 22 30 30 30 22  2b 41 24 2c 64 69 67 69  |$=."000"+A$,digi|
00007bf0  74 73 25 29 20 8b 20 ef  37 0d 33 54 0a 3d bb 28  |ts%) . .7.3T.=.(|
00007c00  41 24 29 0d 33 5e 05 3a  0d 33 68 0e dd 20 f2 72  |A$).3^.:.3h.. .r|
00007c10  65 63 65 69 76 65 0d 33  72 0e c8 8e 20 62 25 21  |eceive.3r... b%!|
00007c20  31 36 20 ca 0d 33 7c 12  20 c9 20 30 20 3a 20 71  |16 ..3|. . 0 : q|
00007c30  75 69 74 25 3d b9 0d 33  86 13 20 c9 20 32 20 3a  |uit%=..3.. . 2 :|
00007c40  20 f2 72 65 63 73 61 76  65 0d 33 90 13 20 c9 20  | .recsave.3.. . |
00007c50  33 20 3a 20 f2 72 65 63  6c 6f 61 64 0d 33 9a 13  |3 : .recload.3..|
00007c60  20 c9 20 35 20 3a 20 f2  72 65 63 6f 70 65 6e 0d  | . 5 : .recopen.|
00007c70  33 a4 05 cb 0d 33 ae 05  e1 0d 33 b8 05 3a 0d 33  |3....3....3..:.3|
00007c80  c2 0e dd 20 f2 72 65 63  73 61 76 65 0d 33 cc 0e  |... .recsave.3..|
00007c90  ea 20 6e 25 2c 73 25 2c  6c 25 0d 33 d6 1f 6e 25  |. n%,s%,l%.3..n%|
00007ca0  3d a4 68 61 6e 64 6c 65  74 6f 73 6e 75 6d 28 73  |=.handletosnum(s|
00007cb0  61 76 65 77 69 6e 64 25  29 0d 33 e0 20 6e 61 6d  |avewind%).3. nam|
00007cc0  65 24 28 6e 25 29 3d a4  7a 65 72 6f 73 74 72 69  |e$(n%)=.zerostri|
00007cd0  6e 67 28 62 25 2b 34 34  29 0d 33 ea 10 e7 20 73  |ng(b%+44).3... s|
00007ce0  61 76 65 73 65 6c 25 20  8c 0d 33 f4 20 20 73 25  |avesel% ..3.  s%|
00007cf0  3d 73 73 74 61 72 74 25  28 6e 25 29 3a 6c 25 3d  |=sstart%(n%):l%=|
00007d00  73 6c 65 6e 25 28 6e 25  29 0d 33 fe 05 cc 0d 34  |slen%(n%).3....4|
00007d10  08 21 20 73 25 3d 73 74  61 72 74 25 28 6e 25 29  |.! s%=start%(n%)|
00007d20  3a 6c 25 3d 6c 65 6e 67  74 68 25 28 6e 25 29 0d  |:l%=length%(n%).|
00007d30  34 12 05 cd 0d 34 1c 04  0d 34 26 1f f2 73 61 76  |4....4...4&..sav|
00007d40  65 69 74 28 6e 25 2c 6e  61 6d 65 24 28 6e 25 29  |eit(n%,name$(n%)|
00007d50  2c 73 25 2c 6c 25 29 0d  34 30 1d 62 25 21 31 32  |,s%,l%).40.b%!12|
00007d60  3d 62 25 21 38 3a 62 25  21 31 36 3d 33 3a 21 62  |=b%!8:b%!16=3:!b|
00007d70  25 3d 36 34 0d 34 3a 2b  c8 99 20 22 57 69 6d 70  |%=64.4:+.. "Wimp|
00007d80  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 31 37  |_SendMessage",17|
00007d90  2c 62 25 2c 62 25 21 32  30 2c 62 25 21 32 34 0d  |,b%,b%!20,b%!24.|
00007da0  34 44 05 e1 0d 34 4e 05  3a 0d 34 58 0e dd 20 f2  |4D...4N.:.4X.. .|
00007db0  72 65 63 6c 6f 61 64 0d  34 62 0d ea 20 70 6e 24  |recload.4b.. pn$|
00007dc0  2c 77 68 25 0d 34 6c 31  e7 20 62 25 21 31 32 3c  |,wh%.4l1. b%!12<|
00007dd0  3e 30 20 8c 20 e1 20 3a  f4 20 4e 6f 74 20 66 72  |>0 . . :. Not fr|
00007de0  6f 6d 20 66 69 6c 65 72  20 40 40 40 40 2a 2a 2a  |om filer @@@@***|
00007df0  2a 25 25 25 25 0d 34 76  0d 77 68 25 3d 62 25 21  |*%%%%.4v.wh%=b%!|
00007e00  32 30 0d 34 80 1a 70 6e  24 3d a4 7a 65 72 6f 73  |20.4..pn$=.zeros|
00007e10  74 72 69 6e 67 28 62 25  2b 34 34 29 0d 34 8a 0e  |tring(b%+44).4..|
00007e20  e7 20 77 68 25 3d 2d 32  20 8c 0d 34 94 10 20 20  |. wh%=-2 ..4..  |
00007e30  f2 73 61 76 65 62 6c 6f  63 6b 0d 34 9e 14 20 20  |.saveblock.4..  |
00007e40  e7 20 a4 6c 6f 61 64 28  70 6e 24 29 20 8c 0d 34  |. .load(pn$) ..4|
00007e50  a8 15 20 20 20 20 f2 72  65 73 74 6f 72 65 62 6c  |..    .restorebl|
00007e60  6f 63 6b 0d 34 b2 14 20  20 20 20 f2 73 65 6e 64  |ock.4..    .send|
00007e70  6c 6f 61 64 61 63 6b 0d  34 bc 07 20 20 cd 0d 34  |loadack.4..  ..4|
00007e80  c6 05 cc 0d 34 d0 15 20  20 6c 6f 61 64 77 69 6e  |....4..  loadwin|
00007e90  64 25 3d 62 25 21 32 30  0d 34 da 20 20 20 69 6e  |d%=b%!20.4.   in|
00007ea0  73 65 72 74 24 3d a4 7a  65 72 6f 73 74 72 69 6e  |sert$=.zerostrin|
00007eb0  67 28 62 25 2b 34 34 29  0d 34 e4 21 20 20 f2 64  |g(b%+44).4.!  .d|
00007ec0  69 61 6c 6f 67 28 a4 68  61 6e 64 6c 65 74 6f 73  |ialog(.handletos|
00007ed0  6e 75 6d 28 77 68 25 29  29 0d 34 ee 05 cd 0d 34  |num(wh%)).4....4|
00007ee0  f8 05 e1 0d 35 02 05 3a  0d 35 0c 0e dd 20 f2 72  |....5..:.5... .r|
00007ef0  65 63 6f 70 65 6e 0d 35  16 10 ea 20 70 6e 24 2c  |ecopen.5... pn$,|
00007f00  77 68 25 2c 5a 25 0d 35  20 1a 70 6e 24 3d a4 7a  |wh%,Z%.5 .pn$=.z|
00007f10  65 72 6f 73 74 72 69 6e  67 28 62 25 2b 34 34 29  |erostring(b%+44)|
00007f20  0d 35 2a 04 0d 35 34 12  e7 20 62 25 21 34 30 3d  |.5*..54.. b%!40=|
00007f30  26 45 44 30 20 8c 0d 35  3e 10 20 20 f2 73 61 76  |&ED0 ..5>.  .sav|
00007f40  65 62 6c 6f 63 6b 0d 35  48 14 20 20 e7 20 a4 6c  |eblock.5H.  . .l|
00007f50  6f 61 64 28 70 6e 24 29  20 8c 0d 35 52 15 20 20  |oad(pn$) ..5R.  |
00007f60  20 20 f2 72 65 73 74 6f  72 65 62 6c 6f 63 6b 0d  |  .restoreblock.|
00007f70  35 5c 14 20 20 20 20 f2  73 65 6e 64 6c 6f 61 64  |5\.    .sendload|
00007f80  61 63 6b 0d 35 66 07 20  20 cd 0d 35 70 05 cd 0d  |ack.5f.  ..5p...|
00007f90  35 7a 04 0d 35 84 12 e7  20 62 25 21 34 30 3d 26  |5z..5... b%!40=&|
00007fa0  45 44 31 20 8c 0d 35 8e  28 20 20 f4 20 2a 2a 2a  |ED1 ..5.(  . ***|
00007fb0  2a 20 43 6f 6d 70 72 65  73 73 65 64 20 44 53 45  |* Compressed DSE|
00007fc0  64 69 74 20 72 61 77 2d  73 6f 75 6e 64 0d 35 98  |dit raw-sound.5.|
00007fd0  05 cd 0d 35 a2 04 0d 35  ac 12 e7 20 62 25 21 34  |...5...5... b%!4|
00007fe0  30 3d 26 44 46 39 20 8c  0d 35 b6 43 20 20 f2 73  |0=&DF9 ..5.C  .s|
00007ff0  61 76 65 62 6c 6f 63 6b  20 20 20 20 20 20 20 20  |aveblock        |
00008000  20 20 20 20 20 20 20 20  20 20 20 20 3a f4 20 2a  |            :. *|
00008010  2a 2a 2a 20 4c 6f 61 64  20 53 6f 75 6e 64 53 79  |*** Load SoundSy|
00008020  6e 74 68 20 73 61 6d 70  6c 65 73 0d 35 c0 49 20  |nth samples.5.I |
00008030  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00008050  20 20 3a f4 20 4e 6f 74  65 20 74 68 69 73 20 64  |  :. Note this d|
00008060  6f 65 73 6e 27 74 20 72  65 6d 6f 76 65 20 68 65  |oesn't remove he|
00008070  61 64 65 72 0d 35 ca 14  20 20 e7 20 a4 6c 6f 61  |ader.5..  . .loa|
00008080  64 28 70 6e 24 29 20 8c  0d 35 d4 15 20 20 20 20  |d(pn$) ..5..    |
00008090  f2 72 65 73 74 6f 72 65  62 6c 6f 63 6b 0d 35 de  |.restoreblock.5.|
000080a0  14 20 20 20 20 f2 73 65  6e 64 6c 6f 61 64 61 63  |.    .sendloadac|
000080b0  6b 0d 35 e8 04 0d 35 f2  33 20 20 20 20 c8 99 20  |k.5...5.3    .. |
000080c0  22 48 6f 75 72 67 6c 61  73 73 5f 4f 6e 22 20 20  |"Hourglass_On"  |
000080d0  20 20 20 20 20 20 20 20  20 20 20 3a f4 20 45 6f  |           :. Eo|
000080e0  72 20 62 79 20 31 32 38  0d 35 fc 14 20 20 20 20  |r by 128.5..    |
000080f0  e3 20 5a 25 3d 30 20 b8  20 32 35 35 0d 36 06 1f  |. Z%=0 . 255.6..|
00008100  20 20 20 20 20 20 6d 74  61 62 6c 65 25 3f 5a 25  |      mtable%?Z%|
00008110  3d 28 5a 25 20 82 20 31  32 38 29 0d 36 10 09 20  |=(Z% . 128).6.. |
00008120  20 20 20 ed 0d 36 1a 3b  20 20 20 20 f2 74 61 62  |   ..6.;    .tab|
00008130  6c 65 6d 6f 64 28 73 74  61 72 74 25 28 6c 61 73  |lemod(start%(las|
00008140  74 6c 6f 61 64 65 64 25  29 2c 6c 65 6e 67 74 68  |tloaded%),length|
00008150  25 28 6c 61 73 74 6c 6f  61 64 65 64 25 29 29 0d  |%(lastloaded%)).|
00008160  36 24 1d 20 20 20 20 f2  73 65 74 75 70 64 74 28  |6$.    .setupdt(|
00008170  6c 61 73 74 6c 6f 61 64  65 64 25 29 0d 36 2e 1a  |lastloaded%).6..|
00008180  20 20 20 20 c8 99 20 22  48 6f 75 72 67 6c 61 73  |    .. "Hourglas|
00008190  73 5f 4f 66 66 22 0d 36  38 07 20 20 cd 0d 36 42  |s_Off".68.  ..6B|
000081a0  05 cd 0d 36 4c 05 e1 0d  36 56 05 3a 0d 36 60 10  |...6L...6V.:.6`.|
000081b0  dd 20 f2 73 61 76 65 62  6c 6f 63 6b 0d 36 6a 14  |. .saveblock.6j.|
000081c0  e3 20 5a 25 3d 30 20 b8  20 32 34 30 20 88 20 34  |. Z%=0 . 240 . 4|
000081d0  0d 36 74 17 20 20 73 63  72 61 74 63 68 25 21 5a  |.6t.  scratch%!Z|
000081e0  25 3d 62 25 21 5a 25 0d  36 7e 05 ed 0d 36 88 05  |%=b%!Z%.6~...6..|
000081f0  e1 0d 36 92 05 3a 0d 36  9c 13 dd 20 f2 72 65 73  |..6..:.6... .res|
00008200  74 6f 72 65 62 6c 6f 63  6b 0d 36 a6 14 e3 20 5a  |toreblock.6... Z|
00008210  25 3d 30 20 b8 20 32 34  30 20 88 20 34 0d 36 b0  |%=0 . 240 . 4.6.|
00008220  17 20 20 62 25 21 5a 25  3d 73 63 72 61 74 63 68  |.  b%!Z%=scratch|
00008230  25 21 5a 25 0d 36 ba 05  ed 0d 36 c4 05 e1 0d 36  |%!Z%.6....6....6|
00008240  ce 05 3a 0d 36 d8 0f dd  20 f2 73 65 6e 64 73 61  |..:.6... .sendsa|
00008250  76 65 0d 36 e2 08 ea 20  70 25 0d 36 ec 20 c8 99  |ve.6... p%.6. ..|
00008260  20 22 57 69 6d 70 5f 47  65 74 50 6f 69 6e 74 65  | "Wimp_GetPointe|
00008270  72 49 6e 66 6f 22 2c 2c  62 25 0d 36 f6 28 62 25  |rInfo",,b%.6.(b%|
00008280  21 32 30 3d 36 34 3a 62  25 21 33 32 3d 30 3a 62  |!20=64:b%!32=0:b|
00008290  25 21 33 36 3d 31 3a 62  25 21 34 30 3d 62 25 21  |%!36=1:b%!40=b%!|
000082a0  31 32 0d 37 00 24 62 25  21 34 34 3d 62 25 21 31  |12.7.$b%!44=b%!1|
000082b0  36 3a 62 25 21 34 38 3d  21 62 25 3a 62 25 21 35  |6:b%!48=!b%:b%!5|
000082c0  32 3d 62 25 21 34 0d 37  0a 04 0d 37 14 10 e7 20  |2=b%!4.7...7... |
000082d0  73 61 76 65 73 65 6c 25  20 8c 0d 37 1e 2b 20 20  |savesel% ..7.+  |
000082e0  62 25 21 35 36 3d 73 6c  65 6e 25 28 a4 68 61 6e  |b%!56=slen%(.han|
000082f0  64 6c 65 74 6f 73 6e 75  6d 28 73 61 76 65 77 69  |dletosnum(savewi|
00008300  6e 64 25 29 29 0d 37 28  13 20 20 70 25 3d 66 69  |nd%)).7(.  p%=fi|
00008310  6c 65 6e 61 6d 65 32 25  0d 37 32 05 cc 0d 37 3c  |lename2%.72...7<|
00008320  2d 20 20 62 25 21 35 36  3d 6c 65 6e 67 74 68 25  |-  b%!56=length%|
00008330  28 a4 68 61 6e 64 6c 65  74 6f 73 6e 75 6d 28 73  |(.handletosnum(s|
00008340  61 76 65 77 69 6e 64 25  29 29 0d 37 46 12 20 20  |avewind%)).7F.  |
00008350  70 25 3d 66 69 6c 65 6e  61 6d 65 25 0d 37 50 05  |p%=filename%.7P.|
00008360  cd 0d 37 5a 04 0d 37 64  0e 62 25 21 36 30 3d 26  |..7Z..7d.b%!60=&|
00008370  45 44 30 0d 37 6e 17 24  28 62 25 2b 36 34 29 3d  |ED0.7n.$(b%+64)=|
00008380  a4 6c 65 61 66 28 24 70  25 29 0d 37 78 2e c8 99  |.leaf($p%).7x...|
00008390  20 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  | "Wimp_SendMessa|
000083a0  67 65 22 2c 31 37 2c 62  25 2b 32 30 2c 62 25 21  |ge",17,b%+20,b%!|
000083b0  31 32 2c 62 25 21 31 36  0d 37 82 05 e1 0d 37 8c  |12,b%!16.7....7.|
000083c0  05 3a 0d 37 96 12 dd 20  f2 73 65 6e 64 6c 6f 61  |.:.7... .sendloa|
000083d0  64 61 63 6b 0d 37 a0 0b  62 25 21 31 36 3d 34 0d  |dack.7..b%!16=4.|
000083e0  37 aa 0e 62 25 21 31 32  3d 62 25 21 38 0d 37 b4  |7..b%!12=b%!8.7.|
000083f0  24 c8 99 20 22 57 69 6d  70 5f 53 65 6e 64 4d 65  |$.. "Wimp_SendMe|
00008400  73 73 61 67 65 22 2c 31  37 2c 62 25 2c 62 25 21  |ssage",17,b%,b%!|
00008410  34 0d 37 be 05 e1 0d 37  c8 05 3a 0d 37 d2 18 dd  |4.7....7..:.7...|
00008420  20 a4 7a 65 72 6f 73 74  72 69 6e 67 28 61 64 64  | .zerostring(add|
00008430  72 25 29 0d 37 dc 08 ea  20 41 24 0d 37 e6 1d c8  |r%).7... A$.7...|
00008440  95 20 3f 61 64 64 72 25  3e 33 31 20 80 20 3f 61  |. ?addr%>31 . ?a|
00008450  64 64 72 25 3c 31 32 37  0d 37 f0 1c 20 20 41 24  |ddr%<127.7..  A$|
00008460  2b 3d bd 28 3f 61 64 64  72 25 29 3a 61 64 64 72  |+=.(?addr%):addr|
00008470  25 2b 3d 31 0d 37 fa 05  ce 0d 38 04 07 3d 41 24  |%+=1.7....8..=A$|
00008480  0d 38 0e 05 3a 0d 38 18  0f dd 20 f2 77 69 6d 70  |.8..:.8... .wimp|
00008490  69 6e 69 74 0d 38 22 2c  de 20 62 25 20 32 35 35  |init.8",. b% 255|
000084a0  2c 6d 65 6e 75 25 20 32  33 30 34 2c 77 6d 65 6e  |,menu% 2304,wmen|
000084b0  75 25 20 32 35 35 2c 6f  6c 64 62 25 20 31 30 30  |u% 255,oldb% 100|
000084c0  0d 38 2c 21 de 20 73 63  72 61 74 63 68 25 20 32  |.8,!. scratch% 2|
000084d0  35 35 2c 73 61 76 65 62  6c 6f 63 6b 25 20 32 34  |55,saveblock% 24|
000084e0  31 0d 38 36 04 0d 38 40  0b 71 75 69 74 25 3d a3  |1.86..8@.quit%=.|
000084f0  0d 38 4a 0e 24 62 25 3d  22 54 41 53 4b 22 0d 38  |.8J.$b%="TASK".8|
00008500  54 39 c8 99 20 22 57 69  6d 70 5f 49 6e 69 74 69  |T9.. "Wimp_Initi|
00008510  61 6c 69 73 65 22 2c 32  30 30 2c 21 62 25 2c 22  |alise",200,!b%,"|
00008520  44 53 20 45 64 69 74 22  20 b8 20 2c 74 61 73 6b  |DS Edit" . ,task|
00008530  68 61 6e 64 6c 65 25 0d  38 5e 04 0d 38 68 3d de  |handle%.8^..8h=.|
00008540  20 6f 6b 73 25 20 32 2c  66 69 6c 65 6e 61 6d 65  | oks% 2,filename|
00008550  25 20 32 35 35 2c 66 69  6c 65 6e 61 6d 65 32 25  |% 255,filename2%|
00008560  20 32 35 35 2c 76 61 6c  69 64 25 20 33 2c 73 70  | 255,valid% 3,sp|
00008570  72 69 74 65 25 20 32 30  0d 38 72 30 24 6f 6b 73  |rite% 20.8r0$oks|
00008580  25 3d 22 4f 4b 22 3a 24  76 61 6c 69 64 25 3d 22  |%="OK":$valid%="|
00008590  61 7e 20 22 3a 24 73 70  72 69 74 65 25 3d 22 66  |a~ ":$sprite%="f|
000085a0  69 6c 65 5f 65 64 30 22  0d 38 7c 19 24 66 69 6c  |ile_ed0".8|.$fil|
000085b0  65 6e 61 6d 65 25 3d 22  52 61 77 53 6f 75 6e 64  |ename%="RawSound|
000085c0  22 0d 38 86 1b 24 66 69  6c 65 6e 61 6d 65 32 25  |".8..$filename2%|
000085d0  3d 22 53 65 6c 65 63 74  69 6f 6e 22 0d 38 90 04  |="Selection".8..|
000085e0  0d 38 9a 25 de 20 73 70  72 69 74 65 32 25 20 32  |.8.%. sprite2% 2|
000085f0  30 3a 24 73 70 72 69 74  65 32 25 3d 22 21 64 73  |0:$sprite2%="!ds|
00008600  69 63 6f 6e 22 0d 38 a4  10 de 20 6e 61 6d 65 73  |icon".8... names|
00008610  25 20 32 35 36 0d 38 ae  2c e3 20 5a 25 3d 30 20  |% 256.8.,. Z%=0 |
00008620  b8 20 31 35 3a 24 28 6e  61 6d 65 73 25 2b 5a 25  |. 15:$(names%+Z%|
00008630  2a 31 36 29 3d 22 3c 55  6e 74 69 74 6c 65 64 3e  |*16)="<Untitled>|
00008640  22 0d 38 b8 34 61 70 70  69 63 6f 6e 25 3d a4 69  |".8.4appicon%=.i|
00008650  63 6f 6e 28 2d 31 2c 30  2c 30 2c 36 38 2c 36 38  |con(-1,0,0,68,68|
00008660  2c 26 33 31 30 32 2c 73  70 72 69 74 65 32 25 2c  |,&3102,sprite2%,|
00008670  31 2c 32 30 29 0d 38 c2  05 e1 0d 38 cc 05 3a 0d  |1,20).8....8..:.|
00008680  38 d6 10 dd 20 f2 65 72  72 6f 72 28 65 24 29 0d  |8... .error(e$).|
00008690  38 e0 11 24 62 25 3d 22  20 20 20 20 22 2b 65 24  |8..$b%="    "+e$|
000086a0  0d 38 ea 13 62 25 3f 28  a9 28 24 62 25 29 2b 34  |.8..b%?(.($b%)+4|
000086b0  29 3d 30 0d 38 f4 28 c8  99 20 22 57 69 6d 70 5f  |)=0.8.(.. "Wimp_|
000086c0  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 62 25 2c  |ReportError",b%,|
000086d0  31 2c 22 44 53 20 45 64  69 74 22 0d 38 fe 05 e1  |1,"DS Edit".8...|
000086e0  0d 39 08 05 3a 0d 39 12  0f dd 20 f2 65 72 72 6f  |.9..:.9... .erro|
000086f0  72 65 6e 64 0d 39 1c 12  e3 20 5a 25 3d 31 20 b8  |rend.9... Z%=1 .|
00008700  20 73 6e 75 6d 25 0d 39  26 1a 20 20 f2 72 65 6c  | snum%.9&.  .rel|
00008710  65 61 73 65 28 73 74 61  72 74 25 28 5a 25 29 29  |ease(start%(Z%))|
00008720  0d 39 30 17 20 20 f2 72  65 6c 65 61 73 65 28 64  |.90.  .release(d|
00008730  74 25 28 5a 25 29 29 0d  39 3a 05 ed 0d 39 44 16  |t%(Z%)).9:...9D.|
00008740  c8 99 22 57 69 6d 70 5f  43 6c 6f 73 65 44 6f 77  |.."Wimp_CloseDow|
00008750  6e 22 0d 39 4e 05 e0 0d  ff                       |n".9N....|
00008759