Home » Archimedes archive » Acorn User » AU 1997-06 B.adf » Regulars » StarInfo/Gamble/!Ying/!RunImage

StarInfo/Gamble/!Ying/!RunImage

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

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

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-06 B.adf » Regulars
Filename: StarInfo/Gamble/!Ying/!RunImage
Read OK:
File size: 0C89 bytes
Load address: 0000
Exec address: 0000
File contents
    1PROCSet_Up("Ying!")
    2:
    3REPEAT
    4 PROCPoll
    5UNTIL quit%
    6:
    7SYS "Wimp_CloseDown",Task,Task_Handle%
    8END
    9:
   10DEF FNIconBar(Sprite$)
   11$(DBlock%+4)="S"+Sprite$
   12LOCAL icon%
   13Block%!0=Main_Window%
   14Block%!4=0
   15Block%!8=-68
   16Block%!12=68
   17Block%!16=0
   18Block%!20=&1700311B
   19Block%!24=DBlock%
   20Block%!28=(DBlock%+4)
   21Block%!32=32
   22SYS "Wimp_CreateIcon",,Block% TO icon%
   23=icon%
   24:
   25DEF PROCSet_Up(TaskName$)
   26DIM Block% 1600
   27DIM Iblock% 1280
   28DIM DBlock% 512
   29!DBlock%=0
   30quit%=FALSE
   31Task=&4B534154
   32Delay%=10
   33Po%=1
   34
   35!Block%=0
   36SYS "Wimp_Initialise",300,Task,TaskName$,Block% TO ,Task_Handle%
   37ON ERROR PROCerror
   38
   39Main_Window%=FNLoadTemplate("Main")
   40Bar_Icon%=FNIconBar("!ying")
   41PROCOpenWindow(Main_Window%)
   42OT=TIME+Delay%
   43ENDPROC
   44:
   45DEF PROCPoll
   46
   47SYS "Wimp_Poll",,Block% TO Reason%,Info%
   48
   49 CASE Reason% OF
   50  WHEN 0 : PROCDo_What_Ever
   51  WHEN 2 : SYS "Wimp_OpenWindow",,Info%
   52  WHEN 3 : SYS "Wimp_CloseWindow",,Info%
   53  WHEN 6 : PROCMouse_Check
   54  WHEN 17,18
   55   CASE Block%!16 OF
   56    WHEN 0 : quit%=TRUE
   57    WHEN 3
   58     $(Block%+4)="Hello, I'm going to eat you!"
   59     SYS "Wimp_ReportError",Block%,,"Ying"
   60    ENDCASE
   61 ENDCASE
   62
   63ENDPROC
   64
   65DEF PROCDo_What_Ever
   66T=TIME
   67IF TIME>=OT THEN
   68Po%+=1
   69IF Po%=9 THEN Po%=1
   70OT=(TIME+Delay%)
   71$(DBlock%+4)=("Sying"+STR$ Po%)
   72Block%!0=Main_Window%
   73Block%!4=Bar_Icon%
   74SYS "Wimp_GetIconState",,Block%
   75Block%!8=0
   76Block%!12=0
   77SYS "Wimp_SetIconState",,Block%
   78WAIT
   79ENDIF
   80ENDPROC
   81:
   82DEF PROCKey_Press
   83ENDPROC
   84:
   85DEF PROCMouse_Check
   86  CASE Block%!12 OF
   87  WHEN Main_Window%
   88   CASE Block%!8 OF
   89   WHEN 4,1
   90    Block%!0=Main_Window%
   91    Block%!4=1
   92    SYS "Wimp_DragBox",,Block%
   93  WHEN 2
   94    Block%!0=Main_Window%    
   95    SYS "Wimp_GetWindowInfo",,Block%
   96    SYS "Wimp_DeleteWindow",,Block%
   97    IF (Block%!32 AND 2)=2 THEN
   98     Block%!32=Block%!32 AND (&FF-2)
   99    ELSE
  100     Block%!32=Block%!32 OR 2
  101    ENDIF
  102    SYS "Wimp_CreateWindow",,(Block%+4) TO Main_Window%
  103    Block%!0=Main_Window%    
  104    SYS "Wimp_OpenWindow",,Block%
  105  ENDCASE
  106ENDPROC
  107:
  108DEF PROCDeal_With_Menus
  109CASE Block%!0 OF
  110WHEN 1
  111 quit%=TRUE
  112WHEN 0
  113ENDCASE
  114ENDPROC
  115:
  116DEF FNLoadTemplate(template$)
  117SYS "Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
  118SYS "Wimp_LoadTemplate",,Block%,Iblock%,Iblock%+595,-1,template$,0 TO ,,Iblock%
  119SYS "Wimp_CreateWindow",,Block% TO win%
  120SYS "Wimp_CloseTemplate"
  121=win%
  122:
  123DEF PROCerror
  124!Block%=ERR
  125$(Block%+4)=REPORT$+" at line "+STR$ ERL
  126SYS"Wimp_ReportError",Block%,,"Ying!"
  127END
  128ENDPROC
  129:
  130DEF FNGetFileName(wos$)
  131CASE INSTR(wos$,".") OF
  132WHEN 0 : =wos$
  133OTHERWISE : =FNGetFileName(RIGHT$(wos$,(LEN(wos$)-INSTR(wos$,"."))))
  134ENDCASE
  135:
  136DEF FNGetString(array%)
  137LOCAL s$:s$=""
  138WHILE (?array%<>13)AND(?array%<>0)
  139s$+=CHR$(?array%)
  140array%+=1
  141ENDWHILE
  142=s$
  143:
  144DEF PROCOpenWindow(Win%)
  145Block%!0=Win%
  146SYS "Wimp_GetWindowState",,Block%
  147SYS "Wimp_OpenWindow",,Block%
  148ENDPROC
  149:
  150DEF PROCCloseWindow(Win%)
  151Block%!0=Win%
  152SYS "Wimp_CloseWindow",,Block%
  153ENDPROC
  154:
  155DEF FNReadWriteIcon(Win%,Icon%)
  156Block%!0=Win%
  157Block%!4=Icon%
  158SYS "Wimp_GetIconState",,Block%
  159=$(Block%!28)
  160:
  161DEF PROCWriteToIcon(Win%,Icon%,Text$)
  162Block%!0=Win%
  163Block%!4=Icon%
  164SYS "Wimp_GetIconState",,Block%
  165Block%!8=0
  166Block%!12=0
  167$(Block%!28)=Text$
  168SYS "Wimp_SetIconState",,Block%
  169ENDPROC
�Set_Up("Ying!")
:
�

 �Poll
� quit%
:
)ș "Wimp_CloseDown",Task,Task_Handle%
�
	:

� �IconBar(Sprite$)
$(DBlock%+4)="S"+Sprite$
� icon%

Block%!0=Main_Window%
Block%!4=0
Block%!8=-68
Block%!12=68
Block%!16=0
Block%!20=&1700311B
Block%!24=DBlock%
Block%!28=(DBlock%+4)
Block%!32=32
(ș "Wimp_CreateIcon",,Block% � icon%

=icon%
:
� �Set_Up(TaskName$)
� Block% 1600
� Iblock% 1280
� DBlock% 512
!DBlock%=0
quit%=�
Task=&4B534154
 
Delay%=10
!	Po%=1
"
#
!Block%=0
$Bș "Wimp_Initialise",300,Task,TaskName$,Block% � ,Task_Handle%
%� � �error
&
'&Main_Window%=�LoadTemplate("Main")
(Bar_Icon%=�IconBar("!ying")
)�OpenWindow(Main_Window%)
*OT=�+Delay%
+�
,:
-� �Poll
.
/*ș "Wimp_Poll",,Block% � Reason%,Info%
0
1 Ȏ Reason% �
2  � 0 : �Do_What_Ever
3'  � 2 : ș "Wimp_OpenWindow",,Info%
4(  � 3 : ș "Wimp_CloseWindow",,Info%
5  � 6 : �Mouse_Check
6
  � 17,18
7   Ȏ Block%!16 �
8    � 0 : quit%=�
9    � 3
:3     $(Block%+4)="Hello, I'm going to eat you!"
;-     ș "Wimp_ReportError",Block%,,"Ying"
<	    �
= �
>
?�
@
A� �Do_What_Ever
BT=�
C
� �>=OT �
D
Po%+=1
E� Po%=9 � Po%=1
FOT=(�+Delay%)
G $(DBlock%+4)=("Sying"+� Po%)
HBlock%!0=Main_Window%
IBlock%!4=Bar_Icon%
J"ș "Wimp_GetIconState",,Block%
KBlock%!8=0
LBlock%!12=0
M"ș "Wimp_SetIconState",,Block%
NȖ
O�
P�
Q:
R� �Key_Press
S�
T:
U� �Mouse_Check
V  Ȏ Block%!12 �
W  � Main_Window%
X   Ȏ Block%!8 �
Y   � 4,1
Z    Block%!0=Main_Window%
[    Block%!4=1
\!    ș "Wimp_DragBox",,Block%
]	  � 2
^!    Block%!0=Main_Window%    
_'    ș "Wimp_GetWindowInfo",,Block%
`&    ș "Wimp_DeleteWindow",,Block%
a    � (Block%!32 � 2)=2 �
b&     Block%!32=Block%!32 � (&FF-2)
c	    �
d      Block%!32=Block%!32 � 2
e	    �
f9    ș "Wimp_CreateWindow",,(Block%+4) � Main_Window%
g!    Block%!0=Main_Window%    
h$    ș "Wimp_OpenWindow",,Block%
i  �
j�
k:
l� �Deal_With_Menus
mȎ Block%!0 �
n� 1
o quit%=�
p� 0
q�
r�
s:
t� �LoadTemplate(template$)
u2ș "Wimp_OpenTemplate",,"<Obey$Dir>.Templates"
vQș "Wimp_LoadTemplate",,Block%,Iblock%,Iblock%+595,-1,template$,0 � ,,Iblock%
w)ș "Wimp_CreateWindow",,Block% � win%
xș "Wimp_CloseTemplate"
y	=win%
z:
{� �error
|
!Block%=�
}"$(Block%+4)=�$+" at line "+� �
~(ș"Wimp_ReportError",Block%,,"Ying!"
�
��
�:
�� �GetFileName(wos$)
�Ȏ �wos$,".") �
�� 0 : =wos$
�2 : =�GetFileName(�wos$,(�(wos$)-�wos$,"."))))
��
�:
�� �GetString(array%)
�� s$:s$=""
�!ȕ (?array%<>13)�(?array%<>0)
�s$+=�(?array%)
�
array%+=1
��
�=s$
�:
�� �OpenWindow(Win%)
�Block%!0=Win%
�$ș "Wimp_GetWindowState",,Block%
� ș "Wimp_OpenWindow",,Block%
��
�:
�� �CloseWindow(Win%)
�Block%!0=Win%
�!ș "Wimp_CloseWindow",,Block%
��
�:
� � �ReadWriteIcon(Win%,Icon%)
�Block%!0=Win%
�Block%!4=Icon%
�"ș "Wimp_GetIconState",,Block%
�=$(Block%!28)
�:
�$� �WriteToIcon(Win%,Icon%,Text$)
�Block%!0=Win%
�Block%!4=Icon%
�"ș "Wimp_GetIconState",,Block%
�Block%!8=0
�Block%!12=0
�$(Block%!28)=Text$
�"ș "Wimp_SetIconState",,Block%
��
�
00000000  0d 00 01 14 f2 53 65 74  5f 55 70 28 22 59 69 6e  |.....Set_Up("Yin|
00000010  67 21 22 29 0d 00 02 05  3a 0d 00 03 05 f5 0d 00  |g!")....:.......|
00000020  04 0a 20 f2 50 6f 6c 6c  0d 00 05 0b fd 20 71 75  |.. .Poll..... qu|
00000030  69 74 25 0d 00 06 05 3a  0d 00 07 29 c8 99 20 22  |it%....:...).. "|
00000040  57 69 6d 70 5f 43 6c 6f  73 65 44 6f 77 6e 22 2c  |Wimp_CloseDown",|
00000050  54 61 73 6b 2c 54 61 73  6b 5f 48 61 6e 64 6c 65  |Task,Task_Handle|
00000060  25 0d 00 08 05 e0 0d 00  09 05 3a 0d 00 0a 17 dd  |%.........:.....|
00000070  20 a4 49 63 6f 6e 42 61  72 28 53 70 72 69 74 65  | .IconBar(Sprite|
00000080  24 29 0d 00 0b 1c 24 28  44 42 6c 6f 63 6b 25 2b  |$)....$(DBlock%+|
00000090  34 29 3d 22 53 22 2b 53  70 72 69 74 65 24 0d 00  |4)="S"+Sprite$..|
000000a0  0c 0b ea 20 69 63 6f 6e  25 0d 00 0d 19 42 6c 6f  |... icon%....Blo|
000000b0  63 6b 25 21 30 3d 4d 61  69 6e 5f 57 69 6e 64 6f  |ck%!0=Main_Windo|
000000c0  77 25 0d 00 0e 0e 42 6c  6f 63 6b 25 21 34 3d 30  |w%....Block%!4=0|
000000d0  0d 00 0f 10 42 6c 6f 63  6b 25 21 38 3d 2d 36 38  |....Block%!8=-68|
000000e0  0d 00 10 10 42 6c 6f 63  6b 25 21 31 32 3d 36 38  |....Block%!12=68|
000000f0  0d 00 11 0f 42 6c 6f 63  6b 25 21 31 36 3d 30 0d  |....Block%!16=0.|
00000100  00 12 17 42 6c 6f 63 6b  25 21 32 30 3d 26 31 37  |...Block%!20=&17|
00000110  30 30 33 31 31 42 0d 00  13 15 42 6c 6f 63 6b 25  |00311B....Block%|
00000120  21 32 34 3d 44 42 6c 6f  63 6b 25 0d 00 14 19 42  |!24=DBlock%....B|
00000130  6c 6f 63 6b 25 21 32 38  3d 28 44 42 6c 6f 63 6b  |lock%!28=(DBlock|
00000140  25 2b 34 29 0d 00 15 10  42 6c 6f 63 6b 25 21 33  |%+4)....Block%!3|
00000150  32 3d 33 32 0d 00 16 28  c8 99 20 22 57 69 6d 70  |2=32...(.. "Wimp|
00000160  5f 43 72 65 61 74 65 49  63 6f 6e 22 2c 2c 42 6c  |_CreateIcon",,Bl|
00000170  6f 63 6b 25 20 b8 20 69  63 6f 6e 25 0d 00 17 0a  |ock% . icon%....|
00000180  3d 69 63 6f 6e 25 0d 00  18 05 3a 0d 00 19 18 dd  |=icon%....:.....|
00000190  20 f2 53 65 74 5f 55 70  28 54 61 73 6b 4e 61 6d  | .Set_Up(TaskNam|
000001a0  65 24 29 0d 00 1a 11 de  20 42 6c 6f 63 6b 25 20  |e$)..... Block% |
000001b0  31 36 30 30 0d 00 1b 12  de 20 49 62 6c 6f 63 6b  |1600..... Iblock|
000001c0  25 20 31 32 38 30 0d 00  1c 11 de 20 44 42 6c 6f  |% 1280..... DBlo|
000001d0  63 6b 25 20 35 31 32 0d  00 1d 0e 21 44 42 6c 6f  |ck% 512....!DBlo|
000001e0  63 6b 25 3d 30 0d 00 1e  0b 71 75 69 74 25 3d a3  |ck%=0....quit%=.|
000001f0  0d 00 1f 12 54 61 73 6b  3d 26 34 42 35 33 34 31  |....Task=&4B5341|
00000200  35 34 0d 00 20 0d 44 65  6c 61 79 25 3d 31 30 0d  |54.. .Delay%=10.|
00000210  00 21 09 50 6f 25 3d 31  0d 00 22 04 0d 00 23 0d  |.!.Po%=1.."...#.|
00000220  21 42 6c 6f 63 6b 25 3d  30 0d 00 24 42 c8 99 20  |!Block%=0..$B.. |
00000230  22 57 69 6d 70 5f 49 6e  69 74 69 61 6c 69 73 65  |"Wimp_Initialise|
00000240  22 2c 33 30 30 2c 54 61  73 6b 2c 54 61 73 6b 4e  |",300,Task,TaskN|
00000250  61 6d 65 24 2c 42 6c 6f  63 6b 25 20 b8 20 2c 54  |ame$,Block% . ,T|
00000260  61 73 6b 5f 48 61 6e 64  6c 65 25 0d 00 25 0e ee  |ask_Handle%..%..|
00000270  20 85 20 f2 65 72 72 6f  72 0d 00 26 04 0d 00 27  | . .error..&...'|
00000280  26 4d 61 69 6e 5f 57 69  6e 64 6f 77 25 3d a4 4c  |&Main_Window%=.L|
00000290  6f 61 64 54 65 6d 70 6c  61 74 65 28 22 4d 61 69  |oadTemplate("Mai|
000002a0  6e 22 29 0d 00 28 1f 42  61 72 5f 49 63 6f 6e 25  |n")..(.Bar_Icon%|
000002b0  3d a4 49 63 6f 6e 42 61  72 28 22 21 79 69 6e 67  |=.IconBar("!ying|
000002c0  22 29 0d 00 29 1d f2 4f  70 65 6e 57 69 6e 64 6f  |")..)..OpenWindo|
000002d0  77 28 4d 61 69 6e 5f 57  69 6e 64 6f 77 25 29 0d  |w(Main_Window%).|
000002e0  00 2a 0f 4f 54 3d 91 2b  44 65 6c 61 79 25 0d 00  |.*.OT=.+Delay%..|
000002f0  2b 05 e1 0d 00 2c 05 3a  0d 00 2d 0b dd 20 f2 50  |+....,.:..-.. .P|
00000300  6f 6c 6c 0d 00 2e 04 0d  00 2f 2a c8 99 20 22 57  |oll....../*.. "W|
00000310  69 6d 70 5f 50 6f 6c 6c  22 2c 2c 42 6c 6f 63 6b  |imp_Poll",,Block|
00000320  25 20 b8 20 52 65 61 73  6f 6e 25 2c 49 6e 66 6f  |% . Reason%,Info|
00000330  25 0d 00 30 04 0d 00 31  11 20 c8 8e 20 52 65 61  |%..0...1. .. Rea|
00000340  73 6f 6e 25 20 ca 0d 00  32 19 20 20 c9 20 30 20  |son% ...2.  . 0 |
00000350  3a 20 f2 44 6f 5f 57 68  61 74 5f 45 76 65 72 0d  |: .Do_What_Ever.|
00000360  00 33 27 20 20 c9 20 32  20 3a 20 c8 99 20 22 57  |.3'  . 2 : .. "W|
00000370  69 6d 70 5f 4f 70 65 6e  57 69 6e 64 6f 77 22 2c  |imp_OpenWindow",|
00000380  2c 49 6e 66 6f 25 0d 00  34 28 20 20 c9 20 33 20  |,Info%..4(  . 3 |
00000390  3a 20 c8 99 20 22 57 69  6d 70 5f 43 6c 6f 73 65  |: .. "Wimp_Close|
000003a0  57 69 6e 64 6f 77 22 2c  2c 49 6e 66 6f 25 0d 00  |Window",,Info%..|
000003b0  35 18 20 20 c9 20 36 20  3a 20 f2 4d 6f 75 73 65  |5.  . 6 : .Mouse|
000003c0  5f 43 68 65 63 6b 0d 00  36 0d 20 20 c9 20 31 37  |_Check..6.  . 17|
000003d0  2c 31 38 0d 00 37 15 20  20 20 c8 8e 20 42 6c 6f  |,18..7.   .. Blo|
000003e0  63 6b 25 21 31 36 20 ca  0d 00 38 15 20 20 20 20  |ck%!16 ...8.    |
000003f0  c9 20 30 20 3a 20 71 75  69 74 25 3d b9 0d 00 39  |. 0 : quit%=...9|
00000400  0b 20 20 20 20 c9 20 33  0d 00 3a 33 20 20 20 20  |.    . 3..:3    |
00000410  20 24 28 42 6c 6f 63 6b  25 2b 34 29 3d 22 48 65  | $(Block%+4)="He|
00000420  6c 6c 6f 2c 20 49 27 6d  20 67 6f 69 6e 67 20 74  |llo, I'm going t|
00000430  6f 20 65 61 74 20 79 6f  75 21 22 0d 00 3b 2d 20  |o eat you!"..;- |
00000440  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 52 65 70  |    .. "Wimp_Rep|
00000450  6f 72 74 45 72 72 6f 72  22 2c 42 6c 6f 63 6b 25  |ortError",Block%|
00000460  2c 2c 22 59 69 6e 67 22  0d 00 3c 09 20 20 20 20  |,,"Ying"..<.    |
00000470  cb 0d 00 3d 06 20 cb 0d  00 3e 04 0d 00 3f 05 e1  |...=. ...>...?..|
00000480  0d 00 40 04 0d 00 41 13  dd 20 f2 44 6f 5f 57 68  |..@...A.. .Do_Wh|
00000490  61 74 5f 45 76 65 72 0d  00 42 07 54 3d 91 0d 00  |at_Ever..B.T=...|
000004a0  43 0d e7 20 91 3e 3d 4f  54 20 8c 0d 00 44 0a 50  |C.. .>=OT ...D.P|
000004b0  6f 25 2b 3d 31 0d 00 45  13 e7 20 50 6f 25 3d 39  |o%+=1..E.. Po%=9|
000004c0  20 8c 20 50 6f 25 3d 31  0d 00 46 11 4f 54 3d 28  | . Po%=1..F.OT=(|
000004d0  91 2b 44 65 6c 61 79 25  29 0d 00 47 20 24 28 44  |.+Delay%)..G $(D|
000004e0  42 6c 6f 63 6b 25 2b 34  29 3d 28 22 53 79 69 6e  |Block%+4)=("Syin|
000004f0  67 22 2b c3 20 50 6f 25  29 0d 00 48 19 42 6c 6f  |g"+. Po%)..H.Blo|
00000500  63 6b 25 21 30 3d 4d 61  69 6e 5f 57 69 6e 64 6f  |ck%!0=Main_Windo|
00000510  77 25 0d 00 49 16 42 6c  6f 63 6b 25 21 34 3d 42  |w%..I.Block%!4=B|
00000520  61 72 5f 49 63 6f 6e 25  0d 00 4a 22 c8 99 20 22  |ar_Icon%..J".. "|
00000530  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
00000540  65 22 2c 2c 42 6c 6f 63  6b 25 0d 00 4b 0e 42 6c  |e",,Block%..K.Bl|
00000550  6f 63 6b 25 21 38 3d 30  0d 00 4c 0f 42 6c 6f 63  |ock%!8=0..L.Bloc|
00000560  6b 25 21 31 32 3d 30 0d  00 4d 22 c8 99 20 22 57  |k%!12=0..M".. "W|
00000570  69 6d 70 5f 53 65 74 49  63 6f 6e 53 74 61 74 65  |imp_SetIconState|
00000580  22 2c 2c 42 6c 6f 63 6b  25 0d 00 4e 06 c8 96 0d  |",,Block%..N....|
00000590  00 4f 05 cd 0d 00 50 05  e1 0d 00 51 05 3a 0d 00  |.O....P....Q.:..|
000005a0  52 10 dd 20 f2 4b 65 79  5f 50 72 65 73 73 0d 00  |R.. .Key_Press..|
000005b0  53 05 e1 0d 00 54 05 3a  0d 00 55 12 dd 20 f2 4d  |S....T.:..U.. .M|
000005c0  6f 75 73 65 5f 43 68 65  63 6b 0d 00 56 14 20 20  |ouse_Check..V.  |
000005d0  c8 8e 20 42 6c 6f 63 6b  25 21 31 32 20 ca 0d 00  |.. Block%!12 ...|
000005e0  57 14 20 20 c9 20 4d 61  69 6e 5f 57 69 6e 64 6f  |W.  . Main_Windo|
000005f0  77 25 0d 00 58 14 20 20  20 c8 8e 20 42 6c 6f 63  |w%..X.   .. Bloc|
00000600  6b 25 21 38 20 ca 0d 00  59 0c 20 20 20 c9 20 34  |k%!8 ...Y.   . 4|
00000610  2c 31 0d 00 5a 1d 20 20  20 20 42 6c 6f 63 6b 25  |,1..Z.    Block%|
00000620  21 30 3d 4d 61 69 6e 5f  57 69 6e 64 6f 77 25 0d  |!0=Main_Window%.|
00000630  00 5b 12 20 20 20 20 42  6c 6f 63 6b 25 21 34 3d  |.[.    Block%!4=|
00000640  31 0d 00 5c 21 20 20 20  20 c8 99 20 22 57 69 6d  |1..\!    .. "Wim|
00000650  70 5f 44 72 61 67 42 6f  78 22 2c 2c 42 6c 6f 63  |p_DragBox",,Bloc|
00000660  6b 25 0d 00 5d 09 20 20  c9 20 32 0d 00 5e 21 20  |k%..].  . 2..^! |
00000670  20 20 20 42 6c 6f 63 6b  25 21 30 3d 4d 61 69 6e  |   Block%!0=Main|
00000680  5f 57 69 6e 64 6f 77 25  20 20 20 20 0d 00 5f 27  |_Window%    .._'|
00000690  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |    .. "Wimp_Get|
000006a0  57 69 6e 64 6f 77 49 6e  66 6f 22 2c 2c 42 6c 6f  |WindowInfo",,Blo|
000006b0  63 6b 25 0d 00 60 26 20  20 20 20 c8 99 20 22 57  |ck%..`&    .. "W|
000006c0  69 6d 70 5f 44 65 6c 65  74 65 57 69 6e 64 6f 77  |imp_DeleteWindow|
000006d0  22 2c 2c 42 6c 6f 63 6b  25 0d 00 61 1d 20 20 20  |",,Block%..a.   |
000006e0  20 e7 20 28 42 6c 6f 63  6b 25 21 33 32 20 80 20  | . (Block%!32 . |
000006f0  32 29 3d 32 20 8c 0d 00  62 26 20 20 20 20 20 42  |2)=2 ...b&     B|
00000700  6c 6f 63 6b 25 21 33 32  3d 42 6c 6f 63 6b 25 21  |lock%!32=Block%!|
00000710  33 32 20 80 20 28 26 46  46 2d 32 29 0d 00 63 09  |32 . (&FF-2)..c.|
00000720  20 20 20 20 cc 0d 00 64  20 20 20 20 20 20 42 6c  |    ...d      Bl|
00000730  6f 63 6b 25 21 33 32 3d  42 6c 6f 63 6b 25 21 33  |ock%!32=Block%!3|
00000740  32 20 84 20 32 0d 00 65  09 20 20 20 20 cd 0d 00  |2 . 2..e.    ...|
00000750  66 39 20 20 20 20 c8 99  20 22 57 69 6d 70 5f 43  |f9    .. "Wimp_C|
00000760  72 65 61 74 65 57 69 6e  64 6f 77 22 2c 2c 28 42  |reateWindow",,(B|
00000770  6c 6f 63 6b 25 2b 34 29  20 b8 20 4d 61 69 6e 5f  |lock%+4) . Main_|
00000780  57 69 6e 64 6f 77 25 0d  00 67 21 20 20 20 20 42  |Window%..g!    B|
00000790  6c 6f 63 6b 25 21 30 3d  4d 61 69 6e 5f 57 69 6e  |lock%!0=Main_Win|
000007a0  64 6f 77 25 20 20 20 20  0d 00 68 24 20 20 20 20  |dow%    ..h$    |
000007b0  c8 99 20 22 57 69 6d 70  5f 4f 70 65 6e 57 69 6e  |.. "Wimp_OpenWin|
000007c0  64 6f 77 22 2c 2c 42 6c  6f 63 6b 25 0d 00 69 07  |dow",,Block%..i.|
000007d0  20 20 cb 0d 00 6a 05 e1  0d 00 6b 05 3a 0d 00 6c  |  ...j....k.:..l|
000007e0  16 dd 20 f2 44 65 61 6c  5f 57 69 74 68 5f 4d 65  |.. .Deal_With_Me|
000007f0  6e 75 73 0d 00 6d 11 c8  8e 20 42 6c 6f 63 6b 25  |nus..m... Block%|
00000800  21 30 20 ca 0d 00 6e 07  c9 20 31 0d 00 6f 0c 20  |!0 ...n.. 1..o. |
00000810  71 75 69 74 25 3d b9 0d  00 70 07 c9 20 30 0d 00  |quit%=...p.. 0..|
00000820  71 05 cb 0d 00 72 05 e1  0d 00 73 05 3a 0d 00 74  |q....r....s.:..t|
00000830  1e dd 20 a4 4c 6f 61 64  54 65 6d 70 6c 61 74 65  |.. .LoadTemplate|
00000840  28 74 65 6d 70 6c 61 74  65 24 29 0d 00 75 32 c8  |(template$)..u2.|
00000850  99 20 22 57 69 6d 70 5f  4f 70 65 6e 54 65 6d 70  |. "Wimp_OpenTemp|
00000860  6c 61 74 65 22 2c 2c 22  3c 4f 62 65 79 24 44 69  |late",,"<Obey$Di|
00000870  72 3e 2e 54 65 6d 70 6c  61 74 65 73 22 0d 00 76  |r>.Templates"..v|
00000880  51 c8 99 20 22 57 69 6d  70 5f 4c 6f 61 64 54 65  |Q.. "Wimp_LoadTe|
00000890  6d 70 6c 61 74 65 22 2c  2c 42 6c 6f 63 6b 25 2c  |mplate",,Block%,|
000008a0  49 62 6c 6f 63 6b 25 2c  49 62 6c 6f 63 6b 25 2b  |Iblock%,Iblock%+|
000008b0  35 39 35 2c 2d 31 2c 74  65 6d 70 6c 61 74 65 24  |595,-1,template$|
000008c0  2c 30 20 b8 20 2c 2c 49  62 6c 6f 63 6b 25 0d 00  |,0 . ,,Iblock%..|
000008d0  77 29 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |w).. "Wimp_Creat|
000008e0  65 57 69 6e 64 6f 77 22  2c 2c 42 6c 6f 63 6b 25  |eWindow",,Block%|
000008f0  20 b8 20 77 69 6e 25 0d  00 78 1b c8 99 20 22 57  | . win%..x... "W|
00000900  69 6d 70 5f 43 6c 6f 73  65 54 65 6d 70 6c 61 74  |imp_CloseTemplat|
00000910  65 22 0d 00 79 09 3d 77  69 6e 25 0d 00 7a 05 3a  |e"..y.=win%..z.:|
00000920  0d 00 7b 0c dd 20 f2 65  72 72 6f 72 0d 00 7c 0d  |..{.. .error..|.|
00000930  21 42 6c 6f 63 6b 25 3d  9f 0d 00 7d 22 24 28 42  |!Block%=...}"$(B|
00000940  6c 6f 63 6b 25 2b 34 29  3d f6 24 2b 22 20 61 74  |lock%+4)=.$+" at|
00000950  20 6c 69 6e 65 20 22 2b  c3 20 9e 0d 00 7e 28 c8  | line "+. ...~(.|
00000960  99 22 57 69 6d 70 5f 52  65 70 6f 72 74 45 72 72  |."Wimp_ReportErr|
00000970  6f 72 22 2c 42 6c 6f 63  6b 25 2c 2c 22 59 69 6e  |or",Block%,,"Yin|
00000980  67 21 22 0d 00 7f 05 e0  0d 00 80 05 e1 0d 00 81  |g!".............|
00000990  05 3a 0d 00 82 18 dd 20  a4 47 65 74 46 69 6c 65  |.:..... .GetFile|
000009a0  4e 61 6d 65 28 77 6f 73  24 29 0d 00 83 13 c8 8e  |Name(wos$)......|
000009b0  20 a7 77 6f 73 24 2c 22  2e 22 29 20 ca 0d 00 84  | .wos$,".") ....|
000009c0  0f c9 20 30 20 3a 20 3d  77 6f 73 24 0d 00 85 32  |.. 0 : =wos$...2|
000009d0  7f 20 3a 20 3d a4 47 65  74 46 69 6c 65 4e 61 6d  |. : =.GetFileNam|
000009e0  65 28 c2 77 6f 73 24 2c  28 a9 28 77 6f 73 24 29  |e(.wos$,(.(wos$)|
000009f0  2d a7 77 6f 73 24 2c 22  2e 22 29 29 29 29 0d 00  |-.wos$,"."))))..|
00000a00  86 05 cb 0d 00 87 05 3a  0d 00 88 18 dd 20 a4 47  |.......:..... .G|
00000a10  65 74 53 74 72 69 6e 67  28 61 72 72 61 79 25 29  |etString(array%)|
00000a20  0d 00 89 0e ea 20 73 24  3a 73 24 3d 22 22 0d 00  |..... s$:s$=""..|
00000a30  8a 21 c8 95 20 28 3f 61  72 72 61 79 25 3c 3e 31  |.!.. (?array%<>1|
00000a40  33 29 80 28 3f 61 72 72  61 79 25 3c 3e 30 29 0d  |3).(?array%<>0).|
00000a50  00 8b 12 73 24 2b 3d bd  28 3f 61 72 72 61 79 25  |...s$+=.(?array%|
00000a60  29 0d 00 8c 0d 61 72 72  61 79 25 2b 3d 31 0d 00  |)....array%+=1..|
00000a70  8d 05 ce 0d 00 8e 07 3d  73 24 0d 00 8f 05 3a 0d  |.......=s$....:.|
00000a80  00 90 17 dd 20 f2 4f 70  65 6e 57 69 6e 64 6f 77  |.... .OpenWindow|
00000a90  28 57 69 6e 25 29 0d 00  91 11 42 6c 6f 63 6b 25  |(Win%)....Block%|
00000aa0  21 30 3d 57 69 6e 25 0d  00 92 24 c8 99 20 22 57  |!0=Win%...$.. "W|
00000ab0  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00000ac0  74 65 22 2c 2c 42 6c 6f  63 6b 25 0d 00 93 20 c8  |te",,Block%... .|
00000ad0  99 20 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |. "Wimp_OpenWind|
00000ae0  6f 77 22 2c 2c 42 6c 6f  63 6b 25 0d 00 94 05 e1  |ow",,Block%.....|
00000af0  0d 00 95 05 3a 0d 00 96  18 dd 20 f2 43 6c 6f 73  |....:..... .Clos|
00000b00  65 57 69 6e 64 6f 77 28  57 69 6e 25 29 0d 00 97  |eWindow(Win%)...|
00000b10  11 42 6c 6f 63 6b 25 21  30 3d 57 69 6e 25 0d 00  |.Block%!0=Win%..|
00000b20  98 21 c8 99 20 22 57 69  6d 70 5f 43 6c 6f 73 65  |.!.. "Wimp_Close|
00000b30  57 69 6e 64 6f 77 22 2c  2c 42 6c 6f 63 6b 25 0d  |Window",,Block%.|
00000b40  00 99 05 e1 0d 00 9a 05  3a 0d 00 9b 20 dd 20 a4  |........:... . .|
00000b50  52 65 61 64 57 72 69 74  65 49 63 6f 6e 28 57 69  |ReadWriteIcon(Wi|
00000b60  6e 25 2c 49 63 6f 6e 25  29 0d 00 9c 11 42 6c 6f  |n%,Icon%)....Blo|
00000b70  63 6b 25 21 30 3d 57 69  6e 25 0d 00 9d 12 42 6c  |ck%!0=Win%....Bl|
00000b80  6f 63 6b 25 21 34 3d 49  63 6f 6e 25 0d 00 9e 22  |ock%!4=Icon%..."|
00000b90  c8 99 20 22 57 69 6d 70  5f 47 65 74 49 63 6f 6e  |.. "Wimp_GetIcon|
00000ba0  53 74 61 74 65 22 2c 2c  42 6c 6f 63 6b 25 0d 00  |State",,Block%..|
00000bb0  9f 11 3d 24 28 42 6c 6f  63 6b 25 21 32 38 29 0d  |..=$(Block%!28).|
00000bc0  00 a0 05 3a 0d 00 a1 24  dd 20 f2 57 72 69 74 65  |...:...$. .Write|
00000bd0  54 6f 49 63 6f 6e 28 57  69 6e 25 2c 49 63 6f 6e  |ToIcon(Win%,Icon|
00000be0  25 2c 54 65 78 74 24 29  0d 00 a2 11 42 6c 6f 63  |%,Text$)....Bloc|
00000bf0  6b 25 21 30 3d 57 69 6e  25 0d 00 a3 12 42 6c 6f  |k%!0=Win%....Blo|
00000c00  63 6b 25 21 34 3d 49 63  6f 6e 25 0d 00 a4 22 c8  |ck%!4=Icon%...".|
00000c10  99 20 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |. "Wimp_GetIconS|
00000c20  74 61 74 65 22 2c 2c 42  6c 6f 63 6b 25 0d 00 a5  |tate",,Block%...|
00000c30  0e 42 6c 6f 63 6b 25 21  38 3d 30 0d 00 a6 0f 42  |.Block%!8=0....B|
00000c40  6c 6f 63 6b 25 21 31 32  3d 30 0d 00 a7 16 24 28  |lock%!12=0....$(|
00000c50  42 6c 6f 63 6b 25 21 32  38 29 3d 54 65 78 74 24  |Block%!28)=Text$|
00000c60  0d 00 a8 22 c8 99 20 22  57 69 6d 70 5f 53 65 74  |...".. "Wimp_Set|
00000c70  49 63 6f 6e 53 74 61 74  65 22 2c 2c 42 6c 6f 63  |IconState",,Bloc|
00000c80  6b 25 0d 00 a9 05 e1 0d  ff                       |k%.......|
00000c89