Home » Archimedes archive » Micro User » MU 1990-09.adf » PD_Stuff » !Fourier/MShow

!Fourier/MShow

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

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

Tape/disk: Home » Archimedes archive » Micro User » MU 1990-09.adf » PD_Stuff
Filename: !Fourier/MShow
Read OK:
File size: 133D bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > !FFT.MShow
   20DIM taskid%4:$taskid%="TASK"
   30SYS "Wimp_Initialise",200,!taskid%,"Optical Transform" TO version%
   40  `wbcol=&0:`tbcol=15:`sco=&3:`mbcol=&B
   50  `wfcol=&7:`tfcol=&7:`sci=&D:`tbcol2=&C
   60PROCvars
   70BIG%=TRUE
   80DS%=0
   90DIM q% &300
  100 
  110maxbuf%=&400
  120DIM buffer% maxbuf%,endbuf% -1:curbuf%=buffer%
  130DIM block 12
  140 
  150SYS "Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
  160ON ERROR SYS "Wimp_CloseTemplate":PROCerrordisplay(ERR,REPORT$,ERL)
  161SYS Time% TO timex%:timex%+=20
  170ONERROR PROCerrorbox
  180 
  190show%=FNtemplate("MIKE")
  200SYS "Wimp_CloseTemplate"
  210 
  220A%=OPENIN"<Obey$Dir>.FFS_SGROW":sz%=EXT#A%:CLOSE#A%
  230DIM sar% 100+sz%,factors% 15,pixtrans% 255
  240!sar%=100+sz%:sar%!4=0:sp%=0:sx%=1
  250SYS spop%,&109,sar%
  260SYS spop%,&10A,sar%,"<Obey$Dir>.FFS_SGROW"
  270
  280nsp%=sar%!4:DIM s%(nsp%)
  290FORA%=0TOnsp%-1:SYS spop%,256+24,sar%,RIGHT$("00"+STR$A%,2) TO,,s%(A%):NEXT
  300s%(nsp%)=s%(0)
  310 
  320PROCgetmodeinfo
  330 
  340ON ERROR PROCerrorbox
  350SYS Drag,,-1:PROCgetpointer:PROCpopup(show%)
  370REPEAT
  380  SYS Poll%,0,q%,timex% TO A%
  390  CASE A% OF
  400  WHEN 0 :PROCnudge
  410  WHEN 1 :PROCredraw_window(!q%)
  420  WHEN 2 :PROCopen_window(!q%,q%!4,q%!8,q%!12,q%!16,q%!20,q%!24,q%!28)
  430  WHEN 3 :PROCfinish:END
  440  WHEN 17,18:PROCreceive(q%)
  450  ENDCASE
  460UNTIL FALSE
  470 
  480DEF PROCreceive(q%)
  490CASE q%!16 OF
  500WHEN 0:PROCfinish:END
  510WHEN &400C1: PROCgetmodeinfo
  520ENDCASE
  530ENDPROC
  540 
  550DEF FNtemplate(a$)
  560LOCAL c%
  570SYS "Wimp_LoadTemplate",,q%,curbuf%,endbuf%,0,a$,0 TO ,,curbuf%,,,,c%
  580IF c%=0 ERROR 1,"Template '"+a$+"' not found"
  590!q%=128:q%!4=-384:q%!8=384:q%!12=-128:ysize%=384
  600q%!40=0:q%!44=-512:q%!48=512:q%!52=0
  610SYS "Wimp_CreateWindow",,q% TO c%
  620=c%
  630 
  640DEF PROCcloseawindow(handle%)
  650PROCgetw(handle%)
  660xo%=x0%:yo%=y0%:open%=FALSE
  670PROCclose_window(handle%)
  680ENDPROC
  690 
  700DEF PROCfinish
  710SYS "Wimp_CloseDown"
  720ENDPROC
  730 
  740DEF PROCfront(handle%)
  750IFhandle%=-1THENENDPROC
  760PROCgetw(handle%)
  770PROCopen_window(handle%,x0%,y0%,x1%,y1%,scx%,scy%,-1)
  780ENDPROC
  790 
  800DEF PROCpopup(handle%)
  810PROCgetw(handle%)
  820xo%=mousex%-(x0%+x1%)/2:yo%=mousey%-(y1%+64)
  830PROCopen_window(handle%,x0%+xo%,y0%+yo%,x1%+xo%,y1%+yo%,scx%,scy%,-1)
  840ENDPROC
  850 
  860DEF PROCreopen(handle%)
  870PROCgetw(handle%)
  880PROCopen_window(handle%,xo%,yo%,x1%-x0%+xo%,y1%-y0%+yo%,scx%,scy%,-1)
  890ENDPROC
  900 
  910DEF PROCopen_window(handle%,x0%,y0%,x1%,y1%,scx%,scy%,bhandle%)
  920IFhandle%=-1THENENDPROC
  930IF x1%-x0%> 400 THEN BIG%=TRUE ELSE BIG%=FALSE
  931timex%-=900
  940q%!0=handle%:q%!28=bhandle%
  950q%!4=x0%:q%!8=y0%:q%!12=x1%:q%!16=y1%:ysize%=y1%-y0%
  960q%!20=scx%:q%!24=scy%
  970SYS OpenW,,q%
  980PROCgetmodeinfo
  990ENDPROC
 1000 
 1010DEF PROCgetw(handle%)
 1020!q%=handle%:SYS GetW,,q%
 1030PROCinfo(q%+4):bhandle%=q%!28:flags%=q%!32
 1040ENDPROC
 1050 
 1060DEF PROCinfo(q%)
 1070x0%=!q%:y0%=q%!4:x1%=q%!8:y1%=q%!12:scx%=q%!16:scy%=q%!20
 1080bx%=x0%-scx%:by%=y1%-scy%
 1090ENDPROC
 1100 
 1110DEF PROCupdate(handle%,ux0%,uy0%,ux1%,uy1%)
 1120!q%=handle%:q%!4=ux0%:q%!8=uy0%:q%!12=ux1%:q%!16=uy1%
 1130SYS UpdateW,,q% TO more%:PROCinfo(q%+4)
 1140ENDPROC
 1150 
 1160DEF PROCinvalidate(handle%,x0%,y0%,x1%,y1%)
 1170SYS Screen,handle%,x0%,y0%,x1%,y1%
 1180ENDPROC
 1190 
 1200DEF PROCredraw_window(handle%)
 1210IFhandle%=show% THEN
 1220!q%=handle%
 1230SYS RedrawW,,q% TO more%
 1240PROCinfo(q%+4)
 1250WHILE more%
 1260  SYS spop%,spt%,sar%,s%(sp%),bx%-DS%,by%-ysize%-DS%,,factors%,spx%
 1270  SYS GetR%,0,q% TO more%
 1280ENDWHILE
 1290ENDIF
 1300ENDPROC
 1310 
 1320DEF PROCclose_window(handle%)
 1330!q%=handle%:SYS CloseW,,q%
 1340ENDPROC
 1350 
 1360DEF PROCvars
 1370Wimp    = (1<<18) + (3<<6)
 1380CreateW = Wimp+1
 1390OpenW   = Wimp+5
 1400CloseW  = Wimp+6
 1410RedrawW = Wimp+8
 1420UpdateW = Wimp+9
 1430GetR%   = Wimp+10
 1440GetW    = Wimp+11
 1450GetP    = Wimp+15
 1460Drag    = Wimp+16
 1470Screen  = Wimp+17
 1480CrMenu  = Wimp+20
 1490DcMenu  = Wimp+21
 1500SYS "OS_SWINumberFromString",,"OS_SpriteOp" TO spop%
 1510SYS "OS_SWINumberFromString",,"Wimp_SetColour" TO Col%
 1520SYS "OS_SWINumberFromString",,"Wimp_ForceRedraw" TO fred%
 1530SYS "OS_SWINumberFromString",,"Wimp_PollIdle" TO Poll%
 1540SYS "OS_SWINumberFromString",,"OS_ReadMonotonicTime" TO Time%
 1550SYS "OS_SWINumberFromString",,"OS_ReadModeVariable" TO RMV%
 1560ENDPROC
 1570 
 1580DEF PROCgetpointer
 1590SYS GetP,,q%
 1600mousex%=!q%:mousey%=q%!4:b%=q%!8:handle%=q%!12:icon%=q%!16:ob%=q%!20
 1610ENDPROC
 1620 
 1630DEF PROCerrorbox
 1640SYS Drag,,-1
 1650!buffer%=ERR:$(buffer%+4)=REPORT$+" at line "+STR$ERL+CHR$0
 1660SYS "Wimp_ReportError",buffer%,1,"FFT show "
 1670PROCfinish:END
 1680ENDPROC
 1690 
 1700DEF FNbuffer(L%)
 1710IFcurbuf%+L%>buffer%+maxbuf%THEN ERROR100,"Buffer space full"
 1720curbuf%+=L%
 1730=curbuf%-L%
 1740 
 1750DEF PROCgetmodeinfo
 1760IFysize%>128 M%=13 ELSE M%=21
 1770sar%?56=M%
 1780SYS"Wimp_ReadPixTrans",&100,sar%,"00",,,,factors%,pixtrans%
 1790SYS RMV%,MODE,3 TO,,X%:IFX%>15 THEN
 1800spx%=0
 1810ELSE
 1820SYS"ColourTrans_SelectTable",13,0,MODE,-1,pixtrans%
 1830spx%=pixtrans%
 1840ENDIF
 1850IFMODE=M% spt%=&222 ELSE spt%=&234
 1860ENDPROC
 1870 
 1880DEF PROCnudge
 1890q%=buffer%
 1900SYS Time% TO timeslip%
 1901IF sp%=0 AND sx%=1 THEN TD%=400 ELSE TD%=30
 1902IF sp%=nsp%-1 AND sx%=-1 THEN TD%=400
 1910IF timeslip%<timex%+TD% THEN ENDPROC
 1920timex%=timeslip%
 1930q%!4=0:q%!8=-512:q%!12=512:q%!16=0
 1940!q%=show%
 1950IF BIG% THEN DS%=0 ELSE DS%=128
 1960SYS UpdateW,,q% TO more%
 1970bx%=q%!4:by%=q%!16
 1980WHILE more%
 1990  SYS spop%,spt%,sar%,s%(sp%),bx%-DS%,by%-ysize%-DS%,,factors%,spx%
 2000  SYS GetR%,0,q% TO more%
 2010ENDWHILE
 2020sp%+=sx%
 2030IFsp%=nsp% THEN sx%=-1:sp%=nsp%-1
 2040IF sp%=-1 THEN sx%=1:sp%=0
 2050ENDPROC

� > !FFT.MShow
� taskid%4:$taskid%="TASK"
Dș "Wimp_Initialise",200,!taskid%,"Optical Transform" � version%
(+  `wbcol=&0:`tbcol=15:`sco=&3:`mbcol=&B
2,  `wfcol=&7:`tfcol=&7:`sci=&D:`tbcol2=&C
<	�vars
F
BIG%=�
P	DS%=0
Z
� q% &300
d 
nmaxbuf%=&400
x0� buffer% maxbuf%,endbuf% -1:curbuf%=buffer%
�� block 12
� 
�2ș "Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
�5� � ș "Wimp_CloseTemplate":�errordisplay(�,�$,�)
� ș Time% � timex%:timex%+=20
�� �errorbox
� 
�show%=�template("MIKE")
�ș "Wimp_CloseTemplate"
� 
�,A%=�"<Obey$Dir>.FFS_SGROW":sz%=�#A%:�#A%
�,� sar% 100+sz%,factors% 15,pixtrans% 255
�&!sar%=100+sz%:sar%!4=0:sp%=0:sx%=1
�ș spop%,&109,sar%
-ș spop%,&10A,sar%,"<Obey$Dir>.FFS_SGROW"

nsp%=sar%!4:� s%(nsp%)
">�A%=0�nsp%-1:ș spop%,256+24,sar%,�"00"+�A%,2) �,,s%(A%):�
,s%(nsp%)=s%(0)
6 
@�getmodeinfo
J 
T� � �errorbox
^)ș Drag,,-1:�getpointer:�popup(show%)
r�
|  ș Poll%,0,q%,timex% � A%
�
  Ȏ A% �
�  � 0 :�nudge
�  � 1 :�redraw_window(!q%)
�D  � 2 :�open_window(!q%,q%!4,q%!8,q%!12,q%!16,q%!20,q%!24,q%!28)
�  � 3 :�finish:�
�  � 17,18:�receive(q%)
�  �
�� �
� 
�� �receive(q%)
�Ȏ q%!16 �
�� 0:�finish:�
�� &400C1: �getmodeinfo
�
�
 
&� �template(a$)
0� c%
:Gș "Wimp_LoadTemplate",,q%,curbuf%,endbuf%,0,a$,0 � ,,curbuf%,,,,c%
D,� c%=0 � 1,"Template '"+a$+"' not found"
N4!q%=128:q%!4=-384:q%!8=384:q%!12=-128:ysize%=384
X(q%!40=0:q%!44=-512:q%!48=512:q%!52=0
b#ș "Wimp_CreateWindow",,q% � c%
l=c%
v 
�� �closeawindow(handle%)
��getw(handle%)
�xo%=x0%:yo%=y0%:open%=�
��close_window(handle%)
��
� 
�
� �finish
�ș "Wimp_CloseDown"
��
� 
�� �front(handle%)
��handle%=-1��
��getw(handle%)
6�open_window(handle%,x0%,y0%,x1%,y1%,scx%,scy%,-1)
�
 
 � �popup(handle%)
*�getw(handle%)
40xo%=mousex%-(x0%+x1%)/2:yo%=mousey%-(y1%+64)
>F�open_window(handle%,x0%+xo%,y0%+yo%,x1%+xo%,y1%+yo%,scx%,scy%,-1)
H�
R 
\� �reopen(handle%)
f�getw(handle%)
pF�open_window(handle%,xo%,yo%,x1%-x0%+xo%,y1%-y0%+yo%,scx%,scy%,-1)
z�
� 
�>� �open_window(handle%,x0%,y0%,x1%,y1%,scx%,scy%,bhandle%)
��handle%=-1��
�$� x1%-x0%> 400 � BIG%=� � BIG%=�
�timex%-=900
�q%!0=handle%:q%!28=bhandle%
�8q%!4=x0%:q%!8=y0%:q%!12=x1%:q%!16=y1%:ysize%=y1%-y0%
�q%!20=scx%:q%!24=scy%
�ș OpenW,,q%
��getmodeinfo
��
� 
�� �getw(handle%)
�!q%=handle%:ș GetW,,q%
+�info(q%+4):bhandle%=q%!28:flags%=q%!32
�
 
$� �info(q%)
.=x0%=!q%:y0%=q%!4:x1%=q%!8:y1%=q%!12:scx%=q%!16:scy%=q%!20
8bx%=x0%-scx%:by%=y1%-scy%
B�
L 
V*� �update(handle%,ux0%,uy0%,ux1%,uy1%)
`9!q%=handle%:q%!4=ux0%:q%!8=uy0%:q%!12=ux1%:q%!16=uy1%
j&ș UpdateW,,q% � more%:�info(q%+4)
t�
~ 
�*� �invalidate(handle%,x0%,y0%,x1%,y1%)
�%ș Screen,handle%,x0%,y0%,x1%,y1%
��
� 
�� �redraw_window(handle%)
��handle%=show% �
�!q%=handle%
�ș RedrawW,,q% � more%
��info(q%+4)
�ȕ more%
�F  ș spop%,spt%,sar%,s%(sp%),bx%-DS%,by%-ysize%-DS%,,factors%,spx%
�  ș GetR%,0,q% � more%
�

�
�
 
(� �close_window(handle%)
2!q%=handle%:ș CloseW,,q%
<�
F 
P� �vars
ZWimp    = (1<<18) + (3<<6)
dCreateW = Wimp+1
nOpenW   = Wimp+5
xCloseW  = Wimp+6
�RedrawW = Wimp+8
�UpdateW = Wimp+9
�GetR%   = Wimp+10
�GetW    = Wimp+11
�GetP    = Wimp+15
�Drag    = Wimp+16
�Screen  = Wimp+17
�CrMenu  = Wimp+20
�DcMenu  = Wimp+21
�6ș "OS_SWINumberFromString",,"OS_SpriteOp" � spop%
�8ș "OS_SWINumberFromString",,"Wimp_SetColour" � Col%
�;ș "OS_SWINumberFromString",,"Wimp_ForceRedraw" � fred%
�8ș "OS_SWINumberFromString",,"Wimp_PollIdle" � Poll%
?ș "OS_SWINumberFromString",,"OS_ReadMonotonicTime" � Time%
=ș "OS_SWINumberFromString",,"OS_ReadModeVariable" � RMV%
�
" 
,� �getpointer
6ș GetP,,q%
@Hmousex%=!q%:mousey%=q%!4:b%=q%!8:handle%=q%!12:icon%=q%!16:ob%=q%!20
J�
T 
^� �errorbox
hș Drag,,-1
r0!buffer%=�:$(buffer%+4)=�$+" at line "+Þ+�0
|/ș "Wimp_ReportError",buffer%,1,"FFT show "
�
�finish:�
��
� 
�� �buffer(L%)
�9�curbuf%+L%>buffer%+maxbuf%� �100,"Buffer space full"
�curbuf%+=L%
�=curbuf%-L%
� 
�� �getmodeinfo
��ysize%>128 M%=13 � M%=21
�sar%?56=M%
�>ș"Wimp_ReadPixTrans",&100,sar%,"00",,,,factors%,pixtrans%
�ș RMV%,�,3 �,,X%:�X%>15 �

spx%=0
�
3ș"ColourTrans_SelectTable",13,0,�,-1,pixtrans%
&spx%=pixtrans%
0�
:��=M% spt%=&222 � spt%=&234
D�
N 
X� �nudge
bq%=buffer%
lș Time% � timeslip%
m&� sp%=0 � sx%=1 � TD%=400 � TD%=30
n#� sp%=nsp%-1 � sx%=-1 � TD%=400
v� timeslip%<timex%+TD% � �
�timex%=timeslip%
�&q%!4=0:q%!8=-512:q%!12=512:q%!16=0
�
!q%=show%
�� BIG% � DS%=0 � DS%=128
�ș UpdateW,,q% � more%
�bx%=q%!4:by%=q%!16
�ȕ more%
�F  ș spop%,spt%,sar%,s%(sp%),bx%-DS%,by%-ysize%-DS%,,factors%,spx%
�  ș GetR%,0,q% � more%
��
�sp%+=sx%
�!�sp%=nsp% � sx%=-1:sp%=nsp%-1
�� sp%=-1 � sx%=1:sp%=0
�
�
00000000  0d 00 0a 12 f4 20 3e 20  21 46 46 54 2e 4d 53 68  |..... > !FFT.MSh|
00000010  6f 77 0d 00 14 1e de 20  74 61 73 6b 69 64 25 34  |ow..... taskid%4|
00000020  3a 24 74 61 73 6b 69 64  25 3d 22 54 41 53 4b 22  |:$taskid%="TASK"|
00000030  0d 00 1e 44 c8 99 20 22  57 69 6d 70 5f 49 6e 69  |...D.. "Wimp_Ini|
00000040  74 69 61 6c 69 73 65 22  2c 32 30 30 2c 21 74 61  |tialise",200,!ta|
00000050  73 6b 69 64 25 2c 22 4f  70 74 69 63 61 6c 20 54  |skid%,"Optical T|
00000060  72 61 6e 73 66 6f 72 6d  22 20 b8 20 76 65 72 73  |ransform" . vers|
00000070  69 6f 6e 25 0d 00 28 2b  20 20 60 77 62 63 6f 6c  |ion%..(+  `wbcol|
00000080  3d 26 30 3a 60 74 62 63  6f 6c 3d 31 35 3a 60 73  |=&0:`tbcol=15:`s|
00000090  63 6f 3d 26 33 3a 60 6d  62 63 6f 6c 3d 26 42 0d  |co=&3:`mbcol=&B.|
000000a0  00 32 2c 20 20 60 77 66  63 6f 6c 3d 26 37 3a 60  |.2,  `wfcol=&7:`|
000000b0  74 66 63 6f 6c 3d 26 37  3a 60 73 63 69 3d 26 44  |tfcol=&7:`sci=&D|
000000c0  3a 60 74 62 63 6f 6c 32  3d 26 43 0d 00 3c 09 f2  |:`tbcol2=&C..<..|
000000d0  76 61 72 73 0d 00 46 0a  42 49 47 25 3d b9 0d 00  |vars..F.BIG%=...|
000000e0  50 09 44 53 25 3d 30 0d  00 5a 0d de 20 71 25 20  |P.DS%=0..Z.. q% |
000000f0  26 33 30 30 0d 00 64 05  20 0d 00 6e 10 6d 61 78  |&300..d. ..n.max|
00000100  62 75 66 25 3d 26 34 30  30 0d 00 78 30 de 20 62  |buf%=&400..x0. b|
00000110  75 66 66 65 72 25 20 6d  61 78 62 75 66 25 2c 65  |uffer% maxbuf%,e|
00000120  6e 64 62 75 66 25 20 2d  31 3a 63 75 72 62 75 66  |ndbuf% -1:curbuf|
00000130  25 3d 62 75 66 66 65 72  25 0d 00 82 0e de 20 62  |%=buffer%..... b|
00000140  6c 6f 63 6b 20 31 32 0d  00 8c 05 20 0d 00 96 32  |lock 12.... ...2|
00000150  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 54 65 6d  |.. "Wimp_OpenTem|
00000160  70 6c 61 74 65 22 2c 2c  22 3c 4f 62 65 79 24 44  |plate",,"<Obey$D|
00000170  69 72 3e 2e 54 65 6d 70  6c 61 74 65 73 22 0d 00  |ir>.Templates"..|
00000180  a0 35 ee 20 85 20 c8 99  20 22 57 69 6d 70 5f 43  |.5. . .. "Wimp_C|
00000190  6c 6f 73 65 54 65 6d 70  6c 61 74 65 22 3a f2 65  |loseTemplate":.e|
000001a0  72 72 6f 72 64 69 73 70  6c 61 79 28 9f 2c f6 24  |rrordisplay(.,.$|
000001b0  2c 9e 29 0d 00 a1 20 c8  99 20 54 69 6d 65 25 20  |,.)... .. Time% |
000001c0  b8 20 74 69 6d 65 78 25  3a 74 69 6d 65 78 25 2b  |. timex%:timex%+|
000001d0  3d 32 30 0d 00 aa 10 ee  85 20 f2 65 72 72 6f 72  |=20...... .error|
000001e0  62 6f 78 0d 00 b4 05 20  0d 00 be 1b 73 68 6f 77  |box.... ....show|
000001f0  25 3d a4 74 65 6d 70 6c  61 74 65 28 22 4d 49 4b  |%=.template("MIK|
00000200  45 22 29 0d 00 c8 1b c8  99 20 22 57 69 6d 70 5f  |E")...... "Wimp_|
00000210  43 6c 6f 73 65 54 65 6d  70 6c 61 74 65 22 0d 00  |CloseTemplate"..|
00000220  d2 05 20 0d 00 dc 2c 41  25 3d 8e 22 3c 4f 62 65  |.. ...,A%=."<Obe|
00000230  79 24 44 69 72 3e 2e 46  46 53 5f 53 47 52 4f 57  |y$Dir>.FFS_SGROW|
00000240  22 3a 73 7a 25 3d a2 23  41 25 3a d9 23 41 25 0d  |":sz%=.#A%:.#A%.|
00000250  00 e6 2c de 20 73 61 72  25 20 31 30 30 2b 73 7a  |..,. sar% 100+sz|
00000260  25 2c 66 61 63 74 6f 72  73 25 20 31 35 2c 70 69  |%,factors% 15,pi|
00000270  78 74 72 61 6e 73 25 20  32 35 35 0d 00 f0 26 21  |xtrans% 255...&!|
00000280  73 61 72 25 3d 31 30 30  2b 73 7a 25 3a 73 61 72  |sar%=100+sz%:sar|
00000290  25 21 34 3d 30 3a 73 70  25 3d 30 3a 73 78 25 3d  |%!4=0:sp%=0:sx%=|
000002a0  31 0d 00 fa 16 c8 99 20  73 70 6f 70 25 2c 26 31  |1...... spop%,&1|
000002b0  30 39 2c 73 61 72 25 0d  01 04 2d c8 99 20 73 70  |09,sar%...-.. sp|
000002c0  6f 70 25 2c 26 31 30 41  2c 73 61 72 25 2c 22 3c  |op%,&10A,sar%,"<|
000002d0  4f 62 65 79 24 44 69 72  3e 2e 46 46 53 5f 53 47  |Obey$Dir>.FFS_SG|
000002e0  52 4f 57 22 0d 01 0e 04  0d 01 18 1a 6e 73 70 25  |ROW"........nsp%|
000002f0  3d 73 61 72 25 21 34 3a  de 20 73 25 28 6e 73 70  |=sar%!4:. s%(nsp|
00000300  25 29 0d 01 22 3e e3 41  25 3d 30 b8 6e 73 70 25  |%)..">.A%=0.nsp%|
00000310  2d 31 3a c8 99 20 73 70  6f 70 25 2c 32 35 36 2b  |-1:.. spop%,256+|
00000320  32 34 2c 73 61 72 25 2c  c2 22 30 30 22 2b c3 41  |24,sar%,."00"+.A|
00000330  25 2c 32 29 20 b8 2c 2c  73 25 28 41 25 29 3a ed  |%,2) .,,s%(A%):.|
00000340  0d 01 2c 12 73 25 28 6e  73 70 25 29 3d 73 25 28  |..,.s%(nsp%)=s%(|
00000350  30 29 0d 01 36 05 20 0d  01 40 10 f2 67 65 74 6d  |0)..6. ..@..getm|
00000360  6f 64 65 69 6e 66 6f 0d  01 4a 05 20 0d 01 54 11  |odeinfo..J. ..T.|
00000370  ee 20 85 20 f2 65 72 72  6f 72 62 6f 78 0d 01 5e  |. . .errorbox..^|
00000380  29 c8 99 20 44 72 61 67  2c 2c 2d 31 3a f2 67 65  |).. Drag,,-1:.ge|
00000390  74 70 6f 69 6e 74 65 72  3a f2 70 6f 70 75 70 28  |tpointer:.popup(|
000003a0  73 68 6f 77 25 29 0d 01  72 05 f5 0d 01 7c 1f 20  |show%)..r....|. |
000003b0  20 c8 99 20 50 6f 6c 6c  25 2c 30 2c 71 25 2c 74  | .. Poll%,0,q%,t|
000003c0  69 6d 65 78 25 20 b8 20  41 25 0d 01 86 0d 20 20  |imex% . A%....  |
000003d0  c8 8e 20 41 25 20 ca 0d  01 90 11 20 20 c9 20 30  |.. A% .....  . 0|
000003e0  20 3a f2 6e 75 64 67 65  0d 01 9a 1e 20 20 c9 20  | :.nudge....  . |
000003f0  31 20 3a f2 72 65 64 72  61 77 5f 77 69 6e 64 6f  |1 :.redraw_windo|
00000400  77 28 21 71 25 29 0d 01  a4 44 20 20 c9 20 32 20  |w(!q%)...D  . 2 |
00000410  3a f2 6f 70 65 6e 5f 77  69 6e 64 6f 77 28 21 71  |:.open_window(!q|
00000420  25 2c 71 25 21 34 2c 71  25 21 38 2c 71 25 21 31  |%,q%!4,q%!8,q%!1|
00000430  32 2c 71 25 21 31 36 2c  71 25 21 32 30 2c 71 25  |2,q%!16,q%!20,q%|
00000440  21 32 34 2c 71 25 21 32  38 29 0d 01 ae 14 20 20  |!24,q%!28)....  |
00000450  c9 20 33 20 3a f2 66 69  6e 69 73 68 3a e0 0d 01  |. 3 :.finish:...|
00000460  b8 1a 20 20 c9 20 31 37  2c 31 38 3a f2 72 65 63  |..  . 17,18:.rec|
00000470  65 69 76 65 28 71 25 29  0d 01 c2 07 20 20 cb 0d  |eive(q%)....  ..|
00000480  01 cc 07 fd 20 a3 0d 01  d6 05 20 0d 01 e0 12 dd  |.... ..... .....|
00000490  20 f2 72 65 63 65 69 76  65 28 71 25 29 0d 01 ea  | .receive(q%)...|
000004a0  0e c8 8e 20 71 25 21 31  36 20 ca 0d 01 f4 11 c9  |... q%!16 ......|
000004b0  20 30 3a f2 66 69 6e 69  73 68 3a e0 0d 01 fe 1a  | 0:.finish:.....|
000004c0  c9 20 26 34 30 30 43 31  3a 20 f2 67 65 74 6d 6f  |. &400C1: .getmo|
000004d0  64 65 69 6e 66 6f 0d 02  08 05 cb 0d 02 12 05 e1  |deinfo..........|
000004e0  0d 02 1c 05 20 0d 02 26  13 dd 20 a4 74 65 6d 70  |.... ..&.. .temp|
000004f0  6c 61 74 65 28 61 24 29  0d 02 30 08 ea 20 63 25  |late(a$)..0.. c%|
00000500  0d 02 3a 47 c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |..:G.. "Wimp_Loa|
00000510  64 54 65 6d 70 6c 61 74  65 22 2c 2c 71 25 2c 63  |dTemplate",,q%,c|
00000520  75 72 62 75 66 25 2c 65  6e 64 62 75 66 25 2c 30  |urbuf%,endbuf%,0|
00000530  2c 61 24 2c 30 20 b8 20  2c 2c 63 75 72 62 75 66  |,a$,0 . ,,curbuf|
00000540  25 2c 2c 2c 2c 63 25 0d  02 44 2c e7 20 63 25 3d  |%,,,,c%..D,. c%=|
00000550  30 20 85 20 31 2c 22 54  65 6d 70 6c 61 74 65 20  |0 . 1,"Template |
00000560  27 22 2b 61 24 2b 22 27  20 6e 6f 74 20 66 6f 75  |'"+a$+"' not fou|
00000570  6e 64 22 0d 02 4e 34 21  71 25 3d 31 32 38 3a 71  |nd"..N4!q%=128:q|
00000580  25 21 34 3d 2d 33 38 34  3a 71 25 21 38 3d 33 38  |%!4=-384:q%!8=38|
00000590  34 3a 71 25 21 31 32 3d  2d 31 32 38 3a 79 73 69  |4:q%!12=-128:ysi|
000005a0  7a 65 25 3d 33 38 34 0d  02 58 28 71 25 21 34 30  |ze%=384..X(q%!40|
000005b0  3d 30 3a 71 25 21 34 34  3d 2d 35 31 32 3a 71 25  |=0:q%!44=-512:q%|
000005c0  21 34 38 3d 35 31 32 3a  71 25 21 35 32 3d 30 0d  |!48=512:q%!52=0.|
000005d0  02 62 23 c8 99 20 22 57  69 6d 70 5f 43 72 65 61  |.b#.. "Wimp_Crea|
000005e0  74 65 57 69 6e 64 6f 77  22 2c 2c 71 25 20 b8 20  |teWindow",,q% . |
000005f0  63 25 0d 02 6c 07 3d 63  25 0d 02 76 05 20 0d 02  |c%..l.=c%..v. ..|
00000600  80 1c dd 20 f2 63 6c 6f  73 65 61 77 69 6e 64 6f  |... .closeawindo|
00000610  77 28 68 61 6e 64 6c 65  25 29 0d 02 8a 12 f2 67  |w(handle%).....g|
00000620  65 74 77 28 68 61 6e 64  6c 65 25 29 0d 02 94 1b  |etw(handle%)....|
00000630  78 6f 25 3d 78 30 25 3a  79 6f 25 3d 79 30 25 3a  |xo%=x0%:yo%=y0%:|
00000640  6f 70 65 6e 25 3d a3 0d  02 9e 1a f2 63 6c 6f 73  |open%=......clos|
00000650  65 5f 77 69 6e 64 6f 77  28 68 61 6e 64 6c 65 25  |e_window(handle%|
00000660  29 0d 02 a8 05 e1 0d 02  b2 05 20 0d 02 bc 0d dd  |)......... .....|
00000670  20 f2 66 69 6e 69 73 68  0d 02 c6 17 c8 99 20 22  | .finish...... "|
00000680  57 69 6d 70 5f 43 6c 6f  73 65 44 6f 77 6e 22 0d  |Wimp_CloseDown".|
00000690  02 d0 05 e1 0d 02 da 05  20 0d 02 e4 15 dd 20 f2  |........ ..... .|
000006a0  66 72 6f 6e 74 28 68 61  6e 64 6c 65 25 29 0d 02  |front(handle%)..|
000006b0  ee 11 e7 68 61 6e 64 6c  65 25 3d 2d 31 8c e1 0d  |...handle%=-1...|
000006c0  02 f8 12 f2 67 65 74 77  28 68 61 6e 64 6c 65 25  |....getw(handle%|
000006d0  29 0d 03 02 36 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |)...6.open_windo|
000006e0  77 28 68 61 6e 64 6c 65  25 2c 78 30 25 2c 79 30  |w(handle%,x0%,y0|
000006f0  25 2c 78 31 25 2c 79 31  25 2c 73 63 78 25 2c 73  |%,x1%,y1%,scx%,s|
00000700  63 79 25 2c 2d 31 29 0d  03 0c 05 e1 0d 03 16 05  |cy%,-1).........|
00000710  20 0d 03 20 15 dd 20 f2  70 6f 70 75 70 28 68 61  | .. .. .popup(ha|
00000720  6e 64 6c 65 25 29 0d 03  2a 12 f2 67 65 74 77 28  |ndle%)..*..getw(|
00000730  68 61 6e 64 6c 65 25 29  0d 03 34 30 78 6f 25 3d  |handle%)..40xo%=|
00000740  6d 6f 75 73 65 78 25 2d  28 78 30 25 2b 78 31 25  |mousex%-(x0%+x1%|
00000750  29 2f 32 3a 79 6f 25 3d  6d 6f 75 73 65 79 25 2d  |)/2:yo%=mousey%-|
00000760  28 79 31 25 2b 36 34 29  0d 03 3e 46 f2 6f 70 65  |(y1%+64)..>F.ope|
00000770  6e 5f 77 69 6e 64 6f 77  28 68 61 6e 64 6c 65 25  |n_window(handle%|
00000780  2c 78 30 25 2b 78 6f 25  2c 79 30 25 2b 79 6f 25  |,x0%+xo%,y0%+yo%|
00000790  2c 78 31 25 2b 78 6f 25  2c 79 31 25 2b 79 6f 25  |,x1%+xo%,y1%+yo%|
000007a0  2c 73 63 78 25 2c 73 63  79 25 2c 2d 31 29 0d 03  |,scx%,scy%,-1)..|
000007b0  48 05 e1 0d 03 52 05 20  0d 03 5c 16 dd 20 f2 72  |H....R. ..\.. .r|
000007c0  65 6f 70 65 6e 28 68 61  6e 64 6c 65 25 29 0d 03  |eopen(handle%)..|
000007d0  66 12 f2 67 65 74 77 28  68 61 6e 64 6c 65 25 29  |f..getw(handle%)|
000007e0  0d 03 70 46 f2 6f 70 65  6e 5f 77 69 6e 64 6f 77  |..pF.open_window|
000007f0  28 68 61 6e 64 6c 65 25  2c 78 6f 25 2c 79 6f 25  |(handle%,xo%,yo%|
00000800  2c 78 31 25 2d 78 30 25  2b 78 6f 25 2c 79 31 25  |,x1%-x0%+xo%,y1%|
00000810  2d 79 30 25 2b 79 6f 25  2c 73 63 78 25 2c 73 63  |-y0%+yo%,scx%,sc|
00000820  79 25 2c 2d 31 29 0d 03  7a 05 e1 0d 03 84 05 20  |y%,-1)..z...... |
00000830  0d 03 8e 3e dd 20 f2 6f  70 65 6e 5f 77 69 6e 64  |...>. .open_wind|
00000840  6f 77 28 68 61 6e 64 6c  65 25 2c 78 30 25 2c 79  |ow(handle%,x0%,y|
00000850  30 25 2c 78 31 25 2c 79  31 25 2c 73 63 78 25 2c  |0%,x1%,y1%,scx%,|
00000860  73 63 79 25 2c 62 68 61  6e 64 6c 65 25 29 0d 03  |scy%,bhandle%)..|
00000870  98 11 e7 68 61 6e 64 6c  65 25 3d 2d 31 8c e1 0d  |...handle%=-1...|
00000880  03 a2 24 e7 20 78 31 25  2d 78 30 25 3e 20 34 30  |..$. x1%-x0%> 40|
00000890  30 20 8c 20 42 49 47 25  3d b9 20 8b 20 42 49 47  |0 . BIG%=. . BIG|
000008a0  25 3d a3 0d 03 a3 0f 74  69 6d 65 78 25 2d 3d 39  |%=.....timex%-=9|
000008b0  30 30 0d 03 ac 1f 71 25  21 30 3d 68 61 6e 64 6c  |00....q%!0=handl|
000008c0  65 25 3a 71 25 21 32 38  3d 62 68 61 6e 64 6c 65  |e%:q%!28=bhandle|
000008d0  25 0d 03 b6 38 71 25 21  34 3d 78 30 25 3a 71 25  |%...8q%!4=x0%:q%|
000008e0  21 38 3d 79 30 25 3a 71  25 21 31 32 3d 78 31 25  |!8=y0%:q%!12=x1%|
000008f0  3a 71 25 21 31 36 3d 79  31 25 3a 79 73 69 7a 65  |:q%!16=y1%:ysize|
00000900  25 3d 79 31 25 2d 79 30  25 0d 03 c0 19 71 25 21  |%=y1%-y0%....q%!|
00000910  32 30 3d 73 63 78 25 3a  71 25 21 32 34 3d 73 63  |20=scx%:q%!24=sc|
00000920  79 25 0d 03 ca 10 c8 99  20 4f 70 65 6e 57 2c 2c  |y%...... OpenW,,|
00000930  71 25 0d 03 d4 10 f2 67  65 74 6d 6f 64 65 69 6e  |q%.....getmodein|
00000940  66 6f 0d 03 de 05 e1 0d  03 e8 05 20 0d 03 f2 14  |fo......... ....|
00000950  dd 20 f2 67 65 74 77 28  68 61 6e 64 6c 65 25 29  |. .getw(handle%)|
00000960  0d 03 fc 1b 21 71 25 3d  68 61 6e 64 6c 65 25 3a  |....!q%=handle%:|
00000970  c8 99 20 47 65 74 57 2c  2c 71 25 0d 04 06 2b f2  |.. GetW,,q%...+.|
00000980  69 6e 66 6f 28 71 25 2b  34 29 3a 62 68 61 6e 64  |info(q%+4):bhand|
00000990  6c 65 25 3d 71 25 21 32  38 3a 66 6c 61 67 73 25  |le%=q%!28:flags%|
000009a0  3d 71 25 21 33 32 0d 04  10 05 e1 0d 04 1a 05 20  |=q%!32......... |
000009b0  0d 04 24 0f dd 20 f2 69  6e 66 6f 28 71 25 29 0d  |..$.. .info(q%).|
000009c0  04 2e 3d 78 30 25 3d 21  71 25 3a 79 30 25 3d 71  |..=x0%=!q%:y0%=q|
000009d0  25 21 34 3a 78 31 25 3d  71 25 21 38 3a 79 31 25  |%!4:x1%=q%!8:y1%|
000009e0  3d 71 25 21 31 32 3a 73  63 78 25 3d 71 25 21 31  |=q%!12:scx%=q%!1|
000009f0  36 3a 73 63 79 25 3d 71  25 21 32 30 0d 04 38 1d  |6:scy%=q%!20..8.|
00000a00  62 78 25 3d 78 30 25 2d  73 63 78 25 3a 62 79 25  |bx%=x0%-scx%:by%|
00000a10  3d 79 31 25 2d 73 63 79  25 0d 04 42 05 e1 0d 04  |=y1%-scy%..B....|
00000a20  4c 05 20 0d 04 56 2a dd  20 f2 75 70 64 61 74 65  |L. ..V*. .update|
00000a30  28 68 61 6e 64 6c 65 25  2c 75 78 30 25 2c 75 79  |(handle%,ux0%,uy|
00000a40  30 25 2c 75 78 31 25 2c  75 79 31 25 29 0d 04 60  |0%,ux1%,uy1%)..`|
00000a50  39 21 71 25 3d 68 61 6e  64 6c 65 25 3a 71 25 21  |9!q%=handle%:q%!|
00000a60  34 3d 75 78 30 25 3a 71  25 21 38 3d 75 79 30 25  |4=ux0%:q%!8=uy0%|
00000a70  3a 71 25 21 31 32 3d 75  78 31 25 3a 71 25 21 31  |:q%!12=ux1%:q%!1|
00000a80  36 3d 75 79 31 25 0d 04  6a 26 c8 99 20 55 70 64  |6=uy1%..j&.. Upd|
00000a90  61 74 65 57 2c 2c 71 25  20 b8 20 6d 6f 72 65 25  |ateW,,q% . more%|
00000aa0  3a f2 69 6e 66 6f 28 71  25 2b 34 29 0d 04 74 05  |:.info(q%+4)..t.|
00000ab0  e1 0d 04 7e 05 20 0d 04  88 2a dd 20 f2 69 6e 76  |...~. ...*. .inv|
00000ac0  61 6c 69 64 61 74 65 28  68 61 6e 64 6c 65 25 2c  |alidate(handle%,|
00000ad0  78 30 25 2c 79 30 25 2c  78 31 25 2c 79 31 25 29  |x0%,y0%,x1%,y1%)|
00000ae0  0d 04 92 25 c8 99 20 53  63 72 65 65 6e 2c 68 61  |...%.. Screen,ha|
00000af0  6e 64 6c 65 25 2c 78 30  25 2c 79 30 25 2c 78 31  |ndle%,x0%,y0%,x1|
00000b00  25 2c 79 31 25 0d 04 9c  05 e1 0d 04 a6 05 20 0d  |%,y1%......... .|
00000b10  04 b0 1d dd 20 f2 72 65  64 72 61 77 5f 77 69 6e  |.... .redraw_win|
00000b20  64 6f 77 28 68 61 6e 64  6c 65 25 29 0d 04 ba 14  |dow(handle%)....|
00000b30  e7 68 61 6e 64 6c 65 25  3d 73 68 6f 77 25 20 8c  |.handle%=show% .|
00000b40  0d 04 c4 0f 21 71 25 3d  68 61 6e 64 6c 65 25 0d  |....!q%=handle%.|
00000b50  04 ce 1a c8 99 20 52 65  64 72 61 77 57 2c 2c 71  |..... RedrawW,,q|
00000b60  25 20 b8 20 6d 6f 72 65  25 0d 04 d8 0f f2 69 6e  |% . more%.....in|
00000b70  66 6f 28 71 25 2b 34 29  0d 04 e2 0c c8 95 20 6d  |fo(q%+4)...... m|
00000b80  6f 72 65 25 0d 04 ec 46  20 20 c8 99 20 73 70 6f  |ore%...F  .. spo|
00000b90  70 25 2c 73 70 74 25 2c  73 61 72 25 2c 73 25 28  |p%,spt%,sar%,s%(|
00000ba0  73 70 25 29 2c 62 78 25  2d 44 53 25 2c 62 79 25  |sp%),bx%-DS%,by%|
00000bb0  2d 79 73 69 7a 65 25 2d  44 53 25 2c 2c 66 61 63  |-ysize%-DS%,,fac|
00000bc0  74 6f 72 73 25 2c 73 70  78 25 0d 04 f6 1b 20 20  |tors%,spx%....  |
00000bd0  c8 99 20 47 65 74 52 25  2c 30 2c 71 25 20 b8 20  |.. GetR%,0,q% . |
00000be0  6d 6f 72 65 25 0d 05 00  05 ce 0d 05 0a 05 cd 0d  |more%...........|
00000bf0  05 14 05 e1 0d 05 1e 05  20 0d 05 28 1c dd 20 f2  |........ ..(.. .|
00000c00  63 6c 6f 73 65 5f 77 69  6e 64 6f 77 28 68 61 6e  |close_window(han|
00000c10  64 6c 65 25 29 0d 05 32  1d 21 71 25 3d 68 61 6e  |dle%)..2.!q%=han|
00000c20  64 6c 65 25 3a c8 99 20  43 6c 6f 73 65 57 2c 2c  |dle%:.. CloseW,,|
00000c30  71 25 0d 05 3c 05 e1 0d  05 46 05 20 0d 05 50 0b  |q%..<....F. ..P.|
00000c40  dd 20 f2 76 61 72 73 0d  05 5a 1e 57 69 6d 70 20  |. .vars..Z.Wimp |
00000c50  20 20 20 3d 20 28 31 3c  3c 31 38 29 20 2b 20 28  |   = (1<<18) + (|
00000c60  33 3c 3c 36 29 0d 05 64  14 43 72 65 61 74 65 57  |3<<6)..d.CreateW|
00000c70  20 3d 20 57 69 6d 70 2b  31 0d 05 6e 14 4f 70 65  | = Wimp+1..n.Ope|
00000c80  6e 57 20 20 20 3d 20 57  69 6d 70 2b 35 0d 05 78  |nW   = Wimp+5..x|
00000c90  14 43 6c 6f 73 65 57 20  20 3d 20 57 69 6d 70 2b  |.CloseW  = Wimp+|
00000ca0  36 0d 05 82 14 52 65 64  72 61 77 57 20 3d 20 57  |6....RedrawW = W|
00000cb0  69 6d 70 2b 38 0d 05 8c  14 55 70 64 61 74 65 57  |imp+8....UpdateW|
00000cc0  20 3d 20 57 69 6d 70 2b  39 0d 05 96 15 47 65 74  | = Wimp+9....Get|
00000cd0  52 25 20 20 20 3d 20 57  69 6d 70 2b 31 30 0d 05  |R%   = Wimp+10..|
00000ce0  a0 15 47 65 74 57 20 20  20 20 3d 20 57 69 6d 70  |..GetW    = Wimp|
00000cf0  2b 31 31 0d 05 aa 15 47  65 74 50 20 20 20 20 3d  |+11....GetP    =|
00000d00  20 57 69 6d 70 2b 31 35  0d 05 b4 15 44 72 61 67  | Wimp+15....Drag|
00000d10  20 20 20 20 3d 20 57 69  6d 70 2b 31 36 0d 05 be  |    = Wimp+16...|
00000d20  15 53 63 72 65 65 6e 20  20 3d 20 57 69 6d 70 2b  |.Screen  = Wimp+|
00000d30  31 37 0d 05 c8 15 43 72  4d 65 6e 75 20 20 3d 20  |17....CrMenu  = |
00000d40  57 69 6d 70 2b 32 30 0d  05 d2 15 44 63 4d 65 6e  |Wimp+20....DcMen|
00000d50  75 20 20 3d 20 57 69 6d  70 2b 32 31 0d 05 dc 36  |u  = Wimp+21...6|
00000d60  c8 99 20 22 4f 53 5f 53  57 49 4e 75 6d 62 65 72  |.. "OS_SWINumber|
00000d70  46 72 6f 6d 53 74 72 69  6e 67 22 2c 2c 22 4f 53  |FromString",,"OS|
00000d80  5f 53 70 72 69 74 65 4f  70 22 20 b8 20 73 70 6f  |_SpriteOp" . spo|
00000d90  70 25 0d 05 e6 38 c8 99  20 22 4f 53 5f 53 57 49  |p%...8.. "OS_SWI|
00000da0  4e 75 6d 62 65 72 46 72  6f 6d 53 74 72 69 6e 67  |NumberFromString|
00000db0  22 2c 2c 22 57 69 6d 70  5f 53 65 74 43 6f 6c 6f  |",,"Wimp_SetColo|
00000dc0  75 72 22 20 b8 20 43 6f  6c 25 0d 05 f0 3b c8 99  |ur" . Col%...;..|
00000dd0  20 22 4f 53 5f 53 57 49  4e 75 6d 62 65 72 46 72  | "OS_SWINumberFr|
00000de0  6f 6d 53 74 72 69 6e 67  22 2c 2c 22 57 69 6d 70  |omString",,"Wimp|
00000df0  5f 46 6f 72 63 65 52 65  64 72 61 77 22 20 b8 20  |_ForceRedraw" . |
00000e00  66 72 65 64 25 0d 05 fa  38 c8 99 20 22 4f 53 5f  |fred%...8.. "OS_|
00000e10  53 57 49 4e 75 6d 62 65  72 46 72 6f 6d 53 74 72  |SWINumberFromStr|
00000e20  69 6e 67 22 2c 2c 22 57  69 6d 70 5f 50 6f 6c 6c  |ing",,"Wimp_Poll|
00000e30  49 64 6c 65 22 20 b8 20  50 6f 6c 6c 25 0d 06 04  |Idle" . Poll%...|
00000e40  3f c8 99 20 22 4f 53 5f  53 57 49 4e 75 6d 62 65  |?.. "OS_SWINumbe|
00000e50  72 46 72 6f 6d 53 74 72  69 6e 67 22 2c 2c 22 4f  |rFromString",,"O|
00000e60  53 5f 52 65 61 64 4d 6f  6e 6f 74 6f 6e 69 63 54  |S_ReadMonotonicT|
00000e70  69 6d 65 22 20 b8 20 54  69 6d 65 25 0d 06 0e 3d  |ime" . Time%...=|
00000e80  c8 99 20 22 4f 53 5f 53  57 49 4e 75 6d 62 65 72  |.. "OS_SWINumber|
00000e90  46 72 6f 6d 53 74 72 69  6e 67 22 2c 2c 22 4f 53  |FromString",,"OS|
00000ea0  5f 52 65 61 64 4d 6f 64  65 56 61 72 69 61 62 6c  |_ReadModeVariabl|
00000eb0  65 22 20 b8 20 52 4d 56  25 0d 06 18 05 e1 0d 06  |e" . RMV%.......|
00000ec0  22 05 20 0d 06 2c 11 dd  20 f2 67 65 74 70 6f 69  |". ..,.. .getpoi|
00000ed0  6e 74 65 72 0d 06 36 0f  c8 99 20 47 65 74 50 2c  |nter..6... GetP,|
00000ee0  2c 71 25 0d 06 40 48 6d  6f 75 73 65 78 25 3d 21  |,q%..@Hmousex%=!|
00000ef0  71 25 3a 6d 6f 75 73 65  79 25 3d 71 25 21 34 3a  |q%:mousey%=q%!4:|
00000f00  62 25 3d 71 25 21 38 3a  68 61 6e 64 6c 65 25 3d  |b%=q%!8:handle%=|
00000f10  71 25 21 31 32 3a 69 63  6f 6e 25 3d 71 25 21 31  |q%!12:icon%=q%!1|
00000f20  36 3a 6f 62 25 3d 71 25  21 32 30 0d 06 4a 05 e1  |6:ob%=q%!20..J..|
00000f30  0d 06 54 05 20 0d 06 5e  0f dd 20 f2 65 72 72 6f  |..T. ..^.. .erro|
00000f40  72 62 6f 78 0d 06 68 0f  c8 99 20 44 72 61 67 2c  |rbox..h... Drag,|
00000f50  2c 2d 31 0d 06 72 30 21  62 75 66 66 65 72 25 3d  |,-1..r0!buffer%=|
00000f60  9f 3a 24 28 62 75 66 66  65 72 25 2b 34 29 3d f6  |.:$(buffer%+4)=.|
00000f70  24 2b 22 20 61 74 20 6c  69 6e 65 20 22 2b c3 9e  |$+" at line "+..|
00000f80  2b bd 30 0d 06 7c 2f c8  99 20 22 57 69 6d 70 5f  |+.0..|/.. "Wimp_|
00000f90  52 65 70 6f 72 74 45 72  72 6f 72 22 2c 62 75 66  |ReportError",buf|
00000fa0  66 65 72 25 2c 31 2c 22  46 46 54 20 73 68 6f 77  |fer%,1,"FFT show|
00000fb0  20 22 0d 06 86 0d f2 66  69 6e 69 73 68 3a e0 0d  | ".....finish:..|
00000fc0  06 90 05 e1 0d 06 9a 05  20 0d 06 a4 11 dd 20 a4  |........ ..... .|
00000fd0  62 75 66 66 65 72 28 4c  25 29 0d 06 ae 39 e7 63  |buffer(L%)...9.c|
00000fe0  75 72 62 75 66 25 2b 4c  25 3e 62 75 66 66 65 72  |urbuf%+L%>buffer|
00000ff0  25 2b 6d 61 78 62 75 66  25 8c 20 85 31 30 30 2c  |%+maxbuf%. .100,|
00001000  22 42 75 66 66 65 72 20  73 70 61 63 65 20 66 75  |"Buffer space fu|
00001010  6c 6c 22 0d 06 b8 0f 63  75 72 62 75 66 25 2b 3d  |ll"....curbuf%+=|
00001020  4c 25 0d 06 c2 0f 3d 63  75 72 62 75 66 25 2d 4c  |L%....=curbuf%-L|
00001030  25 0d 06 cc 05 20 0d 06  d6 12 dd 20 f2 67 65 74  |%.... ..... .get|
00001040  6d 6f 64 65 69 6e 66 6f  0d 06 e0 1d e7 79 73 69  |modeinfo.....ysi|
00001050  7a 65 25 3e 31 32 38 20  4d 25 3d 31 33 20 8b 20  |ze%>128 M%=13 . |
00001060  4d 25 3d 32 31 0d 06 ea  0e 73 61 72 25 3f 35 36  |M%=21....sar%?56|
00001070  3d 4d 25 0d 06 f4 3e c8  99 22 57 69 6d 70 5f 52  |=M%...>.."Wimp_R|
00001080  65 61 64 50 69 78 54 72  61 6e 73 22 2c 26 31 30  |eadPixTrans",&10|
00001090  30 2c 73 61 72 25 2c 22  30 30 22 2c 2c 2c 2c 66  |0,sar%,"00",,,,f|
000010a0  61 63 74 6f 72 73 25 2c  70 69 78 74 72 61 6e 73  |actors%,pixtrans|
000010b0  25 0d 06 fe 1e c8 99 20  52 4d 56 25 2c eb 2c 33  |%...... RMV%,.,3|
000010c0  20 b8 2c 2c 58 25 3a e7  58 25 3e 31 35 20 8c 0d  | .,,X%:.X%>15 ..|
000010d0  07 08 0a 73 70 78 25 3d  30 0d 07 12 05 cc 0d 07  |...spx%=0.......|
000010e0  1c 33 c8 99 22 43 6f 6c  6f 75 72 54 72 61 6e 73  |.3.."ColourTrans|
000010f0  5f 53 65 6c 65 63 74 54  61 62 6c 65 22 2c 31 33  |_SelectTable",13|
00001100  2c 30 2c eb 2c 2d 31 2c  70 69 78 74 72 61 6e 73  |,0,.,-1,pixtrans|
00001110  25 0d 07 26 12 73 70 78  25 3d 70 69 78 74 72 61  |%..&.spx%=pixtra|
00001120  6e 73 25 0d 07 30 05 cd  0d 07 3a 1f e7 eb 3d 4d  |ns%..0....:...=M|
00001130  25 20 73 70 74 25 3d 26  32 32 32 20 8b 20 73 70  |% spt%=&222 . sp|
00001140  74 25 3d 26 32 33 34 0d  07 44 05 e1 0d 07 4e 05  |t%=&234..D....N.|
00001150  20 0d 07 58 0c dd 20 f2  6e 75 64 67 65 0d 07 62  | ..X.. .nudge..b|
00001160  0e 71 25 3d 62 75 66 66  65 72 25 0d 07 6c 18 c8  |.q%=buffer%..l..|
00001170  99 20 54 69 6d 65 25 20  b8 20 74 69 6d 65 73 6c  |. Time% . timesl|
00001180  69 70 25 0d 07 6d 26 e7  20 73 70 25 3d 30 20 80  |ip%..m&. sp%=0 .|
00001190  20 73 78 25 3d 31 20 8c  20 54 44 25 3d 34 30 30  | sx%=1 . TD%=400|
000011a0  20 8b 20 54 44 25 3d 33  30 0d 07 6e 23 e7 20 73  | . TD%=30..n#. s|
000011b0  70 25 3d 6e 73 70 25 2d  31 20 80 20 73 78 25 3d  |p%=nsp%-1 . sx%=|
000011c0  2d 31 20 8c 20 54 44 25  3d 34 30 30 0d 07 76 1e  |-1 . TD%=400..v.|
000011d0  e7 20 74 69 6d 65 73 6c  69 70 25 3c 74 69 6d 65  |. timeslip%<time|
000011e0  78 25 2b 54 44 25 20 8c  20 e1 0d 07 80 14 74 69  |x%+TD% . .....ti|
000011f0  6d 65 78 25 3d 74 69 6d  65 73 6c 69 70 25 0d 07  |mex%=timeslip%..|
00001200  8a 26 71 25 21 34 3d 30  3a 71 25 21 38 3d 2d 35  |.&q%!4=0:q%!8=-5|
00001210  31 32 3a 71 25 21 31 32  3d 35 31 32 3a 71 25 21  |12:q%!12=512:q%!|
00001220  31 36 3d 30 0d 07 94 0d  21 71 25 3d 73 68 6f 77  |16=0....!q%=show|
00001230  25 0d 07 9e 1c e7 20 42  49 47 25 20 8c 20 44 53  |%..... BIG% . DS|
00001240  25 3d 30 20 8b 20 44 53  25 3d 31 32 38 0d 07 a8  |%=0 . DS%=128...|
00001250  1a c8 99 20 55 70 64 61  74 65 57 2c 2c 71 25 20  |... UpdateW,,q% |
00001260  b8 20 6d 6f 72 65 25 0d  07 b2 16 62 78 25 3d 71  |. more%....bx%=q|
00001270  25 21 34 3a 62 79 25 3d  71 25 21 31 36 0d 07 bc  |%!4:by%=q%!16...|
00001280  0c c8 95 20 6d 6f 72 65  25 0d 07 c6 46 20 20 c8  |... more%...F  .|
00001290  99 20 73 70 6f 70 25 2c  73 70 74 25 2c 73 61 72  |. spop%,spt%,sar|
000012a0  25 2c 73 25 28 73 70 25  29 2c 62 78 25 2d 44 53  |%,s%(sp%),bx%-DS|
000012b0  25 2c 62 79 25 2d 79 73  69 7a 65 25 2d 44 53 25  |%,by%-ysize%-DS%|
000012c0  2c 2c 66 61 63 74 6f 72  73 25 2c 73 70 78 25 0d  |,,factors%,spx%.|
000012d0  07 d0 1b 20 20 c8 99 20  47 65 74 52 25 2c 30 2c  |...  .. GetR%,0,|
000012e0  71 25 20 b8 20 6d 6f 72  65 25 0d 07 da 05 ce 0d  |q% . more%......|
000012f0  07 e4 0c 73 70 25 2b 3d  73 78 25 0d 07 ee 21 e7  |...sp%+=sx%...!.|
00001300  73 70 25 3d 6e 73 70 25  20 8c 20 73 78 25 3d 2d  |sp%=nsp% . sx%=-|
00001310  31 3a 73 70 25 3d 6e 73  70 25 2d 31 0d 07 f8 1a  |1:sp%=nsp%-1....|
00001320  e7 20 73 70 25 3d 2d 31  20 8c 20 73 78 25 3d 31  |. sp%=-1 . sx%=1|
00001330  3a 73 70 25 3d 30 0d 08  02 05 e1 0d ff           |:sp%=0.......|
0000133d