Home » Archimedes archive » Acorn User » AU 1998-03 A.adf » QuickSnd » !QuickSnd/!RunImage

!QuickSnd/!RunImage

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1998-03 A.adf » QuickSnd
Filename: !QuickSnd/!RunImage
Read OK:
File size: 882D bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <QuickSnd$Dir>.!RunImage
   20
   30REM *****************
   40REM *               *
   50REM * QuickSnd Demo *
   60REM *               *
   70REM *****************
   80
   90version$ = "1.02 06/08/92"
  100
  110REM ******************************
  120REM *                            *
  130REM * LEN Software by Bright Ideas *
  140REM *                            *
  150REM * Desktop Projets LTD        *
  160REM * Unit 2A                    *
  170REM * Heapriding Business Park   *
  180REM * Ford Street                *
  190REM * Stockport                  *
  200REM * Cheshire                   *
  210REM * SK3 0BT                    *
  220REM *                            *
  230REM * Tel: 061 474 0778          *
  240REM * Fax: 061 474 0781          *
  250REM *                            *
  260REM ******************************
  270
  280PROCsetup_swinames
  290
  300progtitle$ = "QuickSnd Demo"
  310
  320SYS "Wimp_Initialise",200,&4B534154,progtitle$ TO ,task_handle%
  330SYS "Wimp_ClaimInterface",task_handle%
  340PROCwaitptr
  350
  360DIM hierarchy 200
  370DIM bk 4096,iconspace 4096
  380DIM mbk 20
  390DIM datetime_buffer 8
  400DIM result_buffer 64
  410DIM pitch(99)
  420
  430format$ = "%24:%MI:%SE %DY/%MN/%YR"
  440
  450DIM menus 4*1024
  460SYS "MenuManager_InstallMenus",0,"<QuickSnd$Dir>.Menus",menus,menus+4*1024
  470
  480samplebuffersize = VALFNreadvar("MaxSampleSize") * 1024
  490SYS "XOS_Module",6,,,samplebuffersize TO ,,code ;flags
  500
  510IF (flags AND 1) =1 THEN
  520 PROCdrongo("Unable to claim memoey")
  530 SYS "Wimp_ReleaseInterface",task_handle%
  540 SYS "Wimp_CloseDown"
  550 END
  560ENDIF
  570
  580samplebuffer = code + 8192
  590samplebuffersize -= 8192
  600
  610SYS "Sound_Configure" TO ,,orgsamprate
  620
  630PROCinit
  640
  650DIM scaletable 256
  660
  670DIM logtolintable 256
  680OSCLI("LOAD <QuickSnd$Dir>.table "+STR$~logtolintable)
  690
  700DIM lintologtable 256
  710OSCLI("LOAD <QuickSnd$Dir>.table1 "+STR$~lintologtable)
  720
  730PROCassemble
  740SYS "Sound_InstallVoice",voicebase,0 TO ,voiceid
  750SYS "Sound_AttachVoice",1,0 TO ,voice1
  760SYS "Sound_AttachVoice",1,voice1
  770
  780A%=samplebuffer
  790B%=samplebuffer + samplebuffersize
  800CALL clearmemory
  810
  820PROCarrowptr
  830
  840REPEAT
  850 ON ERROR LOCAL PROCerror
  860 PROCaction(FNpoll)
  870UNTIL FALSE
  880END
  890
  900DEF PROCerror
  910 SYS "Hourglass_Smash"
  920 IF ERR=1 PROCdrongo(REPORT$):ENDPROC
  930 IF NOT FNask(REPORT$+" at line "+STR$ERL+". Do you want to quit?") THEN ENDPROC
  940 PROCfinish
  950ENDPROC
  960
  970DEF FNpoll
  980 bk!0=mask
  990 SYS poll,,bk TO a
 1000=a
 1010
 1020DEF PROCaction(evnt)
 1030 CASE evnt OF
 1040  WHEN null_reason_code      : PROCnull
 1050  WHEN redraw_window_request : PROCredrawwindow(bk!0)
 1060  WHEN open_window_request   : PROCopenwindow(bk!0,TRUE)
 1070  WHEN close_window_request  : PROCclosewindow(bk!0)
 1080  WHEN mouse_button_change   : PROCmousechange(bk)
 1090  WHEN key_pressed           : PROCkeypressed(bk!0,bk!4,bk!24)
 1100  WHEN menu_select           : PROCmenuselect(bk)
 1110  WHEN user_message          : PROCreceivemessage
 1120  WHEN user_message_recorded : PROCreceivemessage
 1130 ENDCASE
 1140ENDPROC
 1150
 1160
 1170DEF PROCredrawwindow(handle)
 1180 LOCAL more
 1190 bk!0=handle
 1200 SYS redraww,,bk TO more
 1210
 1220 WHILE more
 1230  CASE handle OF
 1240   WHEN credits,echow,resamplew,keyboard : SYS borderw,,bk
 1250  ENDCASE
 1260
 1270  SYS getrect,,bk TO more
 1280 ENDWHILE
 1290
 1300ENDPROC
 1310
 1320
 1330DEF PROCnull
 1340 IF awaitingack THEN
 1350  awaitingack = FALSE
 1360  ERROR 1,"Bad Data Transfer, Receiver Dead."
 1370 ENDIF
 1380
 1390 IF !finished=2 THEN
 1400  SYS "Sound_Configure"
 1410  WAIT:WAIT
 1420  PROCstop
 1430 ENDIF
 1440
 1450 IF playing THEN
 1460  CALLdraw
 1470  PROCredraw_icon(vumeter,0)
 1480 ENDIF
 1490
 1500 IF autokey PROCcheck_keyboard
 1510
 1520 IF welcome_open PROCremove_welcome
 1530
 1540ENDPROC
 1550
 1560
 1570DEF PROCcheck_keyboard
 1580 LOCAL i
 1590 SYS gptri,,mbk
 1600 i=mbk!16
 1610 IF mbk!12 <> keyboard THEN ENDPROC
 1620 IF i>0 AND i<49 AND i<>oldkey THEN
 1630  PROCdeselect(keyboard,oldkey)
 1640  PROCselecticon(keyboard,i)
 1650  PROCplay(pitch(i))
 1660  oldkey=i
 1670 ENDIF
 1680ENDPROC
 1690
 1700
 1710DEF PROCremove_welcome
 1720 LOCAL rmasprites
 1730 SYS "OS_ReadMonotonicTime" TO q
 1740 IF q>remove_welcome THEN
 1750  welcome_open=FALSE
 1760  PROCclosewindow(welcome)
 1770  q=bk+1024
 1780  q!0=welcome
 1790  SYS "Wimp_DeleteWindow",,q
 1800  SYS "Wimp_BaseOfSprites" TO ,rmasprites
 1810  SYS "OS_SpriteOp",&119,rmasprites,"dtpwelcome"
 1820 ENDIF
 1830ENDPROC
 1840
 1850DEF PROCshow_start
 1860 !upto = samplebuffer
 1870 CALLdraw
 1880 PROCredraw_icon(vumeter,0)
 1890ENDPROC
 1900
 1910DEF PROCredraw_icon(w,i)
 1920 bk!0=w
 1930 bk!4=i
 1940 SYS getis,,bk
 1950 SYS forcerd,vumeter,bk!8,bk!12,bk!16,bk!20
 1960ENDPROC
 1970
 1980DEF PROCsettext(w,i,a$)
 1990 bk!0 = w
 2000 bk!4 = i
 2010 SYS getis,,bk
 2020 $(bk!28)=a$
 2030 bk!8=0
 2040 bk!12=0
 2050 SYS setis,,bk
 2060ENDPROC
 2070
 2080DEF PROCinit
 2090 LOCAL q
 2100 remainingiconspace = iconspace
 2110 null_reason_code = 0
 2120 redraw_window_request = 1
 2130 open_window_request = 2
 2140 close_window_request = 3
 2150 mouse_button_change = 6
 2160 key_pressed = 8
 2170 menu_select = 9
 2180 user_message = 17
 2190 user_message_recorded = 18
 2200 user_message_ack = 19
 2210 message_quit = 0
 2220 message_datasave = 1
 2230 message_datasaveack = 2
 2240 message_dataload = 3
 2250 message_dataloadack = 4
 2260 message_dataopen = 5
 2270 message_prequit = 8
 2280 message_menuwarning = &400C0
 2290 scrapref = -1
 2300 awaitingack = FALSE
 2310 claimmenu = -1
 2320 claimdragbox  = TRUE
 2330 claimdragbox$ = ""
 2340 mask = 0
 2350 iconbar = -2
 2360 sound_icon = FNicon_iconbar
 2370 scrapref = -1
 2380 return = 13
 2390 PROCreadtemplates
 2400 PROCsettext(credits,3,version$)
 2410 armadeus = &D3C
 2420 sndsynth = &DF9
 2430 tracker  = &CB5
 2440 data = &FFD
 2450 vu_open = FALSE
 2460 keyboard_open=TRUE
 2470 playing = FALSE
 2480 saved = TRUE
 2490 samplerate = 48
 2500 save_type = 0
 2510 PROCdeselect_echo
 2520 PROCselecticon(echow,4)
 2530 echo_length = 4
 2540 sample_present = FALSE
 2550 useleafname = TRUE
 2560 name$ = "<Untitled>"
 2570 vidc = FALSE
 2580 PROCsetup_pitchs
 2590 oldkey=-1
 2600 autokey=FALSE
 2610 PROCdeselect(keyboard,77)
 2620 welcome_open=TRUE
 2630 PROCfront1(welcome)
 2640 SYS "OS_ReadMonotonicTime" TO q
 2650 remove_welcome = q+300
 2660ENDPROC
 2670
 2680
 2690DEF PROCsetup_pitchs
 2700 LOCAL p,c
 2710 c=1
 2720 RESTORE 2810
 2730 READ p
 2740 REPEAT
 2750  pitch(c) = p
 2760  c+=1
 2770  READ p
 2780 UNTIL p=0
 2790ENDPROC
 2800
 2810DATA &1000    :REM C
 2820DATA &12AA
 2830DATA &1555
 2840DATA &16AA
 2850DATA &1955
 2860DATA &1C00
 2870DATA &1EAA
 2880
 2890DATA &2000    :REM C
 2900DATA &22AA
 2910DATA &2555
 2920DATA &26AA
 2930DATA &2955
 2940DATA &2C00
 2950DATA &2EAA
 2960
 2970DATA &3000    :REM C
 2980DATA &32AA
 2990DATA &3555
 3000DATA &36AA
 3010DATA &3955
 3020DATA &3C00
 3030DATA &3EAA
 3040
 3050DATA &4000    :REM C
 3060DATA &42AA
 3070DATA &4555
 3080DATA &46AA
 3090DATA &4955
 3100DATA &4C00
 3110DATA &4EAA
 3120
 3130DATA &1155    :REM C#
 3140DATA &1400
 3150DATA &1800
 3160DATA &1AAA
 3170DATA &1D55
 3180
 3190DATA &2155    :REM C#
 3200DATA &2400
 3210DATA &2800
 3220DATA &2AAA
 3230DATA &2D55
 3240
 3250DATA &3155    :REM C#
 3260DATA &3400
 3270DATA &3800
 3280DATA &3AAA
 3290DATA &3D55
 3300
 3310DATA &4155    :REM C#
 3320DATA &4400
 3330DATA &4800
 3340DATA &4AAA
 3350DATA &4D55
 3360
 3370DATA 0
 3380
 3390
 3400
 3410DEF PROCreceivemessage
 3420 ref     = bk!8
 3430 task    = bk!4
 3440 yourref = bk!12
 3450 IF task = task_handle% THEN awaitingack = FALSE:ENDPROC
 3460
 3470 CASE bk!16 OF
 3480  WHEN message_quit     : PROCfinish
 3490  WHEN message_dataload : PROCmessage_dataload
 3500  WHEN message_dataopen : PROCdata_open
 3510  WHEN message_dataloadack : awaitingack = FALSE
 3520  WHEN message_menuwarning : PROCmenu_warning
 3530  WHEN message_prequit     : PROCprequit_checks
 3540 ENDCASE
 3550
 3560ENDPROC
 3570
 3580
 3590DEF PROCdata_open
 3600
 3610 fsp$=FNstrnullterm(bk+44)
 3620 ftype = bk!40
 3630
 3640 IF NOT INKEY-1 AND FNgetleafname(fsp$)="!QuickSnd" THEN
 3650  PROCack
 3660  ENDPROC
 3670 ENDIF
 3680
 3690 IF ftype=armadeus OR ftype=sndsynth OR ftype=tracker THEN
 3700  IF NOT saved THEN
 3710   IF NOT FNask("Sample not saved, Load another") THEN
 3720    PROCack
 3730    ENDPROC
 3740   ENDIF
 3750  ENDIF
 3760
 3770  CASE bk!40 OF
 3780   WHEN armadeus :
 3790    PROCload_armadeus
 3800    PROCack
 3810
 3820   WHEN sndsynth :
 3830    PROCack
 3840    PROCload_sndsynth
 3850
 3860   WHEN tracker  :
 3870    PROCack
 3880    PROCload_tracker
 3890
 3900  ENDCASE
 3910 ENDIF
 3920
 3930ENDPROC
 3940
 3950
 3960DEF PROCprequit_checks
 3970 IF saved ENDPROC
 3980 IF FNask("Sample not saved, Are you sure you want to quit") THEN ENDPROC
 3990 PROCack
 4000ENDPROC
 4010
 4020
 4030DEF PROCmessage_dataload
 4040 LOCAL offset,window,icon,a,b,fsp$,ftype
 4050
 4060 window = bk!20
 4070 icon   = bk!24
 4080 fsp$   = FNstrnullterm(bk+44)
 4090 a      = bk!4
 4100 b      = bk!8
 4110 ftype  = bk!40
 4120
 4130 IF FNcheck_saved THEN
 4140  CASE ftype OF
 4150   WHEN armadeus : PROCload_armadeus
 4160   WHEN sndsynth : PROCload_sndsynth
 4170   WHEN tracker  : PROCload_tracker
 4180   WHEN data     : PROCload_data
 4190  ENDCASE
 4200 ENDIF
 4210
 4220 IF yourref=scrapref THEN OSCLI "Delete <Wimp$Scrap>"
 4230 bk!0=20
 4240 bk!4=a
 4250 bk!8=b
 4260 bk!12=ref
 4270 bk!16=message_dataloadack
 4280 SYS sendm,17,bk,task
 4290ENDPROC
 4300
 4310
 4320DEF FNcheck_saved
 4330 IF ftype=armadeus OR ftype=sndsynth OR ftype=tracker OR ftype=data THEN
 4340  IF saved THEN =TRUE
 4350  IF FNask("Sample not saved, Load another") THEN =TRUE
 4360 ENDIF
 4370=FALSE
 4380
 4390
 4400DEF PROCload_data
 4410 LOCAL X%
 4420
 4430 IF playing PROCstop
 4440
 4450 CALLclearmemory
 4460
 4470 X% = OPENIN(fsp$)
 4480 samplelength = EXT#X%
 4490 samplerate = 48
 4500 SYS "OS_GBPB",3,X%,samplebuffer,samplelength,1
 4510 CLOSE #X%
 4520
 4530 PROCaboutfile("Data","file_ffd",&FFD)
 4540
 4550 name$ = FNgetleafname(fsp$)
 4560
 4570 !wavebase  = samplebuffer
 4580 !length    = samplelength
 4590 REM !finished = 2
 4600
 4610 sample_present = TRUE
 4620 PROCshow_start
 4630 PROCopen_vu
 4640 PROCsaved
 4650ENDPROC
 4660
 4670
 4680DEF PROCload_armadeus
 4690 LOCAL X%,a,b
 4700
 4710 IF playing PROCstop
 4720
 4730 X% = OPENIN(fsp$)
 4740 a = BGET#X%
 4750 IF a<10 a = 10
 4760 b = EXT#X%-1
 4770 IF b > samplebuffersize THEN
 4780  CLOSE #X%
 4790  PROCdrongo("You do not have enough memory to load this sample, Increase samplesize in '!Run' file")
 4800  ENDPROC
 4810 ENDIF
 4820
 4830 samplerate = a
 4840 samplelength = b
 4850 CALLclearmemory
 4860 SYS "OS_GBPB",3,X%,samplebuffer,samplelength,1
 4870 CLOSE #X%
 4880
 4890 PROCaboutfile("Armadeus","file_d3c",&D3C)
 4900
 4910 name$ = FNgetleafname(fsp$)
 4920
 4930 !wavebase  = samplebuffer
 4940 !length    = samplelength
 4950 REM !finished = 2
 4960
 4970 sample_present = TRUE
 4980 PROCshow_start
 4990 PROCopen_vu
 5000 PROCsaved
 5010ENDPROC
 5020
 5030
 5040DEF PROCload_tracker
 5050 LOCAL X%
 5060
 5070 IF playing PROCstop
 5080
 5090 CALLclearmemory
 5100
 5110 X% = OPENIN(fsp$)
 5120 samplelength = EXT#X%
 5130 SYS "OS_GBPB",3,X%,samplebuffer,samplelength,0
 5140 CLOSE #X%
 5150
 5160 samplerate = 34
 5170
 5180 PROCaboutfile("Tracker","file_cb5",&CB5)
 5190
 5200 name$ = FNgetleafname(fsp$)
 5210
 5220 !wavebase = samplebuffer
 5230 !length   = samplelength
 5240 REM !finished = 2
 5250
 5260 PROClogtolin
 5270 sample_present = TRUE
 5280 PROCshow_start
 5290 PROCopen_vu
 5300 PROCsaved
 5310ENDPROC
 5320
 5330DEF PROCaboutfile(i$,s$,ft)
 5340 LOCAL A%
 5350 PROCsetspriteicon(aboutfile,5,s$)
 5360 PROCsettext(aboutfile,2,FNgetleafname(fsp$))
 5370 PROCsettext(aboutfile,1,i$+" "+STR$~ft)
 5380 PROCsettext(aboutfile,13,STR$samplelength)
 5390 PROCsettext(aboutfile,4,FNdate_time)
 5400 A%=1E6 DIV samplerate
 5410 PROCsettext(aboutfile,3,STR$A%+"Hz "+STR$samplerate+"uS")
 5420ENDPROC
 5430
 5440
 5450DEF PROCplay(x)
 5460 SYS "Sound_Configure",1
 5470 SYS "Sound_AttachVoice",1,voiceid TO ,oldvoiceid
 5480
 5490 IF vidc THEN
 5500  SYS "Sound_Configure",,,samplerate*1.5
 5510 ELSE
 5520  SYS "Sound_Configure",,,samplerate
 5530 ENDIF
 5540
 5550 WAIT
 5560 SOUND 1,&17F,x,1
 5570 playing = TRUE
 5580 WAIT
 5590ENDPROC
 5600
 5610
 5620DEF PROCstop
 5630 IF NOT playing ENDPROC
 5640 !forcekill=1
 5650 REPEAT UNTIL !finished=2
 5660 WAIT:WAIT
 5670 SYS "Sound_AttachVoice",1,voice1
 5680 WAIT:WAIT
 5690 SYS "Sound_Configure",,,orgsamprate
 5700 WAIT:WAIT
 5710 playing = FALSE
 5720 !finished = 0
 5730 PROCdeselect(keyboard,oldkey)
 5740 oldkey=-1
 5750ENDPROC
 5760
 5770
 5780DEF PROCload_sndsynth
 5790 LOCAL X%
 5800
 5810 IF playing PROCstop
 5820 CALLclearmemory
 5830
 5840 X% = OPENIN(fsp$)
 5850 samplelength = EXT#X%-544
 5860 SYS "OS_GBPB",3,X%,samplebuffer,samplelength,544
 5870 CLOSE #X%
 5880
 5890 samplerate = 48
 5900
 5910 PROCaboutfile("SndSynth","file_df9",&DF9)
 5920
 5930 name$ = FNgetleafname(fsp$)
 5940
 5950 !wavebase = samplebuffer
 5960 !length   = samplelength
 5970 REM !finished = 2
 5980
 5990 sample_present = TRUE
 6000 PROCshow_start
 6010 PROCopen_vu
 6020 PROCsaved
 6030
 6040
 6050ENDPROC
 6060
 6070 PROCaboutfile("Armadeus","file_d3c",&D3C)
 6080 PROCaboutfile("Tracker","file_cb5",&CB5)
 6090 PROCaboutfile("SndSynth","file_df9",&DF9)
 6100
 6110DEF PROCmenu_warning
 6120 LOCAL mir,mip,mox,moy
 6130 SYS "MenuManager_MenuWarning",,menus,claimmenu$,bk TO mir,,,,,mip
 6140 mox = bk!24
 6150 moy = bk!28
 6160
 6170 CASE mir OF
 6180  WHEN 100 : PROCsave_box
 6190  WHEN 101 : PROCsave_box
 6200  WHEN 102 : PROCsave_box
 6210  WHEN 103 : PROCsave_box
 6220  WHEN 104 : PROCsave_box
 6230  WHEN 105 : PROCsave_box
 6240
 6250  WHEN 252 : SYS createsm,,aboutfile,bk!24,bk!28
 6260  WHEN 253 : SYS createsm,,credits,bk!24,bk!28
 6270  WHEN 254 : SYS createsm,,credits,bk!24,bk!28
 6280 ENDCASE
 6290ENDPROC
 6300
 6310DEF PROCsave_box
 6320 SYS createsm,,saveas,mox,moy
 6330ENDPROC
 6340
 6350DEF PROCdeselect_echo
 6360 LOCAL x
 6370 FOR x=1 TO 8
 6380  PROCdeselect(echow,x)
 6390 NEXT
 6400ENDPROC
 6410
 6420DEF PROCack
 6430 !bk   = 20
 6440 bk!12 = ref
 6450 bk!16 = 4
 6460 SYS sendm,17,bk
 6470ENDPROC
 6480
 6490DEF PROCopenwindow(w,full)
 6500 bk!0=w
 6510 IF NOT full THEN bk!0=w:SYS getws,,bk
 6520 SYS openw,,bk
 6530ENDPROC
 6540
 6550DEF PROCopencoords(handle,minx,miny,maxx,maxy,back)
 6560 LOCAL b%,b1%
 6570 b%=bk+32
 6580 b1%=bk+64
 6590 !b1%=handle
 6600 SYS getws,,b1%
 6610 b%!0=handle  : b%!4=minx
 6620 b%!8=miny    : b%!12=maxx
 6630 b%!16=maxy   : b%!20=b1%!20
 6640 b%!24=b1%!24 : b%!28=back
 6650 SYS openw,,b%
 6660ENDPROC
 6670
 6680DEF PROCclosewindow(handle)
 6690 bk!0=handle
 6700 SYS "Wimp_CloseWindow",0,bk
 6710 CASE handle OF
 6720  WHEN vumeter : vu_open = FALSE
 6730  WHEN keyboard  : keyboard_open=TRUE
 6740 ENDCASE
 6750ENDPROC
 6760
 6770DEF PROCreadtemplates
 6780 SYS "Wimp_OpenTemplate",,"<QuickSnd$Dir>.Templates"
 6790  credits   = FNtemplate("credits","")
 6800  vumeter   = FNtemplate("vumeter","")
 6810  saveas    = FNtemplate("saveas","")
 6820  aboutfile = FNtemplate("aboutfile","")
 6830  echow     = FNtemplate("echow","")
 6840  resamplew = FNtemplate("resamplew","")
 6850  keyboard  = FNtemplate("keyboard","")
 6860  welcome   = FNtemplate("welcome","")
 6870 SYS "Wimp_CloseTemplate"
 6880ENDPROC
 6890
 6900DEF FNtemplate(id$,t$)
 6910 LOCAL handle,pos
 6920 SYS "Wimp_LoadTemplate",,bk,remainingiconspace,iconspace+2048,-1,id$,0 TO ,,remainingiconspace,,,,pos
 6930 IF pos=0 THEN ERROR 1,"Template '"+id$+"' not found"
 6940 IF t$<>"" THEN
 6950  IF bk!56 AND 1<<8 THEN
 6960   $(bk!72)=t$
 6970   bk!80=LEN(t$)
 6980  ELSE
 6990   $(bk+72)=t$
 7000  ENDIF
 7010 ENDIF
 7020 IF id$="vumeter" bk?35=&FF
 7030 SYS "Wimp_CreateWindow",,bk TO handle
 7040=handle
 7050
 7060DEF PROCmousechange(mouse)
 7070 LOCAL b,window,icon,x,y,mx,my,mb,index,R6
 7080 x      = bk!0
 7090 y      = bk!4
 7100 b      = bk!8
 7110 window = bk!12
 7120 icon   = bk!16
 7130 PROCmouse(mx,my,mb)
 7140
 7150 IF b=1 THEN
 7160  CASE window OF
 7170   WHEN vumeter : PROCstop
 7180   WHEN keyboard  : PROCkeyboard_click
 7190  ENDCASE
 7200 ENDIF
 7210
 7220 IF b=2 THEN
 7230  CASE window OF
 7240   WHEN iconbar : PROCopen_menu("iconbar")
 7250   WHEN vumeter : PROCopen_menu("mainmenu")
 7260   WHEN resamplew
 7270    IF icon=2 THEN
 7280     PROCflash_orange
 7290     PROCopen_menu("rates")
 7300    ENDIF
 7310
 7320  ENDCASE
 7330 ENDIF
 7340
 7350 IF b=4 THEN
 7360  CASE window OF
 7370   WHEN iconbar   : PROCopen_vu
 7390   WHEN echow     : PROCecho_click
 7400   WHEN resamplew : PROCresamplew_click
 7410   WHEN vumeter   : PROCplay(&2550)
 7420   WHEN keyboard  : PROCkeyboard_click
 7430  ENDCASE
 7440 ENDIF
 7450
 7460ENDPROC
 7470
 7480
 7490DEF PROCkeyboard_click
 7500 IF icon=77 THEN
 7510  PROCdeselect(keyboard,oldkey)
 7520  oldkey=-1
 7530  autokey = NOT autokey
 7540  ENDPROC
 7550 ENDIF
 7560
 7570 IF icon>0 AND icon<49 THEN
 7580  PROCdeselect(keyboard,oldkey)
 7590  PROCselecticon(keyboard,icon)
 7600  oldkey=icon
 7610  PROCplay(pitch(icon))
 7620 ENDIF
 7630ENDPROC
 7640
 7650
 7660DEF PROCresamplew_click
 7670 LOCAL A%
 7680 CASE icon OF
 7690  WHEN 2 :
 7700   PROCflash_orange
 7710   PROCopen_menu("rates")
 7720
 7730  WHEN 3 :
 7740   PROCflash_orange
 7750   A% = VALFNindirect(resamplew,1)
 7760   IF A%<1 OR A%>255 THEN
 7770    ERROR 1,"New sample rate out of range"
 7780   ENDIF
 7790   IF lmir=148 THEN
 7800    PROCresample(A%)
 7810   ELSE
 7820    samplerate = A%
 7830    PROCclosewindow(resamplew)
 7840    PROCmodified
 7850   ENDIF
 7860
 7870  WHEN 4 :
 7880   PROCflash_orange
 7890   PROCclosewindow(resamplew)
 7900
 7910 ENDCASE
 7920ENDPROC
 7930
 7940
 7950DEF PROCflash_orange
 7960 SYS "Wimp_BorderIcon",,bk
 7970 bk!8=0
 7980 SYS "Wimp_BorderIcon",,bk
 7990ENDPROC
 8000
 8010DEF PROCecho_click
 8020 IF icon>0 AND icon<9 THEN
 8030  echo_length = icon
 8040  ENDPROC
 8050 ENDIF
 8060
 8070 CASE icon OF
 8080  WHEN 11 :
 8090   PROCflash_orange
 8100   PROCecho(echo_length)
 8110 ENDCASE
 8120ENDPROC
 8130
 8140DEF PROCopen_menu(m$)
 8150 IF m$="iconbar" THEN
 8160  SYS "MenuManager_OpenIconBarMenu",,menus,m$
 8170 ELSE
 8180  SYS "MenuManager_OpenMenu",,menus,m$
 8190 ENDIF
 8200 claimmenu$ = m$
 8210ENDPROC
 8220
 8230DEF PROCopen_vu
 8240 IF NOT sample_present ENDPROC
 8250 IF vu_open THEN
 8260  PROCfront(vumeter)
 8270 ELSE
 8280  vu_open = TRUE
 8290  PROCfront1(vumeter)
 8300 ENDIF
 8310ENDPROC
 8320
 8330DEF PROCopen_keyboard
 8340 IF keyboard_open THEN
 8350  PROCfront(keyboard)
 8360 ELSE
 8370  PROCfront1(keyboard)
 8380  keyboard_open=TRUE
 8390 ENDIF
 8400ENDPROC
 8410
 8420DEF PROCmenuselect(b)
 8430 LOCAL mx,my,mb,mir
 8440
 8450 PROCmouse(mx,my,mb)
 8460 SYS "MenuManager_DecodeMenu",,menus,claimmenu$,bk TO mir,,,,,mip
 8470
 8480 CASE mir OF
 8490
 8500  WHEN 130 : PROCsigned
 8510  WHEN 131 : PROClogtolin
 8520  WHEN 132 : PROClintolog
 8530
 8540  WHEN 147,148
 8550   IF sample_present THEN
 8560    PROCclosewindow(resamplew)
 8570    PROCsettext(resamplew,0,STR$samplerate)
 8580    PROCsettext(resamplew,1,"48")
 8590    PROCmouse(mx,my,mb)
 8600    lmir = mir
 8610    PROCwindow_title(resamplew)
 8620    PROCfront1(resamplew)
 8630   ENDIF
 8640
 8650  WHEN 149 :
 8660   IF sample_present THEN
 8670    PROCdeselect_echo
 8680    PROCselecticon(echow,4)
 8690    echo_length = 4
 8700    SYS createm,,echow,mx,my
 8710   ENDIF
 8720
 8730  WHEN 150 : PROCreverse
 8740  WHEN 151 : PROCscale
 8750  WHEN 106 : PROCopen_keyboard
 8760
 8770  WHEN 249     : PROCtoggle_vidc
 8780  WHEN 250     : PROCtoggle_leafname
 8790  WHEN 253,254 : SYS createm,,credits,mx,my
 8800  WHEN 255     : PROCmenu_quit
 8810
 8820  WHEN 300 : PROCsettext(resamplew,1,"24")
 8830  WHEN 301 : PROCsettext(resamplew,1,"34")
 8840  WHEN 302 : PROCsettext(resamplew,1,"48")
 8850  WHEN 303 : PROCsettext(resamplew,1,"96")
 8860 ENDCASE
 8870
 8880 IF mir<>253 AND mir<>254 THEN
 8890  IF mb=1 THEN
 8900   SYS "MenuManager_ReOpenMenu",,menus,claimmenu$
 8910  ENDIF
 8920 ENDIF
 8930
 8940ENDPROC
 8950
 8960DEF PROCtoggle_vidc
 8970 vidc = NOT vidc
 8980 IF vidc THEN
 8990  SYS "MenuManager_TickMenuItem",249,menus,,,,1
 9000 ELSE
 9010  SYS "MenuManager_TickMenuItem",249,menus
 9020 ENDIF
 9030ENDPROC
 9040
 9050DEF PROCtoggle_leafname
 9060 useleafname = NOT useleafname
 9070 IF useleafname THEN
 9080  SYS "MenuManager_TickMenuItem",250,menus,,,,1
 9090 ELSE
 9100  SYS "MenuManager_TickMenuItem",250,menus
 9110 ENDIF
 9120ENDPROC
 9130
 9140DEF PROCmenu_quit
 9150 IF saved PROCfinish
 9160 IF FNask("Sample not saved, Are you sure you want to quit") THEN PROCfinish
 9170ENDPROC
 9180
 9190DEF PROCscale
 9200 PROCwaitptr
 9210 A%=samplebuffer
 9220 B%=samplebuffer + samplelength
 9230 C%=127
 9240 CALL scale
 9250 PROCmodified
 9260 PROCarrowptr
 9270ENDPROC
 9280
 9290DEF PROCsigned
 9300 PROCwaitptr
 9310 A%=samplebuffer
 9320 B%=samplebuffer + samplelength
 9330 CALL convert
 9340 PROCmodified
 9350 PROCarrowptr
 9360ENDPROC
 9370
 9380DEF PROClogtolin
 9390 PROCwaitptr
 9400 A%=samplebuffer
 9410 B%=samplebuffer + samplelength
 9420 CALL logtolin
 9430 PROCmodified
 9440 PROCarrowptr
 9450ENDPROC
 9460
 9470DEF PROClintolog
 9480 PROCwaitptr
 9490 A%=samplebuffer
 9500 B%=samplebuffer + samplelength
 9510 CALL lintolog
 9520 PROCmodified
 9530 PROCarrowptr
 9540ENDPROC
 9550
 9560DEF PROCreverse
 9570 PROCwaitptr
 9580 A%=samplebuffer
 9590 B%=samplebuffer+samplelength
 9600 CALLreverse
 9610 PROCmodified
 9620 PROCarrowptr
 9630ENDPROC
 9640
 9650DEF PROCecho(x)
 9660 PROCwaitptr
 9670 LOCAL delay
 9680 delay = x*500
 9690
 9700 A%=samplebuffer
 9710 B%=samplebuffer+samplelength
 9720
 9730 IF samplelength+delay > samplebuffersize THEN
 9740  B%=samplebuffer+samplebuffersize-delay
 9750 ELSE
 9760  samplelength += delay
 9770 ENDIF
 9780
 9790 C%=delay
 9800 CALLecho
 9810 PROCmodified
 9820 PROCclosemenu
 9830 PROCarrowptr
 9840ENDPROC
 9850
 9860DEF PROCmodified
 9870 LOCAL A%
 9880 saved = FALSE
 9890 PROCsettext(aboutfile,0,"Yes")
 9900 PROCsettext(aboutfile,13,STR$samplelength)
 9910 PROCwindow_title(vumeter)
 9920 A%=1E6 DIV samplerate
 9930 PROCsettext(aboutfile,3,STR$A%+"Hz "+STR$samplerate+"uS")
 9940ENDPROC
 9950
 9960DEF PROCsaved
 9970 saved = TRUE
 9980 PROCsettext(aboutfile,0,"No")
 9990 PROCwindow_title(vumeter)
10000ENDPROC
10010
10020DEF PROCdrongo(message$)
10030 bk!0=0
10040 $(bk+4)=message$
10050 SYS "Wimp_ReportError",bk,%0000001,progtitle$
10060ENDPROC
10070
10080DEF PROCfinish
10090 SYS "Sound_AttachVoice",1,voice1
10100 SYS "Sound_RemoveVoice",,voiceid
10110 SYS "OS_Module",7,,code
10120 SYS "Wimp_ReleaseInterface",task_handle%
10130 SYS "Wimp_CloseDown"
10140 END
10150ENDPROC
10160
10170DEF FNicon_iconbar
10180 LOCAL handle
10190 bk!0=-1
10200 bk!4=0
10210 bk!8=-16
10220 bk!12=80
10230 bk!16=88
10240 bk!20=&1700303A
10250 $(bk+24)="!quicksnd"
10260 SYS createi,,bk TO handle
10270=handle
10280
10290DEF PROCmouse(RETURN x,RETURN y,RETURN b)
10300 SYS gptri,,mbk
10310 x=mbk!0
10320 y=mbk!4
10330 b=mbk!8
10340ENDPROC
10350
10360DEF FNgetleafname(fsp$)
10370 pos=LEN(fsp$)
10380 WHILE MID$(fsp$,pos,1)<>"." AND pos>0
10390  pos-=1
10400 ENDWHILE
10410=MID$(fsp$,pos+1)
10420
10430DEF FNstrnullterm(addr)
10440 LOCAL a$
10450 WHILE ?addr
10460  a$+=CHR$(?addr)
10470  addr+=1
10480 ENDWHILE
10490=a$
10500
10510DEF FNask(ask$)
10520 IF playing PROCstop
10530
10540 LOCAL R1
10550 bk!0=0
10560 $(bk+4)=ask$
10570 SYS "Wimp_ReportError",bk,%0010011,"Message from "+progtitle$ TO ,R1
10580IF R1=1 =TRUE ELSE =FALSE
10590
10600DEF PROCclosemenu
10610 SYS createm,,-1
10620ENDPROC
10630
10640DEF PROCstrnullterm(addr,fsp$)
10650 $addr=fsp$
10660 addr?LENfsp$=0
10670ENDPROC
10680
10690DEF FNindirect(w,i)
10700 bk!0 = w
10710 bk!4 = i
10720 SYS getis,,bk
10730=$(bk!28)
10740
10750DEF FNreadvar(name$)
10760 LOCAL R2
10770 SYS "XOS_ReadVarVal",name$,bk,&100,0,0 TO ,,R2
10780 bk?R2=&0D
10790=$bk
10800
10810DEF PROCfront1(w)
10820 LOCAL xpix,ypix,xmul,ymul,x,y,q
10830 PROCread_screensize
10840 bk!0=w
10850 SYS getwi,,bk
10860 x=(xpix/2)-((bk!52)/2)
10870 q=ABS(bk!48)
10880 y=(ypix/2)-q/2
10890 bk!4=x
10900 bk!8=y
10910 bk!12=x+bk!52
10920 bk!16=y+q
10930 bk!28=-1
10940 SYS openw,,bk
10950ENDPROC
10960
10970DEF PROCread_screensize
10980 SYS "OS_ReadModeVariable",-1,11 TO ,,xpix  : xpix+=1
10990 SYS "OS_ReadModeVariable",-1,12 TO ,,ypix  : ypix+=1
11000 SYS "OS_ReadModeVariable",-1,4 TO ,,xmul
11010 SYS "OS_ReadModeVariable",-1,5 TO ,,ymul
11020 xpix = xpix <<xmul
11030 ypix = ypix <<ymul
11040ENDPROC
11050
11060DEF PROCkeypressed(window,icon,key)
11070 LOCAL index,A%
11080
11090 IF window=resamplew AND key=return THEN
11100  A% = VALFNindirect(resamplew,1)
11110  IF A%<1 OR A%>255 THEN
11120   ERROR 1,"New sample rate out of range"
11130  ENDIF
11140  IF lmir=148 THEN
11150   PROCresample(A%)
11160  ELSE
11170   samplerate = A%
11180   PROCclosewindow(resamplew)
11190   PROCmodified
11200  ENDIF
11210 ENDIF
11220
11280ENDPROC
11290
11300DEF PROCassemble
11310FOR pass=0 TO 2 STEP 2
11320P%=code
11330[OPT pass
11340
11350
11360.clearvalue    EQUD     &77777777
11370.wavename      EQUS     "wave"
11380               EQUB     &00
11390               ALIGN
11400
11410.draw          STMFD    R13!,{R0-R12,R14}
11420               SWI      "Wimp_BaseOfSprites"
11430               MOV      R0,#&118
11440               ADR      R2,wavename
11450               SWI      "OS_SpriteOp"
11460               LDR      R0,[R2,#32]
11470               ADD      R10,R0,R2
11480               MOV      R8,R10
11490               MOV      R9,#&10
11500               LDR      R0,clearvalue
11510               MOV      R1,R0
11520               MOV      R2,R0
11530               MOV      R3,R0
11540               MOV      R4,R0
11550               MOV      R5,R0
11560               MOV      R6,R0
11570               MOV      R7,R0
11580
11590.drawcloop     STMIA    R8!,{R0-R7}
11600               STMIA    R8!,{R0-R7}
11610               STMIA    R8!,{R0-R7}
11620               STMIA    R8!,{R0-R7}
11630               SUBS     R9,R9,#&01
11640               BNE      drawcloop
11650
11660               LDR      R9,upto
11670               LDR      R11,waveend
11680               MOV      R1,#&00
11690               MOV      R6,#&00
11700
11710.drawloop      LDRB     R0,[R9],#&01
11720               CMP      R9,R11
11730               SUBEQ    R9,R9,#&01
11740
11750               EOR      R0,R0,#&80
11760               MOV      R0,R0,LSR #&03
11770               MOV      R5,R0,LSL #&06
11780               ADD      R5,R5,R10
11790               ADD      R5,R5,R6
11800               STRB     R1,[R5]
11810               ADD      R6,R6,#&01
11820               CMP      R6,#&40
11830               BNE      drawloop
11840
11850               LDMFD    R13!,{R0-R12,R14}
11860               MOV      PC,R14
11870
11880
11890
11900.clearmemory   MOV      R2,#&00
11910.clearloop     STR      R2,[R0],#&04
11920               CMP      R0,R1
11930               BLE      clearloop
11940
11950               MOV      PC,R14
11960
11970.voicebase
11980               B        fill
11990               B        fill
12000               B        gateon
12010               B        gateoff
12020               B        instance
12030               LDMFD    R13!,{PC}
12040               LDMFD    R13!,{PC}
12050               EQUD     voicename-voicebase
12060
12070.voicename     EQUS     "QuickSnd"
12080               EQUB     &00
12090               ALIGN
12100
12110.logscale      EQUD     &00
12120.lintolog      EQUD     &00
12130.wavebase      EQUD     &00
12140.length        EQUD     &00
12150.waveend       EQUD     &00
12160.finished      EQUD     &00
12170.upto          EQUD     &00
12180.forcekill     EQUD     &00
12190
12200.instance      STMFD    R13!,{R0-R4}
12210               MOV      R0,#&00
12220               MOV      R1,#&00
12230               MOV      R2,#&00
12240               MOV      R3,#&00
12250               MOV      R4,#&00
12260               SWI      "Sound_Configure"
12270               LDR      R0,[R3,#&08]
12280               STR      R0,lintolog
12290               LDR      R0,[R3,#&0C]
12300               STR      R0,logscale
12310               LDMFD    R13!,{R0-R4,PC}
12320
12330.gateon        LDR      R0,wavebase
12340               STR      R0,[R9,#16]
12350               LDR      R1,length
12360               ADD      R0,R0,R1
12370               STR      R0,[R9,#12]
12380               STR      R0,waveend
12390               LDR      R0,logscale
12400               STR      R0,[R9,#20]
12410               MOV      R0,#&00
12420               STR      R0,[R9,#24]
12430               LDR      R0,lintolog
12440               STR      R0,[R9,#28]
12450               MOV      R0,#&00
12460               STR      R0,finished
12470               STR      R0,forcekill
12480
12490.fill          LDMIA    R9,{R1-R8}
12500               AND      R1,R1,#&7F
12510               LDRB     R1,[R6,R1,LSL #&01]
12520               MOV      R1,R1,LSR #&01
12530               RSB      R1,R1,#127
12540
12550.fillloop      FNfill
12560               FNfill
12570               FNfill
12580               FNfill
12590
12600               CMP      R12,R10
12610               BLT      fillloop
12620
12630               STMIB    R9,{R2-R8}
12640               LDR      R0,forcekill
12650               CMP      R0,#&00
12660               BNE      kill
12670
12680               CMP      R7,#&01
12690               BEQ      kill
12700
12710               STR      R3,upto
12720               MOV      R0,#&08
12730               LDMFD    R13!,{PC}
12740
12750.kill          MOV      R0,#&02
12760               STR      R0,finished
12770               LDMFD    R13!,{PC}
12780
12790.gateoff       MOV      R0,#&00
12800
12810.flushloop     STRB     R0,[R12],R11
12820               STRB     R0,[R12],R11
12830               STRB     R0,[R12],R11
12840               STRB     R0,[R12],R11
12850               CMP      R12,R10
12860               BLT      flushloop
12870
12880               MOV      R0,#%00000001
12890               LDMFD    R13!,{PC}
12900
12910
12920.echo          STMFD    R13!,{R0-R12,R14}
12930.echoloop      LDRB     R5,[R0]
12940               EOR      R5,R5,#&80
12950               LDRB     R6,[R0,R2]
12960               EOR      R6,R6,#&80
12970               ADD      R4,R5,R6
12980               MOV      R4,R4,LSR #1
12990               EOR      R4,R4,#&80
13000               STRB     R4,[R0,R2]
13010               ADD      R0,R0,#1
13020               CMP      R0,R1
13030               BLE      echoloop
13040
13050               LDMFD    R13!,{R0-R12,R14}
13060               MOV      PC,R14
13070
13080.reverse       STMFD    R13!,{R0-R12,R14}
13090.reverseloop   LDRB     R5,[R0]
13100               LDRB     R6,[R1]
13110               STRB     R5,[R1],#-1
13120               STRB     R6,[R0],#1
13130               CMP      R0,R1
13140               BLT      reverseloop
13150
13160               LDMFD    R13!,{R0-R12,R14}
13170               MOV      PC,R14
13180
13190.convert       STMFD    R13!, {R0-R12,R14}
13200.convertloop   LDRB     R2,[R0]
13210               EOR      R2,R2,#&80
13220               STRB     R2,[R0],#1
13230               CMP      R0,R1
13240               BLE      convertloop
13250               LDMFD    R13!, {R0-R12,R14}
13260               MOV      PC,R14
13270
13280
13290.scaletableptr EQUD     scaletable
13300.scale         STMFD    R13!,{R0-R12,R14}
13310               LDR      R12,scaletableptr
13320
13330               STMFD    R13!,{R0}
13340               MOV      R4,#500
13350               MVN      R5,#500
13360
13370.findmaxloop   LDRB     R3,[R0],#1
13380               MOV      R3,R3,LSL #24
13390               MOV      R3,R3,ASR #24
13400               CMP      R3,R5
13410               MOVGT    R5,R3
13420               CMP      R3,R4
13430               MOVLT    R4,R3
13440               CMP      R0,R1
13450               BLE      findmaxloop
13460
13470               LDMFD    R13!,{R0}
13480               RSB      R4,R4,#0
13490               CMP      R5,R4
13500               MOVGT    R4,R5
13510
13520               CMP      R4,#0
13530               BEQ      outscale
13540
13550.createdivtable
13560
13570       MVN      R6, #127
13580       MOV      R8, #0
13590
13600.createdivtableloop
13610
13620       MUL      R7, R2, R6
13630       FNdiv(9,7,4)
13640       STRB     R9, [R12, R8]
13650       ADD      R6, R6, #1
13660       ADD      R8, R8, #1
13670       CMP      R8, #255
13680       BLE      createdivtableloop
13690
13700.scaleloop
13710       LDRB     R2, [R0]
13720       EOR      R2, R2, #&80
13730       LDRB     R2, [R12, R2]
13740       STRB     R2, [R0], #1
13750       CMP      R0, R1
13760       BLE      scaleloop
13770
13780.outscale
13790       LDMFD    R13!,{R0-R12,R14}
13800       MOV      PC,R14
13810
13820
13830
13840
13850.logtolintableptr EQUD logtolintable
13860
13870.logtolin
13880
13890       STMFD    R13!,{R0-R12,R14}
13900       LDR      R3,logtolintableptr
13910
13920.logtolinloop
13930       LDRB     R2, [R0]
13940       LDRB     R2, [R3, R2]
13950       STRB     R2, [R0], #1
13960       CMP      R0, R1
13970       BLE      logtolinloop
13980
13990       LDMFD    R13!, {R0-R12, R14}
14000       MOV     PC,R14
14010
14020
14030
14040
14050.lintologtableptr EQUD lintologtable
14060.lintolog
14070       STMFD    R13!, {R0-R12,R14}
14080       LDR      R3, lintologtableptr
14090
14100.lintologloop
14110       LDRB     R2, [R0]
14120       LDRB     R2, [R3, R2]
14130       STRB     R2, [R0], #1
14140       CMP      R0, R1
14150       BLE      lintologloop
14160
14170       LDMFD    R13!, {R0-R12,R14}
14180       MOV PC,R14
14190
14200
14210
14220
14230.resample      STMFD    R13!,{R0-R12,R14}
14240
14250               MOV      R12,R2
14260               CMP      R12,#&10000
14270               MOV      R2,#0
14280               BLT      resampleloop2
14290               BEQ      endresample
14300
14310               MOV      R3,R0
14320
14330.resampleloop1 ADDS     R2,R2,R12
14340               ADDCS    R0,R0,#&10000
14350               ADD      R5,R0,R2,LSR #16
14360               CMP      R5,R1
14370               BGT      endresample
14380
14390               LDRB     R4,[R5]
14400               STRB     R4,[R3],#1
14410               B        resampleloop1
14420
14430.resampleloop2 ADDS     R2,R2,R12
14440               SUBCS    R1,R1,#&10000
14450               LDRB     R4,[R1,-R2,LSR #16]
14460               STRB     R4,[R3],#-1
14470               CMP      R3,R0
14480               BGE      resampleloop2
14490
14500.endresample   LDMFD    R13!,{R0-R12,R14}
14510               MOV      PC,R14
14520
14530
14540]NEXT
14550ENDPROC
14560
14570
14580DEF FNfill
14590[OPT pass
14600
14610               ADDS     R2,R2,R2,LSL #16
14620               ADDCS    R5,R5,#&100
14630               ADD      R3,R5,R2,LSR #24
14640               CMP      R3,R4
14650               MOVGT    R3,R4
14660               MOVGT    R7,#&01
14670               LDRB     R0,[R3]
14680               LDRB     R0,[R8,R0,LSL #5]
14690               SUBS     R0,R0,R1,LSL #&01
14700               MOVMI    R0,#&00
14710               STRB     R0,[R12],R11
14720]
14730=""
14740
14750
14760DEF FNdiv(quotient,number,divisor)
14770remain = 0
14780place  = 1
14790dsign  = 2
14800msign  = 3
14810
14820[ OPT pass
14830
14840       STMFD    R13!, {remain,place,dsign,msign,number,divisor}
14850
14860       ANDS     msign, number, #1<<31
14870       RSBMI    number, number, #0
14880       EOR      dsign, msign, divisor
14890       CMP      divisor, #0
14900       RSBMI    divisor, divisor, #0
14910
14920       MOV      remain, #0
14930       MOV      quotient, #0
14940       MOV      place, #1<<31
14950
14960.DivisionLoop
14970       MOVS     number, number, ASL #1
14980       ADC      remain, remain, remain
14990       CMP      remain, divisor
15000       SUBGE    remain, remain, divisor
15010       ORRGE    quotient, quotient, place
15020       MOVS     place, place, LSR #1
15030       BNE      DivisionLoop
15040
15050       CMP      dsign, #0
15060       RSBMI    quotient, quotient, #0
15070
15080       LDMFD    R13!, {remain,place,dsign,msign,number,divisor}
15090]
15100=""
15110
15120
15130
15140
15150
15160DEF PROCfront(window)
15170 bk!0=window
15180 SYS getws,,bk
15190 bk!28=-1
15200 SYS openw,,bk
15210ENDPROC
15220
15230DEF PROCsetspriteicon(w,i,s$)
15240 bk!0=w
15250 bk!4=i
15260 SYS getis,,bk
15270 bk!256=w
15280 bk!260=i
15290 SYS deletei,,bk+256
15300 $(bk+28)=s$
15310 bk!4=w
15320 SYS createi,,bk+4
15330ENDPROC
15340
15350DEF FNdate_time
15360 LOCAL R1,R2,R3
15370 SYS "OS_File",5,fsp$ TO ,,R2,R3
15380 datetime_buffer!0 = R3
15390 datetime_buffer?4 = R2 AND &FF
15400 SYS "OS_ConvertDateAndTime",datetime_buffer,result_buffer,64,format$ TO ,R1,R2
15410 ?R1=13
15420=$result_buffer
15430
15440DEF PROCwindow_title(window)
15450
15460 LOCAL a$
15470
15480 CASE window OF
15490  WHEN vumeter :
15500   a$=name$
15510   IF NOT saved THEN
15520    a$+=" *"
15530   ENDIF
15540  WHEN resamplew :
15550   CASE lmir OF
15560    WHEN 148 : a$="Resample Current Sample"
15570    WHEN 147 : a$="Change replayrate"
15580   ENDCASE
15590 ENDCASE
15600
15610 bk!0=window
15620 SYS getwi,,bk
15630 IF bk!60 AND 1<<8 THEN $(bk!76)=a$ ELSE $(bk+76)=a$
15640 bk!0=window
15650 SYS getws,,bk
15660 IF bk!32 AND 1<<16 THEN
15670  SYS forcerd,-1,bk!4,bk!16+4,bk!12,bk!16+40
15680 ENDIF
15690ENDPROC
15700
15710DEF PROCsetup_swinames
15720 LOCAL a
15730 SYS "OS_SWINumberFromString",,"OS_SWINumberFromString" TO a
15740 SYS a,,"Wimp_RedrawWindow"     TO redraww
15750 SYS a,,"Wimp_GetRectangle"     TO getrect
15760 SYS a,,"Wimp_BorderWindow"     TO borderw
15770 SYS a,,"Wimp_GetWindowState"   TO getws
15780 SYS a,,"Wimp_GetWindowInfo"    TO getwi
15790 SYS a,,"Wimp_OpenWindow"       TO openw
15800 SYS a,,"Wimp_CloseWindow"      TO closew
15810 SYS a,,"Wimp_SetCaretPosition" TO setc
15820 SYS a,,"Wimp_Poll"             TO poll
15830 SYS a,,"Wimp_GetIconState"     TO getis
15840 SYS a,,"Wimp_SetIconState"     TO setis
15850 SYS a,,"Wimp_SendMessage"      TO sendm
15860 SYS a,,"Wimp_GetPointerInfo"   TO gptri
15870 SYS a,,"Wimp_PollPointer"      TO pollptr
15880 SYS a,,"Wimp_CreateIcon"       TO createi
15890 SYS a,,"Wimp_DeleteIcon"       TO deletei
15900 SYS a,,"Wimp_ForceRedraw"      TO forcerd
15910 SYS a,,"Wimp_CreateSubMenu"    TO createsm
15920 SYS a,,"Wimp_CreateMenu"       TO createm
15930ENDPROC
15940
15950DEF PROCscrinfo(RETURN width, RETURN height)
15960 bk!0  = 4  :
15970 bk!4  = 5  :
15980 bk!8  = 11 :
15990 bk!12 = 12 :
16000 bk!16 = -1 :
16010 SYS "OS_ReadVduVariables",bk, bk
16020 width  = (1<<(bk!0))*((bk!8)+1)
16030 height = (1<<(bk!4))*((bk!12)+1)
16040ENDPROC
16050
16060DEF PROCdragicon(x,y,handle,icon)
16070 LOCAL x0,y0,ix0,iy0,ix1,iy1,scrwidth,scrheight
16080
16090 PROCscrinfo(scrwidth,scrheight)
16100
16110 bk!0=handle:SYS "Wimp_GetWindowState",0,bk
16120 x0=bk!4:y0=bk!16
16130 bk!0=handle:bk!4=icon:SYS "Wimp_GetIconState",0,bk
16140 ix0=bk!8:iy0=bk!12:ix1=bk!16:iy1=bk!20
16150
16160 bk!0  = handle
16170 bk!4  = 5
16180 bk!8  = x0+ix0
16190 bk!12 = y0+iy0
16200 bk!16 = x0+ix1
16210 bk!20 = y0+iy1
16220 bk!24 = 0
16230 bk!28 = 0
16240 bk!32 = scrwidth
16250 bk!36 = scrheight
16260 claimdragbox=handle
16270
16280 SYS "Wimp_DragBox",0,bk
16290ENDPROC
16300
16310DEF PROCcheckfull(fsp$)
16320 IF INSTR(fsp$,".") OR INSTR(fsp$,":") THEN ENDPROC
16330 ERROR 1,"To save, drag the file icon to a directory viewer."
16340ENDPROC
16350
16360DEF FNcheckfull(fsp$)
16370 IF INSTR(fsp$,".") OR INSTR(fsp$,":") THEN = TRUE
16380=FALSE
16390
16400DEF PROCselecticon(h%,i%)
16410 bk!0  = h%
16420 bk!4  = i%
16430 bk!8  = &200000
16440 bk!12 = &200000
16450 SYS setis,,bk
16460ENDPROC
16470
16480DEF PROCdeselect(h%,i%)
16490 bk!0  = h%
16500 bk!4  = i%
16510 bk!8  = 0
16520 bk!12 = &200000
16530 SYS setis,,bk
16540ENDPROC
16550
16560DEF PROCwaitptr
16570 SYS "Hourglass_On"
16580ENDPROC
16590
16600DEF PROCarrowptr
16610 SYS "Hourglass_Off"
16620ENDPROC
16630
16640DEF PROCresample(newrate)
16650 LOCAL phaseacc,newsize,mess$
16660 LOCAL A%,B%,C%,D%
16670
16680 IF playing PROCstop
16690
16700 IF newrate = samplerate THEN
16710  ERROR 1,"New samplerate must be different from orginal samplerate"
16720 ENDIF
16730
16740 phaseacc = INT((newrate/samplerate)/(1/&10000))
16750 newsize  = INT(samplelength*(&10000/phaseacc))
16760
16770 IF newsize>samplebuffersize THEN
16780  ERROR 1,"You do not have enough memory to resample the data at this rate"
16790 ENDIF
16800
16810 PROCwaitptr
16820
16830 A% = samplebuffer
16840 B% = samplebuffer+samplelength
16850 C% = phaseacc
16860 D% = samplebuffer+newsize
16870 CALL resample
16880
16890 samplerate   = newrate
16900 samplelength = newsize
16910
16920 !wavebase    = samplebuffer
16930 !length      = newsize
16940
16950 PROCarrowptr
16960 PROCclosewindow(resamplew)
16970 PROCmodified
16980
16990ENDPROC
17000
17010DEF FNfiletype(fsp$)
17020 LOCAL type
17030 SYS "XOS_File",5,fsp$ TO type
17040=type

 � > <QuickSnd$Dir>.!RunImage

� *****************
(� *               *
2� * QuickSnd Demo *
<� *               *
F� *****************
P
Zversion$ = "1.02 06/08/92"
d
n$� ******************************
x$� *                            *
�$� * � Software by Bright Ideas *
�$� *                            *
�$� * Desktop Projets LTD        *
�$� * Unit 2A                    *
�$� * Heapriding Business Park   *
�$� * Ford Street                *
�$� * Stockport                  *
�$� * Cheshire                   *
�$� * SK3 0BT                    *
�$� *                            *
�$� * Tel: 061 474 0778          *
�$� * Fax: 061 474 0781          *
�$� *                            *
$� ******************************

�setup_swinames
"
, progtitle$ = "QuickSnd Demo"
6
@Aș "Wimp_Initialise",200,&4B534154,progtitle$ � ,task_handle%
J)ș "Wimp_ClaimInterface",task_handle%
T�waitptr
^
h� hierarchy 200
r� bk 4096,iconspace 4096
|� mbk 20
�� datetime_buffer 8
�� result_buffer 64
�� pitch(99)
�
�'format$ = "%24:%MI:%SE %DY/%MN/%YR"
�
�� menus 4*1024
�Mș "MenuManager_InstallMenus",0,"<QuickSnd$Dir>.Menus",menus,menus+4*1024
�
�8samplebuffersize = ��readvar("MaxSampleSize") * 1024
�8ș "XOS_Module",6,,,samplebuffersize � ,,code ;flags
�
�� (flags � 1) =1 �
& �drongo("Unable to claim memoey")
, ș "Wimp_ReleaseInterface",task_handle%
 ș "Wimp_CloseDown"
& �
0�
:
Dsamplebuffer = code + 8192
Nsamplebuffersize -= 8192
X
b(ș "Sound_Configure" � ,,orgsamprate
l
v	�init
�
�� scaletable 256
�
�� logtolintable 256
�3�("LOAD <QuickSnd$Dir>.table "+�~logtolintable)
�
�� lintologtable 256
�4�("LOAD <QuickSnd$Dir>.table1 "+�~lintologtable)
�
�
�assemble
�2ș "Sound_InstallVoice",voicebase,0 � ,voiceid
�(ș "Sound_AttachVoice",1,0 � ,voice1
�#ș "Sound_AttachVoice",1,voice1

A%=samplebuffer
&B%=samplebuffer + samplebuffersize
 � clearmemory
*
4
�arrowptr
>
H�
R � � � �error
\ �action(�poll)
f� �
p�
z
�� �error
� ș "Hourglass_Smash"
� � �=1 �drongo(�$):�
�= � � �ask(�$+" at line "+Þ+". Do you want to quit?") � �
� �finish
��
�
�� �poll
� bk!0=mask
� ș poll,,bk � a
�=a
�
�� �action(evnt)
 Ȏ evnt �
%  � null_reason_code      : �null
3  � redraw_window_request : �redrawwindow(bk!0)
$3  � open_window_request   : �openwindow(bk!0,�)
.2  � close_window_request  : �closewindow(bk!0)
80  � mouse_button_change   : �mousechange(bk)
B<  � key_pressed           : �keypressed(bk!0,bk!4,bk!24)
L/  � menu_select           : �menuselect(bk)
V/  � user_message          : �receivemessage
`/  � user_message_recorded : �receivemessage
j �
t�
~
�
�� �redrawwindow(handle)
� � more
� bk!0=handle
� ș redraww,,bk � more
�
� ȕ more
�  Ȏ handle �
�:   � credits,echow,resamplew,keyboard : ș borderw,,bk
�  �
�
�  ș getrect,,bk � more
 �


�

(
2� �null
< � awaitingack �
F  awaitingack = �
P-  � 1,"Bad Data Transfer, Receiver Dead."
Z �
d
n � !finished=2 �
x  ș "Sound_Configure"
�  Ȗ:Ȗ
�  �stop
� �
�
� � playing �
�  �draw
�  �redraw_icon(vumeter,0)
� �
�
� � autokey �check_keyboard
�
�# � welcome_open �remove_welcome
�
�


"� �check_keyboard
, � i
6 ș gptri,,mbk
@
 i=mbk!16
J � mbk!12 <> keyboard � �
T � i>0 � i<49 � i<>oldkey �
^   �deselect(keyboard,oldkey)
h  �selecticon(keyboard,i)
r  �play(pitch(i))
|  oldkey=i
� �
��
�
�
�� �remove_welcome
� � rmasprites
�" ș "OS_ReadMonotonicTime" � q
� � q>remove_welcome �
�  welcome_open=�
�  �closewindow(welcome)
�  q=bk+1024
�  q!0=welcome
�  ș "Wimp_DeleteWindow",,q
+  ș "Wimp_BaseOfSprites" � ,rmasprites
3  ș "OS_SpriteOp",&119,rmasprites,"dtpwelcome"
 �
&�
0
:� �show_start
D !upto = samplebuffer
N
 �draw
X �redraw_icon(vumeter,0)
b�
l
v� �redraw_icon(w,i)
� bk!0=w
� bk!4=i
� ș getis,,bk
�. ș forcerd,vumeter,bk!8,bk!12,bk!16,bk!20
��
�
�� �settext(w,i,a$)
�
 bk!0 = w
�
 bk!4 = i
� ș getis,,bk
� $(bk!28)=a$
� bk!8=0
� bk!12=0
 ș setis,,bk
�

 � �init
* � q
4# remainingiconspace = iconspace
> null_reason_code = 0
H redraw_window_request = 1
R open_window_request = 2
\ close_window_request = 3
f mouse_button_change = 6
p key_pressed = 8
z menu_select = 9
� user_message = 17
� user_message_recorded = 18
� user_message_ack = 19
� message_quit = 0
� message_datasave = 1
� message_datasaveack = 2
� message_dataload = 3
� message_dataloadack = 4
� message_dataopen = 5
� message_prequit = 8
�! message_menuwarning = &400C0
� scrapref = -1
� awaitingack = �
	 claimmenu = -1
	 claimdragbox  = �
	 claimdragbox$ = ""
	$
 mask = 0
	. iconbar = -2
	8 sound_icon = �icon_iconbar
	B scrapref = -1
	L return = 13
	V �readtemplates
	`! �settext(credits,3,version$)
	j armadeus = &D3C
	t sndsynth = &DF9
	~ tracker  = &CB5
	� data = &FFD
	� vu_open = �
	� keyboard_open=�
	� playing = �
	� saved = �
	� samplerate = 48
	� save_type = 0
	� �deselect_echo
	� �selecticon(echow,4)
	� echo_length = 4
	� sample_present = �
	� useleafname = �
 name$ = "<Untitled>"


 vidc = �
 �setup_pitchs
 oldkey=-1
( autokey=�
2 �deselect(keyboard,77)
< welcome_open=�
F �front1(welcome)
P" ș "OS_ReadMonotonicTime" � q
Z remove_welcome = q+300
d�
n
x
�� �setup_pitchs
�
 � p,c
� c=1
� � �dzJ
� � p
� �
�  pitch(c) = p
�
  c+=1
�	  � p
�
 � p=0
��
�
�� &1000    :REM C
� &12AA
� &1555
� &16AA
"� &1955
,� &1C00
6� &1EAA
@
J� &2000    :REM C
T� &22AA
^� &2555
h� &26AA
r� &2955
|� &2C00
�� &2EAA
�
�� &3000    :REM C
�� &32AA
�� &3555
�� &36AA
�� &3955
�� &3C00
�� &3EAA
�
�� &4000    :REM C
�� &42AA
�� &4555
� &46AA
� &4955
� &4C00
&� &4EAA
0
:� &1155    :REM C#
D� &1400
N� &1800
X� &1AAA
b� &1D55
l
v� &2155    :REM C#
�� &2400
�� &2800
�� &2AAA
�� &2D55
�
�� &3155    :REM C#
�� &3400
�� &3800
�� &3AAA
�� &3D55
�
�� &4155    :REM C#
�� &4400

� &4800

� &4AAA

� &4D55

 

*� 0

4

>

H

R� �receivemessage

\ ref     = bk!8

f task    = bk!4

p yourref = bk!12

z. � task = task_handle% � awaitingack = �:�

�

� Ȏ bk!16 �

�"  � message_quit     : �finish

�,  � message_dataload : �message_dataload

�%  � message_dataopen : �data_open

�-  � message_dataloadack : awaitingack = �

�+  � message_menuwarning : �menu_warning

�-  � message_prequit     : �prequit_checks

� �

�

��

�

�
� �data_open

 fsp$=�strnullterm(bk+44)
$ ftype = bk!40
.
8/ � � �-1 � �getleafname(fsp$)="!QuickSnd" �
B
  �ack
L  �
V �
`
j8 � ftype=armadeus � ftype=sndsynth � ftype=tracker �
t  � � saved �
~3   � � �ask("Sample not saved, Load another") �
�    �ack
�	    �
�   �
�  �
�
�  Ȏ bk!40 �
�   � armadeus :
�    �load_armadeus
�    �ack
�
�   � sndsynth :
�    �ack
    �load_sndsynth


   � tracker  :
    �ack
(    �load_tracker
2
<  �
F �
P
Z�
d
n
x� �prequit_checks
� � saved �
�B � �ask("Sample not saved, Are you sure you want to quit") � �
�	 �ack
��
�
�
�� �message_dataload
�( � offset,window,icon,a,b,fsp$,ftype
�
� window = bk!20
� icon   = bk!24
�! fsp$   = �strnullterm(bk+44)
� a      = bk!4
 b      = bk!8
 ftype  = bk!40

" � �check_saved �
,  Ȏ ftype �
6"   � armadeus : �load_armadeus
@"   � sndsynth : �load_sndsynth
J!   � tracker  : �load_tracker
T   � data     : �load_data
^  �
h �
r
|1 � yourref=scrapref � � "Delete <Wimp$Scrap>"
� bk!0=20
� bk!4=a
� bk!8=b
� bk!12=ref
� bk!16=message_dataloadack
� ș sendm,17,bk,task
��
�
�
�� �check_saved
�E � ftype=armadeus � ftype=sndsynth � ftype=tracker � ftype=data �
�  � saved � =�
�3  � �ask("Sample not saved, Load another") � =�
 �
=�

&
0� �load_data
:	 � X%
D
N � playing �stop
X
b �clearmemory
l
v X% = �(fsp$)
� samplelength = �#X%
� samplerate = 48
�2 ș "OS_GBPB",3,X%,samplebuffer,samplelength,1
�
 � #X%
�
�' �aboutfile("Data","file_ffd",&FFD)
�
� name$ = �getleafname(fsp$)
�
� !wavebase  = samplebuffer
� !length    = samplelength
� � !finished = 2
�
 sample_present = �
 �show_start

 �open_vu
  �saved
*�
4
>
H� �load_armadeus
R
 � X%,a,b
\
f � playing �stop
p
z X% = �(fsp$)
�
 a = �#X%
� � a<10 a = 10
� b = �#X%-1
� � b > samplebuffersize �
�  � #X%
�f  �drongo("You do not have enough memory to load this sample, Increase samplesize in '!Run' file")
�  �
� �
�
� samplerate = a
� samplelength = b
� �clearmemory
�2 ș "OS_GBPB",3,X%,samplebuffer,samplelength,1

 � #X%

+ �aboutfile("Armadeus","file_d3c",&D3C)
$
. name$ = �getleafname(fsp$)
8
B !wavebase  = samplebuffer
L !length    = samplelength
V � !finished = 2
`
j sample_present = �
t �show_start
~
 �open_vu
� �saved
��
�
�
�� �load_tracker
�	 � X%
�
� � playing �stop
�
� �clearmemory
�
� X% = �(fsp$)
 samplelength = �#X%

2 ș "OS_GBPB",3,X%,samplebuffer,samplelength,0

 � #X%

( samplerate = 34
2
<* �aboutfile("Tracker","file_cb5",&CB5)
F
P name$ = �getleafname(fsp$)
Z
d !wavebase = samplebuffer
n !length   = samplelength
x � !finished = 2
�
� �logtolin
� sample_present = �
� �show_start
�
 �open_vu
� �saved
��
�
�� �aboutfile(i$,s$,ft)
�	 � A%
�# �setspriteicon(aboutfile,5,s$)
�- �settext(aboutfile,2,�getleafname(fsp$))
�& �settext(aboutfile,1,i$+" "+�~ft)
) �settext(aboutfile,13,�samplelength)
% �settext(aboutfile,4,�date_time)
 A%=1E6 � samplerate
"5 �settext(aboutfile,3,�A%+"Hz "+�samplerate+"uS")
,�
6
@
J� �play(x)
T ș "Sound_Configure",1
^3 ș "Sound_AttachVoice",1,voiceid � ,oldvoiceid
h
r
 � vidc �
|+  ș "Sound_Configure",,,samplerate*1.5
� �
�'  ș "Sound_Configure",,,samplerate
� �
�
� Ȗ
� � 1,&17F,x,1
� playing = �
� Ȗ
��
�
�
�� �stop
� � � playing �
 !forcekill=1
 � � !finished=2

 Ȗ:Ȗ
&$ ș "Sound_AttachVoice",1,voice1
0
 Ȗ:Ȗ
:' ș "Sound_Configure",,,orgsamprate
D
 Ȗ:Ȗ
N playing = �
X !finished = 0
b �deselect(keyboard,oldkey)
l oldkey=-1
v�
�
�
�� �load_sndsynth
�	 � X%
�
� � playing �stop
� �clearmemory
�
� X% = �(fsp$)
� samplelength = �#X%-544
�4 ș "OS_GBPB",3,X%,samplebuffer,samplelength,544
�
 � #X%
�
 samplerate = 48

+ �aboutfile("SndSynth","file_df9",&DF9)
 
* name$ = �getleafname(fsp$)
4
> !wavebase = samplebuffer
H !length   = samplelength
R � !finished = 2
\
f sample_present = �
p �show_start
z
 �open_vu
� �saved
�
�
��
�
�+ �aboutfile("Armadeus","file_d3c",&D3C)
�* �aboutfile("Tracker","file_cb5",&CB5)
�+ �aboutfile("SndSynth","file_df9",&DF9)
�
�� �menu_warning
� � mir,mip,mox,moy
�D ș "MenuManager_MenuWarning",,menus,claimmenu$,bk � mir,,,,,mip
� mox = bk!24
 moy = bk!28


 Ȏ mir �
$  � 100 : �save_box
.  � 101 : �save_box
8  � 102 : �save_box
B  � 103 : �save_box
L  � 104 : �save_box
V  � 105 : �save_box
`
j0  � 252 : ș createsm,,aboutfile,bk!24,bk!28
t.  � 253 : ș createsm,,credits,bk!24,bk!28
~.  � 254 : ș createsm,,credits,bk!24,bk!28
� �
��
�
�� �save_box
�  ș createsm,,saveas,mox,moy
��
�
�� �deselect_echo
� � x
� � x=1 � 8
�  �deselect(echow,x)
� �
�



� �ack
 !bk   = 20
( bk!12 = ref
2 bk!16 = 4
< ș sendm,17,bk
F�
P
Z� �openwindow(w,full)
d bk!0=w
n# � � full � bk!0=w:ș getws,,bk
x ș openw,,bk
��
�
�2� �opencoords(handle,minx,miny,maxx,maxy,back)
�
 � b%,b1%
�
 b%=bk+32
� b1%=bk+64
� !b1%=handle
� ș getws,,b1%
� b%!0=handle  : b%!4=minx
� b%!8=miny    : b%!12=maxx
�  b%!16=maxy   : b%!20=b1%!20
� b%!24=b1%!24 : b%!28=back
� ș openw,,b%
�

� �closewindow(handle)
" bk!0=handle
, ș "Wimp_CloseWindow",0,bk
6 Ȏ handle �
@  � vumeter : vu_open = �
J#  � keyboard  : keyboard_open=�
T �
^�
h
r� �readtemplates
|7 ș "Wimp_OpenTemplate",,"<QuickSnd$Dir>.Templates"
�)  credits   = �template("credits","")
�)  vumeter   = �template("vumeter","")
�(  saveas    = �template("saveas","")
�+  aboutfile = �template("aboutfile","")
�'  echow     = �template("echow","")
�+  resamplew = �template("resamplew","")
�*  keyboard  = �template("keyboard","")
�)  welcome   = �template("welcome","")
� ș "Wimp_CloseTemplate"
��
�
�� �template(id$,t$)
� � handle,pos
h ș "Wimp_LoadTemplate",,bk,remainingiconspace,iconspace+2048,-1,id$,0 � ,,remainingiconspace,,,,pos
1 � pos=0 � � 1,"Template '"+id$+"' not found"
 � t$<>"" �
&  � bk!56 � 1<<8 �
0   $(bk!72)=t$
:   bk!80=�(t$)
D  �
N   $(bk+72)=t$
X  �
b �
l � id$="vumeter" bk?35=&FF
v( ș "Wimp_CreateWindow",,bk � handle
�=handle
�
�� �mousechange(mouse)
�* � b,window,icon,x,y,mx,my,mb,index,R6
� x      = bk!0
� y      = bk!4
� b      = bk!8
� window = bk!12
� icon   = bk!16
� �mouse(mx,my,mb)
�
� � b=1 �
�  Ȏ window �
   � vumeter : �stop
$   � keyboard  : �keyboard_click
  �
  �
*
4 � b=2 �
>  Ȏ window �
H(   � iconbar : �open_menu("iconbar")
R)   � vumeter : �open_menu("mainmenu")
\   � resamplew
f    � icon=2 �
p     �flash_orange
z     �open_menu("rates")
�	    �
�
�  �
� �
�
� � b=4 �
�  Ȏ window �
�   � iconbar   : �open_vu
�    � echow     : �echo_click
�%   � resamplew : �resamplew_click
�!   � vumeter   : �play(&2550)
�$   � keyboard  : �keyboard_click
  �
 �

$�
.
8
B� �keyboard_click
L � icon=77 �
V   �deselect(keyboard,oldkey)
`  oldkey=-1
j  autokey = � autokey
t  �
~ �
�
� � icon>0 � icon<49 �
�   �deselect(keyboard,oldkey)
�   �selecticon(keyboard,icon)
�  oldkey=icon
�  �play(pitch(icon))
� �
��
�
�
�� �resamplew_click
�	 � A%
 Ȏ icon �

  � 2 :
   �flash_orange
   �open_menu("rates")
(
2  � 3 :
<   �flash_orange
F#   A% = ��indirect(resamplew,1)
P   � A%<1 � A%>255 �
Z*    � 1,"New sample rate out of range"
d   �
n   � lmir=148 �
x    �resample(A%)
�   �
�    samplerate = A%
�    �closewindow(resamplew)
�    �modified
�   �
�
�  � 4 :
�   �flash_orange
�   �closewindow(resamplew)
�
� �
��
�

� �flash_orange
 ș "Wimp_BorderIcon",,bk
" bk!8=0
, ș "Wimp_BorderIcon",,bk
6�
@
J� �echo_click
T � icon>0 � icon<9 �
^  echo_length = icon
h  �
r �
|
� Ȏ icon �
�  � 11 :
�   �flash_orange
�   �echo(echo_length)
� �
��
�
�� �open_menu(m$)
� � m$="iconbar" �
�0  ș "MenuManager_OpenIconBarMenu",,menus,m$
� �
�)  ș "MenuManager_OpenMenu",,menus,m$
� �
  claimmenu$ = m$
 �
 
 &� �open_vu
 0 � � sample_present �
 : � vu_open �
 D  �front(vumeter)
 N �
 X  vu_open = �
 b  �front1(vumeter)
 l �
 v�
 �
 �� �open_keyboard
 � � keyboard_open �
 �  �front(keyboard)
 � �
 �  �front1(keyboard)
 �  keyboard_open=�
 � �
 ��
 �
 �� �menuselect(b)
 � � mx,my,mb,mir
 �
! �mouse(mx,my,mb)
!C ș "MenuManager_DecodeMenu",,menus,claimmenu$,bk � mir,,,,,mip
!
! 
 Ȏ mir �
!*
!4  � 130 : �signed
!>  � 131 : �logtolin
!H  � 132 : �lintolog
!R
!\  � 147,148
!f   � sample_present �
!p    �closewindow(resamplew)
!z)    �settext(resamplew,0,�samplerate)
!�"    �settext(resamplew,1,"48")
!�    �mouse(mx,my,mb)
!�    lmir = mir
!�     �window_title(resamplew)
!�    �front1(resamplew)
!�   �
!�
!�
  � 149 :
!�   � sample_present �
!�    �deselect_echo
!�    �selecticon(echow,4)
!�    echo_length = 4
!�    ș createm,,echow,mx,my
"   �
"
"  � 150 : �reverse
"$  � 151 : �scale
".  � 106 : �open_keyboard
"8
"B  � 249     : �toggle_vidc
"L"  � 250     : �toggle_leafname
"V+  � 253,254 : ș createm,,credits,mx,my
"`  � 255     : �menu_quit
"j
"t(  � 300 : �settext(resamplew,1,"24")
"~(  � 301 : �settext(resamplew,1,"34")
"�(  � 302 : �settext(resamplew,1,"48")
"�(  � 303 : �settext(resamplew,1,"96")
"� �
"�
"� � mir<>253 � mir<>254 �
"�  � mb=1 �
"�4   ș "MenuManager_ReOpenMenu",,menus,claimmenu$
"�  �
"� �
"�
"��
"�
#� �toggle_vidc
#
 vidc = � vidc
#
 � vidc �
#2  ș "MenuManager_TickMenuItem",249,menus,,,,1
#( �
#2-  ș "MenuManager_TickMenuItem",249,menus
#< �
#F�
#P
#Z� �toggle_leafname
#d  useleafname = � useleafname
#n � useleafname �
#x2  ș "MenuManager_TickMenuItem",250,menus,,,,1
#� �
#�-  ș "MenuManager_TickMenuItem",250,menus
#� �
#��
#�
#�� �menu_quit
#� � saved �finish
#�H � �ask("Sample not saved, Are you sure you want to quit") � �finish
#��
#�
#�� �scale
#�
 �waitptr
#� A%=samplebuffer
$# B%=samplebuffer + samplelength
$ C%=127
$ � scale
$" �modified
$, �arrowptr
$6�
$@
$J
� �signed
$T
 �waitptr
$^ A%=samplebuffer
$h# B%=samplebuffer + samplelength
$r � convert
$| �modified
$� �arrowptr
$��
$�
$�� �logtolin
$�
 �waitptr
$� A%=samplebuffer
$�# B%=samplebuffer + samplelength
$� � logtolin
$� �modified
$� �arrowptr
$��
$�
$�� �lintolog
%
 �waitptr
% A%=samplebuffer
%# B%=samplebuffer + samplelength
%& � lintolog
%0 �modified
%: �arrowptr
%D�
%N
%X� �reverse
%b
 �waitptr
%l A%=samplebuffer
%v! B%=samplebuffer+samplelength
%�
 �reverse
%� �modified
%� �arrowptr
%��
%�
%�� �echo(x)
%�
 �waitptr
%� � delay
%� delay = x*500
%�
%� A%=samplebuffer
%�! B%=samplebuffer+samplelength
%�
&. � samplelength+delay > samplebuffersize �
&,  B%=samplebuffer+samplebuffersize-delay
& �
&   samplelength += delay
&* �
&4
&>
 C%=delay
&H
 �echo
&R �modified
&\ �closemenu
&f �arrowptr
&p�
&z
&�� �modified
&�	 � A%
&� saved = �
&�  �settext(aboutfile,0,"Yes")
&�) �settext(aboutfile,13,�samplelength)
&� �window_title(vumeter)
&� A%=1E6 � samplerate
&�5 �settext(aboutfile,3,�A%+"Hz "+�samplerate+"uS")
&��
&�
&�� �saved
&� saved = �
&� �settext(aboutfile,0,"No")
' �window_title(vumeter)
'�
'
'$� �drongo(message$)
'. bk!0=0
'8 $(bk+4)=message$
'B1 ș "Wimp_ReportError",bk,%0000001,progtitle$
'L�
'V
'`
� �finish
'j$ ș "Sound_AttachVoice",1,voice1
't$ ș "Sound_RemoveVoice",,voiceid
'~ ș "OS_Module",7,,code
'�, ș "Wimp_ReleaseInterface",task_handle%
'� ș "Wimp_CloseDown"
'� �
'��
'�
'�� �icon_iconbar
'�
 � handle
'� bk!0=-1
'� bk!4=0
'�
 bk!8=-16
'�
 bk!12=80
'�
 bk!16=88
( bk!20=&1700303A
(
 $(bk+24)="!quicksnd"
( ș createi,,bk � handle
(=handle
((
(2� �mouse(� x,� y,� b)
(< ș gptri,,mbk
(F x=mbk!0
(P y=mbk!4
(Z b=mbk!8
(d�
(n
(x� �getleafname(fsp$)
(� pos=�(fsp$)
(�! ȕ �fsp$,pos,1)<>"." � pos>0
(�  pos-=1
(� �
(�=�fsp$,pos+1)
(�
(�� �strnullterm(addr)
(�	 � a$
(�
 ȕ ?addr
(�  a$+=�(?addr)
(�
  addr+=1
(� �
(�=a$
)
)� �ask(ask$)
) � playing �stop
)"
),	 � R1
)6 bk!0=0
)@ $(bk+4)=ask$
)JG ș "Wimp_ReportError",bk,%0010011,"Message from "+progtitle$ � ,R1
)T� R1=1 =� � =�
)^
)h� �closemenu
)r ș createm,,-1
)|�
)�
)�� �strnullterm(addr,fsp$)
)� $addr=fsp$
)� addr?�fsp$=0
)��
)�
)�� �indirect(w,i)
)�
 bk!0 = w
)�
 bk!4 = i
)� ș getis,,bk
)�
=$(bk!28)
)�
)�� �readvar(name$)
*	 � R2
*1 ș "XOS_ReadVarVal",name$,bk,&100,0,0 � ,,R2
* bk?R2=&0D
*&=$bk
*0
*:� �front1(w)
*D  � xpix,ypix,xmul,ymul,x,y,q
*N �read_screensize
*X bk!0=w
*b ș getwi,,bk
*l x=(xpix/2)-((bk!52)/2)
*v q=�(bk!48)
*� y=(ypix/2)-q/2
*� bk!4=x
*� bk!8=y
*� bk!12=x+bk!52
*� bk!16=y+q
*�
 bk!28=-1
*� ș openw,,bk
*��
*�
*�� �read_screensize
*�7 ș "OS_ReadModeVariable",-1,11 � ,,xpix  : xpix+=1
*�7 ș "OS_ReadModeVariable",-1,12 � ,,ypix  : ypix+=1
*�+ ș "OS_ReadModeVariable",-1,4 � ,,xmul
++ ș "OS_ReadModeVariable",-1,5 � ,,ymul
+ xpix = xpix <<xmul
+ ypix = ypix <<ymul
+ �
+*
+4"� �keypressed(window,icon,key)
+> � index,A%
+H
+R& � window=resamplew � key=return �
+\"  A% = ��indirect(resamplew,1)
+f  � A%<1 � A%>255 �
+p)   � 1,"New sample rate out of range"
+z  �
+�  � lmir=148 �
+�   �resample(A%)
+�  �
+�   samplerate = A%
+�   �closewindow(resamplew)
+�   �modified
+�  �
+� �
+�
,�
,
,$� �assemble
,.� pass=0 � 2 � 2
,8P%=code
,B
[OPT pass
,L
,V
,`%.clearvalue    EQUD     &77777777
,j".wavename      EQUS     "wave"
,t               EQUB     &00
,~               ALIGN
,�
,�-.draw          STMFD    R13!,{R0-R12,R14}
,�0               SWI      "Wimp_BaseOfSprites"
,�$               MOV      R0,#&118
,�'               ADR      R2,wavename
,�)               SWI      "OS_SpriteOp"
,�'               LDR      R0,[R2,#32]
,�%               ADD      R10,R0,R2
,�"               MOV      R8,R10
,�#               MOV      R9,#&10
,�)               LDR      R0,clearvalue
,�!               MOV      R1,R0
-!               MOV      R2,R0
-
!               MOV      R3,R0
-!               MOV      R4,R0
-!               MOV      R5,R0
-(!               MOV      R6,R0
-2!               MOV      R7,R0
-<
-F'.drawcloop     STMIA    R8!,{R0-R7}
-P'               STMIA    R8!,{R0-R7}
-Z'               STMIA    R8!,{R0-R7}
-d'               STMIA    R8!,{R0-R7}
-n&               SUBS     R9,R9,#&01
-x%               BNE      drawcloop
-�
-�#               LDR      R9,upto
-�'               LDR      R11,waveend
-�#               MOV      R1,#&00
-�#               MOV      R6,#&00
-�
-�(.drawloop      LDRB     R0,[R9],#&01
-�"               CMP      R9,R11
-�&               SUBEQ    R9,R9,#&01
-�
-�$               �      R0,R0,#&80
-�*               MOV      R0,R0,LSR #&03
-�*               MOV      R5,R0,LSL #&06
.%               ADD      R5,R5,R10
.$               ADD      R5,R5,R6
.#               STRB     R1,[R5]
."&               ADD      R6,R6,#&01
.,#               CMP      R6,#&40
.6$               BNE      drawloop
.@
.J-               LDMFD    R13!,{R0-R12,R14}
.T"               MOV      PC,R14
.^
.h
.r
.|#.clearmemory   MOV      R2,#&00
.�(.clearloop     STR      R2,[R0],#&04
.�!               CMP      R0,R1
.�%               BLE      clearloop
.�
.�"               MOV      PC,R14
.�
.�.voicebase
.�                B        fill
.�                B        fill
.�"               B        gateon
.�#               B        gateoff
.�$               B        instance
.�%               LDMFD    R13!,{PC}
/%               LDMFD    R13!,{PC}
//               EQUD     voicename-voicebase
/
/&&.voicename     EQUS     "QuickSnd"
/0               EQUB     &00
/:               ALIGN
/D
/N.logscale      EQUD     &00
/X.lintolog      EQUD     &00
/b.wavebase      EQUD     &00
/l.length        EQUD     &00
/v.waveend       EQUD     &00
/�.finished      EQUD     &00
/�.upto          EQUD     &00
/�.forcekill     EQUD     &00
/�
/�(.instance      STMFD    R13!,{R0-R4}
/�#               MOV      R0,#&00
/�#               MOV      R1,#&00
/�#               MOV      R2,#&00
/�#               MOV      R3,#&00
/�#               MOV      R4,#&00
/�-               SWI      "Sound_Configure"
/�(               LDR      R0,[R3,#&08]
/�'               STR      R0,lintolog
0(               LDR      R0,[R3,#&0C]
0'               STR      R0,logscale
0+               LDMFD    R13!,{R0-R4,PC}
0 
0*'.gateon        LDR      R0,wavebase
04'               STR      R0,[R9,#16]
0>%               LDR      R1,length
0H$               ADD      R0,R0,R1
0R'               STR      R0,[R9,#12]
0\&               STR      R0,waveend
0f'               LDR      R0,logscale
0p'               STR      R0,[R9,#20]
0z#               MOV      R0,#&00
0�'               STR      R0,[R9,#24]
0�'               LDR      R0,lintolog
0�'               STR      R0,[R9,#28]
0�#               MOV      R0,#&00
0�'               STR      R0,finished
0�(               STR      R0,forcekill
0�
0�&.fill          LDMIA    R9,{R1-R8}
0�$               �      R1,R1,#&7F
0�/               LDRB     R1,[R6,R1,LSL #&01]
0�*               MOV      R1,R1,LSR #&01
0�&               RSB      R1,R1,#127
0�
1.fillloop      �fill
1               �fill
1               �fill
1$               �fill
1.
18#               CMP      R12,R10
1B$               BLT      fillloop
1L
1V&               STMIB    R9,{R2-R8}
1`(               LDR      R0,forcekill
1j#               CMP      R0,#&00
1t                BNE      kill
1~
1�#               CMP      R7,#&01
1�                BEQ      kill
1�
1�#               STR      R3,upto
1�#               MOV      R0,#&08
1�%               LDMFD    R13!,{PC}
1�
1�#.kill          MOV      R0,#&02
1�'               STR      R0,finished
1�%               LDMFD    R13!,{PC}
1�
1�#.gateoff       MOV      R0,#&00
2
2
(.flushloop     STRB     R0,[R12],R11
2(               STRB     R0,[R12],R11
2(               STRB     R0,[R12],R11
2((               STRB     R0,[R12],R11
22#               CMP      R12,R10
2<%               BLT      flushloop
2F
2P)               MOV      R0,#%00000001
2Z%               LDMFD    R13!,{PC}
2d
2n
2x-.echo          STMFD    R13!,{R0-R12,R14}
2�#.echoloop      LDRB     R5,[R0]
2�$               �      R5,R5,#&80
2�&               LDRB     R6,[R0,R2]
2�$               �      R6,R6,#&80
2�$               ADD      R4,R5,R6
2�(               MOV      R4,R4,LSR #1
2�$               �      R4,R4,#&80
2�&               STRB     R4,[R0,R2]
2�$               ADD      R0,R0,#1
2�!               CMP      R0,R1
2�$               BLE      echoloop
2�
2�-               LDMFD    R13!,{R0-R12,R14}
3"               MOV      PC,R14
3
3-.reverse       STMFD    R13!,{R0-R12,R14}
3"#.reverseloop   LDRB     R5,[R0]
3,#               LDRB     R6,[R1]
36'               STRB     R5,[R1],#-1
3@&               STRB     R6,[R0],#1
3J!               CMP      R0,R1
3T'               BLT      reverseloop
3^
3h-               LDMFD    R13!,{R0-R12,R14}
3r"               MOV      PC,R14
3|
3�..convert       STMFD    R13!, {R0-R12,R14}
3�#.convertloop   LDRB     R2,[R0]
3�$               �      R2,R2,#&80
3�&               STRB     R2,[R0],#1
3�!               CMP      R0,R1
3�'               BLE      convertloop
3�.               LDMFD    R13!, {R0-R12,R14}
3�"               MOV      PC,R14
3�
3�
3�&.scaletableptr EQUD     scaletable
3�-.scale         STMFD    R13!,{R0-R12,R14}
3�-               LDR      R12,scaletableptr
4
4%               STMFD    R13!,{R0}
4#               MOV      R4,#500
4&#               MVN      R5,#500
40
4:&.findmaxloop   LDRB     R3,[R0],#1
4D)               MOV      R3,R3,LSL #24
4N)               MOV      R3,R3,ASR #24
4X!               CMP      R3,R5
4b!               MOVGT    R5,R3
4l!               CMP      R3,R4
4v!               MOVLT    R4,R3
4�!               CMP      R0,R1
4�'               BLE      findmaxloop
4�
4�%               LDMFD    R13!,{R0}
4�$               RSB      R4,R4,#0
4�!               CMP      R5,R4
4�!               MOVGT    R4,R5
4�
4�!               CMP      R4,#0
4�$               BEQ      outscale
4�
4�.createdivtable
4�
5       MVN      R6, #127
5       MOV      R8, #0
5
5 .createdivtableloop
5*
54       MUL      R7, R2, R6
5>       �div(9,7,4)
5H!       STRB     R9, [R12, R8]
5R       ADD      R6, R6, #1
5\       ADD      R8, R8, #1
5f       CMP      R8, #255
5p&       BLE      createdivtableloop
5z
5�.scaleloop
5�       LDRB     R2, [R0]
5�       �      R2, R2, #&80
5�!       LDRB     R2, [R12, R2]
5�        STRB     R2, [R0], #1
5�       CMP      R0, R1
5�       BLE      scaleloop
5�
5�
.outscale
5�%       LDMFD    R13!,{R0-R12,R14}
5�       MOV      PC,R14
5�
5�
6
6
6(.logtolintableptr EQUD logtolintable
6$
6.
.logtolin
68
6B%       STMFD    R13!,{R0-R12,R14}
6L'       LDR      R3,logtolintableptr
6V
6`.logtolinloop
6j       LDRB     R2, [R0]
6t        LDRB     R2, [R3, R2]
6~        STRB     R2, [R0], #1
6�       CMP      R0, R1
6�        BLE      logtolinloop
6�
6�'       LDMFD    R13!, {R0-R12, R14}
6�       MOV     PC,R14
6�
6�
6�
6�
6�(.lintologtableptr EQUD lintologtable
6�
.lintolog
6�&       STMFD    R13!, {R0-R12,R14}
7(       LDR      R3, lintologtableptr
7

7.lintologloop
7       LDRB     R2, [R0]
7(        LDRB     R2, [R3, R2]
72        STRB     R2, [R0], #1
7<       CMP      R0, R1
7F        BLE      lintologloop
7P
7Z&       LDMFD    R13!, {R0-R12,R14}
7d       MOV PC,R14
7n
7x
7�
7�
7�-.resample      STMFD    R13!,{R0-R12,R14}
7�
7�"               MOV      R12,R2
7�'               CMP      R12,#&10000
7�!               MOV      R2,#0
7�)               BLT      resampleloop2
7�'               BEQ      endresample
7�
7�!               MOV      R3,R0
7�
7�%.resampleloop1 ADDS     R2,R2,R12
8)               ADDCS    R0,R0,#&10000
8,               ADD      R5,R0,R2,LSR #16
8!               CMP      R5,R1
8"'               BGT      endresample
8,
86#               LDRB     R4,[R5]
8@&               STRB     R4,[R3],#1
8J)               B        resampleloop1
8T
8^%.resampleloop2 ADDS     R2,R2,R12
8h)               SUBCS    R1,R1,#&10000
8r/               LDRB     R4,[R1,-R2,LSR #16]
8|'               STRB     R4,[R3],#-1
8�!               CMP      R3,R0
8�)               BGE      resampleloop2
8�
8�-.endresample   LDMFD    R13!,{R0-R12,R14}
8�"               MOV      PC,R14
8�
8�
8�]�
8��
8�
8�
8�� �fill
8�
[OPT pass
9
9,               ADDS     R2,R2,R2,LSL #16
9'               ADDCS    R5,R5,#&100
9&,               ADD      R3,R5,R2,LSR #24
90!               CMP      R3,R4
9:!               MOVGT    R3,R4
9D#               MOVGT    R7,#&01
9N#               LDRB     R0,[R3]
9X-               LDRB     R0,[R8,R0,LSL #5]
9b-               SUBS     R0,R0,R1,LSL #&01
9l#               MOVMI    R0,#&00
9v(               STRB     R0,[R12],R11
9�]
9�=""
9�
9�
9�#� �div(quotient,number,divisor)
9�remain = 0
9�place  = 1
9�dsign  = 2
9�msign  = 3
9�
9�[ OPT pass
9�
9�C       STMFD    R13!, {remain,place,dsign,msign,number,divisor}
:
:'       �S     msign, number, #1<<31
:&       RSBMI    number, number, #0
: '       �      dsign, msign, divisor
:*       CMP      divisor, #0
:4(       RSBMI    divisor, divisor, #0
:>
:H       MOV      remain, #0
:R        MOV      quotient, #0
:\!       MOV      place, #1<<31
:f
:p.DivisionLoop
:z*       MOVS     number, number, ASL #1
:�*       ADC      remain, remain, remain
:�#       CMP      remain, divisor
:�+       SUBGE    remain, remain, divisor
:�,       �RGE    quotient, quotient, place
:�(       MOVS     place, place, LSR #1
:�        BNE      DivisionLoop
:�
:�       CMP      dsign, #0
:�*       RSBMI    quotient, quotient, #0
:�
:�C       LDMFD    R13!, {remain,place,dsign,msign,number,divisor}
:�]
:�=""
;
;
;
;$
;.
;8� �front(window)
;B bk!0=window
;L ș getws,,bk
;V
 bk!28=-1
;` ș openw,,bk
;j�
;t
;~� �setspriteicon(w,i,s$)
;� bk!0=w
;� bk!4=i
;� ș getis,,bk
;�
 bk!256=w
;�
 bk!260=i
;� ș deletei,,bk+256
;� $(bk+28)=s$
;� bk!4=w
;� ș createi,,bk+4
;��
;�
;�� �date_time
< � R1,R2,R3
<
" ș "OS_File",5,fsp$ � ,,R2,R3
< datetime_buffer!0 = R3
<! datetime_buffer?4 = R2 � &FF
<(Q ș "OS_ConvertDateAndTime",datetime_buffer,result_buffer,64,format$ � ,R1,R2
<2 ?R1=13
<<=$result_buffer
<F
<P� �window_title(window)
<Z
<d	 � a$
<n
<x Ȏ window �
<�  � vumeter :
<�   a$=name$
<�   � � saved �
<�    a$+=" *"
<�   �
<�  � resamplew :
<�   Ȏ lmir �
<�,    � 148 : a$="Resample Current Sample"
<�&    � 147 : a$="Change replayrate"
<�   �
<� �
<�
<� bk!0=window
= ș getwi,,bk
=/ � bk!60 � 1<<8 � $(bk!76)=a$ � $(bk+76)=a$
= bk!0=window
=" ș getws,,bk
=, � bk!32 � 1<<16 �
=6/  ș forcerd,-1,bk!4,bk!16+4,bk!12,bk!16+40
=@ �
=J�
=T
=^� �setup_swinames
=h � a
=r> ș "OS_SWINumberFromString",,"OS_SWINumberFromString" � a
=|, ș a,,"Wimp_RedrawWindow"     � redraww
=�, ș a,,"Wimp_GetRectangle"     � getrect
=�, ș a,,"Wimp_BorderWindow"     � borderw
=�* ș a,,"Wimp_GetWindowState"   � getws
=�* ș a,,"Wimp_GetWindowInfo"    � getwi
=�* ș a,,"Wimp_OpenWindow"       � openw
=�+ ș a,,"Wimp_CloseWindow"      � closew
=�) ș a,,"Wimp_SetCaretPosition" � setc
=�) ș a,,"Wimp_Poll"             � poll
=�* ș a,,"Wimp_GetIconState"     � getis
=�* ș a,,"Wimp_SetIconState"     � setis
=�* ș a,,"Wimp_SendMessage"      � sendm
=�* ș a,,"Wimp_GetPointerInfo"   � gptri
=�, ș a,,"Wimp_PollPointer"      � pollptr
>, ș a,,"Wimp_CreateIcon"       � createi
>, ș a,,"Wimp_DeleteIcon"       � deletei
>, ș a,,"Wimp_ForceRedraw"      � forcerd
>&- ș a,,"Wimp_CreateSubMenu"    � createsm
>0, ș a,,"Wimp_CreateMenu"       � createm
>:�
>D
>N!� �scrinfo(� width, � height)
>X bk!0  = 4  :
>b bk!4  = 5  :
>l bk!8  = 11 :
>v bk!12 = 12 :
>� bk!16 = -1 :
>�$ ș "OS_ReadVduVariables",bk, bk
>�$ width  = (1<<(bk!0))*((bk!8)+1)
>�% height = (1<<(bk!4))*((bk!12)+1)
>��
>�
>� � �dragicon(x,y,handle,icon)
>�/ � x0,y0,ix0,iy0,ix1,iy1,scrwidth,scrheight
>�
>�! �scrinfo(scrwidth,scrheight)
>�
>�. bk!0=handle:ș "Wimp_GetWindowState",0,bk
>� x0=bk!4:y0=bk!16
?6 bk!0=handle:bk!4=icon:ș "Wimp_GetIconState",0,bk
?+ ix0=bk!8:iy0=bk!12:ix1=bk!16:iy1=bk!20
?
?  bk!0  = handle
?* bk!4  = 5
?4 bk!8  = x0+ix0
?> bk!12 = y0+iy0
?H bk!16 = x0+ix1
?R bk!20 = y0+iy1
?\ bk!24 = 0
?f bk!28 = 0
?p bk!32 = scrwidth
?z bk!36 = scrheight
?� claimdragbox=handle
?�
?� ș "Wimp_DragBox",0,bk
?��
?�
?�� �checkfull(fsp$)
?�" � �fsp$,".") � �fsp$,":") � �
?�= � 1,"To save, drag the file icon to a directory viewer."
?��
?�
?�� �checkfull(fsp$)
?�$ � �fsp$,".") � �fsp$,":") � = �
?�=�
@
@� �selecticon(h%,i%)
@ bk!0  = h%
@$ bk!4  = i%
@. bk!8  = &200000
@8 bk!12 = &200000
@B ș setis,,bk
@L�
@V
@`� �deselect(h%,i%)
@j bk!0  = h%
@t bk!4  = i%
@~ bk!8  = 0
@� bk!12 = &200000
@� ș setis,,bk
@��
@�
@�� �waitptr
@� ș "Hourglass_On"
@��
@�
@�� �arrowptr
@� ș "Hourglass_Off"
@��
@�
A� �resample(newrate)
A
 � phaseacc,newsize,mess$
A � A%,B%,C%,D%
A
A( � playing �stop
A2
A< � newrate = samplerate �
AFD  � 1,"New samplerate must be different from orginal samplerate"
AP �
AZ
Ad2 phaseacc = �((newrate/samplerate)/(1/&10000))
An1 newsize  = �(samplelength*(&10000/phaseacc))
Ax
A�! � newsize>samplebuffersize �
A�K  � 1,"You do not have enough memory to resample the data at this rate"
A� �
A�
A�
 �waitptr
A�
A� A% = samplebuffer
A�# B% = samplebuffer+samplelength
A� C% = phaseacc
A� D% = samplebuffer+newsize
A� � resample
A�
A� samplerate   = newrate
B samplelength = newsize
B
B  !wavebase    = samplebuffer
B" !length      = newsize
B,
B6 �arrowptr
B@ �closewindow(resamplew)
BJ �modified
BT
B^�
Bh
Br� �filetype(fsp$)
B| � type
B�  ș "XOS_File",5,fsp$ � type
B�	=type
�
00000000  0d 00 0a 20 f4 20 3e 20  3c 51 75 69 63 6b 53 6e  |... . > <QuickSn|
00000010  64 24 44 69 72 3e 2e 21  52 75 6e 49 6d 61 67 65  |d$Dir>.!RunImage|
00000020  0d 00 14 04 0d 00 1e 17  f4 20 2a 2a 2a 2a 2a 2a  |......... ******|
00000030  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 0d 00 28 17 f4  |***********..(..|
00000040  20 2a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | *              |
00000050  20 2a 0d 00 32 17 f4 20  2a 20 51 75 69 63 6b 53  | *..2.. * QuickS|
00000060  6e 64 20 44 65 6d 6f 20  2a 0d 00 3c 17 f4 20 2a  |nd Demo *..<.. *|
00000070  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 2a  |               *|
00000080  0d 00 46 17 f4 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |..F.. **********|
00000090  2a 2a 2a 2a 2a 2a 2a 0d  00 50 04 0d 00 5a 1e 76  |*******..P...Z.v|
000000a0  65 72 73 69 6f 6e 24 20  3d 20 22 31 2e 30 32 20  |ersion$ = "1.02 |
000000b0  30 36 2f 30 38 2f 39 32  22 0d 00 64 04 0d 00 6e  |06/08/92"..d...n|
000000c0  24 f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |$. *************|
000000d0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000000e0  2a 0d 00 78 24 f4 20 2a  20 20 20 20 20 20 20 20  |*..x$. *        |
000000f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000100  20 20 20 20 2a 0d 00 82  24 f4 20 2a 20 a9 20 53  |    *...$. * . S|
00000110  6f 66 74 77 61 72 65 20  62 79 20 42 72 69 67 68  |oftware by Brigh|
00000120  74 20 49 64 65 61 73 20  2a 0d 00 8c 24 f4 20 2a  |t Ideas *...$. *|
00000130  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000140  20 20 20 20 20 20 20 20  20 20 20 20 2a 0d 00 96  |            *...|
00000150  24 f4 20 2a 20 44 65 73  6b 74 6f 70 20 50 72 6f  |$. * Desktop Pro|
00000160  6a 65 74 73 20 4c 54 44  20 20 20 20 20 20 20 20  |jets LTD        |
00000170  2a 0d 00 a0 24 f4 20 2a  20 55 6e 69 74 20 32 41  |*...$. * Unit 2A|
00000180  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000190  20 20 20 20 2a 0d 00 aa  24 f4 20 2a 20 48 65 61  |    *...$. * Hea|
000001a0  70 72 69 64 69 6e 67 20  42 75 73 69 6e 65 73 73  |priding Business|
000001b0  20 50 61 72 6b 20 20 20  2a 0d 00 b4 24 f4 20 2a  | Park   *...$. *|
000001c0  20 46 6f 72 64 20 53 74  72 65 65 74 20 20 20 20  | Ford Street    |
000001d0  20 20 20 20 20 20 20 20  20 20 20 20 2a 0d 00 be  |            *...|
000001e0  24 f4 20 2a 20 53 74 6f  63 6b 70 6f 72 74 20 20  |$. * Stockport  |
000001f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000200  2a 0d 00 c8 24 f4 20 2a  20 43 68 65 73 68 69 72  |*...$. * Cheshir|
00000210  65 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e               |
00000220  20 20 20 20 2a 0d 00 d2  24 f4 20 2a 20 53 4b 33  |    *...$. * SK3|
00000230  20 30 42 54 20 20 20 20  20 20 20 20 20 20 20 20  | 0BT            |
00000240  20 20 20 20 20 20 20 20  2a 0d 00 dc 24 f4 20 2a  |        *...$. *|
00000250  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000260  20 20 20 20 20 20 20 20  20 20 20 20 2a 0d 00 e6  |            *...|
00000270  24 f4 20 2a 20 54 65 6c  3a 20 30 36 31 20 34 37  |$. * Tel: 061 47|
00000280  34 20 30 37 37 38 20 20  20 20 20 20 20 20 20 20  |4 0778          |
00000290  2a 0d 00 f0 24 f4 20 2a  20 46 61 78 3a 20 30 36  |*...$. * Fax: 06|
000002a0  31 20 34 37 34 20 30 37  38 31 20 20 20 20 20 20  |1 474 0781      |
000002b0  20 20 20 20 2a 0d 00 fa  24 f4 20 2a 20 20 20 20  |    *...$. *    |
000002c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000002d0  20 20 20 20 20 20 20 20  2a 0d 01 04 24 f4 20 2a  |        *...$. *|
000002e0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
000002f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 0d 01 0e  |*************...|
00000300  04 0d 01 18 13 f2 73 65  74 75 70 5f 73 77 69 6e  |......setup_swin|
00000310  61 6d 65 73 0d 01 22 04  0d 01 2c 20 70 72 6f 67  |ames.."..., prog|
00000320  74 69 74 6c 65 24 20 3d  20 22 51 75 69 63 6b 53  |title$ = "QuickS|
00000330  6e 64 20 44 65 6d 6f 22  0d 01 36 04 0d 01 40 41  |nd Demo"..6...@A|
00000340  c8 99 20 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |.. "Wimp_Initial|
00000350  69 73 65 22 2c 32 30 30  2c 26 34 42 35 33 34 31  |ise",200,&4B5341|
00000360  35 34 2c 70 72 6f 67 74  69 74 6c 65 24 20 b8 20  |54,progtitle$ . |
00000370  2c 74 61 73 6b 5f 68 61  6e 64 6c 65 25 0d 01 4a  |,task_handle%..J|
00000380  29 c8 99 20 22 57 69 6d  70 5f 43 6c 61 69 6d 49  |).. "Wimp_ClaimI|
00000390  6e 74 65 72 66 61 63 65  22 2c 74 61 73 6b 5f 68  |nterface",task_h|
000003a0  61 6e 64 6c 65 25 0d 01  54 0c f2 77 61 69 74 70  |andle%..T..waitp|
000003b0  74 72 0d 01 5e 04 0d 01  68 13 de 20 68 69 65 72  |tr..^...h.. hier|
000003c0  61 72 63 68 79 20 32 30  30 0d 01 72 1c de 20 62  |archy 200..r.. b|
000003d0  6b 20 34 30 39 36 2c 69  63 6f 6e 73 70 61 63 65  |k 4096,iconspace|
000003e0  20 34 30 39 36 0d 01 7c  0c de 20 6d 62 6b 20 32  | 4096..|.. mbk 2|
000003f0  30 0d 01 86 17 de 20 64  61 74 65 74 69 6d 65 5f  |0..... datetime_|
00000400  62 75 66 66 65 72 20 38  0d 01 90 16 de 20 72 65  |buffer 8..... re|
00000410  73 75 6c 74 5f 62 75 66  66 65 72 20 36 34 0d 01  |sult_buffer 64..|
00000420  9a 0f de 20 70 69 74 63  68 28 39 39 29 0d 01 a4  |... pitch(99)...|
00000430  04 0d 01 ae 27 66 6f 72  6d 61 74 24 20 3d 20 22  |....'format$ = "|
00000440  25 32 34 3a 25 4d 49 3a  25 53 45 20 25 44 59 2f  |%24:%MI:%SE %DY/|
00000450  25 4d 4e 2f 25 59 52 22  0d 01 b8 04 0d 01 c2 12  |%MN/%YR"........|
00000460  de 20 6d 65 6e 75 73 20  34 2a 31 30 32 34 0d 01  |. menus 4*1024..|
00000470  cc 4d c8 99 20 22 4d 65  6e 75 4d 61 6e 61 67 65  |.M.. "MenuManage|
00000480  72 5f 49 6e 73 74 61 6c  6c 4d 65 6e 75 73 22 2c  |r_InstallMenus",|
00000490  30 2c 22 3c 51 75 69 63  6b 53 6e 64 24 44 69 72  |0,"<QuickSnd$Dir|
000004a0  3e 2e 4d 65 6e 75 73 22  2c 6d 65 6e 75 73 2c 6d  |>.Menus",menus,m|
000004b0  65 6e 75 73 2b 34 2a 31  30 32 34 0d 01 d6 04 0d  |enus+4*1024.....|
000004c0  01 e0 38 73 61 6d 70 6c  65 62 75 66 66 65 72 73  |..8samplebuffers|
000004d0  69 7a 65 20 3d 20 bb a4  72 65 61 64 76 61 72 28  |ize = ..readvar(|
000004e0  22 4d 61 78 53 61 6d 70  6c 65 53 69 7a 65 22 29  |"MaxSampleSize")|
000004f0  20 2a 20 31 30 32 34 0d  01 ea 38 c8 99 20 22 58  | * 1024...8.. "X|
00000500  4f 53 5f 4d 6f 64 75 6c  65 22 2c 36 2c 2c 2c 73  |OS_Module",6,,,s|
00000510  61 6d 70 6c 65 62 75 66  66 65 72 73 69 7a 65 20  |amplebuffersize |
00000520  b8 20 2c 2c 63 6f 64 65  20 3b 66 6c 61 67 73 0d  |. ,,code ;flags.|
00000530  01 f4 04 0d 01 fe 16 e7  20 28 66 6c 61 67 73 20  |........ (flags |
00000540  80 20 31 29 20 3d 31 20  8c 0d 02 08 26 20 f2 64  |. 1) =1 ....& .d|
00000550  72 6f 6e 67 6f 28 22 55  6e 61 62 6c 65 20 74 6f  |rongo("Unable to|
00000560  20 63 6c 61 69 6d 20 6d  65 6d 6f 65 79 22 29 0d  | claim memoey").|
00000570  02 12 2c 20 c8 99 20 22  57 69 6d 70 5f 52 65 6c  |.., .. "Wimp_Rel|
00000580  65 61 73 65 49 6e 74 65  72 66 61 63 65 22 2c 74  |easeInterface",t|
00000590  61 73 6b 5f 68 61 6e 64  6c 65 25 0d 02 1c 18 20  |ask_handle%.... |
000005a0  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |.. "Wimp_CloseDo|
000005b0  77 6e 22 0d 02 26 06 20  e0 0d 02 30 05 cd 0d 02  |wn"..&. ...0....|
000005c0  3a 04 0d 02 44 1e 73 61  6d 70 6c 65 62 75 66 66  |:...D.samplebuff|
000005d0  65 72 20 3d 20 63 6f 64  65 20 2b 20 38 31 39 32  |er = code + 8192|
000005e0  0d 02 4e 1c 73 61 6d 70  6c 65 62 75 66 66 65 72  |..N.samplebuffer|
000005f0  73 69 7a 65 20 2d 3d 20  38 31 39 32 0d 02 58 04  |size -= 8192..X.|
00000600  0d 02 62 28 c8 99 20 22  53 6f 75 6e 64 5f 43 6f  |..b(.. "Sound_Co|
00000610  6e 66 69 67 75 72 65 22  20 b8 20 2c 2c 6f 72 67  |nfigure" . ,,org|
00000620  73 61 6d 70 72 61 74 65  0d 02 6c 04 0d 02 76 09  |samprate..l...v.|
00000630  f2 69 6e 69 74 0d 02 80  04 0d 02 8a 14 de 20 73  |.init......... s|
00000640  63 61 6c 65 74 61 62 6c  65 20 32 35 36 0d 02 94  |caletable 256...|
00000650  04 0d 02 9e 17 de 20 6c  6f 67 74 6f 6c 69 6e 74  |...... logtolint|
00000660  61 62 6c 65 20 32 35 36  0d 02 a8 33 ff 28 22 4c  |able 256...3.("L|
00000670  4f 41 44 20 3c 51 75 69  63 6b 53 6e 64 24 44 69  |OAD <QuickSnd$Di|
00000680  72 3e 2e 74 61 62 6c 65  20 22 2b c3 7e 6c 6f 67  |r>.table "+.~log|
00000690  74 6f 6c 69 6e 74 61 62  6c 65 29 0d 02 b2 04 0d  |tolintable).....|
000006a0  02 bc 17 de 20 6c 69 6e  74 6f 6c 6f 67 74 61 62  |.... lintologtab|
000006b0  6c 65 20 32 35 36 0d 02  c6 34 ff 28 22 4c 4f 41  |le 256...4.("LOA|
000006c0  44 20 3c 51 75 69 63 6b  53 6e 64 24 44 69 72 3e  |D <QuickSnd$Dir>|
000006d0  2e 74 61 62 6c 65 31 20  22 2b c3 7e 6c 69 6e 74  |.table1 "+.~lint|
000006e0  6f 6c 6f 67 74 61 62 6c  65 29 0d 02 d0 04 0d 02  |ologtable)......|
000006f0  da 0d f2 61 73 73 65 6d  62 6c 65 0d 02 e4 32 c8  |...assemble...2.|
00000700  99 20 22 53 6f 75 6e 64  5f 49 6e 73 74 61 6c 6c  |. "Sound_Install|
00000710  56 6f 69 63 65 22 2c 76  6f 69 63 65 62 61 73 65  |Voice",voicebase|
00000720  2c 30 20 b8 20 2c 76 6f  69 63 65 69 64 0d 02 ee  |,0 . ,voiceid...|
00000730  28 c8 99 20 22 53 6f 75  6e 64 5f 41 74 74 61 63  |(.. "Sound_Attac|
00000740  68 56 6f 69 63 65 22 2c  31 2c 30 20 b8 20 2c 76  |hVoice",1,0 . ,v|
00000750  6f 69 63 65 31 0d 02 f8  23 c8 99 20 22 53 6f 75  |oice1...#.. "Sou|
00000760  6e 64 5f 41 74 74 61 63  68 56 6f 69 63 65 22 2c  |nd_AttachVoice",|
00000770  31 2c 76 6f 69 63 65 31  0d 03 02 04 0d 03 0c 13  |1,voice1........|
00000780  41 25 3d 73 61 6d 70 6c  65 62 75 66 66 65 72 0d  |A%=samplebuffer.|
00000790  03 16 26 42 25 3d 73 61  6d 70 6c 65 62 75 66 66  |..&B%=samplebuff|
000007a0  65 72 20 2b 20 73 61 6d  70 6c 65 62 75 66 66 65  |er + samplebuffe|
000007b0  72 73 69 7a 65 0d 03 20  11 d6 20 63 6c 65 61 72  |rsize.. .. clear|
000007c0  6d 65 6d 6f 72 79 0d 03  2a 04 0d 03 34 0d f2 61  |memory..*...4..a|
000007d0  72 72 6f 77 70 74 72 0d  03 3e 04 0d 03 48 05 f5  |rrowptr..>...H..|
000007e0  0d 03 52 11 20 ee 20 85  20 ea 20 f2 65 72 72 6f  |..R. . . . .erro|
000007f0  72 0d 03 5c 13 20 f2 61  63 74 69 6f 6e 28 a4 70  |r..\. .action(.p|
00000800  6f 6c 6c 29 0d 03 66 07  fd 20 a3 0d 03 70 05 e0  |oll)..f.. ...p..|
00000810  0d 03 7a 04 0d 03 84 0c  dd 20 f2 65 72 72 6f 72  |..z...... .error|
00000820  0d 03 8e 19 20 c8 99 20  22 48 6f 75 72 67 6c 61  |.... .. "Hourgla|
00000830  73 73 5f 53 6d 61 73 68  22 0d 03 98 18 20 e7 20  |ss_Smash".... . |
00000840  9f 3d 31 20 f2 64 72 6f  6e 67 6f 28 f6 24 29 3a  |.=1 .drongo(.$):|
00000850  e1 0d 03 a2 3d 20 e7 20  ac 20 a4 61 73 6b 28 f6  |....= . . .ask(.|
00000860  24 2b 22 20 61 74 20 6c  69 6e 65 20 22 2b c3 9e  |$+" at line "+..|
00000870  2b 22 2e 20 44 6f 20 79  6f 75 20 77 61 6e 74 20  |+". Do you want |
00000880  74 6f 20 71 75 69 74 3f  22 29 20 8c 20 e1 0d 03  |to quit?") . ...|
00000890  ac 0c 20 f2 66 69 6e 69  73 68 0d 03 b6 05 e1 0d  |.. .finish......|
000008a0  03 c0 04 0d 03 ca 0b dd  20 a4 70 6f 6c 6c 0d 03  |........ .poll..|
000008b0  d4 0e 20 62 6b 21 30 3d  6d 61 73 6b 0d 03 de 14  |.. bk!0=mask....|
000008c0  20 c8 99 20 70 6f 6c 6c  2c 2c 62 6b 20 b8 20 61  | .. poll,,bk . a|
000008d0  0d 03 e8 06 3d 61 0d 03  f2 04 0d 03 fc 13 dd 20  |....=a......... |
000008e0  f2 61 63 74 69 6f 6e 28  65 76 6e 74 29 0d 04 06  |.action(evnt)...|
000008f0  0e 20 c8 8e 20 65 76 6e  74 20 ca 0d 04 10 25 20  |. .. evnt ....% |
00000900  20 c9 20 6e 75 6c 6c 5f  72 65 61 73 6f 6e 5f 63  | . null_reason_c|
00000910  6f 64 65 20 20 20 20 20  20 3a 20 f2 6e 75 6c 6c  |ode      : .null|
00000920  0d 04 1a 33 20 20 c9 20  72 65 64 72 61 77 5f 77  |...3  . redraw_w|
00000930  69 6e 64 6f 77 5f 72 65  71 75 65 73 74 20 3a 20  |indow_request : |
00000940  f2 72 65 64 72 61 77 77  69 6e 64 6f 77 28 62 6b  |.redrawwindow(bk|
00000950  21 30 29 0d 04 24 33 20  20 c9 20 6f 70 65 6e 5f  |!0)..$3  . open_|
00000960  77 69 6e 64 6f 77 5f 72  65 71 75 65 73 74 20 20  |window_request  |
00000970  20 3a 20 f2 6f 70 65 6e  77 69 6e 64 6f 77 28 62  | : .openwindow(b|
00000980  6b 21 30 2c b9 29 0d 04  2e 32 20 20 c9 20 63 6c  |k!0,.)...2  . cl|
00000990  6f 73 65 5f 77 69 6e 64  6f 77 5f 72 65 71 75 65  |ose_window_reque|
000009a0  73 74 20 20 3a 20 f2 63  6c 6f 73 65 77 69 6e 64  |st  : .closewind|
000009b0  6f 77 28 62 6b 21 30 29  0d 04 38 30 20 20 c9 20  |ow(bk!0)..80  . |
000009c0  6d 6f 75 73 65 5f 62 75  74 74 6f 6e 5f 63 68 61  |mouse_button_cha|
000009d0  6e 67 65 20 20 20 3a 20  f2 6d 6f 75 73 65 63 68  |nge   : .mousech|
000009e0  61 6e 67 65 28 62 6b 29  0d 04 42 3c 20 20 c9 20  |ange(bk)..B<  . |
000009f0  6b 65 79 5f 70 72 65 73  73 65 64 20 20 20 20 20  |key_pressed     |
00000a00  20 20 20 20 20 20 3a 20  f2 6b 65 79 70 72 65 73  |      : .keypres|
00000a10  73 65 64 28 62 6b 21 30  2c 62 6b 21 34 2c 62 6b  |sed(bk!0,bk!4,bk|
00000a20  21 32 34 29 0d 04 4c 2f  20 20 c9 20 6d 65 6e 75  |!24)..L/  . menu|
00000a30  5f 73 65 6c 65 63 74 20  20 20 20 20 20 20 20 20  |_select         |
00000a40  20 20 3a 20 f2 6d 65 6e  75 73 65 6c 65 63 74 28  |  : .menuselect(|
00000a50  62 6b 29 0d 04 56 2f 20  20 c9 20 75 73 65 72 5f  |bk)..V/  . user_|
00000a60  6d 65 73 73 61 67 65 20  20 20 20 20 20 20 20 20  |message         |
00000a70  20 3a 20 f2 72 65 63 65  69 76 65 6d 65 73 73 61  | : .receivemessa|
00000a80  67 65 0d 04 60 2f 20 20  c9 20 75 73 65 72 5f 6d  |ge..`/  . user_m|
00000a90  65 73 73 61 67 65 5f 72  65 63 6f 72 64 65 64 20  |essage_recorded |
00000aa0  3a 20 f2 72 65 63 65 69  76 65 6d 65 73 73 61 67  |: .receivemessag|
00000ab0  65 0d 04 6a 06 20 cb 0d  04 74 05 e1 0d 04 7e 04  |e..j. ...t....~.|
00000ac0  0d 04 88 04 0d 04 92 1b  dd 20 f2 72 65 64 72 61  |......... .redra|
00000ad0  77 77 69 6e 64 6f 77 28  68 61 6e 64 6c 65 29 0d  |wwindow(handle).|
00000ae0  04 9c 0b 20 ea 20 6d 6f  72 65 0d 04 a6 10 20 62  |... . more.... b|
00000af0  6b 21 30 3d 68 61 6e 64  6c 65 0d 04 b0 1a 20 c8  |k!0=handle.... .|
00000b00  99 20 72 65 64 72 61 77  77 2c 2c 62 6b 20 b8 20  |. redraww,,bk . |
00000b10  6d 6f 72 65 0d 04 ba 04  0d 04 c4 0c 20 c8 95 20  |more........ .. |
00000b20  6d 6f 72 65 0d 04 ce 11  20 20 c8 8e 20 68 61 6e  |more....  .. han|
00000b30  64 6c 65 20 ca 0d 04 d8  3a 20 20 20 c9 20 63 72  |dle ....:   . cr|
00000b40  65 64 69 74 73 2c 65 63  68 6f 77 2c 72 65 73 61  |edits,echow,resa|
00000b50  6d 70 6c 65 77 2c 6b 65  79 62 6f 61 72 64 20 3a  |mplew,keyboard :|
00000b60  20 c8 99 20 62 6f 72 64  65 72 77 2c 2c 62 6b 0d  | .. borderw,,bk.|
00000b70  04 e2 07 20 20 cb 0d 04  ec 04 0d 04 f6 1b 20 20  |...  .........  |
00000b80  c8 99 20 67 65 74 72 65  63 74 2c 2c 62 6b 20 b8  |.. getrect,,bk .|
00000b90  20 6d 6f 72 65 0d 05 00  06 20 ce 0d 05 0a 04 0d  | more.... ......|
00000ba0  05 14 05 e1 0d 05 1e 04  0d 05 28 04 0d 05 32 0b  |..........(...2.|
00000bb0  dd 20 f2 6e 75 6c 6c 0d  05 3c 14 20 e7 20 61 77  |. .null..<. . aw|
00000bc0  61 69 74 69 6e 67 61 63  6b 20 8c 0d 05 46 15 20  |aitingack ...F. |
00000bd0  20 61 77 61 69 74 69 6e  67 61 63 6b 20 3d 20 a3  | awaitingack = .|
00000be0  0d 05 50 2d 20 20 85 20  31 2c 22 42 61 64 20 44  |..P-  . 1,"Bad D|
00000bf0  61 74 61 20 54 72 61 6e  73 66 65 72 2c 20 52 65  |ata Transfer, Re|
00000c00  63 65 69 76 65 72 20 44  65 61 64 2e 22 0d 05 5a  |ceiver Dead."..Z|
00000c10  06 20 cd 0d 05 64 04 0d  05 6e 14 20 e7 20 21 66  |. ...d...n. . !f|
00000c20  69 6e 69 73 68 65 64 3d  32 20 8c 0d 05 78 1a 20  |inished=2 ...x. |
00000c30  20 c8 99 20 22 53 6f 75  6e 64 5f 43 6f 6e 66 69  | .. "Sound_Confi|
00000c40  67 75 72 65 22 0d 05 82  0b 20 20 c8 96 3a c8 96  |gure"....  ..:..|
00000c50  0d 05 8c 0b 20 20 f2 73  74 6f 70 0d 05 96 06 20  |....  .stop.... |
00000c60  cd 0d 05 a0 04 0d 05 aa  10 20 e7 20 70 6c 61 79  |......... . play|
00000c70  69 6e 67 20 8c 0d 05 b4  0b 20 20 d6 64 72 61 77  |ing .....  .draw|
00000c80  0d 05 be 1d 20 20 f2 72  65 64 72 61 77 5f 69 63  |....  .redraw_ic|
00000c90  6f 6e 28 76 75 6d 65 74  65 72 2c 30 29 0d 05 c8  |on(vumeter,0)...|
00000ca0  06 20 cd 0d 05 d2 04 0d  05 dc 1e 20 e7 20 61 75  |. ......... . au|
00000cb0  74 6f 6b 65 79 20 f2 63  68 65 63 6b 5f 6b 65 79  |tokey .check_key|
00000cc0  62 6f 61 72 64 0d 05 e6  04 0d 05 f0 23 20 e7 20  |board.......# . |
00000cd0  77 65 6c 63 6f 6d 65 5f  6f 70 65 6e 20 f2 72 65  |welcome_open .re|
00000ce0  6d 6f 76 65 5f 77 65 6c  63 6f 6d 65 0d 05 fa 04  |move_welcome....|
00000cf0  0d 06 04 05 e1 0d 06 0e  04 0d 06 18 04 0d 06 22  |..............."|
00000d00  15 dd 20 f2 63 68 65 63  6b 5f 6b 65 79 62 6f 61  |.. .check_keyboa|
00000d10  72 64 0d 06 2c 08 20 ea  20 69 0d 06 36 12 20 c8  |rd..,. . i..6. .|
00000d20  99 20 67 70 74 72 69 2c  2c 6d 62 6b 0d 06 40 0d  |. gptri,,mbk..@.|
00000d30  20 69 3d 6d 62 6b 21 31  36 0d 06 4a 1d 20 e7 20  | i=mbk!16..J. . |
00000d40  6d 62 6b 21 31 32 20 3c  3e 20 6b 65 79 62 6f 61  |mbk!12 <> keyboa|
00000d50  72 64 20 8c 20 e1 0d 06  54 1f 20 e7 20 69 3e 30  |rd . ...T. . i>0|
00000d60  20 80 20 69 3c 34 39 20  80 20 69 3c 3e 6f 6c 64  | . i<49 . i<>old|
00000d70  6b 65 79 20 8c 0d 06 5e  20 20 20 f2 64 65 73 65  |key ...^   .dese|
00000d80  6c 65 63 74 28 6b 65 79  62 6f 61 72 64 2c 6f 6c  |lect(keyboard,ol|
00000d90  64 6b 65 79 29 0d 06 68  1d 20 20 f2 73 65 6c 65  |dkey)..h.  .sele|
00000da0  63 74 69 63 6f 6e 28 6b  65 79 62 6f 61 72 64 2c  |cticon(keyboard,|
00000db0  69 29 0d 06 72 15 20 20  f2 70 6c 61 79 28 70 69  |i)..r.  .play(pi|
00000dc0  74 63 68 28 69 29 29 0d  06 7c 0e 20 20 6f 6c 64  |tch(i))..|.  old|
00000dd0  6b 65 79 3d 69 0d 06 86  06 20 cd 0d 06 90 05 e1  |key=i.... ......|
00000de0  0d 06 9a 04 0d 06 a4 04  0d 06 ae 15 dd 20 f2 72  |............. .r|
00000df0  65 6d 6f 76 65 5f 77 65  6c 63 6f 6d 65 0d 06 b8  |emove_welcome...|
00000e00  11 20 ea 20 72 6d 61 73  70 72 69 74 65 73 0d 06  |. . rmasprites..|
00000e10  c2 22 20 c8 99 20 22 4f  53 5f 52 65 61 64 4d 6f  |." .. "OS_ReadMo|
00000e20  6e 6f 74 6f 6e 69 63 54  69 6d 65 22 20 b8 20 71  |notonicTime" . q|
00000e30  0d 06 cc 19 20 e7 20 71  3e 72 65 6d 6f 76 65 5f  |.... . q>remove_|
00000e40  77 65 6c 63 6f 6d 65 20  8c 0d 06 d6 14 20 20 77  |welcome .....  w|
00000e50  65 6c 63 6f 6d 65 5f 6f  70 65 6e 3d a3 0d 06 e0  |elcome_open=....|
00000e60  1b 20 20 f2 63 6c 6f 73  65 77 69 6e 64 6f 77 28  |.  .closewindow(|
00000e70  77 65 6c 63 6f 6d 65 29  0d 06 ea 0f 20 20 71 3d  |welcome)....  q=|
00000e80  62 6b 2b 31 30 32 34 0d  06 f4 11 20 20 71 21 30  |bk+1024....  q!0|
00000e90  3d 77 65 6c 63 6f 6d 65  0d 06 fe 1f 20 20 c8 99  |=welcome....  ..|
00000ea0  20 22 57 69 6d 70 5f 44  65 6c 65 74 65 57 69 6e  | "Wimp_DeleteWin|
00000eb0  64 6f 77 22 2c 2c 71 0d  07 08 2b 20 20 c8 99 20  |dow",,q...+  .. |
00000ec0  22 57 69 6d 70 5f 42 61  73 65 4f 66 53 70 72 69  |"Wimp_BaseOfSpri|
00000ed0  74 65 73 22 20 b8 20 2c  72 6d 61 73 70 72 69 74  |tes" . ,rmasprit|
00000ee0  65 73 0d 07 12 33 20 20  c8 99 20 22 4f 53 5f 53  |es...3  .. "OS_S|
00000ef0  70 72 69 74 65 4f 70 22  2c 26 31 31 39 2c 72 6d  |priteOp",&119,rm|
00000f00  61 73 70 72 69 74 65 73  2c 22 64 74 70 77 65 6c  |asprites,"dtpwel|
00000f10  63 6f 6d 65 22 0d 07 1c  06 20 cd 0d 07 26 05 e1  |come".... ...&..|
00000f20  0d 07 30 04 0d 07 3a 11  dd 20 f2 73 68 6f 77 5f  |..0...:.. .show_|
00000f30  73 74 61 72 74 0d 07 44  19 20 21 75 70 74 6f 20  |start..D. !upto |
00000f40  3d 20 73 61 6d 70 6c 65  62 75 66 66 65 72 0d 07  |= samplebuffer..|
00000f50  4e 0a 20 d6 64 72 61 77  0d 07 58 1c 20 f2 72 65  |N. .draw..X. .re|
00000f60  64 72 61 77 5f 69 63 6f  6e 28 76 75 6d 65 74 65  |draw_icon(vumete|
00000f70  72 2c 30 29 0d 07 62 05  e1 0d 07 6c 04 0d 07 76  |r,0)..b....l...v|
00000f80  17 dd 20 f2 72 65 64 72  61 77 5f 69 63 6f 6e 28  |.. .redraw_icon(|
00000f90  77 2c 69 29 0d 07 80 0b  20 62 6b 21 30 3d 77 0d  |w,i).... bk!0=w.|
00000fa0  07 8a 0b 20 62 6b 21 34  3d 69 0d 07 94 11 20 c8  |... bk!4=i.... .|
00000fb0  99 20 67 65 74 69 73 2c  2c 62 6b 0d 07 9e 2e 20  |. getis,,bk.... |
00000fc0  c8 99 20 66 6f 72 63 65  72 64 2c 76 75 6d 65 74  |.. forcerd,vumet|
00000fd0  65 72 2c 62 6b 21 38 2c  62 6b 21 31 32 2c 62 6b  |er,bk!8,bk!12,bk|
00000fe0  21 31 36 2c 62 6b 21 32  30 0d 07 a8 05 e1 0d 07  |!16,bk!20.......|
00000ff0  b2 04 0d 07 bc 16 dd 20  f2 73 65 74 74 65 78 74  |....... .settext|
00001000  28 77 2c 69 2c 61 24 29  0d 07 c6 0d 20 62 6b 21  |(w,i,a$).... bk!|
00001010  30 20 3d 20 77 0d 07 d0  0d 20 62 6b 21 34 20 3d  |0 = w.... bk!4 =|
00001020  20 69 0d 07 da 11 20 c8  99 20 67 65 74 69 73 2c  | i.... .. getis,|
00001030  2c 62 6b 0d 07 e4 10 20  24 28 62 6b 21 32 38 29  |,bk.... $(bk!28)|
00001040  3d 61 24 0d 07 ee 0b 20  62 6b 21 38 3d 30 0d 07  |=a$.... bk!8=0..|
00001050  f8 0c 20 62 6b 21 31 32  3d 30 0d 08 02 11 20 c8  |.. bk!12=0.... .|
00001060  99 20 73 65 74 69 73 2c  2c 62 6b 0d 08 0c 05 e1  |. setis,,bk.....|
00001070  0d 08 16 04 0d 08 20 0b  dd 20 f2 69 6e 69 74 0d  |...... .. .init.|
00001080  08 2a 08 20 ea 20 71 0d  08 34 23 20 72 65 6d 61  |.*. . q..4# rema|
00001090  69 6e 69 6e 67 69 63 6f  6e 73 70 61 63 65 20 3d  |iningiconspace =|
000010a0  20 69 63 6f 6e 73 70 61  63 65 0d 08 3e 19 20 6e  | iconspace..>. n|
000010b0  75 6c 6c 5f 72 65 61 73  6f 6e 5f 63 6f 64 65 20  |ull_reason_code |
000010c0  3d 20 30 0d 08 48 1e 20  72 65 64 72 61 77 5f 77  |= 0..H. redraw_w|
000010d0  69 6e 64 6f 77 5f 72 65  71 75 65 73 74 20 3d 20  |indow_request = |
000010e0  31 0d 08 52 1c 20 6f 70  65 6e 5f 77 69 6e 64 6f  |1..R. open_windo|
000010f0  77 5f 72 65 71 75 65 73  74 20 3d 20 32 0d 08 5c  |w_request = 2..\|
00001100  1d 20 63 6c 6f 73 65 5f  77 69 6e 64 6f 77 5f 72  |. close_window_r|
00001110  65 71 75 65 73 74 20 3d  20 33 0d 08 66 1c 20 6d  |equest = 3..f. m|
00001120  6f 75 73 65 5f 62 75 74  74 6f 6e 5f 63 68 61 6e  |ouse_button_chan|
00001130  67 65 20 3d 20 36 0d 08  70 14 20 6b 65 79 5f 70  |ge = 6..p. key_p|
00001140  72 65 73 73 65 64 20 3d  20 38 0d 08 7a 14 20 6d  |ressed = 8..z. m|
00001150  65 6e 75 5f 73 65 6c 65  63 74 20 3d 20 39 0d 08  |enu_select = 9..|
00001160  84 16 20 75 73 65 72 5f  6d 65 73 73 61 67 65 20  |.. user_message |
00001170  3d 20 31 37 0d 08 8e 1f  20 75 73 65 72 5f 6d 65  |= 17.... user_me|
00001180  73 73 61 67 65 5f 72 65  63 6f 72 64 65 64 20 3d  |ssage_recorded =|
00001190  20 31 38 0d 08 98 1a 20  75 73 65 72 5f 6d 65 73  | 18.... user_mes|
000011a0  73 61 67 65 5f 61 63 6b  20 3d 20 31 39 0d 08 a2  |sage_ack = 19...|
000011b0  15 20 6d 65 73 73 61 67  65 5f 71 75 69 74 20 3d  |. message_quit =|
000011c0  20 30 0d 08 ac 19 20 6d  65 73 73 61 67 65 5f 64  | 0.... message_d|
000011d0  61 74 61 73 61 76 65 20  3d 20 31 0d 08 b6 1c 20  |atasave = 1.... |
000011e0  6d 65 73 73 61 67 65 5f  64 61 74 61 73 61 76 65  |message_datasave|
000011f0  61 63 6b 20 3d 20 32 0d  08 c0 19 20 6d 65 73 73  |ack = 2.... mess|
00001200  61 67 65 5f 64 61 74 61  6c 6f 61 64 20 3d 20 33  |age_dataload = 3|
00001210  0d 08 ca 1c 20 6d 65 73  73 61 67 65 5f 64 61 74  |.... message_dat|
00001220  61 6c 6f 61 64 61 63 6b  20 3d 20 34 0d 08 d4 19  |aloadack = 4....|
00001230  20 6d 65 73 73 61 67 65  5f 64 61 74 61 6f 70 65  | message_dataope|
00001240  6e 20 3d 20 35 0d 08 de  18 20 6d 65 73 73 61 67  |n = 5.... messag|
00001250  65 5f 70 72 65 71 75 69  74 20 3d 20 38 0d 08 e8  |e_prequit = 8...|
00001260  21 20 6d 65 73 73 61 67  65 5f 6d 65 6e 75 77 61  |! message_menuwa|
00001270  72 6e 69 6e 67 20 3d 20  26 34 30 30 43 30 0d 08  |rning = &400C0..|
00001280  f2 12 20 73 63 72 61 70  72 65 66 20 3d 20 2d 31  |.. scrapref = -1|
00001290  0d 08 fc 14 20 61 77 61  69 74 69 6e 67 61 63 6b  |.... awaitingack|
000012a0  20 3d 20 a3 0d 09 06 13  20 63 6c 61 69 6d 6d 65  | = ..... claimme|
000012b0  6e 75 20 3d 20 2d 31 0d  09 10 16 20 63 6c 61 69  |nu = -1.... clai|
000012c0  6d 64 72 61 67 62 6f 78  20 20 3d 20 b9 0d 09 1a  |mdragbox  = ....|
000012d0  17 20 63 6c 61 69 6d 64  72 61 67 62 6f 78 24 20  |. claimdragbox$ |
000012e0  3d 20 22 22 0d 09 24 0d  20 6d 61 73 6b 20 3d 20  |= ""..$. mask = |
000012f0  30 0d 09 2e 11 20 69 63  6f 6e 62 61 72 20 3d 20  |0.... iconbar = |
00001300  2d 32 0d 09 38 1f 20 73  6f 75 6e 64 5f 69 63 6f  |-2..8. sound_ico|
00001310  6e 20 3d 20 a4 69 63 6f  6e 5f 69 63 6f 6e 62 61  |n = .icon_iconba|
00001320  72 0d 09 42 12 20 73 63  72 61 70 72 65 66 20 3d  |r..B. scrapref =|
00001330  20 2d 31 0d 09 4c 10 20  72 65 74 75 72 6e 20 3d  | -1..L. return =|
00001340  20 31 33 0d 09 56 13 20  f2 72 65 61 64 74 65 6d  | 13..V. .readtem|
00001350  70 6c 61 74 65 73 0d 09  60 21 20 f2 73 65 74 74  |plates..`! .sett|
00001360  65 78 74 28 63 72 65 64  69 74 73 2c 33 2c 76 65  |ext(credits,3,ve|
00001370  72 73 69 6f 6e 24 29 0d  09 6a 14 20 61 72 6d 61  |rsion$)..j. arma|
00001380  64 65 75 73 20 3d 20 26  44 33 43 0d 09 74 14 20  |deus = &D3C..t. |
00001390  73 6e 64 73 79 6e 74 68  20 3d 20 26 44 46 39 0d  |sndsynth = &DF9.|
000013a0  09 7e 14 20 74 72 61 63  6b 65 72 20 20 3d 20 26  |.~. tracker  = &|
000013b0  43 42 35 0d 09 88 10 20  64 61 74 61 20 3d 20 26  |CB5.... data = &|
000013c0  46 46 44 0d 09 92 10 20  76 75 5f 6f 70 65 6e 20  |FFD.... vu_open |
000013d0  3d 20 a3 0d 09 9c 14 20  6b 65 79 62 6f 61 72 64  |= ..... keyboard|
000013e0  5f 6f 70 65 6e 3d b9 0d  09 a6 10 20 70 6c 61 79  |_open=..... play|
000013f0  69 6e 67 20 3d 20 a3 0d  09 b0 0e 20 73 61 76 65  |ing = ..... save|
00001400  64 20 3d 20 b9 0d 09 ba  14 20 73 61 6d 70 6c 65  |d = ..... sample|
00001410  72 61 74 65 20 3d 20 34  38 0d 09 c4 12 20 73 61  |rate = 48.... sa|
00001420  76 65 5f 74 79 70 65 20  3d 20 30 0d 09 ce 13 20  |ve_type = 0.... |
00001430  f2 64 65 73 65 6c 65 63  74 5f 65 63 68 6f 0d 09  |.deselect_echo..|
00001440  d8 19 20 f2 73 65 6c 65  63 74 69 63 6f 6e 28 65  |.. .selecticon(e|
00001450  63 68 6f 77 2c 34 29 0d  09 e2 14 20 65 63 68 6f  |chow,4).... echo|
00001460  5f 6c 65 6e 67 74 68 20  3d 20 34 0d 09 ec 17 20  |_length = 4.... |
00001470  73 61 6d 70 6c 65 5f 70  72 65 73 65 6e 74 20 3d  |sample_present =|
00001480  20 a3 0d 09 f6 14 20 75  73 65 6c 65 61 66 6e 61  | ..... useleafna|
00001490  6d 65 20 3d 20 b9 0d 0a  00 19 20 6e 61 6d 65 24  |me = ..... name$|
000014a0  20 3d 20 22 3c 55 6e 74  69 74 6c 65 64 3e 22 0d  | = "<Untitled>".|
000014b0  0a 0a 0d 20 76 69 64 63  20 3d 20 a3 0d 0a 14 12  |... vidc = .....|
000014c0  20 f2 73 65 74 75 70 5f  70 69 74 63 68 73 0d 0a  | .setup_pitchs..|
000014d0  1e 0e 20 6f 6c 64 6b 65  79 3d 2d 31 0d 0a 28 0e  |.. oldkey=-1..(.|
000014e0  20 61 75 74 6f 6b 65 79  3d a3 0d 0a 32 1b 20 f2  | autokey=...2. .|
000014f0  64 65 73 65 6c 65 63 74  28 6b 65 79 62 6f 61 72  |deselect(keyboar|
00001500  64 2c 37 37 29 0d 0a 3c  13 20 77 65 6c 63 6f 6d  |d,77)..<. welcom|
00001510  65 5f 6f 70 65 6e 3d b9  0d 0a 46 15 20 f2 66 72  |e_open=...F. .fr|
00001520  6f 6e 74 31 28 77 65 6c  63 6f 6d 65 29 0d 0a 50  |ont1(welcome)..P|
00001530  22 20 c8 99 20 22 4f 53  5f 52 65 61 64 4d 6f 6e  |" .. "OS_ReadMon|
00001540  6f 74 6f 6e 69 63 54 69  6d 65 22 20 b8 20 71 0d  |otonicTime" . q.|
00001550  0a 5a 1b 20 72 65 6d 6f  76 65 5f 77 65 6c 63 6f  |.Z. remove_welco|
00001560  6d 65 20 3d 20 71 2b 33  30 30 0d 0a 64 05 e1 0d  |me = q+300..d...|
00001570  0a 6e 04 0d 0a 78 04 0d  0a 82 13 dd 20 f2 73 65  |.n...x...... .se|
00001580  74 75 70 5f 70 69 74 63  68 73 0d 0a 8c 0a 20 ea  |tup_pitchs.... .|
00001590  20 70 2c 63 0d 0a 96 08  20 63 3d 31 0d 0a a0 0b  | p,c.... c=1....|
000015a0  20 f7 20 8d 64 7a 4a 0d  0a aa 08 20 f3 20 70 0d  | . .dzJ.... . p.|
000015b0  0a b4 06 20 f5 0d 0a be  12 20 20 70 69 74 63 68  |... .....  pitch|
000015c0  28 63 29 20 3d 20 70 0d  0a c8 0a 20 20 63 2b 3d  |(c) = p....  c+=|
000015d0  31 0d 0a d2 09 20 20 f3  20 70 0d 0a dc 0a 20 fd  |1....  . p.... .|
000015e0  20 70 3d 30 0d 0a e6 05  e1 0d 0a f0 04 0d 0a fa  | p=0............|
000015f0  15 dc 20 26 31 30 30 30  20 20 20 20 3a 52 45 4d  |.. &1000    :REM|
00001600  20 43 0d 0b 04 0b dc 20  26 31 32 41 41 0d 0b 0e  | C..... &12AA...|
00001610  0b dc 20 26 31 35 35 35  0d 0b 18 0b dc 20 26 31  |.. &1555..... &1|
00001620  36 41 41 0d 0b 22 0b dc  20 26 31 39 35 35 0d 0b  |6AA..".. &1955..|
00001630  2c 0b dc 20 26 31 43 30  30 0d 0b 36 0b dc 20 26  |,.. &1C00..6.. &|
00001640  31 45 41 41 0d 0b 40 04  0d 0b 4a 15 dc 20 26 32  |1EAA..@...J.. &2|
00001650  30 30 30 20 20 20 20 3a  52 45 4d 20 43 0d 0b 54  |000    :REM C..T|
00001660  0b dc 20 26 32 32 41 41  0d 0b 5e 0b dc 20 26 32  |.. &22AA..^.. &2|
00001670  35 35 35 0d 0b 68 0b dc  20 26 32 36 41 41 0d 0b  |555..h.. &26AA..|
00001680  72 0b dc 20 26 32 39 35  35 0d 0b 7c 0b dc 20 26  |r.. &2955..|.. &|
00001690  32 43 30 30 0d 0b 86 0b  dc 20 26 32 45 41 41 0d  |2C00..... &2EAA.|
000016a0  0b 90 04 0d 0b 9a 15 dc  20 26 33 30 30 30 20 20  |........ &3000  |
000016b0  20 20 3a 52 45 4d 20 43  0d 0b a4 0b dc 20 26 33  |  :REM C..... &3|
000016c0  32 41 41 0d 0b ae 0b dc  20 26 33 35 35 35 0d 0b  |2AA..... &3555..|
000016d0  b8 0b dc 20 26 33 36 41  41 0d 0b c2 0b dc 20 26  |... &36AA..... &|
000016e0  33 39 35 35 0d 0b cc 0b  dc 20 26 33 43 30 30 0d  |3955..... &3C00.|
000016f0  0b d6 0b dc 20 26 33 45  41 41 0d 0b e0 04 0d 0b  |.... &3EAA......|
00001700  ea 15 dc 20 26 34 30 30  30 20 20 20 20 3a 52 45  |... &4000    :RE|
00001710  4d 20 43 0d 0b f4 0b dc  20 26 34 32 41 41 0d 0b  |M C..... &42AA..|
00001720  fe 0b dc 20 26 34 35 35  35 0d 0c 08 0b dc 20 26  |... &4555..... &|
00001730  34 36 41 41 0d 0c 12 0b  dc 20 26 34 39 35 35 0d  |46AA..... &4955.|
00001740  0c 1c 0b dc 20 26 34 43  30 30 0d 0c 26 0b dc 20  |.... &4C00..&.. |
00001750  26 34 45 41 41 0d 0c 30  04 0d 0c 3a 16 dc 20 26  |&4EAA..0...:.. &|
00001760  31 31 35 35 20 20 20 20  3a 52 45 4d 20 43 23 0d  |1155    :REM C#.|
00001770  0c 44 0b dc 20 26 31 34  30 30 0d 0c 4e 0b dc 20  |.D.. &1400..N.. |
00001780  26 31 38 30 30 0d 0c 58  0b dc 20 26 31 41 41 41  |&1800..X.. &1AAA|
00001790  0d 0c 62 0b dc 20 26 31  44 35 35 0d 0c 6c 04 0d  |..b.. &1D55..l..|
000017a0  0c 76 16 dc 20 26 32 31  35 35 20 20 20 20 3a 52  |.v.. &2155    :R|
000017b0  45 4d 20 43 23 0d 0c 80  0b dc 20 26 32 34 30 30  |EM C#..... &2400|
000017c0  0d 0c 8a 0b dc 20 26 32  38 30 30 0d 0c 94 0b dc  |..... &2800.....|
000017d0  20 26 32 41 41 41 0d 0c  9e 0b dc 20 26 32 44 35  | &2AAA..... &2D5|
000017e0  35 0d 0c a8 04 0d 0c b2  16 dc 20 26 33 31 35 35  |5......... &3155|
000017f0  20 20 20 20 3a 52 45 4d  20 43 23 0d 0c bc 0b dc  |    :REM C#.....|
00001800  20 26 33 34 30 30 0d 0c  c6 0b dc 20 26 33 38 30  | &3400..... &380|
00001810  30 0d 0c d0 0b dc 20 26  33 41 41 41 0d 0c da 0b  |0..... &3AAA....|
00001820  dc 20 26 33 44 35 35 0d  0c e4 04 0d 0c ee 16 dc  |. &3D55.........|
00001830  20 26 34 31 35 35 20 20  20 20 3a 52 45 4d 20 43  | &4155    :REM C|
00001840  23 0d 0c f8 0b dc 20 26  34 34 30 30 0d 0d 02 0b  |#..... &4400....|
00001850  dc 20 26 34 38 30 30 0d  0d 0c 0b dc 20 26 34 41  |. &4800..... &4A|
00001860  41 41 0d 0d 16 0b dc 20  26 34 44 35 35 0d 0d 20  |AA..... &4D55.. |
00001870  04 0d 0d 2a 07 dc 20 30  0d 0d 34 04 0d 0d 3e 04  |...*.. 0..4...>.|
00001880  0d 0d 48 04 0d 0d 52 15  dd 20 f2 72 65 63 65 69  |..H...R.. .recei|
00001890  76 65 6d 65 73 73 61 67  65 0d 0d 5c 13 20 72 65  |vemessage..\. re|
000018a0  66 20 20 20 20 20 3d 20  62 6b 21 38 0d 0d 66 13  |f     = bk!8..f.|
000018b0  20 74 61 73 6b 20 20 20  20 3d 20 62 6b 21 34 0d  | task    = bk!4.|
000018c0  0d 70 14 20 79 6f 75 72  72 65 66 20 3d 20 62 6b  |.p. yourref = bk|
000018d0  21 31 32 0d 0d 7a 2e 20  e7 20 74 61 73 6b 20 3d  |!12..z. . task =|
000018e0  20 74 61 73 6b 5f 68 61  6e 64 6c 65 25 20 8c 20  | task_handle% . |
000018f0  61 77 61 69 74 69 6e 67  61 63 6b 20 3d 20 a3 3a  |awaitingack = .:|
00001900  e1 0d 0d 84 04 0d 0d 8e  0f 20 c8 8e 20 62 6b 21  |......... .. bk!|
00001910  31 36 20 ca 0d 0d 98 22  20 20 c9 20 6d 65 73 73  |16 ...."  . mess|
00001920  61 67 65 5f 71 75 69 74  20 20 20 20 20 3a 20 f2  |age_quit     : .|
00001930  66 69 6e 69 73 68 0d 0d  a2 2c 20 20 c9 20 6d 65  |finish...,  . me|
00001940  73 73 61 67 65 5f 64 61  74 61 6c 6f 61 64 20 3a  |ssage_dataload :|
00001950  20 f2 6d 65 73 73 61 67  65 5f 64 61 74 61 6c 6f  | .message_datalo|
00001960  61 64 0d 0d ac 25 20 20  c9 20 6d 65 73 73 61 67  |ad...%  . messag|
00001970  65 5f 64 61 74 61 6f 70  65 6e 20 3a 20 f2 64 61  |e_dataopen : .da|
00001980  74 61 5f 6f 70 65 6e 0d  0d b6 2d 20 20 c9 20 6d  |ta_open...-  . m|
00001990  65 73 73 61 67 65 5f 64  61 74 61 6c 6f 61 64 61  |essage_dataloada|
000019a0  63 6b 20 3a 20 61 77 61  69 74 69 6e 67 61 63 6b  |ck : awaitingack|
000019b0  20 3d 20 a3 0d 0d c0 2b  20 20 c9 20 6d 65 73 73  | = ....+  . mess|
000019c0  61 67 65 5f 6d 65 6e 75  77 61 72 6e 69 6e 67 20  |age_menuwarning |
000019d0  3a 20 f2 6d 65 6e 75 5f  77 61 72 6e 69 6e 67 0d  |: .menu_warning.|
000019e0  0d ca 2d 20 20 c9 20 6d  65 73 73 61 67 65 5f 70  |..-  . message_p|
000019f0  72 65 71 75 69 74 20 20  20 20 20 3a 20 f2 70 72  |requit     : .pr|
00001a00  65 71 75 69 74 5f 63 68  65 63 6b 73 0d 0d d4 06  |equit_checks....|
00001a10  20 cb 0d 0d de 04 0d 0d  e8 05 e1 0d 0d f2 04 0d  | ...............|
00001a20  0d fc 04 0d 0e 06 10 dd  20 f2 64 61 74 61 5f 6f  |........ .data_o|
00001a30  70 65 6e 0d 0e 10 04 0d  0e 1a 1d 20 66 73 70 24  |pen........ fsp$|
00001a40  3d a4 73 74 72 6e 75 6c  6c 74 65 72 6d 28 62 6b  |=.strnullterm(bk|
00001a50  2b 34 34 29 0d 0e 24 12  20 66 74 79 70 65 20 3d  |+44)..$. ftype =|
00001a60  20 62 6b 21 34 30 0d 0e  2e 04 0d 0e 38 2f 20 e7  | bk!40......8/ .|
00001a70  20 ac 20 a6 2d 31 20 80  20 a4 67 65 74 6c 65 61  | . .-1 . .getlea|
00001a80  66 6e 61 6d 65 28 66 73  70 24 29 3d 22 21 51 75  |fname(fsp$)="!Qu|
00001a90  69 63 6b 53 6e 64 22 20  8c 0d 0e 42 0a 20 20 f2  |ickSnd" ...B.  .|
00001aa0  61 63 6b 0d 0e 4c 07 20  20 e1 0d 0e 56 06 20 cd  |ack..L.  ...V. .|
00001ab0  0d 0e 60 04 0d 0e 6a 38  20 e7 20 66 74 79 70 65  |..`...j8 . ftype|
00001ac0  3d 61 72 6d 61 64 65 75  73 20 84 20 66 74 79 70  |=armadeus . ftyp|
00001ad0  65 3d 73 6e 64 73 79 6e  74 68 20 84 20 66 74 79  |e=sndsynth . fty|
00001ae0  70 65 3d 74 72 61 63 6b  65 72 20 8c 0d 0e 74 11  |pe=tracker ...t.|
00001af0  20 20 e7 20 ac 20 73 61  76 65 64 20 8c 0d 0e 7e  |  . . saved ...~|
00001b00  33 20 20 20 e7 20 ac 20  a4 61 73 6b 28 22 53 61  |3   . . .ask("Sa|
00001b10  6d 70 6c 65 20 6e 6f 74  20 73 61 76 65 64 2c 20  |mple not saved, |
00001b20  4c 6f 61 64 20 61 6e 6f  74 68 65 72 22 29 20 8c  |Load another") .|
00001b30  0d 0e 88 0c 20 20 20 20  f2 61 63 6b 0d 0e 92 09  |....    .ack....|
00001b40  20 20 20 20 e1 0d 0e 9c  08 20 20 20 cd 0d 0e a6  |    .....   ....|
00001b50  07 20 20 cd 0d 0e b0 04  0d 0e ba 10 20 20 c8 8e  |.  .........  ..|
00001b60  20 62 6b 21 34 30 20 ca  0d 0e c4 13 20 20 20 c9  | bk!40 .....   .|
00001b70  20 61 72 6d 61 64 65 75  73 20 3a 0d 0e ce 16 20  | armadeus :.... |
00001b80  20 20 20 f2 6c 6f 61 64  5f 61 72 6d 61 64 65 75  |   .load_armadeu|
00001b90  73 0d 0e d8 0c 20 20 20  20 f2 61 63 6b 0d 0e e2  |s....    .ack...|
00001ba0  04 0d 0e ec 13 20 20 20  c9 20 73 6e 64 73 79 6e  |.....   . sndsyn|
00001bb0  74 68 20 3a 0d 0e f6 0c  20 20 20 20 f2 61 63 6b  |th :....    .ack|
00001bc0  0d 0f 00 16 20 20 20 20  f2 6c 6f 61 64 5f 73 6e  |....    .load_sn|
00001bd0  64 73 79 6e 74 68 0d 0f  0a 04 0d 0f 14 13 20 20  |dsynth........  |
00001be0  20 c9 20 74 72 61 63 6b  65 72 20 20 3a 0d 0f 1e  | . tracker  :...|
00001bf0  0c 20 20 20 20 f2 61 63  6b 0d 0f 28 15 20 20 20  |.    .ack..(.   |
00001c00  20 f2 6c 6f 61 64 5f 74  72 61 63 6b 65 72 0d 0f  | .load_tracker..|
00001c10  32 04 0d 0f 3c 07 20 20  cb 0d 0f 46 06 20 cd 0d  |2...<.  ...F. ..|
00001c20  0f 50 04 0d 0f 5a 05 e1  0d 0f 64 04 0d 0f 6e 04  |.P...Z....d...n.|
00001c30  0d 0f 78 15 dd 20 f2 70  72 65 71 75 69 74 5f 63  |..x.. .prequit_c|
00001c40  68 65 63 6b 73 0d 0f 82  0e 20 e7 20 73 61 76 65  |hecks.... . save|
00001c50  64 20 e1 0d 0f 8c 42 20  e7 20 a4 61 73 6b 28 22  |d ....B . .ask("|
00001c60  53 61 6d 70 6c 65 20 6e  6f 74 20 73 61 76 65 64  |Sample not saved|
00001c70  2c 20 41 72 65 20 79 6f  75 20 73 75 72 65 20 79  |, Are you sure y|
00001c80  6f 75 20 77 61 6e 74 20  74 6f 20 71 75 69 74 22  |ou want to quit"|
00001c90  29 20 8c 20 e1 0d 0f 96  09 20 f2 61 63 6b 0d 0f  |) . ..... .ack..|
00001ca0  a0 05 e1 0d 0f aa 04 0d  0f b4 04 0d 0f be 17 dd  |................|
00001cb0  20 f2 6d 65 73 73 61 67  65 5f 64 61 74 61 6c 6f  | .message_datalo|
00001cc0  61 64 0d 0f c8 28 20 ea  20 6f 66 66 73 65 74 2c  |ad...( . offset,|
00001cd0  77 69 6e 64 6f 77 2c 69  63 6f 6e 2c 61 2c 62 2c  |window,icon,a,b,|
00001ce0  66 73 70 24 2c 66 74 79  70 65 0d 0f d2 04 0d 0f  |fsp$,ftype......|
00001cf0  dc 13 20 77 69 6e 64 6f  77 20 3d 20 62 6b 21 32  |.. window = bk!2|
00001d00  30 0d 0f e6 13 20 69 63  6f 6e 20 20 20 3d 20 62  |0.... icon   = b|
00001d10  6b 21 32 34 0d 0f f0 21  20 66 73 70 24 20 20 20  |k!24...! fsp$   |
00001d20  3d 20 a4 73 74 72 6e 75  6c 6c 74 65 72 6d 28 62  |= .strnullterm(b|
00001d30  6b 2b 34 34 29 0d 0f fa  12 20 61 20 20 20 20 20  |k+44).... a     |
00001d40  20 3d 20 62 6b 21 34 0d  10 04 12 20 62 20 20 20  | = bk!4.... b   |
00001d50  20 20 20 3d 20 62 6b 21  38 0d 10 0e 13 20 66 74  |   = bk!8.... ft|
00001d60  79 70 65 20 20 3d 20 62  6b 21 34 30 0d 10 18 04  |ype  = bk!40....|
00001d70  0d 10 22 15 20 e7 20 a4  63 68 65 63 6b 5f 73 61  |..". . .check_sa|
00001d80  76 65 64 20 8c 0d 10 2c  10 20 20 c8 8e 20 66 74  |ved ...,.  .. ft|
00001d90  79 70 65 20 ca 0d 10 36  22 20 20 20 c9 20 61 72  |ype ...6"   . ar|
00001da0  6d 61 64 65 75 73 20 3a  20 f2 6c 6f 61 64 5f 61  |madeus : .load_a|
00001db0  72 6d 61 64 65 75 73 0d  10 40 22 20 20 20 c9 20  |rmadeus..@"   . |
00001dc0  73 6e 64 73 79 6e 74 68  20 3a 20 f2 6c 6f 61 64  |sndsynth : .load|
00001dd0  5f 73 6e 64 73 79 6e 74  68 0d 10 4a 21 20 20 20  |_sndsynth..J!   |
00001de0  c9 20 74 72 61 63 6b 65  72 20 20 3a 20 f2 6c 6f  |. tracker  : .lo|
00001df0  61 64 5f 74 72 61 63 6b  65 72 0d 10 54 1e 20 20  |ad_tracker..T.  |
00001e00  20 c9 20 64 61 74 61 20  20 20 20 20 3a 20 f2 6c  | . data     : .l|
00001e10  6f 61 64 5f 64 61 74 61  0d 10 5e 07 20 20 cb 0d  |oad_data..^.  ..|
00001e20  10 68 06 20 cd 0d 10 72  04 0d 10 7c 31 20 e7 20  |.h. ...r...|1 . |
00001e30  79 6f 75 72 72 65 66 3d  73 63 72 61 70 72 65 66  |yourref=scrapref|
00001e40  20 8c 20 ff 20 22 44 65  6c 65 74 65 20 3c 57 69  | . . "Delete <Wi|
00001e50  6d 70 24 53 63 72 61 70  3e 22 0d 10 86 0c 20 62  |mp$Scrap>".... b|
00001e60  6b 21 30 3d 32 30 0d 10  90 0b 20 62 6b 21 34 3d  |k!0=20.... bk!4=|
00001e70  61 0d 10 9a 0b 20 62 6b  21 38 3d 62 0d 10 a4 0e  |a.... bk!8=b....|
00001e80  20 62 6b 21 31 32 3d 72  65 66 0d 10 ae 1e 20 62  | bk!12=ref.... b|
00001e90  6b 21 31 36 3d 6d 65 73  73 61 67 65 5f 64 61 74  |k!16=message_dat|
00001ea0  61 6c 6f 61 64 61 63 6b  0d 10 b8 18 20 c8 99 20  |aloadack.... .. |
00001eb0  73 65 6e 64 6d 2c 31 37  2c 62 6b 2c 74 61 73 6b  |sendm,17,bk,task|
00001ec0  0d 10 c2 05 e1 0d 10 cc  04 0d 10 d6 04 0d 10 e0  |................|
00001ed0  12 dd 20 a4 63 68 65 63  6b 5f 73 61 76 65 64 0d  |.. .check_saved.|
00001ee0  10 ea 45 20 e7 20 66 74  79 70 65 3d 61 72 6d 61  |..E . ftype=arma|
00001ef0  64 65 75 73 20 84 20 66  74 79 70 65 3d 73 6e 64  |deus . ftype=snd|
00001f00  73 79 6e 74 68 20 84 20  66 74 79 70 65 3d 74 72  |synth . ftype=tr|
00001f10  61 63 6b 65 72 20 84 20  66 74 79 70 65 3d 64 61  |acker . ftype=da|
00001f20  74 61 20 8c 0d 10 f4 12  20 20 e7 20 73 61 76 65  |ta .....  . save|
00001f30  64 20 8c 20 3d b9 0d 10  fe 33 20 20 e7 20 a4 61  |d . =....3  . .a|
00001f40  73 6b 28 22 53 61 6d 70  6c 65 20 6e 6f 74 20 73  |sk("Sample not s|
00001f50  61 76 65 64 2c 20 4c 6f  61 64 20 61 6e 6f 74 68  |aved, Load anoth|
00001f60  65 72 22 29 20 8c 20 3d  b9 0d 11 08 06 20 cd 0d  |er") . =..... ..|
00001f70  11 12 06 3d a3 0d 11 1c  04 0d 11 26 04 0d 11 30  |...=.......&...0|
00001f80  10 dd 20 f2 6c 6f 61 64  5f 64 61 74 61 0d 11 3a  |.. .load_data..:|
00001f90  09 20 ea 20 58 25 0d 11  44 04 0d 11 4e 14 20 e7  |. . X%..D...N. .|
00001fa0  20 70 6c 61 79 69 6e 67  20 f2 73 74 6f 70 0d 11  | playing .stop..|
00001fb0  58 04 0d 11 62 11 20 d6  63 6c 65 61 72 6d 65 6d  |X...b. .clearmem|
00001fc0  6f 72 79 0d 11 6c 04 0d  11 76 11 20 58 25 20 3d  |ory..l...v. X% =|
00001fd0  20 8e 28 66 73 70 24 29  0d 11 80 18 20 73 61 6d  | .(fsp$).... sam|
00001fe0  70 6c 65 6c 65 6e 67 74  68 20 3d 20 a2 23 58 25  |plelength = .#X%|
00001ff0  0d 11 8a 14 20 73 61 6d  70 6c 65 72 61 74 65 20  |.... samplerate |
00002000  3d 20 34 38 0d 11 94 32  20 c8 99 20 22 4f 53 5f  |= 48...2 .. "OS_|
00002010  47 42 50 42 22 2c 33 2c  58 25 2c 73 61 6d 70 6c  |GBPB",3,X%,sampl|
00002020  65 62 75 66 66 65 72 2c  73 61 6d 70 6c 65 6c 65  |ebuffer,samplele|
00002030  6e 67 74 68 2c 31 0d 11  9e 0a 20 d9 20 23 58 25  |ngth,1.... . #X%|
00002040  0d 11 a8 04 0d 11 b2 27  20 f2 61 62 6f 75 74 66  |.......' .aboutf|
00002050  69 6c 65 28 22 44 61 74  61 22 2c 22 66 69 6c 65  |ile("Data","file|
00002060  5f 66 66 64 22 2c 26 46  46 44 29 0d 11 bc 04 0d  |_ffd",&FFD).....|
00002070  11 c6 1f 20 6e 61 6d 65  24 20 3d 20 a4 67 65 74  |... name$ = .get|
00002080  6c 65 61 66 6e 61 6d 65  28 66 73 70 24 29 0d 11  |leafname(fsp$)..|
00002090  d0 04 0d 11 da 1e 20 21  77 61 76 65 62 61 73 65  |...... !wavebase|
000020a0  20 20 3d 20 73 61 6d 70  6c 65 62 75 66 66 65 72  |  = samplebuffer|
000020b0  0d 11 e4 1e 20 21 6c 65  6e 67 74 68 20 20 20 20  |.... !length    |
000020c0  3d 20 73 61 6d 70 6c 65  6c 65 6e 67 74 68 0d 11  |= samplelength..|
000020d0  ee 14 20 f4 20 21 66 69  6e 69 73 68 65 64 20 3d  |.. . !finished =|
000020e0  20 32 0d 11 f8 04 0d 12  02 17 20 73 61 6d 70 6c  | 2........ sampl|
000020f0  65 5f 70 72 65 73 65 6e  74 20 3d 20 b9 0d 12 0c  |e_present = ....|
00002100  10 20 f2 73 68 6f 77 5f  73 74 61 72 74 0d 12 16  |. .show_start...|
00002110  0d 20 f2 6f 70 65 6e 5f  76 75 0d 12 20 0b 20 f2  |. .open_vu.. . .|
00002120  73 61 76 65 64 0d 12 2a  05 e1 0d 12 34 04 0d 12  |saved..*....4...|
00002130  3e 04 0d 12 48 14 dd 20  f2 6c 6f 61 64 5f 61 72  |>...H.. .load_ar|
00002140  6d 61 64 65 75 73 0d 12  52 0d 20 ea 20 58 25 2c  |madeus..R. . X%,|
00002150  61 2c 62 0d 12 5c 04 0d  12 66 14 20 e7 20 70 6c  |a,b..\...f. . pl|
00002160  61 79 69 6e 67 20 f2 73  74 6f 70 0d 12 70 04 0d  |aying .stop..p..|
00002170  12 7a 11 20 58 25 20 3d  20 8e 28 66 73 70 24 29  |.z. X% = .(fsp$)|
00002180  0d 12 84 0d 20 61 20 3d  20 9a 23 58 25 0d 12 8e  |.... a = .#X%...|
00002190  12 20 e7 20 61 3c 31 30  20 61 20 3d 20 31 30 0d  |. . a<10 a = 10.|
000021a0  12 98 0f 20 62 20 3d 20  a2 23 58 25 2d 31 0d 12  |... b = .#X%-1..|
000021b0  a2 1d 20 e7 20 62 20 3e  20 73 61 6d 70 6c 65 62  |.. . b > sampleb|
000021c0  75 66 66 65 72 73 69 7a  65 20 8c 0d 12 ac 0b 20  |uffersize ..... |
000021d0  20 d9 20 23 58 25 0d 12  b6 66 20 20 f2 64 72 6f  | . #X%...f  .dro|
000021e0  6e 67 6f 28 22 59 6f 75  20 64 6f 20 6e 6f 74 20  |ngo("You do not |
000021f0  68 61 76 65 20 65 6e 6f  75 67 68 20 6d 65 6d 6f  |have enough memo|
00002200  72 79 20 74 6f 20 6c 6f  61 64 20 74 68 69 73 20  |ry to load this |
00002210  73 61 6d 70 6c 65 2c 20  49 6e 63 72 65 61 73 65  |sample, Increase|
00002220  20 73 61 6d 70 6c 65 73  69 7a 65 20 69 6e 20 27  | samplesize in '|
00002230  21 52 75 6e 27 20 66 69  6c 65 22 29 0d 12 c0 07  |!Run' file")....|
00002240  20 20 e1 0d 12 ca 06 20  cd 0d 12 d4 04 0d 12 de  |  ..... ........|
00002250  13 20 73 61 6d 70 6c 65  72 61 74 65 20 3d 20 61  |. samplerate = a|
00002260  0d 12 e8 15 20 73 61 6d  70 6c 65 6c 65 6e 67 74  |.... samplelengt|
00002270  68 20 3d 20 62 0d 12 f2  11 20 d6 63 6c 65 61 72  |h = b.... .clear|
00002280  6d 65 6d 6f 72 79 0d 12  fc 32 20 c8 99 20 22 4f  |memory...2 .. "O|
00002290  53 5f 47 42 50 42 22 2c  33 2c 58 25 2c 73 61 6d  |S_GBPB",3,X%,sam|
000022a0  70 6c 65 62 75 66 66 65  72 2c 73 61 6d 70 6c 65  |plebuffer,sample|
000022b0  6c 65 6e 67 74 68 2c 31  0d 13 06 0a 20 d9 20 23  |length,1.... . #|
000022c0  58 25 0d 13 10 04 0d 13  1a 2b 20 f2 61 62 6f 75  |X%.......+ .abou|
000022d0  74 66 69 6c 65 28 22 41  72 6d 61 64 65 75 73 22  |tfile("Armadeus"|
000022e0  2c 22 66 69 6c 65 5f 64  33 63 22 2c 26 44 33 43  |,"file_d3c",&D3C|
000022f0  29 0d 13 24 04 0d 13 2e  1f 20 6e 61 6d 65 24 20  |)..$..... name$ |
00002300  3d 20 a4 67 65 74 6c 65  61 66 6e 61 6d 65 28 66  |= .getleafname(f|
00002310  73 70 24 29 0d 13 38 04  0d 13 42 1e 20 21 77 61  |sp$)..8...B. !wa|
00002320  76 65 62 61 73 65 20 20  3d 20 73 61 6d 70 6c 65  |vebase  = sample|
00002330  62 75 66 66 65 72 0d 13  4c 1e 20 21 6c 65 6e 67  |buffer..L. !leng|
00002340  74 68 20 20 20 20 3d 20  73 61 6d 70 6c 65 6c 65  |th    = samplele|
00002350  6e 67 74 68 0d 13 56 14  20 f4 20 21 66 69 6e 69  |ngth..V. . !fini|
00002360  73 68 65 64 20 3d 20 32  0d 13 60 04 0d 13 6a 17  |shed = 2..`...j.|
00002370  20 73 61 6d 70 6c 65 5f  70 72 65 73 65 6e 74 20  | sample_present |
00002380  3d 20 b9 0d 13 74 10 20  f2 73 68 6f 77 5f 73 74  |= ...t. .show_st|
00002390  61 72 74 0d 13 7e 0d 20  f2 6f 70 65 6e 5f 76 75  |art..~. .open_vu|
000023a0  0d 13 88 0b 20 f2 73 61  76 65 64 0d 13 92 05 e1  |.... .saved.....|
000023b0  0d 13 9c 04 0d 13 a6 04  0d 13 b0 13 dd 20 f2 6c  |............. .l|
000023c0  6f 61 64 5f 74 72 61 63  6b 65 72 0d 13 ba 09 20  |oad_tracker.... |
000023d0  ea 20 58 25 0d 13 c4 04  0d 13 ce 14 20 e7 20 70  |. X%........ . p|
000023e0  6c 61 79 69 6e 67 20 f2  73 74 6f 70 0d 13 d8 04  |laying .stop....|
000023f0  0d 13 e2 11 20 d6 63 6c  65 61 72 6d 65 6d 6f 72  |.... .clearmemor|
00002400  79 0d 13 ec 04 0d 13 f6  11 20 58 25 20 3d 20 8e  |y........ X% = .|
00002410  28 66 73 70 24 29 0d 14  00 18 20 73 61 6d 70 6c  |(fsp$).... sampl|
00002420  65 6c 65 6e 67 74 68 20  3d 20 a2 23 58 25 0d 14  |elength = .#X%..|
00002430  0a 32 20 c8 99 20 22 4f  53 5f 47 42 50 42 22 2c  |.2 .. "OS_GBPB",|
00002440  33 2c 58 25 2c 73 61 6d  70 6c 65 62 75 66 66 65  |3,X%,samplebuffe|
00002450  72 2c 73 61 6d 70 6c 65  6c 65 6e 67 74 68 2c 30  |r,samplelength,0|
00002460  0d 14 14 0a 20 d9 20 23  58 25 0d 14 1e 04 0d 14  |.... . #X%......|
00002470  28 14 20 73 61 6d 70 6c  65 72 61 74 65 20 3d 20  |(. samplerate = |
00002480  33 34 0d 14 32 04 0d 14  3c 2a 20 f2 61 62 6f 75  |34..2...<* .abou|
00002490  74 66 69 6c 65 28 22 54  72 61 63 6b 65 72 22 2c  |tfile("Tracker",|
000024a0  22 66 69 6c 65 5f 63 62  35 22 2c 26 43 42 35 29  |"file_cb5",&CB5)|
000024b0  0d 14 46 04 0d 14 50 1f  20 6e 61 6d 65 24 20 3d  |..F...P. name$ =|
000024c0  20 a4 67 65 74 6c 65 61  66 6e 61 6d 65 28 66 73  | .getleafname(fs|
000024d0  70 24 29 0d 14 5a 04 0d  14 64 1d 20 21 77 61 76  |p$)..Z...d. !wav|
000024e0  65 62 61 73 65 20 3d 20  73 61 6d 70 6c 65 62 75  |ebase = samplebu|
000024f0  66 66 65 72 0d 14 6e 1d  20 21 6c 65 6e 67 74 68  |ffer..n. !length|
00002500  20 20 20 3d 20 73 61 6d  70 6c 65 6c 65 6e 67 74  |   = samplelengt|
00002510  68 0d 14 78 14 20 f4 20  21 66 69 6e 69 73 68 65  |h..x. . !finishe|
00002520  64 20 3d 20 32 0d 14 82  04 0d 14 8c 0e 20 f2 6c  |d = 2........ .l|
00002530  6f 67 74 6f 6c 69 6e 0d  14 96 17 20 73 61 6d 70  |ogtolin.... samp|
00002540  6c 65 5f 70 72 65 73 65  6e 74 20 3d 20 b9 0d 14  |le_present = ...|
00002550  a0 10 20 f2 73 68 6f 77  5f 73 74 61 72 74 0d 14  |.. .show_start..|
00002560  aa 0d 20 f2 6f 70 65 6e  5f 76 75 0d 14 b4 0b 20  |.. .open_vu.... |
00002570  f2 73 61 76 65 64 0d 14  be 05 e1 0d 14 c8 04 0d  |.saved..........|
00002580  14 d2 1a dd 20 f2 61 62  6f 75 74 66 69 6c 65 28  |.... .aboutfile(|
00002590  69 24 2c 73 24 2c 66 74  29 0d 14 dc 09 20 ea 20  |i$,s$,ft).... . |
000025a0  41 25 0d 14 e6 23 20 f2  73 65 74 73 70 72 69 74  |A%...# .setsprit|
000025b0  65 69 63 6f 6e 28 61 62  6f 75 74 66 69 6c 65 2c  |eicon(aboutfile,|
000025c0  35 2c 73 24 29 0d 14 f0  2d 20 f2 73 65 74 74 65  |5,s$)...- .sette|
000025d0  78 74 28 61 62 6f 75 74  66 69 6c 65 2c 32 2c a4  |xt(aboutfile,2,.|
000025e0  67 65 74 6c 65 61 66 6e  61 6d 65 28 66 73 70 24  |getleafname(fsp$|
000025f0  29 29 0d 14 fa 26 20 f2  73 65 74 74 65 78 74 28  |))...& .settext(|
00002600  61 62 6f 75 74 66 69 6c  65 2c 31 2c 69 24 2b 22  |aboutfile,1,i$+"|
00002610  20 22 2b c3 7e 66 74 29  0d 15 04 29 20 f2 73 65  | "+.~ft)...) .se|
00002620  74 74 65 78 74 28 61 62  6f 75 74 66 69 6c 65 2c  |ttext(aboutfile,|
00002630  31 33 2c c3 73 61 6d 70  6c 65 6c 65 6e 67 74 68  |13,.samplelength|
00002640  29 0d 15 0e 25 20 f2 73  65 74 74 65 78 74 28 61  |)...% .settext(a|
00002650  62 6f 75 74 66 69 6c 65  2c 34 2c a4 64 61 74 65  |boutfile,4,.date|
00002660  5f 74 69 6d 65 29 0d 15  18 18 20 41 25 3d 31 45  |_time).... A%=1E|
00002670  36 20 81 20 73 61 6d 70  6c 65 72 61 74 65 0d 15  |6 . samplerate..|
00002680  22 35 20 f2 73 65 74 74  65 78 74 28 61 62 6f 75  |"5 .settext(abou|
00002690  74 66 69 6c 65 2c 33 2c  c3 41 25 2b 22 48 7a 20  |tfile,3,.A%+"Hz |
000026a0  22 2b c3 73 61 6d 70 6c  65 72 61 74 65 2b 22 75  |"+.samplerate+"u|
000026b0  53 22 29 0d 15 2c 05 e1  0d 15 36 04 0d 15 40 04  |S")..,....6...@.|
000026c0  0d 15 4a 0e dd 20 f2 70  6c 61 79 28 78 29 0d 15  |..J.. .play(x)..|
000026d0  54 1b 20 c8 99 20 22 53  6f 75 6e 64 5f 43 6f 6e  |T. .. "Sound_Con|
000026e0  66 69 67 75 72 65 22 2c  31 0d 15 5e 33 20 c8 99  |figure",1..^3 ..|
000026f0  20 22 53 6f 75 6e 64 5f  41 74 74 61 63 68 56 6f  | "Sound_AttachVo|
00002700  69 63 65 22 2c 31 2c 76  6f 69 63 65 69 64 20 b8  |ice",1,voiceid .|
00002710  20 2c 6f 6c 64 76 6f 69  63 65 69 64 0d 15 68 04  | ,oldvoiceid..h.|
00002720  0d 15 72 0d 20 e7 20 76  69 64 63 20 8c 0d 15 7c  |..r. . vidc ...||
00002730  2b 20 20 c8 99 20 22 53  6f 75 6e 64 5f 43 6f 6e  |+  .. "Sound_Con|
00002740  66 69 67 75 72 65 22 2c  2c 2c 73 61 6d 70 6c 65  |figure",,,sample|
00002750  72 61 74 65 2a 31 2e 35  0d 15 86 06 20 cc 0d 15  |rate*1.5.... ...|
00002760  90 27 20 20 c8 99 20 22  53 6f 75 6e 64 5f 43 6f  |.'  .. "Sound_Co|
00002770  6e 66 69 67 75 72 65 22  2c 2c 2c 73 61 6d 70 6c  |nfigure",,,sampl|
00002780  65 72 61 74 65 0d 15 9a  06 20 cd 0d 15 a4 04 0d  |erate.... ......|
00002790  15 ae 07 20 c8 96 0d 15  b8 11 20 d4 20 31 2c 26  |... ...... . 1,&|
000027a0  31 37 46 2c 78 2c 31 0d  15 c2 10 20 70 6c 61 79  |17F,x,1.... play|
000027b0  69 6e 67 20 3d 20 b9 0d  15 cc 07 20 c8 96 0d 15  |ing = ..... ....|
000027c0  d6 05 e1 0d 15 e0 04 0d  15 ea 04 0d 15 f4 0b dd  |................|
000027d0  20 f2 73 74 6f 70 0d 15  fe 12 20 e7 20 ac 20 70  | .stop.... . . p|
000027e0  6c 61 79 69 6e 67 20 e1  0d 16 08 11 20 21 66 6f  |laying ..... !fo|
000027f0  72 63 65 6b 69 6c 6c 3d  31 0d 16 12 14 20 f5 20  |rcekill=1.... . |
00002800  fd 20 21 66 69 6e 69 73  68 65 64 3d 32 0d 16 1c  |. !finished=2...|
00002810  0a 20 c8 96 3a c8 96 0d  16 26 24 20 c8 99 20 22  |. ..:....&$ .. "|
00002820  53 6f 75 6e 64 5f 41 74  74 61 63 68 56 6f 69 63  |Sound_AttachVoic|
00002830  65 22 2c 31 2c 76 6f 69  63 65 31 0d 16 30 0a 20  |e",1,voice1..0. |
00002840  c8 96 3a c8 96 0d 16 3a  27 20 c8 99 20 22 53 6f  |..:....:' .. "So|
00002850  75 6e 64 5f 43 6f 6e 66  69 67 75 72 65 22 2c 2c  |und_Configure",,|
00002860  2c 6f 72 67 73 61 6d 70  72 61 74 65 0d 16 44 0a  |,orgsamprate..D.|
00002870  20 c8 96 3a c8 96 0d 16  4e 10 20 70 6c 61 79 69  | ..:....N. playi|
00002880  6e 67 20 3d 20 a3 0d 16  58 12 20 21 66 69 6e 69  |ng = ...X. !fini|
00002890  73 68 65 64 20 3d 20 30  0d 16 62 1f 20 f2 64 65  |shed = 0..b. .de|
000028a0  73 65 6c 65 63 74 28 6b  65 79 62 6f 61 72 64 2c  |select(keyboard,|
000028b0  6f 6c 64 6b 65 79 29 0d  16 6c 0e 20 6f 6c 64 6b  |oldkey)..l. oldk|
000028c0  65 79 3d 2d 31 0d 16 76  05 e1 0d 16 80 04 0d 16  |ey=-1..v........|
000028d0  8a 04 0d 16 94 14 dd 20  f2 6c 6f 61 64 5f 73 6e  |....... .load_sn|
000028e0  64 73 79 6e 74 68 0d 16  9e 09 20 ea 20 58 25 0d  |dsynth.... . X%.|
000028f0  16 a8 04 0d 16 b2 14 20  e7 20 70 6c 61 79 69 6e  |....... . playin|
00002900  67 20 f2 73 74 6f 70 0d  16 bc 11 20 d6 63 6c 65  |g .stop.... .cle|
00002910  61 72 6d 65 6d 6f 72 79  0d 16 c6 04 0d 16 d0 11  |armemory........|
00002920  20 58 25 20 3d 20 8e 28  66 73 70 24 29 0d 16 da  | X% = .(fsp$)...|
00002930  1c 20 73 61 6d 70 6c 65  6c 65 6e 67 74 68 20 3d  |. samplelength =|
00002940  20 a2 23 58 25 2d 35 34  34 0d 16 e4 34 20 c8 99  | .#X%-544...4 ..|
00002950  20 22 4f 53 5f 47 42 50  42 22 2c 33 2c 58 25 2c  | "OS_GBPB",3,X%,|
00002960  73 61 6d 70 6c 65 62 75  66 66 65 72 2c 73 61 6d  |samplebuffer,sam|
00002970  70 6c 65 6c 65 6e 67 74  68 2c 35 34 34 0d 16 ee  |plelength,544...|
00002980  0a 20 d9 20 23 58 25 0d  16 f8 04 0d 17 02 14 20  |. . #X%........ |
00002990  73 61 6d 70 6c 65 72 61  74 65 20 3d 20 34 38 0d  |samplerate = 48.|
000029a0  17 0c 04 0d 17 16 2b 20  f2 61 62 6f 75 74 66 69  |......+ .aboutfi|
000029b0  6c 65 28 22 53 6e 64 53  79 6e 74 68 22 2c 22 66  |le("SndSynth","f|
000029c0  69 6c 65 5f 64 66 39 22  2c 26 44 46 39 29 0d 17  |ile_df9",&DF9)..|
000029d0  20 04 0d 17 2a 1f 20 6e  61 6d 65 24 20 3d 20 a4  | ...*. name$ = .|
000029e0  67 65 74 6c 65 61 66 6e  61 6d 65 28 66 73 70 24  |getleafname(fsp$|
000029f0  29 0d 17 34 04 0d 17 3e  1d 20 21 77 61 76 65 62  |)..4...>. !waveb|
00002a00  61 73 65 20 3d 20 73 61  6d 70 6c 65 62 75 66 66  |ase = samplebuff|
00002a10  65 72 0d 17 48 1d 20 21  6c 65 6e 67 74 68 20 20  |er..H. !length  |
00002a20  20 3d 20 73 61 6d 70 6c  65 6c 65 6e 67 74 68 0d  | = samplelength.|
00002a30  17 52 14 20 f4 20 21 66  69 6e 69 73 68 65 64 20  |.R. . !finished |
00002a40  3d 20 32 0d 17 5c 04 0d  17 66 17 20 73 61 6d 70  |= 2..\...f. samp|
00002a50  6c 65 5f 70 72 65 73 65  6e 74 20 3d 20 b9 0d 17  |le_present = ...|
00002a60  70 10 20 f2 73 68 6f 77  5f 73 74 61 72 74 0d 17  |p. .show_start..|
00002a70  7a 0d 20 f2 6f 70 65 6e  5f 76 75 0d 17 84 0b 20  |z. .open_vu.... |
00002a80  f2 73 61 76 65 64 0d 17  8e 04 0d 17 98 04 0d 17  |.saved..........|
00002a90  a2 05 e1 0d 17 ac 04 0d  17 b6 2b 20 f2 61 62 6f  |..........+ .abo|
00002aa0  75 74 66 69 6c 65 28 22  41 72 6d 61 64 65 75 73  |utfile("Armadeus|
00002ab0  22 2c 22 66 69 6c 65 5f  64 33 63 22 2c 26 44 33  |","file_d3c",&D3|
00002ac0  43 29 0d 17 c0 2a 20 f2  61 62 6f 75 74 66 69 6c  |C)...* .aboutfil|
00002ad0  65 28 22 54 72 61 63 6b  65 72 22 2c 22 66 69 6c  |e("Tracker","fil|
00002ae0  65 5f 63 62 35 22 2c 26  43 42 35 29 0d 17 ca 2b  |e_cb5",&CB5)...+|
00002af0  20 f2 61 62 6f 75 74 66  69 6c 65 28 22 53 6e 64  | .aboutfile("Snd|
00002b00  53 79 6e 74 68 22 2c 22  66 69 6c 65 5f 64 66 39  |Synth","file_df9|
00002b10  22 2c 26 44 46 39 29 0d  17 d4 04 0d 17 de 13 dd  |",&DF9).........|
00002b20  20 f2 6d 65 6e 75 5f 77  61 72 6e 69 6e 67 0d 17  | .menu_warning..|
00002b30  e8 16 20 ea 20 6d 69 72  2c 6d 69 70 2c 6d 6f 78  |.. . mir,mip,mox|
00002b40  2c 6d 6f 79 0d 17 f2 44  20 c8 99 20 22 4d 65 6e  |,moy...D .. "Men|
00002b50  75 4d 61 6e 61 67 65 72  5f 4d 65 6e 75 57 61 72  |uManager_MenuWar|
00002b60  6e 69 6e 67 22 2c 2c 6d  65 6e 75 73 2c 63 6c 61  |ning",,menus,cla|
00002b70  69 6d 6d 65 6e 75 24 2c  62 6b 20 b8 20 6d 69 72  |immenu$,bk . mir|
00002b80  2c 2c 2c 2c 2c 6d 69 70  0d 17 fc 10 20 6d 6f 78  |,,,,,mip.... mox|
00002b90  20 3d 20 62 6b 21 32 34  0d 18 06 10 20 6d 6f 79  | = bk!24.... moy|
00002ba0  20 3d 20 62 6b 21 32 38  0d 18 10 04 0d 18 1a 0d  | = bk!28........|
00002bb0  20 c8 8e 20 6d 69 72 20  ca 0d 18 24 17 20 20 c9  | .. mir ...$.  .|
00002bc0  20 31 30 30 20 3a 20 f2  73 61 76 65 5f 62 6f 78  | 100 : .save_box|
00002bd0  0d 18 2e 17 20 20 c9 20  31 30 31 20 3a 20 f2 73  |....  . 101 : .s|
00002be0  61 76 65 5f 62 6f 78 0d  18 38 17 20 20 c9 20 31  |ave_box..8.  . 1|
00002bf0  30 32 20 3a 20 f2 73 61  76 65 5f 62 6f 78 0d 18  |02 : .save_box..|
00002c00  42 17 20 20 c9 20 31 30  33 20 3a 20 f2 73 61 76  |B.  . 103 : .sav|
00002c10  65 5f 62 6f 78 0d 18 4c  17 20 20 c9 20 31 30 34  |e_box..L.  . 104|
00002c20  20 3a 20 f2 73 61 76 65  5f 62 6f 78 0d 18 56 17  | : .save_box..V.|
00002c30  20 20 c9 20 31 30 35 20  3a 20 f2 73 61 76 65 5f  |  . 105 : .save_|
00002c40  62 6f 78 0d 18 60 04 0d  18 6a 30 20 20 c9 20 32  |box..`...j0  . 2|
00002c50  35 32 20 3a 20 c8 99 20  63 72 65 61 74 65 73 6d  |52 : .. createsm|
00002c60  2c 2c 61 62 6f 75 74 66  69 6c 65 2c 62 6b 21 32  |,,aboutfile,bk!2|
00002c70  34 2c 62 6b 21 32 38 0d  18 74 2e 20 20 c9 20 32  |4,bk!28..t.  . 2|
00002c80  35 33 20 3a 20 c8 99 20  63 72 65 61 74 65 73 6d  |53 : .. createsm|
00002c90  2c 2c 63 72 65 64 69 74  73 2c 62 6b 21 32 34 2c  |,,credits,bk!24,|
00002ca0  62 6b 21 32 38 0d 18 7e  2e 20 20 c9 20 32 35 34  |bk!28..~.  . 254|
00002cb0  20 3a 20 c8 99 20 63 72  65 61 74 65 73 6d 2c 2c  | : .. createsm,,|
00002cc0  63 72 65 64 69 74 73 2c  62 6b 21 32 34 2c 62 6b  |credits,bk!24,bk|
00002cd0  21 32 38 0d 18 88 06 20  cb 0d 18 92 05 e1 0d 18  |!28.... ........|
00002ce0  9c 04 0d 18 a6 0f dd 20  f2 73 61 76 65 5f 62 6f  |....... .save_bo|
00002cf0  78 0d 18 b0 20 20 c8 99  20 63 72 65 61 74 65 73  |x...  .. creates|
00002d00  6d 2c 2c 73 61 76 65 61  73 2c 6d 6f 78 2c 6d 6f  |m,,saveas,mox,mo|
00002d10  79 0d 18 ba 05 e1 0d 18  c4 04 0d 18 ce 14 dd 20  |y.............. |
00002d20  f2 64 65 73 65 6c 65 63  74 5f 65 63 68 6f 0d 18  |.deselect_echo..|
00002d30  d8 08 20 ea 20 78 0d 18  e2 0e 20 e3 20 78 3d 31  |.. . x.... . x=1|
00002d40  20 b8 20 38 0d 18 ec 18  20 20 f2 64 65 73 65 6c  | . 8....  .desel|
00002d50  65 63 74 28 65 63 68 6f  77 2c 78 29 0d 18 f6 06  |ect(echow,x)....|
00002d60  20 ed 0d 19 00 05 e1 0d  19 0a 04 0d 19 14 0a dd  | ...............|
00002d70  20 f2 61 63 6b 0d 19 1e  0f 20 21 62 6b 20 20 20  | .ack.... !bk   |
00002d80  3d 20 32 30 0d 19 28 10  20 62 6b 21 31 32 20 3d  |= 20..(. bk!12 =|
00002d90  20 72 65 66 0d 19 32 0e  20 62 6b 21 31 36 20 3d  | ref..2. bk!16 =|
00002da0  20 34 0d 19 3c 13 20 c8  99 20 73 65 6e 64 6d 2c  | 4..<. .. sendm,|
00002db0  31 37 2c 62 6b 0d 19 46  05 e1 0d 19 50 04 0d 19  |17,bk..F....P...|
00002dc0  5a 19 dd 20 f2 6f 70 65  6e 77 69 6e 64 6f 77 28  |Z.. .openwindow(|
00002dd0  77 2c 66 75 6c 6c 29 0d  19 64 0b 20 62 6b 21 30  |w,full)..d. bk!0|
00002de0  3d 77 0d 19 6e 23 20 e7  20 ac 20 66 75 6c 6c 20  |=w..n# . . full |
00002df0  8c 20 62 6b 21 30 3d 77  3a c8 99 20 67 65 74 77  |. bk!0=w:.. getw|
00002e00  73 2c 2c 62 6b 0d 19 78  11 20 c8 99 20 6f 70 65  |s,,bk..x. .. ope|
00002e10  6e 77 2c 2c 62 6b 0d 19  82 05 e1 0d 19 8c 04 0d  |nw,,bk..........|
00002e20  19 96 32 dd 20 f2 6f 70  65 6e 63 6f 6f 72 64 73  |..2. .opencoords|
00002e30  28 68 61 6e 64 6c 65 2c  6d 69 6e 78 2c 6d 69 6e  |(handle,minx,min|
00002e40  79 2c 6d 61 78 78 2c 6d  61 78 79 2c 62 61 63 6b  |y,maxx,maxy,back|
00002e50  29 0d 19 a0 0d 20 ea 20  62 25 2c 62 31 25 0d 19  |).... . b%,b1%..|
00002e60  aa 0d 20 62 25 3d 62 6b  2b 33 32 0d 19 b4 0e 20  |.. b%=bk+32.... |
00002e70  62 31 25 3d 62 6b 2b 36  34 0d 19 be 10 20 21 62  |b1%=bk+64.... !b|
00002e80  31 25 3d 68 61 6e 64 6c  65 0d 19 c8 12 20 c8 99  |1%=handle.... ..|
00002e90  20 67 65 74 77 73 2c 2c  62 31 25 0d 19 d2 1d 20  | getws,,b1%.... |
00002ea0  62 25 21 30 3d 68 61 6e  64 6c 65 20 20 3a 20 62  |b%!0=handle  : b|
00002eb0  25 21 34 3d 6d 69 6e 78  0d 19 dc 1e 20 62 25 21  |%!4=minx.... b%!|
00002ec0  38 3d 6d 69 6e 79 20 20  20 20 3a 20 62 25 21 31  |8=miny    : b%!1|
00002ed0  32 3d 6d 61 78 78 0d 19  e6 20 20 62 25 21 31 36  |2=maxx...  b%!16|
00002ee0  3d 6d 61 78 79 20 20 20  3a 20 62 25 21 32 30 3d  |=maxy   : b%!20=|
00002ef0  62 31 25 21 32 30 0d 19  f0 1e 20 62 25 21 32 34  |b1%!20.... b%!24|
00002f00  3d 62 31 25 21 32 34 20  3a 20 62 25 21 32 38 3d  |=b1%!24 : b%!28=|
00002f10  62 61 63 6b 0d 19 fa 11  20 c8 99 20 6f 70 65 6e  |back.... .. open|
00002f20  77 2c 2c 62 25 0d 1a 04  05 e1 0d 1a 0e 04 0d 1a  |w,,b%...........|
00002f30  18 1a dd 20 f2 63 6c 6f  73 65 77 69 6e 64 6f 77  |... .closewindow|
00002f40  28 68 61 6e 64 6c 65 29  0d 1a 22 10 20 62 6b 21  |(handle)..". bk!|
00002f50  30 3d 68 61 6e 64 6c 65  0d 1a 2c 1f 20 c8 99 20  |0=handle..,. .. |
00002f60  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00002f70  77 22 2c 30 2c 62 6b 0d  1a 36 10 20 c8 8e 20 68  |w",0,bk..6. .. h|
00002f80  61 6e 64 6c 65 20 ca 0d  1a 40 1d 20 20 c9 20 76  |andle ...@.  . v|
00002f90  75 6d 65 74 65 72 20 3a  20 76 75 5f 6f 70 65 6e  |umeter : vu_open|
00002fa0  20 3d 20 a3 0d 1a 4a 23  20 20 c9 20 6b 65 79 62  | = ...J#  . keyb|
00002fb0  6f 61 72 64 20 20 3a 20  6b 65 79 62 6f 61 72 64  |oard  : keyboard|
00002fc0  5f 6f 70 65 6e 3d b9 0d  1a 54 06 20 cb 0d 1a 5e  |_open=...T. ...^|
00002fd0  05 e1 0d 1a 68 04 0d 1a  72 14 dd 20 f2 72 65 61  |....h...r.. .rea|
00002fe0  64 74 65 6d 70 6c 61 74  65 73 0d 1a 7c 37 20 c8  |dtemplates..|7 .|
00002ff0  99 20 22 57 69 6d 70 5f  4f 70 65 6e 54 65 6d 70  |. "Wimp_OpenTemp|
00003000  6c 61 74 65 22 2c 2c 22  3c 51 75 69 63 6b 53 6e  |late",,"<QuickSn|
00003010  64 24 44 69 72 3e 2e 54  65 6d 70 6c 61 74 65 73  |d$Dir>.Templates|
00003020  22 0d 1a 86 29 20 20 63  72 65 64 69 74 73 20 20  |"...)  credits  |
00003030  20 3d 20 a4 74 65 6d 70  6c 61 74 65 28 22 63 72  | = .template("cr|
00003040  65 64 69 74 73 22 2c 22  22 29 0d 1a 90 29 20 20  |edits","")...)  |
00003050  76 75 6d 65 74 65 72 20  20 20 3d 20 a4 74 65 6d  |vumeter   = .tem|
00003060  70 6c 61 74 65 28 22 76  75 6d 65 74 65 72 22 2c  |plate("vumeter",|
00003070  22 22 29 0d 1a 9a 28 20  20 73 61 76 65 61 73 20  |"")...(  saveas |
00003080  20 20 20 3d 20 a4 74 65  6d 70 6c 61 74 65 28 22  |   = .template("|
00003090  73 61 76 65 61 73 22 2c  22 22 29 0d 1a a4 2b 20  |saveas","")...+ |
000030a0  20 61 62 6f 75 74 66 69  6c 65 20 3d 20 a4 74 65  | aboutfile = .te|
000030b0  6d 70 6c 61 74 65 28 22  61 62 6f 75 74 66 69 6c  |mplate("aboutfil|
000030c0  65 22 2c 22 22 29 0d 1a  ae 27 20 20 65 63 68 6f  |e","")...'  echo|
000030d0  77 20 20 20 20 20 3d 20  a4 74 65 6d 70 6c 61 74  |w     = .templat|
000030e0  65 28 22 65 63 68 6f 77  22 2c 22 22 29 0d 1a b8  |e("echow","")...|
000030f0  2b 20 20 72 65 73 61 6d  70 6c 65 77 20 3d 20 a4  |+  resamplew = .|
00003100  74 65 6d 70 6c 61 74 65  28 22 72 65 73 61 6d 70  |template("resamp|
00003110  6c 65 77 22 2c 22 22 29  0d 1a c2 2a 20 20 6b 65  |lew","")...*  ke|
00003120  79 62 6f 61 72 64 20 20  3d 20 a4 74 65 6d 70 6c  |yboard  = .templ|
00003130  61 74 65 28 22 6b 65 79  62 6f 61 72 64 22 2c 22  |ate("keyboard","|
00003140  22 29 0d 1a cc 29 20 20  77 65 6c 63 6f 6d 65 20  |")...)  welcome |
00003150  20 20 3d 20 a4 74 65 6d  70 6c 61 74 65 28 22 77  |  = .template("w|
00003160  65 6c 63 6f 6d 65 22 2c  22 22 29 0d 1a d6 1c 20  |elcome","").... |
00003170  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 54 65  |.. "Wimp_CloseTe|
00003180  6d 70 6c 61 74 65 22 0d  1a e0 05 e1 0d 1a ea 04  |mplate".........|
00003190  0d 1a f4 17 dd 20 a4 74  65 6d 70 6c 61 74 65 28  |..... .template(|
000031a0  69 64 24 2c 74 24 29 0d  1a fe 11 20 ea 20 68 61  |id$,t$).... . ha|
000031b0  6e 64 6c 65 2c 70 6f 73  0d 1b 08 68 20 c8 99 20  |ndle,pos...h .. |
000031c0  22 57 69 6d 70 5f 4c 6f  61 64 54 65 6d 70 6c 61  |"Wimp_LoadTempla|
000031d0  74 65 22 2c 2c 62 6b 2c  72 65 6d 61 69 6e 69 6e  |te",,bk,remainin|
000031e0  67 69 63 6f 6e 73 70 61  63 65 2c 69 63 6f 6e 73  |giconspace,icons|
000031f0  70 61 63 65 2b 32 30 34  38 2c 2d 31 2c 69 64 24  |pace+2048,-1,id$|
00003200  2c 30 20 b8 20 2c 2c 72  65 6d 61 69 6e 69 6e 67  |,0 . ,,remaining|
00003210  69 63 6f 6e 73 70 61 63  65 2c 2c 2c 2c 70 6f 73  |iconspace,,,,pos|
00003220  0d 1b 12 31 20 e7 20 70  6f 73 3d 30 20 8c 20 85  |...1 . pos=0 . .|
00003230  20 31 2c 22 54 65 6d 70  6c 61 74 65 20 27 22 2b  | 1,"Template '"+|
00003240  69 64 24 2b 22 27 20 6e  6f 74 20 66 6f 75 6e 64  |id$+"' not found|
00003250  22 0d 1b 1c 0f 20 e7 20  74 24 3c 3e 22 22 20 8c  |".... . t$<>"" .|
00003260  0d 1b 26 16 20 20 e7 20  62 6b 21 35 36 20 80 20  |..&.  . bk!56 . |
00003270  31 3c 3c 38 20 8c 0d 1b  30 12 20 20 20 24 28 62  |1<<8 ...0.   $(b|
00003280  6b 21 37 32 29 3d 74 24  0d 1b 3a 12 20 20 20 62  |k!72)=t$..:.   b|
00003290  6b 21 38 30 3d a9 28 74  24 29 0d 1b 44 07 20 20  |k!80=.(t$)..D.  |
000032a0  cc 0d 1b 4e 12 20 20 20  24 28 62 6b 2b 37 32 29  |...N.   $(bk+72)|
000032b0  3d 74 24 0d 1b 58 07 20  20 cd 0d 1b 62 06 20 cd  |=t$..X.  ...b. .|
000032c0  0d 1b 6c 1e 20 e7 20 69  64 24 3d 22 76 75 6d 65  |..l. . id$="vume|
000032d0  74 65 72 22 20 62 6b 3f  33 35 3d 26 46 46 0d 1b  |ter" bk?35=&FF..|
000032e0  76 28 20 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |v( .. "Wimp_Crea|
000032f0  74 65 57 69 6e 64 6f 77  22 2c 2c 62 6b 20 b8 20  |teWindow",,bk . |
00003300  68 61 6e 64 6c 65 0d 1b  80 0b 3d 68 61 6e 64 6c  |handle....=handl|
00003310  65 0d 1b 8a 04 0d 1b 94  19 dd 20 f2 6d 6f 75 73  |e......... .mous|
00003320  65 63 68 61 6e 67 65 28  6d 6f 75 73 65 29 0d 1b  |echange(mouse)..|
00003330  9e 2a 20 ea 20 62 2c 77  69 6e 64 6f 77 2c 69 63  |.* . b,window,ic|
00003340  6f 6e 2c 78 2c 79 2c 6d  78 2c 6d 79 2c 6d 62 2c  |on,x,y,mx,my,mb,|
00003350  69 6e 64 65 78 2c 52 36  0d 1b a8 12 20 78 20 20  |index,R6.... x  |
00003360  20 20 20 20 3d 20 62 6b  21 30 0d 1b b2 12 20 79  |    = bk!0.... y|
00003370  20 20 20 20 20 20 3d 20  62 6b 21 34 0d 1b bc 12  |      = bk!4....|
00003380  20 62 20 20 20 20 20 20  3d 20 62 6b 21 38 0d 1b  | b      = bk!8..|
00003390  c6 13 20 77 69 6e 64 6f  77 20 3d 20 62 6b 21 31  |.. window = bk!1|
000033a0  32 0d 1b d0 13 20 69 63  6f 6e 20 20 20 3d 20 62  |2.... icon   = b|
000033b0  6b 21 31 36 0d 1b da 15  20 f2 6d 6f 75 73 65 28  |k!16.... .mouse(|
000033c0  6d 78 2c 6d 79 2c 6d 62  29 0d 1b e4 04 0d 1b ee  |mx,my,mb).......|
000033d0  0c 20 e7 20 62 3d 31 20  8c 0d 1b f8 11 20 20 c8  |. . b=1 .....  .|
000033e0  8e 20 77 69 6e 64 6f 77  20 ca 0d 1c 02 18 20 20  |. window .....  |
000033f0  20 c9 20 76 75 6d 65 74  65 72 20 3a 20 f2 73 74  | . vumeter : .st|
00003400  6f 70 0d 1c 0c 24 20 20  20 c9 20 6b 65 79 62 6f  |op...$   . keybo|
00003410  61 72 64 20 20 3a 20 f2  6b 65 79 62 6f 61 72 64  |ard  : .keyboard|
00003420  5f 63 6c 69 63 6b 0d 1c  16 07 20 20 cb 0d 1c 20  |_click....  ... |
00003430  06 20 cd 0d 1c 2a 04 0d  1c 34 0c 20 e7 20 62 3d  |. ...*...4. . b=|
00003440  32 20 8c 0d 1c 3e 11 20  20 c8 8e 20 77 69 6e 64  |2 ...>.  .. wind|
00003450  6f 77 20 ca 0d 1c 48 28  20 20 20 c9 20 69 63 6f  |ow ...H(   . ico|
00003460  6e 62 61 72 20 3a 20 f2  6f 70 65 6e 5f 6d 65 6e  |nbar : .open_men|
00003470  75 28 22 69 63 6f 6e 62  61 72 22 29 0d 1c 52 29  |u("iconbar")..R)|
00003480  20 20 20 c9 20 76 75 6d  65 74 65 72 20 3a 20 f2  |   . vumeter : .|
00003490  6f 70 65 6e 5f 6d 65 6e  75 28 22 6d 61 69 6e 6d  |open_menu("mainm|
000034a0  65 6e 75 22 29 0d 1c 5c  12 20 20 20 c9 20 72 65  |enu")..\.   . re|
000034b0  73 61 6d 70 6c 65 77 0d  1c 66 12 20 20 20 20 e7  |samplew..f.    .|
000034c0  20 69 63 6f 6e 3d 32 20  8c 0d 1c 70 16 20 20 20  | icon=2 ...p.   |
000034d0  20 20 f2 66 6c 61 73 68  5f 6f 72 61 6e 67 65 0d  |  .flash_orange.|
000034e0  1c 7a 1c 20 20 20 20 20  f2 6f 70 65 6e 5f 6d 65  |.z.     .open_me|
000034f0  6e 75 28 22 72 61 74 65  73 22 29 0d 1c 84 09 20  |nu("rates").... |
00003500  20 20 20 cd 0d 1c 8e 04  0d 1c 98 07 20 20 cb 0d  |   .........  ..|
00003510  1c a2 06 20 cd 0d 1c ac  04 0d 1c b6 0c 20 e7 20  |... ......... . |
00003520  62 3d 34 20 8c 0d 1c c0  11 20 20 c8 8e 20 77 69  |b=4 .....  .. wi|
00003530  6e 64 6f 77 20 ca 0d 1c  ca 1d 20 20 20 c9 20 69  |ndow .....   . i|
00003540  63 6f 6e 62 61 72 20 20  20 3a 20 f2 6f 70 65 6e  |conbar   : .open|
00003550  5f 76 75 0d 1c de 20 20  20 20 c9 20 65 63 68 6f  |_vu...    . echo|
00003560  77 20 20 20 20 20 3a 20  f2 65 63 68 6f 5f 63 6c  |w     : .echo_cl|
00003570  69 63 6b 0d 1c e8 25 20  20 20 c9 20 72 65 73 61  |ick...%   . resa|
00003580  6d 70 6c 65 77 20 3a 20  f2 72 65 73 61 6d 70 6c  |mplew : .resampl|
00003590  65 77 5f 63 6c 69 63 6b  0d 1c f2 21 20 20 20 c9  |ew_click...!   .|
000035a0  20 76 75 6d 65 74 65 72  20 20 20 3a 20 f2 70 6c  | vumeter   : .pl|
000035b0  61 79 28 26 32 35 35 30  29 0d 1c fc 24 20 20 20  |ay(&2550)...$   |
000035c0  c9 20 6b 65 79 62 6f 61  72 64 20 20 3a 20 f2 6b  |. keyboard  : .k|
000035d0  65 79 62 6f 61 72 64 5f  63 6c 69 63 6b 0d 1d 06  |eyboard_click...|
000035e0  07 20 20 cb 0d 1d 10 06  20 cd 0d 1d 1a 04 0d 1d  |.  ..... .......|
000035f0  24 05 e1 0d 1d 2e 04 0d  1d 38 04 0d 1d 42 15 dd  |$........8...B..|
00003600  20 f2 6b 65 79 62 6f 61  72 64 5f 63 6c 69 63 6b  | .keyboard_click|
00003610  0d 1d 4c 10 20 e7 20 69  63 6f 6e 3d 37 37 20 8c  |..L. . icon=77 .|
00003620  0d 1d 56 20 20 20 f2 64  65 73 65 6c 65 63 74 28  |..V   .deselect(|
00003630  6b 65 79 62 6f 61 72 64  2c 6f 6c 64 6b 65 79 29  |keyboard,oldkey)|
00003640  0d 1d 60 0f 20 20 6f 6c  64 6b 65 79 3d 2d 31 0d  |..`.  oldkey=-1.|
00003650  1d 6a 19 20 20 61 75 74  6f 6b 65 79 20 3d 20 ac  |.j.  autokey = .|
00003660  20 61 75 74 6f 6b 65 79  0d 1d 74 07 20 20 e1 0d  | autokey..t.  ..|
00003670  1d 7e 06 20 cd 0d 1d 88  04 0d 1d 92 19 20 e7 20  |.~. ......... . |
00003680  69 63 6f 6e 3e 30 20 80  20 69 63 6f 6e 3c 34 39  |icon>0 . icon<49|
00003690  20 8c 0d 1d 9c 20 20 20  f2 64 65 73 65 6c 65 63  | ....   .deselec|
000036a0  74 28 6b 65 79 62 6f 61  72 64 2c 6f 6c 64 6b 65  |t(keyboard,oldke|
000036b0  79 29 0d 1d a6 20 20 20  f2 73 65 6c 65 63 74 69  |y)...   .selecti|
000036c0  63 6f 6e 28 6b 65 79 62  6f 61 72 64 2c 69 63 6f  |con(keyboard,ico|
000036d0  6e 29 0d 1d b0 11 20 20  6f 6c 64 6b 65 79 3d 69  |n)....  oldkey=i|
000036e0  63 6f 6e 0d 1d ba 18 20  20 f2 70 6c 61 79 28 70  |con....  .play(p|
000036f0  69 74 63 68 28 69 63 6f  6e 29 29 0d 1d c4 06 20  |itch(icon)).... |
00003700  cd 0d 1d ce 05 e1 0d 1d  d8 04 0d 1d e2 04 0d 1d  |................|
00003710  ec 16 dd 20 f2 72 65 73  61 6d 70 6c 65 77 5f 63  |... .resamplew_c|
00003720  6c 69 63 6b 0d 1d f6 09  20 ea 20 41 25 0d 1e 00  |lick.... . A%...|
00003730  0e 20 c8 8e 20 69 63 6f  6e 20 ca 0d 1e 0a 0b 20  |. .. icon ..... |
00003740  20 c9 20 32 20 3a 0d 1e  14 14 20 20 20 f2 66 6c  | . 2 :....   .fl|
00003750  61 73 68 5f 6f 72 61 6e  67 65 0d 1e 1e 1a 20 20  |ash_orange....  |
00003760  20 f2 6f 70 65 6e 5f 6d  65 6e 75 28 22 72 61 74  | .open_menu("rat|
00003770  65 73 22 29 0d 1e 28 04  0d 1e 32 0b 20 20 c9 20  |es")..(...2.  . |
00003780  33 20 3a 0d 1e 3c 14 20  20 20 f2 66 6c 61 73 68  |3 :..<.   .flash|
00003790  5f 6f 72 61 6e 67 65 0d  1e 46 23 20 20 20 41 25  |_orange..F#   A%|
000037a0  20 3d 20 bb a4 69 6e 64  69 72 65 63 74 28 72 65  | = ..indirect(re|
000037b0  73 61 6d 70 6c 65 77 2c  31 29 0d 1e 50 18 20 20  |samplew,1)..P.  |
000037c0  20 e7 20 41 25 3c 31 20  84 20 41 25 3e 32 35 35  | . A%<1 . A%>255|
000037d0  20 8c 0d 1e 5a 2a 20 20  20 20 85 20 31 2c 22 4e  | ...Z*    . 1,"N|
000037e0  65 77 20 73 61 6d 70 6c  65 20 72 61 74 65 20 6f  |ew sample rate o|
000037f0  75 74 20 6f 66 20 72 61  6e 67 65 22 0d 1e 64 08  |ut of range"..d.|
00003800  20 20 20 cd 0d 1e 6e 13  20 20 20 e7 20 6c 6d 69  |   ...n.   . lmi|
00003810  72 3d 31 34 38 20 8c 0d  1e 78 15 20 20 20 20 f2  |r=148 ...x.    .|
00003820  72 65 73 61 6d 70 6c 65  28 41 25 29 0d 1e 82 08  |resample(A%)....|
00003830  20 20 20 cc 0d 1e 8c 17  20 20 20 20 73 61 6d 70  |   .....    samp|
00003840  6c 65 72 61 74 65 20 3d  20 41 25 0d 1e 96 1f 20  |lerate = A%.... |
00003850  20 20 20 f2 63 6c 6f 73  65 77 69 6e 64 6f 77 28  |   .closewindow(|
00003860  72 65 73 61 6d 70 6c 65  77 29 0d 1e a0 11 20 20  |resamplew)....  |
00003870  20 20 f2 6d 6f 64 69 66  69 65 64 0d 1e aa 08 20  |  .modified.... |
00003880  20 20 cd 0d 1e b4 04 0d  1e be 0b 20 20 c9 20 34  |  .........  . 4|
00003890  20 3a 0d 1e c8 14 20 20  20 f2 66 6c 61 73 68 5f  | :....   .flash_|
000038a0  6f 72 61 6e 67 65 0d 1e  d2 1e 20 20 20 f2 63 6c  |orange....   .cl|
000038b0  6f 73 65 77 69 6e 64 6f  77 28 72 65 73 61 6d 70  |osewindow(resamp|
000038c0  6c 65 77 29 0d 1e dc 04  0d 1e e6 06 20 cb 0d 1e  |lew)........ ...|
000038d0  f0 05 e1 0d 1e fa 04 0d  1f 04 04 0d 1f 0e 13 dd  |................|
000038e0  20 f2 66 6c 61 73 68 5f  6f 72 61 6e 67 65 0d 1f  | .flash_orange..|
000038f0  18 1d 20 c8 99 20 22 57  69 6d 70 5f 42 6f 72 64  |.. .. "Wimp_Bord|
00003900  65 72 49 63 6f 6e 22 2c  2c 62 6b 0d 1f 22 0b 20  |erIcon",,bk..". |
00003910  62 6b 21 38 3d 30 0d 1f  2c 1d 20 c8 99 20 22 57  |bk!8=0..,. .. "W|
00003920  69 6d 70 5f 42 6f 72 64  65 72 49 63 6f 6e 22 2c  |imp_BorderIcon",|
00003930  2c 62 6b 0d 1f 36 05 e1  0d 1f 40 04 0d 1f 4a 11  |,bk..6....@...J.|
00003940  dd 20 f2 65 63 68 6f 5f  63 6c 69 63 6b 0d 1f 54  |. .echo_click..T|
00003950  18 20 e7 20 69 63 6f 6e  3e 30 20 80 20 69 63 6f  |. . icon>0 . ico|
00003960  6e 3c 39 20 8c 0d 1f 5e  18 20 20 65 63 68 6f 5f  |n<9 ...^.  echo_|
00003970  6c 65 6e 67 74 68 20 3d  20 69 63 6f 6e 0d 1f 68  |length = icon..h|
00003980  07 20 20 e1 0d 1f 72 06  20 cd 0d 1f 7c 04 0d 1f  |.  ...r. ...|...|
00003990  86 0e 20 c8 8e 20 69 63  6f 6e 20 ca 0d 1f 90 0c  |.. .. icon .....|
000039a0  20 20 c9 20 31 31 20 3a  0d 1f 9a 14 20 20 20 f2  |  . 11 :....   .|
000039b0  66 6c 61 73 68 5f 6f 72  61 6e 67 65 0d 1f a4 19  |flash_orange....|
000039c0  20 20 20 f2 65 63 68 6f  28 65 63 68 6f 5f 6c 65  |   .echo(echo_le|
000039d0  6e 67 74 68 29 0d 1f ae  06 20 cb 0d 1f b8 05 e1  |ngth).... ......|
000039e0  0d 1f c2 04 0d 1f cc 14  dd 20 f2 6f 70 65 6e 5f  |......... .open_|
000039f0  6d 65 6e 75 28 6d 24 29  0d 1f d6 15 20 e7 20 6d  |menu(m$).... . m|
00003a00  24 3d 22 69 63 6f 6e 62  61 72 22 20 8c 0d 1f e0  |$="iconbar" ....|
00003a10  30 20 20 c8 99 20 22 4d  65 6e 75 4d 61 6e 61 67  |0  .. "MenuManag|
00003a20  65 72 5f 4f 70 65 6e 49  63 6f 6e 42 61 72 4d 65  |er_OpenIconBarMe|
00003a30  6e 75 22 2c 2c 6d 65 6e  75 73 2c 6d 24 0d 1f ea  |nu",,menus,m$...|
00003a40  06 20 cc 0d 1f f4 29 20  20 c8 99 20 22 4d 65 6e  |. ....)  .. "Men|
00003a50  75 4d 61 6e 61 67 65 72  5f 4f 70 65 6e 4d 65 6e  |uManager_OpenMen|
00003a60  75 22 2c 2c 6d 65 6e 75  73 2c 6d 24 0d 1f fe 06  |u",,menus,m$....|
00003a70  20 cd 0d 20 08 14 20 63  6c 61 69 6d 6d 65 6e 75  | .. .. claimmenu|
00003a80  24 20 3d 20 6d 24 0d 20  12 05 e1 0d 20 1c 04 0d  |$ = m$. .... ...|
00003a90  20 26 0e dd 20 f2 6f 70  65 6e 5f 76 75 0d 20 30  | &.. .open_vu. 0|
00003aa0  19 20 e7 20 ac 20 73 61  6d 70 6c 65 5f 70 72 65  |. . . sample_pre|
00003ab0  73 65 6e 74 20 e1 0d 20  3a 10 20 e7 20 76 75 5f  |sent .. :. . vu_|
00003ac0  6f 70 65 6e 20 8c 0d 20  44 15 20 20 f2 66 72 6f  |open .. D.  .fro|
00003ad0  6e 74 28 76 75 6d 65 74  65 72 29 0d 20 4e 06 20  |nt(vumeter). N. |
00003ae0  cc 0d 20 58 11 20 20 76  75 5f 6f 70 65 6e 20 3d  |.. X.  vu_open =|
00003af0  20 b9 0d 20 62 16 20 20  f2 66 72 6f 6e 74 31 28  | .. b.  .front1(|
00003b00  76 75 6d 65 74 65 72 29  0d 20 6c 06 20 cd 0d 20  |vumeter). l. .. |
00003b10  76 05 e1 0d 20 80 04 0d  20 8a 14 dd 20 f2 6f 70  |v... ... ... .op|
00003b20  65 6e 5f 6b 65 79 62 6f  61 72 64 0d 20 94 16 20  |en_keyboard. .. |
00003b30  e7 20 6b 65 79 62 6f 61  72 64 5f 6f 70 65 6e 20  |. keyboard_open |
00003b40  8c 0d 20 9e 16 20 20 f2  66 72 6f 6e 74 28 6b 65  |.. ..  .front(ke|
00003b50  79 62 6f 61 72 64 29 0d  20 a8 06 20 cc 0d 20 b2  |yboard). .. .. .|
00003b60  17 20 20 f2 66 72 6f 6e  74 31 28 6b 65 79 62 6f  |.  .front1(keybo|
00003b70  61 72 64 29 0d 20 bc 15  20 20 6b 65 79 62 6f 61  |ard). ..  keyboa|
00003b80  72 64 5f 6f 70 65 6e 3d  b9 0d 20 c6 06 20 cd 0d  |rd_open=.. .. ..|
00003b90  20 d0 05 e1 0d 20 da 04  0d 20 e4 14 dd 20 f2 6d  | .... ... ... .m|
00003ba0  65 6e 75 73 65 6c 65 63  74 28 62 29 0d 20 ee 13  |enuselect(b). ..|
00003bb0  20 ea 20 6d 78 2c 6d 79  2c 6d 62 2c 6d 69 72 0d  | . mx,my,mb,mir.|
00003bc0  20 f8 04 0d 21 02 15 20  f2 6d 6f 75 73 65 28 6d  | ...!.. .mouse(m|
00003bd0  78 2c 6d 79 2c 6d 62 29  0d 21 0c 43 20 c8 99 20  |x,my,mb).!.C .. |
00003be0  22 4d 65 6e 75 4d 61 6e  61 67 65 72 5f 44 65 63  |"MenuManager_Dec|
00003bf0  6f 64 65 4d 65 6e 75 22  2c 2c 6d 65 6e 75 73 2c  |odeMenu",,menus,|
00003c00  63 6c 61 69 6d 6d 65 6e  75 24 2c 62 6b 20 b8 20  |claimmenu$,bk . |
00003c10  6d 69 72 2c 2c 2c 2c 2c  6d 69 70 0d 21 16 04 0d  |mir,,,,,mip.!...|
00003c20  21 20 0d 20 c8 8e 20 6d  69 72 20 ca 0d 21 2a 04  |! . .. mir ..!*.|
00003c30  0d 21 34 15 20 20 c9 20  31 33 30 20 3a 20 f2 73  |.!4.  . 130 : .s|
00003c40  69 67 6e 65 64 0d 21 3e  17 20 20 c9 20 31 33 31  |igned.!>.  . 131|
00003c50  20 3a 20 f2 6c 6f 67 74  6f 6c 69 6e 0d 21 48 17  | : .logtolin.!H.|
00003c60  20 20 c9 20 31 33 32 20  3a 20 f2 6c 69 6e 74 6f  |  . 132 : .linto|
00003c70  6c 6f 67 0d 21 52 04 0d  21 5c 0f 20 20 c9 20 31  |log.!R..!\.  . 1|
00003c80  34 37 2c 31 34 38 0d 21  66 19 20 20 20 e7 20 73  |47,148.!f.   . s|
00003c90  61 6d 70 6c 65 5f 70 72  65 73 65 6e 74 20 8c 0d  |ample_present ..|
00003ca0  21 70 1f 20 20 20 20 f2  63 6c 6f 73 65 77 69 6e  |!p.    .closewin|
00003cb0  64 6f 77 28 72 65 73 61  6d 70 6c 65 77 29 0d 21  |dow(resamplew).!|
00003cc0  7a 29 20 20 20 20 f2 73  65 74 74 65 78 74 28 72  |z)    .settext(r|
00003cd0  65 73 61 6d 70 6c 65 77  2c 30 2c c3 73 61 6d 70  |esamplew,0,.samp|
00003ce0  6c 65 72 61 74 65 29 0d  21 84 22 20 20 20 20 f2  |lerate).!."    .|
00003cf0  73 65 74 74 65 78 74 28  72 65 73 61 6d 70 6c 65  |settext(resample|
00003d00  77 2c 31 2c 22 34 38 22  29 0d 21 8e 18 20 20 20  |w,1,"48").!..   |
00003d10  20 f2 6d 6f 75 73 65 28  6d 78 2c 6d 79 2c 6d 62  | .mouse(mx,my,mb|
00003d20  29 0d 21 98 12 20 20 20  20 6c 6d 69 72 20 3d 20  |).!..    lmir = |
00003d30  6d 69 72 0d 21 a2 20 20  20 20 20 f2 77 69 6e 64  |mir.!.     .wind|
00003d40  6f 77 5f 74 69 74 6c 65  28 72 65 73 61 6d 70 6c  |ow_title(resampl|
00003d50  65 77 29 0d 21 ac 1a 20  20 20 20 f2 66 72 6f 6e  |ew).!..    .fron|
00003d60  74 31 28 72 65 73 61 6d  70 6c 65 77 29 0d 21 b6  |t1(resamplew).!.|
00003d70  08 20 20 20 cd 0d 21 c0  04 0d 21 ca 0d 20 20 c9  |.   ..!...!..  .|
00003d80  20 31 34 39 20 3a 0d 21  d4 19 20 20 20 e7 20 73  | 149 :.!..   . s|
00003d90  61 6d 70 6c 65 5f 70 72  65 73 65 6e 74 20 8c 0d  |ample_present ..|
00003da0  21 de 16 20 20 20 20 f2  64 65 73 65 6c 65 63 74  |!..    .deselect|
00003db0  5f 65 63 68 6f 0d 21 e8  1c 20 20 20 20 f2 73 65  |_echo.!..    .se|
00003dc0  6c 65 63 74 69 63 6f 6e  28 65 63 68 6f 77 2c 34  |lecticon(echow,4|
00003dd0  29 0d 21 f2 17 20 20 20  20 65 63 68 6f 5f 6c 65  |).!..    echo_le|
00003de0  6e 67 74 68 20 3d 20 34  0d 21 fc 1f 20 20 20 20  |ngth = 4.!..    |
00003df0  c8 99 20 63 72 65 61 74  65 6d 2c 2c 65 63 68 6f  |.. createm,,echo|
00003e00  77 2c 6d 78 2c 6d 79 0d  22 06 08 20 20 20 cd 0d  |w,mx,my."..   ..|
00003e10  22 10 04 0d 22 1a 16 20  20 c9 20 31 35 30 20 3a  |"..."..  . 150 :|
00003e20  20 f2 72 65 76 65 72 73  65 0d 22 24 14 20 20 c9  | .reverse."$.  .|
00003e30  20 31 35 31 20 3a 20 f2  73 63 61 6c 65 0d 22 2e  | 151 : .scale.".|
00003e40  1c 20 20 c9 20 31 30 36  20 3a 20 f2 6f 70 65 6e  |.  . 106 : .open|
00003e50  5f 6b 65 79 62 6f 61 72  64 0d 22 38 04 0d 22 42  |_keyboard."8.."B|
00003e60  1e 20 20 c9 20 32 34 39  20 20 20 20 20 3a 20 f2  |.  . 249     : .|
00003e70  74 6f 67 67 6c 65 5f 76  69 64 63 0d 22 4c 22 20  |toggle_vidc."L" |
00003e80  20 c9 20 32 35 30 20 20  20 20 20 3a 20 f2 74 6f  | . 250     : .to|
00003e90  67 67 6c 65 5f 6c 65 61  66 6e 61 6d 65 0d 22 56  |ggle_leafname."V|
00003ea0  2b 20 20 c9 20 32 35 33  2c 32 35 34 20 3a 20 c8  |+  . 253,254 : .|
00003eb0  99 20 63 72 65 61 74 65  6d 2c 2c 63 72 65 64 69  |. createm,,credi|
00003ec0  74 73 2c 6d 78 2c 6d 79  0d 22 60 1c 20 20 c9 20  |ts,mx,my."`.  . |
00003ed0  32 35 35 20 20 20 20 20  3a 20 f2 6d 65 6e 75 5f  |255     : .menu_|
00003ee0  71 75 69 74 0d 22 6a 04  0d 22 74 28 20 20 c9 20  |quit."j.."t(  . |
00003ef0  33 30 30 20 3a 20 f2 73  65 74 74 65 78 74 28 72  |300 : .settext(r|
00003f00  65 73 61 6d 70 6c 65 77  2c 31 2c 22 32 34 22 29  |esamplew,1,"24")|
00003f10  0d 22 7e 28 20 20 c9 20  33 30 31 20 3a 20 f2 73  |."~(  . 301 : .s|
00003f20  65 74 74 65 78 74 28 72  65 73 61 6d 70 6c 65 77  |ettext(resamplew|
00003f30  2c 31 2c 22 33 34 22 29  0d 22 88 28 20 20 c9 20  |,1,"34").".(  . |
00003f40  33 30 32 20 3a 20 f2 73  65 74 74 65 78 74 28 72  |302 : .settext(r|
00003f50  65 73 61 6d 70 6c 65 77  2c 31 2c 22 34 38 22 29  |esamplew,1,"48")|
00003f60  0d 22 92 28 20 20 c9 20  33 30 33 20 3a 20 f2 73  |.".(  . 303 : .s|
00003f70  65 74 74 65 78 74 28 72  65 73 61 6d 70 6c 65 77  |ettext(resamplew|
00003f80  2c 31 2c 22 39 36 22 29  0d 22 9c 06 20 cb 0d 22  |,1,"96").".. .."|
00003f90  a6 04 0d 22 b0 1c 20 e7  20 6d 69 72 3c 3e 32 35  |...".. . mir<>25|
00003fa0  33 20 80 20 6d 69 72 3c  3e 32 35 34 20 8c 0d 22  |3 . mir<>254 .."|
00003fb0  ba 0e 20 20 e7 20 6d 62  3d 31 20 8c 0d 22 c4 34  |..  . mb=1 ..".4|
00003fc0  20 20 20 c8 99 20 22 4d  65 6e 75 4d 61 6e 61 67  |   .. "MenuManag|
00003fd0  65 72 5f 52 65 4f 70 65  6e 4d 65 6e 75 22 2c 2c  |er_ReOpenMenu",,|
00003fe0  6d 65 6e 75 73 2c 63 6c  61 69 6d 6d 65 6e 75 24  |menus,claimmenu$|
00003ff0  0d 22 ce 07 20 20 cd 0d  22 d8 06 20 cd 0d 22 e2  |."..  ..".. ..".|
00004000  04 0d 22 ec 05 e1 0d 22  f6 04 0d 23 00 12 dd 20  |.."...."...#... |
00004010  f2 74 6f 67 67 6c 65 5f  76 69 64 63 0d 23 0a 12  |.toggle_vidc.#..|
00004020  20 76 69 64 63 20 3d 20  ac 20 76 69 64 63 0d 23  | vidc = . vidc.#|
00004030  14 0d 20 e7 20 76 69 64  63 20 8c 0d 23 1e 32 20  |.. . vidc ..#.2 |
00004040  20 c8 99 20 22 4d 65 6e  75 4d 61 6e 61 67 65 72  | .. "MenuManager|
00004050  5f 54 69 63 6b 4d 65 6e  75 49 74 65 6d 22 2c 32  |_TickMenuItem",2|
00004060  34 39 2c 6d 65 6e 75 73  2c 2c 2c 2c 31 0d 23 28  |49,menus,,,,1.#(|
00004070  06 20 cc 0d 23 32 2d 20  20 c8 99 20 22 4d 65 6e  |. ..#2-  .. "Men|
00004080  75 4d 61 6e 61 67 65 72  5f 54 69 63 6b 4d 65 6e  |uManager_TickMen|
00004090  75 49 74 65 6d 22 2c 32  34 39 2c 6d 65 6e 75 73  |uItem",249,menus|
000040a0  0d 23 3c 06 20 cd 0d 23  46 05 e1 0d 23 50 04 0d  |.#<. ..#F...#P..|
000040b0  23 5a 16 dd 20 f2 74 6f  67 67 6c 65 5f 6c 65 61  |#Z.. .toggle_lea|
000040c0  66 6e 61 6d 65 0d 23 64  20 20 75 73 65 6c 65 61  |fname.#d  uselea|
000040d0  66 6e 61 6d 65 20 3d 20  ac 20 75 73 65 6c 65 61  |fname = . uselea|
000040e0  66 6e 61 6d 65 0d 23 6e  14 20 e7 20 75 73 65 6c  |fname.#n. . usel|
000040f0  65 61 66 6e 61 6d 65 20  8c 0d 23 78 32 20 20 c8  |eafname ..#x2  .|
00004100  99 20 22 4d 65 6e 75 4d  61 6e 61 67 65 72 5f 54  |. "MenuManager_T|
00004110  69 63 6b 4d 65 6e 75 49  74 65 6d 22 2c 32 35 30  |ickMenuItem",250|
00004120  2c 6d 65 6e 75 73 2c 2c  2c 2c 31 0d 23 82 06 20  |,menus,,,,1.#.. |
00004130  cc 0d 23 8c 2d 20 20 c8  99 20 22 4d 65 6e 75 4d  |..#.-  .. "MenuM|
00004140  61 6e 61 67 65 72 5f 54  69 63 6b 4d 65 6e 75 49  |anager_TickMenuI|
00004150  74 65 6d 22 2c 32 35 30  2c 6d 65 6e 75 73 0d 23  |tem",250,menus.#|
00004160  96 06 20 cd 0d 23 a0 05  e1 0d 23 aa 04 0d 23 b4  |.. ..#....#...#.|
00004170  10 dd 20 f2 6d 65 6e 75  5f 71 75 69 74 0d 23 be  |.. .menu_quit.#.|
00004180  14 20 e7 20 73 61 76 65  64 20 f2 66 69 6e 69 73  |. . saved .finis|
00004190  68 0d 23 c8 48 20 e7 20  a4 61 73 6b 28 22 53 61  |h.#.H . .ask("Sa|
000041a0  6d 70 6c 65 20 6e 6f 74  20 73 61 76 65 64 2c 20  |mple not saved, |
000041b0  41 72 65 20 79 6f 75 20  73 75 72 65 20 79 6f 75  |Are you sure you|
000041c0  20 77 61 6e 74 20 74 6f  20 71 75 69 74 22 29 20  | want to quit") |
000041d0  8c 20 f2 66 69 6e 69 73  68 0d 23 d2 05 e1 0d 23  |. .finish.#....#|
000041e0  dc 04 0d 23 e6 0c dd 20  f2 73 63 61 6c 65 0d 23  |...#... .scale.#|
000041f0  f0 0d 20 f2 77 61 69 74  70 74 72 0d 23 fa 14 20  |.. .waitptr.#.. |
00004200  41 25 3d 73 61 6d 70 6c  65 62 75 66 66 65 72 0d  |A%=samplebuffer.|
00004210  24 04 23 20 42 25 3d 73  61 6d 70 6c 65 62 75 66  |$.# B%=samplebuf|
00004220  66 65 72 20 2b 20 73 61  6d 70 6c 65 6c 65 6e 67  |fer + sampleleng|
00004230  74 68 0d 24 0e 0b 20 43  25 3d 31 32 37 0d 24 18  |th.$.. C%=127.$.|
00004240  0c 20 d6 20 73 63 61 6c  65 0d 24 22 0e 20 f2 6d  |. . scale.$". .m|
00004250  6f 64 69 66 69 65 64 0d  24 2c 0e 20 f2 61 72 72  |odified.$,. .arr|
00004260  6f 77 70 74 72 0d 24 36  05 e1 0d 24 40 04 0d 24  |owptr.$6...$@..$|
00004270  4a 0d dd 20 f2 73 69 67  6e 65 64 0d 24 54 0d 20  |J.. .signed.$T. |
00004280  f2 77 61 69 74 70 74 72  0d 24 5e 14 20 41 25 3d  |.waitptr.$^. A%=|
00004290  73 61 6d 70 6c 65 62 75  66 66 65 72 0d 24 68 23  |samplebuffer.$h#|
000042a0  20 42 25 3d 73 61 6d 70  6c 65 62 75 66 66 65 72  | B%=samplebuffer|
000042b0  20 2b 20 73 61 6d 70 6c  65 6c 65 6e 67 74 68 0d  | + samplelength.|
000042c0  24 72 0e 20 d6 20 63 6f  6e 76 65 72 74 0d 24 7c  |$r. . convert.$||
000042d0  0e 20 f2 6d 6f 64 69 66  69 65 64 0d 24 86 0e 20  |. .modified.$.. |
000042e0  f2 61 72 72 6f 77 70 74  72 0d 24 90 05 e1 0d 24  |.arrowptr.$....$|
000042f0  9a 04 0d 24 a4 0f dd 20  f2 6c 6f 67 74 6f 6c 69  |...$... .logtoli|
00004300  6e 0d 24 ae 0d 20 f2 77  61 69 74 70 74 72 0d 24  |n.$.. .waitptr.$|
00004310  b8 14 20 41 25 3d 73 61  6d 70 6c 65 62 75 66 66  |.. A%=samplebuff|
00004320  65 72 0d 24 c2 23 20 42  25 3d 73 61 6d 70 6c 65  |er.$.# B%=sample|
00004330  62 75 66 66 65 72 20 2b  20 73 61 6d 70 6c 65 6c  |buffer + samplel|
00004340  65 6e 67 74 68 0d 24 cc  0f 20 d6 20 6c 6f 67 74  |ength.$.. . logt|
00004350  6f 6c 69 6e 0d 24 d6 0e  20 f2 6d 6f 64 69 66 69  |olin.$.. .modifi|
00004360  65 64 0d 24 e0 0e 20 f2  61 72 72 6f 77 70 74 72  |ed.$.. .arrowptr|
00004370  0d 24 ea 05 e1 0d 24 f4  04 0d 24 fe 0f dd 20 f2  |.$....$...$... .|
00004380  6c 69 6e 74 6f 6c 6f 67  0d 25 08 0d 20 f2 77 61  |lintolog.%.. .wa|
00004390  69 74 70 74 72 0d 25 12  14 20 41 25 3d 73 61 6d  |itptr.%.. A%=sam|
000043a0  70 6c 65 62 75 66 66 65  72 0d 25 1c 23 20 42 25  |plebuffer.%.# B%|
000043b0  3d 73 61 6d 70 6c 65 62  75 66 66 65 72 20 2b 20  |=samplebuffer + |
000043c0  73 61 6d 70 6c 65 6c 65  6e 67 74 68 0d 25 26 0f  |samplelength.%&.|
000043d0  20 d6 20 6c 69 6e 74 6f  6c 6f 67 0d 25 30 0e 20  | . lintolog.%0. |
000043e0  f2 6d 6f 64 69 66 69 65  64 0d 25 3a 0e 20 f2 61  |.modified.%:. .a|
000043f0  72 72 6f 77 70 74 72 0d  25 44 05 e1 0d 25 4e 04  |rrowptr.%D...%N.|
00004400  0d 25 58 0e dd 20 f2 72  65 76 65 72 73 65 0d 25  |.%X.. .reverse.%|
00004410  62 0d 20 f2 77 61 69 74  70 74 72 0d 25 6c 14 20  |b. .waitptr.%l. |
00004420  41 25 3d 73 61 6d 70 6c  65 62 75 66 66 65 72 0d  |A%=samplebuffer.|
00004430  25 76 21 20 42 25 3d 73  61 6d 70 6c 65 62 75 66  |%v! B%=samplebuf|
00004440  66 65 72 2b 73 61 6d 70  6c 65 6c 65 6e 67 74 68  |fer+samplelength|
00004450  0d 25 80 0d 20 d6 72 65  76 65 72 73 65 0d 25 8a  |.%.. .reverse.%.|
00004460  0e 20 f2 6d 6f 64 69 66  69 65 64 0d 25 94 0e 20  |. .modified.%.. |
00004470  f2 61 72 72 6f 77 70 74  72 0d 25 9e 05 e1 0d 25  |.arrowptr.%....%|
00004480  a8 04 0d 25 b2 0e dd 20  f2 65 63 68 6f 28 78 29  |...%... .echo(x)|
00004490  0d 25 bc 0d 20 f2 77 61  69 74 70 74 72 0d 25 c6  |.%.. .waitptr.%.|
000044a0  0c 20 ea 20 64 65 6c 61  79 0d 25 d0 12 20 64 65  |. . delay.%.. de|
000044b0  6c 61 79 20 3d 20 78 2a  35 30 30 0d 25 da 04 0d  |lay = x*500.%...|
000044c0  25 e4 14 20 41 25 3d 73  61 6d 70 6c 65 62 75 66  |%.. A%=samplebuf|
000044d0  66 65 72 0d 25 ee 21 20  42 25 3d 73 61 6d 70 6c  |fer.%.! B%=sampl|
000044e0  65 62 75 66 66 65 72 2b  73 61 6d 70 6c 65 6c 65  |ebuffer+samplele|
000044f0  6e 67 74 68 0d 25 f8 04  0d 26 02 2e 20 e7 20 73  |ngth.%...&.. . s|
00004500  61 6d 70 6c 65 6c 65 6e  67 74 68 2b 64 65 6c 61  |amplelength+dela|
00004510  79 20 3e 20 73 61 6d 70  6c 65 62 75 66 66 65 72  |y > samplebuffer|
00004520  73 69 7a 65 20 8c 0d 26  0c 2c 20 20 42 25 3d 73  |size ..&.,  B%=s|
00004530  61 6d 70 6c 65 62 75 66  66 65 72 2b 73 61 6d 70  |amplebuffer+samp|
00004540  6c 65 62 75 66 66 65 72  73 69 7a 65 2d 64 65 6c  |lebuffersize-del|
00004550  61 79 0d 26 16 06 20 cc  0d 26 20 1b 20 20 73 61  |ay.&.. ..& .  sa|
00004560  6d 70 6c 65 6c 65 6e 67  74 68 20 2b 3d 20 64 65  |mplelength += de|
00004570  6c 61 79 0d 26 2a 06 20  cd 0d 26 34 04 0d 26 3e  |lay.&*. ..&4..&>|
00004580  0d 20 43 25 3d 64 65 6c  61 79 0d 26 48 0a 20 d6  |. C%=delay.&H. .|
00004590  65 63 68 6f 0d 26 52 0e  20 f2 6d 6f 64 69 66 69  |echo.&R. .modifi|
000045a0  65 64 0d 26 5c 0f 20 f2  63 6c 6f 73 65 6d 65 6e  |ed.&\. .closemen|
000045b0  75 0d 26 66 0e 20 f2 61  72 72 6f 77 70 74 72 0d  |u.&f. .arrowptr.|
000045c0  26 70 05 e1 0d 26 7a 04  0d 26 84 0f dd 20 f2 6d  |&p...&z..&... .m|
000045d0  6f 64 69 66 69 65 64 0d  26 8e 09 20 ea 20 41 25  |odified.&.. . A%|
000045e0  0d 26 98 0e 20 73 61 76  65 64 20 3d 20 a3 0d 26  |.&.. saved = ..&|
000045f0  a2 20 20 f2 73 65 74 74  65 78 74 28 61 62 6f 75  |.  .settext(abou|
00004600  74 66 69 6c 65 2c 30 2c  22 59 65 73 22 29 0d 26  |tfile,0,"Yes").&|
00004610  ac 29 20 f2 73 65 74 74  65 78 74 28 61 62 6f 75  |.) .settext(abou|
00004620  74 66 69 6c 65 2c 31 33  2c c3 73 61 6d 70 6c 65  |tfile,13,.sample|
00004630  6c 65 6e 67 74 68 29 0d  26 b6 1b 20 f2 77 69 6e  |length).&.. .win|
00004640  64 6f 77 5f 74 69 74 6c  65 28 76 75 6d 65 74 65  |dow_title(vumete|
00004650  72 29 0d 26 c0 18 20 41  25 3d 31 45 36 20 81 20  |r).&.. A%=1E6 . |
00004660  73 61 6d 70 6c 65 72 61  74 65 0d 26 ca 35 20 f2  |samplerate.&.5 .|
00004670  73 65 74 74 65 78 74 28  61 62 6f 75 74 66 69 6c  |settext(aboutfil|
00004680  65 2c 33 2c c3 41 25 2b  22 48 7a 20 22 2b c3 73  |e,3,.A%+"Hz "+.s|
00004690  61 6d 70 6c 65 72 61 74  65 2b 22 75 53 22 29 0d  |amplerate+"uS").|
000046a0  26 d4 05 e1 0d 26 de 04  0d 26 e8 0c dd 20 f2 73  |&....&...&... .s|
000046b0  61 76 65 64 0d 26 f2 0e  20 73 61 76 65 64 20 3d  |aved.&.. saved =|
000046c0  20 b9 0d 26 fc 1f 20 f2  73 65 74 74 65 78 74 28  | ..&.. .settext(|
000046d0  61 62 6f 75 74 66 69 6c  65 2c 30 2c 22 4e 6f 22  |aboutfile,0,"No"|
000046e0  29 0d 27 06 1b 20 f2 77  69 6e 64 6f 77 5f 74 69  |).'.. .window_ti|
000046f0  74 6c 65 28 76 75 6d 65  74 65 72 29 0d 27 10 05  |tle(vumeter).'..|
00004700  e1 0d 27 1a 04 0d 27 24  17 dd 20 f2 64 72 6f 6e  |..'...'$.. .dron|
00004710  67 6f 28 6d 65 73 73 61  67 65 24 29 0d 27 2e 0b  |go(message$).'..|
00004720  20 62 6b 21 30 3d 30 0d  27 38 15 20 24 28 62 6b  | bk!0=0.'8. $(bk|
00004730  2b 34 29 3d 6d 65 73 73  61 67 65 24 0d 27 42 31  |+4)=message$.'B1|
00004740  20 c8 99 20 22 57 69 6d  70 5f 52 65 70 6f 72 74  | .. "Wimp_Report|
00004750  45 72 72 6f 72 22 2c 62  6b 2c 25 30 30 30 30 30  |Error",bk,%00000|
00004760  30 31 2c 70 72 6f 67 74  69 74 6c 65 24 0d 27 4c  |01,progtitle$.'L|
00004770  05 e1 0d 27 56 04 0d 27  60 0d dd 20 f2 66 69 6e  |...'V..'`.. .fin|
00004780  69 73 68 0d 27 6a 24 20  c8 99 20 22 53 6f 75 6e  |ish.'j$ .. "Soun|
00004790  64 5f 41 74 74 61 63 68  56 6f 69 63 65 22 2c 31  |d_AttachVoice",1|
000047a0  2c 76 6f 69 63 65 31 0d  27 74 24 20 c8 99 20 22  |,voice1.'t$ .. "|
000047b0  53 6f 75 6e 64 5f 52 65  6d 6f 76 65 56 6f 69 63  |Sound_RemoveVoic|
000047c0  65 22 2c 2c 76 6f 69 63  65 69 64 0d 27 7e 1b 20  |e",,voiceid.'~. |
000047d0  c8 99 20 22 4f 53 5f 4d  6f 64 75 6c 65 22 2c 37  |.. "OS_Module",7|
000047e0  2c 2c 63 6f 64 65 0d 27  88 2c 20 c8 99 20 22 57  |,,code.'., .. "W|
000047f0  69 6d 70 5f 52 65 6c 65  61 73 65 49 6e 74 65 72  |imp_ReleaseInter|
00004800  66 61 63 65 22 2c 74 61  73 6b 5f 68 61 6e 64 6c  |face",task_handl|
00004810  65 25 0d 27 92 18 20 c8  99 20 22 57 69 6d 70 5f  |e%.'.. .. "Wimp_|
00004820  43 6c 6f 73 65 44 6f 77  6e 22 0d 27 9c 06 20 e0  |CloseDown".'.. .|
00004830  0d 27 a6 05 e1 0d 27 b0  04 0d 27 ba 13 dd 20 a4  |.'....'...'... .|
00004840  69 63 6f 6e 5f 69 63 6f  6e 62 61 72 0d 27 c4 0d  |icon_iconbar.'..|
00004850  20 ea 20 68 61 6e 64 6c  65 0d 27 ce 0c 20 62 6b  | . handle.'.. bk|
00004860  21 30 3d 2d 31 0d 27 d8  0b 20 62 6b 21 34 3d 30  |!0=-1.'.. bk!4=0|
00004870  0d 27 e2 0d 20 62 6b 21  38 3d 2d 31 36 0d 27 ec  |.'.. bk!8=-16.'.|
00004880  0d 20 62 6b 21 31 32 3d  38 30 0d 27 f6 0d 20 62  |. bk!12=80.'.. b|
00004890  6b 21 31 36 3d 38 38 0d  28 00 14 20 62 6b 21 32  |k!16=88.(.. bk!2|
000048a0  30 3d 26 31 37 30 30 33  30 33 41 0d 28 0a 19 20  |0=&1700303A.(.. |
000048b0  24 28 62 6b 2b 32 34 29  3d 22 21 71 75 69 63 6b  |$(bk+24)="!quick|
000048c0  73 6e 64 22 0d 28 14 1c  20 c8 99 20 63 72 65 61  |snd".(.. .. crea|
000048d0  74 65 69 2c 2c 62 6b 20  b8 20 68 61 6e 64 6c 65  |tei,,bk . handle|
000048e0  0d 28 1e 0b 3d 68 61 6e  64 6c 65 0d 28 28 04 0d  |.(..=handle.((..|
000048f0  28 32 19 dd 20 f2 6d 6f  75 73 65 28 f8 20 78 2c  |(2.. .mouse(. x,|
00004900  f8 20 79 2c f8 20 62 29  0d 28 3c 12 20 c8 99 20  |. y,. b).(<. .. |
00004910  67 70 74 72 69 2c 2c 6d  62 6b 0d 28 46 0c 20 78  |gptri,,mbk.(F. x|
00004920  3d 6d 62 6b 21 30 0d 28  50 0c 20 79 3d 6d 62 6b  |=mbk!0.(P. y=mbk|
00004930  21 34 0d 28 5a 0c 20 62  3d 6d 62 6b 21 38 0d 28  |!4.(Z. b=mbk!8.(|
00004940  64 05 e1 0d 28 6e 04 0d  28 78 18 dd 20 a4 67 65  |d...(n..(x.. .ge|
00004950  74 6c 65 61 66 6e 61 6d  65 28 66 73 70 24 29 0d  |tleafname(fsp$).|
00004960  28 82 10 20 70 6f 73 3d  a9 28 66 73 70 24 29 0d  |(.. pos=.(fsp$).|
00004970  28 8c 21 20 c8 95 20 c1  66 73 70 24 2c 70 6f 73  |(.! .. .fsp$,pos|
00004980  2c 31 29 3c 3e 22 2e 22  20 80 20 70 6f 73 3e 30  |,1)<>"." . pos>0|
00004990  0d 28 96 0c 20 20 70 6f  73 2d 3d 31 0d 28 a0 06  |.(..  pos-=1.(..|
000049a0  20 ce 0d 28 aa 11 3d c1  66 73 70 24 2c 70 6f 73  | ..(..=.fsp$,pos|
000049b0  2b 31 29 0d 28 b4 04 0d  28 be 18 dd 20 a4 73 74  |+1).(...(... .st|
000049c0  72 6e 75 6c 6c 74 65 72  6d 28 61 64 64 72 29 0d  |rnullterm(addr).|
000049d0  28 c8 09 20 ea 20 61 24  0d 28 d2 0d 20 c8 95 20  |(.. . a$.(.. .. |
000049e0  3f 61 64 64 72 0d 28 dc  12 20 20 61 24 2b 3d bd  |?addr.(..  a$+=.|
000049f0  28 3f 61 64 64 72 29 0d  28 e6 0d 20 20 61 64 64  |(?addr).(..  add|
00004a00  72 2b 3d 31 0d 28 f0 06  20 ce 0d 28 fa 07 3d 61  |r+=1.(.. ..(..=a|
00004a10  24 0d 29 04 04 0d 29 0e  10 dd 20 a4 61 73 6b 28  |$.)...)... .ask(|
00004a20  61 73 6b 24 29 0d 29 18  14 20 e7 20 70 6c 61 79  |ask$).).. . play|
00004a30  69 6e 67 20 f2 73 74 6f  70 0d 29 22 04 0d 29 2c  |ing .stop.)"..),|
00004a40  09 20 ea 20 52 31 0d 29  36 0b 20 62 6b 21 30 3d  |. . R1.)6. bk!0=|
00004a50  30 0d 29 40 11 20 24 28  62 6b 2b 34 29 3d 61 73  |0.)@. $(bk+4)=as|
00004a60  6b 24 0d 29 4a 47 20 c8  99 20 22 57 69 6d 70 5f  |k$.)JG .. "Wimp_|
00004a70  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 62 6b 2c  |ReportError",bk,|
00004a80  25 30 30 31 30 30 31 31  2c 22 4d 65 73 73 61 67  |%0010011,"Messag|
00004a90  65 20 66 72 6f 6d 20 22  2b 70 72 6f 67 74 69 74  |e from "+progtit|
00004aa0  6c 65 24 20 b8 20 2c 52  31 0d 29 54 12 e7 20 52  |le$ . ,R1.)T.. R|
00004ab0  31 3d 31 20 3d b9 20 8b  20 3d a3 0d 29 5e 04 0d  |1=1 =. . =..)^..|
00004ac0  29 68 10 dd 20 f2 63 6c  6f 73 65 6d 65 6e 75 0d  |)h.. .closemenu.|
00004ad0  29 72 13 20 c8 99 20 63  72 65 61 74 65 6d 2c 2c  |)r. .. createm,,|
00004ae0  2d 31 0d 29 7c 05 e1 0d  29 86 04 0d 29 90 1d dd  |-1.)|...)...)...|
00004af0  20 f2 73 74 72 6e 75 6c  6c 74 65 72 6d 28 61 64  | .strnullterm(ad|
00004b00  64 72 2c 66 73 70 24 29  0d 29 9a 0f 20 24 61 64  |dr,fsp$).).. $ad|
00004b10  64 72 3d 66 73 70 24 0d  29 a4 11 20 61 64 64 72  |dr=fsp$.).. addr|
00004b20  3f a9 66 73 70 24 3d 30  0d 29 ae 05 e1 0d 29 b8  |?.fsp$=0.)....).|
00004b30  04 0d 29 c2 14 dd 20 a4  69 6e 64 69 72 65 63 74  |..)... .indirect|
00004b40  28 77 2c 69 29 0d 29 cc  0d 20 62 6b 21 30 20 3d  |(w,i).).. bk!0 =|
00004b50  20 77 0d 29 d6 0d 20 62  6b 21 34 20 3d 20 69 0d  | w.).. bk!4 = i.|
00004b60  29 e0 11 20 c8 99 20 67  65 74 69 73 2c 2c 62 6b  |).. .. getis,,bk|
00004b70  0d 29 ea 0d 3d 24 28 62  6b 21 32 38 29 0d 29 f4  |.)..=$(bk!28).).|
00004b80  04 0d 29 fe 15 dd 20 a4  72 65 61 64 76 61 72 28  |..)... .readvar(|
00004b90  6e 61 6d 65 24 29 0d 2a  08 09 20 ea 20 52 32 0d  |name$).*.. . R2.|
00004ba0  2a 12 31 20 c8 99 20 22  58 4f 53 5f 52 65 61 64  |*.1 .. "XOS_Read|
00004bb0  56 61 72 56 61 6c 22 2c  6e 61 6d 65 24 2c 62 6b  |VarVal",name$,bk|
00004bc0  2c 26 31 30 30 2c 30 2c  30 20 b8 20 2c 2c 52 32  |,&100,0,0 . ,,R2|
00004bd0  0d 2a 1c 0e 20 62 6b 3f  52 32 3d 26 30 44 0d 2a  |.*.. bk?R2=&0D.*|
00004be0  26 08 3d 24 62 6b 0d 2a  30 04 0d 2a 3a 10 dd 20  |&.=$bk.*0..*:.. |
00004bf0  f2 66 72 6f 6e 74 31 28  77 29 0d 2a 44 20 20 ea  |.front1(w).*D  .|
00004c00  20 78 70 69 78 2c 79 70  69 78 2c 78 6d 75 6c 2c  | xpix,ypix,xmul,|
00004c10  79 6d 75 6c 2c 78 2c 79  2c 71 0d 2a 4e 15 20 f2  |ymul,x,y,q.*N. .|
00004c20  72 65 61 64 5f 73 63 72  65 65 6e 73 69 7a 65 0d  |read_screensize.|
00004c30  2a 58 0b 20 62 6b 21 30  3d 77 0d 2a 62 11 20 c8  |*X. bk!0=w.*b. .|
00004c40  99 20 67 65 74 77 69 2c  2c 62 6b 0d 2a 6c 1b 20  |. getwi,,bk.*l. |
00004c50  78 3d 28 78 70 69 78 2f  32 29 2d 28 28 62 6b 21  |x=(xpix/2)-((bk!|
00004c60  35 32 29 2f 32 29 0d 2a  76 0f 20 71 3d 94 28 62  |52)/2).*v. q=.(b|
00004c70  6b 21 34 38 29 0d 2a 80  13 20 79 3d 28 79 70 69  |k!48).*.. y=(ypi|
00004c80  78 2f 32 29 2d 71 2f 32  0d 2a 8a 0b 20 62 6b 21  |x/2)-q/2.*.. bk!|
00004c90  34 3d 78 0d 2a 94 0b 20  62 6b 21 38 3d 79 0d 2a  |4=x.*.. bk!8=y.*|
00004ca0  9e 12 20 62 6b 21 31 32  3d 78 2b 62 6b 21 35 32  |.. bk!12=x+bk!52|
00004cb0  0d 2a a8 0e 20 62 6b 21  31 36 3d 79 2b 71 0d 2a  |.*.. bk!16=y+q.*|
00004cc0  b2 0d 20 62 6b 21 32 38  3d 2d 31 0d 2a bc 11 20  |.. bk!28=-1.*.. |
00004cd0  c8 99 20 6f 70 65 6e 77  2c 2c 62 6b 0d 2a c6 05  |.. openw,,bk.*..|
00004ce0  e1 0d 2a d0 04 0d 2a da  16 dd 20 f2 72 65 61 64  |..*...*... .read|
00004cf0  5f 73 63 72 65 65 6e 73  69 7a 65 0d 2a e4 37 20  |_screensize.*.7 |
00004d00  c8 99 20 22 4f 53 5f 52  65 61 64 4d 6f 64 65 56  |.. "OS_ReadModeV|
00004d10  61 72 69 61 62 6c 65 22  2c 2d 31 2c 31 31 20 b8  |ariable",-1,11 .|
00004d20  20 2c 2c 78 70 69 78 20  20 3a 20 78 70 69 78 2b  | ,,xpix  : xpix+|
00004d30  3d 31 0d 2a ee 37 20 c8  99 20 22 4f 53 5f 52 65  |=1.*.7 .. "OS_Re|
00004d40  61 64 4d 6f 64 65 56 61  72 69 61 62 6c 65 22 2c  |adModeVariable",|
00004d50  2d 31 2c 31 32 20 b8 20  2c 2c 79 70 69 78 20 20  |-1,12 . ,,ypix  |
00004d60  3a 20 79 70 69 78 2b 3d  31 0d 2a f8 2b 20 c8 99  |: ypix+=1.*.+ ..|
00004d70  20 22 4f 53 5f 52 65 61  64 4d 6f 64 65 56 61 72  | "OS_ReadModeVar|
00004d80  69 61 62 6c 65 22 2c 2d  31 2c 34 20 b8 20 2c 2c  |iable",-1,4 . ,,|
00004d90  78 6d 75 6c 0d 2b 02 2b  20 c8 99 20 22 4f 53 5f  |xmul.+.+ .. "OS_|
00004da0  52 65 61 64 4d 6f 64 65  56 61 72 69 61 62 6c 65  |ReadModeVariable|
00004db0  22 2c 2d 31 2c 35 20 b8  20 2c 2c 79 6d 75 6c 0d  |",-1,5 . ,,ymul.|
00004dc0  2b 0c 17 20 78 70 69 78  20 3d 20 78 70 69 78 20  |+.. xpix = xpix |
00004dd0  3c 3c 78 6d 75 6c 0d 2b  16 17 20 79 70 69 78 20  |<<xmul.+.. ypix |
00004de0  3d 20 79 70 69 78 20 3c  3c 79 6d 75 6c 0d 2b 20  |= ypix <<ymul.+ |
00004df0  05 e1 0d 2b 2a 04 0d 2b  34 22 dd 20 f2 6b 65 79  |...+*..+4". .key|
00004e00  70 72 65 73 73 65 64 28  77 69 6e 64 6f 77 2c 69  |pressed(window,i|
00004e10  63 6f 6e 2c 6b 65 79 29  0d 2b 3e 0f 20 ea 20 69  |con,key).+>. . i|
00004e20  6e 64 65 78 2c 41 25 0d  2b 48 04 0d 2b 52 26 20  |ndex,A%.+H..+R& |
00004e30  e7 20 77 69 6e 64 6f 77  3d 72 65 73 61 6d 70 6c  |. window=resampl|
00004e40  65 77 20 80 20 6b 65 79  3d 72 65 74 75 72 6e 20  |ew . key=return |
00004e50  8c 0d 2b 5c 22 20 20 41  25 20 3d 20 bb a4 69 6e  |..+\"  A% = ..in|
00004e60  64 69 72 65 63 74 28 72  65 73 61 6d 70 6c 65 77  |direct(resamplew|
00004e70  2c 31 29 0d 2b 66 17 20  20 e7 20 41 25 3c 31 20  |,1).+f.  . A%<1 |
00004e80  84 20 41 25 3e 32 35 35  20 8c 0d 2b 70 29 20 20  |. A%>255 ..+p)  |
00004e90  20 85 20 31 2c 22 4e 65  77 20 73 61 6d 70 6c 65  | . 1,"New sample|
00004ea0  20 72 61 74 65 20 6f 75  74 20 6f 66 20 72 61 6e  | rate out of ran|
00004eb0  67 65 22 0d 2b 7a 07 20  20 cd 0d 2b 84 12 20 20  |ge".+z.  ..+..  |
00004ec0  e7 20 6c 6d 69 72 3d 31  34 38 20 8c 0d 2b 8e 14  |. lmir=148 ..+..|
00004ed0  20 20 20 f2 72 65 73 61  6d 70 6c 65 28 41 25 29  |   .resample(A%)|
00004ee0  0d 2b 98 07 20 20 cc 0d  2b a2 16 20 20 20 73 61  |.+..  ..+..   sa|
00004ef0  6d 70 6c 65 72 61 74 65  20 3d 20 41 25 0d 2b ac  |mplerate = A%.+.|
00004f00  1e 20 20 20 f2 63 6c 6f  73 65 77 69 6e 64 6f 77  |.   .closewindow|
00004f10  28 72 65 73 61 6d 70 6c  65 77 29 0d 2b b6 10 20  |(resamplew).+.. |
00004f20  20 20 f2 6d 6f 64 69 66  69 65 64 0d 2b c0 07 20  |  .modified.+.. |
00004f30  20 cd 0d 2b ca 06 20 cd  0d 2b d4 04 0d 2c 10 05  | ..+.. ..+...,..|
00004f40  e1 0d 2c 1a 04 0d 2c 24  0f dd 20 f2 61 73 73 65  |..,...,$.. .asse|
00004f50  6d 62 6c 65 0d 2c 2e 14  e3 20 70 61 73 73 3d 30  |mble.,... pass=0|
00004f60  20 b8 20 32 20 88 20 32  0d 2c 38 0b 50 25 3d 63  | . 2 . 2.,8.P%=c|
00004f70  6f 64 65 0d 2c 42 0d 5b  4f 50 54 20 70 61 73 73  |ode.,B.[OPT pass|
00004f80  0d 2c 4c 04 0d 2c 56 04  0d 2c 60 25 2e 63 6c 65  |.,L..,V..,`%.cle|
00004f90  61 72 76 61 6c 75 65 20  20 20 20 45 51 55 44 20  |arvalue    EQUD |
00004fa0  20 20 20 20 26 37 37 37  37 37 37 37 37 0d 2c 6a  |    &77777777.,j|
00004fb0  22 2e 77 61 76 65 6e 61  6d 65 20 20 20 20 20 20  |".wavename      |
00004fc0  45 51 55 53 20 20 20 20  20 22 77 61 76 65 22 0d  |EQUS     "wave".|
00004fd0  2c 74 1f 20 20 20 20 20  20 20 20 20 20 20 20 20  |,t.             |
00004fe0  20 20 45 51 55 42 20 20  20 20 20 26 30 30 0d 2c  |  EQUB     &00.,|
00004ff0  7e 18 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |~.              |
00005000  20 41 4c 49 47 4e 0d 2c  88 04 0d 2c 92 2d 2e 64  | ALIGN.,...,.-.d|
00005010  72 61 77 20 20 20 20 20  20 20 20 20 20 53 54 4d  |raw          STM|
00005020  46 44 20 20 20 20 52 31  33 21 2c 7b 52 30 2d 52  |FD    R13!,{R0-R|
00005030  31 32 2c 52 31 34 7d 0d  2c 9c 30 20 20 20 20 20  |12,R14}.,.0     |
00005040  20 20 20 20 20 20 20 20  20 20 53 57 49 20 20 20  |          SWI   |
00005050  20 20 20 22 57 69 6d 70  5f 42 61 73 65 4f 66 53  |   "Wimp_BaseOfS|
00005060  70 72 69 74 65 73 22 0d  2c a6 24 20 20 20 20 20  |prites".,.$     |
00005070  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00005080  20 20 20 52 30 2c 23 26  31 31 38 0d 2c b0 27 20  |   R0,#&118.,.' |
00005090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 41 44  |              AD|
000050a0  52 20 20 20 20 20 20 52  32 2c 77 61 76 65 6e 61  |R      R2,wavena|
000050b0  6d 65 0d 2c ba 29 20 20  20 20 20 20 20 20 20 20  |me.,.)          |
000050c0  20 20 20 20 20 53 57 49  20 20 20 20 20 20 22 4f  |     SWI      "O|
000050d0  53 5f 53 70 72 69 74 65  4f 70 22 0d 2c c4 27 20  |S_SpriteOp".,.' |
000050e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
000050f0  52 20 20 20 20 20 20 52  30 2c 5b 52 32 2c 23 33  |R      R0,[R2,#3|
00005100  32 5d 0d 2c ce 25 20 20  20 20 20 20 20 20 20 20  |2].,.%          |
00005110  20 20 20 20 20 41 44 44  20 20 20 20 20 20 52 31  |     ADD      R1|
00005120  30 2c 52 30 2c 52 32 0d  2c d8 22 20 20 20 20 20  |0,R0,R2.,."     |
00005130  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00005140  20 20 20 52 38 2c 52 31  30 0d 2c e2 23 20 20 20  |   R8,R10.,.#   |
00005150  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |            MOV |
00005160  20 20 20 20 20 52 39 2c  23 26 31 30 0d 2c ec 29  |     R9,#&10.,.)|
00005170  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4c  |               L|
00005180  44 52 20 20 20 20 20 20  52 30 2c 63 6c 65 61 72  |DR      R0,clear|
00005190  76 61 6c 75 65 0d 2c f6  21 20 20 20 20 20 20 20  |value.,.!       |
000051a0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
000051b0  20 52 31 2c 52 30 0d 2d  00 21 20 20 20 20 20 20  | R1,R0.-.!      |
000051c0  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
000051d0  20 20 52 32 2c 52 30 0d  2d 0a 21 20 20 20 20 20  |  R2,R0.-.!     |
000051e0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000051f0  20 20 20 52 33 2c 52 30  0d 2d 14 21 20 20 20 20  |   R3,R0.-.!    |
00005200  20 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |           MOV  |
00005210  20 20 20 20 52 34 2c 52  30 0d 2d 1e 21 20 20 20  |    R4,R0.-.!   |
00005220  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |            MOV |
00005230  20 20 20 20 20 52 35 2c  52 30 0d 2d 28 21 20 20  |     R5,R0.-(!  |
00005240  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |             MOV|
00005250  20 20 20 20 20 20 52 36  2c 52 30 0d 2d 32 21 20  |      R6,R0.-2! |
00005260  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 4f  |              MO|
00005270  56 20 20 20 20 20 20 52  37 2c 52 30 0d 2d 3c 04  |V      R7,R0.-<.|
00005280  0d 2d 46 27 2e 64 72 61  77 63 6c 6f 6f 70 20 20  |.-F'.drawcloop  |
00005290  20 20 20 53 54 4d 49 41  20 20 20 20 52 38 21 2c  |   STMIA    R8!,|
000052a0  7b 52 30 2d 52 37 7d 0d  2d 50 27 20 20 20 20 20  |{R0-R7}.-P'     |
000052b0  20 20 20 20 20 20 20 20  20 20 53 54 4d 49 41 20  |          STMIA |
000052c0  20 20 20 52 38 21 2c 7b  52 30 2d 52 37 7d 0d 2d  |   R8!,{R0-R7}.-|
000052d0  5a 27 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |Z'              |
000052e0  20 53 54 4d 49 41 20 20  20 20 52 38 21 2c 7b 52  | STMIA    R8!,{R|
000052f0  30 2d 52 37 7d 0d 2d 64  27 20 20 20 20 20 20 20  |0-R7}.-d'       |
00005300  20 20 20 20 20 20 20 20  53 54 4d 49 41 20 20 20  |        STMIA   |
00005310  20 52 38 21 2c 7b 52 30  2d 52 37 7d 0d 2d 6e 26  | R8!,{R0-R7}.-n&|
00005320  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
00005330  55 42 53 20 20 20 20 20  52 39 2c 52 39 2c 23 26  |UBS     R9,R9,#&|
00005340  30 31 0d 2d 78 25 20 20  20 20 20 20 20 20 20 20  |01.-x%          |
00005350  20 20 20 20 20 42 4e 45  20 20 20 20 20 20 64 72  |     BNE      dr|
00005360  61 77 63 6c 6f 6f 70 0d  2d 82 04 0d 2d 8c 23 20  |awcloop.-...-.# |
00005370  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
00005380  52 20 20 20 20 20 20 52  39 2c 75 70 74 6f 0d 2d  |R      R9,upto.-|
00005390  96 27 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.'              |
000053a0  20 4c 44 52 20 20 20 20  20 20 52 31 31 2c 77 61  | LDR      R11,wa|
000053b0  76 65 65 6e 64 0d 2d a0  23 20 20 20 20 20 20 20  |veend.-.#       |
000053c0  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
000053d0  20 52 31 2c 23 26 30 30  0d 2d aa 23 20 20 20 20  | R1,#&00.-.#    |
000053e0  20 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |           MOV  |
000053f0  20 20 20 20 52 36 2c 23  26 30 30 0d 2d b4 04 0d  |    R6,#&00.-...|
00005400  2d be 28 2e 64 72 61 77  6c 6f 6f 70 20 20 20 20  |-.(.drawloop    |
00005410  20 20 4c 44 52 42 20 20  20 20 20 52 30 2c 5b 52  |  LDRB     R0,[R|
00005420  39 5d 2c 23 26 30 31 0d  2d c8 22 20 20 20 20 20  |9],#&01.-."     |
00005430  20 20 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |          CMP   |
00005440  20 20 20 52 39 2c 52 31  31 0d 2d d2 26 20 20 20  |   R9,R11.-.&   |
00005450  20 20 20 20 20 20 20 20  20 20 20 20 53 55 42 45  |            SUBE|
00005460  51 20 20 20 20 52 39 2c  52 39 2c 23 26 30 31 0d  |Q    R9,R9,#&01.|
00005470  2d dc 04 0d 2d e6 24 20  20 20 20 20 20 20 20 20  |-...-.$         |
00005480  20 20 20 20 20 20 82 20  20 20 20 20 20 52 30 2c  |      .      R0,|
00005490  52 30 2c 23 26 38 30 0d  2d f0 2a 20 20 20 20 20  |R0,#&80.-.*     |
000054a0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000054b0  20 20 20 52 30 2c 52 30  2c 4c 53 52 20 23 26 30  |   R0,R0,LSR #&0|
000054c0  33 0d 2d fa 2a 20 20 20  20 20 20 20 20 20 20 20  |3.-.*           |
000054d0  20 20 20 20 4d 4f 56 20  20 20 20 20 20 52 35 2c  |    MOV      R5,|
000054e0  52 30 2c 4c 53 4c 20 23  26 30 36 0d 2e 04 25 20  |R0,LSL #&06...% |
000054f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 41 44  |              AD|
00005500  44 20 20 20 20 20 20 52  35 2c 52 35 2c 52 31 30  |D      R5,R5,R10|
00005510  0d 2e 0e 24 20 20 20 20  20 20 20 20 20 20 20 20  |...$            |
00005520  20 20 20 41 44 44 20 20  20 20 20 20 52 35 2c 52  |   ADD      R5,R|
00005530  35 2c 52 36 0d 2e 18 23  20 20 20 20 20 20 20 20  |5,R6...#        |
00005540  20 20 20 20 20 20 20 53  54 52 42 20 20 20 20 20  |       STRB     |
00005550  52 31 2c 5b 52 35 5d 0d  2e 22 26 20 20 20 20 20  |R1,[R5].."&     |
00005560  20 20 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |          ADD   |
00005570  20 20 20 52 36 2c 52 36  2c 23 26 30 31 0d 2e 2c  |   R6,R6,#&01..,|
00005580  23 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |#               |
00005590  43 4d 50 20 20 20 20 20  20 52 36 2c 23 26 34 30  |CMP      R6,#&40|
000055a0  0d 2e 36 24 20 20 20 20  20 20 20 20 20 20 20 20  |..6$            |
000055b0  20 20 20 42 4e 45 20 20  20 20 20 20 64 72 61 77  |   BNE      draw|
000055c0  6c 6f 6f 70 0d 2e 40 04  0d 2e 4a 2d 20 20 20 20  |loop..@...J-    |
000055d0  20 20 20 20 20 20 20 20  20 20 20 4c 44 4d 46 44  |           LDMFD|
000055e0  20 20 20 20 52 31 33 21  2c 7b 52 30 2d 52 31 32  |    R13!,{R0-R12|
000055f0  2c 52 31 34 7d 0d 2e 54  22 20 20 20 20 20 20 20  |,R14}..T"       |
00005600  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00005610  20 50 43 2c 52 31 34 0d  2e 5e 04 0d 2e 68 04 0d  | PC,R14..^...h..|
00005620  2e 72 04 0d 2e 7c 23 2e  63 6c 65 61 72 6d 65 6d  |.r...|#.clearmem|
00005630  6f 72 79 20 20 20 4d 4f  56 20 20 20 20 20 20 52  |ory   MOV      R|
00005640  32 2c 23 26 30 30 0d 2e  86 28 2e 63 6c 65 61 72  |2,#&00...(.clear|
00005650  6c 6f 6f 70 20 20 20 20  20 53 54 52 20 20 20 20  |loop     STR    |
00005660  20 20 52 32 2c 5b 52 30  5d 2c 23 26 30 34 0d 2e  |  R2,[R0],#&04..|
00005670  90 21 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.!              |
00005680  20 43 4d 50 20 20 20 20  20 20 52 30 2c 52 31 0d  | CMP      R0,R1.|
00005690  2e 9a 25 20 20 20 20 20  20 20 20 20 20 20 20 20  |..%             |
000056a0  20 20 42 4c 45 20 20 20  20 20 20 63 6c 65 61 72  |  BLE      clear|
000056b0  6c 6f 6f 70 0d 2e a4 04  0d 2e ae 22 20 20 20 20  |loop......."    |
000056c0  20 20 20 20 20 20 20 20  20 20 20 4d 4f 56 20 20  |           MOV  |
000056d0  20 20 20 20 50 43 2c 52  31 34 0d 2e b8 04 0d 2e  |    PC,R14......|
000056e0  c2 0e 2e 76 6f 69 63 65  62 61 73 65 0d 2e cc 20  |...voicebase... |
000056f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
00005700  20 20 20 20 20 20 20 20  66 69 6c 6c 0d 2e d6 20  |        fill... |
00005710  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
00005720  20 20 20 20 20 20 20 20  66 69 6c 6c 0d 2e e0 22  |        fill..."|
00005730  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
00005740  20 20 20 20 20 20 20 20  67 61 74 65 6f 6e 0d 2e  |        gateon..|
00005750  ea 23 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.#              |
00005760  20 42 20 20 20 20 20 20  20 20 67 61 74 65 6f 66  | B        gateof|
00005770  66 0d 2e f4 24 20 20 20  20 20 20 20 20 20 20 20  |f...$           |
00005780  20 20 20 20 42 20 20 20  20 20 20 20 20 69 6e 73  |    B        ins|
00005790  74 61 6e 63 65 0d 2e fe  25 20 20 20 20 20 20 20  |tance...%       |
000057a0  20 20 20 20 20 20 20 20  4c 44 4d 46 44 20 20 20  |        LDMFD   |
000057b0  20 52 31 33 21 2c 7b 50  43 7d 0d 2f 08 25 20 20  | R13!,{PC}./.%  |
000057c0  20 20 20 20 20 20 20 20  20 20 20 20 20 4c 44 4d  |             LDM|
000057d0  46 44 20 20 20 20 52 31  33 21 2c 7b 50 43 7d 0d  |FD    R13!,{PC}.|
000057e0  2f 12 2f 20 20 20 20 20  20 20 20 20 20 20 20 20  |/./             |
000057f0  20 20 45 51 55 44 20 20  20 20 20 76 6f 69 63 65  |  EQUD     voice|
00005800  6e 61 6d 65 2d 76 6f 69  63 65 62 61 73 65 0d 2f  |name-voicebase./|
00005810  1c 04 0d 2f 26 26 2e 76  6f 69 63 65 6e 61 6d 65  |.../&&.voicename|
00005820  20 20 20 20 20 45 51 55  53 20 20 20 20 20 22 51  |     EQUS     "Q|
00005830  75 69 63 6b 53 6e 64 22  0d 2f 30 1f 20 20 20 20  |uickSnd"./0.    |
00005840  20 20 20 20 20 20 20 20  20 20 20 45 51 55 42 20  |           EQUB |
00005850  20 20 20 20 26 30 30 0d  2f 3a 18 20 20 20 20 20  |    &00./:.     |
00005860  20 20 20 20 20 20 20 20  20 20 41 4c 49 47 4e 0d  |          ALIGN.|
00005870  2f 44 04 0d 2f 4e 1f 2e  6c 6f 67 73 63 61 6c 65  |/D../N..logscale|
00005880  20 20 20 20 20 20 45 51  55 44 20 20 20 20 20 26  |      EQUD     &|
00005890  30 30 0d 2f 58 1f 2e 6c  69 6e 74 6f 6c 6f 67 20  |00./X..lintolog |
000058a0  20 20 20 20 20 45 51 55  44 20 20 20 20 20 26 30  |     EQUD     &0|
000058b0  30 0d 2f 62 1f 2e 77 61  76 65 62 61 73 65 20 20  |0./b..wavebase  |
000058c0  20 20 20 20 45 51 55 44  20 20 20 20 20 26 30 30  |    EQUD     &00|
000058d0  0d 2f 6c 1f 2e 6c 65 6e  67 74 68 20 20 20 20 20  |./l..length     |
000058e0  20 20 20 45 51 55 44 20  20 20 20 20 26 30 30 0d  |   EQUD     &00.|
000058f0  2f 76 1f 2e 77 61 76 65  65 6e 64 20 20 20 20 20  |/v..waveend     |
00005900  20 20 45 51 55 44 20 20  20 20 20 26 30 30 0d 2f  |  EQUD     &00./|
00005910  80 1f 2e 66 69 6e 69 73  68 65 64 20 20 20 20 20  |...finished     |
00005920  20 45 51 55 44 20 20 20  20 20 26 30 30 0d 2f 8a  | EQUD     &00./.|
00005930  1f 2e 75 70 74 6f 20 20  20 20 20 20 20 20 20 20  |..upto          |
00005940  45 51 55 44 20 20 20 20  20 26 30 30 0d 2f 94 1f  |EQUD     &00./..|
00005950  2e 66 6f 72 63 65 6b 69  6c 6c 20 20 20 20 20 45  |.forcekill     E|
00005960  51 55 44 20 20 20 20 20  26 30 30 0d 2f 9e 04 0d  |QUD     &00./...|
00005970  2f a8 28 2e 69 6e 73 74  61 6e 63 65 20 20 20 20  |/.(.instance    |
00005980  20 20 53 54 4d 46 44 20  20 20 20 52 31 33 21 2c  |  STMFD    R13!,|
00005990  7b 52 30 2d 52 34 7d 0d  2f b2 23 20 20 20 20 20  |{R0-R4}./.#     |
000059a0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000059b0  20 20 20 52 30 2c 23 26  30 30 0d 2f bc 23 20 20  |   R0,#&00./.#  |
000059c0  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |             MOV|
000059d0  20 20 20 20 20 20 52 31  2c 23 26 30 30 0d 2f c6  |      R1,#&00./.|
000059e0  23 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |#               |
000059f0  4d 4f 56 20 20 20 20 20  20 52 32 2c 23 26 30 30  |MOV      R2,#&00|
00005a00  0d 2f d0 23 20 20 20 20  20 20 20 20 20 20 20 20  |./.#            |
00005a10  20 20 20 4d 4f 56 20 20  20 20 20 20 52 33 2c 23  |   MOV      R3,#|
00005a20  26 30 30 0d 2f da 23 20  20 20 20 20 20 20 20 20  |&00./.#         |
00005a30  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 20 52  |      MOV      R|
00005a40  34 2c 23 26 30 30 0d 2f  e4 2d 20 20 20 20 20 20  |4,#&00./.-      |
00005a50  20 20 20 20 20 20 20 20  20 53 57 49 20 20 20 20  |         SWI    |
00005a60  20 20 22 53 6f 75 6e 64  5f 43 6f 6e 66 69 67 75  |  "Sound_Configu|
00005a70  72 65 22 0d 2f ee 28 20  20 20 20 20 20 20 20 20  |re"./.(         |
00005a80  20 20 20 20 20 20 4c 44  52 20 20 20 20 20 20 52  |      LDR      R|
00005a90  30 2c 5b 52 33 2c 23 26  30 38 5d 0d 2f f8 27 20  |0,[R3,#&08]./.' |
00005aa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 53 54  |              ST|
00005ab0  52 20 20 20 20 20 20 52  30 2c 6c 69 6e 74 6f 6c  |R      R0,lintol|
00005ac0  6f 67 0d 30 02 28 20 20  20 20 20 20 20 20 20 20  |og.0.(          |
00005ad0  20 20 20 20 20 4c 44 52  20 20 20 20 20 20 52 30  |     LDR      R0|
00005ae0  2c 5b 52 33 2c 23 26 30  43 5d 0d 30 0c 27 20 20  |,[R3,#&0C].0.'  |
00005af0  20 20 20 20 20 20 20 20  20 20 20 20 20 53 54 52  |             STR|
00005b00  20 20 20 20 20 20 52 30  2c 6c 6f 67 73 63 61 6c  |      R0,logscal|
00005b10  65 0d 30 16 2b 20 20 20  20 20 20 20 20 20 20 20  |e.0.+           |
00005b20  20 20 20 20 4c 44 4d 46  44 20 20 20 20 52 31 33  |    LDMFD    R13|
00005b30  21 2c 7b 52 30 2d 52 34  2c 50 43 7d 0d 30 20 04  |!,{R0-R4,PC}.0 .|
00005b40  0d 30 2a 27 2e 67 61 74  65 6f 6e 20 20 20 20 20  |.0*'.gateon     |
00005b50  20 20 20 4c 44 52 20 20  20 20 20 20 52 30 2c 77  |   LDR      R0,w|
00005b60  61 76 65 62 61 73 65 0d  30 34 27 20 20 20 20 20  |avebase.04'     |
00005b70  20 20 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |          STR   |
00005b80  20 20 20 52 30 2c 5b 52  39 2c 23 31 36 5d 0d 30  |   R0,[R9,#16].0|
00005b90  3e 25 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |>%              |
00005ba0  20 4c 44 52 20 20 20 20  20 20 52 31 2c 6c 65 6e  | LDR      R1,len|
00005bb0  67 74 68 0d 30 48 24 20  20 20 20 20 20 20 20 20  |gth.0H$         |
00005bc0  20 20 20 20 20 20 41 44  44 20 20 20 20 20 20 52  |      ADD      R|
00005bd0  30 2c 52 30 2c 52 31 0d  30 52 27 20 20 20 20 20  |0,R0,R1.0R'     |
00005be0  20 20 20 20 20 20 20 20  20 20 53 54 52 20 20 20  |          STR   |
00005bf0  20 20 20 52 30 2c 5b 52  39 2c 23 31 32 5d 0d 30  |   R0,[R9,#12].0|
00005c00  5c 26 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |\&              |
00005c10  20 53 54 52 20 20 20 20  20 20 52 30 2c 77 61 76  | STR      R0,wav|
00005c20  65 65 6e 64 0d 30 66 27  20 20 20 20 20 20 20 20  |eend.0f'        |
00005c30  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 20  |       LDR      |
00005c40  52 30 2c 6c 6f 67 73 63  61 6c 65 0d 30 70 27 20  |R0,logscale.0p' |
00005c50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 53 54  |              ST|
00005c60  52 20 20 20 20 20 20 52  30 2c 5b 52 39 2c 23 32  |R      R0,[R9,#2|
00005c70  30 5d 0d 30 7a 23 20 20  20 20 20 20 20 20 20 20  |0].0z#          |
00005c80  20 20 20 20 20 4d 4f 56  20 20 20 20 20 20 52 30  |     MOV      R0|
00005c90  2c 23 26 30 30 0d 30 84  27 20 20 20 20 20 20 20  |,#&00.0.'       |
00005ca0  20 20 20 20 20 20 20 20  53 54 52 20 20 20 20 20  |        STR     |
00005cb0  20 52 30 2c 5b 52 39 2c  23 32 34 5d 0d 30 8e 27  | R0,[R9,#24].0.'|
00005cc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4c  |               L|
00005cd0  44 52 20 20 20 20 20 20  52 30 2c 6c 69 6e 74 6f  |DR      R0,linto|
00005ce0  6c 6f 67 0d 30 98 27 20  20 20 20 20 20 20 20 20  |log.0.'         |
00005cf0  20 20 20 20 20 20 53 54  52 20 20 20 20 20 20 52  |      STR      R|
00005d00  30 2c 5b 52 39 2c 23 32  38 5d 0d 30 a2 23 20 20  |0,[R9,#28].0.#  |
00005d10  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |             MOV|
00005d20  20 20 20 20 20 20 52 30  2c 23 26 30 30 0d 30 ac  |      R0,#&00.0.|
00005d30  27 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |'               |
00005d40  53 54 52 20 20 20 20 20  20 52 30 2c 66 69 6e 69  |STR      R0,fini|
00005d50  73 68 65 64 0d 30 b6 28  20 20 20 20 20 20 20 20  |shed.0.(        |
00005d60  20 20 20 20 20 20 20 53  54 52 20 20 20 20 20 20  |       STR      |
00005d70  52 30 2c 66 6f 72 63 65  6b 69 6c 6c 0d 30 c0 04  |R0,forcekill.0..|
00005d80  0d 30 ca 26 2e 66 69 6c  6c 20 20 20 20 20 20 20  |.0.&.fill       |
00005d90  20 20 20 4c 44 4d 49 41  20 20 20 20 52 39 2c 7b  |   LDMIA    R9,{|
00005da0  52 31 2d 52 38 7d 0d 30  d4 24 20 20 20 20 20 20  |R1-R8}.0.$      |
00005db0  20 20 20 20 20 20 20 20  20 80 20 20 20 20 20 20  |         .      |
00005dc0  52 31 2c 52 31 2c 23 26  37 46 0d 30 de 2f 20 20  |R1,R1,#&7F.0./  |
00005dd0  20 20 20 20 20 20 20 20  20 20 20 20 20 4c 44 52  |             LDR|
00005de0  42 20 20 20 20 20 52 31  2c 5b 52 36 2c 52 31 2c  |B     R1,[R6,R1,|
00005df0  4c 53 4c 20 23 26 30 31  5d 0d 30 e8 2a 20 20 20  |LSL #&01].0.*   |
00005e00  20 20 20 20 20 20 20 20  20 20 20 20 4d 4f 56 20  |            MOV |
00005e10  20 20 20 20 20 52 31 2c  52 31 2c 4c 53 52 20 23  |     R1,R1,LSR #|
00005e20  26 30 31 0d 30 f2 26 20  20 20 20 20 20 20 20 20  |&01.0.&         |
00005e30  20 20 20 20 20 20 52 53  42 20 20 20 20 20 20 52  |      RSB      R|
00005e40  31 2c 52 31 2c 23 31 32  37 0d 30 fc 04 0d 31 06  |1,R1,#127.0...1.|
00005e50  18 2e 66 69 6c 6c 6c 6f  6f 70 20 20 20 20 20 20  |..fillloop      |
00005e60  a4 66 69 6c 6c 0d 31 10  18 20 20 20 20 20 20 20  |.fill.1..       |
00005e70  20 20 20 20 20 20 20 20  a4 66 69 6c 6c 0d 31 1a  |        .fill.1.|
00005e80  18 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00005e90  a4 66 69 6c 6c 0d 31 24  18 20 20 20 20 20 20 20  |.fill.1$.       |
00005ea0  20 20 20 20 20 20 20 20  a4 66 69 6c 6c 0d 31 2e  |        .fill.1.|
00005eb0  04 0d 31 38 23 20 20 20  20 20 20 20 20 20 20 20  |..18#           |
00005ec0  20 20 20 20 43 4d 50 20  20 20 20 20 20 52 31 32  |    CMP      R12|
00005ed0  2c 52 31 30 0d 31 42 24  20 20 20 20 20 20 20 20  |,R10.1B$        |
00005ee0  20 20 20 20 20 20 20 42  4c 54 20 20 20 20 20 20  |       BLT      |
00005ef0  66 69 6c 6c 6c 6f 6f 70  0d 31 4c 04 0d 31 56 26  |fillloop.1L..1V&|
00005f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
00005f10  54 4d 49 42 20 20 20 20  52 39 2c 7b 52 32 2d 52  |TMIB    R9,{R2-R|
00005f20  38 7d 0d 31 60 28 20 20  20 20 20 20 20 20 20 20  |8}.1`(          |
00005f30  20 20 20 20 20 4c 44 52  20 20 20 20 20 20 52 30  |     LDR      R0|
00005f40  2c 66 6f 72 63 65 6b 69  6c 6c 0d 31 6a 23 20 20  |,forcekill.1j#  |
00005f50  20 20 20 20 20 20 20 20  20 20 20 20 20 43 4d 50  |             CMP|
00005f60  20 20 20 20 20 20 52 30  2c 23 26 30 30 0d 31 74  |      R0,#&00.1t|
00005f70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005f80  42 4e 45 20 20 20 20 20  20 6b 69 6c 6c 0d 31 7e  |BNE      kill.1~|
00005f90  04 0d 31 88 23 20 20 20  20 20 20 20 20 20 20 20  |..1.#           |
00005fa0  20 20 20 20 43 4d 50 20  20 20 20 20 20 52 37 2c  |    CMP      R7,|
00005fb0  23 26 30 31 0d 31 92 20  20 20 20 20 20 20 20 20  |#&01.1.         |
00005fc0  20 20 20 20 20 20 20 42  45 51 20 20 20 20 20 20  |       BEQ      |
00005fd0  6b 69 6c 6c 0d 31 9c 04  0d 31 a6 23 20 20 20 20  |kill.1...1.#    |
00005fe0  20 20 20 20 20 20 20 20  20 20 20 53 54 52 20 20  |           STR  |
00005ff0  20 20 20 20 52 33 2c 75  70 74 6f 0d 31 b0 23 20  |    R3,upto.1.# |
00006000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 4f  |              MO|
00006010  56 20 20 20 20 20 20 52  30 2c 23 26 30 38 0d 31  |V      R0,#&08.1|
00006020  ba 25 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.%              |
00006030  20 4c 44 4d 46 44 20 20  20 20 52 31 33 21 2c 7b  | LDMFD    R13!,{|
00006040  50 43 7d 0d 31 c4 04 0d  31 ce 23 2e 6b 69 6c 6c  |PC}.1...1.#.kill|
00006050  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
00006060  20 20 20 52 30 2c 23 26  30 32 0d 31 d8 27 20 20  |   R0,#&02.1.'  |
00006070  20 20 20 20 20 20 20 20  20 20 20 20 20 53 54 52  |             STR|
00006080  20 20 20 20 20 20 52 30  2c 66 69 6e 69 73 68 65  |      R0,finishe|
00006090  64 0d 31 e2 25 20 20 20  20 20 20 20 20 20 20 20  |d.1.%           |
000060a0  20 20 20 20 4c 44 4d 46  44 20 20 20 20 52 31 33  |    LDMFD    R13|
000060b0  21 2c 7b 50 43 7d 0d 31  ec 04 0d 31 f6 23 2e 67  |!,{PC}.1...1.#.g|
000060c0  61 74 65 6f 66 66 20 20  20 20 20 20 20 4d 4f 56  |ateoff       MOV|
000060d0  20 20 20 20 20 20 52 30  2c 23 26 30 30 0d 32 00  |      R0,#&00.2.|
000060e0  04 0d 32 0a 28 2e 66 6c  75 73 68 6c 6f 6f 70 20  |..2.(.flushloop |
000060f0  20 20 20 20 53 54 52 42  20 20 20 20 20 52 30 2c  |    STRB     R0,|
00006100  5b 52 31 32 5d 2c 52 31  31 0d 32 14 28 20 20 20  |[R12],R11.2.(   |
00006110  20 20 20 20 20 20 20 20  20 20 20 20 53 54 52 42  |            STRB|
00006120  20 20 20 20 20 52 30 2c  5b 52 31 32 5d 2c 52 31  |     R0,[R12],R1|
00006130  31 0d 32 1e 28 20 20 20  20 20 20 20 20 20 20 20  |1.2.(           |
00006140  20 20 20 20 53 54 52 42  20 20 20 20 20 52 30 2c  |    STRB     R0,|
00006150  5b 52 31 32 5d 2c 52 31  31 0d 32 28 28 20 20 20  |[R12],R11.2((   |
00006160  20 20 20 20 20 20 20 20  20 20 20 20 53 54 52 42  |            STRB|
00006170  20 20 20 20 20 52 30 2c  5b 52 31 32 5d 2c 52 31  |     R0,[R12],R1|
00006180  31 0d 32 32 23 20 20 20  20 20 20 20 20 20 20 20  |1.22#           |
00006190  20 20 20 20 43 4d 50 20  20 20 20 20 20 52 31 32  |    CMP      R12|
000061a0  2c 52 31 30 0d 32 3c 25  20 20 20 20 20 20 20 20  |,R10.2<%        |
000061b0  20 20 20 20 20 20 20 42  4c 54 20 20 20 20 20 20  |       BLT      |
000061c0  66 6c 75 73 68 6c 6f 6f  70 0d 32 46 04 0d 32 50  |flushloop.2F..2P|
000061d0  29 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |)               |
000061e0  4d 4f 56 20 20 20 20 20  20 52 30 2c 23 25 30 30  |MOV      R0,#%00|
000061f0  30 30 30 30 30 31 0d 32  5a 25 20 20 20 20 20 20  |000001.2Z%      |
00006200  20 20 20 20 20 20 20 20  20 4c 44 4d 46 44 20 20  |         LDMFD  |
00006210  20 20 52 31 33 21 2c 7b  50 43 7d 0d 32 64 04 0d  |  R13!,{PC}.2d..|
00006220  32 6e 04 0d 32 78 2d 2e  65 63 68 6f 20 20 20 20  |2n..2x-.echo    |
00006230  20 20 20 20 20 20 53 54  4d 46 44 20 20 20 20 52  |      STMFD    R|
00006240  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00006250  0d 32 82 23 2e 65 63 68  6f 6c 6f 6f 70 20 20 20  |.2.#.echoloop   |
00006260  20 20 20 4c 44 52 42 20  20 20 20 20 52 35 2c 5b  |   LDRB     R5,[|
00006270  52 30 5d 0d 32 8c 24 20  20 20 20 20 20 20 20 20  |R0].2.$         |
00006280  20 20 20 20 20 20 82 20  20 20 20 20 20 52 35 2c  |      .      R5,|
00006290  52 35 2c 23 26 38 30 0d  32 96 26 20 20 20 20 20  |R5,#&80.2.&     |
000062a0  20 20 20 20 20 20 20 20  20 20 4c 44 52 42 20 20  |          LDRB  |
000062b0  20 20 20 52 36 2c 5b 52  30 2c 52 32 5d 0d 32 a0  |   R6,[R0,R2].2.|
000062c0  24 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |$               |
000062d0  82 20 20 20 20 20 20 52  36 2c 52 36 2c 23 26 38  |.      R6,R6,#&8|
000062e0  30 0d 32 aa 24 20 20 20  20 20 20 20 20 20 20 20  |0.2.$           |
000062f0  20 20 20 20 41 44 44 20  20 20 20 20 20 52 34 2c  |    ADD      R4,|
00006300  52 35 2c 52 36 0d 32 b4  28 20 20 20 20 20 20 20  |R5,R6.2.(       |
00006310  20 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |        MOV     |
00006320  20 52 34 2c 52 34 2c 4c  53 52 20 23 31 0d 32 be  | R4,R4,LSR #1.2.|
00006330  24 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |$               |
00006340  82 20 20 20 20 20 20 52  34 2c 52 34 2c 23 26 38  |.      R4,R4,#&8|
00006350  30 0d 32 c8 26 20 20 20  20 20 20 20 20 20 20 20  |0.2.&           |
00006360  20 20 20 20 53 54 52 42  20 20 20 20 20 52 34 2c  |    STRB     R4,|
00006370  5b 52 30 2c 52 32 5d 0d  32 d2 24 20 20 20 20 20  |[R0,R2].2.$     |
00006380  20 20 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |          ADD   |
00006390  20 20 20 52 30 2c 52 30  2c 23 31 0d 32 dc 21 20  |   R0,R0,#1.2.! |
000063a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 43 4d  |              CM|
000063b0  50 20 20 20 20 20 20 52  30 2c 52 31 0d 32 e6 24  |P      R0,R1.2.$|
000063c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
000063d0  4c 45 20 20 20 20 20 20  65 63 68 6f 6c 6f 6f 70  |LE      echoloop|
000063e0  0d 32 f0 04 0d 32 fa 2d  20 20 20 20 20 20 20 20  |.2...2.-        |
000063f0  20 20 20 20 20 20 20 4c  44 4d 46 44 20 20 20 20  |       LDMFD    |
00006400  52 31 33 21 2c 7b 52 30  2d 52 31 32 2c 52 31 34  |R13!,{R0-R12,R14|
00006410  7d 0d 33 04 22 20 20 20  20 20 20 20 20 20 20 20  |}.3."           |
00006420  20 20 20 20 4d 4f 56 20  20 20 20 20 20 50 43 2c  |    MOV      PC,|
00006430  52 31 34 0d 33 0e 04 0d  33 18 2d 2e 72 65 76 65  |R14.3...3.-.reve|
00006440  72 73 65 20 20 20 20 20  20 20 53 54 4d 46 44 20  |rse       STMFD |
00006450  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |   R13!,{R0-R12,|
00006460  52 31 34 7d 0d 33 22 23  2e 72 65 76 65 72 73 65  |R14}.3"#.reverse|
00006470  6c 6f 6f 70 20 20 20 4c  44 52 42 20 20 20 20 20  |loop   LDRB     |
00006480  52 35 2c 5b 52 30 5d 0d  33 2c 23 20 20 20 20 20  |R5,[R0].3,#     |
00006490  20 20 20 20 20 20 20 20  20 20 4c 44 52 42 20 20  |          LDRB  |
000064a0  20 20 20 52 36 2c 5b 52  31 5d 0d 33 36 27 20 20  |   R6,[R1].36'  |
000064b0  20 20 20 20 20 20 20 20  20 20 20 20 20 53 54 52  |             STR|
000064c0  42 20 20 20 20 20 52 35  2c 5b 52 31 5d 2c 23 2d  |B     R5,[R1],#-|
000064d0  31 0d 33 40 26 20 20 20  20 20 20 20 20 20 20 20  |1.3@&           |
000064e0  20 20 20 20 53 54 52 42  20 20 20 20 20 52 36 2c  |    STRB     R6,|
000064f0  5b 52 30 5d 2c 23 31 0d  33 4a 21 20 20 20 20 20  |[R0],#1.3J!     |
00006500  20 20 20 20 20 20 20 20  20 20 43 4d 50 20 20 20  |          CMP   |
00006510  20 20 20 52 30 2c 52 31  0d 33 54 27 20 20 20 20  |   R0,R1.3T'    |
00006520  20 20 20 20 20 20 20 20  20 20 20 42 4c 54 20 20  |           BLT  |
00006530  20 20 20 20 72 65 76 65  72 73 65 6c 6f 6f 70 0d  |    reverseloop.|
00006540  33 5e 04 0d 33 68 2d 20  20 20 20 20 20 20 20 20  |3^..3h-         |
00006550  20 20 20 20 20 20 4c 44  4d 46 44 20 20 20 20 52  |      LDMFD    R|
00006560  31 33 21 2c 7b 52 30 2d  52 31 32 2c 52 31 34 7d  |13!,{R0-R12,R14}|
00006570  0d 33 72 22 20 20 20 20  20 20 20 20 20 20 20 20  |.3r"            |
00006580  20 20 20 4d 4f 56 20 20  20 20 20 20 50 43 2c 52  |   MOV      PC,R|
00006590  31 34 0d 33 7c 04 0d 33  86 2e 2e 63 6f 6e 76 65  |14.3|..3...conve|
000065a0  72 74 20 20 20 20 20 20  20 53 54 4d 46 44 20 20  |rt       STMFD  |
000065b0  20 20 52 31 33 21 2c 20  7b 52 30 2d 52 31 32 2c  |  R13!, {R0-R12,|
000065c0  52 31 34 7d 0d 33 90 23  2e 63 6f 6e 76 65 72 74  |R14}.3.#.convert|
000065d0  6c 6f 6f 70 20 20 20 4c  44 52 42 20 20 20 20 20  |loop   LDRB     |
000065e0  52 32 2c 5b 52 30 5d 0d  33 9a 24 20 20 20 20 20  |R2,[R0].3.$     |
000065f0  20 20 20 20 20 20 20 20  20 20 82 20 20 20 20 20  |          .     |
00006600  20 52 32 2c 52 32 2c 23  26 38 30 0d 33 a4 26 20  | R2,R2,#&80.3.& |
00006610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 53 54  |              ST|
00006620  52 42 20 20 20 20 20 52  32 2c 5b 52 30 5d 2c 23  |RB     R2,[R0],#|
00006630  31 0d 33 ae 21 20 20 20  20 20 20 20 20 20 20 20  |1.3.!           |
00006640  20 20 20 20 43 4d 50 20  20 20 20 20 20 52 30 2c  |    CMP      R0,|
00006650  52 31 0d 33 b8 27 20 20  20 20 20 20 20 20 20 20  |R1.3.'          |
00006660  20 20 20 20 20 42 4c 45  20 20 20 20 20 20 63 6f  |     BLE      co|
00006670  6e 76 65 72 74 6c 6f 6f  70 0d 33 c2 2e 20 20 20  |nvertloop.3..   |
00006680  20 20 20 20 20 20 20 20  20 20 20 20 4c 44 4d 46  |            LDMF|
00006690  44 20 20 20 20 52 31 33  21 2c 20 7b 52 30 2d 52  |D    R13!, {R0-R|
000066a0  31 32 2c 52 31 34 7d 0d  33 cc 22 20 20 20 20 20  |12,R14}.3."     |
000066b0  20 20 20 20 20 20 20 20  20 20 4d 4f 56 20 20 20  |          MOV   |
000066c0  20 20 20 50 43 2c 52 31  34 0d 33 d6 04 0d 33 e0  |   PC,R14.3...3.|
000066d0  04 0d 33 ea 26 2e 73 63  61 6c 65 74 61 62 6c 65  |..3.&.scaletable|
000066e0  70 74 72 20 45 51 55 44  20 20 20 20 20 73 63 61  |ptr EQUD     sca|
000066f0  6c 65 74 61 62 6c 65 0d  33 f4 2d 2e 73 63 61 6c  |letable.3.-.scal|
00006700  65 20 20 20 20 20 20 20  20 20 53 54 4d 46 44 20  |e         STMFD |
00006710  20 20 20 52 31 33 21 2c  7b 52 30 2d 52 31 32 2c  |   R13!,{R0-R12,|
00006720  52 31 34 7d 0d 33 fe 2d  20 20 20 20 20 20 20 20  |R14}.3.-        |
00006730  20 20 20 20 20 20 20 4c  44 52 20 20 20 20 20 20  |       LDR      |
00006740  52 31 32 2c 73 63 61 6c  65 74 61 62 6c 65 70 74  |R12,scaletablept|
00006750  72 0d 34 08 04 0d 34 12  25 20 20 20 20 20 20 20  |r.4...4.%       |
00006760  20 20 20 20 20 20 20 20  53 54 4d 46 44 20 20 20  |        STMFD   |
00006770  20 52 31 33 21 2c 7b 52  30 7d 0d 34 1c 23 20 20  | R13!,{R0}.4.#  |
00006780  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |             MOV|
00006790  20 20 20 20 20 20 52 34  2c 23 35 30 30 0d 34 26  |      R4,#500.4&|
000067a0  23 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |#               |
000067b0  4d 56 4e 20 20 20 20 20  20 52 35 2c 23 35 30 30  |MVN      R5,#500|
000067c0  0d 34 30 04 0d 34 3a 26  2e 66 69 6e 64 6d 61 78  |.40..4:&.findmax|
000067d0  6c 6f 6f 70 20 20 20 4c  44 52 42 20 20 20 20 20  |loop   LDRB     |
000067e0  52 33 2c 5b 52 30 5d 2c  23 31 0d 34 44 29 20 20  |R3,[R0],#1.4D)  |
000067f0  20 20 20 20 20 20 20 20  20 20 20 20 20 4d 4f 56  |             MOV|
00006800  20 20 20 20 20 20 52 33  2c 52 33 2c 4c 53 4c 20  |      R3,R3,LSL |
00006810  23 32 34 0d 34 4e 29 20  20 20 20 20 20 20 20 20  |#24.4N)         |
00006820  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 20 52  |      MOV      R|
00006830  33 2c 52 33 2c 41 53 52  20 23 32 34 0d 34 58 21  |3,R3,ASR #24.4X!|
00006840  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 43  |               C|
00006850  4d 50 20 20 20 20 20 20  52 33 2c 52 35 0d 34 62  |MP      R3,R5.4b|
00006860  21 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |!               |
00006870  4d 4f 56 47 54 20 20 20  20 52 35 2c 52 33 0d 34  |MOVGT    R5,R3.4|
00006880  6c 21 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |l!              |
00006890  20 43 4d 50 20 20 20 20  20 20 52 33 2c 52 34 0d  | CMP      R3,R4.|
000068a0  34 76 21 20 20 20 20 20  20 20 20 20 20 20 20 20  |4v!             |
000068b0  20 20 4d 4f 56 4c 54 20  20 20 20 52 34 2c 52 33  |  MOVLT    R4,R3|
000068c0  0d 34 80 21 20 20 20 20  20 20 20 20 20 20 20 20  |.4.!            |
000068d0  20 20 20 43 4d 50 20 20  20 20 20 20 52 30 2c 52  |   CMP      R0,R|
000068e0  31 0d 34 8a 27 20 20 20  20 20 20 20 20 20 20 20  |1.4.'           |
000068f0  20 20 20 20 42 4c 45 20  20 20 20 20 20 66 69 6e  |    BLE      fin|
00006900  64 6d 61 78 6c 6f 6f 70  0d 34 94 04 0d 34 9e 25  |dmaxloop.4...4.%|
00006910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 4c  |               L|
00006920  44 4d 46 44 20 20 20 20  52 31 33 21 2c 7b 52 30  |DMFD    R13!,{R0|
00006930  7d 0d 34 a8 24 20 20 20  20 20 20 20 20 20 20 20  |}.4.$           |
00006940  20 20 20 20 52 53 42 20  20 20 20 20 20 52 34 2c  |    RSB      R4,|
00006950  52 34 2c 23 30 0d 34 b2  21 20 20 20 20 20 20 20  |R4,#0.4.!       |
00006960  20 20 20 20 20 20 20 20  43 4d 50 20 20 20 20 20  |        CMP     |
00006970  20 52 35 2c 52 34 0d 34  bc 21 20 20 20 20 20 20  | R5,R4.4.!      |
00006980  20 20 20 20 20 20 20 20  20 4d 4f 56 47 54 20 20  |         MOVGT  |
00006990  20 20 52 34 2c 52 35 0d  34 c6 04 0d 34 d0 21 20  |  R4,R5.4...4.! |
000069a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 43 4d  |              CM|
000069b0  50 20 20 20 20 20 20 52  34 2c 23 30 0d 34 da 24  |P      R4,#0.4.$|
000069c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 42  |               B|
000069d0  45 51 20 20 20 20 20 20  6f 75 74 73 63 61 6c 65  |EQ      outscale|
000069e0  0d 34 e4 04 0d 34 ee 13  2e 63 72 65 61 74 65 64  |.4...4...created|
000069f0  69 76 74 61 62 6c 65 0d  34 f8 04 0d 35 02 1c 20  |ivtable.4...5.. |
00006a00  20 20 20 20 20 20 4d 56  4e 20 20 20 20 20 20 52  |      MVN      R|
00006a10  36 2c 20 23 31 32 37 0d  35 0c 1a 20 20 20 20 20  |6, #127.5..     |
00006a20  20 20 4d 4f 56 20 20 20  20 20 20 52 38 2c 20 23  |  MOV      R8, #|
00006a30  30 0d 35 16 04 0d 35 20  17 2e 63 72 65 61 74 65  |0.5...5 ..create|
00006a40  64 69 76 74 61 62 6c 65  6c 6f 6f 70 0d 35 2a 04  |divtableloop.5*.|
00006a50  0d 35 34 1e 20 20 20 20  20 20 20 4d 55 4c 20 20  |.54.       MUL  |
00006a60  20 20 20 20 52 37 2c 20  52 32 2c 20 52 36 0d 35  |    R7, R2, R6.5|
00006a70  3e 16 20 20 20 20 20 20  20 a4 64 69 76 28 39 2c  |>.       .div(9,|
00006a80  37 2c 34 29 0d 35 48 21  20 20 20 20 20 20 20 53  |7,4).5H!       S|
00006a90  54 52 42 20 20 20 20 20  52 39 2c 20 5b 52 31 32  |TRB     R9, [R12|
00006aa0  2c 20 52 38 5d 0d 35 52  1e 20 20 20 20 20 20 20  |, R8].5R.       |
00006ab0  41 44 44 20 20 20 20 20  20 52 36 2c 20 52 36 2c  |ADD      R6, R6,|
00006ac0  20 23 31 0d 35 5c 1e 20  20 20 20 20 20 20 41 44  | #1.5\.       AD|
00006ad0  44 20 20 20 20 20 20 52  38 2c 20 52 38 2c 20 23  |D      R8, R8, #|
00006ae0  31 0d 35 66 1c 20 20 20  20 20 20 20 43 4d 50 20  |1.5f.       CMP |
00006af0  20 20 20 20 20 52 38 2c  20 23 32 35 35 0d 35 70  |     R8, #255.5p|
00006b00  26 20 20 20 20 20 20 20  42 4c 45 20 20 20 20 20  |&       BLE     |
00006b10  20 63 72 65 61 74 65 64  69 76 74 61 62 6c 65 6c  | createdivtablel|
00006b20  6f 6f 70 0d 35 7a 04 0d  35 84 0e 2e 73 63 61 6c  |oop.5z..5...scal|
00006b30  65 6c 6f 6f 70 0d 35 8e  1c 20 20 20 20 20 20 20  |eloop.5..       |
00006b40  4c 44 52 42 20 20 20 20  20 52 32 2c 20 5b 52 30  |LDRB     R2, [R0|
00006b50  5d 0d 35 98 1e 20 20 20  20 20 20 20 82 20 20 20  |].5..       .   |
00006b60  20 20 20 52 32 2c 20 52  32 2c 20 23 26 38 30 0d  |   R2, R2, #&80.|
00006b70  35 a2 21 20 20 20 20 20  20 20 4c 44 52 42 20 20  |5.!       LDRB  |
00006b80  20 20 20 52 32 2c 20 5b  52 31 32 2c 20 52 32 5d  |   R2, [R12, R2]|
00006b90  0d 35 ac 20 20 20 20 20  20 20 20 53 54 52 42 20  |.5.        STRB |
00006ba0  20 20 20 20 52 32 2c 20  5b 52 30 5d 2c 20 23 31  |    R2, [R0], #1|
00006bb0  0d 35 b6 1a 20 20 20 20  20 20 20 43 4d 50 20 20  |.5..       CMP  |
00006bc0  20 20 20 20 52 30 2c 20  52 31 0d 35 c0 1d 20 20  |    R0, R1.5..  |
00006bd0  20 20 20 20 20 42 4c 45  20 20 20 20 20 20 73 63  |     BLE      sc|
00006be0  61 6c 65 6c 6f 6f 70 0d  35 ca 04 0d 35 d4 0d 2e  |aleloop.5...5...|
00006bf0  6f 75 74 73 63 61 6c 65  0d 35 de 25 20 20 20 20  |outscale.5.%    |
00006c00  20 20 20 4c 44 4d 46 44  20 20 20 20 52 31 33 21  |   LDMFD    R13!|
00006c10  2c 7b 52 30 2d 52 31 32  2c 52 31 34 7d 0d 35 e8  |,{R0-R12,R14}.5.|
00006c20  1a 20 20 20 20 20 20 20  4d 4f 56 20 20 20 20 20  |.       MOV     |
00006c30  20 50 43 2c 52 31 34 0d  35 f2 04 0d 35 fc 04 0d  | PC,R14.5...5...|
00006c40  36 06 04 0d 36 10 04 0d  36 1a 28 2e 6c 6f 67 74  |6...6...6.(.logt|
00006c50  6f 6c 69 6e 74 61 62 6c  65 70 74 72 20 45 51 55  |olintableptr EQU|
00006c60  44 20 6c 6f 67 74 6f 6c  69 6e 74 61 62 6c 65 0d  |D logtolintable.|
00006c70  36 24 04 0d 36 2e 0d 2e  6c 6f 67 74 6f 6c 69 6e  |6$..6...logtolin|
00006c80  0d 36 38 04 0d 36 42 25  20 20 20 20 20 20 20 53  |.68..6B%       S|
00006c90  54 4d 46 44 20 20 20 20  52 31 33 21 2c 7b 52 30  |TMFD    R13!,{R0|
00006ca0  2d 52 31 32 2c 52 31 34  7d 0d 36 4c 27 20 20 20  |-R12,R14}.6L'   |
00006cb0  20 20 20 20 4c 44 52 20  20 20 20 20 20 52 33 2c  |    LDR      R3,|
00006cc0  6c 6f 67 74 6f 6c 69 6e  74 61 62 6c 65 70 74 72  |logtolintableptr|
00006cd0  0d 36 56 04 0d 36 60 11  2e 6c 6f 67 74 6f 6c 69  |.6V..6`..logtoli|
00006ce0  6e 6c 6f 6f 70 0d 36 6a  1c 20 20 20 20 20 20 20  |nloop.6j.       |
00006cf0  4c 44 52 42 20 20 20 20  20 52 32 2c 20 5b 52 30  |LDRB     R2, [R0|
00006d00  5d 0d 36 74 20 20 20 20  20 20 20 20 4c 44 52 42  |].6t        LDRB|
00006d10  20 20 20 20 20 52 32 2c  20 5b 52 33 2c 20 52 32  |     R2, [R3, R2|
00006d20  5d 0d 36 7e 20 20 20 20  20 20 20 20 53 54 52 42  |].6~        STRB|
00006d30  20 20 20 20 20 52 32 2c  20 5b 52 30 5d 2c 20 23  |     R2, [R0], #|
00006d40  31 0d 36 88 1a 20 20 20  20 20 20 20 43 4d 50 20  |1.6..       CMP |
00006d50  20 20 20 20 20 52 30 2c  20 52 31 0d 36 92 20 20  |     R0, R1.6.  |
00006d60  20 20 20 20 20 20 42 4c  45 20 20 20 20 20 20 6c  |      BLE      l|
00006d70  6f 67 74 6f 6c 69 6e 6c  6f 6f 70 0d 36 9c 04 0d  |ogtolinloop.6...|
00006d80  36 a6 27 20 20 20 20 20  20 20 4c 44 4d 46 44 20  |6.'       LDMFD |
00006d90  20 20 20 52 31 33 21 2c  20 7b 52 30 2d 52 31 32  |   R13!, {R0-R12|
00006da0  2c 20 52 31 34 7d 0d 36  b0 19 20 20 20 20 20 20  |, R14}.6..      |
00006db0  20 4d 4f 56 20 20 20 20  20 50 43 2c 52 31 34 0d  | MOV     PC,R14.|
00006dc0  36 ba 04 0d 36 c4 04 0d  36 ce 04 0d 36 d8 04 0d  |6...6...6...6...|
00006dd0  36 e2 28 2e 6c 69 6e 74  6f 6c 6f 67 74 61 62 6c  |6.(.lintologtabl|
00006de0  65 70 74 72 20 45 51 55  44 20 6c 69 6e 74 6f 6c  |eptr EQUD lintol|
00006df0  6f 67 74 61 62 6c 65 0d  36 ec 0d 2e 6c 69 6e 74  |ogtable.6...lint|
00006e00  6f 6c 6f 67 0d 36 f6 26  20 20 20 20 20 20 20 53  |olog.6.&       S|
00006e10  54 4d 46 44 20 20 20 20  52 31 33 21 2c 20 7b 52  |TMFD    R13!, {R|
00006e20  30 2d 52 31 32 2c 52 31  34 7d 0d 37 00 28 20 20  |0-R12,R14}.7.(  |
00006e30  20 20 20 20 20 4c 44 52  20 20 20 20 20 20 52 33  |     LDR      R3|
00006e40  2c 20 6c 69 6e 74 6f 6c  6f 67 74 61 62 6c 65 70  |, lintologtablep|
00006e50  74 72 0d 37 0a 04 0d 37  14 11 2e 6c 69 6e 74 6f  |tr.7...7...linto|
00006e60  6c 6f 67 6c 6f 6f 70 0d  37 1e 1c 20 20 20 20 20  |logloop.7..     |
00006e70  20 20 4c 44 52 42 20 20  20 20 20 52 32 2c 20 5b  |  LDRB     R2, [|
00006e80  52 30 5d 0d 37 28 20 20  20 20 20 20 20 20 4c 44  |R0].7(        LD|
00006e90  52 42 20 20 20 20 20 52  32 2c 20 5b 52 33 2c 20  |RB     R2, [R3, |
00006ea0  52 32 5d 0d 37 32 20 20  20 20 20 20 20 20 53 54  |R2].72        ST|
00006eb0  52 42 20 20 20 20 20 52  32 2c 20 5b 52 30 5d 2c  |RB     R2, [R0],|
00006ec0  20 23 31 0d 37 3c 1a 20  20 20 20 20 20 20 43 4d  | #1.7<.       CM|
00006ed0  50 20 20 20 20 20 20 52  30 2c 20 52 31 0d 37 46  |P      R0, R1.7F|
00006ee0  20 20 20 20 20 20 20 20  42 4c 45 20 20 20 20 20  |        BLE     |
00006ef0  20 6c 69 6e 74 6f 6c 6f  67 6c 6f 6f 70 0d 37 50  | lintologloop.7P|
00006f00  04 0d 37 5a 26 20 20 20  20 20 20 20 4c 44 4d 46  |..7Z&       LDMF|
00006f10  44 20 20 20 20 52 31 33  21 2c 20 7b 52 30 2d 52  |D    R13!, {R0-R|
00006f20  31 32 2c 52 31 34 7d 0d  37 64 15 20 20 20 20 20  |12,R14}.7d.     |
00006f30  20 20 4d 4f 56 20 50 43  2c 52 31 34 0d 37 6e 04  |  MOV PC,R14.7n.|
00006f40  0d 37 78 04 0d 37 82 04  0d 37 8c 04 0d 37 96 2d  |.7x..7...7...7.-|
00006f50  2e 72 65 73 61 6d 70 6c  65 20 20 20 20 20 20 53  |.resample      S|
00006f60  54 4d 46 44 20 20 20 20  52 31 33 21 2c 7b 52 30  |TMFD    R13!,{R0|
00006f70  2d 52 31 32 2c 52 31 34  7d 0d 37 a0 04 0d 37 aa  |-R12,R14}.7...7.|
00006f80  22 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |"               |
00006f90  4d 4f 56 20 20 20 20 20  20 52 31 32 2c 52 32 0d  |MOV      R12,R2.|
00006fa0  37 b4 27 20 20 20 20 20  20 20 20 20 20 20 20 20  |7.'             |
00006fb0  20 20 43 4d 50 20 20 20  20 20 20 52 31 32 2c 23  |  CMP      R12,#|
00006fc0  26 31 30 30 30 30 0d 37  be 21 20 20 20 20 20 20  |&10000.7.!      |
00006fd0  20 20 20 20 20 20 20 20  20 4d 4f 56 20 20 20 20  |         MOV    |
00006fe0  20 20 52 32 2c 23 30 0d  37 c8 29 20 20 20 20 20  |  R2,#0.7.)     |
00006ff0  20 20 20 20 20 20 20 20  20 20 42 4c 54 20 20 20  |          BLT   |
00007000  20 20 20 72 65 73 61 6d  70 6c 65 6c 6f 6f 70 32  |   resampleloop2|
00007010  0d 37 d2 27 20 20 20 20  20 20 20 20 20 20 20 20  |.7.'            |
00007020  20 20 20 42 45 51 20 20  20 20 20 20 65 6e 64 72  |   BEQ      endr|
00007030  65 73 61 6d 70 6c 65 0d  37 dc 04 0d 37 e6 21 20  |esample.7...7.! |
00007040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 4f  |              MO|
00007050  56 20 20 20 20 20 20 52  33 2c 52 30 0d 37 f0 04  |V      R3,R0.7..|
00007060  0d 37 fa 25 2e 72 65 73  61 6d 70 6c 65 6c 6f 6f  |.7.%.resampleloo|
00007070  70 31 20 41 44 44 53 20  20 20 20 20 52 32 2c 52  |p1 ADDS     R2,R|
00007080  32 2c 52 31 32 0d 38 04  29 20 20 20 20 20 20 20  |2,R12.8.)       |
00007090  20 20 20 20 20 20 20 20  41 44 44 43 53 20 20 20  |        ADDCS   |
000070a0  20 52 30 2c 52 30 2c 23  26 31 30 30 30 30 0d 38  | R0,R0,#&10000.8|
000070b0  0e 2c 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.,              |
000070c0  20 41 44 44 20 20 20 20  20 20 52 35 2c 52 30 2c  | ADD      R5,R0,|
000070d0  52 32 2c 4c 53 52 20 23  31 36 0d 38 18 21 20 20  |R2,LSR #16.8.!  |
000070e0  20 20 20 20 20 20 20 20  20 20 20 20 20 43 4d 50  |             CMP|
000070f0  20 20 20 20 20 20 52 35  2c 52 31 0d 38 22 27 20  |      R5,R1.8"' |
00007100  20 20 20 20 20 20 20 20  20 20 20 20 20 20 42 47  |              BG|
00007110  54 20 20 20 20 20 20 65  6e 64 72 65 73 61 6d 70  |T      endresamp|
00007120  6c 65 0d 38 2c 04 0d 38  36 23 20 20 20 20 20 20  |le.8,..86#      |
00007130  20 20 20 20 20 20 20 20  20 4c 44 52 42 20 20 20  |         LDRB   |
00007140  20 20 52 34 2c 5b 52 35  5d 0d 38 40 26 20 20 20  |  R4,[R5].8@&   |
00007150  20 20 20 20 20 20 20 20  20 20 20 20 53 54 52 42  |            STRB|
00007160  20 20 20 20 20 52 34 2c  5b 52 33 5d 2c 23 31 0d  |     R4,[R3],#1.|
00007170  38 4a 29 20 20 20 20 20  20 20 20 20 20 20 20 20  |8J)             |
00007180  20 20 42 20 20 20 20 20  20 20 20 72 65 73 61 6d  |  B        resam|
00007190  70 6c 65 6c 6f 6f 70 31  0d 38 54 04 0d 38 5e 25  |pleloop1.8T..8^%|
000071a0  2e 72 65 73 61 6d 70 6c  65 6c 6f 6f 70 32 20 41  |.resampleloop2 A|
000071b0  44 44 53 20 20 20 20 20  52 32 2c 52 32 2c 52 31  |DDS     R2,R2,R1|
000071c0  32 0d 38 68 29 20 20 20  20 20 20 20 20 20 20 20  |2.8h)           |
000071d0  20 20 20 20 53 55 42 43  53 20 20 20 20 52 31 2c  |    SUBCS    R1,|
000071e0  52 31 2c 23 26 31 30 30  30 30 0d 38 72 2f 20 20  |R1,#&10000.8r/  |
000071f0  20 20 20 20 20 20 20 20  20 20 20 20 20 4c 44 52  |             LDR|
00007200  42 20 20 20 20 20 52 34  2c 5b 52 31 2c 2d 52 32  |B     R4,[R1,-R2|
00007210  2c 4c 53 52 20 23 31 36  5d 0d 38 7c 27 20 20 20  |,LSR #16].8|'   |
00007220  20 20 20 20 20 20 20 20  20 20 20 20 53 54 52 42  |            STRB|
00007230  20 20 20 20 20 52 34 2c  5b 52 33 5d 2c 23 2d 31  |     R4,[R3],#-1|
00007240  0d 38 86 21 20 20 20 20  20 20 20 20 20 20 20 20  |.8.!            |
00007250  20 20 20 43 4d 50 20 20  20 20 20 20 52 33 2c 52  |   CMP      R3,R|
00007260  30 0d 38 90 29 20 20 20  20 20 20 20 20 20 20 20  |0.8.)           |
00007270  20 20 20 20 42 47 45 20  20 20 20 20 20 72 65 73  |    BGE      res|
00007280  61 6d 70 6c 65 6c 6f 6f  70 32 0d 38 9a 04 0d 38  |ampleloop2.8...8|
00007290  a4 2d 2e 65 6e 64 72 65  73 61 6d 70 6c 65 20 20  |.-.endresample  |
000072a0  20 4c 44 4d 46 44 20 20  20 20 52 31 33 21 2c 7b  | LDMFD    R13!,{|
000072b0  52 30 2d 52 31 32 2c 52  31 34 7d 0d 38 ae 22 20  |R0-R12,R14}.8." |
000072c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4d 4f  |              MO|
000072d0  56 20 20 20 20 20 20 50  43 2c 52 31 34 0d 38 b8  |V      PC,R14.8.|
000072e0  04 0d 38 c2 04 0d 38 cc  06 5d ed 0d 38 d6 05 e1  |..8...8..]..8...|
000072f0  0d 38 e0 04 0d 38 ea 04  0d 38 f4 0b dd 20 a4 66  |.8...8...8... .f|
00007300  69 6c 6c 0d 38 fe 0d 5b  4f 50 54 20 70 61 73 73  |ill.8..[OPT pass|
00007310  0d 39 08 04 0d 39 12 2c  20 20 20 20 20 20 20 20  |.9...9.,        |
00007320  20 20 20 20 20 20 20 41  44 44 53 20 20 20 20 20  |       ADDS     |
00007330  52 32 2c 52 32 2c 52 32  2c 4c 53 4c 20 23 31 36  |R2,R2,R2,LSL #16|
00007340  0d 39 1c 27 20 20 20 20  20 20 20 20 20 20 20 20  |.9.'            |
00007350  20 20 20 41 44 44 43 53  20 20 20 20 52 35 2c 52  |   ADDCS    R5,R|
00007360  35 2c 23 26 31 30 30 0d  39 26 2c 20 20 20 20 20  |5,#&100.9&,     |
00007370  20 20 20 20 20 20 20 20  20 20 41 44 44 20 20 20  |          ADD   |
00007380  20 20 20 52 33 2c 52 35  2c 52 32 2c 4c 53 52 20  |   R3,R5,R2,LSR |
00007390  23 32 34 0d 39 30 21 20  20 20 20 20 20 20 20 20  |#24.90!         |
000073a0  20 20 20 20 20 20 43 4d  50 20 20 20 20 20 20 52  |      CMP      R|
000073b0  33 2c 52 34 0d 39 3a 21  20 20 20 20 20 20 20 20  |3,R4.9:!        |
000073c0  20 20 20 20 20 20 20 4d  4f 56 47 54 20 20 20 20  |       MOVGT    |
000073d0  52 33 2c 52 34 0d 39 44  23 20 20 20 20 20 20 20  |R3,R4.9D#       |
000073e0  20 20 20 20 20 20 20 20  4d 4f 56 47 54 20 20 20  |        MOVGT   |
000073f0  20 52 37 2c 23 26 30 31  0d 39 4e 23 20 20 20 20  | R7,#&01.9N#    |
00007400  20 20 20 20 20 20 20 20  20 20 20 4c 44 52 42 20  |           LDRB |
00007410  20 20 20 20 52 30 2c 5b  52 33 5d 0d 39 58 2d 20  |    R0,[R3].9X- |
00007420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4c 44  |              LD|
00007430  52 42 20 20 20 20 20 52  30 2c 5b 52 38 2c 52 30  |RB     R0,[R8,R0|
00007440  2c 4c 53 4c 20 23 35 5d  0d 39 62 2d 20 20 20 20  |,LSL #5].9b-    |
00007450  20 20 20 20 20 20 20 20  20 20 20 53 55 42 53 20  |           SUBS |
00007460  20 20 20 20 52 30 2c 52  30 2c 52 31 2c 4c 53 4c  |    R0,R0,R1,LSL|
00007470  20 23 26 30 31 0d 39 6c  23 20 20 20 20 20 20 20  | #&01.9l#       |
00007480  20 20 20 20 20 20 20 20  4d 4f 56 4d 49 20 20 20  |        MOVMI   |
00007490  20 52 30 2c 23 26 30 30  0d 39 76 28 20 20 20 20  | R0,#&00.9v(    |
000074a0  20 20 20 20 20 20 20 20  20 20 20 53 54 52 42 20  |           STRB |
000074b0  20 20 20 20 52 30 2c 5b  52 31 32 5d 2c 52 31 31  |    R0,[R12],R11|
000074c0  0d 39 80 05 5d 0d 39 8a  07 3d 22 22 0d 39 94 04  |.9..].9..="".9..|
000074d0  0d 39 9e 04 0d 39 a8 23  dd 20 a4 64 69 76 28 71  |.9...9.#. .div(q|
000074e0  75 6f 74 69 65 6e 74 2c  6e 75 6d 62 65 72 2c 64  |uotient,number,d|
000074f0  69 76 69 73 6f 72 29 0d  39 b2 0e 72 65 6d 61 69  |ivisor).9..remai|
00007500  6e 20 3d 20 30 0d 39 bc  0e 70 6c 61 63 65 20 20  |n = 0.9..place  |
00007510  3d 20 31 0d 39 c6 0e 64  73 69 67 6e 20 20 3d 20  |= 1.9..dsign  = |
00007520  32 0d 39 d0 0e 6d 73 69  67 6e 20 20 3d 20 33 0d  |2.9..msign  = 3.|
00007530  39 da 04 0d 39 e4 0e 5b  20 4f 50 54 20 70 61 73  |9...9..[ OPT pas|
00007540  73 0d 39 ee 04 0d 39 f8  43 20 20 20 20 20 20 20  |s.9...9.C       |
00007550  53 54 4d 46 44 20 20 20  20 52 31 33 21 2c 20 7b  |STMFD    R13!, {|
00007560  72 65 6d 61 69 6e 2c 70  6c 61 63 65 2c 64 73 69  |remain,place,dsi|
00007570  67 6e 2c 6d 73 69 67 6e  2c 6e 75 6d 62 65 72 2c  |gn,msign,number,|
00007580  64 69 76 69 73 6f 72 7d  0d 3a 02 04 0d 3a 0c 27  |divisor}.:...:.'|
00007590  20 20 20 20 20 20 20 80  53 20 20 20 20 20 6d 73  |       .S     ms|
000075a0  69 67 6e 2c 20 6e 75 6d  62 65 72 2c 20 23 31 3c  |ign, number, #1<|
000075b0  3c 33 31 0d 3a 16 26 20  20 20 20 20 20 20 52 53  |<31.:.&       RS|
000075c0  42 4d 49 20 20 20 20 6e  75 6d 62 65 72 2c 20 6e  |BMI    number, n|
000075d0  75 6d 62 65 72 2c 20 23  30 0d 3a 20 27 20 20 20  |umber, #0.: '   |
000075e0  20 20 20 20 82 20 20 20  20 20 20 64 73 69 67 6e  |    .      dsign|
000075f0  2c 20 6d 73 69 67 6e 2c  20 64 69 76 69 73 6f 72  |, msign, divisor|
00007600  0d 3a 2a 1f 20 20 20 20  20 20 20 43 4d 50 20 20  |.:*.       CMP  |
00007610  20 20 20 20 64 69 76 69  73 6f 72 2c 20 23 30 0d  |    divisor, #0.|
00007620  3a 34 28 20 20 20 20 20  20 20 52 53 42 4d 49 20  |:4(       RSBMI |
00007630  20 20 20 64 69 76 69 73  6f 72 2c 20 64 69 76 69  |   divisor, divi|
00007640  73 6f 72 2c 20 23 30 0d  3a 3e 04 0d 3a 48 1e 20  |sor, #0.:>..:H. |
00007650  20 20 20 20 20 20 4d 4f  56 20 20 20 20 20 20 72  |      MOV      r|
00007660  65 6d 61 69 6e 2c 20 23  30 0d 3a 52 20 20 20 20  |emain, #0.:R    |
00007670  20 20 20 20 4d 4f 56 20  20 20 20 20 20 71 75 6f  |    MOV      quo|
00007680  74 69 65 6e 74 2c 20 23  30 0d 3a 5c 21 20 20 20  |tient, #0.:\!   |
00007690  20 20 20 20 4d 4f 56 20  20 20 20 20 20 70 6c 61  |    MOV      pla|
000076a0  63 65 2c 20 23 31 3c 3c  33 31 0d 3a 66 04 0d 3a  |ce, #1<<31.:f..:|
000076b0  70 11 2e 44 69 76 69 73  69 6f 6e 4c 6f 6f 70 0d  |p..DivisionLoop.|
000076c0  3a 7a 2a 20 20 20 20 20  20 20 4d 4f 56 53 20 20  |:z*       MOVS  |
000076d0  20 20 20 6e 75 6d 62 65  72 2c 20 6e 75 6d 62 65  |   number, numbe|
000076e0  72 2c 20 41 53 4c 20 23  31 0d 3a 84 2a 20 20 20  |r, ASL #1.:.*   |
000076f0  20 20 20 20 41 44 43 20  20 20 20 20 20 72 65 6d  |    ADC      rem|
00007700  61 69 6e 2c 20 72 65 6d  61 69 6e 2c 20 72 65 6d  |ain, remain, rem|
00007710  61 69 6e 0d 3a 8e 23 20  20 20 20 20 20 20 43 4d  |ain.:.#       CM|
00007720  50 20 20 20 20 20 20 72  65 6d 61 69 6e 2c 20 64  |P      remain, d|
00007730  69 76 69 73 6f 72 0d 3a  98 2b 20 20 20 20 20 20  |ivisor.:.+      |
00007740  20 53 55 42 47 45 20 20  20 20 72 65 6d 61 69 6e  | SUBGE    remain|
00007750  2c 20 72 65 6d 61 69 6e  2c 20 64 69 76 69 73 6f  |, remain, diviso|
00007760  72 0d 3a a2 2c 20 20 20  20 20 20 20 84 52 47 45  |r.:.,       .RGE|
00007770  20 20 20 20 71 75 6f 74  69 65 6e 74 2c 20 71 75  |    quotient, qu|
00007780  6f 74 69 65 6e 74 2c 20  70 6c 61 63 65 0d 3a ac  |otient, place.:.|
00007790  28 20 20 20 20 20 20 20  4d 4f 56 53 20 20 20 20  |(       MOVS    |
000077a0  20 70 6c 61 63 65 2c 20  70 6c 61 63 65 2c 20 4c  | place, place, L|
000077b0  53 52 20 23 31 0d 3a b6  20 20 20 20 20 20 20 20  |SR #1.:.        |
000077c0  42 4e 45 20 20 20 20 20  20 44 69 76 69 73 69 6f  |BNE      Divisio|
000077d0  6e 4c 6f 6f 70 0d 3a c0  04 0d 3a ca 1d 20 20 20  |nLoop.:...:..   |
000077e0  20 20 20 20 43 4d 50 20  20 20 20 20 20 64 73 69  |    CMP      dsi|
000077f0  67 6e 2c 20 23 30 0d 3a  d4 2a 20 20 20 20 20 20  |gn, #0.:.*      |
00007800  20 52 53 42 4d 49 20 20  20 20 71 75 6f 74 69 65  | RSBMI    quotie|
00007810  6e 74 2c 20 71 75 6f 74  69 65 6e 74 2c 20 23 30  |nt, quotient, #0|
00007820  0d 3a de 04 0d 3a e8 43  20 20 20 20 20 20 20 4c  |.:...:.C       L|
00007830  44 4d 46 44 20 20 20 20  52 31 33 21 2c 20 7b 72  |DMFD    R13!, {r|
00007840  65 6d 61 69 6e 2c 70 6c  61 63 65 2c 64 73 69 67  |emain,place,dsig|
00007850  6e 2c 6d 73 69 67 6e 2c  6e 75 6d 62 65 72 2c 64  |n,msign,number,d|
00007860  69 76 69 73 6f 72 7d 0d  3a f2 05 5d 0d 3a fc 07  |ivisor}.:..].:..|
00007870  3d 22 22 0d 3b 06 04 0d  3b 10 04 0d 3b 1a 04 0d  |="".;...;...;...|
00007880  3b 24 04 0d 3b 2e 04 0d  3b 38 14 dd 20 f2 66 72  |;$..;...;8.. .fr|
00007890  6f 6e 74 28 77 69 6e 64  6f 77 29 0d 3b 42 10 20  |ont(window).;B. |
000078a0  62 6b 21 30 3d 77 69 6e  64 6f 77 0d 3b 4c 11 20  |bk!0=window.;L. |
000078b0  c8 99 20 67 65 74 77 73  2c 2c 62 6b 0d 3b 56 0d  |.. getws,,bk.;V.|
000078c0  20 62 6b 21 32 38 3d 2d  31 0d 3b 60 11 20 c8 99  | bk!28=-1.;`. ..|
000078d0  20 6f 70 65 6e 77 2c 2c  62 6b 0d 3b 6a 05 e1 0d  | openw,,bk.;j...|
000078e0  3b 74 04 0d 3b 7e 1c dd  20 f2 73 65 74 73 70 72  |;t..;~.. .setspr|
000078f0  69 74 65 69 63 6f 6e 28  77 2c 69 2c 73 24 29 0d  |iteicon(w,i,s$).|
00007900  3b 88 0b 20 62 6b 21 30  3d 77 0d 3b 92 0b 20 62  |;.. bk!0=w.;.. b|
00007910  6b 21 34 3d 69 0d 3b 9c  11 20 c8 99 20 67 65 74  |k!4=i.;.. .. get|
00007920  69 73 2c 2c 62 6b 0d 3b  a6 0d 20 62 6b 21 32 35  |is,,bk.;.. bk!25|
00007930  36 3d 77 0d 3b b0 0d 20  62 6b 21 32 36 30 3d 69  |6=w.;.. bk!260=i|
00007940  0d 3b ba 17 20 c8 99 20  64 65 6c 65 74 65 69 2c  |.;.. .. deletei,|
00007950  2c 62 6b 2b 32 35 36 0d  3b c4 10 20 24 28 62 6b  |,bk+256.;.. $(bk|
00007960  2b 32 38 29 3d 73 24 0d  3b ce 0b 20 62 6b 21 34  |+28)=s$.;.. bk!4|
00007970  3d 77 0d 3b d8 15 20 c8  99 20 63 72 65 61 74 65  |=w.;.. .. create|
00007980  69 2c 2c 62 6b 2b 34 0d  3b e2 05 e1 0d 3b ec 04  |i,,bk+4.;....;..|
00007990  0d 3b f6 10 dd 20 a4 64  61 74 65 5f 74 69 6d 65  |.;... .date_time|
000079a0  0d 3c 00 0f 20 ea 20 52  31 2c 52 32 2c 52 33 0d  |.<.. . R1,R2,R3.|
000079b0  3c 0a 22 20 c8 99 20 22  4f 53 5f 46 69 6c 65 22  |<." .. "OS_File"|
000079c0  2c 35 2c 66 73 70 24 20  b8 20 2c 2c 52 32 2c 52  |,5,fsp$ . ,,R2,R|
000079d0  33 0d 3c 14 1b 20 64 61  74 65 74 69 6d 65 5f 62  |3.<.. datetime_b|
000079e0  75 66 66 65 72 21 30 20  3d 20 52 33 0d 3c 1e 21  |uffer!0 = R3.<.!|
000079f0  20 64 61 74 65 74 69 6d  65 5f 62 75 66 66 65 72  | datetime_buffer|
00007a00  3f 34 20 3d 20 52 32 20  80 20 26 46 46 0d 3c 28  |?4 = R2 . &FF.<(|
00007a10  51 20 c8 99 20 22 4f 53  5f 43 6f 6e 76 65 72 74  |Q .. "OS_Convert|
00007a20  44 61 74 65 41 6e 64 54  69 6d 65 22 2c 64 61 74  |DateAndTime",dat|
00007a30  65 74 69 6d 65 5f 62 75  66 66 65 72 2c 72 65 73  |etime_buffer,res|
00007a40  75 6c 74 5f 62 75 66 66  65 72 2c 36 34 2c 66 6f  |ult_buffer,64,fo|
00007a50  72 6d 61 74 24 20 b8 20  2c 52 31 2c 52 32 0d 3c  |rmat$ . ,R1,R2.<|
00007a60  32 0b 20 3f 52 31 3d 31  33 0d 3c 3c 13 3d 24 72  |2. ?R1=13.<<.=$r|
00007a70  65 73 75 6c 74 5f 62 75  66 66 65 72 0d 3c 46 04  |esult_buffer.<F.|
00007a80  0d 3c 50 1b dd 20 f2 77  69 6e 64 6f 77 5f 74 69  |.<P.. .window_ti|
00007a90  74 6c 65 28 77 69 6e 64  6f 77 29 0d 3c 5a 04 0d  |tle(window).<Z..|
00007aa0  3c 64 09 20 ea 20 61 24  0d 3c 6e 04 0d 3c 78 10  |<d. . a$.<n..<x.|
00007ab0  20 c8 8e 20 77 69 6e 64  6f 77 20 ca 0d 3c 82 11  | .. window ..<..|
00007ac0  20 20 c9 20 76 75 6d 65  74 65 72 20 3a 0d 3c 8c  |  . vumeter :.<.|
00007ad0  0f 20 20 20 61 24 3d 6e  61 6d 65 24 0d 3c 96 12  |.   a$=name$.<..|
00007ae0  20 20 20 e7 20 ac 20 73  61 76 65 64 20 8c 0d 3c  |   . . saved ..<|
00007af0  a0 10 20 20 20 20 61 24  2b 3d 22 20 2a 22 0d 3c  |..    a$+=" *".<|
00007b00  aa 08 20 20 20 cd 0d 3c  b4 13 20 20 c9 20 72 65  |..   ..<..  . re|
00007b10  73 61 6d 70 6c 65 77 20  3a 0d 3c be 10 20 20 20  |samplew :.<..   |
00007b20  c8 8e 20 6c 6d 69 72 20  ca 0d 3c c8 2c 20 20 20  |.. lmir ..<.,   |
00007b30  20 c9 20 31 34 38 20 3a  20 61 24 3d 22 52 65 73  | . 148 : a$="Res|
00007b40  61 6d 70 6c 65 20 43 75  72 72 65 6e 74 20 53 61  |ample Current Sa|
00007b50  6d 70 6c 65 22 0d 3c d2  26 20 20 20 20 c9 20 31  |mple".<.&    . 1|
00007b60  34 37 20 3a 20 61 24 3d  22 43 68 61 6e 67 65 20  |47 : a$="Change |
00007b70  72 65 70 6c 61 79 72 61  74 65 22 0d 3c dc 08 20  |replayrate".<.. |
00007b80  20 20 cb 0d 3c e6 06 20  cb 0d 3c f0 04 0d 3c fa  |  ..<.. ..<...<.|
00007b90  10 20 62 6b 21 30 3d 77  69 6e 64 6f 77 0d 3d 04  |. bk!0=window.=.|
00007ba0  11 20 c8 99 20 67 65 74  77 69 2c 2c 62 6b 0d 3d  |. .. getwi,,bk.=|
00007bb0  0e 2f 20 e7 20 62 6b 21  36 30 20 80 20 31 3c 3c  |./ . bk!60 . 1<<|
00007bc0  38 20 8c 20 24 28 62 6b  21 37 36 29 3d 61 24 20  |8 . $(bk!76)=a$ |
00007bd0  8b 20 24 28 62 6b 2b 37  36 29 3d 61 24 0d 3d 18  |. $(bk+76)=a$.=.|
00007be0  10 20 62 6b 21 30 3d 77  69 6e 64 6f 77 0d 3d 22  |. bk!0=window.="|
00007bf0  11 20 c8 99 20 67 65 74  77 73 2c 2c 62 6b 0d 3d  |. .. getws,,bk.=|
00007c00  2c 16 20 e7 20 62 6b 21  33 32 20 80 20 31 3c 3c  |,. . bk!32 . 1<<|
00007c10  31 36 20 8c 0d 3d 36 2f  20 20 c8 99 20 66 6f 72  |16 ..=6/  .. for|
00007c20  63 65 72 64 2c 2d 31 2c  62 6b 21 34 2c 62 6b 21  |cerd,-1,bk!4,bk!|
00007c30  31 36 2b 34 2c 62 6b 21  31 32 2c 62 6b 21 31 36  |16+4,bk!12,bk!16|
00007c40  2b 34 30 0d 3d 40 06 20  cd 0d 3d 4a 05 e1 0d 3d  |+40.=@. ..=J...=|
00007c50  54 04 0d 3d 5e 15 dd 20  f2 73 65 74 75 70 5f 73  |T..=^.. .setup_s|
00007c60  77 69 6e 61 6d 65 73 0d  3d 68 08 20 ea 20 61 0d  |winames.=h. . a.|
00007c70  3d 72 3e 20 c8 99 20 22  4f 53 5f 53 57 49 4e 75  |=r> .. "OS_SWINu|
00007c80  6d 62 65 72 46 72 6f 6d  53 74 72 69 6e 67 22 2c  |mberFromString",|
00007c90  2c 22 4f 53 5f 53 57 49  4e 75 6d 62 65 72 46 72  |,"OS_SWINumberFr|
00007ca0  6f 6d 53 74 72 69 6e 67  22 20 b8 20 61 0d 3d 7c  |omString" . a.=||
00007cb0  2c 20 c8 99 20 61 2c 2c  22 57 69 6d 70 5f 52 65  |, .. a,,"Wimp_Re|
00007cc0  64 72 61 77 57 69 6e 64  6f 77 22 20 20 20 20 20  |drawWindow"     |
00007cd0  b8 20 72 65 64 72 61 77  77 0d 3d 86 2c 20 c8 99  |. redraww.=., ..|
00007ce0  20 61 2c 2c 22 57 69 6d  70 5f 47 65 74 52 65 63  | a,,"Wimp_GetRec|
00007cf0  74 61 6e 67 6c 65 22 20  20 20 20 20 b8 20 67 65  |tangle"     . ge|
00007d00  74 72 65 63 74 0d 3d 90  2c 20 c8 99 20 61 2c 2c  |trect.=., .. a,,|
00007d10  22 57 69 6d 70 5f 42 6f  72 64 65 72 57 69 6e 64  |"Wimp_BorderWind|
00007d20  6f 77 22 20 20 20 20 20  b8 20 62 6f 72 64 65 72  |ow"     . border|
00007d30  77 0d 3d 9a 2a 20 c8 99  20 61 2c 2c 22 57 69 6d  |w.=.* .. a,,"Wim|
00007d40  70 5f 47 65 74 57 69 6e  64 6f 77 53 74 61 74 65  |p_GetWindowState|
00007d50  22 20 20 20 b8 20 67 65  74 77 73 0d 3d a4 2a 20  |"   . getws.=.* |
00007d60  c8 99 20 61 2c 2c 22 57  69 6d 70 5f 47 65 74 57  |.. a,,"Wimp_GetW|
00007d70  69 6e 64 6f 77 49 6e 66  6f 22 20 20 20 20 b8 20  |indowInfo"    . |
00007d80  67 65 74 77 69 0d 3d ae  2a 20 c8 99 20 61 2c 2c  |getwi.=.* .. a,,|
00007d90  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00007da0  22 20 20 20 20 20 20 20  b8 20 6f 70 65 6e 77 0d  |"       . openw.|
00007db0  3d b8 2b 20 c8 99 20 61  2c 2c 22 57 69 6d 70 5f  |=.+ .. a,,"Wimp_|
00007dc0  43 6c 6f 73 65 57 69 6e  64 6f 77 22 20 20 20 20  |CloseWindow"    |
00007dd0  20 20 b8 20 63 6c 6f 73  65 77 0d 3d c2 29 20 c8  |  . closew.=.) .|
00007de0  99 20 61 2c 2c 22 57 69  6d 70 5f 53 65 74 43 61  |. a,,"Wimp_SetCa|
00007df0  72 65 74 50 6f 73 69 74  69 6f 6e 22 20 b8 20 73  |retPosition" . s|
00007e00  65 74 63 0d 3d cc 29 20  c8 99 20 61 2c 2c 22 57  |etc.=.) .. a,,"W|
00007e10  69 6d 70 5f 50 6f 6c 6c  22 20 20 20 20 20 20 20  |imp_Poll"       |
00007e20  20 20 20 20 20 20 b8 20  70 6f 6c 6c 0d 3d d6 2a  |      . poll.=.*|
00007e30  20 c8 99 20 61 2c 2c 22  57 69 6d 70 5f 47 65 74  | .. a,,"Wimp_Get|
00007e40  49 63 6f 6e 53 74 61 74  65 22 20 20 20 20 20 b8  |IconState"     .|
00007e50  20 67 65 74 69 73 0d 3d  e0 2a 20 c8 99 20 61 2c  | getis.=.* .. a,|
00007e60  2c 22 57 69 6d 70 5f 53  65 74 49 63 6f 6e 53 74  |,"Wimp_SetIconSt|
00007e70  61 74 65 22 20 20 20 20  20 b8 20 73 65 74 69 73  |ate"     . setis|
00007e80  0d 3d ea 2a 20 c8 99 20  61 2c 2c 22 57 69 6d 70  |.=.* .. a,,"Wimp|
00007e90  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 20 20 20  |_SendMessage"   |
00007ea0  20 20 20 b8 20 73 65 6e  64 6d 0d 3d f4 2a 20 c8  |   . sendm.=.* .|
00007eb0  99 20 61 2c 2c 22 57 69  6d 70 5f 47 65 74 50 6f  |. a,,"Wimp_GetPo|
00007ec0  69 6e 74 65 72 49 6e 66  6f 22 20 20 20 b8 20 67  |interInfo"   . g|
00007ed0  70 74 72 69 0d 3d fe 2c  20 c8 99 20 61 2c 2c 22  |ptri.=., .. a,,"|
00007ee0  57 69 6d 70 5f 50 6f 6c  6c 50 6f 69 6e 74 65 72  |Wimp_PollPointer|
00007ef0  22 20 20 20 20 20 20 b8  20 70 6f 6c 6c 70 74 72  |"      . pollptr|
00007f00  0d 3e 08 2c 20 c8 99 20  61 2c 2c 22 57 69 6d 70  |.>., .. a,,"Wimp|
00007f10  5f 43 72 65 61 74 65 49  63 6f 6e 22 20 20 20 20  |_CreateIcon"    |
00007f20  20 20 20 b8 20 63 72 65  61 74 65 69 0d 3e 12 2c  |   . createi.>.,|
00007f30  20 c8 99 20 61 2c 2c 22  57 69 6d 70 5f 44 65 6c  | .. a,,"Wimp_Del|
00007f40  65 74 65 49 63 6f 6e 22  20 20 20 20 20 20 20 b8  |eteIcon"       .|
00007f50  20 64 65 6c 65 74 65 69  0d 3e 1c 2c 20 c8 99 20  | deletei.>., .. |
00007f60  61 2c 2c 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |a,,"Wimp_ForceRe|
00007f70  64 72 61 77 22 20 20 20  20 20 20 b8 20 66 6f 72  |draw"      . for|
00007f80  63 65 72 64 0d 3e 26 2d  20 c8 99 20 61 2c 2c 22  |cerd.>&- .. a,,"|
00007f90  57 69 6d 70 5f 43 72 65  61 74 65 53 75 62 4d 65  |Wimp_CreateSubMe|
00007fa0  6e 75 22 20 20 20 20 b8  20 63 72 65 61 74 65 73  |nu"    . creates|
00007fb0  6d 0d 3e 30 2c 20 c8 99  20 61 2c 2c 22 57 69 6d  |m.>0, .. a,,"Wim|
00007fc0  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 20 20 20  |p_CreateMenu"   |
00007fd0  20 20 20 20 b8 20 63 72  65 61 74 65 6d 0d 3e 3a  |    . createm.>:|
00007fe0  05 e1 0d 3e 44 04 0d 3e  4e 21 dd 20 f2 73 63 72  |...>D..>N!. .scr|
00007ff0  69 6e 66 6f 28 f8 20 77  69 64 74 68 2c 20 f8 20  |info(. width, . |
00008000  68 65 69 67 68 74 29 0d  3e 58 11 20 62 6b 21 30  |height).>X. bk!0|
00008010  20 20 3d 20 34 20 20 3a  0d 3e 62 11 20 62 6b 21  |  = 4  :.>b. bk!|
00008020  34 20 20 3d 20 35 20 20  3a 0d 3e 6c 11 20 62 6b  |4  = 5  :.>l. bk|
00008030  21 38 20 20 3d 20 31 31  20 3a 0d 3e 76 11 20 62  |!8  = 11 :.>v. b|
00008040  6b 21 31 32 20 3d 20 31  32 20 3a 0d 3e 80 11 20  |k!12 = 12 :.>.. |
00008050  62 6b 21 31 36 20 3d 20  2d 31 20 3a 0d 3e 8a 24  |bk!16 = -1 :.>.$|
00008060  20 c8 99 20 22 4f 53 5f  52 65 61 64 56 64 75 56  | .. "OS_ReadVduV|
00008070  61 72 69 61 62 6c 65 73  22 2c 62 6b 2c 20 62 6b  |ariables",bk, bk|
00008080  0d 3e 94 24 20 77 69 64  74 68 20 20 3d 20 28 31  |.>.$ width  = (1|
00008090  3c 3c 28 62 6b 21 30 29  29 2a 28 28 62 6b 21 38  |<<(bk!0))*((bk!8|
000080a0  29 2b 31 29 0d 3e 9e 25  20 68 65 69 67 68 74 20  |)+1).>.% height |
000080b0  3d 20 28 31 3c 3c 28 62  6b 21 34 29 29 2a 28 28  |= (1<<(bk!4))*((|
000080c0  62 6b 21 31 32 29 2b 31  29 0d 3e a8 05 e1 0d 3e  |bk!12)+1).>....>|
000080d0  b2 04 0d 3e bc 20 dd 20  f2 64 72 61 67 69 63 6f  |...>. . .dragico|
000080e0  6e 28 78 2c 79 2c 68 61  6e 64 6c 65 2c 69 63 6f  |n(x,y,handle,ico|
000080f0  6e 29 0d 3e c6 2f 20 ea  20 78 30 2c 79 30 2c 69  |n).>./ . x0,y0,i|
00008100  78 30 2c 69 79 30 2c 69  78 31 2c 69 79 31 2c 73  |x0,iy0,ix1,iy1,s|
00008110  63 72 77 69 64 74 68 2c  73 63 72 68 65 69 67 68  |crwidth,scrheigh|
00008120  74 0d 3e d0 04 0d 3e da  21 20 f2 73 63 72 69 6e  |t.>...>.! .scrin|
00008130  66 6f 28 73 63 72 77 69  64 74 68 2c 73 63 72 68  |fo(scrwidth,scrh|
00008140  65 69 67 68 74 29 0d 3e  e4 04 0d 3e ee 2e 20 62  |eight).>...>.. b|
00008150  6b 21 30 3d 68 61 6e 64  6c 65 3a c8 99 20 22 57  |k!0=handle:.. "W|
00008160  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00008170  74 65 22 2c 30 2c 62 6b  0d 3e f8 15 20 78 30 3d  |te",0,bk.>.. x0=|
00008180  62 6b 21 34 3a 79 30 3d  62 6b 21 31 36 0d 3f 02  |bk!4:y0=bk!16.?.|
00008190  36 20 62 6b 21 30 3d 68  61 6e 64 6c 65 3a 62 6b  |6 bk!0=handle:bk|
000081a0  21 34 3d 69 63 6f 6e 3a  c8 99 20 22 57 69 6d 70  |!4=icon:.. "Wimp|
000081b0  5f 47 65 74 49 63 6f 6e  53 74 61 74 65 22 2c 30  |_GetIconState",0|
000081c0  2c 62 6b 0d 3f 0c 2b 20  69 78 30 3d 62 6b 21 38  |,bk.?.+ ix0=bk!8|
000081d0  3a 69 79 30 3d 62 6b 21  31 32 3a 69 78 31 3d 62  |:iy0=bk!12:ix1=b|
000081e0  6b 21 31 36 3a 69 79 31  3d 62 6b 21 32 30 0d 3f  |k!16:iy1=bk!20.?|
000081f0  16 04 0d 3f 20 13 20 62  6b 21 30 20 20 3d 20 68  |...? . bk!0  = h|
00008200  61 6e 64 6c 65 0d 3f 2a  0e 20 62 6b 21 34 20 20  |andle.?*. bk!4  |
00008210  3d 20 35 0d 3f 34 13 20  62 6b 21 38 20 20 3d 20  |= 5.?4. bk!8  = |
00008220  78 30 2b 69 78 30 0d 3f  3e 13 20 62 6b 21 31 32  |x0+ix0.?>. bk!12|
00008230  20 3d 20 79 30 2b 69 79  30 0d 3f 48 13 20 62 6b  | = y0+iy0.?H. bk|
00008240  21 31 36 20 3d 20 78 30  2b 69 78 31 0d 3f 52 13  |!16 = x0+ix1.?R.|
00008250  20 62 6b 21 32 30 20 3d  20 79 30 2b 69 79 31 0d  | bk!20 = y0+iy1.|
00008260  3f 5c 0e 20 62 6b 21 32  34 20 3d 20 30 0d 3f 66  |?\. bk!24 = 0.?f|
00008270  0e 20 62 6b 21 32 38 20  3d 20 30 0d 3f 70 15 20  |. bk!28 = 0.?p. |
00008280  62 6b 21 33 32 20 3d 20  73 63 72 77 69 64 74 68  |bk!32 = scrwidth|
00008290  0d 3f 7a 16 20 62 6b 21  33 36 20 3d 20 73 63 72  |.?z. bk!36 = scr|
000082a0  68 65 69 67 68 74 0d 3f  84 18 20 63 6c 61 69 6d  |height.?.. claim|
000082b0  64 72 61 67 62 6f 78 3d  68 61 6e 64 6c 65 0d 3f  |dragbox=handle.?|
000082c0  8e 04 0d 3f 98 1b 20 c8  99 20 22 57 69 6d 70 5f  |...?.. .. "Wimp_|
000082d0  44 72 61 67 42 6f 78 22  2c 30 2c 62 6b 0d 3f a2  |DragBox",0,bk.?.|
000082e0  05 e1 0d 3f ac 04 0d 3f  b6 16 dd 20 f2 63 68 65  |...?...?... .che|
000082f0  63 6b 66 75 6c 6c 28 66  73 70 24 29 0d 3f c0 22  |ckfull(fsp$).?."|
00008300  20 e7 20 a7 66 73 70 24  2c 22 2e 22 29 20 84 20  | . .fsp$,".") . |
00008310  a7 66 73 70 24 2c 22 3a  22 29 20 8c 20 e1 0d 3f  |.fsp$,":") . ..?|
00008320  ca 3d 20 85 20 31 2c 22  54 6f 20 73 61 76 65 2c  |.= . 1,"To save,|
00008330  20 64 72 61 67 20 74 68  65 20 66 69 6c 65 20 69  | drag the file i|
00008340  63 6f 6e 20 74 6f 20 61  20 64 69 72 65 63 74 6f  |con to a directo|
00008350  72 79 20 76 69 65 77 65  72 2e 22 0d 3f d4 05 e1  |ry viewer.".?...|
00008360  0d 3f de 04 0d 3f e8 16  dd 20 a4 63 68 65 63 6b  |.?...?... .check|
00008370  66 75 6c 6c 28 66 73 70  24 29 0d 3f f2 24 20 e7  |full(fsp$).?.$ .|
00008380  20 a7 66 73 70 24 2c 22  2e 22 29 20 84 20 a7 66  | .fsp$,".") . .f|
00008390  73 70 24 2c 22 3a 22 29  20 8c 20 3d 20 b9 0d 3f  |sp$,":") . = ..?|
000083a0  fc 06 3d a3 0d 40 06 04  0d 40 10 18 dd 20 f2 73  |..=..@...@... .s|
000083b0  65 6c 65 63 74 69 63 6f  6e 28 68 25 2c 69 25 29  |electicon(h%,i%)|
000083c0  0d 40 1a 0f 20 62 6b 21  30 20 20 3d 20 68 25 0d  |.@.. bk!0  = h%.|
000083d0  40 24 0f 20 62 6b 21 34  20 20 3d 20 69 25 0d 40  |@$. bk!4  = i%.@|
000083e0  2e 14 20 62 6b 21 38 20  20 3d 20 26 32 30 30 30  |.. bk!8  = &2000|
000083f0  30 30 0d 40 38 14 20 62  6b 21 31 32 20 3d 20 26  |00.@8. bk!12 = &|
00008400  32 30 30 30 30 30 0d 40  42 11 20 c8 99 20 73 65  |200000.@B. .. se|
00008410  74 69 73 2c 2c 62 6b 0d  40 4c 05 e1 0d 40 56 04  |tis,,bk.@L...@V.|
00008420  0d 40 60 16 dd 20 f2 64  65 73 65 6c 65 63 74 28  |.@`.. .deselect(|
00008430  68 25 2c 69 25 29 0d 40  6a 0f 20 62 6b 21 30 20  |h%,i%).@j. bk!0 |
00008440  20 3d 20 68 25 0d 40 74  0f 20 62 6b 21 34 20 20  | = h%.@t. bk!4  |
00008450  3d 20 69 25 0d 40 7e 0e  20 62 6b 21 38 20 20 3d  |= i%.@~. bk!8  =|
00008460  20 30 0d 40 88 14 20 62  6b 21 31 32 20 3d 20 26  | 0.@.. bk!12 = &|
00008470  32 30 30 30 30 30 0d 40  92 11 20 c8 99 20 73 65  |200000.@.. .. se|
00008480  74 69 73 2c 2c 62 6b 0d  40 9c 05 e1 0d 40 a6 04  |tis,,bk.@....@..|
00008490  0d 40 b0 0e dd 20 f2 77  61 69 74 70 74 72 0d 40  |.@... .waitptr.@|
000084a0  ba 16 20 c8 99 20 22 48  6f 75 72 67 6c 61 73 73  |.. .. "Hourglass|
000084b0  5f 4f 6e 22 0d 40 c4 05  e1 0d 40 ce 04 0d 40 d8  |_On".@....@...@.|
000084c0  0f dd 20 f2 61 72 72 6f  77 70 74 72 0d 40 e2 17  |.. .arrowptr.@..|
000084d0  20 c8 99 20 22 48 6f 75  72 67 6c 61 73 73 5f 4f  | .. "Hourglass_O|
000084e0  66 66 22 0d 40 ec 05 e1  0d 40 f6 04 0d 41 00 18  |ff".@....@...A..|
000084f0  dd 20 f2 72 65 73 61 6d  70 6c 65 28 6e 65 77 72  |. .resample(newr|
00008500  61 74 65 29 0d 41 0a 1d  20 ea 20 70 68 61 73 65  |ate).A.. . phase|
00008510  61 63 63 2c 6e 65 77 73  69 7a 65 2c 6d 65 73 73  |acc,newsize,mess|
00008520  24 0d 41 14 12 20 ea 20  41 25 2c 42 25 2c 43 25  |$.A.. . A%,B%,C%|
00008530  2c 44 25 0d 41 1e 04 0d  41 28 14 20 e7 20 70 6c  |,D%.A...A(. . pl|
00008540  61 79 69 6e 67 20 f2 73  74 6f 70 0d 41 32 04 0d  |aying .stop.A2..|
00008550  41 3c 1d 20 e7 20 6e 65  77 72 61 74 65 20 3d 20  |A<. . newrate = |
00008560  73 61 6d 70 6c 65 72 61  74 65 20 8c 0d 41 46 44  |samplerate ..AFD|
00008570  20 20 85 20 31 2c 22 4e  65 77 20 73 61 6d 70 6c  |  . 1,"New sampl|
00008580  65 72 61 74 65 20 6d 75  73 74 20 62 65 20 64 69  |erate must be di|
00008590  66 66 65 72 65 6e 74 20  66 72 6f 6d 20 6f 72 67  |fferent from org|
000085a0  69 6e 61 6c 20 73 61 6d  70 6c 65 72 61 74 65 22  |inal samplerate"|
000085b0  0d 41 50 06 20 cd 0d 41  5a 04 0d 41 64 32 20 70  |.AP. ..AZ..Ad2 p|
000085c0  68 61 73 65 61 63 63 20  3d 20 a8 28 28 6e 65 77  |haseacc = .((new|
000085d0  72 61 74 65 2f 73 61 6d  70 6c 65 72 61 74 65 29  |rate/samplerate)|
000085e0  2f 28 31 2f 26 31 30 30  30 30 29 29 0d 41 6e 31  |/(1/&10000)).An1|
000085f0  20 6e 65 77 73 69 7a 65  20 20 3d 20 a8 28 73 61  | newsize  = .(sa|
00008600  6d 70 6c 65 6c 65 6e 67  74 68 2a 28 26 31 30 30  |mplelength*(&100|
00008610  30 30 2f 70 68 61 73 65  61 63 63 29 29 0d 41 78  |00/phaseacc)).Ax|
00008620  04 0d 41 82 21 20 e7 20  6e 65 77 73 69 7a 65 3e  |..A.! . newsize>|
00008630  73 61 6d 70 6c 65 62 75  66 66 65 72 73 69 7a 65  |samplebuffersize|
00008640  20 8c 0d 41 8c 4b 20 20  85 20 31 2c 22 59 6f 75  | ..A.K  . 1,"You|
00008650  20 64 6f 20 6e 6f 74 20  68 61 76 65 20 65 6e 6f  | do not have eno|
00008660  75 67 68 20 6d 65 6d 6f  72 79 20 74 6f 20 72 65  |ugh memory to re|
00008670  73 61 6d 70 6c 65 20 74  68 65 20 64 61 74 61 20  |sample the data |
00008680  61 74 20 74 68 69 73 20  72 61 74 65 22 0d 41 96  |at this rate".A.|
00008690  06 20 cd 0d 41 a0 04 0d  41 aa 0d 20 f2 77 61 69  |. ..A...A.. .wai|
000086a0  74 70 74 72 0d 41 b4 04  0d 41 be 16 20 41 25 20  |tptr.A...A.. A% |
000086b0  3d 20 73 61 6d 70 6c 65  62 75 66 66 65 72 0d 41  |= samplebuffer.A|
000086c0  c8 23 20 42 25 20 3d 20  73 61 6d 70 6c 65 62 75  |.# B% = samplebu|
000086d0  66 66 65 72 2b 73 61 6d  70 6c 65 6c 65 6e 67 74  |ffer+samplelengt|
000086e0  68 0d 41 d2 12 20 43 25  20 3d 20 70 68 61 73 65  |h.A.. C% = phase|
000086f0  61 63 63 0d 41 dc 1e 20  44 25 20 3d 20 73 61 6d  |acc.A.. D% = sam|
00008700  70 6c 65 62 75 66 66 65  72 2b 6e 65 77 73 69 7a  |plebuffer+newsiz|
00008710  65 0d 41 e6 0f 20 d6 20  72 65 73 61 6d 70 6c 65  |e.A.. . resample|
00008720  0d 41 f0 04 0d 41 fa 1b  20 73 61 6d 70 6c 65 72  |.A...A.. sampler|
00008730  61 74 65 20 20 20 3d 20  6e 65 77 72 61 74 65 0d  |ate   = newrate.|
00008740  42 04 1b 20 73 61 6d 70  6c 65 6c 65 6e 67 74 68  |B.. samplelength|
00008750  20 3d 20 6e 65 77 73 69  7a 65 0d 42 0e 04 0d 42  | = newsize.B...B|
00008760  18 20 20 21 77 61 76 65  62 61 73 65 20 20 20 20  |.  !wavebase    |
00008770  3d 20 73 61 6d 70 6c 65  62 75 66 66 65 72 0d 42  |= samplebuffer.B|
00008780  22 1b 20 21 6c 65 6e 67  74 68 20 20 20 20 20 20  |". !length      |
00008790  3d 20 6e 65 77 73 69 7a  65 0d 42 2c 04 0d 42 36  |= newsize.B,..B6|
000087a0  0e 20 f2 61 72 72 6f 77  70 74 72 0d 42 40 1c 20  |. .arrowptr.B@. |
000087b0  f2 63 6c 6f 73 65 77 69  6e 64 6f 77 28 72 65 73  |.closewindow(res|
000087c0  61 6d 70 6c 65 77 29 0d  42 4a 0e 20 f2 6d 6f 64  |amplew).BJ. .mod|
000087d0  69 66 69 65 64 0d 42 54  04 0d 42 5e 05 e1 0d 42  |ified.BT..B^...B|
000087e0  68 04 0d 42 72 15 dd 20  a4 66 69 6c 65 74 79 70  |h..Br.. .filetyp|
000087f0  65 28 66 73 70 24 29 0d  42 7c 0b 20 ea 20 74 79  |e(fsp$).B|. . ty|
00008800  70 65 0d 42 86 20 20 c8  99 20 22 58 4f 53 5f 46  |pe.B.  .. "XOS_F|
00008810  69 6c 65 22 2c 35 2c 66  73 70 24 20 b8 20 74 79  |ile",5,fsp$ . ty|
00008820  70 65 0d 42 90 09 3d 74  79 70 65 0d ff           |pe.B..=type..|
0000882d