Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars » RTR/Bonus/!MidiMouse/RunMM

RTR/Bonus/!MidiMouse/RunMM

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

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

Tape/disk: Home » Archimedes archive » Acorn User » AU 1998-08.adf » Regulars
Filename: RTR/Bonus/!MidiMouse/RunMM
Read OK:
File size: 38BD bytes
Load address: 0000
Exec address: 0000
File contents
   10REM>!MidiMouse.RunMM
   20REM Music from your mouse
   30REM Version 1.0 By Mike Cook
   40REM All rights reserved
   50ON ERROR PROCerrorbox
   60
   70DIM taskid%4:$taskid%="TASK"
   80DIM PORT%(3), Pin$(2,7),PinN$(2,7),PinIO$(2,7),intmess% 20
   90intmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0
  100SYS "Wimp_Initialise",300,!taskid%,"Midi_Mouse",intmess% TO version%,taskhand%
  110DIM q% &300,qc% 80, Wn% &300,temp% 256,buffers% 512,menu% 256,SW% 512,cb% 18
  120DIM IsName% 256, Wmenu% 512, TextWarn% 100, ww% 256, Cmenu% 256
  130Ni%=21 :SPr%=27000
  140DIM SP% SPr%, G5% 1024, G4% 8
  150DIM Xr%(2), XrL%(2), Yr%(2), YrL%(2), Akey%(127),PnnX%(2),PnnY%(2),NonX%(2),NonY%(2)
  160DIM ymenu% 512,gmenu% 512,Imenu% 256,Smenu% 256
  170Ni%=2
  180DIM SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%)
  190
  200SYS "Wimp_OpenTemplate",,"<MM$Dir>.Templates"
  210ON ERROR SYS "Wimp_CloseTemplate":PROCerrorbox
  220SYS "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0
  230SYS "Wimp_CreateWindow",,q% TO info%
  240SYS "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+512,-1,"Pallette",0
  250SYS "Wimp_CreateWindow",,Wn%+4 TO monW%
  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",,q%,ww%,ww%+256,-1,"Warning",0
  340q%!108=TextWarn%:q%!112=-1:q%!116=300
  350XQ%=q%!8-q%!0:YQ%=q%!12-q%!4
  360SYS "Wimp_CreateWindow",,q% TO warningW%
  370SYS "Wimp_CloseTemplate"
  380ref%=0:LX%=-1:LY%=-1
  390cpL%=0:cpR%=0:NT%=0
  400Nx%=1:Ny%=1:Ko%=0:Key%=4
  410InWin%=FALSE:Update%=TRUE
  420ForceU%=FALSE
  430ChX%=3:ChY%=4:Stoped%=TRUE
  440smpicon%=FNicon
  450wopen%=FALSE:warnOn%=FALSE
  460PROCsetupmenu
  470PROC_SKS
  480
  490REPEAT
  500 SYS "Wimp_Poll",0,q% TO A%
  510  CASE A% OF
  520   WHEN 0:PROC_Null
  530   WHEN 1:PROC_doWindow
  540   WHEN 2:SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%: SYS "Wimp_OpenWindow",,q%:SYS"Wimp_SetCaretPosition",monW%,-1,0,0,0,0
  550   WHEN 3:PROC_close
  560   WHEN 4:InWin%=FALSE:LX%=-1:LY%=-1:Stoped%=TRUE:SYS"Wimp_SpriteOp",36,0,"ptr_default",1
  570   WHEN 5:InWin%=TRUE:SYS"Wimp_SpriteOp",36,0,"ptr_midim",2,13,15,0
  580   WHEN 6:PROC_do_click(q%)
  590   WHEN 7:
  600   WHEN 8:PROC_KeyPress
  610   WHEN 9:PROC_SORT_Menu
  620   WHEN 17,18:PROCreceive(q%)
  630   ENDCASE
  640 UNTIL FALSE
  650
  660END
  670
  680DEF PROC_Null
  690LOCAL A%,B%,C%,X%,Y%
  700IF InWin% THEN
  710 MOUSE X%,Y%,B%
  720 IF B%<>0 THEN Stoped%=FALSE
  721 IF INKEY(-2) THEN X%=LX%
  722 IF INKEY(-3) THEN Y%=LY%
  730 IF (X%<>LX% OR Y%<>LY%) AND B%=0 AND NOT(Stoped%) THEN
  740 LX%=X%:LY%=Y%
  750 Update%=FALSE
  760 PROCquant
  770 IF Update% THEN PROCupRec(X%,Y%)
  780 ENDIF
  790ENDIF
  800ENDPROC
  810
  820DEF PROC_SORT_Menu
  830LOCAL A%
  840IF !q%=1 AND IconMenu%=TRUE THEN PROCdie
  850PROCNoteOff
  860CASE !q% OF
  870WHEN 1: IF q%!4<>-1 THEN
  880        PROCtick(gmenu%,8,q%!4)
  890        CASE q%!4 OF
  900        WHEN 0: Nx%=0
  910        WHEN 1: Nx%=1:Dx0%=0
  920        WHEN 2: Nx%=2:Dx0%=0:Dx1%=3
  930        WHEN 3: Nx%=3:Dx0%=0:Dx1%=4:Dx2%=7
  940        WHEN 4: Nx%=3:Dx0%=0:Dx1%=4:Dx2%=9
  950        WHEN 5: Nx%=3:Dx0%=0:Dx1%=5:Dx2%=9
  960        WHEN 6: Nx%=3:Dx0%=2:Dx1%=9:Dx2%=13
  970        WHEN 7: Nx%=3:Dx0%=7:Dx1%=9:Dx2%=16
  980        ENDCASE
  990        SYS"Wimp_ForceRedraw",monW%,44,-710,710,-40
 1000        ENDIF
 1010WHEN 2:IF q%!4<>-1 THEN
 1020        PROCtick(ymenu%,8,q%!4)
 1030        CASE q%!4 OF
 1040        WHEN 0: Ny%=0
 1050        WHEN 1: Ny%=1:Dy0%=0
 1060        WHEN 2: Ny%=2:Dy0%=0:Dy1%=5
 1070        WHEN 3: Ny%=3:Dy0%=0:Dy2%=7
 1080        WHEN 4: Ny%=3:Dy0%=0:Dy1%=4:Dy2%=9
 1090        WHEN 5: Ny%=3:Dy0%=0:Dy1%=5:Dy2%=9
 1100        WHEN 6: Ny%=3:Dy0%=2:Dy1%=9:Dy2%=13
 1110        WHEN 7: Ny%=3:Dy0%=7:Dy1%=9:Dy2%=16
 1120        ENDCASE
 1130        SYS"Wimp_ForceRedraw",monW%,44,-710,710,-40
 1140        ENDIF
 1150WHEN 3:IF q%!4<>-1 THEN
 1160        PROCtick(Smenu%,9,q%!4)
 1170        CASE q%!4 OF
 1180        WHEN 2:Ko%=9
 1190        WHEN 3:Ko%=11
 1200        WHEN 4:Ko%=0
 1210        WHEN 5:Ko%=2
 1220        WHEN 6:Ko%=4
 1230        WHEN 7:Ko%=5
 1240        WHEN 8:Ko%=7
 1250        ENDCASE
 1260        Key%=q%!4
 1270        ENDIF
 1280WHEN 4: PROCdie
 1290ENDCASE
 1300
 1310SYS"Wimp_GetPointerInfo",,q%
 1320IF q%!8=1 THEN SYS"Wimp_CreateMenu",,menu%,q%!0-94,q%!4
 1330ENDPROC
 1340
 1350DEF PROC_close
 1360IF q%!0=monW% THEN SYS"Wimp_GetWindowInfo",,Wn%:wopen%=FALSE:PROCNoteOff:Stoped%=TRUE
 1370IF q%!0=warningW% THEN warnOn%=FALSE
 1380SYS "Wimp_CloseWindow",,q%
 1390ENDPROC
 1400
 1410DEF PROC_do_click(q%)
 1420i%=q%!16
 1430CASE q%!12 OF
 1440WHEN warningW%: q%!0=warningW% :PROC_close
 1450
 1460WHEN -2: REM Look first at Icon Bar Click
 1470        IF q%!16=smpicon% THEN
 1480        IF q%!8=2 THEN IconMenu%=TRUE: SYS"Wimp_CreateMenu",,Imenu%,q%!0-64,176
 1490        IF q%!8=4 THEN PROC_Open
 1500        ENDIF
 1510
 1520WHEN monW%:  
 1530              IF q%!8=4 THEN PROC_MonClick
 1540              IF q%!8=1 THEN PROCNoteOff:ForceU%=TRUE:LX%=-1
 1550              IF q%!8=2 THEN IconMenu%=FALSE:SYS"Wimp_CreateMenu",,menu%,q%!0-94,q%!4:PROCNoteOff:Stoped%=TRUE
 1560ENDCASE
 1570ENDPROC
 1580
 1590
 1600DEF PROC_MonClick
 1610LOCAL X%,Y%,D%,V%,B%
 1620REM Do the action for a window click
 1630ENDPROC
 1640
 1650DEF PROC_Open
 1660SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%
 1670REM OPEN UP WINDOW HERE
 1680IF wopen% THEN
 1690q%!0=monW%
 1700SYS"Wimp_GetWindowState",,q%
 1710  IF q%!28<>-1 THEN q%!28=-1: SYS "Wimp_OpenWindow",,q%
 1720ELSE
 1730SYS "Wimp_OpenWindow",,Wn%
 1740wopen%=TRUE
 1750ENDIF
 1760SYS"Wimp_SetCaretPosition",monW%,-1,0,0,0,0
 1770ENDPROC
 1780
 1790DEF PROC_doWindow
 1800  LOCAL A%,I%,L%
 1810
 1820   PROC_Trans(monW%)
 1830   SYS "Wimp_RedrawWindow",,q% TO flag%
 1840     WHILE flag%
 1850      PROCkeyboard
 1860     SYS "Wimp_GetRectangle",,q% TO flag%
 1870     ENDWHILE
 1880  
 1890  ENDPROC
 1900  
 1910
 1920
 1930DEF PROC_UpP
 1940LOCAL T%,A%,E%,Nw%
 1950PROC_Trans(monW%)
 1960q%!0=monW%:q%!4=0:q%!8=-602:q%!12=650:q%!16=0
 1970  SYS"Wimp_UpdateWindow",,q% TO More%
 1980
 1990 WHILE More%
 2000
 2010  SYS"Wimp_GetRectangle",,q% TO More%
 2020 ENDWHILE
 2030ENDPROC
 2040
 2050
 2060DEF PROC_Trans(wh%)
 2070!q%=wh%
 2080SYS "Wimp_GetWindowState",,q%
 2090xo%=q%!4-q%!20:yo%=q%!16-q%!24-442
 2100XO%=q%!4:YO%=q%!16
 2110ENDPROC
 2120
 2130DEFPROCsetupmenu
 2140LOCAL m%
 2150
 2160$gmenu%="X Move"
 2170gmenu%?12=7
 2180gmenu%?13=2
 2190gmenu%?14=7
 2200gmenu%?15=0
 2210gmenu%!16=128
 2220gmenu%!20=40
 2230gmenu%!24=0
 2240m%=gmenu%+28
 2250
 2260m%!0=0
 2270m%!4=0
 2280m%!8=(7<<24)OR %10001
 2290$(m%+12)="None"
 2300
 2310m%+=24
 2320m%!0=1
 2330m%!4=0
 2340m%!8=(7<<24)OR %10001
 2350$(m%+12)="Single"
 2360
 2370m%+=24
 2380m%!0=0
 2390m%!4=0
 2400m%!8=(7<<24)OR %10001
 2410$(m%+12)="Double"
 2420
 2430m%+=24
 2440m%!0=0
 2450m%!4=0
 2460m%!8=(7<<24)OR %10001
 2470$(m%+12)="CEG"
 2480m%+=24
 2490m%!0=0
 2500m%!4=0
 2510m%!8=(7<<24)OR %10001
 2520$(m%+12)="CEA"
 2530m%+=24
 2540m%!0=0
 2550m%!4=0
 2560m%!8=(7<<24)OR %10001
 2570$(m%+12)="CFA"
 2580m%+=24
 2590m%!0=0
 2600m%!4=0
 2610m%!8=(7<<24)OR %10001
 2620$(m%+12)="DGB"
 2630m%+=24
 2640m%!0=&80
 2650m%!4=0
 2660m%!8=(7<<24)OR %10001
 2670$(m%+12)="FGD"
 2680
 2690$ymenu%="Y Move"
 2700ymenu%?12=7
 2710ymenu%?13=2
 2720ymenu%?14=7
 2730ymenu%?15=0
 2740ymenu%!16=128
 2750ymenu%!20=40
 2760ymenu%!24=0
 2770m%=ymenu%+28
 2780
 2790m%!0=0
 2800m%!4=0
 2810m%!8=(7<<24)OR %10001
 2820$(m%+12)="None"
 2830
 2840m%+=24
 2850m%!0=1
 2860m%!4=0
 2870m%!8=(7<<24)OR %10001
 2880$(m%+12)="Single"
 2890
 2900m%+=24
 2910m%!0=0
 2920m%!4=0
 2930m%!8=(7<<24)OR %10001
 2940$(m%+12)="Double"
 2950
 2960m%+=24
 2970m%!0=0
 2980m%!4=0
 2990m%!8=(7<<24)OR %10001
 3000$(m%+12)="CEG"
 3010m%+=24
 3020m%!0=0
 3030m%!4=0
 3040m%!8=(7<<24)OR %10001
 3050$(m%+12)="CEA"
 3060m%+=24
 3070m%!0=0
 3080m%!4=0
 3090m%!8=(7<<24)OR %10001
 3100$(m%+12)="CFA"
 3110m%+=24
 3120m%!0=0
 3130m%!4=0
 3140m%!8=(7<<24)OR %10001
 3150$(m%+12)="DGB"
 3160m%+=24
 3170m%!0=&80
 3180m%!4=0
 3190m%!8=(7<<24)OR %10001
 3200$(m%+12)="FGD"
 3210
 3220$menu%="MIDI"
 3230menu%?12=7
 3240menu%?13=2
 3250menu%?14=7
 3260menu%?15=0
 3270menu%!16=128
 3280menu%!20=40
 3290menu%!24=0
 3300m%=menu%+28
 3310m%!0=0
 3320m%!4=info%
 3330m%!8=(7<<24)OR %10001
 3340$(m%+12)="Info"
 3350
 3360m%+=24
 3370m%!0=0
 3380m%!4=gmenu%
 3390m%!8=(7<<24)OR %10001
 3400$(m%+12)="X Mouse"
 3410
 3420m%+=24
 3430m%!0=0
 3440m%!4=ymenu%
 3450m%!8=(7<<24)OR %10001
 3460$(m%+12)="Y Mouse"
 3470
 3480m%+=24
 3490m%!0=0
 3500m%!4=Smenu%
 3510m%!8=(7<<24)OR %10001
 3520$(m%+12)="Key"
 3530
 3540m%+=24
 3550m%!0=&80
 3560m%!4=0
 3570m%!8=(7<<24)OR %10001
 3580$(m%+12)="Quit"
 3590
 3600$Imenu%="MM"
 3610Imenu%?12=7
 3620Imenu%?13=2
 3630Imenu%?14=7
 3640Imenu%?15=0
 3650Imenu%!16=128
 3660Imenu%!20=40
 3670Imenu%!24=0
 3680m%=Imenu%+28
 3690m%!0=0
 3700m%!4=info%
 3710m%!8=(7<<24)OR %10001
 3720$(m%+12)="Info"
 3730m%+=24
 3740m%!0=&80
 3750m%!4=0
 3760m%!8=(7<<24)OR %10001
 3770$(m%+12)="Quit"
 3780
 3790$Smenu%="Key"
 3800Smenu%?12=7
 3810Smenu%?13=2
 3820Smenu%?14=7
 3830Smenu%?15=0
 3840Smenu%!16=128
 3850Smenu%!20=40
 3860Smenu%!24=0
 3870m%=Smenu%+28
 3880
 3890m%!0=0
 3900m%!4=0
 3910m%!8=(7<<24)OR %10001
 3920$(m%+12)="12 Tone"
 3930
 3940m%+=24
 3950m%!0=0
 3960m%!4=0
 3970m%!8=(7<<24)OR %10001
 3980$(m%+12)="Pentatonic"
 3990
 4000m%+=24
 4010m%!0=0
 4020m%!4=0
 4030m%!8=(7<<24)OR %10001
 4040$(m%+12)="A"
 4050
 4060m%+=24
 4070m%!0=0
 4080m%!4=0
 4090m%!8=(7<<24)OR %10001
 4100$(m%+12)="B"
 4110
 4120m%+=24
 4130m%!0=1
 4140m%!4=0
 4150m%!8=(7<<24)OR %10001
 4160$(m%+12)="C"
 4170m%+=24
 4180
 4190m%!0=0
 4200m%!4=0
 4210m%!8=(7<<24)OR %10001
 4220$(m%+12)="D"
 4230m%+=24
 4240
 4250m%!0=0
 4260m%!4=0
 4270m%!8=(7<<24)OR %10001
 4280$(m%+12)="E"
 4290m%+=24
 4300
 4310m%!0=0
 4320m%!4=0
 4330m%!8=(7<<24)OR %10001
 4340$(m%+12)="F"
 4350m%+=24
 4360
 4370m%!0=&80
 4380m%!4=0
 4390m%!8=(7<<24)OR %10001
 4400$(m%+12)="G"
 4410
 4420ENDPROC
 4430
 4440DEF PROCreceive(q%)
 4450LOCAL A%
 4460A%=q%!16
 4470CASE A% OF
 4480WHEN 0:PROCdie
 4490WHEN &502:   CASE TRUE OF
 4500             WHEN q%!32=-2 AND q%!36=smpicon%:mes$="This is MIDI Mouse icon.|MMake MIDI music."
 4510             OTHERWISE:mes$=""
 4520             ENDCASE
 4530    IF mes$<>"" THEN
 4540    q%!12=q%!8
 4550    $(q%+20)=mes$+CHR$0
 4560    q%!0=(20+LENmes$+4)AND NOT 3
 4570    q%!16=&503
 4580    SYS "Wimp_SendMessage",18,q%,q%!4
 4590ENDCASE
 4600ENDPROC
 4610
 4620DEF PROC_Dack
 4630sendth%=q%!4
 4640myref%=q%!8
 4650SYS "Wimp_GetPointerInfo",,q%+8
 4660q%!28=q%!8
 4670q%!32=q%!12
 4680q%!0=(44+LENn$+4)AND NOT 3
 4690q%!12=myref%
 4700q%!16=4
 4710q%!36=-1
 4720q%!40=&FF9
 4730$(q%+44)=n$+CHR$0
 4740SYS "Wimp_SendMessage",17,q%,sendth%
 4750ENDIF
 4760ENDPROC
 4770
 4780DEFFNsget(x%)
 4790LOCAL x$
 4800WHILE ?x% x$+=CHR$(?x%):x%+=1:ENDWHILE
 4810=x$
 4820
 4830DEFFNicon
 4840q%!0=-1
 4850q%!4=0
 4860q%!8=0 : REM Y DIRECTION
 4870q%!12=70 : REM X DIRECTION
 4880q%!16=96
 4890q%!20=&2002
 4900$(q%+24)="!MidiMouse"
 4910SYS "Wimp_CreateIcon",,q% TO icon%
 4920=icon%
 4930
 4940
 4950DEF PROC_setupW(t$)
 4960!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
 4970$TextWarn%=t$
 4980TextWarn%?LEN(t$)=0
 4990VDU 7
 5000warnOn%=TRUE
 5010SYS "Wimp_OpenWindow",,q%
 5020ENDPROC
 5030
 5040DEF PROCerrorbox
 5050SYS "Wimp_DragBox",,-1
 5060!buffers%=ERR:$(buffers%+4)=REPORT$+" at line "+STR$ERL+CHR$0
 5070SYS "Wimp_ReportError",buffers%,1,"Midi Mouse"
 5080PROCdie
 5090ENDPROC
 5100
 5110DEFPROCdie
 5120PROCNoteOff
 5130SYS "Wimp_CloseDown",taskhand%,!taskid%
 5140END
 5150ENDPROC
 5160
 5170DEF PROCgetw(handle%)
 5180!q%=handle%:SYS "Wimp_GetWindowState",,q%:PROCinfo(q%+4)
 5190ENDPROC
 5200DEF PROCgeti(h%,i%)
 5210!q%=h%:q%!4=i%:SYS "Wimp_GetIconState",,q%
 5220ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
 5230iflags%=q%!24:idata%=q%+28
 5240ENDPROC
 5250
 5260DEF PROCinfo(p%)
 5270LOCAL x0%,y0%
 5280x0%=!p%:y0%=p%!4:x1%=p%!8:y1%=p%!12
 5290scx%=p%!16:scy%=p%!20:bhandle%=p%!24:flags%=p%!28
 5300bx%=x0%-scx%:by%=y1%-scy%
 5310ENDPROC
 5320
 5330DEF PROC_KeyPress
 5340CASE q%!0 OF
 5350OTHERWISE: SYS"Wimp_ProcessKey",q%!24
 5360ENDCASE
 5370ENDPROC
 5380
 5390DEF PROCtick(m%,n%,i%)
 5400LOCAL A%,p%
 5410p%=28+m%
 5420FOR A%=1 TO n%
 5430?p%=?p% AND &FE
 5440p%+=24
 5450NEXT
 5460p%=m%+28+i%*24
 5470?p%=?p% OR 1
 5480ENDPROC
 5490
 5500DEF PROC_SKS
 5510LOCAL A%
 5520REM Set up Keyboard Sprites
 5530SP%!0=SPr%
 5540SP%!8=16
 5550SYS"OS_SpriteOp",9+256,SP%
 5560SYS"OS_SpriteOp",11+256,SP%,"<MM$Dir>.KB"
 5570SYS"OS_SpriteOp",27+256,SP%,"k1","k3"
 5580SYS"OS_SpriteOp",27+256,SP%,"k2","k4"
 5590SYS"OS_SpriteOp",33+256,SP%,"k3"
 5600SYS"OS_SpriteOp",47+256,SP%,"k4"
 5610
 5620G4%?0=0:G4%?1=3:G4%?2=0:G4%?3=1
 5630FOR A%=0 TO 1024 STEP 4
 5640G5%?A%=0
 5650G5%?(A%+1)=A%
 5660G5%?(A%+2)=A%
 5670G5%?(A%+3)=A%
 5680NEXT
 5690Stt%=0
 5700PROCtt
 5710FOR A%=0 TO 2
 5720Xr%(A%)=-1000
 5730XrL%(A%)=-1000
 5740Yr%(A%)=-1000
 5750YrL%(A%)=-1000
 5760NEXT
 5770Dx1%=4:Dx2%=8:Dx0%=0
 5780Dy1%=6:Dy2%=12:Dy0%=0
 5790REM Initilise Key table
 5800B%=0
 5810FOR A%=0 TO 127
 5820READ Akey%(A%)
 5830B%+=1
 5840IF B%=12 THEN B%=0:RESTORE 5860
 5850NEXT
 5860DATA -1,0,-1,0,-1,-1,0,-1,0,-1,0,-1
 5870FOR A%=0 TO 2
 5880NonX%(A%)=0:NonY%(A%)=0
 5890PnnX%(A%)=0:PnnX%(A%)=0
 5900NEXT
 5910ENDPROC
 5920
 5930DEF PROCtt
 5940SYS"OS_ReadModeVariable",-1,3 TO ,,Ncolours%
 5950IF Ncolours%=3 THEN Stt%=G4% ELSE SYS"ColourTrans_SelectTable",SP%,"k1",-1,-1,G5%,0:Stt%=G5%
 5960ENDPROC
 5970
 5980DEF PROCkeyboard
 5990LOCAL A%
 6000     SYS"Wimp_SetColour",1
 6010     RECTANGLEFILL xo%+40,yo%+40,358,362
 6020     SYS"Wimp_SetColour",11
 6030     A%=0
 6040     WHILE A%<>Nx%
 6050     RECTANGLEFILL Xr%(A%)+42+xo%,yo%+42,4,354
 6060     A%+=1
 6070     ENDWHILE
 6080     
 6090     SYS"Wimp_SetColour",14
 6100     A%=0
 6110     WHILE A%<>Ny%
 6120     RECTANGLEFILL 42+xo%,yo%+42+Yr%(A%),354,4
 6130     A%+=1
 6140     ENDWHILE
 6150SYS"OS_SpriteOp",52+256,SP%,"k1",xo%+40,yo%+404,&10,0,Stt%
 6160SYS"OS_SpriteOp",52+256,SP%,"k3",xo%+40,yo%,&10,0,Stt%
 6170
 6180SYS"OS_SpriteOp",52+256,SP%,"k2",xo%,yo%+40,&10,0,Stt%
 6190SYS"OS_SpriteOp",52+256,SP%,"k4",xo%+402,yo%+40,&10,0,Stt%
 6200ENDPROC
 6210
 6220DEF PROCupRec(X%,Y%)
 6230LOCAL A%
 6240  q%!0=monW%:q%!4=42:q%!8=-402:q%!12=402:q%!16=-40
 6250  SYS"Wimp_UpdateWindow",,q% TO More%
 6260 WHILE More%
 6270     SYS"Wimp_SetColour",1
 6280     A%=0
 6290     WHILE A%<>Nx%
 6300     RECTANGLEFILL XrL%(A%)+42+xo%,yo%+42,4,360
 6310     A%+=1
 6320     ENDWHILE
 6330     A%=0
 6340     WHILE A%<>Ny%
 6350     RECTANGLEFILL 42+xo%,yo%+42+YrL%(A%),356,4
 6360     A%+=1
 6370     ENDWHILE
 6380     SYS"Wimp_SetColour",11
 6390     A%=0
 6400     WHILE A%<>Nx%
 6410     RECTANGLEFILL Xr%(A%)+42+xo%,yo%+42,4,360
 6420     A%+=1
 6430     ENDWHILE
 6440     SYS"Wimp_SetColour",14
 6450     A%=0
 6460     WHILE A%<>Ny%
 6470     RECTANGLEFILL 42+xo%,yo%+42+Yr%(A%),356,4
 6480     A%+=1
 6490     ENDWHILE
 6500     
 6510  SYS"Wimp_GetRectangle",,q% TO More%
 6520 ENDWHILE
 6530 FOR A%=0 TO 2
 6540 XrL%(A%)=Xr%(A%):YrL%(A%)=Yr%(A%)
 6550 NEXT
 6560ENDPROC
 6570
 6580DEF PROCquant
 6590LOCAL A%,t$,B%
 6600PROC_Trans(monW%)
 6610IF Nx%<>0 THEN
 6620Xr%(0)=X%-xo%-42
 6630Xr%(0)=Xr%(0)-(Xr%(0) MOD 6)
 6640nnX%=(Xr%(0) DIV 6)+24
 6650ENDIF
 6660IF Ny%<>0 THEN
 6670Yr%(0)=Y%-yo%-42
 6680Yr%(0)=Yr%(0)-(Yr%(0) MOD 6)
 6690nnY%=(Yr%(0) DIV 6)+24
 6700ENDIF
 6710
 6720CASE Key% OF
 6730WHEN 0:
 6740WHEN 1:
 6750      WHILE Akey%(nnY%)
 6760       nnY%+=1
 6770      ENDWHILE
 6780      Yr%(0)=(nnY%-24)*6
 6790      WHILE Akey%(nnX%)
 6800      nnX%+=1
 6810      ENDWHILE
 6820      Xr%(0)=(nnX%-24)*6
 6830
 6840OTHERWISE
 6850WHILE NOT(Akey%(nnY%-Ko%))
 6860nnY%+=1
 6870ENDWHILE
 6880Yr%(0)=(nnY%-24)*6
 6890WHILE NOT(Akey%(nnX%-Ko%))
 6900nnX%+=1
 6910ENDWHILE
 6920Xr%(0)=(nnX%-24)*6
 6930ENDCASE
 6940
 6950IF Ny%=2 THEN Yr%(1)=Yr%(0)+6*Dy1%
 6960IF Nx%=2 THEN Xr%(1)=Xr%(0)+6*Dx1%
 6970IF Ny%=3 THEN Yr%(1)=Yr%(0)+6*Dy1%:Yr%(2)=Yr%(0)+6*Dy2%:Yr%(0)=Yr%(0)+6*Dy0%
 6980IF Nx%=3 THEN Xr%(1)=Xr%(0)+6*Dx1%:Xr%(2)=Xr%(0)+6*Dx2%:Xr%(0)=Xr%(0)+6*Dx0%
 6990IF (XrL%(0)<>Xr%(0)) OR (YrL%(0)<>Yr%(0)) OR ForceU% THEN
 7000Update%=TRUE:ForceU%=FALSE
 7010PROCcnn
 7020PROC_sput(0,STR$(PnnY%(0)))
 7030PROC_sput(1,STR$(PnnX%(0)))
 7040ENDIF
 7050ENDPROC
 7060
 7070DEF PROCcnn
 7080LOCAL A%
 7090FOR A%=0 TO 2
 7100PnnX%(A%)=(Xr%(A%) DIV 6)+24
 7110PnnY%(A%)=(Yr%(A%) DIV 6)+24
 7120NEXT
 7130SYS&404C2,ChX%
 7140A%=0
 7150WHILE A%<>Nx%
 7160IF NonX%(A%)<>PnnX%(A%) THEN
 7170SYS&404CB,NonX%(A%),0
 7180SYS&404CC,PnnX%(A%),100
 7190NonX%(A%)=PnnX%(A%)
 7200ENDIF
 7210A%+=1
 7220ENDWHILE
 7230SYS&404C2,ChY%
 7240A%=0
 7250WHILE A%<>Ny%
 7260IF NonY%(A%)<>PnnY%(A%) THEN
 7270SYS&404CB,NonY%(A%),0
 7280SYS&404CC,PnnY%(A%),100
 7290NonY%(A%)=PnnY%(A%)
 7300ENDIF
 7310A%+=1
 7320ENDWHILE
 7330ENDPROC
 7340
 7350DEF PROCNoteOff
 7360LOCAL A%
 7370FOR A%=0 TO 2
 7380SYS&404C2,ChX%
 7390SYS&404CB,NonX%(A%),0
 7400SYS&404C2,ChY%
 7410SYS&404CB,NonY%(A%),0
 7420NonX%(A%)=-1
 7430NonY%(A%)=-1
 7440NEXT
 7450ENDPROC
 7460
 7470DEF PROC_sput(In%,X$)
 7480LOCAL A%,x%
 7490x%=SPoint%(In%)
 7500A%=1
 7510IF LEN(X$)<>0 THEN
 7520WHILE A%<>(LEN(X$)+1)
 7530?x%=ASC(MID$(X$,A%,1))
 7540x%+=1
 7550A%+=1
 7560ENDWHILE
 7570ENDIF
 7580?x%=0
 7590SYS"Wimp_ForceRedraw",monW%,IX%(In%),IY%(In%),IX1%(In%),IY1%(In%)
 7600ENDPROC

�>!MidiMouse.RunMM
� Music from your mouse
� Version 1.0 By Mike Cook
(� All rights reserved
2� � �errorbox
<
F� taskid%4:$taskid%="TASK"
P<� PORT%(3), Pin$(2,7),PinN$(2,7),PinIO$(2,7),intmess% 20
ZIintmess%!0=1:intmess%!4=2:intmess%!8=3:intmess%!12=&502:intmess%!16=0
dPș "Wimp_Initialise",300,!taskid%,"Midi_Mouse",intmess% � version%,taskhand%
nN� q% &300,qc% 80, Wn% &300,temp% 256,buffers% 512,menu% 256,SW% 512,cb% 18
xA� IsName% 256, Wmenu% 512, TextWarn% 100, ww% 256, Cmenu% 256
�Ni%=21 :SPr%=27000
�� SP% SPr%, G5% 1024, G4% 8
�V� Xr%(2), XrL%(2), Yr%(2), YrL%(2), Akey%(127),PnnX%(2),PnnY%(2),NonX%(2),NonY%(2)
�1� ymenu% 512,gmenu% 512,Imenu% 256,Smenu% 256
�	Ni%=2
�8� SPoint%(Ni%),IX%(Ni%),IY%(Ni%),IX1%(Ni%),IY1%(Ni%)
�
�0ș "Wimp_OpenTemplate",,"<MM$Dir>.Templates"
�)� � ș "Wimp_CloseTemplate":�errorbox
�:ș "Wimp_LoadTemplate",,q%,temp%,temp%+256,-1,"Info",0
�&ș "Wimp_CreateWindow",,q% � info%
�=ș "Wimp_LoadTemplate",,Wn%+4,SW%,SW%+512,-1,"Pallette",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�
@
J9ș "Wimp_LoadTemplate",,q%,ww%,ww%+256,-1,"Warning",0
T)q%!108=TextWarn%:q%!112=-1:q%!116=300
^ XQ%=q%!8-q%!0:YQ%=q%!12-q%!4
h*ș "Wimp_CreateWindow",,q% � warningW%
rș "Wimp_CloseTemplate"
|ref%=0:LX%=-1:LY%=-1
�cpL%=0:cpR%=0:NT%=0
�Nx%=1:Ny%=1:Ko%=0:Key%=4
�InWin%=�:Update%=�
�
ForceU%=�
�ChX%=3:ChY%=4:Stoped%=�
�smpicon%=�icon
�wopen%=�:warnOn%=�
��setupmenu
�	�_SKS
�
��
� ș "Wimp_Poll",0,q% � A%
�
  Ȏ A% �
   � 0:�_Null
   � 1:�_doWindow
z   � 2:ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%: ș "Wimp_OpenWindow",,q%:ș"Wimp_SetCaretPosition",monW%,-1,0,0,0,0
&   � 3:�_close
0R   � 4:InWin%=�:LX%=-1:LY%=-1:Stoped%=�:ș"Wimp_SpriteOp",36,0,"ptr_default",1
:@   � 5:InWin%=�:ș"Wimp_SpriteOp",36,0,"ptr_midim",2,13,15,0
D   � 6:�_do_click(q%)
N   � 7:
X   � 8:�_KeyPress
b   � 9:�_SORT_Menu
l   � 17,18:�receive(q%)
v   �
� � �
�
��
�
�� �_Null
�� A%,B%,C%,X%,Y%
�� InWin% �
� ȗ X%,Y%,B%
� � B%<>0 � Stoped%=�
� � �(-2) � X%=LX%
� � �(-3) � Y%=LY%
�0 � (X%<>LX% � Y%<>LY%) � B%=0 � �(Stoped%) �
� LX%=X%:LY%=Y%
� Update%=�
� �quant
 � Update% � �upRec(X%,Y%)
 �
�
 �
*
4� �_SORT_Menu
>� A%
H � !q%=1 � IconMenu%=� � �die
R�NoteOff
\Ȏ !q% �
f� 1: � q%!4<>-1 �
p         �tick(gmenu%,8,q%!4)
z        Ȏ q%!4 �
�        � 0: Nx%=0
�        � 1: Nx%=1:Dx0%=0
�$        � 2: Nx%=2:Dx0%=0:Dx1%=3
�+        � 3: Nx%=3:Dx0%=0:Dx1%=4:Dx2%=7
�+        � 4: Nx%=3:Dx0%=0:Dx1%=4:Dx2%=9
�+        � 5: Nx%=3:Dx0%=0:Dx1%=5:Dx2%=9
�,        � 6: Nx%=3:Dx0%=2:Dx1%=9:Dx2%=13
�,        � 7: Nx%=3:Dx0%=7:Dx1%=9:Dx2%=16
�
        �
�6        ș"Wimp_ForceRedraw",monW%,44,-710,710,-40
�
        �
�� 2:� q%!4<>-1 �
�         �tick(ymenu%,8,q%!4)
        Ȏ q%!4 �
        � 0: Ny%=0
        � 1: Ny%=1:Dy0%=0
$$        � 2: Ny%=2:Dy0%=0:Dy1%=5
.$        � 3: Ny%=3:Dy0%=0:Dy2%=7
8+        � 4: Ny%=3:Dy0%=0:Dy1%=4:Dy2%=9
B+        � 5: Ny%=3:Dy0%=0:Dy1%=5:Dy2%=9
L,        � 6: Ny%=3:Dy0%=2:Dy1%=9:Dy2%=13
V,        � 7: Ny%=3:Dy0%=7:Dy1%=9:Dy2%=16
`
        �
j6        ș"Wimp_ForceRedraw",monW%,44,-710,710,-40
t
        �
~� 3:� q%!4<>-1 �
�         �tick(Smenu%,9,q%!4)
�        Ȏ q%!4 �
�        � 2:Ko%=9
�        � 3:Ko%=11
�        � 4:Ko%=0
�        � 5:Ko%=2
�        � 6:Ko%=4
�        � 7:Ko%=5
�        � 8:Ko%=7
�
        �
�        Key%=q%!4
�
        �

� 4: �die

�

ș"Wimp_GetPointerInfo",,q%
(6� q%!8=1 � ș"Wimp_CreateMenu",,menu%,q%!0-94,q%!4
2�
<
F
� �_close
PJ� q%!0=monW% � ș"Wimp_GetWindowInfo",,Wn%:wopen%=�:�NoteOff:Stoped%=�
Z � q%!0=warningW% � warnOn%=�
dș "Wimp_CloseWindow",,q%
n�
x
�� �_do_click(q%)
�i%=q%!16
�Ȏ q%!12 �
�(� warningW%: q%!0=warningW% :�_close
�
�(� -2: � Look first at Icon Bar Click
�        � q%!16=smpicon% �
�K        � q%!8=2 � IconMenu%=�: ș"Wimp_CreateMenu",,Imenu%,q%!0-64,176
�        � q%!8=4 � �_Open
�
        �
�
�� monW%:  
�'              � q%!8=4 � �_MonClick
6              � q%!8=1 � �NoteOff:ForceU%=�:LX%=-1
c              � q%!8=2 � IconMenu%=�:ș"Wimp_CreateMenu",,menu%,q%!0-94,q%!4:�NoteOff:Stoped%=�
�
"�
,
6
@� �_MonClick
J� X%,Y%,D%,V%,B%
T&� Do the action for a window click
^�
h
r� �_Open
|.ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%
�� 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%=�
��
�.ș"Wimp_SetCaretPosition",monW%,-1,0,0,0,0
��
�
�� �_doWindow
  � A%,I%,L%

   �_Trans(monW%)
&)   ș "Wimp_RedrawWindow",,q% � flag%
0     ȕ flag%
:      �keyboard
D+     ș "Wimp_GetRectangle",,q% � flag%
N
     �
X  
b  �
l  
v
�
�� �_UpP
�� T%,A%,E%,Nw%
��_Trans(monW%)
�1q%!0=monW%:q%!4=0:q%!8=-602:q%!12=650:q%!16=0
�'  ș"Wimp_UpdateWindow",,q% � More%
�
�
 ȕ More%
�
�'  ș"Wimp_GetRectangle",,q% � More%
� �
��
�

� �_Trans(wh%)
!q%=wh%
  ș "Wimp_GetWindowState",,q%
*&xo%=q%!4-q%!20:yo%=q%!16-q%!24-442
4XO%=q%!4:YO%=q%!16
>�
H
R��setupmenu
\� m%
f
p$gmenu%="X Move"
zgmenu%?12=7
�gmenu%?13=2
�gmenu%?14=7
�gmenu%?15=0
�gmenu%!16=128
�gmenu%!20=40
�gmenu%!24=0
�m%=gmenu%+28
�
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="None"
�
	
m%+=24
	
m%!0=1
	
m%!4=0
	$m%!8=(7<<24)� %10001
	.$(m%+12)="Single"
	8
	B
m%+=24
	L
m%!0=0
	V
m%!4=0
	`m%!8=(7<<24)� %10001
	j$(m%+12)="Double"
	t
	~
m%+=24
	�
m%!0=0
	�
m%!4=0
	�m%!8=(7<<24)� %10001
	�$(m%+12)="CEG"
	�
m%+=24
	�
m%!0=0
	�
m%!4=0
	�m%!8=(7<<24)� %10001
	�$(m%+12)="CEA"
	�
m%+=24
	�
m%!0=0
	�
m%!4=0
m%!8=(7<<24)� %10001

$(m%+12)="CFA"

m%+=24

m%!0=0
(
m%!4=0
2m%!8=(7<<24)� %10001
<$(m%+12)="DGB"
F
m%+=24
Pm%!0=&80
Z
m%!4=0
dm%!8=(7<<24)� %10001
n$(m%+12)="FGD"
x
�$ymenu%="Y Move"
�ymenu%?12=7
�ymenu%?13=2
�ymenu%?14=7
�ymenu%?15=0
�ymenu%!16=128
�ymenu%!20=40
�ymenu%!24=0
�m%=ymenu%+28
�
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
$(m%+12)="None"


m%+=24
"
m%!0=1
,
m%!4=0
6m%!8=(7<<24)� %10001
@$(m%+12)="Single"
J
T
m%+=24
^
m%!0=0
h
m%!4=0
rm%!8=(7<<24)� %10001
|$(m%+12)="Double"
�
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="CEG"
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="CEA"
�
m%+=24
�
m%!0=0

m%!4=0
m%!8=(7<<24)� %10001
$(m%+12)="CFA"
&
m%+=24
0
m%!0=0
:
m%!4=0
Dm%!8=(7<<24)� %10001
N$(m%+12)="DGB"
X
m%+=24
bm%!0=&80
l
m%!4=0
vm%!8=(7<<24)� %10001
�$(m%+12)="FGD"
�
�$menu%="MIDI"
�menu%?12=7
�menu%?13=2
�menu%?14=7
�menu%?15=0
�menu%!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

4m%!4=gmenu%

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

H$(m%+12)="X Mouse"

R

\
m%+=24

f
m%!0=0

pm%!4=ymenu%

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

�$(m%+12)="Y Mouse"

�

�
m%+=24

�
m%!0=0

�m%!4=Smenu%

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

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

�

�
m%+=24

�m%!0=&80

�
m%!4=0

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

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

$Imenu%="MM"
Imenu%?12=7
$Imenu%?13=2
.Imenu%?14=7
8Imenu%?15=0
BImenu%!16=128
LImenu%!20=40
VImenu%!24=0
`m%=Imenu%+28
j
m%!0=0
tm%!4=info%
~m%!8=(7<<24)� %10001
�$(m%+12)="Info"
�
m%+=24
�m%!0=&80
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="Quit"
�
�$Smenu%="Key"
�Smenu%?12=7
�Smenu%?13=2
�Smenu%?14=7
�Smenu%?15=0
Smenu%!16=128

Smenu%!20=40
Smenu%!24=0
m%=Smenu%+28
(
2
m%!0=0
<
m%!4=0
Fm%!8=(7<<24)� %10001
P$(m%+12)="12 Tone"
Z
d
m%+=24
n
m%!0=0
x
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="Pentatonic"
�
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="A"
�
�
m%+=24
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
$(m%+12)="B"


m%+=24
"
m%!0=1
,
m%!4=0
6m%!8=(7<<24)� %10001
@$(m%+12)="C"
J
m%+=24
T
^
m%!0=0
h
m%!4=0
rm%!8=(7<<24)� %10001
|$(m%+12)="D"
�
m%+=24
�
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="E"
�
m%+=24
�
�
m%!0=0
�
m%!4=0
�m%!8=(7<<24)� %10001
�$(m%+12)="F"
�
m%+=24

m%!0=&80

m%!4=0
&m%!8=(7<<24)� %10001
0$(m%+12)="G"
:
D�
N
X� �receive(q%)
b� A%
lA%=q%!16
vȎ A% �
�� 0:�die
�� &502:   Ȏ � �
�^             � q%!32=-2 � q%!36=smpicon%:mes$="This is MIDI Mouse icon.|MMake MIDI music."
�             :mes$=""
�             �
�    � mes$<>"" �
�    q%!12=q%!8
�    $(q%+20)=mes$+�0
�    q%!0=(20+�mes$+4)� � 3
�    q%!16=&503
�(    ș "Wimp_SendMessage",18,q%,q%!4
��
��

� �_Dack
sendth%=q%!4
 myref%=q%!8
*"ș "Wimp_GetPointerInfo",,q%+8
4q%!28=q%!8
>q%!32=q%!12
Hq%!0=(44+�n$+4)� � 3
Rq%!12=myref%
\q%!16=4
fq%!36=-1
pq%!40=&FF9
z$(q%+44)=n$+�0
�'ș "Wimp_SendMessage",17,q%,sendth%
��
��
�
�ݤsget(x%)
�� x$
�ȕ ?x% x$+=�(?x%):x%+=1:�
�=x$
�
�
ݤicon
�q%!0=-1
�
q%!4=0
�q%!8=0 : � Y DIRECTION
q%!12=70 : � X DIRECTION
q%!16=96
q%!20=&2002
$$(q%+24)="!MidiMouse"
.$ș "Wimp_CreateIcon",,q% � icon%
8
=icon%
B
L
V� �_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
j$TextWarn%=t$
tTextWarn%?�(t$)=0
~� 7
�
warnOn%=�
�ș "Wimp_OpenWindow",,q%
��
�
�� �errorbox
�ș "Wimp_DragBox",,-1
�2!buffers%=�:$(buffers%+4)=�$+" at line "+Þ+�0
�1ș "Wimp_ReportError",buffers%,1,"Midi Mouse"
��die
��
�
�	��die
�NoteOff

*ș "Wimp_CloseDown",taskhand%,!taskid%
�
�
(
2� �getw(handle%)
<8!q%=handle%:ș "Wimp_GetWindowState",,q%:�info(q%+4)
F�
P� �geti(h%,i%)
Z-!q%=h%:q%!4=i%:ș "Wimp_GetIconState",,q%
d.ix0%=q%!8:iy0%=q%!12:ix1%=q%!16:iy1%=q%!20
niflags%=q%!24:idata%=q%+28
x�
�
�� �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%
��
�
�� �_KeyPress
�
Ȏ q%!0 �
� : ș"Wimp_ProcessKey",q%!24
��
��

� �tick(m%,n%,i%)
� A%,p%
"p%=28+m%
,� A%=1 � n%
6?p%=?p% � &FE
@
p%+=24
J�
Tp%=m%+28+i%*24
^?p%=?p% � 1
h�
r
|� �_SKS
�� A%
�� Set up Keyboard Sprites
�SP%!0=SPr%
�SP%!8=16
�ș"OS_SpriteOp",9+256,SP%
�,ș"OS_SpriteOp",11+256,SP%,"<MM$Dir>.KB"
�(ș"OS_SpriteOp",27+256,SP%,"k1","k3"
�(ș"OS_SpriteOp",27+256,SP%,"k2","k4"
�#ș"OS_SpriteOp",33+256,SP%,"k3"
�#ș"OS_SpriteOp",47+256,SP%,"k4"
�
�#G4%?0=0:G4%?1=3:G4%?2=0:G4%?3=1
�� A%=0 � 1024 � 4
G5%?A%=0
G5%?(A%+1)=A%
G5%?(A%+2)=A%
&G5%?(A%+3)=A%
0�
:
Stt%=0
D�tt
N� A%=0 � 2
XXr%(A%)=-1000
bXrL%(A%)=-1000
lYr%(A%)=-1000
vYrL%(A%)=-1000
��
�Dx1%=4:Dx2%=8:Dx0%=0
�Dy1%=6:Dy2%=12:Dy0%=0
�� Initilise Key table
�B%=0
�� A%=0 � 127
�� Akey%(A%)
�	B%+=1
�� B%=12 � B%=0:� �ddV
��
�$� -1,0,-1,0,-1,-1,0,-1,0,-1,0,-1
�� A%=0 � 2
�NonX%(A%)=0:NonY%(A%)=0
PnnX%(A%)=0:PnnX%(A%)=0
�
�
 
*	� �tt
4.ș"OS_ReadModeVariable",-1,3 � ,,Ncolours%
>X� Ncolours%=3 � Stt%=G4% � ș"ColourTrans_SelectTable",SP%,"k1",-1,-1,G5%,0:Stt%=G5%
H�
R
\� �keyboard
f� A%
p     ș"Wimp_SetColour",1
z#     ȓȐ xo%+40,yo%+40,358,362
�     ș"Wimp_SetColour",11
�
     A%=0
�     ȕ A%<>Nx%
�)     ȓȐ Xr%(A%)+42+xo%,yo%+42,4,354
�     A%+=1
�
     �
�	     
�     ș"Wimp_SetColour",14
�
     A%=0
�     ȕ A%<>Ny%
�)     ȓȐ 42+xo%,yo%+42+Yr%(A%),354,4
�     A%+=1
�
     �
=ș"OS_SpriteOp",52+256,SP%,"k1",xo%+40,yo%+404,&10,0,Stt%
9ș"OS_SpriteOp",52+256,SP%,"k3",xo%+40,yo%,&10,0,Stt%

$9ș"OS_SpriteOp",52+256,SP%,"k2",xo%,yo%+40,&10,0,Stt%
.=ș"OS_SpriteOp",52+256,SP%,"k4",xo%+402,yo%+40,&10,0,Stt%
8�
B
L� �upRec(X%,Y%)
V� A%
`6  q%!0=monW%:q%!4=42:q%!8=-402:q%!12=402:q%!16=-40
j'  ș"Wimp_UpdateWindow",,q% � More%
t
 ȕ More%
~     ș"Wimp_SetColour",1
�
     A%=0
�     ȕ A%<>Nx%
�*     ȓȐ XrL%(A%)+42+xo%,yo%+42,4,360
�     A%+=1
�
     �
�
     A%=0
�     ȕ A%<>Ny%
�*     ȓȐ 42+xo%,yo%+42+YrL%(A%),356,4
�     A%+=1
�
     �
�     ș"Wimp_SetColour",11
�
     A%=0
     ȕ A%<>Nx%

)     ȓȐ Xr%(A%)+42+xo%,yo%+42,4,360
     A%+=1

     �
(     ș"Wimp_SetColour",14
2
     A%=0
<     ȕ A%<>Ny%
F)     ȓȐ 42+xo%,yo%+42+Yr%(A%),356,4
P     A%+=1
Z
     �
d	     
n'  ș"Wimp_GetRectangle",,q% � More%
x �
� � A%=0 � 2
�& XrL%(A%)=Xr%(A%):YrL%(A%)=Yr%(A%)
� �
��
�
�� �quant
�� A%,t$,B%
��_Trans(monW%)
�� Nx%<>0 �
�Xr%(0)=X%-xo%-42
�Xr%(0)=Xr%(0)-(Xr%(0) � 6)
�nnX%=(Xr%(0) � 6)+24
��
� Ny%<>0 �
Yr%(0)=Y%-yo%-42
Yr%(0)=Yr%(0)-(Yr%(0) � 6)
"nnY%=(Yr%(0) � 6)+24
,�
6
@
Ȏ Key% �
J� 0:
T� 1:
^      ȕ Akey%(nnY%)
h       nnY%+=1
r      �
|      Yr%(0)=(nnY%-24)*6
�      ȕ Akey%(nnX%)
�      nnX%+=1
�      �
�      Xr%(0)=(nnX%-24)*6
�
�
�ȕ �(Akey%(nnY%-Ko%))
�nnY%+=1
��
�Yr%(0)=(nnY%-24)*6
�ȕ �(Akey%(nnX%-Ko%))
�nnX%+=1
��
Xr%(0)=(nnX%-24)*6
�

&"� Ny%=2 � Yr%(1)=Yr%(0)+6*Dy1%
0"� Nx%=2 � Xr%(1)=Xr%(0)+6*Dx1%
:L� Ny%=3 � Yr%(1)=Yr%(0)+6*Dy1%:Yr%(2)=Yr%(0)+6*Dy2%:Yr%(0)=Yr%(0)+6*Dy0%
DL� Nx%=3 � Xr%(1)=Xr%(0)+6*Dx1%:Xr%(2)=Xr%(0)+6*Dx2%:Xr%(0)=Xr%(0)+6*Dx0%
N7� (XrL%(0)<>Xr%(0)) � (YrL%(0)<>Yr%(0)) � ForceU% �
XUpdate%=�:ForceU%=�
b�cnn
l�_sput(0,�(PnnY%(0)))
v�_sput(1,�(PnnX%(0)))
��
��
�
�
� �cnn
�� A%
�� A%=0 � 2
�PnnX%(A%)=(Xr%(A%) � 6)+24
�PnnY%(A%)=(Yr%(A%) � 6)+24
��
�ș&404C2,ChX%
�A%=0
�ȕ A%<>Nx%
�� NonX%(A%)<>PnnX%(A%) �
ș&404CB,NonX%(A%),0
ș&404CC,PnnX%(A%),100
NonX%(A%)=PnnX%(A%)
 �
*	A%+=1
4�
>ș&404C2,ChY%
HA%=0
Rȕ A%<>Ny%
\� NonY%(A%)<>PnnY%(A%) �
fș&404CB,NonY%(A%),0
pș&404CC,PnnY%(A%),100
zNonY%(A%)=PnnY%(A%)
��
�	A%+=1
��
��
�
�� �NoteOff
�� A%
�� A%=0 � 2
�ș&404C2,ChX%
�ș&404CB,NonX%(A%),0
�ș&404C2,ChY%
�ș&404CB,NonY%(A%),0
�NonX%(A%)=-1
NonY%(A%)=-1
�
�
$
.� �_sput(In%,X$)
8� A%,x%
Bx%=SPoint%(In%)
LA%=1
V� �(X$)<>0 �
`ȕ A%<>(�(X$)+1)
j?x%=�(�X$,A%,1))
t	x%+=1
~	A%+=1
��
��
�	?x%=0
�Dș"Wimp_ForceRedraw",monW%,IX%(In%),IY%(In%),IX1%(In%),IY1%(In%)
��
�
00000000  0d 00 0a 16 f4 3e 21 4d  69 64 69 4d 6f 75 73 65  |.....>!MidiMouse|
00000010  2e 52 75 6e 4d 4d 0d 00  14 1b f4 20 4d 75 73 69  |.RunMM..... Musi|
00000020  63 20 66 72 6f 6d 20 79  6f 75 72 20 6d 6f 75 73  |c from your mous|
00000030  65 0d 00 1e 1e f4 20 56  65 72 73 69 6f 6e 20 31  |e..... Version 1|
00000040  2e 30 20 42 79 20 4d 69  6b 65 20 43 6f 6f 6b 0d  |.0 By Mike Cook.|
00000050  00 28 19 f4 20 41 6c 6c  20 72 69 67 68 74 73 20  |.(.. All rights |
00000060  72 65 73 65 72 76 65 64  0d 00 32 11 ee 20 85 20  |reserved..2.. . |
00000070  f2 65 72 72 6f 72 62 6f  78 0d 00 3c 04 0d 00 46  |.errorbox..<...F|
00000080  1e de 20 74 61 73 6b 69  64 25 34 3a 24 74 61 73  |.. taskid%4:$tas|
00000090  6b 69 64 25 3d 22 54 41  53 4b 22 0d 00 50 3c de  |kid%="TASK"..P<.|
000000a0  20 50 4f 52 54 25 28 33  29 2c 20 50 69 6e 24 28  | PORT%(3), Pin$(|
000000b0  32 2c 37 29 2c 50 69 6e  4e 24 28 32 2c 37 29 2c  |2,7),PinN$(2,7),|
000000c0  50 69 6e 49 4f 24 28 32  2c 37 29 2c 69 6e 74 6d  |PinIO$(2,7),intm|
000000d0  65 73 73 25 20 32 30 0d  00 5a 49 69 6e 74 6d 65  |ess% 20..ZIintme|
000000e0  73 73 25 21 30 3d 31 3a  69 6e 74 6d 65 73 73 25  |ss%!0=1:intmess%|
000000f0  21 34 3d 32 3a 69 6e 74  6d 65 73 73 25 21 38 3d  |!4=2:intmess%!8=|
00000100  33 3a 69 6e 74 6d 65 73  73 25 21 31 32 3d 26 35  |3:intmess%!12=&5|
00000110  30 32 3a 69 6e 74 6d 65  73 73 25 21 31 36 3d 30  |02:intmess%!16=0|
00000120  0d 00 64 50 c8 99 20 22  57 69 6d 70 5f 49 6e 69  |..dP.. "Wimp_Ini|
00000130  74 69 61 6c 69 73 65 22  2c 33 30 30 2c 21 74 61  |tialise",300,!ta|
00000140  73 6b 69 64 25 2c 22 4d  69 64 69 5f 4d 6f 75 73  |skid%,"Midi_Mous|
00000150  65 22 2c 69 6e 74 6d 65  73 73 25 20 b8 20 76 65  |e",intmess% . ve|
00000160  72 73 69 6f 6e 25 2c 74  61 73 6b 68 61 6e 64 25  |rsion%,taskhand%|
00000170  0d 00 6e 4e de 20 71 25  20 26 33 30 30 2c 71 63  |..nN. q% &300,qc|
00000180  25 20 38 30 2c 20 57 6e  25 20 26 33 30 30 2c 74  |% 80, Wn% &300,t|
00000190  65 6d 70 25 20 32 35 36  2c 62 75 66 66 65 72 73  |emp% 256,buffers|
000001a0  25 20 35 31 32 2c 6d 65  6e 75 25 20 32 35 36 2c  |% 512,menu% 256,|
000001b0  53 57 25 20 35 31 32 2c  63 62 25 20 31 38 0d 00  |SW% 512,cb% 18..|
000001c0  78 41 de 20 49 73 4e 61  6d 65 25 20 32 35 36 2c  |xA. IsName% 256,|
000001d0  20 57 6d 65 6e 75 25 20  35 31 32 2c 20 54 65 78  | Wmenu% 512, Tex|
000001e0  74 57 61 72 6e 25 20 31  30 30 2c 20 77 77 25 20  |tWarn% 100, ww% |
000001f0  32 35 36 2c 20 43 6d 65  6e 75 25 20 32 35 36 0d  |256, Cmenu% 256.|
00000200  00 82 16 4e 69 25 3d 32  31 20 3a 53 50 72 25 3d  |...Ni%=21 :SPr%=|
00000210  32 37 30 30 30 0d 00 8c  1f de 20 53 50 25 20 53  |27000..... SP% S|
00000220  50 72 25 2c 20 47 35 25  20 31 30 32 34 2c 20 47  |Pr%, G5% 1024, G|
00000230  34 25 20 38 0d 00 96 56  de 20 58 72 25 28 32 29  |4% 8...V. Xr%(2)|
00000240  2c 20 58 72 4c 25 28 32  29 2c 20 59 72 25 28 32  |, XrL%(2), Yr%(2|
00000250  29 2c 20 59 72 4c 25 28  32 29 2c 20 41 6b 65 79  |), YrL%(2), Akey|
00000260  25 28 31 32 37 29 2c 50  6e 6e 58 25 28 32 29 2c  |%(127),PnnX%(2),|
00000270  50 6e 6e 59 25 28 32 29  2c 4e 6f 6e 58 25 28 32  |PnnY%(2),NonX%(2|
00000280  29 2c 4e 6f 6e 59 25 28  32 29 0d 00 a0 31 de 20  |),NonY%(2)...1. |
00000290  79 6d 65 6e 75 25 20 35  31 32 2c 67 6d 65 6e 75  |ymenu% 512,gmenu|
000002a0  25 20 35 31 32 2c 49 6d  65 6e 75 25 20 32 35 36  |% 512,Imenu% 256|
000002b0  2c 53 6d 65 6e 75 25 20  32 35 36 0d 00 aa 09 4e  |,Smenu% 256....N|
000002c0  69 25 3d 32 0d 00 b4 38  de 20 53 50 6f 69 6e 74  |i%=2...8. SPoint|
000002d0  25 28 4e 69 25 29 2c 49  58 25 28 4e 69 25 29 2c  |%(Ni%),IX%(Ni%),|
000002e0  49 59 25 28 4e 69 25 29  2c 49 58 31 25 28 4e 69  |IY%(Ni%),IX1%(Ni|
000002f0  25 29 2c 49 59 31 25 28  4e 69 25 29 0d 00 be 04  |%),IY1%(Ni%)....|
00000300  0d 00 c8 30 c8 99 20 22  57 69 6d 70 5f 4f 70 65  |...0.. "Wimp_Ope|
00000310  6e 54 65 6d 70 6c 61 74  65 22 2c 2c 22 3c 4d 4d  |nTemplate",,"<MM|
00000320  24 44 69 72 3e 2e 54 65  6d 70 6c 61 74 65 73 22  |$Dir>.Templates"|
00000330  0d 00 d2 29 ee 20 85 20  c8 99 20 22 57 69 6d 70  |...). . .. "Wimp|
00000340  5f 43 6c 6f 73 65 54 65  6d 70 6c 61 74 65 22 3a  |_CloseTemplate":|
00000350  f2 65 72 72 6f 72 62 6f  78 0d 00 dc 3a c8 99 20  |.errorbox...:.. |
00000360  22 57 69 6d 70 5f 4c 6f  61 64 54 65 6d 70 6c 61  |"Wimp_LoadTempla|
00000370  74 65 22 2c 2c 71 25 2c  74 65 6d 70 25 2c 74 65  |te",,q%,temp%,te|
00000380  6d 70 25 2b 32 35 36 2c  2d 31 2c 22 49 6e 66 6f  |mp%+256,-1,"Info|
00000390  22 2c 30 0d 00 e6 26 c8  99 20 22 57 69 6d 70 5f  |",0...&.. "Wimp_|
000003a0  43 72 65 61 74 65 57 69  6e 64 6f 77 22 2c 2c 71  |CreateWindow",,q|
000003b0  25 20 b8 20 69 6e 66 6f  25 0d 00 f0 3d c8 99 20  |% . info%...=.. |
000003c0  22 57 69 6d 70 5f 4c 6f  61 64 54 65 6d 70 6c 61  |"Wimp_LoadTempla|
000003d0  74 65 22 2c 2c 57 6e 25  2b 34 2c 53 57 25 2c 53  |te",,Wn%+4,SW%,S|
000003e0  57 25 2b 35 31 32 2c 2d  31 2c 22 50 61 6c 6c 65  |W%+512,-1,"Palle|
000003f0  74 74 65 22 2c 30 0d 00  fa 29 c8 99 20 22 57 69  |tte",0...).. "Wi|
00000400  6d 70 5f 43 72 65 61 74  65 57 69 6e 64 6f 77 22  |mp_CreateWindow"|
00000410  2c 2c 57 6e 25 2b 34 20  b8 20 6d 6f 6e 57 25 0d  |,,Wn%+4 . monW%.|
00000420  01 04 19 57 6e 25 21 30  3d 6d 6f 6e 57 25 3a 57  |...Wn%!0=monW%:W|
00000430  6e 25 21 32 38 3d 2d 31  0d 01 0e 10 e3 20 41 25  |n%!28=-1..... A%|
00000440  3d 30 20 b8 20 4e 69 25  0d 01 18 24 53 50 6f 69  |=0 . Ni%...$SPoi|
00000450  6e 74 25 28 41 25 29 3d  21 28 57 6e 25 2b 34 2b  |nt%(A%)=!(Wn%+4+|
00000460  38 38 2b 32 30 2b 33 32  2a 41 25 29 0d 01 22 39  |88+20+32*A%).."9|
00000470  49 58 25 28 41 25 29 3d  21 28 57 6e 25 2b 34 2b  |IX%(A%)=!(Wn%+4+|
00000480  38 38 2b 33 32 2a 41 25  29 3a 49 59 25 28 41 25  |88+32*A%):IY%(A%|
00000490  29 3d 21 28 57 6e 25 2b  34 2b 38 38 2b 34 2b 33  |)=!(Wn%+4+88+4+3|
000004a0  32 2a 41 25 29 0d 01 2c  3e 49 58 31 25 28 41 25  |2*A%)..,>IX1%(A%|
000004b0  29 3d 21 28 57 6e 25 2b  34 2b 38 38 2b 38 2b 33  |)=!(Wn%+4+88+8+3|
000004c0  32 2a 41 25 29 3a 49 59  31 25 28 41 25 29 3d 21  |2*A%):IY1%(A%)=!|
000004d0  28 57 6e 25 2b 34 2b 38  38 2b 31 32 2b 33 32 2a  |(Wn%+4+88+12+32*|
000004e0  41 25 29 0d 01 36 05 ed  0d 01 40 04 0d 01 4a 39  |A%)..6....@...J9|
000004f0  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
00000500  70 6c 61 74 65 22 2c 2c  71 25 2c 77 77 25 2c 77  |plate",,q%,ww%,w|
00000510  77 25 2b 32 35 36 2c 2d  31 2c 22 57 61 72 6e 69  |w%+256,-1,"Warni|
00000520  6e 67 22 2c 30 0d 01 54  29 71 25 21 31 30 38 3d  |ng",0..T)q%!108=|
00000530  54 65 78 74 57 61 72 6e  25 3a 71 25 21 31 31 32  |TextWarn%:q%!112|
00000540  3d 2d 31 3a 71 25 21 31  31 36 3d 33 30 30 0d 01  |=-1:q%!116=300..|
00000550  5e 20 58 51 25 3d 71 25  21 38 2d 71 25 21 30 3a  |^ XQ%=q%!8-q%!0:|
00000560  59 51 25 3d 71 25 21 31  32 2d 71 25 21 34 0d 01  |YQ%=q%!12-q%!4..|
00000570  68 2a c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |h*.. "Wimp_Creat|
00000580  65 57 69 6e 64 6f 77 22  2c 2c 71 25 20 b8 20 77  |eWindow",,q% . w|
00000590  61 72 6e 69 6e 67 57 25  0d 01 72 1b c8 99 20 22  |arningW%..r... "|
000005a0  57 69 6d 70 5f 43 6c 6f  73 65 54 65 6d 70 6c 61  |Wimp_CloseTempla|
000005b0  74 65 22 0d 01 7c 18 72  65 66 25 3d 30 3a 4c 58  |te"..|.ref%=0:LX|
000005c0  25 3d 2d 31 3a 4c 59 25  3d 2d 31 0d 01 86 17 63  |%=-1:LY%=-1....c|
000005d0  70 4c 25 3d 30 3a 63 70  52 25 3d 30 3a 4e 54 25  |pL%=0:cpR%=0:NT%|
000005e0  3d 30 0d 01 90 1c 4e 78  25 3d 31 3a 4e 79 25 3d  |=0....Nx%=1:Ny%=|
000005f0  31 3a 4b 6f 25 3d 30 3a  4b 65 79 25 3d 34 0d 01  |1:Ko%=0:Key%=4..|
00000600  9a 16 49 6e 57 69 6e 25  3d a3 3a 55 70 64 61 74  |..InWin%=.:Updat|
00000610  65 25 3d b9 0d 01 a4 0d  46 6f 72 63 65 55 25 3d  |e%=.....ForceU%=|
00000620  a3 0d 01 ae 1b 43 68 58  25 3d 33 3a 43 68 59 25  |.....ChX%=3:ChY%|
00000630  3d 34 3a 53 74 6f 70 65  64 25 3d b9 0d 01 b8 12  |=4:Stoped%=.....|
00000640  73 6d 70 69 63 6f 6e 25  3d a4 69 63 6f 6e 0d 01  |smpicon%=.icon..|
00000650  c2 16 77 6f 70 65 6e 25  3d a3 3a 77 61 72 6e 4f  |..wopen%=.:warnO|
00000660  6e 25 3d a3 0d 01 cc 0e  f2 73 65 74 75 70 6d 65  |n%=......setupme|
00000670  6e 75 0d 01 d6 09 f2 5f  53 4b 53 0d 01 e0 04 0d  |nu....._SKS.....|
00000680  01 ea 05 f5 0d 01 f4 1d  20 c8 99 20 22 57 69 6d  |........ .. "Wim|
00000690  70 5f 50 6f 6c 6c 22 2c  30 2c 71 25 20 b8 20 41  |p_Poll",0,q% . A|
000006a0  25 0d 01 fe 0d 20 20 c8  8e 20 41 25 20 ca 0d 02  |%....  .. A% ...|
000006b0  08 11 20 20 20 c9 20 30  3a f2 5f 4e 75 6c 6c 0d  |..   . 0:._Null.|
000006c0  02 12 15 20 20 20 c9 20  31 3a f2 5f 64 6f 57 69  |...   . 1:._doWi|
000006d0  6e 64 6f 77 0d 02 1c 7a  20 20 20 c9 20 32 3a c8  |ndow...z   . 2:.|
000006e0  99 22 4f 53 5f 52 65 61  64 4d 6f 64 65 56 61 72  |."OS_ReadModeVar|
000006f0  69 61 62 6c 65 22 2c 2d  31 2c 33 20 b8 20 2c 2c  |iable",-1,3 . ,,|
00000700  4e 63 6f 6c 6f 75 72 73  25 3a 20 c8 99 20 22 57  |Ncolours%: .. "W|
00000710  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00000720  2c 71 25 3a c8 99 22 57  69 6d 70 5f 53 65 74 43  |,q%:.."Wimp_SetC|
00000730  61 72 65 74 50 6f 73 69  74 69 6f 6e 22 2c 6d 6f  |aretPosition",mo|
00000740  6e 57 25 2c 2d 31 2c 30  2c 30 2c 30 2c 30 0d 02  |nW%,-1,0,0,0,0..|
00000750  26 12 20 20 20 c9 20 33  3a f2 5f 63 6c 6f 73 65  |&.   . 3:._close|
00000760  0d 02 30 52 20 20 20 c9  20 34 3a 49 6e 57 69 6e  |..0R   . 4:InWin|
00000770  25 3d a3 3a 4c 58 25 3d  2d 31 3a 4c 59 25 3d 2d  |%=.:LX%=-1:LY%=-|
00000780  31 3a 53 74 6f 70 65 64  25 3d b9 3a c8 99 22 57  |1:Stoped%=.:.."W|
00000790  69 6d 70 5f 53 70 72 69  74 65 4f 70 22 2c 33 36  |imp_SpriteOp",36|
000007a0  2c 30 2c 22 70 74 72 5f  64 65 66 61 75 6c 74 22  |,0,"ptr_default"|
000007b0  2c 31 0d 02 3a 40 20 20  20 c9 20 35 3a 49 6e 57  |,1..:@   . 5:InW|
000007c0  69 6e 25 3d b9 3a c8 99  22 57 69 6d 70 5f 53 70  |in%=.:.."Wimp_Sp|
000007d0  72 69 74 65 4f 70 22 2c  33 36 2c 30 2c 22 70 74  |riteOp",36,0,"pt|
000007e0  72 5f 6d 69 64 69 6d 22  2c 32 2c 31 33 2c 31 35  |r_midim",2,13,15|
000007f0  2c 30 0d 02 44 19 20 20  20 c9 20 36 3a f2 5f 64  |,0..D.   . 6:._d|
00000800  6f 5f 63 6c 69 63 6b 28  71 25 29 0d 02 4e 0b 20  |o_click(q%)..N. |
00000810  20 20 c9 20 37 3a 0d 02  58 15 20 20 20 c9 20 38  |  . 7:..X.   . 8|
00000820  3a f2 5f 4b 65 79 50 72  65 73 73 0d 02 62 16 20  |:._KeyPress..b. |
00000830  20 20 c9 20 39 3a f2 5f  53 4f 52 54 5f 4d 65 6e  |  . 9:._SORT_Men|
00000840  75 0d 02 6c 1b 20 20 20  c9 20 31 37 2c 31 38 3a  |u..l.   . 17,18:|
00000850  f2 72 65 63 65 69 76 65  28 71 25 29 0d 02 76 08  |.receive(q%)..v.|
00000860  20 20 20 cb 0d 02 80 08  20 fd 20 a3 0d 02 8a 04  |   ..... . .....|
00000870  0d 02 94 05 e0 0d 02 9e  04 0d 02 a8 0c dd 20 f2  |.............. .|
00000880  5f 4e 75 6c 6c 0d 02 b2  14 ea 20 41 25 2c 42 25  |_Null..... A%,B%|
00000890  2c 43 25 2c 58 25 2c 59  25 0d 02 bc 0e e7 20 49  |,C%,X%,Y%..... I|
000008a0  6e 57 69 6e 25 20 8c 0d  02 c6 10 20 c8 97 20 58  |nWin% ..... .. X|
000008b0  25 2c 59 25 2c 42 25 0d  02 d0 18 20 e7 20 42 25  |%,Y%,B%.... . B%|
000008c0  3c 3e 30 20 8c 20 53 74  6f 70 65 64 25 3d a3 0d  |<>0 . Stoped%=..|
000008d0  02 d1 15 20 e7 20 a6 28  2d 32 29 20 8c 20 58 25  |... . .(-2) . X%|
000008e0  3d 4c 58 25 0d 02 d2 15  20 e7 20 a6 28 2d 33 29  |=LX%.... . .(-3)|
000008f0  20 8c 20 59 25 3d 4c 59  25 0d 02 da 30 20 e7 20  | . Y%=LY%...0 . |
00000900  28 58 25 3c 3e 4c 58 25  20 84 20 59 25 3c 3e 4c  |(X%<>LX% . Y%<>L|
00000910  59 25 29 20 80 20 42 25  3d 30 20 80 20 ac 28 53  |Y%) . B%=0 . .(S|
00000920  74 6f 70 65 64 25 29 20  8c 0d 02 e4 12 20 4c 58  |toped%) ..... LX|
00000930  25 3d 58 25 3a 4c 59 25  3d 59 25 0d 02 ee 0e 20  |%=X%:LY%=Y%.... |
00000940  55 70 64 61 74 65 25 3d  a3 0d 02 f8 0b 20 f2 71  |Update%=..... .q|
00000950  75 61 6e 74 0d 03 02 1e  20 e7 20 55 70 64 61 74  |uant.... . Updat|
00000960  65 25 20 8c 20 f2 75 70  52 65 63 28 58 25 2c 59  |e% . .upRec(X%,Y|
00000970  25 29 0d 03 0c 06 20 cd  0d 03 16 05 cd 0d 03 20  |%).... ........ |
00000980  05 e1 0d 03 2a 04 0d 03  34 11 dd 20 f2 5f 53 4f  |....*...4.. ._SO|
00000990  52 54 5f 4d 65 6e 75 0d  03 3e 08 ea 20 41 25 0d  |RT_Menu..>.. A%.|
000009a0  03 48 20 e7 20 21 71 25  3d 31 20 80 20 49 63 6f  |.H . !q%=1 . Ico|
000009b0  6e 4d 65 6e 75 25 3d b9  20 8c 20 f2 64 69 65 0d  |nMenu%=. . .die.|
000009c0  03 52 0c f2 4e 6f 74 65  4f 66 66 0d 03 5c 0c c8  |.R..NoteOff..\..|
000009d0  8e 20 21 71 25 20 ca 0d  03 66 15 c9 20 31 3a 20  |. !q% ...f.. 1: |
000009e0  e7 20 71 25 21 34 3c 3e  2d 31 20 8c 0d 03 70 20  |. q%!4<>-1 ...p |
000009f0  20 20 20 20 20 20 20 20  f2 74 69 63 6b 28 67 6d  |        .tick(gm|
00000a00  65 6e 75 25 2c 38 2c 71  25 21 34 29 0d 03 7a 15  |enu%,8,q%!4)..z.|
00000a10  20 20 20 20 20 20 20 20  c8 8e 20 71 25 21 34 20  |        .. q%!4 |
00000a20  ca 0d 03 84 16 20 20 20  20 20 20 20 20 c9 20 30  |.....        . 0|
00000a30  3a 20 4e 78 25 3d 30 0d  03 8e 1d 20 20 20 20 20  |: Nx%=0....     |
00000a40  20 20 20 c9 20 31 3a 20  4e 78 25 3d 31 3a 44 78  |   . 1: Nx%=1:Dx|
00000a50  30 25 3d 30 0d 03 98 24  20 20 20 20 20 20 20 20  |0%=0...$        |
00000a60  c9 20 32 3a 20 4e 78 25  3d 32 3a 44 78 30 25 3d  |. 2: Nx%=2:Dx0%=|
00000a70  30 3a 44 78 31 25 3d 33  0d 03 a2 2b 20 20 20 20  |0:Dx1%=3...+    |
00000a80  20 20 20 20 c9 20 33 3a  20 4e 78 25 3d 33 3a 44  |    . 3: Nx%=3:D|
00000a90  78 30 25 3d 30 3a 44 78  31 25 3d 34 3a 44 78 32  |x0%=0:Dx1%=4:Dx2|
00000aa0  25 3d 37 0d 03 ac 2b 20  20 20 20 20 20 20 20 c9  |%=7...+        .|
00000ab0  20 34 3a 20 4e 78 25 3d  33 3a 44 78 30 25 3d 30  | 4: Nx%=3:Dx0%=0|
00000ac0  3a 44 78 31 25 3d 34 3a  44 78 32 25 3d 39 0d 03  |:Dx1%=4:Dx2%=9..|
00000ad0  b6 2b 20 20 20 20 20 20  20 20 c9 20 35 3a 20 4e  |.+        . 5: N|
00000ae0  78 25 3d 33 3a 44 78 30  25 3d 30 3a 44 78 31 25  |x%=3:Dx0%=0:Dx1%|
00000af0  3d 35 3a 44 78 32 25 3d  39 0d 03 c0 2c 20 20 20  |=5:Dx2%=9...,   |
00000b00  20 20 20 20 20 c9 20 36  3a 20 4e 78 25 3d 33 3a  |     . 6: Nx%=3:|
00000b10  44 78 30 25 3d 32 3a 44  78 31 25 3d 39 3a 44 78  |Dx0%=2:Dx1%=9:Dx|
00000b20  32 25 3d 31 33 0d 03 ca  2c 20 20 20 20 20 20 20  |2%=13...,       |
00000b30  20 c9 20 37 3a 20 4e 78  25 3d 33 3a 44 78 30 25  | . 7: Nx%=3:Dx0%|
00000b40  3d 37 3a 44 78 31 25 3d  39 3a 44 78 32 25 3d 31  |=7:Dx1%=9:Dx2%=1|
00000b50  36 0d 03 d4 0d 20 20 20  20 20 20 20 20 cb 0d 03  |6....        ...|
00000b60  de 36 20 20 20 20 20 20  20 20 c8 99 22 57 69 6d  |.6        .."Wim|
00000b70  70 5f 46 6f 72 63 65 52  65 64 72 61 77 22 2c 6d  |p_ForceRedraw",m|
00000b80  6f 6e 57 25 2c 34 34 2c  2d 37 31 30 2c 37 31 30  |onW%,44,-710,710|
00000b90  2c 2d 34 30 0d 03 e8 0d  20 20 20 20 20 20 20 20  |,-40....        |
00000ba0  cd 0d 03 f2 14 c9 20 32  3a e7 20 71 25 21 34 3c  |...... 2:. q%!4<|
00000bb0  3e 2d 31 20 8c 0d 03 fc  20 20 20 20 20 20 20 20  |>-1 ....        |
00000bc0  20 f2 74 69 63 6b 28 79  6d 65 6e 75 25 2c 38 2c  | .tick(ymenu%,8,|
00000bd0  71 25 21 34 29 0d 04 06  15 20 20 20 20 20 20 20  |q%!4)....       |
00000be0  20 c8 8e 20 71 25 21 34  20 ca 0d 04 10 16 20 20  | .. q%!4 .....  |
00000bf0  20 20 20 20 20 20 c9 20  30 3a 20 4e 79 25 3d 30  |      . 0: Ny%=0|
00000c00  0d 04 1a 1d 20 20 20 20  20 20 20 20 c9 20 31 3a  |....        . 1:|
00000c10  20 4e 79 25 3d 31 3a 44  79 30 25 3d 30 0d 04 24  | Ny%=1:Dy0%=0..$|
00000c20  24 20 20 20 20 20 20 20  20 c9 20 32 3a 20 4e 79  |$        . 2: Ny|
00000c30  25 3d 32 3a 44 79 30 25  3d 30 3a 44 79 31 25 3d  |%=2:Dy0%=0:Dy1%=|
00000c40  35 0d 04 2e 24 20 20 20  20 20 20 20 20 c9 20 33  |5...$        . 3|
00000c50  3a 20 4e 79 25 3d 33 3a  44 79 30 25 3d 30 3a 44  |: Ny%=3:Dy0%=0:D|
00000c60  79 32 25 3d 37 0d 04 38  2b 20 20 20 20 20 20 20  |y2%=7..8+       |
00000c70  20 c9 20 34 3a 20 4e 79  25 3d 33 3a 44 79 30 25  | . 4: Ny%=3:Dy0%|
00000c80  3d 30 3a 44 79 31 25 3d  34 3a 44 79 32 25 3d 39  |=0:Dy1%=4:Dy2%=9|
00000c90  0d 04 42 2b 20 20 20 20  20 20 20 20 c9 20 35 3a  |..B+        . 5:|
00000ca0  20 4e 79 25 3d 33 3a 44  79 30 25 3d 30 3a 44 79  | Ny%=3:Dy0%=0:Dy|
00000cb0  31 25 3d 35 3a 44 79 32  25 3d 39 0d 04 4c 2c 20  |1%=5:Dy2%=9..L, |
00000cc0  20 20 20 20 20 20 20 c9  20 36 3a 20 4e 79 25 3d  |       . 6: Ny%=|
00000cd0  33 3a 44 79 30 25 3d 32  3a 44 79 31 25 3d 39 3a  |3:Dy0%=2:Dy1%=9:|
00000ce0  44 79 32 25 3d 31 33 0d  04 56 2c 20 20 20 20 20  |Dy2%=13..V,     |
00000cf0  20 20 20 c9 20 37 3a 20  4e 79 25 3d 33 3a 44 79  |   . 7: Ny%=3:Dy|
00000d00  30 25 3d 37 3a 44 79 31  25 3d 39 3a 44 79 32 25  |0%=7:Dy1%=9:Dy2%|
00000d10  3d 31 36 0d 04 60 0d 20  20 20 20 20 20 20 20 cb  |=16..`.        .|
00000d20  0d 04 6a 36 20 20 20 20  20 20 20 20 c8 99 22 57  |..j6        .."W|
00000d30  69 6d 70 5f 46 6f 72 63  65 52 65 64 72 61 77 22  |imp_ForceRedraw"|
00000d40  2c 6d 6f 6e 57 25 2c 34  34 2c 2d 37 31 30 2c 37  |,monW%,44,-710,7|
00000d50  31 30 2c 2d 34 30 0d 04  74 0d 20 20 20 20 20 20  |10,-40..t.      |
00000d60  20 20 cd 0d 04 7e 14 c9  20 33 3a e7 20 71 25 21  |  ...~.. 3:. q%!|
00000d70  34 3c 3e 2d 31 20 8c 0d  04 88 20 20 20 20 20 20  |4<>-1 ....      |
00000d80  20 20 20 f2 74 69 63 6b  28 53 6d 65 6e 75 25 2c  |   .tick(Smenu%,|
00000d90  39 2c 71 25 21 34 29 0d  04 92 15 20 20 20 20 20  |9,q%!4)....     |
00000da0  20 20 20 c8 8e 20 71 25  21 34 20 ca 0d 04 9c 15  |   .. q%!4 .....|
00000db0  20 20 20 20 20 20 20 20  c9 20 32 3a 4b 6f 25 3d  |        . 2:Ko%=|
00000dc0  39 0d 04 a6 16 20 20 20  20 20 20 20 20 c9 20 33  |9....        . 3|
00000dd0  3a 4b 6f 25 3d 31 31 0d  04 b0 15 20 20 20 20 20  |:Ko%=11....     |
00000de0  20 20 20 c9 20 34 3a 4b  6f 25 3d 30 0d 04 ba 15  |   . 4:Ko%=0....|
00000df0  20 20 20 20 20 20 20 20  c9 20 35 3a 4b 6f 25 3d  |        . 5:Ko%=|
00000e00  32 0d 04 c4 15 20 20 20  20 20 20 20 20 c9 20 36  |2....        . 6|
00000e10  3a 4b 6f 25 3d 34 0d 04  ce 15 20 20 20 20 20 20  |:Ko%=4....      |
00000e20  20 20 c9 20 37 3a 4b 6f  25 3d 35 0d 04 d8 15 20  |  . 7:Ko%=5.... |
00000e30  20 20 20 20 20 20 20 c9  20 38 3a 4b 6f 25 3d 37  |       . 8:Ko%=7|
00000e40  0d 04 e2 0d 20 20 20 20  20 20 20 20 cb 0d 04 ec  |....        ....|
00000e50  15 20 20 20 20 20 20 20  20 4b 65 79 25 3d 71 25  |.        Key%=q%|
00000e60  21 34 0d 04 f6 0d 20 20  20 20 20 20 20 20 cd 0d  |!4....        ..|
00000e70  05 00 0d c9 20 34 3a 20  f2 64 69 65 0d 05 0a 05  |.... 4: .die....|
00000e80  cb 0d 05 14 04 0d 05 1e  1f c8 99 22 57 69 6d 70  |..........."Wimp|
00000e90  5f 47 65 74 50 6f 69 6e  74 65 72 49 6e 66 6f 22  |_GetPointerInfo"|
00000ea0  2c 2c 71 25 0d 05 28 36  e7 20 71 25 21 38 3d 31  |,,q%..(6. q%!8=1|
00000eb0  20 8c 20 c8 99 22 57 69  6d 70 5f 43 72 65 61 74  | . .."Wimp_Creat|
00000ec0  65 4d 65 6e 75 22 2c 2c  6d 65 6e 75 25 2c 71 25  |eMenu",,menu%,q%|
00000ed0  21 30 2d 39 34 2c 71 25  21 34 0d 05 32 05 e1 0d  |!0-94,q%!4..2...|
00000ee0  05 3c 04 0d 05 46 0d dd  20 f2 5f 63 6c 6f 73 65  |.<...F.. ._close|
00000ef0  0d 05 50 4a e7 20 71 25  21 30 3d 6d 6f 6e 57 25  |..PJ. q%!0=monW%|
00000f00  20 8c 20 c8 99 22 57 69  6d 70 5f 47 65 74 57 69  | . .."Wimp_GetWi|
00000f10  6e 64 6f 77 49 6e 66 6f  22 2c 2c 57 6e 25 3a 77  |ndowInfo",,Wn%:w|
00000f20  6f 70 65 6e 25 3d a3 3a  f2 4e 6f 74 65 4f 66 66  |open%=.:.NoteOff|
00000f30  3a 53 74 6f 70 65 64 25  3d b9 0d 05 5a 20 e7 20  |:Stoped%=...Z . |
00000f40  71 25 21 30 3d 77 61 72  6e 69 6e 67 57 25 20 8c  |q%!0=warningW% .|
00000f50  20 77 61 72 6e 4f 6e 25  3d a3 0d 05 64 1d c8 99  | warnOn%=...d...|
00000f60  20 22 57 69 6d 70 5f 43  6c 6f 73 65 57 69 6e 64  | "Wimp_CloseWind|
00000f70  6f 77 22 2c 2c 71 25 0d  05 6e 05 e1 0d 05 78 04  |ow",,q%..n....x.|
00000f80  0d 05 82 14 dd 20 f2 5f  64 6f 5f 63 6c 69 63 6b  |..... ._do_click|
00000f90  28 71 25 29 0d 05 8c 0c  69 25 3d 71 25 21 31 36  |(q%)....i%=q%!16|
00000fa0  0d 05 96 0e c8 8e 20 71  25 21 31 32 20 ca 0d 05  |...... q%!12 ...|
00000fb0  a0 28 c9 20 77 61 72 6e  69 6e 67 57 25 3a 20 71  |.(. warningW%: q|
00000fc0  25 21 30 3d 77 61 72 6e  69 6e 67 57 25 20 3a f2  |%!0=warningW% :.|
00000fd0  5f 63 6c 6f 73 65 0d 05  aa 04 0d 05 b4 28 c9 20  |_close.......(. |
00000fe0  2d 32 3a 20 f4 20 4c 6f  6f 6b 20 66 69 72 73 74  |-2: . Look first|
00000ff0  20 61 74 20 49 63 6f 6e  20 42 61 72 20 43 6c 69  | at Icon Bar Cli|
00001000  63 6b 0d 05 be 1e 20 20  20 20 20 20 20 20 e7 20  |ck....        . |
00001010  71 25 21 31 36 3d 73 6d  70 69 63 6f 6e 25 20 8c  |q%!16=smpicon% .|
00001020  0d 05 c8 4b 20 20 20 20  20 20 20 20 e7 20 71 25  |...K        . q%|
00001030  21 38 3d 32 20 8c 20 49  63 6f 6e 4d 65 6e 75 25  |!8=2 . IconMenu%|
00001040  3d b9 3a 20 c8 99 22 57  69 6d 70 5f 43 72 65 61  |=.: .."Wimp_Crea|
00001050  74 65 4d 65 6e 75 22 2c  2c 49 6d 65 6e 75 25 2c  |teMenu",,Imenu%,|
00001060  71 25 21 30 2d 36 34 2c  31 37 36 0d 05 d2 1d 20  |q%!0-64,176.... |
00001070  20 20 20 20 20 20 20 e7  20 71 25 21 38 3d 34 20  |       . q%!8=4 |
00001080  8c 20 f2 5f 4f 70 65 6e  0d 05 dc 0d 20 20 20 20  |. ._Open....    |
00001090  20 20 20 20 cd 0d 05 e6  04 0d 05 f0 0e c9 20 6d  |    .......... m|
000010a0  6f 6e 57 25 3a 20 20 0d  05 fa 27 20 20 20 20 20  |onW%:  ...'     |
000010b0  20 20 20 20 20 20 20 20  20 e7 20 71 25 21 38 3d  |         . q%!8=|
000010c0  34 20 8c 20 f2 5f 4d 6f  6e 43 6c 69 63 6b 0d 06  |4 . ._MonClick..|
000010d0  04 36 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.6              |
000010e0  e7 20 71 25 21 38 3d 31  20 8c 20 f2 4e 6f 74 65  |. q%!8=1 . .Note|
000010f0  4f 66 66 3a 46 6f 72 63  65 55 25 3d b9 3a 4c 58  |Off:ForceU%=.:LX|
00001100  25 3d 2d 31 0d 06 0e 63  20 20 20 20 20 20 20 20  |%=-1...c        |
00001110  20 20 20 20 20 20 e7 20  71 25 21 38 3d 32 20 8c  |      . q%!8=2 .|
00001120  20 49 63 6f 6e 4d 65 6e  75 25 3d a3 3a c8 99 22  | IconMenu%=.:.."|
00001130  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
00001140  2c 2c 6d 65 6e 75 25 2c  71 25 21 30 2d 39 34 2c  |,,menu%,q%!0-94,|
00001150  71 25 21 34 3a f2 4e 6f  74 65 4f 66 66 3a 53 74  |q%!4:.NoteOff:St|
00001160  6f 70 65 64 25 3d b9 0d  06 18 05 cb 0d 06 22 05  |oped%=........".|
00001170  e1 0d 06 2c 04 0d 06 36  04 0d 06 40 10 dd 20 f2  |...,...6...@.. .|
00001180  5f 4d 6f 6e 43 6c 69 63  6b 0d 06 4a 14 ea 20 58  |_MonClick..J.. X|
00001190  25 2c 59 25 2c 44 25 2c  56 25 2c 42 25 0d 06 54  |%,Y%,D%,V%,B%..T|
000011a0  26 f4 20 44 6f 20 74 68  65 20 61 63 74 69 6f 6e  |&. Do the action|
000011b0  20 66 6f 72 20 61 20 77  69 6e 64 6f 77 20 63 6c  | for a window cl|
000011c0  69 63 6b 0d 06 5e 05 e1  0d 06 68 04 0d 06 72 0c  |ick..^....h...r.|
000011d0  dd 20 f2 5f 4f 70 65 6e  0d 06 7c 2e c8 99 22 4f  |. ._Open..|..."O|
000011e0  53 5f 52 65 61 64 4d 6f  64 65 56 61 72 69 61 62  |S_ReadModeVariab|
000011f0  6c 65 22 2c 2d 31 2c 33  20 b8 20 2c 2c 4e 63 6f  |le",-1,3 . ,,Nco|
00001200  6c 6f 75 72 73 25 0d 06  86 19 f4 20 4f 50 45 4e  |lours%..... OPEN|
00001210  20 55 50 20 57 49 4e 44  4f 57 20 48 45 52 45 0d  | UP WINDOW HERE.|
00001220  06 90 0e e7 20 77 6f 70  65 6e 25 20 8c 0d 06 9a  |.... wopen% ....|
00001230  0e 71 25 21 30 3d 6d 6f  6e 57 25 0d 06 a4 1f c8  |.q%!0=monW%.....|
00001240  99 22 57 69 6d 70 5f 47  65 74 57 69 6e 64 6f 77  |."Wimp_GetWindow|
00001250  53 74 61 74 65 22 2c 2c  71 25 0d 06 ae 36 20 20  |State",,q%...6  |
00001260  e7 20 71 25 21 32 38 3c  3e 2d 31 20 8c 20 71 25  |. q%!28<>-1 . q%|
00001270  21 32 38 3d 2d 31 3a 20  c8 99 20 22 57 69 6d 70  |!28=-1: .. "Wimp|
00001280  5f 4f 70 65 6e 57 69 6e  64 6f 77 22 2c 2c 71 25  |_OpenWindow",,q%|
00001290  0d 06 b8 05 cc 0d 06 c2  1d c8 99 20 22 57 69 6d  |........... "Wim|
000012a0  70 5f 4f 70 65 6e 57 69  6e 64 6f 77 22 2c 2c 57  |p_OpenWindow",,W|
000012b0  6e 25 0d 06 cc 0c 77 6f  70 65 6e 25 3d b9 0d 06  |n%....wopen%=...|
000012c0  d6 05 cd 0d 06 e0 2e c8  99 22 57 69 6d 70 5f 53  |........."Wimp_S|
000012d0  65 74 43 61 72 65 74 50  6f 73 69 74 69 6f 6e 22  |etCaretPosition"|
000012e0  2c 6d 6f 6e 57 25 2c 2d  31 2c 30 2c 30 2c 30 2c  |,monW%,-1,0,0,0,|
000012f0  30 0d 06 ea 05 e1 0d 06  f4 04 0d 06 fe 10 dd 20  |0.............. |
00001300  f2 5f 64 6f 57 69 6e 64  6f 77 0d 07 08 10 20 20  |._doWindow....  |
00001310  ea 20 41 25 2c 49 25 2c  4c 25 0d 07 12 04 0d 07  |. A%,I%,L%......|
00001320  1c 15 20 20 20 f2 5f 54  72 61 6e 73 28 6d 6f 6e  |..   ._Trans(mon|
00001330  57 25 29 0d 07 26 29 20  20 20 c8 99 20 22 57 69  |W%)..&)   .. "Wi|
00001340  6d 70 5f 52 65 64 72 61  77 57 69 6e 64 6f 77 22  |mp_RedrawWindow"|
00001350  2c 2c 71 25 20 b8 20 66  6c 61 67 25 0d 07 30 11  |,,q% . flag%..0.|
00001360  20 20 20 20 20 c8 95 20  66 6c 61 67 25 0d 07 3a  |     .. flag%..:|
00001370  13 20 20 20 20 20 20 f2  6b 65 79 62 6f 61 72 64  |.      .keyboard|
00001380  0d 07 44 2b 20 20 20 20  20 c8 99 20 22 57 69 6d  |..D+     .. "Wim|
00001390  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |p_GetRectangle",|
000013a0  2c 71 25 20 b8 20 66 6c  61 67 25 0d 07 4e 0a 20  |,q% . flag%..N. |
000013b0  20 20 20 20 ce 0d 07 58  06 20 20 0d 07 62 07 20  |    ...X.  ..b. |
000013c0  20 e1 0d 07 6c 06 20 20  0d 07 76 04 0d 07 80 04  | ...l.  ..v.....|
000013d0  0d 07 8a 0b dd 20 f2 5f  55 70 50 0d 07 94 12 ea  |..... ._UpP.....|
000013e0  20 54 25 2c 41 25 2c 45  25 2c 4e 77 25 0d 07 9e  | T%,A%,E%,Nw%...|
000013f0  12 f2 5f 54 72 61 6e 73  28 6d 6f 6e 57 25 29 0d  |.._Trans(monW%).|
00001400  07 a8 31 71 25 21 30 3d  6d 6f 6e 57 25 3a 71 25  |..1q%!0=monW%:q%|
00001410  21 34 3d 30 3a 71 25 21  38 3d 2d 36 30 32 3a 71  |!4=0:q%!8=-602:q|
00001420  25 21 31 32 3d 36 35 30  3a 71 25 21 31 36 3d 30  |%!12=650:q%!16=0|
00001430  0d 07 b2 27 20 20 c8 99  22 57 69 6d 70 5f 55 70  |...'  .."Wimp_Up|
00001440  64 61 74 65 57 69 6e 64  6f 77 22 2c 2c 71 25 20  |dateWindow",,q% |
00001450  b8 20 4d 6f 72 65 25 0d  07 bc 04 0d 07 c6 0d 20  |. More%........ |
00001460  c8 95 20 4d 6f 72 65 25  0d 07 d0 04 0d 07 da 27  |.. More%.......'|
00001470  20 20 c8 99 22 57 69 6d  70 5f 47 65 74 52 65 63  |  .."Wimp_GetRec|
00001480  74 61 6e 67 6c 65 22 2c  2c 71 25 20 b8 20 4d 6f  |tangle",,q% . Mo|
00001490  72 65 25 0d 07 e4 06 20  ce 0d 07 ee 05 e1 0d 07  |re%.... ........|
000014a0  f8 04 0d 08 02 04 0d 08  0c 12 dd 20 f2 5f 54 72  |........... ._Tr|
000014b0  61 6e 73 28 77 68 25 29  0d 08 16 0b 21 71 25 3d  |ans(wh%)....!q%=|
000014c0  77 68 25 0d 08 20 20 c8  99 20 22 57 69 6d 70 5f  |wh%..  .. "Wimp_|
000014d0  47 65 74 57 69 6e 64 6f  77 53 74 61 74 65 22 2c  |GetWindowState",|
000014e0  2c 71 25 0d 08 2a 26 78  6f 25 3d 71 25 21 34 2d  |,q%..*&xo%=q%!4-|
000014f0  71 25 21 32 30 3a 79 6f  25 3d 71 25 21 31 36 2d  |q%!20:yo%=q%!16-|
00001500  71 25 21 32 34 2d 34 34  32 0d 08 34 16 58 4f 25  |q%!24-442..4.XO%|
00001510  3d 71 25 21 34 3a 59 4f  25 3d 71 25 21 31 36 0d  |=q%!4:YO%=q%!16.|
00001520  08 3e 05 e1 0d 08 48 04  0d 08 52 0f dd f2 73 65  |.>....H...R...se|
00001530  74 75 70 6d 65 6e 75 0d  08 5c 08 ea 20 6d 25 0d  |tupmenu..\.. m%.|
00001540  08 66 04 0d 08 70 14 24  67 6d 65 6e 75 25 3d 22  |.f...p.$gmenu%="|
00001550  58 20 4d 6f 76 65 22 0d  08 7a 0f 67 6d 65 6e 75  |X Move"..z.gmenu|
00001560  25 3f 31 32 3d 37 0d 08  84 0f 67 6d 65 6e 75 25  |%?12=7....gmenu%|
00001570  3f 31 33 3d 32 0d 08 8e  0f 67 6d 65 6e 75 25 3f  |?13=2....gmenu%?|
00001580  31 34 3d 37 0d 08 98 0f  67 6d 65 6e 75 25 3f 31  |14=7....gmenu%?1|
00001590  35 3d 30 0d 08 a2 11 67  6d 65 6e 75 25 21 31 36  |5=0....gmenu%!16|
000015a0  3d 31 32 38 0d 08 ac 10  67 6d 65 6e 75 25 21 32  |=128....gmenu%!2|
000015b0  30 3d 34 30 0d 08 b6 0f  67 6d 65 6e 75 25 21 32  |0=40....gmenu%!2|
000015c0  34 3d 30 0d 08 c0 10 6d  25 3d 67 6d 65 6e 75 25  |4=0....m%=gmenu%|
000015d0  2b 32 38 0d 08 ca 04 0d  08 d4 0a 6d 25 21 30 3d  |+28........m%!0=|
000015e0  30 0d 08 de 0a 6d 25 21  34 3d 30 0d 08 e8 18 6d  |0....m%!4=0....m|
000015f0  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
00001600  30 30 31 0d 08 f2 13 24  28 6d 25 2b 31 32 29 3d  |001....$(m%+12)=|
00001610  22 4e 6f 6e 65 22 0d 08  fc 04 0d 09 06 0a 6d 25  |"None"........m%|
00001620  2b 3d 32 34 0d 09 10 0a  6d 25 21 30 3d 31 0d 09  |+=24....m%!0=1..|
00001630  1a 0a 6d 25 21 34 3d 30  0d 09 24 18 6d 25 21 38  |..m%!4=0..$.m%!8|
00001640  3d 28 37 3c 3c 32 34 29  84 20 25 31 30 30 30 31  |=(7<<24). %10001|
00001650  0d 09 2e 15 24 28 6d 25  2b 31 32 29 3d 22 53 69  |....$(m%+12)="Si|
00001660  6e 67 6c 65 22 0d 09 38  04 0d 09 42 0a 6d 25 2b  |ngle"..8...B.m%+|
00001670  3d 32 34 0d 09 4c 0a 6d  25 21 30 3d 30 0d 09 56  |=24..L.m%!0=0..V|
00001680  0a 6d 25 21 34 3d 30 0d  09 60 18 6d 25 21 38 3d  |.m%!4=0..`.m%!8=|
00001690  28 37 3c 3c 32 34 29 84  20 25 31 30 30 30 31 0d  |(7<<24). %10001.|
000016a0  09 6a 15 24 28 6d 25 2b  31 32 29 3d 22 44 6f 75  |.j.$(m%+12)="Dou|
000016b0  62 6c 65 22 0d 09 74 04  0d 09 7e 0a 6d 25 2b 3d  |ble"..t...~.m%+=|
000016c0  32 34 0d 09 88 0a 6d 25  21 30 3d 30 0d 09 92 0a  |24....m%!0=0....|
000016d0  6d 25 21 34 3d 30 0d 09  9c 18 6d 25 21 38 3d 28  |m%!4=0....m%!8=(|
000016e0  37 3c 3c 32 34 29 84 20  25 31 30 30 30 31 0d 09  |7<<24). %10001..|
000016f0  a6 12 24 28 6d 25 2b 31  32 29 3d 22 43 45 47 22  |..$(m%+12)="CEG"|
00001700  0d 09 b0 0a 6d 25 2b 3d  32 34 0d 09 ba 0a 6d 25  |....m%+=24....m%|
00001710  21 30 3d 30 0d 09 c4 0a  6d 25 21 34 3d 30 0d 09  |!0=0....m%!4=0..|
00001720  ce 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |..m%!8=(7<<24). |
00001730  25 31 30 30 30 31 0d 09  d8 12 24 28 6d 25 2b 31  |%10001....$(m%+1|
00001740  32 29 3d 22 43 45 41 22  0d 09 e2 0a 6d 25 2b 3d  |2)="CEA"....m%+=|
00001750  32 34 0d 09 ec 0a 6d 25  21 30 3d 30 0d 09 f6 0a  |24....m%!0=0....|
00001760  6d 25 21 34 3d 30 0d 0a  00 18 6d 25 21 38 3d 28  |m%!4=0....m%!8=(|
00001770  37 3c 3c 32 34 29 84 20  25 31 30 30 30 31 0d 0a  |7<<24). %10001..|
00001780  0a 12 24 28 6d 25 2b 31  32 29 3d 22 43 46 41 22  |..$(m%+12)="CFA"|
00001790  0d 0a 14 0a 6d 25 2b 3d  32 34 0d 0a 1e 0a 6d 25  |....m%+=24....m%|
000017a0  21 30 3d 30 0d 0a 28 0a  6d 25 21 34 3d 30 0d 0a  |!0=0..(.m%!4=0..|
000017b0  32 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |2.m%!8=(7<<24). |
000017c0  25 31 30 30 30 31 0d 0a  3c 12 24 28 6d 25 2b 31  |%10001..<.$(m%+1|
000017d0  32 29 3d 22 44 47 42 22  0d 0a 46 0a 6d 25 2b 3d  |2)="DGB"..F.m%+=|
000017e0  32 34 0d 0a 50 0c 6d 25  21 30 3d 26 38 30 0d 0a  |24..P.m%!0=&80..|
000017f0  5a 0a 6d 25 21 34 3d 30  0d 0a 64 18 6d 25 21 38  |Z.m%!4=0..d.m%!8|
00001800  3d 28 37 3c 3c 32 34 29  84 20 25 31 30 30 30 31  |=(7<<24). %10001|
00001810  0d 0a 6e 12 24 28 6d 25  2b 31 32 29 3d 22 46 47  |..n.$(m%+12)="FG|
00001820  44 22 0d 0a 78 04 0d 0a  82 14 24 79 6d 65 6e 75  |D"..x.....$ymenu|
00001830  25 3d 22 59 20 4d 6f 76  65 22 0d 0a 8c 0f 79 6d  |%="Y Move"....ym|
00001840  65 6e 75 25 3f 31 32 3d  37 0d 0a 96 0f 79 6d 65  |enu%?12=7....yme|
00001850  6e 75 25 3f 31 33 3d 32  0d 0a a0 0f 79 6d 65 6e  |nu%?13=2....ymen|
00001860  75 25 3f 31 34 3d 37 0d  0a aa 0f 79 6d 65 6e 75  |u%?14=7....ymenu|
00001870  25 3f 31 35 3d 30 0d 0a  b4 11 79 6d 65 6e 75 25  |%?15=0....ymenu%|
00001880  21 31 36 3d 31 32 38 0d  0a be 10 79 6d 65 6e 75  |!16=128....ymenu|
00001890  25 21 32 30 3d 34 30 0d  0a c8 0f 79 6d 65 6e 75  |%!20=40....ymenu|
000018a0  25 21 32 34 3d 30 0d 0a  d2 10 6d 25 3d 79 6d 65  |%!24=0....m%=yme|
000018b0  6e 75 25 2b 32 38 0d 0a  dc 04 0d 0a e6 0a 6d 25  |nu%+28........m%|
000018c0  21 30 3d 30 0d 0a f0 0a  6d 25 21 34 3d 30 0d 0a  |!0=0....m%!4=0..|
000018d0  fa 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |..m%!8=(7<<24). |
000018e0  25 31 30 30 30 31 0d 0b  04 13 24 28 6d 25 2b 31  |%10001....$(m%+1|
000018f0  32 29 3d 22 4e 6f 6e 65  22 0d 0b 0e 04 0d 0b 18  |2)="None".......|
00001900  0a 6d 25 2b 3d 32 34 0d  0b 22 0a 6d 25 21 30 3d  |.m%+=24..".m%!0=|
00001910  31 0d 0b 2c 0a 6d 25 21  34 3d 30 0d 0b 36 18 6d  |1..,.m%!4=0..6.m|
00001920  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
00001930  30 30 31 0d 0b 40 15 24  28 6d 25 2b 31 32 29 3d  |001..@.$(m%+12)=|
00001940  22 53 69 6e 67 6c 65 22  0d 0b 4a 04 0d 0b 54 0a  |"Single"..J...T.|
00001950  6d 25 2b 3d 32 34 0d 0b  5e 0a 6d 25 21 30 3d 30  |m%+=24..^.m%!0=0|
00001960  0d 0b 68 0a 6d 25 21 34  3d 30 0d 0b 72 18 6d 25  |..h.m%!4=0..r.m%|
00001970  21 38 3d 28 37 3c 3c 32  34 29 84 20 25 31 30 30  |!8=(7<<24). %100|
00001980  30 31 0d 0b 7c 15 24 28  6d 25 2b 31 32 29 3d 22  |01..|.$(m%+12)="|
00001990  44 6f 75 62 6c 65 22 0d  0b 86 04 0d 0b 90 0a 6d  |Double"........m|
000019a0  25 2b 3d 32 34 0d 0b 9a  0a 6d 25 21 30 3d 30 0d  |%+=24....m%!0=0.|
000019b0  0b a4 0a 6d 25 21 34 3d  30 0d 0b ae 18 6d 25 21  |...m%!4=0....m%!|
000019c0  38 3d 28 37 3c 3c 32 34  29 84 20 25 31 30 30 30  |8=(7<<24). %1000|
000019d0  31 0d 0b b8 12 24 28 6d  25 2b 31 32 29 3d 22 43  |1....$(m%+12)="C|
000019e0  45 47 22 0d 0b c2 0a 6d  25 2b 3d 32 34 0d 0b cc  |EG"....m%+=24...|
000019f0  0a 6d 25 21 30 3d 30 0d  0b d6 0a 6d 25 21 34 3d  |.m%!0=0....m%!4=|
00001a00  30 0d 0b e0 18 6d 25 21  38 3d 28 37 3c 3c 32 34  |0....m%!8=(7<<24|
00001a10  29 84 20 25 31 30 30 30  31 0d 0b ea 12 24 28 6d  |). %10001....$(m|
00001a20  25 2b 31 32 29 3d 22 43  45 41 22 0d 0b f4 0a 6d  |%+12)="CEA"....m|
00001a30  25 2b 3d 32 34 0d 0b fe  0a 6d 25 21 30 3d 30 0d  |%+=24....m%!0=0.|
00001a40  0c 08 0a 6d 25 21 34 3d  30 0d 0c 12 18 6d 25 21  |...m%!4=0....m%!|
00001a50  38 3d 28 37 3c 3c 32 34  29 84 20 25 31 30 30 30  |8=(7<<24). %1000|
00001a60  31 0d 0c 1c 12 24 28 6d  25 2b 31 32 29 3d 22 43  |1....$(m%+12)="C|
00001a70  46 41 22 0d 0c 26 0a 6d  25 2b 3d 32 34 0d 0c 30  |FA"..&.m%+=24..0|
00001a80  0a 6d 25 21 30 3d 30 0d  0c 3a 0a 6d 25 21 34 3d  |.m%!0=0..:.m%!4=|
00001a90  30 0d 0c 44 18 6d 25 21  38 3d 28 37 3c 3c 32 34  |0..D.m%!8=(7<<24|
00001aa0  29 84 20 25 31 30 30 30  31 0d 0c 4e 12 24 28 6d  |). %10001..N.$(m|
00001ab0  25 2b 31 32 29 3d 22 44  47 42 22 0d 0c 58 0a 6d  |%+12)="DGB"..X.m|
00001ac0  25 2b 3d 32 34 0d 0c 62  0c 6d 25 21 30 3d 26 38  |%+=24..b.m%!0=&8|
00001ad0  30 0d 0c 6c 0a 6d 25 21  34 3d 30 0d 0c 76 18 6d  |0..l.m%!4=0..v.m|
00001ae0  25 21 38 3d 28 37 3c 3c  32 34 29 84 20 25 31 30  |%!8=(7<<24). %10|
00001af0  30 30 31 0d 0c 80 12 24  28 6d 25 2b 31 32 29 3d  |001....$(m%+12)=|
00001b00  22 46 47 44 22 0d 0c 8a  04 0d 0c 94 11 24 6d 65  |"FGD"........$me|
00001b10  6e 75 25 3d 22 4d 49 44  49 22 0d 0c 9e 0e 6d 65  |nu%="MIDI"....me|
00001b20  6e 75 25 3f 31 32 3d 37  0d 0c a8 0e 6d 65 6e 75  |nu%?12=7....menu|
00001b30  25 3f 31 33 3d 32 0d 0c  b2 0e 6d 65 6e 75 25 3f  |%?13=2....menu%?|
00001b40  31 34 3d 37 0d 0c bc 0e  6d 65 6e 75 25 3f 31 35  |14=7....menu%?15|
00001b50  3d 30 0d 0c c6 10 6d 65  6e 75 25 21 31 36 3d 31  |=0....menu%!16=1|
00001b60  32 38 0d 0c d0 0f 6d 65  6e 75 25 21 32 30 3d 34  |28....menu%!20=4|
00001b70  30 0d 0c da 0e 6d 65 6e  75 25 21 32 34 3d 30 0d  |0....menu%!24=0.|
00001b80  0c e4 0f 6d 25 3d 6d 65  6e 75 25 2b 32 38 0d 0c  |...m%=menu%+28..|
00001b90  ee 0a 6d 25 21 30 3d 30  0d 0c f8 0e 6d 25 21 34  |..m%!0=0....m%!4|
00001ba0  3d 69 6e 66 6f 25 0d 0d  02 18 6d 25 21 38 3d 28  |=info%....m%!8=(|
00001bb0  37 3c 3c 32 34 29 84 20  25 31 30 30 30 31 0d 0d  |7<<24). %10001..|
00001bc0  0c 13 24 28 6d 25 2b 31  32 29 3d 22 49 6e 66 6f  |..$(m%+12)="Info|
00001bd0  22 0d 0d 16 04 0d 0d 20  0a 6d 25 2b 3d 32 34 0d  |"...... .m%+=24.|
00001be0  0d 2a 0a 6d 25 21 30 3d  30 0d 0d 34 0f 6d 25 21  |.*.m%!0=0..4.m%!|
00001bf0  34 3d 67 6d 65 6e 75 25  0d 0d 3e 18 6d 25 21 38  |4=gmenu%..>.m%!8|
00001c00  3d 28 37 3c 3c 32 34 29  84 20 25 31 30 30 30 31  |=(7<<24). %10001|
00001c10  0d 0d 48 16 24 28 6d 25  2b 31 32 29 3d 22 58 20  |..H.$(m%+12)="X |
00001c20  4d 6f 75 73 65 22 0d 0d  52 04 0d 0d 5c 0a 6d 25  |Mouse"..R...\.m%|
00001c30  2b 3d 32 34 0d 0d 66 0a  6d 25 21 30 3d 30 0d 0d  |+=24..f.m%!0=0..|
00001c40  70 0f 6d 25 21 34 3d 79  6d 65 6e 75 25 0d 0d 7a  |p.m%!4=ymenu%..z|
00001c50  18 6d 25 21 38 3d 28 37  3c 3c 32 34 29 84 20 25  |.m%!8=(7<<24). %|
00001c60  31 30 30 30 31 0d 0d 84  16 24 28 6d 25 2b 31 32  |10001....$(m%+12|
00001c70  29 3d 22 59 20 4d 6f 75  73 65 22 0d 0d 8e 04 0d  |)="Y Mouse".....|
00001c80  0d 98 0a 6d 25 2b 3d 32  34 0d 0d a2 0a 6d 25 21  |...m%+=24....m%!|
00001c90  30 3d 30 0d 0d ac 0f 6d  25 21 34 3d 53 6d 65 6e  |0=0....m%!4=Smen|
00001ca0  75 25 0d 0d b6 18 6d 25  21 38 3d 28 37 3c 3c 32  |u%....m%!8=(7<<2|
00001cb0  34 29 84 20 25 31 30 30  30 31 0d 0d c0 12 24 28  |4). %10001....$(|
00001cc0  6d 25 2b 31 32 29 3d 22  4b 65 79 22 0d 0d ca 04  |m%+12)="Key"....|
00001cd0  0d 0d d4 0a 6d 25 2b 3d  32 34 0d 0d de 0c 6d 25  |....m%+=24....m%|
00001ce0  21 30 3d 26 38 30 0d 0d  e8 0a 6d 25 21 34 3d 30  |!0=&80....m%!4=0|
00001cf0  0d 0d f2 18 6d 25 21 38  3d 28 37 3c 3c 32 34 29  |....m%!8=(7<<24)|
00001d00  84 20 25 31 30 30 30 31  0d 0d fc 13 24 28 6d 25  |. %10001....$(m%|
00001d10  2b 31 32 29 3d 22 51 75  69 74 22 0d 0e 06 04 0d  |+12)="Quit".....|
00001d20  0e 10 10 24 49 6d 65 6e  75 25 3d 22 4d 4d 22 0d  |...$Imenu%="MM".|
00001d30  0e 1a 0f 49 6d 65 6e 75  25 3f 31 32 3d 37 0d 0e  |...Imenu%?12=7..|
00001d40  24 0f 49 6d 65 6e 75 25  3f 31 33 3d 32 0d 0e 2e  |$.Imenu%?13=2...|
00001d50  0f 49 6d 65 6e 75 25 3f  31 34 3d 37 0d 0e 38 0f  |.Imenu%?14=7..8.|
00001d60  49 6d 65 6e 75 25 3f 31  35 3d 30 0d 0e 42 11 49  |Imenu%?15=0..B.I|
00001d70  6d 65 6e 75 25 21 31 36  3d 31 32 38 0d 0e 4c 10  |menu%!16=128..L.|
00001d80  49 6d 65 6e 75 25 21 32  30 3d 34 30 0d 0e 56 0f  |Imenu%!20=40..V.|
00001d90  49 6d 65 6e 75 25 21 32  34 3d 30 0d 0e 60 10 6d  |Imenu%!24=0..`.m|
00001da0  25 3d 49 6d 65 6e 75 25  2b 32 38 0d 0e 6a 0a 6d  |%=Imenu%+28..j.m|
00001db0  25 21 30 3d 30 0d 0e 74  0e 6d 25 21 34 3d 69 6e  |%!0=0..t.m%!4=in|
00001dc0  66 6f 25 0d 0e 7e 18 6d  25 21 38 3d 28 37 3c 3c  |fo%..~.m%!8=(7<<|
00001dd0  32 34 29 84 20 25 31 30  30 30 31 0d 0e 88 13 24  |24). %10001....$|
00001de0  28 6d 25 2b 31 32 29 3d  22 49 6e 66 6f 22 0d 0e  |(m%+12)="Info"..|
00001df0  92 0a 6d 25 2b 3d 32 34  0d 0e 9c 0c 6d 25 21 30  |..m%+=24....m%!0|
00001e00  3d 26 38 30 0d 0e a6 0a  6d 25 21 34 3d 30 0d 0e  |=&80....m%!4=0..|
00001e10  b0 18 6d 25 21 38 3d 28  37 3c 3c 32 34 29 84 20  |..m%!8=(7<<24). |
00001e20  25 31 30 30 30 31 0d 0e  ba 13 24 28 6d 25 2b 31  |%10001....$(m%+1|
00001e30  32 29 3d 22 51 75 69 74  22 0d 0e c4 04 0d 0e ce  |2)="Quit".......|
00001e40  11 24 53 6d 65 6e 75 25  3d 22 4b 65 79 22 0d 0e  |.$Smenu%="Key"..|
00001e50  d8 0f 53 6d 65 6e 75 25  3f 31 32 3d 37 0d 0e e2  |..Smenu%?12=7...|
00001e60  0f 53 6d 65 6e 75 25 3f  31 33 3d 32 0d 0e ec 0f  |.Smenu%?13=2....|
00001e70  53 6d 65 6e 75 25 3f 31  34 3d 37 0d 0e f6 0f 53  |Smenu%?14=7....S|
00001e80  6d 65 6e 75 25 3f 31 35  3d 30 0d 0f 00 11 53 6d  |menu%?15=0....Sm|
00001e90  65 6e 75 25 21 31 36 3d  31 32 38 0d 0f 0a 10 53  |enu%!16=128....S|
00001ea0  6d 65 6e 75 25 21 32 30  3d 34 30 0d 0f 14 0f 53  |menu%!20=40....S|
00001eb0  6d 65 6e 75 25 21 32 34  3d 30 0d 0f 1e 10 6d 25  |menu%!24=0....m%|
00001ec0  3d 53 6d 65 6e 75 25 2b  32 38 0d 0f 28 04 0d 0f  |=Smenu%+28..(...|
00001ed0  32 0a 6d 25 21 30 3d 30  0d 0f 3c 0a 6d 25 21 34  |2.m%!0=0..<.m%!4|
00001ee0  3d 30 0d 0f 46 18 6d 25  21 38 3d 28 37 3c 3c 32  |=0..F.m%!8=(7<<2|
00001ef0  34 29 84 20 25 31 30 30  30 31 0d 0f 50 16 24 28  |4). %10001..P.$(|
00001f00  6d 25 2b 31 32 29 3d 22  31 32 20 54 6f 6e 65 22  |m%+12)="12 Tone"|
00001f10  0d 0f 5a 04 0d 0f 64 0a  6d 25 2b 3d 32 34 0d 0f  |..Z...d.m%+=24..|
00001f20  6e 0a 6d 25 21 30 3d 30  0d 0f 78 0a 6d 25 21 34  |n.m%!0=0..x.m%!4|
00001f30  3d 30 0d 0f 82 18 6d 25  21 38 3d 28 37 3c 3c 32  |=0....m%!8=(7<<2|
00001f40  34 29 84 20 25 31 30 30  30 31 0d 0f 8c 19 24 28  |4). %10001....$(|
00001f50  6d 25 2b 31 32 29 3d 22  50 65 6e 74 61 74 6f 6e  |m%+12)="Pentaton|
00001f60  69 63 22 0d 0f 96 04 0d  0f a0 0a 6d 25 2b 3d 32  |ic"........m%+=2|
00001f70  34 0d 0f aa 0a 6d 25 21  30 3d 30 0d 0f b4 0a 6d  |4....m%!0=0....m|
00001f80  25 21 34 3d 30 0d 0f be  18 6d 25 21 38 3d 28 37  |%!4=0....m%!8=(7|
00001f90  3c 3c 32 34 29 84 20 25  31 30 30 30 31 0d 0f c8  |<<24). %10001...|
00001fa0  10 24 28 6d 25 2b 31 32  29 3d 22 41 22 0d 0f d2  |.$(m%+12)="A"...|
00001fb0  04 0d 0f dc 0a 6d 25 2b  3d 32 34 0d 0f e6 0a 6d  |.....m%+=24....m|
00001fc0  25 21 30 3d 30 0d 0f f0  0a 6d 25 21 34 3d 30 0d  |%!0=0....m%!4=0.|
00001fd0  0f fa 18 6d 25 21 38 3d  28 37 3c 3c 32 34 29 84  |...m%!8=(7<<24).|
00001fe0  20 25 31 30 30 30 31 0d  10 04 10 24 28 6d 25 2b  | %10001....$(m%+|
00001ff0  31 32 29 3d 22 42 22 0d  10 0e 04 0d 10 18 0a 6d  |12)="B"........m|
00002000  25 2b 3d 32 34 0d 10 22  0a 6d 25 21 30 3d 31 0d  |%+=24..".m%!0=1.|
00002010  10 2c 0a 6d 25 21 34 3d  30 0d 10 36 18 6d 25 21  |.,.m%!4=0..6.m%!|
00002020  38 3d 28 37 3c 3c 32 34  29 84 20 25 31 30 30 30  |8=(7<<24). %1000|
00002030  31 0d 10 40 10 24 28 6d  25 2b 31 32 29 3d 22 43  |1..@.$(m%+12)="C|
00002040  22 0d 10 4a 0a 6d 25 2b  3d 32 34 0d 10 54 04 0d  |"..J.m%+=24..T..|
00002050  10 5e 0a 6d 25 21 30 3d  30 0d 10 68 0a 6d 25 21  |.^.m%!0=0..h.m%!|
00002060  34 3d 30 0d 10 72 18 6d  25 21 38 3d 28 37 3c 3c  |4=0..r.m%!8=(7<<|
00002070  32 34 29 84 20 25 31 30  30 30 31 0d 10 7c 10 24  |24). %10001..|.$|
00002080  28 6d 25 2b 31 32 29 3d  22 44 22 0d 10 86 0a 6d  |(m%+12)="D"....m|
00002090  25 2b 3d 32 34 0d 10 90  04 0d 10 9a 0a 6d 25 21  |%+=24........m%!|
000020a0  30 3d 30 0d 10 a4 0a 6d  25 21 34 3d 30 0d 10 ae  |0=0....m%!4=0...|
000020b0  18 6d 25 21 38 3d 28 37  3c 3c 32 34 29 84 20 25  |.m%!8=(7<<24). %|
000020c0  31 30 30 30 31 0d 10 b8  10 24 28 6d 25 2b 31 32  |10001....$(m%+12|
000020d0  29 3d 22 45 22 0d 10 c2  0a 6d 25 2b 3d 32 34 0d  |)="E"....m%+=24.|
000020e0  10 cc 04 0d 10 d6 0a 6d  25 21 30 3d 30 0d 10 e0  |.......m%!0=0...|
000020f0  0a 6d 25 21 34 3d 30 0d  10 ea 18 6d 25 21 38 3d  |.m%!4=0....m%!8=|
00002100  28 37 3c 3c 32 34 29 84  20 25 31 30 30 30 31 0d  |(7<<24). %10001.|
00002110  10 f4 10 24 28 6d 25 2b  31 32 29 3d 22 46 22 0d  |...$(m%+12)="F".|
00002120  10 fe 0a 6d 25 2b 3d 32  34 0d 11 08 04 0d 11 12  |...m%+=24.......|
00002130  0c 6d 25 21 30 3d 26 38  30 0d 11 1c 0a 6d 25 21  |.m%!0=&80....m%!|
00002140  34 3d 30 0d 11 26 18 6d  25 21 38 3d 28 37 3c 3c  |4=0..&.m%!8=(7<<|
00002150  32 34 29 84 20 25 31 30  30 30 31 0d 11 30 10 24  |24). %10001..0.$|
00002160  28 6d 25 2b 31 32 29 3d  22 47 22 0d 11 3a 04 0d  |(m%+12)="G"..:..|
00002170  11 44 05 e1 0d 11 4e 04  0d 11 58 12 dd 20 f2 72  |.D....N...X.. .r|
00002180  65 63 65 69 76 65 28 71  25 29 0d 11 62 08 ea 20  |eceive(q%)..b.. |
00002190  41 25 0d 11 6c 0c 41 25  3d 71 25 21 31 36 0d 11  |A%..l.A%=q%!16..|
000021a0  76 0b c8 8e 20 41 25 20  ca 0d 11 80 0c c9 20 30  |v... A% ...... 0|
000021b0  3a f2 64 69 65 0d 11 8a  14 c9 20 26 35 30 32 3a  |:.die..... &502:|
000021c0  20 20 20 c8 8e 20 b9 20  ca 0d 11 94 5e 20 20 20  |   .. . ....^   |
000021d0  20 20 20 20 20 20 20 20  20 20 c9 20 71 25 21 33  |          . q%!3|
000021e0  32 3d 2d 32 20 80 20 71  25 21 33 36 3d 73 6d 70  |2=-2 . q%!36=smp|
000021f0  69 63 6f 6e 25 3a 6d 65  73 24 3d 22 54 68 69 73  |icon%:mes$="This|
00002200  20 69 73 20 4d 49 44 49  20 4d 6f 75 73 65 20 69  | is MIDI Mouse i|
00002210  63 6f 6e 2e 7c 4d 4d 61  6b 65 20 4d 49 44 49 20  |con.|MMake MIDI |
00002220  6d 75 73 69 63 2e 22 0d  11 9e 1a 20 20 20 20 20  |music."....     |
00002230  20 20 20 20 20 20 20 20  7f 3a 6d 65 73 24 3d 22  |        .:mes$="|
00002240  22 0d 11 a8 12 20 20 20  20 20 20 20 20 20 20 20  |"....           |
00002250  20 20 cb 0d 11 b2 14 20  20 20 20 e7 20 6d 65 73  |  .....    . mes|
00002260  24 3c 3e 22 22 20 8c 0d  11 bc 12 20 20 20 20 71  |$<>"" .....    q|
00002270  25 21 31 32 3d 71 25 21  38 0d 11 c6 18 20 20 20  |%!12=q%!8....   |
00002280  20 24 28 71 25 2b 32 30  29 3d 6d 65 73 24 2b bd  | $(q%+20)=mes$+.|
00002290  30 0d 11 d0 1e 20 20 20  20 71 25 21 30 3d 28 32  |0....    q%!0=(2|
000022a0  30 2b a9 6d 65 73 24 2b  34 29 80 20 ac 20 33 0d  |0+.mes$+4). . 3.|
000022b0  11 da 12 20 20 20 20 71  25 21 31 36 3d 26 35 30  |...    q%!16=&50|
000022c0  33 0d 11 e4 28 20 20 20  20 c8 99 20 22 57 69 6d  |3...(    .. "Wim|
000022d0  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 22 2c 31  |p_SendMessage",1|
000022e0  38 2c 71 25 2c 71 25 21  34 0d 11 ee 05 cb 0d 11  |8,q%,q%!4.......|
000022f0  f8 05 e1 0d 12 02 04 0d  12 0c 0c dd 20 f2 5f 44  |............ ._D|
00002300  61 63 6b 0d 12 16 10 73  65 6e 64 74 68 25 3d 71  |ack....sendth%=q|
00002310  25 21 34 0d 12 20 0f 6d  79 72 65 66 25 3d 71 25  |%!4.. .myref%=q%|
00002320  21 38 0d 12 2a 22 c8 99  20 22 57 69 6d 70 5f 47  |!8..*".. "Wimp_G|
00002330  65 74 50 6f 69 6e 74 65  72 49 6e 66 6f 22 2c 2c  |etPointerInfo",,|
00002340  71 25 2b 38 0d 12 34 0e  71 25 21 32 38 3d 71 25  |q%+8..4.q%!28=q%|
00002350  21 38 0d 12 3e 0f 71 25  21 33 32 3d 71 25 21 31  |!8..>.q%!32=q%!1|
00002360  32 0d 12 48 18 71 25 21  30 3d 28 34 34 2b a9 6e  |2..H.q%!0=(44+.n|
00002370  24 2b 34 29 80 20 ac 20  33 0d 12 52 10 71 25 21  |$+4). . 3..R.q%!|
00002380  31 32 3d 6d 79 72 65 66  25 0d 12 5c 0b 71 25 21  |12=myref%..\.q%!|
00002390  31 36 3d 34 0d 12 66 0c  71 25 21 33 36 3d 2d 31  |16=4..f.q%!36=-1|
000023a0  0d 12 70 0e 71 25 21 34  30 3d 26 46 46 39 0d 12  |..p.q%!40=&FF9..|
000023b0  7a 12 24 28 71 25 2b 34  34 29 3d 6e 24 2b bd 30  |z.$(q%+44)=n$+.0|
000023c0  0d 12 84 27 c8 99 20 22  57 69 6d 70 5f 53 65 6e  |...'.. "Wimp_Sen|
000023d0  64 4d 65 73 73 61 67 65  22 2c 31 37 2c 71 25 2c  |dMessage",17,q%,|
000023e0  73 65 6e 64 74 68 25 0d  12 8e 05 cd 0d 12 98 05  |sendth%.........|
000023f0  e1 0d 12 a2 04 0d 12 ac  0e dd a4 73 67 65 74 28  |...........sget(|
00002400  78 25 29 0d 12 b6 08 ea  20 78 24 0d 12 c0 1d c8  |x%)..... x$.....|
00002410  95 20 3f 78 25 20 78 24  2b 3d bd 28 3f 78 25 29  |. ?x% x$+=.(?x%)|
00002420  3a 78 25 2b 3d 31 3a ce  0d 12 ca 07 3d 78 24 0d  |:x%+=1:.....=x$.|
00002430  12 d4 04 0d 12 de 0a dd  a4 69 63 6f 6e 0d 12 e8  |.........icon...|
00002440  0b 71 25 21 30 3d 2d 31  0d 12 f2 0a 71 25 21 34  |.q%!0=-1....q%!4|
00002450  3d 30 0d 12 fc 1a 71 25  21 38 3d 30 20 3a 20 f4  |=0....q%!8=0 : .|
00002460  20 59 20 44 49 52 45 43  54 49 4f 4e 0d 13 06 1c  | Y DIRECTION....|
00002470  71 25 21 31 32 3d 37 30  20 3a 20 f4 20 58 20 44  |q%!12=70 : . X D|
00002480  49 52 45 43 54 49 4f 4e  0d 13 10 0c 71 25 21 31  |IRECTION....q%!1|
00002490  36 3d 39 36 0d 13 1a 0f  71 25 21 32 30 3d 26 32  |6=96....q%!20=&2|
000024a0  30 30 32 0d 13 24 19 24  28 71 25 2b 32 34 29 3d  |002..$.$(q%+24)=|
000024b0  22 21 4d 69 64 69 4d 6f  75 73 65 22 0d 13 2e 24  |"!MidiMouse"...$|
000024c0  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 49  |.. "Wimp_CreateI|
000024d0  63 6f 6e 22 2c 2c 71 25  20 b8 20 69 63 6f 6e 25  |con",,q% . icon%|
000024e0  0d 13 38 0a 3d 69 63 6f  6e 25 0d 13 42 04 0d 13  |..8.=icon%..B...|
000024f0  4c 04 0d 13 56 12 dd 20  f2 5f 73 65 74 75 70 57  |L...V.. ._setupW|
00002500  28 74 24 29 0d 13 60 58  21 71 25 3d 77 61 72 6e  |(t$)..`X!q%=warn|
00002510  69 6e 67 57 25 3a 71 25  21 34 3d 32 30 30 3a 71  |ingW%:q%!4=200:q|
00002520  25 21 38 3d 32 30 30 3a  71 25 21 31 32 3d 32 30  |%!8=200:q%!12=20|
00002530  30 2b 58 51 25 3a 71 25  21 31 36 3d 32 30 30 2b  |0+XQ%:q%!16=200+|
00002540  59 51 25 3a 71 25 21 32  30 3d 30 3a 71 25 21 32  |YQ%:q%!20=0:q%!2|
00002550  34 3d 30 3a 71 25 21 32  38 3d 2d 31 0d 13 6a 11  |4=0:q%!28=-1..j.|
00002560  24 54 65 78 74 57 61 72  6e 25 3d 74 24 0d 13 74  |$TextWarn%=t$..t|
00002570  15 54 65 78 74 57 61 72  6e 25 3f a9 28 74 24 29  |.TextWarn%?.(t$)|
00002580  3d 30 0d 13 7e 07 ef 20  37 0d 13 88 0d 77 61 72  |=0..~.. 7....war|
00002590  6e 4f 6e 25 3d b9 0d 13  92 1c c8 99 20 22 57 69  |nOn%=....... "Wi|
000025a0  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
000025b0  71 25 0d 13 9c 05 e1 0d  13 a6 04 0d 13 b0 0f dd  |q%..............|
000025c0  20 f2 65 72 72 6f 72 62  6f 78 0d 13 ba 19 c8 99  | .errorbox......|
000025d0  20 22 57 69 6d 70 5f 44  72 61 67 42 6f 78 22 2c  | "Wimp_DragBox",|
000025e0  2c 2d 31 0d 13 c4 32 21  62 75 66 66 65 72 73 25  |,-1...2!buffers%|
000025f0  3d 9f 3a 24 28 62 75 66  66 65 72 73 25 2b 34 29  |=.:$(buffers%+4)|
00002600  3d f6 24 2b 22 20 61 74  20 6c 69 6e 65 20 22 2b  |=.$+" at line "+|
00002610  c3 9e 2b bd 30 0d 13 ce  31 c8 99 20 22 57 69 6d  |..+.0...1.. "Wim|
00002620  70 5f 52 65 70 6f 72 74  45 72 72 6f 72 22 2c 62  |p_ReportError",b|
00002630  75 66 66 65 72 73 25 2c  31 2c 22 4d 69 64 69 20  |uffers%,1,"Midi |
00002640  4d 6f 75 73 65 22 0d 13  d8 08 f2 64 69 65 0d 13  |Mouse".....die..|
00002650  e2 05 e1 0d 13 ec 04 0d  13 f6 09 dd f2 64 69 65  |.............die|
00002660  0d 14 00 0c f2 4e 6f 74  65 4f 66 66 0d 14 0a 2a  |.....NoteOff...*|
00002670  c8 99 20 22 57 69 6d 70  5f 43 6c 6f 73 65 44 6f  |.. "Wimp_CloseDo|
00002680  77 6e 22 2c 74 61 73 6b  68 61 6e 64 25 2c 21 74  |wn",taskhand%,!t|
00002690  61 73 6b 69 64 25 0d 14  14 05 e0 0d 14 1e 05 e1  |askid%..........|
000026a0  0d 14 28 04 0d 14 32 14  dd 20 f2 67 65 74 77 28  |..(...2.. .getw(|
000026b0  68 61 6e 64 6c 65 25 29  0d 14 3c 38 21 71 25 3d  |handle%)..<8!q%=|
000026c0  68 61 6e 64 6c 65 25 3a  c8 99 20 22 57 69 6d 70  |handle%:.. "Wimp|
000026d0  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
000026e0  2c 2c 71 25 3a f2 69 6e  66 6f 28 71 25 2b 34 29  |,,q%:.info(q%+4)|
000026f0  0d 14 46 05 e1 0d 14 50  12 dd 20 f2 67 65 74 69  |..F....P.. .geti|
00002700  28 68 25 2c 69 25 29 0d  14 5a 2d 21 71 25 3d 68  |(h%,i%)..Z-!q%=h|
00002710  25 3a 71 25 21 34 3d 69  25 3a c8 99 20 22 57 69  |%:q%!4=i%:.. "Wi|
00002720  6d 70 5f 47 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_GetIconState"|
00002730  2c 2c 71 25 0d 14 64 2e  69 78 30 25 3d 71 25 21  |,,q%..d.ix0%=q%!|
00002740  38 3a 69 79 30 25 3d 71  25 21 31 32 3a 69 78 31  |8:iy0%=q%!12:ix1|
00002750  25 3d 71 25 21 31 36 3a  69 79 31 25 3d 71 25 21  |%=q%!16:iy1%=q%!|
00002760  32 30 0d 14 6e 1e 69 66  6c 61 67 73 25 3d 71 25  |20..n.iflags%=q%|
00002770  21 32 34 3a 69 64 61 74  61 25 3d 71 25 2b 32 38  |!24:idata%=q%+28|
00002780  0d 14 78 05 e1 0d 14 82  04 0d 14 8c 0f dd 20 f2  |..x........... .|
00002790  69 6e 66 6f 28 70 25 29  0d 14 96 0d ea 20 78 30  |info(p%)..... x0|
000027a0  25 2c 79 30 25 0d 14 a0  27 78 30 25 3d 21 70 25  |%,y0%...'x0%=!p%|
000027b0  3a 79 30 25 3d 70 25 21  34 3a 78 31 25 3d 70 25  |:y0%=p%!4:x1%=p%|
000027c0  21 38 3a 79 31 25 3d 70  25 21 31 32 0d 14 aa 35  |!8:y1%=p%!12...5|
000027d0  73 63 78 25 3d 70 25 21  31 36 3a 73 63 79 25 3d  |scx%=p%!16:scy%=|
000027e0  70 25 21 32 30 3a 62 68  61 6e 64 6c 65 25 3d 70  |p%!20:bhandle%=p|
000027f0  25 21 32 34 3a 66 6c 61  67 73 25 3d 70 25 21 32  |%!24:flags%=p%!2|
00002800  38 0d 14 b4 1d 62 78 25  3d 78 30 25 2d 73 63 78  |8....bx%=x0%-scx|
00002810  25 3a 62 79 25 3d 79 31  25 2d 73 63 79 25 0d 14  |%:by%=y1%-scy%..|
00002820  be 05 e1 0d 14 c8 04 0d  14 d2 10 dd 20 f2 5f 4b  |............ ._K|
00002830  65 79 50 72 65 73 73 0d  14 dc 0d c8 8e 20 71 25  |eyPress...... q%|
00002840  21 30 20 ca 0d 14 e6 20  7f 3a 20 c8 99 22 57 69  |!0 .... .: .."Wi|
00002850  6d 70 5f 50 72 6f 63 65  73 73 4b 65 79 22 2c 71  |mp_ProcessKey",q|
00002860  25 21 32 34 0d 14 f0 05  cb 0d 14 fa 05 e1 0d 15  |%!24............|
00002870  04 04 0d 15 0e 15 dd 20  f2 74 69 63 6b 28 6d 25  |....... .tick(m%|
00002880  2c 6e 25 2c 69 25 29 0d  15 18 0b ea 20 41 25 2c  |,n%,i%)..... A%,|
00002890  70 25 0d 15 22 0c 70 25  3d 32 38 2b 6d 25 0d 15  |p%..".p%=28+m%..|
000028a0  2c 0f e3 20 41 25 3d 31  20 b8 20 6e 25 0d 15 36  |,.. A%=1 . n%..6|
000028b0  11 3f 70 25 3d 3f 70 25  20 80 20 26 46 45 0d 15  |.?p%=?p% . &FE..|
000028c0  40 0a 70 25 2b 3d 32 34  0d 15 4a 05 ed 0d 15 54  |@.p%+=24..J....T|
000028d0  12 70 25 3d 6d 25 2b 32  38 2b 69 25 2a 32 34 0d  |.p%=m%+28+i%*24.|
000028e0  15 5e 0f 3f 70 25 3d 3f  70 25 20 84 20 31 0d 15  |.^.?p%=?p% . 1..|
000028f0  68 05 e1 0d 15 72 04 0d  15 7c 0b dd 20 f2 5f 53  |h....r...|.. ._S|
00002900  4b 53 0d 15 86 08 ea 20  41 25 0d 15 90 1d f4 20  |KS..... A%..... |
00002910  53 65 74 20 75 70 20 4b  65 79 62 6f 61 72 64 20  |Set up Keyboard |
00002920  53 70 72 69 74 65 73 0d  15 9a 0e 53 50 25 21 30  |Sprites....SP%!0|
00002930  3d 53 50 72 25 0d 15 a4  0c 53 50 25 21 38 3d 31  |=SPr%....SP%!8=1|
00002940  36 0d 15 ae 1d c8 99 22  4f 53 5f 53 70 72 69 74  |6......"OS_Sprit|
00002950  65 4f 70 22 2c 39 2b 32  35 36 2c 53 50 25 0d 15  |eOp",9+256,SP%..|
00002960  b8 2c c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |.,.."OS_SpriteOp|
00002970  22 2c 31 31 2b 32 35 36  2c 53 50 25 2c 22 3c 4d  |",11+256,SP%,"<M|
00002980  4d 24 44 69 72 3e 2e 4b  42 22 0d 15 c2 28 c8 99  |M$Dir>.KB"...(..|
00002990  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 32 37  |"OS_SpriteOp",27|
000029a0  2b 32 35 36 2c 53 50 25  2c 22 6b 31 22 2c 22 6b  |+256,SP%,"k1","k|
000029b0  33 22 0d 15 cc 28 c8 99  22 4f 53 5f 53 70 72 69  |3"...(.."OS_Spri|
000029c0  74 65 4f 70 22 2c 32 37  2b 32 35 36 2c 53 50 25  |teOp",27+256,SP%|
000029d0  2c 22 6b 32 22 2c 22 6b  34 22 0d 15 d6 23 c8 99  |,"k2","k4"...#..|
000029e0  22 4f 53 5f 53 70 72 69  74 65 4f 70 22 2c 33 33  |"OS_SpriteOp",33|
000029f0  2b 32 35 36 2c 53 50 25  2c 22 6b 33 22 0d 15 e0  |+256,SP%,"k3"...|
00002a00  23 c8 99 22 4f 53 5f 53  70 72 69 74 65 4f 70 22  |#.."OS_SpriteOp"|
00002a10  2c 34 37 2b 32 35 36 2c  53 50 25 2c 22 6b 34 22  |,47+256,SP%,"k4"|
00002a20  0d 15 ea 04 0d 15 f4 23  47 34 25 3f 30 3d 30 3a  |.......#G4%?0=0:|
00002a30  47 34 25 3f 31 3d 33 3a  47 34 25 3f 32 3d 30 3a  |G4%?1=3:G4%?2=0:|
00002a40  47 34 25 3f 33 3d 31 0d  15 fe 15 e3 20 41 25 3d  |G4%?3=1..... A%=|
00002a50  30 20 b8 20 31 30 32 34  20 88 20 34 0d 16 08 0c  |0 . 1024 . 4....|
00002a60  47 35 25 3f 41 25 3d 30  0d 16 12 11 47 35 25 3f  |G5%?A%=0....G5%?|
00002a70  28 41 25 2b 31 29 3d 41  25 0d 16 1c 11 47 35 25  |(A%+1)=A%....G5%|
00002a80  3f 28 41 25 2b 32 29 3d  41 25 0d 16 26 11 47 35  |?(A%+2)=A%..&.G5|
00002a90  25 3f 28 41 25 2b 33 29  3d 41 25 0d 16 30 05 ed  |%?(A%+3)=A%..0..|
00002aa0  0d 16 3a 0a 53 74 74 25  3d 30 0d 16 44 07 f2 74  |..:.Stt%=0..D..t|
00002ab0  74 0d 16 4e 0e e3 20 41  25 3d 30 20 b8 20 32 0d  |t..N.. A%=0 . 2.|
00002ac0  16 58 11 58 72 25 28 41  25 29 3d 2d 31 30 30 30  |.X.Xr%(A%)=-1000|
00002ad0  0d 16 62 12 58 72 4c 25  28 41 25 29 3d 2d 31 30  |..b.XrL%(A%)=-10|
00002ae0  30 30 0d 16 6c 11 59 72  25 28 41 25 29 3d 2d 31  |00..l.Yr%(A%)=-1|
00002af0  30 30 30 0d 16 76 12 59  72 4c 25 28 41 25 29 3d  |000..v.YrL%(A%)=|
00002b00  2d 31 30 30 30 0d 16 80  05 ed 0d 16 8a 18 44 78  |-1000.........Dx|
00002b10  31 25 3d 34 3a 44 78 32  25 3d 38 3a 44 78 30 25  |1%=4:Dx2%=8:Dx0%|
00002b20  3d 30 0d 16 94 19 44 79  31 25 3d 36 3a 44 79 32  |=0....Dy1%=6:Dy2|
00002b30  25 3d 31 32 3a 44 79 30  25 3d 30 0d 16 9e 19 f4  |%=12:Dy0%=0.....|
00002b40  20 49 6e 69 74 69 6c 69  73 65 20 4b 65 79 20 74  | Initilise Key t|
00002b50  61 62 6c 65 0d 16 a8 08  42 25 3d 30 0d 16 b2 10  |able....B%=0....|
00002b60  e3 20 41 25 3d 30 20 b8  20 31 32 37 0d 16 bc 0f  |. A%=0 . 127....|
00002b70  f3 20 41 6b 65 79 25 28  41 25 29 0d 16 c6 09 42  |. Akey%(A%)....B|
00002b80  25 2b 3d 31 0d 16 d0 19  e7 20 42 25 3d 31 32 20  |%+=1..... B%=12 |
00002b90  8c 20 42 25 3d 30 3a f7  20 8d 64 64 56 0d 16 da  |. B%=0:. .ddV...|
00002ba0  05 ed 0d 16 e4 24 dc 20  2d 31 2c 30 2c 2d 31 2c  |.....$. -1,0,-1,|
00002bb0  30 2c 2d 31 2c 2d 31 2c  30 2c 2d 31 2c 30 2c 2d  |0,-1,-1,0,-1,0,-|
00002bc0  31 2c 30 2c 2d 31 0d 16  ee 0e e3 20 41 25 3d 30  |1,0,-1..... A%=0|
00002bd0  20 b8 20 32 0d 16 f8 1b  4e 6f 6e 58 25 28 41 25  | . 2....NonX%(A%|
00002be0  29 3d 30 3a 4e 6f 6e 59  25 28 41 25 29 3d 30 0d  |)=0:NonY%(A%)=0.|
00002bf0  17 02 1b 50 6e 6e 58 25  28 41 25 29 3d 30 3a 50  |...PnnX%(A%)=0:P|
00002c00  6e 6e 58 25 28 41 25 29  3d 30 0d 17 0c 05 ed 0d  |nnX%(A%)=0......|
00002c10  17 16 05 e1 0d 17 20 04  0d 17 2a 09 dd 20 f2 74  |...... ...*.. .t|
00002c20  74 0d 17 34 2e c8 99 22  4f 53 5f 52 65 61 64 4d  |t..4..."OS_ReadM|
00002c30  6f 64 65 56 61 72 69 61  62 6c 65 22 2c 2d 31 2c  |odeVariable",-1,|
00002c40  33 20 b8 20 2c 2c 4e 63  6f 6c 6f 75 72 73 25 0d  |3 . ,,Ncolours%.|
00002c50  17 3e 58 e7 20 4e 63 6f  6c 6f 75 72 73 25 3d 33  |.>X. Ncolours%=3|
00002c60  20 8c 20 53 74 74 25 3d  47 34 25 20 8b 20 c8 99  | . Stt%=G4% . ..|
00002c70  22 43 6f 6c 6f 75 72 54  72 61 6e 73 5f 53 65 6c  |"ColourTrans_Sel|
00002c80  65 63 74 54 61 62 6c 65  22 2c 53 50 25 2c 22 6b  |ectTable",SP%,"k|
00002c90  31 22 2c 2d 31 2c 2d 31  2c 47 35 25 2c 30 3a 53  |1",-1,-1,G5%,0:S|
00002ca0  74 74 25 3d 47 35 25 0d  17 48 05 e1 0d 17 52 04  |tt%=G5%..H....R.|
00002cb0  0d 17 5c 0f dd 20 f2 6b  65 79 62 6f 61 72 64 0d  |..\.. .keyboard.|
00002cc0  17 66 08 ea 20 41 25 0d  17 70 1d 20 20 20 20 20  |.f.. A%..p.     |
00002cd0  c8 99 22 57 69 6d 70 5f  53 65 74 43 6f 6c 6f 75  |.."Wimp_SetColou|
00002ce0  72 22 2c 31 0d 17 7a 23  20 20 20 20 20 c8 93 c8  |r",1..z#     ...|
00002cf0  90 20 78 6f 25 2b 34 30  2c 79 6f 25 2b 34 30 2c  |. xo%+40,yo%+40,|
00002d00  33 35 38 2c 33 36 32 0d  17 84 1e 20 20 20 20 20  |358,362....     |
00002d10  c8 99 22 57 69 6d 70 5f  53 65 74 43 6f 6c 6f 75  |.."Wimp_SetColou|
00002d20  72 22 2c 31 31 0d 17 8e  0d 20 20 20 20 20 41 25  |r",11....     A%|
00002d30  3d 30 0d 17 98 13 20 20  20 20 20 c8 95 20 41 25  |=0....     .. A%|
00002d40  3c 3e 4e 78 25 0d 17 a2  29 20 20 20 20 20 c8 93  |<>Nx%...)     ..|
00002d50  c8 90 20 58 72 25 28 41  25 29 2b 34 32 2b 78 6f  |.. Xr%(A%)+42+xo|
00002d60  25 2c 79 6f 25 2b 34 32  2c 34 2c 33 35 34 0d 17  |%,yo%+42,4,354..|
00002d70  ac 0e 20 20 20 20 20 41  25 2b 3d 31 0d 17 b6 0a  |..     A%+=1....|
00002d80  20 20 20 20 20 ce 0d 17  c0 09 20 20 20 20 20 0d  |     .....     .|
00002d90  17 ca 1e 20 20 20 20 20  c8 99 22 57 69 6d 70 5f  |...     .."Wimp_|
00002da0  53 65 74 43 6f 6c 6f 75  72 22 2c 31 34 0d 17 d4  |SetColour",14...|
00002db0  0d 20 20 20 20 20 41 25  3d 30 0d 17 de 13 20 20  |.     A%=0....  |
00002dc0  20 20 20 c8 95 20 41 25  3c 3e 4e 79 25 0d 17 e8  |   .. A%<>Ny%...|
00002dd0  29 20 20 20 20 20 c8 93  c8 90 20 34 32 2b 78 6f  |)     .... 42+xo|
00002de0  25 2c 79 6f 25 2b 34 32  2b 59 72 25 28 41 25 29  |%,yo%+42+Yr%(A%)|
00002df0  2c 33 35 34 2c 34 0d 17  f2 0e 20 20 20 20 20 41  |,354,4....     A|
00002e00  25 2b 3d 31 0d 17 fc 0a  20 20 20 20 20 ce 0d 18  |%+=1....     ...|
00002e10  06 3d c8 99 22 4f 53 5f  53 70 72 69 74 65 4f 70  |.=.."OS_SpriteOp|
00002e20  22 2c 35 32 2b 32 35 36  2c 53 50 25 2c 22 6b 31  |",52+256,SP%,"k1|
00002e30  22 2c 78 6f 25 2b 34 30  2c 79 6f 25 2b 34 30 34  |",xo%+40,yo%+404|
00002e40  2c 26 31 30 2c 30 2c 53  74 74 25 0d 18 10 39 c8  |,&10,0,Stt%...9.|
00002e50  99 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 35  |."OS_SpriteOp",5|
00002e60  32 2b 32 35 36 2c 53 50  25 2c 22 6b 33 22 2c 78  |2+256,SP%,"k3",x|
00002e70  6f 25 2b 34 30 2c 79 6f  25 2c 26 31 30 2c 30 2c  |o%+40,yo%,&10,0,|
00002e80  53 74 74 25 0d 18 1a 04  0d 18 24 39 c8 99 22 4f  |Stt%......$9.."O|
00002e90  53 5f 53 70 72 69 74 65  4f 70 22 2c 35 32 2b 32  |S_SpriteOp",52+2|
00002ea0  35 36 2c 53 50 25 2c 22  6b 32 22 2c 78 6f 25 2c  |56,SP%,"k2",xo%,|
00002eb0  79 6f 25 2b 34 30 2c 26  31 30 2c 30 2c 53 74 74  |yo%+40,&10,0,Stt|
00002ec0  25 0d 18 2e 3d c8 99 22  4f 53 5f 53 70 72 69 74  |%...=.."OS_Sprit|
00002ed0  65 4f 70 22 2c 35 32 2b  32 35 36 2c 53 50 25 2c  |eOp",52+256,SP%,|
00002ee0  22 6b 34 22 2c 78 6f 25  2b 34 30 32 2c 79 6f 25  |"k4",xo%+402,yo%|
00002ef0  2b 34 30 2c 26 31 30 2c  30 2c 53 74 74 25 0d 18  |+40,&10,0,Stt%..|
00002f00  38 05 e1 0d 18 42 04 0d  18 4c 13 dd 20 f2 75 70  |8....B...L.. .up|
00002f10  52 65 63 28 58 25 2c 59  25 29 0d 18 56 08 ea 20  |Rec(X%,Y%)..V.. |
00002f20  41 25 0d 18 60 36 20 20  71 25 21 30 3d 6d 6f 6e  |A%..`6  q%!0=mon|
00002f30  57 25 3a 71 25 21 34 3d  34 32 3a 71 25 21 38 3d  |W%:q%!4=42:q%!8=|
00002f40  2d 34 30 32 3a 71 25 21  31 32 3d 34 30 32 3a 71  |-402:q%!12=402:q|
00002f50  25 21 31 36 3d 2d 34 30  0d 18 6a 27 20 20 c8 99  |%!16=-40..j'  ..|
00002f60  22 57 69 6d 70 5f 55 70  64 61 74 65 57 69 6e 64  |"Wimp_UpdateWind|
00002f70  6f 77 22 2c 2c 71 25 20  b8 20 4d 6f 72 65 25 0d  |ow",,q% . More%.|
00002f80  18 74 0d 20 c8 95 20 4d  6f 72 65 25 0d 18 7e 1d  |.t. .. More%..~.|
00002f90  20 20 20 20 20 c8 99 22  57 69 6d 70 5f 53 65 74  |     .."Wimp_Set|
00002fa0  43 6f 6c 6f 75 72 22 2c  31 0d 18 88 0d 20 20 20  |Colour",1....   |
00002fb0  20 20 41 25 3d 30 0d 18  92 13 20 20 20 20 20 c8  |  A%=0....     .|
00002fc0  95 20 41 25 3c 3e 4e 78  25 0d 18 9c 2a 20 20 20  |. A%<>Nx%...*   |
00002fd0  20 20 c8 93 c8 90 20 58  72 4c 25 28 41 25 29 2b  |  .... XrL%(A%)+|
00002fe0  34 32 2b 78 6f 25 2c 79  6f 25 2b 34 32 2c 34 2c  |42+xo%,yo%+42,4,|
00002ff0  33 36 30 0d 18 a6 0e 20  20 20 20 20 41 25 2b 3d  |360....     A%+=|
00003000  31 0d 18 b0 0a 20 20 20  20 20 ce 0d 18 ba 0d 20  |1....     ..... |
00003010  20 20 20 20 41 25 3d 30  0d 18 c4 13 20 20 20 20  |    A%=0....    |
00003020  20 c8 95 20 41 25 3c 3e  4e 79 25 0d 18 ce 2a 20  | .. A%<>Ny%...* |
00003030  20 20 20 20 c8 93 c8 90  20 34 32 2b 78 6f 25 2c  |    .... 42+xo%,|
00003040  79 6f 25 2b 34 32 2b 59  72 4c 25 28 41 25 29 2c  |yo%+42+YrL%(A%),|
00003050  33 35 36 2c 34 0d 18 d8  0e 20 20 20 20 20 41 25  |356,4....     A%|
00003060  2b 3d 31 0d 18 e2 0a 20  20 20 20 20 ce 0d 18 ec  |+=1....     ....|
00003070  1e 20 20 20 20 20 c8 99  22 57 69 6d 70 5f 53 65  |.     .."Wimp_Se|
00003080  74 43 6f 6c 6f 75 72 22  2c 31 31 0d 18 f6 0d 20  |tColour",11.... |
00003090  20 20 20 20 41 25 3d 30  0d 19 00 13 20 20 20 20  |    A%=0....    |
000030a0  20 c8 95 20 41 25 3c 3e  4e 78 25 0d 19 0a 29 20  | .. A%<>Nx%...) |
000030b0  20 20 20 20 c8 93 c8 90  20 58 72 25 28 41 25 29  |    .... Xr%(A%)|
000030c0  2b 34 32 2b 78 6f 25 2c  79 6f 25 2b 34 32 2c 34  |+42+xo%,yo%+42,4|
000030d0  2c 33 36 30 0d 19 14 0e  20 20 20 20 20 41 25 2b  |,360....     A%+|
000030e0  3d 31 0d 19 1e 0a 20 20  20 20 20 ce 0d 19 28 1e  |=1....     ...(.|
000030f0  20 20 20 20 20 c8 99 22  57 69 6d 70 5f 53 65 74  |     .."Wimp_Set|
00003100  43 6f 6c 6f 75 72 22 2c  31 34 0d 19 32 0d 20 20  |Colour",14..2.  |
00003110  20 20 20 41 25 3d 30 0d  19 3c 13 20 20 20 20 20  |   A%=0..<.     |
00003120  c8 95 20 41 25 3c 3e 4e  79 25 0d 19 46 29 20 20  |.. A%<>Ny%..F)  |
00003130  20 20 20 c8 93 c8 90 20  34 32 2b 78 6f 25 2c 79  |   .... 42+xo%,y|
00003140  6f 25 2b 34 32 2b 59 72  25 28 41 25 29 2c 33 35  |o%+42+Yr%(A%),35|
00003150  36 2c 34 0d 19 50 0e 20  20 20 20 20 41 25 2b 3d  |6,4..P.     A%+=|
00003160  31 0d 19 5a 0a 20 20 20  20 20 ce 0d 19 64 09 20  |1..Z.     ...d. |
00003170  20 20 20 20 0d 19 6e 27  20 20 c8 99 22 57 69 6d  |    ..n'  .."Wim|
00003180  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |p_GetRectangle",|
00003190  2c 71 25 20 b8 20 4d 6f  72 65 25 0d 19 78 06 20  |,q% . More%..x. |
000031a0  ce 0d 19 82 0f 20 e3 20  41 25 3d 30 20 b8 20 32  |..... . A%=0 . 2|
000031b0  0d 19 8c 26 20 58 72 4c  25 28 41 25 29 3d 58 72  |...& XrL%(A%)=Xr|
000031c0  25 28 41 25 29 3a 59 72  4c 25 28 41 25 29 3d 59  |%(A%):YrL%(A%)=Y|
000031d0  72 25 28 41 25 29 0d 19  96 06 20 ed 0d 19 a0 05  |r%(A%).... .....|
000031e0  e1 0d 19 aa 04 0d 19 b4  0c dd 20 f2 71 75 61 6e  |.......... .quan|
000031f0  74 0d 19 be 0e ea 20 41  25 2c 74 24 2c 42 25 0d  |t..... A%,t$,B%.|
00003200  19 c8 12 f2 5f 54 72 61  6e 73 28 6d 6f 6e 57 25  |...._Trans(monW%|
00003210  29 0d 19 d2 0e e7 20 4e  78 25 3c 3e 30 20 8c 0d  |)..... Nx%<>0 ..|
00003220  19 dc 14 58 72 25 28 30  29 3d 58 25 2d 78 6f 25  |...Xr%(0)=X%-xo%|
00003230  2d 34 32 0d 19 e6 1e 58  72 25 28 30 29 3d 58 72  |-42....Xr%(0)=Xr|
00003240  25 28 30 29 2d 28 58 72  25 28 30 29 20 83 20 36  |%(0)-(Xr%(0) . 6|
00003250  29 0d 19 f0 18 6e 6e 58  25 3d 28 58 72 25 28 30  |)....nnX%=(Xr%(0|
00003260  29 20 81 20 36 29 2b 32  34 0d 19 fa 05 cd 0d 1a  |) . 6)+24.......|
00003270  04 0e e7 20 4e 79 25 3c  3e 30 20 8c 0d 1a 0e 14  |... Ny%<>0 .....|
00003280  59 72 25 28 30 29 3d 59  25 2d 79 6f 25 2d 34 32  |Yr%(0)=Y%-yo%-42|
00003290  0d 1a 18 1e 59 72 25 28  30 29 3d 59 72 25 28 30  |....Yr%(0)=Yr%(0|
000032a0  29 2d 28 59 72 25 28 30  29 20 83 20 36 29 0d 1a  |)-(Yr%(0) . 6)..|
000032b0  22 18 6e 6e 59 25 3d 28  59 72 25 28 30 29 20 81  |".nnY%=(Yr%(0) .|
000032c0  20 36 29 2b 32 34 0d 1a  2c 05 cd 0d 1a 36 04 0d  | 6)+24..,....6..|
000032d0  1a 40 0d c8 8e 20 4b 65  79 25 20 ca 0d 1a 4a 08  |.@... Key% ...J.|
000032e0  c9 20 30 3a 0d 1a 54 08  c9 20 31 3a 0d 1a 5e 18  |. 0:..T.. 1:..^.|
000032f0  20 20 20 20 20 20 c8 95  20 41 6b 65 79 25 28 6e  |      .. Akey%(n|
00003300  6e 59 25 29 0d 1a 68 12  20 20 20 20 20 20 20 6e  |nY%)..h.       n|
00003310  6e 59 25 2b 3d 31 0d 1a  72 0b 20 20 20 20 20 20  |nY%+=1..r.      |
00003320  ce 0d 1a 7c 1c 20 20 20  20 20 20 59 72 25 28 30  |...|.      Yr%(0|
00003330  29 3d 28 6e 6e 59 25 2d  32 34 29 2a 36 0d 1a 86  |)=(nnY%-24)*6...|
00003340  18 20 20 20 20 20 20 c8  95 20 41 6b 65 79 25 28  |.      .. Akey%(|
00003350  6e 6e 58 25 29 0d 1a 90  11 20 20 20 20 20 20 6e  |nnX%)....      n|
00003360  6e 58 25 2b 3d 31 0d 1a  9a 0b 20 20 20 20 20 20  |nX%+=1....      |
00003370  ce 0d 1a a4 1c 20 20 20  20 20 20 58 72 25 28 30  |.....      Xr%(0|
00003380  29 3d 28 6e 6e 58 25 2d  32 34 29 2a 36 0d 1a ae  |)=(nnX%-24)*6...|
00003390  04 0d 1a b8 05 7f 0d 1a  c2 19 c8 95 20 ac 28 41  |............ .(A|
000033a0  6b 65 79 25 28 6e 6e 59  25 2d 4b 6f 25 29 29 0d  |key%(nnY%-Ko%)).|
000033b0  1a cc 0b 6e 6e 59 25 2b  3d 31 0d 1a d6 05 ce 0d  |...nnY%+=1......|
000033c0  1a e0 16 59 72 25 28 30  29 3d 28 6e 6e 59 25 2d  |...Yr%(0)=(nnY%-|
000033d0  32 34 29 2a 36 0d 1a ea  19 c8 95 20 ac 28 41 6b  |24)*6...... .(Ak|
000033e0  65 79 25 28 6e 6e 58 25  2d 4b 6f 25 29 29 0d 1a  |ey%(nnX%-Ko%))..|
000033f0  f4 0b 6e 6e 58 25 2b 3d  31 0d 1a fe 05 ce 0d 1b  |..nnX%+=1.......|
00003400  08 16 58 72 25 28 30 29  3d 28 6e 6e 58 25 2d 32  |..Xr%(0)=(nnX%-2|
00003410  34 29 2a 36 0d 1b 12 05  cb 0d 1b 1c 04 0d 1b 26  |4)*6...........&|
00003420  22 e7 20 4e 79 25 3d 32  20 8c 20 59 72 25 28 31  |". Ny%=2 . Yr%(1|
00003430  29 3d 59 72 25 28 30 29  2b 36 2a 44 79 31 25 0d  |)=Yr%(0)+6*Dy1%.|
00003440  1b 30 22 e7 20 4e 78 25  3d 32 20 8c 20 58 72 25  |.0". Nx%=2 . Xr%|
00003450  28 31 29 3d 58 72 25 28  30 29 2b 36 2a 44 78 31  |(1)=Xr%(0)+6*Dx1|
00003460  25 0d 1b 3a 4c e7 20 4e  79 25 3d 33 20 8c 20 59  |%..:L. Ny%=3 . Y|
00003470  72 25 28 31 29 3d 59 72  25 28 30 29 2b 36 2a 44  |r%(1)=Yr%(0)+6*D|
00003480  79 31 25 3a 59 72 25 28  32 29 3d 59 72 25 28 30  |y1%:Yr%(2)=Yr%(0|
00003490  29 2b 36 2a 44 79 32 25  3a 59 72 25 28 30 29 3d  |)+6*Dy2%:Yr%(0)=|
000034a0  59 72 25 28 30 29 2b 36  2a 44 79 30 25 0d 1b 44  |Yr%(0)+6*Dy0%..D|
000034b0  4c e7 20 4e 78 25 3d 33  20 8c 20 58 72 25 28 31  |L. Nx%=3 . Xr%(1|
000034c0  29 3d 58 72 25 28 30 29  2b 36 2a 44 78 31 25 3a  |)=Xr%(0)+6*Dx1%:|
000034d0  58 72 25 28 32 29 3d 58  72 25 28 30 29 2b 36 2a  |Xr%(2)=Xr%(0)+6*|
000034e0  44 78 32 25 3a 58 72 25  28 30 29 3d 58 72 25 28  |Dx2%:Xr%(0)=Xr%(|
000034f0  30 29 2b 36 2a 44 78 30  25 0d 1b 4e 37 e7 20 28  |0)+6*Dx0%..N7. (|
00003500  58 72 4c 25 28 30 29 3c  3e 58 72 25 28 30 29 29  |XrL%(0)<>Xr%(0))|
00003510  20 84 20 28 59 72 4c 25  28 30 29 3c 3e 59 72 25  | . (YrL%(0)<>Yr%|
00003520  28 30 29 29 20 84 20 46  6f 72 63 65 55 25 20 8c  |(0)) . ForceU% .|
00003530  0d 1b 58 17 55 70 64 61  74 65 25 3d b9 3a 46 6f  |..X.Update%=.:Fo|
00003540  72 63 65 55 25 3d a3 0d  1b 62 08 f2 63 6e 6e 0d  |rceU%=...b..cnn.|
00003550  1b 6c 19 f2 5f 73 70 75  74 28 30 2c c3 28 50 6e  |.l.._sput(0,.(Pn|
00003560  6e 59 25 28 30 29 29 29  0d 1b 76 19 f2 5f 73 70  |nY%(0)))..v.._sp|
00003570  75 74 28 31 2c c3 28 50  6e 6e 58 25 28 30 29 29  |ut(1,.(PnnX%(0))|
00003580  29 0d 1b 80 05 cd 0d 1b  8a 05 e1 0d 1b 94 04 0d  |)...............|
00003590  1b 9e 0a dd 20 f2 63 6e  6e 0d 1b a8 08 ea 20 41  |.... .cnn..... A|
000035a0  25 0d 1b b2 0e e3 20 41  25 3d 30 20 b8 20 32 0d  |%..... A%=0 . 2.|
000035b0  1b bc 1e 50 6e 6e 58 25  28 41 25 29 3d 28 58 72  |...PnnX%(A%)=(Xr|
000035c0  25 28 41 25 29 20 81 20  36 29 2b 32 34 0d 1b c6  |%(A%) . 6)+24...|
000035d0  1e 50 6e 6e 59 25 28 41  25 29 3d 28 59 72 25 28  |.PnnY%(A%)=(Yr%(|
000035e0  41 25 29 20 81 20 36 29  2b 32 34 0d 1b d0 05 ed  |A%) . 6)+24.....|
000035f0  0d 1b da 11 c8 99 26 34  30 34 43 32 2c 43 68 58  |......&404C2,ChX|
00003600  25 0d 1b e4 08 41 25 3d  30 0d 1b ee 0e c8 95 20  |%....A%=0...... |
00003610  41 25 3c 3e 4e 78 25 0d  1b f8 1c e7 20 4e 6f 6e  |A%<>Nx%..... Non|
00003620  58 25 28 41 25 29 3c 3e  50 6e 6e 58 25 28 41 25  |X%(A%)<>PnnX%(A%|
00003630  29 20 8c 0d 1c 02 18 c8  99 26 34 30 34 43 42 2c  |) .......&404CB,|
00003640  4e 6f 6e 58 25 28 41 25  29 2c 30 0d 1c 0c 1a c8  |NonX%(A%),0.....|
00003650  99 26 34 30 34 43 43 2c  50 6e 6e 58 25 28 41 25  |.&404CC,PnnX%(A%|
00003660  29 2c 31 30 30 0d 1c 16  17 4e 6f 6e 58 25 28 41  |),100....NonX%(A|
00003670  25 29 3d 50 6e 6e 58 25  28 41 25 29 0d 1c 20 05  |%)=PnnX%(A%).. .|
00003680  cd 0d 1c 2a 09 41 25 2b  3d 31 0d 1c 34 05 ce 0d  |...*.A%+=1..4...|
00003690  1c 3e 11 c8 99 26 34 30  34 43 32 2c 43 68 59 25  |.>...&404C2,ChY%|
000036a0  0d 1c 48 08 41 25 3d 30  0d 1c 52 0e c8 95 20 41  |..H.A%=0..R... A|
000036b0  25 3c 3e 4e 79 25 0d 1c  5c 1c e7 20 4e 6f 6e 59  |%<>Ny%..\.. NonY|
000036c0  25 28 41 25 29 3c 3e 50  6e 6e 59 25 28 41 25 29  |%(A%)<>PnnY%(A%)|
000036d0  20 8c 0d 1c 66 18 c8 99  26 34 30 34 43 42 2c 4e  | ...f...&404CB,N|
000036e0  6f 6e 59 25 28 41 25 29  2c 30 0d 1c 70 1a c8 99  |onY%(A%),0..p...|
000036f0  26 34 30 34 43 43 2c 50  6e 6e 59 25 28 41 25 29  |&404CC,PnnY%(A%)|
00003700  2c 31 30 30 0d 1c 7a 17  4e 6f 6e 59 25 28 41 25  |,100..z.NonY%(A%|
00003710  29 3d 50 6e 6e 59 25 28  41 25 29 0d 1c 84 05 cd  |)=PnnY%(A%).....|
00003720  0d 1c 8e 09 41 25 2b 3d  31 0d 1c 98 05 ce 0d 1c  |....A%+=1.......|
00003730  a2 05 e1 0d 1c ac 04 0d  1c b6 0e dd 20 f2 4e 6f  |............ .No|
00003740  74 65 4f 66 66 0d 1c c0  08 ea 20 41 25 0d 1c ca  |teOff..... A%...|
00003750  0e e3 20 41 25 3d 30 20  b8 20 32 0d 1c d4 11 c8  |.. A%=0 . 2.....|
00003760  99 26 34 30 34 43 32 2c  43 68 58 25 0d 1c de 18  |.&404C2,ChX%....|
00003770  c8 99 26 34 30 34 43 42  2c 4e 6f 6e 58 25 28 41  |..&404CB,NonX%(A|
00003780  25 29 2c 30 0d 1c e8 11  c8 99 26 34 30 34 43 32  |%),0......&404C2|
00003790  2c 43 68 59 25 0d 1c f2  18 c8 99 26 34 30 34 43  |,ChY%......&404C|
000037a0  42 2c 4e 6f 6e 59 25 28  41 25 29 2c 30 0d 1c fc  |B,NonY%(A%),0...|
000037b0  10 4e 6f 6e 58 25 28 41  25 29 3d 2d 31 0d 1d 06  |.NonX%(A%)=-1...|
000037c0  10 4e 6f 6e 59 25 28 41  25 29 3d 2d 31 0d 1d 10  |.NonY%(A%)=-1...|
000037d0  05 ed 0d 1d 1a 05 e1 0d  1d 24 04 0d 1d 2e 14 dd  |.........$......|
000037e0  20 f2 5f 73 70 75 74 28  49 6e 25 2c 58 24 29 0d  | ._sput(In%,X$).|
000037f0  1d 38 0b ea 20 41 25 2c  78 25 0d 1d 42 13 78 25  |.8.. A%,x%..B.x%|
00003800  3d 53 50 6f 69 6e 74 25  28 49 6e 25 29 0d 1d 4c  |=SPoint%(In%)..L|
00003810  08 41 25 3d 31 0d 1d 56  10 e7 20 a9 28 58 24 29  |.A%=1..V.. .(X$)|
00003820  3c 3e 30 20 8c 0d 1d 60  14 c8 95 20 41 25 3c 3e  |<>0 ...`... A%<>|
00003830  28 a9 28 58 24 29 2b 31  29 0d 1d 6a 14 3f 78 25  |(.(X$)+1)..j.?x%|
00003840  3d 97 28 c1 58 24 2c 41  25 2c 31 29 29 0d 1d 74  |=.(.X$,A%,1))..t|
00003850  09 78 25 2b 3d 31 0d 1d  7e 09 41 25 2b 3d 31 0d  |.x%+=1..~.A%+=1.|
00003860  1d 88 05 ce 0d 1d 92 05  cd 0d 1d 9c 09 3f 78 25  |.............?x%|
00003870  3d 30 0d 1d a6 44 c8 99  22 57 69 6d 70 5f 46 6f  |=0...D.."Wimp_Fo|
00003880  72 63 65 52 65 64 72 61  77 22 2c 6d 6f 6e 57 25  |rceRedraw",monW%|
00003890  2c 49 58 25 28 49 6e 25  29 2c 49 59 25 28 49 6e  |,IX%(In%),IY%(In|
000038a0  25 29 2c 49 58 31 25 28  49 6e 25 29 2c 49 59 31  |%),IX1%(In%),IY1|
000038b0  25 28 49 6e 25 29 0d 1d  b0 05 e1 0d ff           |%(In%).......|
000038bd