Home » Archimedes archive » Acorn User » AU 1998-09.adf » Regulars » RTR/!LScope/RunScope

RTR/!LScope/RunScope

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-09.adf » Regulars
Filename: RTR/!LScope/RunScope
Read OK:
File size: 60F9 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>Oscilloscope
   20REM Version 1.0 By Mike Cook
   30REM All rights reserved
   40
   50ON ERROR PROCerrorbox
   60DIM taskid% 8,intmess% 20:$taskid%="TASK"
   70intmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0
   80SYS "Wimp_Initialise",300,!taskid%,"Logic_scope",intmess% TO version%,taskhand%
   90DIM q% 512, Wn% 2204,temp% 612,buffers% 512,menu% 256,SW% 2204, Ifo% 616
  100DIM IsName% 280, TextWarn% 256, ww% 512, Code% &700,rateM% 256
  110Ni%=29 :SPr%=11000
  120DIM SP% SPr%, G5% 1024, G4% 16, Tb%(7),IsName% 256, Srate%(5), Tps(5)
  130DIM SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%)
  140DIM Slide%(2), Trace1% 2752,Trace2% 2752
  150
  160SYS "Wimp_OpenTemplate",,"<LScope$Dir>.Templates"
  170ON ERROR SYS "Wimp_CloseTemplate":PROCerrorbox
  180
  190SYS "Wimp_LoadTemplate",,q%,IsName%+4,IsName%+280,-1,"save_script",0
  200SYS "Wimp_CreateWindow",,q% TO saveW%
  210IsName%!0=saveW%
  220
  230SYS "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+2204,-1,"Scope",0
  240SYS "Wimp_CreateWindow",,Wn%+4 TO monW%
  250
  260Wn%!0=monW%:Wn%!28=-1
  270FOR A%=0 TO Ni%
  280SPoint%(A%)=!(Wn%+4+88+20+32*A%)
  290IX%(A%)=!(Wn%+4+88+32*A%):IY%(A%)=!(Wn%+4+88+4+32*A%)
  300IX1%(A%)=!(Wn%+4+88+8+32*A%):IY1%(A%)=!(Wn%+4+88+12+32*A%)
  310NEXT
  320
  330SYS "Wimp_LoadTemplate",,Ifo%+4,temp%,temp%+612,-1,"Info",0
  340SYS "Wimp_CreateWindow",,Ifo%+4 TO info%
  350Ifo%!0=info%
  360
  370SYS "Wimp_LoadTemplate",,q%,ww%,ww%+512,-1,"Warning",0
  380q%!108=TextWarn%
  390q%!112=-1:q%!116=300
  400XQ%=q%!8-q%!0:YQ%=q%!12-q%!4
  410SYS "Wimp_CreateWindow",,q% TO warningW%
  420SYS "Wimp_CloseTemplate"
  430
  440ON ERROR PROCerrorbox
  450
  460REM Calabration - Time for one sample in mS Milli Seconds Per Sample
  470Msps=0.0025
  480ref%=0:DragOn%=FALSE
  490cpL%=0:cpR%=0:ExtCk%=FALSE:Samples%=TRUE
  500An%=0:NextT%=0
  510Arm%=FALSE:OneS%=TRUE:StoredT%=FALSE
  520smpicon%=FNicon:Xscale%=3:Bpush%=FALSE
  530wopen%=FALSE:warnOn%=FALSE
  540SlideO%=246
  550NextChange%=0
  560LY%=-1:LX%=-1
  570TS%=3
  580RefBut%=0:RefPoint%=0:RefOff%=0
  590AnC%=0:NcL%=2408
  600TrigM%=0:TrigB%=0
  610
  620PROCsetupmenu
  630PROC_SSS
  640PROCadjustI
  650PROCCinit
  660PROC_PutName("Bits")
  670
  680REPEAT
  690 SYS "Wimp_Poll",0,q% TO A%
  700  CASE A% OF
  710   WHEN 0:PROC_Null
  720   WHEN 1:PROC_doWindow
  730   WHEN 2:SYS "Wimp_OpenWindow",,q% :wopen%=TRUE:PROCtt
  740   WHEN 3:PROC_close
  750   WHEN 6:PROC_do_click(q%)
  760   WHEN 7:PROC_PutDown(q%)
  770   WHEN 8:PROC_KeyPress
  780   WHEN 9:PROC_SORT_Menu
  790   WHEN 17,18:PROCreceive(q%)
  800   ENDCASE
  810 UNTIL FALSE
  820
  830END
  840
  850DEF PROC_Null
  860LOCAL A%,B%,C%,X%,Y%,T%
  870MOUSE X%,Y%,B%
  880IF Bpush% AND B%=0 THEN
  890Bpush%=FALSE
  900CASE Button% OF
  910WHEN 4 : $SPoint%(4)="up"
  920WHEN 5 : $SPoint%(5)="radiooff"
  930ENDCASE
  940SYS"Wimp_ForceRedraw",monW%,IX%(Button%),IY%(Button%),IX1%(Button%),IY1%(Button%)
  950ENDIF
  960IF DragOn% THEN
  970PROC_Trans(monW%)
  980MOUSE X%,Y%,B%
  990 IF X%<>LX% THEN
 1000  LY%=Y%
 1010  LX%=X%
 1020  C%=Wd%-4
 1030  C%=2
 1040  Slide%(C%)=X%-(xo%+108)-12
 1050  IF Slide%(C%)>394 THEN Slide%(C%)=394
 1060  IF Slide%(C%)<0 THEN Slide%(C%)=0
 1070  PROC_UpP(Wd%)
 1080  !OddEven = !OddEven EOR 1
 1090  PROCje
 1100  !Boff=NcL%*(Slide%(2)/394.0)
 1110  !OddEven = !OddEven EOR 1
 1120  PROCjd
 1130  PROCanalise
 1140 ENDIF
 1150IF B%=0 THEN DragOn%=FALSE:LY%=-1
 1160ENDIF
 1170
 1180IF TIME>NextT% AND wopen% AND OneS%=FALSE THEN PROCScan
 1190IF wopen% AND Arm% THEN
 1200PROCScan
 1210 IF !Fired<>0 THEN
 1220 Arm%=FALSE
 1230 PROCpush(Arm%,2,"bing")
 1240 PROCanalise
 1250 ENDIF
 1260ENDIF
 1270
 1280ENDPROC
 1290
 1300DEF PROCScan
 1310IF Slide%(2)<>0 THEN PROCrxs:SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
 1320IF !Bsize<800 THEN NextT%=TIME+5 ELSE NextT%=TIME+20
 1330!OddEven = !OddEven EOR 1
 1340IF ExtCk% THEN CALL InputE ELSE CALL InputS
 1350IF !Fired<>0 THEN PROCrefresh ELSE !OddEven = !OddEven EOR 1
 1360ENDPROC
 1370
 1380DEF FN_spath(n$)
 1390WHILE INSTR(n$,".")
 1400n$=RIGHT$(n$,LEN(n$)-1)
 1410ENDWHILE
 1420IF LEN(n$)>10 THEN n$=RIGHT$(n$,10)
 1430=n$
 1440
 1450DEF PROC_GetName
 1460LOCAL T%,A%,F$
 1470F$="":fn$=""
 1480q%!0=saveW%:q%!4=1
 1490SYS "Wimp_GetIconState",,q%
 1500T%=q%!28
 1510T%-=1
 1520REPEAT
 1530T%+=1
 1540F$=F$+CHR$(?T%)
 1550UNTIL ?T%=0
 1560fn$=MID$(F$,1,LEN(F$)-1)
 1570ENDPROC
 1580
 1590DEF PROC_SORT_Menu
 1600CASE !q% OF
 1610WHEN 2: PROC_Mtick(q%!4,6,rateM%):!Delay=Srate%(q%!4)
 1620        Msps=Tps(q%!4)
 1630WHEN 3: PROCdie
 1640ENDCASE
 1650ENDPROC
 1660
 1670DEF PROC_Mtick(n%,ni%,m%)
 1680LOCAL A%,B%
 1690FOR A%=1 TO ni%
 1700B%=A%*24+4
 1710m%!B%=m%!B% AND NOT(1)
 1720NEXT
 1730B%=(n%+1)*24+4
 1740m%!B%=m%!B% OR 1
 1750ENDPROC
 1760
 1770DEF PROC_close
 1780IF q%!0=monW% THEN SYS"Wimp_GetWindowInfo",,Wn%:wopen%=FALSE
 1790IF q%!0=warningW% THEN warnOn%=FALSE
 1800SYS "Wimp_CloseWindow",,q%
 1810ENDPROC
 1820
 1830DEF PROC_do_click(q%)
 1840i%=q%!16
 1850CASE q%!12 OF
 1860WHEN warningW%: q%!0=warningW% :PROC_close
 1870
 1880WHEN -2: REM Look first at Icon Bar Click
 1890        IF q%!16=smpicon% THEN
 1900        IF q%!8=2 THEN IconMenu%=TRUE: SYS"Wimp_CreateMenu",,menu%,q%!0-94,256
 1910        IF q%!8=4 THEN PROC_Open
 1920        
 1930        ENDIF
 1940WHEN saveW%:  PROCsclick
 1950
 1960WHEN monW%:  
 1970              IF q%!8=2 THEN IconMenu%=FALSE: SYS"Wimp_CreateMenu",,menu%,q%!0-84,q%!4
 1980              IF q%!8=4THEN PROC_MonClick
 1990              IF q%!8=1 THEN PROC_AdjClick
 2000ENDCASE
 2010ENDPROC
 2020
 2030DEF PROCsclick
 2040CASE i% OF
 2050WHEN 0: PROC_DoSave
 2060WHEN 2: PROCiSave(2)
 2070ENDCASE
 2080ENDPROC
 2090
 2100DEF PROC_MonClick
 2110LOCAL D%,V%,B%,X%,Y%
 2120REM Do the action for a window click
 2130CASE i% OF
 2140WHEN 0   : PROCmeasure(q%!0,q%!8)
 2150WHEN 1   :
 2160WHEN 2   : Arm%=NOT(Arm%):PROCpush(Arm%,2,"bing")
 2170           IF Arm% THEN OneS%=TRUE:PROCos
 2180WHEN 4   : Bpush%=TRUE : Button%=4 : PROCdoNC
 2190           $SPoint%(4)="pup"
 2200           SYS"Wimp_ForceRedraw",monW%,IX%(4),IY%(4),IX1%(4),IY1%(4)
 2210WHEN 5   : Bpush%=TRUE : PROCmemW : Button%=5
 2220           $SPoint%(5)="radioon"
 2230           SYS"Wimp_ForceRedraw",monW%,IX%(5),IY%(5),IX1%(5),IY1%(5)
 2240WHEN 6,7 : IF i%=6 THEN ExtCk%=FALSE ELSE ExtCk%=TRUE
 2250           IF ExtCk% THEN $SPoint%(6)="radiooff" : $SPoint%(7)="radioon" ELSE $SPoint%(6)="radioon": $SPoint%(7)="radiooff"
 2260           SYS"Wimp_ForceRedraw",monW%,IX%(6),IY%(6),IX1%(6),IY1%(6)
 2270           SYS"Wimp_ForceRedraw",monW%,IX%(7),IY%(7),IX1%(7),IY1%(7)
 2280WHEN 8   : OneS%=NOT(OneS%):PROCos
 2290WHEN 10  : OneS%=NOT(OneS%):PROCos
 2300WHEN 3,11 : IF i%=11 THEN Samples%=TRUE ELSE Samples%=FALSE
 2310           IF Samples% THEN $SPoint%(11)="radioon" : $SPoint%(3)="radiooff" ELSE $SPoint%(11)="radiooff": $SPoint%(3)="radioon"
 2320           SYS"Wimp_ForceRedraw",monW%,IX%(3),IY%(3),IX1%(3),IY1%(3)
 2330           SYS"Wimp_ForceRedraw",monW%,IX%(11),IY%(11),IX1%(11),IY1%(11)
 2340           PROCanalise
 2350WHEN 12,13,14,15,16,17,18 : PROCroff(Xscale%):Xscale%=i%-12:PROCron(Xscale%)
 2360WHEN 19  : DragOn%=TRUE:Wd%=i%
 2370WHEN 22,23,24,25,26,27,28,29 : PROCttog(i%)
 2380ENDCASE
 2390ENDPROC
 2400
 2410DEF PROC_AdjClick
 2420CASE i% OF
 2430WHEN 0   : PROCmeasure(q%!0,q%!8)
 2440WHEN 4   : Bpush%=TRUE : Button%=4 : PROCdoLC
 2450           $SPoint%(4)="pup"
 2460           SYS"Wimp_ForceRedraw",monW%,IX%(4),IY%(4),IX1%(4),IY1%(4)
 2470WHEN 22,23,24,25,26,27,28,29 : AnC%=7-(i%-22)
 2480         $SPoint%(20)="Analyse Ch "+STR$(AnC%)
 2490         SYS"Wimp_ForceRedraw",monW%,IX%(20),IY%(20),IX1%(20),IY1%(20)
 2500         PROCanalise
 2510ENDCASE
 2520ENDPROC
 2530
 2540DEF PROCpush(T%,N%,c$)
 2550IF T% THEN $SPoint%(N%)=c$ ELSE $SPoint%(N%)="bout"
 2560SYS"Wimp_ForceRedraw",monW%,IX%(N%),IY%(N%),IX1%(N%),IY1%(N%)
 2570ENDPROC
 2580
 2590DEF PROCttog(N%)
 2600LOCAL B%
 2610N%=N%-22
 2620B%=1<<(7-N%)
 2630Tb%(7-N%)+=1
 2640IF Tb%(7-N%)=3 THEN Tb%(7-N%)=0
 2650CASE Tb%(7-N%) OF
 2660WHEN 0: $SPoint%(N%+22)="lscopeZ"
 2670                TrigB%=(TrigB% AND NOT(B%)) AND &FF
 2680                TrigM%=TrigM% OR B%
 2690WHEN 1: $SPoint%(N%+22)="lscope1"
 2700                    TrigB%=TrigB% OR B%:TrigM%=TrigM% OR B%
 2710WHEN 2: $SPoint%(N%+22)="lscopex"
 2720                TrigB%=(TrigB% AND NOT(B%)) AND &FF
 2730                TrigM%=(TrigM% AND NOT(B%)) AND &FF
 2740ENDCASE
 2750!Tmask=TrigM%
 2760!Tbits=TrigB%
 2770SYS"Wimp_ForceRedraw",monW%,IX%(N%+22),IY%(N%+22),IX1%(N%+22),IY1%(N%+22)
 2780REM $SPoint%(21)=STR$(TrigB%)+" "+STR$(TrigM%)
 2790REM SYS"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
 2800ENDPROC
 2810
 2820DEF PROCos
 2830IF OneS% THEN
 2840PROCpush(TRUE,8,"binb"):PROCpush(FALSE,10,"bino")
 2850PROCrxs
 2860PROCanalise
 2870ELSE
 2880PROCpush(FALSE,8,"binb"):PROCpush(TRUE,10,"bino")
 2890ENDIF
 2900ENDPROC
 2910
 2920DEF PROC_Open
 2930REM OPEN UP WINDOW HERE
 2940IF wopen% THEN
 2950q%!0=monW%
 2960SYS"Wimp_GetWindowState",,q%
 2970  IF q%!28<>-1 THEN q%!28=-1: SYS "Wimp_OpenWindow",,q%
 2980ELSE
 2990SYS "Wimp_OpenWindow",,Wn%
 3000wopen%=TRUE
 3010ENDIF
 3020ENDPROC
 3030
 3040DEF PROC_doWindow
 3050  LOCAL A%,I%,L%
 3060
 3070   PROC_Trans(monW%)
 3080   SYS "Wimp_RedrawWindow",,q% TO flag%
 3090     WHILE flag%
 3100     PROCdrawscope
 3110     PROCdrawcontrols
 3120     SYS "Wimp_GetRectangle",,q% TO flag%
 3130     ENDWHILE
 3140  
 3150  ENDPROC
 3160
 3170DEF PROC_UpP(I%)
 3180LOCAL T%,A%,E%
 3190  q%!0=monW%:q%!4=IX%(I%):q%!8=IY%(I%):q%!12=IX1%(I%):q%!16=IY1%(I%)
 3200  SYS"Wimp_UpdateWindow",,q% TO More%
 3210
 3220 WHILE More%
 3230  REM Draw the window
 3240  PROCdrawcontrols
 3250  SYS"Wimp_GetRectangle",,q% TO More%
 3260 ENDWHILE
 3270
 3280ENDPROC
 3290
 3300DEF PROC_Trans(wh%)
 3310!q%=wh%
 3320SYS "Wimp_GetWindowState",,q%
 3330xo%=q%!4-q%!20:yo%=q%!16-q%!24-724
 3340XO%=q%!4:YO%=q%!16
 3350ENDPROC
 3360
 3370DEFPROCsetupmenu
 3380LOCAL m%
 3390
 3400$menu%="LScope"
 3410menu%?12=7
 3420menu%?13=2
 3430menu%?14=7
 3440menu%?15=0
 3450menu%!16=128
 3460menu%!20=40
 3470menu%!24=0
 3480m%=menu%+28
 3490m%!0=0
 3500m%!4=info%
 3510m%!8=(7<<24)OR %10001
 3520$(m%+12)="Info"
 3530
 3540m%+=24
 3550m%!0=0
 3560m%!4=saveW%
 3570m%!8=(7<<24)OR %10001
 3580$(m%+12)="Save"
 3590
 3600m%+=24
 3610m%!0=0
 3620m%!4=rateM%
 3630m%!8=(7<<24)OR %10001
 3640$(m%+12)="Rate"
 3650
 3660m%+=24
 3670m%!0=&80
 3680m%!4=0
 3690m%!8=(7<<24)OR %10001
 3700$(m%+12)="Quit"
 3710
 3720$rateM%="Sample"
 3730rateM%?12=7
 3740rateM%?13=2
 3750rateM%?14=7
 3760rateM%?15=0
 3770rateM%!16=128
 3780rateM%!20=40
 3790rateM%!24=0
 3800m%=rateM%+28
 3810m%!0=1
 3820m%!4=0
 3830m%!8=(7<<24)OR %10001
 3840$(m%+12)="2.5uS"
 3850
 3860m%+=24
 3870m%!0=0
 3880m%!4=0
 3890m%!8=(7<<24)OR %10001
 3900$(m%+12)="10uS"
 3910
 3920m%+=24
 3930m%!0=0
 3940m%!4=0
 3950m%!8=(7<<24)OR %10001
 3960$(m%+12)="50uS"
 3970
 3980m%+=24
 3990m%!0=0
 4000m%!4=0
 4010m%!8=(7<<24)OR %10001
 4020$(m%+12)="100uS"
 4030
 4040m%+=24
 4050m%!0=0
 4060m%!4=0
 4070m%!8=(7<<24)OR %10001
 4080$(m%+12)="500uS"
 4090
 4100m%+=24
 4110m%!0=&80
 4120m%!4=0
 4130m%!8=(7<<24)OR %10001
 4140$(m%+12)="1mS"
 4150
 4160ENDPROC
 4170
 4180DEF PROCreceive(q%)
 4190LOCAL A%
 4200A%=q%!16
 4210CASE A% OF
 4220WHEN 0:PROCdie
 4230WHEN 2:IF q%!12=saveref% THEN fn$=FNsget(q%+44):PROC_Save
 4240WHEN 3:IF (q%!20=-2 OR q%!20=monW%) AND q%!40=&05E THEN
 4250        n$=FNsget(q%+44)
 4260        PROC_Dack
 4270        PROC_LB(n$)
 4280       ENDIF
 4290WHEN 5:IF q%!40=&05E THEN
 4300       n$=FNsget(q%+44):PROC_Dack:PROC_LB(n$)
 4310       ENDIF
 4320
 4330WHEN &400C1: IF wopen% THEN q%!0=monW% : PROC_close
 4340
 4350
 4360WHEN &502:   CASE TRUE OF
 4370             WHEN q%!32=-2 AND q%!36=smpicon%:mes$="This is the Oscilloscope icon.|MObserve analogue signals"
 4380             OTHERWISE:mes$=""
 4390             ENDCASE
 4400    IF mes$<>"" THEN
 4410    q%!12=q%!8
 4420    $(q%+20)=mes$+CHR$0
 4430    q%!0=(20+LENmes$+4)AND NOT 3
 4440    q%!16=&503
 4450    SYS "Wimp_SendMessage",18,q%,q%!4
 4460ENDCASE
 4470ENDPROC
 4480
 4490DEF PROC_Dack
 4500sendth%=q%!4
 4510myref%=q%!8
 4520SYS "Wimp_GetPointerInfo",,q%+8
 4530q%!28=q%!8
 4540q%!32=q%!12
 4550q%!0=(44+LENn$+4)AND NOT 3
 4560q%!12=myref%
 4570q%!16=4
 4580q%!36=-1
 4590q%!40=&FF9
 4600$(q%+44)=n$+CHR$0
 4610SYS "Wimp_SendMessage",17,q%,sendth%
 4620ENDIF
 4630ENDPROC
 4640
 4650DEF PROC_LB(S$)
 4660LOCAL ch%,A%,B%,Buf%
 4670ch%=OPENIN(S$):IF ch%=0 THEN CLOSE#ch%:ENDPROC
 4680IF !OddEven=0 THEN Buf%=Trace1% ELSE Buf%=Trace2%
 4690A%=0
 4700REPEAT
 4710B%=BGET#ch%
 4720Buf%?A%=B%
 4730A%+=1
 4740UNTIL EOF#ch% OR A%=2753
 4750CLOSE#ch%
 4760PROCanalise
 4770PROC_PutName(S$)
 4780SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
 4790PROC_Open
 4800ENDPROC
 4810
 4820DEFFNsget(x%)
 4830LOCAL x$
 4840WHILE ?x% x$+=CHR$(?x%):x%+=1:ENDWHILE
 4850=x$
 4860
 4870DEF PROCiSave(i%)
 4880IF i%=0 THEN
 4890            SYS "Wimp_GetPointerInfo",,q%
 4900            PROCdragicon(q%!0,q%!4,saveW%,i%)
 4910 ENDIF
 4920IF i%=2 THEN
 4930 PROC_GetName
 4940 IF INSTR(fn$,":") THEN PROC_Save ELSE PROC_setupW("Drag the Icon into a Directory")
 4950 SYS "Wimp_CreateMenu",,-1
 4960ENDIF
 4970ENDPROC
 4980
 4990DEF PROC_Save
 5000LOCAL bufP%
 5010IF !OddEven=0 THEN BufP%=Trace1% ELSE BufP%=Trace2%
 5020OSCLI("SAVE "+fn$+" "+STR$~BufP%+" "+STR$~(BufP%+2752))
 5030OSCLI("SETTYPE "+fn$+" 05E")
 5040PROC_PutName(fn$)
 5050ENDPROC
 5060
 5070DEF PROC_PutName(p$)
 5080LOCAL T%
 5090q%!0=saveW%:q%!4=1
 5100SYS "Wimp_GetIconState",,q%
 5110T%=q%!28
 5120$T%=p$
 5130!(T%+LEN(p$))=0
 5140ENDPROC
 5150
 5160
 5170DEFFNicon
 5180q%!0=-1
 5190q%!4=0
 5200q%!8=10 : REM Y DIRECTION
 5210q%!12=70 : REM X DIRECTION
 5220q%!16=96
 5230q%!20=&2002
 5240$(q%+24)="!lscope"
 5250SYS "Wimp_CreateIcon",,q% TO icon%
 5260=icon%
 5270
 5280DEF PROC_setupW(t$)
 5290!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
 5300$TextWarn%=t$
 5310TextWarn%?LEN(t$)=0
 5320VDU 7
 5330warnOn%=TRUE
 5340SYS "Wimp_OpenWindow",,q%
 5350ENDPROC
 5360
 5370DEF PROCerrorbox
 5380SYS "Wimp_DragBox",,-1
 5390!buffers%=ERR:$(buffers%+4)=REPORT$+" at line "+STR$ERL+CHR$0
 5400SYS "Wimp_ReportError",buffers%,1,"Logic Scope"
 5410PROCdie
 5420ENDPROC
 5430
 5440DEFPROCdie
 5450SYS "Wimp_CloseDown",taskhand%,!taskid%
 5460END
 5470ENDPROC
 5480
 5490DEF PROCdragicon(mousex%,mousey%,handle%,icon%)
 5500LOCAL bx%,by%,ix0%,iy0%,ix1%,iy1%
 5510PROCgetw(handle%)
 5520PROCgeti(handle%,icon%)
 5530!q%=handle%:q%!4=5
 5540q%!8=bx%+ix0%:q%!12=by%+iy0%:q%!16=bx%+ix1%:q%!20=by%+iy1%
 5550q%!24=q%!8-mousex%:q%!28=q%!12-mousey%
 5560SYS "Wimp_DragBox",,q%
 5570SFLAG%=TRUE
 5580ENDPROC
 5590
 5600DEF PROCinfo(p%)
 5610LOCAL x0%,y0%
 5620x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
 5630scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
 5640bx%=x0%-scx%:by%=y1%-scy%
 5650ENDPROC
 5660
 5670DEF PROC_DoSave
 5680  SYS "Wimp_GetPointerInfo",,q%
 5690  PROCdragicon(q%!0,q%!4,saveW%,i%)
 5700ENDPROC
 5710
 5720DEF PROCgetw(handle%)
 5730!q%=handle%
 5740SYS "Wimp_GetWindowState",,q%
 5750PROCinfo(q%+4)
 5760ENDPROC
 5770
 5780DEF PROC_PutDown(q%)
 5790LOCAL h%,i%
 5800REM SYS "Wimp_GetPointerInfo",,q%
 5810PROC_GetName
 5820SYS "Wimp_GetPointerInfo",,q%
 5830h%=q%!12:i%=q%!16
 5840IF INSTR( fn$,":") THEN fn$=FN_spath(fn$)
 5850$(q%+44)=fn$
 5860?(q%+44+LEN(fn$))=0
 5870q%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=1024:q%!40=&FFC
 5880q%!0=56:q%!12=0:q%!16=1
 5890SYS "Wimp_SendMessage",17,q%,h%,i%
 5900saveref%=q%!8
 5910SYS "Wimp_CreateMenu",,-1
 5920ENDPROC
 5930
 5940DEF PROCgeti(h%,i%)
 5950!q%=h%:q%!4=i%:SYS "Wimp_GetIconState",,q%
 5960ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
 5970iflags%=q%!24:idata%=q%+28
 5980ENDPROC
 5990
 6000DEF PROCinfo(p%)
 6010LOCAL x0%,y0%
 6020x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
 6030scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
 6040bx%=x0%-scx%:by%=y1%-scy%
 6050ENDPROC
 6060
 6070DEF PROC_KeyPress
 6080CASE q%!0 OF
 6090WHEN saveW% : IF q%!24=13 THEN PROCiSave(2)
 6100OTHERWISE: SYS"Wimp_ProcessKey",q%!24
 6110ENDCASE
 6120ENDPROC
 6130
 6140DEF PROCCinit
 6150LOCAL A%,B%
 6160VDU 21
 6170FOR A%=0 TO 2 STEP 2
 6180P%=Code%
 6190[
 6200OPT A%
 6210.Xoff EQUD 0 \ X offset
 6220.Yoff EQUD 0  \ Y offset
 6230.YoffS EQUD 0  \ Stored Y offset
 6240.Yscale EQUD 0  \ Y multiplier
 6250.OddEven EQUD 1  \ Odd even buffer
 6260.TrigL EQUD 128   \ Trigger level
 6270.Fired EQUD 0      \ Zero if not Fired trigger
 6280.BufP1 EQUD Trace1% \ Points to the buffer 1
 6290.BufP2 EQUD Trace2%  \ Points to buffer 2
 6300.Xscale EQUD 2        \ X multiplier
 6310.Ndat   EQUD 1         \ Data byte incrementer
 6320.Bsize  EQUD 344        \ Buffer size
 6330.Boff   EQUD 0           \ Buffer offset for X scroll
 6340.Tsize  EQUD 30           \ Distance between 0 and 1 states
 6350.Tbits  EQUD 0             \ Trigger bits
 6360.Tmask  EQUD 0              \ Trigger mask
 6370.Delay  EQUD 0               \ Delay value
 6380
 6390.Etrace
 6400STMFD R13!,{R14}
 6410LDR R12,Tsize
 6420LDR R5,Yoff
 6430LDR R6,Xoff
 6440MOV R9,#0
 6450LDR R10,Xscale
 6460LDR R11,Ndat
 6470LDR R1,OddEven
 6480TST R1,#1
 6490LDRNE R7,BufP1
 6500LDREQ R7,BufP2
 6510LDR R2,Boff
 6520ADD R7,R7,R2
 6530LDR R2,Bsize
 6540ADD R8,R7,R2
 6550MOV R4,#0
 6560\ Set Grey to erase
 6570MOV R1,#&9900
 6580MOV R0,#&990000
 6590ORR R0,R0,R1
 6600MOV R1,#&99000000
 6610ORR R0,R0,R1
 6620SWI &40744 \ Get Colour number
 6630MOV R1,R0
 6640MOV R0,#0
 6650SWI &61 \ OS_SetColour
 6660.Nte
 6670BL DT
 6680LDR R1,OddEven
 6690TST R1,#1
 6700LDRNE R7,BufP1
 6710LDREQ R7,BufP2
 6720LDR R2,Boff
 6730ADD R7,R7,R2
 6740LDR R2,Bsize
 6750MOV R4,#0
 6760ADD R5,R5,#56
 6770ADD R9,R9,#1
 6780TST R9,#8
 6790BEQ Nte
 6800LDMFD R13!, {PC} \ Return
 6810
 6820.Dtrace
 6830STMFD R13!,{R14}
 6840LDR R12,Tsize
 6850LDR R5,Yoff
 6860LDR R6,Xoff
 6870MOV R9,#0
 6880LDR R10,Xscale
 6890LDR R11,Ndat
 6900LDR R1,OddEven
 6910TST R1,#1
 6920LDREQ R7,BufP1
 6930LDRNE R7,BufP2
 6940LDR R2,Boff
 6950ADD R7,R7,R2
 6960LDR R2,Bsize
 6970MOV R4,#0
 6980\ Set Green to draw trace
 6990MOV R0,#&EE0000
 7000SWI &40744 \ Get Colour number
 7010MOV R1,R0
 7020MOV R0,#0
 7030SWI &61 \ OS_SetColour
 7040.Nt
 7050BL DT
 7060LDR R1,OddEven
 7070TST R1,#1
 7080LDREQ R7,BufP1
 7090LDRNE R7,BufP2
 7100LDR R2,Boff
 7110ADD R7,R7,R2
 7120LDR R2,Bsize
 7130MOV R4,#0
 7140ADD R5,R5,#56
 7150ADD R9,R9,#1
 7160TST R9,#8
 7170BEQ Nt
 7180LDMFD R13!, {PC} \ Return
 7190
 7200.DT
 7210STMFD R13!,{R14}
 7220LDRB R3,[R7],R11
 7230MOV R3,R3,LSR R9
 7240ANDS R3,R3,#1
 7250ADDNE R3,R3,R12
 7260MOV R0,#69 \ Point plot
 7270ADD R2,R5,R3  \ Y value
 7280ADD R1,R6,R4 \ X value
 7290SWI &45 \ VDU Plot
 7300ADD R1,R1,R10
 7310MOV R0,#5
 7320SWI &45
 7330ADD R4,R4,R10
 7340
 7350.Loop
 7360LDRB R3,[R7],R11
 7370MOV R3,R3,LSR R9
 7380ANDS R3,R3,#1
 7390ADDNE R3,R3,R12
 7400MOV R0,#5 \ Line plot
 7410ADD R2,R5,R3  \ Y value
 7420ADD R1,R6,R4 \ X value
 7430SWI &45 \ VDU Plot
 7440ADD R1,R1,R10
 7450SWI &45 \ Plot Horizontal line
 7460ADD R4,R4,R10 \ Increment X value
 7470CMP R4,#688
 7480BLT Loop
 7490LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 7500
 7510.InputS
 7520STMFD R13!,{R14}
 7530\Make printer Port input
 7540MOV R0,#2
 7550MOV R1,#&20
 7560MOV R2,#&DF
 7570SWI &42EC1  \ Parallel output
 7580MOV R10,#&10000 \ Number of looks before giving up
 7590MOV R0,#0
 7600ADR R7,Fired
 7610STR R0,[R7] \ Clear out fired indicator
 7620LDR R1,OddEven
 7630TST R1,#1
 7640LDRNE R6,BufP2
 7650LDREQ R6,BufP1
 7660LDR R8,Bsize
 7670LDR R7,Tmask
 7680LDR R5,Tbits
 7690ADR R11,Delay
 7700
 7710MOV R9,R15
 7720SWI "OS_EnterOS"
 7730TEQP R15,#&C000003 \ DISABLE INTERRUPTS
 7740MOVNV R0,R0
 7750
 7760MOV R0,#0
 7770ADR R11,Delay
 7780TEQ R7,#0 \ Skip if no trigger
 7790BEQ Gather
 7800.Ntrig
 7810SUBS R10,R10,#1
 7820BEQ Exit
 7830SWI &42EC1 \ Get trigger
 7840AND R4,R1,R7
 7850CMP R4,R5
 7860BEQ Ntrig
 7870
 7880.Ntrig2
 7890SUBS R10,R10,#1
 7900BEQ Exit
 7910SWI &42EC1 \ Get trigger
 7920AND R4,R1,R7
 7930CMP R4,R5
 7940BNE Ntrig2
 7950B Sg
 7960.Gather
 7970SWI &42EC1 \ Gete the data
 7980.Sg
 7990STRB R1,[R6],#1
 8000LDR R7,[R11] \ Get Delay value
 8010TEQ R7,#0
 8020BEQ Nd
 8030.D1
 8040SWI &42EC1 \ Dummy input for delay
 8050SUBS R7,R7,#1
 8060BNE D1
 8070.Nd
 8080SUBS R8,R8,#1
 8090BNE Gather
 8100ADR R7,Fired
 8110STR R6,[R7]   \Indicate data has been gatherd
 8120.Exit
 8130TEQP R9,#0
 8140MOVNV R0,R0
 8150LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 8160
 8170.InputE
 8180STMFD R13!,{R14}
 8190\Make printer Port input
 8200MOV R0,#2
 8210MOV R1,#&20
 8220MOV R2,#&DF
 8230SWI &42EC1  \ Parallel output
 8240MOV R10,#&8000 \ Number before giving up
 8250MOV R0,#0
 8260ADR R7,Fired
 8270STR R0,[R7] \ Clear out fired indicator
 8280LDR R1,OddEven
 8290TST R1,#1
 8300LDRNE R6,BufP2
 8310LDREQ R6,BufP1
 8320LDR R8,Bsize
 8330LDR R7,Tmask
 8340LDR R5,Tbits
 8350
 8360MOV R9,R15
 8370SWI "OS_EnterOS"
 8380TEQP R15,#&C000003 \ DISABLE INTERRUPTS
 8390MOVNV R0,R0
 8400
 8410MOV R0,#0
 8420MOV R0,#0
 8430TEQ R7,#0 \ Skip if no trigger
 8440BEQ GatherE
 8450
 8460.NtrigE2
 8470SUBS R10,R10,#1
 8480BEQ ExitE
 8490SWI &42EC1 \ Look for not trigger condition
 8500TST R2,#&80
 8510BEQ NtrigE2
 8520AND R4,R1,R7
 8530CMP R4,R5
 8540BEQ NtrigE2
 8550
 8560.NtrigE
 8570SUBS R10,R10,#1
 8580BEQ ExitE
 8590SWI &42EC1 \ Look for trigger condition
 8600TST R2,#&80
 8610BEQ NtrigE
 8620AND R4,R1,R7
 8630CMP R4,R5
 8640BNE NtrigE
 8650
 8660B SgE
 8670.GatherE
 8680SWI &42EC1
 8690TST R2,#&80
 8700BEQ GatherE
 8710.SgE
 8720STRB R1,[R6],#1
 8730.HH
 8740SWI &42EC1
 8750TST R2,#&80
 8760BNE HH
 8770SUBS R8,R8,#1
 8780BNE GatherE
 8790ADR R7,Fired
 8800STR R6,[R7]   \Indicate data has been gatherd
 8810.ExitE
 8820TEQP R9,#0
 8830MOVNV R0,R0
 8840LDMFD R13!, {PC} \ BACK FROM WHENST YOU CAME
 8850
 8860]
 8870NEXT
 8880VDU6
 8890
 8900PROCmemW
 8910FOR A%=0 TO 7
 8920Tb%(A%)=2
 8930NEXT
 8940PROCron(3)
 8950
 8960FOR A%=0 TO 5
 8970READ B%,C
 8980Srate%(A%)=B%-1
 8990Tps(A%)=C
 9000NEXT
 9010DATA 0,0.0025,4,0.01,20,0.05,40,0.1,200,0.5,400,1.0
 9020ENDPROC
 9030
 9040REM Make small adjustments to the size of icons for refresh
 9050DEF PROCadjustI
 9060
 9070IY%(0)+=56:IX%(0)+=98
 9080IY1%(0)-=38:IX1%(0)-=38
 9090ENDPROC
 9100
 9110DEF PROCmemW
 9120FOR A%=0 TO 2752 STEP 4
 9130Trace1%!A%=0
 9140Trace2%!A%=0
 9150NEXT
 9160SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
 9170PROCanalise
 9180ENDPROC
 9190
 9200DEF PROC_SSS
 9210REM Set up Slider Sprites
 9220SP%!0=SPr%
 9230SP%!8=16
 9240SYS"OS_SpriteOp",9+256,SP%
 9250SYS"OS_SpriteOp",11+256,SP%,"<LScope$Dir>.Slider"
 9260G4%?0=0:G4%?1=3:G4%?2=0:G4%?3=1
 9270FOR A%=0 TO 1024 STEP 4
 9280G5%?A%=0
 9290G5%?(A%+1)=A%
 9300G5%?(A%+2)=A%
 9310G5%?(A%+3)=A%
 9320NEXT
 9330Stt%=0
 9340PROCtt
 9350ENDPROC
 9360
 9370DEF PROCtt
 9380SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%
 9390IF Ncolours%=3 THEN Stt%=G4% ELSE SYS"ColourTrans_SelectTable",SP%,"slideh",-1,-1,G5%,0:Stt%=G5%
 9400ENDPROC
 9410
 9420DEF PROCrxs
 9430Slide%(2)=0
 9440!Boff=0
 9450SYS"Wimp_ForceRedraw",monW%,IX%(19),IY%(19),IX1%(19),IY1%(19)
 9460ENDPROC
 9470
 9480DEF PROCron(n%)
 9490LOCAL T%,A%
 9500T%=!Bsize
 9510 CASE n% OF
 9520 WHEN 0: !Xscale=1 :!Ndat=4 :!Bsize=2752  :NcL%=0
 9530 WHEN 1: !Xscale=1 :!Ndat=2 :!Bsize=1376  :NcL%=1376
 9540 WHEN 2: !Xscale=1 :!Ndat=1 :!Bsize=688   :NcL%=2064
 9550 WHEN 3: !Xscale=2 :!Ndat=1 :!Bsize=344   :NcL%=2408
 9560 WHEN 4: !Xscale=4 :!Ndat=1 :!Bsize=344   :NcL%=2580
 9570 WHEN 5: !Xscale=8 :!Ndat=1 :!Bsize=344   :NcL%=2666
 9580 WHEN 6: !Xscale=16:!Ndat=1 :!Bsize=344   :NcL%=2709
 9590 ENDCASE
 9600 PROCrxs
 9610 PROCanalise
 9620 SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
 9630n%+=12
 9640$SPoint%(n%)="radioon"
 9650 SYS"Wimp_ForceRedraw",monW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%)
 9660ENDPROC
 9670
 9680DEF PROCroff(n%)
 9690n%+=12
 9700$SPoint%(n%)="radiooff"
 9710 SYS"Wimp_ForceRedraw",monW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%)
 9720ENDPROC
 9730
 9740DEF PROCdrawscope
 9750        SYS"Wimp_SetColour",2
 9760        RECTANGLEFILL xo%,yo%,1140,724
 9770IF ((q%!40)>(yo%+214)) AND ((q%!28)<(xo%+788)) THEN
 9780        SYS"Wimp_SetColour",3
 9790        RECTANGLEFILL xo%+100,yo%+218,684,474
 9800        SYS"Wimp_SetColour",0
 9810        !Xoff=xo%+100
 9820        !Yoff=yo%+SlideO%
 9830        CALL Dtrace
 9840        IF RefBut%=1 THENSYS"Wimp_SetColour",15:LINE RefPoint%+xo%+100,yo%+218,RefPoint%+xo%+100,yo%+694
 9850 ENDIF
 9860ENDPROC
 9870
 9880
 9890DEF PROCdrawcontrols
 9900SYS"OS_SpriteOp",52+256,SP%,"slideh",xo%+98,yo%+84,&18,0,Stt%
 9910SYS"OS_SpriteOp",52+256,SP%,"slidetu",xo%+108+Slide%(2),yo%+86,&18,0,Stt%
 9920ENDPROC
 9930
 9940DEF PROCrefresh
 9950PROC_Trans(monW%)
 9960        !Xoff=xo%+100
 9970        !Yoff=yo%+SlideO%
 9980        SYS"Wimp_SetColour",9
 9990  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
10000  SYS"Wimp_UpdateWindow",,q% TO More%
10010
10020 WHILE More%
10030  REM Draw the window
10040        CALL Etrace
10050        CALL Dtrace
10060  SYS"Wimp_GetRectangle",,q% TO More%
10070 ENDWHILE
10080ENDPROC
10090
10100REM Just draw the trace
10110DEF PROCjd
10120PROC_Trans(monW%)
10130        !Xoff=xo%+100
10140        !Yoff=yo%+SlideO%
10150        SYS"Wimp_SetColour",9
10160  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
10170  SYS"Wimp_UpdateWindow",,q% TO More%
10180
10190 WHILE More%
10200        CALL Dtrace
10210        IF RefBut%<>0 THEN SYS"Wimp_SetColour",15:LINE RefPoint%+xo%+100,yo%+218,RefPoint%+xo%+100,yo%+694
10220  SYS"Wimp_GetRectangle",,q% TO More%
10230 ENDWHILE
10240ENDPROC
10250
10260REM Just erase the trace
10270DEF PROCje
10280PROC_Trans(monW%)
10290        !Xoff=xo%+100
10300        !Yoff=yo%+SlideO%
10310        SYS"Wimp_SetColour",9
10320  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
10330  SYS"Wimp_UpdateWindow",,q% TO More%
10340 WHILE More%
10350        CALL Etrace
10360  SYS"Wimp_GetRectangle",,q% TO More%
10370 ENDWHILE
10380ENDPROC
10390
10400
10410DEF PROCmeasure(Mx%,Mb%)
10420LOCAL X%,Y%,B%,t,d$
10430REM PROC_Trans(wh%)
10440IF Mb%=1 THEN
10450IF RefBut%=0 THEN
10460PROCaddRef(Mx%)
10470 ELSE
10480    SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
10490    RefBut%=0
10500    $SPoint%(21)="    "
10510    SYS"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
10520 ENDIF
10530 PROCanalise
10540 REPEAT:MOUSE X%,Y%,B%:UNTIL B%=0
10550 ELSE
10560  IF RefBut%=1 THEN
10570   X%=(Mx%-xo%-102)-RefPoint%
10580   Y%=!Xscale
10590   IF Y%>1 THEN Y%=Y%>>1
10600   t=(X%*((!Bsize)/688))/Y%
10610   d$=STR$(t*Msps)
10620   IF LEN(d$)>6 THEN d$=LEFT$(d$,6)
10630   $SPoint%(21)=d$
10640   SYS"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
10650  ELSE
10660   VDU 7
10670  ENDIF
10680ENDIF
10690
10700ENDPROC
10710
10720DEF PROCaddRef(Mx%)
10730LOCAL Y%
10740  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
10750  SYS"Wimp_UpdateWindow",,q% TO More%
10760 WHILE More%
10770       SYS"Wimp_SetColour",15
10780       LINE Mx%,yo%+218,Mx%,yo%+694
10790  SYS"Wimp_GetRectangle",,q% TO More%
10800 ENDWHILE
10810 RefPoint%=Mx%-xo%-102
10820 RefBut%+=1
10830   Y%=!Xscale
10840   IF Y%>1 THEN Y%=Y%>>1
10850   RefOff%=(RefPoint%*((!Bsize)/688))/Y%
10860 
10870ENDPROC
10880
10890DEF PROCanalise
10900LOCAL p%,Byte%,B%,A%,C%,E%,Y%
10910REM point into buffer to take measurement
10920IF RefBut%<>0 THEN p%=!Boff+RefOff% ELSE p%=!Boff
10930IF !OddEven = 0 THEN B%=Trace1% ELSE B%=Trace2%
10940C%=((?(B%+p%))>>AnC%) AND 1
10950IF C%=0 THEN $SPoint%(1)="0" ELSE $SPoint%(1)="1"
10960SYS"Wimp_ForceRedraw",monW%,IX%(1),IY%(1),IX1%(1),IY1%(1)
10970A%=p%
10980REPEAT
10990E%=((?(A%+B%))>>AnC%) AND 1
11000A%+=1
11010UNTIL E%<>C% OR A%=2753
11020IF A%=2753 THEN $SPoint%(9)="none":NextChange%=0 ELSE PROCdefNC
11030SYS"Wimp_ForceRedraw",monW%,IX%(9),IY%(9),IX1%(9),IY1%(9)
11040ENDPROC
11050
11060DEF PROCdefNC
11070LOCAL d$
11080NextChange%=A%-1
11090IF Samples% THEN
11100$SPoint%(9)=STR$(A%-p%-1)
11110ELSE
11120d$=STR$((A%-1-p%)*Msps)
11130IF LEN(d$)>6 THEN d$=LEFT$(d$,6)
11140$SPoint%(9)=d$
11150ENDIF
11160ENDPROC
11170
11180DEF PROCdoNC
11190LOCAL Y%
11200IF NextChange%=0 THEN VDU 7: ENDPROC
11210IF NextChange%<NcL% THEN
11220!OddEven = !OddEven EOR 1
11230PROCje
11240IF RefBut%<>0 THEN !Boff=NextChange%-RefOff% ELSE !Boff=NextChange%
11250!OddEven = !OddEven EOR 1
11260PROCjd
11270Slide%(2)=394*(NextChange%/NcL%)
11280PROC_UpP(19)
11290ELSE
11300  IF RefBut%=0 THEN RefBut%=1
11310   Y%=!Xscale
11320   IF Y%>1 THEN Y%=Y%>>1
11330RefOff%=NextChange%-NcL%
11340RefPoint%=(RefOff%*Y%)/(!Bsize/688)
11350!Boff=NcL%
11360Slide%(2)=394
11370PROC_UpP(19)
11380SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
11390ENDIF
11400PROCanalise
11410ENDPROC
11420
11430DEF PROCdoLC
11440LOCAL Y%,A%
11450IF RefBut%<>0 THEN p%=!Boff+RefOff% ELSE p%=!Boff
11460p%-=1
11470IF p%<1 THEN VDU 7:ENDPROC
11480IF !OddEven = 0 THEN B%=Trace1% ELSE B%=Trace2%
11490C%=((?(B%+p%))>>AnC%) AND 1
11500A%=p%:E%=C%
11510WHILE A%>0 AND E%=C%
11520E%=((?(A%+B%))>>AnC%) AND 1
11530A%-=1
11540ENDWHILE
11550IF (A%>0 AND RefBut%=0) OR (RefBut%<>0 AND (A%-RefOff%+1)>0 ) THEN
11560!OddEven = !OddEven EOR 1
11570PROCje
11580IF RefBut%<>0 THEN !Boff=A%-RefOff%+2 ELSE !Boff=A%+2
11590!OddEven = !OddEven EOR 1
11600PROCjd
11610Slide%(2)=394*(A%/NcL%)
11620PROC_UpP(19)
11630ELSE
11640  IF RefBut%<>0 AND A%>0 THEN
11650   Y%=!Xscale
11660   IF Y%>1 THEN Y%=Y%>>1
11670   RefOff%=A%+2
11680   RefPoint%=(RefOff%*Y%)/(!Bsize/688)
11690   !Boff=0
11700   Slide%(2)=0
11710   PROC_UpP(19)
11720   SYS"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
11730   ELSE
11740   VDU 7
11750  ENDIF
11760ENDIF
11770PROCanalise
11780ENDPROC

�>Oscilloscope
� Version 1.0 By Mike Cook
� All rights reserved
(
2� � �errorbox
<+� taskid% 8,intmess% 20:$taskid%="TASK"
FIintmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0
PQș "Wimp_Initialise",300,!taskid%,"Logic_scope",intmess% � version%,taskhand%
ZJ� q% 512, Wn% 2204,temp% 612,buffers% 512,menu% 256,SW% 2204, Ifo% 616
d@� IsName% 280, TextWarn% 256, ww% 512, Code% &700,rateM% 256
nNi%=29 :SPr%=11000
xG� SP% SPr%, G5% 1024, G4% 16, Tb%(7),IsName% 256, Srate%(5), Tps(5)
�8� SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%)
�*� Slide%(2), Trace1% 2752,Trace2% 2752
�
�4ș "Wimp_OpenTemplate",,"<LScope$Dir>.Templates"
�)� � ș "Wimp_CloseTemplate":�errorbox
�
�Gș "Wimp_LoadTemplate",,q%,IsName%+4,IsName%+280,-1,"save_script",0
�'ș "Wimp_CreateWindow",,q% � saveW%
�IsName%!0=saveW%
�
�;ș "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+2204,-1,"Scope",0
�)ș "Wimp_CreateWindow",,Wn%+4 � monW%
�
Wn%!0=monW%:Wn%!28=-1
� A%=0 � Ni%
$SPoint%(A%)=!(Wn%+4+88+20+32*A%)
"9IX%(A%)=!(Wn%+4+88+32*A%):IY%(A%)=!(Wn%+4+88+4+32*A%)
,>IX1%(A%)=!(Wn%+4+88+8+32*A%):IY1%(A%)=!(Wn%+4+88+12+32*A%)
6�
@
J>ș "Wimp_LoadTemplate",,Ifo%+4,temp%,temp%+612,-1,"Info",0
T*ș "Wimp_CreateWindow",,Ifo%+4 � info%
^Ifo%!0=info%
h
r9ș "Wimp_LoadTemplate",,q%,ww%,ww%+512,-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"
�
�� � �errorbox
�
�F� Calabration - Time for one sample in mS Milli Seconds Per Sample
�Msps=0.0025
�ref%=0:DragOn%=�
�%cpL%=0:cpR%=0:ExtCk%=�:Samples%=�
�An%=0:NextT%=0
�Arm%=�:OneS%=�:StoredT%=�
%smpicon%=�icon:Xscale%=3:Bpush%=�
wopen%=�:warnOn%=�
SlideO%=246
&NextChange%=0
0LY%=-1:LX%=-1
:	TS%=3
D#RefBut%=0:RefPoint%=0:RefOff%=0
NAnC%=0:NcL%=2408
XTrigM%=0:TrigB%=0
b
l�setupmenu
v	�_SSS
��adjustI
�
�Cinit
��_PutName("Bits")
�
��
� ș "Wimp_Poll",0,q% � A%
�
  Ȏ A% �
�   � 0:�_Null
�   � 1:�_doWindow
�1   � 2:ș "Wimp_OpenWindow",,q% :wopen%=�:�tt
�   � 3:�_close
�   � 6:�_do_click(q%)
�   � 7:�_PutDown(q%)
   � 8:�_KeyPress
   � 9:�_SORT_Menu
   � 17,18:�receive(q%)
    �
* � �
4
>�
H
R� �_Null
\� A%,B%,C%,X%,Y%,T%
fȗ X%,Y%,B%
p� Bpush% � B%=0 �
zBpush%=�
�Ȏ Button% �
�� 4 : $SPoint%(4)="up"
� � 5 : $SPoint%(5)="radiooff"
��
�Tș"Wimp_ForceRedraw",monW%,IX%(Button%),IY%(Button%),IX1%(Button%),IY1%(Button%)
��
�� DragOn% �
��_Trans(monW%)
�ȗ X%,Y%,B%
� � X%<>LX% �
�  LY%=Y%
�  LX%=X%
�  C%=Wd%-4

  C%=2
   Slide%(C%)=X%-(xo%+108)-12
'  � Slide%(C%)>394 � Slide%(C%)=394
$#  � Slide%(C%)<0 � Slide%(C%)=0
.  �_UpP(Wd%)
8  !OddEven = !OddEven � 1
B	  �je
L"  !Boff=NcL%*(Slide%(2)/394.0)
V  !OddEven = !OddEven � 1
`	  �jd
j  �analise
t �
~� B%=0 � DragOn%=�:LY%=-1
��
�
�)� �>NextT% � wopen% � OneS%=� � �Scan
�� wopen% � Arm% �
�	�Scan
� � !Fired<>0 �
� Arm%=�
� �push(Arm%,2,"bing")
�
 �analise
� �
��
�
�


� �Scan
R� Slide%(2)<>0 � �rxs:ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
(+� !Bsize<800 � NextT%=�+5 � NextT%=�+20
2!OddEven = !OddEven � 1
<"� ExtCk% � � InputE � � InputS
F4� !Fired<>0 � �refresh � !OddEven = !OddEven � 1
P�
Z
d� �_spath(n$)
nȕ �n$,".")
xn$=�n$,�(n$)-1)
��
�� �(n$)>10 � n$=�n$,10)
�=n$
�
�� �_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)
"�
,
6� �_SORT_Menu
@Ȏ !q% �
J3� 2: �_Mtick(q%!4,6,rateM%):!Delay=Srate%(q%!4)
T        Msps=Tps(q%!4)
^
� 3: �die
h�
r�
|
�� �_Mtick(n%,ni%,m%)
�� A%,B%
�� A%=1 � ni%
�B%=A%*24+4
�m%!B%=m%!B% � �(1)
��
�B%=(n%+1)*24+4
�m%!B%=m%!B% � 1
��
�
�
� �_close
�7� q%!0=monW% � ș"Wimp_GetWindowInfo",,Wn%:wopen%=�
� � q%!0=warningW% � warnOn%=�
ș "Wimp_CloseWindow",,q%
�

&� �_do_click(q%)
0i%=q%!16
:Ȏ q%!12 �
D(� warningW%: q%!0=warningW% :�_close
N
X(� -2: � Look first at Icon Bar Click
b        � q%!16=smpicon% �
lJ        � q%!8=2 � IconMenu%=�: ș"Wimp_CreateMenu",,menu%,q%!0-94,256
v        � q%!8=4 � �_Open
�        
�
        �
�� saveW%:  �sclick
�
�� monW%:  
�Q              � q%!8=2 � IconMenu%=�: ș"Wimp_CreateMenu",,menu%,q%!0-84,q%!4
�&              � q%!8=4� �_MonClick
�'              � q%!8=1 � �_AdjClick
��
��
�
�
� �sclick
�Ȏ i% �
� 0: �_DoSave
� 2: �iSave(2)
�
 �
*
4� �_MonClick
>� D%,V%,B%,X%,Y%
H&� Do the action for a window click
RȎ i% �
\� 0   : �measure(q%!0,q%!8)
f� 1   :
p-� 2   : Arm%=�(Arm%):�push(Arm%,2,"bing")
z#           � Arm% � OneS%=�:�os
�(� 4   : Bpush%=� : Button%=4 : �doNC
�            $SPoint%(4)="pup"
�G           ș"Wimp_ForceRedraw",monW%,IX%(4),IY%(4),IX1%(4),IY1%(4)
�(� 5   : Bpush%=� : �memW : Button%=5
�$           $SPoint%(5)="radioon"
�G           ș"Wimp_ForceRedraw",monW%,IX%(5),IY%(5),IX1%(5),IY1%(5)
�(� 6,7 : � i%=6 � ExtCk%=� � ExtCk%=�
�x           � ExtCk% � $SPoint%(6)="radiooff" : $SPoint%(7)="radioon" � $SPoint%(6)="radioon": $SPoint%(7)="radiooff"
�G           ș"Wimp_ForceRedraw",monW%,IX%(6),IY%(6),IX1%(6),IY1%(6)
�G           ș"Wimp_ForceRedraw",monW%,IX%(7),IY%(7),IX1%(7),IY1%(7)
�� 8   : OneS%=�(OneS%):�os
�� 10  : OneS%=�(OneS%):�os
�.� 3,11 : � i%=11 � Samples%=� � Samples%=�
	|           � Samples% � $SPoint%(11)="radioon" : $SPoint%(3)="radiooff" � $SPoint%(11)="radiooff": $SPoint%(3)="radioon"
	G           ș"Wimp_ForceRedraw",monW%,IX%(3),IY%(3),IX1%(3),IY1%(3)
	K           ș"Wimp_ForceRedraw",monW%,IX%(11),IY%(11),IX1%(11),IY1%(11)
	$           �analise
	.G� 12,13,14,15,16,17,18 : �roff(Xscale%):Xscale%=i%-12:�ron(Xscale%)
	8� 19  : DragOn%=�:Wd%=i%
	B)� 22,23,24,25,26,27,28,29 : �ttog(i%)
	L�
	V�
	`
	j� �_AdjClick
	tȎ i% �
	~� 0   : �measure(q%!0,q%!8)
	�(� 4   : Bpush%=� : Button%=4 : �doLC
	�            $SPoint%(4)="pup"
	�G           ș"Wimp_ForceRedraw",monW%,IX%(4),IY%(4),IX1%(4),IY1%(4)
	�.� 22,23,24,25,26,27,28,29 : AnC%=7-(i%-22)
	�/         $SPoint%(20)="Analyse Ch "+�(AnC%)
	�I         ș"Wimp_ForceRedraw",monW%,IX%(20),IY%(20),IX1%(20),IY1%(20)
	�         �analise
	��
	��
	�
	�� �push(T%,N%,c$)
	�0� T% � $SPoint%(N%)=c$ � $SPoint%(N%)="bout"
@ș"Wimp_ForceRedraw",monW%,IX%(N%),IY%(N%),IX1%(N%),IY1%(N%)

�

� �ttog(N%)
(� B%
2N%=N%-22
<B%=1<<(7-N%)
FTb%(7-N%)+=1
P� Tb%(7-N%)=3 � Tb%(7-N%)=0
ZȎ Tb%(7-N%) �
d"� 0: $SPoint%(N%+22)="lscopeZ"
n1                TrigB%=(TrigB% � �(B%)) � &FF
x&                TrigM%=TrigM% � B%
�"� 1: $SPoint%(N%+22)="lscope1"
�=                    TrigB%=TrigB% � B%:TrigM%=TrigM% � B%
�"� 2: $SPoint%(N%+22)="lscopex"
�1                TrigB%=(TrigB% � �(B%)) � &FF
�1                TrigM%=(TrigM% � �(B%)) � &FF
��
�!Tmask=TrigM%
�!Tbits=TrigB%
�Lș"Wimp_ForceRedraw",monW%,IX%(N%+22),IY%(N%+22),IX1%(N%+22),IY1%(N%+22)
�0� $SPoint%(21)=STR$(TrigB%)+" "+STR$(TrigM%)
�C� SYS"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
��
�
	� �os

� OneS% �
(�push(�,8,"binb"):�push(�,10,"bino")
"�rxs
,�analise
6�
@(�push(�,8,"binb"):�push(�,10,"bino")
J�
T�
^
h� �_Open
r� OPEN UP WINDOW HERE
|� wopen% �
�q%!0=monW%
�ș"Wimp_GetWindowState",,q%
�6  � q%!28<>-1 � q%!28=-1: ș "Wimp_OpenWindow",,q%
��
�ș "Wimp_OpenWindow",,Wn%
�wopen%=�
��
��
�
�� �_doWindow
�  � A%,I%,L%
�
�   �_Trans(monW%)
)   ș "Wimp_RedrawWindow",,q% � flag%
     ȕ flag%
     �drawscope
&     �drawcontrols
0+     ș "Wimp_GetRectangle",,q% � flag%
:
     �
D  
N  �
X
b� �_UpP(I%)
l� T%,A%,E%
vH  q%!0=monW%:q%!4=IX%(I%):q%!8=IY%(I%):q%!12=IX1%(I%):q%!16=IY1%(I%)
�'  ș"Wimp_UpdateWindow",,q% � More%
�
�
 ȕ More%
�  � Draw the window
�  �drawcontrols
�'  ș"Wimp_GetRectangle",,q% � More%
� �
�
��
�
�� �_Trans(wh%)
�!q%=wh%
� ș "Wimp_GetWindowState",,q%

&xo%=q%!4-q%!20:yo%=q%!16-q%!24-724

XO%=q%!4:YO%=q%!16

�

 

*��setupmenu

4� m%

>

H$menu%="LScope"

Rmenu%?12=7

\menu%?13=2

fmenu%?14=7

pmenu%?15=0

zmenu%!16=128

�menu%!20=40

�menu%!24=0

�m%=menu%+28

�
m%!0=0

�m%!4=info%

�m%!8=(7<<24)� %10001

�$(m%+12)="Info"

�

�
m%+=24

�
m%!0=0

�m%!4=saveW%

�m%!8=(7<<24)� %10001

�$(m%+12)="Save"


m%+=24

m%!0=0
$m%!4=rateM%
.m%!8=(7<<24)� %10001
8$(m%+12)="Rate"
B
L
m%+=24
Vm%!0=&80
`
m%!4=0
jm%!8=(7<<24)� %10001
t$(m%+12)="Quit"
~
�$rateM%="Sample"
�rateM%?12=7
�rateM%?13=2
�rateM%?14=7
�rateM%?15=0
�rateM%!16=128
�rateM%!20=40
�rateM%!24=0
�m%=rateM%+28
�
m%!0=1
�
m%!4=0
�m%!8=(7<<24)� %10001
$(m%+12)="2.5uS"



m%+=24

m%!0=0
(
m%!4=0
2m%!8=(7<<24)� %10001
<$(m%+12)="10uS"
F
P
m%+=24
Z
m%!0=0
d
m%!4=0
nm%!8=(7<<24)� %10001
x$(m%+12)="50uS"
�
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="100uS"
�
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="500uS"
�

m%+=24
m%!0=&80

m%!4=0
"m%!8=(7<<24)� %10001
,$(m%+12)="1mS"
6
@�
J
T� �receive(q%)
^� A%
hA%=q%!16
rȎ A% �
|� 0:�die
�2� 2:� q%!12=saveref% � fn$=�sget(q%+44):�_Save
�1� 3:� (q%!20=-2 � q%!20=monW%) � q%!40=&05E �
�        n$=�sget(q%+44)
�        �_Dack
�        �_LB(n$)
�       �
�� 5:� q%!40=&05E �
�*       n$=�sget(q%+44):�_Dack:�_LB(n$)
�       �
�
�-� &400C1: � wopen% � q%!0=monW% : �_close
�
�
� &502:   Ȏ � �
l             � q%!32=-2 � q%!36=smpicon%:mes$="This is the Oscilloscope icon.|MObserve analogue signals"
             :mes$=""
&             �
0    � mes$<>"" �
:    q%!12=q%!8
D    $(q%+20)=mes$+�0
N    q%!0=(20+�mes$+4)� � 3
X    q%!16=&503
b(    ș "Wimp_SendMessage",18,q%,q%!4
l�
v�
�
�� �_Dack
�sendth%=q%!4
�myref%=q%!8
�"ș "Wimp_GetPointerInfo",,q%+8
�q%!28=q%!8
�q%!32=q%!12
�q%!0=(44+�n$+4)� � 3
�q%!12=myref%
�q%!16=4
�q%!36=-1
�q%!40=&FF9
�$(q%+44)=n$+�0
'ș "Wimp_SendMessage",17,q%,sendth%
�
�
 
*� �_LB(S$)
4� ch%,A%,B%,Buf%
>ch%=�(S$):� ch%=0 � �#ch%:�
H.� !OddEven=0 � Buf%=Trace1% � Buf%=Trace2%
RA%=0
\�
fB%=�#ch%
pBuf%?A%=B%
z	A%+=1
�� �#ch% � A%=2753
�	�#ch%
��analise
��_PutName(S$)
�<ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
�
�_Open
��
�
�ݤsget(x%)
�� x$
�ȕ ?x% x$+=�(?x%):x%+=1:�
�=x$
�
� �iSave(i%)
� i%=0 �
,            ș "Wimp_GetPointerInfo",,q%
$.            �dragicon(q%!0,q%!4,saveW%,i%)
. �
8� i%=2 �
B �_GetName
LF � �fn$,":") � �_Save � �_setupW("Drag the Icon into a Directory")
V ș "Wimp_CreateMenu",,-1
`�
j�
t
~� �_Save
�� bufP%
�0� !OddEven=0 � BufP%=Trace1% � BufP%=Trace2%
�1�("SAVE "+fn$+" "+�~BufP%+" "+�~(BufP%+2752))
��("SETTYPE "+fn$+" 05E")
��_PutName(fn$)
��
�
�� �_PutName(p$)
�� T%
�q%!0=saveW%:q%!4=1
�ș "Wimp_GetIconState",,q%
�T%=q%!28

$T%=p$

!(T%+�(p$))=0
�

(
2
ݤicon
<q%!0=-1
F
q%!4=0
Pq%!8=10 : � Y DIRECTION
Zq%!12=70 : � X DIRECTION
dq%!16=96
nq%!20=&2002
x$(q%+24)="!lscope"
�$ș "Wimp_CreateIcon",,q% � icon%
�
=icon%
�
�� �_setupW(t$)
�X!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
�
warnOn%=�
�ș "Wimp_OpenWindow",,q%
��
�
�� �errorbox
ș "Wimp_DragBox",,-1
2!buffers%=�:$(buffers%+4)=�$+" at line "+Þ+�0
2ș "Wimp_ReportError",buffers%,1,"Logic Scope"
"�die
,�
6
@	��die
J*ș "Wimp_CloseDown",taskhand%,!taskid%
T�
^�
h
r.� �dragicon(mousex%,mousey%,handle%,icon%)
|!� bx%,by%,ix0%,iy0%,ix1%,iy1%
��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%=�
��
�
�� �info(p%)
�
� x0%,y0%
�'x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
�5scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
bx%=x0%-scx%:by%=y1%-scy%
�

&� �_DoSave
0"  ș "Wimp_GetPointerInfo",,q%
:$  �dragicon(q%!0,q%!4,saveW%,i%)
D�
N
X� �getw(handle%)
b!q%=handle%
l ș "Wimp_GetWindowState",,q%
v�info(q%+4)
��
�
�� �_PutDown(q%)
�� h%,i%
�#� SYS "Wimp_GetPointerInfo",,q%
�
�_GetName
� ș "Wimp_GetPointerInfo",,q%
�h%=q%!12:i%=q%!16
�#� � fn$,":") � fn$=�_spath(fn$)
�$(q%+44)=fn$
�?(q%+44+�(fn$))=0
�;q%!20=q%!12:q%!28=q%!0:q%!32=q%!4:q%!36=1024:q%!40=&FFC
�q%!0=56:q%!12=0:q%!16=1
%ș "Wimp_SendMessage",17,q%,h%,i%
saveref%=q%!8
ș "Wimp_CreateMenu",,-1
 �
*
4� �geti(h%,i%)
>-!q%=h%:q%!4=i%:ș "Wimp_GetIconState",,q%
H.ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
Riflags%=q%!24:idata%=q%+28
\�
f
p� �info(p%)
z
� x0%,y0%
�'x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
�5scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
�bx%=x0%-scx%:by%=y1%-scy%
��
�
�� �_KeyPress
�
Ȏ q%!0 �
�%� saveW% : � q%!24=13 � �iSave(2)
� : ș"Wimp_ProcessKey",q%!24
��
��
�
�� �Cinit
� A%,B%
� 21
� A%=0 � 2 � 2
$P%=Code%
.[
8
OPT A%
B.Xoff EQUD 0 \ X offset
L.Yoff EQUD 0  \ Y offset
V$.YoffS EQUD 0  \ Stored Y offset
`".Yscale EQUD 0  \ Y multiplier
j&.OddEven EQUD 1  \ Odd even buffer
t%.TrigL EQUD 128   \ Trigger level
~2.Fired EQUD 0      \ Zero if not Fired trigger
�0.BufP1 EQUD Trace1% \ Points to the buffer 1
�-.BufP2 EQUD Trace2%  \ Points to buffer 2
�(.Xscale EQUD 2        \ X multiplier
�2.Ndat   EQUD 1         \ Data byte incrementer
�).Bsize  EQUD 344        \ Buffer size
�9.Boff   EQUD 0           \ Buffer offset for X scroll
�?.Tsize  EQUD 30           \ Distance between 0 and 1 states
�-.Tbits  EQUD 0             \ Trigger bits
�..Tmask  EQUD 0              \ Trigger mask
�..Delay  EQUD 0               \ Delay value
�
�.Etrace
STMFD R13!,{R14}

LDR R12,Tsize
LDR R5,Yoff
LDR R6,Xoff
(
MOV R9,#0
2LDR R10,Xscale
<LDR R11,Ndat
FLDR R1,OddEven
P
TST R1,#1
ZLDRNE R7,BufP1
dLDREQ R7,BufP2
nLDR R2,Boff
xADD R7,R7,R2
�LDR R2,Bsize
�ADD R8,R7,R2
�
MOV R4,#0
�\ Set Grey to erase
�MOV R1,#&9900
�MOV R0,#&990000
��R R0,R0,R1
�MOV R1,#&99000000
��R R0,R0,R1
�"SWI &40744 \ Get Colour number
�
MOV R1,R0
�
MOV R0,#0
�SWI &61 \ OS_SetColour
.Nte
	BL DT
LDR R1,OddEven
"
TST R1,#1
,LDRNE R7,BufP1
6LDREQ R7,BufP2
@LDR R2,Boff
JADD R7,R7,R2
TLDR R2,Bsize
^
MOV R4,#0
hADD R5,R5,#56
rADD R9,R9,#1
|
TST R9,#8
�BEQ Nte
�LDMFD R13!, {PC} \ Return
�
�.Dtrace
�STMFD R13!,{R14}
�LDR R12,Tsize
�LDR R5,Yoff
�LDR R6,Xoff
�
MOV R9,#0
�LDR R10,Xscale
�LDR R11,Ndat
�LDR R1,OddEven
�
TST R1,#1
LDREQ R7,BufP1
LDRNE R7,BufP2
LDR R2,Boff
&ADD R7,R7,R2
0LDR R2,Bsize
:
MOV R4,#0
D\ Set Green to draw trace
NMOV R0,#&EE0000
X"SWI &40744 \ Get Colour number
b
MOV R1,R0
l
MOV R0,#0
vSWI &61 \ OS_SetColour
�.Nt
�	BL DT
�LDR R1,OddEven
�
TST R1,#1
�LDREQ R7,BufP1
�LDRNE R7,BufP2
�LDR R2,Boff
�ADD R7,R7,R2
�LDR R2,Bsize
�
MOV R4,#0
�ADD R5,R5,#56
�ADD R9,R9,#1
�
TST R9,#8

BEQ Nt
LDMFD R13!, {PC} \ Return

 .DT
*STMFD R13!,{R14}
4LDRB R3,[R7],R11
>MOV R3,R3,LSR R9
H�S R3,R3,#1
RADDNE R3,R3,R12
\MOV R0,#69 \ Point plot
fADD R2,R5,R3  \ Y value
pADD R1,R6,R4 \ X value
zSWI &45 \ � Plot
�ADD R1,R1,R10
�
MOV R0,#5
�SWI &45
�ADD R4,R4,R10
�
�	.Loop
�LDRB R3,[R7],R11
�MOV R3,R3,LSR R9
��S R3,R3,#1
�ADDNE R3,R3,R12
�MOV R0,#5 \ Line plot
�ADD R2,R5,R3  \ Y value
�ADD R1,R6,R4 \ X value
SWI &45 \ � Plot
ADD R1,R1,R10
"SWI &45 \ Plot Horizontal line
$%ADD R4,R4,R10 \ Increment X value
.CMP R4,#688
8BLT Loop
B-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
L
V.InputS
`STMFD R13!,{R14}
j\Make printer Port input
t
MOV R0,#2
~MOV R1,#&20
�MOV R2,#&DF
�!SWI &42EC1  \ Parallel output
�6MOV R10,#&10000 \ Number of looks before giving up
�
MOV R0,#0
�ADR R7,Fired
�+STR R0,[R7] \ Clear out fired indicator
�LDR R1,OddEven
�
TST R1,#1
�LDRNE R6,BufP2
�LDREQ R6,BufP1
�LDR R8,Bsize
�LDR R7,Tmask
LDR R5,Tbits

ADR R11,Delay

MOV R9,R15
(SWI "OS_EnterOS"
2)TEQP R15,#&C000003 \ DISABLE �ERRUPTS
<MOVNV R0,R0
F
P
MOV R0,#0
ZADR R11,Delay
d"TEQ R7,#0 \ Skip if no trigger
nBEQ Gather
x
.Ntrig
�SUBS R10,R10,#1
�BEQ Exit
�SWI &42EC1 \ Get trigger
�� R4,R1,R7
�
CMP R4,R5
�
BEQ Ntrig
�
�.Ntrig2
�SUBS R10,R10,#1
�BEQ Exit
�SWI &42EC1 \ Get trigger
�� R4,R1,R7
�
CMP R4,R5
BNE Ntrig2
B Sg
.Gather
"SWI &42EC1 \ Gete the data
,.Sg
6STRB R1,[R6],#1
@"LDR R7,[R11] \ Get Delay value
J
TEQ R7,#0
T
BEQ Nd
^.D1
h&SWI &42EC1 \ Dummy input for delay
rSUBS R7,R7,#1
|
BNE D1
�.Nd
�SUBS R8,R8,#1
�BNE Gather
�ADR R7,Fired
�1STR R6,[R7]   \Indicate data has been gatherd
�	.Exit
�TEQP R9,#0
�MOVNV R0,R0
�-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
�
�.InputE
�STMFD R13!,{R14}
�\Make printer Port input
 
MOV R0,#2
 MOV R1,#&20
 MOV R2,#&DF
 &!SWI &42EC1  \ Parallel output
 0,MOV R10,#&8000 \ Number before giving up
 :
MOV R0,#0
 DADR R7,Fired
 N+STR R0,[R7] \ Clear out fired indicator
 XLDR R1,OddEven
 b
TST R1,#1
 lLDRNE R6,BufP2
 vLDREQ R6,BufP1
 �LDR R8,Bsize
 �LDR R7,Tmask
 �LDR R5,Tbits
 �
 �MOV R9,R15
 �SWI "OS_EnterOS"
 �)TEQP R15,#&C000003 \ DISABLE �ERRUPTS
 �MOVNV R0,R0
 �
 �
MOV R0,#0
 �
MOV R0,#0
 �"TEQ R7,#0 \ Skip if no trigger
 �BEQ GatherE
!
!.NtrigE2
!SUBS R10,R10,#1
! 
BEQ ExitE
!*/SWI &42EC1 \ Look for not trigger condition
!4TST R2,#&80
!>BEQ NtrigE2
!H� R4,R1,R7
!R
CMP R4,R5
!\BEQ NtrigE2
!f
!p.NtrigE
!zSUBS R10,R10,#1
!�
BEQ ExitE
!�+SWI &42EC1 \ Look for trigger condition
!�TST R2,#&80
!�BEQ NtrigE
!�� R4,R1,R7
!�
CMP R4,R5
!�BNE NtrigE
!�
!�	B SgE
!�.GatherE
!�SWI &42EC1
!�TST R2,#&80
!�BEQ GatherE
".SgE
"STRB R1,[R6],#1
".HH
"$SWI &42EC1
".TST R2,#&80
"8
BNE HH
"BSUBS R8,R8,#1
"LBNE GatherE
"VADR R7,Fired
"`1STR R6,[R7]   \Indicate data has been gatherd
"j
.ExitE
"tTEQP R9,#0
"~MOVNV R0,R0
"�-LDMFD R13!, {PC} \ BACK FROM �ST YOU CAME
"�
"�]
"��
"��6
"�
"�	�memW
"�� A%=0 � 7
"�
Tb%(A%)=2
"��
"��ron(3)
"�
#� A%=0 � 5
#

� B%,C
#Srate%(A%)=B%-1
#
Tps(A%)=C
#(�
#24� 0,0.0025,4,0.01,20,0.05,40,0.1,200,0.5,400,1.0
#<�
#F
#P=� Make small adjustments to the size of icons for refresh
#Z� �adjustI
#d
#nIY%(0)+=56:IX%(0)+=98
#xIY1%(0)-=38:IX1%(0)-=38
#��
#�
#�� �memW
#�� A%=0 � 2752 � 4
#�Trace1%!A%=0
#�Trace2%!A%=0
#��
#�<ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
#��analise
#��
#�
#�� �_SSS
#�� Set up Slider Sprites
$SP%!0=SPr%
$SP%!8=16
$ș"OS_SpriteOp",9+256,SP%
$"4ș"OS_SpriteOp",11+256,SP%,"<LScope$Dir>.Slider"
$,#G4%?0=0:G4%?1=3:G4%?2=0:G4%?3=1
$6� A%=0 � 1024 � 4
$@G5%?A%=0
$JG5%?(A%+1)=A%
$TG5%?(A%+2)=A%
$^G5%?(A%+3)=A%
$h�
$r
Stt%=0
$|�tt
$��
$�
$�	� �tt
$�.ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%
$�\� Ncolours%=3 � Stt%=G4% � ș"ColourTrans_SelectTable",SP%,"slideh",-1,-1,G5%,0:Stt%=G5%
$��
$�
$�
� �rxs
$�Slide%(2)=0
$�!Boff=0
$�@ș"Wimp_ForceRedraw",monW%,IX%(19),IY%(19),IX1%(19),IY1%(19)
$��
$�
%� �ron(n%)
%� T%,A%
%
T%=!Bsize
%& Ȏ n% �
%02 � 0: !Xscale=1 :!Ndat=4 :!Bsize=2752  :NcL%=0
%:5 � 1: !Xscale=1 :!Ndat=2 :!Bsize=1376  :NcL%=1376
%D5 � 2: !Xscale=1 :!Ndat=1 :!Bsize=688   :NcL%=2064
%N5 � 3: !Xscale=2 :!Ndat=1 :!Bsize=344   :NcL%=2408
%X5 � 4: !Xscale=4 :!Ndat=1 :!Bsize=344   :NcL%=2580
%b5 � 5: !Xscale=8 :!Ndat=1 :!Bsize=344   :NcL%=2666
%l5 � 6: !Xscale=16:!Ndat=1 :!Bsize=344   :NcL%=2709
%v �
%�	 �rxs
%�
 �analise
%�= ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
%�
n%+=12
%�$SPoint%(n%)="radioon"
%�A ș"Wimp_ForceRedraw",monW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%)
%��
%�
%�� �roff(n%)
%�
n%+=12
%�$SPoint%(n%)="radiooff"
%�A ș"Wimp_ForceRedraw",monW%,IX%(n%),IY%(n%),IX1%(n%),IY1%(n%)
%��
&
&� �drawscope
&         ș"Wimp_SetColour",2
& !        ȓȐ xo%,yo%,1140,724
&*1� ((q%!40)>(yo%+214)) � ((q%!28)<(xo%+788)) �
&4         ș"Wimp_SetColour",3
&>(        ȓȐ xo%+100,yo%+218,684,474
&H         ș"Wimp_SetColour",0
&R        !Xoff=xo%+100
&\        !Yoff=yo%+SlideO%
&f        � Dtrace
&pd        � RefBut%=1 �ș"Wimp_SetColour",15:� RefPoint%+xo%+100,yo%+218,RefPoint%+xo%+100,yo%+694
&z �
&��
&�
&�
&�� �drawcontrols
&�@ș"OS_SpriteOp",52+256,SP%,"slideh",xo%+98,yo%+84,&18,0,Stt%
&�Lș"OS_SpriteOp",52+256,SP%,"slidetu",xo%+108+Slide%(2),yo%+86,&18,0,Stt%
&��
&�
&�� �refresh
&��_Trans(monW%)
&�        !Xoff=xo%+100
&�        !Yoff=yo%+SlideO%
&�         ș"Wimp_SetColour",9
'D  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
''  ș"Wimp_UpdateWindow",,q% � More%
'
'$
 ȕ More%
'.  � Draw the window
'8        � Etrace
'B        � Dtrace
'L'  ș"Wimp_GetRectangle",,q% � More%
'V �
'`�
'j
't� Just draw the trace
'~	� �jd
'��_Trans(monW%)
'�        !Xoff=xo%+100
'�        !Yoff=yo%+SlideO%
'�         ș"Wimp_SetColour",9
'�D  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
'�'  ș"Wimp_UpdateWindow",,q% � More%
'�
'�
 ȕ More%
'�        � Dtrace
'�f        � RefBut%<>0 � ș"Wimp_SetColour",15:� RefPoint%+xo%+100,yo%+218,RefPoint%+xo%+100,yo%+694
'�'  ș"Wimp_GetRectangle",,q% � More%
'� �
(�
(

(� Just erase the trace
(	� �je
((�_Trans(monW%)
(2        !Xoff=xo%+100
(<        !Yoff=yo%+SlideO%
(F         ș"Wimp_SetColour",9
(PD  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
(Z'  ș"Wimp_UpdateWindow",,q% � More%
(d
 ȕ More%
(n        � Etrace
(x'  ș"Wimp_GetRectangle",,q% � More%
(� �
(��
(�
(�
(�� �measure(Mx%,Mb%)
(�� X%,Y%,B%,t,d$
(�� PROC_Trans(wh%)
(�
� Mb%=1 �
(�� RefBut%=0 �
(��addRef(Mx%)
(� �
(�@    ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
(�    RefBut%=0
)    $SPoint%(21)="    "
)D    ș"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
) �
)"
 �analise
), �:ȗ X%,Y%,B%:� B%=0
)6 �
)@  � RefBut%=1 �
)J!   X%=(Mx%-xo%-102)-RefPoint%
)T   Y%=!Xscale
)^   � Y%>1 � Y%=Y%>>1
)h   t=(X%*((!Bsize)/688))/Y%
)r   d$=�(t*Msps)
)|   � �(d$)>6 � d$=�d$,6)
)�   $SPoint%(21)=d$
)�C   ș"Wimp_ForceRedraw",monW%,IX%(21),IY%(21),IX1%(21),IY1%(21)
)�  �
)�
   � 7
)�  �
)��
)�
)��
)�
)�� �addRef(Mx%)
)�� Y%
)�D  q%!0=monW%:q%!4=IX%(0):q%!8=IY%(0):q%!12=IX1%(0):q%!16=IY1%(0)
)�'  ș"Wimp_UpdateWindow",,q% � More%
*
 ȕ More%
*        ș"Wimp_SetColour",15
*$       � Mx%,yo%+218,Mx%,yo%+694
*&'  ș"Wimp_GetRectangle",,q% � More%
*0 �
*: RefPoint%=Mx%-xo%-102
*D RefBut%+=1
*N   Y%=!Xscale
*X   � Y%>1 � Y%=Y%>>1
*b,   RefOff%=(RefPoint%*((!Bsize)/688))/Y%
*l 
*v�
*�
*�� �analise
*�� p%,Byte%,B%,A%,C%,E%,Y%
*�+� point into buffer to take measurement
*�.� RefBut%<>0 � p%=!Boff+RefOff% � p%=!Boff
*�,� !OddEven = 0 � B%=Trace1% � B%=Trace2%
*�C%=((?(B%+p%))>>AnC%) � 1
*�.� C%=0 � $SPoint%(1)="0" � $SPoint%(1)="1"
*�<ș"Wimp_ForceRedraw",monW%,IX%(1),IY%(1),IX1%(1),IY1%(1)
*�	A%=p%
*��
*�E%=((?(A%+B%))>>AnC%) � 1
*�	A%+=1
+� E%<>C% � A%=2753
+9� A%=2753 � $SPoint%(9)="none":NextChange%=0 � �defNC
+<ș"Wimp_ForceRedraw",monW%,IX%(9),IY%(9),IX1%(9),IY1%(9)
+ �
+*
+4� �defNC
+>� d$
+HNextChange%=A%-1
+R� Samples% �
+\$SPoint%(9)=�(A%-p%-1)
+f�
+pd$=�((A%-1-p%)*Msps)
+z� �(d$)>6 � d$=�d$,6)
+�$SPoint%(9)=d$
+��
+��
+�
+�� �doNC
+�� Y%
+�� NextChange%=0 � � 7: �
+�� NextChange%<NcL% �
+�!OddEven = !OddEven � 1
+��je
+�@� RefBut%<>0 � !Boff=NextChange%-RefOff% � !Boff=NextChange%
+�!OddEven = !OddEven � 1
+��jd
,$Slide%(2)=394*(NextChange%/NcL%)
,
�_UpP(19)
,�
,$  � RefBut%=0 � RefBut%=1
,.   Y%=!Xscale
,8   � Y%>1 � Y%=Y%>>1
,BRefOff%=NextChange%-NcL%
,L'RefPoint%=(RefOff%*Y%)/(!Bsize/688)
,V!Boff=NcL%
,`Slide%(2)=394
,j
�_UpP(19)
,t<ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
,~�
,��analise
,��
,�
,�� �doLC
,�� Y%,A%
,�.� RefBut%<>0 � p%=!Boff+RefOff% � p%=!Boff
,�	p%-=1
,�� p%<1 � � 7:�
,�,� !OddEven = 0 � B%=Trace1% � B%=Trace2%
,�C%=((?(B%+p%))>>AnC%) � 1
,�A%=p%:E%=C%
,�ȕ A%>0 � E%=C%
-E%=((?(A%+B%))>>AnC%) � 1
-
	A%-=1
-�
-=� (A%>0 � RefBut%=0) � (RefBut%<>0 � (A%-RefOff%+1)>0 ) �
-(!OddEven = !OddEven � 1
-2�je
-<2� RefBut%<>0 � !Boff=A%-RefOff%+2 � !Boff=A%+2
-F!OddEven = !OddEven � 1
-P�jd
-ZSlide%(2)=394*(A%/NcL%)
-d
�_UpP(19)
-n�
-x  � RefBut%<>0 � A%>0 �
-�   Y%=!Xscale
-�   � Y%>1 � Y%=Y%>>1
-�   RefOff%=A%+2
-�*   RefPoint%=(RefOff%*Y%)/(!Bsize/688)
-�   !Boff=0
-�   Slide%(2)=0
-�   �_UpP(19)
-�?   ș"Wimp_ForceRedraw",monW%,IX%(0),IY%(0),IX1%(0),IY1%(0)
-�   �
-�
   � 7
-�  �
-��
-��analise
.�
�
00000000  0d 00 0a 12 f4 3e 4f 73  63 69 6c 6c 6f 73 63 6f  |.....>Oscillosco|
00000010  70 65 0d 00 14 1e f4 20  56 65 72 73 69 6f 6e 20  |pe..... Version |
00000020  31 2e 30 20 42 79 20 4d  69 6b 65 20 43 6f 6f 6b  |1.0 By Mike Cook|
00000030  0d 00 1e 19 f4 20 41 6c  6c 20 72 69 67 68 74 73  |..... All rights|
00000040  20 72 65 73 65 72 76 65  64 0d 00 28 04 0d 00 32  | reserved..(...2|
00000050  11 ee 20 85 20 f2 65 72  72 6f 72 62 6f 78 0d 00  |.. . .errorbox..|
00000060  3c 2b de 20 74 61 73 6b  69 64 25 20 38 2c 69 6e  |<+. taskid% 8,in|
00000070  74 6d 65 73 73 25 20 32  30 3a 24 74 61 73 6b 69  |tmess% 20:$taski|
00000080  64 25 3d 22 54 41 53 4b  22 0d 00 46 49 69 6e 74  |d%="TASK"..FIint|
00000090  6d 65 73 73 25 21 30 3d  31 3a 69 6e 74 6d 65 73  |mess%!0=1:intmes|
000000a0  73 25 21 34 3d 32 3a 69  6e 74 6d 65 73 73 25 21  |s%!4=2:intmess%!|
000000b0  38 3d 33 3a 69 6e 74 6d  65 73 73 25 21 31 32 3d  |8=3:intmess%!12=|
000000c0  26 35 30 32 3a 69 6e 74  6d 65 73 73 25 21 31 36  |&502:intmess%!16|
000000d0  3d 30 0d 00 50 51 c8 99  20 22 57 69 6d 70 5f 49  |=0..PQ.. "Wimp_I|
000000e0  6e 69 74 69 61 6c 69 73  65 22 2c 33 30 30 2c 21  |nitialise",300,!|
000000f0  74 61 73 6b 69 64 25 2c  22 4c 6f 67 69 63 5f 73  |taskid%,"Logic_s|
00000100  63 6f 70 65 22 2c 69 6e  74 6d 65 73 73 25 20 b8  |cope",intmess% .|
00000110  20 76 65 72 73 69 6f 6e  25 2c 74 61 73 6b 68 61  | version%,taskha|
00000120  6e 64 25 0d 00 5a 4a de  20 71 25 20 35 31 32 2c  |nd%..ZJ. q% 512,|
00000130  20 57 6e 25 20 32 32 30  34 2c 74 65 6d 70 25 20  | Wn% 2204,temp% |
00000140  36 31 32 2c 62 75 66 66  65 72 73 25 20 35 31 32  |612,buffers% 512|
00000150  2c 6d 65 6e 75 25 20 32  35 36 2c 53 57 25 20 32  |,menu% 256,SW% 2|
00000160  32 30 34 2c 20 49 66 6f  25 20 36 31 36 0d 00 64  |204, Ifo% 616..d|
00000170  40 de 20 49 73 4e 61 6d  65 25 20 32 38 30 2c 20  |@. IsName% 280, |
00000180  54 65 78 74 57 61 72 6e  25 20 32 35 36 2c 20 77  |TextWarn% 256, w|
00000190  77 25 20 35 31 32 2c 20  43 6f 64 65 25 20 26 37  |w% 512, Code% &7|
000001a0  30 30 2c 72 61 74 65 4d  25 20 32 35 36 0d 00 6e  |00,rateM% 256..n|
000001b0  16 4e 69 25 3d 32 39 20  3a 53 50 72 25 3d 31 31  |.Ni%=29 :SPr%=11|
000001c0  30 30 30 0d 00 78 47 de  20 53 50 25 20 53 50 72  |000..xG. SP% SPr|
000001d0  25 2c 20 47 35 25 20 31  30 32 34 2c 20 47 34 25  |%, G5% 1024, G4%|
000001e0  20 31 36 2c 20 54 62 25  28 37 29 2c 49 73 4e 61  | 16, Tb%(7),IsNa|
000001f0  6d 65 25 20 32 35 36 2c  20 53 72 61 74 65 25 28  |me% 256, Srate%(|
00000200  35 29 2c 20 54 70 73 28  35 29 0d 00 82 38 de 20  |5), Tps(5)...8. |
00000210  53 50 6f 69 6e 74 25 28  4e 69 25 29 2c 49 58 25  |SPoint%(Ni%),IX%|
00000220  28 4e 69 25 29 2c 49 59  25 28 4e 69 25 29 2c 49  |(Ni%),IY%(Ni%),I|
00000230  58 31 25 28 4e 69 25 29  2c 49 59 31 25 28 4e 69  |X1%(Ni%),IY1%(Ni|
00000240  25 29 0d 00 8c 2a de 20  53 6c 69 64 65 25 28 32  |%)...*. Slide%(2|
00000250  29 2c 20 54 72 61 63 65  31 25 20 32 37 35 32 2c  |), Trace1% 2752,|
00000260  54 72 61 63 65 32 25 20  32 37 35 32 0d 00 96 04  |Trace2% 2752....|
00000270  0d 00 a0 34 c8 99 20 22  57 69 6d 70 5f 4f 70 65  |...4.. "Wimp_Ope|
00000280  6e 54 65 6d 70 6c 61 74  65 22 2c 2c 22 3c 4c 53  |nTemplate",,"<LS|
00000290  63 6f 70 65 24 44 69 72  3e 2e 54 65 6d 70 6c 61  |cope$Dir>.Templa|
000002a0  74 65 73 22 0d 00 aa 29  ee 20 85 20 c8 99 20 22  |tes"...). . .. "|
000002b0  57 69 6d 70 5f 43 6c 6f  73 65 54 65 6d 70 6c 61  |Wimp_CloseTempla|
000002c0  74 65 22 3a f2 65 72 72  6f 72 62 6f 78 0d 00 b4  |te":.errorbox...|
000002d0  04 0d 00 be 47 c8 99 20  22 57 69 6d 70 5f 4c 6f  |....G.. "Wimp_Lo|
000002e0  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 71 25 2c  |adTemplate",,q%,|
000002f0  49 73 4e 61 6d 65 25 2b  34 2c 49 73 4e 61 6d 65  |IsName%+4,IsName|
00000300  25 2b 32 38 30 2c 2d 31  2c 22 73 61 76 65 5f 73  |%+280,-1,"save_s|
00000310  63 72 69 70 74 22 2c 30  0d 00 c8 27 c8 99 20 22  |cript",0...'.. "|
00000320  57 69 6d 70 5f 43 72 65  61 74 65 57 69 6e 64 6f  |Wimp_CreateWindo|
00000330  77 22 2c 2c 71 25 20 b8  20 73 61 76 65 57 25 0d  |w",,q% . saveW%.|
00000340  00 d2 14 49 73 4e 61 6d  65 25 21 30 3d 73 61 76  |...IsName%!0=sav|
00000350  65 57 25 0d 00 dc 04 0d  00 e6 3b c8 99 20 22 57  |eW%.......;.. "W|
00000360  69 6d 70 5f 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |imp_LoadTemplate|
00000370  22 2c 2c 57 6e 25 2b 34  2c 53 57 25 2c 53 57 25  |",,Wn%+4,SW%,SW%|
00000380  2b 32 32 30 34 2c 2d 31  2c 22 53 63 6f 70 65 22  |+2204,-1,"Scope"|
00000390  2c 30 0d 00 f0 29 c8 99  20 22 57 69 6d 70 5f 43  |,0...).. "Wimp_C|
000003a0  72 65 61 74 65 57 69 6e  64 6f 77 22 2c 2c 57 6e  |reateWindow",,Wn|
000003b0  25 2b 34 20 b8 20 6d 6f  6e 57 25 0d 00 fa 04 0d  |%+4 . monW%.....|
000003c0  01 04 19 57 6e 25 21 30  3d 6d 6f 6e 57 25 3a 57  |...Wn%!0=monW%:W|
000003d0  6e 25 21 32 38 3d 2d 31  0d 01 0e 10 e3 20 41 25  |n%!28=-1..... A%|
000003e0  3d 30 20 b8 20 4e 69 25  0d 01 18 24 53 50 6f 69  |=0 . Ni%...$SPoi|
000003f0  6e 74 25 28 41 25 29 3d  21 28 57 6e 25 2b 34 2b  |nt%(A%)=!(Wn%+4+|
00000400  38 38 2b 32 30 2b 33 32  2a 41 25 29 0d 01 22 39  |88+20+32*A%).."9|
00000410  49 58 25 28 41 25 29 3d  21 28 57 6e 25 2b 34 2b  |IX%(A%)=!(Wn%+4+|
00000420  38 38 2b 33 32 2a 41 25  29 3a 49 59 25 28 41 25  |88+32*A%):IY%(A%|
00000430  29 3d 21 28 57 6e 25 2b  34 2b 38 38 2b 34 2b 33  |)=!(Wn%+4+88+4+3|
00000440  32 2a 41 25 29 0d 01 2c  3e 49 58 31 25 28 41 25  |2*A%)..,>IX1%(A%|
00000450  29 3d 21 28 57 6e 25 2b  34 2b 38 38 2b 38 2b 33  |)=!(Wn%+4+88+8+3|
00000460  32 2a 41 25 29 3a 49 59  31 25 28 41 25 29 3d 21  |2*A%):IY1%(A%)=!|
00000470  28 57 6e 25 2b 34 2b 38  38 2b 31 32 2b 33 32 2a  |(Wn%+4+88+12+32*|
00000480  41 25 29 0d 01 36 05 ed  0d 01 40 04 0d 01 4a 3e  |A%)..6....@...J>|
00000490  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
000004a0  70 6c 61 74 65 22 2c 2c  49 66 6f 25 2b 34 2c 74  |plate",,Ifo%+4,t|
000004b0  65 6d 70 25 2c 74 65 6d  70 25 2b 36 31 32 2c 2d  |emp%,temp%+612,-|
000004c0  31 2c 22 49 6e 66 6f 22  2c 30 0d 01 54 2a c8 99  |1,"Info",0..T*..|
000004d0  20 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  | "Wimp_CreateWin|
000004e0  64 6f 77 22 2c 2c 49 66  6f 25 2b 34 20 b8 20 69  |dow",,Ifo%+4 . i|
000004f0  6e 66 6f 25 0d 01 5e 10  49 66 6f 25 21 30 3d 69  |nfo%..^.Ifo%!0=i|
00000500  6e 66 6f 25 0d 01 68 04  0d 01 72 39 c8 99 20 22  |nfo%..h...r9.. "|
00000510  57 69 6d 70 5f 4c 6f 61  64 54 65 6d 70 6c 61 74  |Wimp_LoadTemplat|
00000520  65 22 2c 2c 71 25 2c 77  77 25 2c 77 77 25 2b 35  |e",,q%,ww%,ww%+5|
00000530  31 32 2c 2d 31 2c 22 57  61 72 6e 69 6e 67 22 2c  |12,-1,"Warning",|
00000540  30 0d 01 7c 14 71 25 21  31 30 38 3d 54 65 78 74  |0..|.q%!108=Text|
00000550  57 61 72 6e 25 0d 01 86  18 71 25 21 31 31 32 3d  |Warn%....q%!112=|
00000560  2d 31 3a 71 25 21 31 31  36 3d 33 30 30 0d 01 90  |-1:q%!116=300...|
00000570  20 58 51 25 3d 71 25 21  38 2d 71 25 21 30 3a 59  | XQ%=q%!8-q%!0:Y|
00000580  51 25 3d 71 25 21 31 32  2d 71 25 21 34 0d 01 9a  |Q%=q%!12-q%!4...|
00000590  2a c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |*.. "Wimp_Create|
000005a0  57 69 6e 64 6f 77 22 2c  2c 71 25 20 b8 20 77 61  |Window",,q% . wa|
000005b0  72 6e 69 6e 67 57 25 0d  01 a4 1b c8 99 20 22 57  |rningW%...... "W|
000005c0  69 6d 70 5f 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |imp_CloseTemplat|
000005d0  65 22 0d 01 ae 04 0d 01  b8 11 ee 20 85 20 f2 65  |e"......... . .e|
000005e0  72 72 6f 72 62 6f 78 0d  01 c2 04 0d 01 cc 46 f4  |rrorbox.......F.|
000005f0  20 43 61 6c 61 62 72 61  74 69 6f 6e 20 2d 20 54  | Calabration - T|
00000600  69 6d 65 20 66 6f 72 20  6f 6e 65 20 73 61 6d 70  |ime for one samp|
00000610  6c 65 20 69 6e 20 6d 53  20 4d 69 6c 6c 69 20 53  |le in mS Milli S|
00000620  65 63 6f 6e 64 73 20 50  65 72 20 53 61 6d 70 6c  |econds Per Sampl|
00000630  65 0d 01 d6 0f 4d 73 70  73 3d 30 2e 30 30 32 35  |e....Msps=0.0025|
00000640  0d 01 e0 14 72 65 66 25  3d 30 3a 44 72 61 67 4f  |....ref%=0:DragO|
00000650  6e 25 3d a3 0d 01 ea 25  63 70 4c 25 3d 30 3a 63  |n%=....%cpL%=0:c|
00000660  70 52 25 3d 30 3a 45 78  74 43 6b 25 3d a3 3a 53  |pR%=0:ExtCk%=.:S|
00000670  61 6d 70 6c 65 73 25 3d  b9 0d 01 f4 12 41 6e 25  |amples%=.....An%|
00000680  3d 30 3a 4e 65 78 74 54  25 3d 30 0d 01 fe 1d 41  |=0:NextT%=0....A|
00000690  72 6d 25 3d a3 3a 4f 6e  65 53 25 3d b9 3a 53 74  |rm%=.:OneS%=.:St|
000006a0  6f 72 65 64 54 25 3d a3  0d 02 08 25 73 6d 70 69  |oredT%=....%smpi|
000006b0  63 6f 6e 25 3d a4 69 63  6f 6e 3a 58 73 63 61 6c  |con%=.icon:Xscal|
000006c0  65 25 3d 33 3a 42 70 75  73 68 25 3d a3 0d 02 12  |e%=3:Bpush%=....|
000006d0  16 77 6f 70 65 6e 25 3d  a3 3a 77 61 72 6e 4f 6e  |.wopen%=.:warnOn|
000006e0  25 3d a3 0d 02 1c 0f 53  6c 69 64 65 4f 25 3d 32  |%=.....SlideO%=2|
000006f0  34 36 0d 02 26 11 4e 65  78 74 43 68 61 6e 67 65  |46..&.NextChange|
00000700  25 3d 30 0d 02 30 11 4c  59 25 3d 2d 31 3a 4c 58  |%=0..0.LY%=-1:LX|
00000710  25 3d 2d 31 0d 02 3a 09  54 53 25 3d 33 0d 02 44  |%=-1..:.TS%=3..D|
00000720  23 52 65 66 42 75 74 25  3d 30 3a 52 65 66 50 6f  |#RefBut%=0:RefPo|
00000730  69 6e 74 25 3d 30 3a 52  65 66 4f 66 66 25 3d 30  |int%=0:RefOff%=0|
00000740  0d 02 4e 14 41 6e 43 25  3d 30 3a 4e 63 4c 25 3d  |..N.AnC%=0:NcL%=|
00000750  32 34 30 38 0d 02 58 15  54 72 69 67 4d 25 3d 30  |2408..X.TrigM%=0|
00000760  3a 54 72 69 67 42 25 3d  30 0d 02 62 04 0d 02 6c  |:TrigB%=0..b...l|
00000770  0e f2 73 65 74 75 70 6d  65 6e 75 0d 02 76 09 f2  |..setupmenu..v..|
00000780  5f 53 53 53 0d 02 80 0c  f2 61 64 6a 75 73 74 49  |_SSS.....adjustI|
00000790  0d 02 8a 0a f2 43 69 6e  69 74 0d 02 94 15 f2 5f  |.....Cinit....._|
000007a0  50 75 74 4e 61 6d 65 28  22 42 69 74 73 22 29 0d  |PutName("Bits").|
000007b0  02 9e 04 0d 02 a8 05 f5  0d 02 b2 1d 20 c8 99 20  |............ .. |
000007c0  22 57 69 6d 70 5f 50 6f  6c 6c 22 2c 30 2c 71 25  |"Wimp_Poll",0,q%|
000007d0  20 b8 20 41 25 0d 02 bc  0d 20 20 c8 8e 20 41 25  | . A%....  .. A%|
000007e0  20 ca 0d 02 c6 11 20 20  20 c9 20 30 3a f2 5f 4e  | .....   . 0:._N|
000007f0  75 6c 6c 0d 02 d0 15 20  20 20 c9 20 31 3a f2 5f  |ull....   . 1:._|
00000800  64 6f 57 69 6e 64 6f 77  0d 02 da 31 20 20 20 c9  |doWindow...1   .|
00000810  20 32 3a c8 99 20 22 57  69 6d 70 5f 4f 70 65 6e  | 2:.. "Wimp_Open|
00000820  57 69 6e 64 6f 77 22 2c  2c 71 25 20 3a 77 6f 70  |Window",,q% :wop|
00000830  65 6e 25 3d b9 3a f2 74  74 0d 02 e4 12 20 20 20  |en%=.:.tt....   |
00000840  c9 20 33 3a f2 5f 63 6c  6f 73 65 0d 02 ee 19 20  |. 3:._close.... |
00000850  20 20 c9 20 36 3a f2 5f  64 6f 5f 63 6c 69 63 6b  |  . 6:._do_click|
00000860  28 71 25 29 0d 02 f8 18  20 20 20 c9 20 37 3a f2  |(q%)....   . 7:.|
00000870  5f 50 75 74 44 6f 77 6e  28 71 25 29 0d 03 02 15  |_PutDown(q%)....|
00000880  20 20 20 c9 20 38 3a f2  5f 4b 65 79 50 72 65 73  |   . 8:._KeyPres|
00000890  73 0d 03 0c 16 20 20 20  c9 20 39 3a f2 5f 53 4f  |s....   . 9:._SO|
000008a0  52 54 5f 4d 65 6e 75 0d  03 16 1b 20 20 20 c9 20  |RT_Menu....   . |
000008b0  31 37 2c 31 38 3a f2 72  65 63 65 69 76 65 28 71  |17,18:.receive(q|
000008c0  25 29 0d 03 20 08 20 20  20 cb 0d 03 2a 08 20 fd  |%).. .   ...*. .|
000008d0  20 a3 0d 03 34 04 0d 03  3e 05 e0 0d 03 48 04 0d  | ...4...>....H..|
000008e0  03 52 0c dd 20 f2 5f 4e  75 6c 6c 0d 03 5c 17 ea  |.R.. ._Null..\..|
000008f0  20 41 25 2c 42 25 2c 43  25 2c 58 25 2c 59 25 2c  | A%,B%,C%,X%,Y%,|
00000900  54 25 0d 03 66 0f c8 97  20 58 25 2c 59 25 2c 42  |T%..f... X%,Y%,B|
00000910  25 0d 03 70 15 e7 20 42  70 75 73 68 25 20 80 20  |%..p.. Bpush% . |
00000920  42 25 3d 30 20 8c 0d 03  7a 0c 42 70 75 73 68 25  |B%=0 ...z.Bpush%|
00000930  3d a3 0d 03 84 10 c8 8e  20 42 75 74 74 6f 6e 25  |=....... Button%|
00000940  20 ca 0d 03 8e 1a c9 20  34 20 3a 20 24 53 50 6f  | ...... 4 : $SPo|
00000950  69 6e 74 25 28 34 29 3d  22 75 70 22 0d 03 98 20  |int%(4)="up"... |
00000960  c9 20 35 20 3a 20 24 53  50 6f 69 6e 74 25 28 35  |. 5 : $SPoint%(5|
00000970  29 3d 22 72 61 64 69 6f  6f 66 66 22 0d 03 a2 05  |)="radiooff"....|
00000980  cb 0d 03 ac 54 c8 99 22  57 69 6d 70 5f 46 6f 72  |....T.."Wimp_For|
00000990  63 65 52 65 64 72 61 77  22 2c 6d 6f 6e 57 25 2c  |ceRedraw",monW%,|
000009a0  49 58 25 28 42 75 74 74  6f 6e 25 29 2c 49 59 25  |IX%(Button%),IY%|
000009b0  28 42 75 74 74 6f 6e 25  29 2c 49 58 31 25 28 42  |(Button%),IX1%(B|
000009c0  75 74 74 6f 6e 25 29 2c  49 59 31 25 28 42 75 74  |utton%),IY1%(But|
000009d0  74 6f 6e 25 29 0d 03 b6  05 cd 0d 03 c0 0f e7 20  |ton%).......... |
000009e0  44 72 61 67 4f 6e 25 20  8c 0d 03 ca 12 f2 5f 54  |DragOn% ......_T|
000009f0  72 61 6e 73 28 6d 6f 6e  57 25 29 0d 03 d4 0f c8  |rans(monW%).....|
00000a00  97 20 58 25 2c 59 25 2c  42 25 0d 03 de 10 20 e7  |. X%,Y%,B%.... .|
00000a10  20 58 25 3c 3e 4c 58 25  20 8c 0d 03 e8 0c 20 20  | X%<>LX% .....  |
00000a20  4c 59 25 3d 59 25 0d 03  f2 0c 20 20 4c 58 25 3d  |LY%=Y%....  LX%=|
00000a30  58 25 0d 03 fc 0e 20 20  43 25 3d 57 64 25 2d 34  |X%....  C%=Wd%-4|
00000a40  0d 04 06 0a 20 20 43 25  3d 32 0d 04 10 20 20 20  |....  C%=2...   |
00000a50  53 6c 69 64 65 25 28 43  25 29 3d 58 25 2d 28 78  |Slide%(C%)=X%-(x|
00000a60  6f 25 2b 31 30 38 29 2d  31 32 0d 04 1a 27 20 20  |o%+108)-12...'  |
00000a70  e7 20 53 6c 69 64 65 25  28 43 25 29 3e 33 39 34  |. Slide%(C%)>394|
00000a80  20 8c 20 53 6c 69 64 65  25 28 43 25 29 3d 33 39  | . Slide%(C%)=39|
00000a90  34 0d 04 24 23 20 20 e7  20 53 6c 69 64 65 25 28  |4..$#  . Slide%(|
00000aa0  43 25 29 3c 30 20 8c 20  53 6c 69 64 65 25 28 43  |C%)<0 . Slide%(C|
00000ab0  25 29 3d 30 0d 04 2e 10  20 20 f2 5f 55 70 50 28  |%)=0....  ._UpP(|
00000ac0  57 64 25 29 0d 04 38 1d  20 20 21 4f 64 64 45 76  |Wd%)..8.  !OddEv|
00000ad0  65 6e 20 3d 20 21 4f 64  64 45 76 65 6e 20 82 20  |en = !OddEven . |
00000ae0  31 0d 04 42 09 20 20 f2  6a 65 0d 04 4c 22 20 20  |1..B.  .je..L"  |
00000af0  21 42 6f 66 66 3d 4e 63  4c 25 2a 28 53 6c 69 64  |!Boff=NcL%*(Slid|
00000b00  65 25 28 32 29 2f 33 39  34 2e 30 29 0d 04 56 1d  |e%(2)/394.0)..V.|
00000b10  20 20 21 4f 64 64 45 76  65 6e 20 3d 20 21 4f 64  |  !OddEven = !Od|
00000b20  64 45 76 65 6e 20 82 20  31 0d 04 60 09 20 20 f2  |dEven . 1..`.  .|
00000b30  6a 64 0d 04 6a 0e 20 20  f2 61 6e 61 6c 69 73 65  |jd..j.  .analise|
00000b40  0d 04 74 06 20 cd 0d 04  7e 1d e7 20 42 25 3d 30  |..t. ...~.. B%=0|
00000b50  20 8c 20 44 72 61 67 4f  6e 25 3d a3 3a 4c 59 25  | . DragOn%=.:LY%|
00000b60  3d 2d 31 0d 04 88 05 cd  0d 04 92 04 0d 04 9c 29  |=-1............)|
00000b70  e7 20 91 3e 4e 65 78 74  54 25 20 80 20 77 6f 70  |. .>NextT% . wop|
00000b80  65 6e 25 20 80 20 4f 6e  65 53 25 3d a3 20 8c 20  |en% . OneS%=. . |
00000b90  f2 53 63 61 6e 0d 04 a6  15 e7 20 77 6f 70 65 6e  |.Scan..... wopen|
00000ba0  25 20 80 20 41 72 6d 25  20 8c 0d 04 b0 09 f2 53  |% . Arm% ......S|
00000bb0  63 61 6e 0d 04 ba 12 20  e7 20 21 46 69 72 65 64  |can.... . !Fired|
00000bc0  3c 3e 30 20 8c 0d 04 c4  0b 20 41 72 6d 25 3d a3  |<>0 ..... Arm%=.|
00000bd0  0d 04 ce 19 20 f2 70 75  73 68 28 41 72 6d 25 2c  |.... .push(Arm%,|
00000be0  32 2c 22 62 69 6e 67 22  29 0d 04 d8 0d 20 f2 61  |2,"bing").... .a|
00000bf0  6e 61 6c 69 73 65 0d 04  e2 06 20 cd 0d 04 ec 05  |nalise.... .....|
00000c00  cd 0d 04 f6 04 0d 05 00  05 e1 0d 05 0a 04 0d 05  |................|
00000c10  14 0b dd 20 f2 53 63 61  6e 0d 05 1e 52 e7 20 53  |... .Scan...R. S|
00000c20  6c 69 64 65 25 28 32 29  3c 3e 30 20 8c 20 f2 72  |lide%(2)<>0 . .r|
00000c30  78 73 3a c8 99 22 57 69  6d 70 5f 46 6f 72 63 65  |xs:.."Wimp_Force|
00000c40  52 65 64 72 61 77 22 2c  6d 6f 6e 57 25 2c 49 58  |Redraw",monW%,IX|
00000c50  25 28 30 29 2c 49 59 25  28 30 29 2c 49 58 31 25  |%(0),IY%(0),IX1%|
00000c60  28 30 29 2c 49 59 31 25  28 30 29 0d 05 28 2b e7  |(0),IY1%(0)..(+.|
00000c70  20 21 42 73 69 7a 65 3c  38 30 30 20 8c 20 4e 65  | !Bsize<800 . Ne|
00000c80  78 74 54 25 3d 91 2b 35  20 8b 20 4e 65 78 74 54  |xtT%=.+5 . NextT|
00000c90  25 3d 91 2b 32 30 0d 05  32 1b 21 4f 64 64 45 76  |%=.+20..2.!OddEv|
00000ca0  65 6e 20 3d 20 21 4f 64  64 45 76 65 6e 20 82 20  |en = !OddEven . |
00000cb0  31 0d 05 3c 22 e7 20 45  78 74 43 6b 25 20 8c 20  |1..<". ExtCk% . |
00000cc0  d6 20 49 6e 70 75 74 45  20 8b 20 d6 20 49 6e 70  |. InputE . . Inp|
00000cd0  75 74 53 0d 05 46 34 e7  20 21 46 69 72 65 64 3c  |utS..F4. !Fired<|
00000ce0  3e 30 20 8c 20 f2 72 65  66 72 65 73 68 20 8b 20  |>0 . .refresh . |
00000cf0  21 4f 64 64 45 76 65 6e  20 3d 20 21 4f 64 64 45  |!OddEven = !OddE|
00000d00  76 65 6e 20 82 20 31 0d  05 50 05 e1 0d 05 5a 04  |ven . 1..P....Z.|
00000d10  0d 05 64 11 dd 20 a4 5f  73 70 61 74 68 28 6e 24  |..d.. ._spath(n$|
00000d20  29 0d 05 6e 0f c8 95 20  a7 6e 24 2c 22 2e 22 29  |)..n... .n$,".")|
00000d30  0d 05 78 13 6e 24 3d c2  6e 24 2c a9 28 6e 24 29  |..x.n$=.n$,.(n$)|
00000d40  2d 31 29 0d 05 82 05 ce  0d 05 8c 1b e7 20 a9 28  |-1).......... .(|
00000d50  6e 24 29 3e 31 30 20 8c  20 6e 24 3d c2 6e 24 2c  |n$)>10 . n$=.n$,|
00000d60  31 30 29 0d 05 96 07 3d  6e 24 0d 05 a0 04 0d 05  |10)....=n$......|
00000d70  aa 0f dd 20 f2 5f 47 65  74 4e 61 6d 65 0d 05 b4  |... ._GetName...|
00000d80  0e ea 20 54 25 2c 41 25  2c 46 24 0d 05 be 10 46  |.. T%,A%,F$....F|
00000d90  24 3d 22 22 3a 66 6e 24  3d 22 22 0d 05 c8 16 71  |$="":fn$=""....q|
00000da0  25 21 30 3d 73 61 76 65  57 25 3a 71 25 21 34 3d  |%!0=saveW%:q%!4=|
00000db0  31 0d 05 d2 1e c8 99 20  22 57 69 6d 70 5f 47 65  |1...... "Wimp_Ge|
00000dc0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 71 25 0d  |tIconState",,q%.|
00000dd0  05 dc 0c 54 25 3d 71 25  21 32 38 0d 05 e6 09 54  |...T%=q%!28....T|
00000de0  25 2d 3d 31 0d 05 f0 05  f5 0d 05 fa 09 54 25 2b  |%-=1.........T%+|
00000df0  3d 31 0d 06 04 10 46 24  3d 46 24 2b bd 28 3f 54  |=1....F$=F$+.(?T|
00000e00  25 29 0d 06 0e 0b fd 20  3f 54 25 3d 30 0d 06 18  |%)..... ?T%=0...|
00000e10  16 66 6e 24 3d c1 46 24  2c 31 2c a9 28 46 24 29  |.fn$=.F$,1,.(F$)|
00000e20  2d 31 29 0d 06 22 05 e1  0d 06 2c 04 0d 06 36 11  |-1).."....,...6.|
00000e30  dd 20 f2 5f 53 4f 52 54  5f 4d 65 6e 75 0d 06 40  |. ._SORT_Menu..@|
00000e40  0c c8 8e 20 21 71 25 20  ca 0d 06 4a 33 c9 20 32  |... !q% ...J3. 2|
00000e50  3a 20 f2 5f 4d 74 69 63  6b 28 71 25 21 34 2c 36  |: ._Mtick(q%!4,6|
00000e60  2c 72 61 74 65 4d 25 29  3a 21 44 65 6c 61 79 3d  |,rateM%):!Delay=|
00000e70  53 72 61 74 65 25 28 71  25 21 34 29 0d 06 54 1a  |Srate%(q%!4)..T.|
00000e80  20 20 20 20 20 20 20 20  4d 73 70 73 3d 54 70 73  |        Msps=Tps|
00000e90  28 71 25 21 34 29 0d 06  5e 0d c9 20 33 3a 20 f2  |(q%!4)..^.. 3: .|
00000ea0  64 69 65 0d 06 68 05 cb  0d 06 72 05 e1 0d 06 7c  |die..h....r....||
00000eb0  04 0d 06 86 18 dd 20 f2  5f 4d 74 69 63 6b 28 6e  |...... ._Mtick(n|
00000ec0  25 2c 6e 69 25 2c 6d 25  29 0d 06 90 0b ea 20 41  |%,ni%,m%)..... A|
00000ed0  25 2c 42 25 0d 06 9a 10  e3 20 41 25 3d 31 20 b8  |%,B%..... A%=1 .|
00000ee0  20 6e 69 25 0d 06 a4 0e  42 25 3d 41 25 2a 32 34  | ni%....B%=A%*24|
00000ef0  2b 34 0d 06 ae 16 6d 25  21 42 25 3d 6d 25 21 42  |+4....m%!B%=m%!B|
00000f00  25 20 80 20 ac 28 31 29  0d 06 b8 05 ed 0d 06 c2  |% . .(1)........|
00000f10  12 42 25 3d 28 6e 25 2b  31 29 2a 32 34 2b 34 0d  |.B%=(n%+1)*24+4.|
00000f20  06 cc 13 6d 25 21 42 25  3d 6d 25 21 42 25 20 84  |...m%!B%=m%!B% .|
00000f30  20 31 0d 06 d6 05 e1 0d  06 e0 04 0d 06 ea 0d dd  | 1..............|
00000f40  20 f2 5f 63 6c 6f 73 65  0d 06 f4 37 e7 20 71 25  | ._close...7. q%|
00000f50  21 30 3d 6d 6f 6e 57 25  20 8c 20 c8 99 22 57 69  |!0=monW% . .."Wi|
00000f60  6d 70 5f 47 65 74 57 69  6e 64 6f 77 49 6e 66 6f  |mp_GetWindowInfo|
00000f70  22 2c 2c 57 6e 25 3a 77  6f 70 65 6e 25 3d a3 0d  |",,Wn%:wopen%=..|
00000f80  06 fe 20 e7 20 71 25 21  30 3d 77 61 72 6e 69 6e  |.. . q%!0=warnin|
00000f90  67 57 25 20 8c 20 77 61  72 6e 4f 6e 25 3d a3 0d  |gW% . warnOn%=..|
00000fa0  07 08 1d c8 99 20 22 57  69 6d 70 5f 43 6c 6f 73  |..... "Wimp_Clos|
00000fb0  65 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 07 12 05  |eWindow",,q%....|
00000fc0  e1 0d 07 1c 04 0d 07 26  14 dd 20 f2 5f 64 6f 5f  |.......&.. ._do_|
00000fd0  63 6c 69 63 6b 28 71 25  29 0d 07 30 0c 69 25 3d  |click(q%)..0.i%=|
00000fe0  71 25 21 31 36 0d 07 3a  0e c8 8e 20 71 25 21 31  |q%!16..:... q%!1|
00000ff0  32 20 ca 0d 07 44 28 c9  20 77 61 72 6e 69 6e 67  |2 ...D(. warning|
00001000  57 25 3a 20 71 25 21 30  3d 77 61 72 6e 69 6e 67  |W%: q%!0=warning|
00001010  57 25 20 3a f2 5f 63 6c  6f 73 65 0d 07 4e 04 0d  |W% :._close..N..|
00001020  07 58 28 c9 20 2d 32 3a  20 f4 20 4c 6f 6f 6b 20  |.X(. -2: . Look |
00001030  66 69 72 73 74 20 61 74  20 49 63 6f 6e 20 42 61  |first at Icon Ba|
00001040  72 20 43 6c 69 63 6b 0d  07 62 1e 20 20 20 20 20  |r Click..b.     |
00001050  20 20 20 e7 20 71 25 21  31 36 3d 73 6d 70 69 63  |   . q%!16=smpic|
00001060  6f 6e 25 20 8c 0d 07 6c  4a 20 20 20 20 20 20 20  |on% ...lJ       |
00001070  20 e7 20 71 25 21 38 3d  32 20 8c 20 49 63 6f 6e  | . q%!8=2 . Icon|
00001080  4d 65 6e 75 25 3d b9 3a  20 c8 99 22 57 69 6d 70  |Menu%=.: .."Wimp|
00001090  5f 43 72 65 61 74 65 4d  65 6e 75 22 2c 2c 6d 65  |_CreateMenu",,me|
000010a0  6e 75 25 2c 71 25 21 30  2d 39 34 2c 32 35 36 0d  |nu%,q%!0-94,256.|
000010b0  07 76 1d 20 20 20 20 20  20 20 20 e7 20 71 25 21  |.v.        . q%!|
000010c0  38 3d 34 20 8c 20 f2 5f  4f 70 65 6e 0d 07 80 0c  |8=4 . ._Open....|
000010d0  20 20 20 20 20 20 20 20  0d 07 8a 0d 20 20 20 20  |        ....    |
000010e0  20 20 20 20 cd 0d 07 94  16 c9 20 73 61 76 65 57  |    ...... saveW|
000010f0  25 3a 20 20 f2 73 63 6c  69 63 6b 0d 07 9e 04 0d  |%:  .sclick.....|
00001100  07 a8 0e c9 20 6d 6f 6e  57 25 3a 20 20 0d 07 b2  |.... monW%:  ...|
00001110  51 20 20 20 20 20 20 20  20 20 20 20 20 20 20 e7  |Q              .|
00001120  20 71 25 21 38 3d 32 20  8c 20 49 63 6f 6e 4d 65  | q%!8=2 . IconMe|
00001130  6e 75 25 3d a3 3a 20 c8  99 22 57 69 6d 70 5f 43  |nu%=.: .."Wimp_C|
00001140  72 65 61 74 65 4d 65 6e  75 22 2c 2c 6d 65 6e 75  |reateMenu",,menu|
00001150  25 2c 71 25 21 30 2d 38  34 2c 71 25 21 34 0d 07  |%,q%!0-84,q%!4..|
00001160  bc 26 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.&              |
00001170  e7 20 71 25 21 38 3d 34  8c 20 f2 5f 4d 6f 6e 43  |. q%!8=4. ._MonC|
00001180  6c 69 63 6b 0d 07 c6 27  20 20 20 20 20 20 20 20  |lick...'        |
00001190  20 20 20 20 20 20 e7 20  71 25 21 38 3d 31 20 8c  |      . q%!8=1 .|
000011a0  20 f2 5f 41 64 6a 43 6c  69 63 6b 0d 07 d0 05 cb  | ._AdjClick.....|
000011b0  0d 07 da 05 e1 0d 07 e4  04 0d 07 ee 0d dd 20 f2  |.............. .|
000011c0  73 63 6c 69 63 6b 0d 07  f8 0b c8 8e 20 69 25 20  |sclick...... i% |
000011d0  ca 0d 08 02 11 c9 20 30  3a 20 f2 5f 44 6f 53 61  |...... 0: ._DoSa|
000011e0  76 65 0d 08 0c 12 c9 20  32 3a 20 f2 69 53 61 76  |ve..... 2: .iSav|
000011f0  65 28 32 29 0d 08 16 05  cb 0d 08 20 05 e1 0d 08  |e(2)....... ....|
00001200  2a 04 0d 08 34 10 dd 20  f2 5f 4d 6f 6e 43 6c 69  |*...4.. ._MonCli|
00001210  63 6b 0d 08 3e 14 ea 20  44 25 2c 56 25 2c 42 25  |ck..>.. D%,V%,B%|
00001220  2c 58 25 2c 59 25 0d 08  48 26 f4 20 44 6f 20 74  |,X%,Y%..H&. Do t|
00001230  68 65 20 61 63 74 69 6f  6e 20 66 6f 72 20 61 20  |he action for a |
00001240  77 69 6e 64 6f 77 20 63  6c 69 63 6b 0d 08 52 0b  |window click..R.|
00001250  c8 8e 20 69 25 20 ca 0d  08 5c 1f c9 20 30 20 20  |.. i% ...\.. 0  |
00001260  20 3a 20 f2 6d 65 61 73  75 72 65 28 71 25 21 30  | : .measure(q%!0|
00001270  2c 71 25 21 38 29 0d 08  66 0b c9 20 31 20 20 20  |,q%!8)..f.. 1   |
00001280  3a 0d 08 70 2d c9 20 32  20 20 20 3a 20 41 72 6d  |:..p-. 2   : Arm|
00001290  25 3d ac 28 41 72 6d 25  29 3a f2 70 75 73 68 28  |%=.(Arm%):.push(|
000012a0  41 72 6d 25 2c 32 2c 22  62 69 6e 67 22 29 0d 08  |Arm%,2,"bing")..|
000012b0  7a 23 20 20 20 20 20 20  20 20 20 20 20 e7 20 41  |z#           . A|
000012c0  72 6d 25 20 8c 20 4f 6e  65 53 25 3d b9 3a f2 6f  |rm% . OneS%=.:.o|
000012d0  73 0d 08 84 28 c9 20 34  20 20 20 3a 20 42 70 75  |s...(. 4   : Bpu|
000012e0  73 68 25 3d b9 20 3a 20  42 75 74 74 6f 6e 25 3d  |sh%=. : Button%=|
000012f0  34 20 3a 20 f2 64 6f 4e  43 0d 08 8e 20 20 20 20  |4 : .doNC...    |
00001300  20 20 20 20 20 20 20 20  24 53 50 6f 69 6e 74 25  |        $SPoint%|
00001310  28 34 29 3d 22 70 75 70  22 0d 08 98 47 20 20 20  |(4)="pup"...G   |
00001320  20 20 20 20 20 20 20 20  c8 99 22 57 69 6d 70 5f  |        .."Wimp_|
00001330  46 6f 72 63 65 52 65 64  72 61 77 22 2c 6d 6f 6e  |ForceRedraw",mon|
00001340  57 25 2c 49 58 25 28 34  29 2c 49 59 25 28 34 29  |W%,IX%(4),IY%(4)|
00001350  2c 49 58 31 25 28 34 29  2c 49 59 31 25 28 34 29  |,IX1%(4),IY1%(4)|
00001360  0d 08 a2 28 c9 20 35 20  20 20 3a 20 42 70 75 73  |...(. 5   : Bpus|
00001370  68 25 3d b9 20 3a 20 f2  6d 65 6d 57 20 3a 20 42  |h%=. : .memW : B|
00001380  75 74 74 6f 6e 25 3d 35  0d 08 ac 24 20 20 20 20  |utton%=5...$    |
00001390  20 20 20 20 20 20 20 24  53 50 6f 69 6e 74 25 28  |       $SPoint%(|
000013a0  35 29 3d 22 72 61 64 69  6f 6f 6e 22 0d 08 b6 47  |5)="radioon"...G|
000013b0  20 20 20 20 20 20 20 20  20 20 20 c8 99 22 57 69  |           .."Wi|
000013c0  6d 70 5f 46 6f 72 63 65  52 65 64 72 61 77 22 2c  |mp_ForceRedraw",|
000013d0  6d 6f 6e 57 25 2c 49 58  25 28 35 29 2c 49 59 25  |monW%,IX%(5),IY%|
000013e0  28 35 29 2c 49 58 31 25  28 35 29 2c 49 59 31 25  |(5),IX1%(5),IY1%|
000013f0  28 35 29 0d 08 c0 28 c9  20 36 2c 37 20 3a 20 e7  |(5)...(. 6,7 : .|
00001400  20 69 25 3d 36 20 8c 20  45 78 74 43 6b 25 3d a3  | i%=6 . ExtCk%=.|
00001410  20 8b 20 45 78 74 43 6b  25 3d b9 0d 08 ca 78 20  | . ExtCk%=....x |
00001420  20 20 20 20 20 20 20 20  20 20 e7 20 45 78 74 43  |          . ExtC|
00001430  6b 25 20 8c 20 24 53 50  6f 69 6e 74 25 28 36 29  |k% . $SPoint%(6)|
00001440  3d 22 72 61 64 69 6f 6f  66 66 22 20 3a 20 24 53  |="radiooff" : $S|
00001450  50 6f 69 6e 74 25 28 37  29 3d 22 72 61 64 69 6f  |Point%(7)="radio|
00001460  6f 6e 22 20 8b 20 24 53  50 6f 69 6e 74 25 28 36  |on" . $SPoint%(6|
00001470  29 3d 22 72 61 64 69 6f  6f 6e 22 3a 20 24 53 50  |)="radioon": $SP|
00001480  6f 69 6e 74 25 28 37 29  3d 22 72 61 64 69 6f 6f  |oint%(7)="radioo|
00001490  66 66 22 0d 08 d4 47 20  20 20 20 20 20 20 20 20  |ff"...G         |
000014a0  20 20 c8 99 22 57 69 6d  70 5f 46 6f 72 63 65 52  |  .."Wimp_ForceR|
000014b0  65 64 72 61 77 22 2c 6d  6f 6e 57 25 2c 49 58 25  |edraw",monW%,IX%|
000014c0  28 36 29 2c 49 59 25 28  36 29 2c 49 58 31 25 28  |(6),IY%(6),IX1%(|
000014d0  36 29 2c 49 59 31 25 28  36 29 0d 08 de 47 20 20  |6),IY1%(6)...G  |
000014e0  20 20 20 20 20 20 20 20  20 c8 99 22 57 69 6d 70  |         .."Wimp|
000014f0  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 6d 6f  |_ForceRedraw",mo|
00001500  6e 57 25 2c 49 58 25 28  37 29 2c 49 59 25 28 37  |nW%,IX%(7),IY%(7|
00001510  29 2c 49 58 31 25 28 37  29 2c 49 59 31 25 28 37  |),IX1%(7),IY1%(7|
00001520  29 0d 08 e8 1e c9 20 38  20 20 20 3a 20 4f 6e 65  |)..... 8   : One|
00001530  53 25 3d ac 28 4f 6e 65  53 25 29 3a f2 6f 73 0d  |S%=.(OneS%):.os.|
00001540  08 f2 1e c9 20 31 30 20  20 3a 20 4f 6e 65 53 25  |.... 10  : OneS%|
00001550  3d ac 28 4f 6e 65 53 25  29 3a f2 6f 73 0d 08 fc  |=.(OneS%):.os...|
00001560  2e c9 20 33 2c 31 31 20  3a 20 e7 20 69 25 3d 31  |.. 3,11 : . i%=1|
00001570  31 20 8c 20 53 61 6d 70  6c 65 73 25 3d b9 20 8b  |1 . Samples%=. .|
00001580  20 53 61 6d 70 6c 65 73  25 3d a3 0d 09 06 7c 20  | Samples%=....| |
00001590  20 20 20 20 20 20 20 20  20 20 e7 20 53 61 6d 70  |          . Samp|
000015a0  6c 65 73 25 20 8c 20 24  53 50 6f 69 6e 74 25 28  |les% . $SPoint%(|
000015b0  31 31 29 3d 22 72 61 64  69 6f 6f 6e 22 20 3a 20  |11)="radioon" : |
000015c0  24 53 50 6f 69 6e 74 25  28 33 29 3d 22 72 61 64  |$SPoint%(3)="rad|
000015d0  69 6f 6f 66 66 22 20 8b  20 24 53 50 6f 69 6e 74  |iooff" . $SPoint|
000015e0  25 28 31 31 29 3d 22 72  61 64 69 6f 6f 66 66 22  |%(11)="radiooff"|
000015f0  3a 20 24 53 50 6f 69 6e  74 25 28 33 29 3d 22 72  |: $SPoint%(3)="r|
00001600  61 64 69 6f 6f 6e 22 0d  09 10 47 20 20 20 20 20  |adioon"...G     |
00001610  20 20 20 20 20 20 c8 99  22 57 69 6d 70 5f 46 6f  |      .."Wimp_Fo|
00001620  72 63 65 52 65 64 72 61  77 22 2c 6d 6f 6e 57 25  |rceRedraw",monW%|
00001630  2c 49 58 25 28 33 29 2c  49 59 25 28 33 29 2c 49  |,IX%(3),IY%(3),I|
00001640  58 31 25 28 33 29 2c 49  59 31 25 28 33 29 0d 09  |X1%(3),IY1%(3)..|
00001650  1a 4b 20 20 20 20 20 20  20 20 20 20 20 c8 99 22  |.K           .."|
00001660  57 69 6d 70 5f 46 6f 72  63 65 52 65 64 72 61 77  |Wimp_ForceRedraw|
00001670  22 2c 6d 6f 6e 57 25 2c  49 58 25 28 31 31 29 2c  |",monW%,IX%(11),|
00001680  49 59 25 28 31 31 29 2c  49 58 31 25 28 31 31 29  |IY%(11),IX1%(11)|
00001690  2c 49 59 31 25 28 31 31  29 0d 09 24 17 20 20 20  |,IY1%(11)..$.   |
000016a0  20 20 20 20 20 20 20 20  f2 61 6e 61 6c 69 73 65  |        .analise|
000016b0  0d 09 2e 47 c9 20 31 32  2c 31 33 2c 31 34 2c 31  |...G. 12,13,14,1|
000016c0  35 2c 31 36 2c 31 37 2c  31 38 20 3a 20 f2 72 6f  |5,16,17,18 : .ro|
000016d0  66 66 28 58 73 63 61 6c  65 25 29 3a 58 73 63 61  |ff(Xscale%):Xsca|
000016e0  6c 65 25 3d 69 25 2d 31  32 3a f2 72 6f 6e 28 58  |le%=i%-12:.ron(X|
000016f0  73 63 61 6c 65 25 29 0d  09 38 1c c9 20 31 39 20  |scale%)..8.. 19 |
00001700  20 3a 20 44 72 61 67 4f  6e 25 3d b9 3a 57 64 25  | : DragOn%=.:Wd%|
00001710  3d 69 25 0d 09 42 29 c9  20 32 32 2c 32 33 2c 32  |=i%..B). 22,23,2|
00001720  34 2c 32 35 2c 32 36 2c  32 37 2c 32 38 2c 32 39  |4,25,26,27,28,29|
00001730  20 3a 20 f2 74 74 6f 67  28 69 25 29 0d 09 4c 05  | : .ttog(i%)..L.|
00001740  cb 0d 09 56 05 e1 0d 09  60 04 0d 09 6a 10 dd 20  |...V....`...j.. |
00001750  f2 5f 41 64 6a 43 6c 69  63 6b 0d 09 74 0b c8 8e  |._AdjClick..t...|
00001760  20 69 25 20 ca 0d 09 7e  1f c9 20 30 20 20 20 3a  | i% ...~.. 0   :|
00001770  20 f2 6d 65 61 73 75 72  65 28 71 25 21 30 2c 71  | .measure(q%!0,q|
00001780  25 21 38 29 0d 09 88 28  c9 20 34 20 20 20 3a 20  |%!8)...(. 4   : |
00001790  42 70 75 73 68 25 3d b9  20 3a 20 42 75 74 74 6f  |Bpush%=. : Butto|
000017a0  6e 25 3d 34 20 3a 20 f2  64 6f 4c 43 0d 09 92 20  |n%=4 : .doLC... |
000017b0  20 20 20 20 20 20 20 20  20 20 20 24 53 50 6f 69  |           $SPoi|
000017c0  6e 74 25 28 34 29 3d 22  70 75 70 22 0d 09 9c 47  |nt%(4)="pup"...G|
000017d0  20 20 20 20 20 20 20 20  20 20 20 c8 99 22 57 69  |           .."Wi|
000017e0  6d 70 5f 46 6f 72 63 65  52 65 64 72 61 77 22 2c  |mp_ForceRedraw",|
000017f0  6d 6f 6e 57 25 2c 49 58  25 28 34 29 2c 49 59 25  |monW%,IX%(4),IY%|
00001800  28 34 29 2c 49 58 31 25  28 34 29 2c 49 59 31 25  |(4),IX1%(4),IY1%|
00001810  28 34 29 0d 09 a6 2e c9  20 32 32 2c 32 33 2c 32  |(4)..... 22,23,2|
00001820  34 2c 32 35 2c 32 36 2c  32 37 2c 32 38 2c 32 39  |4,25,26,27,28,29|
00001830  20 3a 20 41 6e 43 25 3d  37 2d 28 69 25 2d 32 32  | : AnC%=7-(i%-22|
00001840  29 0d 09 b0 2f 20 20 20  20 20 20 20 20 20 24 53  |).../         $S|
00001850  50 6f 69 6e 74 25 28 32  30 29 3d 22 41 6e 61 6c  |Point%(20)="Anal|
00001860  79 73 65 20 43 68 20 22  2b c3 28 41 6e 43 25 29  |yse Ch "+.(AnC%)|
00001870  0d 09 ba 49 20 20 20 20  20 20 20 20 20 c8 99 22  |...I         .."|
00001880  57 69 6d 70 5f 46 6f 72  63 65 52 65 64 72 61 77  |Wimp_ForceRedraw|
00001890  22 2c 6d 6f 6e 57 25 2c  49 58 25 28 32 30 29 2c  |",monW%,IX%(20),|
000018a0  49 59 25 28 32 30 29 2c  49 58 31 25 28 32 30 29  |IY%(20),IX1%(20)|
000018b0  2c 49 59 31 25 28 32 30  29 0d 09 c4 15 20 20 20  |,IY1%(20)....   |
000018c0  20 20 20 20 20 20 f2 61  6e 61 6c 69 73 65 0d 09  |      .analise..|
000018d0  ce 05 cb 0d 09 d8 05 e1  0d 09 e2 04 0d 09 ec 15  |................|
000018e0  dd 20 f2 70 75 73 68 28  54 25 2c 4e 25 2c 63 24  |. .push(T%,N%,c$|
000018f0  29 0d 09 f6 30 e7 20 54  25 20 8c 20 24 53 50 6f  |)...0. T% . $SPo|
00001900  69 6e 74 25 28 4e 25 29  3d 63 24 20 8b 20 24 53  |int%(N%)=c$ . $S|
00001910  50 6f 69 6e 74 25 28 4e  25 29 3d 22 62 6f 75 74  |Point%(N%)="bout|
00001920  22 0d 0a 00 40 c8 99 22  57 69 6d 70 5f 46 6f 72  |"...@.."Wimp_For|
00001930  63 65 52 65 64 72 61 77  22 2c 6d 6f 6e 57 25 2c  |ceRedraw",monW%,|
00001940  49 58 25 28 4e 25 29 2c  49 59 25 28 4e 25 29 2c  |IX%(N%),IY%(N%),|
00001950  49 58 31 25 28 4e 25 29  2c 49 59 31 25 28 4e 25  |IX1%(N%),IY1%(N%|
00001960  29 0d 0a 0a 05 e1 0d 0a  14 04 0d 0a 1e 0f dd 20  |).............. |
00001970  f2 74 74 6f 67 28 4e 25  29 0d 0a 28 08 ea 20 42  |.ttog(N%)..(.. B|
00001980  25 0d 0a 32 0c 4e 25 3d  4e 25 2d 32 32 0d 0a 3c  |%..2.N%=N%-22..<|
00001990  10 42 25 3d 31 3c 3c 28  37 2d 4e 25 29 0d 0a 46  |.B%=1<<(7-N%)..F|
000019a0  10 54 62 25 28 37 2d 4e  25 29 2b 3d 31 0d 0a 50  |.Tb%(7-N%)+=1..P|
000019b0  1f e7 20 54 62 25 28 37  2d 4e 25 29 3d 33 20 8c  |.. Tb%(7-N%)=3 .|
000019c0  20 54 62 25 28 37 2d 4e  25 29 3d 30 0d 0a 5a 12  | Tb%(7-N%)=0..Z.|
000019d0  c8 8e 20 54 62 25 28 37  2d 4e 25 29 20 ca 0d 0a  |.. Tb%(7-N%) ...|
000019e0  64 22 c9 20 30 3a 20 24  53 50 6f 69 6e 74 25 28  |d". 0: $SPoint%(|
000019f0  4e 25 2b 32 32 29 3d 22  6c 73 63 6f 70 65 5a 22  |N%+22)="lscopeZ"|
00001a00  0d 0a 6e 31 20 20 20 20  20 20 20 20 20 20 20 20  |..n1            |
00001a10  20 20 20 20 54 72 69 67  42 25 3d 28 54 72 69 67  |    TrigB%=(Trig|
00001a20  42 25 20 80 20 ac 28 42  25 29 29 20 80 20 26 46  |B% . .(B%)) . &F|
00001a30  46 0d 0a 78 26 20 20 20  20 20 20 20 20 20 20 20  |F..x&           |
00001a40  20 20 20 20 20 54 72 69  67 4d 25 3d 54 72 69 67  |     TrigM%=Trig|
00001a50  4d 25 20 84 20 42 25 0d  0a 82 22 c9 20 31 3a 20  |M% . B%...". 1: |
00001a60  24 53 50 6f 69 6e 74 25  28 4e 25 2b 32 32 29 3d  |$SPoint%(N%+22)=|
00001a70  22 6c 73 63 6f 70 65 31  22 0d 0a 8c 3d 20 20 20  |"lscope1"...=   |
00001a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001a90  20 54 72 69 67 42 25 3d  54 72 69 67 42 25 20 84  | TrigB%=TrigB% .|
00001aa0  20 42 25 3a 54 72 69 67  4d 25 3d 54 72 69 67 4d  | B%:TrigM%=TrigM|
00001ab0  25 20 84 20 42 25 0d 0a  96 22 c9 20 32 3a 20 24  |% . B%...". 2: $|
00001ac0  53 50 6f 69 6e 74 25 28  4e 25 2b 32 32 29 3d 22  |SPoint%(N%+22)="|
00001ad0  6c 73 63 6f 70 65 78 22  0d 0a a0 31 20 20 20 20  |lscopex"...1    |
00001ae0  20 20 20 20 20 20 20 20  20 20 20 20 54 72 69 67  |            Trig|
00001af0  42 25 3d 28 54 72 69 67  42 25 20 80 20 ac 28 42  |B%=(TrigB% . .(B|
00001b00  25 29 29 20 80 20 26 46  46 0d 0a aa 31 20 20 20  |%)) . &FF...1   |
00001b10  20 20 20 20 20 20 20 20  20 20 20 20 20 54 72 69  |             Tri|
00001b20  67 4d 25 3d 28 54 72 69  67 4d 25 20 80 20 ac 28  |gM%=(TrigM% . .(|
00001b30  42 25 29 29 20 80 20 26  46 46 0d 0a b4 05 cb 0d  |B%)) . &FF......|
00001b40  0a be 11 21 54 6d 61 73  6b 3d 54 72 69 67 4d 25  |...!Tmask=TrigM%|
00001b50  0d 0a c8 11 21 54 62 69  74 73 3d 54 72 69 67 42  |....!Tbits=TrigB|
00001b60  25 0d 0a d2 4c c8 99 22  57 69 6d 70 5f 46 6f 72  |%...L.."Wimp_For|
00001b70  63 65 52 65 64 72 61 77  22 2c 6d 6f 6e 57 25 2c  |ceRedraw",monW%,|
00001b80  49 58 25 28 4e 25 2b 32  32 29 2c 49 59 25 28 4e  |IX%(N%+22),IY%(N|
00001b90  25 2b 32 32 29 2c 49 58  31 25 28 4e 25 2b 32 32  |%+22),IX1%(N%+22|
00001ba0  29 2c 49 59 31 25 28 4e  25 2b 32 32 29 0d 0a dc  |),IY1%(N%+22)...|
00001bb0  30 f4 20 24 53 50 6f 69  6e 74 25 28 32 31 29 3d  |0. $SPoint%(21)=|
00001bc0  53 54 52 24 28 54 72 69  67 42 25 29 2b 22 20 22  |STR$(TrigB%)+" "|
00001bd0  2b 53 54 52 24 28 54 72  69 67 4d 25 29 0d 0a e6  |+STR$(TrigM%)...|
00001be0  43 f4 20 53 59 53 22 57  69 6d 70 5f 46 6f 72 63  |C. SYS"Wimp_Forc|
00001bf0  65 52 65 64 72 61 77 22  2c 6d 6f 6e 57 25 2c 49  |eRedraw",monW%,I|
00001c00  58 25 28 32 31 29 2c 49  59 25 28 32 31 29 2c 49  |X%(21),IY%(21),I|
00001c10  58 31 25 28 32 31 29 2c  49 59 31 25 28 32 31 29  |X1%(21),IY1%(21)|
00001c20  0d 0a f0 05 e1 0d 0a fa  04 0d 0b 04 09 dd 20 f2  |.............. .|
00001c30  6f 73 0d 0b 0e 0d e7 20  4f 6e 65 53 25 20 8c 0d  |os..... OneS% ..|
00001c40  0b 18 28 f2 70 75 73 68  28 b9 2c 38 2c 22 62 69  |..(.push(.,8,"bi|
00001c50  6e 62 22 29 3a f2 70 75  73 68 28 a3 2c 31 30 2c  |nb"):.push(.,10,|
00001c60  22 62 69 6e 6f 22 29 0d  0b 22 08 f2 72 78 73 0d  |"bino").."..rxs.|
00001c70  0b 2c 0c f2 61 6e 61 6c  69 73 65 0d 0b 36 05 cc  |.,..analise..6..|
00001c80  0d 0b 40 28 f2 70 75 73  68 28 a3 2c 38 2c 22 62  |..@(.push(.,8,"b|
00001c90  69 6e 62 22 29 3a f2 70  75 73 68 28 b9 2c 31 30  |inb"):.push(.,10|
00001ca0  2c 22 62 69 6e 6f 22 29  0d 0b 4a 05 cd 0d 0b 54  |,"bino")..J....T|
00001cb0  05 e1 0d 0b 5e 04 0d 0b  68 0c dd 20 f2 5f 4f 70  |....^...h.. ._Op|
00001cc0  65 6e 0d 0b 72 19 f4 20  4f 50 45 4e 20 55 50 20  |en..r.. OPEN UP |
00001cd0  57 49 4e 44 4f 57 20 48  45 52 45 0d 0b 7c 0e e7  |WINDOW HERE..|..|
00001ce0  20 77 6f 70 65 6e 25 20  8c 0d 0b 86 0e 71 25 21  | wopen% .....q%!|
00001cf0  30 3d 6d 6f 6e 57 25 0d  0b 90 1f c8 99 22 57 69  |0=monW%......"Wi|
00001d00  6d 70 5f 47 65 74 57 69  6e 64 6f 77 53 74 61 74  |mp_GetWindowStat|
00001d10  65 22 2c 2c 71 25 0d 0b  9a 36 20 20 e7 20 71 25  |e",,q%...6  . q%|
00001d20  21 32 38 3c 3e 2d 31 20  8c 20 71 25 21 32 38 3d  |!28<>-1 . q%!28=|
00001d30  2d 31 3a 20 c8 99 20 22  57 69 6d 70 5f 4f 70 65  |-1: .. "Wimp_Ope|
00001d40  6e 57 69 6e 64 6f 77 22  2c 2c 71 25 0d 0b a4 05  |nWindow",,q%....|
00001d50  cc 0d 0b ae 1d c8 99 20  22 57 69 6d 70 5f 4f 70  |....... "Wimp_Op|
00001d60  65 6e 57 69 6e 64 6f 77  22 2c 2c 57 6e 25 0d 0b  |enWindow",,Wn%..|
00001d70  b8 0c 77 6f 70 65 6e 25  3d b9 0d 0b c2 05 cd 0d  |..wopen%=.......|
00001d80  0b cc 05 e1 0d 0b d6 04  0d 0b e0 10 dd 20 f2 5f  |............. ._|
00001d90  64 6f 57 69 6e 64 6f 77  0d 0b ea 10 20 20 ea 20  |doWindow....  . |
00001da0  41 25 2c 49 25 2c 4c 25  0d 0b f4 04 0d 0b fe 15  |A%,I%,L%........|
00001db0  20 20 20 f2 5f 54 72 61  6e 73 28 6d 6f 6e 57 25  |   ._Trans(monW%|
00001dc0  29 0d 0c 08 29 20 20 20  c8 99 20 22 57 69 6d 70  |)...)   .. "Wimp|
00001dd0  5f 52 65 64 72 61 77 57  69 6e 64 6f 77 22 2c 2c  |_RedrawWindow",,|
00001de0  71 25 20 b8 20 66 6c 61  67 25 0d 0c 12 11 20 20  |q% . flag%....  |
00001df0  20 20 20 c8 95 20 66 6c  61 67 25 0d 0c 1c 13 20  |   .. flag%.... |
00001e00  20 20 20 20 f2 64 72 61  77 73 63 6f 70 65 0d 0c  |    .drawscope..|
00001e10  26 16 20 20 20 20 20 f2  64 72 61 77 63 6f 6e 74  |&.     .drawcont|
00001e20  72 6f 6c 73 0d 0c 30 2b  20 20 20 20 20 c8 99 20  |rols..0+     .. |
00001e30  22 57 69 6d 70 5f 47 65  74 52 65 63 74 61 6e 67  |"Wimp_GetRectang|
00001e40  6c 65 22 2c 2c 71 25 20  b8 20 66 6c 61 67 25 0d  |le",,q% . flag%.|
00001e50  0c 3a 0a 20 20 20 20 20  ce 0d 0c 44 06 20 20 0d  |.:.     ...D.  .|
00001e60  0c 4e 07 20 20 e1 0d 0c  58 04 0d 0c 62 0f dd 20  |.N.  ...X...b.. |
00001e70  f2 5f 55 70 50 28 49 25  29 0d 0c 6c 0e ea 20 54  |._UpP(I%)..l.. T|
00001e80  25 2c 41 25 2c 45 25 0d  0c 76 48 20 20 71 25 21  |%,A%,E%..vH  q%!|
00001e90  30 3d 6d 6f 6e 57 25 3a  71 25 21 34 3d 49 58 25  |0=monW%:q%!4=IX%|
00001ea0  28 49 25 29 3a 71 25 21  38 3d 49 59 25 28 49 25  |(I%):q%!8=IY%(I%|
00001eb0  29 3a 71 25 21 31 32 3d  49 58 31 25 28 49 25 29  |):q%!12=IX1%(I%)|
00001ec0  3a 71 25 21 31 36 3d 49  59 31 25 28 49 25 29 0d  |:q%!16=IY1%(I%).|
00001ed0  0c 80 27 20 20 c8 99 22  57 69 6d 70 5f 55 70 64  |..'  .."Wimp_Upd|
00001ee0  61 74 65 57 69 6e 64 6f  77 22 2c 2c 71 25 20 b8  |ateWindow",,q% .|
00001ef0  20 4d 6f 72 65 25 0d 0c  8a 04 0d 0c 94 0d 20 c8  | More%........ .|
00001f00  95 20 4d 6f 72 65 25 0d  0c 9e 17 20 20 f4 20 44  |. More%....  . D|
00001f10  72 61 77 20 74 68 65 20  77 69 6e 64 6f 77 0d 0c  |raw the window..|
00001f20  a8 13 20 20 f2 64 72 61  77 63 6f 6e 74 72 6f 6c  |..  .drawcontrol|
00001f30  73 0d 0c b2 27 20 20 c8  99 22 57 69 6d 70 5f 47  |s...'  .."Wimp_G|
00001f40  65 74 52 65 63 74 61 6e  67 6c 65 22 2c 2c 71 25  |etRectangle",,q%|
00001f50  20 b8 20 4d 6f 72 65 25  0d 0c bc 06 20 ce 0d 0c  | . More%.... ...|
00001f60  c6 04 0d 0c d0 05 e1 0d  0c da 04 0d 0c e4 12 dd  |................|
00001f70  20 f2 5f 54 72 61 6e 73  28 77 68 25 29 0d 0c ee  | ._Trans(wh%)...|
00001f80  0b 21 71 25 3d 77 68 25  0d 0c f8 20 c8 99 20 22  |.!q%=wh%... .. "|
00001f90  57 69 6d 70 5f 47 65 74  57 69 6e 64 6f 77 53 74  |Wimp_GetWindowSt|
00001fa0  61 74 65 22 2c 2c 71 25  0d 0d 02 26 78 6f 25 3d  |ate",,q%...&xo%=|
00001fb0  71 25 21 34 2d 71 25 21  32 30 3a 79 6f 25 3d 71  |q%!4-q%!20:yo%=q|
00001fc0  25 21 31 36 2d 71 25 21  32 34 2d 37 32 34 0d 0d  |%!16-q%!24-724..|
00001fd0  0c 16 58 4f 25 3d 71 25  21 34 3a 59 4f 25 3d 71  |..XO%=q%!4:YO%=q|
00001fe0  25 21 31 36 0d 0d 16 05  e1 0d 0d 20 04 0d 0d 2a  |%!16....... ...*|
00001ff0  0f dd f2 73 65 74 75 70  6d 65 6e 75 0d 0d 34 08  |...setupmenu..4.|
00002000  ea 20 6d 25 0d 0d 3e 04  0d 0d 48 13 24 6d 65 6e  |. m%..>...H.$men|
00002010  75 25 3d 22 4c 53 63 6f  70 65 22 0d 0d 52 0e 6d  |u%="LScope"..R.m|
00002020  65 6e 75 25 3f 31 32 3d  37 0d 0d 5c 0e 6d 65 6e  |enu%?12=7..\.men|
00002030  75 25 3f 31 33 3d 32 0d  0d 66 0e 6d 65 6e 75 25  |u%?13=2..f.menu%|
00002040  3f 31 34 3d 37 0d 0d 70  0e 6d 65 6e 75 25 3f 31  |?14=7..p.menu%?1|
00002050  35 3d 30 0d 0d 7a 10 6d  65 6e 75 25 21 31 36 3d  |5=0..z.menu%!16=|
00002060  31 32 38 0d 0d 84 0f 6d  65 6e 75 25 21 32 30 3d  |128....menu%!20=|
00002070  34 30 0d 0d 8e 0e 6d 65  6e 75 25 21 32 34 3d 30  |40....menu%!24=0|
00002080  0d 0d 98 0f 6d 25 3d 6d  65 6e 75 25 2b 32 38 0d  |....m%=menu%+28.|
00002090  0d a2 0a 6d 25 21 30 3d  30 0d 0d ac 0e 6d 25 21  |...m%!0=0....m%!|
000020a0  34 3d 69 6e 66 6f 25 0d  0d b6 18 6d 25 21 38 3d  |4=info%....m%!8=|
000020b0  28 37 3c 3c 32 34 29 84  20 25 31 30 30 30 31 0d  |(7<<24). %10001.|
000020c0  0d c0 13 24 28 6d 25 2b  31 32 29 3d 22 49 6e 66  |...$(m%+12)="Inf|
000020d0  6f 22 0d 0d ca 04 0d 0d  d4 0a 6d 25 2b 3d 32 34  |o"........m%+=24|
000020e0  0d 0d de 0a 6d 25 21 30  3d 30 0d 0d e8 0f 6d 25  |....m%!0=0....m%|
000020f0  21 34 3d 73 61 76 65 57  25 0d 0d f2 18 6d 25 21  |!4=saveW%....m%!|
00002100  38 3d 28 37 3c 3c 32 34  29 84 20 25 31 30 30 30  |8=(7<<24). %1000|
00002110  31 0d 0d fc 13 24 28 6d  25 2b 31 32 29 3d 22 53  |1....$(m%+12)="S|
00002120  61 76 65 22 0d 0e 06 04  0d 0e 10 0a 6d 25 2b 3d  |ave"........m%+=|
00002130  32 34 0d 0e 1a 0a 6d 25  21 30 3d 30 0d 0e 24 0f  |24....m%!0=0..$.|
00002140  6d 25 21 34 3d 72 61 74  65 4d 25 0d 0e 2e 18 6d  |m%!4=rateM%....m|
00002150  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
00002160  30 30 31 0d 0e 38 13 24  28 6d 25 2b 31 32 29 3d  |001..8.$(m%+12)=|
00002170  22 52 61 74 65 22 0d 0e  42 04 0d 0e 4c 0a 6d 25  |"Rate"..B...L.m%|
00002180  2b 3d 32 34 0d 0e 56 0c  6d 25 21 30 3d 26 38 30  |+=24..V.m%!0=&80|
00002190  0d 0e 60 0a 6d 25 21 34  3d 30 0d 0e 6a 18 6d 25  |..`.m%!4=0..j.m%|
000021a0  21 38 3d 28 37 3c 3c 32  34 29 84 20 25 31 30 30  |!8=(7<<24). %100|
000021b0  30 31 0d 0e 74 13 24 28  6d 25 2b 31 32 29 3d 22  |01..t.$(m%+12)="|
000021c0  51 75 69 74 22 0d 0e 7e  04 0d 0e 88 14 24 72 61  |Quit"..~.....$ra|
000021d0  74 65 4d 25 3d 22 53 61  6d 70 6c 65 22 0d 0e 92  |teM%="Sample"...|
000021e0  0f 72 61 74 65 4d 25 3f  31 32 3d 37 0d 0e 9c 0f  |.rateM%?12=7....|
000021f0  72 61 74 65 4d 25 3f 31  33 3d 32 0d 0e a6 0f 72  |rateM%?13=2....r|
00002200  61 74 65 4d 25 3f 31 34  3d 37 0d 0e b0 0f 72 61  |ateM%?14=7....ra|
00002210  74 65 4d 25 3f 31 35 3d  30 0d 0e ba 11 72 61 74  |teM%?15=0....rat|
00002220  65 4d 25 21 31 36 3d 31  32 38 0d 0e c4 10 72 61  |eM%!16=128....ra|
00002230  74 65 4d 25 21 32 30 3d  34 30 0d 0e ce 0f 72 61  |teM%!20=40....ra|
00002240  74 65 4d 25 21 32 34 3d  30 0d 0e d8 10 6d 25 3d  |teM%!24=0....m%=|
00002250  72 61 74 65 4d 25 2b 32  38 0d 0e e2 0a 6d 25 21  |rateM%+28....m%!|
00002260  30 3d 31 0d 0e ec 0a 6d  25 21 34 3d 30 0d 0e f6  |0=1....m%!4=0...|
00002270  18 6d 25 21 38 3d 28 37  3c 3c 32 34 29 84 20 25  |.m%!8=(7<<24). %|
00002280  31 30 30 30 31 0d 0f 00  14 24 28 6d 25 2b 31 32  |10001....$(m%+12|
00002290  29 3d 22 32 2e 35 75 53  22 0d 0f 0a 04 0d 0f 14  |)="2.5uS".......|
000022a0  0a 6d 25 2b 3d 32 34 0d  0f 1e 0a 6d 25 21 30 3d  |.m%+=24....m%!0=|
000022b0  30 0d 0f 28 0a 6d 25 21  34 3d 30 0d 0f 32 18 6d  |0..(.m%!4=0..2.m|
000022c0  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
000022d0  30 30 31 0d 0f 3c 13 24  28 6d 25 2b 31 32 29 3d  |001..<.$(m%+12)=|
000022e0  22 31 30 75 53 22 0d 0f  46 04 0d 0f 50 0a 6d 25  |"10uS"..F...P.m%|
000022f0  2b 3d 32 34 0d 0f 5a 0a  6d 25 21 30 3d 30 0d 0f  |+=24..Z.m%!0=0..|
00002300  64 0a 6d 25 21 34 3d 30  0d 0f 6e 18 6d 25 21 38  |d.m%!4=0..n.m%!8|
00002310  3d 28 37 3c 3c 32 34 29  84 20 25 31 30 30 30 31  |=(7<<24). %10001|
00002320  0d 0f 78 13 24 28 6d 25  2b 31 32 29 3d 22 35 30  |..x.$(m%+12)="50|
00002330  75 53 22 0d 0f 82 04 0d  0f 8c 0a 6d 25 2b 3d 32  |uS"........m%+=2|
00002340  34 0d 0f 96 0a 6d 25 21  30 3d 30 0d 0f a0 0a 6d  |4....m%!0=0....m|
00002350  25 21 34 3d 30 0d 0f aa  18 6d 25 21 38 3d 28 37  |%!4=0....m%!8=(7|
00002360  3c 3c 32 34 29 84 20 25  31 30 30 30 31 0d 0f b4  |<<24). %10001...|
00002370  14 24 28 6d 25 2b 31 32  29 3d 22 31 30 30 75 53  |.$(m%+12)="100uS|
00002380  22 0d 0f be 04 0d 0f c8  0a 6d 25 2b 3d 32 34 0d  |"........m%+=24.|
00002390  0f d2 0a 6d 25 21 30 3d  30 0d 0f dc 0a 6d 25 21  |...m%!0=0....m%!|
000023a0  34 3d 30 0d 0f e6 18 6d  25 21 38 3d 28 37 3c 3c  |4=0....m%!8=(7<<|
000023b0  32 34 29 84 20 25 31 30  30 30 31 0d 0f f0 14 24  |24). %10001....$|
000023c0  28 6d 25 2b 31 32 29 3d  22 35 30 30 75 53 22 0d  |(m%+12)="500uS".|
000023d0  0f fa 04 0d 10 04 0a 6d  25 2b 3d 32 34 0d 10 0e  |.......m%+=24...|
000023e0  0c 6d 25 21 30 3d 26 38  30 0d 10 18 0a 6d 25 21  |.m%!0=&80....m%!|
000023f0  34 3d 30 0d 10 22 18 6d  25 21 38 3d 28 37 3c 3c  |4=0..".m%!8=(7<<|
00002400  32 34 29 84 20 25 31 30  30 30 31 0d 10 2c 12 24  |24). %10001..,.$|
00002410  28 6d 25 2b 31 32 29 3d  22 31 6d 53 22 0d 10 36  |(m%+12)="1mS"..6|
00002420  04 0d 10 40 05 e1 0d 10  4a 04 0d 10 54 12 dd 20  |...@....J...T.. |
00002430  f2 72 65 63 65 69 76 65  28 71 25 29 0d 10 5e 08  |.receive(q%)..^.|
00002440  ea 20 41 25 0d 10 68 0c  41 25 3d 71 25 21 31 36  |. A%..h.A%=q%!16|
00002450  0d 10 72 0b c8 8e 20 41  25 20 ca 0d 10 7c 0c c9  |..r... A% ...|..|
00002460  20 30 3a f2 64 69 65 0d  10 86 32 c9 20 32 3a e7  | 0:.die...2. 2:.|
00002470  20 71 25 21 31 32 3d 73  61 76 65 72 65 66 25 20  | q%!12=saveref% |
00002480  8c 20 66 6e 24 3d a4 73  67 65 74 28 71 25 2b 34  |. fn$=.sget(q%+4|
00002490  34 29 3a f2 5f 53 61 76  65 0d 10 90 31 c9 20 33  |4):._Save...1. 3|
000024a0  3a e7 20 28 71 25 21 32  30 3d 2d 32 20 84 20 71  |:. (q%!20=-2 . q|
000024b0  25 21 32 30 3d 6d 6f 6e  57 25 29 20 80 20 71 25  |%!20=monW%) . q%|
000024c0  21 34 30 3d 26 30 35 45  20 8c 0d 10 9a 1b 20 20  |!40=&05E .....  |
000024d0  20 20 20 20 20 20 6e 24  3d a4 73 67 65 74 28 71  |      n$=.sget(q|
000024e0  25 2b 34 34 29 0d 10 a4  12 20 20 20 20 20 20 20  |%+44)....       |
000024f0  20 f2 5f 44 61 63 6b 0d  10 ae 14 20 20 20 20 20  | ._Dack....     |
00002500  20 20 20 f2 5f 4c 42 28  6e 24 29 0d 10 b8 0c 20  |   ._LB(n$).... |
00002510  20 20 20 20 20 20 cd 0d  10 c2 16 c9 20 35 3a e7  |      ...... 5:.|
00002520  20 71 25 21 34 30 3d 26  30 35 45 20 8c 0d 10 cc  | q%!40=&05E ....|
00002530  2a 20 20 20 20 20 20 20  6e 24 3d a4 73 67 65 74  |*       n$=.sget|
00002540  28 71 25 2b 34 34 29 3a  f2 5f 44 61 63 6b 3a f2  |(q%+44):._Dack:.|
00002550  5f 4c 42 28 6e 24 29 0d  10 d6 0c 20 20 20 20 20  |_LB(n$)....     |
00002560  20 20 cd 0d 10 e0 04 0d  10 ea 2d c9 20 26 34 30  |  ........-. &40|
00002570  30 43 31 3a 20 e7 20 77  6f 70 65 6e 25 20 8c 20  |0C1: . wopen% . |
00002580  71 25 21 30 3d 6d 6f 6e  57 25 20 3a 20 f2 5f 63  |q%!0=monW% : ._c|
00002590  6c 6f 73 65 0d 10 f4 04  0d 10 fe 04 0d 11 08 14  |lose............|
000025a0  c9 20 26 35 30 32 3a 20  20 20 c8 8e 20 b9 20 ca  |. &502:   .. . .|
000025b0  0d 11 12 6c 20 20 20 20  20 20 20 20 20 20 20 20  |...l            |
000025c0  20 c9 20 71 25 21 33 32  3d 2d 32 20 80 20 71 25  | . q%!32=-2 . q%|
000025d0  21 33 36 3d 73 6d 70 69  63 6f 6e 25 3a 6d 65 73  |!36=smpicon%:mes|
000025e0  24 3d 22 54 68 69 73 20  69 73 20 74 68 65 20 4f  |$="This is the O|
000025f0  73 63 69 6c 6c 6f 73 63  6f 70 65 20 69 63 6f 6e  |scilloscope icon|
00002600  2e 7c 4d 4f 62 73 65 72  76 65 20 61 6e 61 6c 6f  |.|MObserve analo|
00002610  67 75 65 20 73 69 67 6e  61 6c 73 22 0d 11 1c 1a  |gue signals"....|
00002620  20 20 20 20 20 20 20 20  20 20 20 20 20 7f 3a 6d  |             .:m|
00002630  65 73 24 3d 22 22 0d 11  26 12 20 20 20 20 20 20  |es$=""..&.      |
00002640  20 20 20 20 20 20 20 cb  0d 11 30 14 20 20 20 20  |       ...0.    |
00002650  e7 20 6d 65 73 24 3c 3e  22 22 20 8c 0d 11 3a 12  |. mes$<>"" ...:.|
00002660  20 20 20 20 71 25 21 31  32 3d 71 25 21 38 0d 11  |    q%!12=q%!8..|
00002670  44 18 20 20 20 20 24 28  71 25 2b 32 30 29 3d 6d  |D.    $(q%+20)=m|
00002680  65 73 24 2b bd 30 0d 11  4e 1e 20 20 20 20 71 25  |es$+.0..N.    q%|
00002690  21 30 3d 28 32 30 2b a9  6d 65 73 24 2b 34 29 80  |!0=(20+.mes$+4).|
000026a0  20 ac 20 33 0d 11 58 12  20 20 20 20 71 25 21 31  | . 3..X.    q%!1|
000026b0  36 3d 26 35 30 33 0d 11  62 28 20 20 20 20 c8 99  |6=&503..b(    ..|
000026c0  20 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  | "Wimp_SendMessa|
000026d0  67 65 22 2c 31 38 2c 71  25 2c 71 25 21 34 0d 11  |ge",18,q%,q%!4..|
000026e0  6c 05 cb 0d 11 76 05 e1  0d 11 80 04 0d 11 8a 0c  |l....v..........|
000026f0  dd 20 f2 5f 44 61 63 6b  0d 11 94 10 73 65 6e 64  |. ._Dack....send|
00002700  74 68 25 3d 71 25 21 34  0d 11 9e 0f 6d 79 72 65  |th%=q%!4....myre|
00002710  66 25 3d 71 25 21 38 0d  11 a8 22 c8 99 20 22 57  |f%=q%!8...".. "W|
00002720  69 6d 70 5f 47 65 74 50  6f 69 6e 74 65 72 49 6e  |imp_GetPointerIn|
00002730  66 6f 22 2c 2c 71 25 2b  38 0d 11 b2 0e 71 25 21  |fo",,q%+8....q%!|
00002740  32 38 3d 71 25 21 38 0d  11 bc 0f 71 25 21 33 32  |28=q%!8....q%!32|
00002750  3d 71 25 21 31 32 0d 11  c6 18 71 25 21 30 3d 28  |=q%!12....q%!0=(|
00002760  34 34 2b a9 6e 24 2b 34  29 80 20 ac 20 33 0d 11  |44+.n$+4). . 3..|
00002770  d0 10 71 25 21 31 32 3d  6d 79 72 65 66 25 0d 11  |..q%!12=myref%..|
00002780  da 0b 71 25 21 31 36 3d  34 0d 11 e4 0c 71 25 21  |..q%!16=4....q%!|
00002790  33 36 3d 2d 31 0d 11 ee  0e 71 25 21 34 30 3d 26  |36=-1....q%!40=&|
000027a0  46 46 39 0d 11 f8 12 24  28 71 25 2b 34 34 29 3d  |FF9....$(q%+44)=|
000027b0  6e 24 2b bd 30 0d 12 02  27 c8 99 20 22 57 69 6d  |n$+.0...'.. "Wim|
000027c0  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 22 2c 31  |p_SendMessage",1|
000027d0  37 2c 71 25 2c 73 65 6e  64 74 68 25 0d 12 0c 05  |7,q%,sendth%....|
000027e0  cd 0d 12 16 05 e1 0d 12  20 04 0d 12 2a 0e dd 20  |........ ...*.. |
000027f0  f2 5f 4c 42 28 53 24 29  0d 12 34 14 ea 20 63 68  |._LB(S$)..4.. ch|
00002800  25 2c 41 25 2c 42 25 2c  42 75 66 25 0d 12 3e 1f  |%,A%,B%,Buf%..>.|
00002810  63 68 25 3d 8e 28 53 24  29 3a e7 20 63 68 25 3d  |ch%=.(S$):. ch%=|
00002820  30 20 8c 20 d9 23 63 68  25 3a e1 0d 12 48 2e e7  |0 . .#ch%:...H..|
00002830  20 21 4f 64 64 45 76 65  6e 3d 30 20 8c 20 42 75  | !OddEven=0 . Bu|
00002840  66 25 3d 54 72 61 63 65  31 25 20 8b 20 42 75 66  |f%=Trace1% . Buf|
00002850  25 3d 54 72 61 63 65 32  25 0d 12 52 08 41 25 3d  |%=Trace2%..R.A%=|
00002860  30 0d 12 5c 05 f5 0d 12  66 0c 42 25 3d 9a 23 63  |0..\....f.B%=.#c|
00002870  68 25 0d 12 70 0e 42 75  66 25 3f 41 25 3d 42 25  |h%..p.Buf%?A%=B%|
00002880  0d 12 7a 09 41 25 2b 3d  31 0d 12 84 15 fd 20 c5  |..z.A%+=1..... .|
00002890  23 63 68 25 20 84 20 41  25 3d 32 37 35 33 0d 12  |#ch% . A%=2753..|
000028a0  8e 09 d9 23 63 68 25 0d  12 98 0c f2 61 6e 61 6c  |...#ch%.....anal|
000028b0  69 73 65 0d 12 a2 11 f2  5f 50 75 74 4e 61 6d 65  |ise....._PutName|
000028c0  28 53 24 29 0d 12 ac 3c  c8 99 22 57 69 6d 70 5f  |(S$)...<.."Wimp_|
000028d0  46 6f 72 63 65 52 65 64  72 61 77 22 2c 6d 6f 6e  |ForceRedraw",mon|
000028e0  57 25 2c 49 58 25 28 30  29 2c 49 59 25 28 30 29  |W%,IX%(0),IY%(0)|
000028f0  2c 49 58 31 25 28 30 29  2c 49 59 31 25 28 30 29  |,IX1%(0),IY1%(0)|
00002900  0d 12 b6 0a f2 5f 4f 70  65 6e 0d 12 c0 05 e1 0d  |....._Open......|
00002910  12 ca 04 0d 12 d4 0e dd  a4 73 67 65 74 28 78 25  |.........sget(x%|
00002920  29 0d 12 de 08 ea 20 78  24 0d 12 e8 1d c8 95 20  |)..... x$...... |
00002930  3f 78 25 20 78 24 2b 3d  bd 28 3f 78 25 29 3a 78  |?x% x$+=.(?x%):x|
00002940  25 2b 3d 31 3a ce 0d 12  f2 07 3d 78 24 0d 12 fc  |%+=1:.....=x$...|
00002950  04 0d 13 06 10 dd 20 f2  69 53 61 76 65 28 69 25  |...... .iSave(i%|
00002960  29 0d 13 10 0c e7 20 69  25 3d 30 20 8c 0d 13 1a  |)..... i%=0 ....|
00002970  2c 20 20 20 20 20 20 20  20 20 20 20 20 c8 99 20  |,            .. |
00002980  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00002990  49 6e 66 6f 22 2c 2c 71  25 0d 13 24 2e 20 20 20  |Info",,q%..$.   |
000029a0  20 20 20 20 20 20 20 20  20 f2 64 72 61 67 69 63  |         .dragic|
000029b0  6f 6e 28 71 25 21 30 2c  71 25 21 34 2c 73 61 76  |on(q%!0,q%!4,sav|
000029c0  65 57 25 2c 69 25 29 0d  13 2e 06 20 cd 0d 13 38  |eW%,i%).... ...8|
000029d0  0c e7 20 69 25 3d 32 20  8c 0d 13 42 0e 20 f2 5f  |.. i%=2 ...B. ._|
000029e0  47 65 74 4e 61 6d 65 0d  13 4c 46 20 e7 20 a7 66  |GetName..LF . .f|
000029f0  6e 24 2c 22 3a 22 29 20  8c 20 f2 5f 53 61 76 65  |n$,":") . ._Save|
00002a00  20 8b 20 f2 5f 73 65 74  75 70 57 28 22 44 72 61  | . ._setupW("Dra|
00002a10  67 20 74 68 65 20 49 63  6f 6e 20 69 6e 74 6f 20  |g the Icon into |
00002a20  61 20 44 69 72 65 63 74  6f 72 79 22 29 0d 13 56  |a Directory")..V|
00002a30  1d 20 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |. .. "Wimp_Creat|
00002a40  65 4d 65 6e 75 22 2c 2c  2d 31 0d 13 60 05 cd 0d  |eMenu",,-1..`...|
00002a50  13 6a 05 e1 0d 13 74 04  0d 13 7e 0c dd 20 f2 5f  |.j....t...~.. ._|
00002a60  53 61 76 65 0d 13 88 0b  ea 20 62 75 66 50 25 0d  |Save..... bufP%.|
00002a70  13 92 30 e7 20 21 4f 64  64 45 76 65 6e 3d 30 20  |..0. !OddEven=0 |
00002a80  8c 20 42 75 66 50 25 3d  54 72 61 63 65 31 25 20  |. BufP%=Trace1% |
00002a90  8b 20 42 75 66 50 25 3d  54 72 61 63 65 32 25 0d  |. BufP%=Trace2%.|
00002aa0  13 9c 31 ff 28 22 53 41  56 45 20 22 2b 66 6e 24  |..1.("SAVE "+fn$|
00002ab0  2b 22 20 22 2b c3 7e 42  75 66 50 25 2b 22 20 22  |+" "+.~BufP%+" "|
00002ac0  2b c3 7e 28 42 75 66 50  25 2b 32 37 35 32 29 29  |+.~(BufP%+2752))|
00002ad0  0d 13 a6 1c ff 28 22 53  45 54 54 59 50 45 20 22  |.....("SETTYPE "|
00002ae0  2b 66 6e 24 2b 22 20 30  35 45 22 29 0d 13 b0 12  |+fn$+" 05E")....|
00002af0  f2 5f 50 75 74 4e 61 6d  65 28 66 6e 24 29 0d 13  |._PutName(fn$)..|
00002b00  ba 05 e1 0d 13 c4 04 0d  13 ce 13 dd 20 f2 5f 50  |............ ._P|
00002b10  75 74 4e 61 6d 65 28 70  24 29 0d 13 d8 08 ea 20  |utName(p$)..... |
00002b20  54 25 0d 13 e2 16 71 25  21 30 3d 73 61 76 65 57  |T%....q%!0=saveW|
00002b30  25 3a 71 25 21 34 3d 31  0d 13 ec 1e c8 99 20 22  |%:q%!4=1...... "|
00002b40  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
00002b50  65 22 2c 2c 71 25 0d 13  f6 0c 54 25 3d 71 25 21  |e",,q%....T%=q%!|
00002b60  32 38 0d 14 00 0a 24 54  25 3d 70 24 0d 14 0a 11  |28....$T%=p$....|
00002b70  21 28 54 25 2b a9 28 70  24 29 29 3d 30 0d 14 14  |!(T%+.(p$))=0...|
00002b80  05 e1 0d 14 1e 04 0d 14  28 04 0d 14 32 0a dd a4  |........(...2...|
00002b90  69 63 6f 6e 0d 14 3c 0b  71 25 21 30 3d 2d 31 0d  |icon..<.q%!0=-1.|
00002ba0  14 46 0a 71 25 21 34 3d  30 0d 14 50 1b 71 25 21  |.F.q%!4=0..P.q%!|
00002bb0  38 3d 31 30 20 3a 20 f4  20 59 20 44 49 52 45 43  |8=10 : . Y DIREC|
00002bc0  54 49 4f 4e 0d 14 5a 1c  71 25 21 31 32 3d 37 30  |TION..Z.q%!12=70|
00002bd0  20 3a 20 f4 20 58 20 44  49 52 45 43 54 49 4f 4e  | : . X DIRECTION|
00002be0  0d 14 64 0c 71 25 21 31  36 3d 39 36 0d 14 6e 0f  |..d.q%!16=96..n.|
00002bf0  71 25 21 32 30 3d 26 32  30 30 32 0d 14 78 16 24  |q%!20=&2002..x.$|
00002c00  28 71 25 2b 32 34 29 3d  22 21 6c 73 63 6f 70 65  |(q%+24)="!lscope|
00002c10  22 0d 14 82 24 c8 99 20  22 57 69 6d 70 5f 43 72  |"...$.. "Wimp_Cr|
00002c20  65 61 74 65 49 63 6f 6e  22 2c 2c 71 25 20 b8 20  |eateIcon",,q% . |
00002c30  69 63 6f 6e 25 0d 14 8c  0a 3d 69 63 6f 6e 25 0d  |icon%....=icon%.|
00002c40  14 96 04 0d 14 a0 12 dd  20 f2 5f 73 65 74 75 70  |........ ._setup|
00002c50  57 28 74 24 29 0d 14 aa  58 21 71 25 3d 77 61 72  |W(t$)...X!q%=war|
00002c60  6e 69 6e 67 57 25 3a 71  25 21 34 3d 32 30 30 3a  |ningW%:q%!4=200:|
00002c70  71 25 21 38 3d 32 30 30  3a 71 25 21 31 32 3d 32  |q%!8=200:q%!12=2|
00002c80  30 30 2b 58 51 25 3a 71  25 21 31 36 3d 32 30 30  |00+XQ%:q%!16=200|
00002c90  2b 59 51 25 3a 71 25 21  32 30 3d 30 3a 71 25 21  |+YQ%:q%!20=0:q%!|
00002ca0  32 34 3d 30 3a 71 25 21  32 38 3d 2d 31 0d 14 b4  |24=0:q%!28=-1...|
00002cb0  11 24 54 65 78 74 57 61  72 6e 25 3d 74 24 0d 14  |.$TextWarn%=t$..|
00002cc0  be 15 54 65 78 74 57 61  72 6e 25 3f a9 28 74 24  |..TextWarn%?.(t$|
00002cd0  29 3d 30 0d 14 c8 07 ef  20 37 0d 14 d2 0d 77 61  |)=0..... 7....wa|
00002ce0  72 6e 4f 6e 25 3d b9 0d  14 dc 1c c8 99 20 22 57  |rnOn%=....... "W|
00002cf0  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00002d00  2c 71 25 0d 14 e6 05 e1  0d 14 f0 04 0d 14 fa 0f  |,q%.............|
00002d10  dd 20 f2 65 72 72 6f 72  62 6f 78 0d 15 04 19 c8  |. .errorbox.....|
00002d20  99 20 22 57 69 6d 70 5f  44 72 61 67 42 6f 78 22  |. "Wimp_DragBox"|
00002d30  2c 2c 2d 31 0d 15 0e 32  21 62 75 66 66 65 72 73  |,,-1...2!buffers|
00002d40  25 3d 9f 3a 24 28 62 75  66 66 65 72 73 25 2b 34  |%=.:$(buffers%+4|
00002d50  29 3d f6 24 2b 22 20 61  74 20 6c 69 6e 65 20 22  |)=.$+" at line "|
00002d60  2b c3 9e 2b bd 30 0d 15  18 32 c8 99 20 22 57 69  |+..+.0...2.. "Wi|
00002d70  6d 70 5f 52 65 70 6f 72  74 45 72 72 6f 72 22 2c  |mp_ReportError",|
00002d80  62 75 66 66 65 72 73 25  2c 31 2c 22 4c 6f 67 69  |buffers%,1,"Logi|
00002d90  63 20 53 63 6f 70 65 22  0d 15 22 08 f2 64 69 65  |c Scope".."..die|
00002da0  0d 15 2c 05 e1 0d 15 36  04 0d 15 40 09 dd f2 64  |..,....6...@...d|
00002db0  69 65 0d 15 4a 2a c8 99  20 22 57 69 6d 70 5f 43  |ie..J*.. "Wimp_C|
00002dc0  6c 6f 73 65 44 6f 77 6e  22 2c 74 61 73 6b 68 61  |loseDown",taskha|
00002dd0  6e 64 25 2c 21 74 61 73  6b 69 64 25 0d 15 54 05  |nd%,!taskid%..T.|
00002de0  e0 0d 15 5e 05 e1 0d 15  68 04 0d 15 72 2e dd 20  |...^....h...r.. |
00002df0  f2 64 72 61 67 69 63 6f  6e 28 6d 6f 75 73 65 78  |.dragicon(mousex|
00002e00  25 2c 6d 6f 75 73 65 79  25 2c 68 61 6e 64 6c 65  |%,mousey%,handle|
00002e10  25 2c 69 63 6f 6e 25 29  0d 15 7c 21 ea 20 62 78  |%,icon%)..|!. bx|
00002e20  25 2c 62 79 25 2c 69 78  30 25 2c 69 79 30 25 2c  |%,by%,ix0%,iy0%,|
00002e30  69 78 31 25 2c 69 79 31  25 0d 15 86 12 f2 67 65  |ix1%,iy1%.....ge|
00002e40  74 77 28 68 61 6e 64 6c  65 25 29 0d 15 90 18 f2  |tw(handle%).....|
00002e50  67 65 74 69 28 68 61 6e  64 6c 65 25 2c 69 63 6f  |geti(handle%,ico|
00002e60  6e 25 29 0d 15 9a 16 21  71 25 3d 68 61 6e 64 6c  |n%)....!q%=handl|
00002e70  65 25 3a 71 25 21 34 3d  35 0d 15 a4 3e 71 25 21  |e%:q%!4=5...>q%!|
00002e80  38 3d 62 78 25 2b 69 78  30 25 3a 71 25 21 31 32  |8=bx%+ix0%:q%!12|
00002e90  3d 62 79 25 2b 69 79 30  25 3a 71 25 21 31 36 3d  |=by%+iy0%:q%!16=|
00002ea0  62 78 25 2b 69 78 31 25  3a 71 25 21 32 30 3d 62  |bx%+ix1%:q%!20=b|
00002eb0  79 25 2b 69 79 31 25 0d  15 ae 2a 71 25 21 32 34  |y%+iy1%...*q%!24|
00002ec0  3d 71 25 21 38 2d 6d 6f  75 73 65 78 25 3a 71 25  |=q%!8-mousex%:q%|
00002ed0  21 32 38 3d 71 25 21 31  32 2d 6d 6f 75 73 65 79  |!28=q%!12-mousey|
00002ee0  25 0d 15 b8 19 c8 99 20  22 57 69 6d 70 5f 44 72  |%...... "Wimp_Dr|
00002ef0  61 67 42 6f 78 22 2c 2c  71 25 0d 15 c2 0c 53 46  |agBox",,q%....SF|
00002f00  4c 41 47 25 3d b9 0d 15  cc 05 e1 0d 15 d6 04 0d  |LAG%=...........|
00002f10  15 e0 0f dd 20 f2 69 6e  66 6f 28 70 25 29 0d 15  |.... .info(p%)..|
00002f20  ea 0d ea 20 78 30 25 2c  79 30 25 0d 15 f4 27 78  |... x0%,y0%...'x|
00002f30  30 25 3d 21 70 25 3a 79  30 25 3d 70 25 21 34 3a  |0%=!p%:y0%=p%!4:|
00002f40  78 31 25 3d 70 25 21 38  3a 79 31 25 3d 70 25 21  |x1%=p%!8:y1%=p%!|
00002f50  31 32 0d 15 fe 35 73 63  78 25 3d 70 25 21 31 36  |12...5scx%=p%!16|
00002f60  3a 73 63 79 25 3d 70 25  21 32 30 3a 62 68 61 6e  |:scy%=p%!20:bhan|
00002f70  64 6c 65 25 3d 70 25 21  32 34 3a 66 6c 61 67 73  |dle%=p%!24:flags|
00002f80  25 3d 70 25 21 32 38 0d  16 08 1d 62 78 25 3d 78  |%=p%!28....bx%=x|
00002f90  30 25 2d 73 63 78 25 3a  62 79 25 3d 79 31 25 2d  |0%-scx%:by%=y1%-|
00002fa0  73 63 79 25 0d 16 12 05  e1 0d 16 1c 04 0d 16 26  |scy%...........&|
00002fb0  0e dd 20 f2 5f 44 6f 53  61 76 65 0d 16 30 22 20  |.. ._DoSave..0" |
00002fc0  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 50 6f 69  | .. "Wimp_GetPoi|
00002fd0  6e 74 65 72 49 6e 66 6f  22 2c 2c 71 25 0d 16 3a  |nterInfo",,q%..:|
00002fe0  24 20 20 f2 64 72 61 67  69 63 6f 6e 28 71 25 21  |$  .dragicon(q%!|
00002ff0  30 2c 71 25 21 34 2c 73  61 76 65 57 25 2c 69 25  |0,q%!4,saveW%,i%|
00003000  29 0d 16 44 05 e1 0d 16  4e 04 0d 16 58 14 dd 20  |)..D....N...X.. |
00003010  f2 67 65 74 77 28 68 61  6e 64 6c 65 25 29 0d 16  |.getw(handle%)..|
00003020  62 0f 21 71 25 3d 68 61  6e 64 6c 65 25 0d 16 6c  |b.!q%=handle%..l|
00003030  20 c8 99 20 22 57 69 6d  70 5f 47 65 74 57 69 6e  | .. "Wimp_GetWin|
00003040  64 6f 77 53 74 61 74 65  22 2c 2c 71 25 0d 16 76  |dowState",,q%..v|
00003050  0f f2 69 6e 66 6f 28 71  25 2b 34 29 0d 16 80 05  |..info(q%+4)....|
00003060  e1 0d 16 8a 04 0d 16 94  13 dd 20 f2 5f 50 75 74  |.......... ._Put|
00003070  44 6f 77 6e 28 71 25 29  0d 16 9e 0b ea 20 68 25  |Down(q%)..... h%|
00003080  2c 69 25 0d 16 a8 23 f4  20 53 59 53 20 22 57 69  |,i%...#. SYS "Wi|
00003090  6d 70 5f 47 65 74 50 6f  69 6e 74 65 72 49 6e 66  |mp_GetPointerInf|
000030a0  6f 22 2c 2c 71 25 0d 16  b2 0d f2 5f 47 65 74 4e  |o",,q%....._GetN|
000030b0  61 6d 65 0d 16 bc 20 c8  99 20 22 57 69 6d 70 5f  |ame... .. "Wimp_|
000030c0  47 65 74 50 6f 69 6e 74  65 72 49 6e 66 6f 22 2c  |GetPointerInfo",|
000030d0  2c 71 25 0d 16 c6 15 68  25 3d 71 25 21 31 32 3a  |,q%....h%=q%!12:|
000030e0  69 25 3d 71 25 21 31 36  0d 16 d0 23 e7 20 a7 20  |i%=q%!16...#. . |
000030f0  66 6e 24 2c 22 3a 22 29  20 8c 20 66 6e 24 3d a4  |fn$,":") . fn$=.|
00003100  5f 73 70 61 74 68 28 66  6e 24 29 0d 16 da 10 24  |_spath(fn$)....$|
00003110  28 71 25 2b 34 34 29 3d  66 6e 24 0d 16 e4 15 3f  |(q%+44)=fn$....?|
00003120  28 71 25 2b 34 34 2b a9  28 66 6e 24 29 29 3d 30  |(q%+44+.(fn$))=0|
00003130  0d 16 ee 3b 71 25 21 32  30 3d 71 25 21 31 32 3a  |...;q%!20=q%!12:|
00003140  71 25 21 32 38 3d 71 25  21 30 3a 71 25 21 33 32  |q%!28=q%!0:q%!32|
00003150  3d 71 25 21 34 3a 71 25  21 33 36 3d 31 30 32 34  |=q%!4:q%!36=1024|
00003160  3a 71 25 21 34 30 3d 26  46 46 43 0d 16 f8 1b 71  |:q%!40=&FFC....q|
00003170  25 21 30 3d 35 36 3a 71  25 21 31 32 3d 30 3a 71  |%!0=56:q%!12=0:q|
00003180  25 21 31 36 3d 31 0d 17  02 25 c8 99 20 22 57 69  |%!16=1...%.. "Wi|
00003190  6d 70 5f 53 65 6e 64 4d  65 73 73 61 67 65 22 2c  |mp_SendMessage",|
000031a0  31 37 2c 71 25 2c 68 25  2c 69 25 0d 17 0c 11 73  |17,q%,h%,i%....s|
000031b0  61 76 65 72 65 66 25 3d  71 25 21 38 0d 17 16 1c  |averef%=q%!8....|
000031c0  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |.. "Wimp_CreateM|
000031d0  65 6e 75 22 2c 2c 2d 31  0d 17 20 05 e1 0d 17 2a  |enu",,-1.. ....*|
000031e0  04 0d 17 34 12 dd 20 f2  67 65 74 69 28 68 25 2c  |...4.. .geti(h%,|
000031f0  69 25 29 0d 17 3e 2d 21  71 25 3d 68 25 3a 71 25  |i%)..>-!q%=h%:q%|
00003200  21 34 3d 69 25 3a c8 99  20 22 57 69 6d 70 5f 47  |!4=i%:.. "Wimp_G|
00003210  65 74 49 63 6f 6e 53 74  61 74 65 22 2c 2c 71 25  |etIconState",,q%|
00003220  0d 17 48 2e 69 78 30 25  3d 71 25 21 38 3a 69 79  |..H.ix0%=q%!8:iy|
00003230  30 25 3d 71 25 21 31 32  3a 69 78 31 25 3d 71 25  |0%=q%!12:ix1%=q%|
00003240  21 31 36 3a 69 79 31 25  3d 71 25 21 32 30 0d 17  |!16:iy1%=q%!20..|
00003250  52 1e 69 66 6c 61 67 73  25 3d 71 25 21 32 34 3a  |R.iflags%=q%!24:|
00003260  69 64 61 74 61 25 3d 71  25 2b 32 38 0d 17 5c 05  |idata%=q%+28..\.|
00003270  e1 0d 17 66 04 0d 17 70  0f dd 20 f2 69 6e 66 6f  |...f...p.. .info|
00003280  28 70 25 29 0d 17 7a 0d  ea 20 78 30 25 2c 79 30  |(p%)..z.. x0%,y0|
00003290  25 0d 17 84 27 78 30 25  3d 21 70 25 3a 79 30 25  |%...'x0%=!p%:y0%|
000032a0  3d 70 25 21 34 3a 78 31  25 3d 70 25 21 38 3a 79  |=p%!4:x1%=p%!8:y|
000032b0  31 25 3d 70 25 21 31 32  0d 17 8e 35 73 63 78 25  |1%=p%!12...5scx%|
000032c0  3d 70 25 21 31 36 3a 73  63 79 25 3d 70 25 21 32  |=p%!16:scy%=p%!2|
000032d0  30 3a 62 68 61 6e 64 6c  65 25 3d 70 25 21 32 34  |0:bhandle%=p%!24|
000032e0  3a 66 6c 61 67 73 25 3d  70 25 21 32 38 0d 17 98  |:flags%=p%!28...|
000032f0  1d 62 78 25 3d 78 30 25  2d 73 63 78 25 3a 62 79  |.bx%=x0%-scx%:by|
00003300  25 3d 79 31 25 2d 73 63  79 25 0d 17 a2 05 e1 0d  |%=y1%-scy%......|
00003310  17 ac 04 0d 17 b6 10 dd  20 f2 5f 4b 65 79 50 72  |........ ._KeyPr|
00003320  65 73 73 0d 17 c0 0d c8  8e 20 71 25 21 30 20 ca  |ess...... q%!0 .|
00003330  0d 17 ca 25 c9 20 73 61  76 65 57 25 20 3a 20 e7  |...%. saveW% : .|
00003340  20 71 25 21 32 34 3d 31  33 20 8c 20 f2 69 53 61  | q%!24=13 . .iSa|
00003350  76 65 28 32 29 0d 17 d4  20 7f 3a 20 c8 99 22 57  |ve(2)... .: .."W|
00003360  69 6d 70 5f 50 72 6f 63  65 73 73 4b 65 79 22 2c  |imp_ProcessKey",|
00003370  71 25 21 32 34 0d 17 de  05 cb 0d 17 e8 05 e1 0d  |q%!24...........|
00003380  17 f2 04 0d 17 fc 0c dd  20 f2 43 69 6e 69 74 0d  |........ .Cinit.|
00003390  18 06 0b ea 20 41 25 2c  42 25 0d 18 10 08 ef 20  |.... A%,B%..... |
000033a0  32 31 0d 18 1a 12 e3 20  41 25 3d 30 20 b8 20 32  |21..... A%=0 . 2|
000033b0  20 88 20 32 0d 18 24 0c  50 25 3d 43 6f 64 65 25  | . 2..$.P%=Code%|
000033c0  0d 18 2e 05 5b 0d 18 38  0a 4f 50 54 20 41 25 0d  |....[..8.OPT A%.|
000033d0  18 42 1b 2e 58 6f 66 66  20 45 51 55 44 20 30 20  |.B..Xoff EQUD 0 |
000033e0  5c 20 58 20 6f 66 66 73  65 74 0d 18 4c 1c 2e 59  |\ X offset..L..Y|
000033f0  6f 66 66 20 45 51 55 44  20 30 20 20 5c 20 59 20  |off EQUD 0  \ Y |
00003400  6f 66 66 73 65 74 0d 18  56 24 2e 59 6f 66 66 53  |offset..V$.YoffS|
00003410  20 45 51 55 44 20 30 20  20 5c 20 53 74 6f 72 65  | EQUD 0  \ Store|
00003420  64 20 59 20 6f 66 66 73  65 74 0d 18 60 22 2e 59  |d Y offset..`".Y|
00003430  73 63 61 6c 65 20 45 51  55 44 20 30 20 20 5c 20  |scale EQUD 0  \ |
00003440  59 20 6d 75 6c 74 69 70  6c 69 65 72 0d 18 6a 26  |Y multiplier..j&|
00003450  2e 4f 64 64 45 76 65 6e  20 45 51 55 44 20 31 20  |.OddEven EQUD 1 |
00003460  20 5c 20 4f 64 64 20 65  76 65 6e 20 62 75 66 66  | \ Odd even buff|
00003470  65 72 0d 18 74 25 2e 54  72 69 67 4c 20 45 51 55  |er..t%.TrigL EQU|
00003480  44 20 31 32 38 20 20 20  5c 20 54 72 69 67 67 65  |D 128   \ Trigge|
00003490  72 20 6c 65 76 65 6c 0d  18 7e 32 2e 46 69 72 65  |r level..~2.Fire|
000034a0  64 20 45 51 55 44 20 30  20 20 20 20 20 20 5c 20  |d EQUD 0      \ |
000034b0  5a 65 72 6f 20 69 66 20  6e 6f 74 20 46 69 72 65  |Zero if not Fire|
000034c0  64 20 74 72 69 67 67 65  72 0d 18 88 30 2e 42 75  |d trigger...0.Bu|
000034d0  66 50 31 20 45 51 55 44  20 54 72 61 63 65 31 25  |fP1 EQUD Trace1%|
000034e0  20 5c 20 50 6f 69 6e 74  73 20 74 6f 20 74 68 65  | \ Points to the|
000034f0  20 62 75 66 66 65 72 20  31 0d 18 92 2d 2e 42 75  | buffer 1...-.Bu|
00003500  66 50 32 20 45 51 55 44  20 54 72 61 63 65 32 25  |fP2 EQUD Trace2%|
00003510  20 20 5c 20 50 6f 69 6e  74 73 20 74 6f 20 62 75  |  \ Points to bu|
00003520  66 66 65 72 20 32 0d 18  9c 28 2e 58 73 63 61 6c  |ffer 2...(.Xscal|
00003530  65 20 45 51 55 44 20 32  20 20 20 20 20 20 20 20  |e EQUD 2        |
00003540  5c 20 58 20 6d 75 6c 74  69 70 6c 69 65 72 0d 18  |\ X multiplier..|
00003550  a6 32 2e 4e 64 61 74 20  20 20 45 51 55 44 20 31  |.2.Ndat   EQUD 1|
00003560  20 20 20 20 20 20 20 20  20 5c 20 44 61 74 61 20  |         \ Data |
00003570  62 79 74 65 20 69 6e 63  72 65 6d 65 6e 74 65 72  |byte incrementer|
00003580  0d 18 b0 29 2e 42 73 69  7a 65 20 20 45 51 55 44  |...).Bsize  EQUD|
00003590  20 33 34 34 20 20 20 20  20 20 20 20 5c 20 42 75  | 344        \ Bu|
000035a0  66 66 65 72 20 73 69 7a  65 0d 18 ba 39 2e 42 6f  |ffer size...9.Bo|
000035b0  66 66 20 20 20 45 51 55  44 20 30 20 20 20 20 20  |ff   EQUD 0     |
000035c0  20 20 20 20 20 20 5c 20  42 75 66 66 65 72 20 6f  |      \ Buffer o|
000035d0  66 66 73 65 74 20 66 6f  72 20 58 20 73 63 72 6f  |ffset for X scro|
000035e0  6c 6c 0d 18 c4 3f 2e 54  73 69 7a 65 20 20 45 51  |ll...?.Tsize  EQ|
000035f0  55 44 20 33 30 20 20 20  20 20 20 20 20 20 20 20  |UD 30           |
00003600  5c 20 44 69 73 74 61 6e  63 65 20 62 65 74 77 65  |\ Distance betwe|
00003610  65 6e 20 30 20 61 6e 64  20 31 20 73 74 61 74 65  |en 0 and 1 state|
00003620  73 0d 18 ce 2d 2e 54 62  69 74 73 20 20 45 51 55  |s...-.Tbits  EQU|
00003630  44 20 30 20 20 20 20 20  20 20 20 20 20 20 20 20  |D 0             |
00003640  5c 20 54 72 69 67 67 65  72 20 62 69 74 73 0d 18  |\ Trigger bits..|
00003650  d8 2e 2e 54 6d 61 73 6b  20 20 45 51 55 44 20 30  |...Tmask  EQUD 0|
00003660  20 20 20 20 20 20 20 20  20 20 20 20 20 20 5c 20  |              \ |
00003670  54 72 69 67 67 65 72 20  6d 61 73 6b 0d 18 e2 2e  |Trigger mask....|
00003680  2e 44 65 6c 61 79 20 20  45 51 55 44 20 30 20 20  |.Delay  EQUD 0  |
00003690  20 20 20 20 20 20 20 20  20 20 20 20 20 5c 20 44  |             \ D|
000036a0  65 6c 61 79 20 76 61 6c  75 65 0d 18 ec 04 0d 18  |elay value......|
000036b0  f6 0b 2e 45 74 72 61 63  65 0d 19 00 14 53 54 4d  |...Etrace....STM|
000036c0  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 19 0a  |FD R13!,{R14}...|
000036d0  11 4c 44 52 20 52 31 32  2c 54 73 69 7a 65 0d 19  |.LDR R12,Tsize..|
000036e0  14 0f 4c 44 52 20 52 35  2c 59 6f 66 66 0d 19 1e  |..LDR R5,Yoff...|
000036f0  0f 4c 44 52 20 52 36 2c  58 6f 66 66 0d 19 28 0d  |.LDR R6,Xoff..(.|
00003700  4d 4f 56 20 52 39 2c 23  30 0d 19 32 12 4c 44 52  |MOV R9,#0..2.LDR|
00003710  20 52 31 30 2c 58 73 63  61 6c 65 0d 19 3c 10 4c  | R10,Xscale..<.L|
00003720  44 52 20 52 31 31 2c 4e  64 61 74 0d 19 46 12 4c  |DR R11,Ndat..F.L|
00003730  44 52 20 52 31 2c 4f 64  64 45 76 65 6e 0d 19 50  |DR R1,OddEven..P|
00003740  0d 54 53 54 20 52 31 2c  23 31 0d 19 5a 12 4c 44  |.TST R1,#1..Z.LD|
00003750  52 4e 45 20 52 37 2c 42  75 66 50 31 0d 19 64 12  |RNE R7,BufP1..d.|
00003760  4c 44 52 45 51 20 52 37  2c 42 75 66 50 32 0d 19  |LDREQ R7,BufP2..|
00003770  6e 0f 4c 44 52 20 52 32  2c 42 6f 66 66 0d 19 78  |n.LDR R2,Boff..x|
00003780  10 41 44 44 20 52 37 2c  52 37 2c 52 32 0d 19 82  |.ADD R7,R7,R2...|
00003790  10 4c 44 52 20 52 32 2c  42 73 69 7a 65 0d 19 8c  |.LDR R2,Bsize...|
000037a0  10 41 44 44 20 52 38 2c  52 37 2c 52 32 0d 19 96  |.ADD R8,R7,R2...|
000037b0  0d 4d 4f 56 20 52 34 2c  23 30 0d 19 a0 17 5c 20  |.MOV R4,#0....\ |
000037c0  53 65 74 20 47 72 65 79  20 74 6f 20 65 72 61 73  |Set Grey to eras|
000037d0  65 0d 19 aa 11 4d 4f 56  20 52 31 2c 23 26 39 39  |e....MOV R1,#&99|
000037e0  30 30 0d 19 b4 13 4d 4f  56 20 52 30 2c 23 26 39  |00....MOV R0,#&9|
000037f0  39 30 30 30 30 0d 19 be  0f 84 52 20 52 30 2c 52  |90000.....R R0,R|
00003800  30 2c 52 31 0d 19 c8 15  4d 4f 56 20 52 31 2c 23  |0,R1....MOV R1,#|
00003810  26 39 39 30 30 30 30 30  30 0d 19 d2 0f 84 52 20  |&99000000.....R |
00003820  52 30 2c 52 30 2c 52 31  0d 19 dc 22 53 57 49 20  |R0,R0,R1..."SWI |
00003830  26 34 30 37 34 34 20 5c  20 47 65 74 20 43 6f 6c  |&40744 \ Get Col|
00003840  6f 75 72 20 6e 75 6d 62  65 72 0d 19 e6 0d 4d 4f  |our number....MO|
00003850  56 20 52 31 2c 52 30 0d  19 f0 0d 4d 4f 56 20 52  |V R1,R0....MOV R|
00003860  30 2c 23 30 0d 19 fa 1a  53 57 49 20 26 36 31 20  |0,#0....SWI &61 |
00003870  5c 20 4f 53 5f 53 65 74  43 6f 6c 6f 75 72 0d 1a  |\ OS_SetColour..|
00003880  04 08 2e 4e 74 65 0d 1a  0e 09 42 4c 20 44 54 0d  |...Nte....BL DT.|
00003890  1a 18 12 4c 44 52 20 52  31 2c 4f 64 64 45 76 65  |...LDR R1,OddEve|
000038a0  6e 0d 1a 22 0d 54 53 54  20 52 31 2c 23 31 0d 1a  |n..".TST R1,#1..|
000038b0  2c 12 4c 44 52 4e 45 20  52 37 2c 42 75 66 50 31  |,.LDRNE R7,BufP1|
000038c0  0d 1a 36 12 4c 44 52 45  51 20 52 37 2c 42 75 66  |..6.LDREQ R7,Buf|
000038d0  50 32 0d 1a 40 0f 4c 44  52 20 52 32 2c 42 6f 66  |P2..@.LDR R2,Bof|
000038e0  66 0d 1a 4a 10 41 44 44  20 52 37 2c 52 37 2c 52  |f..J.ADD R7,R7,R|
000038f0  32 0d 1a 54 10 4c 44 52  20 52 32 2c 42 73 69 7a  |2..T.LDR R2,Bsiz|
00003900  65 0d 1a 5e 0d 4d 4f 56  20 52 34 2c 23 30 0d 1a  |e..^.MOV R4,#0..|
00003910  68 11 41 44 44 20 52 35  2c 52 35 2c 23 35 36 0d  |h.ADD R5,R5,#56.|
00003920  1a 72 10 41 44 44 20 52  39 2c 52 39 2c 23 31 0d  |.r.ADD R9,R9,#1.|
00003930  1a 7c 0d 54 53 54 20 52  39 2c 23 38 0d 1a 86 0b  |.|.TST R9,#8....|
00003940  42 45 51 20 4e 74 65 0d  1a 90 1d 4c 44 4d 46 44  |BEQ Nte....LDMFD|
00003950  20 52 31 33 21 2c 20 7b  50 43 7d 20 5c 20 52 65  | R13!, {PC} \ Re|
00003960  74 75 72 6e 0d 1a 9a 04  0d 1a a4 0b 2e 44 74 72  |turn.........Dtr|
00003970  61 63 65 0d 1a ae 14 53  54 4d 46 44 20 52 31 33  |ace....STMFD R13|
00003980  21 2c 7b 52 31 34 7d 0d  1a b8 11 4c 44 52 20 52  |!,{R14}....LDR R|
00003990  31 32 2c 54 73 69 7a 65  0d 1a c2 0f 4c 44 52 20  |12,Tsize....LDR |
000039a0  52 35 2c 59 6f 66 66 0d  1a cc 0f 4c 44 52 20 52  |R5,Yoff....LDR R|
000039b0  36 2c 58 6f 66 66 0d 1a  d6 0d 4d 4f 56 20 52 39  |6,Xoff....MOV R9|
000039c0  2c 23 30 0d 1a e0 12 4c  44 52 20 52 31 30 2c 58  |,#0....LDR R10,X|
000039d0  73 63 61 6c 65 0d 1a ea  10 4c 44 52 20 52 31 31  |scale....LDR R11|
000039e0  2c 4e 64 61 74 0d 1a f4  12 4c 44 52 20 52 31 2c  |,Ndat....LDR R1,|
000039f0  4f 64 64 45 76 65 6e 0d  1a fe 0d 54 53 54 20 52  |OddEven....TST R|
00003a00  31 2c 23 31 0d 1b 08 12  4c 44 52 45 51 20 52 37  |1,#1....LDREQ R7|
00003a10  2c 42 75 66 50 31 0d 1b  12 12 4c 44 52 4e 45 20  |,BufP1....LDRNE |
00003a20  52 37 2c 42 75 66 50 32  0d 1b 1c 0f 4c 44 52 20  |R7,BufP2....LDR |
00003a30  52 32 2c 42 6f 66 66 0d  1b 26 10 41 44 44 20 52  |R2,Boff..&.ADD R|
00003a40  37 2c 52 37 2c 52 32 0d  1b 30 10 4c 44 52 20 52  |7,R7,R2..0.LDR R|
00003a50  32 2c 42 73 69 7a 65 0d  1b 3a 0d 4d 4f 56 20 52  |2,Bsize..:.MOV R|
00003a60  34 2c 23 30 0d 1b 44 1d  5c 20 53 65 74 20 47 72  |4,#0..D.\ Set Gr|
00003a70  65 65 6e 20 74 6f 20 64  72 61 77 20 74 72 61 63  |een to draw trac|
00003a80  65 0d 1b 4e 13 4d 4f 56  20 52 30 2c 23 26 45 45  |e..N.MOV R0,#&EE|
00003a90  30 30 30 30 0d 1b 58 22  53 57 49 20 26 34 30 37  |0000..X"SWI &407|
00003aa0  34 34 20 5c 20 47 65 74  20 43 6f 6c 6f 75 72 20  |44 \ Get Colour |
00003ab0  6e 75 6d 62 65 72 0d 1b  62 0d 4d 4f 56 20 52 31  |number..b.MOV R1|
00003ac0  2c 52 30 0d 1b 6c 0d 4d  4f 56 20 52 30 2c 23 30  |,R0..l.MOV R0,#0|
00003ad0  0d 1b 76 1a 53 57 49 20  26 36 31 20 5c 20 4f 53  |..v.SWI &61 \ OS|
00003ae0  5f 53 65 74 43 6f 6c 6f  75 72 0d 1b 80 07 2e 4e  |_SetColour.....N|
00003af0  74 0d 1b 8a 09 42 4c 20  44 54 0d 1b 94 12 4c 44  |t....BL DT....LD|
00003b00  52 20 52 31 2c 4f 64 64  45 76 65 6e 0d 1b 9e 0d  |R R1,OddEven....|
00003b10  54 53 54 20 52 31 2c 23  31 0d 1b a8 12 4c 44 52  |TST R1,#1....LDR|
00003b20  45 51 20 52 37 2c 42 75  66 50 31 0d 1b b2 12 4c  |EQ R7,BufP1....L|
00003b30  44 52 4e 45 20 52 37 2c  42 75 66 50 32 0d 1b bc  |DRNE R7,BufP2...|
00003b40  0f 4c 44 52 20 52 32 2c  42 6f 66 66 0d 1b c6 10  |.LDR R2,Boff....|
00003b50  41 44 44 20 52 37 2c 52  37 2c 52 32 0d 1b d0 10  |ADD R7,R7,R2....|
00003b60  4c 44 52 20 52 32 2c 42  73 69 7a 65 0d 1b da 0d  |LDR R2,Bsize....|
00003b70  4d 4f 56 20 52 34 2c 23  30 0d 1b e4 11 41 44 44  |MOV R4,#0....ADD|
00003b80  20 52 35 2c 52 35 2c 23  35 36 0d 1b ee 10 41 44  | R5,R5,#56....AD|
00003b90  44 20 52 39 2c 52 39 2c  23 31 0d 1b f8 0d 54 53  |D R9,R9,#1....TS|
00003ba0  54 20 52 39 2c 23 38 0d  1c 02 0a 42 45 51 20 4e  |T R9,#8....BEQ N|
00003bb0  74 0d 1c 0c 1d 4c 44 4d  46 44 20 52 31 33 21 2c  |t....LDMFD R13!,|
00003bc0  20 7b 50 43 7d 20 5c 20  52 65 74 75 72 6e 0d 1c  | {PC} \ Return..|
00003bd0  16 04 0d 1c 20 07 2e 44  54 0d 1c 2a 14 53 54 4d  |.... ..DT..*.STM|
00003be0  46 44 20 52 31 33 21 2c  7b 52 31 34 7d 0d 1c 34  |FD R13!,{R14}..4|
00003bf0  14 4c 44 52 42 20 52 33  2c 5b 52 37 5d 2c 52 31  |.LDRB R3,[R7],R1|
00003c00  31 0d 1c 3e 14 4d 4f 56  20 52 33 2c 52 33 2c 4c  |1..>.MOV R3,R3,L|
00003c10  53 52 20 52 39 0d 1c 48  0f 80 53 20 52 33 2c 52  |SR R9..H..S R3,R|
00003c20  33 2c 23 31 0d 1c 52 13  41 44 44 4e 45 20 52 33  |3,#1..R.ADDNE R3|
00003c30  2c 52 33 2c 52 31 32 0d  1c 5c 1b 4d 4f 56 20 52  |,R3,R12..\.MOV R|
00003c40  30 2c 23 36 39 20 5c 20  50 6f 69 6e 74 20 70 6c  |0,#69 \ Point pl|
00003c50  6f 74 0d 1c 66 1b 41 44  44 20 52 32 2c 52 35 2c  |ot..f.ADD R2,R5,|
00003c60  52 33 20 20 5c 20 59 20  76 61 6c 75 65 0d 1c 70  |R3  \ Y value..p|
00003c70  1a 41 44 44 20 52 31 2c  52 36 2c 52 34 20 5c 20  |.ADD R1,R6,R4 \ |
00003c80  58 20 76 61 6c 75 65 0d  1c 7a 14 53 57 49 20 26  |X value..z.SWI &|
00003c90  34 35 20 5c 20 ef 20 50  6c 6f 74 0d 1c 84 11 41  |45 \ . Plot....A|
00003ca0  44 44 20 52 31 2c 52 31  2c 52 31 30 0d 1c 8e 0d  |DD R1,R1,R10....|
00003cb0  4d 4f 56 20 52 30 2c 23  35 0d 1c 98 0b 53 57 49  |MOV R0,#5....SWI|
00003cc0  20 26 34 35 0d 1c a2 11  41 44 44 20 52 34 2c 52  | &45....ADD R4,R|
00003cd0  34 2c 52 31 30 0d 1c ac  04 0d 1c b6 09 2e 4c 6f  |4,R10.........Lo|
00003ce0  6f 70 0d 1c c0 14 4c 44  52 42 20 52 33 2c 5b 52  |op....LDRB R3,[R|
00003cf0  37 5d 2c 52 31 31 0d 1c  ca 14 4d 4f 56 20 52 33  |7],R11....MOV R3|
00003d00  2c 52 33 2c 4c 53 52 20  52 39 0d 1c d4 0f 80 53  |,R3,LSR R9.....S|
00003d10  20 52 33 2c 52 33 2c 23  31 0d 1c de 13 41 44 44  | R3,R3,#1....ADD|
00003d20  4e 45 20 52 33 2c 52 33  2c 52 31 32 0d 1c e8 19  |NE R3,R3,R12....|
00003d30  4d 4f 56 20 52 30 2c 23  35 20 5c 20 4c 69 6e 65  |MOV R0,#5 \ Line|
00003d40  20 70 6c 6f 74 0d 1c f2  1b 41 44 44 20 52 32 2c  | plot....ADD R2,|
00003d50  52 35 2c 52 33 20 20 5c  20 59 20 76 61 6c 75 65  |R5,R3  \ Y value|
00003d60  0d 1c fc 1a 41 44 44 20  52 31 2c 52 36 2c 52 34  |....ADD R1,R6,R4|
00003d70  20 5c 20 58 20 76 61 6c  75 65 0d 1d 06 14 53 57  | \ X value....SW|
00003d80  49 20 26 34 35 20 5c 20  ef 20 50 6c 6f 74 0d 1d  |I &45 \ . Plot..|
00003d90  10 11 41 44 44 20 52 31  2c 52 31 2c 52 31 30 0d  |..ADD R1,R1,R10.|
00003da0  1d 1a 22 53 57 49 20 26  34 35 20 5c 20 50 6c 6f  |.."SWI &45 \ Plo|
00003db0  74 20 48 6f 72 69 7a 6f  6e 74 61 6c 20 6c 69 6e  |t Horizontal lin|
00003dc0  65 0d 1d 24 25 41 44 44  20 52 34 2c 52 34 2c 52  |e..$%ADD R4,R4,R|
00003dd0  31 30 20 5c 20 49 6e 63  72 65 6d 65 6e 74 20 58  |10 \ Increment X|
00003de0  20 76 61 6c 75 65 0d 1d  2e 0f 43 4d 50 20 52 34  | value....CMP R4|
00003df0  2c 23 36 38 38 0d 1d 38  0c 42 4c 54 20 4c 6f 6f  |,#688..8.BLT Loo|
00003e00  70 0d 1d 42 2d 4c 44 4d  46 44 20 52 31 33 21 2c  |p..B-LDMFD R13!,|
00003e10  20 7b 50 43 7d 20 5c 20  42 41 43 4b 20 46 52 4f  | {PC} \ BACK FRO|
00003e20  4d 20 c9 53 54 20 59 4f  55 20 43 41 4d 45 0d 1d  |M .ST YOU CAME..|
00003e30  4c 04 0d 1d 56 0b 2e 49  6e 70 75 74 53 0d 1d 60  |L...V..InputS..`|
00003e40  14 53 54 4d 46 44 20 52  31 33 21 2c 7b 52 31 34  |.STMFD R13!,{R14|
00003e50  7d 0d 1d 6a 1c 5c 4d 61  6b 65 20 70 72 69 6e 74  |}..j.\Make print|
00003e60  65 72 20 50 6f 72 74 20  69 6e 70 75 74 0d 1d 74  |er Port input..t|
00003e70  0d 4d 4f 56 20 52 30 2c  23 32 0d 1d 7e 0f 4d 4f  |.MOV R0,#2..~.MO|
00003e80  56 20 52 31 2c 23 26 32  30 0d 1d 88 0f 4d 4f 56  |V R1,#&20....MOV|
00003e90  20 52 32 2c 23 26 44 46  0d 1d 92 21 53 57 49 20  | R2,#&DF...!SWI |
00003ea0  26 34 32 45 43 31 20 20  5c 20 50 61 72 61 6c 6c  |&42EC1  \ Parall|
00003eb0  65 6c 20 6f 75 74 70 75  74 0d 1d 9c 36 4d 4f 56  |el output...6MOV|
00003ec0  20 52 31 30 2c 23 26 31  30 30 30 30 20 5c 20 4e  | R10,#&10000 \ N|
00003ed0  75 6d 62 65 72 20 6f 66  20 6c 6f 6f 6b 73 20 62  |umber of looks b|
00003ee0  65 66 6f 72 65 20 67 69  76 69 6e 67 20 75 70 0d  |efore giving up.|
00003ef0  1d a6 0d 4d 4f 56 20 52  30 2c 23 30 0d 1d b0 10  |...MOV R0,#0....|
00003f00  41 44 52 20 52 37 2c 46  69 72 65 64 0d 1d ba 2b  |ADR R7,Fired...+|
00003f10  53 54 52 20 52 30 2c 5b  52 37 5d 20 5c 20 43 6c  |STR R0,[R7] \ Cl|
00003f20  65 61 72 20 6f 75 74 20  66 69 72 65 64 20 69 6e  |ear out fired in|
00003f30  64 69 63 61 74 6f 72 0d  1d c4 12 4c 44 52 20 52  |dicator....LDR R|
00003f40  31 2c 4f 64 64 45 76 65  6e 0d 1d ce 0d 54 53 54  |1,OddEven....TST|
00003f50  20 52 31 2c 23 31 0d 1d  d8 12 4c 44 52 4e 45 20  | R1,#1....LDRNE |
00003f60  52 36 2c 42 75 66 50 32  0d 1d e2 12 4c 44 52 45  |R6,BufP2....LDRE|
00003f70  51 20 52 36 2c 42 75 66  50 31 0d 1d ec 10 4c 44  |Q R6,BufP1....LD|
00003f80  52 20 52 38 2c 42 73 69  7a 65 0d 1d f6 10 4c 44  |R R8,Bsize....LD|
00003f90  52 20 52 37 2c 54 6d 61  73 6b 0d 1e 00 10 4c 44  |R R7,Tmask....LD|
00003fa0  52 20 52 35 2c 54 62 69  74 73 0d 1e 0a 11 41 44  |R R5,Tbits....AD|
00003fb0  52 20 52 31 31 2c 44 65  6c 61 79 0d 1e 14 04 0d  |R R11,Delay.....|
00003fc0  1e 1e 0e 4d 4f 56 20 52  39 2c 52 31 35 0d 1e 28  |...MOV R9,R15..(|
00003fd0  14 53 57 49 20 22 4f 53  5f 45 6e 74 65 72 4f 53  |.SWI "OS_EnterOS|
00003fe0  22 0d 1e 32 29 54 45 51  50 20 52 31 35 2c 23 26  |"..2)TEQP R15,#&|
00003ff0  43 30 30 30 30 30 33 20  5c 20 44 49 53 41 42 4c  |C000003 \ DISABL|
00004000  45 20 a8 45 52 52 55 50  54 53 0d 1e 3c 0f 4d 4f  |E .ERRUPTS..<.MO|
00004010  56 4e 56 20 52 30 2c 52  30 0d 1e 46 04 0d 1e 50  |VNV R0,R0..F...P|
00004020  0d 4d 4f 56 20 52 30 2c  23 30 0d 1e 5a 11 41 44  |.MOV R0,#0..Z.AD|
00004030  52 20 52 31 31 2c 44 65  6c 61 79 0d 1e 64 22 54  |R R11,Delay..d"T|
00004040  45 51 20 52 37 2c 23 30  20 5c 20 53 6b 69 70 20  |EQ R7,#0 \ Skip |
00004050  69 66 20 6e 6f 20 74 72  69 67 67 65 72 0d 1e 6e  |if no trigger..n|
00004060  0e 42 45 51 20 47 61 74  68 65 72 0d 1e 78 0a 2e  |.BEQ Gather..x..|
00004070  4e 74 72 69 67 0d 1e 82  13 53 55 42 53 20 52 31  |Ntrig....SUBS R1|
00004080  30 2c 52 31 30 2c 23 31  0d 1e 8c 0c 42 45 51 20  |0,R10,#1....BEQ |
00004090  45 78 69 74 0d 1e 96 1c  53 57 49 20 26 34 32 45  |Exit....SWI &42E|
000040a0  43 31 20 5c 20 47 65 74  20 74 72 69 67 67 65 72  |C1 \ Get trigger|
000040b0  0d 1e a0 0e 80 20 52 34  2c 52 31 2c 52 37 0d 1e  |..... R4,R1,R7..|
000040c0  aa 0d 43 4d 50 20 52 34  2c 52 35 0d 1e b4 0d 42  |..CMP R4,R5....B|
000040d0  45 51 20 4e 74 72 69 67  0d 1e be 04 0d 1e c8 0b  |EQ Ntrig........|
000040e0  2e 4e 74 72 69 67 32 0d  1e d2 13 53 55 42 53 20  |.Ntrig2....SUBS |
000040f0  52 31 30 2c 52 31 30 2c  23 31 0d 1e dc 0c 42 45  |R10,R10,#1....BE|
00004100  51 20 45 78 69 74 0d 1e  e6 1c 53 57 49 20 26 34  |Q Exit....SWI &4|
00004110  32 45 43 31 20 5c 20 47  65 74 20 74 72 69 67 67  |2EC1 \ Get trigg|
00004120  65 72 0d 1e f0 0e 80 20  52 34 2c 52 31 2c 52 37  |er..... R4,R1,R7|
00004130  0d 1e fa 0d 43 4d 50 20  52 34 2c 52 35 0d 1f 04  |....CMP R4,R5...|
00004140  0e 42 4e 45 20 4e 74 72  69 67 32 0d 1f 0e 08 42  |.BNE Ntrig2....B|
00004150  20 53 67 0d 1f 18 0b 2e  47 61 74 68 65 72 0d 1f  | Sg.....Gather..|
00004160  22 1e 53 57 49 20 26 34  32 45 43 31 20 5c 20 47  |".SWI &42EC1 \ G|
00004170  65 74 65 20 74 68 65 20  64 61 74 61 0d 1f 2c 07  |ete the data..,.|
00004180  2e 53 67 0d 1f 36 13 53  54 52 42 20 52 31 2c 5b  |.Sg..6.STRB R1,[|
00004190  52 36 5d 2c 23 31 0d 1f  40 22 4c 44 52 20 52 37  |R6],#1..@"LDR R7|
000041a0  2c 5b 52 31 31 5d 20 5c  20 47 65 74 20 44 65 6c  |,[R11] \ Get Del|
000041b0  61 79 20 76 61 6c 75 65  0d 1f 4a 0d 54 45 51 20  |ay value..J.TEQ |
000041c0  52 37 2c 23 30 0d 1f 54  0a 42 45 51 20 4e 64 0d  |R7,#0..T.BEQ Nd.|
000041d0  1f 5e 07 2e 44 31 0d 1f  68 26 53 57 49 20 26 34  |.^..D1..h&SWI &4|
000041e0  32 45 43 31 20 5c 20 44  75 6d 6d 79 20 69 6e 70  |2EC1 \ Dummy inp|
000041f0  75 74 20 66 6f 72 20 64  65 6c 61 79 0d 1f 72 11  |ut for delay..r.|
00004200  53 55 42 53 20 52 37 2c  52 37 2c 23 31 0d 1f 7c  |SUBS R7,R7,#1..||
00004210  0a 42 4e 45 20 44 31 0d  1f 86 07 2e 4e 64 0d 1f  |.BNE D1.....Nd..|
00004220  90 11 53 55 42 53 20 52  38 2c 52 38 2c 23 31 0d  |..SUBS R8,R8,#1.|
00004230  1f 9a 0e 42 4e 45 20 47  61 74 68 65 72 0d 1f a4  |...BNE Gather...|
00004240  10 41 44 52 20 52 37 2c  46 69 72 65 64 0d 1f ae  |.ADR R7,Fired...|
00004250  31 53 54 52 20 52 36 2c  5b 52 37 5d 20 20 20 5c  |1STR R6,[R7]   \|
00004260  49 6e 64 69 63 61 74 65  20 64 61 74 61 20 68 61  |Indicate data ha|
00004270  73 20 62 65 65 6e 20 67  61 74 68 65 72 64 0d 1f  |s been gatherd..|
00004280  b8 09 2e 45 78 69 74 0d  1f c2 0e 54 45 51 50 20  |...Exit....TEQP |
00004290  52 39 2c 23 30 0d 1f cc  0f 4d 4f 56 4e 56 20 52  |R9,#0....MOVNV R|
000042a0  30 2c 52 30 0d 1f d6 2d  4c 44 4d 46 44 20 52 31  |0,R0...-LDMFD R1|
000042b0  33 21 2c 20 7b 50 43 7d  20 5c 20 42 41 43 4b 20  |3!, {PC} \ BACK |
000042c0  46 52 4f 4d 20 c9 53 54  20 59 4f 55 20 43 41 4d  |FROM .ST YOU CAM|
000042d0  45 0d 1f e0 04 0d 1f ea  0b 2e 49 6e 70 75 74 45  |E.........InputE|
000042e0  0d 1f f4 14 53 54 4d 46  44 20 52 31 33 21 2c 7b  |....STMFD R13!,{|
000042f0  52 31 34 7d 0d 1f fe 1c  5c 4d 61 6b 65 20 70 72  |R14}....\Make pr|
00004300  69 6e 74 65 72 20 50 6f  72 74 20 69 6e 70 75 74  |inter Port input|
00004310  0d 20 08 0d 4d 4f 56 20  52 30 2c 23 32 0d 20 12  |. ..MOV R0,#2. .|
00004320  0f 4d 4f 56 20 52 31 2c  23 26 32 30 0d 20 1c 0f  |.MOV R1,#&20. ..|
00004330  4d 4f 56 20 52 32 2c 23  26 44 46 0d 20 26 21 53  |MOV R2,#&DF. &!S|
00004340  57 49 20 26 34 32 45 43  31 20 20 5c 20 50 61 72  |WI &42EC1  \ Par|
00004350  61 6c 6c 65 6c 20 6f 75  74 70 75 74 0d 20 30 2c  |allel output. 0,|
00004360  4d 4f 56 20 52 31 30 2c  23 26 38 30 30 30 20 5c  |MOV R10,#&8000 \|
00004370  20 4e 75 6d 62 65 72 20  62 65 66 6f 72 65 20 67  | Number before g|
00004380  69 76 69 6e 67 20 75 70  0d 20 3a 0d 4d 4f 56 20  |iving up. :.MOV |
00004390  52 30 2c 23 30 0d 20 44  10 41 44 52 20 52 37 2c  |R0,#0. D.ADR R7,|
000043a0  46 69 72 65 64 0d 20 4e  2b 53 54 52 20 52 30 2c  |Fired. N+STR R0,|
000043b0  5b 52 37 5d 20 5c 20 43  6c 65 61 72 20 6f 75 74  |[R7] \ Clear out|
000043c0  20 66 69 72 65 64 20 69  6e 64 69 63 61 74 6f 72  | fired indicator|
000043d0  0d 20 58 12 4c 44 52 20  52 31 2c 4f 64 64 45 76  |. X.LDR R1,OddEv|
000043e0  65 6e 0d 20 62 0d 54 53  54 20 52 31 2c 23 31 0d  |en. b.TST R1,#1.|
000043f0  20 6c 12 4c 44 52 4e 45  20 52 36 2c 42 75 66 50  | l.LDRNE R6,BufP|
00004400  32 0d 20 76 12 4c 44 52  45 51 20 52 36 2c 42 75  |2. v.LDREQ R6,Bu|
00004410  66 50 31 0d 20 80 10 4c  44 52 20 52 38 2c 42 73  |fP1. ..LDR R8,Bs|
00004420  69 7a 65 0d 20 8a 10 4c  44 52 20 52 37 2c 54 6d  |ize. ..LDR R7,Tm|
00004430  61 73 6b 0d 20 94 10 4c  44 52 20 52 35 2c 54 62  |ask. ..LDR R5,Tb|
00004440  69 74 73 0d 20 9e 04 0d  20 a8 0e 4d 4f 56 20 52  |its. ... ..MOV R|
00004450  39 2c 52 31 35 0d 20 b2  14 53 57 49 20 22 4f 53  |9,R15. ..SWI "OS|
00004460  5f 45 6e 74 65 72 4f 53  22 0d 20 bc 29 54 45 51  |_EnterOS". .)TEQ|
00004470  50 20 52 31 35 2c 23 26  43 30 30 30 30 30 33 20  |P R15,#&C000003 |
00004480  5c 20 44 49 53 41 42 4c  45 20 a8 45 52 52 55 50  |\ DISABLE .ERRUP|
00004490  54 53 0d 20 c6 0f 4d 4f  56 4e 56 20 52 30 2c 52  |TS. ..MOVNV R0,R|
000044a0  30 0d 20 d0 04 0d 20 da  0d 4d 4f 56 20 52 30 2c  |0. ... ..MOV R0,|
000044b0  23 30 0d 20 e4 0d 4d 4f  56 20 52 30 2c 23 30 0d  |#0. ..MOV R0,#0.|
000044c0  20 ee 22 54 45 51 20 52  37 2c 23 30 20 5c 20 53  | ."TEQ R7,#0 \ S|
000044d0  6b 69 70 20 69 66 20 6e  6f 20 74 72 69 67 67 65  |kip if no trigge|
000044e0  72 0d 20 f8 0f 42 45 51  20 47 61 74 68 65 72 45  |r. ..BEQ GatherE|
000044f0  0d 21 02 04 0d 21 0c 0c  2e 4e 74 72 69 67 45 32  |.!...!...NtrigE2|
00004500  0d 21 16 13 53 55 42 53  20 52 31 30 2c 52 31 30  |.!..SUBS R10,R10|
00004510  2c 23 31 0d 21 20 0d 42  45 51 20 45 78 69 74 45  |,#1.! .BEQ ExitE|
00004520  0d 21 2a 2f 53 57 49 20  26 34 32 45 43 31 20 5c  |.!*/SWI &42EC1 \|
00004530  20 4c 6f 6f 6b 20 66 6f  72 20 6e 6f 74 20 74 72  | Look for not tr|
00004540  69 67 67 65 72 20 63 6f  6e 64 69 74 69 6f 6e 0d  |igger condition.|
00004550  21 34 0f 54 53 54 20 52  32 2c 23 26 38 30 0d 21  |!4.TST R2,#&80.!|
00004560  3e 0f 42 45 51 20 4e 74  72 69 67 45 32 0d 21 48  |>.BEQ NtrigE2.!H|
00004570  0e 80 20 52 34 2c 52 31  2c 52 37 0d 21 52 0d 43  |.. R4,R1,R7.!R.C|
00004580  4d 50 20 52 34 2c 52 35  0d 21 5c 0f 42 45 51 20  |MP R4,R5.!\.BEQ |
00004590  4e 74 72 69 67 45 32 0d  21 66 04 0d 21 70 0b 2e  |NtrigE2.!f..!p..|
000045a0  4e 74 72 69 67 45 0d 21  7a 13 53 55 42 53 20 52  |NtrigE.!z.SUBS R|
000045b0  31 30 2c 52 31 30 2c 23  31 0d 21 84 0d 42 45 51  |10,R10,#1.!..BEQ|
000045c0  20 45 78 69 74 45 0d 21  8e 2b 53 57 49 20 26 34  | ExitE.!.+SWI &4|
000045d0  32 45 43 31 20 5c 20 4c  6f 6f 6b 20 66 6f 72 20  |2EC1 \ Look for |
000045e0  74 72 69 67 67 65 72 20  63 6f 6e 64 69 74 69 6f  |trigger conditio|
000045f0  6e 0d 21 98 0f 54 53 54  20 52 32 2c 23 26 38 30  |n.!..TST R2,#&80|
00004600  0d 21 a2 0e 42 45 51 20  4e 74 72 69 67 45 0d 21  |.!..BEQ NtrigE.!|
00004610  ac 0e 80 20 52 34 2c 52  31 2c 52 37 0d 21 b6 0d  |... R4,R1,R7.!..|
00004620  43 4d 50 20 52 34 2c 52  35 0d 21 c0 0e 42 4e 45  |CMP R4,R5.!..BNE|
00004630  20 4e 74 72 69 67 45 0d  21 ca 04 0d 21 d4 09 42  | NtrigE.!...!..B|
00004640  20 53 67 45 0d 21 de 0c  2e 47 61 74 68 65 72 45  | SgE.!...GatherE|
00004650  0d 21 e8 0e 53 57 49 20  26 34 32 45 43 31 0d 21  |.!..SWI &42EC1.!|
00004660  f2 0f 54 53 54 20 52 32  2c 23 26 38 30 0d 21 fc  |..TST R2,#&80.!.|
00004670  0f 42 45 51 20 47 61 74  68 65 72 45 0d 22 06 08  |.BEQ GatherE."..|
00004680  2e 53 67 45 0d 22 10 13  53 54 52 42 20 52 31 2c  |.SgE."..STRB R1,|
00004690  5b 52 36 5d 2c 23 31 0d  22 1a 07 2e 48 48 0d 22  |[R6],#1."...HH."|
000046a0  24 0e 53 57 49 20 26 34  32 45 43 31 0d 22 2e 0f  |$.SWI &42EC1."..|
000046b0  54 53 54 20 52 32 2c 23  26 38 30 0d 22 38 0a 42  |TST R2,#&80."8.B|
000046c0  4e 45 20 48 48 0d 22 42  11 53 55 42 53 20 52 38  |NE HH."B.SUBS R8|
000046d0  2c 52 38 2c 23 31 0d 22  4c 0f 42 4e 45 20 47 61  |,R8,#1."L.BNE Ga|
000046e0  74 68 65 72 45 0d 22 56  10 41 44 52 20 52 37 2c  |therE."V.ADR R7,|
000046f0  46 69 72 65 64 0d 22 60  31 53 54 52 20 52 36 2c  |Fired."`1STR R6,|
00004700  5b 52 37 5d 20 20 20 5c  49 6e 64 69 63 61 74 65  |[R7]   \Indicate|
00004710  20 64 61 74 61 20 68 61  73 20 62 65 65 6e 20 67  | data has been g|
00004720  61 74 68 65 72 64 0d 22  6a 0a 2e 45 78 69 74 45  |atherd."j..ExitE|
00004730  0d 22 74 0e 54 45 51 50  20 52 39 2c 23 30 0d 22  |."t.TEQP R9,#0."|
00004740  7e 0f 4d 4f 56 4e 56 20  52 30 2c 52 30 0d 22 88  |~.MOVNV R0,R0.".|
00004750  2d 4c 44 4d 46 44 20 52  31 33 21 2c 20 7b 50 43  |-LDMFD R13!, {PC|
00004760  7d 20 5c 20 42 41 43 4b  20 46 52 4f 4d 20 c9 53  |} \ BACK FROM .S|
00004770  54 20 59 4f 55 20 43 41  4d 45 0d 22 92 04 0d 22  |T YOU CAME."..."|
00004780  9c 05 5d 0d 22 a6 05 ed  0d 22 b0 06 ef 36 0d 22  |..]."...."...6."|
00004790  ba 04 0d 22 c4 09 f2 6d  65 6d 57 0d 22 ce 0e e3  |..."...memW."...|
000047a0  20 41 25 3d 30 20 b8 20  37 0d 22 d8 0d 54 62 25  | A%=0 . 7."..Tb%|
000047b0  28 41 25 29 3d 32 0d 22  e2 05 ed 0d 22 ec 0b f2  |(A%)=2."...."...|
000047c0  72 6f 6e 28 33 29 0d 22  f6 04 0d 23 00 0e e3 20  |ron(3)."...#... |
000047d0  41 25 3d 30 20 b8 20 35  0d 23 0a 0a f3 20 42 25  |A%=0 . 5.#... B%|
000047e0  2c 43 0d 23 14 13 53 72  61 74 65 25 28 41 25 29  |,C.#..Srate%(A%)|
000047f0  3d 42 25 2d 31 0d 23 1e  0d 54 70 73 28 41 25 29  |=B%-1.#..Tps(A%)|
00004800  3d 43 0d 23 28 05 ed 0d  23 32 34 dc 20 30 2c 30  |=C.#(...#24. 0,0|
00004810  2e 30 30 32 35 2c 34 2c  30 2e 30 31 2c 32 30 2c  |.0025,4,0.01,20,|
00004820  30 2e 30 35 2c 34 30 2c  30 2e 31 2c 32 30 30 2c  |0.05,40,0.1,200,|
00004830  30 2e 35 2c 34 30 30 2c  31 2e 30 0d 23 3c 05 e1  |0.5,400,1.0.#<..|
00004840  0d 23 46 04 0d 23 50 3d  f4 20 4d 61 6b 65 20 73  |.#F..#P=. Make s|
00004850  6d 61 6c 6c 20 61 64 6a  75 73 74 6d 65 6e 74 73  |mall adjustments|
00004860  20 74 6f 20 74 68 65 20  73 69 7a 65 20 6f 66 20  | to the size of |
00004870  69 63 6f 6e 73 20 66 6f  72 20 72 65 66 72 65 73  |icons for refres|
00004880  68 0d 23 5a 0e dd 20 f2  61 64 6a 75 73 74 49 0d  |h.#Z.. .adjustI.|
00004890  23 64 04 0d 23 6e 19 49  59 25 28 30 29 2b 3d 35  |#d..#n.IY%(0)+=5|
000048a0  36 3a 49 58 25 28 30 29  2b 3d 39 38 0d 23 78 1b  |6:IX%(0)+=98.#x.|
000048b0  49 59 31 25 28 30 29 2d  3d 33 38 3a 49 58 31 25  |IY1%(0)-=38:IX1%|
000048c0  28 30 29 2d 3d 33 38 0d  23 82 05 e1 0d 23 8c 04  |(0)-=38.#....#..|
000048d0  0d 23 96 0b dd 20 f2 6d  65 6d 57 0d 23 a0 15 e3  |.#... .memW.#...|
000048e0  20 41 25 3d 30 20 b8 20  32 37 35 32 20 88 20 34  | A%=0 . 2752 . 4|
000048f0  0d 23 aa 10 54 72 61 63  65 31 25 21 41 25 3d 30  |.#..Trace1%!A%=0|
00004900  0d 23 b4 10 54 72 61 63  65 32 25 21 41 25 3d 30  |.#..Trace2%!A%=0|
00004910  0d 23 be 05 ed 0d 23 c8  3c c8 99 22 57 69 6d 70  |.#....#.<.."Wimp|
00004920  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 6d 6f  |_ForceRedraw",mo|
00004930  6e 57 25 2c 49 58 25 28  30 29 2c 49 59 25 28 30  |nW%,IX%(0),IY%(0|
00004940  29 2c 49 58 31 25 28 30  29 2c 49 59 31 25 28 30  |),IX1%(0),IY1%(0|
00004950  29 0d 23 d2 0c f2 61 6e  61 6c 69 73 65 0d 23 dc  |).#...analise.#.|
00004960  05 e1 0d 23 e6 04 0d 23  f0 0b dd 20 f2 5f 53 53  |...#...#... ._SS|
00004970  53 0d 23 fa 1b f4 20 53  65 74 20 75 70 20 53 6c  |S.#... Set up Sl|
00004980  69 64 65 72 20 53 70 72  69 74 65 73 0d 24 04 0e  |ider Sprites.$..|
00004990  53 50 25 21 30 3d 53 50  72 25 0d 24 0e 0c 53 50  |SP%!0=SPr%.$..SP|
000049a0  25 21 38 3d 31 36 0d 24  18 1d c8 99 22 4f 53 5f  |%!8=16.$...."OS_|
000049b0  53 70 72 69 74 65 4f 70  22 2c 39 2b 32 35 36 2c  |SpriteOp",9+256,|
000049c0  53 50 25 0d 24 22 34 c8  99 22 4f 53 5f 53 70 72  |SP%.$"4.."OS_Spr|
000049d0  69 74 65 4f 70 22 2c 31  31 2b 32 35 36 2c 53 50  |iteOp",11+256,SP|
000049e0  25 2c 22 3c 4c 53 63 6f  70 65 24 44 69 72 3e 2e  |%,"<LScope$Dir>.|
000049f0  53 6c 69 64 65 72 22 0d  24 2c 23 47 34 25 3f 30  |Slider".$,#G4%?0|
00004a00  3d 30 3a 47 34 25 3f 31  3d 33 3a 47 34 25 3f 32  |=0:G4%?1=3:G4%?2|
00004a10  3d 30 3a 47 34 25 3f 33  3d 31 0d 24 36 15 e3 20  |=0:G4%?3=1.$6.. |
00004a20  41 25 3d 30 20 b8 20 31  30 32 34 20 88 20 34 0d  |A%=0 . 1024 . 4.|
00004a30  24 40 0c 47 35 25 3f 41  25 3d 30 0d 24 4a 11 47  |$@.G5%?A%=0.$J.G|
00004a40  35 25 3f 28 41 25 2b 31  29 3d 41 25 0d 24 54 11  |5%?(A%+1)=A%.$T.|
00004a50  47 35 25 3f 28 41 25 2b  32 29 3d 41 25 0d 24 5e  |G5%?(A%+2)=A%.$^|
00004a60  11 47 35 25 3f 28 41 25  2b 33 29 3d 41 25 0d 24  |.G5%?(A%+3)=A%.$|
00004a70  68 05 ed 0d 24 72 0a 53  74 74 25 3d 30 0d 24 7c  |h...$r.Stt%=0.$||
00004a80  07 f2 74 74 0d 24 86 05  e1 0d 24 90 04 0d 24 9a  |..tt.$....$...$.|
00004a90  09 dd 20 f2 74 74 0d 24  a4 2e c8 99 22 4f 53 5f  |.. .tt.$...."OS_|
00004aa0  52 65 61 64 4d 6f 64 65  56 61 72 69 61 62 6c 65  |ReadModeVariable|
00004ab0  22 2c 2d 31 2c 33 20 b8  20 2c 2c 4e 63 6f 6c 6f  |",-1,3 . ,,Ncolo|
00004ac0  75 72 73 25 0d 24 ae 5c  e7 20 4e 63 6f 6c 6f 75  |urs%.$.\. Ncolou|
00004ad0  72 73 25 3d 33 20 8c 20  53 74 74 25 3d 47 34 25  |rs%=3 . Stt%=G4%|
00004ae0  20 8b 20 c8 99 22 43 6f  6c 6f 75 72 54 72 61 6e  | . .."ColourTran|
00004af0  73 5f 53 65 6c 65 63 74  54 61 62 6c 65 22 2c 53  |s_SelectTable",S|
00004b00  50 25 2c 22 73 6c 69 64  65 68 22 2c 2d 31 2c 2d  |P%,"slideh",-1,-|
00004b10  31 2c 47 35 25 2c 30 3a  53 74 74 25 3d 47 35 25  |1,G5%,0:Stt%=G5%|
00004b20  0d 24 b8 05 e1 0d 24 c2  04 0d 24 cc 0a dd 20 f2  |.$....$...$... .|
00004b30  72 78 73 0d 24 d6 0f 53  6c 69 64 65 25 28 32 29  |rxs.$..Slide%(2)|
00004b40  3d 30 0d 24 e0 0b 21 42  6f 66 66 3d 30 0d 24 ea  |=0.$..!Boff=0.$.|
00004b50  40 c8 99 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |@.."Wimp_ForceRe|
00004b60  64 72 61 77 22 2c 6d 6f  6e 57 25 2c 49 58 25 28  |draw",monW%,IX%(|
00004b70  31 39 29 2c 49 59 25 28  31 39 29 2c 49 58 31 25  |19),IY%(19),IX1%|
00004b80  28 31 39 29 2c 49 59 31  25 28 31 39 29 0d 24 f4  |(19),IY1%(19).$.|
00004b90  05 e1 0d 24 fe 04 0d 25  08 0e dd 20 f2 72 6f 6e  |...$...%... .ron|
00004ba0  28 6e 25 29 0d 25 12 0b  ea 20 54 25 2c 41 25 0d  |(n%).%... T%,A%.|
00004bb0  25 1c 0d 54 25 3d 21 42  73 69 7a 65 0d 25 26 0c  |%..T%=!Bsize.%&.|
00004bc0  20 c8 8e 20 6e 25 20 ca  0d 25 30 32 20 c9 20 30  | .. n% ..%02 . 0|
00004bd0  3a 20 21 58 73 63 61 6c  65 3d 31 20 3a 21 4e 64  |: !Xscale=1 :!Nd|
00004be0  61 74 3d 34 20 3a 21 42  73 69 7a 65 3d 32 37 35  |at=4 :!Bsize=275|
00004bf0  32 20 20 3a 4e 63 4c 25  3d 30 0d 25 3a 35 20 c9  |2  :NcL%=0.%:5 .|
00004c00  20 31 3a 20 21 58 73 63  61 6c 65 3d 31 20 3a 21  | 1: !Xscale=1 :!|
00004c10  4e 64 61 74 3d 32 20 3a  21 42 73 69 7a 65 3d 31  |Ndat=2 :!Bsize=1|
00004c20  33 37 36 20 20 3a 4e 63  4c 25 3d 31 33 37 36 0d  |376  :NcL%=1376.|
00004c30  25 44 35 20 c9 20 32 3a  20 21 58 73 63 61 6c 65  |%D5 . 2: !Xscale|
00004c40  3d 31 20 3a 21 4e 64 61  74 3d 31 20 3a 21 42 73  |=1 :!Ndat=1 :!Bs|
00004c50  69 7a 65 3d 36 38 38 20  20 20 3a 4e 63 4c 25 3d  |ize=688   :NcL%=|
00004c60  32 30 36 34 0d 25 4e 35  20 c9 20 33 3a 20 21 58  |2064.%N5 . 3: !X|
00004c70  73 63 61 6c 65 3d 32 20  3a 21 4e 64 61 74 3d 31  |scale=2 :!Ndat=1|
00004c80  20 3a 21 42 73 69 7a 65  3d 33 34 34 20 20 20 3a  | :!Bsize=344   :|
00004c90  4e 63 4c 25 3d 32 34 30  38 0d 25 58 35 20 c9 20  |NcL%=2408.%X5 . |
00004ca0  34 3a 20 21 58 73 63 61  6c 65 3d 34 20 3a 21 4e  |4: !Xscale=4 :!N|
00004cb0  64 61 74 3d 31 20 3a 21  42 73 69 7a 65 3d 33 34  |dat=1 :!Bsize=34|
00004cc0  34 20 20 20 3a 4e 63 4c  25 3d 32 35 38 30 0d 25  |4   :NcL%=2580.%|
00004cd0  62 35 20 c9 20 35 3a 20  21 58 73 63 61 6c 65 3d  |b5 . 5: !Xscale=|
00004ce0  38 20 3a 21 4e 64 61 74  3d 31 20 3a 21 42 73 69  |8 :!Ndat=1 :!Bsi|
00004cf0  7a 65 3d 33 34 34 20 20  20 3a 4e 63 4c 25 3d 32  |ze=344   :NcL%=2|
00004d00  36 36 36 0d 25 6c 35 20  c9 20 36 3a 20 21 58 73  |666.%l5 . 6: !Xs|
00004d10  63 61 6c 65 3d 31 36 3a  21 4e 64 61 74 3d 31 20  |cale=16:!Ndat=1 |
00004d20  3a 21 42 73 69 7a 65 3d  33 34 34 20 20 20 3a 4e  |:!Bsize=344   :N|
00004d30  63 4c 25 3d 32 37 30 39  0d 25 76 06 20 cb 0d 25  |cL%=2709.%v. ..%|
00004d40  80 09 20 f2 72 78 73 0d  25 8a 0d 20 f2 61 6e 61  |.. .rxs.%.. .ana|
00004d50  6c 69 73 65 0d 25 94 3d  20 c8 99 22 57 69 6d 70  |lise.%.= .."Wimp|
00004d60  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 6d 6f  |_ForceRedraw",mo|
00004d70  6e 57 25 2c 49 58 25 28  30 29 2c 49 59 25 28 30  |nW%,IX%(0),IY%(0|
00004d80  29 2c 49 58 31 25 28 30  29 2c 49 59 31 25 28 30  |),IX1%(0),IY1%(0|
00004d90  29 0d 25 9e 0a 6e 25 2b  3d 31 32 0d 25 a8 1a 24  |).%..n%+=12.%..$|
00004da0  53 50 6f 69 6e 74 25 28  6e 25 29 3d 22 72 61 64  |SPoint%(n%)="rad|
00004db0  69 6f 6f 6e 22 0d 25 b2  41 20 c8 99 22 57 69 6d  |ioon".%.A .."Wim|
00004dc0  70 5f 46 6f 72 63 65 52  65 64 72 61 77 22 2c 6d  |p_ForceRedraw",m|
00004dd0  6f 6e 57 25 2c 49 58 25  28 6e 25 29 2c 49 59 25  |onW%,IX%(n%),IY%|
00004de0  28 6e 25 29 2c 49 58 31  25 28 6e 25 29 2c 49 59  |(n%),IX1%(n%),IY|
00004df0  31 25 28 6e 25 29 0d 25  bc 05 e1 0d 25 c6 04 0d  |1%(n%).%....%...|
00004e00  25 d0 0f dd 20 f2 72 6f  66 66 28 6e 25 29 0d 25  |%... .roff(n%).%|
00004e10  da 0a 6e 25 2b 3d 31 32  0d 25 e4 1b 24 53 50 6f  |..n%+=12.%..$SPo|
00004e20  69 6e 74 25 28 6e 25 29  3d 22 72 61 64 69 6f 6f  |int%(n%)="radioo|
00004e30  66 66 22 0d 25 ee 41 20  c8 99 22 57 69 6d 70 5f  |ff".%.A .."Wimp_|
00004e40  46 6f 72 63 65 52 65 64  72 61 77 22 2c 6d 6f 6e  |ForceRedraw",mon|
00004e50  57 25 2c 49 58 25 28 6e  25 29 2c 49 59 25 28 6e  |W%,IX%(n%),IY%(n|
00004e60  25 29 2c 49 58 31 25 28  6e 25 29 2c 49 59 31 25  |%),IX1%(n%),IY1%|
00004e70  28 6e 25 29 0d 25 f8 05  e1 0d 26 02 04 0d 26 0c  |(n%).%....&...&.|
00004e80  10 dd 20 f2 64 72 61 77  73 63 6f 70 65 0d 26 16  |.. .drawscope.&.|
00004e90  20 20 20 20 20 20 20 20  20 c8 99 22 57 69 6d 70  |         .."Wimp|
00004ea0  5f 53 65 74 43 6f 6c 6f  75 72 22 2c 32 0d 26 20  |_SetColour",2.& |
00004eb0  21 20 20 20 20 20 20 20  20 c8 93 c8 90 20 78 6f  |!        .... xo|
00004ec0  25 2c 79 6f 25 2c 31 31  34 30 2c 37 32 34 0d 26  |%,yo%,1140,724.&|
00004ed0  2a 31 e7 20 28 28 71 25  21 34 30 29 3e 28 79 6f  |*1. ((q%!40)>(yo|
00004ee0  25 2b 32 31 34 29 29 20  80 20 28 28 71 25 21 32  |%+214)) . ((q%!2|
00004ef0  38 29 3c 28 78 6f 25 2b  37 38 38 29 29 20 8c 0d  |8)<(xo%+788)) ..|
00004f00  26 34 20 20 20 20 20 20  20 20 20 c8 99 22 57 69  |&4         .."Wi|
00004f10  6d 70 5f 53 65 74 43 6f  6c 6f 75 72 22 2c 33 0d  |mp_SetColour",3.|
00004f20  26 3e 28 20 20 20 20 20  20 20 20 c8 93 c8 90 20  |&>(        .... |
00004f30  78 6f 25 2b 31 30 30 2c  79 6f 25 2b 32 31 38 2c  |xo%+100,yo%+218,|
00004f40  36 38 34 2c 34 37 34 0d  26 48 20 20 20 20 20 20  |684,474.&H      |
00004f50  20 20 20 c8 99 22 57 69  6d 70 5f 53 65 74 43 6f  |   .."Wimp_SetCo|
00004f60  6c 6f 75 72 22 2c 30 0d  26 52 19 20 20 20 20 20  |lour",0.&R.     |
00004f70  20 20 20 21 58 6f 66 66  3d 78 6f 25 2b 31 30 30  |   !Xoff=xo%+100|
00004f80  0d 26 5c 1d 20 20 20 20  20 20 20 20 21 59 6f 66  |.&\.        !Yof|
00004f90  66 3d 79 6f 25 2b 53 6c  69 64 65 4f 25 0d 26 66  |f=yo%+SlideO%.&f|
00004fa0  14 20 20 20 20 20 20 20  20 d6 20 44 74 72 61 63  |.        . Dtrac|
00004fb0  65 0d 26 70 64 20 20 20  20 20 20 20 20 e7 20 52  |e.&pd        . R|
00004fc0  65 66 42 75 74 25 3d 31  20 8c c8 99 22 57 69 6d  |efBut%=1 ..."Wim|
00004fd0  70 5f 53 65 74 43 6f 6c  6f 75 72 22 2c 31 35 3a  |p_SetColour",15:|
00004fe0  86 20 52 65 66 50 6f 69  6e 74 25 2b 78 6f 25 2b  |. RefPoint%+xo%+|
00004ff0  31 30 30 2c 79 6f 25 2b  32 31 38 2c 52 65 66 50  |100,yo%+218,RefP|
00005000  6f 69 6e 74 25 2b 78 6f  25 2b 31 30 30 2c 79 6f  |oint%+xo%+100,yo|
00005010  25 2b 36 39 34 0d 26 7a  06 20 cd 0d 26 84 05 e1  |%+694.&z. ..&...|
00005020  0d 26 8e 04 0d 26 98 04  0d 26 a2 13 dd 20 f2 64  |.&...&...&... .d|
00005030  72 61 77 63 6f 6e 74 72  6f 6c 73 0d 26 ac 40 c8  |rawcontrols.&.@.|
00005040  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 35  |."OS_SpriteOp",5|
00005050  32 2b 32 35 36 2c 53 50  25 2c 22 73 6c 69 64 65  |2+256,SP%,"slide|
00005060  68 22 2c 78 6f 25 2b 39  38 2c 79 6f 25 2b 38 34  |h",xo%+98,yo%+84|
00005070  2c 26 31 38 2c 30 2c 53  74 74 25 0d 26 b6 4c c8  |,&18,0,Stt%.&.L.|
00005080  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 35  |."OS_SpriteOp",5|
00005090  32 2b 32 35 36 2c 53 50  25 2c 22 73 6c 69 64 65  |2+256,SP%,"slide|
000050a0  74 75 22 2c 78 6f 25 2b  31 30 38 2b 53 6c 69 64  |tu",xo%+108+Slid|
000050b0  65 25 28 32 29 2c 79 6f  25 2b 38 36 2c 26 31 38  |e%(2),yo%+86,&18|
000050c0  2c 30 2c 53 74 74 25 0d  26 c0 05 e1 0d 26 ca 04  |,0,Stt%.&....&..|
000050d0  0d 26 d4 0e dd 20 f2 72  65 66 72 65 73 68 0d 26  |.&... .refresh.&|
000050e0  de 12 f2 5f 54 72 61 6e  73 28 6d 6f 6e 57 25 29  |..._Trans(monW%)|
000050f0  0d 26 e8 19 20 20 20 20  20 20 20 20 21 58 6f 66  |.&..        !Xof|
00005100  66 3d 78 6f 25 2b 31 30  30 0d 26 f2 1d 20 20 20  |f=xo%+100.&..   |
00005110  20 20 20 20 20 21 59 6f  66 66 3d 79 6f 25 2b 53  |     !Yoff=yo%+S|
00005120  6c 69 64 65 4f 25 0d 26  fc 20 20 20 20 20 20 20  |lideO%.&.       |
00005130  20 20 c8 99 22 57 69 6d  70 5f 53 65 74 43 6f 6c  |  .."Wimp_SetCol|
00005140  6f 75 72 22 2c 39 0d 27  06 44 20 20 71 25 21 30  |our",9.'.D  q%!0|
00005150  3d 6d 6f 6e 57 25 3a 71  25 21 34 3d 49 58 25 28  |=monW%:q%!4=IX%(|
00005160  30 29 3a 71 25 21 38 3d  49 59 25 28 30 29 3a 71  |0):q%!8=IY%(0):q|
00005170  25 21 31 32 3d 49 58 31  25 28 30 29 3a 71 25 21  |%!12=IX1%(0):q%!|
00005180  31 36 3d 49 59 31 25 28  30 29 0d 27 10 27 20 20  |16=IY1%(0).'.'  |
00005190  c8 99 22 57 69 6d 70 5f  55 70 64 61 74 65 57 69  |.."Wimp_UpdateWi|
000051a0  6e 64 6f 77 22 2c 2c 71  25 20 b8 20 4d 6f 72 65  |ndow",,q% . More|
000051b0  25 0d 27 1a 04 0d 27 24  0d 20 c8 95 20 4d 6f 72  |%.'...'$. .. Mor|
000051c0  65 25 0d 27 2e 17 20 20  f4 20 44 72 61 77 20 74  |e%.'..  . Draw t|
000051d0  68 65 20 77 69 6e 64 6f  77 0d 27 38 14 20 20 20  |he window.'8.   |
000051e0  20 20 20 20 20 d6 20 45  74 72 61 63 65 0d 27 42  |     . Etrace.'B|
000051f0  14 20 20 20 20 20 20 20  20 d6 20 44 74 72 61 63  |.        . Dtrac|
00005200  65 0d 27 4c 27 20 20 c8  99 22 57 69 6d 70 5f 47  |e.'L'  .."Wimp_G|
00005210  65 74 52 65 63 74 61 6e  67 6c 65 22 2c 2c 71 25  |etRectangle",,q%|
00005220  20 b8 20 4d 6f 72 65 25  0d 27 56 06 20 ce 0d 27  | . More%.'V. ..'|
00005230  60 05 e1 0d 27 6a 04 0d  27 74 19 f4 20 4a 75 73  |`...'j..'t.. Jus|
00005240  74 20 64 72 61 77 20 74  68 65 20 74 72 61 63 65  |t draw the trace|
00005250  0d 27 7e 09 dd 20 f2 6a  64 0d 27 88 12 f2 5f 54  |.'~.. .jd.'..._T|
00005260  72 61 6e 73 28 6d 6f 6e  57 25 29 0d 27 92 19 20  |rans(monW%).'.. |
00005270  20 20 20 20 20 20 20 21  58 6f 66 66 3d 78 6f 25  |       !Xoff=xo%|
00005280  2b 31 30 30 0d 27 9c 1d  20 20 20 20 20 20 20 20  |+100.'..        |
00005290  21 59 6f 66 66 3d 79 6f  25 2b 53 6c 69 64 65 4f  |!Yoff=yo%+SlideO|
000052a0  25 0d 27 a6 20 20 20 20  20 20 20 20 20 c8 99 22  |%.'.         .."|
000052b0  57 69 6d 70 5f 53 65 74  43 6f 6c 6f 75 72 22 2c  |Wimp_SetColour",|
000052c0  39 0d 27 b0 44 20 20 71  25 21 30 3d 6d 6f 6e 57  |9.'.D  q%!0=monW|
000052d0  25 3a 71 25 21 34 3d 49  58 25 28 30 29 3a 71 25  |%:q%!4=IX%(0):q%|
000052e0  21 38 3d 49 59 25 28 30  29 3a 71 25 21 31 32 3d  |!8=IY%(0):q%!12=|
000052f0  49 58 31 25 28 30 29 3a  71 25 21 31 36 3d 49 59  |IX1%(0):q%!16=IY|
00005300  31 25 28 30 29 0d 27 ba  27 20 20 c8 99 22 57 69  |1%(0).'.'  .."Wi|
00005310  6d 70 5f 55 70 64 61 74  65 57 69 6e 64 6f 77 22  |mp_UpdateWindow"|
00005320  2c 2c 71 25 20 b8 20 4d  6f 72 65 25 0d 27 c4 04  |,,q% . More%.'..|
00005330  0d 27 ce 0d 20 c8 95 20  4d 6f 72 65 25 0d 27 d8  |.'.. .. More%.'.|
00005340  14 20 20 20 20 20 20 20  20 d6 20 44 74 72 61 63  |.        . Dtrac|
00005350  65 0d 27 e2 66 20 20 20  20 20 20 20 20 e7 20 52  |e.'.f        . R|
00005360  65 66 42 75 74 25 3c 3e  30 20 8c 20 c8 99 22 57  |efBut%<>0 . .."W|
00005370  69 6d 70 5f 53 65 74 43  6f 6c 6f 75 72 22 2c 31  |imp_SetColour",1|
00005380  35 3a 86 20 52 65 66 50  6f 69 6e 74 25 2b 78 6f  |5:. RefPoint%+xo|
00005390  25 2b 31 30 30 2c 79 6f  25 2b 32 31 38 2c 52 65  |%+100,yo%+218,Re|
000053a0  66 50 6f 69 6e 74 25 2b  78 6f 25 2b 31 30 30 2c  |fPoint%+xo%+100,|
000053b0  79 6f 25 2b 36 39 34 0d  27 ec 27 20 20 c8 99 22  |yo%+694.'.'  .."|
000053c0  57 69 6d 70 5f 47 65 74  52 65 63 74 61 6e 67 6c  |Wimp_GetRectangl|
000053d0  65 22 2c 2c 71 25 20 b8  20 4d 6f 72 65 25 0d 27  |e",,q% . More%.'|
000053e0  f6 06 20 ce 0d 28 00 05  e1 0d 28 0a 04 0d 28 14  |.. ..(....(...(.|
000053f0  1a f4 20 4a 75 73 74 20  65 72 61 73 65 20 74 68  |.. Just erase th|
00005400  65 20 74 72 61 63 65 0d  28 1e 09 dd 20 f2 6a 65  |e trace.(... .je|
00005410  0d 28 28 12 f2 5f 54 72  61 6e 73 28 6d 6f 6e 57  |.((.._Trans(monW|
00005420  25 29 0d 28 32 19 20 20  20 20 20 20 20 20 21 58  |%).(2.        !X|
00005430  6f 66 66 3d 78 6f 25 2b  31 30 30 0d 28 3c 1d 20  |off=xo%+100.(<. |
00005440  20 20 20 20 20 20 20 21  59 6f 66 66 3d 79 6f 25  |       !Yoff=yo%|
00005450  2b 53 6c 69 64 65 4f 25  0d 28 46 20 20 20 20 20  |+SlideO%.(F     |
00005460  20 20 20 20 c8 99 22 57  69 6d 70 5f 53 65 74 43  |    .."Wimp_SetC|
00005470  6f 6c 6f 75 72 22 2c 39  0d 28 50 44 20 20 71 25  |olour",9.(PD  q%|
00005480  21 30 3d 6d 6f 6e 57 25  3a 71 25 21 34 3d 49 58  |!0=monW%:q%!4=IX|
00005490  25 28 30 29 3a 71 25 21  38 3d 49 59 25 28 30 29  |%(0):q%!8=IY%(0)|
000054a0  3a 71 25 21 31 32 3d 49  58 31 25 28 30 29 3a 71  |:q%!12=IX1%(0):q|
000054b0  25 21 31 36 3d 49 59 31  25 28 30 29 0d 28 5a 27  |%!16=IY1%(0).(Z'|
000054c0  20 20 c8 99 22 57 69 6d  70 5f 55 70 64 61 74 65  |  .."Wimp_Update|
000054d0  57 69 6e 64 6f 77 22 2c  2c 71 25 20 b8 20 4d 6f  |Window",,q% . Mo|
000054e0  72 65 25 0d 28 64 0d 20  c8 95 20 4d 6f 72 65 25  |re%.(d. .. More%|
000054f0  0d 28 6e 14 20 20 20 20  20 20 20 20 d6 20 45 74  |.(n.        . Et|
00005500  72 61 63 65 0d 28 78 27  20 20 c8 99 22 57 69 6d  |race.(x'  .."Wim|
00005510  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |p_GetRectangle",|
00005520  2c 71 25 20 b8 20 4d 6f  72 65 25 0d 28 82 06 20  |,q% . More%.(.. |
00005530  ce 0d 28 8c 05 e1 0d 28  96 04 0d 28 a0 04 0d 28  |..(....(...(...(|
00005540  aa 17 dd 20 f2 6d 65 61  73 75 72 65 28 4d 78 25  |... .measure(Mx%|
00005550  2c 4d 62 25 29 0d 28 b4  13 ea 20 58 25 2c 59 25  |,Mb%).(... X%,Y%|
00005560  2c 42 25 2c 74 2c 64 24  0d 28 be 15 f4 20 50 52  |,B%,t,d$.(... PR|
00005570  4f 43 5f 54 72 61 6e 73  28 77 68 25 29 0d 28 c8  |OC_Trans(wh%).(.|
00005580  0d e7 20 4d 62 25 3d 31  20 8c 0d 28 d2 11 e7 20  |.. Mb%=1 ..(... |
00005590  52 65 66 42 75 74 25 3d  30 20 8c 0d 28 dc 10 f2  |RefBut%=0 ..(...|
000055a0  61 64 64 52 65 66 28 4d  78 25 29 0d 28 e6 06 20  |addRef(Mx%).(.. |
000055b0  cc 0d 28 f0 40 20 20 20  20 c8 99 22 57 69 6d 70  |..(.@    .."Wimp|
000055c0  5f 46 6f 72 63 65 52 65  64 72 61 77 22 2c 6d 6f  |_ForceRedraw",mo|
000055d0  6e 57 25 2c 49 58 25 28  30 29 2c 49 59 25 28 30  |nW%,IX%(0),IY%(0|
000055e0  29 2c 49 58 31 25 28 30  29 2c 49 59 31 25 28 30  |),IX1%(0),IY1%(0|
000055f0  29 0d 28 fa 11 20 20 20  20 52 65 66 42 75 74 25  |).(..    RefBut%|
00005600  3d 30 0d 29 04 1b 20 20  20 20 24 53 50 6f 69 6e  |=0.)..    $SPoin|
00005610  74 25 28 32 31 29 3d 22  20 20 20 20 22 0d 29 0e  |t%(21)="    ".).|
00005620  44 20 20 20 20 c8 99 22  57 69 6d 70 5f 46 6f 72  |D    .."Wimp_For|
00005630  63 65 52 65 64 72 61 77  22 2c 6d 6f 6e 57 25 2c  |ceRedraw",monW%,|
00005640  49 58 25 28 32 31 29 2c  49 59 25 28 32 31 29 2c  |IX%(21),IY%(21),|
00005650  49 58 31 25 28 32 31 29  2c 49 59 31 25 28 32 31  |IX1%(21),IY1%(21|
00005660  29 0d 29 18 06 20 cd 0d  29 22 0d 20 f2 61 6e 61  |).).. ..)". .ana|
00005670  6c 69 73 65 0d 29 2c 19  20 f5 3a c8 97 20 58 25  |lise.),. .:.. X%|
00005680  2c 59 25 2c 42 25 3a fd  20 42 25 3d 30 0d 29 36  |,Y%,B%:. B%=0.)6|
00005690  06 20 cc 0d 29 40 13 20  20 e7 20 52 65 66 42 75  |. ..)@.  . RefBu|
000056a0  74 25 3d 31 20 8c 0d 29  4a 21 20 20 20 58 25 3d  |t%=1 ..)J!   X%=|
000056b0  28 4d 78 25 2d 78 6f 25  2d 31 30 32 29 2d 52 65  |(Mx%-xo%-102)-Re|
000056c0  66 50 6f 69 6e 74 25 0d  29 54 11 20 20 20 59 25  |fPoint%.)T.   Y%|
000056d0  3d 21 58 73 63 61 6c 65  0d 29 5e 18 20 20 20 e7  |=!Xscale.)^.   .|
000056e0  20 59 25 3e 31 20 8c 20  59 25 3d 59 25 3e 3e 31  | Y%>1 . Y%=Y%>>1|
000056f0  0d 29 68 1f 20 20 20 74  3d 28 58 25 2a 28 28 21  |.)h.   t=(X%*((!|
00005700  42 73 69 7a 65 29 2f 36  38 38 29 29 2f 59 25 0d  |Bsize)/688))/Y%.|
00005710  29 72 13 20 20 20 64 24  3d c3 28 74 2a 4d 73 70  |)r.   d$=.(t*Msp|
00005720  73 29 0d 29 7c 1c 20 20  20 e7 20 a9 28 64 24 29  |s).)|.   . .(d$)|
00005730  3e 36 20 8c 20 64 24 3d  c0 64 24 2c 36 29 0d 29  |>6 . d$=.d$,6).)|
00005740  86 16 20 20 20 24 53 50  6f 69 6e 74 25 28 32 31  |..   $SPoint%(21|
00005750  29 3d 64 24 0d 29 90 43  20 20 20 c8 99 22 57 69  |)=d$.).C   .."Wi|
00005760  6d 70 5f 46 6f 72 63 65  52 65 64 72 61 77 22 2c  |mp_ForceRedraw",|
00005770  6d 6f 6e 57 25 2c 49 58  25 28 32 31 29 2c 49 59  |monW%,IX%(21),IY|
00005780  25 28 32 31 29 2c 49 58  31 25 28 32 31 29 2c 49  |%(21),IX1%(21),I|
00005790  59 31 25 28 32 31 29 0d  29 9a 07 20 20 cc 0d 29  |Y1%(21).)..  ..)|
000057a0  a4 0a 20 20 20 ef 20 37  0d 29 ae 07 20 20 cd 0d  |..   . 7.)..  ..|
000057b0  29 b8 05 cd 0d 29 c2 04  0d 29 cc 05 e1 0d 29 d6  |)....)...)....).|
000057c0  04 0d 29 e0 12 dd 20 f2  61 64 64 52 65 66 28 4d  |..)... .addRef(M|
000057d0  78 25 29 0d 29 ea 08 ea  20 59 25 0d 29 f4 44 20  |x%).)... Y%.).D |
000057e0  20 71 25 21 30 3d 6d 6f  6e 57 25 3a 71 25 21 34  | q%!0=monW%:q%!4|
000057f0  3d 49 58 25 28 30 29 3a  71 25 21 38 3d 49 59 25  |=IX%(0):q%!8=IY%|
00005800  28 30 29 3a 71 25 21 31  32 3d 49 58 31 25 28 30  |(0):q%!12=IX1%(0|
00005810  29 3a 71 25 21 31 36 3d  49 59 31 25 28 30 29 0d  |):q%!16=IY1%(0).|
00005820  29 fe 27 20 20 c8 99 22  57 69 6d 70 5f 55 70 64  |).'  .."Wimp_Upd|
00005830  61 74 65 57 69 6e 64 6f  77 22 2c 2c 71 25 20 b8  |ateWindow",,q% .|
00005840  20 4d 6f 72 65 25 0d 2a  08 0d 20 c8 95 20 4d 6f  | More%.*.. .. Mo|
00005850  72 65 25 0d 2a 12 20 20  20 20 20 20 20 20 c8 99  |re%.*.        ..|
00005860  22 57 69 6d 70 5f 53 65  74 43 6f 6c 6f 75 72 22  |"Wimp_SetColour"|
00005870  2c 31 35 0d 2a 1c 24 20  20 20 20 20 20 20 86 20  |,15.*.$       . |
00005880  4d 78 25 2c 79 6f 25 2b  32 31 38 2c 4d 78 25 2c  |Mx%,yo%+218,Mx%,|
00005890  79 6f 25 2b 36 39 34 0d  2a 26 27 20 20 c8 99 22  |yo%+694.*&'  .."|
000058a0  57 69 6d 70 5f 47 65 74  52 65 63 74 61 6e 67 6c  |Wimp_GetRectangl|
000058b0  65 22 2c 2c 71 25 20 b8  20 4d 6f 72 65 25 0d 2a  |e",,q% . More%.*|
000058c0  30 06 20 ce 0d 2a 3a 1a  20 52 65 66 50 6f 69 6e  |0. ..*:. RefPoin|
000058d0  74 25 3d 4d 78 25 2d 78  6f 25 2d 31 30 32 0d 2a  |t%=Mx%-xo%-102.*|
000058e0  44 0f 20 52 65 66 42 75  74 25 2b 3d 31 0d 2a 4e  |D. RefBut%+=1.*N|
000058f0  11 20 20 20 59 25 3d 21  58 73 63 61 6c 65 0d 2a  |.   Y%=!Xscale.*|
00005900  58 18 20 20 20 e7 20 59  25 3e 31 20 8c 20 59 25  |X.   . Y%>1 . Y%|
00005910  3d 59 25 3e 3e 31 0d 2a  62 2c 20 20 20 52 65 66  |=Y%>>1.*b,   Ref|
00005920  4f 66 66 25 3d 28 52 65  66 50 6f 69 6e 74 25 2a  |Off%=(RefPoint%*|
00005930  28 28 21 42 73 69 7a 65  29 2f 36 38 38 29 29 2f  |((!Bsize)/688))/|
00005940  59 25 0d 2a 6c 05 20 0d  2a 76 05 e1 0d 2a 80 04  |Y%.*l. .*v...*..|
00005950  0d 2a 8a 0e dd 20 f2 61  6e 61 6c 69 73 65 0d 2a  |.*... .analise.*|
00005960  94 1d ea 20 70 25 2c 42  79 74 65 25 2c 42 25 2c  |... p%,Byte%,B%,|
00005970  41 25 2c 43 25 2c 45 25  2c 59 25 0d 2a 9e 2b f4  |A%,C%,E%,Y%.*.+.|
00005980  20 70 6f 69 6e 74 20 69  6e 74 6f 20 62 75 66 66  | point into buff|
00005990  65 72 20 74 6f 20 74 61  6b 65 20 6d 65 61 73 75  |er to take measu|
000059a0  72 65 6d 65 6e 74 0d 2a  a8 2e e7 20 52 65 66 42  |rement.*... RefB|
000059b0  75 74 25 3c 3e 30 20 8c  20 70 25 3d 21 42 6f 66  |ut%<>0 . p%=!Bof|
000059c0  66 2b 52 65 66 4f 66 66  25 20 8b 20 70 25 3d 21  |f+RefOff% . p%=!|
000059d0  42 6f 66 66 0d 2a b2 2c  e7 20 21 4f 64 64 45 76  |Boff.*.,. !OddEv|
000059e0  65 6e 20 3d 20 30 20 8c  20 42 25 3d 54 72 61 63  |en = 0 . B%=Trac|
000059f0  65 31 25 20 8b 20 42 25  3d 54 72 61 63 65 32 25  |e1% . B%=Trace2%|
00005a00  0d 2a bc 1d 43 25 3d 28  28 3f 28 42 25 2b 70 25  |.*..C%=((?(B%+p%|
00005a10  29 29 3e 3e 41 6e 43 25  29 20 80 20 31 0d 2a c6  |))>>AnC%) . 1.*.|
00005a20  2e e7 20 43 25 3d 30 20  8c 20 24 53 50 6f 69 6e  |.. C%=0 . $SPoin|
00005a30  74 25 28 31 29 3d 22 30  22 20 8b 20 24 53 50 6f  |t%(1)="0" . $SPo|
00005a40  69 6e 74 25 28 31 29 3d  22 31 22 0d 2a d0 3c c8  |int%(1)="1".*.<.|
00005a50  99 22 57 69 6d 70 5f 46  6f 72 63 65 52 65 64 72  |."Wimp_ForceRedr|
00005a60  61 77 22 2c 6d 6f 6e 57  25 2c 49 58 25 28 31 29  |aw",monW%,IX%(1)|
00005a70  2c 49 59 25 28 31 29 2c  49 58 31 25 28 31 29 2c  |,IY%(1),IX1%(1),|
00005a80  49 59 31 25 28 31 29 0d  2a da 09 41 25 3d 70 25  |IY1%(1).*..A%=p%|
00005a90  0d 2a e4 05 f5 0d 2a ee  1d 45 25 3d 28 28 3f 28  |.*....*..E%=((?(|
00005aa0  41 25 2b 42 25 29 29 3e  3e 41 6e 43 25 29 20 80  |A%+B%))>>AnC%) .|
00005ab0  20 31 0d 2a f8 09 41 25  2b 3d 31 0d 2b 02 16 fd  | 1.*..A%+=1.+...|
00005ac0  20 45 25 3c 3e 43 25 20  84 20 41 25 3d 32 37 35  | E%<>C% . A%=275|
00005ad0  33 0d 2b 0c 39 e7 20 41  25 3d 32 37 35 33 20 8c  |3.+.9. A%=2753 .|
00005ae0  20 24 53 50 6f 69 6e 74  25 28 39 29 3d 22 6e 6f  | $SPoint%(9)="no|
00005af0  6e 65 22 3a 4e 65 78 74  43 68 61 6e 67 65 25 3d  |ne":NextChange%=|
00005b00  30 20 8b 20 f2 64 65 66  4e 43 0d 2b 16 3c c8 99  |0 . .defNC.+.<..|
00005b10  22 57 69 6d 70 5f 46 6f  72 63 65 52 65 64 72 61  |"Wimp_ForceRedra|
00005b20  77 22 2c 6d 6f 6e 57 25  2c 49 58 25 28 39 29 2c  |w",monW%,IX%(9),|
00005b30  49 59 25 28 39 29 2c 49  58 31 25 28 39 29 2c 49  |IY%(9),IX1%(9),I|
00005b40  59 31 25 28 39 29 0d 2b  20 05 e1 0d 2b 2a 04 0d  |Y1%(9).+ ...+*..|
00005b50  2b 34 0c dd 20 f2 64 65  66 4e 43 0d 2b 3e 08 ea  |+4.. .defNC.+>..|
00005b60  20 64 24 0d 2b 48 14 4e  65 78 74 43 68 61 6e 67  | d$.+H.NextChang|
00005b70  65 25 3d 41 25 2d 31 0d  2b 52 10 e7 20 53 61 6d  |e%=A%-1.+R.. Sam|
00005b80  70 6c 65 73 25 20 8c 0d  2b 5c 1a 24 53 50 6f 69  |ples% ..+\.$SPoi|
00005b90  6e 74 25 28 39 29 3d c3  28 41 25 2d 70 25 2d 31  |nt%(9)=.(A%-p%-1|
00005ba0  29 0d 2b 66 05 cc 0d 2b  70 18 64 24 3d c3 28 28  |).+f...+p.d$=.((|
00005bb0  41 25 2d 31 2d 70 25 29  2a 4d 73 70 73 29 0d 2b  |A%-1-p%)*Msps).+|
00005bc0  7a 19 e7 20 a9 28 64 24  29 3e 36 20 8c 20 64 24  |z.. .(d$)>6 . d$|
00005bd0  3d c0 64 24 2c 36 29 0d  2b 84 12 24 53 50 6f 69  |=.d$,6).+..$SPoi|
00005be0  6e 74 25 28 39 29 3d 64  24 0d 2b 8e 05 cd 0d 2b  |nt%(9)=d$.+....+|
00005bf0  98 05 e1 0d 2b a2 04 0d  2b ac 0b dd 20 f2 64 6f  |....+...+... .do|
00005c00  4e 43 0d 2b b6 08 ea 20  59 25 0d 2b c0 1c e7 20  |NC.+... Y%.+... |
00005c10  4e 65 78 74 43 68 61 6e  67 65 25 3d 30 20 8c 20  |NextChange%=0 . |
00005c20  ef 20 37 3a 20 e1 0d 2b  ca 18 e7 20 4e 65 78 74  |. 7: ..+... Next|
00005c30  43 68 61 6e 67 65 25 3c  4e 63 4c 25 20 8c 0d 2b  |Change%<NcL% ..+|
00005c40  d4 1b 21 4f 64 64 45 76  65 6e 20 3d 20 21 4f 64  |..!OddEven = !Od|
00005c50  64 45 76 65 6e 20 82 20  31 0d 2b de 07 f2 6a 65  |dEven . 1.+...je|
00005c60  0d 2b e8 40 e7 20 52 65  66 42 75 74 25 3c 3e 30  |.+.@. RefBut%<>0|
00005c70  20 8c 20 21 42 6f 66 66  3d 4e 65 78 74 43 68 61  | . !Boff=NextCha|
00005c80  6e 67 65 25 2d 52 65 66  4f 66 66 25 20 8b 20 21  |nge%-RefOff% . !|
00005c90  42 6f 66 66 3d 4e 65 78  74 43 68 61 6e 67 65 25  |Boff=NextChange%|
00005ca0  0d 2b f2 1b 21 4f 64 64  45 76 65 6e 20 3d 20 21  |.+..!OddEven = !|
00005cb0  4f 64 64 45 76 65 6e 20  82 20 31 0d 2b fc 07 f2  |OddEven . 1.+...|
00005cc0  6a 64 0d 2c 06 24 53 6c  69 64 65 25 28 32 29 3d  |jd.,.$Slide%(2)=|
00005cd0  33 39 34 2a 28 4e 65 78  74 43 68 61 6e 67 65 25  |394*(NextChange%|
00005ce0  2f 4e 63 4c 25 29 0d 2c  10 0d f2 5f 55 70 50 28  |/NcL%).,..._UpP(|
00005cf0  31 39 29 0d 2c 1a 05 cc  0d 2c 24 1d 20 20 e7 20  |19).,....,$.  . |
00005d00  52 65 66 42 75 74 25 3d  30 20 8c 20 52 65 66 42  |RefBut%=0 . RefB|
00005d10  75 74 25 3d 31 0d 2c 2e  11 20 20 20 59 25 3d 21  |ut%=1.,..   Y%=!|
00005d20  58 73 63 61 6c 65 0d 2c  38 18 20 20 20 e7 20 59  |Xscale.,8.   . Y|
00005d30  25 3e 31 20 8c 20 59 25  3d 59 25 3e 3e 31 0d 2c  |%>1 . Y%=Y%>>1.,|
00005d40  42 1c 52 65 66 4f 66 66  25 3d 4e 65 78 74 43 68  |B.RefOff%=NextCh|
00005d50  61 6e 67 65 25 2d 4e 63  4c 25 0d 2c 4c 27 52 65  |ange%-NcL%.,L'Re|
00005d60  66 50 6f 69 6e 74 25 3d  28 52 65 66 4f 66 66 25  |fPoint%=(RefOff%|
00005d70  2a 59 25 29 2f 28 21 42  73 69 7a 65 2f 36 38 38  |*Y%)/(!Bsize/688|
00005d80  29 0d 2c 56 0e 21 42 6f  66 66 3d 4e 63 4c 25 0d  |).,V.!Boff=NcL%.|
00005d90  2c 60 11 53 6c 69 64 65  25 28 32 29 3d 33 39 34  |,`.Slide%(2)=394|
00005da0  0d 2c 6a 0d f2 5f 55 70  50 28 31 39 29 0d 2c 74  |.,j.._UpP(19).,t|
00005db0  3c c8 99 22 57 69 6d 70  5f 46 6f 72 63 65 52 65  |<.."Wimp_ForceRe|
00005dc0  64 72 61 77 22 2c 6d 6f  6e 57 25 2c 49 58 25 28  |draw",monW%,IX%(|
00005dd0  30 29 2c 49 59 25 28 30  29 2c 49 58 31 25 28 30  |0),IY%(0),IX1%(0|
00005de0  29 2c 49 59 31 25 28 30  29 0d 2c 7e 05 cd 0d 2c  |),IY1%(0).,~...,|
00005df0  88 0c f2 61 6e 61 6c 69  73 65 0d 2c 92 05 e1 0d  |...analise.,....|
00005e00  2c 9c 04 0d 2c a6 0b dd  20 f2 64 6f 4c 43 0d 2c  |,...,... .doLC.,|
00005e10  b0 0b ea 20 59 25 2c 41  25 0d 2c ba 2e e7 20 52  |... Y%,A%.,... R|
00005e20  65 66 42 75 74 25 3c 3e  30 20 8c 20 70 25 3d 21  |efBut%<>0 . p%=!|
00005e30  42 6f 66 66 2b 52 65 66  4f 66 66 25 20 8b 20 70  |Boff+RefOff% . p|
00005e40  25 3d 21 42 6f 66 66 0d  2c c4 09 70 25 2d 3d 31  |%=!Boff.,..p%-=1|
00005e50  0d 2c ce 12 e7 20 70 25  3c 31 20 8c 20 ef 20 37  |.,... p%<1 . . 7|
00005e60  3a e1 0d 2c d8 2c e7 20  21 4f 64 64 45 76 65 6e  |:..,.,. !OddEven|
00005e70  20 3d 20 30 20 8c 20 42  25 3d 54 72 61 63 65 31  | = 0 . B%=Trace1|
00005e80  25 20 8b 20 42 25 3d 54  72 61 63 65 32 25 0d 2c  |% . B%=Trace2%.,|
00005e90  e2 1d 43 25 3d 28 28 3f  28 42 25 2b 70 25 29 29  |..C%=((?(B%+p%))|
00005ea0  3e 3e 41 6e 43 25 29 20  80 20 31 0d 2c ec 0f 41  |>>AnC%) . 1.,..A|
00005eb0  25 3d 70 25 3a 45 25 3d  43 25 0d 2c f6 13 c8 95  |%=p%:E%=C%.,....|
00005ec0  20 41 25 3e 30 20 80 20  45 25 3d 43 25 0d 2d 00  | A%>0 . E%=C%.-.|
00005ed0  1d 45 25 3d 28 28 3f 28  41 25 2b 42 25 29 29 3e  |.E%=((?(A%+B%))>|
00005ee0  3e 41 6e 43 25 29 20 80  20 31 0d 2d 0a 09 41 25  |>AnC%) . 1.-..A%|
00005ef0  2d 3d 31 0d 2d 14 05 ce  0d 2d 1e 3d e7 20 28 41  |-=1.-....-.=. (A|
00005f00  25 3e 30 20 80 20 52 65  66 42 75 74 25 3d 30 29  |%>0 . RefBut%=0)|
00005f10  20 84 20 28 52 65 66 42  75 74 25 3c 3e 30 20 80  | . (RefBut%<>0 .|
00005f20  20 28 41 25 2d 52 65 66  4f 66 66 25 2b 31 29 3e  | (A%-RefOff%+1)>|
00005f30  30 20 29 20 8c 0d 2d 28  1b 21 4f 64 64 45 76 65  |0 ) ..-(.!OddEve|
00005f40  6e 20 3d 20 21 4f 64 64  45 76 65 6e 20 82 20 31  |n = !OddEven . 1|
00005f50  0d 2d 32 07 f2 6a 65 0d  2d 3c 32 e7 20 52 65 66  |.-2..je.-<2. Ref|
00005f60  42 75 74 25 3c 3e 30 20  8c 20 21 42 6f 66 66 3d  |But%<>0 . !Boff=|
00005f70  41 25 2d 52 65 66 4f 66  66 25 2b 32 20 8b 20 21  |A%-RefOff%+2 . !|
00005f80  42 6f 66 66 3d 41 25 2b  32 0d 2d 46 1b 21 4f 64  |Boff=A%+2.-F.!Od|
00005f90  64 45 76 65 6e 20 3d 20  21 4f 64 64 45 76 65 6e  |dEven = !OddEven|
00005fa0  20 82 20 31 0d 2d 50 07  f2 6a 64 0d 2d 5a 1b 53  | . 1.-P..jd.-Z.S|
00005fb0  6c 69 64 65 25 28 32 29  3d 33 39 34 2a 28 41 25  |lide%(2)=394*(A%|
00005fc0  2f 4e 63 4c 25 29 0d 2d  64 0d f2 5f 55 70 50 28  |/NcL%).-d.._UpP(|
00005fd0  31 39 29 0d 2d 6e 05 cc  0d 2d 78 1b 20 20 e7 20  |19).-n...-x.  . |
00005fe0  52 65 66 42 75 74 25 3c  3e 30 20 80 20 41 25 3e  |RefBut%<>0 . A%>|
00005ff0  30 20 8c 0d 2d 82 11 20  20 20 59 25 3d 21 58 73  |0 ..-..   Y%=!Xs|
00006000  63 61 6c 65 0d 2d 8c 18  20 20 20 e7 20 59 25 3e  |cale.-..   . Y%>|
00006010  31 20 8c 20 59 25 3d 59  25 3e 3e 31 0d 2d 96 13  |1 . Y%=Y%>>1.-..|
00006020  20 20 20 52 65 66 4f 66  66 25 3d 41 25 2b 32 0d  |   RefOff%=A%+2.|
00006030  2d a0 2a 20 20 20 52 65  66 50 6f 69 6e 74 25 3d  |-.*   RefPoint%=|
00006040  28 52 65 66 4f 66 66 25  2a 59 25 29 2f 28 21 42  |(RefOff%*Y%)/(!B|
00006050  73 69 7a 65 2f 36 38 38  29 0d 2d aa 0e 20 20 20  |size/688).-..   |
00006060  21 42 6f 66 66 3d 30 0d  2d b4 12 20 20 20 53 6c  |!Boff=0.-..   Sl|
00006070  69 64 65 25 28 32 29 3d  30 0d 2d be 10 20 20 20  |ide%(2)=0.-..   |
00006080  f2 5f 55 70 50 28 31 39  29 0d 2d c8 3f 20 20 20  |._UpP(19).-.?   |
00006090  c8 99 22 57 69 6d 70 5f  46 6f 72 63 65 52 65 64  |.."Wimp_ForceRed|
000060a0  72 61 77 22 2c 6d 6f 6e  57 25 2c 49 58 25 28 30  |raw",monW%,IX%(0|
000060b0  29 2c 49 59 25 28 30 29  2c 49 58 31 25 28 30 29  |),IY%(0),IX1%(0)|
000060c0  2c 49 59 31 25 28 30 29  0d 2d d2 08 20 20 20 cc  |,IY1%(0).-..   .|
000060d0  0d 2d dc 0a 20 20 20 ef  20 37 0d 2d e6 07 20 20  |.-..   . 7.-..  |
000060e0  cd 0d 2d f0 05 cd 0d 2d  fa 0c f2 61 6e 61 6c 69  |..-....-...anali|
000060f0  73 65 0d 2e 04 05 e1 0d  ff                       |se.......|
000060f9