Home » Archimedes archive » Micro User » MU 1992-07.adf » PD » !Modes/!RunImage

!Modes/!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 1992-07.adf » PD
Filename: !Modes/!RunImage
Read OK:
File size: 18D6 bytes
Load address: 0000
Exec address: 0000
File contents
   10REM > <Modes$Dir>.!RunImage
   20
   30DIM q% 2500
   40$q%="TASK"
   50SYS "Wimp_Initialise",200,!q%,"Mode Selector" TO ,task%
   60SYS "Wimp_ClaimInterface",task%
   70SYS "Hourglass_On"
   80:
   90S%=OPENIN "<Modes$Dir>.!Sprites":T%=EXT#S%+16:CLOSE #S%
  100DIM sp T%:!sp=T%:sp!4=0
  110sp!8=16:sp!12=16
  120SYS "OS_SpriteOp",&209,sp
  130SYS "OS_SpriteOp",&20A,sp,"<Modes$Dir>.!Sprites"
  140sicon=FNicon_create(-1,0,0,68,68,0,0,&3002,"!Modes")
  150:
  160DIM text$(50),setting(50),flags(50)
  170DIM submenu(50),ref(50),menupos(20)
  180DIM menu% 512
  190DIM indirect% &2000
  200DIM msgblk% 256
  210iptr%=indirect%:iend%=iptr%+&2000
  220ONERROR PROCmerd
  230:
  240PROCopentemplatefile("<Modes$Dir>.Templates")
  250SYS "Wimp_LoadTemplate",,q%,indirect%,indirect%+399,-1,"main",0
  260SYS "Wimp_CreateWindow",,q% TO main%
  270SYS "Wimp_LoadTemplate",,q%,indirect%+400,indirect%+599,-1,"info",0
  280SYS "Wimp_CreateWindow",,q% TO info%
  290SYS "Wimp_LoadTemplate",,q%,indirect%+600,indirect%+799,-1,"me",0
  300SYS "Wimp_CreateWindow",,q% TO me%
  310PROCclosetemplatefile
  320:
  330SYS "Hourglass_Off"
  340REPEAT
  350  PROCaction(FNpoll(0))
  360UNTIL FALSE
  370:
  380DEFPROCclosedown
  390$q%="TASK"
  400SYS "Wimp_CloseDown",task%,q%!0
  410END
  420ENDPROC
  430:
  440DEFPROCclickwindow(mousex%,mousey%,button%,handle%,icon%,ob%)
  450CASE handle% OF
  460  WHEN main% :PROCclickmain(button%,icon%)
  470  WHEN info% :PROCclickinfo(button%,icon%)
  480  WHEN me%   :PROCclickme(button%,icon%)
  490  WHEN -2    :PROCclickiconbar(button%,icon%)
  500ENDCASE
  510ENDPROC
  520:
  530DEFPROCclickiconbar(button%,icon%)
  540IF icon%<0 THEN ENDPROC
  550CASE TRUE OF
  560  WHEN button%=2
  570    REM opens the iconbar menu
  580    IF icon%=sicon THEN
  590      PROCmenu_sicon
  600    ENDIF
  610  WHEN button%=4
  620      PROCopenwindow(main%,FALSE,-1)
  630      open%=TRUE
  640    ENDIF
  650ENDCASE
  660ENDPROC
  670:
  680DEFPROCmenu_sicon
  690no=0:MOUSE x,y,b
  700PROCdefine_menu_text("Info",no,0,0,0,0,&10021,info%,0):no+=1
  710PROCdefine_menu_text("Quit",no,0,0,0,0,&10021,0,-1):no+=1
  720PROCcreate_menu("Modes",no,100,x-64,96+(no*40))
  730menu_nr%=0
  740claimmenu$="sicon"
  750ENDPROC
  760:
  770DEFPROCreceive(q%)
  780CASE q%!16 OF
  790WHEN 0 :PROCclosedown
  800ENDCASE
  810ENDPROC
  820:
  830DEFPROCopenwindow(handle%,full%,front%)
  840q%!0=handle%
  850IF NOT full% THEN SYS "Wimp_GetWindowState",0,q%
  860IF front% THEN q%!28=-1
  870SYS "Wimp_OpenWindow",0,q%
  880ENDPROC
  890
  900DEFPROCclosewindow(handle%)
  910IF FNoktoclosew(handle%) THEN
  920  q%!0=handle%
  930  SYS "Wimp_CloseWindow",0,q%
  940ENDIF
  950ENDPROC
  960
  970DEFFNpoll(mask%)
  980SYS "Wimp_Poll",mask%,q% TO a%
  990SYS "Wimp_PollPointer",a%,,task%
 1000=a%
 1010
 1020DEFPROCaction(evnt%)
 1030CASE evnt% OF
 1040  WHEN 0:PROCdo_background_task
 1050  WHEN 1:PROCredrawwindow(q%!0)
 1060  WHEN 2:PROCopenwindow(q%!0,TRUE,0)
 1070  WHEN 3:PROCclosewindow(q%!0)
 1080  WHEN 4:
 1090  WHEN 5:
 1100  WHEN 6:PROCclickwindow(!q%,q%!4,q%!8,q%!12,q%!16,q%!20)
 1110  WHEN 7:IF claimdrag$<>"" THEN junk=EVAL("FNuserdrag_"+claimdrag$)
 1120  WHEN 8:
 1130  WHEN 9:IF claimmenu$<>"" THEN PROCwhichmenu(claimmenu$)
 1140  WHEN 17,18:PROCreceive(q%)
 1150ENDCASE
 1160ENDPROC
 1170
 1240DEFPROClwaorigin(b,RETURN x%,RETURN y%)
 1250x%=b!0-b!16:y%=b!12-b!20
 1260ENDPROC
 1270
 1280DEFFNicon_create(window%,minx%,miny%,width%,height%,fg%,bg%,flg%,data$)
 1290LOCAL i%
 1300q%!0=window%
 1310q%!4=minx%:q%!8=miny%
 1320q%!12=minx%+width%:q%!16=miny%+height%
 1330q%!20=flg% OR bg%<<28 OR fg%<<24
 1340IF q%!20 AND &100 THEN
 1350  i%=INSTR(data$,",")
 1360  q%!24=EVAL(LEFT$(data$,i%-1))
 1370  q%!28=-1
 1380  q%!32=EVAL(MID$(data$,i%+1))
 1390ELSE
 1400$(q%+24)=LEFT$(data$,11)
 1410ENDIF
 1420SYS "Wimp_CreateIcon",0,q% TO i%
 1430=i%
 1820
 1920DEFFNicon_getdata(q%,whandle%,ihandle%)
 1930q%!0=whandle%
 1940q%!4=ihandle%
 1950SYS "Wimp_GetIconState",,q%
 1960=$(q%!28)
 2010
 2020DEFPROCnewvals
 2030gtx=q%!36:gty=q%!40
 2040wbx=q%!4:wby=q%!8
 2050wtx=q%!12:wty=q%!16
 2060xsc=q%!20:ysc=q%!24
 2070hp=wtx-wbx:vp=wty-wby:ebx=xsc
 2080etx=xsc+hp:ety=ysc:eby=ysc-vp
 2090ENDPROC
 2100
 2110DEFPROCdefine_menu_text(text$,n,w,t,d,s,flags,sm,l)
 2120text$(n)=text$
 2130setting(n)=0
 2140IF w THEN setting(n)=setting(n) OR &04:flags=flags OR &100
 2150IF t THEN setting(n)=setting(n) OR &01
 2160IF d THEN setting(n)=setting(n) OR &02
 2170IF l THEN setting(n)=setting(n) OR &80
 2180IF s THEN flags=flags OR &400000
 2190flags(n)=flags
 2200submenu(n)=sm
 2210ENDPROC
 2220
 2230DEFPROCcreate_menu(title$,n,width%,x,y)
 2240mb%=menu%
 2250menus=0:q=0
 2260REPEAT
 2270  menupos(menus)=mb%:menus+=1
 2280  $mb%=title$
 2290  mb%?12=7
 2300  mb%?13=2
 2310  mb%?14=7
 2320  mb%?15=0
 2330  mb%!16=width%
 2340  mb%!20=40 :REM height of menu items
 2350  mb%!24=0  :REM vertical gap between items (also top & bottom)
 2360  itemptr=mb%+28
 2370  REPEAT
 2380    itemptr!0=setting(q)
 2390    ref(q)=itemptr+4
 2400    itemptr!8=flags(q) OR 0<<28 OR 7<<24
 2410    IF (flags(q) AND &100)=0 THEN
 2420      $(itemptr+12)=text$(q)
 2430    ELSE
 2440      pos=INSTR(text$(q),"(")
 2450      itemptr!12=EVAL(LEFT$(text$(q),pos-1))
 2460      itemptr!16=-1
 2470      itemptr!20=EVAL(RIGHT$(text$(q),LEN(text$(q))-pos))
 2480    ENDIF
 2490    itemptr+=24:q+=1
 2500  UNTIL (setting(q-1) AND &80)>0
 2510  mb%=itemptr
 2520  IF q<>n THEN title$=text$(q):q+=1
 2530UNTIL q=n
 2540
 2550FOR q=0 TO n-1
 2560  IF submenu(q)>0 AND submenu(q)<menus THEN
 2570    !ref(q)=menupos(submenu(q))
 2580  ELSE
 2590    !ref(q)=submenu(q):REM was -1 i.e. submenu disallowed! This change
 2600                      :REM allows a window handle to be used
 2610  ENDIF
 2620NEXT q
 2630SYS "Wimp_CreateMenu",,menu%,x,y
 2640ENDPROC
 2650
 2660DEFPROCopentemplatefile(file$)
 2670SYS "Wimp_OpenTemplate",,file$
 2680ENDPROC
 2690
 2750DEFPROCclosetemplatefile
 2760SYS "Wimp_CloseTemplate"
 2770ENDPROC
 3160
 3590DEFPROCdo_background_task
 3600ENDPROC
 3610
 3620DEFPROCredrawwindow(handle%)
 3630LOCAL void%
 3640q%!0=handle%
 3650SYS "Wimp_RedrawWindow",0,q% TO more%
 3660PROClwaorigin(q%+4,x0%,y0%)
 3670WHILE more%
 3680  PROCnewvals
 3690  CASE handle% OF
 3700  ENDCASE
 3710  SYS "Wimp_BorderWindow",,q%
 3720  SYS "Wimp_GetRectangle",0,q% TO more%
 3730ENDWHILE
 3740ENDPROC
 3750
 3760DEFPROCclickmain(button%,icon%)
 3770CASE TRUE OF
 3780WHEN (button% AND 4)=4 AND icon%<>-1 OR (button% AND 1)=1 AND icon%<>-1
 3790modet$=FNicon_getdata(q%,main%,icon%)
 3800changemode%=VAL(modet$)
 3810IF changemode%=3 OR changemode%=6 OR changemode%=7 OR changemode%=29 THEN ENDPROC
 3820SYS "Wimp_SetMode",changemode%
 3830ENDCASE
 3840ENDPROC
 3850:
 3860DEFPROCclickinfo(button%,icon%)
 3870CASE TRUE OF
 3880WHEN (button% AND 4)=4 AND icon%<>-1 OR (button% AND 1)=1 AND icon%<>-1
 3890CASE icon% OF
 3900  WHEN 2 :PROCslabicon
 3910          PROCopenwindow(me%,FALSE,-1)
 3920ENDCASE
 3930ENDCASE
 3940ENDPROC
 3950:
 3960DEFFNoktoclosew(handle%)
 3970LOCAL shutting%
 3980shutting%=TRUE
 3990=shutting%
 4000
 4090DEFPROCmerd
 4100OSCLI "Error "+REPORT$+" : "+STR$(ERL):ENDPROC
 4110ENDPROC
 4120
 4130DEFPROCslabicon
 4140SYS "Wimp_BorderIcon",,q%
 4150q%!8=0
 4160SYS "Wimp_BorderIcon",,q%
 4170ENDPROC
 4180
 4190DEFFNmenuselect_sicon
 4200LOCAL level0
 4210level0=q%!0
 4220CASE level0 OF
 4230  WHEN 0 :PROCopenwindow(info%,FALSE,-1)
 4240  WHEN 1 :PROCclosedown
 4250ENDCASE
 4260=0
 4270
 4280DEFPROCwhichmenu(menu$)
 4290LOCAL void%
 4300CASE menu$ OF
 4310  WHEN "sicon" :void%=FNmenuselect_sicon
 4320ENDCASE
 4330ENDPROC
 4340
 4350DEFPROCclickme(button%,icon%)
 4360CASE TRUE OF
 4370WHEN (button% AND 4)=4 AND icon%<>-1 OR (button% AND 1)=1 AND icon%<>-1
 4380CASE icon% OF
 4390  WHEN 12 :PROCslabicon
 4400           PROCclosewindow(me%)
 4410ENDCASE
 4420ENDCASE
 4430ENDPROC
 4440:

� > <Modes$Dir>.!RunImage


� q% 2500
($q%="TASK"
29ș "Wimp_Initialise",200,!q%,"Mode Selector" � ,task%
<"ș "Wimp_ClaimInterface",task%
Fș "Hourglass_On"
P:
Z0S%=� "<Modes$Dir>.!Sprites":T%=�#S%+16:� #S%
d� sp T%:!sp=T%:sp!4=0
nsp!8=16:sp!12=16
xș "OS_SpriteOp",&209,sp
�3ș "OS_SpriteOp",&20A,sp,"<Modes$Dir>.!Sprites"
�7sicon=�icon_create(-1,0,0,68,68,0,0,&3002,"!Modes")
�:
�%� text$(50),setting(50),flags(50)
�%� submenu(50),ref(50),menupos(20)
�� menu% 512
�� indirect% &2000
�� msgblk% 256
�%iptr%=indirect%:iend%=iptr%+&2000
�� �merd
�:
�.�opentemplatefile("<Modes$Dir>.Templates")
�Bș "Wimp_LoadTemplate",,q%,indirect%,indirect%+399,-1,"main",0
&ș "Wimp_CreateWindow",,q% � main%
Fș "Wimp_LoadTemplate",,q%,indirect%+400,indirect%+599,-1,"info",0
&ș "Wimp_CreateWindow",,q% � info%
"Dș "Wimp_LoadTemplate",,q%,indirect%+600,indirect%+799,-1,"me",0
,$ș "Wimp_CreateWindow",,q% � me%
6�closetemplatefile
@:
Jș "Hourglass_Off"
T�
^  �action(�poll(0))
h� �
r:
|��closedown
�$q%="TASK"
�"ș "Wimp_CloseDown",task%,q%!0
��
��
�:
�<��clickwindow(mousex%,mousey%,button%,handle%,icon%,ob%)
�Ȏ handle% �
�(  � main% :�clickmain(button%,icon%)
�(  � info% :�clickinfo(button%,icon%)
�&  � me%   :�clickme(button%,icon%)
�+  � -2    :�clickiconbar(button%,icon%)
��
��
:
!��clickiconbar(button%,icon%)
� icon%<0 � �
&
Ȏ � �
0  � button%=2
:     � opens the iconbar menu
D    � icon%=sicon �
N      �menu_sicon
X	    �
b  � button%=4
l!      �openwindow(main%,�,-1)
v      open%=�
�	    �
��
��
�:
���menu_sicon
�no=0:ȗ x,y,b
�=�define_menu_text("Info",no,0,0,0,0,&10021,info%,0):no+=1
�:�define_menu_text("Quit",no,0,0,0,0,&10021,0,-1):no+=1
�0�create_menu("Modes",no,100,x-64,96+(no*40))
�menu_nr%=0
�claimmenu$="sicon"
��
�:
��receive(q%)
Ȏ q%!16 �
� 0 :�closedown
 �
*�
4:
>&��openwindow(handle%,full%,front%)
Hq%!0=handle%
R-� � full% � ș "Wimp_GetWindowState",0,q%
\� front% � q%!28=-1
fș "Wimp_OpenWindow",0,q%
p�
z
���closewindow(handle%)
�� �oktoclosew(handle%) �
�  q%!0=handle%
�   ș "Wimp_CloseWindow",0,q%
��
��
�
�ݤpoll(mask%)
� ș "Wimp_Poll",mask%,q% � a%
�#ș "Wimp_PollPointer",a%,,task%
�=a%
�
���action(evnt%)
Ȏ evnt% �
  � 0:�do_background_task
  � 1:�redrawwindow(q%!0)
$  � 2:�openwindow(q%!0,�,0)
.  � 3:�closewindow(q%!0)
8
  � 4:
B
  � 5:
L7  � 6:�clickwindow(!q%,q%!4,q%!8,q%!12,q%!16,q%!20)
V=  � 7:� claimdrag$<>"" � junk=�("FNuserdrag_"+claimdrag$)
`
  � 8:
j3  � 9:� claimmenu$<>"" � �whichmenu(claimmenu$)
t  � 17,18:�receive(q%)
~�
��
�
���lwaorigin(b,� x%,� y%)
�x%=b!0-b!16:y%=b!12-b!20
��
�
Hݤicon_create(window%,minx%,miny%,width%,height%,fg%,bg%,flg%,data$)

� i%
q%!0=window%
q%!4=minx%:q%!8=miny%
(*q%!12=minx%+width%:q%!16=miny%+height%
2"q%!20=flg% � bg%<<28 � fg%<<24
<� q%!20 � &100 �
F  i%=�data$,",")
P  q%!24=�(�data$,i%-1))
Z  q%!28=-1
d  q%!32=�(�data$,i%+1))
n�
x$(q%+24)=�data$,11)
��
�"ș "Wimp_CreateIcon",0,q% � i%
�=i%

�(ݤicon_getdata(q%,whandle%,ihandle%)
�q%!0=whandle%
�q%!4=ihandle%
�ș "Wimp_GetIconState",,q%
�
=$(q%!28)
�
�
��newvals
�gtx=q%!36:gty=q%!40
�wbx=q%!4:wby=q%!8
wtx=q%!12:wty=q%!16
xsc=q%!20:ysc=q%!24
!hp=wtx-wbx:vp=wty-wby:ebx=xsc
 !etx=xsc+hp:ety=ysc:eby=ysc-vp
*�
4
>2��define_menu_text(text$,n,w,t,d,s,flags,sm,l)
Htext$(n)=text$
Rsetting(n)=0
\8� w � setting(n)=setting(n) � &04:flags=flags � &100
f%� t � setting(n)=setting(n) � &01
p%� d � setting(n)=setting(n) � &02
z%� l � setting(n)=setting(n) � &80
�� s � flags=flags � &400000
�flags(n)=flags
�submenu(n)=sm
��
�
�&��create_menu(title$,n,width%,x,y)
�
mb%=menu%
�menus=0:q=0
��
�!  menupos(menus)=mb%:menus+=1
�  $mb%=title$
�  mb%?12=7
�  mb%?13=2
	  mb%?14=7
	  mb%?15=0
	  mb%!16=width%
	$'  mb%!20=40 :� height of menu items
	.A  mb%!24=0  :� vertical gap between items (also top & bottom)
	8  itemptr=mb%+28
	B  �
	L    itemptr!0=setting(q)
	V    ref(q)=itemptr+4
	`*    itemptr!8=flags(q) � 0<<28 � 7<<24
	j    � (flags(q) � &100)=0 �
	t       $(itemptr+12)=text$(q)
	~	    �
	�      pos=�text$(q),"(")
	�(      itemptr!12=�(�text$(q),pos-1))
	�      itemptr!16=-1
	�2      itemptr!20=�(�text$(q),�(text$(q))-pos))
	�	    �
	�    itemptr+=24:q+=1
	�  � (setting(q-1) � &80)>0
	�  mb%=itemptr
	�#  � q<>n � title$=text$(q):q+=1
	�	� q=n
	�
	�� q=0 � n-1
)  � submenu(q)>0 � submenu(q)<menus �

#    !ref(q)=menupos(submenu(q))
  �
H    !ref(q)=submenu(q):� was -1 i.e. submenu disallowed! This change
(>                      :� allows a window handle to be used
2  �
<� q
F#ș "Wimp_CreateMenu",,menu%,x,y
P�
Z
d��opentemplatefile(file$)
n!ș "Wimp_OpenTemplate",,file$
x�
�
���closetemplatefile
�ș "Wimp_CloseTemplate"
��
X
��do_background_task
�

$��redrawwindow(handle%)
.� void%
8q%!0=handle%
B'ș "Wimp_RedrawWindow",0,q% � more%
L�lwaorigin(q%+4,x0%,y0%)
Vȕ more%
`  �newvals
j  Ȏ handle% �
t  �
~   ș "Wimp_BorderWindow",,q%
�)  ș "Wimp_GetRectangle",0,q% � more%
��
��
�
���clickmain(button%,icon%)
�
Ȏ � �
�?� (button% � 4)=4 � icon%<>-1 � (button% � 1)=1 � icon%<>-1
�(modet$=�icon_getdata(q%,main%,icon%)
�changemode%=�(modet$)
�H� changemode%=3 � changemode%=6 � changemode%=7 � changemode%=29 � �
�!ș "Wimp_SetMode",changemode%
��
�

:
��clickinfo(button%,icon%)

Ȏ � �
(?� (button% � 4)=4 � icon%<>-1 � (button% � 1)=1 � icon%<>-1
2Ȏ icon% �
<  � 2 :�slabicon
F#          �openwindow(me%,�,-1)
P�
Z�
d�
n:
xݤoktoclosew(handle%)
�� shutting%
�shutting%=�
�=shutting%
�
�
��merd
� "Error "+�$+" : "+�(�):�
�

"��slabicon
,ș "Wimp_BorderIcon",,q%
6
q%!8=0
@ș "Wimp_BorderIcon",,q%
J�
T
^ݤmenuselect_sicon
h� level0
rlevel0=q%!0
|Ȏ level0 �
�"  � 0 :�openwindow(info%,�,-1)
�  � 1 :�closedown
��
�=0
�
���whichmenu(menu$)
�� void%
�Ȏ menu$ �
�(  � "sicon" :void%=�menuselect_sicon
��
��
�
���clickme(button%,icon%)

Ȏ � �
?� (button% � 4)=4 � icon%<>-1 � (button% � 1)=1 � icon%<>-1
Ȏ icon% �
&  � 12 :�slabicon
0            �closewindow(me%)
:�
D�
N�
X:
�
00000000  0d 00 0a 1d f4 20 3e 20  3c 4d 6f 64 65 73 24 44  |..... > <Modes$D|
00000010  69 72 3e 2e 21 52 75 6e  49 6d 61 67 65 0d 00 14  |ir>.!RunImage...|
00000020  04 0d 00 1e 0d de 20 71  25 20 32 35 30 30 0d 00  |...... q% 2500..|
00000030  28 0e 24 71 25 3d 22 54  41 53 4b 22 0d 00 32 39  |(.$q%="TASK"..29|
00000040  c8 99 20 22 57 69 6d 70  5f 49 6e 69 74 69 61 6c  |.. "Wimp_Initial|
00000050  69 73 65 22 2c 32 30 30  2c 21 71 25 2c 22 4d 6f  |ise",200,!q%,"Mo|
00000060  64 65 20 53 65 6c 65 63  74 6f 72 22 20 b8 20 2c  |de Selector" . ,|
00000070  74 61 73 6b 25 0d 00 3c  22 c8 99 20 22 57 69 6d  |task%..<".. "Wim|
00000080  70 5f 43 6c 61 69 6d 49  6e 74 65 72 66 61 63 65  |p_ClaimInterface|
00000090  22 2c 74 61 73 6b 25 0d  00 46 15 c8 99 20 22 48  |",task%..F... "H|
000000a0  6f 75 72 67 6c 61 73 73  5f 4f 6e 22 0d 00 50 05  |ourglass_On"..P.|
000000b0  3a 0d 00 5a 30 53 25 3d  8e 20 22 3c 4d 6f 64 65  |:..Z0S%=. "<Mode|
000000c0  73 24 44 69 72 3e 2e 21  53 70 72 69 74 65 73 22  |s$Dir>.!Sprites"|
000000d0  3a 54 25 3d a2 23 53 25  2b 31 36 3a d9 20 23 53  |:T%=.#S%+16:. #S|
000000e0  25 0d 00 64 19 de 20 73  70 20 54 25 3a 21 73 70  |%..d.. sp T%:!sp|
000000f0  3d 54 25 3a 73 70 21 34  3d 30 0d 00 6e 14 73 70  |=T%:sp!4=0..n.sp|
00000100  21 38 3d 31 36 3a 73 70  21 31 32 3d 31 36 0d 00  |!8=16:sp!12=16..|
00000110  78 1c c8 99 20 22 4f 53  5f 53 70 72 69 74 65 4f  |x... "OS_SpriteO|
00000120  70 22 2c 26 32 30 39 2c  73 70 0d 00 82 33 c8 99  |p",&209,sp...3..|
00000130  20 22 4f 53 5f 53 70 72  69 74 65 4f 70 22 2c 26  | "OS_SpriteOp",&|
00000140  32 30 41 2c 73 70 2c 22  3c 4d 6f 64 65 73 24 44  |20A,sp,"<Modes$D|
00000150  69 72 3e 2e 21 53 70 72  69 74 65 73 22 0d 00 8c  |ir>.!Sprites"...|
00000160  37 73 69 63 6f 6e 3d a4  69 63 6f 6e 5f 63 72 65  |7sicon=.icon_cre|
00000170  61 74 65 28 2d 31 2c 30  2c 30 2c 36 38 2c 36 38  |ate(-1,0,0,68,68|
00000180  2c 30 2c 30 2c 26 33 30  30 32 2c 22 21 4d 6f 64  |,0,0,&3002,"!Mod|
00000190  65 73 22 29 0d 00 96 05  3a 0d 00 a0 25 de 20 74  |es")....:...%. t|
000001a0  65 78 74 24 28 35 30 29  2c 73 65 74 74 69 6e 67  |ext$(50),setting|
000001b0  28 35 30 29 2c 66 6c 61  67 73 28 35 30 29 0d 00  |(50),flags(50)..|
000001c0  aa 25 de 20 73 75 62 6d  65 6e 75 28 35 30 29 2c  |.%. submenu(50),|
000001d0  72 65 66 28 35 30 29 2c  6d 65 6e 75 70 6f 73 28  |ref(50),menupos(|
000001e0  32 30 29 0d 00 b4 0f de  20 6d 65 6e 75 25 20 35  |20)..... menu% 5|
000001f0  31 32 0d 00 be 15 de 20  69 6e 64 69 72 65 63 74  |12..... indirect|
00000200  25 20 26 32 30 30 30 0d  00 c8 11 de 20 6d 73 67  |% &2000..... msg|
00000210  62 6c 6b 25 20 32 35 36  0d 00 d2 25 69 70 74 72  |blk% 256...%iptr|
00000220  25 3d 69 6e 64 69 72 65  63 74 25 3a 69 65 6e 64  |%=indirect%:iend|
00000230  25 3d 69 70 74 72 25 2b  26 32 30 30 30 0d 00 dc  |%=iptr%+&2000...|
00000240  0c ee 85 20 f2 6d 65 72  64 0d 00 e6 05 3a 0d 00  |... .merd....:..|
00000250  f0 2e f2 6f 70 65 6e 74  65 6d 70 6c 61 74 65 66  |...opentemplatef|
00000260  69 6c 65 28 22 3c 4d 6f  64 65 73 24 44 69 72 3e  |ile("<Modes$Dir>|
00000270  2e 54 65 6d 70 6c 61 74  65 73 22 29 0d 00 fa 42  |.Templates")...B|
00000280  c8 99 20 22 57 69 6d 70  5f 4c 6f 61 64 54 65 6d  |.. "Wimp_LoadTem|
00000290  70 6c 61 74 65 22 2c 2c  71 25 2c 69 6e 64 69 72  |plate",,q%,indir|
000002a0  65 63 74 25 2c 69 6e 64  69 72 65 63 74 25 2b 33  |ect%,indirect%+3|
000002b0  39 39 2c 2d 31 2c 22 6d  61 69 6e 22 2c 30 0d 01  |99,-1,"main",0..|
000002c0  04 26 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |.&.. "Wimp_Creat|
000002d0  65 57 69 6e 64 6f 77 22  2c 2c 71 25 20 b8 20 6d  |eWindow",,q% . m|
000002e0  61 69 6e 25 0d 01 0e 46  c8 99 20 22 57 69 6d 70  |ain%...F.. "Wimp|
000002f0  5f 4c 6f 61 64 54 65 6d  70 6c 61 74 65 22 2c 2c  |_LoadTemplate",,|
00000300  71 25 2c 69 6e 64 69 72  65 63 74 25 2b 34 30 30  |q%,indirect%+400|
00000310  2c 69 6e 64 69 72 65 63  74 25 2b 35 39 39 2c 2d  |,indirect%+599,-|
00000320  31 2c 22 69 6e 66 6f 22  2c 30 0d 01 18 26 c8 99  |1,"info",0...&..|
00000330  20 22 57 69 6d 70 5f 43  72 65 61 74 65 57 69 6e  | "Wimp_CreateWin|
00000340  64 6f 77 22 2c 2c 71 25  20 b8 20 69 6e 66 6f 25  |dow",,q% . info%|
00000350  0d 01 22 44 c8 99 20 22  57 69 6d 70 5f 4c 6f 61  |.."D.. "Wimp_Loa|
00000360  64 54 65 6d 70 6c 61 74  65 22 2c 2c 71 25 2c 69  |dTemplate",,q%,i|
00000370  6e 64 69 72 65 63 74 25  2b 36 30 30 2c 69 6e 64  |ndirect%+600,ind|
00000380  69 72 65 63 74 25 2b 37  39 39 2c 2d 31 2c 22 6d  |irect%+799,-1,"m|
00000390  65 22 2c 30 0d 01 2c 24  c8 99 20 22 57 69 6d 70  |e",0..,$.. "Wimp|
000003a0  5f 43 72 65 61 74 65 57  69 6e 64 6f 77 22 2c 2c  |_CreateWindow",,|
000003b0  71 25 20 b8 20 6d 65 25  0d 01 36 16 f2 63 6c 6f  |q% . me%..6..clo|
000003c0  73 65 74 65 6d 70 6c 61  74 65 66 69 6c 65 0d 01  |setemplatefile..|
000003d0  40 05 3a 0d 01 4a 16 c8  99 20 22 48 6f 75 72 67  |@.:..J... "Hourg|
000003e0  6c 61 73 73 5f 4f 66 66  22 0d 01 54 05 f5 0d 01  |lass_Off"..T....|
000003f0  5e 17 20 20 f2 61 63 74  69 6f 6e 28 a4 70 6f 6c  |^.  .action(.pol|
00000400  6c 28 30 29 29 0d 01 68  07 fd 20 a3 0d 01 72 05  |l(0))..h.. ...r.|
00000410  3a 0d 01 7c 0f dd f2 63  6c 6f 73 65 64 6f 77 6e  |:..|...closedown|
00000420  0d 01 86 0e 24 71 25 3d  22 54 41 53 4b 22 0d 01  |....$q%="TASK"..|
00000430  90 22 c8 99 20 22 57 69  6d 70 5f 43 6c 6f 73 65  |.".. "Wimp_Close|
00000440  44 6f 77 6e 22 2c 74 61  73 6b 25 2c 71 25 21 30  |Down",task%,q%!0|
00000450  0d 01 9a 05 e0 0d 01 a4  05 e1 0d 01 ae 05 3a 0d  |..............:.|
00000460  01 b8 3c dd f2 63 6c 69  63 6b 77 69 6e 64 6f 77  |..<..clickwindow|
00000470  28 6d 6f 75 73 65 78 25  2c 6d 6f 75 73 65 79 25  |(mousex%,mousey%|
00000480  2c 62 75 74 74 6f 6e 25  2c 68 61 6e 64 6c 65 25  |,button%,handle%|
00000490  2c 69 63 6f 6e 25 2c 6f  62 25 29 0d 01 c2 10 c8  |,icon%,ob%).....|
000004a0  8e 20 68 61 6e 64 6c 65  25 20 ca 0d 01 cc 28 20  |. handle% ....( |
000004b0  20 c9 20 6d 61 69 6e 25  20 3a f2 63 6c 69 63 6b  | . main% :.click|
000004c0  6d 61 69 6e 28 62 75 74  74 6f 6e 25 2c 69 63 6f  |main(button%,ico|
000004d0  6e 25 29 0d 01 d6 28 20  20 c9 20 69 6e 66 6f 25  |n%)...(  . info%|
000004e0  20 3a f2 63 6c 69 63 6b  69 6e 66 6f 28 62 75 74  | :.clickinfo(but|
000004f0  74 6f 6e 25 2c 69 63 6f  6e 25 29 0d 01 e0 26 20  |ton%,icon%)...& |
00000500  20 c9 20 6d 65 25 20 20  20 3a f2 63 6c 69 63 6b  | . me%   :.click|
00000510  6d 65 28 62 75 74 74 6f  6e 25 2c 69 63 6f 6e 25  |me(button%,icon%|
00000520  29 0d 01 ea 2b 20 20 c9  20 2d 32 20 20 20 20 3a  |)...+  . -2    :|
00000530  f2 63 6c 69 63 6b 69 63  6f 6e 62 61 72 28 62 75  |.clickiconbar(bu|
00000540  74 74 6f 6e 25 2c 69 63  6f 6e 25 29 0d 01 f4 05  |tton%,icon%)....|
00000550  cb 0d 01 fe 05 e1 0d 02  08 05 3a 0d 02 12 21 dd  |..........:...!.|
00000560  f2 63 6c 69 63 6b 69 63  6f 6e 62 61 72 28 62 75  |.clickiconbar(bu|
00000570  74 74 6f 6e 25 2c 69 63  6f 6e 25 29 0d 02 1c 11  |tton%,icon%)....|
00000580  e7 20 69 63 6f 6e 25 3c  30 20 8c 20 e1 0d 02 26  |. icon%<0 . ...&|
00000590  0a c8 8e 20 b9 20 ca 0d  02 30 11 20 20 c9 20 62  |... . ...0.  . b|
000005a0  75 74 74 6f 6e 25 3d 32  0d 02 3a 20 20 20 20 20  |utton%=2..:     |
000005b0  f4 20 6f 70 65 6e 73 20  74 68 65 20 69 63 6f 6e  |. opens the icon|
000005c0  62 61 72 20 6d 65 6e 75  0d 02 44 17 20 20 20 20  |bar menu..D.    |
000005d0  e7 20 69 63 6f 6e 25 3d  73 69 63 6f 6e 20 8c 0d  |. icon%=sicon ..|
000005e0  02 4e 15 20 20 20 20 20  20 f2 6d 65 6e 75 5f 73  |.N.      .menu_s|
000005f0  69 63 6f 6e 0d 02 58 09  20 20 20 20 cd 0d 02 62  |icon..X.    ...b|
00000600  11 20 20 c9 20 62 75 74  74 6f 6e 25 3d 34 0d 02  |.  . button%=4..|
00000610  6c 21 20 20 20 20 20 20  f2 6f 70 65 6e 77 69 6e  |l!      .openwin|
00000620  64 6f 77 28 6d 61 69 6e  25 2c a3 2c 2d 31 29 0d  |dow(main%,.,-1).|
00000630  02 76 11 20 20 20 20 20  20 6f 70 65 6e 25 3d b9  |.v.      open%=.|
00000640  0d 02 80 09 20 20 20 20  cd 0d 02 8a 05 cb 0d 02  |....    ........|
00000650  94 05 e1 0d 02 9e 05 3a  0d 02 a8 10 dd f2 6d 65  |.......:......me|
00000660  6e 75 5f 73 69 63 6f 6e  0d 02 b2 11 6e 6f 3d 30  |nu_sicon....no=0|
00000670  3a c8 97 20 78 2c 79 2c  62 0d 02 bc 3d f2 64 65  |:.. x,y,b...=.de|
00000680  66 69 6e 65 5f 6d 65 6e  75 5f 74 65 78 74 28 22  |fine_menu_text("|
00000690  49 6e 66 6f 22 2c 6e 6f  2c 30 2c 30 2c 30 2c 30  |Info",no,0,0,0,0|
000006a0  2c 26 31 30 30 32 31 2c  69 6e 66 6f 25 2c 30 29  |,&10021,info%,0)|
000006b0  3a 6e 6f 2b 3d 31 0d 02  c6 3a f2 64 65 66 69 6e  |:no+=1...:.defin|
000006c0  65 5f 6d 65 6e 75 5f 74  65 78 74 28 22 51 75 69  |e_menu_text("Qui|
000006d0  74 22 2c 6e 6f 2c 30 2c  30 2c 30 2c 30 2c 26 31  |t",no,0,0,0,0,&1|
000006e0  30 30 32 31 2c 30 2c 2d  31 29 3a 6e 6f 2b 3d 31  |0021,0,-1):no+=1|
000006f0  0d 02 d0 30 f2 63 72 65  61 74 65 5f 6d 65 6e 75  |...0.create_menu|
00000700  28 22 4d 6f 64 65 73 22  2c 6e 6f 2c 31 30 30 2c  |("Modes",no,100,|
00000710  78 2d 36 34 2c 39 36 2b  28 6e 6f 2a 34 30 29 29  |x-64,96+(no*40))|
00000720  0d 02 da 0e 6d 65 6e 75  5f 6e 72 25 3d 30 0d 02  |....menu_nr%=0..|
00000730  e4 16 63 6c 61 69 6d 6d  65 6e 75 24 3d 22 73 69  |..claimmenu$="si|
00000740  63 6f 6e 22 0d 02 ee 05  e1 0d 02 f8 05 3a 0d 03  |con".........:..|
00000750  02 11 dd f2 72 65 63 65  69 76 65 28 71 25 29 0d  |....receive(q%).|
00000760  03 0c 0e c8 8e 20 71 25  21 31 36 20 ca 0d 03 16  |..... q%!16 ....|
00000770  13 c9 20 30 20 3a f2 63  6c 6f 73 65 64 6f 77 6e  |.. 0 :.closedown|
00000780  0d 03 20 05 cb 0d 03 2a  05 e1 0d 03 34 05 3a 0d  |.. ....*....4.:.|
00000790  03 3e 26 dd f2 6f 70 65  6e 77 69 6e 64 6f 77 28  |.>&..openwindow(|
000007a0  68 61 6e 64 6c 65 25 2c  66 75 6c 6c 25 2c 66 72  |handle%,full%,fr|
000007b0  6f 6e 74 25 29 0d 03 48  10 71 25 21 30 3d 68 61  |ont%)..H.q%!0=ha|
000007c0  6e 64 6c 65 25 0d 03 52  2d e7 20 ac 20 66 75 6c  |ndle%..R-. . ful|
000007d0  6c 25 20 8c 20 c8 99 20  22 57 69 6d 70 5f 47 65  |l% . .. "Wimp_Ge|
000007e0  74 57 69 6e 64 6f 77 53  74 61 74 65 22 2c 30 2c  |tWindowState",0,|
000007f0  71 25 0d 03 5c 17 e7 20  66 72 6f 6e 74 25 20 8c  |q%..\.. front% .|
00000800  20 71 25 21 32 38 3d 2d  31 0d 03 66 1d c8 99 20  | q%!28=-1..f... |
00000810  22 57 69 6d 70 5f 4f 70  65 6e 57 69 6e 64 6f 77  |"Wimp_OpenWindow|
00000820  22 2c 30 2c 71 25 0d 03  70 05 e1 0d 03 7a 04 0d  |",0,q%..p....z..|
00000830  03 84 1a dd f2 63 6c 6f  73 65 77 69 6e 64 6f 77  |.....closewindow|
00000840  28 68 61 6e 64 6c 65 25  29 0d 03 8e 1c e7 20 a4  |(handle%)..... .|
00000850  6f 6b 74 6f 63 6c 6f 73  65 77 28 68 61 6e 64 6c  |oktoclosew(handl|
00000860  65 25 29 20 8c 0d 03 98  12 20 20 71 25 21 30 3d  |e%) .....  q%!0=|
00000870  68 61 6e 64 6c 65 25 0d  03 a2 20 20 20 c8 99 20  |handle%...   .. |
00000880  22 57 69 6d 70 5f 43 6c  6f 73 65 57 69 6e 64 6f  |"Wimp_CloseWindo|
00000890  77 22 2c 30 2c 71 25 0d  03 ac 05 cd 0d 03 b6 05  |w",0,q%.........|
000008a0  e1 0d 03 c0 04 0d 03 ca  11 dd a4 70 6f 6c 6c 28  |...........poll(|
000008b0  6d 61 73 6b 25 29 0d 03  d4 20 c8 99 20 22 57 69  |mask%)... .. "Wi|
000008c0  6d 70 5f 50 6f 6c 6c 22  2c 6d 61 73 6b 25 2c 71  |mp_Poll",mask%,q|
000008d0  25 20 b8 20 61 25 0d 03  de 23 c8 99 20 22 57 69  |% . a%...#.. "Wi|
000008e0  6d 70 5f 50 6f 6c 6c 50  6f 69 6e 74 65 72 22 2c  |mp_PollPointer",|
000008f0  61 25 2c 2c 74 61 73 6b  25 0d 03 e8 07 3d 61 25  |a%,,task%....=a%|
00000900  0d 03 f2 04 0d 03 fc 13  dd f2 61 63 74 69 6f 6e  |..........action|
00000910  28 65 76 6e 74 25 29 0d  04 06 0e c8 8e 20 65 76  |(evnt%)...... ev|
00000920  6e 74 25 20 ca 0d 04 10  1d 20 20 c9 20 30 3a f2  |nt% .....  . 0:.|
00000930  64 6f 5f 62 61 63 6b 67  72 6f 75 6e 64 5f 74 61  |do_background_ta|
00000940  73 6b 0d 04 1a 1d 20 20  c9 20 31 3a f2 72 65 64  |sk....  . 1:.red|
00000950  72 61 77 77 69 6e 64 6f  77 28 71 25 21 30 29 0d  |rawwindow(q%!0).|
00000960  04 24 1f 20 20 c9 20 32  3a f2 6f 70 65 6e 77 69  |.$.  . 2:.openwi|
00000970  6e 64 6f 77 28 71 25 21  30 2c b9 2c 30 29 0d 04  |ndow(q%!0,.,0)..|
00000980  2e 1c 20 20 c9 20 33 3a  f2 63 6c 6f 73 65 77 69  |..  . 3:.closewi|
00000990  6e 64 6f 77 28 71 25 21  30 29 0d 04 38 0a 20 20  |ndow(q%!0)..8.  |
000009a0  c9 20 34 3a 0d 04 42 0a  20 20 c9 20 35 3a 0d 04  |. 4:..B.  . 5:..|
000009b0  4c 37 20 20 c9 20 36 3a  f2 63 6c 69 63 6b 77 69  |L7  . 6:.clickwi|
000009c0  6e 64 6f 77 28 21 71 25  2c 71 25 21 34 2c 71 25  |ndow(!q%,q%!4,q%|
000009d0  21 38 2c 71 25 21 31 32  2c 71 25 21 31 36 2c 71  |!8,q%!12,q%!16,q|
000009e0  25 21 32 30 29 0d 04 56  3d 20 20 c9 20 37 3a e7  |%!20)..V=  . 7:.|
000009f0  20 63 6c 61 69 6d 64 72  61 67 24 3c 3e 22 22 20  | claimdrag$<>"" |
00000a00  8c 20 6a 75 6e 6b 3d a0  28 22 46 4e 75 73 65 72  |. junk=.("FNuser|
00000a10  64 72 61 67 5f 22 2b 63  6c 61 69 6d 64 72 61 67  |drag_"+claimdrag|
00000a20  24 29 0d 04 60 0a 20 20  c9 20 38 3a 0d 04 6a 33  |$)..`.  . 8:..j3|
00000a30  20 20 c9 20 39 3a e7 20  63 6c 61 69 6d 6d 65 6e  |  . 9:. claimmen|
00000a40  75 24 3c 3e 22 22 20 8c  20 f2 77 68 69 63 68 6d  |u$<>"" . .whichm|
00000a50  65 6e 75 28 63 6c 61 69  6d 6d 65 6e 75 24 29 0d  |enu(claimmenu$).|
00000a60  04 74 1a 20 20 c9 20 31  37 2c 31 38 3a f2 72 65  |.t.  . 17,18:.re|
00000a70  63 65 69 76 65 28 71 25  29 0d 04 7e 05 cb 0d 04  |ceive(q%)..~....|
00000a80  88 05 e1 0d 04 92 04 0d  04 d8 1c dd f2 6c 77 61  |.............lwa|
00000a90  6f 72 69 67 69 6e 28 62  2c f8 20 78 25 2c f8 20  |origin(b,. x%,. |
00000aa0  79 25 29 0d 04 e2 1c 78  25 3d 62 21 30 2d 62 21  |y%)....x%=b!0-b!|
00000ab0  31 36 3a 79 25 3d 62 21  31 32 2d 62 21 32 30 0d  |16:y%=b!12-b!20.|
00000ac0  04 ec 05 e1 0d 04 f6 04  0d 05 00 48 dd a4 69 63  |...........H..ic|
00000ad0  6f 6e 5f 63 72 65 61 74  65 28 77 69 6e 64 6f 77  |on_create(window|
00000ae0  25 2c 6d 69 6e 78 25 2c  6d 69 6e 79 25 2c 77 69  |%,minx%,miny%,wi|
00000af0  64 74 68 25 2c 68 65 69  67 68 74 25 2c 66 67 25  |dth%,height%,fg%|
00000b00  2c 62 67 25 2c 66 6c 67  25 2c 64 61 74 61 24 29  |,bg%,flg%,data$)|
00000b10  0d 05 0a 08 ea 20 69 25  0d 05 14 10 71 25 21 30  |..... i%....q%!0|
00000b20  3d 77 69 6e 64 6f 77 25  0d 05 1e 19 71 25 21 34  |=window%....q%!4|
00000b30  3d 6d 69 6e 78 25 3a 71  25 21 38 3d 6d 69 6e 79  |=minx%:q%!8=miny|
00000b40  25 0d 05 28 2a 71 25 21  31 32 3d 6d 69 6e 78 25  |%..(*q%!12=minx%|
00000b50  2b 77 69 64 74 68 25 3a  71 25 21 31 36 3d 6d 69  |+width%:q%!16=mi|
00000b60  6e 79 25 2b 68 65 69 67  68 74 25 0d 05 32 22 71  |ny%+height%..2"q|
00000b70  25 21 32 30 3d 66 6c 67  25 20 84 20 62 67 25 3c  |%!20=flg% . bg%<|
00000b80  3c 32 38 20 84 20 66 67  25 3c 3c 32 34 0d 05 3c  |<28 . fg%<<24..<|
00000b90  14 e7 20 71 25 21 32 30  20 80 20 26 31 30 30 20  |.. q%!20 . &100 |
00000ba0  8c 0d 05 46 14 20 20 69  25 3d a7 64 61 74 61 24  |...F.  i%=.data$|
00000bb0  2c 22 2c 22 29 0d 05 50  1b 20 20 71 25 21 32 34  |,",")..P.  q%!24|
00000bc0  3d a0 28 c0 64 61 74 61  24 2c 69 25 2d 31 29 29  |=.(.data$,i%-1))|
00000bd0  0d 05 5a 0e 20 20 71 25  21 32 38 3d 2d 31 0d 05  |..Z.  q%!28=-1..|
00000be0  64 1b 20 20 71 25 21 33  32 3d a0 28 c1 64 61 74  |d.  q%!32=.(.dat|
00000bf0  61 24 2c 69 25 2b 31 29  29 0d 05 6e 05 cc 0d 05  |a$,i%+1))..n....|
00000c00  78 17 24 28 71 25 2b 32  34 29 3d c0 64 61 74 61  |x.$(q%+24)=.data|
00000c10  24 2c 31 31 29 0d 05 82  05 cd 0d 05 8c 22 c8 99  |$,11)........"..|
00000c20  20 22 57 69 6d 70 5f 43  72 65 61 74 65 49 63 6f  | "Wimp_CreateIco|
00000c30  6e 22 2c 30 2c 71 25 20  b8 20 69 25 0d 05 96 07  |n",0,q% . i%....|
00000c40  3d 69 25 0d 07 1c 04 0d  07 80 28 dd a4 69 63 6f  |=i%.......(..ico|
00000c50  6e 5f 67 65 74 64 61 74  61 28 71 25 2c 77 68 61  |n_getdata(q%,wha|
00000c60  6e 64 6c 65 25 2c 69 68  61 6e 64 6c 65 25 29 0d  |ndle%,ihandle%).|
00000c70  07 8a 11 71 25 21 30 3d  77 68 61 6e 64 6c 65 25  |...q%!0=whandle%|
00000c80  0d 07 94 11 71 25 21 34  3d 69 68 61 6e 64 6c 65  |....q%!4=ihandle|
00000c90  25 0d 07 9e 1e c8 99 20  22 57 69 6d 70 5f 47 65  |%...... "Wimp_Ge|
00000ca0  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 71 25 0d  |tIconState",,q%.|
00000cb0  07 a8 0d 3d 24 28 71 25  21 32 38 29 0d 07 da 04  |...=$(q%!28)....|
00000cc0  0d 07 e4 0d dd f2 6e 65  77 76 61 6c 73 0d 07 ee  |......newvals...|
00000cd0  17 67 74 78 3d 71 25 21  33 36 3a 67 74 79 3d 71  |.gtx=q%!36:gty=q|
00000ce0  25 21 34 30 0d 07 f8 15  77 62 78 3d 71 25 21 34  |%!40....wbx=q%!4|
00000cf0  3a 77 62 79 3d 71 25 21  38 0d 08 02 17 77 74 78  |:wby=q%!8....wtx|
00000d00  3d 71 25 21 31 32 3a 77  74 79 3d 71 25 21 31 36  |=q%!12:wty=q%!16|
00000d10  0d 08 0c 17 78 73 63 3d  71 25 21 32 30 3a 79 73  |....xsc=q%!20:ys|
00000d20  63 3d 71 25 21 32 34 0d  08 16 21 68 70 3d 77 74  |c=q%!24...!hp=wt|
00000d30  78 2d 77 62 78 3a 76 70  3d 77 74 79 2d 77 62 79  |x-wbx:vp=wty-wby|
00000d40  3a 65 62 78 3d 78 73 63  0d 08 20 21 65 74 78 3d  |:ebx=xsc.. !etx=|
00000d50  78 73 63 2b 68 70 3a 65  74 79 3d 79 73 63 3a 65  |xsc+hp:ety=ysc:e|
00000d60  62 79 3d 79 73 63 2d 76  70 0d 08 2a 05 e1 0d 08  |by=ysc-vp..*....|
00000d70  34 04 0d 08 3e 32 dd f2  64 65 66 69 6e 65 5f 6d  |4...>2..define_m|
00000d80  65 6e 75 5f 74 65 78 74  28 74 65 78 74 24 2c 6e  |enu_text(text$,n|
00000d90  2c 77 2c 74 2c 64 2c 73  2c 66 6c 61 67 73 2c 73  |,w,t,d,s,flags,s|
00000da0  6d 2c 6c 29 0d 08 48 12  74 65 78 74 24 28 6e 29  |m,l)..H.text$(n)|
00000db0  3d 74 65 78 74 24 0d 08  52 10 73 65 74 74 69 6e  |=text$..R.settin|
00000dc0  67 28 6e 29 3d 30 0d 08  5c 38 e7 20 77 20 8c 20  |g(n)=0..\8. w . |
00000dd0  73 65 74 74 69 6e 67 28  6e 29 3d 73 65 74 74 69  |setting(n)=setti|
00000de0  6e 67 28 6e 29 20 84 20  26 30 34 3a 66 6c 61 67  |ng(n) . &04:flag|
00000df0  73 3d 66 6c 61 67 73 20  84 20 26 31 30 30 0d 08  |s=flags . &100..|
00000e00  66 25 e7 20 74 20 8c 20  73 65 74 74 69 6e 67 28  |f%. t . setting(|
00000e10  6e 29 3d 73 65 74 74 69  6e 67 28 6e 29 20 84 20  |n)=setting(n) . |
00000e20  26 30 31 0d 08 70 25 e7  20 64 20 8c 20 73 65 74  |&01..p%. d . set|
00000e30  74 69 6e 67 28 6e 29 3d  73 65 74 74 69 6e 67 28  |ting(n)=setting(|
00000e40  6e 29 20 84 20 26 30 32  0d 08 7a 25 e7 20 6c 20  |n) . &02..z%. l |
00000e50  8c 20 73 65 74 74 69 6e  67 28 6e 29 3d 73 65 74  |. setting(n)=set|
00000e60  74 69 6e 67 28 6e 29 20  84 20 26 38 30 0d 08 84  |ting(n) . &80...|
00000e70  1f e7 20 73 20 8c 20 66  6c 61 67 73 3d 66 6c 61  |.. s . flags=fla|
00000e80  67 73 20 84 20 26 34 30  30 30 30 30 0d 08 8e 12  |gs . &400000....|
00000e90  66 6c 61 67 73 28 6e 29  3d 66 6c 61 67 73 0d 08  |flags(n)=flags..|
00000ea0  98 11 73 75 62 6d 65 6e  75 28 6e 29 3d 73 6d 0d  |..submenu(n)=sm.|
00000eb0  08 a2 05 e1 0d 08 ac 04  0d 08 b6 26 dd f2 63 72  |...........&..cr|
00000ec0  65 61 74 65 5f 6d 65 6e  75 28 74 69 74 6c 65 24  |eate_menu(title$|
00000ed0  2c 6e 2c 77 69 64 74 68  25 2c 78 2c 79 29 0d 08  |,n,width%,x,y)..|
00000ee0  c0 0d 6d 62 25 3d 6d 65  6e 75 25 0d 08 ca 0f 6d  |..mb%=menu%....m|
00000ef0  65 6e 75 73 3d 30 3a 71  3d 30 0d 08 d4 05 f5 0d  |enus=0:q=0......|
00000f00  08 de 21 20 20 6d 65 6e  75 70 6f 73 28 6d 65 6e  |..!  menupos(men|
00000f10  75 73 29 3d 6d 62 25 3a  6d 65 6e 75 73 2b 3d 31  |us)=mb%:menus+=1|
00000f20  0d 08 e8 11 20 20 24 6d  62 25 3d 74 69 74 6c 65  |....  $mb%=title|
00000f30  24 0d 08 f2 0e 20 20 6d  62 25 3f 31 32 3d 37 0d  |$....  mb%?12=7.|
00000f40  08 fc 0e 20 20 6d 62 25  3f 31 33 3d 32 0d 09 06  |...  mb%?13=2...|
00000f50  0e 20 20 6d 62 25 3f 31  34 3d 37 0d 09 10 0e 20  |.  mb%?14=7.... |
00000f60  20 6d 62 25 3f 31 35 3d  30 0d 09 1a 13 20 20 6d  | mb%?15=0....  m|
00000f70  62 25 21 31 36 3d 77 69  64 74 68 25 0d 09 24 27  |b%!16=width%..$'|
00000f80  20 20 6d 62 25 21 32 30  3d 34 30 20 3a f4 20 68  |  mb%!20=40 :. h|
00000f90  65 69 67 68 74 20 6f 66  20 6d 65 6e 75 20 69 74  |eight of menu it|
00000fa0  65 6d 73 0d 09 2e 41 20  20 6d 62 25 21 32 34 3d  |ems...A  mb%!24=|
00000fb0  30 20 20 3a f4 20 76 65  72 74 69 63 61 6c 20 67  |0  :. vertical g|
00000fc0  61 70 20 62 65 74 77 65  65 6e 20 69 74 65 6d 73  |ap between items|
00000fd0  20 28 61 6c 73 6f 20 74  6f 70 20 26 20 62 6f 74  | (also top & bot|
00000fe0  74 6f 6d 29 0d 09 38 14  20 20 69 74 65 6d 70 74  |tom)..8.  itempt|
00000ff0  72 3d 6d 62 25 2b 32 38  0d 09 42 07 20 20 f5 0d  |r=mb%+28..B.  ..|
00001000  09 4c 1c 20 20 20 20 69  74 65 6d 70 74 72 21 30  |.L.    itemptr!0|
00001010  3d 73 65 74 74 69 6e 67  28 71 29 0d 09 56 18 20  |=setting(q)..V. |
00001020  20 20 20 72 65 66 28 71  29 3d 69 74 65 6d 70 74  |   ref(q)=itempt|
00001030  72 2b 34 0d 09 60 2a 20  20 20 20 69 74 65 6d 70  |r+4..`*    itemp|
00001040  74 72 21 38 3d 66 6c 61  67 73 28 71 29 20 84 20  |tr!8=flags(q) . |
00001050  30 3c 3c 32 38 20 84 20  37 3c 3c 32 34 0d 09 6a  |0<<28 . 7<<24..j|
00001060  1f 20 20 20 20 e7 20 28  66 6c 61 67 73 28 71 29  |.    . (flags(q)|
00001070  20 80 20 26 31 30 30 29  3d 30 20 8c 0d 09 74 20  | . &100)=0 ...t |
00001080  20 20 20 20 20 20 24 28  69 74 65 6d 70 74 72 2b  |      $(itemptr+|
00001090  31 32 29 3d 74 65 78 74  24 28 71 29 0d 09 7e 09  |12)=text$(q)..~.|
000010a0  20 20 20 20 cc 0d 09 88  1c 20 20 20 20 20 20 70  |    .....      p|
000010b0  6f 73 3d a7 74 65 78 74  24 28 71 29 2c 22 28 22  |os=.text$(q),"("|
000010c0  29 0d 09 92 28 20 20 20  20 20 20 69 74 65 6d 70  |)...(      itemp|
000010d0  74 72 21 31 32 3d a0 28  c0 74 65 78 74 24 28 71  |tr!12=.(.text$(q|
000010e0  29 2c 70 6f 73 2d 31 29  29 0d 09 9c 17 20 20 20  |),pos-1))....   |
000010f0  20 20 20 69 74 65 6d 70  74 72 21 31 36 3d 2d 31  |   itemptr!16=-1|
00001100  0d 09 a6 32 20 20 20 20  20 20 69 74 65 6d 70 74  |...2      itempt|
00001110  72 21 32 30 3d a0 28 c2  74 65 78 74 24 28 71 29  |r!20=.(.text$(q)|
00001120  2c a9 28 74 65 78 74 24  28 71 29 29 2d 70 6f 73  |,.(text$(q))-pos|
00001130  29 29 0d 09 b0 09 20 20  20 20 cd 0d 09 ba 18 20  |))....    ..... |
00001140  20 20 20 69 74 65 6d 70  74 72 2b 3d 32 34 3a 71  |   itemptr+=24:q|
00001150  2b 3d 31 0d 09 c4 1e 20  20 fd 20 28 73 65 74 74  |+=1....  . (sett|
00001160  69 6e 67 28 71 2d 31 29  20 80 20 26 38 30 29 3e  |ing(q-1) . &80)>|
00001170  30 0d 09 ce 11 20 20 6d  62 25 3d 69 74 65 6d 70  |0....  mb%=itemp|
00001180  74 72 0d 09 d8 23 20 20  e7 20 71 3c 3e 6e 20 8c  |tr...#  . q<>n .|
00001190  20 74 69 74 6c 65 24 3d  74 65 78 74 24 28 71 29  | title$=text$(q)|
000011a0  3a 71 2b 3d 31 0d 09 e2  09 fd 20 71 3d 6e 0d 09  |:q+=1..... q=n..|
000011b0  ec 04 0d 09 f6 0f e3 20  71 3d 30 20 b8 20 6e 2d  |....... q=0 . n-|
000011c0  31 0d 0a 00 29 20 20 e7  20 73 75 62 6d 65 6e 75  |1...)  . submenu|
000011d0  28 71 29 3e 30 20 80 20  73 75 62 6d 65 6e 75 28  |(q)>0 . submenu(|
000011e0  71 29 3c 6d 65 6e 75 73  20 8c 0d 0a 0a 23 20 20  |q)<menus ....#  |
000011f0  20 20 21 72 65 66 28 71  29 3d 6d 65 6e 75 70 6f  |  !ref(q)=menupo|
00001200  73 28 73 75 62 6d 65 6e  75 28 71 29 29 0d 0a 14  |s(submenu(q))...|
00001210  07 20 20 cc 0d 0a 1e 48  20 20 20 20 21 72 65 66  |.  ....H    !ref|
00001220  28 71 29 3d 73 75 62 6d  65 6e 75 28 71 29 3a f4  |(q)=submenu(q):.|
00001230  20 77 61 73 20 2d 31 20  69 2e 65 2e 20 73 75 62  | was -1 i.e. sub|
00001240  6d 65 6e 75 20 64 69 73  61 6c 6c 6f 77 65 64 21  |menu disallowed!|
00001250  20 54 68 69 73 20 63 68  61 6e 67 65 0d 0a 28 3e  | This change..(>|
00001260  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001270  20 20 20 20 20 20 3a f4  20 61 6c 6c 6f 77 73 20  |      :. allows |
00001280  61 20 77 69 6e 64 6f 77  20 68 61 6e 64 6c 65 20  |a window handle |
00001290  74 6f 20 62 65 20 75 73  65 64 0d 0a 32 07 20 20  |to be used..2.  |
000012a0  cd 0d 0a 3c 07 ed 20 71  0d 0a 46 23 c8 99 20 22  |...<.. q..F#.. "|
000012b0  57 69 6d 70 5f 43 72 65  61 74 65 4d 65 6e 75 22  |Wimp_CreateMenu"|
000012c0  2c 2c 6d 65 6e 75 25 2c  78 2c 79 0d 0a 50 05 e1  |,,menu%,x,y..P..|
000012d0  0d 0a 5a 04 0d 0a 64 1d  dd f2 6f 70 65 6e 74 65  |..Z...d...opente|
000012e0  6d 70 6c 61 74 65 66 69  6c 65 28 66 69 6c 65 24  |mplatefile(file$|
000012f0  29 0d 0a 6e 21 c8 99 20  22 57 69 6d 70 5f 4f 70  |)..n!.. "Wimp_Op|
00001300  65 6e 54 65 6d 70 6c 61  74 65 22 2c 2c 66 69 6c  |enTemplate",,fil|
00001310  65 24 0d 0a 78 05 e1 0d  0a 82 04 0d 0a be 17 dd  |e$..x...........|
00001320  f2 63 6c 6f 73 65 74 65  6d 70 6c 61 74 65 66 69  |.closetemplatefi|
00001330  6c 65 0d 0a c8 1b c8 99  20 22 57 69 6d 70 5f 43  |le...... "Wimp_C|
00001340  6c 6f 73 65 54 65 6d 70  6c 61 74 65 22 0d 0a d2  |loseTemplate"...|
00001350  05 e1 0d 0c 58 04 0d 0e  06 18 dd f2 64 6f 5f 62  |....X.......do_b|
00001360  61 63 6b 67 72 6f 75 6e  64 5f 74 61 73 6b 0d 0e  |ackground_task..|
00001370  10 05 e1 0d 0e 1a 04 0d  0e 24 1b dd f2 72 65 64  |.........$...red|
00001380  72 61 77 77 69 6e 64 6f  77 28 68 61 6e 64 6c 65  |rawwindow(handle|
00001390  25 29 0d 0e 2e 0b ea 20  76 6f 69 64 25 0d 0e 38  |%)..... void%..8|
000013a0  10 71 25 21 30 3d 68 61  6e 64 6c 65 25 0d 0e 42  |.q%!0=handle%..B|
000013b0  27 c8 99 20 22 57 69 6d  70 5f 52 65 64 72 61 77  |'.. "Wimp_Redraw|
000013c0  57 69 6e 64 6f 77 22 2c  30 2c 71 25 20 b8 20 6d  |Window",0,q% . m|
000013d0  6f 72 65 25 0d 0e 4c 1c  f2 6c 77 61 6f 72 69 67  |ore%..L..lwaorig|
000013e0  69 6e 28 71 25 2b 34 2c  78 30 25 2c 79 30 25 29  |in(q%+4,x0%,y0%)|
000013f0  0d 0e 56 0c c8 95 20 6d  6f 72 65 25 0d 0e 60 0e  |..V... more%..`.|
00001400  20 20 f2 6e 65 77 76 61  6c 73 0d 0e 6a 12 20 20  |  .newvals..j.  |
00001410  c8 8e 20 68 61 6e 64 6c  65 25 20 ca 0d 0e 74 07  |.. handle% ...t.|
00001420  20 20 cb 0d 0e 7e 20 20  20 c8 99 20 22 57 69 6d  |  ...~   .. "Wim|
00001430  70 5f 42 6f 72 64 65 72  57 69 6e 64 6f 77 22 2c  |p_BorderWindow",|
00001440  2c 71 25 0d 0e 88 29 20  20 c8 99 20 22 57 69 6d  |,q%...)  .. "Wim|
00001450  70 5f 47 65 74 52 65 63  74 61 6e 67 6c 65 22 2c  |p_GetRectangle",|
00001460  30 2c 71 25 20 b8 20 6d  6f 72 65 25 0d 0e 92 05  |0,q% . more%....|
00001470  ce 0d 0e 9c 05 e1 0d 0e  a6 04 0d 0e b0 1e dd f2  |................|
00001480  63 6c 69 63 6b 6d 61 69  6e 28 62 75 74 74 6f 6e  |clickmain(button|
00001490  25 2c 69 63 6f 6e 25 29  0d 0e ba 0a c8 8e 20 b9  |%,icon%)...... .|
000014a0  20 ca 0d 0e c4 3f c9 20  28 62 75 74 74 6f 6e 25  | ....?. (button%|
000014b0  20 80 20 34 29 3d 34 20  80 20 69 63 6f 6e 25 3c  | . 4)=4 . icon%<|
000014c0  3e 2d 31 20 84 20 28 62  75 74 74 6f 6e 25 20 80  |>-1 . (button% .|
000014d0  20 31 29 3d 31 20 80 20  69 63 6f 6e 25 3c 3e 2d  | 1)=1 . icon%<>-|
000014e0  31 0d 0e ce 28 6d 6f 64  65 74 24 3d a4 69 63 6f  |1...(modet$=.ico|
000014f0  6e 5f 67 65 74 64 61 74  61 28 71 25 2c 6d 61 69  |n_getdata(q%,mai|
00001500  6e 25 2c 69 63 6f 6e 25  29 0d 0e d8 19 63 68 61  |n%,icon%)....cha|
00001510  6e 67 65 6d 6f 64 65 25  3d bb 28 6d 6f 64 65 74  |ngemode%=.(modet|
00001520  24 29 0d 0e e2 48 e7 20  63 68 61 6e 67 65 6d 6f  |$)...H. changemo|
00001530  64 65 25 3d 33 20 84 20  63 68 61 6e 67 65 6d 6f  |de%=3 . changemo|
00001540  64 65 25 3d 36 20 84 20  63 68 61 6e 67 65 6d 6f  |de%=6 . changemo|
00001550  64 65 25 3d 37 20 84 20  63 68 61 6e 67 65 6d 6f  |de%=7 . changemo|
00001560  64 65 25 3d 32 39 20 8c  20 e1 0d 0e ec 21 c8 99  |de%=29 . ....!..|
00001570  20 22 57 69 6d 70 5f 53  65 74 4d 6f 64 65 22 2c  | "Wimp_SetMode",|
00001580  63 68 61 6e 67 65 6d 6f  64 65 25 0d 0e f6 05 cb  |changemode%.....|
00001590  0d 0f 00 05 e1 0d 0f 0a  05 3a 0d 0f 14 1e dd f2  |.........:......|
000015a0  63 6c 69 63 6b 69 6e 66  6f 28 62 75 74 74 6f 6e  |clickinfo(button|
000015b0  25 2c 69 63 6f 6e 25 29  0d 0f 1e 0a c8 8e 20 b9  |%,icon%)...... .|
000015c0  20 ca 0d 0f 28 3f c9 20  28 62 75 74 74 6f 6e 25  | ...(?. (button%|
000015d0  20 80 20 34 29 3d 34 20  80 20 69 63 6f 6e 25 3c  | . 4)=4 . icon%<|
000015e0  3e 2d 31 20 84 20 28 62  75 74 74 6f 6e 25 20 80  |>-1 . (button% .|
000015f0  20 31 29 3d 31 20 80 20  69 63 6f 6e 25 3c 3e 2d  | 1)=1 . icon%<>-|
00001600  31 0d 0f 32 0e c8 8e 20  69 63 6f 6e 25 20 ca 0d  |1..2... icon% ..|
00001610  0f 3c 14 20 20 c9 20 32  20 3a f2 73 6c 61 62 69  |.<.  . 2 :.slabi|
00001620  63 6f 6e 0d 0f 46 23 20  20 20 20 20 20 20 20 20  |con..F#         |
00001630  20 f2 6f 70 65 6e 77 69  6e 64 6f 77 28 6d 65 25  | .openwindow(me%|
00001640  2c a3 2c 2d 31 29 0d 0f  50 05 cb 0d 0f 5a 05 cb  |,.,-1)..P....Z..|
00001650  0d 0f 64 05 e1 0d 0f 6e  05 3a 0d 0f 78 19 dd a4  |..d....n.:..x...|
00001660  6f 6b 74 6f 63 6c 6f 73  65 77 28 68 61 6e 64 6c  |oktoclosew(handl|
00001670  65 25 29 0d 0f 82 0f ea  20 73 68 75 74 74 69 6e  |e%)..... shuttin|
00001680  67 25 0d 0f 8c 0f 73 68  75 74 74 69 6e 67 25 3d  |g%....shutting%=|
00001690  b9 0d 0f 96 0e 3d 73 68  75 74 74 69 6e 67 25 0d  |.....=shutting%.|
000016a0  0f a0 04 0d 0f fa 0a dd  f2 6d 65 72 64 0d 10 04  |.........merd...|
000016b0  1e ff 20 22 45 72 72 6f  72 20 22 2b f6 24 2b 22  |.. "Error "+.$+"|
000016c0  20 3a 20 22 2b c3 28 9e  29 3a e1 0d 10 0e 05 e1  | : "+.(.):......|
000016d0  0d 10 18 04 0d 10 22 0e  dd f2 73 6c 61 62 69 63  |......"...slabic|
000016e0  6f 6e 0d 10 2c 1c c8 99  20 22 57 69 6d 70 5f 42  |on..,... "Wimp_B|
000016f0  6f 72 64 65 72 49 63 6f  6e 22 2c 2c 71 25 0d 10  |orderIcon",,q%..|
00001700  36 0a 71 25 21 38 3d 30  0d 10 40 1c c8 99 20 22  |6.q%!8=0..@... "|
00001710  57 69 6d 70 5f 42 6f 72  64 65 72 49 63 6f 6e 22  |Wimp_BorderIcon"|
00001720  2c 2c 71 25 0d 10 4a 05  e1 0d 10 54 04 0d 10 5e  |,,q%..J....T...^|
00001730  16 dd a4 6d 65 6e 75 73  65 6c 65 63 74 5f 73 69  |...menuselect_si|
00001740  63 6f 6e 0d 10 68 0c ea  20 6c 65 76 65 6c 30 0d  |con..h.. level0.|
00001750  10 72 0f 6c 65 76 65 6c  30 3d 71 25 21 30 0d 10  |.r.level0=q%!0..|
00001760  7c 0f c8 8e 20 6c 65 76  65 6c 30 20 ca 0d 10 86  ||... level0 ....|
00001770  22 20 20 c9 20 30 20 3a  f2 6f 70 65 6e 77 69 6e  |"  . 0 :.openwin|
00001780  64 6f 77 28 69 6e 66 6f  25 2c a3 2c 2d 31 29 0d  |dow(info%,.,-1).|
00001790  10 90 15 20 20 c9 20 31  20 3a f2 63 6c 6f 73 65  |...  . 1 :.close|
000017a0  64 6f 77 6e 0d 10 9a 05  cb 0d 10 a4 06 3d 30 0d  |down.........=0.|
000017b0  10 ae 04 0d 10 b8 16 dd  f2 77 68 69 63 68 6d 65  |.........whichme|
000017c0  6e 75 28 6d 65 6e 75 24  29 0d 10 c2 0b ea 20 76  |nu(menu$)..... v|
000017d0  6f 69 64 25 0d 10 cc 0e  c8 8e 20 6d 65 6e 75 24  |oid%...... menu$|
000017e0  20 ca 0d 10 d6 28 20 20  c9 20 22 73 69 63 6f 6e  | ....(  . "sicon|
000017f0  22 20 3a 76 6f 69 64 25  3d a4 6d 65 6e 75 73 65  |" :void%=.menuse|
00001800  6c 65 63 74 5f 73 69 63  6f 6e 0d 10 e0 05 cb 0d  |lect_sicon......|
00001810  10 ea 05 e1 0d 10 f4 04  0d 10 fe 1c dd f2 63 6c  |..............cl|
00001820  69 63 6b 6d 65 28 62 75  74 74 6f 6e 25 2c 69 63  |ickme(button%,ic|
00001830  6f 6e 25 29 0d 11 08 0a  c8 8e 20 b9 20 ca 0d 11  |on%)...... . ...|
00001840  12 3f c9 20 28 62 75 74  74 6f 6e 25 20 80 20 34  |.?. (button% . 4|
00001850  29 3d 34 20 80 20 69 63  6f 6e 25 3c 3e 2d 31 20  |)=4 . icon%<>-1 |
00001860  84 20 28 62 75 74 74 6f  6e 25 20 80 20 31 29 3d  |. (button% . 1)=|
00001870  31 20 80 20 69 63 6f 6e  25 3c 3e 2d 31 0d 11 1c  |1 . icon%<>-1...|
00001880  0e c8 8e 20 69 63 6f 6e  25 20 ca 0d 11 26 15 20  |... icon% ...&. |
00001890  20 c9 20 31 32 20 3a f2  73 6c 61 62 69 63 6f 6e  | . 12 :.slabicon|
000018a0  0d 11 30 20 20 20 20 20  20 20 20 20 20 20 20 f2  |..0            .|
000018b0  63 6c 6f 73 65 77 69 6e  64 6f 77 28 6d 65 25 29  |closewindow(me%)|
000018c0  0d 11 3a 05 cb 0d 11 44  05 cb 0d 11 4e 05 e1 0d  |..:....D....N...|
000018d0  11 58 05 3a 0d ff                                 |.X.:..|
000018d6