Home » Archimedes archive » Micro User » MU 1991-07.adf » PD-Stuff » Sillies/!Planes/!RunImage

Sillies/!Planes/!RunImage

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

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

Tape/disk: Home » Archimedes archive » Micro User » MU 1991-07.adf » PD-Stuff
Filename: Sillies/!Planes/!RunImage
Read OK:
File size: 144A bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >!RunImage
   20PROCinit
   30REM set up the default error handler
   40ON ERROR PROCerror(ERR,REPORT$)
   50REM ----------------------------------------
   60REM  Main WIMP Polling loop ie the program!
   70REM ----------------------------------------
   80REPEAT
   90 SYS "Wimp_Poll",poll_mask%,event% TO action%
  100 PROCdespatch_poll
  110UNTIL FALSE
  120END
  130:
  140DEFPROCdespatch_poll
  150 CASE action% OF
  160  WHEN 0: PROCnull
  170  WHEN 1: PROCredraw
  180  WHEN 2: PROCopen
  190  WHEN 3: PROCclose(!event%)
  200  WHEN 17,18:PROCreceive(event%)
  210  ENDCASE
  220 ENDIF
  230ENDPROC
  240:
  250DEF PROCinit
  260LOCAL ERROR
  270ST%=TIME
  280DIM q% &800, event% &800, error_blk% 256, s1% 32, b1% 32
  290bufsz%=256
  300poll_mask% = NOT(&6000F)
  310DIM taskid% 5: $taskid%="TASK"
  320SYS "Wimp_Initialise",200,!taskid%,"Wander" TO ,task_handle%
  330ON ERROR LOCAL PROCerror(ERR, REPORT$):PROCterminate
  340LOCAL ERROR
  350N%=RND(3)+2
  360nb%=3:ab%=0
  370SpriteSize%=1024
  380DIM S% N%,X%(N%),Y%(N%),DX%(N%),DY%(N%),PU% (N%+1)*6,bx%(nb%),by%(nb%),bd%(nb%),bs% nb%,A% SpriteSize%
  390PROCmode
  400B%=136
  410p%=q%+4
  420!p%=0:p%!4=B%:p%!8=R%:p%!12=T%
  430p%!16=0:p%!20=T%
  440p%!24=-2:p%!28=&8C0:p%!32=&4040407:p%!36=0
  450p%!40=0:p%!44=B%:p%!48=R%:p%!52=T%
  460FOR I%=56 TO 87:p%?I%=0:NEXT
  470SYS "Wimp_CreateWindow",,p% TO fish%
  480!q%=fish%
  490SYS "Wimp_OpenWindow",,q%
  500NU%=PU%+N%+1
  510PH%=NU%+N%+1
  520NH%=PH%+N%+1
  530PS%=NH%+N%+1
  540NS%=PS%+N%+1
  550FOR I%=0 TO N%:S%?N%=0
  560PU%?I%=(I%+N%)MOD(N%+1):NU%?I%=(I%+1)MOD(N%+1)
  570NEXT
  580?PH%=0:?NH%=0
  590?PS%=0:?NS%=0
  600FOR I%=1 TO nb%:bs%?I%=0:NEXT
  610!A%=SpriteSize%
  620A%!4=0
  630A%!8=16
  640A%!12=16
  650SO%=&2E
  660SYS SO%,&10A,A%,"<Obey$Dir>.Sprites"
  670SYS SO%,&11B,A%,"fish","fish2"
  680SYS SO%,&12F,A%,"fish2"
  690SYS SO%,&118,A%,"fish" TO ,,S1%
  700SYS SO%,&118,A%,"fish2" TO ,,S2%
  710SYS SO%,&118,A%,"bubble" TO ,,bu%
  720bw%=10*2:bh%=6*4
  730W%=36*2:H%=9*4
  740s1%!16=&40000102:s1%!24=A%:s1%!28=0
  750b1%!16=&40000102:b1%!20=bu%:b1%!24=A%:b1%!28=0
  760WP%=&400E2
  770ENDPROC
  780:
  790DEF PROCnull
  800!q%=fish%
  810I%=?NS%
  820WHILE I%
  830 X%=X%(I%):Y%=Y%(I%):DX%=DX%(I%):DY%=DY%(I%)
  840 IF RND(256)=1 DX%=FNX:DY%=FNY:DX%(I%)=DX%:DY%(I%)=DY%
  850 IF X%+DX%+W%>R% OR X%+DX%<0 DX%=-DX%:DY%=FNY:DX%(I%)=DX%:DY%(I%)=DY%
  860 IF Y%+DY%+H%>T% OR Y%+DY%<B% DY%=-DY%:DY%(I%)=DY%
  870 IF DX%>0 q%!4=X%:q%!12=X%+W%+DX%:s1%!20=S1% ELSE q%!4=X%+DX%:q%!12=X%+W%:s1%!20=S2%
  880 IF DY%>0 q%!8=Y%:q%!16=Y%+H%+DY% ELSE q%!8=Y%+DY%:q%!16=Y%+H%
  890 X%+=DX%:Y%+=DY%
  900 SYS &400C9,,q% TO f%
  910 IF f% THEN
  920  WHILE f%
  930   !s1%=X%:s1%!4=Y%:s1%!8=X%+W%:s1%!12=Y%+H%:SYS WP%,,s1%
  940   SYS &400CA,,q% TO f%
  950  ENDWHILE
  960 ELSE
  970  PROCL(I%,2,1)
  980 ENDIF
  990 X%(I%)=X%:Y%(I%)=Y%
 1000 I%=NS%?I%
 1010ENDWHILE
 1020FOR I%=1 TO nb%
 1030 IF bs%?I% THEN
 1040  q%!4=bx%(I%):q%!8=by%(I%):q%!12=bx%(I%)+bw%:q%!16=by%(I%)+bh%+bd%(I%)
 1050  SYS &400C9,,q% TO f%
 1060  by%(I%)+=bd%(I%)
 1070  WHILE f%
 1080   !b1%=bx%(I%):b1%!4=by%(I%):b1%!8=bx%(I%)+bw%:b1%!12=by%(I%)+bh%:SYS WP%,,b1%
 1090   SYS &400CA,,q% TO f%
 1100  ENDWHILE
 1110  IF by%(I%)>T% bs%?I%=0:ab%-=1
 1120 ENDIF
 1130NEXT
 1140IF ?NU% PROCM ELSE IF ab%<nb% IF RND(64)=1 PROCB
 1150ENDPROC
 1160:
 1170DEFPROCL(I%,J%,K%)
 1180LOCAL op%,on%,np%,nn%
 1190S%?I%=K%
 1200op%=PU%+J%*(N%+1)*2:on%=op%+N%+1
 1210np%=PU%+K%*(N%+1)*2:nn%=np%+N%+1
 1220J%=op%?I%:K%=on%?I%
 1230on%?J%=K%:op%?K%=J%
 1240K%=?nn%:?nn%=I%:np%?K%=I%
 1250np%?I%=0:nn%?I%=K%
 1260ENDPROC
 1270:
 1280DEF PROCM
 1290IF RND(10)<>1 OR (TIME EOR ST%)<(1<<0) ENDPROC
 1300X%=RND(R%-W%)-1
 1310Y%=RND(T%-B%-H%)+B%-1
 1320FOR I%=1 TO N%
 1330 IF ABS(X%(I%)-X%)<=W% AND ABS(Y%(I%)-Y%)<=H% THEN ENDPROC
 1340NEXT
 1350!q%=fish%:q%!4=X%:q%!8=Y%:q%!12=X%+W%:q%!16=Y%+H%
 1360SYS &400C9,,q% TO f%
 1370IF f% THEN
 1380 WHILE f%
 1390  SYS &400CA,,q% TO f%
 1400 ENDWHILE
 1410ELSE
 1420 I%=?NU%:X%(I%)=X%:Y%(I%)=Y%:DX%(I%)=FNX:DY%(I%)=FNY
 1430 PROCL(I%,0,1)
 1440ENDIF
 1450ENDPROC
 1460:
 1470DEF PROCB
 1480I%=RND(N%)
 1490J%=0:REPEATJ%+=1:UNTILbs%?J%=0
 1500bx%(J%)=X%(I%):by%(J%)=Y%(I%)+H%:bd%(J%)=RND(3)+1:bs%?J%=1:ab%+=1
 1510IFDX%(I%)>0 bx%(J%)+=H%
 1520ENDPROC
 1530:
 1540DEF FNX=RND(2)*8-12
 1550DEF FNY=RND(5)-2
 1560:
 1570DEF PROCredraw
 1580LOCAL f%
 1590!q%=fish%
 1600SYS &400C8,,q% TO f%
 1610WHILE f%
 1620 l%=q%!4:b%=q%!8:r%=q%!12:t%=q%!16
 1630 FOR I%=1 TO N%
 1640  IF X%(I%)<r% IF X%(I%)+W%>l% IF Y%(I%)<t% IF Y%(I%)+H%>b% PROCP
 1650 NEXT
 1660 FOR I%=1 TO nb%
 1670  IF bs%?I% IF bx%(I%)<r% IF by%(I%)+bw%>l% IF by%(I%)<t% IF by%(I%)+bh%>b% !b1%=bx%(I%):b1%!4=by%(I%):b1%!8=bx%(I%)+bw%:b1%!12=by%(I%)+bh%:SYS WP%,,b1%
 1680 NEXT
 1690 SYS &400CA,,q% TO f%
 1700ENDWHILE
 1710ENDPROC
 1720:
 1730DEF PROCP
 1740IF S%?I%=0 ENDPROC
 1750IF DX%(I%)>0 s1%!20=S1% ELSE s1%!20=S2%
 1760!s1%=X%(I%):s1%!4=Y%(I%):s1%!8=X%(I%)+W%:s1%!12=Y%(I%)+H%:SYS WP%,,s1%
 1770IF S%?I%=1 PROCL(I%,1,2)
 1780ENDPROC
 1790:
 1800DEF PROCmode
 1810!q%=4:q%!4=5:q%!8=11:q%!12=12:q%!16=-1
 1820SYS "OS_ReadVduVariables",q%,q%
 1830xs%=!q%:ys%=q%!4
 1840R%=(q%!8+1)<<xs%:T%=(q%!12+1)<<ys%
 1850FOR I%=1 TO N%
 1860 IF X%(I%)>=R%-W% X%(I%)=0
 1870 IF Y%(I%)>=T%-H% Y%(I%)=B%
 1880NEXT I%
 1890ENDPROC
 1900:
 1910DEF PROCopen
 1920PROCmode
 1930event%!4=0:event%!8=B%:event%!12=R%:event%!16=T%
 1940SYS "Wimp_SetExtent",!event%,event%+4
 1950SYS "Wimp_OpenWindow",,event%
 1960ENDPROC
 1970:
 1980DEF PROCreceive(message%)
 1990LOCAL my_ref%, type$, option$, I%, pflag%
 2000my_ref% = message%!8
 2010CASE message%!16 OF
 2020 WHEN 0
 2030  PROCterminate
 2040ENDCASE
 2050ENDPROC
 2060:
 2070DEF PROCterminate
 2080SYS"Wimp_CloseDown"
 2090END
 2100:
 2110DEF FNrtoz(s%)
 2120LOCAL n$
 2130WHILE?s%:n$+=CHR$?s%:s%+=1:ENDWHILE
 2140=n$
 2150:
 2160DEF PROCclose
 2170!q%=fish%:SYS "Wimp_CloseWindow",,q%
 2180ENDPROC
 2190:
 2200DEF PROCmoan(report$)
 2210ERROR &20000,report$
 2220:
 2230DEF PROCerror(err%, report$)
 2240ON ERROR OFF
 2250IF err%<&10100 OR err%>&20000 THEN report$=report$+" internal error "+STR$(ERL)
 2260!error_blk% = err%
 2270$(error_blk%+4)=report$
 2280PROCzero_terminate(error_blk%+4)
 2290SYS "Wimp_ReportError", error_blk%, 1, "Wander"
 2300ENDPROC
 2310:
 2320DEFPROCzero_terminate(S%)
 2330S%?LEN$S% = 0
 2340ENDPROC

� >!RunImage
	�init
&� set up the default error handler
(� � �error(�,�$)
2.� ----------------------------------------
<-�  Main WIMP Polling loop ie the program!
F.� ----------------------------------------
P�
Z/ ș "Wimp_Poll",poll_mask%,event% � action%
d �despatch_poll
n� �
x�
�:
���despatch_poll
� Ȏ action% �
�  � 0: �null
�  � 1: �redraw
�  � 2: �open
�  � 3: �close(!event%)
�  � 17,18:�receive(event%)
�  �
� �
��
�:
�� �init
� �
	ST%=�
:� q% &800, event% &800, error_blk% 256, s1% 32, b1% 32
"bufsz%=256
,poll_mask% = �(&6000F)
6 � taskid% 5: $taskid%="TASK"
@>ș "Wimp_Initialise",200,!taskid%,"Wander" � ,task_handle%
J"� � � �error(�, �$):�terminate
T� �
^
N%=�(3)+2
hnb%=3:ab%=0
rSpriteSize%=1024
|h� S% N%,X%(N%),Y%(N%),DX%(N%),DY%(N%),PU% (N%+1)*6,bx%(nb%),by%(nb%),bd%(nb%),bs% nb%,A% SpriteSize%
�	�mode
�
B%=136
�p%=q%+4
�"!p%=0:p%!4=B%:p%!8=R%:p%!12=T%
�p%!16=0:p%!20=T%
�.p%!24=-2:p%!28=&8C0:p%!32=&4040407:p%!36=0
�&p%!40=0:p%!44=B%:p%!48=R%:p%!52=T%
�� I%=56 � 87:p%?I%=0:�
�&ș "Wimp_CreateWindow",,p% � fish%
�
!q%=fish%
�ș "Wimp_OpenWindow",,q%
�NU%=PU%+N%+1
�PH%=NU%+N%+1
NH%=PH%+N%+1
PS%=NH%+N%+1
NS%=PS%+N%+1
&� I%=0 � N%:S%?N%=0
0.PU%?I%=(I%+N%)�(N%+1):NU%?I%=(I%+1)�(N%+1)
:�
D?PH%=0:?NH%=0
N?PS%=0:?NS%=0
X� I%=1 � nb%:bs%?I%=0:�
b!A%=SpriteSize%
l
A%!4=0
vA%!8=16
�A%!12=16
�SO%=&2E
�'ș SO%,&10A,A%,"<Obey$Dir>.Sprites"
�!ș SO%,&11B,A%,"fish","fish2"
�ș SO%,&12F,A%,"fish2"
�!ș SO%,&118,A%,"fish" � ,,S1%
�"ș SO%,&118,A%,"fish2" � ,,S2%
�#ș SO%,&118,A%,"bubble" � ,,bu%
�bw%=10*2:bh%=6*4
�W%=36*2:H%=9*4
�'s1%!16=&40000102:s1%!24=A%:s1%!28=0
�2b1%!16=&40000102:b1%!20=bu%:b1%!24=A%:b1%!28=0
�WP%=&400E2
�
:
� �null
 
!q%=fish%
*I%=?NS%
4	ȕ I%
>0 X%=X%(I%):Y%=Y%(I%):DX%=DX%(I%):DY%=DY%(I%)
H5 � �(256)=1 DX%=�X:DY%=�Y:DX%(I%)=DX%:DY%(I%)=DY%
RF � X%+DX%+W%>R% � X%+DX%<0 DX%=-DX%:DY%=�Y:DX%(I%)=DX%:DY%(I%)=DY%
\4 � Y%+DY%+H%>T% � Y%+DY%<B% DY%=-DY%:DY%(I%)=DY%
fT � DX%>0 q%!4=X%:q%!12=X%+W%+DX%:s1%!20=S1% � q%!4=X%+DX%:q%!12=X%+W%:s1%!20=S2%
p> � DY%>0 q%!8=Y%:q%!16=Y%+H%+DY% � q%!8=Y%+DY%:q%!16=Y%+H%
z X%+=DX%:Y%+=DY%
� ș &400C9,,q% � f%
� � f% �
�  ȕ f%
�<   !s1%=X%:s1%!4=Y%:s1%!8=X%+W%:s1%!12=Y%+H%:ș WP%,,s1%
�   ș &400CA,,q% � f%
�  �
� �
�  �L(I%,2,1)
� �
� X%(I%)=X%:Y%(I%)=Y%
� I%=NS%?I%
��
�� I%=1 � nb%
 � bs%?I% �
K  q%!4=bx%(I%):q%!8=by%(I%):q%!12=bx%(I%)+bw%:q%!16=by%(I%)+bh%+bd%(I%)
  ș &400C9,,q% � f%
$  by%(I%)+=bd%(I%)
.  ȕ f%
8R   !b1%=bx%(I%):b1%!4=by%(I%):b1%!8=bx%(I%)+bw%:b1%!12=by%(I%)+bh%:ș WP%,,b1%
B   ș &400CA,,q% � f%
L  �
V"  � by%(I%)>T% bs%?I%=0:ab%-=1
` �
j�
t&� ?NU% �M � � ab%<nb% � �(64)=1 �B
~�
�:
���L(I%,J%,K%)
�� op%,on%,np%,nn%
�S%?I%=K%
�$op%=PU%+J%*(N%+1)*2:on%=op%+N%+1
�$np%=PU%+K%*(N%+1)*2:nn%=np%+N%+1
�J%=op%?I%:K%=on%?I%
�on%?J%=K%:op%?K%=J%
�K%=?nn%:?nn%=I%:np%?K%=I%
�np%?I%=0:nn%?I%=K%
��
�:
� �M

#� �(10)<>1 � (� � ST%)<(1<<0) �
X%=�(R%-W%)-1
Y%=�(T%-B%-H%)+B%-1
(� I%=1 � N%
2. � �(X%(I%)-X%)<=W% � �(Y%(I%)-Y%)<=H% � �
<�
F5!q%=fish%:q%!4=X%:q%!8=Y%:q%!12=X%+W%:q%!16=Y%+H%
Pș &400C9,,q% � f%
Z
� f% �
d
 ȕ f%
n  ș &400CA,,q% � f%
x �
��
�6 I%=?NU%:X%(I%)=X%:Y%(I%)=Y%:DX%(I%)=�X:DY%(I%)=�Y
� �L(I%,0,1)
��
��
�:
�� �B
�I%=�(N%)
�J%=0:�J%+=1:�bs%?J%=0
�Cbx%(J%)=X%(I%):by%(J%)=Y%(I%)+H%:bd%(J%)=�(3)+1:bs%?J%=1:ab%+=1
��DX%(I%)>0 bx%(J%)+=H%
��
�:
� �X=�(2)*8-12
� �Y=�(5)-2
:
"
� �redraw
,� f%
6
!q%=fish%
@ș &400C8,,q% � f%
J	ȕ f%
T& l%=q%!4:b%=q%!8:r%=q%!12:t%=q%!16
^ � I%=1 � N%
h>  � X%(I%)<r% � X%(I%)+W%>l% � Y%(I%)<t% � Y%(I%)+H%>b% �P
r �
| � I%=1 � nb%
��  � bs%?I% � bx%(I%)<r% � by%(I%)+bw%>l% � by%(I%)<t% � by%(I%)+bh%>b% !b1%=bx%(I%):b1%!4=by%(I%):b1%!8=bx%(I%)+bw%:b1%!12=by%(I%)+bh%:ș WP%,,b1%
� �
� ș &400CA,,q% � f%
��
��
�:
�� �P
�� S%?I%=0 �
�'� DX%(I%)>0 s1%!20=S1% � s1%!20=S2%
�I!s1%=X%(I%):s1%!4=Y%(I%):s1%!8=X%(I%)+W%:s1%!12=Y%(I%)+H%:ș WP%,,s1%
�� S%?I%=1 �L(I%,1,2)
��
�:
� �mode
*!q%=4:q%!4=5:q%!8=11:q%!12=12:q%!16=-1
"ș "OS_ReadVduVariables",q%,q%
&xs%=!q%:ys%=q%!4
0&R%=(q%!8+1)<<xs%:T%=(q%!12+1)<<ys%
:� I%=1 � N%
D � X%(I%)>=R%-W% X%(I%)=0
N � Y%(I%)>=T%-H% Y%(I%)=B%
X� I%
b�
l:
v� �open
�	�mode
�4event%!4=0:event%!8=B%:event%!12=R%:event%!16=T%
�(ș "Wimp_SetExtent",!event%,event%+4
� ș "Wimp_OpenWindow",,event%
��
�:
�� �receive(message%)
�)� my_ref%, type$, option$, I%, pflag%
�my_ref% = message%!8
�Ȏ message%!16 �
� � 0
�  �terminate
��
�
:
� �terminate
 ș"Wimp_CloseDown"
*�
4:
>� �rtoz(s%)
H� n$
Rȕ?s%:n$+=�?s%:s%+=1:�
\=n$
f:
p� �close
z'!q%=fish%:ș "Wimp_CloseWindow",,q%
��
�:
�� �moan(report$)
�� &20000,report$
�:
�� �error(err%, report$)
�	� � �
�I� err%<&10100 � err%>&20000 � report$=report$+" internal error "+�(�)
�!error_blk% = err%
�$(error_blk%+4)=report$
�!�zero_terminate(error_blk%+4)
�2ș "Wimp_ReportError", error_blk%, 1, "Wander"
��
	:
	��zero_terminate(S%)
	S%?�$S% = 0
	$�
�
00000000  0d 00 0a 10 f4 20 3e 21  52 75 6e 49 6d 61 67 65  |..... >!RunImage|
00000010  0d 00 14 09 f2 69 6e 69  74 0d 00 1e 26 f4 20 73  |.....init...&. s|
00000020  65 74 20 75 70 20 74 68  65 20 64 65 66 61 75 6c  |et up the defaul|
00000030  74 20 65 72 72 6f 72 20  68 61 6e 64 6c 65 72 0d  |t error handler.|
00000040  00 28 14 ee 20 85 20 f2  65 72 72 6f 72 28 9f 2c  |.(.. . .error(.,|
00000050  f6 24 29 0d 00 32 2e f4  20 2d 2d 2d 2d 2d 2d 2d  |.$)..2.. -------|
00000060  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000080  2d 0d 00 3c 2d f4 20 20  4d 61 69 6e 20 57 49 4d  |-..<-.  Main WIM|
00000090  50 20 50 6f 6c 6c 69 6e  67 20 6c 6f 6f 70 20 69  |P Polling loop i|
000000a0  65 20 74 68 65 20 70 72  6f 67 72 61 6d 21 0d 00  |e the program!..|
000000b0  46 2e f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |F.. ------------|
000000c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
000000d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 00 50 05  |------------..P.|
000000e0  f5 0d 00 5a 2f 20 c8 99  20 22 57 69 6d 70 5f 50  |...Z/ .. "Wimp_P|
000000f0  6f 6c 6c 22 2c 70 6f 6c  6c 5f 6d 61 73 6b 25 2c  |oll",poll_mask%,|
00000100  65 76 65 6e 74 25 20 b8  20 61 63 74 69 6f 6e 25  |event% . action%|
00000110  0d 00 64 13 20 f2 64 65  73 70 61 74 63 68 5f 70  |..d. .despatch_p|
00000120  6f 6c 6c 0d 00 6e 07 fd  20 a3 0d 00 78 05 e0 0d  |oll..n.. ...x...|
00000130  00 82 05 3a 0d 00 8c 13  dd f2 64 65 73 70 61 74  |...:......despat|
00000140  63 68 5f 70 6f 6c 6c 0d  00 96 11 20 c8 8e 20 61  |ch_poll.... .. a|
00000150  63 74 69 6f 6e 25 20 ca  0d 00 a0 10 20 20 c9 20  |ction% .....  . |
00000160  30 3a 20 f2 6e 75 6c 6c  0d 00 aa 12 20 20 c9 20  |0: .null....  . |
00000170  31 3a 20 f2 72 65 64 72  61 77 0d 00 b4 10 20 20  |1: .redraw....  |
00000180  c9 20 32 3a 20 f2 6f 70  65 6e 0d 00 be 1a 20 20  |. 2: .open....  |
00000190  c9 20 33 3a 20 f2 63 6c  6f 73 65 28 21 65 76 65  |. 3: .close(!eve|
000001a0  6e 74 25 29 0d 00 c8 1e  20 20 c9 20 31 37 2c 31  |nt%)....  . 17,1|
000001b0  38 3a f2 72 65 63 65 69  76 65 28 65 76 65 6e 74  |8:.receive(event|
000001c0  25 29 0d 00 d2 07 20 20  cb 0d 00 dc 06 20 cd 0d  |%)....  ..... ..|
000001d0  00 e6 05 e1 0d 00 f0 05  3a 0d 00 fa 0b dd 20 f2  |........:..... .|
000001e0  69 6e 69 74 0d 01 04 07  ea 20 85 0d 01 0e 09 53  |init..... .....S|
000001f0  54 25 3d 91 0d 01 18 3a  de 20 71 25 20 26 38 30  |T%=....:. q% &80|
00000200  30 2c 20 65 76 65 6e 74  25 20 26 38 30 30 2c 20  |0, event% &800, |
00000210  65 72 72 6f 72 5f 62 6c  6b 25 20 32 35 36 2c 20  |error_blk% 256, |
00000220  73 31 25 20 33 32 2c 20  62 31 25 20 33 32 0d 01  |s1% 32, b1% 32..|
00000230  22 0e 62 75 66 73 7a 25  3d 32 35 36 0d 01 2c 1a  |".bufsz%=256..,.|
00000240  70 6f 6c 6c 5f 6d 61 73  6b 25 20 3d 20 ac 28 26  |poll_mask% = .(&|
00000250  36 30 30 30 46 29 0d 01  36 20 de 20 74 61 73 6b  |6000F)..6 . task|
00000260  69 64 25 20 35 3a 20 24  74 61 73 6b 69 64 25 3d  |id% 5: $taskid%=|
00000270  22 54 41 53 4b 22 0d 01  40 3e c8 99 20 22 57 69  |"TASK"..@>.. "Wi|
00000280  6d 70 5f 49 6e 69 74 69  61 6c 69 73 65 22 2c 32  |mp_Initialise",2|
00000290  30 30 2c 21 74 61 73 6b  69 64 25 2c 22 57 61 6e  |00,!taskid%,"Wan|
000002a0  64 65 72 22 20 b8 20 2c  74 61 73 6b 5f 68 61 6e  |der" . ,task_han|
000002b0  64 6c 65 25 0d 01 4a 22  ee 20 85 20 ea 20 f2 65  |dle%..J". . . .e|
000002c0  72 72 6f 72 28 9f 2c 20  f6 24 29 3a f2 74 65 72  |rror(., .$):.ter|
000002d0  6d 69 6e 61 74 65 0d 01  54 07 ea 20 85 0d 01 5e  |minate..T.. ...^|
000002e0  0d 4e 25 3d b3 28 33 29  2b 32 0d 01 68 0f 6e 62  |.N%=.(3)+2..h.nb|
000002f0  25 3d 33 3a 61 62 25 3d  30 0d 01 72 14 53 70 72  |%=3:ab%=0..r.Spr|
00000300  69 74 65 53 69 7a 65 25  3d 31 30 32 34 0d 01 7c  |iteSize%=1024..||
00000310  68 de 20 53 25 20 4e 25  2c 58 25 28 4e 25 29 2c  |h. S% N%,X%(N%),|
00000320  59 25 28 4e 25 29 2c 44  58 25 28 4e 25 29 2c 44  |Y%(N%),DX%(N%),D|
00000330  59 25 28 4e 25 29 2c 50  55 25 20 28 4e 25 2b 31  |Y%(N%),PU% (N%+1|
00000340  29 2a 36 2c 62 78 25 28  6e 62 25 29 2c 62 79 25  |)*6,bx%(nb%),by%|
00000350  28 6e 62 25 29 2c 62 64  25 28 6e 62 25 29 2c 62  |(nb%),bd%(nb%),b|
00000360  73 25 20 6e 62 25 2c 41  25 20 53 70 72 69 74 65  |s% nb%,A% Sprite|
00000370  53 69 7a 65 25 0d 01 86  09 f2 6d 6f 64 65 0d 01  |Size%.....mode..|
00000380  90 0a 42 25 3d 31 33 36  0d 01 9a 0b 70 25 3d 71  |..B%=136....p%=q|
00000390  25 2b 34 0d 01 a4 22 21  70 25 3d 30 3a 70 25 21  |%+4..."!p%=0:p%!|
000003a0  34 3d 42 25 3a 70 25 21  38 3d 52 25 3a 70 25 21  |4=B%:p%!8=R%:p%!|
000003b0  31 32 3d 54 25 0d 01 ae  14 70 25 21 31 36 3d 30  |12=T%....p%!16=0|
000003c0  3a 70 25 21 32 30 3d 54  25 0d 01 b8 2e 70 25 21  |:p%!20=T%....p%!|
000003d0  32 34 3d 2d 32 3a 70 25  21 32 38 3d 26 38 43 30  |24=-2:p%!28=&8C0|
000003e0  3a 70 25 21 33 32 3d 26  34 30 34 30 34 30 37 3a  |:p%!32=&4040407:|
000003f0  70 25 21 33 36 3d 30 0d  01 c2 26 70 25 21 34 30  |p%!36=0...&p%!40|
00000400  3d 30 3a 70 25 21 34 34  3d 42 25 3a 70 25 21 34  |=0:p%!44=B%:p%!4|
00000410  38 3d 52 25 3a 70 25 21  35 32 3d 54 25 0d 01 cc  |8=R%:p%!52=T%...|
00000420  1a e3 20 49 25 3d 35 36  20 b8 20 38 37 3a 70 25  |.. I%=56 . 87:p%|
00000430  3f 49 25 3d 30 3a ed 0d  01 d6 26 c8 99 20 22 57  |?I%=0:....&.. "W|
00000440  69 6d 70 5f 43 72 65 61  74 65 57 69 6e 64 6f 77  |imp_CreateWindow|
00000450  22 2c 2c 70 25 20 b8 20  66 69 73 68 25 0d 01 e0  |",,p% . fish%...|
00000460  0d 21 71 25 3d 66 69 73  68 25 0d 01 ea 1c c8 99  |.!q%=fish%......|
00000470  20 22 57 69 6d 70 5f 4f  70 65 6e 57 69 6e 64 6f  | "Wimp_OpenWindo|
00000480  77 22 2c 2c 71 25 0d 01  f4 10 4e 55 25 3d 50 55  |w",,q%....NU%=PU|
00000490  25 2b 4e 25 2b 31 0d 01  fe 10 50 48 25 3d 4e 55  |%+N%+1....PH%=NU|
000004a0  25 2b 4e 25 2b 31 0d 02  08 10 4e 48 25 3d 50 48  |%+N%+1....NH%=PH|
000004b0  25 2b 4e 25 2b 31 0d 02  12 10 50 53 25 3d 4e 48  |%+N%+1....PS%=NH|
000004c0  25 2b 4e 25 2b 31 0d 02  1c 10 4e 53 25 3d 50 53  |%+N%+1....NS%=PS|
000004d0  25 2b 4e 25 2b 31 0d 02  26 17 e3 20 49 25 3d 30  |%+N%+1..&.. I%=0|
000004e0  20 b8 20 4e 25 3a 53 25  3f 4e 25 3d 30 0d 02 30  | . N%:S%?N%=0..0|
000004f0  2e 50 55 25 3f 49 25 3d  28 49 25 2b 4e 25 29 83  |.PU%?I%=(I%+N%).|
00000500  28 4e 25 2b 31 29 3a 4e  55 25 3f 49 25 3d 28 49  |(N%+1):NU%?I%=(I|
00000510  25 2b 31 29 83 28 4e 25  2b 31 29 0d 02 3a 05 ed  |%+1).(N%+1)..:..|
00000520  0d 02 44 11 3f 50 48 25  3d 30 3a 3f 4e 48 25 3d  |..D.?PH%=0:?NH%=|
00000530  30 0d 02 4e 11 3f 50 53  25 3d 30 3a 3f 4e 53 25  |0..N.?PS%=0:?NS%|
00000540  3d 30 0d 02 58 1b e3 20  49 25 3d 31 20 b8 20 6e  |=0..X.. I%=1 . n|
00000550  62 25 3a 62 73 25 3f 49  25 3d 30 3a ed 0d 02 62  |b%:bs%?I%=0:...b|
00000560  13 21 41 25 3d 53 70 72  69 74 65 53 69 7a 65 25  |.!A%=SpriteSize%|
00000570  0d 02 6c 0a 41 25 21 34  3d 30 0d 02 76 0b 41 25  |..l.A%!4=0..v.A%|
00000580  21 38 3d 31 36 0d 02 80  0c 41 25 21 31 32 3d 31  |!8=16....A%!12=1|
00000590  36 0d 02 8a 0b 53 4f 25  3d 26 32 45 0d 02 94 27  |6....SO%=&2E...'|
000005a0  c8 99 20 53 4f 25 2c 26  31 30 41 2c 41 25 2c 22  |.. SO%,&10A,A%,"|
000005b0  3c 4f 62 65 79 24 44 69  72 3e 2e 53 70 72 69 74  |<Obey$Dir>.Sprit|
000005c0  65 73 22 0d 02 9e 21 c8  99 20 53 4f 25 2c 26 31  |es"...!.. SO%,&1|
000005d0  31 42 2c 41 25 2c 22 66  69 73 68 22 2c 22 66 69  |1B,A%,"fish","fi|
000005e0  73 68 32 22 0d 02 a8 1a  c8 99 20 53 4f 25 2c 26  |sh2"...... SO%,&|
000005f0  31 32 46 2c 41 25 2c 22  66 69 73 68 32 22 0d 02  |12F,A%,"fish2"..|
00000600  b2 21 c8 99 20 53 4f 25  2c 26 31 31 38 2c 41 25  |.!.. SO%,&118,A%|
00000610  2c 22 66 69 73 68 22 20  b8 20 2c 2c 53 31 25 0d  |,"fish" . ,,S1%.|
00000620  02 bc 22 c8 99 20 53 4f  25 2c 26 31 31 38 2c 41  |..".. SO%,&118,A|
00000630  25 2c 22 66 69 73 68 32  22 20 b8 20 2c 2c 53 32  |%,"fish2" . ,,S2|
00000640  25 0d 02 c6 23 c8 99 20  53 4f 25 2c 26 31 31 38  |%...#.. SO%,&118|
00000650  2c 41 25 2c 22 62 75 62  62 6c 65 22 20 b8 20 2c  |,A%,"bubble" . ,|
00000660  2c 62 75 25 0d 02 d0 14  62 77 25 3d 31 30 2a 32  |,bu%....bw%=10*2|
00000670  3a 62 68 25 3d 36 2a 34  0d 02 da 12 57 25 3d 33  |:bh%=6*4....W%=3|
00000680  36 2a 32 3a 48 25 3d 39  2a 34 0d 02 e4 27 73 31  |6*2:H%=9*4...'s1|
00000690  25 21 31 36 3d 26 34 30  30 30 30 31 30 32 3a 73  |%!16=&40000102:s|
000006a0  31 25 21 32 34 3d 41 25  3a 73 31 25 21 32 38 3d  |1%!24=A%:s1%!28=|
000006b0  30 0d 02 ee 32 62 31 25  21 31 36 3d 26 34 30 30  |0...2b1%!16=&400|
000006c0  30 30 31 30 32 3a 62 31  25 21 32 30 3d 62 75 25  |00102:b1%!20=bu%|
000006d0  3a 62 31 25 21 32 34 3d  41 25 3a 62 31 25 21 32  |:b1%!24=A%:b1%!2|
000006e0  38 3d 30 0d 02 f8 0e 57  50 25 3d 26 34 30 30 45  |8=0....WP%=&400E|
000006f0  32 0d 03 02 05 e1 0d 03  0c 05 3a 0d 03 16 0b dd  |2.........:.....|
00000700  20 f2 6e 75 6c 6c 0d 03  20 0d 21 71 25 3d 66 69  | .null.. .!q%=fi|
00000710  73 68 25 0d 03 2a 0b 49  25 3d 3f 4e 53 25 0d 03  |sh%..*.I%=?NS%..|
00000720  34 09 c8 95 20 49 25 0d  03 3e 30 20 58 25 3d 58  |4... I%..>0 X%=X|
00000730  25 28 49 25 29 3a 59 25  3d 59 25 28 49 25 29 3a  |%(I%):Y%=Y%(I%):|
00000740  44 58 25 3d 44 58 25 28  49 25 29 3a 44 59 25 3d  |DX%=DX%(I%):DY%=|
00000750  44 59 25 28 49 25 29 0d  03 48 35 20 e7 20 b3 28  |DY%(I%)..H5 . .(|
00000760  32 35 36 29 3d 31 20 44  58 25 3d a4 58 3a 44 59  |256)=1 DX%=.X:DY|
00000770  25 3d a4 59 3a 44 58 25  28 49 25 29 3d 44 58 25  |%=.Y:DX%(I%)=DX%|
00000780  3a 44 59 25 28 49 25 29  3d 44 59 25 0d 03 52 46  |:DY%(I%)=DY%..RF|
00000790  20 e7 20 58 25 2b 44 58  25 2b 57 25 3e 52 25 20  | . X%+DX%+W%>R% |
000007a0  84 20 58 25 2b 44 58 25  3c 30 20 44 58 25 3d 2d  |. X%+DX%<0 DX%=-|
000007b0  44 58 25 3a 44 59 25 3d  a4 59 3a 44 58 25 28 49  |DX%:DY%=.Y:DX%(I|
000007c0  25 29 3d 44 58 25 3a 44  59 25 28 49 25 29 3d 44  |%)=DX%:DY%(I%)=D|
000007d0  59 25 0d 03 5c 34 20 e7  20 59 25 2b 44 59 25 2b  |Y%..\4 . Y%+DY%+|
000007e0  48 25 3e 54 25 20 84 20  59 25 2b 44 59 25 3c 42  |H%>T% . Y%+DY%<B|
000007f0  25 20 44 59 25 3d 2d 44  59 25 3a 44 59 25 28 49  |% DY%=-DY%:DY%(I|
00000800  25 29 3d 44 59 25 0d 03  66 54 20 e7 20 44 58 25  |%)=DY%..fT . DX%|
00000810  3e 30 20 71 25 21 34 3d  58 25 3a 71 25 21 31 32  |>0 q%!4=X%:q%!12|
00000820  3d 58 25 2b 57 25 2b 44  58 25 3a 73 31 25 21 32  |=X%+W%+DX%:s1%!2|
00000830  30 3d 53 31 25 20 8b 20  71 25 21 34 3d 58 25 2b  |0=S1% . q%!4=X%+|
00000840  44 58 25 3a 71 25 21 31  32 3d 58 25 2b 57 25 3a  |DX%:q%!12=X%+W%:|
00000850  73 31 25 21 32 30 3d 53  32 25 0d 03 70 3e 20 e7  |s1%!20=S2%..p> .|
00000860  20 44 59 25 3e 30 20 71  25 21 38 3d 59 25 3a 71  | DY%>0 q%!8=Y%:q|
00000870  25 21 31 36 3d 59 25 2b  48 25 2b 44 59 25 20 8b  |%!16=Y%+H%+DY% .|
00000880  20 71 25 21 38 3d 59 25  2b 44 59 25 3a 71 25 21  | q%!8=Y%+DY%:q%!|
00000890  31 36 3d 59 25 2b 48 25  0d 03 7a 14 20 58 25 2b  |16=Y%+H%..z. X%+|
000008a0  3d 44 58 25 3a 59 25 2b  3d 44 59 25 0d 03 84 17  |=DX%:Y%+=DY%....|
000008b0  20 c8 99 20 26 34 30 30  43 39 2c 2c 71 25 20 b8  | .. &400C9,,q% .|
000008c0  20 66 25 0d 03 8e 0b 20  e7 20 66 25 20 8c 0d 03  | f%.... . f% ...|
000008d0  98 0b 20 20 c8 95 20 66  25 0d 03 a2 3c 20 20 20  |..  .. f%...<   |
000008e0  21 73 31 25 3d 58 25 3a  73 31 25 21 34 3d 59 25  |!s1%=X%:s1%!4=Y%|
000008f0  3a 73 31 25 21 38 3d 58  25 2b 57 25 3a 73 31 25  |:s1%!8=X%+W%:s1%|
00000900  21 31 32 3d 59 25 2b 48  25 3a c8 99 20 57 50 25  |!12=Y%+H%:.. WP%|
00000910  2c 2c 73 31 25 0d 03 ac  19 20 20 20 c8 99 20 26  |,,s1%....   .. &|
00000920  34 30 30 43 41 2c 2c 71  25 20 b8 20 66 25 0d 03  |400CA,,q% . f%..|
00000930  b6 07 20 20 ce 0d 03 c0  06 20 cc 0d 03 ca 10 20  |..  ..... ..... |
00000940  20 f2 4c 28 49 25 2c 32  2c 31 29 0d 03 d4 06 20  | .L(I%,2,1).... |
00000950  cd 0d 03 de 18 20 58 25  28 49 25 29 3d 58 25 3a  |..... X%(I%)=X%:|
00000960  59 25 28 49 25 29 3d 59  25 0d 03 e8 0e 20 49 25  |Y%(I%)=Y%.... I%|
00000970  3d 4e 53 25 3f 49 25 0d  03 f2 05 ce 0d 03 fc 10  |=NS%?I%.........|
00000980  e3 20 49 25 3d 31 20 b8  20 6e 62 25 0d 04 06 0f  |. I%=1 . nb%....|
00000990  20 e7 20 62 73 25 3f 49  25 20 8c 0d 04 10 4b 20  | . bs%?I% ....K |
000009a0  20 71 25 21 34 3d 62 78  25 28 49 25 29 3a 71 25  | q%!4=bx%(I%):q%|
000009b0  21 38 3d 62 79 25 28 49  25 29 3a 71 25 21 31 32  |!8=by%(I%):q%!12|
000009c0  3d 62 78 25 28 49 25 29  2b 62 77 25 3a 71 25 21  |=bx%(I%)+bw%:q%!|
000009d0  31 36 3d 62 79 25 28 49  25 29 2b 62 68 25 2b 62  |16=by%(I%)+bh%+b|
000009e0  64 25 28 49 25 29 0d 04  1a 18 20 20 c8 99 20 26  |d%(I%)....  .. &|
000009f0  34 30 30 43 39 2c 2c 71  25 20 b8 20 66 25 0d 04  |400C9,,q% . f%..|
00000a00  24 16 20 20 62 79 25 28  49 25 29 2b 3d 62 64 25  |$.  by%(I%)+=bd%|
00000a10  28 49 25 29 0d 04 2e 0b  20 20 c8 95 20 66 25 0d  |(I%)....  .. f%.|
00000a20  04 38 52 20 20 20 21 62  31 25 3d 62 78 25 28 49  |.8R   !b1%=bx%(I|
00000a30  25 29 3a 62 31 25 21 34  3d 62 79 25 28 49 25 29  |%):b1%!4=by%(I%)|
00000a40  3a 62 31 25 21 38 3d 62  78 25 28 49 25 29 2b 62  |:b1%!8=bx%(I%)+b|
00000a50  77 25 3a 62 31 25 21 31  32 3d 62 79 25 28 49 25  |w%:b1%!12=by%(I%|
00000a60  29 2b 62 68 25 3a c8 99  20 57 50 25 2c 2c 62 31  |)+bh%:.. WP%,,b1|
00000a70  25 0d 04 42 19 20 20 20  c8 99 20 26 34 30 30 43  |%..B.   .. &400C|
00000a80  41 2c 2c 71 25 20 b8 20  66 25 0d 04 4c 07 20 20  |A,,q% . f%..L.  |
00000a90  ce 0d 04 56 22 20 20 e7  20 62 79 25 28 49 25 29  |...V"  . by%(I%)|
00000aa0  3e 54 25 20 62 73 25 3f  49 25 3d 30 3a 61 62 25  |>T% bs%?I%=0:ab%|
00000ab0  2d 3d 31 0d 04 60 06 20  cd 0d 04 6a 05 ed 0d 04  |-=1..`. ...j....|
00000ac0  74 26 e7 20 3f 4e 55 25  20 f2 4d 20 8b 20 e7 20  |t&. ?NU% .M . . |
00000ad0  61 62 25 3c 6e 62 25 20  e7 20 b3 28 36 34 29 3d  |ab%<nb% . .(64)=|
00000ae0  31 20 f2 42 0d 04 7e 05  e1 0d 04 88 05 3a 0d 04  |1 .B..~......:..|
00000af0  92 11 dd f2 4c 28 49 25  2c 4a 25 2c 4b 25 29 0d  |....L(I%,J%,K%).|
00000b00  04 9c 15 ea 20 6f 70 25  2c 6f 6e 25 2c 6e 70 25  |.... op%,on%,np%|
00000b10  2c 6e 6e 25 0d 04 a6 0c  53 25 3f 49 25 3d 4b 25  |,nn%....S%?I%=K%|
00000b20  0d 04 b0 24 6f 70 25 3d  50 55 25 2b 4a 25 2a 28  |...$op%=PU%+J%*(|
00000b30  4e 25 2b 31 29 2a 32 3a  6f 6e 25 3d 6f 70 25 2b  |N%+1)*2:on%=op%+|
00000b40  4e 25 2b 31 0d 04 ba 24  6e 70 25 3d 50 55 25 2b  |N%+1...$np%=PU%+|
00000b50  4b 25 2a 28 4e 25 2b 31  29 2a 32 3a 6e 6e 25 3d  |K%*(N%+1)*2:nn%=|
00000b60  6e 70 25 2b 4e 25 2b 31  0d 04 c4 17 4a 25 3d 6f  |np%+N%+1....J%=o|
00000b70  70 25 3f 49 25 3a 4b 25  3d 6f 6e 25 3f 49 25 0d  |p%?I%:K%=on%?I%.|
00000b80  04 ce 17 6f 6e 25 3f 4a  25 3d 4b 25 3a 6f 70 25  |...on%?J%=K%:op%|
00000b90  3f 4b 25 3d 4a 25 0d 04  d8 1d 4b 25 3d 3f 6e 6e  |?K%=J%....K%=?nn|
00000ba0  25 3a 3f 6e 6e 25 3d 49  25 3a 6e 70 25 3f 4b 25  |%:?nn%=I%:np%?K%|
00000bb0  3d 49 25 0d 04 e2 16 6e  70 25 3f 49 25 3d 30 3a  |=I%....np%?I%=0:|
00000bc0  6e 6e 25 3f 49 25 3d 4b  25 0d 04 ec 05 e1 0d 04  |nn%?I%=K%.......|
00000bd0  f6 05 3a 0d 05 00 08 dd  20 f2 4d 0d 05 0a 23 e7  |..:..... .M...#.|
00000be0  20 b3 28 31 30 29 3c 3e  31 20 84 20 28 91 20 82  | .(10)<>1 . (. .|
00000bf0  20 53 54 25 29 3c 28 31  3c 3c 30 29 20 e1 0d 05  | ST%)<(1<<0) ...|
00000c00  14 11 58 25 3d b3 28 52  25 2d 57 25 29 2d 31 0d  |..X%=.(R%-W%)-1.|
00000c10  05 1e 17 59 25 3d b3 28  54 25 2d 42 25 2d 48 25  |...Y%=.(T%-B%-H%|
00000c20  29 2b 42 25 2d 31 0d 05  28 0f e3 20 49 25 3d 31  |)+B%-1..(.. I%=1|
00000c30  20 b8 20 4e 25 0d 05 32  2e 20 e7 20 94 28 58 25  | . N%..2. . .(X%|
00000c40  28 49 25 29 2d 58 25 29  3c 3d 57 25 20 80 20 94  |(I%)-X%)<=W% . .|
00000c50  28 59 25 28 49 25 29 2d  59 25 29 3c 3d 48 25 20  |(Y%(I%)-Y%)<=H% |
00000c60  8c 20 e1 0d 05 3c 05 ed  0d 05 46 35 21 71 25 3d  |. ...<....F5!q%=|
00000c70  66 69 73 68 25 3a 71 25  21 34 3d 58 25 3a 71 25  |fish%:q%!4=X%:q%|
00000c80  21 38 3d 59 25 3a 71 25  21 31 32 3d 58 25 2b 57  |!8=Y%:q%!12=X%+W|
00000c90  25 3a 71 25 21 31 36 3d  59 25 2b 48 25 0d 05 50  |%:q%!16=Y%+H%..P|
00000ca0  16 c8 99 20 26 34 30 30  43 39 2c 2c 71 25 20 b8  |... &400C9,,q% .|
00000cb0  20 66 25 0d 05 5a 0a e7  20 66 25 20 8c 0d 05 64  | f%..Z.. f% ...d|
00000cc0  0a 20 c8 95 20 66 25 0d  05 6e 18 20 20 c8 99 20  |. .. f%..n.  .. |
00000cd0  26 34 30 30 43 41 2c 2c  71 25 20 b8 20 66 25 0d  |&400CA,,q% . f%.|
00000ce0  05 78 06 20 ce 0d 05 82  05 cc 0d 05 8c 36 20 49  |.x. .........6 I|
00000cf0  25 3d 3f 4e 55 25 3a 58  25 28 49 25 29 3d 58 25  |%=?NU%:X%(I%)=X%|
00000d00  3a 59 25 28 49 25 29 3d  59 25 3a 44 58 25 28 49  |:Y%(I%)=Y%:DX%(I|
00000d10  25 29 3d a4 58 3a 44 59  25 28 49 25 29 3d a4 59  |%)=.X:DY%(I%)=.Y|
00000d20  0d 05 96 0f 20 f2 4c 28  49 25 2c 30 2c 31 29 0d  |.... .L(I%,0,1).|
00000d30  05 a0 05 cd 0d 05 aa 05  e1 0d 05 b4 05 3a 0d 05  |.............:..|
00000d40  be 08 dd 20 f2 42 0d 05  c8 0c 49 25 3d b3 28 4e  |... .B....I%=.(N|
00000d50  25 29 0d 05 d2 19 4a 25  3d 30 3a f5 4a 25 2b 3d  |%)....J%=0:.J%+=|
00000d60  31 3a fd 62 73 25 3f 4a  25 3d 30 0d 05 dc 43 62  |1:.bs%?J%=0...Cb|
00000d70  78 25 28 4a 25 29 3d 58  25 28 49 25 29 3a 62 79  |x%(J%)=X%(I%):by|
00000d80  25 28 4a 25 29 3d 59 25  28 49 25 29 2b 48 25 3a  |%(J%)=Y%(I%)+H%:|
00000d90  62 64 25 28 4a 25 29 3d  b3 28 33 29 2b 31 3a 62  |bd%(J%)=.(3)+1:b|
00000da0  73 25 3f 4a 25 3d 31 3a  61 62 25 2b 3d 31 0d 05  |s%?J%=1:ab%+=1..|
00000db0  e6 1a e7 44 58 25 28 49  25 29 3e 30 20 62 78 25  |...DX%(I%)>0 bx%|
00000dc0  28 4a 25 29 2b 3d 48 25  0d 05 f0 05 e1 0d 05 fa  |(J%)+=H%........|
00000dd0  05 3a 0d 06 04 12 dd 20  a4 58 3d b3 28 32 29 2a  |.:..... .X=.(2)*|
00000de0  38 2d 31 32 0d 06 0e 0f  dd 20 a4 59 3d b3 28 35  |8-12..... .Y=.(5|
00000df0  29 2d 32 0d 06 18 05 3a  0d 06 22 0d dd 20 f2 72  |)-2....:..".. .r|
00000e00  65 64 72 61 77 0d 06 2c  08 ea 20 66 25 0d 06 36  |edraw..,.. f%..6|
00000e10  0d 21 71 25 3d 66 69 73  68 25 0d 06 40 16 c8 99  |.!q%=fish%..@...|
00000e20  20 26 34 30 30 43 38 2c  2c 71 25 20 b8 20 66 25  | &400C8,,q% . f%|
00000e30  0d 06 4a 09 c8 95 20 66  25 0d 06 54 26 20 6c 25  |..J... f%..T& l%|
00000e40  3d 71 25 21 34 3a 62 25  3d 71 25 21 38 3a 72 25  |=q%!4:b%=q%!8:r%|
00000e50  3d 71 25 21 31 32 3a 74  25 3d 71 25 21 31 36 0d  |=q%!12:t%=q%!16.|
00000e60  06 5e 10 20 e3 20 49 25  3d 31 20 b8 20 4e 25 0d  |.^. . I%=1 . N%.|
00000e70  06 68 3e 20 20 e7 20 58  25 28 49 25 29 3c 72 25  |.h>  . X%(I%)<r%|
00000e80  20 e7 20 58 25 28 49 25  29 2b 57 25 3e 6c 25 20  | . X%(I%)+W%>l% |
00000e90  e7 20 59 25 28 49 25 29  3c 74 25 20 e7 20 59 25  |. Y%(I%)<t% . Y%|
00000ea0  28 49 25 29 2b 48 25 3e  62 25 20 f2 50 0d 06 72  |(I%)+H%>b% .P..r|
00000eb0  06 20 ed 0d 06 7c 11 20  e3 20 49 25 3d 31 20 b8  |. ...|. . I%=1 .|
00000ec0  20 6e 62 25 0d 06 86 96  20 20 e7 20 62 73 25 3f  | nb%....  . bs%?|
00000ed0  49 25 20 e7 20 62 78 25  28 49 25 29 3c 72 25 20  |I% . bx%(I%)<r% |
00000ee0  e7 20 62 79 25 28 49 25  29 2b 62 77 25 3e 6c 25  |. by%(I%)+bw%>l%|
00000ef0  20 e7 20 62 79 25 28 49  25 29 3c 74 25 20 e7 20  | . by%(I%)<t% . |
00000f00  62 79 25 28 49 25 29 2b  62 68 25 3e 62 25 20 21  |by%(I%)+bh%>b% !|
00000f10  62 31 25 3d 62 78 25 28  49 25 29 3a 62 31 25 21  |b1%=bx%(I%):b1%!|
00000f20  34 3d 62 79 25 28 49 25  29 3a 62 31 25 21 38 3d  |4=by%(I%):b1%!8=|
00000f30  62 78 25 28 49 25 29 2b  62 77 25 3a 62 31 25 21  |bx%(I%)+bw%:b1%!|
00000f40  31 32 3d 62 79 25 28 49  25 29 2b 62 68 25 3a c8  |12=by%(I%)+bh%:.|
00000f50  99 20 57 50 25 2c 2c 62  31 25 0d 06 90 06 20 ed  |. WP%,,b1%.... .|
00000f60  0d 06 9a 17 20 c8 99 20  26 34 30 30 43 41 2c 2c  |.... .. &400CA,,|
00000f70  71 25 20 b8 20 66 25 0d  06 a4 05 ce 0d 06 ae 05  |q% . f%.........|
00000f80  e1 0d 06 b8 05 3a 0d 06  c2 08 dd 20 f2 50 0d 06  |.....:..... .P..|
00000f90  cc 0f e7 20 53 25 3f 49  25 3d 30 20 e1 0d 06 d6  |... S%?I%=0 ....|
00000fa0  27 e7 20 44 58 25 28 49  25 29 3e 30 20 73 31 25  |'. DX%(I%)>0 s1%|
00000fb0  21 32 30 3d 53 31 25 20  8b 20 73 31 25 21 32 30  |!20=S1% . s1%!20|
00000fc0  3d 53 32 25 0d 06 e0 49  21 73 31 25 3d 58 25 28  |=S2%...I!s1%=X%(|
00000fd0  49 25 29 3a 73 31 25 21  34 3d 59 25 28 49 25 29  |I%):s1%!4=Y%(I%)|
00000fe0  3a 73 31 25 21 38 3d 58  25 28 49 25 29 2b 57 25  |:s1%!8=X%(I%)+W%|
00000ff0  3a 73 31 25 21 31 32 3d  59 25 28 49 25 29 2b 48  |:s1%!12=Y%(I%)+H|
00001000  25 3a c8 99 20 57 50 25  2c 2c 73 31 25 0d 06 ea  |%:.. WP%,,s1%...|
00001010  18 e7 20 53 25 3f 49 25  3d 31 20 f2 4c 28 49 25  |.. S%?I%=1 .L(I%|
00001020  2c 31 2c 32 29 0d 06 f4  05 e1 0d 06 fe 05 3a 0d  |,1,2).........:.|
00001030  07 08 0b dd 20 f2 6d 6f  64 65 0d 07 12 2a 21 71  |.... .mode...*!q|
00001040  25 3d 34 3a 71 25 21 34  3d 35 3a 71 25 21 38 3d  |%=4:q%!4=5:q%!8=|
00001050  31 31 3a 71 25 21 31 32  3d 31 32 3a 71 25 21 31  |11:q%!12=12:q%!1|
00001060  36 3d 2d 31 0d 07 1c 22  c8 99 20 22 4f 53 5f 52  |6=-1...".. "OS_R|
00001070  65 61 64 56 64 75 56 61  72 69 61 62 6c 65 73 22  |eadVduVariables"|
00001080  2c 71 25 2c 71 25 0d 07  26 14 78 73 25 3d 21 71  |,q%,q%..&.xs%=!q|
00001090  25 3a 79 73 25 3d 71 25  21 34 0d 07 30 26 52 25  |%:ys%=q%!4..0&R%|
000010a0  3d 28 71 25 21 38 2b 31  29 3c 3c 78 73 25 3a 54  |=(q%!8+1)<<xs%:T|
000010b0  25 3d 28 71 25 21 31 32  2b 31 29 3c 3c 79 73 25  |%=(q%!12+1)<<ys%|
000010c0  0d 07 3a 0f e3 20 49 25  3d 31 20 b8 20 4e 25 0d  |..:.. I%=1 . N%.|
000010d0  07 44 1d 20 e7 20 58 25  28 49 25 29 3e 3d 52 25  |.D. . X%(I%)>=R%|
000010e0  2d 57 25 20 58 25 28 49  25 29 3d 30 0d 07 4e 1e  |-W% X%(I%)=0..N.|
000010f0  20 e7 20 59 25 28 49 25  29 3e 3d 54 25 2d 48 25  | . Y%(I%)>=T%-H%|
00001100  20 59 25 28 49 25 29 3d  42 25 0d 07 58 08 ed 20  | Y%(I%)=B%..X.. |
00001110  49 25 0d 07 62 05 e1 0d  07 6c 05 3a 0d 07 76 0b  |I%..b....l.:..v.|
00001120  dd 20 f2 6f 70 65 6e 0d  07 80 09 f2 6d 6f 64 65  |. .open.....mode|
00001130  0d 07 8a 34 65 76 65 6e  74 25 21 34 3d 30 3a 65  |...4event%!4=0:e|
00001140  76 65 6e 74 25 21 38 3d  42 25 3a 65 76 65 6e 74  |vent%!8=B%:event|
00001150  25 21 31 32 3d 52 25 3a  65 76 65 6e 74 25 21 31  |%!12=R%:event%!1|
00001160  36 3d 54 25 0d 07 94 28  c8 99 20 22 57 69 6d 70  |6=T%...(.. "Wimp|
00001170  5f 53 65 74 45 78 74 65  6e 74 22 2c 21 65 76 65  |_SetExtent",!eve|
00001180  6e 74 25 2c 65 76 65 6e  74 25 2b 34 0d 07 9e 20  |nt%,event%+4... |
00001190  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |.. "Wimp_OpenWin|
000011a0  64 6f 77 22 2c 2c 65 76  65 6e 74 25 0d 07 a8 05  |dow",,event%....|
000011b0  e1 0d 07 b2 05 3a 0d 07  bc 18 dd 20 f2 72 65 63  |.....:..... .rec|
000011c0  65 69 76 65 28 6d 65 73  73 61 67 65 25 29 0d 07  |eive(message%)..|
000011d0  c6 29 ea 20 6d 79 5f 72  65 66 25 2c 20 74 79 70  |.). my_ref%, typ|
000011e0  65 24 2c 20 6f 70 74 69  6f 6e 24 2c 20 49 25 2c  |e$, option$, I%,|
000011f0  20 70 66 6c 61 67 25 0d  07 d0 18 6d 79 5f 72 65  | pflag%....my_re|
00001200  66 25 20 3d 20 6d 65 73  73 61 67 65 25 21 38 0d  |f% = message%!8.|
00001210  07 da 14 c8 8e 20 6d 65  73 73 61 67 65 25 21 31  |..... message%!1|
00001220  36 20 ca 0d 07 e4 08 20  c9 20 30 0d 07 ee 10 20  |6 ..... . 0.... |
00001230  20 f2 74 65 72 6d 69 6e  61 74 65 0d 07 f8 05 cb  | .terminate.....|
00001240  0d 08 02 05 e1 0d 08 0c  05 3a 0d 08 16 10 dd 20  |.........:..... |
00001250  f2 74 65 72 6d 69 6e 61  74 65 0d 08 20 16 c8 99  |.terminate.. ...|
00001260  22 57 69 6d 70 5f 43 6c  6f 73 65 44 6f 77 6e 22  |"Wimp_CloseDown"|
00001270  0d 08 2a 05 e0 0d 08 34  05 3a 0d 08 3e 0f dd 20  |..*....4.:..>.. |
00001280  a4 72 74 6f 7a 28 73 25  29 0d 08 48 08 ea 20 6e  |.rtoz(s%)..H.. n|
00001290  24 0d 08 52 1a c8 95 3f  73 25 3a 6e 24 2b 3d bd  |$..R...?s%:n$+=.|
000012a0  3f 73 25 3a 73 25 2b 3d  31 3a ce 0d 08 5c 07 3d  |?s%:s%+=1:...\.=|
000012b0  6e 24 0d 08 66 05 3a 0d  08 70 0c dd 20 f2 63 6c  |n$..f.:..p.. .cl|
000012c0  6f 73 65 0d 08 7a 27 21  71 25 3d 66 69 73 68 25  |ose..z'!q%=fish%|
000012d0  3a c8 99 20 22 57 69 6d  70 5f 43 6c 6f 73 65 57  |:.. "Wimp_CloseW|
000012e0  69 6e 64 6f 77 22 2c 2c  71 25 0d 08 84 05 e1 0d  |indow",,q%......|
000012f0  08 8e 05 3a 0d 08 98 14  dd 20 f2 6d 6f 61 6e 28  |...:..... .moan(|
00001300  72 65 70 6f 72 74 24 29  0d 08 a2 14 85 20 26 32  |report$)..... &2|
00001310  30 30 30 30 2c 72 65 70  6f 72 74 24 0d 08 ac 05  |0000,report$....|
00001320  3a 0d 08 b6 1b dd 20 f2  65 72 72 6f 72 28 65 72  |:..... .error(er|
00001330  72 25 2c 20 72 65 70 6f  72 74 24 29 0d 08 c0 09  |r%, report$)....|
00001340  ee 20 85 20 87 0d 08 ca  49 e7 20 65 72 72 25 3c  |. . ....I. err%<|
00001350  26 31 30 31 30 30 20 84  20 65 72 72 25 3e 26 32  |&10100 . err%>&2|
00001360  30 30 30 30 20 8c 20 72  65 70 6f 72 74 24 3d 72  |0000 . report$=r|
00001370  65 70 6f 72 74 24 2b 22  20 69 6e 74 65 72 6e 61  |eport$+" interna|
00001380  6c 20 65 72 72 6f 72 20  22 2b c3 28 9e 29 0d 08  |l error "+.(.)..|
00001390  d4 16 21 65 72 72 6f 72  5f 62 6c 6b 25 20 3d 20  |..!error_blk% = |
000013a0  65 72 72 25 0d 08 de 1b  24 28 65 72 72 6f 72 5f  |err%....$(error_|
000013b0  62 6c 6b 25 2b 34 29 3d  72 65 70 6f 72 74 24 0d  |blk%+4)=report$.|
000013c0  08 e8 21 f2 7a 65 72 6f  5f 74 65 72 6d 69 6e 61  |..!.zero_termina|
000013d0  74 65 28 65 72 72 6f 72  5f 62 6c 6b 25 2b 34 29  |te(error_blk%+4)|
000013e0  0d 08 f2 32 c8 99 20 22  57 69 6d 70 5f 52 65 70  |...2.. "Wimp_Rep|
000013f0  6f 72 74 45 72 72 6f 72  22 2c 20 65 72 72 6f 72  |ortError", error|
00001400  5f 62 6c 6b 25 2c 20 31  2c 20 22 57 61 6e 64 65  |_blk%, 1, "Wande|
00001410  72 22 0d 08 fc 05 e1 0d  09 06 05 3a 0d 09 10 18  |r".........:....|
00001420  dd f2 7a 65 72 6f 5f 74  65 72 6d 69 6e 61 74 65  |..zero_terminate|
00001430  28 53 25 29 0d 09 1a 0f  53 25 3f a9 24 53 25 20  |(S%)....S%?.$S% |
00001440  3d 20 30 0d 09 24 05 e1  0d ff                    |= 0..$....|
0000144a