Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars » RTR/!RTR_Samp/RunImage

RTR/!RTR_Samp/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-08.adf » Regulars
Filename: RTR/!RTR_Samp/RunImage
Read OK:
File size: 3201 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > !Body_Samp.RunImage
   20REM Version 2.0 By Mike Cook - Musbury Consultants
   30ON ERROR PROCerrorbox
   40DIM taskid%4:$taskid%="TASK"
   50DIM CODE% &280
   60SYS "Wimp_Initialise",200,!taskid%,"SoundSamp" TO version%,taskhand%
   70DIM q% &300,W% &300,temp% 300,buffers% 512,menu% 300,SW% 256,Rmenu% 300
   80DIM IsName% 256, Wmenu% 300, BUF%(6), TextWarn% 100, ww% 256,DELAY%(3)
   90SYS "Wimp_OpenTemplate",,"<SMP$Dir>.Templates"
  100ON ERROR SYS "Wimp_CloseTemplate":PROCerrorbox
  110SYS "Wimp_LoadTemplate",,q%,temp%,temp%+300,-1,"Info",0
  120SYS "Wimp_CreateWindow",,q% TO info%
  130SYS "Wimp_LoadTemplate",,W%,SW%,SW%+256,-1,"Sample",0
  140SYS "Wimp_CreateWindow",,W% TO sampleW%
  150SYS "Wimp_LoadTemplate",,q%,IsName%,IsName%+256,-1,"save_script",0
  160SYS "Wimp_CreateWindow",,q% TO saveW%
  170SYS "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0
  180q%!108=TextWarn%:q%!112=-1:q%!116=300
  190XQ%=q%!8-q%!0:YQ%=q%!12-q%!4
  200SYS "Wimp_CreateWindow",,q% TO warningW%
  210SYS "Wimp_CloseTemplate"
  220ref%=0
  230ON ERROR PROCerrorbox
  240DELAY%(0)=63:DELAY%(1)=37:DELAY%(2)=12:DELAY%(3)=8
  250PROC_CSU
  260PROCsetupmenu
  270PROCsdrive
  280PROCsetupbuffer
  290smpicon%=FNicon
  300wopen%=FALSE
  310PROC_PutName("Sample")
  320PROC_ClickLoad
  330
  340NewH%=TRUE
  350ON ERROR PROCerrorbox
  360
  370REPEAT
  380  SYS "Wimp_Poll",%1,q% TO A%
  390  CASE A% OF
  400  WHEN 1:PROC_doWindow
  410  WHEN 2:SYS "Wimp_OpenWindow",,q% :IF q%!0=sampleW% THEN wopen%=TRUE
  420  WHEN 3:PROC_close
  430  WHEN 6:PROC_SortClick(q%)
  440  WHEN 7:PROC_PutDown(q%)
  450  WHEN 8:PROC_KeyPress
  460  WHEN 9:PROC_DoMenu(q%)
  470  WHEN 17,18:PROCreceive(q%)
  480  ENDCASE
  490UNTIL FALSE
  500
  510DEF PROC_DoMenu(q%)
  520CASE !q% OF
  530WHEN 2: PROC_NewBuf(q%!4)
  540WHEN 3: PROC_SetRate(q%!4)
  550WHEN 4: PROCdie
  560ENDCASE
  570ENDPROC
  580
  590DEF PROC_doWindow
  600LOCAL A%,I%,L%
  610IF q%!0=sampleW% THEN
  620  PROC_Trans(sampleW%)
  630  SYS "Wimp_RedrawWindow",,q% TO flag%
  640   WHILE flag%
  650   SYS "Wimp_SetColour",0
  660   RECTANGLEFILL xo%,yo%,1034,-268
  670   SYS "Wimp_SetColour",7
  680   RECTANGLE xo%,yo%,1034,-268
  690   SYS "Wimp_SetColour",8
  700   A%=bufPoint%
  710   I%=BUF%(bufNo%)/514
  720   MOVE xo%+4,(yo%-130)+(?A%-130)
  730   FOR L%=xo%+4 TO xo%+1030 STEP 2
  740    PLOT 5,L%,(yo%-130)+(?A%-130)
  750    A%+=I%
  760    NEXT
  770    SYS "Wimp_GetRectangle",,q% TO flag%
  780   ENDWHILE
  790 ENDIF
  800ENDPROC
  810
  820DEF PROC_SortClick(q%)
  830i%=q%!16
  840IF q%!12=-2 AND i%=smpicon% THEN PROC_doIconClick(q%):ENDPROC
  850IF q%!12=sampleW% THEN PROC_doWindowClick:ENDPROC
  860IF q%!12=saveW% THEN PROC_DoSave:ENDPROC
  870IF q%!12=warningW% AND i%=2 THEN
  880                       q%!0=warningW%
  890                       PROC_close
  900                       MOUSERECTANGLE 0,0,2000,2000
  910    ENDIF
  920ENDPROC
  930
  940DEF PROC_doWindowClick
  950LOCAL B%
  960B%=q%!16
  970IF q%!8  = 2 THEN
  980              SYS "Wimp_GetPointerInfo",,q%
  990              SYS "Wimp_CreateMenu",,menu%,q%!0-68,q%!4
 1000   ELSE
 1010   CASE B% OF
 1020   WHEN 0: PROC_Sample
 1030   WHEN 1: PROCplay(&50)
 1040   WHEN 2: PROCplay(&60)
 1050   WHEN 3: PROCplay(&80)
 1060   WHEN 4: PROCplay(&B0)
 1070   WHEN 5: PROC_Vsound
 1080   ENDCASE
 1090ENDIF
 1100ENDPROC
 1110
 1120DEF PROC_Vsound
 1130LOCAL V%,X%,Y%,i
 1140PROC_Trans(sampleW%)
 1150MOUSE X%,Y%,V%
 1160i=(X%-xo%-244)/638
 1170V%=i*&FF
 1180IF V%<2 THEN V%=2
 1190PROCplay(V%)
 1200ENDPROC
 1210
 1220DEF PROC_doIconClick(q%)
 1230IF q%!8=2 THEN SYS"Wimp_CreateMenu",,menu%,q%!0-64,296
 1240IF q%!8=4 THEN PROC_BASIC
 1250ENDPROC
 1260
 1270DEF PROC_KeyPress
 1280i%=2
 1290PROC_DoSave
 1300ENDPROC
 1310
 1320DEF PROC_DoSave
 1330IF i%=0 THEN
 1340            SYS "Wimp_GetPointerInfo",,q%
 1350            PROCdragicon(q%!0,q%!4,saveW%,i%)
 1360 ENDIF
 1370IF i%=2 THEN
 1380 PROC_GetName
 1390 IF INSTR(fn$,":") THEN PROC_Save ELSE PROC_setupW("Drag the Icon into a Directory")
 1400 SYS "Wimp_CreateMenu",,-1
 1410ENDIF
 1420ENDPROC
 1430
 1440DEF PROC_Save
 1450LOCAL ch%
 1460OSCLI("SAVE "+fn$+" "+STR$~bufPoint%+" "+STR$~(bufPoint%+BUF%(bufNo%)))
 1470OSCLI("SETTYPE "+fn$+" 043")
 1480PROC_PutName(fn$)
 1490ENDPROC
 1500
 1510DEF PROC_close
 1520IF q%!0=sampleW% THEN wopen%=FALSE
 1530SYS "Wimp_CloseWindow",,q%
 1540ENDPROC
 1550
 1560DEFFNicon
 1570q%!0=-1
 1580q%!4=0
 1590q%!8=0 : REM Y DIRECTION
 1600q%!12=52 : REM X DIRECTION
 1610q%!16=96
 1620q%!20=&2002
 1630$(q%+24)="!RTR_Samp"
 1640SYS "Wimp_CreateIcon",,q% TO icon%
 1650=icon%
 1660
 1670DEF PROC_Trans(wh%)
 1680!q%=wh%
 1690SYS "Wimp_GetWindowState",,q%
 1700xo%=q%!4-q%!20+8:yo%=q%!16-q%!24-118
 1710XO%=q%!4:YO%=q%!16
 1720ENDPROC
 1730
 1740DEFPROCsetupmenu
 1750LOCAL m%
 1760$menu%="Sampler"
 1770menu%?12=7
 1780menu%?13=2
 1790menu%?14=7
 1800menu%?15=0
 1810menu%!16=128
 1820menu%!20=40
 1830menu%!24=0
 1840m%=menu%+28
 1850
 1860m%!0=0
 1870m%!4=info%
 1880m%!8=(7<<24)OR %10001
 1890$(m%+12)="Info"
 1900
 1910m%+=24
 1920m%!0=0
 1930m%!4=saveW%
 1940m%!8=(7<<24)OR %10001
 1950$(m%+12)="Save"
 1960
 1970m%+=24
 1980m%!0=0
 1990m%!4=Wmenu%
 2000m%!8=(7<<24)OR %10001
 2010$(m%+12)="Buffer"
 2020
 2030m%+=24
 2040m%!0=0
 2050m%!4=Rmenu%
 2060m%!8=(7<<24)OR %10001
 2070$(m%+12)="Rate"
 2080
 2090m%+=24
 2100m%!0=&80
 2110m%!4=0
 2120m%!8=(7<<24)OR %10001
 2130$(m%+12)="Quit"
 2140
 2150$Rmenu%="Rate"
 2160Rmenu%?12=7
 2170Rmenu%?13=2
 2180Rmenu%?14=7
 2190Rmenu%?15=0
 2200Rmenu%!16=128
 2210Rmenu%!20=40
 2220Rmenu%!24=0
 2230m%=Rmenu%+28
 2240
 2250m%!0=0
 2260m%!4=0
 2270m%!8=(7<<24)OR %10001
 2280$(m%+12)="5.5K"
 2290
 2300m%+=24
 2310m%!0=0
 2320m%!4=0
 2330m%!8=(7<<24)OR %10001
 2340$(m%+12)="7.4K"
 2350
 2360m%+=24
 2370m%!0=0
 2380m%!4=0
 2390m%!8=(7<<24)OR %10001
 2400$(m%+12)="11K"
 2410
 2420m%+=24
 2430m%!0=&81 : REM Initial tick
 2440m%!4=0
 2450m%!8=(7<<24)OR %10001
 2460$(m%+12)="12K"
 2470
 2480$Wmenu%="Size"
 2490Wmenu%?12=7
 2500Wmenu%?13=2
 2510Wmenu%?14=7
 2520Wmenu%?15=0
 2530Wmenu%!16=188
 2540Wmenu%!20=40
 2550Wmenu%!24=0
 2560m%=Wmenu%+28
 2570m%!0=1 : REM INITAL TICK
 2580m%!4=0
 2590m%!8=(7<<24)OR %10001
 2600$(m%+12)="16K"
 2610
 2620m%+=24
 2630m%!0=&0
 2640m%!4=0
 2650m%!8=(7<<24)OR %10001
 2660$(m%+12)="32K"
 2670
 2680m%+=24
 2690m%!0=&0
 2700m%!4=0
 2710m%!8=(7<<24)OR %10001
 2720$(m%+12)="64K"
 2730
 2740m%+=24
 2750m%!0=&0
 2760m%!4=0
 2770m%!8=(7<<24)OR %10001
 2780$(m%+12)="128K"
 2790
 2800m%+=24
 2810m%!0=&0
 2820m%!4=0
 2830m%!8=(7<<24)OR %10001
 2840$(m%+12)="256K"
 2850
 2860m%+=24
 2870m%!0=&80
 2880m%!4=0
 2890m%!8=(7<<24)OR %10001
 2900$(m%+12)="512K"
 2910
 2920ENDPROC
 2930
 2940DEF PROC_BASIC
 2950REM OPEN UP WINDOW HERE
 2960IF NOT(wopen%) THEN
 2970q%!0=sampleW%:q%!4=100:q%!8=50:q%!12=1280:q%!16=1024:q%!20=0
 2980q%!24=0:q%!28=-1
 2990SYS "Wimp_OpenWindow",,q%
 3000wopen%=TRUE
 3010ENDIF
 3020ENDPROC
 3030
 3040DEF PROCreceive(q%)
 3050LOCAL A%
 3060CASE q%!16 OF
 3070WHEN 0:PROCdie
 3080WHEN 2:IF q%!12=saveref% THEN fn$=FNsget(q%+44):PROC_Save
 3090WHEN 3:IF q%!20=-2 OR q%!20=sampleW% THEN
 3100        n$=FNsget(q%+44)
 3110        PROC_Dack
 3120        PROC_LB(n$)
 3130        PROC_BASIC
 3140        ENDIF
 3150WHEN 5:IF q%!40=&043 THEN
 3160       n$=FNsget(q%+44):PROC_Dack:PROC_LB(n$):PROC_BASIC
 3170       ENDIF
 3180WHEN &400C1 :q%!0=sampleW%:SYS "Wimp_CloseWindow",,q%
 3190WHEN &502:CASE TRUE OF
 3200       WHEN q%!32=-2 AND q%!36=smpicon%:mes$="This is the Run The Risv Sound Sampler icon.|MDrag a SOUND file here to hea it."
 3210       OTHERWISE:mes$=""
 3220       ENDCASE
 3230    IF mes$<>"" THEN
 3240    q%!12=q%!8
 3250    $(q%+20)=mes$+CHR$0
 3260    q%!0=(20+LENmes$+4)AND NOT 3
 3270    q%!16=&503
 3280    SYS "Wimp_SendMessage",18,q%,q%!4
 3290ENDCASE
 3300ENDPROC
 3310
 3320DEF PROC_Dack
 3330sendth%=q%!4
 3340myref%=q%!8
 3350SYS "Wimp_GetPointerInfo",,q%+8
 3360q%!28=q%!8
 3370q%!32=q%!12
 3380q%!0=(44+LENn$+4)AND NOT 3
 3390q%!12=myref%
 3400q%!16=4
 3410q%!36=-1
 3420q%!40=&FF9
 3430$(q%+44)=n$+CHR$0
 3440SYS "Wimp_SendMessage",17,q%,sendth%
 3450ENDIF
 3460ENDPROC
 3470
 3480DEF PROCerrorbox
 3490SYS "Wimp_DragBox",,-1
 3500!buffers%=ERR:$(buffers%+4)=REPORT$+" at line "+STR$ERL+CHR$0
 3510SYS "Wimp_ReportError",buffers%,1,"SoundSamp"
 3520GOTO 370
 3530ENDPROC
 3540
 3550DEFPROCdie
 3560SYS "Wimp_CloseDown",taskhand%,!taskid%
 3570PROCrelease
 3580SYS "OS_Module",7,,driver%
 3590 *RMReInit SoundDMA
 3600 *RMReInit SoundChannels
 3610 *RMReInit SoundScheduler
 3620END
 3630ENDPROC
 3640
 3650DEFFNsget(x%)
 3660LOCAL x$
 3670WHILE ?x% x$+=CHR$(?x%):x%+=1:ENDWHILE
 3680=x$
 3690
 3700
 3710REM Thanks to Jason Williams for the P.D. Sound Player
 3720
 3730DEF PROC_LB(S$)
 3740LOCAL ch%,l%,length%
 3750ch%=OPENIN(S$):IF ch%=0 THEN CLOSE#ch%:ENDPROC
 3760length%=EXT#ch%
 3770CLOSE#ch%
 3780l%=-1
 3790REPEAT
 3800 l%+=1
 3810 UNTIL BUF%(l%)>=length% OR l%=5
 3820 IF l%=5 AND NOT(BUF%(l%)>=length%) THEN PROC_setupW("File too big for buffers"):ENDPROC
 3830PROC_NewBuf(l%)
 3840IF l%=0 THEN ENDPROC
 3850OSCLI("LOAD "+S$+" "+STR$~bufPoint%)
 3860PROC_PutName(S$)
 3870SYS "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
 3880ENDPROC
 3890
 3900DEF PROCsdrive
 3910driver%=FNclaim(2048)
 3920IF driver%=0 THEN PROC_setupW("Not enough memory for driver"):END
 3930OSCLI("*LOAD <SMP$Dir>.Speaker "+STR$~driver%)
 3940REM CALL driver%+&F4
 3950ENDPROC
 3960
 3970DEF PROCplay(speed%)
 3980
 3990driver%!0=bufPoint%
 4000driver%!4=bufPoint%+BUF%(bufNo%)
 4010driver%?&1C=speed%
 4020CALL driver%+&F4
 4030
 4040*VOLUME 127
 4050*CHANNELVOICE 1 8
 4060SOUND 1,-127,255,255
 4070*FX21
 4080ENDPROC
 4090
 4100DEF FNclaim(size%)
 4110SYS "XOS_Module",6,,,size% TO ,,ptr%;flags%
 4120IF ptr%<1 OR flags%<>6 THEN PROC_setupW("Not Enough Room In RMA"):ptr%=0
 4130=ptr%
 4140
 4150DEF PROCrelease
 4160SYS "OS_Module",7,,bufPoint%
 4170ENDPROC
 4180
 4190DEF PROCdragicon(mousex%,mousey%,handle%,icon%)
 4200LOCAL bx%,by%,ix0%,iy0%,ix1%,iy1%
 4210PROCgetw(handle%)
 4220PROCgeti(handle%,icon%)
 4230!q%=handle%:q%!4=5
 4240q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1%
 4250q%!24=q%!8-mousex%:q%!28=q%!12-mousey%
 4260SYS "Wimp_DragBox",,q%
 4270SFLAG%=TRUE
 4280ENDPROC
 4290
 4300DEF PROCgetw(handle%)
 4310!q%=handle%:SYS "Wimp_GetWindowState",,q%:PROCinfo(q%+4)
 4320ENDPROC
 4330DEF PROCgeti(h%,i%)
 4340!q%=h%:q%!4=i%:SYS "Wimp_GetIconState",,q%
 4350ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
 4360iflags%=q%!24:idata%=q%+28
 4370ENDPROC
 4380
 4390DEF PROCinfo(p%)
 4400LOCAL x0%,y0%
 4410x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
 4420scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
 4430bx%=x0%-scx%:by%=y1%-scy%
 4440ENDPROC
 4450
 4460DEF PROCsetupbuffer
 4470FOR A%=0 TO 5
 4480READ BUF%(A%)
 4490NEXT
 4500bufNo%=1
 4510bufPoint%=FNclaim(BUF%(bufNo%))
 4520PROC_Bblank
 4530DATA &4000,&8000,&10000,&20000,&40000,&80000
 4540ENDPROC
 4550
 4560DEF PROC_NewBuf(N%)
 4570LOCAL A%
 4580PROCrelease
 4590MP%=Wmenu%+28
 4600FOR A%=MP% TO MP%+(5*24) STEP 24
 4610A%!0=A%!0 AND &FFFFFFFE
 4620NEXT
 4630!(MP%+N%*24)=!(MP%+N%*24) OR 1
 4640MP%=q%!0
 4650bufPoint%=FNclaim(BUF%(N%))
 4660IF bufPoint%=0 THEN PROC_setupW("Not Enough Memory in RMA for this buffer"):N%=1:l%=0:GOTO 4590
 4670bufNo%=N%
 4680PROC_Bblank
 4690SYS "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
 4700ENDPROC
 4710
 4720DEF PROC_Bblank
 4730SYS "Hourglass_On"
 4740A%=bufPoint%
 4750B%=BUF%(bufNo%)
 4760CALL BB
 4770SYS "Hourglass_Off"
 4780ENDPROC
 4790
 4800DEF PROC_GetName
 4810LOCAL T%,A%,F$
 4820F$="":fn$=""
 4830q%!0=saveW%:q%!4=1
 4840SYS "Wimp_GetIconState",,q%
 4850T%=q%!28
 4860T%-=1
 4870REPEAT
 4880T%+=1
 4890F$=F$+CHR$(?T%)
 4900UNTIL ?T%=0
 4910fn$=MID$(F$,1,LEN(F$)-1)
 4920ENDPROC
 4930
 4940DEF PROC_PutDown(q%)
 4950LOCAL h%,i%
 4960REM SYS "Wimp_GetPointerInfo",,q%
 4970PROC_GetName
 4980SYS "Wimp_GetPointerInfo",,q%
 4990h%=q%!12:i%=q%!16
 5000IF INSTR( fn$,":") THEN fn$=FN_spath(fn$)
 5010$(q%+44)=fn$
 5020?(q%+44+LEN(fn$))=0
 5030q%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=BUF%(bufNo%):q%!40=&043
 5040q%!0=56:q%!12=0:q%!16=1
 5050SYS "Wimp_SendMessage",17,q%,h%,i%
 5060saveref%=q%!8
 5070SYS "Wimp_CreateMenu",,-1
 5080ENDPROC
 5090
 5100DEF FN_spath(n$)
 5110WHILE INSTR(n$,".")
 5120n$=RIGHT$(n$,LEN(n$)-1)
 5130ENDWHILE
 5140IF LEN(n$)>10 THEN n$=RIGHT$(n$,10)
 5150=n$
 5160
 5170DEF PROC_PutName(p$)
 5180LOCAL T%
 5190q%!0=saveW%:q%!4=1
 5200SYS "Wimp_GetIconState",,q%
 5210T%=q%!28
 5220$T%=p$
 5230!(T%+LEN(p$))=0
 5240ENDPROC
 5250
 5260DEF PROC_Sample
 5270G%=bufPoint%:H%=BUF%(bufNo%)
 5280!BPOINT=G%:!BSIZE=H%
 5290CALL SAMP
 5300q%!0=sampleW%:q%!4=1:q%!8=&1<<21:q%!12=0
 5310SYS "Wimp_SetIconState",,q%
 5320SYS "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
 5330ENDPROC
 5340
 5350DEF PROC_CSU :REM CODE SETUP
 5360VDU 21
 5370FOR A=0 TO 2 STEP 2
 5380P%=CODE%
 5390[
 5400OPT A
 5410.BB \ Blank off buffer
 5420\ R0 address to fill R1 Number of Bytes
 5430MOV R2,#&80000000
 5440ORR R2,R2,#&800000
 5450ORR R2,R2,#&8000
 5460ORR R2,R2,#&80
 5470.BBloop
 5480STR R2,[R0],#4
 5490SUBS R1,R1,#4
 5500BNE BBloop
 5510MOV R15,R14 \ BACK
 5520
 5530.BPOINT EQUD 0
 5540.BSIZE EQUD 0
 5550.Bdelay EQUD 8 \ Delay value
 5560
 5570.SAMP
 5580STMFD R13!,{R14}
 5590MOV R9,R15
 5600SWI "OS_EnterOS"
 5610MOVNV R0,R0
 5620TEQP R15,#&C000003 \ DISABLE INTERRUPTS
 5630MOVNV R0,R0
 5640LDR R7,BSIZE \ Buffer size
 5650LDR R6,BPOINT \ Buffer pointer
 5660
 5670\Make printer Port Output
 5680MOV R0,#2
 5690MOV R1,#&00
 5700MOV R2,#&DF
 5710SWI &42EC1  \ Parallel output
 5720BL Gather    \ Get the samples
 5730TEQP R9,#0
 5740MOVNV R0,R0
 5750LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 5760
 5770.Gather
 5780\Take One Sample
 5790STMFD R13!,{R14}
 5800.TLOOP
 5810LDR R3,Bdelay \ Delay to get sample rate correct
 5820MOV R0,#1
 5830MOV R1,#3
 5840.Delay
 5850SWI &42EC1  \ Get the data
 5860SUBS R3,R3,#1
 5870BNE Delay
 5880
 5890MOV R0,#1
 5900MOV R1,#1
 5910SWI &42EC1  \ Chip select Low
 5920MOV R3,#&B  \ Bits to read
 5930MOV R5,#0   \ Collect bits here
 5940.Loop1
 5950MOV R0,#0
 5960SWI &42EC1  \ Get the data
 5970MOV R5,R5,LSL #1 \ Prepare R5 for new bit
 5980MOV R2,R2,LSR #7
 5990ORR R5,R5,R2     \ Mix R5 with new bit
 6000MOV R0,#1
 6010MOV R1,#1
 6020SWI &42EC1  \ Clock High
 6030MOV R1,#0
 6040SWI &42EC1  \ Clock Low
 6050SUBS R3,R3,#1
 6060BNE Loop1
 6070MOV R1,#3
 6080SWI &42EC1  \ Chip select & Clock High
 6090AND R5,R5,#&FF    \ MASK OFF START BIT
 6100EOR R5,R5,#&FF     \ TURN RIGHT WAYUP
 6110
 6120\R5 NOW HAS SAMPLE
 6130
 6140STRB R5,[R6],#1 \ PUT IT IN THE BUFFER
 6150SUBS R7,R7,#1    \ DECREMENT BYTES TO GO
 6160BNE  TLOOP        \ BACK UNTILL ALL DONE
 6170.Exit
 6180LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 6190
 6200]
 6210NEXT
 6220VDU 6
 6230ENDPROC
 6240
 6250DEF PROC_setupW(t$)
 6260!q%=warningW%:q%!4=200:q%!8=200:q%!12=200+XQ%:q%!16=200+YQ%:q%!20=0:q%!24=0:q%!28=-1
 6270$TextWarn%=t$
 6280TextWarn%?LEN(t$)=0
 6290VDU 7
 6300SYS "Wimp_OpenWindow",,q%
 6310MOUSE RECTANGLE 200,200,XQ%,YQ%
 6320ENDPROC
 6330
 6340DEF PROC_SetRate(n%)
 6350LOCAL MP%,A%
 6360MP%=Rmenu%+28
 6370FOR A%=MP% TO MP%+(3*24) STEP 24
 6380A%!0=A%!0 AND &FFFFFFFE
 6390NEXT
 6400!(MP%+n%*24)=!(MP%+n%*24) OR 1
 6410!Bdelay=DELAY%(n%)
 6420ENDPROC
 6430
 6440DEF PROC_ClickLoad
 6450REM ENDPROC
 6460Lf$=""
 6470SYS "OS_GetEnv" TO EnvStr$
 6480I%=LEN(EnvStr$)+1
 6490REPEAT I%-=1:UNTIL MID$(EnvStr$,I%,1)<>" "
 6500IF MID$(EnvStr$,I%,1)<>"""" THEN
 6510   I%=LEN(EnvStr$)
 6520   REPEAT I%-=1:UNTIL MID$(EnvStr$,I%,1)=" "
 6530   Lf$=RIGHT$(EnvStr$,LEN(EnvStr$)-I%+1)
 6540   PROC_BASIC
 6550   PROC_LB(Lf$)
 6560ENDIF
 6570ENDPROC

� > !Body_Samp.RunImage
4� Version 2.0 By Mike Cook - Musbury Consultants
� � �errorbox
(� taskid%4:$taskid%="TASK"
2� CODE% &280
<Fș "Wimp_Initialise",200,!taskid%,"SoundSamp" � version%,taskhand%
FI� q% &300,W% &300,temp% 300,buffers% 512,menu% 300,SW% 256,Rmenu% 300
PH� IsName% 256, Wmenu% 300, BUF%(6), TextWarn% 100, ww% 256,DELAY%(3)
Z1ș "Wimp_OpenTemplate",,"<SMP$Dir>.Templates"
d)� � ș "Wimp_CloseTemplate":�errorbox
n:ș "Wimp_LoadTemplate",,q%,temp%,temp%+300,-1,"Info",0
x&ș "Wimp_CreateWindow",,q% � info%
�8ș "Wimp_LoadTemplate",,W%,SW%,SW%+256,-1,"Sample",0
�)ș "Wimp_CreateWindow",,W% � sampleW%
�Eș "Wimp_LoadTemplate",,q%,IsName%,IsName%+256,-1,"save_script",0
�'ș "Wimp_CreateWindow",,q% � saveW%
�9ș "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0
�)q%!108=TextWarn%:q%!112=-1:q%!116=300
� XQ%=q%!8-q%!0:YQ%=q%!12-q%!4
�*ș "Wimp_CreateWindow",,q% � warningW%
�ș "Wimp_CloseTemplate"
�
ref%=0
�� � �errorbox
�6DELAY%(0)=63:DELAY%(1)=37:DELAY%(2)=12:DELAY%(3)=8
�	�_CSU
�setupmenu
�sdrive
�setupbuffer
"smpicon%=�icon
,wopen%=�
6�_PutName("Sample")
@�_ClickLoad
J
TNewH%=�
^� � �errorbox
h
r�
|  ș "Wimp_Poll",%1,q% � A%
�
  Ȏ A% �
�  � 1:�_doWindow
�>  � 2:ș "Wimp_OpenWindow",,q% :� q%!0=sampleW% � wopen%=�
�  � 3:�_close
�  � 6:�_SortClick(q%)
�  � 7:�_PutDown(q%)
�  � 8:�_KeyPress
�  � 9:�_DoMenu(q%)
�  � 17,18:�receive(q%)
�  �
�� �
�
�� �_DoMenu(q%)
Ȏ !q% �
� 2: �_NewBuf(q%!4)
� 3: �_SetRate(q%!4)
&
� 4: �die
0�
:�
D
N� �_doWindow
X� A%,I%,L%
b� q%!0=sampleW% �
l  �_Trans(sampleW%)
v(  ș "Wimp_RedrawWindow",,q% � flag%
�   ȕ flag%
�   ș "Wimp_SetColour",0
�   ȓȐ xo%,yo%,1034,-268
�   ș "Wimp_SetColour",7
�   ȓ xo%,yo%,1034,-268
�   ș "Wimp_SetColour",8
�   A%=bufPoint%
�   I%=BUF%(bufNo%)/514
�"   � xo%+4,(yo%-130)+(?A%-130)
�    � L%=xo%+4 � xo%+1030 � 2
�"    � 5,L%,(yo%-130)+(?A%-130)
�    A%+=I%
�	    �
*    ș "Wimp_GetRectangle",,q% � flag%
   �
 �
 �
*
4� �_SortClick(q%)
>i%=q%!16
H2� q%!12=-2 � i%=smpicon% � �_doIconClick(q%):�
R(� q%!12=sampleW% � �_doWindowClick:�
\� q%!12=saveW% � �_DoSave:�
f� q%!12=warningW% � i%=2 �
p)                       q%!0=warningW%
z"                       �_close
�-                       ȗȓ 0,0,2000,2000
�	    �
��
�
�� �_doWindowClick
�� B%
�B%=q%!16
�� q%!8  = 2 �
�.              ș "Wimp_GetPointerInfo",,q%
�:              ș "Wimp_CreateMenu",,menu%,q%!0-68,q%!4
�   �
�   Ȏ B% �
�   � 0: �_Sample
   � 1: �play(&50)
   � 2: �play(&60)
   � 3: �play(&80)
$   � 4: �play(&B0)
.   � 5: �_Vsound
8   �
B�
L�
V
`� �_Vsound
j� V%,X%,Y%,i
t�_Trans(sampleW%)
~ȗ X%,Y%,V%
�i=(X%-xo%-244)/638
�V%=i*&FF
�� V%<2 � V%=2
�
�play(V%)
��
�
�� �_doIconClick(q%)
�5� q%!8=2 � ș"Wimp_CreateMenu",,menu%,q%!0-64,296
�� q%!8=4 � �_BASIC
��
�
�� �_KeyPress
i%=2

�_DoSave
�

(� �_DoSave
2� i%=0 �
<,            ș "Wimp_GetPointerInfo",,q%
F.            �dragicon(q%!0,q%!4,saveW%,i%)
P �
Z� i%=2 �
d �_GetName
nF � �fn$,":") � �_Save � �_setupW("Drag the Icon into a Directory")
x ș "Wimp_CreateMenu",,-1
��
��
�
�� �_Save
�	� ch%
�A�("SAVE "+fn$+" "+�~bufPoint%+" "+�~(bufPoint%+BUF%(bufNo%)))
��("SETTYPE "+fn$+" 043")
��_PutName(fn$)
��
�
�
� �_close
�� q%!0=sampleW% � wopen%=�
�ș "Wimp_CloseWindow",,q%
�


ݤicon
"q%!0=-1
,
q%!4=0
6q%!8=0 : � Y DIRECTION
@q%!12=52 : � X DIRECTION
Jq%!16=96
Tq%!20=&2002
^$(q%+24)="!RTR_Samp"
h$ș "Wimp_CreateIcon",,q% � icon%
r
=icon%
|
�� �_Trans(wh%)
�!q%=wh%
� ș "Wimp_GetWindowState",,q%
�(xo%=q%!4-q%!20+8:yo%=q%!16-q%!24-118
�XO%=q%!4:YO%=q%!16
��
�
���setupmenu
�� m%
�$menu%="Sampler"
�menu%?12=7
�menu%?13=2
�menu%?14=7
menu%?15=0
menu%!16=128
menu%!20=40
&menu%!24=0
0m%=menu%+28
:
D
m%!0=0
Nm%!4=info%
Xm%!8=(7<<24)� %10001
b$(m%+12)="Info"
l
v
m%+=24
�
m%!0=0
�m%!4=saveW%
�m%!8=(7<<24)� %10001
�$(m%+12)="Save"
�
�
m%+=24
�
m%!0=0
�m%!4=Wmenu%
�m%!8=(7<<24)� %10001
�$(m%+12)="Buffer"
�
�
m%+=24
�
m%!0=0
m%!4=Rmenu%
m%!8=(7<<24)� %10001
$(m%+12)="Rate"
 
*
m%+=24
4m%!0=&80
>
m%!4=0
Hm%!8=(7<<24)� %10001
R$(m%+12)="Quit"
\
f$Rmenu%="Rate"
pRmenu%?12=7
zRmenu%?13=2
�Rmenu%?14=7
�Rmenu%?15=0
�Rmenu%!16=128
�Rmenu%!20=40
�Rmenu%!24=0
�m%=Rmenu%+28
�
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="5.5K"
�
�
m%+=24
	
m%!0=0
	
m%!4=0
	m%!8=(7<<24)� %10001
	$$(m%+12)="7.4K"
	.
	8
m%+=24
	B
m%!0=0
	L
m%!4=0
	Vm%!8=(7<<24)� %10001
	`$(m%+12)="11K"
	j
	t
m%+=24
	~m%!0=&81 : � Initial tick
	�
m%!4=0
	�m%!8=(7<<24)� %10001
	�$(m%+12)="12K"
	�
	�$Wmenu%="Size"
	�Wmenu%?12=7
	�Wmenu%?13=2
	�Wmenu%?14=7
	�Wmenu%?15=0
	�Wmenu%!16=188
	�Wmenu%!20=40
	�Wmenu%!24=0
m%=Wmenu%+28

m%!0=1 : � INITAL TICK

m%!4=0
m%!8=(7<<24)� %10001
($(m%+12)="16K"
2
<
m%+=24
Fm%!0=&0
P
m%!4=0
Zm%!8=(7<<24)� %10001
d$(m%+12)="32K"
n
x
m%+=24
�m%!0=&0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="64K"
�
�
m%+=24
�m%!0=&0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="128K"
�
�
m%+=24
�m%!0=&0

m%!4=0
m%!8=(7<<24)� %10001
$(m%+12)="256K"
"
,
m%+=24
6m%!0=&80
@
m%!4=0
Jm%!8=(7<<24)� %10001
T$(m%+12)="512K"
^
h�
r
|
� �_BASIC
�� OPEN UP WINDOW HERE
�� �(wopen%) �
�@q%!0=sampleW%:q%!4=100:q%!8=50:q%!12=1280:q%!16=1024:q%!20=0
�q%!24=0:q%!28=-1
�ș "Wimp_OpenWindow",,q%
�wopen%=�
��
��
�
�� �receive(q%)
�� A%
�Ȏ q%!16 �
�� 0:�die
2� 2:� q%!12=saveref% � fn$=�sget(q%+44):�_Save
%� 3:� q%!20=-2 � q%!20=sampleW% �
        n$=�sget(q%+44)
&        �_Dack
0        �_LB(n$)
:        �_BASIC
D
        �
N� 5:� q%!40=&043 �
X2       n$=�sget(q%+44):�_Dack:�_LB(n$):�_BASIC
b       �
l5� &400C1 :q%!0=sampleW%:ș "Wimp_CloseWindow",,q%
v� &502:Ȏ � �
�}       � q%!32=-2 � q%!36=smpicon%:mes$="This is the Run The Risv Sound Sampler icon.|MDrag a SOUND file here to hea it."
�       :mes$=""
�       �
�    � mes$<>"" �
�    q%!12=q%!8
�    $(q%+20)=mes$+�0
�    q%!0=(20+�mes$+4)� � 3
�    q%!16=&503
�(    ș "Wimp_SendMessage",18,q%,q%!4
��
��
�
�� �_Dack

sendth%=q%!4

myref%=q%!8

"ș "Wimp_GetPointerInfo",,q%+8

 q%!28=q%!8

*q%!32=q%!12

4q%!0=(44+�n$+4)� � 3

>q%!12=myref%

Hq%!16=4

Rq%!36=-1

\q%!40=&FF9

f$(q%+44)=n$+�0

p'ș "Wimp_SendMessage",17,q%,sendth%

z�

��

�

�� �errorbox

�ș "Wimp_DragBox",,-1

�2!buffers%=�:$(buffers%+4)=�$+" at line "+Þ+�0

�0ș "Wimp_ReportError",buffers%,1,"SoundSamp"

�
� �DrA

��

�

�	��die

�*ș "Wimp_CloseDown",taskhand%,!taskid%

��release

�ș "OS_Module",7,,driver%
 *RMReInit SoundDMA
 *RMReInit SoundChannels
 *RMReInit SoundScheduler
$�
.�
8
Bݤsget(x%)
L� x$
Vȕ ?x% x$+=�(?x%):x%+=1:�
`=x$
j
t
~8� Thanks to Jason Williams for the P.D. Sound Player
�
�� �_LB(S$)
�� ch%,l%,length%
�ch%=�(S$):� ch%=0 � �#ch%:�
�length%=�#ch%
�	�#ch%
�	l%=-1
��
�
 l%+=1
� � BUF%(l%)>=length% � l%=5
�K � l%=5 � �(BUF%(l%)>=length%) � �_setupW("File too big for buffers"):�
��_NewBuf(l%)
� l%=0 � �

!�("LOAD "+S$+" "+�~bufPoint%)
�_PutName(S$)
2ș "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
(�
2
<
� �sdrive
Fdriver%=�claim(2048)
P<� driver%=0 � �_setupW("Not enough memory for driver"):�
Z+�("*LOAD <SMP$Dir>.Speaker "+�~driver%)
d� CALL driver%+&F4
n�
x
�� �play(speed%)
�
�driver%!0=bufPoint%
�$driver%!4=bufPoint%+BUF%(bufNo%)
�driver%?&1C=speed%
�� driver%+&F4
�
�*VOLUME 127
�*CHANNELVOICE 1 8
�� 1,-127,255,255
�	*FX21
��
�
� �claim(size%)
-ș "XOS_Module",6,,,size% � ,,ptr%;flags%
D� ptr%<1 � flags%<>6 � �_setupW("Not Enough Room In RMA"):ptr%=0
"	=ptr%
,
6� �release
@ș "OS_Module",7,,bufPoint%
J�
T
^.� �dragicon(mousex%,mousey%,handle%,icon%)
h!� bx%,by%,ix0%,iy0%,ix1%,iy1%
r�getw(handle%)
|�geti(handle%,icon%)
�!q%=handle%:q%!4=5
�>q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1%
�*q%!24=q%!8-mousex%:q%!28=q%!12-mousey%
�ș "Wimp_DragBox",,q%
�SFLAG%=�
��
�
�� �getw(handle%)
�8!q%=handle%:ș "Wimp_GetWindowState",,q%:�info(q%+4)
��
�� �geti(h%,i%)
�-!q%=h%:q%!4=i%:ș "Wimp_GetIconState",,q%
�.ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
iflags%=q%!24:idata%=q%+28
�

&� �info(p%)
0
� x0%,y0%
:'x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
D5scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
Nbx%=x0%-scx%:by%=y1%-scy%
X�
b
l� �setupbuffer
v� A%=0 � 5
�� BUF%(A%)
��
�bufNo%=1
�"bufPoint%=�claim(BUF%(bufNo%))
��_Bblank
�-� &4000,&8000,&10000,&20000,&40000,&80000
��
�
�� �_NewBuf(N%)
�� A%
��release
�MP%=Wmenu%+28
�� A%=MP% � MP%+(5*24) � 24
A%!0=A%!0 � &FFFFFFFE
�
!!(MP%+N%*24)=!(MP%+N%*24) � 1
 MP%=q%!0
*bufPoint%=�claim(BUF%(N%))
4Y� bufPoint%=0 � �_setupW("Not Enough Memory in RMA for this buffer"):N%=1:l%=0:� �dnQ
>
bufNo%=N%
H�_Bblank
R2ș "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
\�
f
p� �_Bblank
zș "Hourglass_On"
�A%=bufPoint%
�B%=BUF%(bufNo%)
�� BB
�ș "Hourglass_Off"
��
�
�� �_GetName
�� T%,A%,F$
�F$="":fn$=""
�q%!0=saveW%:q%!4=1
�ș "Wimp_GetIconState",,q%
�T%=q%!28
�	T%-=1
�
	T%+=1
F$=F$+�(?T%)
$� ?T%=0
.fn$=�F$,1,�(F$)-1)
8�
B
L� �_PutDown(q%)
V� h%,i%
`#� SYS "Wimp_GetPointerInfo",,q%
j
�_GetName
t ș "Wimp_GetPointerInfo",,q%
~h%=q%!12:i%=q%!16
�#� � fn$,":") � fn$=�_spath(fn$)
�$(q%+44)=fn$
�?(q%+44+�(fn$))=0
�Cq%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=BUF%(bufNo%):q%!40=&043
�q%!0=56:q%!12=0:q%!16=1
�%ș "Wimp_SendMessage",17,q%,h%,i%
�saveref%=q%!8
�ș "Wimp_CreateMenu",,-1
��
�
�� �_spath(n$)
�ȕ �n$,".")
n$=�n$,�(n$)-1)

�
� �(n$)>10 � n$=�n$,10)
=n$
(
2� �_PutName(p$)
<� T%
Fq%!0=saveW%:q%!4=1
Pș "Wimp_GetIconState",,q%
ZT%=q%!28
d
$T%=p$
n!(T%+�(p$))=0
x�
�
�� �_Sample
� G%=bufPoint%:H%=BUF%(bufNo%)
�!BPOINT=G%:!BSIZE=H%
�
� SAMP
�,q%!0=sampleW%:q%!4=1:q%!8=&1<<21:q%!12=0
�ș "Wimp_SetIconState",,q%
�2ș "Wimp_ForceRedraw",sampleW%,0,-356,1100,-80
��
�
�� �_CSU :� CODE SETUP
�� 21
�� A=0 � 2 � 2
P%=CODE%
[
	OPT A
".BB \ Blank off buffer
,+\ R0 address to fill R1 Number of Bytes
6MOV R2,#&80000000
@�R R2,R2,#&800000
J�R R2,R2,#&8000
T�R R2,R2,#&80
^.BBloop
hSTR R2,[R0],#4
rSUBS R1,R1,#4
|BNE BBloop
�MOV R15,R14 \ BACK
�
�.BPOINT EQUD 0
�.BSIZE EQUD 0
� .Bdelay EQUD 8 \ Delay value
�
�	.SAMP
�STMFD R13!,{R14}
�MOV R9,R15
�SWI "OS_EnterOS"
�MOVNV R0,R0
�)TEQP R15,#&C000003 \ DISABLE �ERRUPTS
�MOVNV R0,R0
LDR R7,BSIZE \ Buffer size
"LDR R6,BPOINT \ Buffer pointer

&\Make printer Port Output
0
MOV R0,#2
:MOV R1,#&00
DMOV R2,#&DF
N!SWI &42EC1  \ Parallel output
X"BL Gather    \ Get the samples
bTEQP R9,#0
lMOVNV R0,R0
v-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
�
�.Gather
�\Take One Sample
�STMFD R13!,{R14}
�
.TLOOP
�4LDR R3,Bdelay \ Delay to get sample rate correct
�
MOV R0,#1
�
MOV R1,#3
�
.Delay
�SWI &42EC1  \ Get the data
�SUBS R3,R3,#1
�
BNE Delay
�

MOV R0,#1

MOV R1,#1
!SWI &42EC1  \ Chip select Low
 MOV R3,#&B  \ Bits to read
*#MOV R5,#0   \ Collect bits here
4
.Loop1
>
MOV R0,#0
HSWI &42EC1  \ Get the data
R-MOV R5,R5,LSL #1 \ Prepare R5 for new bit
\MOV R2,R2,LSR #7
f)�R R5,R5,R2     \ Mix R5 with new bit
p
MOV R0,#1
z
MOV R1,#1
�SWI &42EC1  \ Clock High
�
MOV R1,#0
�SWI &42EC1  \ Clock Low
�SUBS R3,R3,#1
�
BNE Loop1
�
MOV R1,#3
�*SWI &42EC1  \ Chip select & Clock High
�&� R5,R5,#&FF    \ MASK � START BIT
�'� R5,R5,#&FF     \ TURN RIGHT WAYUP
�
�\R5 NOW HAS SAMPLE
�
�*STRB R5,[R6],#1 \ PUT IT IN THE BUFFER
+SUBS R7,R7,#1    \ DECREMENT BYTES � GO
(BNE  TLOOP        \ BACK �L ALL DONE
	.Exit
$-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
.
8]
B�
L� 6
V�
`
j� �_setupW(t$)
tX!q%=warningW%:q%!4=200:q%!8=200:q%!12=200+XQ%:q%!16=200+YQ%:q%!20=0:q%!24=0:q%!28=-1
~$TextWarn%=t$
�TextWarn%?�(t$)=0
�� 7
�ș "Wimp_OpenWindow",,q%
�ȗ ȓ 200,200,XQ%,YQ%
��
�
�� �_SetRate(n%)
�� MP%,A%
�MP%=Rmenu%+28
�� A%=MP% � MP%+(3*24) � 24
�A%!0=A%!0 � &FFFFFFFE
��
!!(MP%+n%*24)=!(MP%+n%*24) � 1

!Bdelay=DELAY%(n%)
�

(� �_ClickLoad
2
� ENDPROC
<
Lf$=""
Fș "OS_GetEnv" � EnvStr$
PI%=�(EnvStr$)+1
Z!� I%-=1:� �EnvStr$,I%,1)<>" "
d� �EnvStr$,I%,1)<>"""" �
n   I%=�(EnvStr$)
x#   � I%-=1:� �EnvStr$,I%,1)=" "
�$   Lf$=�EnvStr$,�(EnvStr$)-I%+1)
�   �_BASIC
�   �_LB(Lf$)
��
��
�
00000000  0d 00 0a 1b f4 20 3e 20  21 42 6f 64 79 5f 53 61  |..... > !Body_Sa|
00000010  6d 70 2e 52 75 6e 49 6d  61 67 65 0d 00 14 34 f4  |mp.RunImage...4.|
00000020  20 56 65 72 73 69 6f 6e  20 32 2e 30 20 42 79 20  | Version 2.0 By |
00000030  4d 69 6b 65 20 43 6f 6f  6b 20 2d 20 4d 75 73 62  |Mike Cook - Musb|
00000040  75 72 79 20 43 6f 6e 73  75 6c 74 61 6e 74 73 0d  |ury Consultants.|
00000050  00 1e 11 ee 20 85 20 f2  65 72 72 6f 72 62 6f 78  |.... . .errorbox|
00000060  0d 00 28 1e de 20 74 61  73 6b 69 64 25 34 3a 24  |..(.. taskid%4:$|
00000070  74 61 73 6b 69 64 25 3d  22 54 41 53 4b 22 0d 00  |taskid%="TASK"..|
00000080  32 10 de 20 43 4f 44 45  25 20 26 32 38 30 0d 00  |2.. CODE% &280..|
00000090  3c 46 c8 99 20 22 57 69  6d 70 5f 49 6e 69 74 69  |<F.. "Wimp_Initi|
000000a0  61 6c 69 73 65 22 2c 32  30 30 2c 21 74 61 73 6b  |alise",200,!task|
000000b0  69 64 25 2c 22 53 6f 75  6e 64 53 61 6d 70 22 20  |id%,"SoundSamp" |
000000c0  b8 20 76 65 72 73 69 6f  6e 25 2c 74 61 73 6b 68  |. version%,taskh|
000000d0  61 6e 64 25 0d 00 46 49  de 20 71 25 20 26 33 30  |and%..FI. q% &30|
000000e0  30 2c 57 25 20 26 33 30  30 2c 74 65 6d 70 25 20  |0,W% &300,temp% |
000000f0  33 30 30 2c 62 75 66 66  65 72 73 25 20 35 31 32  |300,buffers% 512|
00000100  2c 6d 65 6e 75 25 20 33  30 30 2c 53 57 25 20 32  |,menu% 300,SW% 2|
00000110  35 36 2c 52 6d 65 6e 75  25 20 33 30 30 0d 00 50  |56,Rmenu% 300..P|
00000120  48 de 20 49 73 4e 61 6d  65 25 20 32 35 36 2c 20  |H. IsName% 256, |
00000130  57 6d 65 6e 75 25 20 33  30 30 2c 20 42 55 46 25  |Wmenu% 300, BUF%|
00000140  28 36 29 2c 20 54 65 78  74 57 61 72 6e 25 20 31  |(6), TextWarn% 1|
00000150  30 30 2c 20 77 77 25 20  32 35 36 2c 44 45 4c 41  |00, ww% 256,DELA|
00000160  59 25 28 33 29 0d 00 5a  31 c8 99 20 22 57 69 6d  |Y%(3)..Z1.. "Wim|
00000170  70 5f 4f 70 65 6e 54 65  6d 70 6c 61 74 65 22 2c  |p_OpenTemplate",|
00000180  2c 22 3c 53 4d 50 24 44  69 72 3e 2e 54 65 6d 70  |,"<SMP$Dir>.Temp|
00000190  6c 61 74 65 73 22 0d 00  64 29 ee 20 85 20 c8 99  |lates"..d). . ..|
000001a0  20 22 57 69 6d 70 5f 43  6c 6f 73 65 54 65 6d 70  | "Wimp_CloseTemp|
000001b0  6c 61 74 65 22 3a f2 65  72 72 6f 72 62 6f 78 0d  |late":.errorbox.|
000001c0  00 6e 3a c8 99 20 22 57  69 6d 70 5f 4c 6f 61 64  |.n:.. "Wimp_Load|
000001d0  54 65 6d 70 6c 61 74 65  22 2c 2c 71 25 2c 74 65  |Template",,q%,te|
000001e0  6d 70 25 2c 74 65 6d 70  25 2b 33 30 30 2c 2d 31  |mp%,temp%+300,-1|
000001f0  2c 22 49 6e 66 6f 22 2c  30 0d 00 78 26 c8 99 20  |,"Info",0..x&.. |
00000200  22 57 69 6d 70 5f 43 72  65 61 74 65 57 69 6e 64  |"Wimp_CreateWind|
00000210  6f 77 22 2c 2c 71 25 20  b8 20 69 6e 66 6f 25 0d  |ow",,q% . info%.|
00000220  00 82 38 c8 99 20 22 57  69 6d 70 5f 4c 6f 61 64  |..8.. "Wimp_Load|
00000230  54 65 6d 70 6c 61 74 65  22 2c 2c 57 25 2c 53 57  |Template",,W%,SW|
00000240  25 2c 53 57 25 2b 32 35  36 2c 2d 31 2c 22 53 61  |%,SW%+256,-1,"Sa|
00000250  6d 70 6c 65 22 2c 30 0d  00 8c 29 c8 99 20 22 57  |mple",0...).. "W|
00000260  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00000270  22 2c 2c 57 25 20 b8 20  73 61 6d 70 6c 65 57 25  |",,W% . sampleW%|
00000280  0d 00 96 45 c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |...E.. "Wimp_Loa|
00000290  64 54 65 6d 70 6c 61 74  65 22 2c 2c 71 25 2c 49  |dTemplate",,q%,I|
000002a0  73 4e 61 6d 65 25 2c 49  73 4e 61 6d 65 25 2b 32  |sName%,IsName%+2|
000002b0  35 36 2c 2d 31 2c 22 73  61 76 65 5f 73 63 72 69  |56,-1,"save_scri|
000002c0  70 74 22 2c 30 0d 00 a0  27 c8 99 20 22 57 69 6d  |pt",0...'.. "Wim|
000002d0  70 5f 43 72 65 61 74 65  57 69 6e 64 6f 77 22 2c  |p_CreateWindow",|
000002e0  2c 71 25 20 b8 20 73 61  76 65 57 25 0d 00 aa 39  |,q% . saveW%...9|
000002f0  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
00000300  70 6c 61 74 65 22 2c 2c  71 25 2c 77 77 25 2c 77  |plate",,q%,ww%,w|
00000310  77 25 2b 32 35 36 2c 2d  31 2c 22 57 61 72 6e 69  |w%+256,-1,"Warni|
00000320  6e 67 22 2c 30 0d 00 b4  29 71 25 21 31 30 38 3d  |ng",0...)q%!108=|
00000330  54 65 78 74 57 61 72 6e  25 3a 71 25 21 31 31 32  |TextWarn%:q%!112|
00000340  3d 2d 31 3a 71 25 21 31  31 36 3d 33 30 30 0d 00  |=-1:q%!116=300..|
00000350  be 20 58 51 25 3d 71 25  21 38 2d 71 25 21 30 3a  |. XQ%=q%!8-q%!0:|
00000360  59 51 25 3d 71 25 21 31  32 2d 71 25 21 34 0d 00  |YQ%=q%!12-q%!4..|
00000370  c8 2a c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |.*.. "Wimp_Creat|
00000380  65 57 69 6e 64 6f 77 22  2c 2c 71 25 20 b8 20 77  |eWindow",,q% . w|
00000390  61 72 6e 69 6e 67 57 25  0d 00 d2 1b c8 99 20 22  |arningW%...... "|
000003a0  57 69 6d 70 5f 43 6c 6f  73 65 54 65 6d 70 6c 61  |Wimp_CloseTempla|
000003b0  74 65 22 0d 00 dc 0a 72  65 66 25 3d 30 0d 00 e6  |te"....ref%=0...|
000003c0  11 ee 20 85 20 f2 65 72  72 6f 72 62 6f 78 0d 00  |.. . .errorbox..|
000003d0  f0 36 44 45 4c 41 59 25  28 30 29 3d 36 33 3a 44  |.6DELAY%(0)=63:D|
000003e0  45 4c 41 59 25 28 31 29  3d 33 37 3a 44 45 4c 41  |ELAY%(1)=37:DELA|
000003f0  59 25 28 32 29 3d 31 32  3a 44 45 4c 41 59 25 28  |Y%(2)=12:DELAY%(|
00000400  33 29 3d 38 0d 00 fa 09  f2 5f 43 53 55 0d 01 04  |3)=8....._CSU...|
00000410  0e f2 73 65 74 75 70 6d  65 6e 75 0d 01 0e 0b f2  |..setupmenu.....|
00000420  73 64 72 69 76 65 0d 01  18 10 f2 73 65 74 75 70  |sdrive.....setup|
00000430  62 75 66 66 65 72 0d 01  22 12 73 6d 70 69 63 6f  |buffer..".smpico|
00000440  6e 25 3d a4 69 63 6f 6e  0d 01 2c 0c 77 6f 70 65  |n%=.icon..,.wope|
00000450  6e 25 3d a3 0d 01 36 17  f2 5f 50 75 74 4e 61 6d  |n%=...6.._PutNam|
00000460  65 28 22 53 61 6d 70 6c  65 22 29 0d 01 40 0f f2  |e("Sample")..@..|
00000470  5f 43 6c 69 63 6b 4c 6f  61 64 0d 01 4a 04 0d 01  |_ClickLoad..J...|
00000480  54 0b 4e 65 77 48 25 3d  b9 0d 01 5e 11 ee 20 85  |T.NewH%=...^.. .|
00000490  20 f2 65 72 72 6f 72 62  6f 78 0d 01 68 04 0d 01  | .errorbox..h...|
000004a0  72 05 f5 0d 01 7c 1f 20  20 c8 99 20 22 57 69 6d  |r....|.  .. "Wim|
000004b0  70 5f 50 6f 6c 6c 22 2c  25 31 2c 71 25 20 b8 20  |p_Poll",%1,q% . |
000004c0  41 25 0d 01 86 0d 20 20  c8 8e 20 41 25 20 ca 0d  |A%....  .. A% ..|
000004d0  01 90 14 20 20 c9 20 31  3a f2 5f 64 6f 57 69 6e  |...  . 1:._doWin|
000004e0  64 6f 77 0d 01 9a 3e 20  20 c9 20 32 3a c8 99 20  |dow...>  . 2:.. |
000004f0  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00000500  22 2c 2c 71 25 20 3a e7  20 71 25 21 30 3d 73 61  |",,q% :. q%!0=sa|
00000510  6d 70 6c 65 57 25 20 8c  20 77 6f 70 65 6e 25 3d  |mpleW% . wopen%=|
00000520  b9 0d 01 a4 11 20 20 c9  20 33 3a f2 5f 63 6c 6f  |.....  . 3:._clo|
00000530  73 65 0d 01 ae 19 20 20  c9 20 36 3a f2 5f 53 6f  |se....  . 6:._So|
00000540  72 74 43 6c 69 63 6b 28  71 25 29 0d 01 b8 17 20  |rtClick(q%).... |
00000550  20 c9 20 37 3a f2 5f 50  75 74 44 6f 77 6e 28 71  | . 7:._PutDown(q|
00000560  25 29 0d 01 c2 14 20 20  c9 20 38 3a f2 5f 4b 65  |%)....  . 8:._Ke|
00000570  79 50 72 65 73 73 0d 01  cc 16 20 20 c9 20 39 3a  |yPress....  . 9:|
00000580  f2 5f 44 6f 4d 65 6e 75  28 71 25 29 0d 01 d6 1a  |._DoMenu(q%)....|
00000590  20 20 c9 20 31 37 2c 31  38 3a f2 72 65 63 65 69  |  . 17,18:.recei|
000005a0  76 65 28 71 25 29 0d 01  e0 07 20 20 cb 0d 01 ea  |ve(q%)....  ....|
000005b0  07 fd 20 a3 0d 01 f4 04  0d 01 fe 12 dd 20 f2 5f  |.. .......... ._|
000005c0  44 6f 4d 65 6e 75 28 71  25 29 0d 02 08 0c c8 8e  |DoMenu(q%)......|
000005d0  20 21 71 25 20 ca 0d 02  12 17 c9 20 32 3a 20 f2  | !q% ...... 2: .|
000005e0  5f 4e 65 77 42 75 66 28  71 25 21 34 29 0d 02 1c  |_NewBuf(q%!4)...|
000005f0  18 c9 20 33 3a 20 f2 5f  53 65 74 52 61 74 65 28  |.. 3: ._SetRate(|
00000600  71 25 21 34 29 0d 02 26  0d c9 20 34 3a 20 f2 64  |q%!4)..&.. 4: .d|
00000610  69 65 0d 02 30 05 cb 0d  02 3a 05 e1 0d 02 44 04  |ie..0....:....D.|
00000620  0d 02 4e 10 dd 20 f2 5f  64 6f 57 69 6e 64 6f 77  |..N.. ._doWindow|
00000630  0d 02 58 0e ea 20 41 25  2c 49 25 2c 4c 25 0d 02  |..X.. A%,I%,L%..|
00000640  62 15 e7 20 71 25 21 30  3d 73 61 6d 70 6c 65 57  |b.. q%!0=sampleW|
00000650  25 20 8c 0d 02 6c 17 20  20 f2 5f 54 72 61 6e 73  |% ...l.  ._Trans|
00000660  28 73 61 6d 70 6c 65 57  25 29 0d 02 76 28 20 20  |(sampleW%)..v(  |
00000670  c8 99 20 22 57 69 6d 70  5f 52 65 64 72 61 77 57  |.. "Wimp_RedrawW|
00000680  69 6e 64 6f 77 22 2c 2c  71 25 20 b8 20 66 6c 61  |indow",,q% . fla|
00000690  67 25 0d 02 80 0f 20 20  20 c8 95 20 66 6c 61 67  |g%....   .. flag|
000006a0  25 0d 02 8a 1c 20 20 20  c8 99 20 22 57 69 6d 70  |%....   .. "Wimp|
000006b0  5f 53 65 74 43 6f 6c 6f  75 72 22 2c 30 0d 02 94  |_SetColour",0...|
000006c0  1d 20 20 20 c8 93 c8 90  20 78 6f 25 2c 79 6f 25  |.   .... xo%,yo%|
000006d0  2c 31 30 33 34 2c 2d 32  36 38 0d 02 9e 1c 20 20  |,1034,-268....  |
000006e0  20 c8 99 20 22 57 69 6d  70 5f 53 65 74 43 6f 6c  | .. "Wimp_SetCol|
000006f0  6f 75 72 22 2c 37 0d 02  a8 1b 20 20 20 c8 93 20  |our",7....   .. |
00000700  78 6f 25 2c 79 6f 25 2c  31 30 33 34 2c 2d 32 36  |xo%,yo%,1034,-26|
00000710  38 0d 02 b2 1c 20 20 20  c8 99 20 22 57 69 6d 70  |8....   .. "Wimp|
00000720  5f 53 65 74 43 6f 6c 6f  75 72 22 2c 38 0d 02 bc  |_SetColour",8...|
00000730  13 20 20 20 41 25 3d 62  75 66 50 6f 69 6e 74 25  |.   A%=bufPoint%|
00000740  0d 02 c6 1a 20 20 20 49  25 3d 42 55 46 25 28 62  |....   I%=BUF%(b|
00000750  75 66 4e 6f 25 29 2f 35  31 34 0d 02 d0 22 20 20  |ufNo%)/514..."  |
00000760  20 ec 20 78 6f 25 2b 34  2c 28 79 6f 25 2d 31 33  | . xo%+4,(yo%-13|
00000770  30 29 2b 28 3f 41 25 2d  31 33 30 29 0d 02 da 20  |0)+(?A%-130)... |
00000780  20 20 20 e3 20 4c 25 3d  78 6f 25 2b 34 20 b8 20  |   . L%=xo%+4 . |
00000790  78 6f 25 2b 31 30 33 30  20 88 20 32 0d 02 e4 22  |xo%+1030 . 2..."|
000007a0  20 20 20 20 f0 20 35 2c  4c 25 2c 28 79 6f 25 2d  |    . 5,L%,(yo%-|
000007b0  31 33 30 29 2b 28 3f 41  25 2d 31 33 30 29 0d 02  |130)+(?A%-130)..|
000007c0  ee 0e 20 20 20 20 41 25  2b 3d 49 25 0d 02 f8 09  |..    A%+=I%....|
000007d0  20 20 20 20 ed 0d 03 02  2a 20 20 20 20 c8 99 20  |    ....*    .. |
000007e0  22 57 69 6d 70 5f 47 65  74 52 65 63 74 61 6e 67  |"Wimp_GetRectang|
000007f0  6c 65 22 2c 2c 71 25 20  b8 20 66 6c 61 67 25 0d  |le",,q% . flag%.|
00000800  03 0c 08 20 20 20 ce 0d  03 16 06 20 cd 0d 03 20  |...   ..... ... |
00000810  05 e1 0d 03 2a 04 0d 03  34 15 dd 20 f2 5f 53 6f  |....*...4.. ._So|
00000820  72 74 43 6c 69 63 6b 28  71 25 29 0d 03 3e 0c 69  |rtClick(q%)..>.i|
00000830  25 3d 71 25 21 31 36 0d  03 48 32 e7 20 71 25 21  |%=q%!16..H2. q%!|
00000840  31 32 3d 2d 32 20 80 20  69 25 3d 73 6d 70 69 63  |12=-2 . i%=smpic|
00000850  6f 6e 25 20 8c 20 f2 5f  64 6f 49 63 6f 6e 43 6c  |on% . ._doIconCl|
00000860  69 63 6b 28 71 25 29 3a  e1 0d 03 52 28 e7 20 71  |ick(q%):...R(. q|
00000870  25 21 31 32 3d 73 61 6d  70 6c 65 57 25 20 8c 20  |%!12=sampleW% . |
00000880  f2 5f 64 6f 57 69 6e 64  6f 77 43 6c 69 63 6b 3a  |._doWindowClick:|
00000890  e1 0d 03 5c 1f e7 20 71  25 21 31 32 3d 73 61 76  |...\.. q%!12=sav|
000008a0  65 57 25 20 8c 20 f2 5f  44 6f 53 61 76 65 3a e1  |eW% . ._DoSave:.|
000008b0  0d 03 66 1e e7 20 71 25  21 31 32 3d 77 61 72 6e  |..f.. q%!12=warn|
000008c0  69 6e 67 57 25 20 80 20  69 25 3d 32 20 8c 0d 03  |ingW% . i%=2 ...|
000008d0  70 29 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |p)              |
000008e0  20 20 20 20 20 20 20 20  20 71 25 21 30 3d 77 61  |         q%!0=wa|
000008f0  72 6e 69 6e 67 57 25 0d  03 7a 22 20 20 20 20 20  |rningW%..z"     |
00000900  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000910  20 20 f2 5f 63 6c 6f 73  65 0d 03 84 2d 20 20 20  |  ._close...-   |
00000920  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000930  20 20 20 20 c8 97 c8 93  20 30 2c 30 2c 32 30 30  |    .... 0,0,200|
00000940  30 2c 32 30 30 30 0d 03  8e 09 20 20 20 20 cd 0d  |0,2000....    ..|
00000950  03 98 05 e1 0d 03 a2 04  0d 03 ac 15 dd 20 f2 5f  |............. ._|
00000960  64 6f 57 69 6e 64 6f 77  43 6c 69 63 6b 0d 03 b6  |doWindowClick...|
00000970  08 ea 20 42 25 0d 03 c0  0c 42 25 3d 71 25 21 31  |.. B%....B%=q%!1|
00000980  36 0d 03 ca 11 e7 20 71  25 21 38 20 20 3d 20 32  |6..... q%!8  = 2|
00000990  20 8c 0d 03 d4 2e 20 20  20 20 20 20 20 20 20 20  | .....          |
000009a0  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |    .. "Wimp_Get|
000009b0  50 6f 69 6e 74 65 72 49  6e 66 6f 22 2c 2c 71 25  |PointerInfo",,q%|
000009c0  0d 03 de 3a 20 20 20 20  20 20 20 20 20 20 20 20  |...:            |
000009d0  20 20 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |  .. "Wimp_Creat|
000009e0  65 4d 65 6e 75 22 2c 2c  6d 65 6e 75 25 2c 71 25  |eMenu",,menu%,q%|
000009f0  21 30 2d 36 38 2c 71 25  21 34 0d 03 e8 08 20 20  |!0-68,q%!4....  |
00000a00  20 cc 0d 03 f2 0e 20 20  20 c8 8e 20 42 25 20 ca  | .....   .. B% .|
00000a10  0d 03 fc 14 20 20 20 c9  20 30 3a 20 f2 5f 53 61  |....   . 0: ._Sa|
00000a20  6d 70 6c 65 0d 04 06 16  20 20 20 c9 20 31 3a 20  |mple....   . 1: |
00000a30  f2 70 6c 61 79 28 26 35  30 29 0d 04 10 16 20 20  |.play(&50)....  |
00000a40  20 c9 20 32 3a 20 f2 70  6c 61 79 28 26 36 30 29  | . 2: .play(&60)|
00000a50  0d 04 1a 16 20 20 20 c9  20 33 3a 20 f2 70 6c 61  |....   . 3: .pla|
00000a60  79 28 26 38 30 29 0d 04  24 16 20 20 20 c9 20 34  |y(&80)..$.   . 4|
00000a70  3a 20 f2 70 6c 61 79 28  26 42 30 29 0d 04 2e 14  |: .play(&B0)....|
00000a80  20 20 20 c9 20 35 3a 20  f2 5f 56 73 6f 75 6e 64  |   . 5: ._Vsound|
00000a90  0d 04 38 08 20 20 20 cb  0d 04 42 05 cd 0d 04 4c  |..8.   ...B....L|
00000aa0  05 e1 0d 04 56 04 0d 04  60 0e dd 20 f2 5f 56 73  |....V...`.. ._Vs|
00000ab0  6f 75 6e 64 0d 04 6a 10  ea 20 56 25 2c 58 25 2c  |ound..j.. V%,X%,|
00000ac0  59 25 2c 69 0d 04 74 15  f2 5f 54 72 61 6e 73 28  |Y%,i..t.._Trans(|
00000ad0  73 61 6d 70 6c 65 57 25  29 0d 04 7e 0f c8 97 20  |sampleW%)..~... |
00000ae0  58 25 2c 59 25 2c 56 25  0d 04 88 16 69 3d 28 58  |X%,Y%,V%....i=(X|
00000af0  25 2d 78 6f 25 2d 32 34  34 29 2f 36 33 38 0d 04  |%-xo%-244)/638..|
00000b00  92 0c 56 25 3d 69 2a 26  46 46 0d 04 9c 11 e7 20  |..V%=i*&FF..... |
00000b10  56 25 3c 32 20 8c 20 56  25 3d 32 0d 04 a6 0d f2  |V%<2 . V%=2.....|
00000b20  70 6c 61 79 28 56 25 29  0d 04 b0 05 e1 0d 04 ba  |play(V%)........|
00000b30  04 0d 04 c4 17 dd 20 f2  5f 64 6f 49 63 6f 6e 43  |...... ._doIconC|
00000b40  6c 69 63 6b 28 71 25 29  0d 04 ce 35 e7 20 71 25  |lick(q%)...5. q%|
00000b50  21 38 3d 32 20 8c 20 c8  99 22 57 69 6d 70 5f 43  |!8=2 . .."Wimp_C|
00000b60  72 65 61 74 65 4d 65 6e  75 22 2c 2c 6d 65 6e 75  |reateMenu",,menu|
00000b70  25 2c 71 25 21 30 2d 36  34 2c 32 39 36 0d 04 d8  |%,q%!0-64,296...|
00000b80  16 e7 20 71 25 21 38 3d  34 20 8c 20 f2 5f 42 41  |.. q%!8=4 . ._BA|
00000b90  53 49 43 0d 04 e2 05 e1  0d 04 ec 04 0d 04 f6 10  |SIC.............|
00000ba0  dd 20 f2 5f 4b 65 79 50  72 65 73 73 0d 05 00 08  |. ._KeyPress....|
00000bb0  69 25 3d 32 0d 05 0a 0c  f2 5f 44 6f 53 61 76 65  |i%=2....._DoSave|
00000bc0  0d 05 14 05 e1 0d 05 1e  04 0d 05 28 0e dd 20 f2  |...........(.. .|
00000bd0  5f 44 6f 53 61 76 65 0d  05 32 0c e7 20 69 25 3d  |_DoSave..2.. i%=|
00000be0  30 20 8c 0d 05 3c 2c 20  20 20 20 20 20 20 20 20  |0 ...<,         |
00000bf0  20 20 20 c8 99 20 22 57  69 6d 70 5f 47 65 74 50  |   .. "Wimp_GetP|
00000c00  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 71 25 0d  |ointerInfo",,q%.|
00000c10  05 46 2e 20 20 20 20 20  20 20 20 20 20 20 20 f2  |.F.            .|
00000c20  64 72 61 67 69 63 6f 6e  28 71 25 21 30 2c 71 25  |dragicon(q%!0,q%|
00000c30  21 34 2c 73 61 76 65 57  25 2c 69 25 29 0d 05 50  |!4,saveW%,i%)..P|
00000c40  06 20 cd 0d 05 5a 0c e7  20 69 25 3d 32 20 8c 0d  |. ...Z.. i%=2 ..|
00000c50  05 64 0e 20 f2 5f 47 65  74 4e 61 6d 65 0d 05 6e  |.d. ._GetName..n|
00000c60  46 20 e7 20 a7 66 6e 24  2c 22 3a 22 29 20 8c 20  |F . .fn$,":") . |
00000c70  f2 5f 53 61 76 65 20 8b  20 f2 5f 73 65 74 75 70  |._Save . ._setup|
00000c80  57 28 22 44 72 61 67 20  74 68 65 20 49 63 6f 6e  |W("Drag the Icon|
00000c90  20 69 6e 74 6f 20 61 20  44 69 72 65 63 74 6f 72  | into a Director|
00000ca0  79 22 29 0d 05 78 1d 20  c8 99 20 22 57 69 6d 70  |y")..x. .. "Wimp|
00000cb0  5f 43 72 65 61 74 65 4d  65 6e 75 22 2c 2c 2d 31  |_CreateMenu",,-1|
00000cc0  0d 05 82 05 cd 0d 05 8c  05 e1 0d 05 96 04 0d 05  |................|
00000cd0  a0 0c dd 20 f2 5f 53 61  76 65 0d 05 aa 09 ea 20  |... ._Save..... |
00000ce0  63 68 25 0d 05 b4 41 ff  28 22 53 41 56 45 20 22  |ch%...A.("SAVE "|
00000cf0  2b 66 6e 24 2b 22 20 22  2b c3 7e 62 75 66 50 6f  |+fn$+" "+.~bufPo|
00000d00  69 6e 74 25 2b 22 20 22  2b c3 7e 28 62 75 66 50  |int%+" "+.~(bufP|
00000d10  6f 69 6e 74 25 2b 42 55  46 25 28 62 75 66 4e 6f  |oint%+BUF%(bufNo|
00000d20  25 29 29 29 0d 05 be 1c  ff 28 22 53 45 54 54 59  |%))).....("SETTY|
00000d30  50 45 20 22 2b 66 6e 24  2b 22 20 30 34 33 22 29  |PE "+fn$+" 043")|
00000d40  0d 05 c8 12 f2 5f 50 75  74 4e 61 6d 65 28 66 6e  |....._PutName(fn|
00000d50  24 29 0d 05 d2 05 e1 0d  05 dc 04 0d 05 e6 0d dd  |$)..............|
00000d60  20 f2 5f 63 6c 6f 73 65  0d 05 f0 1e e7 20 71 25  | ._close..... q%|
00000d70  21 30 3d 73 61 6d 70 6c  65 57 25 20 8c 20 77 6f  |!0=sampleW% . wo|
00000d80  70 65 6e 25 3d a3 0d 05  fa 1d c8 99 20 22 57 69  |pen%=....... "Wi|
00000d90  6d 70 5f 43 6c 6f 73 65  57 69 6e 64 6f 77 22 2c  |mp_CloseWindow",|
00000da0  2c 71 25 0d 06 04 05 e1  0d 06 0e 04 0d 06 18 0a  |,q%.............|
00000db0  dd a4 69 63 6f 6e 0d 06  22 0b 71 25 21 30 3d 2d  |..icon..".q%!0=-|
00000dc0  31 0d 06 2c 0a 71 25 21  34 3d 30 0d 06 36 1a 71  |1..,.q%!4=0..6.q|
00000dd0  25 21 38 3d 30 20 3a 20  f4 20 59 20 44 49 52 45  |%!8=0 : . Y DIRE|
00000de0  43 54 49 4f 4e 0d 06 40  1c 71 25 21 31 32 3d 35  |CTION..@.q%!12=5|
00000df0  32 20 3a 20 f4 20 58 20  44 49 52 45 43 54 49 4f  |2 : . X DIRECTIO|
00000e00  4e 0d 06 4a 0c 71 25 21  31 36 3d 39 36 0d 06 54  |N..J.q%!16=96..T|
00000e10  0f 71 25 21 32 30 3d 26  32 30 30 32 0d 06 5e 18  |.q%!20=&2002..^.|
00000e20  24 28 71 25 2b 32 34 29  3d 22 21 52 54 52 5f 53  |$(q%+24)="!RTR_S|
00000e30  61 6d 70 22 0d 06 68 24  c8 99 20 22 57 69 6d 70  |amp"..h$.. "Wimp|
00000e40  5f 43 72 65 61 74 65 49  63 6f 6e 22 2c 2c 71 25  |_CreateIcon",,q%|
00000e50  20 b8 20 69 63 6f 6e 25  0d 06 72 0a 3d 69 63 6f  | . icon%..r.=ico|
00000e60  6e 25 0d 06 7c 04 0d 06  86 12 dd 20 f2 5f 54 72  |n%..|...... ._Tr|
00000e70  61 6e 73 28 77 68 25 29  0d 06 90 0b 21 71 25 3d  |ans(wh%)....!q%=|
00000e80  77 68 25 0d 06 9a 20 c8  99 20 22 57 69 6d 70 5f  |wh%... .. "Wimp_|
00000e90  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
00000ea0  2c 71 25 0d 06 a4 28 78  6f 25 3d 71 25 21 34 2d  |,q%...(xo%=q%!4-|
00000eb0  71 25 21 32 30 2b 38 3a  79 6f 25 3d 71 25 21 31  |q%!20+8:yo%=q%!1|
00000ec0  36 2d 71 25 21 32 34 2d  31 31 38 0d 06 ae 16 58  |6-q%!24-118....X|
00000ed0  4f 25 3d 71 25 21 34 3a  59 4f 25 3d 71 25 21 31  |O%=q%!4:YO%=q%!1|
00000ee0  36 0d 06 b8 05 e1 0d 06  c2 04 0d 06 cc 0f dd f2  |6...............|
00000ef0  73 65 74 75 70 6d 65 6e  75 0d 06 d6 08 ea 20 6d  |setupmenu..... m|
00000f00  25 0d 06 e0 14 24 6d 65  6e 75 25 3d 22 53 61 6d  |%....$menu%="Sam|
00000f10  70 6c 65 72 22 0d 06 ea  0e 6d 65 6e 75 25 3f 31  |pler"....menu%?1|
00000f20  32 3d 37 0d 06 f4 0e 6d  65 6e 75 25 3f 31 33 3d  |2=7....menu%?13=|
00000f30  32 0d 06 fe 0e 6d 65 6e  75 25 3f 31 34 3d 37 0d  |2....menu%?14=7.|
00000f40  07 08 0e 6d 65 6e 75 25  3f 31 35 3d 30 0d 07 12  |...menu%?15=0...|
00000f50  10 6d 65 6e 75 25 21 31  36 3d 31 32 38 0d 07 1c  |.menu%!16=128...|
00000f60  0f 6d 65 6e 75 25 21 32  30 3d 34 30 0d 07 26 0e  |.menu%!20=40..&.|
00000f70  6d 65 6e 75 25 21 32 34  3d 30 0d 07 30 0f 6d 25  |menu%!24=0..0.m%|
00000f80  3d 6d 65 6e 75 25 2b 32  38 0d 07 3a 04 0d 07 44  |=menu%+28..:...D|
00000f90  0a 6d 25 21 30 3d 30 0d  07 4e 0e 6d 25 21 34 3d  |.m%!0=0..N.m%!4=|
00000fa0  69 6e 66 6f 25 0d 07 58  18 6d 25 21 38 3d 28 37  |info%..X.m%!8=(7|
00000fb0  3c 3c 32 34 29 84 20 25  31 30 30 30 31 0d 07 62  |<<24). %10001..b|
00000fc0  13 24 28 6d 25 2b 31 32  29 3d 22 49 6e 66 6f 22  |.$(m%+12)="Info"|
00000fd0  0d 07 6c 04 0d 07 76 0a  6d 25 2b 3d 32 34 0d 07  |..l...v.m%+=24..|
00000fe0  80 0a 6d 25 21 30 3d 30  0d 07 8a 0f 6d 25 21 34  |..m%!0=0....m%!4|
00000ff0  3d 73 61 76 65 57 25 0d  07 94 18 6d 25 21 38 3d  |=saveW%....m%!8=|
00001000  28 37 3c 3c 32 34 29 84  20 25 31 30 30 30 31 0d  |(7<<24). %10001.|
00001010  07 9e 13 24 28 6d 25 2b  31 32 29 3d 22 53 61 76  |...$(m%+12)="Sav|
00001020  65 22 0d 07 a8 04 0d 07  b2 0a 6d 25 2b 3d 32 34  |e"........m%+=24|
00001030  0d 07 bc 0a 6d 25 21 30  3d 30 0d 07 c6 0f 6d 25  |....m%!0=0....m%|
00001040  21 34 3d 57 6d 65 6e 75  25 0d 07 d0 18 6d 25 21  |!4=Wmenu%....m%!|
00001050  38 3d 28 37 3c 3c 32 34  29 84 20 25 31 30 30 30  |8=(7<<24). %1000|
00001060  31 0d 07 da 15 24 28 6d  25 2b 31 32 29 3d 22 42  |1....$(m%+12)="B|
00001070  75 66 66 65 72 22 0d 07  e4 04 0d 07 ee 0a 6d 25  |uffer"........m%|
00001080  2b 3d 32 34 0d 07 f8 0a  6d 25 21 30 3d 30 0d 08  |+=24....m%!0=0..|
00001090  02 0f 6d 25 21 34 3d 52  6d 65 6e 75 25 0d 08 0c  |..m%!4=Rmenu%...|
000010a0  18 6d 25 21 38 3d 28 37  3c 3c 32 34 29 84 20 25  |.m%!8=(7<<24). %|
000010b0  31 30 30 30 31 0d 08 16  13 24 28 6d 25 2b 31 32  |10001....$(m%+12|
000010c0  29 3d 22 52 61 74 65 22  0d 08 20 04 0d 08 2a 0a  |)="Rate".. ...*.|
000010d0  6d 25 2b 3d 32 34 0d 08  34 0c 6d 25 21 30 3d 26  |m%+=24..4.m%!0=&|
000010e0  38 30 0d 08 3e 0a 6d 25  21 34 3d 30 0d 08 48 18  |80..>.m%!4=0..H.|
000010f0  6d 25 21 38 3d 28 37 3c  3c 32 34 29 84 20 25 31  |m%!8=(7<<24). %1|
00001100  30 30 30 31 0d 08 52 13  24 28 6d 25 2b 31 32 29  |0001..R.$(m%+12)|
00001110  3d 22 51 75 69 74 22 0d  08 5c 04 0d 08 66 12 24  |="Quit"..\...f.$|
00001120  52 6d 65 6e 75 25 3d 22  52 61 74 65 22 0d 08 70  |Rmenu%="Rate"..p|
00001130  0f 52 6d 65 6e 75 25 3f  31 32 3d 37 0d 08 7a 0f  |.Rmenu%?12=7..z.|
00001140  52 6d 65 6e 75 25 3f 31  33 3d 32 0d 08 84 0f 52  |Rmenu%?13=2....R|
00001150  6d 65 6e 75 25 3f 31 34  3d 37 0d 08 8e 0f 52 6d  |menu%?14=7....Rm|
00001160  65 6e 75 25 3f 31 35 3d  30 0d 08 98 11 52 6d 65  |enu%?15=0....Rme|
00001170  6e 75 25 21 31 36 3d 31  32 38 0d 08 a2 10 52 6d  |nu%!16=128....Rm|
00001180  65 6e 75 25 21 32 30 3d  34 30 0d 08 ac 0f 52 6d  |enu%!20=40....Rm|
00001190  65 6e 75 25 21 32 34 3d  30 0d 08 b6 10 6d 25 3d  |enu%!24=0....m%=|
000011a0  52 6d 65 6e 75 25 2b 32  38 0d 08 c0 04 0d 08 ca  |Rmenu%+28.......|
000011b0  0a 6d 25 21 30 3d 30 0d  08 d4 0a 6d 25 21 34 3d  |.m%!0=0....m%!4=|
000011c0  30 0d 08 de 18 6d 25 21  38 3d 28 37 3c 3c 32 34  |0....m%!8=(7<<24|
000011d0  29 84 20 25 31 30 30 30  31 0d 08 e8 13 24 28 6d  |). %10001....$(m|
000011e0  25 2b 31 32 29 3d 22 35  2e 35 4b 22 0d 08 f2 04  |%+12)="5.5K"....|
000011f0  0d 08 fc 0a 6d 25 2b 3d  32 34 0d 09 06 0a 6d 25  |....m%+=24....m%|
00001200  21 30 3d 30 0d 09 10 0a  6d 25 21 34 3d 30 0d 09  |!0=0....m%!4=0..|
00001210  1a 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |..m%!8=(7<<24). |
00001220  25 31 30 30 30 31 0d 09  24 13 24 28 6d 25 2b 31  |%10001..$.$(m%+1|
00001230  32 29 3d 22 37 2e 34 4b  22 0d 09 2e 04 0d 09 38  |2)="7.4K"......8|
00001240  0a 6d 25 2b 3d 32 34 0d  09 42 0a 6d 25 21 30 3d  |.m%+=24..B.m%!0=|
00001250  30 0d 09 4c 0a 6d 25 21  34 3d 30 0d 09 56 18 6d  |0..L.m%!4=0..V.m|
00001260  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
00001270  30 30 31 0d 09 60 12 24  28 6d 25 2b 31 32 29 3d  |001..`.$(m%+12)=|
00001280  22 31 31 4b 22 0d 09 6a  04 0d 09 74 0a 6d 25 2b  |"11K"..j...t.m%+|
00001290  3d 32 34 0d 09 7e 1d 6d  25 21 30 3d 26 38 31 20  |=24..~.m%!0=&81 |
000012a0  3a 20 f4 20 49 6e 69 74  69 61 6c 20 74 69 63 6b  |: . Initial tick|
000012b0  0d 09 88 0a 6d 25 21 34  3d 30 0d 09 92 18 6d 25  |....m%!4=0....m%|
000012c0  21 38 3d 28 37 3c 3c 32  34 29 84 20 25 31 30 30  |!8=(7<<24). %100|
000012d0  30 31 0d 09 9c 12 24 28  6d 25 2b 31 32 29 3d 22  |01....$(m%+12)="|
000012e0  31 32 4b 22 0d 09 a6 04  0d 09 b0 12 24 57 6d 65  |12K"........$Wme|
000012f0  6e 75 25 3d 22 53 69 7a  65 22 0d 09 ba 0f 57 6d  |nu%="Size"....Wm|
00001300  65 6e 75 25 3f 31 32 3d  37 0d 09 c4 0f 57 6d 65  |enu%?12=7....Wme|
00001310  6e 75 25 3f 31 33 3d 32  0d 09 ce 0f 57 6d 65 6e  |nu%?13=2....Wmen|
00001320  75 25 3f 31 34 3d 37 0d  09 d8 0f 57 6d 65 6e 75  |u%?14=7....Wmenu|
00001330  25 3f 31 35 3d 30 0d 09  e2 11 57 6d 65 6e 75 25  |%?15=0....Wmenu%|
00001340  21 31 36 3d 31 38 38 0d  09 ec 10 57 6d 65 6e 75  |!16=188....Wmenu|
00001350  25 21 32 30 3d 34 30 0d  09 f6 0f 57 6d 65 6e 75  |%!20=40....Wmenu|
00001360  25 21 32 34 3d 30 0d 0a  00 10 6d 25 3d 57 6d 65  |%!24=0....m%=Wme|
00001370  6e 75 25 2b 32 38 0d 0a  0a 1a 6d 25 21 30 3d 31  |nu%+28....m%!0=1|
00001380  20 3a 20 f4 20 49 4e 49  54 41 4c 20 54 49 43 4b  | : . INITAL TICK|
00001390  0d 0a 14 0a 6d 25 21 34  3d 30 0d 0a 1e 18 6d 25  |....m%!4=0....m%|
000013a0  21 38 3d 28 37 3c 3c 32  34 29 84 20 25 31 30 30  |!8=(7<<24). %100|
000013b0  30 31 0d 0a 28 12 24 28  6d 25 2b 31 32 29 3d 22  |01..(.$(m%+12)="|
000013c0  31 36 4b 22 0d 0a 32 04  0d 0a 3c 0a 6d 25 2b 3d  |16K"..2...<.m%+=|
000013d0  32 34 0d 0a 46 0b 6d 25  21 30 3d 26 30 0d 0a 50  |24..F.m%!0=&0..P|
000013e0  0a 6d 25 21 34 3d 30 0d  0a 5a 18 6d 25 21 38 3d  |.m%!4=0..Z.m%!8=|
000013f0  28 37 3c 3c 32 34 29 84  20 25 31 30 30 30 31 0d  |(7<<24). %10001.|
00001400  0a 64 12 24 28 6d 25 2b  31 32 29 3d 22 33 32 4b  |.d.$(m%+12)="32K|
00001410  22 0d 0a 6e 04 0d 0a 78  0a 6d 25 2b 3d 32 34 0d  |"..n...x.m%+=24.|
00001420  0a 82 0b 6d 25 21 30 3d  26 30 0d 0a 8c 0a 6d 25  |...m%!0=&0....m%|
00001430  21 34 3d 30 0d 0a 96 18  6d 25 21 38 3d 28 37 3c  |!4=0....m%!8=(7<|
00001440  3c 32 34 29 84 20 25 31  30 30 30 31 0d 0a a0 12  |<24). %10001....|
00001450  24 28 6d 25 2b 31 32 29  3d 22 36 34 4b 22 0d 0a  |$(m%+12)="64K"..|
00001460  aa 04 0d 0a b4 0a 6d 25  2b 3d 32 34 0d 0a be 0b  |......m%+=24....|
00001470  6d 25 21 30 3d 26 30 0d  0a c8 0a 6d 25 21 34 3d  |m%!0=&0....m%!4=|
00001480  30 0d 0a d2 18 6d 25 21  38 3d 28 37 3c 3c 32 34  |0....m%!8=(7<<24|
00001490  29 84 20 25 31 30 30 30  31 0d 0a dc 13 24 28 6d  |). %10001....$(m|
000014a0  25 2b 31 32 29 3d 22 31  32 38 4b 22 0d 0a e6 04  |%+12)="128K"....|
000014b0  0d 0a f0 0a 6d 25 2b 3d  32 34 0d 0a fa 0b 6d 25  |....m%+=24....m%|
000014c0  21 30 3d 26 30 0d 0b 04  0a 6d 25 21 34 3d 30 0d  |!0=&0....m%!4=0.|
000014d0  0b 0e 18 6d 25 21 38 3d  28 37 3c 3c 32 34 29 84  |...m%!8=(7<<24).|
000014e0  20 25 31 30 30 30 31 0d  0b 18 13 24 28 6d 25 2b  | %10001....$(m%+|
000014f0  31 32 29 3d 22 32 35 36  4b 22 0d 0b 22 04 0d 0b  |12)="256K".."...|
00001500  2c 0a 6d 25 2b 3d 32 34  0d 0b 36 0c 6d 25 21 30  |,.m%+=24..6.m%!0|
00001510  3d 26 38 30 0d 0b 40 0a  6d 25 21 34 3d 30 0d 0b  |=&80..@.m%!4=0..|
00001520  4a 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |J.m%!8=(7<<24). |
00001530  25 31 30 30 30 31 0d 0b  54 13 24 28 6d 25 2b 31  |%10001..T.$(m%+1|
00001540  32 29 3d 22 35 31 32 4b  22 0d 0b 5e 04 0d 0b 68  |2)="512K"..^...h|
00001550  05 e1 0d 0b 72 04 0d 0b  7c 0d dd 20 f2 5f 42 41  |....r...|.. ._BA|
00001560  53 49 43 0d 0b 86 19 f4  20 4f 50 45 4e 20 55 50  |SIC..... OPEN UP|
00001570  20 57 49 4e 44 4f 57 20  48 45 52 45 0d 0b 90 11  | WINDOW HERE....|
00001580  e7 20 ac 28 77 6f 70 65  6e 25 29 20 8c 0d 0b 9a  |. .(wopen%) ....|
00001590  40 71 25 21 30 3d 73 61  6d 70 6c 65 57 25 3a 71  |@q%!0=sampleW%:q|
000015a0  25 21 34 3d 31 30 30 3a  71 25 21 38 3d 35 30 3a  |%!4=100:q%!8=50:|
000015b0  71 25 21 31 32 3d 31 32  38 30 3a 71 25 21 31 36  |q%!12=1280:q%!16|
000015c0  3d 31 30 32 34 3a 71 25  21 32 30 3d 30 0d 0b a4  |=1024:q%!20=0...|
000015d0  14 71 25 21 32 34 3d 30  3a 71 25 21 32 38 3d 2d  |.q%!24=0:q%!28=-|
000015e0  31 0d 0b ae 1c c8 99 20  22 57 69 6d 70 5f 4f 70  |1...... "Wimp_Op|
000015f0  65 6e 57 69 6e 64 6f 77  22 2c 2c 71 25 0d 0b b8  |enWindow",,q%...|
00001600  0c 77 6f 70 65 6e 25 3d  b9 0d 0b c2 05 cd 0d 0b  |.wopen%=........|
00001610  cc 05 e1 0d 0b d6 04 0d  0b e0 12 dd 20 f2 72 65  |............ .re|
00001620  63 65 69 76 65 28 71 25  29 0d 0b ea 08 ea 20 41  |ceive(q%)..... A|
00001630  25 0d 0b f4 0e c8 8e 20  71 25 21 31 36 20 ca 0d  |%...... q%!16 ..|
00001640  0b fe 0c c9 20 30 3a f2  64 69 65 0d 0c 08 32 c9  |.... 0:.die...2.|
00001650  20 32 3a e7 20 71 25 21  31 32 3d 73 61 76 65 72  | 2:. q%!12=saver|
00001660  65 66 25 20 8c 20 66 6e  24 3d a4 73 67 65 74 28  |ef% . fn$=.sget(|
00001670  71 25 2b 34 34 29 3a f2  5f 53 61 76 65 0d 0c 12  |q%+44):._Save...|
00001680  25 c9 20 33 3a e7 20 71  25 21 32 30 3d 2d 32 20  |%. 3:. q%!20=-2 |
00001690  84 20 71 25 21 32 30 3d  73 61 6d 70 6c 65 57 25  |. q%!20=sampleW%|
000016a0  20 8c 0d 0c 1c 1b 20 20  20 20 20 20 20 20 6e 24  | .....        n$|
000016b0  3d a4 73 67 65 74 28 71  25 2b 34 34 29 0d 0c 26  |=.sget(q%+44)..&|
000016c0  12 20 20 20 20 20 20 20  20 f2 5f 44 61 63 6b 0d  |.        ._Dack.|
000016d0  0c 30 14 20 20 20 20 20  20 20 20 f2 5f 4c 42 28  |.0.        ._LB(|
000016e0  6e 24 29 0d 0c 3a 13 20  20 20 20 20 20 20 20 f2  |n$)..:.        .|
000016f0  5f 42 41 53 49 43 0d 0c  44 0d 20 20 20 20 20 20  |_BASIC..D.      |
00001700  20 20 cd 0d 0c 4e 16 c9  20 35 3a e7 20 71 25 21  |  ...N.. 5:. q%!|
00001710  34 30 3d 26 30 34 33 20  8c 0d 0c 58 32 20 20 20  |40=&043 ...X2   |
00001720  20 20 20 20 6e 24 3d a4  73 67 65 74 28 71 25 2b  |    n$=.sget(q%+|
00001730  34 34 29 3a f2 5f 44 61  63 6b 3a f2 5f 4c 42 28  |44):._Dack:._LB(|
00001740  6e 24 29 3a f2 5f 42 41  53 49 43 0d 0c 62 0c 20  |n$):._BASIC..b. |
00001750  20 20 20 20 20 20 cd 0d  0c 6c 35 c9 20 26 34 30  |      ...l5. &40|
00001760  30 43 31 20 3a 71 25 21  30 3d 73 61 6d 70 6c 65  |0C1 :q%!0=sample|
00001770  57 25 3a c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |W%:.. "Wimp_Clos|
00001780  65 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 0c 76 11  |eWindow",,q%..v.|
00001790  c9 20 26 35 30 32 3a c8  8e 20 b9 20 ca 0d 0c 80  |. &502:.. . ....|
000017a0  7d 20 20 20 20 20 20 20  c9 20 71 25 21 33 32 3d  |}       . q%!32=|
000017b0  2d 32 20 80 20 71 25 21  33 36 3d 73 6d 70 69 63  |-2 . q%!36=smpic|
000017c0  6f 6e 25 3a 6d 65 73 24  3d 22 54 68 69 73 20 69  |on%:mes$="This i|
000017d0  73 20 74 68 65 20 52 75  6e 20 54 68 65 20 52 69  |s the Run The Ri|
000017e0  73 76 20 53 6f 75 6e 64  20 53 61 6d 70 6c 65 72  |sv Sound Sampler|
000017f0  20 69 63 6f 6e 2e 7c 4d  44 72 61 67 20 61 20 53  | icon.|MDrag a S|
00001800  4f 55 4e 44 20 66 69 6c  65 20 68 65 72 65 20 74  |OUND file here t|
00001810  6f 20 68 65 61 20 69 74  2e 22 0d 0c 8a 14 20 20  |o hea it."....  |
00001820  20 20 20 20 20 7f 3a 6d  65 73 24 3d 22 22 0d 0c  |     .:mes$=""..|
00001830  94 0c 20 20 20 20 20 20  20 cb 0d 0c 9e 14 20 20  |..       .....  |
00001840  20 20 e7 20 6d 65 73 24  3c 3e 22 22 20 8c 0d 0c  |  . mes$<>"" ...|
00001850  a8 12 20 20 20 20 71 25  21 31 32 3d 71 25 21 38  |..    q%!12=q%!8|
00001860  0d 0c b2 18 20 20 20 20  24 28 71 25 2b 32 30 29  |....    $(q%+20)|
00001870  3d 6d 65 73 24 2b bd 30  0d 0c bc 1e 20 20 20 20  |=mes$+.0....    |
00001880  71 25 21 30 3d 28 32 30  2b a9 6d 65 73 24 2b 34  |q%!0=(20+.mes$+4|
00001890  29 80 20 ac 20 33 0d 0c  c6 12 20 20 20 20 71 25  |). . 3....    q%|
000018a0  21 31 36 3d 26 35 30 33  0d 0c d0 28 20 20 20 20  |!16=&503...(    |
000018b0  c8 99 20 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |.. "Wimp_SendMes|
000018c0  73 61 67 65 22 2c 31 38  2c 71 25 2c 71 25 21 34  |sage",18,q%,q%!4|
000018d0  0d 0c da 05 cb 0d 0c e4  05 e1 0d 0c ee 04 0d 0c  |................|
000018e0  f8 0c dd 20 f2 5f 44 61  63 6b 0d 0d 02 10 73 65  |... ._Dack....se|
000018f0  6e 64 74 68 25 3d 71 25  21 34 0d 0d 0c 0f 6d 79  |ndth%=q%!4....my|
00001900  72 65 66 25 3d 71 25 21  38 0d 0d 16 22 c8 99 20  |ref%=q%!8...".. |
00001910  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00001920  49 6e 66 6f 22 2c 2c 71  25 2b 38 0d 0d 20 0e 71  |Info",,q%+8.. .q|
00001930  25 21 32 38 3d 71 25 21  38 0d 0d 2a 0f 71 25 21  |%!28=q%!8..*.q%!|
00001940  33 32 3d 71 25 21 31 32  0d 0d 34 18 71 25 21 30  |32=q%!12..4.q%!0|
00001950  3d 28 34 34 2b a9 6e 24  2b 34 29 80 20 ac 20 33  |=(44+.n$+4). . 3|
00001960  0d 0d 3e 10 71 25 21 31  32 3d 6d 79 72 65 66 25  |..>.q%!12=myref%|
00001970  0d 0d 48 0b 71 25 21 31  36 3d 34 0d 0d 52 0c 71  |..H.q%!16=4..R.q|
00001980  25 21 33 36 3d 2d 31 0d  0d 5c 0e 71 25 21 34 30  |%!36=-1..\.q%!40|
00001990  3d 26 46 46 39 0d 0d 66  12 24 28 71 25 2b 34 34  |=&FF9..f.$(q%+44|
000019a0  29 3d 6e 24 2b bd 30 0d  0d 70 27 c8 99 20 22 57  |)=n$+.0..p'.. "W|
000019b0  69 6d 70 5f 53 65 6e 64  4d 65 73 73 61 67 65 22  |imp_SendMessage"|
000019c0  2c 31 37 2c 71 25 2c 73  65 6e 64 74 68 25 0d 0d  |,17,q%,sendth%..|
000019d0  7a 05 cd 0d 0d 84 05 e1  0d 0d 8e 04 0d 0d 98 0f  |z...............|
000019e0  dd 20 f2 65 72 72 6f 72  62 6f 78 0d 0d a2 19 c8  |. .errorbox.....|
000019f0  99 20 22 57 69 6d 70 5f  44 72 61 67 42 6f 78 22  |. "Wimp_DragBox"|
00001a00  2c 2c 2d 31 0d 0d ac 32  21 62 75 66 66 65 72 73  |,,-1...2!buffers|
00001a10  25 3d 9f 3a 24 28 62 75  66 66 65 72 73 25 2b 34  |%=.:$(buffers%+4|
00001a20  29 3d f6 24 2b 22 20 61  74 20 6c 69 6e 65 20 22  |)=.$+" at line "|
00001a30  2b c3 9e 2b bd 30 0d 0d  b6 30 c8 99 20 22 57 69  |+..+.0...0.. "Wi|
00001a40  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 22 2c  |mp_ReportError",|
00001a50  62 75 66 66 65 72 73 25  2c 31 2c 22 53 6f 75 6e  |buffers%,1,"Soun|
00001a60  64 53 61 6d 70 22 0d 0d  c0 0a e5 20 8d 44 72 41  |dSamp"..... .DrA|
00001a70  0d 0d ca 05 e1 0d 0d d4  04 0d 0d de 09 dd f2 64  |...............d|
00001a80  69 65 0d 0d e8 2a c8 99  20 22 57 69 6d 70 5f 43  |ie...*.. "Wimp_C|
00001a90  6c 6f 73 65 44 6f 77 6e  22 2c 74 61 73 6b 68 61  |loseDown",taskha|
00001aa0  6e 64 25 2c 21 74 61 73  6b 69 64 25 0d 0d f2 0c  |nd%,!taskid%....|
00001ab0  f2 72 65 6c 65 61 73 65  0d 0d fc 1d c8 99 20 22  |.release...... "|
00001ac0  4f 53 5f 4d 6f 64 75 6c  65 22 2c 37 2c 2c 64 72  |OS_Module",7,,dr|
00001ad0  69 76 65 72 25 0d 0e 06  17 20 2a 52 4d 52 65 49  |iver%.... *RMReI|
00001ae0  6e 69 74 20 53 6f 75 6e  64 44 4d 41 0d 0e 10 1c  |nit SoundDMA....|
00001af0  20 2a 52 4d 52 65 49 6e  69 74 20 53 6f 75 6e 64  | *RMReInit Sound|
00001b00  43 68 61 6e 6e 65 6c 73  0d 0e 1a 1d 20 2a 52 4d  |Channels.... *RM|
00001b10  52 65 49 6e 69 74 20 53  6f 75 6e 64 53 63 68 65  |ReInit SoundSche|
00001b20  64 75 6c 65 72 0d 0e 24  05 e0 0d 0e 2e 05 e1 0d  |duler..$........|
00001b30  0e 38 04 0d 0e 42 0e dd  a4 73 67 65 74 28 78 25  |.8...B...sget(x%|
00001b40  29 0d 0e 4c 08 ea 20 78  24 0d 0e 56 1d c8 95 20  |)..L.. x$..V... |
00001b50  3f 78 25 20 78 24 2b 3d  bd 28 3f 78 25 29 3a 78  |?x% x$+=.(?x%):x|
00001b60  25 2b 3d 31 3a ce 0d 0e  60 07 3d 78 24 0d 0e 6a  |%+=1:...`.=x$..j|
00001b70  04 0d 0e 74 04 0d 0e 7e  38 f4 20 54 68 61 6e 6b  |...t...~8. Thank|
00001b80  73 20 74 6f 20 4a 61 73  6f 6e 20 57 69 6c 6c 69  |s to Jason Willi|
00001b90  61 6d 73 20 66 6f 72 20  74 68 65 20 50 2e 44 2e  |ams for the P.D.|
00001ba0  20 53 6f 75 6e 64 20 50  6c 61 79 65 72 0d 0e 88  | Sound Player...|
00001bb0  04 0d 0e 92 0e dd 20 f2  5f 4c 42 28 53 24 29 0d  |...... ._LB(S$).|
00001bc0  0e 9c 14 ea 20 63 68 25  2c 6c 25 2c 6c 65 6e 67  |.... ch%,l%,leng|
00001bd0  74 68 25 0d 0e a6 1f 63  68 25 3d 8e 28 53 24 29  |th%....ch%=.(S$)|
00001be0  3a e7 20 63 68 25 3d 30  20 8c 20 d9 23 63 68 25  |:. ch%=0 . .#ch%|
00001bf0  3a e1 0d 0e b0 11 6c 65  6e 67 74 68 25 3d a2 23  |:.....length%=.#|
00001c00  63 68 25 0d 0e ba 09 d9  23 63 68 25 0d 0e c4 09  |ch%.....#ch%....|
00001c10  6c 25 3d 2d 31 0d 0e ce  05 f5 0d 0e d8 0a 20 6c  |l%=-1......... l|
00001c20  25 2b 3d 31 0d 0e e2 1f  20 fd 20 42 55 46 25 28  |%+=1.... . BUF%(|
00001c30  6c 25 29 3e 3d 6c 65 6e  67 74 68 25 20 84 20 6c  |l%)>=length% . l|
00001c40  25 3d 35 0d 0e ec 4b 20  e7 20 6c 25 3d 35 20 80  |%=5...K . l%=5 .|
00001c50  20 ac 28 42 55 46 25 28  6c 25 29 3e 3d 6c 65 6e  | .(BUF%(l%)>=len|
00001c60  67 74 68 25 29 20 8c 20  f2 5f 73 65 74 75 70 57  |gth%) . ._setupW|
00001c70  28 22 46 69 6c 65 20 74  6f 6f 20 62 69 67 20 66  |("File too big f|
00001c80  6f 72 20 62 75 66 66 65  72 73 22 29 3a e1 0d 0e  |or buffers"):...|
00001c90  f6 10 f2 5f 4e 65 77 42  75 66 28 6c 25 29 0d 0f  |..._NewBuf(l%)..|
00001ca0  00 0e e7 20 6c 25 3d 30  20 8c 20 e1 0d 0f 0a 21  |... l%=0 . ....!|
00001cb0  ff 28 22 4c 4f 41 44 20  22 2b 53 24 2b 22 20 22  |.("LOAD "+S$+" "|
00001cc0  2b c3 7e 62 75 66 50 6f  69 6e 74 25 29 0d 0f 14  |+.~bufPoint%)...|
00001cd0  11 f2 5f 50 75 74 4e 61  6d 65 28 53 24 29 0d 0f  |.._PutName(S$)..|
00001ce0  1e 32 c8 99 20 22 57 69  6d 70 5f 46 6f 72 63 65  |.2.. "Wimp_Force|
00001cf0  52 65 64 72 61 77 22 2c  73 61 6d 70 6c 65 57 25  |Redraw",sampleW%|
00001d00  2c 30 2c 2d 33 35 36 2c  31 31 30 30 2c 2d 38 30  |,0,-356,1100,-80|
00001d10  0d 0f 28 05 e1 0d 0f 32  04 0d 0f 3c 0d dd 20 f2  |..(....2...<.. .|
00001d20  73 64 72 69 76 65 0d 0f  46 18 64 72 69 76 65 72  |sdrive..F.driver|
00001d30  25 3d a4 63 6c 61 69 6d  28 32 30 34 38 29 0d 0f  |%=.claim(2048)..|
00001d40  50 3c e7 20 64 72 69 76  65 72 25 3d 30 20 8c 20  |P<. driver%=0 . |
00001d50  f2 5f 73 65 74 75 70 57  28 22 4e 6f 74 20 65 6e  |._setupW("Not en|
00001d60  6f 75 67 68 20 6d 65 6d  6f 72 79 20 66 6f 72 20  |ough memory for |
00001d70  64 72 69 76 65 72 22 29  3a e0 0d 0f 5a 2b ff 28  |driver"):...Z+.(|
00001d80  22 2a 4c 4f 41 44 20 3c  53 4d 50 24 44 69 72 3e  |"*LOAD <SMP$Dir>|
00001d90  2e 53 70 65 61 6b 65 72  20 22 2b c3 7e 64 72 69  |.Speaker "+.~dri|
00001da0  76 65 72 25 29 0d 0f 64  16 f4 20 43 41 4c 4c 20  |ver%)..d.. CALL |
00001db0  64 72 69 76 65 72 25 2b  26 46 34 0d 0f 6e 05 e1  |driver%+&F4..n..|
00001dc0  0d 0f 78 04 0d 0f 82 13  dd 20 f2 70 6c 61 79 28  |..x...... .play(|
00001dd0  73 70 65 65 64 25 29 0d  0f 8c 04 0d 0f 96 17 64  |speed%)........d|
00001de0  72 69 76 65 72 25 21 30  3d 62 75 66 50 6f 69 6e  |river%!0=bufPoin|
00001df0  74 25 0d 0f a0 24 64 72  69 76 65 72 25 21 34 3d  |t%...$driver%!4=|
00001e00  62 75 66 50 6f 69 6e 74  25 2b 42 55 46 25 28 62  |bufPoint%+BUF%(b|
00001e10  75 66 4e 6f 25 29 0d 0f  aa 16 64 72 69 76 65 72  |ufNo%)....driver|
00001e20  25 3f 26 31 43 3d 73 70  65 65 64 25 0d 0f b4 11  |%?&1C=speed%....|
00001e30  d6 20 64 72 69 76 65 72  25 2b 26 46 34 0d 0f be  |. driver%+&F4...|
00001e40  04 0d 0f c8 0f 2a 56 4f  4c 55 4d 45 20 31 32 37  |.....*VOLUME 127|
00001e50  0d 0f d2 15 2a 43 48 41  4e 4e 45 4c 56 4f 49 43  |....*CHANNELVOIC|
00001e60  45 20 31 20 38 0d 0f dc  14 d4 20 31 2c 2d 31 32  |E 1 8..... 1,-12|
00001e70  37 2c 32 35 35 2c 32 35  35 0d 0f e6 09 2a 46 58  |7,255,255....*FX|
00001e80  32 31 0d 0f f0 05 e1 0d  0f fa 04 0d 10 04 13 dd  |21..............|
00001e90  20 a4 63 6c 61 69 6d 28  73 69 7a 65 25 29 0d 10  | .claim(size%)..|
00001ea0  0e 2d c8 99 20 22 58 4f  53 5f 4d 6f 64 75 6c 65  |.-.. "XOS_Module|
00001eb0  22 2c 36 2c 2c 2c 73 69  7a 65 25 20 b8 20 2c 2c  |",6,,,size% . ,,|
00001ec0  70 74 72 25 3b 66 6c 61  67 73 25 0d 10 18 44 e7  |ptr%;flags%...D.|
00001ed0  20 70 74 72 25 3c 31 20  84 20 66 6c 61 67 73 25  | ptr%<1 . flags%|
00001ee0  3c 3e 36 20 8c 20 f2 5f  73 65 74 75 70 57 28 22  |<>6 . ._setupW("|
00001ef0  4e 6f 74 20 45 6e 6f 75  67 68 20 52 6f 6f 6d 20  |Not Enough Room |
00001f00  49 6e 20 52 4d 41 22 29  3a 70 74 72 25 3d 30 0d  |In RMA"):ptr%=0.|
00001f10  10 22 09 3d 70 74 72 25  0d 10 2c 04 0d 10 36 0e  |.".=ptr%..,...6.|
00001f20  dd 20 f2 72 65 6c 65 61  73 65 0d 10 40 1f c8 99  |. .release..@...|
00001f30  20 22 4f 53 5f 4d 6f 64  75 6c 65 22 2c 37 2c 2c  | "OS_Module",7,,|
00001f40  62 75 66 50 6f 69 6e 74  25 0d 10 4a 05 e1 0d 10  |bufPoint%..J....|
00001f50  54 04 0d 10 5e 2e dd 20  f2 64 72 61 67 69 63 6f  |T...^.. .dragico|
00001f60  6e 28 6d 6f 75 73 65 78  25 2c 6d 6f 75 73 65 79  |n(mousex%,mousey|
00001f70  25 2c 68 61 6e 64 6c 65  25 2c 69 63 6f 6e 25 29  |%,handle%,icon%)|
00001f80  0d 10 68 21 ea 20 62 78  25 2c 62 79 25 2c 69 78  |..h!. bx%,by%,ix|
00001f90  30 25 2c 69 79 30 25 2c  69 78 31 25 2c 69 79 31  |0%,iy0%,ix1%,iy1|
00001fa0  25 0d 10 72 12 f2 67 65  74 77 28 68 61 6e 64 6c  |%..r..getw(handl|
00001fb0  65 25 29 0d 10 7c 18 f2  67 65 74 69 28 68 61 6e  |e%)..|..geti(han|
00001fc0  64 6c 65 25 2c 69 63 6f  6e 25 29 0d 10 86 16 21  |dle%,icon%)....!|
00001fd0  71 25 3d 68 61 6e 64 6c  65 25 3a 71 25 21 34 3d  |q%=handle%:q%!4=|
00001fe0  35 0d 10 90 3e 71 25 21  38 3d 62 78 25 2b 69 78  |5...>q%!8=bx%+ix|
00001ff0  30 25 3a 71 25 21 31 32  3d 62 79 25 2b 69 79 30  |0%:q%!12=by%+iy0|
00002000  25 3a 71 25 21 31 36 3d  62 78 25 2b 69 78 31 25  |%:q%!16=bx%+ix1%|
00002010  3a 71 25 21 32 30 3d 62  79 25 2b 69 79 31 25 0d  |:q%!20=by%+iy1%.|
00002020  10 9a 2a 71 25 21 32 34  3d 71 25 21 38 2d 6d 6f  |..*q%!24=q%!8-mo|
00002030  75 73 65 78 25 3a 71 25  21 32 38 3d 71 25 21 31  |usex%:q%!28=q%!1|
00002040  32 2d 6d 6f 75 73 65 79  25 0d 10 a4 19 c8 99 20  |2-mousey%...... |
00002050  22 57 69 6d 70 5f 44 72  61 67 42 6f 78 22 2c 2c  |"Wimp_DragBox",,|
00002060  71 25 0d 10 ae 0c 53 46  4c 41 47 25 3d b9 0d 10  |q%....SFLAG%=...|
00002070  b8 05 e1 0d 10 c2 04 0d  10 cc 14 dd 20 f2 67 65  |............ .ge|
00002080  74 77 28 68 61 6e 64 6c  65 25 29 0d 10 d6 38 21  |tw(handle%)...8!|
00002090  71 25 3d 68 61 6e 64 6c  65 25 3a c8 99 20 22 57  |q%=handle%:.. "W|
000020a0  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
000020b0  74 65 22 2c 2c 71 25 3a  f2 69 6e 66 6f 28 71 25  |te",,q%:.info(q%|
000020c0  2b 34 29 0d 10 e0 05 e1  0d 10 ea 12 dd 20 f2 67  |+4).......... .g|
000020d0  65 74 69 28 68 25 2c 69  25 29 0d 10 f4 2d 21 71  |eti(h%,i%)...-!q|
000020e0  25 3d 68 25 3a 71 25 21  34 3d 69 25 3a c8 99 20  |%=h%:q%!4=i%:.. |
000020f0  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
00002100  74 65 22 2c 2c 71 25 0d  10 fe 2e 69 78 30 25 3d  |te",,q%....ix0%=|
00002110  71 25 21 38 3a 69 79 30  25 3d 71 25 21 31 32 3a  |q%!8:iy0%=q%!12:|
00002120  69 78 31 25 3d 71 25 21  31 36 3a 69 79 31 25 3d  |ix1%=q%!16:iy1%=|
00002130  71 25 21 32 30 0d 11 08  1e 69 66 6c 61 67 73 25  |q%!20....iflags%|
00002140  3d 71 25 21 32 34 3a 69  64 61 74 61 25 3d 71 25  |=q%!24:idata%=q%|
00002150  2b 32 38 0d 11 12 05 e1  0d 11 1c 04 0d 11 26 0f  |+28...........&.|
00002160  dd 20 f2 69 6e 66 6f 28  70 25 29 0d 11 30 0d ea  |. .info(p%)..0..|
00002170  20 78 30 25 2c 79 30 25  0d 11 3a 27 78 30 25 3d  | x0%,y0%..:'x0%=|
00002180  21 70 25 3a 79 30 25 3d  70 25 21 34 3a 78 31 25  |!p%:y0%=p%!4:x1%|
00002190  3d 70 25 21 38 3a 79 31  25 3d 70 25 21 31 32 0d  |=p%!8:y1%=p%!12.|
000021a0  11 44 35 73 63 78 25 3d  70 25 21 31 36 3a 73 63  |.D5scx%=p%!16:sc|
000021b0  79 25 3d 70 25 21 32 30  3a 62 68 61 6e 64 6c 65  |y%=p%!20:bhandle|
000021c0  25 3d 70 25 21 32 34 3a  66 6c 61 67 73 25 3d 70  |%=p%!24:flags%=p|
000021d0  25 21 32 38 0d 11 4e 1d  62 78 25 3d 78 30 25 2d  |%!28..N.bx%=x0%-|
000021e0  73 63 78 25 3a 62 79 25  3d 79 31 25 2d 73 63 79  |scx%:by%=y1%-scy|
000021f0  25 0d 11 58 05 e1 0d 11  62 04 0d 11 6c 12 dd 20  |%..X....b...l.. |
00002200  f2 73 65 74 75 70 62 75  66 66 65 72 0d 11 76 0e  |.setupbuffer..v.|
00002210  e3 20 41 25 3d 30 20 b8  20 35 0d 11 80 0e f3 20  |. A%=0 . 5..... |
00002220  42 55 46 25 28 41 25 29  0d 11 8a 05 ed 0d 11 94  |BUF%(A%)........|
00002230  0c 62 75 66 4e 6f 25 3d  31 0d 11 9e 22 62 75 66  |.bufNo%=1..."buf|
00002240  50 6f 69 6e 74 25 3d a4  63 6c 61 69 6d 28 42 55  |Point%=.claim(BU|
00002250  46 25 28 62 75 66 4e 6f  25 29 29 0d 11 a8 0c f2  |F%(bufNo%)).....|
00002260  5f 42 62 6c 61 6e 6b 0d  11 b2 2d dc 20 26 34 30  |_Bblank...-. &40|
00002270  30 30 2c 26 38 30 30 30  2c 26 31 30 30 30 30 2c  |00,&8000,&10000,|
00002280  26 32 30 30 30 30 2c 26  34 30 30 30 30 2c 26 38  |&20000,&40000,&8|
00002290  30 30 30 30 0d 11 bc 05  e1 0d 11 c6 04 0d 11 d0  |0000............|
000022a0  12 dd 20 f2 5f 4e 65 77  42 75 66 28 4e 25 29 0d  |.. ._NewBuf(N%).|
000022b0  11 da 08 ea 20 41 25 0d  11 e4 0c f2 72 65 6c 65  |.... A%.....rele|
000022c0  61 73 65 0d 11 ee 11 4d  50 25 3d 57 6d 65 6e 75  |ase....MP%=Wmenu|
000022d0  25 2b 32 38 0d 11 f8 1e  e3 20 41 25 3d 4d 50 25  |%+28..... A%=MP%|
000022e0  20 b8 20 4d 50 25 2b 28  35 2a 32 34 29 20 88 20  | . MP%+(5*24) . |
000022f0  32 34 0d 12 02 19 41 25  21 30 3d 41 25 21 30 20  |24....A%!0=A%!0 |
00002300  80 20 26 46 46 46 46 46  46 46 45 0d 12 0c 05 ed  |. &FFFFFFFE.....|
00002310  0d 12 16 21 21 28 4d 50  25 2b 4e 25 2a 32 34 29  |...!!(MP%+N%*24)|
00002320  3d 21 28 4d 50 25 2b 4e  25 2a 32 34 29 20 84 20  |=!(MP%+N%*24) . |
00002330  31 0d 12 20 0c 4d 50 25  3d 71 25 21 30 0d 12 2a  |1.. .MP%=q%!0..*|
00002340  1e 62 75 66 50 6f 69 6e  74 25 3d a4 63 6c 61 69  |.bufPoint%=.clai|
00002350  6d 28 42 55 46 25 28 4e  25 29 29 0d 12 34 59 e7  |m(BUF%(N%))..4Y.|
00002360  20 62 75 66 50 6f 69 6e  74 25 3d 30 20 8c 20 f2  | bufPoint%=0 . .|
00002370  5f 73 65 74 75 70 57 28  22 4e 6f 74 20 45 6e 6f  |_setupW("Not Eno|
00002380  75 67 68 20 4d 65 6d 6f  72 79 20 69 6e 20 52 4d  |ugh Memory in RM|
00002390  41 20 66 6f 72 20 74 68  69 73 20 62 75 66 66 65  |A for this buffe|
000023a0  72 22 29 3a 4e 25 3d 31  3a 6c 25 3d 30 3a e5 20  |r"):N%=1:l%=0:. |
000023b0  8d 64 6e 51 0d 12 3e 0d  62 75 66 4e 6f 25 3d 4e  |.dnQ..>.bufNo%=N|
000023c0  25 0d 12 48 0c f2 5f 42  62 6c 61 6e 6b 0d 12 52  |%..H.._Bblank..R|
000023d0  32 c8 99 20 22 57 69 6d  70 5f 46 6f 72 63 65 52  |2.. "Wimp_ForceR|
000023e0  65 64 72 61 77 22 2c 73  61 6d 70 6c 65 57 25 2c  |edraw",sampleW%,|
000023f0  30 2c 2d 33 35 36 2c 31  31 30 30 2c 2d 38 30 0d  |0,-356,1100,-80.|
00002400  12 5c 05 e1 0d 12 66 04  0d 12 70 0e dd 20 f2 5f  |.\....f...p.. ._|
00002410  42 62 6c 61 6e 6b 0d 12  7a 15 c8 99 20 22 48 6f  |Bblank..z... "Ho|
00002420  75 72 67 6c 61 73 73 5f  4f 6e 22 0d 12 84 10 41  |urglass_On"....A|
00002430  25 3d 62 75 66 50 6f 69  6e 74 25 0d 12 8e 13 42  |%=bufPoint%....B|
00002440  25 3d 42 55 46 25 28 62  75 66 4e 6f 25 29 0d 12  |%=BUF%(bufNo%)..|
00002450  98 08 d6 20 42 42 0d 12  a2 16 c8 99 20 22 48 6f  |... BB...... "Ho|
00002460  75 72 67 6c 61 73 73 5f  4f 66 66 22 0d 12 ac 05  |urglass_Off"....|
00002470  e1 0d 12 b6 04 0d 12 c0  0f dd 20 f2 5f 47 65 74  |.......... ._Get|
00002480  4e 61 6d 65 0d 12 ca 0e  ea 20 54 25 2c 41 25 2c  |Name..... T%,A%,|
00002490  46 24 0d 12 d4 10 46 24  3d 22 22 3a 66 6e 24 3d  |F$....F$="":fn$=|
000024a0  22 22 0d 12 de 16 71 25  21 30 3d 73 61 76 65 57  |""....q%!0=saveW|
000024b0  25 3a 71 25 21 34 3d 31  0d 12 e8 1e c8 99 20 22  |%:q%!4=1...... "|
000024c0  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
000024d0  65 22 2c 2c 71 25 0d 12  f2 0c 54 25 3d 71 25 21  |e",,q%....T%=q%!|
000024e0  32 38 0d 12 fc 09 54 25  2d 3d 31 0d 13 06 05 f5  |28....T%-=1.....|
000024f0  0d 13 10 09 54 25 2b 3d  31 0d 13 1a 10 46 24 3d  |....T%+=1....F$=|
00002500  46 24 2b bd 28 3f 54 25  29 0d 13 24 0b fd 20 3f  |F$+.(?T%)..$.. ?|
00002510  54 25 3d 30 0d 13 2e 16  66 6e 24 3d c1 46 24 2c  |T%=0....fn$=.F$,|
00002520  31 2c a9 28 46 24 29 2d  31 29 0d 13 38 05 e1 0d  |1,.(F$)-1)..8...|
00002530  13 42 04 0d 13 4c 13 dd  20 f2 5f 50 75 74 44 6f  |.B...L.. ._PutDo|
00002540  77 6e 28 71 25 29 0d 13  56 0b ea 20 68 25 2c 69  |wn(q%)..V.. h%,i|
00002550  25 0d 13 60 23 f4 20 53  59 53 20 22 57 69 6d 70  |%..`#. SYS "Wimp|
00002560  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00002570  2c 2c 71 25 0d 13 6a 0d  f2 5f 47 65 74 4e 61 6d  |,,q%..j.._GetNam|
00002580  65 0d 13 74 20 c8 99 20  22 57 69 6d 70 5f 47 65  |e..t .. "Wimp_Ge|
00002590  74 50 6f 69 6e 74 65 72  49 6e 66 6f 22 2c 2c 71  |tPointerInfo",,q|
000025a0  25 0d 13 7e 15 68 25 3d  71 25 21 31 32 3a 69 25  |%..~.h%=q%!12:i%|
000025b0  3d 71 25 21 31 36 0d 13  88 23 e7 20 a7 20 66 6e  |=q%!16...#. . fn|
000025c0  24 2c 22 3a 22 29 20 8c  20 66 6e 24 3d a4 5f 73  |$,":") . fn$=._s|
000025d0  70 61 74 68 28 66 6e 24  29 0d 13 92 10 24 28 71  |path(fn$)....$(q|
000025e0  25 2b 34 34 29 3d 66 6e  24 0d 13 9c 15 3f 28 71  |%+44)=fn$....?(q|
000025f0  25 2b 34 34 2b a9 28 66  6e 24 29 29 3d 30 0d 13  |%+44+.(fn$))=0..|
00002600  a6 43 71 25 21 32 30 3d  71 25 21 31 32 3a 71 25  |.Cq%!20=q%!12:q%|
00002610  21 32 38 3d 71 25 21 30  3a 71 25 21 33 32 3d 71  |!28=q%!0:q%!32=q|
00002620  25 21 34 3a 71 25 21 33  36 3d 42 55 46 25 28 62  |%!4:q%!36=BUF%(b|
00002630  75 66 4e 6f 25 29 3a 71  25 21 34 30 3d 26 30 34  |ufNo%):q%!40=&04|
00002640  33 0d 13 b0 1b 71 25 21  30 3d 35 36 3a 71 25 21  |3....q%!0=56:q%!|
00002650  31 32 3d 30 3a 71 25 21  31 36 3d 31 0d 13 ba 25  |12=0:q%!16=1...%|
00002660  c8 99 20 22 57 69 6d 70  5f 53 65 6e 64 4d 65 73  |.. "Wimp_SendMes|
00002670  73 61 67 65 22 2c 31 37  2c 71 25 2c 68 25 2c 69  |sage",17,q%,h%,i|
00002680  25 0d 13 c4 11 73 61 76  65 72 65 66 25 3d 71 25  |%....saveref%=q%|
00002690  21 38 0d 13 ce 1c c8 99  20 22 57 69 6d 70 5f 43  |!8...... "Wimp_C|
000026a0  72 65 61 74 65 4d 65 6e  75 22 2c 2c 2d 31 0d 13  |reateMenu",,-1..|
000026b0  d8 05 e1 0d 13 e2 04 0d  13 ec 11 dd 20 a4 5f 73  |............ ._s|
000026c0  70 61 74 68 28 6e 24 29  0d 13 f6 0f c8 95 20 a7  |path(n$)...... .|
000026d0  6e 24 2c 22 2e 22 29 0d  14 00 13 6e 24 3d c2 6e  |n$,".")....n$=.n|
000026e0  24 2c a9 28 6e 24 29 2d  31 29 0d 14 0a 05 ce 0d  |$,.(n$)-1)......|
000026f0  14 14 1b e7 20 a9 28 6e  24 29 3e 31 30 20 8c 20  |.... .(n$)>10 . |
00002700  6e 24 3d c2 6e 24 2c 31  30 29 0d 14 1e 07 3d 6e  |n$=.n$,10)....=n|
00002710  24 0d 14 28 04 0d 14 32  13 dd 20 f2 5f 50 75 74  |$..(...2.. ._Put|
00002720  4e 61 6d 65 28 70 24 29  0d 14 3c 08 ea 20 54 25  |Name(p$)..<.. T%|
00002730  0d 14 46 16 71 25 21 30  3d 73 61 76 65 57 25 3a  |..F.q%!0=saveW%:|
00002740  71 25 21 34 3d 31 0d 14  50 1e c8 99 20 22 57 69  |q%!4=1..P... "Wi|
00002750  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_GetIconState"|
00002760  2c 2c 71 25 0d 14 5a 0c  54 25 3d 71 25 21 32 38  |,,q%..Z.T%=q%!28|
00002770  0d 14 64 0a 24 54 25 3d  70 24 0d 14 6e 11 21 28  |..d.$T%=p$..n.!(|
00002780  54 25 2b a9 28 70 24 29  29 3d 30 0d 14 78 05 e1  |T%+.(p$))=0..x..|
00002790  0d 14 82 04 0d 14 8c 0e  dd 20 f2 5f 53 61 6d 70  |......... ._Samp|
000027a0  6c 65 0d 14 96 20 47 25  3d 62 75 66 50 6f 69 6e  |le... G%=bufPoin|
000027b0  74 25 3a 48 25 3d 42 55  46 25 28 62 75 66 4e 6f  |t%:H%=BUF%(bufNo|
000027c0  25 29 0d 14 a0 18 21 42  50 4f 49 4e 54 3d 47 25  |%)....!BPOINT=G%|
000027d0  3a 21 42 53 49 5a 45 3d  48 25 0d 14 aa 0a d6 20  |:!BSIZE=H%..... |
000027e0  53 41 4d 50 0d 14 b4 2c  71 25 21 30 3d 73 61 6d  |SAMP...,q%!0=sam|
000027f0  70 6c 65 57 25 3a 71 25  21 34 3d 31 3a 71 25 21  |pleW%:q%!4=1:q%!|
00002800  38 3d 26 31 3c 3c 32 31  3a 71 25 21 31 32 3d 30  |8=&1<<21:q%!12=0|
00002810  0d 14 be 1e c8 99 20 22  57 69 6d 70 5f 53 65 74  |...... "Wimp_Set|
00002820  49 63 6f 6e 53 74 61 74  65 22 2c 2c 71 25 0d 14  |IconState",,q%..|
00002830  c8 32 c8 99 20 22 57 69  6d 70 5f 46 6f 72 63 65  |.2.. "Wimp_Force|
00002840  52 65 64 72 61 77 22 2c  73 61 6d 70 6c 65 57 25  |Redraw",sampleW%|
00002850  2c 30 2c 2d 33 35 36 2c  31 31 30 30 2c 2d 38 30  |,0,-356,1100,-80|
00002860  0d 14 d2 05 e1 0d 14 dc  04 0d 14 e6 19 dd 20 f2  |.............. .|
00002870  5f 43 53 55 20 3a f4 20  43 4f 44 45 20 53 45 54  |_CSU :. CODE SET|
00002880  55 50 0d 14 f0 08 ef 20  32 31 0d 14 fa 11 e3 20  |UP..... 21..... |
00002890  41 3d 30 20 b8 20 32 20  88 20 32 0d 15 04 0c 50  |A=0 . 2 . 2....P|
000028a0  25 3d 43 4f 44 45 25 0d  15 0e 05 5b 0d 15 18 09  |%=CODE%....[....|
000028b0  4f 50 54 20 41 0d 15 22  1a 2e 42 42 20 5c 20 42  |OPT A.."..BB \ B|
000028c0  6c 61 6e 6b 20 6f 66 66  20 62 75 66 66 65 72 0d  |lank off buffer.|
000028d0  15 2c 2b 5c 20 52 30 20  61 64 64 72 65 73 73 20  |.,+\ R0 address |
000028e0  74 6f 20 66 69 6c 6c 20  52 31 20 4e 75 6d 62 65  |to fill R1 Numbe|
000028f0  72 20 6f 66 20 42 79 74  65 73 0d 15 36 15 4d 4f  |r of Bytes..6.MO|
00002900  56 20 52 32 2c 23 26 38  30 30 30 30 30 30 30 0d  |V R2,#&80000000.|
00002910  15 40 15 84 52 20 52 32  2c 52 32 2c 23 26 38 30  |.@..R R2,R2,#&80|
00002920  30 30 30 30 0d 15 4a 13  84 52 20 52 32 2c 52 32  |0000..J..R R2,R2|
00002930  2c 23 26 38 30 30 30 0d  15 54 11 84 52 20 52 32  |,#&8000..T..R R2|
00002940  2c 52 32 2c 23 26 38 30  0d 15 5e 0b 2e 42 42 6c  |,R2,#&80..^..BBl|
00002950  6f 6f 70 0d 15 68 12 53  54 52 20 52 32 2c 5b 52  |oop..h.STR R2,[R|
00002960  30 5d 2c 23 34 0d 15 72  11 53 55 42 53 20 52 31  |0],#4..r.SUBS R1|
00002970  2c 52 31 2c 23 34 0d 15  7c 0e 42 4e 45 20 42 42  |,R1,#4..|.BNE BB|
00002980  6c 6f 6f 70 0d 15 86 16  4d 4f 56 20 52 31 35 2c  |loop....MOV R15,|
00002990  52 31 34 20 5c 20 42 41  43 4b 0d 15 90 04 0d 15  |R14 \ BACK......|
000029a0  9a 12 2e 42 50 4f 49 4e  54 20 45 51 55 44 20 30  |...BPOINT EQUD 0|
000029b0  0d 15 a4 11 2e 42 53 49  5a 45 20 45 51 55 44 20  |.....BSIZE EQUD |
000029c0  30 0d 15 ae 20 2e 42 64  65 6c 61 79 20 45 51 55  |0... .Bdelay EQU|
000029d0  44 20 38 20 5c 20 44 65  6c 61 79 20 76 61 6c 75  |D 8 \ Delay valu|
000029e0  65 0d 15 b8 04 0d 15 c2  09 2e 53 41 4d 50 0d 15  |e.........SAMP..|
000029f0  cc 14 53 54 4d 46 44 20  52 31 33 21 2c 7b 52 31  |..STMFD R13!,{R1|
00002a00  34 7d 0d 15 d6 0e 4d 4f  56 20 52 39 2c 52 31 35  |4}....MOV R9,R15|
00002a10  0d 15 e0 14 53 57 49 20  22 4f 53 5f 45 6e 74 65  |....SWI "OS_Ente|
00002a20  72 4f 53 22 0d 15 ea 0f  4d 4f 56 4e 56 20 52 30  |rOS"....MOVNV R0|
00002a30  2c 52 30 0d 15 f4 29 54  45 51 50 20 52 31 35 2c  |,R0...)TEQP R15,|
00002a40  23 26 43 30 30 30 30 30  33 20 5c 20 44 49 53 41  |#&C000003 \ DISA|
00002a50  42 4c 45 20 a8 45 52 52  55 50 54 53 0d 15 fe 0f  |BLE .ERRUPTS....|
00002a60  4d 4f 56 4e 56 20 52 30  2c 52 30 0d 16 08 1e 4c  |MOVNV R0,R0....L|
00002a70  44 52 20 52 37 2c 42 53  49 5a 45 20 5c 20 42 75  |DR R7,BSIZE \ Bu|
00002a80  66 66 65 72 20 73 69 7a  65 0d 16 12 22 4c 44 52  |ffer size..."LDR|
00002a90  20 52 36 2c 42 50 4f 49  4e 54 20 5c 20 42 75 66  | R6,BPOINT \ Buf|
00002aa0  66 65 72 20 70 6f 69 6e  74 65 72 0d 16 1c 04 0d  |fer pointer.....|
00002ab0  16 26 1d 5c 4d 61 6b 65  20 70 72 69 6e 74 65 72  |.&.\Make printer|
00002ac0  20 50 6f 72 74 20 4f 75  74 70 75 74 0d 16 30 0d  | Port Output..0.|
00002ad0  4d 4f 56 20 52 30 2c 23  32 0d 16 3a 0f 4d 4f 56  |MOV R0,#2..:.MOV|
00002ae0  20 52 31 2c 23 26 30 30  0d 16 44 0f 4d 4f 56 20  | R1,#&00..D.MOV |
00002af0  52 32 2c 23 26 44 46 0d  16 4e 21 53 57 49 20 26  |R2,#&DF..N!SWI &|
00002b00  34 32 45 43 31 20 20 5c  20 50 61 72 61 6c 6c 65  |42EC1  \ Paralle|
00002b10  6c 20 6f 75 74 70 75 74  0d 16 58 22 42 4c 20 47  |l output..X"BL G|
00002b20  61 74 68 65 72 20 20 20  20 5c 20 47 65 74 20 74  |ather    \ Get t|
00002b30  68 65 20 73 61 6d 70 6c  65 73 0d 16 62 0e 54 45  |he samples..b.TE|
00002b40  51 50 20 52 39 2c 23 30  0d 16 6c 0f 4d 4f 56 4e  |QP R9,#0..l.MOVN|
00002b50  56 20 52 30 2c 52 30 0d  16 76 2d 4c 44 4d 46 44  |V R0,R0..v-LDMFD|
00002b60  20 52 31 33 21 2c 20 7b  50 43 7d 20 5c 20 42 41  | R13!, {PC} \ BA|
00002b70  43 4b 20 46 52 4f 4d 20  c9 53 54 20 59 4f 55 20  |CK FROM .ST YOU |
00002b80  43 41 4d 45 0d 16 80 04  0d 16 8a 0b 2e 47 61 74  |CAME.........Gat|
00002b90  68 65 72 0d 16 94 14 5c  54 61 6b 65 20 4f 6e 65  |her....\Take One|
00002ba0  20 53 61 6d 70 6c 65 0d  16 9e 14 53 54 4d 46 44  | Sample....STMFD|
00002bb0  20 52 31 33 21 2c 7b 52  31 34 7d 0d 16 a8 0a 2e  | R13!,{R14}.....|
00002bc0  54 4c 4f 4f 50 0d 16 b2  34 4c 44 52 20 52 33 2c  |TLOOP...4LDR R3,|
00002bd0  42 64 65 6c 61 79 20 5c  20 44 65 6c 61 79 20 74  |Bdelay \ Delay t|
00002be0  6f 20 67 65 74 20 73 61  6d 70 6c 65 20 72 61 74  |o get sample rat|
00002bf0  65 20 63 6f 72 72 65 63  74 0d 16 bc 0d 4d 4f 56  |e correct....MOV|
00002c00  20 52 30 2c 23 31 0d 16  c6 0d 4d 4f 56 20 52 31  | R0,#1....MOV R1|
00002c10  2c 23 33 0d 16 d0 0a 2e  44 65 6c 61 79 0d 16 da  |,#3.....Delay...|
00002c20  1e 53 57 49 20 26 34 32  45 43 31 20 20 5c 20 47  |.SWI &42EC1  \ G|
00002c30  65 74 20 74 68 65 20 64  61 74 61 0d 16 e4 11 53  |et the data....S|
00002c40  55 42 53 20 52 33 2c 52  33 2c 23 31 0d 16 ee 0d  |UBS R3,R3,#1....|
00002c50  42 4e 45 20 44 65 6c 61  79 0d 16 f8 04 0d 17 02  |BNE Delay.......|
00002c60  0d 4d 4f 56 20 52 30 2c  23 31 0d 17 0c 0d 4d 4f  |.MOV R0,#1....MO|
00002c70  56 20 52 31 2c 23 31 0d  17 16 21 53 57 49 20 26  |V R1,#1...!SWI &|
00002c80  34 32 45 43 31 20 20 5c  20 43 68 69 70 20 73 65  |42EC1  \ Chip se|
00002c90  6c 65 63 74 20 4c 6f 77  0d 17 20 1e 4d 4f 56 20  |lect Low.. .MOV |
00002ca0  52 33 2c 23 26 42 20 20  5c 20 42 69 74 73 20 74  |R3,#&B  \ Bits t|
00002cb0  6f 20 72 65 61 64 0d 17  2a 23 4d 4f 56 20 52 35  |o read..*#MOV R5|
00002cc0  2c 23 30 20 20 20 5c 20  43 6f 6c 6c 65 63 74 20  |,#0   \ Collect |
00002cd0  62 69 74 73 20 68 65 72  65 0d 17 34 0a 2e 4c 6f  |bits here..4..Lo|
00002ce0  6f 70 31 0d 17 3e 0d 4d  4f 56 20 52 30 2c 23 30  |op1..>.MOV R0,#0|
00002cf0  0d 17 48 1e 53 57 49 20  26 34 32 45 43 31 20 20  |..H.SWI &42EC1  |
00002d00  5c 20 47 65 74 20 74 68  65 20 64 61 74 61 0d 17  |\ Get the data..|
00002d10  52 2d 4d 4f 56 20 52 35  2c 52 35 2c 4c 53 4c 20  |R-MOV R5,R5,LSL |
00002d20  23 31 20 5c 20 50 72 65  70 61 72 65 20 52 35 20  |#1 \ Prepare R5 |
00002d30  66 6f 72 20 6e 65 77 20  62 69 74 0d 17 5c 14 4d  |for new bit..\.M|
00002d40  4f 56 20 52 32 2c 52 32  2c 4c 53 52 20 23 37 0d  |OV R2,R2,LSR #7.|
00002d50  17 66 29 84 52 20 52 35  2c 52 35 2c 52 32 20 20  |.f).R R5,R5,R2  |
00002d60  20 20 20 5c 20 4d 69 78  20 52 35 20 77 69 74 68  |   \ Mix R5 with|
00002d70  20 6e 65 77 20 62 69 74  0d 17 70 0d 4d 4f 56 20  | new bit..p.MOV |
00002d80  52 30 2c 23 31 0d 17 7a  0d 4d 4f 56 20 52 31 2c  |R0,#1..z.MOV R1,|
00002d90  23 31 0d 17 84 1c 53 57  49 20 26 34 32 45 43 31  |#1....SWI &42EC1|
00002da0  20 20 5c 20 43 6c 6f 63  6b 20 48 69 67 68 0d 17  |  \ Clock High..|
00002db0  8e 0d 4d 4f 56 20 52 31  2c 23 30 0d 17 98 1b 53  |..MOV R1,#0....S|
00002dc0  57 49 20 26 34 32 45 43  31 20 20 5c 20 43 6c 6f  |WI &42EC1  \ Clo|
00002dd0  63 6b 20 4c 6f 77 0d 17  a2 11 53 55 42 53 20 52  |ck Low....SUBS R|
00002de0  33 2c 52 33 2c 23 31 0d  17 ac 0d 42 4e 45 20 4c  |3,R3,#1....BNE L|
00002df0  6f 6f 70 31 0d 17 b6 0d  4d 4f 56 20 52 31 2c 23  |oop1....MOV R1,#|
00002e00  33 0d 17 c0 2a 53 57 49  20 26 34 32 45 43 31 20  |3...*SWI &42EC1 |
00002e10  20 5c 20 43 68 69 70 20  73 65 6c 65 63 74 20 26  | \ Chip select &|
00002e20  20 43 6c 6f 63 6b 20 48  69 67 68 0d 17 ca 26 80  | Clock High...&.|
00002e30  20 52 35 2c 52 35 2c 23  26 46 46 20 20 20 20 5c  | R5,R5,#&FF    \|
00002e40  20 4d 41 53 4b 20 87 20  53 54 41 52 54 20 42 49  | MASK . START BI|
00002e50  54 0d 17 d4 27 82 20 52  35 2c 52 35 2c 23 26 46  |T...'. R5,R5,#&F|
00002e60  46 20 20 20 20 20 5c 20  54 55 52 4e 20 52 49 47  |F     \ TURN RIG|
00002e70  48 54 20 57 41 59 55 50  0d 17 de 04 0d 17 e8 16  |HT WAYUP........|
00002e80  5c 52 35 20 4e 4f 57 20  48 41 53 20 53 41 4d 50  |\R5 NOW HAS SAMP|
00002e90  4c 45 0d 17 f2 04 0d 17  fc 2a 53 54 52 42 20 52  |LE.......*STRB R|
00002ea0  35 2c 5b 52 36 5d 2c 23  31 20 5c 20 50 55 54 20  |5,[R6],#1 \ PUT |
00002eb0  49 54 20 49 4e 20 54 48  45 20 42 55 46 46 45 52  |IT IN THE BUFFER|
00002ec0  0d 18 06 2b 53 55 42 53  20 52 37 2c 52 37 2c 23  |...+SUBS R7,R7,#|
00002ed0  31 20 20 20 20 5c 20 44  45 43 52 45 4d 45 4e 54  |1    \ DECREMENT|
00002ee0  20 42 59 54 45 53 20 b8  20 47 4f 0d 18 10 28 42  | BYTES . GO...(B|
00002ef0  4e 45 20 20 54 4c 4f 4f  50 20 20 20 20 20 20 20  |NE  TLOOP       |
00002f00  20 5c 20 42 41 43 4b 20  fd 4c 20 41 4c 4c 20 44  | \ BACK .L ALL D|
00002f10  4f 4e 45 0d 18 1a 09 2e  45 78 69 74 0d 18 24 2d  |ONE.....Exit..$-|
00002f20  4c 44 4d 46 44 20 52 31  33 21 2c 20 7b 50 43 7d  |LDMFD R13!, {PC}|
00002f30  20 5c 20 42 41 43 4b 20  46 52 4f 4d 20 c9 53 54  | \ BACK FROM .ST|
00002f40  20 59 4f 55 20 43 41 4d  45 0d 18 2e 04 0d 18 38  | YOU CAME......8|
00002f50  05 5d 0d 18 42 05 ed 0d  18 4c 07 ef 20 36 0d 18  |.]..B....L.. 6..|
00002f60  56 05 e1 0d 18 60 04 0d  18 6a 12 dd 20 f2 5f 73  |V....`...j.. ._s|
00002f70  65 74 75 70 57 28 74 24  29 0d 18 74 58 21 71 25  |etupW(t$)..tX!q%|
00002f80  3d 77 61 72 6e 69 6e 67  57 25 3a 71 25 21 34 3d  |=warningW%:q%!4=|
00002f90  32 30 30 3a 71 25 21 38  3d 32 30 30 3a 71 25 21  |200:q%!8=200:q%!|
00002fa0  31 32 3d 32 30 30 2b 58  51 25 3a 71 25 21 31 36  |12=200+XQ%:q%!16|
00002fb0  3d 32 30 30 2b 59 51 25  3a 71 25 21 32 30 3d 30  |=200+YQ%:q%!20=0|
00002fc0  3a 71 25 21 32 34 3d 30  3a 71 25 21 32 38 3d 2d  |:q%!24=0:q%!28=-|
00002fd0  31 0d 18 7e 11 24 54 65  78 74 57 61 72 6e 25 3d  |1..~.$TextWarn%=|
00002fe0  74 24 0d 18 88 15 54 65  78 74 57 61 72 6e 25 3f  |t$....TextWarn%?|
00002ff0  a9 28 74 24 29 3d 30 0d  18 92 07 ef 20 37 0d 18  |.(t$)=0..... 7..|
00003000  9c 1c c8 99 20 22 57 69  6d 70 5f 4f 70 65 6e 57  |.... "Wimp_OpenW|
00003010  69 6e 64 6f 77 22 2c 2c  71 25 0d 18 a6 19 c8 97  |indow",,q%......|
00003020  20 c8 93 20 32 30 30 2c  32 30 30 2c 58 51 25 2c  | .. 200,200,XQ%,|
00003030  59 51 25 0d 18 b0 05 e1  0d 18 ba 04 0d 18 c4 13  |YQ%.............|
00003040  dd 20 f2 5f 53 65 74 52  61 74 65 28 6e 25 29 0d  |. ._SetRate(n%).|
00003050  18 ce 0c ea 20 4d 50 25  2c 41 25 0d 18 d8 11 4d  |.... MP%,A%....M|
00003060  50 25 3d 52 6d 65 6e 75  25 2b 32 38 0d 18 e2 1e  |P%=Rmenu%+28....|
00003070  e3 20 41 25 3d 4d 50 25  20 b8 20 4d 50 25 2b 28  |. A%=MP% . MP%+(|
00003080  33 2a 32 34 29 20 88 20  32 34 0d 18 ec 19 41 25  |3*24) . 24....A%|
00003090  21 30 3d 41 25 21 30 20  80 20 26 46 46 46 46 46  |!0=A%!0 . &FFFFF|
000030a0  46 46 45 0d 18 f6 05 ed  0d 19 00 21 21 28 4d 50  |FFE........!!(MP|
000030b0  25 2b 6e 25 2a 32 34 29  3d 21 28 4d 50 25 2b 6e  |%+n%*24)=!(MP%+n|
000030c0  25 2a 32 34 29 20 84 20  31 0d 19 0a 16 21 42 64  |%*24) . 1....!Bd|
000030d0  65 6c 61 79 3d 44 45 4c  41 59 25 28 6e 25 29 0d  |elay=DELAY%(n%).|
000030e0  19 14 05 e1 0d 19 1e 04  0d 19 28 11 dd 20 f2 5f  |..........(.. ._|
000030f0  43 6c 69 63 6b 4c 6f 61  64 0d 19 32 0d f4 20 45  |ClickLoad..2.. E|
00003100  4e 44 50 52 4f 43 0d 19  3c 0a 4c 66 24 3d 22 22  |NDPROC..<.Lf$=""|
00003110  0d 19 46 1c c8 99 20 22  4f 53 5f 47 65 74 45 6e  |..F... "OS_GetEn|
00003120  76 22 20 b8 20 45 6e 76  53 74 72 24 0d 19 50 13  |v" . EnvStr$..P.|
00003130  49 25 3d a9 28 45 6e 76  53 74 72 24 29 2b 31 0d  |I%=.(EnvStr$)+1.|
00003140  19 5a 21 f5 20 49 25 2d  3d 31 3a fd 20 c1 45 6e  |.Z!. I%-=1:. .En|
00003150  76 53 74 72 24 2c 49 25  2c 31 29 3c 3e 22 20 22  |vStr$,I%,1)<>" "|
00003160  0d 19 64 1c e7 20 c1 45  6e 76 53 74 72 24 2c 49  |..d.. .EnvStr$,I|
00003170  25 2c 31 29 3c 3e 22 22  22 22 20 8c 0d 19 6e 14  |%,1)<>"""" ...n.|
00003180  20 20 20 49 25 3d a9 28  45 6e 76 53 74 72 24 29  |   I%=.(EnvStr$)|
00003190  0d 19 78 23 20 20 20 f5  20 49 25 2d 3d 31 3a fd  |..x#   . I%-=1:.|
000031a0  20 c1 45 6e 76 53 74 72  24 2c 49 25 2c 31 29 3d  | .EnvStr$,I%,1)=|
000031b0  22 20 22 0d 19 82 24 20  20 20 4c 66 24 3d c2 45  |" "...$   Lf$=.E|
000031c0  6e 76 53 74 72 24 2c a9  28 45 6e 76 53 74 72 24  |nvStr$,.(EnvStr$|
000031d0  29 2d 49 25 2b 31 29 0d  19 8c 0e 20 20 20 f2 5f  |)-I%+1)....   ._|
000031e0  42 41 53 49 43 0d 19 96  10 20 20 20 f2 5f 4c 42  |BASIC....   ._LB|
000031f0  28 4c 66 24 29 0d 19 a0  05 cd 0d 19 aa 05 e1 0d  |(Lf$)...........|
00003200  ff                                                |.|
00003201