Home » Archimedes archive » Archimedes World » AW-1995-05-Disc1.adf » AWMay95_1 » Readersoft/Converter/!Converter/!RunImage

Readersoft/Converter/!Converter/!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 » Archimedes World » AW-1995-05-Disc1.adf » AWMay95_1
Filename: Readersoft/Converter/!Converter/!RunImage
Read OK:
File size: 14C44 bytes
Load address: 0000
Exec address: 0000
File contents
  ��0O�����0�0� R��(�O�V�DL

� - Desktop Converter
&� - By Thomas Baldwin January 1995

(� � �:�" at line ";� �10:�
2check% = �
<selected% = 0
F
value = 0
Pthe_unit$ = "Metres"
Zheading_one$ = "Original"
dheading_two$ = "Unit"
n!heading_three$ = "Conversion"
xheading_four$ = "Unit"
�save_selected% = �
�save_csv_selected% = �
�save_all% = �
�name$=""
�maths_a$="0"
�maths_b$="0"
�csv_head$="heading"
��define_arrays
��define_variables
�� � �error(�,�$):�quit
�,task_handle%=�task_initialise(app_name$)
��=0
��install_icon
�load_sprites
�load_windows
�create_windows
"	�info
,
�menus
6�null_variables
@�configure
J� � �error(�,�$)
T�wimp_poll
^	�quit
h��define_arrays
r� blk_size%
|blk_size%=&800
�� blk% blk_size%
�� temp_blk% blk_size%
�� errorblk% &100
�� workstart% &2400
�workfree%=workstart%
�workend%=workstart%+&1000
��more_arrays
��
�
�� �configure
�&file%=�"<DTConvert$Dir>.Configure"
�heading$=�#file%
�heading_one$=�#file%
heading_two$=�#file%
heading_three$=�#file%
  heading_four$=�#file%
&  beep$=�#file%
0  adjust_drag$=�#file%
:
  �#file%
D �set_up_options
N�
X
b� �set_up_options
l) �put_icon_text(opt%,10,heading_one$)
v) �put_icon_text(opt%,11,heading_two$)
�+ �put_icon_text(opt%,12,heading_three$)
�* �put_icon_text(opt%,13,heading_four$)
�  � heading$="noheading" �
�   �select_icon(opt%,9,�)
�   �shade_icon(opt%,10,�)
�   �shade_icon(opt%,11,�)
�   �shade_icon(opt%,12,�)
�   �shade_icon(opt%,13,�)
�  �
�   �select_icon(opt%,9,�)
�   �shade_icon(opt%,10,�)
�   �shade_icon(opt%,11,�)
�   �shade_icon(opt%,12,�)
   �shade_icon(opt%,13,�)
  �
- � beep$="beep" � �select_icon(opt%,14,�)
 / � beep$="nobeep" � �select_icon(opt%,14,�)
*6 � adjust_drag$="adjust" � �select_icon(opt%,15,�)
48 � adjust_drag$="noadjust" � �select_icon(opt%,15,�)
>�
H
R��more_arrays
\ save_area_size%=&8000
f' � save_area_start% save_area_size%
p save_data_size%=0
z save_data_size%=0
� temp%=save_area_start%
� $temp%=""
� load_area_size%=&2000
�' � load_area_start% load_area_size%
� load_data_size%=0
�& load_area_start%=save_area_start%
��
�
�� �save_figure_setup
� � save$,count%,save%
�   save%=0
�  � count%=0 � 27 � 3
�,   � �get_icon_text(store%,count%)<>"" �
4    save%+=�(�get_icon_text(main%,count%)+" = ")
4    save%+=�(�get_icon_text(main%,count%+2)+�13)
   �
$  � count%
.# save$=�get_icon_text(main%,17)
8 save_data_size%=0
B save_data_size%=save%
L temp%=0
V temp%=save_area_start%
`    $temp%=""
j � save_all%=� �
tG   $temp% = �(�(�get_icon_text(main%,17)+�get_icon_text(main%,24)))
~,   $temp%+= " "+�get_icon_text(main%,15)
� �
�G   $temp% = �(�(�get_icon_text(main%,17)+�get_icon_text(main%,24)))
� �
�   temp%+=� $temp%
�-   save_data_size%=temp%-save_area_start%
��
�
�� �save_setup
� � save$,count%,save%
�   save%=0
�  � count%=0 � 27 � 3
�,   � �get_icon_text(store%,count%)<>"" �
5    save%+=�(�get_icon_text(store%,count%)+" = ")

5    save%+=�(�get_icon_text(store%,count%+2)+�13)
   �
  � count%
(# save$=�get_icon_text(main%,17)
2 save_data_size%=0
< save_data_size%=save%
F temp%=save_area_start%
P � save_selected%=� �
Z  � count%=0 � 27 � 3
d,   � �get_icon_text(store%,count%)<>"" �
n    $temp%=""
xW    $temp%+=(�get_icon_text(store%,count%)+" = ")+(�get_icon_text(store%,count%+2))
�    $temp%+=�&0A
�     temp%=temp%+ � $temp%
�   �
�  � count%
�  � count%=37 � 40 � 3
�,   � �get_icon_text(store%,count%)<>"" �
�    $temp%=""
�W    $temp%+=(�get_icon_text(store%,count%)+" = ")+(�get_icon_text(store%,count%+2))
�    $temp%+=�&0A
�     temp%=temp%+ � $temp%
�   �
�  � count%
� �

  temp%=0
  temp%=save_area_start%
  $temp%=""
"   � count%=0 � 27 � 3
,O    � �get_icon_text(store%,count%)<>"" � �icon_selected(store%,count%)=� �
6     $temp%=""
@X     $temp%+=(�get_icon_text(store%,count%)+" = ")+(�get_icon_text(store%,count%+2))
J     $temp%+=�&0A
T     temp%+= � $temp%
^	    �
h   � count%
r   � count%=37 � 40 � 3
|O    � �get_icon_text(store%,count%)<>"" � �icon_selected(store%,count%)=� �
�     $temp%=""
�X     $temp%+=(�get_icon_text(store%,count%)+" = ")+(�get_icon_text(store%,count%+2))
�     $temp%+=�&0A
�     temp%+= � $temp%
�	    �
�   � count%
�*save_data_size%=temp%-save_area_start%
� �
��
�
�� �save_csv_setup
�> � save$,count%,save%,count_again%,text$,pos%,fix%,repeat%
�   save%=0
  repeat%=0
    fix%=�
 count_again%=0
&� save_csv_selected%=� �
0 temp%=0
: save_data_size%=0
D save_data_size%=save%
N temp%=save_area_start%
X $temp%=""
b� heading$="heading" �
l' $temp%+=""""+heading_one$+""""+","
v  temp%+=� $temp%
�' $temp%+=""""+heading_two$+""""+","
�  temp%+=� $temp%
�) $temp%+=""""+heading_three$+""""+","
�  temp%+=� $temp%
�) $temp%+=""""+heading_four$+""""+�&0A
��
�    temp%+=� $temp%
� � repeat%=1 � 2
�'  � repeat%=1 � � count%=0 � 27 � 3
�(  � repeat%=2 � � count%=37 � 40 � 3
�,   � �get_icon_text(store%,count%)<>"" �
�    temp%+=� $temp%
�+    text$=�get_icon_text(store%,count%)
    count_again%=0
    pos%=0
   �
     count_again%+=1
*D     � � �text$,count_again%)>&40 � � �text$,count_again%)<&5B �
4      pos%=count_again%
>
     �
H1      � count_again%>30 � pos%=� text$:fix%=�
R   � pos%>0
\    � fix%=� �
fH     $temp%+=�text$,� text$-(pos%+1))+","+""""+�text$,pos%)+""""+","
p	    �
z     $temp%+=text$+",,"
�	    �
�     temp%+=� $temp%
�
�.     text$=�get_icon_text(store%,count%+2)
�     count_again%=0
�     pos%=0
�     fix%=�
�   �
�     count_again%+=1
�E      � � �text$,count_again%)>&40 � � �text$,count_again%)<&5B �
�       pos%=count_again%
�      �
�1      � count_again%>30 � pos%=� text$:fix%=�
	   � pos%>0
	    � fix%=� �
	I     $temp%+=�text$,� text$-(pos%+1))+","+""""+�text$,pos%)+""""+�&0A
	$	    �
	.     $temp%+=text$+","+�&0A
	8	    �
	B     temp%+= � $temp%
	L   �
	V  � count%
	`  � repeat%
	j-   save_data_size%=temp%-save_area_start%
	t  �
	~   temp%=0
	�   save_data_size%=0
	�   save_data_size%=save%
	�   temp%=save_area_start%
	�   $temp%=""
	�)   $temp%+=""""+heading_one$+""""+","
	�   temp%+=� $temp%
	�)   $temp%+=""""+heading_two$+""""+","
	�   temp%+=� $temp%
	�+   $temp%+=""""+heading_three$+""""+","
	�   temp%+=� $temp%
	�+   $temp%+=""""+heading_four$+""""+�&0A
	�   temp%+=� $temp%
 � repeat%=1 � 2

'  � repeat%=1 � � count%=0 � 27 � 3
(  � repeat%=2 � � count%=37 � 40 � 3
N   � �get_icon_text(store%,count%)<>"" � �icon_selected(store%,count%)=� �
(    temp%+=� $temp%
2+    text$=�get_icon_text(store%,count%)
<    count_again%=0
F    fix%=�
P    pos%=0
Z   �
d    count_again%+=1
nD     � � �text$,count_again%)>&40 � � �text$,count_again%)<&5B �
x      pos%=count_again%
�
     �
�1      � count_again%>30 � pos%=� text$:fix%=�
�   � pos%>0
�   � fix%=� �
�G    $temp%+=�text$,� text$-(pos%+1))+","+""""+�text$,pos%)+""""+","
�   �
�     $temp%+=text$+",,"
�   �
�     temp%+=� $temp%
�
�.     text$=�get_icon_text(store%,count%+2)
�     count_again%=0
�     pos%=0
     fix%=�
   �
     count_again%+=1
"E      � � �text$,count_again%)>&40 � � �text$,count_again%)<&5B �
,       pos%=count_again%
6      �
@1      � count_again%>30 � pos%=� text$:fix%=�
J   � pos%>0
T    � fix%=� �
^H    $temp%+=�text$,� text$-(pos%+1))+","+""""+�text$,pos%)+""""+�&0A
h	    �
r     $temp%+=text$+","+�&0A
|	    �
�     temp%+= � $temp%
�  �
�
 � count%
�
� repeat%
�*save_data_size%=temp%-save_area_start%
��
��
�
���define_variables
� negative%=�
�  app_sprite$   ="!Converter"
�' app_name$     ="Desktop Converter"
�% app_purpose$  ="Unit conversion"
$ app_author$   ="Thomas Baldwin"
) app_version$  ="1.07, February 1995"
+�  LIBRARY "<Obey$Dir>.Library.WimpLib"
&0 app_directory$=�system_variable("Obey$Dir")
0  errorcount%=0
:   menufile%=0
D    icon_bar%=-2
N    adjust_click%=1
X    menu_click%=2
b    select_click%=4
l    adjust_drag%=16
v    select_drag%=64
�   poll_mask%=0
�   poll_time%=0
�
  quit%=�
�  exp%=0
� �more_variables
��
�
���more_variables
� metric%=�
�
  type%=1
� ref_number%=2
�  menu_number%=3
�  memory_transfer%=�

  ram_block_size%=1024

 ok_icon%=0

 name_icon%=2

  file_icon%=3

*�

4

>��install_icon

H; icon_bar_handle%=�put_icon_on_bar(app_sprite$,"RIGHT")

R�

\

f��load_sprites

p�

z

���load_windows

� templates$=".Templates"

�D � �system_variable("version")="TRUE" � templates$=".Templates2"

�O info%  =�new_template(app_directory$+templates$,"info",workfree%,workend%)

�O main%  =�new_template(app_directory$+templates$,"main",workfree%,workend%)

�O opt%=�new_template(app_directory$+templates$,"options",workfree%,workend%)

�O save%  =�new_template(app_directory$+templates$,"save",workfree%,workend%)

�P store% =�new_template(app_directory$+templates$,"store",workfree%,workend%)

�W save_csv%  =�new_template(app_directory$+templates$,"save_csv",workfree%,workend%)

�Q maths% = �new_template(app_directory$+templates$,"Maths",workfree%,workend%)

��

�

���create_windows
�


��info
$J �put_info_text(info%,app_name$,app_purpose$,app_author$,app_version$)
.�
8
B��menus
L) �load_menus(app_directory$+".menus")
V�
`
j��wimp_poll
t �
~;  ș"Wimp_PollIdle",poll_mask%,blk%,poll_time% � event%
�   Ȏ event% �
�    � 0
�    � 1
�     �redraw_window
�    � 2
�     �open_window_event
�    � 3
�-     window%=!blk%:�close_window(window%)
�    � 4
�     �pointer_out
�    � 5
�     �pointer_in
    � 6

     �mouse_button
    � 7
     �drag_over
(    � 8
2     �key_press
<    � 9
F     �menu_selection
P    �10
Z     �scroll_request
d    �11
n     �loose_caret
x    �12
�     �gain_caret
�    �17
�     �message
�    �18
�     �message
�    �19
�     �no_reply
�   �
� � quit%
�  �quit
��
�
���redraw_window
" � redraw_window%,redraw_more%
/ ș"Wimp_RedrawWindow",,blk% � redraw_more%
  ȕ redraw_more%
"   redraw_window%=!blk%
,     Ȏ redraw_window% �
6      � print_window%
@%       �redraw_print_window(blk%)
J      �
TG    !blk%=redraw_window%:ș"Wimp_GetRectangle",,blk% � redraw_more%
^  �
h�
r
|� �open_window_event
� ș "Wimp_OpenWindow",,blk%
��
�
�� �close_window(window%)
� !blk%=window%
�  ș "Wimp_CloseWindow",,blk%
��
�
�� �pointer_out
��
�
�� �pointer_in
��

� �mouse_button
A mousex%=blk%!0         :� X position of pointer when clicked
&A mousey%=blk%!4         :� Y position of pointer when clicked
0* mousebut%=blk%!8       :� Button code
:: window_handle%=blk%!12 :� Handle of window clicked in
D8 icon_handle%=blk%!16   :� Handle of icon clicked on
N  Ȏ window_handle% �
X    � icon_bar%
b     �icon_bar_click
l    � info%
v0     � icon_handle%=9 � �open_window(silly%)
�    � main%
�     �main_click
�    � save%
�     �save_click
�    � save_csv%
�     �save_csv_click
�    � store%
�     �store_click
�    � opt%
�     �opt_click
�    � maths%
�     �maths_click
�  �
�

��drag_over
 2� window%,icon%,x%,y%,file$,start%,size%,type%
*# ș "Wimp_GetPointerInfo",,blk%
46 x%=blk%!0:� Mouse pointer x coord. at end of drag
>6 y%=blk%!4:� Mouse pointer y coord. at end of drag
HI window%=blk%!12:� Handle of window which pointer has been dragged to
R9 icon%=blk%!16:� Handle of icon which pointer is over
\  Ȏ drag_window% �
f   � save%,save_csv%
p    � save_data_size%>0 �
z6     file$=�leaf(�get_icon_text(save%,name_icon%))
�      start%=save_area_start%
�     size%=save_data_size%
�9     type%=�icon_sprite_type(drag_window%,file_icon%)
�E     �initiate_save(window%,icon%,x%,y%,file$,start%,size%,type%)
�	    �
�   � main%
�    � save_data_size%>0 �
�     file$="Converted"
�      start%=save_area_start%
�     size%=save_data_size%
�*     type%=�icon_sprite_type(main%,31)
�E     �initiate_save(window%,icon%,x%,y%,file$,start%,size%,type%)
�	    �
 �
�

$� �deselect(abc%)
.
 � count%
8  � count% = 0 � 27 � 3
B-   � �icon_selected(store%,count%)=abc% �
L,    �select_icon(store%,count%,(� abc%))
V.    �select_icon(store%,count%+2,(� abc%))
`   �
j  � count%
t  � count% = 37 � 40 � 3
~-   � �icon_selected(store%,count%)=abc% �
�,    �select_icon(store%,count%,(� abc%))
�.    �select_icon(store%,count%+2,(� abc%))
�   �
�  � count%
�
��shade_icon(store%,30,abc%)
��shade_icon(store%,31,abc%)
��
�
�� �is_owt_selected
�� count%
� � count% = 0 � 27 � 3

 � count%

" �shade_icon(store%,30,� abc%)
" �shade_icon(store%,31,� abc%)
�
(
2� �do_i_shade
< � selected%=0 �
F  �shade_icon(store%,30,�)
P  �shade_icon(store%,31,�)
Z �
d  �shade_icon(store%,30,�)
n  �shade_icon(store%,31,�)
x �
��
�
�� �select_select(count%)
�' Ȏ �icon_selected(store%,count%) �
�	  � �
�,   � �get_icon_text(store%,count%)<>"" �
�    selected%+=1
�%    �select_icon(store%,count%,�)
�)    �select_icon(store%,(count%+2),�)
�   �
�	  � �
�   selected%-=1
�$   �select_icon(store%,count%,�)
(   �select_icon(store%,(count%+2),�)
 �
  �do_i_shade
"�
,
6� �store_click
@?  � mousebut%=menu_click% � adjust_click% � select_click% �
J   Ȏ icon_handle% �
T    � 35
^      current_menu%=menu%(16)
h     menu_context$="Main"
r     menu_x%=mousex%+32
|     menu_y%=mousey%
�<     ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
�	    
�"     � mousebut%=menu_click% �
�!      current_menu%=menu%(17)
�      menu_context$="Main"
�      menu_x%=mousex%-32
�      menu_y%=mousey%
�<     ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
�	    �
�   �
�  �
� Ȏ mousebut% �
�#  � select_click%,adjust_click%
   Ȏ icon_handle% �
    � 0,1,2
.     �select_select((�(icon_handle%/3))*3)
&    � 3,4,5
0.     �select_select((�(icon_handle%/3))*3)
:    � 6,7,8
D.     �select_select((�(icon_handle%/3))*3)
N    � 9,10,11
X.     �select_select((�(icon_handle%/3))*3)
b    � 12,13,14
l.     �select_select((�(icon_handle%/3))*3)
v    � 15,16,17
�.     �select_select((�(icon_handle%/3))*3)
�    � 18,19,20
�.     �select_select((�(icon_handle%/3))*3)
�    � 21,22,23
�.     �select_select((�(icon_handle%/3))*3)
�    � 24,25,26
�.     �select_select((�(icon_handle%/3))*3)
�    � 27,28,29
�.     �select_select((�(icon_handle%/3))*3)
�    � 37,38,39
�     �select_select(37)
�    � 40,41,42
�     �select_select(40)
    � 30
     �deselect(�)
     selected%=0
     � 31
*     �delete_selected
4    � 32
>     �sel_all
H    � 33
R(     �open_window(save%):�menu_close
\8     �place_caret(save%,1,� �get_icon_text(save%,1))
f    � 34
p     �close_window(store%)
z    � 36
�     �print
�   �
� �
��
�
�� �sel_all
�selected%=0
�
 � count%
�  � count% = 0 � 27 � 3
�,   � �get_icon_text(store%,count%)<>"" �
�%    �select_icon(store%,count%,�)
�'    �select_icon(store%,count%+2,�)
�    selected%+=1
   �
  � count%
  � count% = 37 � 40 � 3
$,   � �get_icon_text(store%,count%)<>"" �
.%    �select_icon(store%,count%,�)
8'    �select_icon(store%,count%+2,�)
B    selected%+=1
L   �
V  � count%
`
j� selected%>0 �
t �shade_icon(store%,30,�)
~ �shade_icon(store%,31,�)
��
��
�
�� �delete_selected
�
 � count%
�  � count% = 0 � 27 � 3
�*   � �icon_selected(store%,count%)=� �
�(    �put_icon_text(store%,count%,"")
�*    �put_icon_text(store%,count%+2,"")
�%    �select_icon(store%,count%,�)
�'    �select_icon(store%,count%+2,�)
�   �
  � count%

  � count% = 37 � 40 � 3
*   � �icon_selected(store%,count%)=� �
(    �put_icon_text(store%,count%,"")
(*    �put_icon_text(store%,count%+2,"")
2%    �select_icon(store%,count%,�)
<'    �select_icon(store%,count%+2,�)
F   �
P  � count%
Z
d  selected%=0
n �shade_icon(store%,30,�)
x �shade_icon(store%,31,�)
��
�
�� �save_click
� Ȏ mousebut% �
�#  � adjust_click%,select_click%
�   Ȏ icon_handle% �
�    � 1
�&     � �icon_selected(save%,1)=� �
�2      �select_icon(save%,1,�):save_selected%=�
�
     �
�2      �select_icon(save%,1,�):save_selected%=�
�
     �
�    � 0
       �save_setup
,      file_name$=�get_icon_text(save%,2)
      file_type%=&FFF
"      � �file_name$,".") �
,M       �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
6       �menu_close
@      �
JK       �report_error("Drag the file to a directory display.",app_name$)
T      �
^   �
h!  � select_drag%,adjust_drag%
r�save_setup
|    � icon_handle%=3 �
�A      � Remember which icon was dragged and from which window
�      drag_icon%=3
�      drag_window%=save%
�      �drag_box(save%,3)
�	    �
� �
��
�
�� �main_drag
� Ȏ mousebut% �
�  � select_drag%
�   save_all% = �
�  � adjust_drag%
   save_all% = �
,   � adjust_drag$="adjust" save_all% = �
 �
&  �save_figure_setup
0  drag_icon% = 31
:  file_type% = &FFF
D  drag_window%=main%
N  file_name$ = "Converted"
X  �drag_box(main%,31)
b�
l
v� �save_csv_click
� Ȏ mousebut% �
�#  � adjust_click%,select_click%
�   Ȏ icon_handle% �
�    � 1
�*     � �icon_selected(save_csv%,1)=� �
�:      �select_icon(save_csv%,1,�):save_csv_selected%=�
�
     �
�:      �select_icon(save_csv%,1,�):save_csv_selected%=�
�
     �
�    � 0
��save_csv_setup
�0      file_name$=�get_icon_text(save_csv%,2)
�      file_type%=&DFE
      � �file_name$,".") �
M       �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
       �menu_close
       �
*K       �report_error("Drag the file to a directory display.",app_name$)
4      �
>   �
H!  � select_drag%,adjust_drag%
R�save_csv_setup
\    � icon_handle%=3 �
f      drag_icon%=3
p       drag_window%=save_csv%
z       �drag_box(save_csv%,3)
�	    �
� �
��
�
�� �opt_key
� Ȏ icon_handle% �
�  � 10,11,12,13
�   Ȏ key% �
�    � &D,&18A,&18E
�     � icon_handle%=13 �
�9      �place_caret(opt%,10,� �get_icon_text(opt%,10))
�
     �
�Q      �place_caret(opt%,icon_handle%+1,� �get_icon_text(opt%,icon_handle%+1))

     �
    � &18F
     � icon_handle%=10 �
$9      �place_caret(opt%,13,� �get_icon_text(opt%,13))
.
     �
8Q      �place_caret(opt%,icon_handle%-1,� �get_icon_text(opt%,icon_handle%-1))
B
     �
L   �
V �
`�
j
t� �math_key
~ Ȏ icon_handle% �
�	  � 2
�   Ȏ key% �
�    � &D,&18A,&18E,&18F
�G     �place_caret(maths%,5,� �get_icon_text(maths%,icon_handle%+1))
�   �
�	  � 5
�   Ȏ key% �
�    � &D,&18A,&18E,&18F
�     � key% = &D �
�      �math_calc
�
     �
�H      �place_caret(maths%,2,� �get_icon_text(maths%,icon_handle%+1))

     �

   �
 �
�
(
2��key_press
< window_handle%=blk%!0
F icon_handle%=blk%!4
P key%=blk%!24
Z    � window_handle%=opt% �
d     �opt_key
n	    �
x	    �
�!    � window_handle%=maths% �
�     �math_key
�	    �
�	    �
�    Ȏ key% �
�
     � &1
�      �sel_all
�     � &18
�      �delete_selected
�     � &1A
�      �deselect(�)
�      selected%=0
�     � &191
      � type% = 1  �
/      � �data_type_menu("Length       �F1")
      �
"      �menu_close
,     � &192
6      � type% =2 �
@/      � �data_type_menu("Area         �F2")
J      �
T      �menu_close
^     � &193
h      � type% =3 �
r/      � �data_type_menu("Mass         �F3")
|      �
�      �menu_close
�     � &194
�      � type% =4 �
�/      � �data_type_menu("Volume       �F4")
�      �
�      �menu_close
�     � &195
�      � type% =5 �
�/      � �data_type_menu("Capacity     �F5")
�      �
�      �menu_close
�     � &196
�      � type% =6 �
 /      � �data_type_menu("Temperature  �F6")
       �
       �menu_close
 &      � &183:� open save menu
 0      �menu_close
 :(      ș "Wimp_GetPointerInfo",,blk%
 D      mousex%=blk%!0
 N      mousey%=blk%!4
 X!      current_menu%=menu%(16)
 b      menu_context$="Main"
 l      menu_x%=mousex%-32
 v      menu_y%=mousey%
 �=      ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
 �     � &184
 �      �open_window(opt%)
 �9      �place_caret(opt%,10,� �get_icon_text(opt%,10))
 �     � &185:� - From Metric
 �      � metric%=� �
 �       �change_metric(�)
 �       �tick(15,3,�)
 �       �tick(15,2,�)
 �      �
 �     � &186:� - To Metric
 �      � metric%=� �
 �       �change_metric(�)
!       �tick(15,3,�)
!       �tick(15,2,�)
!      �
! 
     � 13
!*      Ȏ window_handle% �
!4       � main%
!>        �oh_smeg
!H        �menu_close
!R        � beep$="beep" � �7
!\       � save%
!f.        �save_key_press(key%,icon_handle%)
!p      �
!z     � &1A1
!�      �menu_close
!�      �close_window(store%)
!�     � &1A2
!�      �menu_close
!�4      �close_window(main%):�close_window(store%)
!�3      �close_window(opt%):�close_window(maths%)
!�     � &1A7
!�      �down(type%)
!�     � &1A8
!�      �up(type%)
!�     � &1A9
!�      �exp_down
!�     � &1EA
"      �exp_up
"     � &181
"C      � �icon_selected(main%,23) = � � �select_icon(main%,23,�)
"$     � &182
".C      � �icon_selected(main%,23) = � � �select_icon(main%,23,�)
"8     � &189
"B      �send_to_store
"L     � &1CA
"V      �open_window(store%)
"`     � &1CB
"j      �open_window(maths%)
"tH      �place_caret(maths%,2,� �get_icon_text(maths%,icon_handle%+1))
"~   
"�!     ș"Wimp_ProcessKey",key%
"�	    �
"��
"�
"�'��save_key_press(key%,icon_handle%)
"�� file_name$,file_type%
"� Ȏ key% �
"�A  � 13:� "Return" pressed with the caret in the "save" window
"�   Ȏ window_handle% �
"�    � save%
"�4     file_name$=�get_icon_text(save%,name_icon%)
"�7     file_type%=�icon_sprite_type(save%,file_icon%)
#     � �file_name$,".") �
#
M       �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
#       �menu_close
#
     �
#(K       �report_error("Drag the file to a directory display.",app_name$)
#2
     �
#<    � save_csv%
#F8     file_name$=�get_icon_text(save_csv%,name_icon%)
#P;     file_type%=�icon_sprite_type(save_csv%,file_icon%)
#Z     � �file_name$,".") �
#dM       �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
#n       �menu_close
#x
     �
#�K       �report_error("Drag the file to a directory display.",app_name$)
#�
     �
#�  �
#� �
#��
#�
#�� �math_calc
#�%maths_a$=�get_icon_text(maths%,2)
#�%maths_b$=�get_icon_text(maths%,5)
#�
#�" Ȏ �get_icon_text(maths%,4) �
#�  � "Plus"
#�:   �put_icon_text(maths%,9,�(�(maths_a$)+�(maths_b$)))
$  � "Minus"
$:   �put_icon_text(maths%,9,�(�(maths_a$)-�(maths_b$)))
$  � "Multiplied by"
$":   �put_icon_text(maths%,9,�(�(maths_a$)*�(maths_b$)))
$,  � "Divided by"
$6:   �put_icon_text(maths%,9,�(�(maths_a$)/�(maths_b$)))
$@ �
$J�
$T
$^� �save_request
$h$� to_window%,to_icon%,data_type%
$r2� Another task wants to save data to this task
$|to_window%=blk%!20
$�to_icon%=blk%!24
$�data_type%=blk%!40
$�  Ȏ data_type% �
$�    � &FFF
$�       � Data is of text type
$�#      � Send back an OK message
$�<      �message_save_ok(load_area_start%,load_area_size%)
$�  �
$��
$�
$���load_request
$�� file_type%,file_name$
$�file_type%=blk%!40
%  Ȏ file_type% �
%    � &FFF
%-      file_name$=�get_string(blk%+44,255)
%&I      load_data_size%=�message_load(load_area_start%,load_area_size%)
%0  �
%:�
%D
%N��save_demand
%X� file_name$,file_type%
%b'file_name$=�get_string(blk%+44,255)
%l,� blk%!36=-1 � to_filer%=� � to_filer%=�
%vfile_type%=blk%!40
%� Ȏ drag_window% �
%�  � save%,save_csv%
%�I   �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
%�   �message_save_reply
%�<   � to_filer% �put_icon_text(drag_window%,2,file_name$)
%�
  � main%
%�I   �save_data(file_name$,file_type%,save_area_start%,save_data_size%)
%�   �message_save_reply
%� �
%��menu_close
%��
%�
%���menu_selection
& � menu_path$,menu_item$
&1  menu_path$=�decode_menu(current_menu%,blk%)
&"  menu_item$=�leaf(menu_path$)
&    Ȏ current_menu% �
&*    � menu%(1)
&4     �main_menu(menu_item$)
&>    � menu%(2)
&H$     �data_type_menu(menu_item$)
&R    � menu%(3)
&\$     �length_mt_menu(menu_item$)
&f    � menu%(4)
&p!     �length_menu(menu_item$)
&z    � menu%(5)
&�"     �area_mt_menu(menu_item$)
&�    � menu%(6)
&�     �area_menu(menu_item$)
&�    � menu%(7)
&�"     �mass_mt_menu(menu_item$)
&�    � menu%(8)
&�     �mass_menu(menu_item$)
&�    � menu%(9)
&�$     �volume_mt_menu(menu_item$)
&�    � menu%(10)
&�!     �volume_menu(menu_item$)
&�    � menu%(11)
&�&     �capacity_mt_menu(menu_item$)
'    � menu%(12)
'#     �capacity_menu(menu_item$)
'    � menu%(13)
'$"     �temp_mt_menu(menu_item$)
'.    � menu%(14)
'8     �temp_menu(menu_item$)
'B    � menu%(15)
'L     �menu(menu_item$)
'V    � menu%(17)
'`      �store_menu(menu_item$)
'j    � menu%(18)
't      �maths_menu(menu_item$)
'~   �
'�#  ș"Wimp_GetPointerInfo",,blk%
'�B  �blk%!8=1 ș"Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
'��
'�
'���scroll_request
'��
'�
'���loose_caret
'��
'�
'���gain_caret
'��
(
(

��message
(� message_type%
(message_type%=blk%!16
(( Ȏ message_type% �
(2	  � 0
(<   quit%=�
(F	  � 1
(P   �save_request
(Z	  � 7
(d   �ram_transmit
(n	  � 3
(x   �load_request
(�	  � 2
(�   �save_demand
(�	  � 6
(�   �ram_transfer_reply
(�	  � 4
(�   �menu_close
(�	  � 5
(�  � &502
(�   �get_help
(� �
(��
(�
(�� �get_help
) window_handle%=blk%!32
) icon_handle%=blk%!36
) Ȏ window_handle% �
)"  � maths%
),   Ȏ icon_handle% �
)6
    � 2,5
)@Z     �give_help("Enter a number to add, subtract multiply, or divide into this icon.")
)J    � 4
)Tz     �give_help("These shows the arthimetic operation to be performed upon the numbers in the two icons to the left.")
)^    � 8
)h/     �give_help("Click here to calculate.")
)r    � 9
)|*     � �get_icon_text(maths%,9)="42" �
)�L      �give_help("The meaning of life, the universe, and everything...")
)�
     �
)�3      �give_help("This icon shows the answer.")
)�
     �
)�   �
)�
  � -2
)   �give_help("This is the Desktop Converter icon.|MClick SELECT or ADJUST to open the main window.|MClick MENU to open the icon bar menu.")
)�
  � info%
)�   Ȏ icon_handle% �
)�    � 1
)�)     �give_help("Desktop Converter.")
)�    � 2
)�'     �give_help("Unit conversion.")
*    � 3
*&     �give_help("Thomas Baldwin.")
*    � 4
*&2     �give_help("Version 1.05, January 1995.")
*0	    
*:/     �give_help("This is the Info window.")
*D   �
*N
  � main%
*X   Ȏ icon_handle% �
*b    � 2
*lJ     �give_help("Click SELECT or ADJUST to convert to metric values.")
*v    � 3
*�z     �give_help("This shows the type of measurement to be converted.|MClick on the icon to the right to change this.")
*�    � 4
*�L     �give_help("Click SELECT or ADJUST to convert from metric values.")
*�    � 5
*�]     �give_help("Click here to bring up a menu in order to change the measurement type.")
*�    � 7
*��     �give_help("Click SELECT or ADJUST to place the caret in this icon.|MType the value to be converted in here.|MPress RETURN with the caret in this icon to convert.")
*�    � 8
*�k     �give_help("This shows the unit to be converted.|MClick on the icon to the right to change this.")
*�    � 9
*�`     �give_help("Click here to bring up a menu in order to change the unit of measurement.")
*�    � 15
*�g     �give_help("This shows the converted unit.|MClick on the arrows to the right to change this.")
+    � 17
+6     �give_help("This shows the converted value.")
+    � 19
+      �give_help("Click SELECT to calculate the converted value.|MClick ADJUST to calculate and store the converted value.")
+*    � 20,21
+4�     �give_help("Click SELECT on either arrow to invrease or decrease the converted unit.|MClicking ADJUST has the opposite effect.")
+>    � 23
+H]     �give_help("Click SELECT or ADJUST to toggle between positive and negative values.")
+R    � 24
+\G     �give_help("This shows the exponent of the converted number.")
+f    � 25
+pw     �give_help("This shows the exponent of the original value.|MClick on the arrows to the right to change this.")
+z    � 26,27
+�Z     �give_help("Click on these arrows to change the exponent of the original value.")
+�    � 28
+�     �give_help("Click SELECT to store the conversion.|MClick ADJUST to store the conversion and open the records window.")
+�    � 29
+�I     �give_help("Click SELECT or ADJUST to open the records window.")
+�    � 31
+�"     � adjust_drag$="adjust" �
+�k      �give_help("Drag SELECT to save the number and its unit.|MDrag ADJUST to save the number alone.")
+�
     �
+�N      �give_help("Drag SELECT or ADJUST to save the number and its unit.")
+�
     �
+�   �
+�  � opt%
,   Ȏ icon_handle% �
,    � 0
,h     �give_help("Click SELECT or ADJUST here to close the window without implementing any changes.")
,$    � 1
,.�     �give_help("Click SELECT or ADJUST to save any changes.|MNote you must click on OK in order to implement them straight away.")
,8    � 2
,Ba     �give_help("Click SELECT or ADJUST to close the window and implement any changes made.")
,L    � 9
,Vl     �give_help("Click SELECT or ADJUST to toggle between headings/no headings in any CSV files saved.")
,`    � 10
,j�     �give_help("The original number heading in any CSV files saved.|MTo change the heading click SELECT or ADJUST to place the caret in the icon and type in a new heading.")
,t    � 11
,~�     �give_help("The original unit heading in any CSV files saved.|MTo change the heading click SELECT or ADJUST to place the caret in the icon and type in a new heading.")
,�    � 12
,��     �give_help("The converted number heading in any CSV files saved.|MTo change the heading click SELECT or ADJUST to place the caret in the icon and type in a new heading.")
,�    � 13
,��     �give_help("The converted unit heading in any CSV files saved.|MTo change the heading click SELECT or ADJUST to place the caret in the icon and type in a new heading.")
,�    � 14
,�i     �give_help("Click SELECT or ADJUST to toggle between beeping when a calculation has been made.")
,�    � 15
,Χ     �give_help("Click SELECT or ADJUST to toggle between draging the text file icon in the main window with ADJUST saving the converted number without its unit.")
,�   �
,�  � store%
,�   Ȏ icon_handle% �
,�Y    � 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29
-d     �give_help("Click SELECT or ADJUST to select this record.|MYou cannot select empty icons.")
-
    � 30
-L     �give_help("Clear SELECT or ADJUST to clear the selected records.")
-    � 31
-(M     �give_help("Clear SELECT or ADJUST to delete the selected records.")
-2    � 32
-<D     �give_help("Click SELECT or ADJUST to select all records.")
-F    � 34
-PJ     �give_help("Click SELECT or ADJUST to close the Records window.")
-Z    � 35
-d:     �give_help("Click here to bring up a save menu.")
-n    � 36
-x:     �give_help("Clck here to open the print window.")
-�   �
-�  � save%,save_csv%
-�   Ȏ icon_handle% �
-�    � 0
-��     �give_help("Click here to save the data with the current filename. If it is not a full pathname, you must drag the icon to a directory first.")
-�    � 1
-�p     �give_help("Click here to toggle between saving the selected records only and saving all the records.")
-�    � 2
-ҁ     �give_help("This shows the filename for this data. If it is not a full pathname, drag the icon to a directory display.")
-�    � 3
-�     �give_help("Drag this icon to the directory in which you want to save the file. Or, drag it to the program into which you want to transfer the data.")
-�   �
-� �
.�
.
.� �give_help(help_text$)
." blk%!0=256
., blk%!12=blk%!8
.6 blk%!16=&503
.@ $(blk%+20)=help_text$+�0
.J( ș"Wimp_SendMessage",17,blk%,blk%!4
.T�
.^
.h��no_reply
.rmessage_code%=blk%!16
.|Ȏ message_code% �
.�	  � 6
.�    � Check if a
.�    � ram_transfer% �
.�      � ram_transmit% �
.�L        �report_error("Data transfer to another task failed!",app_name$)
.�      �
.�        �message_file_save
.�      �
.�	    �
.�	  � 7
.�8    �report_error("Data transfer failed!",app_name$)
.� �
.��
/
/��icon_bar_click
/ Ȏ mousebut% �
/&  � menu_click%
/0   menu_context$="icon_bar"
/:   current_menu%=menu%(1)
/D   menu_x%=mousex%-64
/N(   menu_y%=�menu_height(menu%(1))+96
/X:   ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
/b#  � select_click%,adjust_click%
/l   �open_window(main%)
/v   �place_caret(main%,7,0)
/�  �
/��
/�
/�� �shade_options(abcd%)
/�
 � count%
/�  � count%=10 � 13
/�%   �shade_icon(opt%,count%,abcd%)
/�  � count%
/��
/�
/�� �opt_click
/� Ȏ mousebut% �
/�#  � select_click%,adjust_click%
0   Ȏ icon_handle% �
0    � 0
0     �close_window(opt%)
0      �set_up_options
0*     �menu_close
04    � 1
0>     �save_options
0H    � 2
0R     �close_window(opt%)
0\     �get_options
0f     �menu_close
0p    � 9
0z%     � �icon_selected(opt%,9)=� �
0�       �select_icon(opt%,9,�)
0�      �shade_options(�)
0�
     �
0�       �select_icon(opt%,9,�)
0�      �shade_options(�)
0�
     �
0�    � 14,15
0�0     � �icon_selected(opt%,icon_handle%)=� �
0�+      �select_icon(opt%,icon_handle%,�)
0�
     �
0�+      �select_icon(opt%,icon_handle%,�)
0�
     �
0�   �
1 �
1�
1
1$� �maths_click
1. Ȏ mousebut% �
18#  � select_click%,adjust_click%
1B   Ȏ icon_handle% �
1L    � 8
1V     �math_calc
1`0     � mousebut%=adjust_click% � �send_maths
1j    � 6
1t     �send_maths
1~    � 7
1�     �close_window(maths%)
1�    � 3
1�      current_menu%=menu%(18)
1�     menu_context$="Maths"
1�     menu_x%=mousex%
1�     menu_y%=mousey%
1�<     ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
1�   �
1�  � menu_click%
1�   � icon_handle%=3 �
1�    current_menu%=menu%(18)
1�    menu_context$="Maths"
2    menu_x%=mousex%
2
    menu_y%=mousey%
2;    ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
2   �
2( �
22�
2<
2F� �save_options
2P
 � count%
2Z(  file%=�"<DTConvert$Dir>.Configure"
2d#   � �icon_selected(opt%,9)=� �
2n    �#file%,"noheading"
2x   �
2�    �#file%,"heading"
2�   �
2�  � count%=10 � 13
2�*   �#file%,�get_icon_text(opt%,count%)
2�  � count%
2�$   � �icon_selected(opt%,14)=� �
2�    �#file%,"beep"
2�   �
2�    �#file%,"nobeep"
2�   �
2�$   � �icon_selected(opt%,15)=� �
2�    �#file%,"adjust"
2�   �
3    �#file%,"noadjust"
3   �
3
  �#file%
3"�
3,
36� �get_options
3@ beep$="nobeep"
3J adjust_drag$="noadjust"
3T heading$="heading"
3^*  heading_one$=�get_icon_text(opt%,10)
3h*  heading_two$=�get_icon_text(opt%,11)
3r,  heading_three$=�get_icon_text(opt%,12)
3|+  heading_four$=�get_icon_text(opt%,13)
3�1   � �icon_selected(opt%,14)=� � beep$="beep"
3�:   � �icon_selected(opt%,15)=� � adjust_drag$="adjust"
3�8   � �icon_selected(opt%,9)=� � heading$="noheading"
3��
3�
3�� �main_click
3�� check%
3� Ȏ mousebut% �
3�#  � select_click%,adjust_click%
3�   Ȏ icon_handle% �
3�    � 28
3�&     � mousebut% = select_click% �
3�      �send_to_store
4
     �
4      �send_to_store
4      �open_window(store%)
4&
     �
40    � 29
4:     �open_window(store%)
4D    � 4
4N(     � �icon_selected(main%,4) = � �
4X!      �select_icon(main%,4,�)
4b!      �select_icon(main%,2,�)
4l
     �
4v   �tick(15,3,�)
4�   �tick(15,2,�)
4�    metric%=�
4�!     �set_unit:�selected_unit
4�    � 2
4�(     � �icon_selected(main%,2) = � �
4�!      �select_icon(main%,2,�)
4�!      �select_icon(main%,4,�)
4�
     �
4�   �tick(15,3,�)
4�   �tick(15,2,�)
4�    metric%=�
4�!     �set_unit:�selected_unit
4�    � 19
5     �oh_smeg
5     � beep$="beep" � �7
55     � mousebut% = adjust_click% � �send_to_store
5     � 21
5*1     � mousebut% = select_click% � �up(type%)
543     � mousebut% = adjust_click% � �down(type%)
5>    � 20
5H3     � mousebut% = select_click% � �down(type%)
5R1     � mousebut% = adjust_click% � �up(type%)
5\    � 27
5f.     � mousebut% = select_click% � �exp_up
5p0     � mousebut% = adjust_click% � �exp_down
5z    � 26
5�0     � mousebut% = select_click% � �exp_down
5�.     � mousebut% = adjust_click% � �exp_up
5�    � 23
5�2     � �icon_selected(main%,23)=� � check% = �
5�2     � �icon_selected(main%,23)=� � check% = �
5�.     � check%=� � �select_icon(main%,23,�)
5�.     � check%=� � �select_icon(main%,23,�)
5�  �
5�"   � select_drag%,adjust_drag%
5�(    � icon_handle% = 31 � �main_drag
5�   � menu_click%
5�
5� �
6 Ȏ mousebut% �
6/  � menu_click%,adjust_click%,select_click%
6   Ȏ icon_handle% �
6$    � 5,9,16
6.2    � icon_handle%=5  � current_menu%=menu%(2)
68=    � icon_handle%=9  � current_menu%=menu%(menu_number%)
6B2    � icon_handle%=16 � current_menu%=menu%(2)
6L$     menu_context$="Measurement"
6V     menu_x%=mousex%
6`     menu_y%=mousey%
6j<     ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
6t     �set_unit
6~	    
6�"     � mousebut%=menu_click% �
6�!      current_menu%=menu%(15)
6�      menu_context$="Main"
6�      menu_x%=mousex%-32
6�      menu_y%=mousey%
6�=      ș "Wimp_CreateMenu",,current_menu%,menu_x%,menu_y%
6�
     �
6�   �
6� �
6��
6�
6�� �send_to_store
7 � count%,pass%
7

 pass% =0
7
 count%=0
7  �
7(G   � �get_icon_text(store%,count%)="" � �take_units(count%):pass%=�
72   count%+=3
7<   � count%=30 � count%=37
7F   � count%=43� �7:pass%=�
7P  � pass%=�
7Z�
7d
7n� �send_maths
7x � count%,pass%,a$,sign$
7�#  Ȏ �get_icon_text(maths%,4) �
7�   � "Plus"
7�    sign$=" + "
7�   � "Minus"
7�    sign$=" - "
7�   � "Multiplied by"
7�    sign$=" � "
7�   � "Divided by"
7�    sign$=" � "
7�  �
7� a$=maths_a$+sign$+maths_b$
7�
 pass% =0
7�
 count%=0
8  �
8+   � �get_icon_text(store%,count%)="" �
8(    �put_icon_text(store%,count%,a$)
8"@    �put_icon_text(store%,count%+2,�get_icon_text(maths%,9))
8,    pass%=�
86   �
8@   count%+=3
8J   � count%=30 � count%=37
8T   � count%=43� �7:pass%=�
8^  � pass%=�
8h�
8r
8|� �take_units(icon%)
8� � end$
8�_end$ = �(�(�get_icon_text(main%,17)+�get_icon_text(main%,24)))+" "+�get_icon_text(main%,15)
8�
8�: �put_icon_text(store%,icon%,(�(value)+" "+the_unit$))
8�( �put_icon_text(store%,icon%+2,end$)
8��
8�
8�
� �exp_up
8� exp%+=1
8� � exp%=31 � exp%=30 :�
8�+ �put_icon_text(main%,25,("E"+�(exp%)))
8��
8�
9� �exp_down
9   exp%-=1
9#   � exp%=(-31) � exp%=(-30) :�
9&-   �put_icon_text(main%,25,("E"+�(exp%)))
90�
9:
9D� �change_metric(key%)
9N�menu_close
9X Ȏ key% �
9b    � �
9l(     � �icon_selected(main%,4) = � �
9v!      �select_icon(main%,4,�)
9�!      �select_icon(main%,2,�)
9�
     �
9�    metric%=�
9�!     �set_unit:�selected_unit
9�    � �
9�(     � �icon_selected(main%,2) = � �
9�!      �select_icon(main%,2,�)
9�!      �select_icon(main%,4,�)
9�
     �
9�    metric%=�
9�!     �set_unit:�selected_unit
9� �
9��
:
:��main_menu(item$)
:"numeric_path$=�menu_path(blk%)
:  Ȏ numeric_path$ �
:*  � "1"
:4   �open_window(opt%)
:>6   �place_caret(opt%,10,� �get_icon_text(opt%,10))
:H  � "2"
:R   quit%=�
:\ �
:f�
:p
:z� �maths_menu(item$)
:�"numeric_path$=�menu_path(blk%)
:�
 � count%
:�  � count%=0 � 3
:�   �tick(18,count%,�)
:�  � count%
:� Ȏ numeric_path$ �
:�  � "0" : � - Add
:�   �tick(18,0,�)
:�&   �put_icon_text(maths%,4,"Plus")
:�  � "1" : � - Subtract
:�   �tick(18,1,�)
:�'   �put_icon_text(maths%,4,"Minus")
:�  � "2" : � - Multiply
;   �tick(18,2,�)
;/   �put_icon_text(maths%,4,"Multiplied by")
;  � "3" : � - Divide
;$   �tick(18,3,�)
;.,   �put_icon_text(maths%,4,"Divided by")
;8 �
;B�
;L
;V��store_menu(item$)
;`"numeric_path$=�menu_path(blk%)
;j Ȏ numeric_path$ �
;t  � "1":� select_all
;~   �sel_all
;�  � "2":� clear
;�   �deselect(�)
;�   selected%=0
;�  � "3" :� delete
;�   �delete_selected
;�  � "4"
;�   �close_window(store%)
;� �
;��
;�
;�� �menu(items$)
;�"numeric_path$=�menu_path(blk%)
< Ȏ numeric_path$ �
<
  � "0":� options
<   �open_window(opt%)
<6   �place_caret(opt%,10,� �get_icon_text(opt%,10))
<(  � "2":� from metric
<2   �tick(15,3,�)
<<   �tick(15,2,�)
<F(     � �icon_selected(main%,4) = � �
<P!      �select_icon(main%,4,�)
<Z!      �select_icon(main%,2,�)
<d
     �
<n    metric%=�
<x!     �set_unit:�selected_unit
<�  � "3":� to metric
<�   �tick(15,3,�)
<�   �tick(15,2,�)
<�(     � �icon_selected(main%,2) = � �
<�!      �select_icon(main%,2,�)
<�!      �select_icon(main%,4,�)
<�
     �
<�    metric%=�
<�!     �set_unit:�selected_unit
<�  � "4":� store
<�   �send_to_store
<�  � "5":� view
<�   �open_window(store%)
=  � "6"
=   �open_window(maths%)
=  � "7":� Calculate
="   �oh_smeg
=,   � beep$="beep" � �7
=6 �
=@�
=J
=T��data_type_menu(item$)
=^� count%,new_type$
=h� count% = 0 � 5
=r �tick(2,count%,�)
=|� count%
=� Ȏ item$ �
=�  � "Length       �F1"
=�.   �tick(2,0,�):type%=1:new_type$="Length"
=�  � "Area         �F2"
=�,   �tick(2,1,�):type%=2:new_type$="Area"
=�  � "Mass         �F3"
=�,   �tick(2,2,�):type%=3:new_type$="Mass"
=�  � "Volume       �F4"
=�.   �tick(2,3,�):type%=4:new_type$="Volume"
=�  � "Capacity     �F5"
=�0   �tick(2,4,�):type%=5:new_type$="Capacity"
=�  � "Temperature  �F6"
=�3   �tick(2,5,�):type%=6:new_type$="Temperature"
> �
>;�put_icon_text(main%,3,"Measurement type - "+new_type$)
>
�set_unit
>&�selected_unit
>0�
>:
>D��length_mt_menu(item$)
>N
 � count%
>X  � count%=0 � 2
>b   �tick(3,count%,�)
>l  � count%
>v Ȏ item$ �
>�  � "Centimetres"
>�!   �tick(3,0,�):ref_number%=1
>�  � "Metres"
>�!   �tick(3,1,�):ref_number%=2
>�  � "Kilometres"
>�!   �tick(3,2,�):ref_number%=3
>� �
>��ref_number
>��
>�
>���length_menu(item$)
>�
 � count%
>�  � count%=0 � 3
?   �tick(4,count%,�)
?  � count%
? Ȏ item$ �
?   � "Inches"
?*!   �tick(4,0,�):ref_number%=4
?4  � "Feet"
?>!   �tick(4,1,�):ref_number%=5
?H  � "Yards"
?R!   �tick(4,2,�):ref_number%=6
?\  � "Miles"
?f!   �tick(4,3,�):ref_number%=7
?p �
?z�ref_number
?��
?�
?���area_mt_menu(item$)
?�
 � count%
?�  � count%=0 � 3
?�   �tick(5,count%,�)
?�  � count%
?� Ȏ item$ �
?�  � "Sq cms"
?�!   �tick(5,0,�):ref_number%=8
?�  � "Sq metres"
?�!   �tick(5,1,�):ref_number%=9
?�  � "Hectares"
@"   �tick(5,2,�):ref_number%=10
@  � "Sq kms"
@"   �tick(5,3,�):ref_number%=11
@$ �
@.�ref_number
@8�
@B
@L��area_menu(item$)
@V
 � count%
@`  � count%=0 � 4
@j   �tick(6,count%,�)
@t  � count%
@~ Ȏ item$ �
@�  � "Sq inches"
@�"   �tick(6,0,�):ref_number%=12
@�  � "Sq feet"
@�"   �tick(6,1,�):ref_number%=13
@�  � "Sq yards"
@�"   �tick(6,2,�):ref_number%=14
@�  � "Acres"
@�"   �tick(6,3,�):ref_number%=15
@�  � "Sq miles"
@�"   �tick(6,4,�):ref_number%=16
@� �
@��ref_number
A�
A

A��mass_mt_menu(item$)
A
 � count%
A(  � count%=0 � 2
A2   �tick(7,count%,�)
A<  � count%
AF Ȏ item$ �
AP  � "Grams"
AZ"   �tick(7,0,�):ref_number%=17
Ad  � "Kilograms"
An"   �tick(7,1,�):ref_number%=18
Ax  � "Tonnes"
A�"   �tick(7,2,�):ref_number%=19
A� �
A��ref_number
A��
A�
A���mass_menu(item$)
A�
 � count%
A�  � count%=0 � 2
A�   �tick(8,count%,�)
A�  � count%
A� Ȏ item$ �
A�  � "Ounces"
A�"   �tick(8,0,�):ref_number%=20
B  � "Pounds"
B"   �tick(8,1,�):ref_number%=21
B  � "Tons"
B""   �tick(8,2,�):ref_number%=22
B, �
B6�ref_number
B@�
BJ
BT��volume_mt_menu(item$)
B^
 � count%
Bh  � count%=0 � 1
Br   �tick(9,count%,�)
B|  � count%
B� Ȏ item$ �
B�  � "Cubic cms"
B�"   �tick(9,0,�):ref_number%=23
B�  � "Cubic metres"
B�"   �tick(9,1,�):ref_number%=24
B� �
B��ref_number
B��
B�
B���volume_menu(item$)
B�
 � count%
B�  � count%=0 � 2
B�   �tick(10,count%,�)
C  � count%
C Ȏ item$ �
C  � "Cubic inches"
C&#   �tick(10,0,�):ref_number%=25
C0  � "Cubic feet"
C:#   �tick(10,1,�):ref_number%=26
CD  � "Cubic yards"
CN#   �tick(10,2,�):ref_number%=27
CX �
Cb�ref_number
Cl�
Cv
C���capacity_mt_menu(item$)
C�
 � count%
C�  � count%=0 � 2
C�   �tick(11,count%,�)
C�  � count%
C� Ȏ item$ �
C�  � "Mililitres"
C�#   �tick(11,0,�):ref_number%=28
C�  � "Litres"
C�#   �tick(11,1,�):ref_number%=29
C� �
C��ref_number
C��
D
D��capacity_menu(item$)
D
 � count%
D   � count%=0 � 2
D*   �tick(12,count%,�)
D4  � count%
D> Ȏ item$ �
DH  � "Flued ounces"
DR#   �tick(12,0,�):ref_number%=30
D\  � "Pints"
Df#   �tick(12,1,�):ref_number%=31
Dp  � "Gallons"
Dz#   �tick(12,2,�):ref_number%=32
D� �
D��ref_number
D��
D�
D�� �temp_mt_menu(item$)
D� �tick(13,0,�)
D� �tick(13,1,�)
D� Ȏ item$ �
D�  � "Kelvin"
D�#   �tick(13,0,�):ref_number%=33
D�  � "�Celcius"
D�#   �tick(13,1,�):ref_number%=34
D� �
E�ref_number
E�
E
E$� �temp_menu(item$)
E.! �tick(13,0,�):ref_number%=35
E8 �ref_number
EB�
EL
EV�  - Error handler (9.1)
E`
Ej��error(!errorblk%,error$)
Et errorcount%+=1
E~.  � errorcount%>5:� � 0,"Too many errors!"
E�+   � �<200 error$+=" at line "+�(� �10)
E�;   � �=200 error$="*** Error in menu file! *** "+error$
E�;   � �=201 error$="***     Menu error      *** "+error$
E�;   � �=202 error$="***     Icon error      *** "+error$
E�;   � �=203 error$="***     File error      *** "+error$
E�;   � �=204 error$="***    Window error     *** "+error$
E�(   � �=20 � �whoops:errorcount%-=1:�
E�  ș"XOS_Find",0,menufile%
E�  ș"XWimp_CloseTemplate"
E� $(errorblk%+4)=error$
E�0 ș "Wimp_ReportError",errorblk%,1,app_name$
E��
F
F

� �whoops
F' �put_icon_text(main%,17,"Error!!")
F
F(�
F2
F<
��quit
FF ș "Wimp_CloseDown"
FP �
FZ�
Fd
Fn� �set_unit
Fx Ȏ metric% �
F�	  � �
F�   Ȏ type% �
F�    � 1:� length
F�     menu_number%=3
F�    � 2
F�     menu_number%=5
F�    � 3
F�     menu_number%=7
F�    � 4
F�     menu_number%=9
F�    � 5
F�     menu_number%=11
F�    � 6
G     menu_number%=13
G   �
G	  � �
G"   Ȏ type% �
G,    � 1:� length
G6     menu_number%=4
G@    � 2
GJ     menu_number%=6
GT    � 3
G^     menu_number%=8
Gh    � 4
Gr     menu_number%=10
G|    � 5
G�     menu_number%=12
G�    � 6
G�     menu_number%=14
G�   �
G� �
G��
G�
G�� �ref_number
G�� unit_name$
G� Ȏ ref_number% �
G�	  � 1
G�   unit_name$="Centimetres"
G�	  � 2
H   unit_name$="Metres"
H	  � 3
H   unit_name$="Kilometres"
H&	  � 4
H0   unit_name$="Inches"
H:	  � 5
HD   unit_name$="Feet"
HN	  � 6
HX   unit_name$="Yards"
Hb	  � 7
Hl   unit_name$="Miles"
Hv	  � 8
H�   unit_name$="Sq cms"
H�	  � 9
H�   unit_name$="Sq metres"
H�
  � 10
H�   unit_name$="Hectares"
H�
  � 11
H�   unit_name$="Sq kms"
H�
  � 12
H�   unit_name$="Sq inches"
H�
  � 13
H�   unit_name$="Sq feet"
H�
  � 14
H�   unit_name$="Sq yards"
I
  � 15
I   unit_name$="Acres"
I
  � 16
I    unit_name$="Sq miles"
I*
  � 17
I4   unit_name$="Grams"
I>
  � 18
IH   unit_name$="Kiliograms"
IR
  � 19
I\   unit_name$="Tonnes"
If
  � 20
Ip   unit_name$="Ounces"
Iz
  � 21
I�   unit_name$="Pounds"
I�
  � 22
I�   unit_name$="Tons"
I�
  � 23
I�   unit_name$="Cubic cms"
I�
  � 24
I�    unit_name$="Cubic metres"
I�
  � 25
I�    unit_name$="Cubic inches"
I�
  � 26
I�   unit_name$="Cubic feet"
I�
  � 27
I�   unit_name$="Cubic Yards"
J
  � 28
J   unit_name$="Mililitres"
J
  � 29
J$   unit_name$="Litres"
J.
  � 30
J8    unit_name$="Flued ounces"
JB
  � 31
JL   unit_name$="Pints"
JV
  � 32
J`   unit_name$="Gallons"
Jj
  � 33
Jt   unit_name$="Kelvin"
J~
  � 34
J�   unit_name$="�Celcius"
J�
  � 35
J�   unit_name$="�Fahrenheit"
J� �
J�(  �put_icon_text(main%,8,unit_name$)
J��
J�
J�� �oh_smeg
J�� text$
J�'  the_unit$=�get_icon_text(main%,8)
J�  �null_variables
J�3     � �icon_selected(main%,23)=� � negative%=�
K3     � �icon_selected(main%,23)=� � negative%=�
K
?  value=�(�get_icon_text(main%,7)+�get_icon_text(main%,25))
K*    � negative% = � � value=value*(-1)
K   Ȏ ref_number% �
K(
K2    � 1 : � -Length
K<#     text$=�((value/100)*1.094)
KF    � 2
KP     text$=�(value*1.094)
KZ    � 3
Kd"     text$=�(value*1.094*1000)
Kn    � 4
Kx%     text$=�((value/12)/3.280840)
K�    � 5
K�      text$=�(value/3.280840)
K�    � 6
K�     text$=�(value/1.094)
K�    � 7
K�&     text$=�(value/0.6213711*1000)
K�
K�    � 8 : � - Area
K�%     text$=�((value/10000)*1.196)
K�    � 9
K�     text$=�(value*1.196)
K�    � 10
K�#     text$=�(value*10000*1.196)
L    � 11
L%     text$=�(value*1000000*1.196)
L    � 12
L""     text$=�(value/1296/1.196)
L,    � 13
L6     text$=�(value/9/1.196)
L@    � 14
LJ     text$=�(value/1.196)
LT    � 15
L^"     text$=�(value*4840/1.196)
Lh    � 16
Lr%     text$=�(value*3097600/19600)
L|
L�    � 17 : � - Mass
L�"     text$=�(value/1000*2.205)
L�    � 18
L�     text$=�(value*2.205)
L�    � 19
L�"     text$=�(value*1000*2.205)
L�    � 20
L�      text$=�(value/16/2.205)
L�    � 21
L�     text$=�(value/2.205)
L�    � 22
L�"     text$=�(value*2240/2.205)
L�
M    � 23 : � - Volume
M'     text$=�((value/1000000)*35.31)
M    � 24
M&     text$=�(value*35.31)
M0    � 25
M:$     text$=�((value/1728)/35.31)
MD    � 26
MN     text$=�(value/35.31)
MX    � 27
Mb"     text$=�((value*27)/35.31)
Ml
Mv    � 28 : � - Capacity
M�#     text$=�((value/1000)*1.76)
M�    � 29
M�     text$=�(value*1.76)
M�    � 30
M�!     text$=�((value/20)/1.76)
M�    � 31
M�     text$=�(value/1.76)
M�    � 32
M�     text$=�((value)*4.55)
M�
M�    � 33 : � - Temperature
M�(     text$=�((((value-273)*9)/5)+32)
M�    � 34
N"     text$=�(((value*9)/5)+32)
N    � 35
N"     text$=�(((value-32)*5)/9)
N    �
N*     � �text$,"E")>0 �
N4D      �put_icon_text(main%,24,"E"+�text$,(� text$-�text$,"E"))))
N>8      �put_icon_text(main%,17,�text$,�text$,"E")-1))
NH
     �
NR(      �put_icon_text(main%,17,text$)
N\'      �put_icon_text(main%,24,"E0")
Nf
     �
Np    con_value=� text$
Nz    �choose_unit
N��
N�
N�� �choose_unit
N� Ȏ ref_number% �
N�
  � 1,2,3
N�   measure%=6
N�'   �put_icon_text(main%,15,"Yards")
N�  � 4,5,6,7
N�   measure%=1
N�(   �put_icon_text(main%,15,"Metres")
N�  � 8,9,10,11
N�   measure%=7
N�*   �put_icon_text(main%,15,"Sq yards")
O  � 12,13,14,15,16
O   measure%=2
O+   �put_icon_text(main%,15,"Sq metres")
O$  � 17,18,19
O.   measure%=8
O8(   �put_icon_text(main%,15,"Pounds")
OB  � 20,21,22
OL   measure%=3
OV+   �put_icon_text(main%,15,"Kilograms")
O`
  � 23,24
Oj   measure%=9
Ot,   �put_icon_text(main%,15,"Cubic feet")
O~  � 25,26,27
O�   measure%=4
O�.   �put_icon_text(main%,15,"Cubic metres")
O�
  � 28,29
O�   measure%=10
O�'   �put_icon_text(main%,15,"Pints")
O�  � 30,31,32
O�   measure%=5
O�(   �put_icon_text(main%,15,"Litres")
O�
  � 33,24
O�-   �put_icon_text(main%,15,"�Fahrenheit")
O�
  � 35
O�*   �put_icon_text(main%,15,"�Celcius")
P �
P
�
P
P� �selected_unit
P( Ȏ metric% �
P2	  � �
P<   Ȏ type% �
PF    � 1
PP)     �put_icon_text(main%,8,"Metres")
PZ)     �put_icon_text(main%,15,"Yards")
Pd     �tick(3,0,�)
Pn     �tick(3,1,�)
Px     �tick(3,2,�)
P�      ref_number%=2
P�    � 2
P�,     �put_icon_text(main%,8,"Sq metres")
P�,     �put_icon_text(main%,15,"Sq yards")
P�     �tick(5,0,�)
P�     �tick(5,1,�)
P�     �tick(5,2,�)
P�     �tick(5,3,�)
P�      ref_number%=9
P�    � 3
P�,     �put_icon_text(main%,8,"Kilograms")
P�*     �put_icon_text(main%,15,"Pounds")
P�     �tick(7,0,�)
Q     �tick(7,1,�)
Q     �tick(7,2,�)
Q      ref_number%=18
Q"    � 4
Q,/     �put_icon_text(main%,8,"Cubic metres")
Q6.     �put_icon_text(main%,15,"Cubic feet")
Q@     �tick(9,0,�)
QJ     �tick(9,1,�)
QT      ref_number%=24
Q^    � 5
Qh)     �put_icon_text(main%,8,"Litres")
Qr)     �put_icon_text(main%,15,"Pints")
Q|     �tick(11,0,�)
Q�     �tick(11,1,�)
Q�      ref_number%=29
Q�    � 6
Q�+     �put_icon_text(main%,8,"�Celcius")
Q�/     �put_icon_text(main%,15,"�Fahrenheit")
Q�     �tick(13,0,�)
Q�     �tick(13,1,�)
Q�      ref_number%=34
Q�   �
Q�	  � �
Q�   Ȏ type% �
Q�    � 1
Q�(     �put_icon_text(main%,8,"Yards")
R*     �put_icon_text(main%,15,"Metres")
R     �tick(4,0,�)
R     �tick(4,1,�)
R&     �tick(4,2,�)
R0     �tick(4,3,�)
R:      ref_number%=6
RD    � 2
RN+     �put_icon_text(main%,8,"Sq yards")
RX-     �put_icon_text(main%,15,"Sq metres")
Rb     �tick(6,0,�)
Rl     �tick(6,1,�)
Rv     �tick(6,2,�)
R�     �tick(6,3,�)
R�     �tick(6,4,�)
R�      ref_number%=14
R�    � 3
R�)     �put_icon_text(main%,8,"Pounds")
R�-     �put_icon_text(main%,15,"Kilograms")
R�     �tick(8,0,�)
R�     �tick(8,1,�)
R�     �tick(8,2,�)
R�      ref_number%=21
R�    � 4
R�-     �put_icon_text(main%,8,"Cubic feet")
R�0     �put_icon_text(main%,15,"Cubic metres")
S     �tick(10,0,�)
S     �tick(10,1,�)
S     �tick(10,2,�)
S       ref_number%=26
S*    � 5
S4(     �put_icon_text(main%,8,"Pints")
S>*     �put_icon_text(main%,15,"Litres")
SH     �tick(12,0,�)
SR     �tick(12,1,�)
S\     �tick(12,2,�)
Sf      ref_number%=31
Sp    � 6
Sz.     �put_icon_text(main%,8,"�Fahrenheit")
S�,     �put_icon_text(main%,15,"�Celcius")
S�     �tick(14,0,�)
S�      ref_number%=35
S�   �
S� �
S��
S�
S�� �up(convert%)
S� Ȏ metric% �
S�	  � �
S�   Ȏ convert% �
S�    � 1 : � - Yards
S�     yards%+=1
T     � yards%=5 � yards%=4
T     �yards(yards%)
T    � 2
T$     sq_yards%+=1
T.$     � sq_yards%=3 � sq_yards%=2
T8     �sq_yards
TB    � 3
TL     pounds%+=1
TV      � pounds%=2 � pounds%=1
T`     �pounds
Tj    � 4
Tt     cubic_feet%+=1
T~(     � cubic_feet%=2 � cubic_feet%=1
T�     �cubic_feet
T�    � 5
T�     pints%+=1
T�     � pints%=2 � pints%=1
T�     �pints
T�    � 6
T�     far%=0
T�    �far
T�   �
T�	  � �
T�   Ȏ convert% �
T�    � 1 : � - Metres
U     metres%+=1
U
      � metres%=2 � metres%=1
U     �metres
U    � 2
U(     sq_metres%+=1
U2&     � sq_metres%=3 � sq_metres%=2
U<     �sq_metres
UF    � 3
UP     kilograms%+=1
UZ&     � kilograms%=2 � kilograms%=1
Ud     �kilograms
Un    � 4
Ux     cubic_metres%=0
U�     �cubic_metres
U�    � 5
U�     litres%=0
U�     �litres
U�    � 6
U�     cel%=0
U�
     �cel
U�   �
U� �
U��
U�
U�� �down(convert%)
U� Ȏ metric% �
V	  � �
V   Ȏ convert% �
V    � 1 : � - Yards
V"     yards%=yards%-1
V,     � yards%=0 � yards%=1
V6     �yards(yards%)
V@    � 2
VJ     sq_yards%-=1
VT&     � sq_yards%=-3 � sq_yards%=-2
V^     �sq_yards
Vh    � 3
Vr     pounds%-=1
V|"     � pounds%=-2 � pounds%=-1
V�     �pounds
V�    � 4
V�     cubic_feet%-=1
V�*     � cubic_feet%=-2 � cubic_feet%=-1
V�     �cubic_feet
V�    � 5
V�     pints%-=1
V�      � pints%=-2 � pints%=-1
V�     �pints
V�    � 6
V�     far%=0
V�
     �far
V�   �
W	  � �
W   Ȏ convert% �
W    � 1 : � - Metres
W&     metres%-=1
W0"     � metres%=-2 � metres%=-1
W:     �metres
WD    � 2
WN     sq_metres%-=1
WX(     � sq_metres%=-2 � sq_metres%=-1
Wb     �sq_metres
Wl    � 3
Wv     kilograms%-=1
W�(     � kilograms%=-2 � kilograms%=-1
W�     �kilograms
W�    � 4
W�     cubic_metres%=(-1)
W�     �cubic_metres
W�    � 5
W�     litres%=-1
W�     �litres
W�    � 6
W�     cel%=-1
W�
     �cel
W�   �
W� �
X�
X
X� �null_variables
X  con_value     = 0
X* metres%       = 0
X4 sq_metres%    = 0
X> kilograms%    = 0
XH cubic_metres% = 0
XR litres%       = 0
X\ yards%        = 3
Xf sq_yards%     = 0
Xp pounds%       = 0
Xz cubic_feet%   = 0
X� pints%        = 0
X� far%          = 0
X� cel%          = 0
X��
X�
X�$� �changer(ctext$,convert_type$)
X� � �ctext$,"E")>0 �
X�C  �put_icon_text(main%,24,"E"+�ctext$,(� ctext$-�ctext$,"E"))))
X�6  �put_icon_text(main%,17,�ctext$,�ctext$,"E")-1))
X� �
X�%  �put_icon_text(main%,17,ctext$)
X�#  �put_icon_text(main%,24,"E0")
X� �
Y,  �put_icon_text(main%,15,convert_type$)
Y�
Y
Y$� �yards(yards%)
Y. Ȏ yards% �
Y8	  � 1
YB)   �changer(�(con_value*36),"Inches")
YL	  � 2
YV&   �changer(�(con_value*3),"Feet")
Y`	  � 3
Yj%   �changer(�(con_value),"Yards")
Yt	  � 4
Y~*   �changer(�(con_value/1760),"Miles")
Y� �
Y��
Y�
Y�
� �metres
Y� Ȏ metres% �
Y�
  � -1
Y�/   �changer(�(con_value*100),"Centimetres")
Y�	  � 0
Y�&   �changer(�(con_value),"Metres")
Y�	  � 1
Y�/   �changer(�(con_value/1000),"Kilometres")
Y� �
Z�
Z

Z� �sq_yards
Z Ȏ sq_yards% �
Z(
  � -2
Z2/   �changer(�(con_value*9*144),"Sq inches")
Z<
  � -1
ZF)   �changer(�(con_value*9),"Sq feet")
ZP	  � 0
ZZ(   �changer(�(con_value),"Sq yards")
Zd	  � 1
Zn*   �changer(�(con_value/4840),"Acres")
Zx	  � 2
Z�3   �changer(�(con_value/(640*4840)),"Sq miles")
Z� �
Z��
Z�
Z�� �sq_metres
Z� Ȏ sq_metres% �
Z�
  � -1
Z�,   �changer(�(con_value*10000),"Sq cms")
Z�	  � 0
Z�)   �changer(�(con_value),"Sq metres")
Z�	  � 1
Z�.   �changer(�(con_value/10000),"Hectares")
Z�	  � 2
[.   �changer(�(con_value/1000000),"Sq kms")
[ �
[�
["
[,
� �pounds
[6 Ȏ pounds% �
[@
  � -1
[J)   �changer(�(con_value*16),"Ounces")
[T	  � 0
[^&   �changer(�(con_value),"Pounds")
[h	  � 1
[r)   �changer(�(con_value/2240),"Tons")
[| �
[��
[�
[�� �kilograms
[� Ȏ kilograms% �
[�
  � -1
[�*   �changer(�(con_value*1000),"Grams")
[�	  � 0
[�)   �changer(�(con_value),"Kilograms")
[�	  � 1
[�+   �changer(�(con_value/1000),"Tonnes")
[� �
[��
[�
\� �cubic_feet
\ Ȏ cubic_feet% �
\
  � -1
\&1   �changer(�(con_value*1728),"Cubic inches")
\0	  � 0
\:*   �changer(�(con_value),"Cubic feet")
\D	  � 1
\N.   �changer(�(con_value/27),"Cubic Yards")
\X �
\b�
\l
\v� �cubic_metres
\� Ȏ cubic_metres% �
\�
  � -1
\�0   �changer(�(con_value*1000000),"Cubic cm")
\�	  � 0
\�,   �changer(�(con_value),"Cubic metres")
\� �
\��
\�
\�� �pints
\� Ȏ pints% �
\�
  � -1
\�/   �changer(�(con_value*20),"Flued ounces")
\�	  � 0
]%   �changer(�(con_value),"Pints")
]	  � 1
])   �changer(�(con_value/8),"Gallons")
]  �
]*�
]4
]>
� �litres
]H Ȏ litres% �
]R
  � -1
]\/   �changer(�(con_value*1000),"Mililitres")
]f	  � 0
]p&   �changer(�(con_value),"Litres")
]z �
]��
]�
]�
� �far
]�) �changer(�(con_value),"�Fahrenheit")
]��
]�
]�
� �cel
]� Ȏ cel% �
]�
  � -1
]�*   �changer(�(con_value+273),"Kelvin")
]�	  � 0
]�(   �changer(�(con_value),"�Celcius")
]� �
^�
^
^� �joke
^$'a$=¤system_variable("sys$date"),6)
^.(b$= ��system_variable("sys$date"),6)
^8� b$ = "Fri,13" � �spooky
^B�
^L
^V
� �spooky
^`
 � count%
^j  � count% = 1 � 10
^t-   �put_icon_text(info%,count%,"Spooky!")
^~  � count%
^��
^�
^�W� Other Stuff =====================================================================
^�
^�0ݤget_icon_text(window_handle%,icon_handle%)
^�temp_blk%!0=window_handle%
^�temp_blk%!4=icon_handle%
^�$ș"Wimp_GetIconState",,temp_blk%
^�#� (temp_blk%!24 � &101)<>&101 �
^�+� 202,"Icon "+�icon%+" not indirected!"
^�=""
^��
_=$temp_blk%!28
_
0ݤicon_selected(window_handle%,icon_handle%)
_temp_blk%!0=window_handle%
_temp_blk%!4=icon_handle%
_($ș"Wimp_GetIconState",,temp_blk%
_2&� (temp_blk%!24 � 1<<21) � =� � =�
_<8��icon_validation(window_handle%,icon_handle%,type$)
_Ftemp_blk%!0=window_handle%
_Ptemp_blk%!4=icon_handle%
_Z$ș"Wimp_GetIconState",,temp_blk%
_d%� (temp_blk%!24 � &E101)<>&E101 �
_nC� 202,"Icon "+�icon_handle%+" not writable and not indirected!"
_x�
_��
_�Ȏ type$ �
_�� "number"
_�$temp_blk%!32="A0-9."
_�� "file"
_�&$temp_blk%!32="A~ $&@\\^:.#*|"+�34
_��
_��
_�8��place_caret(window_handle%,icon_handle%,position%)
_�temp_blk%!0=window_handle%
_�temp_blk%!4=icon_handle%
_�$ș"Wimp_GetIconState",,temp_blk%
_�%� (temp_blk%!24 � &E101)<>&E101 �
`C� 202,"Icon "+�icon_handle%+" not writable and not indirected!"
`�
`�
`"text$=$temp_blk%!28
`,'� position%>�text$ position%=�text$
`6Jș"Wimp_SetCaretPosition",window_handle%,icon_handle%,0,0,-1,position%
`@�
`J8��put_icon_sprite(window_handle%,icon_handle%,text$)
`Ttemp_blk%!0=window_handle%
`^temp_blk%!4=icon_handle%
`h$ș"Wimp_GetIconState",,temp_blk%
`rȎ (temp_blk%!24 � &103) �
`|� &002,&003
`�$temp_blk%!28=text$
`�
� &102
`�=� temp_blk%!36>0 $temp_blk%!28=text$:$temp_blk%!36=�text$
`�
� &103
`�$temp_blk%!32="S"+text$
`�5 � 202,"No sprite name in icon "+�icon_handle%:�
`��
`�temp_blk%!8=0
`�temp_blk%!12=0
`�$ș"Wimp_SetIconState",,temp_blk%
`��
`�6��put_icon_text(window_handle%,icon_handle%,text$)
`�temp_blk%!0=window_handle%
atemp_blk%!4=icon_handle%
a$ș"Wimp_GetIconState",,temp_blk%
a#� (temp_blk%!24 � &101)<>&101 �
a&2� 202,"Icon "+�icon_handle%+" not indirected!"
a0�
a:�
aD text$=�text$,temp_blk%!36-1)
aN$temp_blk%!28=text$
aXtemp_blk%!8=0
abtemp_blk%!12=0
al$ș"Wimp_SetIconState",,temp_blk%
av�
a�6��select_icon(window_handle%,icon_handle%,select%)
a�temp_blk%!0=window_handle%
a�temp_blk%!4=icon_handle%
a�temp_blk%!12=1<<21:
a�0� select% temp_blk%!8=1<<21 � temp_blk%!8=0:
a�$ș"Wimp_SetIconState",,temp_blk%
a��
a�.��update_icon(window_handle%,icon_handle%)
a�temp_blk%!0=window_handle%
a�temp_blk%!4=icon_handle%
a�temp_blk%!8=0
a�temp_blk%!12=0
a�$ș"Wimp_SetIconState",,temp_blk%
b�
b)ݤput_icon_on_bar(sprite_name$,side$)
b
� handle%
b 1� side$="RIGHT" !temp_blk%=-1 � !temp_blk%=-2
b*temp_blk%!4=0
b4temp_blk%!8=0
b>temp_blk%!12=68
bHtemp_blk%!16=68
bRtemp_blk%!20=&1700202A
b\ $(temp_blk%+24)=sprite_name$
bf-ș "Wimp_CreateIcon",,temp_blk% � handle%
bp=handle%
bzC��put_info_text(window_handle%,name$,purpose$,author$,version$)
b�*�put_icon_text(window_handle%,1,name$)
b�-�put_icon_text(window_handle%,2,purpose$)
b�,�put_icon_text(window_handle%,3,author$)
b�-�put_icon_text(window_handle%,4,version$)
b��
b�6ݤput_sprite_text_on_bar(sprite_name$,side$,text$)
b�.� handle%,length%,sprite_name%,text_space%
b�&� sprite_name% (�(sprite_name$)+3)
b�� text_space% (�(text$)+2)
b�"$sprite_name%="S"+sprite_name$
b�$text_space%=text$
b�1� side$="RIGHT" !temp_blk%=-1 � !temp_blk%=-2
b�temp_blk%!4=0
ctemp_blk%!8=-16
c*width%=16*�text$:� width%<68 width%=68
ctemp_blk%!12=width%
c$temp_blk%!16=88
c.temp_blk%!20=&1700212B
c8temp_blk%!24=text_space%
cBtemp_blk%!28=sprite_name%
cLtemp_blk%!32=�(text$)
cV-ș "Wimp_CreateIcon",,temp_blk% � handle%
c`=handle%
cj� �task_initialise(title$)
ct� version%
c~version%=200
c�Hș "Wimp_Initialise",version%,&4B534154,title$ � version%,this_task%
c�=this_task%
c���add_menu_item(line$)
c�D� menuflag%,iconflag%,param$,sub%,itemtext$,writable%,maxlength%
c�*iconflag%=&7000021:sub%=-1:writable%=�
c�:itemtext$=�menu_item_text(line$):maxlength%=�itemtext$
c��
c�"param$=�menu_item_param(line$)
c�Ȏ �param$,4) �
c�!�"tick":menuflag%=menuflag%�1
c�!�"line":menuflag%=menuflag%�2
c�'�"shad":iconflag%=iconflag%�&400000
d0�"subm":sub%=�menu_submenu(�menuvar(param$))
d
/�"wind":sub%=�menu_window(�menuvar(param$))
d6�"icon":iconflag%=�menu_iconflag(�menuvar(param$))
d,�"writ":�menu_writable(�menuvar(param$))
d(�
d2� param$=""
d<pointer%!0=menuflag%
dFpointer%!4=sub%
dP#� �(itemtext$)>12 � writable% �
dZ pointer%!8=iconflag% � &100:
dd3�indirected_item(pointer%,writable%,maxlength%)
dn�
dxpointer%!8=iconflag%
d�&$(pointer%+12)=�itemtext$+�(0),12)
d��
d�pointer%+=24
d��
d�ݤbeginmenu(line$)
d�� �line$,9)="beginmenu" =�
d�=�
d�&ݤdecode_menu(menustart%,listptr%)
d�� text_path$
d�Eș"Wimp_DecodeMenu",,menustart%,listptr%,blk%+256 � ,,,text_path$
d�=text_path$
d�E��dim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
d�0� menustart% (menucount%*28)+(itemcount%*24)
e� menuwidth%(menucount%)
e� menu%(menucount%)
e!� writable_item%(writecount%)
e" � writable_len%(writecount%)
e,�
e6ݤget_writem(writem%)
e@� temp$
eJ1� writem%<1 � writem%>�(writable_item%(),1) �
eT=� 201,"writable menu item "+�(writem%)+" does not exist!"
e^�
eh#writem%=writable_item%(writem%)
er:temp$="": ȕ ?writem%>31:temp$+=�?writem%:writem%+=1:�
e|
=temp$
e���goto_beginmenu
e�� temp%,line$
e��#menufile%=0
e��
e�temp%=�#menufile%
e�line$=�#menufile%
e�%� �beginmenu(line$) � �#menufile%
e�:��#menufile% � 200,"No 'beginmenu' found in menu file"
e��#menufile%=temp%
e��
e�2��indirected_item(menu_ptr%,writable%,length%)
e�� indir_ptr%
e�� writable% �
f� indir_ptr% length%+1
f�
f� indir_ptr% 1+�itemtext$
f&�
f0menu_ptr%!12=indir_ptr%:
f:$indir_ptr%=itemtext$+�(0)
fD� writable% �
fN(writable_item%(writable%)=indir_ptr%
fX$writable_len%(writable%)=length%
fbindir_ptr%+=length%+1
flmenu_ptr%!20=length%+1
fv�
f�indir_ptr%+=1+�itemtext$
f�menu_ptr%!20=1+�itemtext$:
f��
f�?indir_ptr%=0
f�menu_ptr%!16=indir_ptr%:
f��
f�ݤitem_count(menu_ptr%)
f�� count%
f�count%=1
f�menu_ptr%+=28
f�5ȕ (!menu_ptr% � &80)=0:menu_ptr%+=24:count%+=1:�
f�=count%
f���load_menus(menufile$)
g2� menucount%,header%,line$,pointer%,menustart%
g �size_menu_arrays(menufile$)
gmenufile%=�menufile$
g �set_menu_arrays
g*�goto_beginmenu
g4menucount%=0:header%=�
g>�
gHline$=�#menufile%
gR� �beginmenu(line$) �
g\C�header% � 200,"Bad menu file, no items in menu "+�(menucount%)
gf(�menucount% �mark_menu_end(pointer%)
gpmenucount%+=1
gzline$=�#menufile%
g�F�make_menu_header(pointer%,line$,menuwidth%(menucount%)):header%=�
g��
g�#�add_menu_item(line$):header%=�
g��
g�� �#menufile%
g��mark_menu_end(pointer%)
g�(ș"XOS_Find",0,menufile%:menufile%=0
g�C�header% � 200,"Bad menu file, no items in menu "+�(menucount%)
g��
g�0��make_menu_header(� pointer%,title$,width%)
g�$pointer%=�title$,12)+�(0):
g�pointer%?12=7:
g�pointer%?13=2:
hpointer%?14=7:
hpointer%?15=0:
hpointer%!16=width%:
h$pointer%!20=44:
h.pointer%!24=0:
h8pointer%+=28:
hB�
hL��mark_menu_end(pointer%)
hV(!(pointer%-24)=!(pointer%-24) � &80:
h`�
hj��menu_close
htș"Wimp_CreateMenu",,-1
h~�
h�ݤmenu_height(menu_ptr%)
h�#� itemcount%,linecount%,height%
h�itemcount%=1
h�&height%=menu_ptr%!20+menu_ptr%!24:
h�menu_ptr%+=28
h�ȕ (!menu_ptr% � &80)=0
h�itemcount%+=1
h�%� (!menu_ptr% � &2) linecount%+=1
h�menu_ptr%+=24
h��
h�&� (!menu_ptr% � &2) linecount%+=1:
h�%=itemcount%*height%+linecount%*24
iݤmenu_iconflag(var$)
i
2�var$="" � 200,"Menu icon flag value missing!"
i=�(var$)
i,� �menu_info_quit(window_handle%,title$)
i(� menu%
i2� menu% 76
i<$menu%=title$+�13
iF$menu%?12=7:menu%?13=2:menu%?14=7
iP'menu%?15=0:menu%!16=108:menu%!20=44
iZmenu%!24=0
id(menu%!28=&00:menu%!32=window_handle%
in-menu%!36=&07000021:$(menu%+40)="Info"+�13
ixmenu%!52=&80:menu%!56=-1
i�-menu%!60=&07000021:$(menu%+64)="Quit"+�13
i�
=menu%
i�ݤmenu_item_param(� item$)
i�� param$
i�� �item$,",") �
i�item$=�item$,�item$,",")+1)
i� param$=�item$,�item$,",")-1)
i��
i�
param$=""
i��
i�=param$
i�ݤmenu_item_text(item$)
i�-� �item$,",") item$=�item$,�item$,",")-1)
j
=item$
jݤmenu_path(ptr%)
j� path$
j"path$=�(!ptr%)
j,ptr%+=4
j6ȕ !ptr%<>-1
j@path$+="."+�(!ptr%)
jJptr%+=4
jT�
j^
=path$
jhݤmenu_quit(title$)
jr� menu%
j|� menu% 52
j�$menu%=title$+�13
j�$menu%?12=7:menu%?13=2:menu%?14=7
j�'menu%?15=0:menu%!16=108:menu%!20=44
j�'menu%!24=0:menu%!28=&80:menu%!32=-1
j�-menu%!36=&07000021:$(menu%+40)="Quit"+�13
j�
=menu%
j�ݤmenu_submenu(var$)
j�(� �(var$)<1 � �(var$)>�(menu%(),1) �
j�A� 200,"Can't find menu "+var$+", as referred to in:- "+param$
j��
j�� �(var$)=menucount% �
j�L� 200,"An item in menu "+var$+" cannot have menu "+var$+" as a submenu!"
j��
k=menu%(�(var$))
kݤmenuvar(var$)
kvar$=�var$,�var$,"(")+1)
k&var$=�var$,�var$,")")-1)
k0	=var$
k:ݤmenu_window(var$)
kD
� handle%
kN� �
kXC� � � 0,"Menu file error. Window variable "+var$+" not found."
kbhandle%=�(var$)
kl� handle%<1 �
kvș"XOS_Find",0,menufile%
k��:
k��
k�=handle%
k���menu_writable(var$)
k�maxlength%=0
k�� �var$,":") �
k�%maxlength%=�(�var$,�var$,":")+1))
k�2�(itemtext$)>maxlength% maxlength%=�itemtext$
k��
k�maxlength%=�itemtext$
k��
k�+menuflag%=menuflag%�4:writable%=�(var$)
k��
l��put_writem(writem%,text$)
l1� writem%<1 � writem%>�(writable_item%(),1) �
l=� 201,"writable menu item "+�(writem%)+" does not exist!"
l �
l*%� �text$>writable_len%(writem%) �
l4+� �text$>100 text$=�text$,100)+"......"
l>E� 201,"Text '"+text$+"' too long for writable item "+�writem%+"!"
lH�
lR"$writable_item%(writem%)=text$
l\�
lf��set_menu_arrays
lp� itemcount%,line$,width%
lz$menucount%=0:pointer%=menustart%
l��goto_beginmenu
l��
l�line$=�#menufile%
l�� �beginmenu(line$) �
l�Bmenu%(menucount%+1)=menustart%+(menucount%*28)+(itemcount%*24)
l�line$=�#menufile%:
l�menucount%+=1
l�line$=�line$,12)
l�'menuwidth%(menucount%)=12+16*�line$
l��
l�itemcount%+=1
l�� �line$,",") �
l�)width%=12+16*�(�line$,�line$,",")-1))
m�
mwidth%=12+16*�line$
m�
m$A� width%>menuwidth%(menucount%) menuwidth%(menucount%)=width%
m.�
m8� �#menufile%
mB�
mL��shade(menu%,item%,shade%)
mV� flagaddress%
m`#�menu%<1 � menu%>�(menu%(),1) �
mj7� 201,"Item shade error. Out of range menu number!"
mt�
m~1� item%<0 � item%>�item_count(menu%(menu%)) �
m�<� 201,"Item shade error. Out of range menu item number!"
m��
m�-flagaddress%=menu%(menu%)+28+(24*item%)+8
m�(� shade%=� shade%=&400000 � shade%=0
m�6!flagaddress%=(!flagaddress% � &FFBFFFFF) � shade%
m��
m�!��size_menu_arrays(menufile$)
m�:� menucount%,itemcount%,writecount%,windowcount%,line$
m�menufile%=�menufile$
m��
m�line$=�#menufile%
m�� �beginmenu(line$) �
n$menucount%+=1:line$=�#menufile%:
n
�
n$� �line$,",writ") writecount%+=1
n%� �line$,",wind") windowcount%+=1
n(itemcount%+=1
n2�
n<� �#menufile%
nF(ș"XOS_Find",0,menufile%:menufile%=0
nPD�dim_menu_arrays(menucount%,itemcount%,writecount%,windowcount%)
nZ�
nd��tick(menu%,item%,tick%)
nn� flagaddress%
nx#�menu%<1 � menu%>�(menu%(),1) �
n�6� 201,"Item tick error. Out of range menu number!"
n��
n�1� item%<0 � item%>�item_count(menu%(menu%)) �
n�6� 201,"Item tick error. Out of range item number!"
n��
n�+flagaddress%=menu%(menu%)+28+(24*item%)
n�� tick%=� tick%=1 � tick%=0
n�5!flagaddress%=(!flagaddress% � &FFFFFFFE) � tick%
n��
n�"ݤget_string(pointer%,length%)
n�� temp$
n�� length%=0 length%=255
n�,� pointer%=pointer% � pointer%+length%-1
o� ?pointer%<32 �
o
=temp$
o�
o"temp$+=�(?pointer%)
o,�
o6�
o@
=temp$
oJݤhex(number%)
oT
� hex$
o^5ș"OS_ConvertHex8",number%,"0000000000",10 � hex$
oh#ȕ �hex$,1)="0":hex$=�hex$,2):�
or� hex$="" hex$="0"
o|	=hex$
o�ݤleaf(path$)
o�0ȕ �path$,"."):path$=�path$,�path$,".")+1):�
o�
=path$
o�ݤreason(event%)
o�
� reason$
o�Ȏ event% �
o�"� 0:reason$="Null reason code"
o�'� 1:reason$="Redraw window request"
o�%� 2:reason$="Open window request"
o�&� 3:reason$="Close window request"
o�(� 4:reason$="Pointer leaving window"
o�)� 5:reason$="Pointer entering window"
o�&� 6:reason$="Mouse button pressed"
p)� 7:reason$="Drag has been completed"
p� 8:reason$="Key pressed"
p � 9:reason$="Menu selection"
p& �10:reason$="Scroll request"
p0�11:reason$="Loose caret"
p:�12:reason$="Gain caret"
pD�17:reason$="User message"
pN"�18:reason$="Message recorded"
pX*�19:reason$="User message acknowledge"
pb�
pl=reason$
pv#��report_error(message$,title$)
p�$message$=�0+�0+�0+�0+message$+�0
p�,ș "Wimp_ReportError",message$,18,title$
p��
p�!��show_value(line%,variable$)
p�line%=line%�4
p�� �variable$,"$") �
p�variable$+="="+�(variable$)
p��
p�� �variable$," ") �
p��
p�"variable$+="="+�(�(variable$))
p��
p��
q4�put_icon_text(show_value%,line%,�variable$,35))
q�open_window(show_value%)
q�
q 5� �shade_icon(window_handle%,icon_handle%,shade%)
q* temp_blk%!0=window_handle%
q4 temp_blk%!4=icon_handle%
q> temp_blk%!12=1<<22
qH0 � shade% temp_blk%!8=1<<22 � temp_blk%!8=0:
qR% ș"Wimp_SetIconState",,temp_blk%
q\�
qfݤsystem_variable(sys_var$)
qp
� length%
qz=ș"XOS_ReadVarVal",sys_var$+�(0),temp_blk%,-1 � ,,length%
q�A� length%=0 � � 0,"System variable '"+sys_var$+"' not found!"
q�Aș"XOS_ReadVarVal",sys_var$+�(0),temp_blk%,255,,3 � ,,length%
q�?(temp_blk%+length%)=13
q�=$temp_blk%
q�1��change_pointer(sprites%,sprite_name$,x%,y%)
q�6ș"OS_SpriteOp",&124,sprites%,sprite_name$,2,x%,y%
q�temp_blk%?0=1
q�temp_blk%?1=25
q�temp_blk%?2=&FF
q�temp_blk%?3=&BB
q�temp_blk%?4=&BB
q�ș"OS_Word",12,temp_blk%
q�temp_blk%?0=2
rtemp_blk%?2=&55
rtemp_blk%?3=&55
rtemp_blk%?4=&55
r$ș"OS_Word",12,temp_blk%
r.*POINTER 2
r8�
rB��restore_pointer
rL*POINTER 1
rV�
r`2ݤget_sprite_name(window_handle%,icon_handle%)
rj� temp$
rttemp_blk%!0=window_handle%
r~temp_blk%!4=icon_handle%
r�$ș"Wimp_GetIconState",,temp_blk%
r�Ȏ (temp_blk%!24 � &103) �
r�� &002,&003
r�"=�get_string(temp_blk%!28,256)
r�
� &102
r�� temp_blk%!36>0 �
r�+=�get_string(temp_blk%!28,temp_blk%!36)
r��
r�1� 202,"No sprite name in icon "+�icon_handle%
r�=""
r��
r�
� &103
s/=��get_string(temp_blk%!32,temp_blk%!36),2)
s

s1� 202,"No sprite name in icon "+�icon_handle%
s=""
s(�
s2
=temp$
s<3ݤicon_sprite_type(window_handle%,icon_handle%)
sF==�("&"+¤get_sprite_name(window_handle%,icon_handle%),3))
sPݤload_sprites(file$)
sZ� sprites%,size%
sdsize%=�file_size(file$)+16
sn� sprites% size%
sxsprites%!0=size%
s�sprites%!8=16
s�(ș"OS_SpriteOp",&10A,sprites%,file$:
s�
=sprites%
s�Bݤnew_template(template_file$,window_name$,� memfree%,memend%)
s�� window_handle%
s�)ș"Wimp_OpenTemplate",,template_file$
s�;window_handle%=�template(window_name$,memfree%,memend%)
s�ș "Wimp_CloseTemplate"
s�=window_handle%
s�(ݤtemplate(window_name$,� ptr%,end%)
s�� found%,window_handle%
s�Nș"Wimp_LoadTemplate",,blk%,ptr%,end%,-1,window_name$,0 � ,,ptr%,,,,found%
s�� found% �
t1ș "Wimp_CreateWindow",,blk% � window_handle%
t�
t?� � 0,"Window "+window_name$+" not found in template file!"
t"window_handle%=0
t,�
t6=window_handle%
t@Dݤadd_icon(type$,text$,window_handle%,x%,y%,sl%,esg_sp%,border%)
tJ)��change_extent(window_handle%,x%,y%)
tT7� min_x%,min_y%,max_x%,max_y%,max_vis_x%,min_vis_y%
t^!temp_blk%=window_handle%
th&ș "Wimp_GetWindowInfo",,temp_blk%
trmin_x%=temp_blk%!44
t|min_y%=y%-y%�4
t�max_x%=x%-x%�2
t�max_y%=temp_blk%!56
t�4max_vis_x%=temp_blk%!20+temp_blk%!12-temp_blk%!4
t�4min_vis_y%=temp_blk%!24-temp_blk%!16+temp_blk%!8
t�)� min_y%>min_vis_y% min_y%=min_vis_y%
t�)� max_vis_x%>max_x% max_x%=max_vis_x%
t�temp_blk%!0=min_x%
t�temp_blk%!4=min_y%
t�temp_blk%!8=max_x%
t�temp_blk%!12=max_y%
t�/ș"Wimp_SetExtent",window_handle%,temp_blk%
t��
t�
u#� �close_window(window_handle%)
u!temp_blk%=window_handle%
u$ș "Wimp_CloseWindow",,temp_blk%
u&�
u0
u:
uD$� �delete_window(window_handle%)
uN!temp_blk%=window_handle%
uX%ș "Wimp_DeleteWindow",,temp_blk%
ub�
ul"� �open_window(window_handle%)
uv!�close_window(window_handle%)
u�!temp_blk%=window_handle%
u�'ș "Wimp_GetWindowState",,temp_blk%
u�#ș "Wimp_OpenWindow",,temp_blk%
u� � - Bring to front
u��
u���print_line(line%,text$)
u�L� max_lines%,min_x%,min_y%,max_x%,max_y%,line_top%,line_bot%,x%,y%,more%
u�!max_lines%=�(print_line$(),1)
u�� line%>max_lines% �
u�9� 204,"Out of range line number in 'PROCprint_line'!"
u��
u��
u�!temp_blk%=print_window%
v&ș "Wimp_GetWindowInfo",,temp_blk%
vmin_x%=temp_blk%!44
vmin_y%=temp_blk%!48
v max_x%=temp_blk%!52
v*max_y%=temp_blk%!56
v4line_top%=max_y%-line%*32
v>line_bot%=line_top%-32
vH+line%=(line%+print_top%)�(max_lines%+1)
vR+print_line$(line%)=�text$,print_width%)
v\!x%=temp_blk%!4-temp_blk%!20+4
vf,y%=temp_blk%!16-temp_blk%!24+line_top%-4
vptemp_blk%!0=print_window%
vztemp_blk%!4=min_x%
v�temp_blk%!8=line_bot%
v�temp_blk%!12=max_x%
v�temp_blk%!16=line_top%
v�,ș"Wimp_UpdateWindow",,temp_blk% � more%
v�ȕ more%
v�	� 7:�
v�� x%,y%
v��;print_line$(line%);
v�,ș"Wimp_GetRectangle",,temp_blk% � more%
v��
v��
v�
v�&ݤwindow_rectangle(window_handle%)
w� more%
wGtemp_blk%!0=window_handle%:ș"Wimp_GetRectangle",,temp_blk% � more%
w
=more%
w$#ݤwindow_update(window_handle%)
w.� more%
w8temp_blk%!0=window_handle%
wBtemp_blk%!4=&80000000:
wLtemp_blk%!8=&80000000:
wVtemp_blk%!12=&6FFFFFFF:
w`temp_blk%!16=&6FFFFFFF:
wj,ș"Wimp_UpdateWindow",,temp_blk% � more%
wt
=more%
w~%ݤwindow_x_origin(window_handle%)
w�temp_blk%!0=window_handle%
w�&ș"Wimp_GetWindowState",,temp_blk%
w�=temp_blk%!4-temp_blk%!20
w�%ݤwindow_y_origin(window_handle%)
w�temp_blk%!0=window_handle%
w�&ș"Wimp_GetWindowState",,temp_blk%
w�=temp_blk%!16-temp_blk%!24
w�ݤfile_size(file$)
w�� size%,found%
w�*ș"OS_File",17,file$ � found%,,,,size%
w�<� found%<>1 � � 203,"File '"+�leaf(file$)+"' not found!"
w�
=size%
x:
x
N� ------------------------------------------------------------------------
x7�                  Get file type for a defined file
xN� ------------------------------------------------------------------------
x(:
x2ݤfile_type(file$)
x<� temp%,found%
xF(ș"OS_File",17,file$ � found%,,temp%
xP;� found%<>1 � � 203,"File "+�leaf(file$)+", not found!"
xZ,�(temp%>>>20)=&FFF�=(temp%>>>8)�&FFF �=0
xd:
xnN� ------------------------------------------------------------------------
xx6�                  Initiate a save to another task
x�N� ------------------------------------------------------------------------
x�:
x�A��initiate_save(window%,icon%,x%,y%,file$,start%,size%,type%)
x�� PROCsave_setup
x�9� Call this procedure after a drag has been completed
x��
x�J� window% is the window handle of a window belonging to the other task
x�G� icon%   is an icon handle in a window belonging to the other task
x�6� x%      is the pointer x position at end of drag
x�6� y%      is the pointer y position at end of drag
x�1� file$   is the name of the file to be saved
x�:� start%  is the start address of the area to be saved
x�1� size%   is the size of the data to be saved
y8� type%   is the file type (eg &FFF for a text file)
y:
yM� Store start address and size in a variable for use during data transfer
y"mem_area_start%=start%
y,mem_data_size%=size%
y6mem_data_ptr%=start%
y@:
yJblk%!0=256
yT#blk%!12=0:� An original message
y^*blk%!16=1:� A 'data save' type message
yhblk%!20=window%
yrblk%!24=icon%
y|blk%!28=x%
y�blk%!32=y%
y�blk%!36=size%
y�blk%!40=type%
y�$(blk%+44)=file$+�0
y�Cș "Wimp_SendMessage",17,blk%,window%,icon% � destination_task%
y��
y�:
y�F� The following message types are associated with transfer of data
y�A� TO this task FROM another task (or from the filing system).
y�:
y�N� ------------------------------------------------------------------------
y�2�                      Load a file into memory
y�N� ------------------------------------------------------------------------
z:
z,ݤload_data(file_path$,start%,max_size%)
z� real_size%
z&C� file_path$ is the full path and name of the file to be loaded
z01� start%     is the load address for the file
z:?� max_size%  is the maximum size of file that can be loaded
zD%real_size%=�file_size(file_path$)
zN� real_size%>max_size% �
zXF  �report_error("File to load is too large!","Data loading error")
zb  =0
zl�
zv$ș"OS_File",16,file_path$,start%
z�=real_size%
z�:
z�N� ------------------------------------------------------------------------
z�B�        Reply to another tasks data save message using a file
z�N� ------------------------------------------------------------------------
z�:
z�� �message_file_save
z�5� Another task wants to send this task some data,
z�<� Tell task to use an intermediate file for the transfer
z�:
z�ram_transfer%=�
z�2� Check if Wimp$Scrap exists then send message
z�,  � �system_variable("Wimp$Scrap")<>"" �
{    blk%!36=-1
{$    $(blk%+44)="<Wimp$Scrap>"+�0
{    blk%!0=64
{ E    blk%!12=blk%!8:blk%!16=2:ș "Wimp_SendMessage",17,blk%,blk%!4
{*  �
{4L    �report_error("Wimp$Scrap not found. Run !System or !Scrap","Error")
{>  �
{H�
{R:
{\N� ------------------------------------------------------------------------
{f>�                 Load data from a file given in a message
{pN� ------------------------------------------------------------------------
{z:
{�$ݤmessage_load(start%,max_size%)
{�� file_to_load$,file_size%
{�:
{� � Load a file from the filer
{�*file_to_load$=�get_string(blk%+44,255)
{�9file_size%=�load_data(file_to_load$,start%,max_size%)
{�;� file_to_load$="<Wimp$Scrap>" � *DELETE "<Wimp$Scrap>"
{�:
{�(� Reply to filer with an acknowledge
{�Ablk%!12=blk%!8:blk%!16=4:ș "Wimp_SendMessage",17,blk%,blk%!4
{�:
{�=file_size%
{�:
|F� The following message types are associated with transfer of data
|?� FROM this task TO another task (or to the filing system).
|:
|$N� ------------------------------------------------------------------------
|.C�         Reply to another tasks data save message using memory
|8N� ------------------------------------------------------------------------
|B:
|L-� �message_save_ok(my_address%,max_size%)
|V5� Another task wants to send this task some data.
|`=� Send back a message to suggest the use RAM for transfer
|j:
|t6� Data will be saved TO this task at 'my_address%'
|~B� max_size% limits the maximum size of file that may be loaded
|�:
|�7� Set flag to identify type of transfer in progress
|�&� (in case message not replied to)
|�ram_transfer%=�
|�ram_transmit%=�
|�:
|�8� Store variables for later use during data transfer
|�mem_area_start%=my_address%
|�mem_area_size%=max_size%
|�mem_data_size%=0
|�:
|�(� Set up parameter block for message
}blk%!20=mem_area_start%
}
6� Set block size to be used during memory transfer
}blk%!24=ram_block_size%
}� Setup my_reference
}(blk%!12=blk%!8
}2E� Message type is RAMfetch, ie attempt to use memory for transfer
}<
blk%!16=6
}F'ș"Wimp_SendMessage",17,blk%,blk%!4
}P:
}Z�
}d:
}nN� ------------------------------------------------------------------------
}x7�                    Send a reply to a save message
}�N� ------------------------------------------------------------------------
}�:
}���message_save_reply
}�$� Reply with a data load message
}�Ablk%!12=blk%!8:blk%!16=3:ș "Wimp_SendMessage",17,blk%,blk%!4
}��
}�:
}�N� ------------------------------------------------------------------------
}�7�                    Send data to a task via memory
}�N� ------------------------------------------------------------------------
}�:
}���ram_transfer_reply
}�� PROCsave_setup
~� buf_size%,data_size%
~A� Another task wants this task to use memory to send the data
~:
~"7� Find out how big the transfered data block can be
~,buf_size%=blk%!24
~6:
~@� Send the data block
~JLș"Wimp_TransferBlock",this_task%,mem_data_ptr%,blk%!4,blk%!20,buf_size%
~T:
~^*� See how much data has yet to be sent
~h;data_size%=mem_area_start%+mem_data_size%-mem_data_ptr%
~r:
~|/� Limit data sent to the allowed block size
~�.� and close the menu if buffer is not full
~�?� data_size%>buf_size% � data_size%=buf_size% � �menu_close
~�:
~�3� Update pointer to next area to be transferred
~�mem_data_ptr%+=data_size%
~�:
~�A� Tell the other task to load data by sending a 'RAMTransmit'
~�/blk%!12=blk%!8:blk%!16=7:blk%!24=data_size%
~�(ș "Wimp_SendMessage",17,blk%,blk%!4
~��
~�:
~�N� ------------------------------------------------------------------------
~�:�               Load data from another task via memory
N� ------------------------------------------------------------------------
:
��ram_transmit
&
0H� Another task has agreed to use memory for the transfer to this one
:ram_transmit%=�
Dmem_data_size%+=blk%!24
N!  � blk%!24=ram_block_size% �
X1    � Not all the data has been recieved yet.
b2    � Check if there is room for another block
l9    � mem_data_size%+ram_block_size%>mem_area_size% �
vK      �report_error("Insufficient room for data!","RAM transfer error")
�      mem_data_size%=0
�	    �
�*      � Send another RAM fetch message
�"      blk%!20+=ram_block_size%
�"      blk%!12=blk%!8:blk%!16=6
�.      ș "Wimp_SendMessage",18,blk%,blk%!4
�	    �
�  �
�#    � DATA transfer is complete
�  �
��
�:
�N� ------------------------------------------------------------------------
�8�                   Save an area of memory to a file
�N� ------------------------------------------------------------------------
�:
� 5��save_data(file_name$,file_type%,start%,length%)
�*� PROCsave_setup
�4?ș"OS_File",10,file_name$,file_type%,,start%,start%+length%
�>�
�H:
�R+��drag_box(window_handle%,icon_handle%)
�\� x%,y%
�ftemp_blk%!0=window_handle%
�p&ș"Wimp_GetWindowState",,temp_blk%
�zx%=temp_blk%!4-temp_blk%!20
�� y%=temp_blk%!16-temp_blk%!24
��:
��temp_blk%!4=icon_handle%
��$ș"Wimp_GetIconState",,temp_blk%
��:
��9� Don't allow icons with button type 11 to be dragged
��$� (temp_blk%!24 � &B000)=&B000 �
��:
��D� Don't allow hidden icons to be dragged (ie when bit 23 is set)
��(� (temp_blk%!24 � &800000)=&800000 �
��:
��temp_blk%!4=5
��temp_blk%!8+=x%
�temp_blk%!12+=y%
�temp_blk%!16+=x%
�temp_blk%!20+=y%
�$temp_blk%!24=-1
�.temp_blk%!28=-1
�8temp_blk%!32=&7FFFFFFF
�Btemp_blk%!36=&7FFFFFFF
�Lș"Wimp_DragBox",,temp_blk%
�V�
�`
�j
�ame
Pu,�����O�@-� �C��	 ����$��4���4��	 ����,��#��������K*Basic -quit  @
00000000  20 20 9f e5 0c 30 4f e2  03 00 82 e0 0f 1c 80 e2  |  ...0O.........|
00000010  04 30 10 e4 04 30 01 e4  04 20 52 e2 fb ff ff 1a  |.0...0... R.....|
00000020  28 c0 4f e2 a8 56 00 ea  44 4c 01 00 0d 00 0a 19  |(.O..V..DL......|
00000030  f4 20 2d 20 44 65 73 6b  74 6f 70 20 43 6f 6e 76  |. - Desktop Conv|
00000040  65 72 74 65 72 0d 00 14  26 f4 20 2d 20 42 79 20  |erter...&. - By |
00000050  54 68 6f 6d 61 73 20 42  61 6c 64 77 69 6e 20 4a  |Thomas Baldwin J|
00000060  61 6e 75 61 72 79 20 31  39 39 35 0d 00 1e 04 0d  |anuary 1995.....|
00000070  00 28 1e ee 20 85 20 f6  3a f1 22 20 61 74 20 6c  |.(.. . .:." at l|
00000080  69 6e 65 20 22 3b 9e 20  81 31 30 3a e0 0d 00 32  |ine ";. .10:...2|
00000090  0e 63 68 65 63 6b 25 20  3d 20 a3 0d 00 3c 11 73  |.check% = ...<.s|
000000a0  65 6c 65 63 74 65 64 25  20 3d 20 30 0d 00 46 0d  |elected% = 0..F.|
000000b0  76 61 6c 75 65 20 3d 20  30 0d 00 50 18 74 68 65  |value = 0..P.the|
000000c0  5f 75 6e 69 74 24 20 3d  20 22 4d 65 74 72 65 73  |_unit$ = "Metres|
000000d0  22 0d 00 5a 1d 68 65 61  64 69 6e 67 5f 6f 6e 65  |"..Z.heading_one|
000000e0  24 20 3d 20 22 4f 72 69  67 69 6e 61 6c 22 0d 00  |$ = "Original"..|
000000f0  64 19 68 65 61 64 69 6e  67 5f 74 77 6f 24 20 3d  |d.heading_two$ =|
00000100  20 22 55 6e 69 74 22 0d  00 6e 21 68 65 61 64 69  | "Unit"..n!headi|
00000110  6e 67 5f 74 68 72 65 65  24 20 3d 20 22 43 6f 6e  |ng_three$ = "Con|
00000120  76 65 72 73 69 6f 6e 22  0d 00 78 1a 68 65 61 64  |version"..x.head|
00000130  69 6e 67 5f 66 6f 75 72  24 20 3d 20 22 55 6e 69  |ing_four$ = "Uni|
00000140  74 22 0d 00 82 16 73 61  76 65 5f 73 65 6c 65 63  |t"....save_selec|
00000150  74 65 64 25 20 3d 20 a3  0d 00 8c 1a 73 61 76 65  |ted% = .....save|
00000160  5f 63 73 76 5f 73 65 6c  65 63 74 65 64 25 20 3d  |_csv_selected% =|
00000170  20 a3 0d 00 96 11 73 61  76 65 5f 61 6c 6c 25 20  | .....save_all% |
00000180  3d 20 b9 0d 00 a0 0c 6e  61 6d 65 24 3d 22 22 0d  |= .....name$="".|
00000190  00 aa 10 6d 61 74 68 73  5f 61 24 3d 22 30 22 0d  |...maths_a$="0".|
000001a0  00 b4 10 6d 61 74 68 73  5f 62 24 3d 22 30 22 0d  |...maths_b$="0".|
000001b0  00 be 17 63 73 76 5f 68  65 61 64 24 3d 22 68 65  |...csv_head$="he|
000001c0  61 64 69 6e 67 22 0d 00  c8 12 f2 64 65 66 69 6e  |ading".....defin|
000001d0  65 5f 61 72 72 61 79 73  0d 00 d2 15 f2 64 65 66  |e_arrays.....def|
000001e0  69 6e 65 5f 76 61 72 69  61 62 6c 65 73 0d 00 dc  |ine_variables...|
000001f0  1a ee 20 85 20 f2 65 72  72 6f 72 28 9f 2c f6 24  |.. . .error(.,.$|
00000200  29 3a f2 71 75 69 74 0d  00 e6 2c 74 61 73 6b 5f  |):.quit...,task_|
00000210  68 61 6e 64 6c 65 25 3d  a4 74 61 73 6b 5f 69 6e  |handle%=.task_in|
00000220  69 74 69 61 6c 69 73 65  28 61 70 70 5f 6e 61 6d  |itialise(app_nam|
00000230  65 24 29 0d 00 f0 07 d1  3d 30 0d 00 fa 11 f2 69  |e$).....=0.....i|
00000240  6e 73 74 61 6c 6c 5f 69  63 6f 6e 0d 01 04 11 f2  |nstall_icon.....|
00000250  6c 6f 61 64 5f 73 70 72  69 74 65 73 0d 01 0e 11  |load_sprites....|
00000260  f2 6c 6f 61 64 5f 77 69  6e 64 6f 77 73 0d 01 18  |.load_windows...|
00000270  13 f2 63 72 65 61 74 65  5f 77 69 6e 64 6f 77 73  |..create_windows|
00000280  0d 01 22 09 f2 69 6e 66  6f 0d 01 2c 0a f2 6d 65  |.."..info..,..me|
00000290  6e 75 73 0d 01 36 13 f2  6e 75 6c 6c 5f 76 61 72  |nus..6..null_var|
000002a0  69 61 62 6c 65 73 0d 01  40 0e f2 63 6f 6e 66 69  |iables..@..confi|
000002b0  67 75 72 65 0d 01 4a 14  ee 20 85 20 f2 65 72 72  |gure..J.. . .err|
000002c0  6f 72 28 9f 2c f6 24 29  0d 01 54 0e f2 77 69 6d  |or(.,.$)..T..wim|
000002d0  70 5f 70 6f 6c 6c 0d 01  5e 09 f2 71 75 69 74 0d  |p_poll..^..quit.|
000002e0  01 68 13 dd f2 64 65 66  69 6e 65 5f 61 72 72 61  |.h...define_arra|
000002f0  79 73 0d 01 72 0f ea 20  62 6c 6b 5f 73 69 7a 65  |ys..r.. blk_size|
00000300  25 0d 01 7c 12 62 6c 6b  5f 73 69 7a 65 25 3d 26  |%..|.blk_size%=&|
00000310  38 30 30 0d 01 86 14 de  20 62 6c 6b 25 20 62 6c  |800..... blk% bl|
00000320  6b 5f 73 69 7a 65 25 0d  01 90 19 de 20 74 65 6d  |k_size%..... tem|
00000330  70 5f 62 6c 6b 25 20 62  6c 6b 5f 73 69 7a 65 25  |p_blk% blk_size%|
00000340  0d 01 9a 14 de 20 65 72  72 6f 72 62 6c 6b 25 20  |..... errorblk% |
00000350  26 31 30 30 0d 01 a4 16  de 20 77 6f 72 6b 73 74  |&100..... workst|
00000360  61 72 74 25 20 26 32 34  30 30 0d 01 ae 18 77 6f  |art% &2400....wo|
00000370  72 6b 66 72 65 65 25 3d  77 6f 72 6b 73 74 61 72  |rkfree%=workstar|
00000380  74 25 0d 01 b8 1d 77 6f  72 6b 65 6e 64 25 3d 77  |t%....workend%=w|
00000390  6f 72 6b 73 74 61 72 74  25 2b 26 31 30 30 30 0d  |orkstart%+&1000.|
000003a0  01 c2 10 f2 6d 6f 72 65  5f 61 72 72 61 79 73 0d  |....more_arrays.|
000003b0  01 cc 05 e1 0d 01 d6 04  0d 01 e0 10 dd 20 f2 63  |............. .c|
000003c0  6f 6e 66 69 67 75 72 65  0d 01 ea 26 66 69 6c 65  |onfigure...&file|
000003d0  25 3d 8e 22 3c 44 54 43  6f 6e 76 65 72 74 24 44  |%=."<DTConvert$D|
000003e0  69 72 3e 2e 43 6f 6e 66  69 67 75 72 65 22 0d 01  |ir>.Configure"..|
000003f0  f4 14 68 65 61 64 69 6e  67 24 3d be 23 66 69 6c  |..heading$=.#fil|
00000400  65 25 0d 01 fe 18 68 65  61 64 69 6e 67 5f 6f 6e  |e%....heading_on|
00000410  65 24 3d be 23 66 69 6c  65 25 0d 02 08 18 68 65  |e$=.#file%....he|
00000420  61 64 69 6e 67 5f 74 77  6f 24 3d be 23 66 69 6c  |ading_two$=.#fil|
00000430  65 25 0d 02 12 1a 68 65  61 64 69 6e 67 5f 74 68  |e%....heading_th|
00000440  72 65 65 24 3d be 23 66  69 6c 65 25 0d 02 1c 1b  |ree$=.#file%....|
00000450  20 20 68 65 61 64 69 6e  67 5f 66 6f 75 72 24 3d  |  heading_four$=|
00000460  be 23 66 69 6c 65 25 0d  02 26 13 20 20 62 65 65  |.#file%..&.  bee|
00000470  70 24 3d be 23 66 69 6c  65 25 0d 02 30 1a 20 20  |p$=.#file%..0.  |
00000480  61 64 6a 75 73 74 5f 64  72 61 67 24 3d be 23 66  |adjust_drag$=.#f|
00000490  69 6c 65 25 0d 02 3a 0d  20 20 d9 23 66 69 6c 65  |ile%..:.  .#file|
000004a0  25 0d 02 44 14 20 f2 73  65 74 5f 75 70 5f 6f 70  |%..D. .set_up_op|
000004b0  74 69 6f 6e 73 0d 02 4e  05 e1 0d 02 58 04 0d 02  |tions..N....X...|
000004c0  62 15 dd 20 f2 73 65 74  5f 75 70 5f 6f 70 74 69  |b.. .set_up_opti|
000004d0  6f 6e 73 0d 02 6c 29 20  f2 70 75 74 5f 69 63 6f  |ons..l) .put_ico|
000004e0  6e 5f 74 65 78 74 28 6f  70 74 25 2c 31 30 2c 68  |n_text(opt%,10,h|
000004f0  65 61 64 69 6e 67 5f 6f  6e 65 24 29 0d 02 76 29  |eading_one$)..v)|
00000500  20 f2 70 75 74 5f 69 63  6f 6e 5f 74 65 78 74 28  | .put_icon_text(|
00000510  6f 70 74 25 2c 31 31 2c  68 65 61 64 69 6e 67 5f  |opt%,11,heading_|
00000520  74 77 6f 24 29 0d 02 80  2b 20 f2 70 75 74 5f 69  |two$)...+ .put_i|
00000530  63 6f 6e 5f 74 65 78 74  28 6f 70 74 25 2c 31 32  |con_text(opt%,12|
00000540  2c 68 65 61 64 69 6e 67  5f 74 68 72 65 65 24 29  |,heading_three$)|
00000550  0d 02 8a 2a 20 f2 70 75  74 5f 69 63 6f 6e 5f 74  |...* .put_icon_t|
00000560  65 78 74 28 6f 70 74 25  2c 31 33 2c 68 65 61 64  |ext(opt%,13,head|
00000570  69 6e 67 5f 66 6f 75 72  24 29 0d 02 94 1e 20 20  |ing_four$)....  |
00000580  e7 20 68 65 61 64 69 6e  67 24 3d 22 6e 6f 68 65  |. heading$="nohe|
00000590  61 64 69 6e 67 22 20 8c  0d 02 9e 1d 20 20 20 f2  |ading" .....   .|
000005a0  73 65 6c 65 63 74 5f 69  63 6f 6e 28 6f 70 74 25  |select_icon(opt%|
000005b0  2c 39 2c b9 29 0d 02 a8  1d 20 20 20 f2 73 68 61  |,9,.)....   .sha|
000005c0  64 65 5f 69 63 6f 6e 28  6f 70 74 25 2c 31 30 2c  |de_icon(opt%,10,|
000005d0  b9 29 0d 02 b2 1d 20 20  20 f2 73 68 61 64 65 5f  |.)....   .shade_|
000005e0  69 63 6f 6e 28 6f 70 74  25 2c 31 31 2c b9 29 0d  |icon(opt%,11,.).|
000005f0  02 bc 1d 20 20 20 f2 73  68 61 64 65 5f 69 63 6f  |...   .shade_ico|
00000600  6e 28 6f 70 74 25 2c 31  32 2c b9 29 0d 02 c6 1d  |n(opt%,12,.)....|
00000610  20 20 20 f2 73 68 61 64  65 5f 69 63 6f 6e 28 6f  |   .shade_icon(o|
00000620  70 74 25 2c 31 33 2c b9  29 0d 02 d0 07 20 20 cc  |pt%,13,.)....  .|
00000630  0d 02 da 1d 20 20 20 f2  73 65 6c 65 63 74 5f 69  |....   .select_i|
00000640  63 6f 6e 28 6f 70 74 25  2c 39 2c a3 29 0d 02 e4  |con(opt%,9,.)...|
00000650  1d 20 20 20 f2 73 68 61  64 65 5f 69 63 6f 6e 28  |.   .shade_icon(|
00000660  6f 70 74 25 2c 31 30 2c  a3 29 0d 02 ee 1d 20 20  |opt%,10,.)....  |
00000670  20 f2 73 68 61 64 65 5f  69 63 6f 6e 28 6f 70 74  | .shade_icon(opt|
00000680  25 2c 31 31 2c a3 29 0d  02 f8 1d 20 20 20 f2 73  |%,11,.)....   .s|
00000690  68 61 64 65 5f 69 63 6f  6e 28 6f 70 74 25 2c 31  |hade_icon(opt%,1|
000006a0  32 2c a3 29 0d 03 02 1d  20 20 20 f2 73 68 61 64  |2,.)....   .shad|
000006b0  65 5f 69 63 6f 6e 28 6f  70 74 25 2c 31 33 2c a3  |e_icon(opt%,13,.|
000006c0  29 0d 03 0c 07 20 20 cd  0d 03 16 2d 20 e7 20 62  |)....  ....- . b|
000006d0  65 65 70 24 3d 22 62 65  65 70 22 20 8c 20 f2 73  |eep$="beep" . .s|
000006e0  65 6c 65 63 74 5f 69 63  6f 6e 28 6f 70 74 25 2c  |elect_icon(opt%,|
000006f0  31 34 2c b9 29 0d 03 20  2f 20 e7 20 62 65 65 70  |14,.).. / . beep|
00000700  24 3d 22 6e 6f 62 65 65  70 22 20 8c 20 f2 73 65  |$="nobeep" . .se|
00000710  6c 65 63 74 5f 69 63 6f  6e 28 6f 70 74 25 2c 31  |lect_icon(opt%,1|
00000720  34 2c a3 29 0d 03 2a 36  20 e7 20 61 64 6a 75 73  |4,.)..*6 . adjus|
00000730  74 5f 64 72 61 67 24 3d  22 61 64 6a 75 73 74 22  |t_drag$="adjust"|
00000740  20 8c 20 f2 73 65 6c 65  63 74 5f 69 63 6f 6e 28  | . .select_icon(|
00000750  6f 70 74 25 2c 31 35 2c  b9 29 0d 03 34 38 20 e7  |opt%,15,.)..48 .|
00000760  20 61 64 6a 75 73 74 5f  64 72 61 67 24 3d 22 6e  | adjust_drag$="n|
00000770  6f 61 64 6a 75 73 74 22  20 8c 20 f2 73 65 6c 65  |oadjust" . .sele|
00000780  63 74 5f 69 63 6f 6e 28  6f 70 74 25 2c 31 35 2c  |ct_icon(opt%,15,|
00000790  a3 29 0d 03 3e 05 e1 0d  03 48 04 0d 03 52 11 dd  |.)..>....H...R..|
000007a0  f2 6d 6f 72 65 5f 61 72  72 61 79 73 0d 03 5c 1a  |.more_arrays..\.|
000007b0  20 73 61 76 65 5f 61 72  65 61 5f 73 69 7a 65 25  | save_area_size%|
000007c0  3d 26 38 30 30 30 0d 03  66 27 20 de 20 73 61 76  |=&8000..f' . sav|
000007d0  65 5f 61 72 65 61 5f 73  74 61 72 74 25 20 73 61  |e_area_start% sa|
000007e0  76 65 5f 61 72 65 61 5f  73 69 7a 65 25 0d 03 70  |ve_area_size%..p|
000007f0  16 20 73 61 76 65 5f 64  61 74 61 5f 73 69 7a 65  |. save_data_size|
00000800  25 3d 30 0d 03 7a 16 20  73 61 76 65 5f 64 61 74  |%=0..z. save_dat|
00000810  61 5f 73 69 7a 65 25 3d  30 0d 03 84 1b 20 74 65  |a_size%=0.... te|
00000820  6d 70 25 3d 73 61 76 65  5f 61 72 65 61 5f 73 74  |mp%=save_area_st|
00000830  61 72 74 25 0d 03 8e 0e  20 24 74 65 6d 70 25 3d  |art%.... $temp%=|
00000840  22 22 0d 03 98 1a 20 6c  6f 61 64 5f 61 72 65 61  |"".... load_area|
00000850  5f 73 69 7a 65 25 3d 26  32 30 30 30 0d 03 a2 27  |_size%=&2000...'|
00000860  20 de 20 6c 6f 61 64 5f  61 72 65 61 5f 73 74 61  | . load_area_sta|
00000870  72 74 25 20 6c 6f 61 64  5f 61 72 65 61 5f 73 69  |rt% load_area_si|
00000880  7a 65 25 0d 03 ac 16 20  6c 6f 61 64 5f 64 61 74  |ze%.... load_dat|
00000890  61 5f 73 69 7a 65 25 3d  30 0d 03 b6 26 20 6c 6f  |a_size%=0...& lo|
000008a0  61 64 5f 61 72 65 61 5f  73 74 61 72 74 25 3d 73  |ad_area_start%=s|
000008b0  61 76 65 5f 61 72 65 61  5f 73 74 61 72 74 25 0d  |ave_area_start%.|
000008c0  03 c0 05 e1 0d 03 ca 04  0d 03 d4 18 dd 20 f2 73  |............. .s|
000008d0  61 76 65 5f 66 69 67 75  72 65 5f 73 65 74 75 70  |ave_figure_setup|
000008e0  0d 03 de 19 20 ea 20 73  61 76 65 24 2c 63 6f 75  |.... . save$,cou|
000008f0  6e 74 25 2c 73 61 76 65  25 0d 03 e8 0e 20 20 20  |nt%,save%....   |
00000900  73 61 76 65 25 3d 30 0d  03 f2 19 20 20 e3 20 63  |save%=0....  . c|
00000910  6f 75 6e 74 25 3d 30 20  b8 20 32 37 20 88 20 33  |ount%=0 . 27 . 3|
00000920  0d 03 fc 2c 20 20 20 e7  20 a4 67 65 74 5f 69 63  |...,   . .get_ic|
00000930  6f 6e 5f 74 65 78 74 28  73 74 6f 72 65 25 2c 63  |on_text(store%,c|
00000940  6f 75 6e 74 25 29 3c 3e  22 22 20 8c 0d 04 06 34  |ount%)<>"" ....4|
00000950  20 20 20 20 73 61 76 65  25 2b 3d a9 28 a4 67 65  |    save%+=.(.ge|
00000960  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
00000970  25 2c 63 6f 75 6e 74 25  29 2b 22 20 3d 20 22 29  |%,count%)+" = ")|
00000980  0d 04 10 34 20 20 20 20  73 61 76 65 25 2b 3d a9  |...4    save%+=.|
00000990  28 a4 67 65 74 5f 69 63  6f 6e 5f 74 65 78 74 28  |(.get_icon_text(|
000009a0  6d 61 69 6e 25 2c 63 6f  75 6e 74 25 2b 32 29 2b  |main%,count%+2)+|
000009b0  bd 31 33 29 0d 04 1a 08  20 20 20 cd 0d 04 24 0e  |.13)....   ...$.|
000009c0  20 20 ed 20 63 6f 75 6e  74 25 0d 04 2e 23 20 73  |  . count%...# s|
000009d0  61 76 65 24 3d a4 67 65  74 5f 69 63 6f 6e 5f 74  |ave$=.get_icon_t|
000009e0  65 78 74 28 6d 61 69 6e  25 2c 31 37 29 0d 04 38  |ext(main%,17)..8|
000009f0  16 20 73 61 76 65 5f 64  61 74 61 5f 73 69 7a 65  |. save_data_size|
00000a00  25 3d 30 0d 04 42 1a 20  73 61 76 65 5f 64 61 74  |%=0..B. save_dat|
00000a10  61 5f 73 69 7a 65 25 3d  73 61 76 65 25 0d 04 4c  |a_size%=save%..L|
00000a20  0c 20 74 65 6d 70 25 3d  30 0d 04 56 1b 20 74 65  |. temp%=0..V. te|
00000a30  6d 70 25 3d 73 61 76 65  5f 61 72 65 61 5f 73 74  |mp%=save_area_st|
00000a40  61 72 74 25 0d 04 60 11  20 20 20 20 24 74 65 6d  |art%..`.    $tem|
00000a50  70 25 3d 22 22 0d 04 6a  14 20 e7 20 73 61 76 65  |p%=""..j. . save|
00000a60  5f 61 6c 6c 25 3d b9 20  8c 0d 04 74 47 20 20 20  |_all%=. ...tG   |
00000a70  24 74 65 6d 70 25 20 3d  20 c3 28 bb 28 a4 67 65  |$temp% = .(.(.ge|
00000a80  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
00000a90  25 2c 31 37 29 2b a4 67  65 74 5f 69 63 6f 6e 5f  |%,17)+.get_icon_|
00000aa0  74 65 78 74 28 6d 61 69  6e 25 2c 32 34 29 29 29  |text(main%,24)))|
00000ab0  0d 04 7e 2c 20 20 20 24  74 65 6d 70 25 2b 3d 20  |..~,   $temp%+= |
00000ac0  22 20 22 2b a4 67 65 74  5f 69 63 6f 6e 5f 74 65  |" "+.get_icon_te|
00000ad0  78 74 28 6d 61 69 6e 25  2c 31 35 29 0d 04 88 06  |xt(main%,15)....|
00000ae0  20 cc 0d 04 92 47 20 20  20 24 74 65 6d 70 25 20  | ....G   $temp% |
00000af0  3d 20 c3 28 bb 28 a4 67  65 74 5f 69 63 6f 6e 5f  |= .(.(.get_icon_|
00000b00  74 65 78 74 28 6d 61 69  6e 25 2c 31 37 29 2b a4  |text(main%,17)+.|
00000b10  67 65 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |get_icon_text(ma|
00000b20  69 6e 25 2c 32 34 29 29  29 0d 04 9c 06 20 cd 0d  |in%,24))).... ..|
00000b30  04 a6 16 20 20 20 74 65  6d 70 25 2b 3d a9 20 24  |...   temp%+=. $|
00000b40  74 65 6d 70 25 0d 04 b0  2d 20 20 20 73 61 76 65  |temp%...-   save|
00000b50  5f 64 61 74 61 5f 73 69  7a 65 25 3d 74 65 6d 70  |_data_size%=temp|
00000b60  25 2d 73 61 76 65 5f 61  72 65 61 5f 73 74 61 72  |%-save_area_star|
00000b70  74 25 0d 04 ba 05 e1 0d  04 c4 04 0d 04 ce 11 dd  |t%..............|
00000b80  20 f2 73 61 76 65 5f 73  65 74 75 70 0d 04 d8 19  | .save_setup....|
00000b90  20 ea 20 73 61 76 65 24  2c 63 6f 75 6e 74 25 2c  | . save$,count%,|
00000ba0  73 61 76 65 25 0d 04 e2  0e 20 20 20 73 61 76 65  |save%....   save|
00000bb0  25 3d 30 0d 04 ec 19 20  20 e3 20 63 6f 75 6e 74  |%=0....  . count|
00000bc0  25 3d 30 20 b8 20 32 37  20 88 20 33 0d 04 f6 2c  |%=0 . 27 . 3...,|
00000bd0  20 20 20 e7 20 a4 67 65  74 5f 69 63 6f 6e 5f 74  |   . .get_icon_t|
00000be0  65 78 74 28 73 74 6f 72  65 25 2c 63 6f 75 6e 74  |ext(store%,count|
00000bf0  25 29 3c 3e 22 22 20 8c  0d 05 00 35 20 20 20 20  |%)<>"" ....5    |
00000c00  73 61 76 65 25 2b 3d a9  28 a4 67 65 74 5f 69 63  |save%+=.(.get_ic|
00000c10  6f 6e 5f 74 65 78 74 28  73 74 6f 72 65 25 2c 63  |on_text(store%,c|
00000c20  6f 75 6e 74 25 29 2b 22  20 3d 20 22 29 0d 05 0a  |ount%)+" = ")...|
00000c30  35 20 20 20 20 73 61 76  65 25 2b 3d a9 28 a4 67  |5    save%+=.(.g|
00000c40  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 73 74 6f  |et_icon_text(sto|
00000c50  72 65 25 2c 63 6f 75 6e  74 25 2b 32 29 2b bd 31  |re%,count%+2)+.1|
00000c60  33 29 0d 05 14 08 20 20  20 cd 0d 05 1e 0e 20 20  |3)....   .....  |
00000c70  ed 20 63 6f 75 6e 74 25  0d 05 28 23 20 73 61 76  |. count%..(# sav|
00000c80  65 24 3d a4 67 65 74 5f  69 63 6f 6e 5f 74 65 78  |e$=.get_icon_tex|
00000c90  74 28 6d 61 69 6e 25 2c  31 37 29 0d 05 32 16 20  |t(main%,17)..2. |
00000ca0  73 61 76 65 5f 64 61 74  61 5f 73 69 7a 65 25 3d  |save_data_size%=|
00000cb0  30 0d 05 3c 1a 20 73 61  76 65 5f 64 61 74 61 5f  |0..<. save_data_|
00000cc0  73 69 7a 65 25 3d 73 61  76 65 25 0d 05 46 1b 20  |size%=save%..F. |
00000cd0  74 65 6d 70 25 3d 73 61  76 65 5f 61 72 65 61 5f  |temp%=save_area_|
00000ce0  73 74 61 72 74 25 0d 05  50 19 20 e7 20 73 61 76  |start%..P. . sav|
00000cf0  65 5f 73 65 6c 65 63 74  65 64 25 3d a3 20 8c 0d  |e_selected%=. ..|
00000d00  05 5a 19 20 20 e3 20 63  6f 75 6e 74 25 3d 30 20  |.Z.  . count%=0 |
00000d10  b8 20 32 37 20 88 20 33  0d 05 64 2c 20 20 20 e7  |. 27 . 3..d,   .|
00000d20  20 a4 67 65 74 5f 69 63  6f 6e 5f 74 65 78 74 28  | .get_icon_text(|
00000d30  73 74 6f 72 65 25 2c 63  6f 75 6e 74 25 29 3c 3e  |store%,count%)<>|
00000d40  22 22 20 8c 0d 05 6e 11  20 20 20 20 24 74 65 6d  |"" ...n.    $tem|
00000d50  70 25 3d 22 22 0d 05 78  57 20 20 20 20 24 74 65  |p%=""..xW    $te|
00000d60  6d 70 25 2b 3d 28 a4 67  65 74 5f 69 63 6f 6e 5f  |mp%+=(.get_icon_|
00000d70  74 65 78 74 28 73 74 6f  72 65 25 2c 63 6f 75 6e  |text(store%,coun|
00000d80  74 25 29 2b 22 20 3d 20  22 29 2b 28 a4 67 65 74  |t%)+" = ")+(.get|
00000d90  5f 69 63 6f 6e 5f 74 65  78 74 28 73 74 6f 72 65  |_icon_text(store|
00000da0  25 2c 63 6f 75 6e 74 25  2b 32 29 29 0d 05 82 14  |%,count%+2))....|
00000db0  20 20 20 20 24 74 65 6d  70 25 2b 3d bd 26 30 41  |    $temp%+=.&0A|
00000dc0  0d 05 8c 1e 20 20 20 20  20 74 65 6d 70 25 3d 74  |....     temp%=t|
00000dd0  65 6d 70 25 2b 20 a9 20  24 74 65 6d 70 25 0d 05  |emp%+ . $temp%..|
00000de0  96 08 20 20 20 cd 0d 05  a0 0e 20 20 ed 20 63 6f  |..   .....  . co|
00000df0  75 6e 74 25 0d 05 aa 1a  20 20 e3 20 63 6f 75 6e  |unt%....  . coun|
00000e00  74 25 3d 33 37 20 b8 20  34 30 20 88 20 33 0d 05  |t%=37 . 40 . 3..|
00000e10  b4 2c 20 20 20 e7 20 a4  67 65 74 5f 69 63 6f 6e  |.,   . .get_icon|
00000e20  5f 74 65 78 74 28 73 74  6f 72 65 25 2c 63 6f 75  |_text(store%,cou|
00000e30  6e 74 25 29 3c 3e 22 22  20 8c 0d 05 be 11 20 20  |nt%)<>"" .....  |
00000e40  20 20 24 74 65 6d 70 25  3d 22 22 0d 05 c8 57 20  |  $temp%=""...W |
00000e50  20 20 20 24 74 65 6d 70  25 2b 3d 28 a4 67 65 74  |   $temp%+=(.get|
00000e60  5f 69 63 6f 6e 5f 74 65  78 74 28 73 74 6f 72 65  |_icon_text(store|
00000e70  25 2c 63 6f 75 6e 74 25  29 2b 22 20 3d 20 22 29  |%,count%)+" = ")|
00000e80  2b 28 a4 67 65 74 5f 69  63 6f 6e 5f 74 65 78 74  |+(.get_icon_text|
00000e90  28 73 74 6f 72 65 25 2c  63 6f 75 6e 74 25 2b 32  |(store%,count%+2|
00000ea0  29 29 0d 05 d2 14 20 20  20 20 24 74 65 6d 70 25  |))....    $temp%|
00000eb0  2b 3d bd 26 30 41 0d 05  dc 1e 20 20 20 20 20 74  |+=.&0A....     t|
00000ec0  65 6d 70 25 3d 74 65 6d  70 25 2b 20 a9 20 24 74  |emp%=temp%+ . $t|
00000ed0  65 6d 70 25 0d 05 e6 08  20 20 20 cd 0d 05 f0 0e  |emp%....   .....|
00000ee0  20 20 ed 20 63 6f 75 6e  74 25 0d 05 fa 06 20 cc  |  . count%.... .|
00000ef0  0d 06 04 0d 20 20 74 65  6d 70 25 3d 30 0d 06 0e  |....  temp%=0...|
00000f00  1c 20 20 74 65 6d 70 25  3d 73 61 76 65 5f 61 72  |.  temp%=save_ar|
00000f10  65 61 5f 73 74 61 72 74  25 0d 06 18 0f 20 20 24  |ea_start%....  $|
00000f20  74 65 6d 70 25 3d 22 22  0d 06 22 1a 20 20 20 e3  |temp%=""..".   .|
00000f30  20 63 6f 75 6e 74 25 3d  30 20 b8 20 32 37 20 88  | count%=0 . 27 .|
00000f40  20 33 0d 06 2c 4f 20 20  20 20 e7 20 a4 67 65 74  | 3..,O    . .get|
00000f50  5f 69 63 6f 6e 5f 74 65  78 74 28 73 74 6f 72 65  |_icon_text(store|
00000f60  25 2c 63 6f 75 6e 74 25  29 3c 3e 22 22 20 80 20  |%,count%)<>"" . |
00000f70  a4 69 63 6f 6e 5f 73 65  6c 65 63 74 65 64 28 73  |.icon_selected(s|
00000f80  74 6f 72 65 25 2c 63 6f  75 6e 74 25 29 3d b9 20  |tore%,count%)=. |
00000f90  8c 0d 06 36 12 20 20 20  20 20 24 74 65 6d 70 25  |...6.     $temp%|
00000fa0  3d 22 22 0d 06 40 58 20  20 20 20 20 24 74 65 6d  |=""..@X     $tem|
00000fb0  70 25 2b 3d 28 a4 67 65  74 5f 69 63 6f 6e 5f 74  |p%+=(.get_icon_t|
00000fc0  65 78 74 28 73 74 6f 72  65 25 2c 63 6f 75 6e 74  |ext(store%,count|
00000fd0  25 29 2b 22 20 3d 20 22  29 2b 28 a4 67 65 74 5f  |%)+" = ")+(.get_|
00000fe0  69 63 6f 6e 5f 74 65 78  74 28 73 74 6f 72 65 25  |icon_text(store%|
00000ff0  2c 63 6f 75 6e 74 25 2b  32 29 29 0d 06 4a 15 20  |,count%+2))..J. |
00001000  20 20 20 20 24 74 65 6d  70 25 2b 3d bd 26 30 41  |    $temp%+=.&0A|
00001010  0d 06 54 19 20 20 20 20  20 74 65 6d 70 25 2b 3d  |..T.     temp%+=|
00001020  20 a9 20 24 74 65 6d 70  25 0d 06 5e 09 20 20 20  | . $temp%..^.   |
00001030  20 cd 0d 06 68 0f 20 20  20 ed 20 63 6f 75 6e 74  | ...h.   . count|
00001040  25 0d 06 72 1b 20 20 20  e3 20 63 6f 75 6e 74 25  |%..r.   . count%|
00001050  3d 33 37 20 b8 20 34 30  20 88 20 33 0d 06 7c 4f  |=37 . 40 . 3..|O|
00001060  20 20 20 20 e7 20 a4 67  65 74 5f 69 63 6f 6e 5f  |    . .get_icon_|
00001070  74 65 78 74 28 73 74 6f  72 65 25 2c 63 6f 75 6e  |text(store%,coun|
00001080  74 25 29 3c 3e 22 22 20  80 20 a4 69 63 6f 6e 5f  |t%)<>"" . .icon_|
00001090  73 65 6c 65 63 74 65 64  28 73 74 6f 72 65 25 2c  |selected(store%,|
000010a0  63 6f 75 6e 74 25 29 3d  b9 20 8c 0d 06 86 12 20  |count%)=. ..... |
000010b0  20 20 20 20 24 74 65 6d  70 25 3d 22 22 0d 06 90  |    $temp%=""...|
000010c0  58 20 20 20 20 20 24 74  65 6d 70 25 2b 3d 28 a4  |X     $temp%+=(.|
000010d0  67 65 74 5f 69 63 6f 6e  5f 74 65 78 74 28 73 74  |get_icon_text(st|
000010e0  6f 72 65 25 2c 63 6f 75  6e 74 25 29 2b 22 20 3d  |ore%,count%)+" =|
000010f0  20 22 29 2b 28 a4 67 65  74 5f 69 63 6f 6e 5f 74  | ")+(.get_icon_t|
00001100  65 78 74 28 73 74 6f 72  65 25 2c 63 6f 75 6e 74  |ext(store%,count|
00001110  25 2b 32 29 29 0d 06 9a  15 20 20 20 20 20 24 74  |%+2))....     $t|
00001120  65 6d 70 25 2b 3d bd 26  30 41 0d 06 a4 19 20 20  |emp%+=.&0A....  |
00001130  20 20 20 74 65 6d 70 25  2b 3d 20 a9 20 24 74 65  |   temp%+= . $te|
00001140  6d 70 25 0d 06 ae 09 20  20 20 20 cd 0d 06 b8 0f  |mp%....    .....|
00001150  20 20 20 ed 20 63 6f 75  6e 74 25 0d 06 c2 2a 73  |   . count%...*s|
00001160  61 76 65 5f 64 61 74 61  5f 73 69 7a 65 25 3d 74  |ave_data_size%=t|
00001170  65 6d 70 25 2d 73 61 76  65 5f 61 72 65 61 5f 73  |emp%-save_area_s|
00001180  74 61 72 74 25 0d 06 cc  06 20 cd 0d 06 d6 05 e1  |tart%.... ......|
00001190  0d 06 e0 04 0d 06 ea 15  dd 20 f2 73 61 76 65 5f  |......... .save_|
000011a0  63 73 76 5f 73 65 74 75  70 0d 06 f4 3e 20 ea 20  |csv_setup...> . |
000011b0  73 61 76 65 24 2c 63 6f  75 6e 74 25 2c 73 61 76  |save$,count%,sav|
000011c0  65 25 2c 63 6f 75 6e 74  5f 61 67 61 69 6e 25 2c  |e%,count_again%,|
000011d0  74 65 78 74 24 2c 70 6f  73 25 2c 66 69 78 25 2c  |text$,pos%,fix%,|
000011e0  72 65 70 65 61 74 25 0d  06 fe 0e 20 20 20 73 61  |repeat%....   sa|
000011f0  76 65 25 3d 30 0d 07 08  0f 20 20 72 65 70 65 61  |ve%=0....  repea|
00001200  74 25 3d 30 0d 07 12 0e  20 20 20 20 66 69 78 25  |t%=0....    fix%|
00001210  3d a3 0d 07 1c 13 20 63  6f 75 6e 74 5f 61 67 61  |=..... count_aga|
00001220  69 6e 25 3d 30 0d 07 26  1c e7 20 73 61 76 65 5f  |in%=0..&.. save_|
00001230  63 73 76 5f 73 65 6c 65  63 74 65 64 25 3d a3 20  |csv_selected%=. |
00001240  8c 0d 07 30 0c 20 74 65  6d 70 25 3d 30 0d 07 3a  |...0. temp%=0..:|
00001250  16 20 73 61 76 65 5f 64  61 74 61 5f 73 69 7a 65  |. save_data_size|
00001260  25 3d 30 0d 07 44 1a 20  73 61 76 65 5f 64 61 74  |%=0..D. save_dat|
00001270  61 5f 73 69 7a 65 25 3d  73 61 76 65 25 0d 07 4e  |a_size%=save%..N|
00001280  1b 20 74 65 6d 70 25 3d  73 61 76 65 5f 61 72 65  |. temp%=save_are|
00001290  61 5f 73 74 61 72 74 25  0d 07 58 0e 20 24 74 65  |a_start%..X. $te|
000012a0  6d 70 25 3d 22 22 0d 07  62 1a e7 20 68 65 61 64  |mp%=""..b.. head|
000012b0  69 6e 67 24 3d 22 68 65  61 64 69 6e 67 22 20 8c  |ing$="heading" .|
000012c0  0d 07 6c 27 20 24 74 65  6d 70 25 2b 3d 22 22 22  |..l' $temp%+="""|
000012d0  22 2b 68 65 61 64 69 6e  67 5f 6f 6e 65 24 2b 22  |"+heading_one$+"|
000012e0  22 22 22 2b 22 2c 22 0d  07 76 15 20 20 74 65 6d  |"""+","..v.  tem|
000012f0  70 25 2b 3d a9 20 24 74  65 6d 70 25 0d 07 80 27  |p%+=. $temp%...'|
00001300  20 24 74 65 6d 70 25 2b  3d 22 22 22 22 2b 68 65  | $temp%+=""""+he|
00001310  61 64 69 6e 67 5f 74 77  6f 24 2b 22 22 22 22 2b  |ading_two$+""""+|
00001320  22 2c 22 0d 07 8a 15 20  20 74 65 6d 70 25 2b 3d  |","....  temp%+=|
00001330  a9 20 24 74 65 6d 70 25  0d 07 94 29 20 24 74 65  |. $temp%...) $te|
00001340  6d 70 25 2b 3d 22 22 22  22 2b 68 65 61 64 69 6e  |mp%+=""""+headin|
00001350  67 5f 74 68 72 65 65 24  2b 22 22 22 22 2b 22 2c  |g_three$+""""+",|
00001360  22 0d 07 9e 15 20 20 74  65 6d 70 25 2b 3d a9 20  |"....  temp%+=. |
00001370  24 74 65 6d 70 25 0d 07  a8 29 20 24 74 65 6d 70  |$temp%...) $temp|
00001380  25 2b 3d 22 22 22 22 2b  68 65 61 64 69 6e 67 5f  |%+=""""+heading_|
00001390  66 6f 75 72 24 2b 22 22  22 22 2b bd 26 30 41 0d  |four$+""""+.&0A.|
000013a0  07 b2 05 cd 0d 07 bc 17  20 20 20 20 74 65 6d 70  |........    temp|
000013b0  25 2b 3d a9 20 24 74 65  6d 70 25 0d 07 c6 14 20  |%+=. $temp%.... |
000013c0  e3 20 72 65 70 65 61 74  25 3d 31 20 b8 20 32 0d  |. repeat%=1 . 2.|
000013d0  07 d0 27 20 20 e7 20 72  65 70 65 61 74 25 3d 31  |..'  . repeat%=1|
000013e0  20 8c 20 e3 20 63 6f 75  6e 74 25 3d 30 20 b8 20  | . . count%=0 . |
000013f0  32 37 20 88 20 33 0d 07  da 28 20 20 e7 20 72 65  |27 . 3...(  . re|
00001400  70 65 61 74 25 3d 32 20  8c 20 e3 20 63 6f 75 6e  |peat%=2 . . coun|
00001410  74 25 3d 33 37 20 b8 20  34 30 20 88 20 33 0d 07  |t%=37 . 40 . 3..|
00001420  e4 2c 20 20 20 e7 20 a4  67 65 74 5f 69 63 6f 6e  |.,   . .get_icon|
00001430  5f 74 65 78 74 28 73 74  6f 72 65 25 2c 63 6f 75  |_text(store%,cou|
00001440  6e 74 25 29 3c 3e 22 22  20 8c 0d 07 ee 17 20 20  |nt%)<>"" .....  |
00001450  20 20 74 65 6d 70 25 2b  3d a9 20 24 74 65 6d 70  |  temp%+=. $temp|
00001460  25 0d 07 f8 2b 20 20 20  20 74 65 78 74 24 3d a4  |%...+    text$=.|
00001470  67 65 74 5f 69 63 6f 6e  5f 74 65 78 74 28 73 74  |get_icon_text(st|
00001480  6f 72 65 25 2c 63 6f 75  6e 74 25 29 0d 08 02 16  |ore%,count%)....|
00001490  20 20 20 20 63 6f 75 6e  74 5f 61 67 61 69 6e 25  |    count_again%|
000014a0  3d 30 0d 08 0c 0e 20 20  20 20 70 6f 73 25 3d 30  |=0....    pos%=0|
000014b0  0d 08 16 08 20 20 20 f5  0d 08 20 17 20 20 20 20  |....   ... .    |
000014c0  63 6f 75 6e 74 5f 61 67  61 69 6e 25 2b 3d 31 0d  |count_again%+=1.|
000014d0  08 2a 44 20 20 20 20 20  e7 20 97 20 c2 74 65 78  |.*D     . . .tex|
000014e0  74 24 2c 63 6f 75 6e 74  5f 61 67 61 69 6e 25 29  |t$,count_again%)|
000014f0  3e 26 34 30 20 80 20 97  20 c2 74 65 78 74 24 2c  |>&40 . . .text$,|
00001500  63 6f 75 6e 74 5f 61 67  61 69 6e 25 29 3c 26 35  |count_again%)<&5|
00001510  42 20 8c 0d 08 34 1b 20  20 20 20 20 20 70 6f 73  |B ...4.      pos|
00001520  25 3d 63 6f 75 6e 74 5f  61 67 61 69 6e 25 0d 08  |%=count_again%..|
00001530  3e 0a 20 20 20 20 20 cd  0d 08 48 31 20 20 20 20  |>.     ...H1    |
00001540  20 20 e7 20 63 6f 75 6e  74 5f 61 67 61 69 6e 25  |  . count_again%|
00001550  3e 33 30 20 8c 20 70 6f  73 25 3d a9 20 74 65 78  |>30 . pos%=. tex|
00001560  74 24 3a 66 69 78 25 3d  b9 0d 08 52 0f 20 20 20  |t$:fix%=...R.   |
00001570  fd 20 70 6f 73 25 3e 30  0d 08 5c 12 20 20 20 20  |. pos%>0..\.    |
00001580  e7 20 66 69 78 25 3d a3  20 8c 0d 08 66 48 20 20  |. fix%=. ...fH  |
00001590  20 20 20 24 74 65 6d 70  25 2b 3d c0 74 65 78 74  |   $temp%+=.text|
000015a0  24 2c a9 20 74 65 78 74  24 2d 28 70 6f 73 25 2b  |$,. text$-(pos%+|
000015b0  31 29 29 2b 22 2c 22 2b  22 22 22 22 2b c2 74 65  |1))+","+""""+.te|
000015c0  78 74 24 2c 70 6f 73 25  29 2b 22 22 22 22 2b 22  |xt$,pos%)+""""+"|
000015d0  2c 22 0d 08 70 09 20 20  20 20 cc 0d 08 7a 1b 20  |,"..p.    ...z. |
000015e0  20 20 20 20 24 74 65 6d  70 25 2b 3d 74 65 78 74  |    $temp%+=text|
000015f0  24 2b 22 2c 2c 22 0d 08  84 09 20 20 20 20 cd 0d  |$+",,"....    ..|
00001600  08 8e 18 20 20 20 20 20  74 65 6d 70 25 2b 3d a9  |...     temp%+=.|
00001610  20 24 74 65 6d 70 25 0d  08 98 04 0d 08 a2 2e 20  | $temp%........ |
00001620  20 20 20 20 74 65 78 74  24 3d a4 67 65 74 5f 69  |    text$=.get_i|
00001630  63 6f 6e 5f 74 65 78 74  28 73 74 6f 72 65 25 2c  |con_text(store%,|
00001640  63 6f 75 6e 74 25 2b 32  29 0d 08 ac 17 20 20 20  |count%+2)....   |
00001650  20 20 63 6f 75 6e 74 5f  61 67 61 69 6e 25 3d 30  |  count_again%=0|
00001660  0d 08 b6 0f 20 20 20 20  20 70 6f 73 25 3d 30 0d  |....     pos%=0.|
00001670  08 c0 0f 20 20 20 20 20  66 69 78 25 3d a3 0d 08  |...     fix%=...|
00001680  ca 08 20 20 20 f5 0d 08  d4 18 20 20 20 20 20 63  |..   .....     c|
00001690  6f 75 6e 74 5f 61 67 61  69 6e 25 2b 3d 31 0d 08  |ount_again%+=1..|
000016a0  de 45 20 20 20 20 20 20  e7 20 97 20 c2 74 65 78  |.E      . . .tex|
000016b0  74 24 2c 63 6f 75 6e 74  5f 61 67 61 69 6e 25 29  |t$,count_again%)|
000016c0  3e 26 34 30 20 80 20 97  20 c2 74 65 78 74 24 2c  |>&40 . . .text$,|
000016d0  63 6f 75 6e 74 5f 61 67  61 69 6e 25 29 3c 26 35  |count_again%)<&5|
000016e0  42 20 8c 0d 08 e8 1c 20  20 20 20 20 20 20 70 6f  |B .....       po|
000016f0  73 25 3d 63 6f 75 6e 74  5f 61 67 61 69 6e 25 0d  |s%=count_again%.|
00001700  08 f2 0b 20 20 20 20 20  20 cd 0d 08 fc 31 20 20  |...      ....1  |
00001710  20 20 20 20 e7 20 63 6f  75 6e 74 5f 61 67 61 69  |    . count_agai|
00001720  6e 25 3e 33 30 20 8c 20  70 6f 73 25 3d a9 20 74  |n%>30 . pos%=. t|
00001730  65 78 74 24 3a 66 69 78  25 3d b9 0d 09 06 0f 20  |ext$:fix%=..... |
00001740  20 20 fd 20 70 6f 73 25  3e 30 0d 09 10 12 20 20  |  . pos%>0....  |
00001750  20 20 e7 20 66 69 78 25  3d a3 20 8c 0d 09 1a 49  |  . fix%=. ....I|
00001760  20 20 20 20 20 24 74 65  6d 70 25 2b 3d c0 74 65  |     $temp%+=.te|
00001770  78 74 24 2c a9 20 74 65  78 74 24 2d 28 70 6f 73  |xt$,. text$-(pos|
00001780  25 2b 31 29 29 2b 22 2c  22 2b 22 22 22 22 2b c2  |%+1))+","+""""+.|
00001790  74 65 78 74 24 2c 70 6f  73 25 29 2b 22 22 22 22  |text$,pos%)+""""|
000017a0  2b bd 26 30 41 0d 09 24  09 20 20 20 20 cc 0d 09  |+.&0A..$.    ...|
000017b0  2e 1f 20 20 20 20 20 24  74 65 6d 70 25 2b 3d 74  |..     $temp%+=t|
000017c0  65 78 74 24 2b 22 2c 22  2b bd 26 30 41 0d 09 38  |ext$+","+.&0A..8|
000017d0  09 20 20 20 20 cd 0d 09  42 19 20 20 20 20 20 74  |.    ...B.     t|
000017e0  65 6d 70 25 2b 3d 20 a9  20 24 74 65 6d 70 25 0d  |emp%+= . $temp%.|
000017f0  09 4c 08 20 20 20 cd 0d  09 56 0e 20 20 ed 20 63  |.L.   ...V.  . c|
00001800  6f 75 6e 74 25 0d 09 60  0f 20 20 ed 20 72 65 70  |ount%..`.  . rep|
00001810  65 61 74 25 0d 09 6a 2d  20 20 20 73 61 76 65 5f  |eat%..j-   save_|
00001820  64 61 74 61 5f 73 69 7a  65 25 3d 74 65 6d 70 25  |data_size%=temp%|
00001830  2d 73 61 76 65 5f 61 72  65 61 5f 73 74 61 72 74  |-save_area_start|
00001840  25 0d 09 74 07 20 20 cc  0d 09 7e 0e 20 20 20 74  |%..t.  ...~.   t|
00001850  65 6d 70 25 3d 30 0d 09  88 18 20 20 20 73 61 76  |emp%=0....   sav|
00001860  65 5f 64 61 74 61 5f 73  69 7a 65 25 3d 30 0d 09  |e_data_size%=0..|
00001870  92 1c 20 20 20 73 61 76  65 5f 64 61 74 61 5f 73  |..   save_data_s|
00001880  69 7a 65 25 3d 73 61 76  65 25 0d 09 9c 1d 20 20  |ize%=save%....  |
00001890  20 74 65 6d 70 25 3d 73  61 76 65 5f 61 72 65 61  | temp%=save_area|
000018a0  5f 73 74 61 72 74 25 0d  09 a6 10 20 20 20 24 74  |_start%....   $t|
000018b0  65 6d 70 25 3d 22 22 0d  09 b0 29 20 20 20 24 74  |emp%=""...)   $t|
000018c0  65 6d 70 25 2b 3d 22 22  22 22 2b 68 65 61 64 69  |emp%+=""""+headi|
000018d0  6e 67 5f 6f 6e 65 24 2b  22 22 22 22 2b 22 2c 22  |ng_one$+""""+","|
000018e0  0d 09 ba 16 20 20 20 74  65 6d 70 25 2b 3d a9 20  |....   temp%+=. |
000018f0  24 74 65 6d 70 25 0d 09  c4 29 20 20 20 24 74 65  |$temp%...)   $te|
00001900  6d 70 25 2b 3d 22 22 22  22 2b 68 65 61 64 69 6e  |mp%+=""""+headin|
00001910  67 5f 74 77 6f 24 2b 22  22 22 22 2b 22 2c 22 0d  |g_two$+""""+",".|
00001920  09 ce 16 20 20 20 74 65  6d 70 25 2b 3d a9 20 24  |...   temp%+=. $|
00001930  74 65 6d 70 25 0d 09 d8  2b 20 20 20 24 74 65 6d  |temp%...+   $tem|
00001940  70 25 2b 3d 22 22 22 22  2b 68 65 61 64 69 6e 67  |p%+=""""+heading|
00001950  5f 74 68 72 65 65 24 2b  22 22 22 22 2b 22 2c 22  |_three$+""""+","|
00001960  0d 09 e2 16 20 20 20 74  65 6d 70 25 2b 3d a9 20  |....   temp%+=. |
00001970  24 74 65 6d 70 25 0d 09  ec 2b 20 20 20 24 74 65  |$temp%...+   $te|
00001980  6d 70 25 2b 3d 22 22 22  22 2b 68 65 61 64 69 6e  |mp%+=""""+headin|
00001990  67 5f 66 6f 75 72 24 2b  22 22 22 22 2b bd 26 30  |g_four$+""""+.&0|
000019a0  41 0d 09 f6 16 20 20 20  74 65 6d 70 25 2b 3d a9  |A....   temp%+=.|
000019b0  20 24 74 65 6d 70 25 0d  0a 00 14 20 e3 20 72 65  | $temp%.... . re|
000019c0  70 65 61 74 25 3d 31 20  b8 20 32 0d 0a 0a 27 20  |peat%=1 . 2...' |
000019d0  20 e7 20 72 65 70 65 61  74 25 3d 31 20 8c 20 e3  | . repeat%=1 . .|
000019e0  20 63 6f 75 6e 74 25 3d  30 20 b8 20 32 37 20 88  | count%=0 . 27 .|
000019f0  20 33 0d 0a 14 28 20 20  e7 20 72 65 70 65 61 74  | 3...(  . repeat|
00001a00  25 3d 32 20 8c 20 e3 20  63 6f 75 6e 74 25 3d 33  |%=2 . . count%=3|
00001a10  37 20 b8 20 34 30 20 88  20 33 0d 0a 1e 4e 20 20  |7 . 40 . 3...N  |
00001a20  20 e7 20 a4 67 65 74 5f  69 63 6f 6e 5f 74 65 78  | . .get_icon_tex|
00001a30  74 28 73 74 6f 72 65 25  2c 63 6f 75 6e 74 25 29  |t(store%,count%)|
00001a40  3c 3e 22 22 20 80 20 a4  69 63 6f 6e 5f 73 65 6c  |<>"" . .icon_sel|
00001a50  65 63 74 65 64 28 73 74  6f 72 65 25 2c 63 6f 75  |ected(store%,cou|
00001a60  6e 74 25 29 3d b9 20 8c  0d 0a 28 17 20 20 20 20  |nt%)=. ...(.    |
00001a70  74 65 6d 70 25 2b 3d a9  20 24 74 65 6d 70 25 0d  |temp%+=. $temp%.|
00001a80  0a 32 2b 20 20 20 20 74  65 78 74 24 3d a4 67 65  |.2+    text$=.ge|
00001a90  74 5f 69 63 6f 6e 5f 74  65 78 74 28 73 74 6f 72  |t_icon_text(stor|
00001aa0  65 25 2c 63 6f 75 6e 74  25 29 0d 0a 3c 16 20 20  |e%,count%)..<.  |
00001ab0  20 20 63 6f 75 6e 74 5f  61 67 61 69 6e 25 3d 30  |  count_again%=0|
00001ac0  0d 0a 46 0e 20 20 20 20  66 69 78 25 3d a3 0d 0a  |..F.    fix%=...|
00001ad0  50 0e 20 20 20 20 70 6f  73 25 3d 30 0d 0a 5a 08  |P.    pos%=0..Z.|
00001ae0  20 20 20 f5 0d 0a 64 17  20 20 20 20 63 6f 75 6e  |   ...d.    coun|
00001af0  74 5f 61 67 61 69 6e 25  2b 3d 31 0d 0a 6e 44 20  |t_again%+=1..nD |
00001b00  20 20 20 20 e7 20 97 20  c2 74 65 78 74 24 2c 63  |    . . .text$,c|
00001b10  6f 75 6e 74 5f 61 67 61  69 6e 25 29 3e 26 34 30  |ount_again%)>&40|
00001b20  20 80 20 97 20 c2 74 65  78 74 24 2c 63 6f 75 6e  | . . .text$,coun|
00001b30  74 5f 61 67 61 69 6e 25  29 3c 26 35 42 20 8c 0d  |t_again%)<&5B ..|
00001b40  0a 78 1b 20 20 20 20 20  20 70 6f 73 25 3d 63 6f  |.x.      pos%=co|
00001b50  75 6e 74 5f 61 67 61 69  6e 25 0d 0a 82 0a 20 20  |unt_again%....  |
00001b60  20 20 20 cd 0d 0a 8c 31  20 20 20 20 20 20 e7 20  |   ....1      . |
00001b70  63 6f 75 6e 74 5f 61 67  61 69 6e 25 3e 33 30 20  |count_again%>30 |
00001b80  8c 20 70 6f 73 25 3d a9  20 74 65 78 74 24 3a 66  |. pos%=. text$:f|
00001b90  69 78 25 3d b9 0d 0a 96  0f 20 20 20 fd 20 70 6f  |ix%=.....   . po|
00001ba0  73 25 3e 30 0d 0a a0 11  20 20 20 e7 20 66 69 78  |s%>0....   . fix|
00001bb0  25 3d a3 20 8c 0d 0a aa  47 20 20 20 20 24 74 65  |%=. ....G    $te|
00001bc0  6d 70 25 2b 3d c0 74 65  78 74 24 2c a9 20 74 65  |mp%+=.text$,. te|
00001bd0  78 74 24 2d 28 70 6f 73  25 2b 31 29 29 2b 22 2c  |xt$-(pos%+1))+",|
00001be0  22 2b 22 22 22 22 2b c2  74 65 78 74 24 2c 70 6f  |"+""""+.text$,po|
00001bf0  73 25 29 2b 22 22 22 22  2b 22 2c 22 0d 0a b4 08  |s%)+""""+","....|
00001c00  20 20 20 cc 0d 0a be 1b  20 20 20 20 20 24 74 65  |   .....     $te|
00001c10  6d 70 25 2b 3d 74 65 78  74 24 2b 22 2c 2c 22 0d  |mp%+=text$+",,".|
00001c20  0a c8 08 20 20 20 cd 0d  0a d2 18 20 20 20 20 20  |...   .....     |
00001c30  74 65 6d 70 25 2b 3d a9  20 24 74 65 6d 70 25 0d  |temp%+=. $temp%.|
00001c40  0a dc 04 0d 0a e6 2e 20  20 20 20 20 74 65 78 74  |.......     text|
00001c50  24 3d a4 67 65 74 5f 69  63 6f 6e 5f 74 65 78 74  |$=.get_icon_text|
00001c60  28 73 74 6f 72 65 25 2c  63 6f 75 6e 74 25 2b 32  |(store%,count%+2|
00001c70  29 0d 0a f0 17 20 20 20  20 20 63 6f 75 6e 74 5f  |)....     count_|
00001c80  61 67 61 69 6e 25 3d 30  0d 0a fa 0f 20 20 20 20  |again%=0....    |
00001c90  20 70 6f 73 25 3d 30 0d  0b 04 0f 20 20 20 20 20  | pos%=0....     |
00001ca0  66 69 78 25 3d a3 0d 0b  0e 08 20 20 20 f5 0d 0b  |fix%=.....   ...|
00001cb0  18 18 20 20 20 20 20 63  6f 75 6e 74 5f 61 67 61  |..     count_aga|
00001cc0  69 6e 25 2b 3d 31 0d 0b  22 45 20 20 20 20 20 20  |in%+=1.."E      |
00001cd0  e7 20 97 20 c2 74 65 78  74 24 2c 63 6f 75 6e 74  |. . .text$,count|
00001ce0  5f 61 67 61 69 6e 25 29  3e 26 34 30 20 80 20 97  |_again%)>&40 . .|
00001cf0  20 c2 74 65 78 74 24 2c  63 6f 75 6e 74 5f 61 67  | .text$,count_ag|
00001d00  61 69 6e 25 29 3c 26 35  42 20 8c 0d 0b 2c 1c 20  |ain%)<&5B ...,. |
00001d10  20 20 20 20 20 20 70 6f  73 25 3d 63 6f 75 6e 74  |      pos%=count|
00001d20  5f 61 67 61 69 6e 25 0d  0b 36 0b 20 20 20 20 20  |_again%..6.     |
00001d30  20 cd 0d 0b 40 31 20 20  20 20 20 20 e7 20 63 6f  | ...@1      . co|
00001d40  75 6e 74 5f 61 67 61 69  6e 25 3e 33 30 20 8c 20  |unt_again%>30 . |
00001d50  70 6f 73 25 3d a9 20 74  65 78 74 24 3a 66 69 78  |pos%=. text$:fix|
00001d60  25 3d b9 0d 0b 4a 0f 20  20 20 fd 20 70 6f 73 25  |%=...J.   . pos%|
00001d70  3e 30 0d 0b 54 12 20 20  20 20 e7 20 66 69 78 25  |>0..T.    . fix%|
00001d80  3d a3 20 8c 0d 0b 5e 48  20 20 20 20 24 74 65 6d  |=. ...^H    $tem|
00001d90  70 25 2b 3d c0 74 65 78  74 24 2c a9 20 74 65 78  |p%+=.text$,. tex|
00001da0  74 24 2d 28 70 6f 73 25  2b 31 29 29 2b 22 2c 22  |t$-(pos%+1))+","|
00001db0  2b 22 22 22 22 2b c2 74  65 78 74 24 2c 70 6f 73  |+""""+.text$,pos|
00001dc0  25 29 2b 22 22 22 22 2b  bd 26 30 41 0d 0b 68 09  |%)+""""+.&0A..h.|
00001dd0  20 20 20 20 cc 0d 0b 72  1f 20 20 20 20 20 24 74  |    ...r.     $t|
00001de0  65 6d 70 25 2b 3d 74 65  78 74 24 2b 22 2c 22 2b  |emp%+=text$+","+|
00001df0  bd 26 30 41 0d 0b 7c 09  20 20 20 20 cd 0d 0b 86  |.&0A..|.    ....|
00001e00  19 20 20 20 20 20 74 65  6d 70 25 2b 3d 20 a9 20  |.     temp%+= . |
00001e10  24 74 65 6d 70 25 0d 0b  90 07 20 20 cd 0d 0b 9a  |$temp%....  ....|
00001e20  0d 20 ed 20 63 6f 75 6e  74 25 0d 0b a4 0d ed 20  |. . count%..... |
00001e30  72 65 70 65 61 74 25 0d  0b ae 2a 73 61 76 65 5f  |repeat%...*save_|
00001e40  64 61 74 61 5f 73 69 7a  65 25 3d 74 65 6d 70 25  |data_size%=temp%|
00001e50  2d 73 61 76 65 5f 61 72  65 61 5f 73 74 61 72 74  |-save_area_start|
00001e60  25 0d 0b b8 05 cd 0d 0b  c2 05 e1 0d 0b cc 04 0d  |%...............|
00001e70  0b d6 16 dd f2 64 65 66  69 6e 65 5f 76 61 72 69  |.....define_vari|
00001e80  61 62 6c 65 73 0d 0b e0  10 20 6e 65 67 61 74 69  |ables.... negati|
00001e90  76 65 25 3d a3 0d 0b ea  20 20 61 70 70 5f 73 70  |ve%=....  app_sp|
00001ea0  72 69 74 65 24 20 20 20  3d 22 21 43 6f 6e 76 65  |rite$   ="!Conve|
00001eb0  72 74 65 72 22 0d 0b f4  27 20 61 70 70 5f 6e 61  |rter"...' app_na|
00001ec0  6d 65 24 20 20 20 20 20  3d 22 44 65 73 6b 74 6f  |me$     ="Deskto|
00001ed0  70 20 43 6f 6e 76 65 72  74 65 72 22 0d 0b fe 25  |p Converter"...%|
00001ee0  20 61 70 70 5f 70 75 72  70 6f 73 65 24 20 20 3d  | app_purpose$  =|
00001ef0  22 55 6e 69 74 20 63 6f  6e 76 65 72 73 69 6f 6e  |"Unit conversion|
00001f00  22 0d 0c 08 24 20 61 70  70 5f 61 75 74 68 6f 72  |"...$ app_author|
00001f10  24 20 20 20 3d 22 54 68  6f 6d 61 73 20 42 61 6c  |$   ="Thomas Bal|
00001f20  64 77 69 6e 22 0d 0c 12  29 20 61 70 70 5f 76 65  |dwin"...) app_ve|
00001f30  72 73 69 6f 6e 24 20 20  3d 22 31 2e 30 37 2c 20  |rsion$  ="1.07, |
00001f40  46 65 62 72 75 61 72 79  20 31 39 39 35 22 0d 0c  |February 1995"..|
00001f50  1c 2b f4 20 20 4c 49 42  52 41 52 59 20 22 3c 4f  |.+.  LIBRARY "<O|
00001f60  62 65 79 24 44 69 72 3e  2e 4c 69 62 72 61 72 79  |bey$Dir>.Library|
00001f70  2e 57 69 6d 70 4c 69 62  22 0d 0c 26 30 20 61 70  |.WimpLib"..&0 ap|
00001f80  70 5f 64 69 72 65 63 74  6f 72 79 24 3d a4 73 79  |p_directory$=.sy|
00001f90  73 74 65 6d 5f 76 61 72  69 61 62 6c 65 28 22 4f  |stem_variable("O|
00001fa0  62 65 79 24 44 69 72 22  29 0d 0c 30 13 20 20 65  |bey$Dir")..0.  e|
00001fb0  72 72 6f 72 63 6f 75 6e  74 25 3d 30 0d 0c 3a 12  |rrorcount%=0..:.|
00001fc0  20 20 20 6d 65 6e 75 66  69 6c 65 25 3d 30 0d 0c  |   menufile%=0..|
00001fd0  44 14 20 20 20 20 69 63  6f 6e 5f 62 61 72 25 3d  |D.    icon_bar%=|
00001fe0  2d 32 0d 0c 4e 17 20 20  20 20 61 64 6a 75 73 74  |-2..N.    adjust|
00001ff0  5f 63 6c 69 63 6b 25 3d  31 0d 0c 58 15 20 20 20  |_click%=1..X.   |
00002000  20 6d 65 6e 75 5f 63 6c  69 63 6b 25 3d 32 0d 0c  | menu_click%=2..|
00002010  62 17 20 20 20 20 73 65  6c 65 63 74 5f 63 6c 69  |b.    select_cli|
00002020  63 6b 25 3d 34 0d 0c 6c  17 20 20 20 20 61 64 6a  |ck%=4..l.    adj|
00002030  75 73 74 5f 64 72 61 67  25 3d 31 36 0d 0c 76 17  |ust_drag%=16..v.|
00002040  20 20 20 20 73 65 6c 65  63 74 5f 64 72 61 67 25  |    select_drag%|
00002050  3d 36 34 0d 0c 80 13 20  20 20 70 6f 6c 6c 5f 6d  |=64....   poll_m|
00002060  61 73 6b 25 3d 30 0d 0c  8a 13 20 20 20 70 6f 6c  |ask%=0....   pol|
00002070  6c 5f 74 69 6d 65 25 3d  30 0d 0c 94 0d 20 20 71  |l_time%=0....  q|
00002080  75 69 74 25 3d a3 0d 0c  9e 0c 20 20 65 78 70 25  |uit%=.....  exp%|
00002090  3d 30 0d 0c a8 14 20 f2  6d 6f 72 65 5f 76 61 72  |=0.... .more_var|
000020a0  69 61 62 6c 65 73 0d 0c  b2 05 e1 0d 0c bc 04 0d  |iables..........|
000020b0  0c c6 14 dd f2 6d 6f 72  65 5f 76 61 72 69 61 62  |.....more_variab|
000020c0  6c 65 73 0d 0c d0 0e 20  6d 65 74 72 69 63 25 3d  |les.... metric%=|
000020d0  b9 0d 0c da 0d 20 20 74  79 70 65 25 3d 31 0d 0c  |.....  type%=1..|
000020e0  e4 12 20 72 65 66 5f 6e  75 6d 62 65 72 25 3d 32  |.. ref_number%=2|
000020f0  0d 0c ee 14 20 20 6d 65  6e 75 5f 6e 75 6d 62 65  |....  menu_numbe|
00002100  72 25 3d 33 0d 0c f8 18  20 20 6d 65 6d 6f 72 79  |r%=3....  memory|
00002110  5f 74 72 61 6e 73 66 65  72 25 3d b9 0d 0d 02 1a  |_transfer%=.....|
00002120  20 20 72 61 6d 5f 62 6c  6f 63 6b 5f 73 69 7a 65  |  ram_block_size|
00002130  25 3d 31 30 32 34 0d 0d  0c 0f 20 6f 6b 5f 69 63  |%=1024.... ok_ic|
00002140  6f 6e 25 3d 30 0d 0d 16  11 20 6e 61 6d 65 5f 69  |on%=0.... name_i|
00002150  63 6f 6e 25 3d 32 0d 0d  20 11 20 66 69 6c 65 5f  |con%=2.. . file_|
00002160  69 63 6f 6e 25 3d 33 0d  0d 2a 05 e1 0d 0d 34 04  |icon%=3..*....4.|
00002170  0d 0d 3e 12 dd f2 69 6e  73 74 61 6c 6c 5f 69 63  |..>...install_ic|
00002180  6f 6e 0d 0d 48 3b 20 69  63 6f 6e 5f 62 61 72 5f  |on..H; icon_bar_|
00002190  68 61 6e 64 6c 65 25 3d  a4 70 75 74 5f 69 63 6f  |handle%=.put_ico|
000021a0  6e 5f 6f 6e 5f 62 61 72  28 61 70 70 5f 73 70 72  |n_on_bar(app_spr|
000021b0  69 74 65 24 2c 22 52 49  47 48 54 22 29 0d 0d 52  |ite$,"RIGHT")..R|
000021c0  05 e1 0d 0d 5c 04 0d 0d  66 12 dd f2 6c 6f 61 64  |....\...f...load|
000021d0  5f 73 70 72 69 74 65 73  0d 0d 70 05 e1 0d 0d 7a  |_sprites..p....z|
000021e0  04 0d 0d 84 12 dd f2 6c  6f 61 64 5f 77 69 6e 64  |.......load_wind|
000021f0  6f 77 73 0d 0d 8e 1c 20  74 65 6d 70 6c 61 74 65  |ows.... template|
00002200  73 24 3d 22 2e 54 65 6d  70 6c 61 74 65 73 22 0d  |s$=".Templates".|
00002210  0d 98 44 20 e7 20 a4 73  79 73 74 65 6d 5f 76 61  |..D . .system_va|
00002220  72 69 61 62 6c 65 28 22  76 65 72 73 69 6f 6e 22  |riable("version"|
00002230  29 3d 22 54 52 55 45 22  20 8c 20 74 65 6d 70 6c  |)="TRUE" . templ|
00002240  61 74 65 73 24 3d 22 2e  54 65 6d 70 6c 61 74 65  |ates$=".Template|
00002250  73 32 22 0d 0d a2 4f 20  69 6e 66 6f 25 20 20 3d  |s2"...O info%  =|
00002260  a4 6e 65 77 5f 74 65 6d  70 6c 61 74 65 28 61 70  |.new_template(ap|
00002270  70 5f 64 69 72 65 63 74  6f 72 79 24 2b 74 65 6d  |p_directory$+tem|
00002280  70 6c 61 74 65 73 24 2c  22 69 6e 66 6f 22 2c 77  |plates$,"info",w|
00002290  6f 72 6b 66 72 65 65 25  2c 77 6f 72 6b 65 6e 64  |orkfree%,workend|
000022a0  25 29 0d 0d ac 4f 20 6d  61 69 6e 25 20 20 3d a4  |%)...O main%  =.|
000022b0  6e 65 77 5f 74 65 6d 70  6c 61 74 65 28 61 70 70  |new_template(app|
000022c0  5f 64 69 72 65 63 74 6f  72 79 24 2b 74 65 6d 70  |_directory$+temp|
000022d0  6c 61 74 65 73 24 2c 22  6d 61 69 6e 22 2c 77 6f  |lates$,"main",wo|
000022e0  72 6b 66 72 65 65 25 2c  77 6f 72 6b 65 6e 64 25  |rkfree%,workend%|
000022f0  29 0d 0d b6 4f 20 6f 70  74 25 3d a4 6e 65 77 5f  |)...O opt%=.new_|
00002300  74 65 6d 70 6c 61 74 65  28 61 70 70 5f 64 69 72  |template(app_dir|
00002310  65 63 74 6f 72 79 24 2b  74 65 6d 70 6c 61 74 65  |ectory$+template|
00002320  73 24 2c 22 6f 70 74 69  6f 6e 73 22 2c 77 6f 72  |s$,"options",wor|
00002330  6b 66 72 65 65 25 2c 77  6f 72 6b 65 6e 64 25 29  |kfree%,workend%)|
00002340  0d 0d c0 4f 20 73 61 76  65 25 20 20 3d a4 6e 65  |...O save%  =.ne|
00002350  77 5f 74 65 6d 70 6c 61  74 65 28 61 70 70 5f 64  |w_template(app_d|
00002360  69 72 65 63 74 6f 72 79  24 2b 74 65 6d 70 6c 61  |irectory$+templa|
00002370  74 65 73 24 2c 22 73 61  76 65 22 2c 77 6f 72 6b  |tes$,"save",work|
00002380  66 72 65 65 25 2c 77 6f  72 6b 65 6e 64 25 29 0d  |free%,workend%).|
00002390  0d ca 50 20 73 74 6f 72  65 25 20 3d a4 6e 65 77  |..P store% =.new|
000023a0  5f 74 65 6d 70 6c 61 74  65 28 61 70 70 5f 64 69  |_template(app_di|
000023b0  72 65 63 74 6f 72 79 24  2b 74 65 6d 70 6c 61 74  |rectory$+templat|
000023c0  65 73 24 2c 22 73 74 6f  72 65 22 2c 77 6f 72 6b  |es$,"store",work|
000023d0  66 72 65 65 25 2c 77 6f  72 6b 65 6e 64 25 29 0d  |free%,workend%).|
000023e0  0d d4 57 20 73 61 76 65  5f 63 73 76 25 20 20 3d  |..W save_csv%  =|
000023f0  a4 6e 65 77 5f 74 65 6d  70 6c 61 74 65 28 61 70  |.new_template(ap|
00002400  70 5f 64 69 72 65 63 74  6f 72 79 24 2b 74 65 6d  |p_directory$+tem|
00002410  70 6c 61 74 65 73 24 2c  22 73 61 76 65 5f 63 73  |plates$,"save_cs|
00002420  76 22 2c 77 6f 72 6b 66  72 65 65 25 2c 77 6f 72  |v",workfree%,wor|
00002430  6b 65 6e 64 25 29 0d 0d  de 51 20 6d 61 74 68 73  |kend%)...Q maths|
00002440  25 20 3d 20 a4 6e 65 77  5f 74 65 6d 70 6c 61 74  |% = .new_templat|
00002450  65 28 61 70 70 5f 64 69  72 65 63 74 6f 72 79 24  |e(app_directory$|
00002460  2b 74 65 6d 70 6c 61 74  65 73 24 2c 22 4d 61 74  |+templates$,"Mat|
00002470  68 73 22 2c 77 6f 72 6b  66 72 65 65 25 2c 77 6f  |hs",workfree%,wo|
00002480  72 6b 65 6e 64 25 29 0d  0d e8 05 e1 0d 0d f2 04  |rkend%).........|
00002490  0d 0d fc 14 dd f2 63 72  65 61 74 65 5f 77 69 6e  |......create_win|
000024a0  64 6f 77 73 0d 0e 06 05  e1 0d 0e 10 04 0d 0e 1a  |dows............|
000024b0  0a dd f2 69 6e 66 6f 0d  0e 24 4a 20 f2 70 75 74  |...info..$J .put|
000024c0  5f 69 6e 66 6f 5f 74 65  78 74 28 69 6e 66 6f 25  |_info_text(info%|
000024d0  2c 61 70 70 5f 6e 61 6d  65 24 2c 61 70 70 5f 70  |,app_name$,app_p|
000024e0  75 72 70 6f 73 65 24 2c  61 70 70 5f 61 75 74 68  |urpose$,app_auth|
000024f0  6f 72 24 2c 61 70 70 5f  76 65 72 73 69 6f 6e 24  |or$,app_version$|
00002500  29 0d 0e 2e 05 e1 0d 0e  38 04 0d 0e 42 0b dd f2  |).......8...B...|
00002510  6d 65 6e 75 73 0d 0e 4c  29 20 f2 6c 6f 61 64 5f  |menus..L) .load_|
00002520  6d 65 6e 75 73 28 61 70  70 5f 64 69 72 65 63 74  |menus(app_direct|
00002530  6f 72 79 24 2b 22 2e 6d  65 6e 75 73 22 29 0d 0e  |ory$+".menus")..|
00002540  56 05 e1 0d 0e 60 04 0d  0e 6a 0f dd f2 77 69 6d  |V....`...j...wim|
00002550  70 5f 70 6f 6c 6c 0d 0e  74 06 20 f5 0d 0e 7e 3b  |p_poll..t. ...~;|
00002560  20 20 c8 99 22 57 69 6d  70 5f 50 6f 6c 6c 49 64  |  .."Wimp_PollId|
00002570  6c 65 22 2c 70 6f 6c 6c  5f 6d 61 73 6b 25 2c 62  |le",poll_mask%,b|
00002580  6c 6b 25 2c 70 6f 6c 6c  5f 74 69 6d 65 25 20 b8  |lk%,poll_time% .|
00002590  20 65 76 65 6e 74 25 0d  0e 88 12 20 20 20 c8 8e  | event%....   ..|
000025a0  20 65 76 65 6e 74 25 20  ca 0d 0e 92 0b 20 20 20  | event% .....   |
000025b0  20 c9 20 30 0d 0e 9c 0b  20 20 20 20 c9 20 31 0d  | . 0....    . 1.|
000025c0  0e a6 17 20 20 20 20 20  f2 72 65 64 72 61 77 5f  |...     .redraw_|
000025d0  77 69 6e 64 6f 77 0d 0e  b0 0b 20 20 20 20 c9 20  |window....    . |
000025e0  32 0d 0e ba 1b 20 20 20  20 20 f2 6f 70 65 6e 5f  |2....     .open_|
000025f0  77 69 6e 64 6f 77 5f 65  76 65 6e 74 0d 0e c4 0b  |window_event....|
00002600  20 20 20 20 c9 20 33 0d  0e ce 2d 20 20 20 20 20  |    . 3...-     |
00002610  77 69 6e 64 6f 77 25 3d  21 62 6c 6b 25 3a f2 63  |window%=!blk%:.c|
00002620  6c 6f 73 65 5f 77 69 6e  64 6f 77 28 77 69 6e 64  |lose_window(wind|
00002630  6f 77 25 29 0d 0e d8 0b  20 20 20 20 c9 20 34 0d  |ow%)....    . 4.|
00002640  0e e2 15 20 20 20 20 20  f2 70 6f 69 6e 74 65 72  |...     .pointer|
00002650  5f 6f 75 74 0d 0e ec 0b  20 20 20 20 c9 20 35 0d  |_out....    . 5.|
00002660  0e f6 14 20 20 20 20 20  f2 70 6f 69 6e 74 65 72  |...     .pointer|
00002670  5f 69 6e 0d 0f 00 0b 20  20 20 20 c9 20 36 0d 0f  |_in....    . 6..|
00002680  0a 16 20 20 20 20 20 f2  6d 6f 75 73 65 5f 62 75  |..     .mouse_bu|
00002690  74 74 6f 6e 0d 0f 14 0b  20 20 20 20 c9 20 37 0d  |tton....    . 7.|
000026a0  0f 1e 13 20 20 20 20 20  f2 64 72 61 67 5f 6f 76  |...     .drag_ov|
000026b0  65 72 0d 0f 28 0b 20 20  20 20 c9 20 38 0d 0f 32  |er..(.    . 8..2|
000026c0  13 20 20 20 20 20 f2 6b  65 79 5f 70 72 65 73 73  |.     .key_press|
000026d0  0d 0f 3c 0b 20 20 20 20  c9 20 39 0d 0f 46 18 20  |..<.    . 9..F. |
000026e0  20 20 20 20 f2 6d 65 6e  75 5f 73 65 6c 65 63 74  |    .menu_select|
000026f0  69 6f 6e 0d 0f 50 0b 20  20 20 20 c9 31 30 0d 0f  |ion..P.    .10..|
00002700  5a 18 20 20 20 20 20 f2  73 63 72 6f 6c 6c 5f 72  |Z.     .scroll_r|
00002710  65 71 75 65 73 74 0d 0f  64 0b 20 20 20 20 c9 31  |equest..d.    .1|
00002720  31 0d 0f 6e 15 20 20 20  20 20 f2 6c 6f 6f 73 65  |1..n.     .loose|
00002730  5f 63 61 72 65 74 0d 0f  78 0b 20 20 20 20 c9 31  |_caret..x.    .1|
00002740  32 0d 0f 82 14 20 20 20  20 20 f2 67 61 69 6e 5f  |2....     .gain_|
00002750  63 61 72 65 74 0d 0f 8c  0b 20 20 20 20 c9 31 37  |caret....    .17|
00002760  0d 0f 96 11 20 20 20 20  20 f2 6d 65 73 73 61 67  |....     .messag|
00002770  65 0d 0f a0 0b 20 20 20  20 c9 31 38 0d 0f aa 11  |e....    .18....|
00002780  20 20 20 20 20 f2 6d 65  73 73 61 67 65 0d 0f b4  |     .message...|
00002790  0b 20 20 20 20 c9 31 39  0d 0f be 12 20 20 20 20  |.    .19....    |
000027a0  20 f2 6e 6f 5f 72 65 70  6c 79 0d 0f c8 08 20 20  | .no_reply....  |
000027b0  20 cb 0d 0f d2 0c 20 fd  20 71 75 69 74 25 0d 0f  | ..... . quit%..|
000027c0  dc 0b 20 20 f2 71 75 69  74 0d 0f e6 05 e1 0d 0f  |..  .quit.......|
000027d0  f0 04 0d 0f fa 13 dd f2  72 65 64 72 61 77 5f 77  |........redraw_w|
000027e0  69 6e 64 6f 77 0d 10 04  22 20 ea 20 72 65 64 72  |indow..." . redr|
000027f0  61 77 5f 77 69 6e 64 6f  77 25 2c 72 65 64 72 61  |aw_window%,redra|
00002800  77 5f 6d 6f 72 65 25 0d  10 0e 2f 20 c8 99 22 57  |w_more%.../ .."W|
00002810  69 6d 70 5f 52 65 64 72  61 77 57 69 6e 64 6f 77  |imp_RedrawWindow|
00002820  22 2c 2c 62 6c 6b 25 20  b8 20 72 65 64 72 61 77  |",,blk% . redraw|
00002830  5f 6d 6f 72 65 25 0d 10  18 15 20 20 c8 95 20 72  |_more%....  .. r|
00002840  65 64 72 61 77 5f 6d 6f  72 65 25 0d 10 22 1b 20  |edraw_more%..". |
00002850  20 20 72 65 64 72 61 77  5f 77 69 6e 64 6f 77 25  |  redraw_window%|
00002860  3d 21 62 6c 6b 25 0d 10  2c 1c 20 20 20 20 20 c8  |=!blk%..,.     .|
00002870  8e 20 72 65 64 72 61 77  5f 77 69 6e 64 6f 77 25  |. redraw_window%|
00002880  20 ca 0d 10 36 19 20 20  20 20 20 20 c9 20 70 72  | ...6.      . pr|
00002890  69 6e 74 5f 77 69 6e 64  6f 77 25 0d 10 40 25 20  |int_window%..@% |
000028a0  20 20 20 20 20 20 f2 72  65 64 72 61 77 5f 70 72  |      .redraw_pr|
000028b0  69 6e 74 5f 77 69 6e 64  6f 77 28 62 6c 6b 25 29  |int_window(blk%)|
000028c0  0d 10 4a 0b 20 20 20 20  20 20 cb 0d 10 54 47 20  |..J.      ...TG |
000028d0  20 20 20 21 62 6c 6b 25  3d 72 65 64 72 61 77 5f  |   !blk%=redraw_|
000028e0  77 69 6e 64 6f 77 25 3a  c8 99 22 57 69 6d 70 5f  |window%:.."Wimp_|
000028f0  47 65 74 52 65 63 74 61  6e 67 6c 65 22 2c 2c 62  |GetRectangle",,b|
00002900  6c 6b 25 20 b8 20 72 65  64 72 61 77 5f 6d 6f 72  |lk% . redraw_mor|
00002910  65 25 0d 10 5e 07 20 20  ce 0d 10 68 05 e1 0d 10  |e%..^.  ...h....|
00002920  72 04 0d 10 7c 18 dd 20  f2 6f 70 65 6e 5f 77 69  |r...|.. .open_wi|
00002930  6e 64 6f 77 5f 65 76 65  6e 74 0d 10 86 1f 20 c8  |ndow_event.... .|
00002940  99 20 22 57 69 6d 70 5f  4f 70 65 6e 57 69 6e 64  |. "Wimp_OpenWind|
00002950  6f 77 22 2c 2c 62 6c 6b  25 0d 10 90 05 e1 0d 10  |ow",,blk%.......|
00002960  9a 04 0d 10 a4 1c dd 20  f2 63 6c 6f 73 65 5f 77  |....... .close_w|
00002970  69 6e 64 6f 77 28 77 69  6e 64 6f 77 25 29 0d 10  |indow(window%)..|
00002980  ae 12 20 21 62 6c 6b 25  3d 77 69 6e 64 6f 77 25  |.. !blk%=window%|
00002990  0d 10 b8 20 20 c8 99 20  22 57 69 6d 70 5f 43 6c  |...  .. "Wimp_Cl|
000029a0  6f 73 65 57 69 6e 64 6f  77 22 2c 2c 62 6c 6b 25  |oseWindow",,blk%|
000029b0  0d 10 c2 05 e1 0d 10 cc  04 0d 10 d6 12 dd 20 f2  |.............. .|
000029c0  70 6f 69 6e 74 65 72 5f  6f 75 74 0d 10 e0 05 e1  |pointer_out.....|
000029d0  0d 10 ea 04 0d 10 f4 11  dd 20 f2 70 6f 69 6e 74  |......... .point|
000029e0  65 72 5f 69 6e 0d 10 fe  05 e1 0d 11 08 04 0d 11  |er_in...........|
000029f0  12 13 dd 20 f2 6d 6f 75  73 65 5f 62 75 74 74 6f  |... .mouse_butto|
00002a00  6e 0d 11 1c 41 20 6d 6f  75 73 65 78 25 3d 62 6c  |n...A mousex%=bl|
00002a10  6b 25 21 30 20 20 20 20  20 20 20 20 20 3a f4 20  |k%!0         :. |
00002a20  58 20 70 6f 73 69 74 69  6f 6e 20 6f 66 20 70 6f  |X position of po|
00002a30  69 6e 74 65 72 20 77 68  65 6e 20 63 6c 69 63 6b  |inter when click|
00002a40  65 64 0d 11 26 41 20 6d  6f 75 73 65 79 25 3d 62  |ed..&A mousey%=b|
00002a50  6c 6b 25 21 34 20 20 20  20 20 20 20 20 20 3a f4  |lk%!4         :.|
00002a60  20 59 20 70 6f 73 69 74  69 6f 6e 20 6f 66 20 70  | Y position of p|
00002a70  6f 69 6e 74 65 72 20 77  68 65 6e 20 63 6c 69 63  |ointer when clic|
00002a80  6b 65 64 0d 11 30 2a 20  6d 6f 75 73 65 62 75 74  |ked..0* mousebut|
00002a90  25 3d 62 6c 6b 25 21 38  20 20 20 20 20 20 20 3a  |%=blk%!8       :|
00002aa0  f4 20 42 75 74 74 6f 6e  20 63 6f 64 65 0d 11 3a  |. Button code..:|
00002ab0  3a 20 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |: window_handle%|
00002ac0  3d 62 6c 6b 25 21 31 32  20 3a f4 20 48 61 6e 64  |=blk%!12 :. Hand|
00002ad0  6c 65 20 6f 66 20 77 69  6e 64 6f 77 20 63 6c 69  |le of window cli|
00002ae0  63 6b 65 64 20 69 6e 0d  11 44 38 20 69 63 6f 6e  |cked in..D8 icon|
00002af0  5f 68 61 6e 64 6c 65 25  3d 62 6c 6b 25 21 31 36  |_handle%=blk%!16|
00002b00  20 20 20 3a f4 20 48 61  6e 64 6c 65 20 6f 66 20  |   :. Handle of |
00002b10  69 63 6f 6e 20 63 6c 69  63 6b 65 64 20 6f 6e 0d  |icon clicked on.|
00002b20  11 4e 19 20 20 c8 8e 20  77 69 6e 64 6f 77 5f 68  |.N.  .. window_h|
00002b30  61 6e 64 6c 65 25 20 ca  0d 11 58 13 20 20 20 20  |andle% ...X.    |
00002b40  c9 20 69 63 6f 6e 5f 62  61 72 25 0d 11 62 18 20  |. icon_bar%..b. |
00002b50  20 20 20 20 f2 69 63 6f  6e 5f 62 61 72 5f 63 6c  |    .icon_bar_cl|
00002b60  69 63 6b 0d 11 6c 0f 20  20 20 20 c9 20 69 6e 66  |ick..l.    . inf|
00002b70  6f 25 0d 11 76 30 20 20  20 20 20 e7 20 69 63 6f  |o%..v0     . ico|
00002b80  6e 5f 68 61 6e 64 6c 65  25 3d 39 20 8c 20 f2 6f  |n_handle%=9 . .o|
00002b90  70 65 6e 5f 77 69 6e 64  6f 77 28 73 69 6c 6c 79  |pen_window(silly|
00002ba0  25 29 0d 11 80 0f 20 20  20 20 c9 20 6d 61 69 6e  |%)....    . main|
00002bb0  25 0d 11 8a 14 20 20 20  20 20 f2 6d 61 69 6e 5f  |%....     .main_|
00002bc0  63 6c 69 63 6b 0d 11 94  0f 20 20 20 20 c9 20 73  |click....    . s|
00002bd0  61 76 65 25 0d 11 9e 14  20 20 20 20 20 f2 73 61  |ave%....     .sa|
00002be0  76 65 5f 63 6c 69 63 6b  0d 11 a8 13 20 20 20 20  |ve_click....    |
00002bf0  c9 20 73 61 76 65 5f 63  73 76 25 0d 11 b2 18 20  |. save_csv%.... |
00002c00  20 20 20 20 f2 73 61 76  65 5f 63 73 76 5f 63 6c  |    .save_csv_cl|
00002c10  69 63 6b 0d 11 bc 10 20  20 20 20 c9 20 73 74 6f  |ick....    . sto|
00002c20  72 65 25 0d 11 c6 15 20  20 20 20 20 f2 73 74 6f  |re%....     .sto|
00002c30  72 65 5f 63 6c 69 63 6b  0d 11 d0 0e 20 20 20 20  |re_click....    |
00002c40  c9 20 6f 70 74 25 0d 11  da 13 20 20 20 20 20 f2  |. opt%....     .|
00002c50  6f 70 74 5f 63 6c 69 63  6b 0d 11 e4 10 20 20 20  |opt_click....   |
00002c60  20 c9 20 6d 61 74 68 73  25 0d 11 ee 15 20 20 20  | . maths%....   |
00002c70  20 20 f2 6d 61 74 68 73  5f 63 6c 69 63 6b 0d 11  |  .maths_click..|
00002c80  f8 07 20 20 cb 0d 12 02  05 e1 0d 12 0c 04 0d 12  |..  ............|
00002c90  16 0f dd f2 64 72 61 67  5f 6f 76 65 72 0d 12 20  |....drag_over.. |
00002ca0  32 ea 20 77 69 6e 64 6f  77 25 2c 69 63 6f 6e 25  |2. window%,icon%|
00002cb0  2c 78 25 2c 79 25 2c 66  69 6c 65 24 2c 73 74 61  |,x%,y%,file$,sta|
00002cc0  72 74 25 2c 73 69 7a 65  25 2c 74 79 70 65 25 0d  |rt%,size%,type%.|
00002cd0  12 2a 23 20 c8 99 20 22  57 69 6d 70 5f 47 65 74  |.*# .. "Wimp_Get|
00002ce0  50 6f 69 6e 74 65 72 49  6e 66 6f 22 2c 2c 62 6c  |PointerInfo",,bl|
00002cf0  6b 25 0d 12 34 36 20 78  25 3d 62 6c 6b 25 21 30  |k%..46 x%=blk%!0|
00002d00  3a f4 20 4d 6f 75 73 65  20 70 6f 69 6e 74 65 72  |:. Mouse pointer|
00002d10  20 78 20 63 6f 6f 72 64  2e 20 61 74 20 65 6e 64  | x coord. at end|
00002d20  20 6f 66 20 64 72 61 67  0d 12 3e 36 20 79 25 3d  | of drag..>6 y%=|
00002d30  62 6c 6b 25 21 34 3a f4  20 4d 6f 75 73 65 20 70  |blk%!4:. Mouse p|
00002d40  6f 69 6e 74 65 72 20 79  20 63 6f 6f 72 64 2e 20  |ointer y coord. |
00002d50  61 74 20 65 6e 64 20 6f  66 20 64 72 61 67 0d 12  |at end of drag..|
00002d60  48 49 20 77 69 6e 64 6f  77 25 3d 62 6c 6b 25 21  |HI window%=blk%!|
00002d70  31 32 3a f4 20 48 61 6e  64 6c 65 20 6f 66 20 77  |12:. Handle of w|
00002d80  69 6e 64 6f 77 20 77 68  69 63 68 20 70 6f 69 6e  |indow which poin|
00002d90  74 65 72 20 68 61 73 20  62 65 65 6e 20 64 72 61  |ter has been dra|
00002da0  67 67 65 64 20 74 6f 0d  12 52 39 20 69 63 6f 6e  |gged to..R9 icon|
00002db0  25 3d 62 6c 6b 25 21 31  36 3a f4 20 48 61 6e 64  |%=blk%!16:. Hand|
00002dc0  6c 65 20 6f 66 20 69 63  6f 6e 20 77 68 69 63 68  |le of icon which|
00002dd0  20 70 6f 69 6e 74 65 72  20 69 73 20 6f 76 65 72  | pointer is over|
00002de0  0d 12 5c 17 20 20 c8 8e  20 64 72 61 67 5f 77 69  |..\.  .. drag_wi|
00002df0  6e 64 6f 77 25 20 ca 0d  12 66 18 20 20 20 c9 20  |ndow% ...f.   . |
00002e00  73 61 76 65 25 2c 73 61  76 65 5f 63 73 76 25 0d  |save%,save_csv%.|
00002e10  12 70 1d 20 20 20 20 e7  20 73 61 76 65 5f 64 61  |.p.    . save_da|
00002e20  74 61 5f 73 69 7a 65 25  3e 30 20 8c 0d 12 7a 36  |ta_size%>0 ...z6|
00002e30  20 20 20 20 20 66 69 6c  65 24 3d a4 6c 65 61 66  |     file$=.leaf|
00002e40  28 a4 67 65 74 5f 69 63  6f 6e 5f 74 65 78 74 28  |(.get_icon_text(|
00002e50  73 61 76 65 25 2c 6e 61  6d 65 5f 69 63 6f 6e 25  |save%,name_icon%|
00002e60  29 29 0d 12 84 20 20 20  20 20 20 73 74 61 72 74  |))...      start|
00002e70  25 3d 73 61 76 65 5f 61  72 65 61 5f 73 74 61 72  |%=save_area_star|
00002e80  74 25 0d 12 8e 1e 20 20  20 20 20 73 69 7a 65 25  |t%....     size%|
00002e90  3d 73 61 76 65 5f 64 61  74 61 5f 73 69 7a 65 25  |=save_data_size%|
00002ea0  0d 12 98 39 20 20 20 20  20 74 79 70 65 25 3d a4  |...9     type%=.|
00002eb0  69 63 6f 6e 5f 73 70 72  69 74 65 5f 74 79 70 65  |icon_sprite_type|
00002ec0  28 64 72 61 67 5f 77 69  6e 64 6f 77 25 2c 66 69  |(drag_window%,fi|
00002ed0  6c 65 5f 69 63 6f 6e 25  29 0d 12 a2 45 20 20 20  |le_icon%)...E   |
00002ee0  20 20 f2 69 6e 69 74 69  61 74 65 5f 73 61 76 65  |  .initiate_save|
00002ef0  28 77 69 6e 64 6f 77 25  2c 69 63 6f 6e 25 2c 78  |(window%,icon%,x|
00002f00  25 2c 79 25 2c 66 69 6c  65 24 2c 73 74 61 72 74  |%,y%,file$,start|
00002f10  25 2c 73 69 7a 65 25 2c  74 79 70 65 25 29 0d 12  |%,size%,type%)..|
00002f20  ac 09 20 20 20 20 cd 0d  12 b6 0e 20 20 20 c9 20  |..    .....   . |
00002f30  6d 61 69 6e 25 0d 12 c0  1d 20 20 20 20 e7 20 73  |main%....    . s|
00002f40  61 76 65 5f 64 61 74 61  5f 73 69 7a 65 25 3e 30  |ave_data_size%>0|
00002f50  20 8c 0d 12 ca 1a 20 20  20 20 20 66 69 6c 65 24  | .....     file$|
00002f60  3d 22 43 6f 6e 76 65 72  74 65 64 22 0d 12 d4 20  |="Converted"... |
00002f70  20 20 20 20 20 73 74 61  72 74 25 3d 73 61 76 65  |     start%=save|
00002f80  5f 61 72 65 61 5f 73 74  61 72 74 25 0d 12 de 1e  |_area_start%....|
00002f90  20 20 20 20 20 73 69 7a  65 25 3d 73 61 76 65 5f  |     size%=save_|
00002fa0  64 61 74 61 5f 73 69 7a  65 25 0d 12 e8 2a 20 20  |data_size%...*  |
00002fb0  20 20 20 74 79 70 65 25  3d a4 69 63 6f 6e 5f 73  |   type%=.icon_s|
00002fc0  70 72 69 74 65 5f 74 79  70 65 28 6d 61 69 6e 25  |prite_type(main%|
00002fd0  2c 33 31 29 0d 12 f2 45  20 20 20 20 20 f2 69 6e  |,31)...E     .in|
00002fe0  69 74 69 61 74 65 5f 73  61 76 65 28 77 69 6e 64  |itiate_save(wind|
00002ff0  6f 77 25 2c 69 63 6f 6e  25 2c 78 25 2c 79 25 2c  |ow%,icon%,x%,y%,|
00003000  66 69 6c 65 24 2c 73 74  61 72 74 25 2c 73 69 7a  |file$,start%,siz|
00003010  65 25 2c 74 79 70 65 25  29 0d 12 fc 09 20 20 20  |e%,type%)....   |
00003020  20 cd 0d 13 06 06 20 cb  0d 13 10 05 e1 0d 13 1a  | ..... .........|
00003030  04 0d 13 24 15 dd 20 f2  64 65 73 65 6c 65 63 74  |...$.. .deselect|
00003040  28 61 62 63 25 29 0d 13  2e 0d 20 ea 20 63 6f 75  |(abc%).... . cou|
00003050  6e 74 25 0d 13 38 1b 20  20 e3 20 63 6f 75 6e 74  |nt%..8.  . count|
00003060  25 20 3d 20 30 20 b8 20  32 37 20 88 20 33 0d 13  |% = 0 . 27 . 3..|
00003070  42 2d 20 20 20 e7 20 a4  69 63 6f 6e 5f 73 65 6c  |B-   . .icon_sel|
00003080  65 63 74 65 64 28 73 74  6f 72 65 25 2c 63 6f 75  |ected(store%,cou|
00003090  6e 74 25 29 3d 61 62 63  25 20 8c 0d 13 4c 2c 20  |nt%)=abc% ...L, |
000030a0  20 20 20 f2 73 65 6c 65  63 74 5f 69 63 6f 6e 28  |   .select_icon(|
000030b0  73 74 6f 72 65 25 2c 63  6f 75 6e 74 25 2c 28 ac  |store%,count%,(.|
000030c0  20 61 62 63 25 29 29 0d  13 56 2e 20 20 20 20 f2  | abc%))..V.    .|
000030d0  73 65 6c 65 63 74 5f 69  63 6f 6e 28 73 74 6f 72  |select_icon(stor|
000030e0  65 25 2c 63 6f 75 6e 74  25 2b 32 2c 28 ac 20 61  |e%,count%+2,(. a|
000030f0  62 63 25 29 29 0d 13 60  08 20 20 20 cd 0d 13 6a  |bc%))..`.   ...j|
00003100  0e 20 20 ed 20 63 6f 75  6e 74 25 0d 13 74 1c 20  |.  . count%..t. |
00003110  20 e3 20 63 6f 75 6e 74  25 20 3d 20 33 37 20 b8  | . count% = 37 .|
00003120  20 34 30 20 88 20 33 0d  13 7e 2d 20 20 20 e7 20  | 40 . 3..~-   . |
00003130  a4 69 63 6f 6e 5f 73 65  6c 65 63 74 65 64 28 73  |.icon_selected(s|
00003140  74 6f 72 65 25 2c 63 6f  75 6e 74 25 29 3d 61 62  |tore%,count%)=ab|
00003150  63 25 20 8c 0d 13 88 2c  20 20 20 20 f2 73 65 6c  |c% ....,    .sel|
00003160  65 63 74 5f 69 63 6f 6e  28 73 74 6f 72 65 25 2c  |ect_icon(store%,|
00003170  63 6f 75 6e 74 25 2c 28  ac 20 61 62 63 25 29 29  |count%,(. abc%))|
00003180  0d 13 92 2e 20 20 20 20  f2 73 65 6c 65 63 74 5f  |....    .select_|
00003190  69 63 6f 6e 28 73 74 6f  72 65 25 2c 63 6f 75 6e  |icon(store%,coun|
000031a0  74 25 2b 32 2c 28 ac 20  61 62 63 25 29 29 0d 13  |t%+2,(. abc%))..|
000031b0  9c 08 20 20 20 cd 0d 13  a6 0e 20 20 ed 20 63 6f  |..   .....  . co|
000031c0  75 6e 74 25 0d 13 b0 04  0d 13 ba 1f f2 73 68 61  |unt%.........sha|
000031d0  64 65 5f 69 63 6f 6e 28  73 74 6f 72 65 25 2c 33  |de_icon(store%,3|
000031e0  30 2c 61 62 63 25 29 0d  13 c4 1f f2 73 68 61 64  |0,abc%).....shad|
000031f0  65 5f 69 63 6f 6e 28 73  74 6f 72 65 25 2c 33 31  |e_icon(store%,31|
00003200  2c 61 62 63 25 29 0d 13  ce 05 e1 0d 13 d8 04 0d  |,abc%)..........|
00003210  13 e2 16 dd 20 f2 69 73  5f 6f 77 74 5f 73 65 6c  |.... .is_owt_sel|
00003220  65 63 74 65 64 0d 13 ec  0c ea 20 63 6f 75 6e 74  |ected..... count|
00003230  25 0d 13 f6 1a 20 e3 20  63 6f 75 6e 74 25 20 3d  |%.... . count% =|
00003240  20 30 20 b8 20 32 37 20  88 20 33 0d 14 00 0d 20  | 0 . 27 . 3.... |
00003250  ed 20 63 6f 75 6e 74 25  0d 14 0a 22 20 f2 73 68  |. count%..." .sh|
00003260  61 64 65 5f 69 63 6f 6e  28 73 74 6f 72 65 25 2c  |ade_icon(store%,|
00003270  33 30 2c ac 20 61 62 63  25 29 0d 14 14 22 20 f2  |30,. abc%)..." .|
00003280  73 68 61 64 65 5f 69 63  6f 6e 28 73 74 6f 72 65  |shade_icon(store|
00003290  25 2c 33 31 2c ac 20 61  62 63 25 29 0d 14 1e 05  |%,31,. abc%)....|
000032a0  e1 0d 14 28 04 0d 14 32  11 dd 20 f2 64 6f 5f 69  |...(...2.. .do_i|
000032b0  5f 73 68 61 64 65 0d 14  3c 14 20 e7 20 73 65 6c  |_shade..<. . sel|
000032c0  65 63 74 65 64 25 3d 30  20 8c 0d 14 46 1e 20 20  |ected%=0 ...F.  |
000032d0  f2 73 68 61 64 65 5f 69  63 6f 6e 28 73 74 6f 72  |.shade_icon(stor|
000032e0  65 25 2c 33 30 2c b9 29  0d 14 50 1e 20 20 f2 73  |e%,30,.)..P.  .s|
000032f0  68 61 64 65 5f 69 63 6f  6e 28 73 74 6f 72 65 25  |hade_icon(store%|
00003300  2c 33 31 2c b9 29 0d 14  5a 06 20 cc 0d 14 64 1e  |,31,.)..Z. ...d.|
00003310  20 20 f2 73 68 61 64 65  5f 69 63 6f 6e 28 73 74  |  .shade_icon(st|
00003320  6f 72 65 25 2c 33 30 2c  a3 29 0d 14 6e 1e 20 20  |ore%,30,.)..n.  |
00003330  f2 73 68 61 64 65 5f 69  63 6f 6e 28 73 74 6f 72  |.shade_icon(stor|
00003340  65 25 2c 33 31 2c a3 29  0d 14 78 06 20 cd 0d 14  |e%,31,.)..x. ...|
00003350  82 05 e1 0d 14 8c 04 0d  14 96 1c dd 20 f2 73 65  |............ .se|
00003360  6c 65 63 74 5f 73 65 6c  65 63 74 28 63 6f 75 6e  |lect_select(coun|
00003370  74 25 29 0d 14 a0 27 20  c8 8e 20 a4 69 63 6f 6e  |t%)...' .. .icon|
00003380  5f 73 65 6c 65 63 74 65  64 28 73 74 6f 72 65 25  |_selected(store%|
00003390  2c 63 6f 75 6e 74 25 29  20 ca 0d 14 aa 09 20 20  |,count%) .....  |
000033a0  c9 20 a3 0d 14 b4 2c 20  20 20 e7 20 a4 67 65 74  |. ....,   . .get|
000033b0  5f 69 63 6f 6e 5f 74 65  78 74 28 73 74 6f 72 65  |_icon_text(store|
000033c0  25 2c 63 6f 75 6e 74 25  29 3c 3e 22 22 20 8c 0d  |%,count%)<>"" ..|
000033d0  14 be 14 20 20 20 20 73  65 6c 65 63 74 65 64 25  |...    selected%|
000033e0  2b 3d 31 0d 14 c8 25 20  20 20 20 f2 73 65 6c 65  |+=1...%    .sele|
000033f0  63 74 5f 69 63 6f 6e 28  73 74 6f 72 65 25 2c 63  |ct_icon(store%,c|
00003400  6f 75 6e 74 25 2c b9 29  0d 14 d2 29 20 20 20 20  |ount%,.)...)    |
00003410  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 73 74 6f  |.select_icon(sto|
00003420  72 65 25 2c 28 63 6f 75  6e 74 25 2b 32 29 2c b9  |re%,(count%+2),.|
00003430  29 0d 14 dc 08 20 20 20  cd 0d 14 e6 09 20 20 c9  |)....   .....  .|
00003440  20 b9 0d 14 f0 13 20 20  20 73 65 6c 65 63 74 65  | .....   selecte|
00003450  64 25 2d 3d 31 0d 14 fa  24 20 20 20 f2 73 65 6c  |d%-=1...$   .sel|
00003460  65 63 74 5f 69 63 6f 6e  28 73 74 6f 72 65 25 2c  |ect_icon(store%,|
00003470  63 6f 75 6e 74 25 2c a3  29 0d 15 04 28 20 20 20  |count%,.)...(   |
00003480  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 73 74 6f  |.select_icon(sto|
00003490  72 65 25 2c 28 63 6f 75  6e 74 25 2b 32 29 2c a3  |re%,(count%+2),.|
000034a0  29 0d 15 0e 06 20 cb 0d  15 18 11 20 20 f2 64 6f  |).... .....  .do|
000034b0  5f 69 5f 73 68 61 64 65  0d 15 22 05 e1 0d 15 2c  |_i_shade.."....,|
000034c0  04 0d 15 36 12 dd 20 f2  73 74 6f 72 65 5f 63 6c  |...6.. .store_cl|
000034d0  69 63 6b 0d 15 40 3f 20  20 e7 20 6d 6f 75 73 65  |ick..@?  . mouse|
000034e0  62 75 74 25 3d 6d 65 6e  75 5f 63 6c 69 63 6b 25  |but%=menu_click%|
000034f0  20 84 20 61 64 6a 75 73  74 5f 63 6c 69 63 6b 25  | . adjust_click%|
00003500  20 84 20 73 65 6c 65 63  74 5f 63 6c 69 63 6b 25  | . select_click%|
00003510  20 8c 0d 15 4a 18 20 20  20 c8 8e 20 69 63 6f 6e  | ...J.   .. icon|
00003520  5f 68 61 6e 64 6c 65 25  20 ca 0d 15 54 0c 20 20  |_handle% ...T.  |
00003530  20 20 c9 20 33 35 0d 15  5e 20 20 20 20 20 20 63  |  . 35..^      c|
00003540  75 72 72 65 6e 74 5f 6d  65 6e 75 25 3d 6d 65 6e  |urrent_menu%=men|
00003550  75 25 28 31 36 29 0d 15  68 1d 20 20 20 20 20 6d  |u%(16)..h.     m|
00003560  65 6e 75 5f 63 6f 6e 74  65 78 74 24 3d 22 4d 61  |enu_context$="Ma|
00003570  69 6e 22 0d 15 72 1b 20  20 20 20 20 6d 65 6e 75  |in"..r.     menu|
00003580  5f 78 25 3d 6d 6f 75 73  65 78 25 2b 33 32 0d 15  |_x%=mousex%+32..|
00003590  7c 18 20 20 20 20 20 6d  65 6e 75 5f 79 25 3d 6d  ||.     menu_y%=m|
000035a0  6f 75 73 65 79 25 0d 15  86 3c 20 20 20 20 20 c8  |ousey%...<     .|
000035b0  99 20 22 57 69 6d 70 5f  43 72 65 61 74 65 4d 65  |. "Wimp_CreateMe|
000035c0  6e 75 22 2c 2c 63 75 72  72 65 6e 74 5f 6d 65 6e  |nu",,current_men|
000035d0  75 25 2c 6d 65 6e 75 5f  78 25 2c 6d 65 6e 75 5f  |u%,menu_x%,menu_|
000035e0  79 25 0d 15 90 09 20 20  20 20 7f 0d 15 9a 22 20  |y%....    ...." |
000035f0  20 20 20 20 e7 20 6d 6f  75 73 65 62 75 74 25 3d  |    . mousebut%=|
00003600  6d 65 6e 75 5f 63 6c 69  63 6b 25 20 8c 0d 15 a4  |menu_click% ....|
00003610  21 20 20 20 20 20 20 63  75 72 72 65 6e 74 5f 6d  |!      current_m|
00003620  65 6e 75 25 3d 6d 65 6e  75 25 28 31 37 29 0d 15  |enu%=menu%(17)..|
00003630  ae 1e 20 20 20 20 20 20  6d 65 6e 75 5f 63 6f 6e  |..      menu_con|
00003640  74 65 78 74 24 3d 22 4d  61 69 6e 22 0d 15 b8 1c  |text$="Main"....|
00003650  20 20 20 20 20 20 6d 65  6e 75 5f 78 25 3d 6d 6f  |      menu_x%=mo|
00003660  75 73 65 78 25 2d 33 32  0d 15 c2 19 20 20 20 20  |usex%-32....    |
00003670  20 20 6d 65 6e 75 5f 79  25 3d 6d 6f 75 73 65 79  |  menu_y%=mousey|
00003680  25 0d 15 cc 3c 20 20 20  20 20 c8 99 20 22 57 69  |%...<     .. "Wi|
00003690  6d 70 5f 43 72 65 61 74  65 4d 65 6e 75 22 2c 2c  |mp_CreateMenu",,|
000036a0  63 75 72 72 65 6e 74 5f  6d 65 6e 75 25 2c 6d 65  |current_menu%,me|
000036b0  6e 75 5f 78 25 2c 6d 65  6e 75 5f 79 25 0d 15 d6  |nu_x%,menu_y%...|
000036c0  09 20 20 20 20 cd 0d 15  e0 08 20 20 20 cb 0d 15  |.    .....   ...|
000036d0  ea 07 20 20 cd 0d 15 f4  13 20 c8 8e 20 6d 6f 75  |..  ..... .. mou|
000036e0  73 65 62 75 74 25 20 ca  0d 15 fe 23 20 20 c9 20  |sebut% ....#  . |
000036f0  73 65 6c 65 63 74 5f 63  6c 69 63 6b 25 2c 61 64  |select_click%,ad|
00003700  6a 75 73 74 5f 63 6c 69  63 6b 25 0d 16 08 18 20  |just_click%.... |
00003710  20 20 c8 8e 20 69 63 6f  6e 5f 68 61 6e 64 6c 65  |  .. icon_handle|
00003720  25 20 ca 0d 16 12 0f 20  20 20 20 c9 20 30 2c 31  |% .....    . 0,1|
00003730  2c 32 0d 16 1c 2e 20 20  20 20 20 f2 73 65 6c 65  |,2....     .sele|
00003740  63 74 5f 73 65 6c 65 63  74 28 28 a8 28 69 63 6f  |ct_select((.(ico|
00003750  6e 5f 68 61 6e 64 6c 65  25 2f 33 29 29 2a 33 29  |n_handle%/3))*3)|
00003760  0d 16 26 0f 20 20 20 20  c9 20 33 2c 34 2c 35 0d  |..&.    . 3,4,5.|
00003770  16 30 2e 20 20 20 20 20  f2 73 65 6c 65 63 74 5f  |.0.     .select_|
00003780  73 65 6c 65 63 74 28 28  a8 28 69 63 6f 6e 5f 68  |select((.(icon_h|
00003790  61 6e 64 6c 65 25 2f 33  29 29 2a 33 29 0d 16 3a  |andle%/3))*3)..:|
000037a0  0f 20 20 20 20 c9 20 36  2c 37 2c 38 0d 16 44 2e  |.    . 6,7,8..D.|
000037b0  20 20 20 20 20 f2 73 65  6c 65 63 74 5f 73 65 6c  |     .select_sel|
000037c0  65 63 74 28 28 a8 28 69  63 6f 6e 5f 68 61 6e 64  |ect((.(icon_hand|
000037d0  6c 65 25 2f 33 29 29 2a  33 29 0d 16 4e 11 20 20  |le%/3))*3)..N.  |
000037e0  20 20 c9 20 39 2c 31 30  2c 31 31 0d 16 58 2e 20  |  . 9,10,11..X. |
000037f0  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003800  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003810  65 25 2f 33 29 29 2a 33  29 0d 16 62 12 20 20 20  |e%/3))*3)..b.   |
00003820  20 c9 20 31 32 2c 31 33  2c 31 34 0d 16 6c 2e 20  | . 12,13,14..l. |
00003830  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003840  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003850  65 25 2f 33 29 29 2a 33  29 0d 16 76 12 20 20 20  |e%/3))*3)..v.   |
00003860  20 c9 20 31 35 2c 31 36  2c 31 37 0d 16 80 2e 20  | . 15,16,17.... |
00003870  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003880  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003890  65 25 2f 33 29 29 2a 33  29 0d 16 8a 12 20 20 20  |e%/3))*3)....   |
000038a0  20 c9 20 31 38 2c 31 39  2c 32 30 0d 16 94 2e 20  | . 18,19,20.... |
000038b0  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
000038c0  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
000038d0  65 25 2f 33 29 29 2a 33  29 0d 16 9e 12 20 20 20  |e%/3))*3)....   |
000038e0  20 c9 20 32 31 2c 32 32  2c 32 33 0d 16 a8 2e 20  | . 21,22,23.... |
000038f0  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003900  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003910  65 25 2f 33 29 29 2a 33  29 0d 16 b2 12 20 20 20  |e%/3))*3)....   |
00003920  20 c9 20 32 34 2c 32 35  2c 32 36 0d 16 bc 2e 20  | . 24,25,26.... |
00003930  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003940  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003950  65 25 2f 33 29 29 2a 33  29 0d 16 c6 12 20 20 20  |e%/3))*3)....   |
00003960  20 c9 20 32 37 2c 32 38  2c 32 39 0d 16 d0 2e 20  | . 27,28,29.... |
00003970  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
00003980  63 74 28 28 a8 28 69 63  6f 6e 5f 68 61 6e 64 6c  |ct((.(icon_handl|
00003990  65 25 2f 33 29 29 2a 33  29 0d 16 da 12 20 20 20  |e%/3))*3)....   |
000039a0  20 c9 20 33 37 2c 33 38  2c 33 39 0d 16 e4 1b 20  | . 37,38,39.... |
000039b0  20 20 20 20 f2 73 65 6c  65 63 74 5f 73 65 6c 65  |    .select_sele|
000039c0  63 74 28 33 37 29 0d 16  ee 12 20 20 20 20 c9 20  |ct(37)....    . |
000039d0  34 30 2c 34 31 2c 34 32  0d 16 f8 1b 20 20 20 20  |40,41,42....    |
000039e0  20 f2 73 65 6c 65 63 74  5f 73 65 6c 65 63 74 28  | .select_select(|
000039f0  34 30 29 0d 17 02 0c 20  20 20 20 c9 20 33 30 0d  |40)....    . 30.|
00003a00  17 0c 15 20 20 20 20 20  f2 64 65 73 65 6c 65 63  |...     .deselec|
00003a10  74 28 b9 29 0d 17 16 14  20 20 20 20 20 73 65 6c  |t(.)....     sel|
00003a20  65 63 74 65 64 25 3d 30  0d 17 20 0c 20 20 20 20  |ected%=0.. .    |
00003a30  c9 20 33 31 0d 17 2a 19  20 20 20 20 20 f2 64 65  |. 31..*.     .de|
00003a40  6c 65 74 65 5f 73 65 6c  65 63 74 65 64 0d 17 34  |lete_selected..4|
00003a50  0c 20 20 20 20 c9 20 33  32 0d 17 3e 11 20 20 20  |.    . 32..>.   |
00003a60  20 20 f2 73 65 6c 5f 61  6c 6c 0d 17 48 0c 20 20  |  .sel_all..H.  |
00003a70  20 20 c9 20 33 33 0d 17  52 28 20 20 20 20 20 f2  |  . 33..R(     .|
00003a80  6f 70 65 6e 5f 77 69 6e  64 6f 77 28 73 61 76 65  |open_window(save|
00003a90  25 29 3a f2 6d 65 6e 75  5f 63 6c 6f 73 65 0d 17  |%):.menu_close..|
00003aa0  5c 38 20 20 20 20 20 f2  70 6c 61 63 65 5f 63 61  |\8     .place_ca|
00003ab0  72 65 74 28 73 61 76 65  25 2c 31 2c a9 20 a4 67  |ret(save%,1,. .g|
00003ac0  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 73 61 76  |et_icon_text(sav|
00003ad0  65 25 2c 31 29 29 0d 17  66 0c 20 20 20 20 c9 20  |e%,1))..f.    . |
00003ae0  33 34 0d 17 70 1e 20 20  20 20 20 f2 63 6c 6f 73  |34..p.     .clos|
00003af0  65 5f 77 69 6e 64 6f 77  28 73 74 6f 72 65 25 29  |e_window(store%)|
00003b00  0d 17 7a 0c 20 20 20 20  c9 20 33 36 0d 17 84 0f  |..z.    . 36....|
00003b10  20 20 20 20 20 f2 70 72  69 6e 74 0d 17 8e 08 20  |     .print.... |
00003b20  20 20 cb 0d 17 98 06 20  cb 0d 17 a2 05 e1 0d 17  |  ..... ........|
00003b30  ac 04 0d 17 b6 0e dd 20  f2 73 65 6c 5f 61 6c 6c  |....... .sel_all|
00003b40  0d 17 c0 0f 73 65 6c 65  63 74 65 64 25 3d 30 0d  |....selected%=0.|
00003b50  17 ca 0d 20 ea 20 63 6f  75 6e 74 25 0d 17 d4 1b  |... . count%....|
00003b60  20 20 e3 20 63 6f 75 6e  74 25 20 3d 20 30 20 b8  |  . count% = 0 .|
00003b70  20 32 37 20 88 20 33 0d  17 de 2c 20 20 20 e7 20  | 27 . 3...,   . |
00003b80  a4 67 65 74 5f 69 63 6f  6e 5f 74 65 78 74 28 73  |.get_icon_text(s|
00003b90  74 6f 72 65 25 2c 63 6f  75 6e 74 25 29 3c 3e 22  |tore%,count%)<>"|
00003ba0  22 20 8c 0d 17 e8 25 20  20 20 20 f2 73 65 6c 65  |" ....%    .sele|
00003bb0  63 74 5f 69 63 6f 6e 28  73 74 6f 72 65 25 2c 63  |ct_icon(store%,c|
00003bc0  6f 75 6e 74 25 2c b9 29  0d 17 f2 27 20 20 20 20  |ount%,.)...'    |
00003bd0  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 73 74 6f  |.select_icon(sto|
00003be0  72 65 25 2c 63 6f 75 6e  74 25 2b 32 2c b9 29 0d  |re%,count%+2,.).|
00003bf0  17 fc 14 20 20 20 20 73  65 6c 65 63 74 65 64 25  |...    selected%|
00003c00  2b 3d 31 0d 18 06 08 20  20 20 cd 0d 18 10 0e 20  |+=1....   ..... |
00003c10  20 ed 20 63 6f 75 6e 74  25 0d 18 1a 1c 20 20 e3  | . count%....  .|
00003c20  20 63 6f 75 6e 74 25 20  3d 20 33 37 20 b8 20 34  | count% = 37 . 4|
00003c30  30 20 88 20 33 0d 18 24  2c 20 20 20 e7 20 a4 67  |0 . 3..$,   . .g|
00003c40  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 73 74 6f  |et_icon_text(sto|
00003c50  72 65 25 2c 63 6f 75 6e  74 25 29 3c 3e 22 22 20  |re%,count%)<>"" |
00003c60  8c 0d 18 2e 25 20 20 20  20 f2 73 65 6c 65 63 74  |....%    .select|
00003c70  5f 69 63 6f 6e 28 73 74  6f 72 65 25 2c 63 6f 75  |_icon(store%,cou|
00003c80  6e 74 25 2c b9 29 0d 18  38 27 20 20 20 20 f2 73  |nt%,.)..8'    .s|
00003c90  65 6c 65 63 74 5f 69 63  6f 6e 28 73 74 6f 72 65  |elect_icon(store|
00003ca0  25 2c 63 6f 75 6e 74 25  2b 32 2c b9 29 0d 18 42  |%,count%+2,.)..B|
00003cb0  14 20 20 20 20 73 65 6c  65 63 74 65 64 25 2b 3d  |.    selected%+=|
00003cc0  31 0d 18 4c 08 20 20 20  cd 0d 18 56 0e 20 20 ed  |1..L.   ...V.  .|
00003cd0  20 63 6f 75 6e 74 25 0d  18 60 04 0d 18 6a 13 e7  | count%..`...j..|
00003ce0  20 73 65 6c 65 63 74 65  64 25 3e 30 20 8c 0d 18  | selected%>0 ...|
00003cf0  74 1d 20 f2 73 68 61 64  65 5f 69 63 6f 6e 28 73  |t. .shade_icon(s|
00003d00  74 6f 72 65 25 2c 33 30  2c a3 29 0d 18 7e 1d 20  |tore%,30,.)..~. |
00003d10  f2 73 68 61 64 65 5f 69  63 6f 6e 28 73 74 6f 72  |.shade_icon(stor|
00003d20  65 25 2c 33 31 2c a3 29  0d 18 88 05 cd 0d 18 92  |e%,31,.)........|
00003d30  05 e1 0d 18 9c 04 0d 18  a6 16 dd 20 f2 64 65 6c  |........... .del|
00003d40  65 74 65 5f 73 65 6c 65  63 74 65 64 0d 18 b0 0d  |ete_selected....|
00003d50  20 ea 20 63 6f 75 6e 74  25 0d 18 ba 1b 20 20 e3  | . count%....  .|
00003d60  20 63 6f 75 6e 74 25 20  3d 20 30 20 b8 20 32 37  | count% = 0 . 27|
00003d70  20 88 20 33 0d 18 c4 2a  20 20 20 e7 20 a4 69 63  | . 3...*   . .ic|
00003d80  6f 6e 5f 73 65 6c 65 63  74 65 64 28 73 74 6f 72  |on_selected(stor|
00003d90  65 25 2c 63 6f 75 6e 74  25 29 3d b9 20 8c 0d 18  |e%,count%)=. ...|
00003da0  ce 28 20 20 20 20 f2 70  75 74 5f 69 63 6f 6e 5f  |.(    .put_icon_|
00003db0  74 65 78 74 28 73 74 6f  72 65 25 2c 63 6f 75 6e  |text(store%,coun|
00003dc0  74 25 2c 22 22 29 0d 18  d8 2a 20 20 20 20 f2 70  |t%,"")...*    .p|
00003dd0  75 74 5f 69 63 6f 6e 5f  74 65 78 74 28 73 74 6f  |ut_icon_text(sto|
00003de0  72 65 25 2c 63 6f 75 6e  74 25 2b 32 2c 22 22 29  |re%,count%+2,"")|
00003df0  0d 18 e2 25 20 20 20 20  f2 73 65 6c 65 63 74 5f  |...%    .select_|
00003e00  69 63 6f 6e 28 73 74 6f  72 65 25 2c 63 6f 75 6e  |icon(store%,coun|
00003e10  74 25 2c a3 29 0d 18 ec  27 20 20 20 20 f2 73 65  |t%,.)...'    .se|
00003e20  6c 65 63 74 5f 69 63 6f  6e 28 73 74 6f 72 65 25  |lect_icon(store%|
00003e30  2c 63 6f 75 6e 74 25 2b  32 2c a3 29 0d 18 f6 08  |,count%+2,.)....|
00003e40  20 20 20 cd 0d 19 00 0e  20 20 ed 20 63 6f 75 6e  |   .....  . coun|
00003e50  74 25 0d 19 0a 1c 20 20  e3 20 63 6f 75 6e 74 25  |t%....  . count%|
00003e60  20 3d 20 33 37 20 b8 20  34 30 20 88 20 33 0d 19  | = 37 . 40 . 3..|
00003e70  14 2a 20 20 20 e7 20 a4  69 63 6f 6e 5f 73 65 6c  |.*   . .icon_sel|
00003e80  65 63 74 65 64 28 73 74  6f 72 65 25 2c 63 6f 75  |ected(store%,cou|
00003e90  6e 74 25 29 3d b9 20 8c  0d 19 1e 28 20 20 20 20  |nt%)=. ....(    |
00003ea0  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 73  |.put_icon_text(s|
00003eb0  74 6f 72 65 25 2c 63 6f  75 6e 74 25 2c 22 22 29  |tore%,count%,"")|
00003ec0  0d 19 28 2a 20 20 20 20  f2 70 75 74 5f 69 63 6f  |..(*    .put_ico|
00003ed0  6e 5f 74 65 78 74 28 73  74 6f 72 65 25 2c 63 6f  |n_text(store%,co|
00003ee0  75 6e 74 25 2b 32 2c 22  22 29 0d 19 32 25 20 20  |unt%+2,"")..2%  |
00003ef0  20 20 f2 73 65 6c 65 63  74 5f 69 63 6f 6e 28 73  |  .select_icon(s|
00003f00  74 6f 72 65 25 2c 63 6f  75 6e 74 25 2c a3 29 0d  |tore%,count%,.).|
00003f10  19 3c 27 20 20 20 20 f2  73 65 6c 65 63 74 5f 69  |.<'    .select_i|
00003f20  63 6f 6e 28 73 74 6f 72  65 25 2c 63 6f 75 6e 74  |con(store%,count|
00003f30  25 2b 32 2c a3 29 0d 19  46 08 20 20 20 cd 0d 19  |%+2,.)..F.   ...|
00003f40  50 0e 20 20 ed 20 63 6f  75 6e 74 25 0d 19 5a 04  |P.  . count%..Z.|
00003f50  0d 19 64 11 20 20 73 65  6c 65 63 74 65 64 25 3d  |..d.  selected%=|
00003f60  30 0d 19 6e 1d 20 f2 73  68 61 64 65 5f 69 63 6f  |0..n. .shade_ico|
00003f70  6e 28 73 74 6f 72 65 25  2c 33 30 2c b9 29 0d 19  |n(store%,30,.)..|
00003f80  78 1d 20 f2 73 68 61 64  65 5f 69 63 6f 6e 28 73  |x. .shade_icon(s|
00003f90  74 6f 72 65 25 2c 33 31  2c b9 29 0d 19 82 05 e1  |tore%,31,.).....|
00003fa0  0d 19 8c 04 0d 19 96 11  dd 20 f2 73 61 76 65 5f  |......... .save_|
00003fb0  63 6c 69 63 6b 0d 19 a0  13 20 c8 8e 20 6d 6f 75  |click.... .. mou|
00003fc0  73 65 62 75 74 25 20 ca  0d 19 aa 23 20 20 c9 20  |sebut% ....#  . |
00003fd0  61 64 6a 75 73 74 5f 63  6c 69 63 6b 25 2c 73 65  |adjust_click%,se|
00003fe0  6c 65 63 74 5f 63 6c 69  63 6b 25 0d 19 b4 18 20  |lect_click%.... |
00003ff0  20 20 c8 8e 20 69 63 6f  6e 5f 68 61 6e 64 6c 65  |  .. icon_handle|
00004000  25 20 ca 0d 19 be 0b 20  20 20 20 c9 20 31 0d 19  |% .....    . 1..|
00004010  c8 26 20 20 20 20 20 e7  20 a4 69 63 6f 6e 5f 73  |.&     . .icon_s|
00004020  65 6c 65 63 74 65 64 28  73 61 76 65 25 2c 31 29  |elected(save%,1)|
00004030  3d b9 20 8c 0d 19 d2 32  20 20 20 20 20 20 f2 73  |=. ....2      .s|
00004040  65 6c 65 63 74 5f 69 63  6f 6e 28 73 61 76 65 25  |elect_icon(save%|
00004050  2c 31 2c a3 29 3a 73 61  76 65 5f 73 65 6c 65 63  |,1,.):save_selec|
00004060  74 65 64 25 3d a3 0d 19  dc 0a 20 20 20 20 20 cc  |ted%=.....     .|
00004070  0d 19 e6 32 20 20 20 20  20 20 f2 73 65 6c 65 63  |...2      .selec|
00004080  74 5f 69 63 6f 6e 28 73  61 76 65 25 2c 31 2c b9  |t_icon(save%,1,.|
00004090  29 3a 73 61 76 65 5f 73  65 6c 65 63 74 65 64 25  |):save_selected%|
000040a0  3d b9 0d 19 f0 0a 20 20  20 20 20 cd 0d 19 fa 0b  |=.....     .....|
000040b0  20 20 20 20 c9 20 30 0d  1a 04 16 20 20 20 20 20  |    . 0....     |
000040c0  20 20 f2 73 61 76 65 5f  73 65 74 75 70 0d 1a 0e  |  .save_setup...|
000040d0  2c 20 20 20 20 20 20 66  69 6c 65 5f 6e 61 6d 65  |,      file_name|
000040e0  24 3d a4 67 65 74 5f 69  63 6f 6e 5f 74 65 78 74  |$=.get_icon_text|
000040f0  28 73 61 76 65 25 2c 32  29 0d 1a 18 19 20 20 20  |(save%,2)....   |
00004100  20 20 20 66 69 6c 65 5f  74 79 70 65 25 3d 26 46  |   file_type%=&F|
00004110  46 46 0d 1a 22 1e 20 20  20 20 20 20 e7 20 a7 66  |FF..".      . .f|
00004120  69 6c 65 5f 6e 61 6d 65  24 2c 22 2e 22 29 20 8c  |ile_name$,".") .|
00004130  0d 1a 2c 4d 20 20 20 20  20 20 20 f2 73 61 76 65  |..,M       .save|
00004140  5f 64 61 74 61 28 66 69  6c 65 5f 6e 61 6d 65 24  |_data(file_name$|
00004150  2c 66 69 6c 65 5f 74 79  70 65 25 2c 73 61 76 65  |,file_type%,save|
00004160  5f 61 72 65 61 5f 73 74  61 72 74 25 2c 73 61 76  |_area_start%,sav|
00004170  65 5f 64 61 74 61 5f 73  69 7a 65 25 29 0d 1a 36  |e_data_size%)..6|
00004180  16 20 20 20 20 20 20 20  f2 6d 65 6e 75 5f 63 6c  |.       .menu_cl|
00004190  6f 73 65 0d 1a 40 0b 20  20 20 20 20 20 cc 0d 1a  |ose..@.      ...|
000041a0  4a 4b 20 20 20 20 20 20  20 f2 72 65 70 6f 72 74  |JK       .report|
000041b0  5f 65 72 72 6f 72 28 22  44 72 61 67 20 74 68 65  |_error("Drag the|
000041c0  20 66 69 6c 65 20 74 6f  20 61 20 64 69 72 65 63  | file to a direc|
000041d0  74 6f 72 79 20 64 69 73  70 6c 61 79 2e 22 2c 61  |tory display.",a|
000041e0  70 70 5f 6e 61 6d 65 24  29 0d 1a 54 0b 20 20 20  |pp_name$)..T.   |
000041f0  20 20 20 cd 0d 1a 5e 08  20 20 20 cb 0d 1a 68 21  |   ...^.   ...h!|
00004200  20 20 c9 20 73 65 6c 65  63 74 5f 64 72 61 67 25  |  . select_drag%|
00004210  2c 61 64 6a 75 73 74 5f  64 72 61 67 25 0d 1a 72  |,adjust_drag%..r|
00004220  0f f2 73 61 76 65 5f 73  65 74 75 70 0d 1a 7c 1a  |..save_setup..|.|
00004230  20 20 20 20 e7 20 69 63  6f 6e 5f 68 61 6e 64 6c  |    . icon_handl|
00004240  65 25 3d 33 20 8c 0d 1a  86 41 20 20 20 20 20 20  |e%=3 ....A      |
00004250  f4 20 52 65 6d 65 6d 62  65 72 20 77 68 69 63 68  |. Remember which|
00004260  20 69 63 6f 6e 20 77 61  73 20 64 72 61 67 67 65  | icon was dragge|
00004270  64 20 61 6e 64 20 66 72  6f 6d 20 77 68 69 63 68  |d and from which|
00004280  20 77 69 6e 64 6f 77 0d  1a 90 16 20 20 20 20 20  | window....     |
00004290  20 64 72 61 67 5f 69 63  6f 6e 25 3d 33 0d 1a 9a  | drag_icon%=3...|
000042a0  1c 20 20 20 20 20 20 64  72 61 67 5f 77 69 6e 64  |.      drag_wind|
000042b0  6f 77 25 3d 73 61 76 65  25 0d 1a a4 1c 20 20 20  |ow%=save%....   |
000042c0  20 20 20 f2 64 72 61 67  5f 62 6f 78 28 73 61 76  |   .drag_box(sav|
000042d0  65 25 2c 33 29 0d 1a ae  09 20 20 20 20 cd 0d 1a  |e%,3)....    ...|
000042e0  b8 06 20 cb 0d 1a c2 05  e1 0d 1a cc 04 0d 1a d6  |.. .............|
000042f0  10 dd 20 f2 6d 61 69 6e  5f 64 72 61 67 0d 1a e0  |.. .main_drag...|
00004300  13 20 c8 8e 20 6d 6f 75  73 65 62 75 74 25 20 ca  |. .. mousebut% .|
00004310  0d 1a ea 14 20 20 c9 20  73 65 6c 65 63 74 5f 64  |....  . select_d|
00004320  72 61 67 25 0d 1a f4 14  20 20 20 73 61 76 65 5f  |rag%....   save_|
00004330  61 6c 6c 25 20 3d 20 b9  0d 1a fe 14 20 20 c9 20  |all% = .....  . |
00004340  61 64 6a 75 73 74 5f 64  72 61 67 25 0d 1b 08 14  |adjust_drag%....|
00004350  20 20 20 73 61 76 65 5f  61 6c 6c 25 20 3d 20 b9  |   save_all% = .|
00004360  0d 1b 12 2c 20 20 20 e7  20 61 64 6a 75 73 74 5f  |...,   . adjust_|
00004370  64 72 61 67 24 3d 22 61  64 6a 75 73 74 22 20 73  |drag$="adjust" s|
00004380  61 76 65 5f 61 6c 6c 25  20 3d 20 a3 0d 1b 1c 06  |ave_all% = .....|
00004390  20 cb 0d 1b 26 18 20 20  f2 73 61 76 65 5f 66 69  | ...&.  .save_fi|
000043a0  67 75 72 65 5f 73 65 74  75 70 0d 1b 30 15 20 20  |gure_setup..0.  |
000043b0  64 72 61 67 5f 69 63 6f  6e 25 20 3d 20 33 31 0d  |drag_icon% = 31.|
000043c0  1b 3a 17 20 20 66 69 6c  65 5f 74 79 70 65 25 20  |.:.  file_type% |
000043d0  3d 20 26 46 46 46 0d 1b  44 18 20 20 64 72 61 67  |= &FFF..D.  drag|
000043e0  5f 77 69 6e 64 6f 77 25  3d 6d 61 69 6e 25 0d 1b  |_window%=main%..|
000043f0  4e 1e 20 20 66 69 6c 65  5f 6e 61 6d 65 24 20 3d  |N.  file_name$ =|
00004400  20 22 43 6f 6e 76 65 72  74 65 64 22 0d 1b 58 19  | "Converted"..X.|
00004410  20 20 f2 64 72 61 67 5f  62 6f 78 28 6d 61 69 6e  |  .drag_box(main|
00004420  25 2c 33 31 29 0d 1b 62  05 e1 0d 1b 6c 04 0d 1b  |%,31)..b....l...|
00004430  76 15 dd 20 f2 73 61 76  65 5f 63 73 76 5f 63 6c  |v.. .save_csv_cl|
00004440  69 63 6b 0d 1b 80 13 20  c8 8e 20 6d 6f 75 73 65  |ick.... .. mouse|
00004450  62 75 74 25 20 ca 0d 1b  8a 23 20 20 c9 20 61 64  |but% ....#  . ad|
00004460  6a 75 73 74 5f 63 6c 69  63 6b 25 2c 73 65 6c 65  |just_click%,sele|
00004470  63 74 5f 63 6c 69 63 6b  25 0d 1b 94 18 20 20 20  |ct_click%....   |
00004480  c8 8e 20 69 63 6f 6e 5f  68 61 6e 64 6c 65 25 20  |.. icon_handle% |
00004490  ca 0d 1b 9e 0b 20 20 20  20 c9 20 31 0d 1b a8 2a  |.....    . 1...*|
000044a0  20 20 20 20 20 e7 20 a4  69 63 6f 6e 5f 73 65 6c  |     . .icon_sel|
000044b0  65 63 74 65 64 28 73 61  76 65 5f 63 73 76 25 2c  |ected(save_csv%,|
000044c0  31 29 3d b9 20 8c 0d 1b  b2 3a 20 20 20 20 20 20  |1)=. ....:      |
000044d0  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 73 61 76  |.select_icon(sav|
000044e0  65 5f 63 73 76 25 2c 31  2c a3 29 3a 73 61 76 65  |e_csv%,1,.):save|
000044f0  5f 63 73 76 5f 73 65 6c  65 63 74 65 64 25 3d a3  |_csv_selected%=.|
00004500  0d 1b bc 0a 20 20 20 20  20 cc 0d 1b c6 3a 20 20  |....     ....:  |
00004510  20 20 20 20 f2 73 65 6c  65 63 74 5f 69 63 6f 6e  |    .select_icon|
00004520  28 73 61 76 65 5f 63 73  76 25 2c 31 2c b9 29 3a  |(save_csv%,1,.):|
00004530  73 61 76 65 5f 63 73 76  5f 73 65 6c 65 63 74 65  |save_csv_selecte|
00004540  64 25 3d b9 0d 1b d0 0a  20 20 20 20 20 cd 0d 1b  |d%=.....     ...|
00004550  da 0b 20 20 20 20 c9 20  30 0d 1b e4 13 f2 73 61  |..    . 0.....sa|
00004560  76 65 5f 63 73 76 5f 73  65 74 75 70 0d 1b ee 30  |ve_csv_setup...0|
00004570  20 20 20 20 20 20 66 69  6c 65 5f 6e 61 6d 65 24  |      file_name$|
00004580  3d a4 67 65 74 5f 69 63  6f 6e 5f 74 65 78 74 28  |=.get_icon_text(|
00004590  73 61 76 65 5f 63 73 76  25 2c 32 29 0d 1b f8 19  |save_csv%,2)....|
000045a0  20 20 20 20 20 20 66 69  6c 65 5f 74 79 70 65 25  |      file_type%|
000045b0  3d 26 44 46 45 0d 1c 02  1e 20 20 20 20 20 20 e7  |=&DFE....      .|
000045c0  20 a7 66 69 6c 65 5f 6e  61 6d 65 24 2c 22 2e 22  | .file_name$,"."|
000045d0  29 20 8c 0d 1c 0c 4d 20  20 20 20 20 20 20 f2 73  |) ....M       .s|
000045e0  61 76 65 5f 64 61 74 61  28 66 69 6c 65 5f 6e 61  |ave_data(file_na|
000045f0  6d 65 24 2c 66 69 6c 65  5f 74 79 70 65 25 2c 73  |me$,file_type%,s|
00004600  61 76 65 5f 61 72 65 61  5f 73 74 61 72 74 25 2c  |ave_area_start%,|
00004610  73 61 76 65 5f 64 61 74  61 5f 73 69 7a 65 25 29  |save_data_size%)|
00004620  0d 1c 16 16 20 20 20 20  20 20 20 f2 6d 65 6e 75  |....       .menu|
00004630  5f 63 6c 6f 73 65 0d 1c  20 0b 20 20 20 20 20 20  |_close.. .      |
00004640  cc 0d 1c 2a 4b 20 20 20  20 20 20 20 f2 72 65 70  |...*K       .rep|
00004650  6f 72 74 5f 65 72 72 6f  72 28 22 44 72 61 67 20  |ort_error("Drag |
00004660  74 68 65 20 66 69 6c 65  20 74 6f 20 61 20 64 69  |the file to a di|
00004670  72 65 63 74 6f 72 79 20  64 69 73 70 6c 61 79 2e  |rectory display.|
00004680  22 2c 61 70 70 5f 6e 61  6d 65 24 29 0d 1c 34 0b  |",app_name$)..4.|
00004690  20 20 20 20 20 20 cd 0d  1c 3e 08 20 20 20 cb 0d  |      ...>.   ..|
000046a0  1c 48 21 20 20 c9 20 73  65 6c 65 63 74 5f 64 72  |.H!  . select_dr|
000046b0  61 67 25 2c 61 64 6a 75  73 74 5f 64 72 61 67 25  |ag%,adjust_drag%|
000046c0  0d 1c 52 13 f2 73 61 76  65 5f 63 73 76 5f 73 65  |..R..save_csv_se|
000046d0  74 75 70 0d 1c 5c 1a 20  20 20 20 e7 20 69 63 6f  |tup..\.    . ico|
000046e0  6e 5f 68 61 6e 64 6c 65  25 3d 33 20 8c 0d 1c 66  |n_handle%=3 ...f|
000046f0  16 20 20 20 20 20 20 64  72 61 67 5f 69 63 6f 6e  |.      drag_icon|
00004700  25 3d 33 0d 1c 70 20 20  20 20 20 20 20 64 72 61  |%=3..p       dra|
00004710  67 5f 77 69 6e 64 6f 77  25 3d 73 61 76 65 5f 63  |g_window%=save_c|
00004720  73 76 25 0d 1c 7a 20 20  20 20 20 20 20 f2 64 72  |sv%..z       .dr|
00004730  61 67 5f 62 6f 78 28 73  61 76 65 5f 63 73 76 25  |ag_box(save_csv%|
00004740  2c 33 29 0d 1c 84 09 20  20 20 20 cd 0d 1c 8e 06  |,3)....    .....|
00004750  20 cb 0d 1c 98 05 e1 0d  1c a2 04 0d 1c ac 0e dd  | ...............|
00004760  20 f2 6f 70 74 5f 6b 65  79 0d 1c b6 16 20 c8 8e  | .opt_key.... ..|
00004770  20 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 20 ca 0d  | icon_handle% ..|
00004780  1c c0 13 20 20 c9 20 31  30 2c 31 31 2c 31 32 2c  |...  . 10,11,12,|
00004790  31 33 0d 1c ca 10 20 20  20 c8 8e 20 6b 65 79 25  |13....   .. key%|
000047a0  20 ca 0d 1c d4 16 20 20  20 20 c9 20 26 44 2c 26  | .....    . &D,&|
000047b0  31 38 41 2c 26 31 38 45  0d 1c de 1c 20 20 20 20  |18A,&18E....    |
000047c0  20 e7 20 69 63 6f 6e 5f  68 61 6e 64 6c 65 25 3d  | . icon_handle%=|
000047d0  31 33 20 8c 0d 1c e8 39  20 20 20 20 20 20 f2 70  |13 ....9      .p|
000047e0  6c 61 63 65 5f 63 61 72  65 74 28 6f 70 74 25 2c  |lace_caret(opt%,|
000047f0  31 30 2c a9 20 a4 67 65  74 5f 69 63 6f 6e 5f 74  |10,. .get_icon_t|
00004800  65 78 74 28 6f 70 74 25  2c 31 30 29 29 0d 1c f2  |ext(opt%,10))...|
00004810  0a 20 20 20 20 20 cc 0d  1c fc 51 20 20 20 20 20  |.     ....Q     |
00004820  20 f2 70 6c 61 63 65 5f  63 61 72 65 74 28 6f 70  | .place_caret(op|
00004830  74 25 2c 69 63 6f 6e 5f  68 61 6e 64 6c 65 25 2b  |t%,icon_handle%+|
00004840  31 2c a9 20 a4 67 65 74  5f 69 63 6f 6e 5f 74 65  |1,. .get_icon_te|
00004850  78 74 28 6f 70 74 25 2c  69 63 6f 6e 5f 68 61 6e  |xt(opt%,icon_han|
00004860  64 6c 65 25 2b 31 29 29  0d 1d 06 0a 20 20 20 20  |dle%+1))....    |
00004870  20 cd 0d 1d 10 0e 20 20  20 20 c9 20 26 31 38 46  | .....    . &18F|
00004880  0d 1d 1a 1c 20 20 20 20  20 e7 20 69 63 6f 6e 5f  |....     . icon_|
00004890  68 61 6e 64 6c 65 25 3d  31 30 20 8c 0d 1d 24 39  |handle%=10 ...$9|
000048a0  20 20 20 20 20 20 f2 70  6c 61 63 65 5f 63 61 72  |      .place_car|
000048b0  65 74 28 6f 70 74 25 2c  31 33 2c a9 20 a4 67 65  |et(opt%,13,. .ge|
000048c0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6f 70 74 25  |t_icon_text(opt%|
000048d0  2c 31 33 29 29 0d 1d 2e  0a 20 20 20 20 20 cc 0d  |,13))....     ..|
000048e0  1d 38 51 20 20 20 20 20  20 f2 70 6c 61 63 65 5f  |.8Q      .place_|
000048f0  63 61 72 65 74 28 6f 70  74 25 2c 69 63 6f 6e 5f  |caret(opt%,icon_|
00004900  68 61 6e 64 6c 65 25 2d  31 2c a9 20 a4 67 65 74  |handle%-1,. .get|
00004910  5f 69 63 6f 6e 5f 74 65  78 74 28 6f 70 74 25 2c  |_icon_text(opt%,|
00004920  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 2d 31 29 29  |icon_handle%-1))|
00004930  0d 1d 42 0a 20 20 20 20  20 cd 0d 1d 4c 08 20 20  |..B.     ...L.  |
00004940  20 cb 0d 1d 56 06 20 cb  0d 1d 60 05 e1 0d 1d 6a  | ...V. ...`....j|
00004950  04 0d 1d 74 0f dd 20 f2  6d 61 74 68 5f 6b 65 79  |...t.. .math_key|
00004960  0d 1d 7e 16 20 c8 8e 20  69 63 6f 6e 5f 68 61 6e  |..~. .. icon_han|
00004970  64 6c 65 25 20 ca 0d 1d  88 09 20 20 c9 20 32 0d  |dle% .....  . 2.|
00004980  1d 92 10 20 20 20 c8 8e  20 6b 65 79 25 20 ca 0d  |...   .. key% ..|
00004990  1d 9c 1b 20 20 20 20 c9  20 26 44 2c 26 31 38 41  |...    . &D,&18A|
000049a0  2c 26 31 38 45 2c 26 31  38 46 0d 1d a6 47 20 20  |,&18E,&18F...G  |
000049b0  20 20 20 f2 70 6c 61 63  65 5f 63 61 72 65 74 28  |   .place_caret(|
000049c0  6d 61 74 68 73 25 2c 35  2c a9 20 a4 67 65 74 5f  |maths%,5,. .get_|
000049d0  69 63 6f 6e 5f 74 65 78  74 28 6d 61 74 68 73 25  |icon_text(maths%|
000049e0  2c 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 2b 31 29  |,icon_handle%+1)|
000049f0  29 0d 1d b0 08 20 20 20  cb 0d 1d ba 09 20 20 c9  |)....   .....  .|
00004a00  20 35 0d 1d c4 10 20 20  20 c8 8e 20 6b 65 79 25  | 5....   .. key%|
00004a10  20 ca 0d 1d ce 1b 20 20  20 20 c9 20 26 44 2c 26  | .....    . &D,&|
00004a20  31 38 41 2c 26 31 38 45  2c 26 31 38 46 0d 1d d8  |18A,&18E,&18F...|
00004a30  16 20 20 20 20 20 e7 20  6b 65 79 25 20 3d 20 26  |.     . key% = &|
00004a40  44 20 8c 0d 1d e2 14 20  20 20 20 20 20 f2 6d 61  |D .....      .ma|
00004a50  74 68 5f 63 61 6c 63 0d  1d ec 0a 20 20 20 20 20  |th_calc....     |
00004a60  cc 0d 1d f6 48 20 20 20  20 20 20 f2 70 6c 61 63  |....H      .plac|
00004a70  65 5f 63 61 72 65 74 28  6d 61 74 68 73 25 2c 32  |e_caret(maths%,2|
00004a80  2c a9 20 a4 67 65 74 5f  69 63 6f 6e 5f 74 65 78  |,. .get_icon_tex|
00004a90  74 28 6d 61 74 68 73 25  2c 69 63 6f 6e 5f 68 61  |t(maths%,icon_ha|
00004aa0  6e 64 6c 65 25 2b 31 29  29 0d 1e 00 0a 20 20 20  |ndle%+1))....   |
00004ab0  20 20 cd 0d 1e 0a 08 20  20 20 cb 0d 1e 14 06 20  |  .....   ..... |
00004ac0  cb 0d 1e 1e 05 e1 0d 1e  28 04 0d 1e 32 0f dd f2  |........(...2...|
00004ad0  6b 65 79 5f 70 72 65 73  73 0d 1e 3c 1a 20 77 69  |key_press..<. wi|
00004ae0  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 3d 62 6c 6b  |ndow_handle%=blk|
00004af0  25 21 30 0d 1e 46 18 20  69 63 6f 6e 5f 68 61 6e  |%!0..F. icon_han|
00004b00  64 6c 65 25 3d 62 6c 6b  25 21 34 0d 1e 50 11 20  |dle%=blk%!4..P. |
00004b10  6b 65 79 25 3d 62 6c 6b  25 21 32 34 0d 1e 5a 1f  |key%=blk%!24..Z.|
00004b20  20 20 20 20 e7 20 77 69  6e 64 6f 77 5f 68 61 6e  |    . window_han|
00004b30  64 6c 65 25 3d 6f 70 74  25 20 8c 0d 1e 64 11 20  |dle%=opt% ...d. |
00004b40  20 20 20 20 f2 6f 70 74  5f 6b 65 79 0d 1e 6e 09  |    .opt_key..n.|
00004b50  20 20 20 20 cc 0d 1e 78  09 20 20 20 20 cd 0d 1e  |    ...x.    ...|
00004b60  82 21 20 20 20 20 e7 20  77 69 6e 64 6f 77 5f 68  |.!    . window_h|
00004b70  61 6e 64 6c 65 25 3d 6d  61 74 68 73 25 20 8c 0d  |andle%=maths% ..|
00004b80  1e 8c 12 20 20 20 20 20  f2 6d 61 74 68 5f 6b 65  |...     .math_ke|
00004b90  79 0d 1e 96 09 20 20 20  20 cc 0d 1e a0 09 20 20  |y....    .....  |
00004ba0  20 20 cd 0d 1e aa 11 20  20 20 20 c8 8e 20 6b 65  |  .....    .. ke|
00004bb0  79 25 20 ca 0d 1e b4 0d  20 20 20 20 20 c9 20 26  |y% .....     . &|
00004bc0  31 0d 1e be 12 20 20 20  20 20 20 f2 73 65 6c 5f  |1....      .sel_|
00004bd0  61 6c 6c 0d 1e c8 0e 20  20 20 20 20 c9 20 26 31  |all....     . &1|
00004be0  38 0d 1e d2 1a 20 20 20  20 20 20 f2 64 65 6c 65  |8....      .dele|
00004bf0  74 65 5f 73 65 6c 65 63  74 65 64 0d 1e dc 0e 20  |te_selected.... |
00004c00  20 20 20 20 c9 20 26 31  41 0d 1e e6 16 20 20 20  |    . &1A....   |
00004c10  20 20 20 f2 64 65 73 65  6c 65 63 74 28 b9 29 0d  |   .deselect(.).|
00004c20  1e f0 15 20 20 20 20 20  20 73 65 6c 65 63 74 65  |...      selecte|
00004c30  64 25 3d 30 0d 1e fa 0f  20 20 20 20 20 c9 20 26  |d%=0....     . &|
00004c40  31 39 31 0d 1f 04 18 20  20 20 20 20 20 e7 20 74  |191....      . t|
00004c50  79 70 65 25 20 3d 20 31  20 20 8c 0d 1f 0e 2f 20  |ype% = 1  ..../ |
00004c60  20 20 20 20 20 cc 20 f2  64 61 74 61 5f 74 79 70  |     . .data_typ|
00004c70  65 5f 6d 65 6e 75 28 22  4c 65 6e 67 74 68 20 20  |e_menu("Length  |
00004c80  20 20 20 20 20 8b 46 31  22 29 0d 1f 18 0b 20 20  |     .F1")....  |
00004c90  20 20 20 20 cd 0d 1f 22  15 20 20 20 20 20 20 f2  |    ...".      .|
00004ca0  6d 65 6e 75 5f 63 6c 6f  73 65 0d 1f 2c 0f 20 20  |menu_close..,.  |
00004cb0  20 20 20 c9 20 26 31 39  32 0d 1f 36 16 20 20 20  |   . &192..6.   |
00004cc0  20 20 20 e7 20 74 79 70  65 25 20 3d 32 20 8c 0d  |   . type% =2 ..|
00004cd0  1f 40 2f 20 20 20 20 20  20 cc 20 f2 64 61 74 61  |.@/      . .data|
00004ce0  5f 74 79 70 65 5f 6d 65  6e 75 28 22 41 72 65 61  |_type_menu("Area|
00004cf0  20 20 20 20 20 20 20 20  20 8b 46 32 22 29 0d 1f  |         .F2")..|
00004d00  4a 0b 20 20 20 20 20 20  cd 0d 1f 54 15 20 20 20  |J.      ...T.   |
00004d10  20 20 20 f2 6d 65 6e 75  5f 63 6c 6f 73 65 0d 1f  |   .menu_close..|
00004d20  5e 0f 20 20 20 20 20 c9  20 26 31 39 33 0d 1f 68  |^.     . &193..h|
00004d30  16 20 20 20 20 20 20 e7  20 74 79 70 65 25 20 3d  |.      . type% =|
00004d40  33 20 8c 0d 1f 72 2f 20  20 20 20 20 20 cc 20 f2  |3 ...r/      . .|
00004d50  64 61 74 61 5f 74 79 70  65 5f 6d 65 6e 75 28 22  |data_type_menu("|
00004d60  4d 61 73 73 20 20 20 20  20 20 20 20 20 8b 46 33  |Mass         .F3|
00004d70  22 29 0d 1f 7c 0b 20 20  20 20 20 20 cd 0d 1f 86  |")..|.      ....|
00004d80  15 20 20 20 20 20 20 f2  6d 65 6e 75 5f 63 6c 6f  |.      .menu_clo|
00004d90  73 65 0d 1f 90 0f 20 20  20 20 20 c9 20 26 31 39  |se....     . &19|
00004da0  34 0d 1f 9a 16 20 20 20  20 20 20 e7 20 74 79 70  |4....      . typ|
00004db0  65 25 20 3d 34 20 8c 0d  1f a4 2f 20 20 20 20 20  |e% =4 ..../     |
00004dc0  20 cc 20 f2 64 61 74 61  5f 74 79 70 65 5f 6d 65  | . .data_type_me|
00004dd0  6e 75 28 22 56 6f 6c 75  6d 65 20 20 20 20 20 20  |nu("Volume      |
00004de0  20 8b 46 34 22 29 0d 1f  ae 0b 20 20 20 20 20 20  | .F4")....      |
00004df0  cd 0d 1f b8 15 20 20 20  20 20 20 f2 6d 65 6e 75  |.....      .menu|
00004e00  5f 63 6c 6f 73 65 0d 1f  c2 0f 20 20 20 20 20 c9  |_close....     .|
00004e10  20 26 31 39 35 0d 1f cc  16 20 20 20 20 20 20 e7  | &195....      .|
00004e20  20 74 79 70 65 25 20 3d  35 20 8c 0d 1f d6 2f 20  | type% =5 ..../ |
00004e30  20 20 20 20 20 cc 20 f2  64 61 74 61 5f 74 79 70  |     . .data_typ|
00004e40  65 5f 6d 65 6e 75 28 22  43 61 70 61 63 69 74 79  |e_menu("Capacity|
00004e50  20 20 20 20 20 8b 46 35  22 29 0d 1f e0 0b 20 20  |     .F5")....  |
00004e60  20 20 20 20 cd 0d 1f ea  15 20 20 20 20 20 20 f2  |    .....      .|
00004e70  6d 65 6e 75 5f 63 6c 6f  73 65 0d 1f f4 0f 20 20  |menu_close....  |
00004e80  20 20 20 c9 20 26 31 39  36 0d 1f fe 16 20 20 20  |   . &196....   |
00004e90  20 20 20 e7 20 74 79 70  65 25 20 3d 36 20 8c 0d  |   . type% =6 ..|
00004ea0  20 08 2f 20 20 20 20 20  20 cc 20 f2 64 61 74 61  | ./      . .data|
00004eb0  5f 74 79 70 65 5f 6d 65  6e 75 28 22 54 65 6d 70  |_type_menu("Temp|
00004ec0  65 72 61 74 75 72 65 20  20 8b 46 36 22 29 0d 20  |erature  .F6"). |
00004ed0  12 0b 20 20 20 20 20 20  cd 0d 20 1c 15 20 20 20  |..      .. ..   |
00004ee0  20 20 20 f2 6d 65 6e 75  5f 63 6c 6f 73 65 0d 20  |   .menu_close. |
00004ef0  26 20 20 20 20 20 20 c9  20 26 31 38 33 3a f4 20  |&      . &183:. |
00004f00  6f 70 65 6e 20 73 61 76  65 20 6d 65 6e 75 0d 20  |open save menu. |
00004f10  30 15 20 20 20 20 20 20  f2 6d 65 6e 75 5f 63 6c  |0.      .menu_cl|
00004f20  6f 73 65 0d 20 3a 28 20  20 20 20 20 20 c8 99 20  |ose. :(      .. |
00004f30  22 57 69 6d 70 5f 47 65  74 50 6f 69 6e 74 65 72  |"Wimp_GetPointer|
00004f40  49 6e 66 6f 22 2c 2c 62  6c 6b 25 0d 20 44 18 20  |Info",,blk%. D. |
00004f50  20 20 20 20 20 6d 6f 75  73 65 78 25 3d 62 6c 6b  |     mousex%=blk|
00004f60  25 21 30 0d 20 4e 18 20  20 20 20 20 20 6d 6f 75  |%!0. N.      mou|
00004f70  73 65 79 25 3d 62 6c 6b  25 21 34 0d 20 58 21 20  |sey%=blk%!4. X! |
00004f80  20 20 20 20 20 63 75 72  72 65 6e 74 5f 6d 65 6e  |     current_men|
00004f90  75 25 3d 6d 65 6e 75 25  28 31 36 29 0d 20 62 1e  |u%=menu%(16). b.|
00004fa0  20 20 20 20 20 20 6d 65  6e 75 5f 63 6f 6e 74 65  |      menu_conte|
00004fb0  78 74 24 3d 22 4d 61 69  6e 22 0d 20 6c 1c 20 20  |xt$="Main". l.  |
00004fc0  20 20 20 20 6d 65 6e 75  5f 78 25 3d 6d 6f 75 73  |    menu_x%=mous|
00004fd0  65 78 25 2d 33 32 0d 20  76 19 20 20 20 20 20 20  |ex%-32. v.      |
00004fe0  6d 65 6e 75 5f 79 25 3d  6d 6f 75 73 65 79 25 0d  |menu_y%=mousey%.|
00004ff0  20 80 3d 20 20 20 20 20  20 c8 99 20 22 57 69 6d  | .=      .. "Wim|
00005000  70 5f 43 72 65 61 74 65  4d 65 6e 75 22 2c 2c 63  |p_CreateMenu",,c|
00005010  75 72 72 65 6e 74 5f 6d  65 6e 75 25 2c 6d 65 6e  |urrent_menu%,men|
00005020  75 5f 78 25 2c 6d 65 6e  75 5f 79 25 0d 20 8a 0f  |u_x%,menu_y%. ..|
00005030  20 20 20 20 20 c9 20 26  31 38 34 0d 20 94 1c 20  |     . &184. .. |
00005040  20 20 20 20 20 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |     .open_windo|
00005050  77 28 6f 70 74 25 29 0d  20 9e 39 20 20 20 20 20  |w(opt%). .9     |
00005060  20 f2 70 6c 61 63 65 5f  63 61 72 65 74 28 6f 70  | .place_caret(op|
00005070  74 25 2c 31 30 2c a9 20  a4 67 65 74 5f 69 63 6f  |t%,10,. .get_ico|
00005080  6e 5f 74 65 78 74 28 6f  70 74 25 2c 31 30 29 29  |n_text(opt%,10))|
00005090  0d 20 a8 1f 20 20 20 20  20 c9 20 26 31 38 35 3a  |. ..     . &185:|
000050a0  f4 20 2d 20 46 72 6f 6d  20 4d 65 74 72 69 63 0d  |. - From Metric.|
000050b0  20 b2 17 20 20 20 20 20  20 e7 20 6d 65 74 72 69  | ..      . metri|
000050c0  63 25 3d a3 20 8c 0d 20  bc 1c 20 20 20 20 20 20  |c%=. .. ..      |
000050d0  20 f2 63 68 61 6e 67 65  5f 6d 65 74 72 69 63 28  | .change_metric(|
000050e0  b9 29 0d 20 c6 18 20 20  20 20 20 20 20 f2 74 69  |.). ..       .ti|
000050f0  63 6b 28 31 35 2c 33 2c  a3 29 0d 20 d0 18 20 20  |ck(15,3,.). ..  |
00005100  20 20 20 20 20 f2 74 69  63 6b 28 31 35 2c 32 2c  |     .tick(15,2,|
00005110  b9 29 0d 20 da 0b 20 20  20 20 20 20 cd 0d 20 e4  |.). ..      .. .|
00005120  1d 20 20 20 20 20 c9 20  26 31 38 36 3a f4 20 2d  |.     . &186:. -|
00005130  20 54 6f 20 4d 65 74 72  69 63 0d 20 ee 17 20 20  | To Metric. ..  |
00005140  20 20 20 20 e7 20 6d 65  74 72 69 63 25 3d b9 20  |    . metric%=. |
00005150  8c 0d 20 f8 1c 20 20 20  20 20 20 20 f2 63 68 61  |.. ..       .cha|
00005160  6e 67 65 5f 6d 65 74 72  69 63 28 a3 29 0d 21 02  |nge_metric(.).!.|
00005170  18 20 20 20 20 20 20 20  f2 74 69 63 6b 28 31 35  |.       .tick(15|
00005180  2c 33 2c b9 29 0d 21 0c  18 20 20 20 20 20 20 20  |,3,.).!..       |
00005190  f2 74 69 63 6b 28 31 35  2c 32 2c a3 29 0d 21 16  |.tick(15,2,.).!.|
000051a0  0b 20 20 20 20 20 20 cd  0d 21 20 0d 20 20 20 20  |.      ..! .    |
000051b0  20 c9 20 31 33 0d 21 2a  1d 20 20 20 20 20 20 c8  | . 13.!*.      .|
000051c0  8e 20 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |. window_handle%|
000051d0  20 ca 0d 21 34 12 20 20  20 20 20 20 20 c9 20 6d  | ..!4.       . m|
000051e0  61 69 6e 25 0d 21 3e 14  20 20 20 20 20 20 20 20  |ain%.!>.        |
000051f0  f2 6f 68 5f 73 6d 65 67  0d 21 48 17 20 20 20 20  |.oh_smeg.!H.    |
00005200  20 20 20 20 f2 6d 65 6e  75 5f 63 6c 6f 73 65 0d  |    .menu_close.|
00005210  21 52 1f 20 20 20 20 20  20 20 20 e7 20 62 65 65  |!R.        . bee|
00005220  70 24 3d 22 62 65 65 70  22 20 8c 20 ef 37 0d 21  |p$="beep" . .7.!|
00005230  5c 12 20 20 20 20 20 20  20 c9 20 73 61 76 65 25  |\.       . save%|
00005240  0d 21 66 2e 20 20 20 20  20 20 20 20 f2 73 61 76  |.!f.        .sav|
00005250  65 5f 6b 65 79 5f 70 72  65 73 73 28 6b 65 79 25  |e_key_press(key%|
00005260  2c 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 29 0d 21  |,icon_handle%).!|
00005270  70 0b 20 20 20 20 20 20  cb 0d 21 7a 0f 20 20 20  |p.      ..!z.   |
00005280  20 20 c9 20 26 31 41 31  0d 21 84 15 20 20 20 20  |  . &1A1.!..    |
00005290  20 20 f2 6d 65 6e 75 5f  63 6c 6f 73 65 0d 21 8e  |  .menu_close.!.|
000052a0  1f 20 20 20 20 20 20 f2  63 6c 6f 73 65 5f 77 69  |.      .close_wi|
000052b0  6e 64 6f 77 28 73 74 6f  72 65 25 29 0d 21 98 0f  |ndow(store%).!..|
000052c0  20 20 20 20 20 c9 20 26  31 41 32 0d 21 a2 15 20  |     . &1A2.!.. |
000052d0  20 20 20 20 20 f2 6d 65  6e 75 5f 63 6c 6f 73 65  |     .menu_close|
000052e0  0d 21 ac 34 20 20 20 20  20 20 f2 63 6c 6f 73 65  |.!.4      .close|
000052f0  5f 77 69 6e 64 6f 77 28  6d 61 69 6e 25 29 3a f2  |_window(main%):.|
00005300  63 6c 6f 73 65 5f 77 69  6e 64 6f 77 28 73 74 6f  |close_window(sto|
00005310  72 65 25 29 0d 21 b6 33  20 20 20 20 20 20 f2 63  |re%).!.3      .c|
00005320  6c 6f 73 65 5f 77 69 6e  64 6f 77 28 6f 70 74 25  |lose_window(opt%|
00005330  29 3a f2 63 6c 6f 73 65  5f 77 69 6e 64 6f 77 28  |):.close_window(|
00005340  6d 61 74 68 73 25 29 0d  21 c0 0f 20 20 20 20 20  |maths%).!..     |
00005350  c9 20 26 31 41 37 0d 21  ca 16 20 20 20 20 20 20  |. &1A7.!..      |
00005360  f2 64 6f 77 6e 28 74 79  70 65 25 29 0d 21 d4 0f  |.down(type%).!..|
00005370  20 20 20 20 20 c9 20 26  31 41 38 0d 21 de 14 20  |     . &1A8.!.. |
00005380  20 20 20 20 20 f2 75 70  28 74 79 70 65 25 29 0d  |     .up(type%).|
00005390  21 e8 0f 20 20 20 20 20  c9 20 26 31 41 39 0d 21  |!..     . &1A9.!|
000053a0  f2 13 20 20 20 20 20 20  f2 65 78 70 5f 64 6f 77  |..      .exp_dow|
000053b0  6e 0d 21 fc 0f 20 20 20  20 20 c9 20 26 31 45 41  |n.!..     . &1EA|
000053c0  0d 22 06 11 20 20 20 20  20 20 f2 65 78 70 5f 75  |."..      .exp_u|
000053d0  70 0d 22 10 0f 20 20 20  20 20 c9 20 26 31 38 31  |p."..     . &181|
000053e0  0d 22 1a 43 20 20 20 20  20 20 e7 20 a4 69 63 6f  |.".C      . .ico|
000053f0  6e 5f 73 65 6c 65 63 74  65 64 28 6d 61 69 6e 25  |n_selected(main%|
00005400  2c 32 33 29 20 3d 20 b9  20 8c 20 f2 73 65 6c 65  |,23) = . . .sele|
00005410  63 74 5f 69 63 6f 6e 28  6d 61 69 6e 25 2c 32 33  |ct_icon(main%,23|
00005420  2c a3 29 0d 22 24 0f 20  20 20 20 20 c9 20 26 31  |,.)."$.     . &1|
00005430  38 32 0d 22 2e 43 20 20  20 20 20 20 e7 20 a4 69  |82.".C      . .i|
00005440  63 6f 6e 5f 73 65 6c 65  63 74 65 64 28 6d 61 69  |con_selected(mai|
00005450  6e 25 2c 32 33 29 20 3d  20 a3 20 8c 20 f2 73 65  |n%,23) = . . .se|
00005460  6c 65 63 74 5f 69 63 6f  6e 28 6d 61 69 6e 25 2c  |lect_icon(main%,|
00005470  32 33 2c b9 29 0d 22 38  0f 20 20 20 20 20 c9 20  |23,.)."8.     . |
00005480  26 31 38 39 0d 22 42 18  20 20 20 20 20 20 f2 73  |&189."B.      .s|
00005490  65 6e 64 5f 74 6f 5f 73  74 6f 72 65 0d 22 4c 0f  |end_to_store."L.|
000054a0  20 20 20 20 20 c9 20 26  31 43 41 0d 22 56 1e 20  |     . &1CA."V. |
000054b0  20 20 20 20 20 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |     .open_windo|
000054c0  77 28 73 74 6f 72 65 25  29 0d 22 60 0f 20 20 20  |w(store%)."`.   |
000054d0  20 20 c9 20 26 31 43 42  0d 22 6a 1e 20 20 20 20  |  . &1CB."j.    |
000054e0  20 20 f2 6f 70 65 6e 5f  77 69 6e 64 6f 77 28 6d  |  .open_window(m|
000054f0  61 74 68 73 25 29 0d 22  74 48 20 20 20 20 20 20  |aths%)."tH      |
00005500  f2 70 6c 61 63 65 5f 63  61 72 65 74 28 6d 61 74  |.place_caret(mat|
00005510  68 73 25 2c 32 2c a9 20  a4 67 65 74 5f 69 63 6f  |hs%,2,. .get_ico|
00005520  6e 5f 74 65 78 74 28 6d  61 74 68 73 25 2c 69 63  |n_text(maths%,ic|
00005530  6f 6e 5f 68 61 6e 64 6c  65 25 2b 31 29 29 0d 22  |on_handle%+1))."|
00005540  7e 08 20 20 20 7f 0d 22  88 21 20 20 20 20 20 c8  |~.   ..".!     .|
00005550  99 22 57 69 6d 70 5f 50  72 6f 63 65 73 73 4b 65  |."Wimp_ProcessKe|
00005560  79 22 2c 6b 65 79 25 0d  22 92 09 20 20 20 20 cb  |y",key%."..    .|
00005570  0d 22 9c 05 e1 0d 22 a6  04 0d 22 b0 27 dd f2 73  |."...."...".'..s|
00005580  61 76 65 5f 6b 65 79 5f  70 72 65 73 73 28 6b 65  |ave_key_press(ke|
00005590  79 25 2c 69 63 6f 6e 5f  68 61 6e 64 6c 65 25 29  |y%,icon_handle%)|
000055a0  0d 22 ba 1b ea 20 66 69  6c 65 5f 6e 61 6d 65 24  |."... file_name$|
000055b0  2c 66 69 6c 65 5f 74 79  70 65 25 0d 22 c4 0e 20  |,file_type%.".. |
000055c0  c8 8e 20 6b 65 79 25 20  ca 0d 22 ce 41 20 20 c9  |.. key% ..".A  .|
000055d0  20 31 33 3a f4 20 22 52  65 74 75 72 6e 22 20 70  | 13:. "Return" p|
000055e0  72 65 73 73 65 64 20 77  69 74 68 20 74 68 65 20  |ressed with the |
000055f0  63 61 72 65 74 20 69 6e  20 74 68 65 20 22 73 61  |caret in the "sa|
00005600  76 65 22 20 77 69 6e 64  6f 77 0d 22 d8 1a 20 20  |ve" window."..  |
00005610  20 c8 8e 20 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  | .. window_handl|
00005620  65 25 20 ca 0d 22 e2 0f  20 20 20 20 c9 20 73 61  |e% .."..    . sa|
00005630  76 65 25 0d 22 ec 34 20  20 20 20 20 66 69 6c 65  |ve%.".4     file|
00005640  5f 6e 61 6d 65 24 3d a4  67 65 74 5f 69 63 6f 6e  |_name$=.get_icon|
00005650  5f 74 65 78 74 28 73 61  76 65 25 2c 6e 61 6d 65  |_text(save%,name|
00005660  5f 69 63 6f 6e 25 29 0d  22 f6 37 20 20 20 20 20  |_icon%).".7     |
00005670  66 69 6c 65 5f 74 79 70  65 25 3d a4 69 63 6f 6e  |file_type%=.icon|
00005680  5f 73 70 72 69 74 65 5f  74 79 70 65 28 73 61 76  |_sprite_type(sav|
00005690  65 25 2c 66 69 6c 65 5f  69 63 6f 6e 25 29 0d 23  |e%,file_icon%).#|
000056a0  00 1d 20 20 20 20 20 e7  20 a7 66 69 6c 65 5f 6e  |..     . .file_n|
000056b0  61 6d 65 24 2c 22 2e 22  29 20 8c 0d 23 0a 4d 20  |ame$,".") ..#.M |
000056c0  20 20 20 20 20 20 f2 73  61 76 65 5f 64 61 74 61  |      .save_data|
000056d0  28 66 69 6c 65 5f 6e 61  6d 65 24 2c 66 69 6c 65  |(file_name$,file|
000056e0  5f 74 79 70 65 25 2c 73  61 76 65 5f 61 72 65 61  |_type%,save_area|
000056f0  5f 73 74 61 72 74 25 2c  73 61 76 65 5f 64 61 74  |_start%,save_dat|
00005700  61 5f 73 69 7a 65 25 29  0d 23 14 16 20 20 20 20  |a_size%).#..    |
00005710  20 20 20 f2 6d 65 6e 75  5f 63 6c 6f 73 65 0d 23  |   .menu_close.#|
00005720  1e 0a 20 20 20 20 20 cc  0d 23 28 4b 20 20 20 20  |..     ..#(K    |
00005730  20 20 20 f2 72 65 70 6f  72 74 5f 65 72 72 6f 72  |   .report_error|
00005740  28 22 44 72 61 67 20 74  68 65 20 66 69 6c 65 20  |("Drag the file |
00005750  74 6f 20 61 20 64 69 72  65 63 74 6f 72 79 20 64  |to a directory d|
00005760  69 73 70 6c 61 79 2e 22  2c 61 70 70 5f 6e 61 6d  |isplay.",app_nam|
00005770  65 24 29 0d 23 32 0a 20  20 20 20 20 cd 0d 23 3c  |e$).#2.     ..#<|
00005780  13 20 20 20 20 c9 20 73  61 76 65 5f 63 73 76 25  |.    . save_csv%|
00005790  0d 23 46 38 20 20 20 20  20 66 69 6c 65 5f 6e 61  |.#F8     file_na|
000057a0  6d 65 24 3d a4 67 65 74  5f 69 63 6f 6e 5f 74 65  |me$=.get_icon_te|
000057b0  78 74 28 73 61 76 65 5f  63 73 76 25 2c 6e 61 6d  |xt(save_csv%,nam|
000057c0  65 5f 69 63 6f 6e 25 29  0d 23 50 3b 20 20 20 20  |e_icon%).#P;    |
000057d0  20 66 69 6c 65 5f 74 79  70 65 25 3d a4 69 63 6f  | file_type%=.ico|
000057e0  6e 5f 73 70 72 69 74 65  5f 74 79 70 65 28 73 61  |n_sprite_type(sa|
000057f0  76 65 5f 63 73 76 25 2c  66 69 6c 65 5f 69 63 6f  |ve_csv%,file_ico|
00005800  6e 25 29 0d 23 5a 1d 20  20 20 20 20 e7 20 a7 66  |n%).#Z.     . .f|
00005810  69 6c 65 5f 6e 61 6d 65  24 2c 22 2e 22 29 20 8c  |ile_name$,".") .|
00005820  0d 23 64 4d 20 20 20 20  20 20 20 f2 73 61 76 65  |.#dM       .save|
00005830  5f 64 61 74 61 28 66 69  6c 65 5f 6e 61 6d 65 24  |_data(file_name$|
00005840  2c 66 69 6c 65 5f 74 79  70 65 25 2c 73 61 76 65  |,file_type%,save|
00005850  5f 61 72 65 61 5f 73 74  61 72 74 25 2c 73 61 76  |_area_start%,sav|
00005860  65 5f 64 61 74 61 5f 73  69 7a 65 25 29 0d 23 6e  |e_data_size%).#n|
00005870  16 20 20 20 20 20 20 20  f2 6d 65 6e 75 5f 63 6c  |.       .menu_cl|
00005880  6f 73 65 0d 23 78 0a 20  20 20 20 20 cc 0d 23 82  |ose.#x.     ..#.|
00005890  4b 20 20 20 20 20 20 20  f2 72 65 70 6f 72 74 5f  |K       .report_|
000058a0  65 72 72 6f 72 28 22 44  72 61 67 20 74 68 65 20  |error("Drag the |
000058b0  66 69 6c 65 20 74 6f 20  61 20 64 69 72 65 63 74  |file to a direct|
000058c0  6f 72 79 20 64 69 73 70  6c 61 79 2e 22 2c 61 70  |ory display.",ap|
000058d0  70 5f 6e 61 6d 65 24 29  0d 23 8c 0a 20 20 20 20  |p_name$).#..    |
000058e0  20 cd 0d 23 96 07 20 20  cb 0d 23 a0 06 20 cb 0d  | ..#..  ..#.. ..|
000058f0  23 aa 05 e1 0d 23 b4 04  0d 23 be 10 dd 20 f2 6d  |#....#...#... .m|
00005900  61 74 68 5f 63 61 6c 63  0d 23 c8 25 6d 61 74 68  |ath_calc.#.%math|
00005910  73 5f 61 24 3d a4 67 65  74 5f 69 63 6f 6e 5f 74  |s_a$=.get_icon_t|
00005920  65 78 74 28 6d 61 74 68  73 25 2c 32 29 0d 23 d2  |ext(maths%,2).#.|
00005930  25 6d 61 74 68 73 5f 62  24 3d a4 67 65 74 5f 69  |%maths_b$=.get_i|
00005940  63 6f 6e 5f 74 65 78 74  28 6d 61 74 68 73 25 2c  |con_text(maths%,|
00005950  35 29 0d 23 dc 04 0d 23  e6 22 20 c8 8e 20 a4 67  |5).#...#." .. .g|
00005960  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 6d 61 74  |et_icon_text(mat|
00005970  68 73 25 2c 34 29 20 ca  0d 23 f0 0e 20 20 c9 20  |hs%,4) ..#..  . |
00005980  22 50 6c 75 73 22 0d 23  fa 3a 20 20 20 f2 70 75  |"Plus".#.:   .pu|
00005990  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 74 68  |t_icon_text(math|
000059a0  73 25 2c 39 2c c3 28 bb  28 6d 61 74 68 73 5f 61  |s%,9,.(.(maths_a|
000059b0  24 29 2b bb 28 6d 61 74  68 73 5f 62 24 29 29 29  |$)+.(maths_b$)))|
000059c0  0d 24 04 0f 20 20 c9 20  22 4d 69 6e 75 73 22 0d  |.$..  . "Minus".|
000059d0  24 0e 3a 20 20 20 f2 70  75 74 5f 69 63 6f 6e 5f  |$.:   .put_icon_|
000059e0  74 65 78 74 28 6d 61 74  68 73 25 2c 39 2c c3 28  |text(maths%,9,.(|
000059f0  bb 28 6d 61 74 68 73 5f  61 24 29 2d bb 28 6d 61  |.(maths_a$)-.(ma|
00005a00  74 68 73 5f 62 24 29 29  29 0d 24 18 17 20 20 c9  |ths_b$))).$..  .|
00005a10  20 22 4d 75 6c 74 69 70  6c 69 65 64 20 62 79 22  | "Multiplied by"|
00005a20  0d 24 22 3a 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |.$":   .put_icon|
00005a30  5f 74 65 78 74 28 6d 61  74 68 73 25 2c 39 2c c3  |_text(maths%,9,.|
00005a40  28 bb 28 6d 61 74 68 73  5f 61 24 29 2a bb 28 6d  |(.(maths_a$)*.(m|
00005a50  61 74 68 73 5f 62 24 29  29 29 0d 24 2c 14 20 20  |aths_b$))).$,.  |
00005a60  c9 20 22 44 69 76 69 64  65 64 20 62 79 22 0d 24  |. "Divided by".$|
00005a70  36 3a 20 20 20 f2 70 75  74 5f 69 63 6f 6e 5f 74  |6:   .put_icon_t|
00005a80  65 78 74 28 6d 61 74 68  73 25 2c 39 2c c3 28 bb  |ext(maths%,9,.(.|
00005a90  28 6d 61 74 68 73 5f 61  24 29 2f bb 28 6d 61 74  |(maths_a$)/.(mat|
00005aa0  68 73 5f 62 24 29 29 29  0d 24 40 06 20 cb 0d 24  |hs_b$))).$@. ..$|
00005ab0  4a 05 e1 0d 24 54 04 0d  24 5e 13 dd 20 f2 73 61  |J...$T..$^.. .sa|
00005ac0  76 65 5f 72 65 71 75 65  73 74 0d 24 68 24 ea 20  |ve_request.$h$. |
00005ad0  74 6f 5f 77 69 6e 64 6f  77 25 2c 74 6f 5f 69 63  |to_window%,to_ic|
00005ae0  6f 6e 25 2c 64 61 74 61  5f 74 79 70 65 25 0d 24  |on%,data_type%.$|
00005af0  72 32 f4 20 41 6e 6f 74  68 65 72 20 74 61 73 6b  |r2. Another task|
00005b00  20 77 61 6e 74 73 20 74  6f 20 73 61 76 65 20 64  | wants to save d|
00005b10  61 74 61 20 74 6f 20 74  68 69 73 20 74 61 73 6b  |ata to this task|
00005b20  0d 24 7c 16 74 6f 5f 77  69 6e 64 6f 77 25 3d 62  |.$|.to_window%=b|
00005b30  6c 6b 25 21 32 30 0d 24  86 14 74 6f 5f 69 63 6f  |lk%!20.$..to_ico|
00005b40  6e 25 3d 62 6c 6b 25 21  32 34 0d 24 90 16 64 61  |n%=blk%!24.$..da|
00005b50  74 61 5f 74 79 70 65 25  3d 62 6c 6b 25 21 34 30  |ta_type%=blk%!40|
00005b60  0d 24 9a 15 20 20 c8 8e  20 64 61 74 61 5f 74 79  |.$..  .. data_ty|
00005b70  70 65 25 20 ca 0d 24 a4  0e 20 20 20 20 c9 20 26  |pe% ..$..    . &|
00005b80  46 46 46 0d 24 ae 20 20  20 20 20 20 20 f4 20 44  |FFF.$.       . D|
00005b90  61 74 61 20 69 73 20 6f  66 20 74 65 78 74 20 74  |ata is of text t|
00005ba0  79 70 65 0d 24 b8 23 20  20 20 20 20 20 f4 20 53  |ype.$.#      . S|
00005bb0  65 6e 64 20 62 61 63 6b  20 61 6e 20 4f 4b 20 6d  |end back an OK m|
00005bc0  65 73 73 61 67 65 0d 24  c2 3c 20 20 20 20 20 20  |essage.$.<      |
00005bd0  f2 6d 65 73 73 61 67 65  5f 73 61 76 65 5f 6f 6b  |.message_save_ok|
00005be0  28 6c 6f 61 64 5f 61 72  65 61 5f 73 74 61 72 74  |(load_area_start|
00005bf0  25 2c 6c 6f 61 64 5f 61  72 65 61 5f 73 69 7a 65  |%,load_area_size|
00005c00  25 29 0d 24 cc 07 20 20  cb 0d 24 d6 05 e1 0d 24  |%).$..  ..$....$|
00005c10  e0 04 0d 24 ea 12 dd f2  6c 6f 61 64 5f 72 65 71  |...$....load_req|
00005c20  75 65 73 74 0d 24 f4 1b  ea 20 66 69 6c 65 5f 74  |uest.$... file_t|
00005c30  79 70 65 25 2c 66 69 6c  65 5f 6e 61 6d 65 24 0d  |ype%,file_name$.|
00005c40  24 fe 16 66 69 6c 65 5f  74 79 70 65 25 3d 62 6c  |$..file_type%=bl|
00005c50  6b 25 21 34 30 0d 25 08  15 20 20 c8 8e 20 66 69  |k%!40.%..  .. fi|
00005c60  6c 65 5f 74 79 70 65 25  20 ca 0d 25 12 0e 20 20  |le_type% ..%..  |
00005c70  20 20 c9 20 26 46 46 46  0d 25 1c 2d 20 20 20 20  |  . &FFF.%.-    |
00005c80  20 20 66 69 6c 65 5f 6e  61 6d 65 24 3d a4 67 65  |  file_name$=.ge|
00005c90  74 5f 73 74 72 69 6e 67  28 62 6c 6b 25 2b 34 34  |t_string(blk%+44|
00005ca0  2c 32 35 35 29 0d 25 26  49 20 20 20 20 20 20 6c  |,255).%&I      l|
00005cb0  6f 61 64 5f 64 61 74 61  5f 73 69 7a 65 25 3d a4  |oad_data_size%=.|
00005cc0  6d 65 73 73 61 67 65 5f  6c 6f 61 64 28 6c 6f 61  |message_load(loa|
00005cd0  64 5f 61 72 65 61 5f 73  74 61 72 74 25 2c 6c 6f  |d_area_start%,lo|
00005ce0  61 64 5f 61 72 65 61 5f  73 69 7a 65 25 29 0d 25  |ad_area_size%).%|
00005cf0  30 07 20 20 cb 0d 25 3a  05 e1 0d 25 44 04 0d 25  |0.  ..%:...%D..%|
00005d00  4e 11 dd f2 73 61 76 65  5f 64 65 6d 61 6e 64 0d  |N...save_demand.|
00005d10  25 58 1b ea 20 66 69 6c  65 5f 6e 61 6d 65 24 2c  |%X.. file_name$,|
00005d20  66 69 6c 65 5f 74 79 70  65 25 0d 25 62 27 66 69  |file_type%.%b'fi|
00005d30  6c 65 5f 6e 61 6d 65 24  3d a4 67 65 74 5f 73 74  |le_name$=.get_st|
00005d40  72 69 6e 67 28 62 6c 6b  25 2b 34 34 2c 32 35 35  |ring(blk%+44,255|
00005d50  29 0d 25 6c 2c e7 20 62  6c 6b 25 21 33 36 3d 2d  |).%l,. blk%!36=-|
00005d60  31 20 8c 20 74 6f 5f 66  69 6c 65 72 25 3d a3 20  |1 . to_filer%=. |
00005d70  8b 20 74 6f 5f 66 69 6c  65 72 25 3d b9 0d 25 76  |. to_filer%=..%v|
00005d80  16 66 69 6c 65 5f 74 79  70 65 25 3d 62 6c 6b 25  |.file_type%=blk%|
00005d90  21 34 30 0d 25 80 16 20  c8 8e 20 64 72 61 67 5f  |!40.%.. .. drag_|
00005da0  77 69 6e 64 6f 77 25 20  ca 0d 25 8a 17 20 20 c9  |window% ..%..  .|
00005db0  20 73 61 76 65 25 2c 73  61 76 65 5f 63 73 76 25  | save%,save_csv%|
00005dc0  0d 25 94 49 20 20 20 f2  73 61 76 65 5f 64 61 74  |.%.I   .save_dat|
00005dd0  61 28 66 69 6c 65 5f 6e  61 6d 65 24 2c 66 69 6c  |a(file_name$,fil|
00005de0  65 5f 74 79 70 65 25 2c  73 61 76 65 5f 61 72 65  |e_type%,save_are|
00005df0  61 5f 73 74 61 72 74 25  2c 73 61 76 65 5f 64 61  |a_start%,save_da|
00005e00  74 61 5f 73 69 7a 65 25  29 0d 25 9e 1a 20 20 20  |ta_size%).%..   |
00005e10  f2 6d 65 73 73 61 67 65  5f 73 61 76 65 5f 72 65  |.message_save_re|
00005e20  70 6c 79 0d 25 a8 3c 20  20 20 e7 20 74 6f 5f 66  |ply.%.<   . to_f|
00005e30  69 6c 65 72 25 20 f2 70  75 74 5f 69 63 6f 6e 5f  |iler% .put_icon_|
00005e40  74 65 78 74 28 64 72 61  67 5f 77 69 6e 64 6f 77  |text(drag_window|
00005e50  25 2c 32 2c 66 69 6c 65  5f 6e 61 6d 65 24 29 0d  |%,2,file_name$).|
00005e60  25 b2 0d 20 20 c9 20 6d  61 69 6e 25 0d 25 bc 49  |%..  . main%.%.I|
00005e70  20 20 20 f2 73 61 76 65  5f 64 61 74 61 28 66 69  |   .save_data(fi|
00005e80  6c 65 5f 6e 61 6d 65 24  2c 66 69 6c 65 5f 74 79  |le_name$,file_ty|
00005e90  70 65 25 2c 73 61 76 65  5f 61 72 65 61 5f 73 74  |pe%,save_area_st|
00005ea0  61 72 74 25 2c 73 61 76  65 5f 64 61 74 61 5f 73  |art%,save_data_s|
00005eb0  69 7a 65 25 29 0d 25 c6  1a 20 20 20 f2 6d 65 73  |ize%).%..   .mes|
00005ec0  73 61 67 65 5f 73 61 76  65 5f 72 65 70 6c 79 0d  |sage_save_reply.|
00005ed0  25 d0 06 20 cb 0d 25 da  0f f2 6d 65 6e 75 5f 63  |%.. ..%...menu_c|
00005ee0  6c 6f 73 65 0d 25 e4 05  e1 0d 25 ee 04 0d 25 f8  |lose.%....%...%.|
00005ef0  14 dd f2 6d 65 6e 75 5f  73 65 6c 65 63 74 69 6f  |...menu_selectio|
00005f00  6e 0d 26 02 1c 20 ea 20  6d 65 6e 75 5f 70 61 74  |n.&.. . menu_pat|
00005f10  68 24 2c 6d 65 6e 75 5f  69 74 65 6d 24 0d 26 0c  |h$,menu_item$.&.|
00005f20  31 20 20 6d 65 6e 75 5f  70 61 74 68 24 3d a4 64  |1  menu_path$=.d|
00005f30  65 63 6f 64 65 5f 6d 65  6e 75 28 63 75 72 72 65  |ecode_menu(curre|
00005f40  6e 74 5f 6d 65 6e 75 25  2c 62 6c 6b 25 29 0d 26  |nt_menu%,blk%).&|
00005f50  16 22 20 20 6d 65 6e 75  5f 69 74 65 6d 24 3d a4  |."  menu_item$=.|
00005f60  6c 65 61 66 28 6d 65 6e  75 5f 70 61 74 68 24 29  |leaf(menu_path$)|
00005f70  0d 26 20 19 20 20 20 c8  8e 20 63 75 72 72 65 6e  |.& .   .. curren|
00005f80  74 5f 6d 65 6e 75 25 20  ca 0d 26 2a 12 20 20 20  |t_menu% ..&*.   |
00005f90  20 c9 20 6d 65 6e 75 25  28 31 29 0d 26 34 1f 20  | . menu%(1).&4. |
00005fa0  20 20 20 20 f2 6d 61 69  6e 5f 6d 65 6e 75 28 6d  |    .main_menu(m|
00005fb0  65 6e 75 5f 69 74 65 6d  24 29 0d 26 3e 12 20 20  |enu_item$).&>.  |
00005fc0  20 20 c9 20 6d 65 6e 75  25 28 32 29 0d 26 48 24  |  . menu%(2).&H$|
00005fd0  20 20 20 20 20 f2 64 61  74 61 5f 74 79 70 65 5f  |     .data_type_|
00005fe0  6d 65 6e 75 28 6d 65 6e  75 5f 69 74 65 6d 24 29  |menu(menu_item$)|
00005ff0  0d 26 52 12 20 20 20 20  c9 20 6d 65 6e 75 25 28  |.&R.    . menu%(|
00006000  33 29 0d 26 5c 24 20 20  20 20 20 f2 6c 65 6e 67  |3).&\$     .leng|
00006010  74 68 5f 6d 74 5f 6d 65  6e 75 28 6d 65 6e 75 5f  |th_mt_menu(menu_|
00006020  69 74 65 6d 24 29 0d 26  66 12 20 20 20 20 c9 20  |item$).&f.    . |
00006030  6d 65 6e 75 25 28 34 29  0d 26 70 21 20 20 20 20  |menu%(4).&p!    |
00006040  20 f2 6c 65 6e 67 74 68  5f 6d 65 6e 75 28 6d 65  | .length_menu(me|
00006050  6e 75 5f 69 74 65 6d 24  29 0d 26 7a 12 20 20 20  |nu_item$).&z.   |
00006060  20 c9 20 6d 65 6e 75 25  28 35 29 0d 26 84 22 20  | . menu%(5).&." |
00006070  20 20 20 20 f2 61 72 65  61 5f 6d 74 5f 6d 65 6e  |    .area_mt_men|
00006080  75 28 6d 65 6e 75 5f 69  74 65 6d 24 29 0d 26 8e  |u(menu_item$).&.|
00006090  12 20 20 20 20 c9 20 6d  65 6e 75 25 28 36 29 0d  |.    . menu%(6).|
000060a0  26 98 1f 20 20 20 20 20  f2 61 72 65 61 5f 6d 65  |&..     .area_me|
000060b0  6e 75 28 6d 65 6e 75 5f  69 74 65 6d 24 29 0d 26  |nu(menu_item$).&|
000060c0  a2 12 20 20 20 20 c9 20  6d 65 6e 75 25 28 37 29  |..    . menu%(7)|
000060d0  0d 26 ac 22 20 20 20 20  20 f2 6d 61 73 73 5f 6d  |.&."     .mass_m|
000060e0  74 5f 6d 65 6e 75 28 6d  65 6e 75 5f 69 74 65 6d  |t_menu(menu_item|
000060f0  24 29 0d 26 b6 12 20 20  20 20 c9 20 6d 65 6e 75  |$).&..    . menu|
00006100  25 28 38 29 0d 26 c0 1f  20 20 20 20 20 f2 6d 61  |%(8).&..     .ma|
00006110  73 73 5f 6d 65 6e 75 28  6d 65 6e 75 5f 69 74 65  |ss_menu(menu_ite|
00006120  6d 24 29 0d 26 ca 12 20  20 20 20 c9 20 6d 65 6e  |m$).&..    . men|
00006130  75 25 28 39 29 0d 26 d4  24 20 20 20 20 20 f2 76  |u%(9).&.$     .v|
00006140  6f 6c 75 6d 65 5f 6d 74  5f 6d 65 6e 75 28 6d 65  |olume_mt_menu(me|
00006150  6e 75 5f 69 74 65 6d 24  29 0d 26 de 13 20 20 20  |nu_item$).&..   |
00006160  20 c9 20 6d 65 6e 75 25  28 31 30 29 0d 26 e8 21  | . menu%(10).&.!|
00006170  20 20 20 20 20 f2 76 6f  6c 75 6d 65 5f 6d 65 6e  |     .volume_men|
00006180  75 28 6d 65 6e 75 5f 69  74 65 6d 24 29 0d 26 f2  |u(menu_item$).&.|
00006190  13 20 20 20 20 c9 20 6d  65 6e 75 25 28 31 31 29  |.    . menu%(11)|
000061a0  0d 26 fc 26 20 20 20 20  20 f2 63 61 70 61 63 69  |.&.&     .capaci|
000061b0  74 79 5f 6d 74 5f 6d 65  6e 75 28 6d 65 6e 75 5f  |ty_mt_menu(menu_|
000061c0  69 74 65 6d 24 29 0d 27  06 13 20 20 20 20 c9 20  |item$).'..    . |
000061d0  6d 65 6e 75 25 28 31 32  29 0d 27 10 23 20 20 20  |menu%(12).'.#   |
000061e0  20 20 f2 63 61 70 61 63  69 74 79 5f 6d 65 6e 75  |  .capacity_menu|
000061f0  28 6d 65 6e 75 5f 69 74  65 6d 24 29 0d 27 1a 13  |(menu_item$).'..|
00006200  20 20 20 20 c9 20 6d 65  6e 75 25 28 31 33 29 0d  |    . menu%(13).|
00006210  27 24 22 20 20 20 20 20  f2 74 65 6d 70 5f 6d 74  |'$"     .temp_mt|
00006220  5f 6d 65 6e 75 28 6d 65  6e 75 5f 69 74 65 6d 24  |_menu(menu_item$|
00006230  29 0d 27 2e 13 20 20 20  20 c9 20 6d 65 6e 75 25  |).'..    . menu%|
00006240  28 31 34 29 0d 27 38 1f  20 20 20 20 20 f2 74 65  |(14).'8.     .te|
00006250  6d 70 5f 6d 65 6e 75 28  6d 65 6e 75 5f 69 74 65  |mp_menu(menu_ite|
00006260  6d 24 29 0d 27 42 13 20  20 20 20 c9 20 6d 65 6e  |m$).'B.    . men|
00006270  75 25 28 31 35 29 0d 27  4c 1a 20 20 20 20 20 f2  |u%(15).'L.     .|
00006280  6d 65 6e 75 28 6d 65 6e  75 5f 69 74 65 6d 24 29  |menu(menu_item$)|
00006290  0d 27 56 13 20 20 20 20  c9 20 6d 65 6e 75 25 28  |.'V.    . menu%(|
000062a0  31 37 29 0d 27 60 20 20  20 20 20 20 f2 73 74 6f  |17).'`      .sto|
000062b0  72 65 5f 6d 65 6e 75 28  6d 65 6e 75 5f 69 74 65  |re_menu(menu_ite|
000062c0  6d 24 29 0d 27 6a 13 20  20 20 20 c9 20 6d 65 6e  |m$).'j.    . men|
000062d0  75 25 28 31 38 29 0d 27  74 20 20 20 20 20 20 f2  |u%(18).'t      .|
000062e0  6d 61 74 68 73 5f 6d 65  6e 75 28 6d 65 6e 75 5f  |maths_menu(menu_|
000062f0  69 74 65 6d 24 29 0d 27  7e 08 20 20 20 cb 0d 27  |item$).'~.   ..'|
00006300  88 23 20 20 c8 99 22 57  69 6d 70 5f 47 65 74 50  |.#  .."Wimp_GetP|
00006310  6f 69 6e 74 65 72 49 6e  66 6f 22 2c 2c 62 6c 6b  |ointerInfo",,blk|
00006320  25 0d 27 92 42 20 20 e7  62 6c 6b 25 21 38 3d 31  |%.'.B  .blk%!8=1|
00006330  20 c8 99 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  | .."Wimp_CreateM|
00006340  65 6e 75 22 2c 2c 63 75  72 72 65 6e 74 5f 6d 65  |enu",,current_me|
00006350  6e 75 25 2c 6d 65 6e 75  5f 78 25 2c 6d 65 6e 75  |nu%,menu_x%,menu|
00006360  5f 79 25 0d 27 9c 05 e1  0d 27 a6 04 0d 27 b0 14  |_y%.'....'...'..|
00006370  dd f2 73 63 72 6f 6c 6c  5f 72 65 71 75 65 73 74  |..scroll_request|
00006380  0d 27 ba 05 e1 0d 27 c4  04 0d 27 ce 11 dd f2 6c  |.'....'...'....l|
00006390  6f 6f 73 65 5f 63 61 72  65 74 0d 27 d8 05 e1 0d  |oose_caret.'....|
000063a0  27 e2 04 0d 27 ec 10 dd  f2 67 61 69 6e 5f 63 61  |'...'....gain_ca|
000063b0  72 65 74 0d 27 f6 05 e1  0d 28 00 04 0d 28 0a 0d  |ret.'....(...(..|
000063c0  dd f2 6d 65 73 73 61 67  65 0d 28 14 13 ea 20 6d  |..message.(... m|
000063d0  65 73 73 61 67 65 5f 74  79 70 65 25 0d 28 1e 19  |essage_type%.(..|
000063e0  6d 65 73 73 61 67 65 5f  74 79 70 65 25 3d 62 6c  |message_type%=bl|
000063f0  6b 25 21 31 36 0d 28 28  17 20 c8 8e 20 6d 65 73  |k%!16.((. .. mes|
00006400  73 61 67 65 5f 74 79 70  65 25 20 ca 0d 28 32 09  |sage_type% ..(2.|
00006410  20 20 c9 20 30 0d 28 3c  0e 20 20 20 71 75 69 74  |  . 0.(<.   quit|
00006420  25 3d b9 0d 28 46 09 20  20 c9 20 31 0d 28 50 14  |%=..(F.  . 1.(P.|
00006430  20 20 20 f2 73 61 76 65  5f 72 65 71 75 65 73 74  |   .save_request|
00006440  0d 28 5a 09 20 20 c9 20  37 0d 28 64 14 20 20 20  |.(Z.  . 7.(d.   |
00006450  f2 72 61 6d 5f 74 72 61  6e 73 6d 69 74 0d 28 6e  |.ram_transmit.(n|
00006460  09 20 20 c9 20 33 0d 28  78 14 20 20 20 f2 6c 6f  |.  . 3.(x.   .lo|
00006470  61 64 5f 72 65 71 75 65  73 74 0d 28 82 09 20 20  |ad_request.(..  |
00006480  c9 20 32 0d 28 8c 13 20  20 20 f2 73 61 76 65 5f  |. 2.(..   .save_|
00006490  64 65 6d 61 6e 64 0d 28  96 09 20 20 c9 20 36 0d  |demand.(..  . 6.|
000064a0  28 a0 1a 20 20 20 f2 72  61 6d 5f 74 72 61 6e 73  |(..   .ram_trans|
000064b0  66 65 72 5f 72 65 70 6c  79 0d 28 aa 09 20 20 c9  |fer_reply.(..  .|
000064c0  20 34 0d 28 b4 12 20 20  20 f2 6d 65 6e 75 5f 63  | 4.(..   .menu_c|
000064d0  6c 6f 73 65 0d 28 be 09  20 20 c9 20 35 0d 28 c8  |lose.(..  . 5.(.|
000064e0  0c 20 20 c9 20 26 35 30  32 0d 28 d2 10 20 20 20  |.  . &502.(..   |
000064f0  f2 67 65 74 5f 68 65 6c  70 0d 28 dc 06 20 cb 0d  |.get_help.(.. ..|
00006500  28 e6 05 e1 0d 28 f0 04  0d 28 fa 0f dd 20 f2 67  |(....(...(... .g|
00006510  65 74 5f 68 65 6c 70 0d  29 04 1b 20 77 69 6e 64  |et_help.).. wind|
00006520  6f 77 5f 68 61 6e 64 6c  65 25 3d 62 6c 6b 25 21  |ow_handle%=blk%!|
00006530  33 32 0d 29 0e 19 20 69  63 6f 6e 5f 68 61 6e 64  |32.).. icon_hand|
00006540  6c 65 25 3d 62 6c 6b 25  21 33 36 0d 29 18 18 20  |le%=blk%!36.).. |
00006550  c8 8e 20 77 69 6e 64 6f  77 5f 68 61 6e 64 6c 65  |.. window_handle|
00006560  25 20 ca 0d 29 22 0e 20  20 c9 20 6d 61 74 68 73  |% ..)".  . maths|
00006570  25 0d 29 2c 18 20 20 20  c8 8e 20 69 63 6f 6e 5f  |%.),.   .. icon_|
00006580  68 61 6e 64 6c 65 25 20  ca 0d 29 36 0d 20 20 20  |handle% ..)6.   |
00006590  20 c9 20 32 2c 35 0d 29  40 5a 20 20 20 20 20 f2  | . 2,5.)@Z     .|
000065a0  67 69 76 65 5f 68 65 6c  70 28 22 45 6e 74 65 72  |give_help("Enter|
000065b0  20 61 20 6e 75 6d 62 65  72 20 74 6f 20 61 64 64  | a number to add|
000065c0  2c 20 73 75 62 74 72 61  63 74 20 6d 75 6c 74 69  |, subtract multi|
000065d0  70 6c 79 2c 20 6f 72 20  64 69 76 69 64 65 20 69  |ply, or divide i|
000065e0  6e 74 6f 20 74 68 69 73  20 69 63 6f 6e 2e 22 29  |nto this icon.")|
000065f0  0d 29 4a 0b 20 20 20 20  c9 20 34 0d 29 54 7a 20  |.)J.    . 4.)Tz |
00006600  20 20 20 20 f2 67 69 76  65 5f 68 65 6c 70 28 22  |    .give_help("|
00006610  54 68 65 73 65 20 73 68  6f 77 73 20 74 68 65 20  |These shows the |
00006620  61 72 74 68 69 6d 65 74  69 63 20 6f 70 65 72 61  |arthimetic opera|
00006630  74 69 6f 6e 20 74 6f 20  62 65 20 70 65 72 66 6f  |tion to be perfo|
00006640  72 6d 65 64 20 75 70 6f  6e 20 74 68 65 20 6e 75  |rmed upon the nu|
00006650  6d 62 65 72 73 20 69 6e  20 74 68 65 20 74 77 6f  |mbers in the two|
00006660  20 69 63 6f 6e 73 20 74  6f 20 74 68 65 20 6c 65  | icons to the le|
00006670  66 74 2e 22 29 0d 29 5e  0b 20 20 20 20 c9 20 38  |ft.").)^.    . 8|
00006680  0d 29 68 2f 20 20 20 20  20 f2 67 69 76 65 5f 68  |.)h/     .give_h|
00006690  65 6c 70 28 22 43 6c 69  63 6b 20 68 65 72 65 20  |elp("Click here |
000066a0  74 6f 20 63 61 6c 63 75  6c 61 74 65 2e 22 29 0d  |to calculate.").|
000066b0  29 72 0b 20 20 20 20 c9  20 39 0d 29 7c 2a 20 20  |)r.    . 9.)|*  |
000066c0  20 20 20 e7 20 a4 67 65  74 5f 69 63 6f 6e 5f 74  |   . .get_icon_t|
000066d0  65 78 74 28 6d 61 74 68  73 25 2c 39 29 3d 22 34  |ext(maths%,9)="4|
000066e0  32 22 20 8c 0d 29 86 4c  20 20 20 20 20 20 f2 67  |2" ..).L      .g|
000066f0  69 76 65 5f 68 65 6c 70  28 22 54 68 65 20 6d 65  |ive_help("The me|
00006700  61 6e 69 6e 67 20 6f 66  20 6c 69 66 65 2c 20 74  |aning of life, t|
00006710  68 65 20 75 6e 69 76 65  72 73 65 2c 20 61 6e 64  |he universe, and|
00006720  20 65 76 65 72 79 74 68  69 6e 67 2e 2e 2e 22 29  | everything...")|
00006730  0d 29 90 0a 20 20 20 20  20 cc 0d 29 9a 33 20 20  |.)..     ..).3  |
00006740  20 20 20 20 f2 67 69 76  65 5f 68 65 6c 70 28 22  |    .give_help("|
00006750  54 68 69 73 20 69 63 6f  6e 20 73 68 6f 77 73 20  |This icon shows |
00006760  74 68 65 20 61 6e 73 77  65 72 2e 22 29 0d 29 a4  |the answer.").).|
00006770  0a 20 20 20 20 20 cd 0d  29 ae 08 20 20 20 cb 0d  |.     ..)..   ..|
00006780  29 b8 0a 20 20 c9 20 2d  32 0d 29 c2 90 20 20 20  |)..  . -2.)..   |
00006790  f2 67 69 76 65 5f 68 65  6c 70 28 22 54 68 69 73  |.give_help("This|
000067a0  20 69 73 20 74 68 65 20  44 65 73 6b 74 6f 70 20  | is the Desktop |
000067b0  43 6f 6e 76 65 72 74 65  72 20 69 63 6f 6e 2e 7c  |Converter icon.||
000067c0  4d 43 6c 69 63 6b 20 53  45 4c 45 43 54 20 6f 72  |MClick SELECT or|
000067d0  20 41 44 4a 55 53 54 20  74 6f 20 6f 70 65 6e 20  | ADJUST to open |
000067e0  74 68 65 20 6d 61 69 6e  20 77 69 6e 64 6f 77 2e  |the main window.|
000067f0  7c 4d 43 6c 69 63 6b 20  4d 45 4e 55 20 74 6f 20  ||MClick MENU to |
00006800  6f 70 65 6e 20 74 68 65  20 69 63 6f 6e 20 62 61  |open the icon ba|
00006810  72 20 6d 65 6e 75 2e 22  29 0d 29 cc 0d 20 20 c9  |r menu.").)..  .|
00006820  20 69 6e 66 6f 25 0d 29  d6 18 20 20 20 c8 8e 20  | info%.)..   .. |
00006830  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 20 ca 0d 29  |icon_handle% ..)|
00006840  e0 0b 20 20 20 20 c9 20  31 0d 29 ea 29 20 20 20  |..    . 1.).)   |
00006850  20 20 f2 67 69 76 65 5f  68 65 6c 70 28 22 44 65  |  .give_help("De|
00006860  73 6b 74 6f 70 20 43 6f  6e 76 65 72 74 65 72 2e  |sktop Converter.|
00006870  22 29 0d 29 f4 0b 20 20  20 20 c9 20 32 0d 29 fe  |").)..    . 2.).|
00006880  27 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |'     .give_help|
00006890  28 22 55 6e 69 74 20 63  6f 6e 76 65 72 73 69 6f  |("Unit conversio|
000068a0  6e 2e 22 29 0d 2a 08 0b  20 20 20 20 c9 20 33 0d  |n.").*..    . 3.|
000068b0  2a 12 26 20 20 20 20 20  f2 67 69 76 65 5f 68 65  |*.&     .give_he|
000068c0  6c 70 28 22 54 68 6f 6d  61 73 20 42 61 6c 64 77  |lp("Thomas Baldw|
000068d0  69 6e 2e 22 29 0d 2a 1c  0b 20 20 20 20 c9 20 34  |in.").*..    . 4|
000068e0  0d 2a 26 32 20 20 20 20  20 f2 67 69 76 65 5f 68  |.*&2     .give_h|
000068f0  65 6c 70 28 22 56 65 72  73 69 6f 6e 20 31 2e 30  |elp("Version 1.0|
00006900  35 2c 20 4a 61 6e 75 61  72 79 20 31 39 39 35 2e  |5, January 1995.|
00006910  22 29 0d 2a 30 09 20 20  20 20 7f 0d 2a 3a 2f 20  |").*0.    ..*:/ |
00006920  20 20 20 20 f2 67 69 76  65 5f 68 65 6c 70 28 22  |    .give_help("|
00006930  54 68 69 73 20 69 73 20  74 68 65 20 49 6e 66 6f  |This is the Info|
00006940  20 77 69 6e 64 6f 77 2e  22 29 0d 2a 44 08 20 20  | window.").*D.  |
00006950  20 cb 0d 2a 4e 0d 20 20  c9 20 6d 61 69 6e 25 0d  | ..*N.  . main%.|
00006960  2a 58 18 20 20 20 c8 8e  20 69 63 6f 6e 5f 68 61  |*X.   .. icon_ha|
00006970  6e 64 6c 65 25 20 ca 0d  2a 62 0b 20 20 20 20 c9  |ndle% ..*b.    .|
00006980  20 32 0d 2a 6c 4a 20 20  20 20 20 f2 67 69 76 65  | 2.*lJ     .give|
00006990  5f 68 65 6c 70 28 22 43  6c 69 63 6b 20 53 45 4c  |_help("Click SEL|
000069a0  45 43 54 20 6f 72 20 41  44 4a 55 53 54 20 74 6f  |ECT or ADJUST to|
000069b0  20 63 6f 6e 76 65 72 74  20 74 6f 20 6d 65 74 72  | convert to metr|
000069c0  69 63 20 76 61 6c 75 65  73 2e 22 29 0d 2a 76 0b  |ic values.").*v.|
000069d0  20 20 20 20 c9 20 33 0d  2a 80 7a 20 20 20 20 20  |    . 3.*.z     |
000069e0  f2 67 69 76 65 5f 68 65  6c 70 28 22 54 68 69 73  |.give_help("This|
000069f0  20 73 68 6f 77 73 20 74  68 65 20 74 79 70 65 20  | shows the type |
00006a00  6f 66 20 6d 65 61 73 75  72 65 6d 65 6e 74 20 74  |of measurement t|
00006a10  6f 20 62 65 20 63 6f 6e  76 65 72 74 65 64 2e 7c  |o be converted.||
00006a20  4d 43 6c 69 63 6b 20 6f  6e 20 74 68 65 20 69 63  |MClick on the ic|
00006a30  6f 6e 20 74 6f 20 74 68  65 20 72 69 67 68 74 20  |on to the right |
00006a40  74 6f 20 63 68 61 6e 67  65 20 74 68 69 73 2e 22  |to change this."|
00006a50  29 0d 2a 8a 0b 20 20 20  20 c9 20 34 0d 2a 94 4c  |).*..    . 4.*.L|
00006a60  20 20 20 20 20 f2 67 69  76 65 5f 68 65 6c 70 28  |     .give_help(|
00006a70  22 43 6c 69 63 6b 20 53  45 4c 45 43 54 20 6f 72  |"Click SELECT or|
00006a80  20 41 44 4a 55 53 54 20  74 6f 20 63 6f 6e 76 65  | ADJUST to conve|
00006a90  72 74 20 66 72 6f 6d 20  6d 65 74 72 69 63 20 76  |rt from metric v|
00006aa0  61 6c 75 65 73 2e 22 29  0d 2a 9e 0b 20 20 20 20  |alues.").*..    |
00006ab0  c9 20 35 0d 2a a8 5d 20  20 20 20 20 f2 67 69 76  |. 5.*.]     .giv|
00006ac0  65 5f 68 65 6c 70 28 22  43 6c 69 63 6b 20 68 65  |e_help("Click he|
00006ad0  72 65 20 74 6f 20 62 72  69 6e 67 20 75 70 20 61  |re to bring up a|
00006ae0  20 6d 65 6e 75 20 69 6e  20 6f 72 64 65 72 20 74  | menu in order t|
00006af0  6f 20 63 68 61 6e 67 65  20 74 68 65 20 6d 65 61  |o change the mea|
00006b00  73 75 72 65 6d 65 6e 74  20 74 79 70 65 2e 22 29  |surement type.")|
00006b10  0d 2a b2 0b 20 20 20 20  c9 20 37 0d 2a bc ad 20  |.*..    . 7.*.. |
00006b20  20 20 20 20 f2 67 69 76  65 5f 68 65 6c 70 28 22  |    .give_help("|
00006b30  43 6c 69 63 6b 20 53 45  4c 45 43 54 20 6f 72 20  |Click SELECT or |
00006b40  41 44 4a 55 53 54 20 74  6f 20 70 6c 61 63 65 20  |ADJUST to place |
00006b50  74 68 65 20 63 61 72 65  74 20 69 6e 20 74 68 69  |the caret in thi|
00006b60  73 20 69 63 6f 6e 2e 7c  4d 54 79 70 65 20 74 68  |s icon.|MType th|
00006b70  65 20 76 61 6c 75 65 20  74 6f 20 62 65 20 63 6f  |e value to be co|
00006b80  6e 76 65 72 74 65 64 20  69 6e 20 68 65 72 65 2e  |nverted in here.|
00006b90  7c 4d 50 72 65 73 73 20  52 45 54 55 52 4e 20 77  ||MPress RETURN w|
00006ba0  69 74 68 20 74 68 65 20  63 61 72 65 74 20 69 6e  |ith the caret in|
00006bb0  20 74 68 69 73 20 69 63  6f 6e 20 74 6f 20 63 6f  | this icon to co|
00006bc0  6e 76 65 72 74 2e 22 29  0d 2a c6 0b 20 20 20 20  |nvert.").*..    |
00006bd0  c9 20 38 0d 2a d0 6b 20  20 20 20 20 f2 67 69 76  |. 8.*.k     .giv|
00006be0  65 5f 68 65 6c 70 28 22  54 68 69 73 20 73 68 6f  |e_help("This sho|
00006bf0  77 73 20 74 68 65 20 75  6e 69 74 20 74 6f 20 62  |ws the unit to b|
00006c00  65 20 63 6f 6e 76 65 72  74 65 64 2e 7c 4d 43 6c  |e converted.|MCl|
00006c10  69 63 6b 20 6f 6e 20 74  68 65 20 69 63 6f 6e 20  |ick on the icon |
00006c20  74 6f 20 74 68 65 20 72  69 67 68 74 20 74 6f 20  |to the right to |
00006c30  63 68 61 6e 67 65 20 74  68 69 73 2e 22 29 0d 2a  |change this.").*|
00006c40  da 0b 20 20 20 20 c9 20  39 0d 2a e4 60 20 20 20  |..    . 9.*.`   |
00006c50  20 20 f2 67 69 76 65 5f  68 65 6c 70 28 22 43 6c  |  .give_help("Cl|
00006c60  69 63 6b 20 68 65 72 65  20 74 6f 20 62 72 69 6e  |ick here to brin|
00006c70  67 20 75 70 20 61 20 6d  65 6e 75 20 69 6e 20 6f  |g up a menu in o|
00006c80  72 64 65 72 20 74 6f 20  63 68 61 6e 67 65 20 74  |rder to change t|
00006c90  68 65 20 75 6e 69 74 20  6f 66 20 6d 65 61 73 75  |he unit of measu|
00006ca0  72 65 6d 65 6e 74 2e 22  29 0d 2a ee 0c 20 20 20  |rement.").*..   |
00006cb0  20 c9 20 31 35 0d 2a f8  67 20 20 20 20 20 f2 67  | . 15.*.g     .g|
00006cc0  69 76 65 5f 68 65 6c 70  28 22 54 68 69 73 20 73  |ive_help("This s|
00006cd0  68 6f 77 73 20 74 68 65  20 63 6f 6e 76 65 72 74  |hows the convert|
00006ce0  65 64 20 75 6e 69 74 2e  7c 4d 43 6c 69 63 6b 20  |ed unit.|MClick |
00006cf0  6f 6e 20 74 68 65 20 61  72 72 6f 77 73 20 74 6f  |on the arrows to|
00006d00  20 74 68 65 20 72 69 67  68 74 20 74 6f 20 63 68  | the right to ch|
00006d10  61 6e 67 65 20 74 68 69  73 2e 22 29 0d 2b 02 0c  |ange this.").+..|
00006d20  20 20 20 20 c9 20 31 37  0d 2b 0c 36 20 20 20 20  |    . 17.+.6    |
00006d30  20 f2 67 69 76 65 5f 68  65 6c 70 28 22 54 68 69  | .give_help("Thi|
00006d40  73 20 73 68 6f 77 73 20  74 68 65 20 63 6f 6e 76  |s shows the conv|
00006d50  65 72 74 65 64 20 76 61  6c 75 65 2e 22 29 0d 2b  |erted value.").+|
00006d60  16 0c 20 20 20 20 c9 20  31 39 0d 2b 20 7f 20 20  |..    . 19.+ .  |
00006d70  20 20 20 f2 67 69 76 65  5f 68 65 6c 70 28 22 43  |   .give_help("C|
00006d80  6c 69 63 6b 20 53 45 4c  45 43 54 20 74 6f 20 63  |lick SELECT to c|
00006d90  61 6c 63 75 6c 61 74 65  20 74 68 65 20 63 6f 6e  |alculate the con|
00006da0  76 65 72 74 65 64 20 76  61 6c 75 65 2e 7c 4d 43  |verted value.|MC|
00006db0  6c 69 63 6b 20 41 44 4a  55 53 54 20 74 6f 20 63  |lick ADJUST to c|
00006dc0  61 6c 63 75 6c 61 74 65  20 61 6e 64 20 73 74 6f  |alculate and sto|
00006dd0  72 65 20 74 68 65 20 63  6f 6e 76 65 72 74 65 64  |re the converted|
00006de0  20 76 61 6c 75 65 2e 22  29 0d 2b 2a 0f 20 20 20  | value.").+*.   |
00006df0  20 c9 20 32 30 2c 32 31  0d 2b 34 89 20 20 20 20  | . 20,21.+4.    |
00006e00  20 f2 67 69 76 65 5f 68  65 6c 70 28 22 43 6c 69  | .give_help("Cli|
00006e10  63 6b 20 53 45 4c 45 43  54 20 6f 6e 20 65 69 74  |ck SELECT on eit|
00006e20  68 65 72 20 61 72 72 6f  77 20 74 6f 20 69 6e 76  |her arrow to inv|
00006e30  72 65 61 73 65 20 6f 72  20 64 65 63 72 65 61 73  |rease or decreas|
00006e40  65 20 74 68 65 20 63 6f  6e 76 65 72 74 65 64 20  |e the converted |
00006e50  75 6e 69 74 2e 7c 4d 43  6c 69 63 6b 69 6e 67 20  |unit.|MClicking |
00006e60  41 44 4a 55 53 54 20 68  61 73 20 74 68 65 20 6f  |ADJUST has the o|
00006e70  70 70 6f 73 69 74 65 20  65 66 66 65 63 74 2e 22  |pposite effect."|
00006e80  29 0d 2b 3e 0c 20 20 20  20 c9 20 32 33 0d 2b 48  |).+>.    . 23.+H|
00006e90  5d 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |]     .give_help|
00006ea0  28 22 43 6c 69 63 6b 20  53 45 4c 45 43 54 20 6f  |("Click SELECT o|
00006eb0  72 20 41 44 4a 55 53 54  20 74 6f 20 74 6f 67 67  |r ADJUST to togg|
00006ec0  6c 65 20 62 65 74 77 65  65 6e 20 70 6f 73 69 74  |le between posit|
00006ed0  69 76 65 20 61 6e 64 20  6e 65 67 61 74 69 76 65  |ive and negative|
00006ee0  20 76 61 6c 75 65 73 2e  22 29 0d 2b 52 0c 20 20  | values.").+R.  |
00006ef0  20 20 c9 20 32 34 0d 2b  5c 47 20 20 20 20 20 f2  |  . 24.+\G     .|
00006f00  67 69 76 65 5f 68 65 6c  70 28 22 54 68 69 73 20  |give_help("This |
00006f10  73 68 6f 77 73 20 74 68  65 20 65 78 70 6f 6e 65  |shows the expone|
00006f20  6e 74 20 6f 66 20 74 68  65 20 63 6f 6e 76 65 72  |nt of the conver|
00006f30  74 65 64 20 6e 75 6d 62  65 72 2e 22 29 0d 2b 66  |ted number.").+f|
00006f40  0c 20 20 20 20 c9 20 32  35 0d 2b 70 77 20 20 20  |.    . 25.+pw   |
00006f50  20 20 f2 67 69 76 65 5f  68 65 6c 70 28 22 54 68  |  .give_help("Th|
00006f60  69 73 20 73 68 6f 77 73  20 74 68 65 20 65 78 70  |is shows the exp|
00006f70  6f 6e 65 6e 74 20 6f 66  20 74 68 65 20 6f 72 69  |onent of the ori|
00006f80  67 69 6e 61 6c 20 76 61  6c 75 65 2e 7c 4d 43 6c  |ginal value.|MCl|
00006f90  69 63 6b 20 6f 6e 20 74  68 65 20 61 72 72 6f 77  |ick on the arrow|
00006fa0  73 20 74 6f 20 74 68 65  20 72 69 67 68 74 20 74  |s to the right t|
00006fb0  6f 20 63 68 61 6e 67 65  20 74 68 69 73 2e 22 29  |o change this.")|
00006fc0  0d 2b 7a 0f 20 20 20 20  c9 20 32 36 2c 32 37 0d  |.+z.    . 26,27.|
00006fd0  2b 84 5a 20 20 20 20 20  f2 67 69 76 65 5f 68 65  |+.Z     .give_he|
00006fe0  6c 70 28 22 43 6c 69 63  6b 20 6f 6e 20 74 68 65  |lp("Click on the|
00006ff0  73 65 20 61 72 72 6f 77  73 20 74 6f 20 63 68 61  |se arrows to cha|
00007000  6e 67 65 20 74 68 65 20  65 78 70 6f 6e 65 6e 74  |nge the exponent|
00007010  20 6f 66 20 74 68 65 20  6f 72 69 67 69 6e 61 6c  | of the original|
00007020  20 76 61 6c 75 65 2e 22  29 0d 2b 8e 0c 20 20 20  | value.").+..   |
00007030  20 c9 20 32 38 0d 2b 98  7f 20 20 20 20 20 f2 67  | . 28.+..     .g|
00007040  69 76 65 5f 68 65 6c 70  28 22 43 6c 69 63 6b 20  |ive_help("Click |
00007050  53 45 4c 45 43 54 20 74  6f 20 73 74 6f 72 65 20  |SELECT to store |
00007060  74 68 65 20 63 6f 6e 76  65 72 73 69 6f 6e 2e 7c  |the conversion.||
00007070  4d 43 6c 69 63 6b 20 41  44 4a 55 53 54 20 74 6f  |MClick ADJUST to|
00007080  20 73 74 6f 72 65 20 74  68 65 20 63 6f 6e 76 65  | store the conve|
00007090  72 73 69 6f 6e 20 61 6e  64 20 6f 70 65 6e 20 74  |rsion and open t|
000070a0  68 65 20 72 65 63 6f 72  64 73 20 77 69 6e 64 6f  |he records windo|
000070b0  77 2e 22 29 0d 2b a2 0c  20 20 20 20 c9 20 32 39  |w.").+..    . 29|
000070c0  0d 2b ac 49 20 20 20 20  20 f2 67 69 76 65 5f 68  |.+.I     .give_h|
000070d0  65 6c 70 28 22 43 6c 69  63 6b 20 53 45 4c 45 43  |elp("Click SELEC|
000070e0  54 20 6f 72 20 41 44 4a  55 53 54 20 74 6f 20 6f  |T or ADJUST to o|
000070f0  70 65 6e 20 74 68 65 20  72 65 63 6f 72 64 73 20  |pen the records |
00007100  77 69 6e 64 6f 77 2e 22  29 0d 2b b6 0c 20 20 20  |window.").+..   |
00007110  20 c9 20 33 31 0d 2b c0  22 20 20 20 20 20 e7 20  | . 31.+."     . |
00007120  61 64 6a 75 73 74 5f 64  72 61 67 24 3d 22 61 64  |adjust_drag$="ad|
00007130  6a 75 73 74 22 20 8c 0d  2b ca 6b 20 20 20 20 20  |just" ..+.k     |
00007140  20 f2 67 69 76 65 5f 68  65 6c 70 28 22 44 72 61  | .give_help("Dra|
00007150  67 20 53 45 4c 45 43 54  20 74 6f 20 73 61 76 65  |g SELECT to save|
00007160  20 74 68 65 20 6e 75 6d  62 65 72 20 61 6e 64 20  | the number and |
00007170  69 74 73 20 75 6e 69 74  2e 7c 4d 44 72 61 67 20  |its unit.|MDrag |
00007180  41 44 4a 55 53 54 20 74  6f 20 73 61 76 65 20 74  |ADJUST to save t|
00007190  68 65 20 6e 75 6d 62 65  72 20 61 6c 6f 6e 65 2e  |he number alone.|
000071a0  22 29 0d 2b d4 0a 20 20  20 20 20 cc 0d 2b de 4e  |").+..     ..+.N|
000071b0  20 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |      .give_help|
000071c0  28 22 44 72 61 67 20 53  45 4c 45 43 54 20 6f 72  |("Drag SELECT or|
000071d0  20 41 44 4a 55 53 54 20  74 6f 20 73 61 76 65 20  | ADJUST to save |
000071e0  74 68 65 20 6e 75 6d 62  65 72 20 61 6e 64 20 69  |the number and i|
000071f0  74 73 20 75 6e 69 74 2e  22 29 0d 2b e8 0a 20 20  |ts unit.").+..  |
00007200  20 20 20 cd 0d 2b f2 08  20 20 20 cb 0d 2b fc 0c  |   ..+..   ..+..|
00007210  20 20 c9 20 6f 70 74 25  0d 2c 06 18 20 20 20 c8  |  . opt%.,..   .|
00007220  8e 20 69 63 6f 6e 5f 68  61 6e 64 6c 65 25 20 ca  |. icon_handle% .|
00007230  0d 2c 10 0b 20 20 20 20  c9 20 30 0d 2c 1a 68 20  |.,..    . 0.,.h |
00007240  20 20 20 20 f2 67 69 76  65 5f 68 65 6c 70 28 22  |    .give_help("|
00007250  43 6c 69 63 6b 20 53 45  4c 45 43 54 20 6f 72 20  |Click SELECT or |
00007260  41 44 4a 55 53 54 20 68  65 72 65 20 74 6f 20 63  |ADJUST here to c|
00007270  6c 6f 73 65 20 74 68 65  20 77 69 6e 64 6f 77 20  |lose the window |
00007280  77 69 74 68 6f 75 74 20  69 6d 70 6c 65 6d 65 6e  |without implemen|
00007290  74 69 6e 67 20 61 6e 79  20 63 68 61 6e 67 65 73  |ting any changes|
000072a0  2e 22 29 0d 2c 24 0b 20  20 20 20 c9 20 31 0d 2c  |.").,$.    . 1.,|
000072b0  2e 87 20 20 20 20 20 f2  67 69 76 65 5f 68 65 6c  |..     .give_hel|
000072c0  70 28 22 43 6c 69 63 6b  20 53 45 4c 45 43 54 20  |p("Click SELECT |
000072d0  6f 72 20 41 44 4a 55 53  54 20 74 6f 20 73 61 76  |or ADJUST to sav|
000072e0  65 20 61 6e 79 20 63 68  61 6e 67 65 73 2e 7c 4d  |e any changes.|M|
000072f0  4e 6f 74 65 20 79 6f 75  20 6d 75 73 74 20 63 6c  |Note you must cl|
00007300  69 63 6b 20 6f 6e 20 4f  4b 20 69 6e 20 6f 72 64  |ick on OK in ord|
00007310  65 72 20 74 6f 20 69 6d  70 6c 65 6d 65 6e 74 20  |er to implement |
00007320  74 68 65 6d 20 73 74 72  61 69 67 68 74 20 61 77  |them straight aw|
00007330  61 79 2e 22 29 0d 2c 38  0b 20 20 20 20 c9 20 32  |ay.").,8.    . 2|
00007340  0d 2c 42 61 20 20 20 20  20 f2 67 69 76 65 5f 68  |.,Ba     .give_h|
00007350  65 6c 70 28 22 43 6c 69  63 6b 20 53 45 4c 45 43  |elp("Click SELEC|
00007360  54 20 6f 72 20 41 44 4a  55 53 54 20 74 6f 20 63  |T or ADJUST to c|
00007370  6c 6f 73 65 20 74 68 65  20 77 69 6e 64 6f 77 20  |lose the window |
00007380  61 6e 64 20 69 6d 70 6c  65 6d 65 6e 74 20 61 6e  |and implement an|
00007390  79 20 63 68 61 6e 67 65  73 20 6d 61 64 65 2e 22  |y changes made."|
000073a0  29 0d 2c 4c 0b 20 20 20  20 c9 20 39 0d 2c 56 6c  |).,L.    . 9.,Vl|
000073b0  20 20 20 20 20 f2 67 69  76 65 5f 68 65 6c 70 28  |     .give_help(|
000073c0  22 43 6c 69 63 6b 20 53  45 4c 45 43 54 20 6f 72  |"Click SELECT or|
000073d0  20 41 44 4a 55 53 54 20  74 6f 20 74 6f 67 67 6c  | ADJUST to toggl|
000073e0  65 20 62 65 74 77 65 65  6e 20 68 65 61 64 69 6e  |e between headin|
000073f0  67 73 2f 6e 6f 20 68 65  61 64 69 6e 67 73 20 69  |gs/no headings i|
00007400  6e 20 61 6e 79 20 43 53  56 20 66 69 6c 65 73 20  |n any CSV files |
00007410  73 61 76 65 64 2e 22 29  0d 2c 60 0c 20 20 20 20  |saved.").,`.    |
00007420  c9 20 31 30 0d 2c 6a b2  20 20 20 20 20 f2 67 69  |. 10.,j.     .gi|
00007430  76 65 5f 68 65 6c 70 28  22 54 68 65 20 6f 72 69  |ve_help("The ori|
00007440  67 69 6e 61 6c 20 6e 75  6d 62 65 72 20 68 65 61  |ginal number hea|
00007450  64 69 6e 67 20 69 6e 20  61 6e 79 20 43 53 56 20  |ding in any CSV |
00007460  66 69 6c 65 73 20 73 61  76 65 64 2e 7c 4d 54 6f  |files saved.|MTo|
00007470  20 63 68 61 6e 67 65 20  74 68 65 20 68 65 61 64  | change the head|
00007480  69 6e 67 20 63 6c 69 63  6b 20 53 45 4c 45 43 54  |ing click SELECT|
00007490  20 6f 72 20 41 44 4a 55  53 54 20 74 6f 20 70 6c  | or ADJUST to pl|
000074a0  61 63 65 20 74 68 65 20  63 61 72 65 74 20 69 6e  |ace the caret in|
000074b0  20 74 68 65 20 69 63 6f  6e 20 61 6e 64 20 74 79  | the icon and ty|
000074c0  70 65 20 69 6e 20 61 20  6e 65 77 20 68 65 61 64  |pe in a new head|
000074d0  69 6e 67 2e 22 29 0d 2c  74 0c 20 20 20 20 c9 20  |ing.").,t.    . |
000074e0  31 31 0d 2c 7e b0 20 20  20 20 20 f2 67 69 76 65  |11.,~.     .give|
000074f0  5f 68 65 6c 70 28 22 54  68 65 20 6f 72 69 67 69  |_help("The origi|
00007500  6e 61 6c 20 75 6e 69 74  20 68 65 61 64 69 6e 67  |nal unit heading|
00007510  20 69 6e 20 61 6e 79 20  43 53 56 20 66 69 6c 65  | in any CSV file|
00007520  73 20 73 61 76 65 64 2e  7c 4d 54 6f 20 63 68 61  |s saved.|MTo cha|
00007530  6e 67 65 20 74 68 65 20  68 65 61 64 69 6e 67 20  |nge the heading |
00007540  63 6c 69 63 6b 20 53 45  4c 45 43 54 20 6f 72 20  |click SELECT or |
00007550  41 44 4a 55 53 54 20 74  6f 20 70 6c 61 63 65 20  |ADJUST to place |
00007560  74 68 65 20 63 61 72 65  74 20 69 6e 20 74 68 65  |the caret in the|
00007570  20 69 63 6f 6e 20 61 6e  64 20 74 79 70 65 20 69  | icon and type i|
00007580  6e 20 61 20 6e 65 77 20  68 65 61 64 69 6e 67 2e  |n a new heading.|
00007590  22 29 0d 2c 88 0c 20 20  20 20 c9 20 31 32 0d 2c  |").,..    . 12.,|
000075a0  92 b3 20 20 20 20 20 f2  67 69 76 65 5f 68 65 6c  |..     .give_hel|
000075b0  70 28 22 54 68 65 20 63  6f 6e 76 65 72 74 65 64  |p("The converted|
000075c0  20 6e 75 6d 62 65 72 20  68 65 61 64 69 6e 67 20  | number heading |
000075d0  69 6e 20 61 6e 79 20 43  53 56 20 66 69 6c 65 73  |in any CSV files|
000075e0  20 73 61 76 65 64 2e 7c  4d 54 6f 20 63 68 61 6e  | saved.|MTo chan|
000075f0  67 65 20 74 68 65 20 68  65 61 64 69 6e 67 20 63  |ge the heading c|
00007600  6c 69 63 6b 20 53 45 4c  45 43 54 20 6f 72 20 41  |lick SELECT or A|
00007610  44 4a 55 53 54 20 74 6f  20 70 6c 61 63 65 20 74  |DJUST to place t|
00007620  68 65 20 63 61 72 65 74  20 69 6e 20 74 68 65 20  |he caret in the |
00007630  69 63 6f 6e 20 61 6e 64  20 74 79 70 65 20 69 6e  |icon and type in|
00007640  20 61 20 6e 65 77 20 68  65 61 64 69 6e 67 2e 22  | a new heading."|
00007650  29 0d 2c 9c 0c 20 20 20  20 c9 20 31 33 0d 2c a6  |).,..    . 13.,.|
00007660  b1 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |.     .give_help|
00007670  28 22 54 68 65 20 63 6f  6e 76 65 72 74 65 64 20  |("The converted |
00007680  75 6e 69 74 20 68 65 61  64 69 6e 67 20 69 6e 20  |unit heading in |
00007690  61 6e 79 20 43 53 56 20  66 69 6c 65 73 20 73 61  |any CSV files sa|
000076a0  76 65 64 2e 7c 4d 54 6f  20 63 68 61 6e 67 65 20  |ved.|MTo change |
000076b0  74 68 65 20 68 65 61 64  69 6e 67 20 63 6c 69 63  |the heading clic|
000076c0  6b 20 53 45 4c 45 43 54  20 6f 72 20 41 44 4a 55  |k SELECT or ADJU|
000076d0  53 54 20 74 6f 20 70 6c  61 63 65 20 74 68 65 20  |ST to place the |
000076e0  63 61 72 65 74 20 69 6e  20 74 68 65 20 69 63 6f  |caret in the ico|
000076f0  6e 20 61 6e 64 20 74 79  70 65 20 69 6e 20 61 20  |n and type in a |
00007700  6e 65 77 20 68 65 61 64  69 6e 67 2e 22 29 0d 2c  |new heading.").,|
00007710  b0 0c 20 20 20 20 c9 20  31 34 0d 2c ba 69 20 20  |..    . 14.,.i  |
00007720  20 20 20 f2 67 69 76 65  5f 68 65 6c 70 28 22 43  |   .give_help("C|
00007730  6c 69 63 6b 20 53 45 4c  45 43 54 20 6f 72 20 41  |lick SELECT or A|
00007740  44 4a 55 53 54 20 74 6f  20 74 6f 67 67 6c 65 20  |DJUST to toggle |
00007750  62 65 74 77 65 65 6e 20  62 65 65 70 69 6e 67 20  |between beeping |
00007760  77 68 65 6e 20 61 20 63  61 6c 63 75 6c 61 74 69  |when a calculati|
00007770  6f 6e 20 68 61 73 20 62  65 65 6e 20 6d 61 64 65  |on has been made|
00007780  2e 22 29 0d 2c c4 0c 20  20 20 20 c9 20 31 35 0d  |.").,..    . 15.|
00007790  2c ce a7 20 20 20 20 20  f2 67 69 76 65 5f 68 65  |,..     .give_he|
000077a0  6c 70 28 22 43 6c 69 63  6b 20 53 45 4c 45 43 54  |lp("Click SELECT|
000077b0  20 6f 72 20 41 44 4a 55  53 54 20 74 6f 20 74 6f  | or ADJUST to to|
000077c0  67 67 6c 65 20 62 65 74  77 65 65 6e 20 64 72 61  |ggle between dra|
000077d0  67 69 6e 67 20 74 68 65  20 74 65 78 74 20 66 69  |ging the text fi|
000077e0  6c 65 20 69 63 6f 6e 20  69 6e 20 74 68 65 20 6d  |le icon in the m|
000077f0  61 69 6e 20 77 69 6e 64  6f 77 20 77 69 74 68 20  |ain window with |
00007800  41 44 4a 55 53 54 20 73  61 76 69 6e 67 20 74 68  |ADJUST saving th|
00007810  65 20 63 6f 6e 76 65 72  74 65 64 20 6e 75 6d 62  |e converted numb|
00007820  65 72 20 77 69 74 68 6f  75 74 20 69 74 73 20 75  |er without its u|
00007830  6e 69 74 2e 22 29 0d 2c  d8 08 20 20 20 cb 0d 2c  |nit.").,..   ..,|
00007840  e2 0e 20 20 c9 20 73 74  6f 72 65 25 0d 2c ec 18  |..  . store%.,..|
00007850  20 20 20 c8 8e 20 69 63  6f 6e 5f 68 61 6e 64 6c  |   .. icon_handl|
00007860  65 25 20 ca 0d 2c f6 59  20 20 20 20 c9 20 30 2c  |e% ..,.Y    . 0,|
00007870  31 2c 32 2c 33 2c 34 2c  35 2c 36 2c 37 2c 38 2c  |1,2,3,4,5,6,7,8,|
00007880  39 2c 31 30 2c 31 31 2c  31 32 2c 31 33 2c 31 34  |9,10,11,12,13,14|
00007890  2c 31 35 2c 31 36 2c 31  37 2c 31 38 2c 31 39 2c  |,15,16,17,18,19,|
000078a0  32 30 2c 32 31 2c 32 32  2c 32 33 2c 32 34 2c 32  |20,21,22,23,24,2|
000078b0  35 2c 32 36 2c 32 37 2c  32 38 2c 32 39 0d 2d 00  |5,26,27,28,29.-.|
000078c0  64 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |d     .give_help|
000078d0  28 22 43 6c 69 63 6b 20  53 45 4c 45 43 54 20 6f  |("Click SELECT o|
000078e0  72 20 41 44 4a 55 53 54  20 74 6f 20 73 65 6c 65  |r ADJUST to sele|
000078f0  63 74 20 74 68 69 73 20  72 65 63 6f 72 64 2e 7c  |ct this record.||
00007900  4d 59 6f 75 20 63 61 6e  6e 6f 74 20 73 65 6c 65  |MYou cannot sele|
00007910  63 74 20 65 6d 70 74 79  20 69 63 6f 6e 73 2e 22  |ct empty icons."|
00007920  29 0d 2d 0a 0c 20 20 20  20 c9 20 33 30 0d 2d 14  |).-..    . 30.-.|
00007930  4c 20 20 20 20 20 f2 67  69 76 65 5f 68 65 6c 70  |L     .give_help|
00007940  28 22 43 6c 65 61 72 20  53 45 4c 45 43 54 20 6f  |("Clear SELECT o|
00007950  72 20 41 44 4a 55 53 54  20 74 6f 20 63 6c 65 61  |r ADJUST to clea|
00007960  72 20 74 68 65 20 73 65  6c 65 63 74 65 64 20 72  |r the selected r|
00007970  65 63 6f 72 64 73 2e 22  29 0d 2d 1e 0c 20 20 20  |ecords.").-..   |
00007980  20 c9 20 33 31 0d 2d 28  4d 20 20 20 20 20 f2 67  | . 31.-(M     .g|
00007990  69 76 65 5f 68 65 6c 70  28 22 43 6c 65 61 72 20  |ive_help("Clear |
000079a0  53 45 4c 45 43 54 20 6f  72 20 41 44 4a 55 53 54  |SELECT or ADJUST|
000079b0  20 74 6f 20 64 65 6c 65  74 65 20 74 68 65 20 73  | to delete the s|
000079c0  65 6c 65 63 74 65 64 20  72 65 63 6f 72 64 73 2e  |elected records.|
000079d0  22 29 0d 2d 32 0c 20 20  20 20 c9 20 33 32 0d 2d  |").-2.    . 32.-|
000079e0  3c 44 20 20 20 20 20 f2  67 69 76 65 5f 68 65 6c  |<D     .give_hel|
000079f0  70 28 22 43 6c 69 63 6b  20 53 45 4c 45 43 54 20  |p("Click SELECT |
00007a00  6f 72 20 41 44 4a 55 53  54 20 74 6f 20 73 65 6c  |or ADJUST to sel|
00007a10  65 63 74 20 61 6c 6c 20  72 65 63 6f 72 64 73 2e  |ect all records.|
00007a20  22 29 0d 2d 46 0c 20 20  20 20 c9 20 33 34 0d 2d  |").-F.    . 34.-|
00007a30  50 4a 20 20 20 20 20 f2  67 69 76 65 5f 68 65 6c  |PJ     .give_hel|
00007a40  70 28 22 43 6c 69 63 6b  20 53 45 4c 45 43 54 20  |p("Click SELECT |
00007a50  6f 72 20 41 44 4a 55 53  54 20 74 6f 20 63 6c 6f  |or ADJUST to clo|
00007a60  73 65 20 74 68 65 20 52  65 63 6f 72 64 73 20 77  |se the Records w|
00007a70  69 6e 64 6f 77 2e 22 29  0d 2d 5a 0c 20 20 20 20  |indow.").-Z.    |
00007a80  c9 20 33 35 0d 2d 64 3a  20 20 20 20 20 f2 67 69  |. 35.-d:     .gi|
00007a90  76 65 5f 68 65 6c 70 28  22 43 6c 69 63 6b 20 68  |ve_help("Click h|
00007aa0  65 72 65 20 74 6f 20 62  72 69 6e 67 20 75 70 20  |ere to bring up |
00007ab0  61 20 73 61 76 65 20 6d  65 6e 75 2e 22 29 0d 2d  |a save menu.").-|
00007ac0  6e 0c 20 20 20 20 c9 20  33 36 0d 2d 78 3a 20 20  |n.    . 36.-x:  |
00007ad0  20 20 20 f2 67 69 76 65  5f 68 65 6c 70 28 22 43  |   .give_help("C|
00007ae0  6c 63 6b 20 68 65 72 65  20 74 6f 20 6f 70 65 6e  |lck here to open|
00007af0  20 74 68 65 20 70 72 69  6e 74 20 77 69 6e 64 6f  | the print windo|
00007b00  77 2e 22 29 0d 2d 82 08  20 20 20 cb 0d 2d 8c 17  |w.").-..   ..-..|
00007b10  20 20 c9 20 73 61 76 65  25 2c 73 61 76 65 5f 63  |  . save%,save_c|
00007b20  73 76 25 0d 2d 96 18 20  20 20 c8 8e 20 69 63 6f  |sv%.-..   .. ico|
00007b30  6e 5f 68 61 6e 64 6c 65  25 20 ca 0d 2d a0 0b 20  |n_handle% ..-.. |
00007b40  20 20 20 c9 20 30 0d 2d  aa 98 20 20 20 20 20 f2  |   . 0.-..     .|
00007b50  67 69 76 65 5f 68 65 6c  70 28 22 43 6c 69 63 6b  |give_help("Click|
00007b60  20 68 65 72 65 20 74 6f  20 73 61 76 65 20 74 68  | here to save th|
00007b70  65 20 64 61 74 61 20 77  69 74 68 20 74 68 65 20  |e data with the |
00007b80  63 75 72 72 65 6e 74 20  66 69 6c 65 6e 61 6d 65  |current filename|
00007b90  2e 20 49 66 20 69 74 20  69 73 20 6e 6f 74 20 61  |. If it is not a|
00007ba0  20 66 75 6c 6c 20 70 61  74 68 6e 61 6d 65 2c 20  | full pathname, |
00007bb0  79 6f 75 20 6d 75 73 74  20 64 72 61 67 20 74 68  |you must drag th|
00007bc0  65 20 69 63 6f 6e 20 74  6f 20 61 20 64 69 72 65  |e icon to a dire|
00007bd0  63 74 6f 72 79 20 66 69  72 73 74 2e 22 29 0d 2d  |ctory first.").-|
00007be0  b4 0b 20 20 20 20 c9 20  31 0d 2d be 70 20 20 20  |..    . 1.-.p   |
00007bf0  20 20 f2 67 69 76 65 5f  68 65 6c 70 28 22 43 6c  |  .give_help("Cl|
00007c00  69 63 6b 20 68 65 72 65  20 74 6f 20 74 6f 67 67  |ick here to togg|
00007c10  6c 65 20 62 65 74 77 65  65 6e 20 73 61 76 69 6e  |le between savin|
00007c20  67 20 74 68 65 20 73 65  6c 65 63 74 65 64 20 72  |g the selected r|
00007c30  65 63 6f 72 64 73 20 6f  6e 6c 79 20 61 6e 64 20  |ecords only and |
00007c40  73 61 76 69 6e 67 20 61  6c 6c 20 74 68 65 20 72  |saving all the r|
00007c50  65 63 6f 72 64 73 2e 22  29 0d 2d c8 0b 20 20 20  |ecords.").-..   |
00007c60  20 c9 20 32 0d 2d d2 81  20 20 20 20 20 f2 67 69  | . 2.-..     .gi|
00007c70  76 65 5f 68 65 6c 70 28  22 54 68 69 73 20 73 68  |ve_help("This sh|
00007c80  6f 77 73 20 74 68 65 20  66 69 6c 65 6e 61 6d 65  |ows the filename|
00007c90  20 66 6f 72 20 74 68 69  73 20 64 61 74 61 2e 20  | for this data. |
00007ca0  49 66 20 69 74 20 69 73  20 6e 6f 74 20 61 20 66  |If it is not a f|
00007cb0  75 6c 6c 20 70 61 74 68  6e 61 6d 65 2c 20 64 72  |ull pathname, dr|
00007cc0  61 67 20 74 68 65 20 69  63 6f 6e 20 74 6f 20 61  |ag the icon to a|
00007cd0  20 64 69 72 65 63 74 6f  72 79 20 64 69 73 70 6c  | directory displ|
00007ce0  61 79 2e 22 29 0d 2d dc  0b 20 20 20 20 c9 20 33  |ay.").-..    . 3|
00007cf0  0d 2d e6 9f 20 20 20 20  20 f2 67 69 76 65 5f 68  |.-..     .give_h|
00007d00  65 6c 70 28 22 44 72 61  67 20 74 68 69 73 20 69  |elp("Drag this i|
00007d10  63 6f 6e 20 74 6f 20 74  68 65 20 64 69 72 65 63  |con to the direc|
00007d20  74 6f 72 79 20 69 6e 20  77 68 69 63 68 20 79 6f  |tory in which yo|
00007d30  75 20 77 61 6e 74 20 74  6f 20 73 61 76 65 20 74  |u want to save t|
00007d40  68 65 20 66 69 6c 65 2e  20 4f 72 2c 20 64 72 61  |he file. Or, dra|
00007d50  67 20 69 74 20 74 6f 20  74 68 65 20 70 72 6f 67  |g it to the prog|
00007d60  72 61 6d 20 69 6e 74 6f  20 77 68 69 63 68 20 79  |ram into which y|
00007d70  6f 75 20 77 61 6e 74 20  74 6f 20 74 72 61 6e 73  |ou want to trans|
00007d80  66 65 72 20 74 68 65 20  64 61 74 61 2e 22 29 0d  |fer the data.").|
00007d90  2d f0 08 20 20 20 cb 0d  2d fa 06 20 cb 0d 2e 04  |-..   ..-.. ....|
00007da0  05 e1 0d 2e 0e 04 0d 2e  18 1c dd 20 f2 67 69 76  |........... .giv|
00007db0  65 5f 68 65 6c 70 28 68  65 6c 70 5f 74 65 78 74  |e_help(help_text|
00007dc0  24 29 0d 2e 22 0f 20 62  6c 6b 25 21 30 3d 32 35  |$)..". blk%!0=25|
00007dd0  36 0d 2e 2c 13 20 62 6c  6b 25 21 31 32 3d 62 6c  |6..,. blk%!12=bl|
00007de0  6b 25 21 38 0d 2e 36 11  20 62 6c 6b 25 21 31 36  |k%!8..6. blk%!16|
00007df0  3d 26 35 30 33 0d 2e 40  1d 20 24 28 62 6c 6b 25  |=&503..@. $(blk%|
00007e00  2b 32 30 29 3d 68 65 6c  70 5f 74 65 78 74 24 2b  |+20)=help_text$+|
00007e10  bd 30 0d 2e 4a 28 20 c8  99 22 57 69 6d 70 5f 53  |.0..J( .."Wimp_S|
00007e20  65 6e 64 4d 65 73 73 61  67 65 22 2c 31 37 2c 62  |endMessage",17,b|
00007e30  6c 6b 25 2c 62 6c 6b 25  21 34 0d 2e 54 05 e1 0d  |lk%,blk%!4..T...|
00007e40  2e 5e 04 0d 2e 68 0e dd  f2 6e 6f 5f 72 65 70 6c  |.^...h...no_repl|
00007e50  79 0d 2e 72 19 6d 65 73  73 61 67 65 5f 63 6f 64  |y..r.message_cod|
00007e60  65 25 3d 62 6c 6b 25 21  31 36 0d 2e 7c 16 c8 8e  |e%=blk%!16..|...|
00007e70  20 6d 65 73 73 61 67 65  5f 63 6f 64 65 25 20 ca  | message_code% .|
00007e80  0d 2e 86 09 20 20 c9 20  36 0d 2e 90 14 20 20 20  |....  . 6....   |
00007e90  20 f4 20 43 68 65 63 6b  20 69 66 20 61 0d 2e 9a  | . Check if a...|
00007ea0  19 20 20 20 20 e7 20 72  61 6d 5f 74 72 61 6e 73  |.    . ram_trans|
00007eb0  66 65 72 25 20 8c 0d 2e  a4 1b 20 20 20 20 20 20  |fer% .....      |
00007ec0  e7 20 72 61 6d 5f 74 72  61 6e 73 6d 69 74 25 20  |. ram_transmit% |
00007ed0  8c 0d 2e ae 4c 20 20 20  20 20 20 20 20 f2 72 65  |....L        .re|
00007ee0  70 6f 72 74 5f 65 72 72  6f 72 28 22 44 61 74 61  |port_error("Data|
00007ef0  20 74 72 61 6e 73 66 65  72 20 74 6f 20 61 6e 6f  | transfer to ano|
00007f00  74 68 65 72 20 74 61 73  6b 20 66 61 69 6c 65 64  |ther task failed|
00007f10  21 22 2c 61 70 70 5f 6e  61 6d 65 24 29 0d 2e b8  |!",app_name$)...|
00007f20  0b 20 20 20 20 20 20 cc  0d 2e c2 1e 20 20 20 20  |.      .....    |
00007f30  20 20 20 20 f2 6d 65 73  73 61 67 65 5f 66 69 6c  |    .message_fil|
00007f40  65 5f 73 61 76 65 0d 2e  cc 0b 20 20 20 20 20 20  |e_save....      |
00007f50  cd 0d 2e d6 09 20 20 20  20 cd 0d 2e e0 09 20 20  |.....    .....  |
00007f60  c9 20 37 0d 2e ea 38 20  20 20 20 f2 72 65 70 6f  |. 7...8    .repo|
00007f70  72 74 5f 65 72 72 6f 72  28 22 44 61 74 61 20 74  |rt_error("Data t|
00007f80  72 61 6e 73 66 65 72 20  66 61 69 6c 65 64 21 22  |ransfer failed!"|
00007f90  2c 61 70 70 5f 6e 61 6d  65 24 29 0d 2e f4 06 20  |,app_name$).... |
00007fa0  cb 0d 2e fe 05 e1 0d 2f  08 04 0d 2f 12 14 dd f2  |......./.../....|
00007fb0  69 63 6f 6e 5f 62 61 72  5f 63 6c 69 63 6b 0d 2f  |icon_bar_click./|
00007fc0  1c 13 20 c8 8e 20 6d 6f  75 73 65 62 75 74 25 20  |.. .. mousebut% |
00007fd0  ca 0d 2f 26 13 20 20 c9  20 6d 65 6e 75 5f 63 6c  |../&.  . menu_cl|
00007fe0  69 63 6b 25 0d 2f 30 1f  20 20 20 6d 65 6e 75 5f  |ick%./0.   menu_|
00007ff0  63 6f 6e 74 65 78 74 24  3d 22 69 63 6f 6e 5f 62  |context$="icon_b|
00008000  61 72 22 0d 2f 3a 1d 20  20 20 63 75 72 72 65 6e  |ar"./:.   curren|
00008010  74 5f 6d 65 6e 75 25 3d  6d 65 6e 75 25 28 31 29  |t_menu%=menu%(1)|
00008020  0d 2f 44 19 20 20 20 6d  65 6e 75 5f 78 25 3d 6d  |./D.   menu_x%=m|
00008030  6f 75 73 65 78 25 2d 36  34 0d 2f 4e 28 20 20 20  |ousex%-64./N(   |
00008040  6d 65 6e 75 5f 79 25 3d  a4 6d 65 6e 75 5f 68 65  |menu_y%=.menu_he|
00008050  69 67 68 74 28 6d 65 6e  75 25 28 31 29 29 2b 39  |ight(menu%(1))+9|
00008060  36 0d 2f 58 3a 20 20 20  c8 99 20 22 57 69 6d 70  |6./X:   .. "Wimp|
00008070  5f 43 72 65 61 74 65 4d  65 6e 75 22 2c 2c 63 75  |_CreateMenu",,cu|
00008080  72 72 65 6e 74 5f 6d 65  6e 75 25 2c 6d 65 6e 75  |rrent_menu%,menu|
00008090  5f 78 25 2c 6d 65 6e 75  5f 79 25 0d 2f 62 23 20  |_x%,menu_y%./b# |
000080a0  20 c9 20 73 65 6c 65 63  74 5f 63 6c 69 63 6b 25  | . select_click%|
000080b0  2c 61 64 6a 75 73 74 5f  63 6c 69 63 6b 25 0d 2f  |,adjust_click%./|
000080c0  6c 1a 20 20 20 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |l.   .open_windo|
000080d0  77 28 6d 61 69 6e 25 29  0d 2f 76 1e 20 20 20 f2  |w(main%)./v.   .|
000080e0  70 6c 61 63 65 5f 63 61  72 65 74 28 6d 61 69 6e  |place_caret(main|
000080f0  25 2c 37 2c 30 29 0d 2f  80 07 20 20 cb 0d 2f 8a  |%,7,0)./..  ../.|
00008100  05 e1 0d 2f 94 04 0d 2f  9e 1b dd 20 f2 73 68 61  |.../.../... .sha|
00008110  64 65 5f 6f 70 74 69 6f  6e 73 28 61 62 63 64 25  |de_options(abcd%|
00008120  29 0d 2f a8 0d 20 ea 20  63 6f 75 6e 74 25 0d 2f  |)./.. . count%./|
00008130  b2 16 20 20 e3 20 63 6f  75 6e 74 25 3d 31 30 20  |..  . count%=10 |
00008140  b8 20 31 33 0d 2f bc 25  20 20 20 f2 73 68 61 64  |. 13./.%   .shad|
00008150  65 5f 69 63 6f 6e 28 6f  70 74 25 2c 63 6f 75 6e  |e_icon(opt%,coun|
00008160  74 25 2c 61 62 63 64 25  29 0d 2f c6 0e 20 20 ed  |t%,abcd%)./..  .|
00008170  20 63 6f 75 6e 74 25 0d  2f d0 05 e1 0d 2f da 04  | count%./..../..|
00008180  0d 2f e4 10 dd 20 f2 6f  70 74 5f 63 6c 69 63 6b  |./... .opt_click|
00008190  0d 2f ee 13 20 c8 8e 20  6d 6f 75 73 65 62 75 74  |./.. .. mousebut|
000081a0  25 20 ca 0d 2f f8 23 20  20 c9 20 73 65 6c 65 63  |% ../.#  . selec|
000081b0  74 5f 63 6c 69 63 6b 25  2c 61 64 6a 75 73 74 5f  |t_click%,adjust_|
000081c0  63 6c 69 63 6b 25 0d 30  02 18 20 20 20 c8 8e 20  |click%.0..   .. |
000081d0  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 20 ca 0d 30  |icon_handle% ..0|
000081e0  0c 0b 20 20 20 20 c9 20  30 0d 30 16 1c 20 20 20  |..    . 0.0..   |
000081f0  20 20 f2 63 6c 6f 73 65  5f 77 69 6e 64 6f 77 28  |  .close_window(|
00008200  6f 70 74 25 29 0d 30 20  18 20 20 20 20 20 f2 73  |opt%).0 .     .s|
00008210  65 74 5f 75 70 5f 6f 70  74 69 6f 6e 73 0d 30 2a  |et_up_options.0*|
00008220  14 20 20 20 20 20 f2 6d  65 6e 75 5f 63 6c 6f 73  |.     .menu_clos|
00008230  65 0d 30 34 0b 20 20 20  20 c9 20 31 0d 30 3e 16  |e.04.    . 1.0>.|
00008240  20 20 20 20 20 f2 73 61  76 65 5f 6f 70 74 69 6f  |     .save_optio|
00008250  6e 73 0d 30 48 0b 20 20  20 20 c9 20 32 0d 30 52  |ns.0H.    . 2.0R|
00008260  1c 20 20 20 20 20 f2 63  6c 6f 73 65 5f 77 69 6e  |.     .close_win|
00008270  64 6f 77 28 6f 70 74 25  29 0d 30 5c 15 20 20 20  |dow(opt%).0\.   |
00008280  20 20 f2 67 65 74 5f 6f  70 74 69 6f 6e 73 0d 30  |  .get_options.0|
00008290  66 14 20 20 20 20 20 f2  6d 65 6e 75 5f 63 6c 6f  |f.     .menu_clo|
000082a0  73 65 0d 30 70 0b 20 20  20 20 c9 20 39 0d 30 7a  |se.0p.    . 9.0z|
000082b0  25 20 20 20 20 20 e7 20  a4 69 63 6f 6e 5f 73 65  |%     . .icon_se|
000082c0  6c 65 63 74 65 64 28 6f  70 74 25 2c 39 29 3d b9  |lected(opt%,9)=.|
000082d0  20 8c 0d 30 84 20 20 20  20 20 20 20 f2 73 65 6c  | ..0.       .sel|
000082e0  65 63 74 5f 69 63 6f 6e  28 6f 70 74 25 2c 39 2c  |ect_icon(opt%,9,|
000082f0  a3 29 0d 30 8e 1b 20 20  20 20 20 20 f2 73 68 61  |.).0..      .sha|
00008300  64 65 5f 6f 70 74 69 6f  6e 73 28 a3 29 0d 30 98  |de_options(.).0.|
00008310  0a 20 20 20 20 20 cc 0d  30 a2 20 20 20 20 20 20  |.     ..0.      |
00008320  20 f2 73 65 6c 65 63 74  5f 69 63 6f 6e 28 6f 70  | .select_icon(op|
00008330  74 25 2c 39 2c b9 29 0d  30 ac 1b 20 20 20 20 20  |t%,9,.).0..     |
00008340  20 f2 73 68 61 64 65 5f  6f 70 74 69 6f 6e 73 28  | .shade_options(|
00008350  b9 29 0d 30 b6 0a 20 20  20 20 20 cd 0d 30 c0 0f  |.).0..     ..0..|
00008360  20 20 20 20 c9 20 31 34  2c 31 35 0d 30 ca 30 20  |    . 14,15.0.0 |
00008370  20 20 20 20 e7 20 a4 69  63 6f 6e 5f 73 65 6c 65  |    . .icon_sele|
00008380  63 74 65 64 28 6f 70 74  25 2c 69 63 6f 6e 5f 68  |cted(opt%,icon_h|
00008390  61 6e 64 6c 65 25 29 3d  b9 20 8c 0d 30 d4 2b 20  |andle%)=. ..0.+ |
000083a0  20 20 20 20 20 f2 73 65  6c 65 63 74 5f 69 63 6f  |     .select_ico|
000083b0  6e 28 6f 70 74 25 2c 69  63 6f 6e 5f 68 61 6e 64  |n(opt%,icon_hand|
000083c0  6c 65 25 2c a3 29 0d 30  de 0a 20 20 20 20 20 cc  |le%,.).0..     .|
000083d0  0d 30 e8 2b 20 20 20 20  20 20 f2 73 65 6c 65 63  |.0.+      .selec|
000083e0  74 5f 69 63 6f 6e 28 6f  70 74 25 2c 69 63 6f 6e  |t_icon(opt%,icon|
000083f0  5f 68 61 6e 64 6c 65 25  2c b9 29 0d 30 f2 0a 20  |_handle%,.).0.. |
00008400  20 20 20 20 cd 0d 30 fc  08 20 20 20 cb 0d 31 06  |    ..0..   ..1.|
00008410  06 20 cb 0d 31 10 05 e1  0d 31 1a 04 0d 31 24 12  |. ..1....1...1$.|
00008420  dd 20 f2 6d 61 74 68 73  5f 63 6c 69 63 6b 0d 31  |. .maths_click.1|
00008430  2e 13 20 c8 8e 20 6d 6f  75 73 65 62 75 74 25 20  |.. .. mousebut% |
00008440  ca 0d 31 38 23 20 20 c9  20 73 65 6c 65 63 74 5f  |..18#  . select_|
00008450  63 6c 69 63 6b 25 2c 61  64 6a 75 73 74 5f 63 6c  |click%,adjust_cl|
00008460  69 63 6b 25 0d 31 42 18  20 20 20 c8 8e 20 69 63  |ick%.1B.   .. ic|
00008470  6f 6e 5f 68 61 6e 64 6c  65 25 20 ca 0d 31 4c 0b  |on_handle% ..1L.|
00008480  20 20 20 20 c9 20 38 0d  31 56 13 20 20 20 20 20  |    . 8.1V.     |
00008490  f2 6d 61 74 68 5f 63 61  6c 63 0d 31 60 30 20 20  |.math_calc.1`0  |
000084a0  20 20 20 e7 20 6d 6f 75  73 65 62 75 74 25 3d 61  |   . mousebut%=a|
000084b0  64 6a 75 73 74 5f 63 6c  69 63 6b 25 20 8c 20 f2  |djust_click% . .|
000084c0  73 65 6e 64 5f 6d 61 74  68 73 0d 31 6a 0b 20 20  |send_maths.1j.  |
000084d0  20 20 c9 20 36 0d 31 74  14 20 20 20 20 20 f2 73  |  . 6.1t.     .s|
000084e0  65 6e 64 5f 6d 61 74 68  73 0d 31 7e 0b 20 20 20  |end_maths.1~.   |
000084f0  20 c9 20 37 0d 31 88 1e  20 20 20 20 20 f2 63 6c  | . 7.1..     .cl|
00008500  6f 73 65 5f 77 69 6e 64  6f 77 28 6d 61 74 68 73  |ose_window(maths|
00008510  25 29 0d 31 92 0b 20 20  20 20 c9 20 33 0d 31 9c  |%).1..    . 3.1.|
00008520  20 20 20 20 20 20 63 75  72 72 65 6e 74 5f 6d 65  |      current_me|
00008530  6e 75 25 3d 6d 65 6e 75  25 28 31 38 29 0d 31 a6  |nu%=menu%(18).1.|
00008540  1e 20 20 20 20 20 6d 65  6e 75 5f 63 6f 6e 74 65  |.     menu_conte|
00008550  78 74 24 3d 22 4d 61 74  68 73 22 0d 31 b0 18 20  |xt$="Maths".1.. |
00008560  20 20 20 20 6d 65 6e 75  5f 78 25 3d 6d 6f 75 73  |    menu_x%=mous|
00008570  65 78 25 0d 31 ba 18 20  20 20 20 20 6d 65 6e 75  |ex%.1..     menu|
00008580  5f 79 25 3d 6d 6f 75 73  65 79 25 0d 31 c4 3c 20  |_y%=mousey%.1.< |
00008590  20 20 20 20 c8 99 20 22  57 69 6d 70 5f 43 72 65  |    .. "Wimp_Cre|
000085a0  61 74 65 4d 65 6e 75 22  2c 2c 63 75 72 72 65 6e  |ateMenu",,curren|
000085b0  74 5f 6d 65 6e 75 25 2c  6d 65 6e 75 5f 78 25 2c  |t_menu%,menu_x%,|
000085c0  6d 65 6e 75 5f 79 25 0d  31 ce 08 20 20 20 cb 0d  |menu_y%.1..   ..|
000085d0  31 d8 13 20 20 c9 20 6d  65 6e 75 5f 63 6c 69 63  |1..  . menu_clic|
000085e0  6b 25 0d 31 e2 19 20 20  20 e7 20 69 63 6f 6e 5f  |k%.1..   . icon_|
000085f0  68 61 6e 64 6c 65 25 3d  33 20 8c 0d 31 ec 1f 20  |handle%=3 ..1.. |
00008600  20 20 20 63 75 72 72 65  6e 74 5f 6d 65 6e 75 25  |   current_menu%|
00008610  3d 6d 65 6e 75 25 28 31  38 29 0d 31 f6 1d 20 20  |=menu%(18).1..  |
00008620  20 20 6d 65 6e 75 5f 63  6f 6e 74 65 78 74 24 3d  |  menu_context$=|
00008630  22 4d 61 74 68 73 22 0d  32 00 17 20 20 20 20 6d  |"Maths".2..    m|
00008640  65 6e 75 5f 78 25 3d 6d  6f 75 73 65 78 25 0d 32  |enu_x%=mousex%.2|
00008650  0a 17 20 20 20 20 6d 65  6e 75 5f 79 25 3d 6d 6f  |..    menu_y%=mo|
00008660  75 73 65 79 25 0d 32 14  3b 20 20 20 20 c8 99 20  |usey%.2.;    .. |
00008670  22 57 69 6d 70 5f 43 72  65 61 74 65 4d 65 6e 75  |"Wimp_CreateMenu|
00008680  22 2c 2c 63 75 72 72 65  6e 74 5f 6d 65 6e 75 25  |",,current_menu%|
00008690  2c 6d 65 6e 75 5f 78 25  2c 6d 65 6e 75 5f 79 25  |,menu_x%,menu_y%|
000086a0  0d 32 1e 08 20 20 20 cd  0d 32 28 06 20 cb 0d 32  |.2..   ..2(. ..2|
000086b0  32 05 e1 0d 32 3c 04 0d  32 46 13 dd 20 f2 73 61  |2...2<..2F.. .sa|
000086c0  76 65 5f 6f 70 74 69 6f  6e 73 0d 32 50 0d 20 ea  |ve_options.2P. .|
000086d0  20 63 6f 75 6e 74 25 0d  32 5a 28 20 20 66 69 6c  | count%.2Z(  fil|
000086e0  65 25 3d ae 22 3c 44 54  43 6f 6e 76 65 72 74 24  |e%=."<DTConvert$|
000086f0  44 69 72 3e 2e 43 6f 6e  66 69 67 75 72 65 22 0d  |Dir>.Configure".|
00008700  32 64 23 20 20 20 e7 20  a4 69 63 6f 6e 5f 73 65  |2d#   . .icon_se|
00008710  6c 65 63 74 65 64 28 6f  70 74 25 2c 39 29 3d b9  |lected(opt%,9)=.|
00008720  20 8c 0d 32 6e 1b 20 20  20 20 d5 23 66 69 6c 65  | ..2n.    .#file|
00008730  25 2c 22 6e 6f 68 65 61  64 69 6e 67 22 0d 32 78  |%,"noheading".2x|
00008740  08 20 20 20 cc 0d 32 82  19 20 20 20 20 d5 23 66  |.   ..2..    .#f|
00008750  69 6c 65 25 2c 22 68 65  61 64 69 6e 67 22 0d 32  |ile%,"heading".2|
00008760  8c 08 20 20 20 cd 0d 32  96 16 20 20 e3 20 63 6f  |..   ..2..  . co|
00008770  75 6e 74 25 3d 31 30 20  b8 20 31 33 0d 32 a0 2a  |unt%=10 . 13.2.*|
00008780  20 20 20 d5 23 66 69 6c  65 25 2c a4 67 65 74 5f  |   .#file%,.get_|
00008790  69 63 6f 6e 5f 74 65 78  74 28 6f 70 74 25 2c 63  |icon_text(opt%,c|
000087a0  6f 75 6e 74 25 29 0d 32  aa 0e 20 20 ed 20 63 6f  |ount%).2..  . co|
000087b0  75 6e 74 25 0d 32 b4 24  20 20 20 e7 20 a4 69 63  |unt%.2.$   . .ic|
000087c0  6f 6e 5f 73 65 6c 65 63  74 65 64 28 6f 70 74 25  |on_selected(opt%|
000087d0  2c 31 34 29 3d b9 20 8c  0d 32 be 16 20 20 20 20  |,14)=. ..2..    |
000087e0  d5 23 66 69 6c 65 25 2c  22 62 65 65 70 22 0d 32  |.#file%,"beep".2|
000087f0  c8 08 20 20 20 cc 0d 32  d2 18 20 20 20 20 d5 23  |..   ..2..    .#|
00008800  66 69 6c 65 25 2c 22 6e  6f 62 65 65 70 22 0d 32  |file%,"nobeep".2|
00008810  dc 08 20 20 20 cd 0d 32  e6 24 20 20 20 e7 20 a4  |..   ..2.$   . .|
00008820  69 63 6f 6e 5f 73 65 6c  65 63 74 65 64 28 6f 70  |icon_selected(op|
00008830  74 25 2c 31 35 29 3d b9  20 8c 0d 32 f0 18 20 20  |t%,15)=. ..2..  |
00008840  20 20 d5 23 66 69 6c 65  25 2c 22 61 64 6a 75 73  |  .#file%,"adjus|
00008850  74 22 0d 32 fa 08 20 20  20 cc 0d 33 04 1a 20 20  |t".2..   ..3..  |
00008860  20 20 d5 23 66 69 6c 65  25 2c 22 6e 6f 61 64 6a  |  .#file%,"noadj|
00008870  75 73 74 22 0d 33 0e 08  20 20 20 cd 0d 33 18 0d  |ust".3..   ..3..|
00008880  20 20 d9 23 66 69 6c 65  25 0d 33 22 05 e1 0d 33  |  .#file%.3"...3|
00008890  2c 04 0d 33 36 12 dd 20  f2 67 65 74 5f 6f 70 74  |,..36.. .get_opt|
000088a0  69 6f 6e 73 0d 33 40 13  20 62 65 65 70 24 3d 22  |ions.3@. beep$="|
000088b0  6e 6f 62 65 65 70 22 0d  33 4a 1c 20 61 64 6a 75  |nobeep".3J. adju|
000088c0  73 74 5f 64 72 61 67 24  3d 22 6e 6f 61 64 6a 75  |st_drag$="noadju|
000088d0  73 74 22 0d 33 54 17 20  68 65 61 64 69 6e 67 24  |st".3T. heading$|
000088e0  3d 22 68 65 61 64 69 6e  67 22 0d 33 5e 2a 20 20  |="heading".3^*  |
000088f0  68 65 61 64 69 6e 67 5f  6f 6e 65 24 3d a4 67 65  |heading_one$=.ge|
00008900  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6f 70 74 25  |t_icon_text(opt%|
00008910  2c 31 30 29 0d 33 68 2a  20 20 68 65 61 64 69 6e  |,10).3h*  headin|
00008920  67 5f 74 77 6f 24 3d a4  67 65 74 5f 69 63 6f 6e  |g_two$=.get_icon|
00008930  5f 74 65 78 74 28 6f 70  74 25 2c 31 31 29 0d 33  |_text(opt%,11).3|
00008940  72 2c 20 20 68 65 61 64  69 6e 67 5f 74 68 72 65  |r,  heading_thre|
00008950  65 24 3d a4 67 65 74 5f  69 63 6f 6e 5f 74 65 78  |e$=.get_icon_tex|
00008960  74 28 6f 70 74 25 2c 31  32 29 0d 33 7c 2b 20 20  |t(opt%,12).3|+  |
00008970  68 65 61 64 69 6e 67 5f  66 6f 75 72 24 3d a4 67  |heading_four$=.g|
00008980  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 6f 70 74  |et_icon_text(opt|
00008990  25 2c 31 33 29 0d 33 86  31 20 20 20 e7 20 a4 69  |%,13).3.1   . .i|
000089a0  63 6f 6e 5f 73 65 6c 65  63 74 65 64 28 6f 70 74  |con_selected(opt|
000089b0  25 2c 31 34 29 3d b9 20  8c 20 62 65 65 70 24 3d  |%,14)=. . beep$=|
000089c0  22 62 65 65 70 22 0d 33  90 3a 20 20 20 e7 20 a4  |"beep".3.:   . .|
000089d0  69 63 6f 6e 5f 73 65 6c  65 63 74 65 64 28 6f 70  |icon_selected(op|
000089e0  74 25 2c 31 35 29 3d b9  20 8c 20 61 64 6a 75 73  |t%,15)=. . adjus|
000089f0  74 5f 64 72 61 67 24 3d  22 61 64 6a 75 73 74 22  |t_drag$="adjust"|
00008a00  0d 33 9a 38 20 20 20 e7  20 a4 69 63 6f 6e 5f 73  |.3.8   . .icon_s|
00008a10  65 6c 65 63 74 65 64 28  6f 70 74 25 2c 39 29 3d  |elected(opt%,9)=|
00008a20  b9 20 8c 20 68 65 61 64  69 6e 67 24 3d 22 6e 6f  |. . heading$="no|
00008a30  68 65 61 64 69 6e 67 22  0d 33 a4 05 e1 0d 33 ae  |heading".3....3.|
00008a40  04 0d 33 b8 11 dd 20 f2  6d 61 69 6e 5f 63 6c 69  |..3... .main_cli|
00008a50  63 6b 0d 33 c2 0c ea 20  63 68 65 63 6b 25 0d 33  |ck.3... check%.3|
00008a60  cc 13 20 c8 8e 20 6d 6f  75 73 65 62 75 74 25 20  |.. .. mousebut% |
00008a70  ca 0d 33 d6 23 20 20 c9  20 73 65 6c 65 63 74 5f  |..3.#  . select_|
00008a80  63 6c 69 63 6b 25 2c 61  64 6a 75 73 74 5f 63 6c  |click%,adjust_cl|
00008a90  69 63 6b 25 0d 33 e0 18  20 20 20 c8 8e 20 69 63  |ick%.3..   .. ic|
00008aa0  6f 6e 5f 68 61 6e 64 6c  65 25 20 ca 0d 33 ea 0c  |on_handle% ..3..|
00008ab0  20 20 20 20 c9 20 32 38  0d 33 f4 26 20 20 20 20  |    . 28.3.&    |
00008ac0  20 e7 20 6d 6f 75 73 65  62 75 74 25 20 3d 20 73  | . mousebut% = s|
00008ad0  65 6c 65 63 74 5f 63 6c  69 63 6b 25 20 8c 0d 33  |elect_click% ..3|
00008ae0  fe 18 20 20 20 20 20 20  f2 73 65 6e 64 5f 74 6f  |..      .send_to|
00008af0  5f 73 74 6f 72 65 0d 34  08 0a 20 20 20 20 20 cc  |_store.4..     .|
00008b00  0d 34 12 18 20 20 20 20  20 20 f2 73 65 6e 64 5f  |.4..      .send_|
00008b10  74 6f 5f 73 74 6f 72 65  0d 34 1c 1e 20 20 20 20  |to_store.4..    |
00008b20  20 20 f2 6f 70 65 6e 5f  77 69 6e 64 6f 77 28 73  |  .open_window(s|
00008b30  74 6f 72 65 25 29 0d 34  26 0a 20 20 20 20 20 cd  |tore%).4&.     .|
00008b40  0d 34 30 0c 20 20 20 20  c9 20 32 39 0d 34 3a 1d  |.40.    . 29.4:.|
00008b50  20 20 20 20 20 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |     .open_windo|
00008b60  77 28 73 74 6f 72 65 25  29 0d 34 44 0b 20 20 20  |w(store%).4D.   |
00008b70  20 c9 20 34 0d 34 4e 28  20 20 20 20 20 e7 20 a4  | . 4.4N(     . .|
00008b80  69 63 6f 6e 5f 73 65 6c  65 63 74 65 64 28 6d 61  |icon_selected(ma|
00008b90  69 6e 25 2c 34 29 20 3d  20 a3 20 8c 0d 34 58 21  |in%,4) = . ..4X!|
00008ba0  20 20 20 20 20 20 f2 73  65 6c 65 63 74 5f 69 63  |      .select_ic|
00008bb0  6f 6e 28 6d 61 69 6e 25  2c 34 2c b9 29 0d 34 62  |on(main%,4,.).4b|
00008bc0  21 20 20 20 20 20 20 f2  73 65 6c 65 63 74 5f 69  |!      .select_i|
00008bd0  63 6f 6e 28 6d 61 69 6e  25 2c 32 2c a3 29 0d 34  |con(main%,2,.).4|
00008be0  6c 0a 20 20 20 20 20 cd  0d 34 76 14 20 20 20 f2  |l.     ..4v.   .|
00008bf0  74 69 63 6b 28 31 35 2c  33 2c a3 29 0d 34 80 14  |tick(15,3,.).4..|
00008c00  20 20 20 f2 74 69 63 6b  28 31 35 2c 32 2c b9 29  |   .tick(15,2,.)|
00008c10  0d 34 8a 11 20 20 20 20  6d 65 74 72 69 63 25 3d  |.4..    metric%=|
00008c20  b9 0d 34 94 21 20 20 20  20 20 f2 73 65 74 5f 75  |..4.!     .set_u|
00008c30  6e 69 74 3a f2 73 65 6c  65 63 74 65 64 5f 75 6e  |nit:.selected_un|
00008c40  69 74 0d 34 9e 0b 20 20  20 20 c9 20 32 0d 34 a8  |it.4..    . 2.4.|
00008c50  28 20 20 20 20 20 e7 20  a4 69 63 6f 6e 5f 73 65  |(     . .icon_se|
00008c60  6c 65 63 74 65 64 28 6d  61 69 6e 25 2c 32 29 20  |lected(main%,2) |
00008c70  3d 20 a3 20 8c 0d 34 b2  21 20 20 20 20 20 20 f2  |= . ..4.!      .|
00008c80  73 65 6c 65 63 74 5f 69  63 6f 6e 28 6d 61 69 6e  |select_icon(main|
00008c90  25 2c 32 2c b9 29 0d 34  bc 21 20 20 20 20 20 20  |%,2,.).4.!      |
00008ca0  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 6d 61 69  |.select_icon(mai|
00008cb0  6e 25 2c 34 2c a3 29 0d  34 c6 0a 20 20 20 20 20  |n%,4,.).4..     |
00008cc0  cd 0d 34 d0 14 20 20 20  f2 74 69 63 6b 28 31 35  |..4..   .tick(15|
00008cd0  2c 33 2c b9 29 0d 34 da  14 20 20 20 f2 74 69 63  |,3,.).4..   .tic|
00008ce0  6b 28 31 35 2c 32 2c a3  29 0d 34 e4 11 20 20 20  |k(15,2,.).4..   |
00008cf0  20 6d 65 74 72 69 63 25  3d a3 0d 34 ee 21 20 20  | metric%=..4.!  |
00008d00  20 20 20 f2 73 65 74 5f  75 6e 69 74 3a f2 73 65  |   .set_unit:.se|
00008d10  6c 65 63 74 65 64 5f 75  6e 69 74 0d 34 f8 0c 20  |lected_unit.4.. |
00008d20  20 20 20 c9 20 31 39 0d  35 02 11 20 20 20 20 20  |   . 19.5..     |
00008d30  f2 6f 68 5f 73 6d 65 67  0d 35 0c 1c 20 20 20 20  |.oh_smeg.5..    |
00008d40  20 e7 20 62 65 65 70 24  3d 22 62 65 65 70 22 20  | . beep$="beep" |
00008d50  8c 20 ef 37 0d 35 16 35  20 20 20 20 20 e7 20 6d  |. .7.5.5     . m|
00008d60  6f 75 73 65 62 75 74 25  20 3d 20 61 64 6a 75 73  |ousebut% = adjus|
00008d70  74 5f 63 6c 69 63 6b 25  20 8c 20 f2 73 65 6e 64  |t_click% . .send|
00008d80  5f 74 6f 5f 73 74 6f 72  65 0d 35 20 0c 20 20 20  |_to_store.5 .   |
00008d90  20 c9 20 32 31 0d 35 2a  31 20 20 20 20 20 e7 20  | . 21.5*1     . |
00008da0  6d 6f 75 73 65 62 75 74  25 20 3d 20 73 65 6c 65  |mousebut% = sele|
00008db0  63 74 5f 63 6c 69 63 6b  25 20 8c 20 f2 75 70 28  |ct_click% . .up(|
00008dc0  74 79 70 65 25 29 0d 35  34 33 20 20 20 20 20 e7  |type%).543     .|
00008dd0  20 6d 6f 75 73 65 62 75  74 25 20 3d 20 61 64 6a  | mousebut% = adj|
00008de0  75 73 74 5f 63 6c 69 63  6b 25 20 8c 20 f2 64 6f  |ust_click% . .do|
00008df0  77 6e 28 74 79 70 65 25  29 0d 35 3e 0c 20 20 20  |wn(type%).5>.   |
00008e00  20 c9 20 32 30 0d 35 48  33 20 20 20 20 20 e7 20  | . 20.5H3     . |
00008e10  6d 6f 75 73 65 62 75 74  25 20 3d 20 73 65 6c 65  |mousebut% = sele|
00008e20  63 74 5f 63 6c 69 63 6b  25 20 8c 20 f2 64 6f 77  |ct_click% . .dow|
00008e30  6e 28 74 79 70 65 25 29  0d 35 52 31 20 20 20 20  |n(type%).5R1    |
00008e40  20 e7 20 6d 6f 75 73 65  62 75 74 25 20 3d 20 61  | . mousebut% = a|
00008e50  64 6a 75 73 74 5f 63 6c  69 63 6b 25 20 8c 20 f2  |djust_click% . .|
00008e60  75 70 28 74 79 70 65 25  29 0d 35 5c 0c 20 20 20  |up(type%).5\.   |
00008e70  20 c9 20 32 37 0d 35 66  2e 20 20 20 20 20 e7 20  | . 27.5f.     . |
00008e80  6d 6f 75 73 65 62 75 74  25 20 3d 20 73 65 6c 65  |mousebut% = sele|
00008e90  63 74 5f 63 6c 69 63 6b  25 20 8c 20 f2 65 78 70  |ct_click% . .exp|
00008ea0  5f 75 70 0d 35 70 30 20  20 20 20 20 e7 20 6d 6f  |_up.5p0     . mo|
00008eb0  75 73 65 62 75 74 25 20  3d 20 61 64 6a 75 73 74  |usebut% = adjust|
00008ec0  5f 63 6c 69 63 6b 25 20  8c 20 f2 65 78 70 5f 64  |_click% . .exp_d|
00008ed0  6f 77 6e 0d 35 7a 0c 20  20 20 20 c9 20 32 36 0d  |own.5z.    . 26.|
00008ee0  35 84 30 20 20 20 20 20  e7 20 6d 6f 75 73 65 62  |5.0     . mouseb|
00008ef0  75 74 25 20 3d 20 73 65  6c 65 63 74 5f 63 6c 69  |ut% = select_cli|
00008f00  63 6b 25 20 8c 20 f2 65  78 70 5f 64 6f 77 6e 0d  |ck% . .exp_down.|
00008f10  35 8e 2e 20 20 20 20 20  e7 20 6d 6f 75 73 65 62  |5..     . mouseb|
00008f20  75 74 25 20 3d 20 61 64  6a 75 73 74 5f 63 6c 69  |ut% = adjust_cli|
00008f30  63 6b 25 20 8c 20 f2 65  78 70 5f 75 70 0d 35 98  |ck% . .exp_up.5.|
00008f40  0c 20 20 20 20 c9 20 32  33 0d 35 a2 32 20 20 20  |.    . 23.5.2   |
00008f50  20 20 e7 20 a4 69 63 6f  6e 5f 73 65 6c 65 63 74  |  . .icon_select|
00008f60  65 64 28 6d 61 69 6e 25  2c 32 33 29 3d a3 20 8c  |ed(main%,23)=. .|
00008f70  20 63 68 65 63 6b 25 20  3d 20 a3 0d 35 ac 32 20  | check% = ..5.2 |
00008f80  20 20 20 20 e7 20 a4 69  63 6f 6e 5f 73 65 6c 65  |    . .icon_sele|
00008f90  63 74 65 64 28 6d 61 69  6e 25 2c 32 33 29 3d b9  |cted(main%,23)=.|
00008fa0  20 8c 20 63 68 65 63 6b  25 20 3d 20 b9 0d 35 b6  | . check% = ..5.|
00008fb0  2e 20 20 20 20 20 e7 20  63 68 65 63 6b 25 3d b9  |.     . check%=.|
00008fc0  20 8c 20 f2 73 65 6c 65  63 74 5f 69 63 6f 6e 28  | . .select_icon(|
00008fd0  6d 61 69 6e 25 2c 32 33  2c a3 29 0d 35 c0 2e 20  |main%,23,.).5.. |
00008fe0  20 20 20 20 e7 20 63 68  65 63 6b 25 3d a3 20 8c  |    . check%=. .|
00008ff0  20 f2 73 65 6c 65 63 74  5f 69 63 6f 6e 28 6d 61  | .select_icon(ma|
00009000  69 6e 25 2c 32 33 2c b9  29 0d 35 ca 07 20 20 cb  |in%,23,.).5..  .|
00009010  0d 35 d4 22 20 20 20 c9  20 73 65 6c 65 63 74 5f  |.5."   . select_|
00009020  64 72 61 67 25 2c 61 64  6a 75 73 74 5f 64 72 61  |drag%,adjust_dra|
00009030  67 25 0d 35 de 28 20 20  20 20 e7 20 69 63 6f 6e  |g%.5.(    . icon|
00009040  5f 68 61 6e 64 6c 65 25  20 3d 20 33 31 20 8c 20  |_handle% = 31 . |
00009050  f2 6d 61 69 6e 5f 64 72  61 67 0d 35 e8 14 20 20  |.main_drag.5..  |
00009060  20 c9 20 6d 65 6e 75 5f  63 6c 69 63 6b 25 0d 35  | . menu_click%.5|
00009070  f2 04 0d 35 fc 06 20 cb  0d 36 06 13 20 c8 8e 20  |...5.. ..6.. .. |
00009080  6d 6f 75 73 65 62 75 74  25 20 ca 0d 36 10 2f 20  |mousebut% ..6./ |
00009090  20 c9 20 6d 65 6e 75 5f  63 6c 69 63 6b 25 2c 61  | . menu_click%,a|
000090a0  64 6a 75 73 74 5f 63 6c  69 63 6b 25 2c 73 65 6c  |djust_click%,sel|
000090b0  65 63 74 5f 63 6c 69 63  6b 25 0d 36 1a 18 20 20  |ect_click%.6..  |
000090c0  20 c8 8e 20 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  | .. icon_handle%|
000090d0  20 ca 0d 36 24 10 20 20  20 20 c9 20 35 2c 39 2c  | ..6$.    . 5,9,|
000090e0  31 36 0d 36 2e 32 20 20  20 20 e7 20 69 63 6f 6e  |16.6.2    . icon|
000090f0  5f 68 61 6e 64 6c 65 25  3d 35 20 20 8c 20 63 75  |_handle%=5  . cu|
00009100  72 72 65 6e 74 5f 6d 65  6e 75 25 3d 6d 65 6e 75  |rrent_menu%=menu|
00009110  25 28 32 29 0d 36 38 3d  20 20 20 20 e7 20 69 63  |%(2).68=    . ic|
00009120  6f 6e 5f 68 61 6e 64 6c  65 25 3d 39 20 20 8c 20  |on_handle%=9  . |
00009130  63 75 72 72 65 6e 74 5f  6d 65 6e 75 25 3d 6d 65  |current_menu%=me|
00009140  6e 75 25 28 6d 65 6e 75  5f 6e 75 6d 62 65 72 25  |nu%(menu_number%|
00009150  29 0d 36 42 32 20 20 20  20 e7 20 69 63 6f 6e 5f  |).6B2    . icon_|
00009160  68 61 6e 64 6c 65 25 3d  31 36 20 8c 20 63 75 72  |handle%=16 . cur|
00009170  72 65 6e 74 5f 6d 65 6e  75 25 3d 6d 65 6e 75 25  |rent_menu%=menu%|
00009180  28 32 29 0d 36 4c 24 20  20 20 20 20 6d 65 6e 75  |(2).6L$     menu|
00009190  5f 63 6f 6e 74 65 78 74  24 3d 22 4d 65 61 73 75  |_context$="Measu|
000091a0  72 65 6d 65 6e 74 22 0d  36 56 18 20 20 20 20 20  |rement".6V.     |
000091b0  6d 65 6e 75 5f 78 25 3d  6d 6f 75 73 65 78 25 0d  |menu_x%=mousex%.|
000091c0  36 60 18 20 20 20 20 20  6d 65 6e 75 5f 79 25 3d  |6`.     menu_y%=|
000091d0  6d 6f 75 73 65 79 25 0d  36 6a 3c 20 20 20 20 20  |mousey%.6j<     |
000091e0  c8 99 20 22 57 69 6d 70  5f 43 72 65 61 74 65 4d  |.. "Wimp_CreateM|
000091f0  65 6e 75 22 2c 2c 63 75  72 72 65 6e 74 5f 6d 65  |enu",,current_me|
00009200  6e 75 25 2c 6d 65 6e 75  5f 78 25 2c 6d 65 6e 75  |nu%,menu_x%,menu|
00009210  5f 79 25 0d 36 74 12 20  20 20 20 20 f2 73 65 74  |_y%.6t.     .set|
00009220  5f 75 6e 69 74 0d 36 7e  09 20 20 20 20 7f 0d 36  |_unit.6~.    ..6|
00009230  88 22 20 20 20 20 20 e7  20 6d 6f 75 73 65 62 75  |."     . mousebu|
00009240  74 25 3d 6d 65 6e 75 5f  63 6c 69 63 6b 25 20 8c  |t%=menu_click% .|
00009250  0d 36 92 21 20 20 20 20  20 20 63 75 72 72 65 6e  |.6.!      curren|
00009260  74 5f 6d 65 6e 75 25 3d  6d 65 6e 75 25 28 31 35  |t_menu%=menu%(15|
00009270  29 0d 36 9c 1e 20 20 20  20 20 20 6d 65 6e 75 5f  |).6..      menu_|
00009280  63 6f 6e 74 65 78 74 24  3d 22 4d 61 69 6e 22 0d  |context$="Main".|
00009290  36 a6 1c 20 20 20 20 20  20 6d 65 6e 75 5f 78 25  |6..      menu_x%|
000092a0  3d 6d 6f 75 73 65 78 25  2d 33 32 0d 36 b0 19 20  |=mousex%-32.6.. |
000092b0  20 20 20 20 20 6d 65 6e  75 5f 79 25 3d 6d 6f 75  |     menu_y%=mou|
000092c0  73 65 79 25 0d 36 ba 3d  20 20 20 20 20 20 c8 99  |sey%.6.=      ..|
000092d0  20 22 57 69 6d 70 5f 43  72 65 61 74 65 4d 65 6e  | "Wimp_CreateMen|
000092e0  75 22 2c 2c 63 75 72 72  65 6e 74 5f 6d 65 6e 75  |u",,current_menu|
000092f0  25 2c 6d 65 6e 75 5f 78  25 2c 6d 65 6e 75 5f 79  |%,menu_x%,menu_y|
00009300  25 0d 36 c4 0a 20 20 20  20 20 cd 0d 36 ce 08 20  |%.6..     ..6.. |
00009310  20 20 cb 0d 36 d8 06 20  cb 0d 36 e2 05 e1 0d 36  |  ..6.. ..6....6|
00009320  ec 04 0d 36 f6 14 dd 20  f2 73 65 6e 64 5f 74 6f  |...6... .send_to|
00009330  5f 73 74 6f 72 65 0d 37  00 13 20 ea 20 63 6f 75  |_store.7.. . cou|
00009340  6e 74 25 2c 70 61 73 73  25 0d 37 0a 0d 20 70 61  |nt%,pass%.7.. pa|
00009350  73 73 25 20 3d 30 0d 37  14 0d 20 63 6f 75 6e 74  |ss% =0.7.. count|
00009360  25 3d 30 0d 37 1e 07 20  20 f5 0d 37 28 47 20 20  |%=0.7..  ..7(G  |
00009370  20 e7 20 a4 67 65 74 5f  69 63 6f 6e 5f 74 65 78  | . .get_icon_tex|
00009380  74 28 73 74 6f 72 65 25  2c 63 6f 75 6e 74 25 29  |t(store%,count%)|
00009390  3d 22 22 20 8c 20 f2 74  61 6b 65 5f 75 6e 69 74  |="" . .take_unit|
000093a0  73 28 63 6f 75 6e 74 25  29 3a 70 61 73 73 25 3d  |s(count%):pass%=|
000093b0  b9 0d 37 32 10 20 20 20  63 6f 75 6e 74 25 2b 3d  |..72.   count%+=|
000093c0  33 0d 37 3c 1e 20 20 20  e7 20 63 6f 75 6e 74 25  |3.7<.   . count%|
000093d0  3d 33 30 20 8c 20 63 6f  75 6e 74 25 3d 33 37 0d  |=30 . count%=37.|
000093e0  37 46 1e 20 20 20 e7 20  63 6f 75 6e 74 25 3d 34  |7F.   . count%=4|
000093f0  33 8c 20 ef 37 3a 70 61  73 73 25 3d b9 0d 37 50  |3. .7:pass%=..7P|
00009400  0f 20 20 fd 20 70 61 73  73 25 3d b9 0d 37 5a 05  |.  . pass%=..7Z.|
00009410  e1 0d 37 64 04 0d 37 6e  11 dd 20 f2 73 65 6e 64  |..7d..7n.. .send|
00009420  5f 6d 61 74 68 73 0d 37  78 1c 20 ea 20 63 6f 75  |_maths.7x. . cou|
00009430  6e 74 25 2c 70 61 73 73  25 2c 61 24 2c 73 69 67  |nt%,pass%,a$,sig|
00009440  6e 24 0d 37 82 23 20 20  c8 8e 20 a4 67 65 74 5f  |n$.7.#  .. .get_|
00009450  69 63 6f 6e 5f 74 65 78  74 28 6d 61 74 68 73 25  |icon_text(maths%|
00009460  2c 34 29 20 ca 0d 37 8c  0f 20 20 20 c9 20 22 50  |,4) ..7..   . "P|
00009470  6c 75 73 22 0d 37 96 13  20 20 20 20 73 69 67 6e  |lus".7..    sign|
00009480  24 3d 22 20 2b 20 22 0d  37 a0 10 20 20 20 c9 20  |$=" + ".7..   . |
00009490  22 4d 69 6e 75 73 22 0d  37 aa 13 20 20 20 20 73  |"Minus".7..    s|
000094a0  69 67 6e 24 3d 22 20 2d  20 22 0d 37 b4 18 20 20  |ign$=" - ".7..  |
000094b0  20 c9 20 22 4d 75 6c 74  69 70 6c 69 65 64 20 62  | . "Multiplied b|
000094c0  79 22 0d 37 be 13 20 20  20 20 73 69 67 6e 24 3d  |y".7..    sign$=|
000094d0  22 20 d7 20 22 0d 37 c8  15 20 20 20 c9 20 22 44  |" . ".7..   . "D|
000094e0  69 76 69 64 65 64 20 62  79 22 0d 37 d2 13 20 20  |ivided by".7..  |
000094f0  20 20 73 69 67 6e 24 3d  22 20 f7 20 22 0d 37 dc  |  sign$=" . ".7.|
00009500  07 20 20 cb 0d 37 e6 1f  20 61 24 3d 6d 61 74 68  |.  ..7.. a$=math|
00009510  73 5f 61 24 2b 73 69 67  6e 24 2b 6d 61 74 68 73  |s_a$+sign$+maths|
00009520  5f 62 24 0d 37 f0 0d 20  70 61 73 73 25 20 3d 30  |_b$.7.. pass% =0|
00009530  0d 37 fa 0d 20 63 6f 75  6e 74 25 3d 30 0d 38 04  |.7.. count%=0.8.|
00009540  07 20 20 f5 0d 38 0e 2b  20 20 20 e7 20 a4 67 65  |.  ..8.+   . .ge|
00009550  74 5f 69 63 6f 6e 5f 74  65 78 74 28 73 74 6f 72  |t_icon_text(stor|
00009560  65 25 2c 63 6f 75 6e 74  25 29 3d 22 22 20 8c 0d  |e%,count%)="" ..|
00009570  38 18 28 20 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |8.(    .put_icon|
00009580  5f 74 65 78 74 28 73 74  6f 72 65 25 2c 63 6f 75  |_text(store%,cou|
00009590  6e 74 25 2c 61 24 29 0d  38 22 40 20 20 20 20 f2  |nt%,a$).8"@    .|
000095a0  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 73 74  |put_icon_text(st|
000095b0  6f 72 65 25 2c 63 6f 75  6e 74 25 2b 32 2c a4 67  |ore%,count%+2,.g|
000095c0  65 74 5f 69 63 6f 6e 5f  74 65 78 74 28 6d 61 74  |et_icon_text(mat|
000095d0  68 73 25 2c 39 29 29 0d  38 2c 0f 20 20 20 20 70  |hs%,9)).8,.    p|
000095e0  61 73 73 25 3d b9 0d 38  36 08 20 20 20 cd 0d 38  |ass%=..86.   ..8|
000095f0  40 10 20 20 20 63 6f 75  6e 74 25 2b 3d 33 0d 38  |@.   count%+=3.8|
00009600  4a 1e 20 20 20 e7 20 63  6f 75 6e 74 25 3d 33 30  |J.   . count%=30|
00009610  20 8c 20 63 6f 75 6e 74  25 3d 33 37 0d 38 54 1e  | . count%=37.8T.|
00009620  20 20 20 e7 20 63 6f 75  6e 74 25 3d 34 33 8c 20  |   . count%=43. |
00009630  ef 37 3a 70 61 73 73 25  3d b9 0d 38 5e 0f 20 20  |.7:pass%=..8^.  |
00009640  fd 20 70 61 73 73 25 3d  b9 0d 38 68 05 e1 0d 38  |. pass%=..8h...8|
00009650  72 04 0d 38 7c 18 dd 20  f2 74 61 6b 65 5f 75 6e  |r..8|.. .take_un|
00009660  69 74 73 28 69 63 6f 6e  25 29 0d 38 86 0b 20 ea  |its(icon%).8.. .|
00009670  20 65 6e 64 24 0d 38 90  5f 65 6e 64 24 20 3d 20  | end$.8._end$ = |
00009680  c3 28 bb 28 a4 67 65 74  5f 69 63 6f 6e 5f 74 65  |.(.(.get_icon_te|
00009690  78 74 28 6d 61 69 6e 25  2c 31 37 29 2b a4 67 65  |xt(main%,17)+.ge|
000096a0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
000096b0  25 2c 32 34 29 29 29 2b  22 20 22 2b a4 67 65 74  |%,24)))+" "+.get|
000096c0  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
000096d0  2c 31 35 29 0d 38 9a 04  0d 38 a4 3a 20 f2 70 75  |,15).8...8.: .pu|
000096e0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 73 74 6f 72  |t_icon_text(stor|
000096f0  65 25 2c 69 63 6f 6e 25  2c 28 c3 28 76 61 6c 75  |e%,icon%,(.(valu|
00009700  65 29 2b 22 20 22 2b 74  68 65 5f 75 6e 69 74 24  |e)+" "+the_unit$|
00009710  29 29 0d 38 ae 28 20 f2  70 75 74 5f 69 63 6f 6e  |)).8.( .put_icon|
00009720  5f 74 65 78 74 28 73 74  6f 72 65 25 2c 69 63 6f  |_text(store%,ico|
00009730  6e 25 2b 32 2c 65 6e 64  24 29 0d 38 b8 05 e1 0d  |n%+2,end$).8....|
00009740  38 c2 04 0d 38 cc 0d dd  20 f2 65 78 70 5f 75 70  |8...8... .exp_up|
00009750  0d 38 d6 0c 20 65 78 70  25 2b 3d 31 0d 38 e0 1b  |.8.. exp%+=1.8..|
00009760  20 e7 20 65 78 70 25 3d  33 31 20 8c 20 65 78 70  | . exp%=31 . exp|
00009770  25 3d 33 30 20 3a e1 0d  38 ea 2b 20 f2 70 75 74  |%=30 :..8.+ .put|
00009780  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
00009790  2c 32 35 2c 28 22 45 22  2b c3 28 65 78 70 25 29  |,25,("E"+.(exp%)|
000097a0  29 29 0d 38 f4 05 e1 0d  38 fe 04 0d 39 08 0f dd  |)).8....8...9...|
000097b0  20 f2 65 78 70 5f 64 6f  77 6e 0d 39 12 0e 20 20  | .exp_down.9..  |
000097c0  20 65 78 70 25 2d 3d 31  0d 39 1c 23 20 20 20 e7  | exp%-=1.9.#   .|
000097d0  20 65 78 70 25 3d 28 2d  33 31 29 20 8c 20 65 78  | exp%=(-31) . ex|
000097e0  70 25 3d 28 2d 33 30 29  20 3a e1 0d 39 26 2d 20  |p%=(-30) :..9&- |
000097f0  20 20 f2 70 75 74 5f 69  63 6f 6e 5f 74 65 78 74  |  .put_icon_text|
00009800  28 6d 61 69 6e 25 2c 32  35 2c 28 22 45 22 2b c3  |(main%,25,("E"+.|
00009810  28 65 78 70 25 29 29 29  0d 39 30 05 e1 0d 39 3a  |(exp%))).90...9:|
00009820  04 0d 39 44 1a dd 20 f2  63 68 61 6e 67 65 5f 6d  |..9D.. .change_m|
00009830  65 74 72 69 63 28 6b 65  79 25 29 0d 39 4e 0f f2  |etric(key%).9N..|
00009840  6d 65 6e 75 5f 63 6c 6f  73 65 0d 39 58 0e 20 c8  |menu_close.9X. .|
00009850  8e 20 6b 65 79 25 20 ca  0d 39 62 0b 20 20 20 20  |. key% ..9b.    |
00009860  c9 20 b9 0d 39 6c 28 20  20 20 20 20 e7 20 a4 69  |. ..9l(     . .i|
00009870  63 6f 6e 5f 73 65 6c 65  63 74 65 64 28 6d 61 69  |con_selected(mai|
00009880  6e 25 2c 34 29 20 3d 20  a3 20 8c 0d 39 76 21 20  |n%,4) = . ..9v! |
00009890  20 20 20 20 20 f2 73 65  6c 65 63 74 5f 69 63 6f  |     .select_ico|
000098a0  6e 28 6d 61 69 6e 25 2c  34 2c b9 29 0d 39 80 21  |n(main%,4,.).9.!|
000098b0  20 20 20 20 20 20 f2 73  65 6c 65 63 74 5f 69 63  |      .select_ic|
000098c0  6f 6e 28 6d 61 69 6e 25  2c 32 2c a3 29 0d 39 8a  |on(main%,2,.).9.|
000098d0  0a 20 20 20 20 20 cd 0d  39 94 11 20 20 20 20 6d  |.     ..9..    m|
000098e0  65 74 72 69 63 25 3d b9  0d 39 9e 21 20 20 20 20  |etric%=..9.!    |
000098f0  20 f2 73 65 74 5f 75 6e  69 74 3a f2 73 65 6c 65  | .set_unit:.sele|
00009900  63 74 65 64 5f 75 6e 69  74 0d 39 a8 0b 20 20 20  |cted_unit.9..   |
00009910  20 c9 20 a3 0d 39 b2 28  20 20 20 20 20 e7 20 a4  | . ..9.(     . .|
00009920  69 63 6f 6e 5f 73 65 6c  65 63 74 65 64 28 6d 61  |icon_selected(ma|
00009930  69 6e 25 2c 32 29 20 3d  20 a3 20 8c 0d 39 bc 21  |in%,2) = . ..9.!|
00009940  20 20 20 20 20 20 f2 73  65 6c 65 63 74 5f 69 63  |      .select_ic|
00009950  6f 6e 28 6d 61 69 6e 25  2c 32 2c b9 29 0d 39 c6  |on(main%,2,.).9.|
00009960  21 20 20 20 20 20 20 f2  73 65 6c 65 63 74 5f 69  |!      .select_i|
00009970  63 6f 6e 28 6d 61 69 6e  25 2c 34 2c a3 29 0d 39  |con(main%,4,.).9|
00009980  d0 0a 20 20 20 20 20 cd  0d 39 da 11 20 20 20 20  |..     ..9..    |
00009990  6d 65 74 72 69 63 25 3d  a3 0d 39 e4 21 20 20 20  |metric%=..9.!   |
000099a0  20 20 f2 73 65 74 5f 75  6e 69 74 3a f2 73 65 6c  |  .set_unit:.sel|
000099b0  65 63 74 65 64 5f 75 6e  69 74 0d 39 ee 06 20 cb  |ected_unit.9.. .|
000099c0  0d 39 f8 05 e1 0d 3a 02  04 0d 3a 0c 16 dd f2 6d  |.9....:...:....m|
000099d0  61 69 6e 5f 6d 65 6e 75  28 69 74 65 6d 24 29 0d  |ain_menu(item$).|
000099e0  3a 16 22 6e 75 6d 65 72  69 63 5f 70 61 74 68 24  |:."numeric_path$|
000099f0  3d a4 6d 65 6e 75 5f 70  61 74 68 28 62 6c 6b 25  |=.menu_path(blk%|
00009a00  29 0d 3a 20 17 20 c8 8e  20 6e 75 6d 65 72 69 63  |).: . .. numeric|
00009a10  5f 70 61 74 68 24 20 ca  0d 3a 2a 0b 20 20 c9 20  |_path$ ..:*.  . |
00009a20  22 31 22 0d 3a 34 19 20  20 20 f2 6f 70 65 6e 5f  |"1".:4.   .open_|
00009a30  77 69 6e 64 6f 77 28 6f  70 74 25 29 0d 3a 3e 36  |window(opt%).:>6|
00009a40  20 20 20 f2 70 6c 61 63  65 5f 63 61 72 65 74 28  |   .place_caret(|
00009a50  6f 70 74 25 2c 31 30 2c  a9 20 a4 67 65 74 5f 69  |opt%,10,. .get_i|
00009a60  63 6f 6e 5f 74 65 78 74  28 6f 70 74 25 2c 31 30  |con_text(opt%,10|
00009a70  29 29 0d 3a 48 0b 20 20  c9 20 22 32 22 0d 3a 52  |)).:H.  . "2".:R|
00009a80  0e 20 20 20 71 75 69 74  25 3d b9 0d 3a 5c 06 20  |.   quit%=..:\. |
00009a90  cb 0d 3a 66 05 e1 0d 3a  70 04 0d 3a 7a 18 dd 20  |..:f...:p..:z.. |
00009aa0  f2 6d 61 74 68 73 5f 6d  65 6e 75 28 69 74 65 6d  |.maths_menu(item|
00009ab0  24 29 0d 3a 84 22 6e 75  6d 65 72 69 63 5f 70 61  |$).:."numeric_pa|
00009ac0  74 68 24 3d a4 6d 65 6e  75 5f 70 61 74 68 28 62  |th$=.menu_path(b|
00009ad0  6c 6b 25 29 0d 3a 8e 0d  20 ea 20 63 6f 75 6e 74  |lk%).:.. . count|
00009ae0  25 0d 3a 98 14 20 20 e3  20 63 6f 75 6e 74 25 3d  |%.:..  . count%=|
00009af0  30 20 b8 20 33 0d 3a a2  19 20 20 20 f2 74 69 63  |0 . 3.:..   .tic|
00009b00  6b 28 31 38 2c 63 6f 75  6e 74 25 2c a3 29 0d 3a  |k(18,count%,.).:|
00009b10  ac 0e 20 20 ed 20 63 6f  75 6e 74 25 0d 3a b6 17  |..  . count%.:..|
00009b20  20 c8 8e 20 6e 75 6d 65  72 69 63 5f 70 61 74 68  | .. numeric_path|
00009b30  24 20 ca 0d 3a c0 15 20  20 c9 20 22 30 22 20 3a  |$ ..:..  . "0" :|
00009b40  20 f4 20 2d 20 41 64 64  0d 3a ca 14 20 20 20 f2  | . - Add.:..   .|
00009b50  74 69 63 6b 28 31 38 2c  30 2c b9 29 0d 3a d4 26  |tick(18,0,.).:.&|
00009b60  20 20 20 f2 70 75 74 5f  69 63 6f 6e 5f 74 65 78  |   .put_icon_tex|
00009b70  74 28 6d 61 74 68 73 25  2c 34 2c 22 50 6c 75 73  |t(maths%,4,"Plus|
00009b80  22 29 0d 3a de 1a 20 20  c9 20 22 31 22 20 3a 20  |").:..  . "1" : |
00009b90  f4 20 2d 20 53 75 62 74  72 61 63 74 0d 3a e8 14  |. - Subtract.:..|
00009ba0  20 20 20 f2 74 69 63 6b  28 31 38 2c 31 2c b9 29  |   .tick(18,1,.)|
00009bb0  0d 3a f2 27 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |.:.'   .put_icon|
00009bc0  5f 74 65 78 74 28 6d 61  74 68 73 25 2c 34 2c 22  |_text(maths%,4,"|
00009bd0  4d 69 6e 75 73 22 29 0d  3a fc 1a 20 20 c9 20 22  |Minus").:..  . "|
00009be0  32 22 20 3a 20 f4 20 2d  20 4d 75 6c 74 69 70 6c  |2" : . - Multipl|
00009bf0  79 0d 3b 06 14 20 20 20  f2 74 69 63 6b 28 31 38  |y.;..   .tick(18|
00009c00  2c 32 2c b9 29 0d 3b 10  2f 20 20 20 f2 70 75 74  |,2,.).;./   .put|
00009c10  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 74 68 73  |_icon_text(maths|
00009c20  25 2c 34 2c 22 4d 75 6c  74 69 70 6c 69 65 64 20  |%,4,"Multiplied |
00009c30  62 79 22 29 0d 3b 1a 18  20 20 c9 20 22 33 22 20  |by").;..  . "3" |
00009c40  3a 20 f4 20 2d 20 44 69  76 69 64 65 0d 3b 24 14  |: . - Divide.;$.|
00009c50  20 20 20 f2 74 69 63 6b  28 31 38 2c 33 2c b9 29  |   .tick(18,3,.)|
00009c60  0d 3b 2e 2c 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |.;.,   .put_icon|
00009c70  5f 74 65 78 74 28 6d 61  74 68 73 25 2c 34 2c 22  |_text(maths%,4,"|
00009c80  44 69 76 69 64 65 64 20  62 79 22 29 0d 3b 38 06  |Divided by").;8.|
00009c90  20 cb 0d 3b 42 05 e1 0d  3b 4c 04 0d 3b 56 17 dd  | ..;B...;L..;V..|
00009ca0  f2 73 74 6f 72 65 5f 6d  65 6e 75 28 69 74 65 6d  |.store_menu(item|
00009cb0  24 29 0d 3b 60 22 6e 75  6d 65 72 69 63 5f 70 61  |$).;`"numeric_pa|
00009cc0  74 68 24 3d a4 6d 65 6e  75 5f 70 61 74 68 28 62  |th$=.menu_path(b|
00009cd0  6c 6b 25 29 0d 3b 6a 17  20 c8 8e 20 6e 75 6d 65  |lk%).;j. .. nume|
00009ce0  72 69 63 5f 70 61 74 68  24 20 ca 0d 3b 74 18 20  |ric_path$ ..;t. |
00009cf0  20 c9 20 22 31 22 3a f4  20 73 65 6c 65 63 74 5f  | . "1":. select_|
00009d00  61 6c 6c 0d 3b 7e 0f 20  20 20 f2 73 65 6c 5f 61  |all.;~.   .sel_a|
00009d10  6c 6c 0d 3b 88 13 20 20  c9 20 22 32 22 3a f4 20  |ll.;..  . "2":. |
00009d20  63 6c 65 61 72 0d 3b 92  13 20 20 20 f2 64 65 73  |clear.;..   .des|
00009d30  65 6c 65 63 74 28 b9 29  0d 3b 9c 12 20 20 20 73  |elect(.).;..   s|
00009d40  65 6c 65 63 74 65 64 25  3d 30 0d 3b a6 15 20 20  |elected%=0.;..  |
00009d50  c9 20 22 33 22 20 3a f4  20 64 65 6c 65 74 65 0d  |. "3" :. delete.|
00009d60  3b b0 17 20 20 20 f2 64  65 6c 65 74 65 5f 73 65  |;..   .delete_se|
00009d70  6c 65 63 74 65 64 0d 3b  ba 0b 20 20 c9 20 22 34  |lected.;..  . "4|
00009d80  22 0d 3b c4 1c 20 20 20  f2 63 6c 6f 73 65 5f 77  |".;..   .close_w|
00009d90  69 6e 64 6f 77 28 73 74  6f 72 65 25 29 0d 3b ce  |indow(store%).;.|
00009da0  06 20 cb 0d 3b d8 05 e1  0d 3b e2 04 0d 3b ec 13  |. ..;....;...;..|
00009db0  dd 20 f2 6d 65 6e 75 28  69 74 65 6d 73 24 29 0d  |. .menu(items$).|
00009dc0  3b f6 22 6e 75 6d 65 72  69 63 5f 70 61 74 68 24  |;."numeric_path$|
00009dd0  3d a4 6d 65 6e 75 5f 70  61 74 68 28 62 6c 6b 25  |=.menu_path(blk%|
00009de0  29 0d 3c 00 17 20 c8 8e  20 6e 75 6d 65 72 69 63  |).<.. .. numeric|
00009df0  5f 70 61 74 68 24 20 ca  0d 3c 0a 15 20 20 c9 20  |_path$ ..<..  . |
00009e00  22 30 22 3a f4 20 6f 70  74 69 6f 6e 73 0d 3c 14  |"0":. options.<.|
00009e10  19 20 20 20 f2 6f 70 65  6e 5f 77 69 6e 64 6f 77  |.   .open_window|
00009e20  28 6f 70 74 25 29 0d 3c  1e 36 20 20 20 f2 70 6c  |(opt%).<.6   .pl|
00009e30  61 63 65 5f 63 61 72 65  74 28 6f 70 74 25 2c 31  |ace_caret(opt%,1|
00009e40  30 2c a9 20 a4 67 65 74  5f 69 63 6f 6e 5f 74 65  |0,. .get_icon_te|
00009e50  78 74 28 6f 70 74 25 2c  31 30 29 29 0d 3c 28 19  |xt(opt%,10)).<(.|
00009e60  20 20 c9 20 22 32 22 3a  f4 20 66 72 6f 6d 20 6d  |  . "2":. from m|
00009e70  65 74 72 69 63 0d 3c 32  14 20 20 20 f2 74 69 63  |etric.<2.   .tic|
00009e80  6b 28 31 35 2c 33 2c a3  29 0d 3c 3c 14 20 20 20  |k(15,3,.).<<.   |
00009e90  f2 74 69 63 6b 28 31 35  2c 32 2c b9 29 0d 3c 46  |.tick(15,2,.).<F|
00009ea0  28 20 20 20 20 20 e7 20  a4 69 63 6f 6e 5f 73 65  |(     . .icon_se|
00009eb0  6c 65 63 74 65 64 28 6d  61 69 6e 25 2c 34 29 20  |lected(main%,4) |
00009ec0  3d 20 a3 20 8c 0d 3c 50  21 20 20 20 20 20 20 f2  |= . ..<P!      .|
00009ed0  73 65 6c 65 63 74 5f 69  63 6f 6e 28 6d 61 69 6e  |select_icon(main|
00009ee0  25 2c 34 2c b9 29 0d 3c  5a 21 20 20 20 20 20 20  |%,4,.).<Z!      |
00009ef0  f2 73 65 6c 65 63 74 5f  69 63 6f 6e 28 6d 61 69  |.select_icon(mai|
00009f00  6e 25 2c 32 2c a3 29 0d  3c 64 0a 20 20 20 20 20  |n%,2,.).<d.     |
00009f10  cd 0d 3c 6e 11 20 20 20  20 6d 65 74 72 69 63 25  |..<n.    metric%|
00009f20  3d b9 0d 3c 78 21 20 20  20 20 20 f2 73 65 74 5f  |=..<x!     .set_|
00009f30  75 6e 69 74 3a f2 73 65  6c 65 63 74 65 64 5f 75  |unit:.selected_u|
00009f40  6e 69 74 0d 3c 82 17 20  20 c9 20 22 33 22 3a f4  |nit.<..  . "3":.|
00009f50  20 74 6f 20 6d 65 74 72  69 63 0d 3c 8c 14 20 20  | to metric.<..  |
00009f60  20 f2 74 69 63 6b 28 31  35 2c 33 2c b9 29 0d 3c  | .tick(15,3,.).<|
00009f70  96 14 20 20 20 f2 74 69  63 6b 28 31 35 2c 32 2c  |..   .tick(15,2,|
00009f80  a3 29 0d 3c a0 28 20 20  20 20 20 e7 20 a4 69 63  |.).<.(     . .ic|
00009f90  6f 6e 5f 73 65 6c 65 63  74 65 64 28 6d 61 69 6e  |on_selected(main|
00009fa0  25 2c 32 29 20 3d 20 a3  20 8c 0d 3c aa 21 20 20  |%,2) = . ..<.!  |
00009fb0  20 20 20 20 f2 73 65 6c  65 63 74 5f 69 63 6f 6e  |    .select_icon|
00009fc0  28 6d 61 69 6e 25 2c 32  2c b9 29 0d 3c b4 21 20  |(main%,2,.).<.! |
00009fd0  20 20 20 20 20 f2 73 65  6c 65 63 74 5f 69 63 6f  |     .select_ico|
00009fe0  6e 28 6d 61 69 6e 25 2c  34 2c a3 29 0d 3c be 0a  |n(main%,4,.).<..|
00009ff0  20 20 20 20 20 cd 0d 3c  c8 11 20 20 20 20 6d 65  |     ..<..    me|
0000a000  74 72 69 63 25 3d a3 0d  3c d2 21 20 20 20 20 20  |tric%=..<.!     |
0000a010  f2 73 65 74 5f 75 6e 69  74 3a f2 73 65 6c 65 63  |.set_unit:.selec|
0000a020  74 65 64 5f 75 6e 69 74  0d 3c dc 13 20 20 c9 20  |ted_unit.<..  . |
0000a030  22 34 22 3a f4 20 73 74  6f 72 65 0d 3c e6 15 20  |"4":. store.<.. |
0000a040  20 20 f2 73 65 6e 64 5f  74 6f 5f 73 74 6f 72 65  |  .send_to_store|
0000a050  0d 3c f0 12 20 20 c9 20  22 35 22 3a f4 20 76 69  |.<..  . "5":. vi|
0000a060  65 77 0d 3c fa 1b 20 20  20 f2 6f 70 65 6e 5f 77  |ew.<..   .open_w|
0000a070  69 6e 64 6f 77 28 73 74  6f 72 65 25 29 0d 3d 04  |indow(store%).=.|
0000a080  0b 20 20 c9 20 22 36 22  0d 3d 0e 1b 20 20 20 f2  |.  . "6".=..   .|
0000a090  6f 70 65 6e 5f 77 69 6e  64 6f 77 28 6d 61 74 68  |open_window(math|
0000a0a0  73 25 29 0d 3d 18 17 20  20 c9 20 22 37 22 3a f4  |s%).=..  . "7":.|
0000a0b0  20 43 61 6c 63 75 6c 61  74 65 0d 3d 22 0f 20 20  | Calculate.=".  |
0000a0c0  20 f2 6f 68 5f 73 6d 65  67 0d 3d 2c 1a 20 20 20  | .oh_smeg.=,.   |
0000a0d0  e7 20 62 65 65 70 24 3d  22 62 65 65 70 22 20 8c  |. beep$="beep" .|
0000a0e0  20 ef 37 0d 3d 36 06 20  cb 0d 3d 40 05 e1 0d 3d  | .7.=6. ..=@...=|
0000a0f0  4a 04 0d 3d 54 1b dd f2  64 61 74 61 5f 74 79 70  |J..=T...data_typ|
0000a100  65 5f 6d 65 6e 75 28 69  74 65 6d 24 29 0d 3d 5e  |e_menu(item$).=^|
0000a110  16 ea 20 63 6f 75 6e 74  25 2c 6e 65 77 5f 74 79  |.. count%,new_ty|
0000a120  70 65 24 0d 3d 68 14 e3  20 63 6f 75 6e 74 25 20  |pe$.=h.. count% |
0000a130  3d 20 30 20 b8 20 35 0d  3d 72 16 20 f2 74 69 63  |= 0 . 5.=r. .tic|
0000a140  6b 28 32 2c 63 6f 75 6e  74 25 2c a3 29 0d 3d 7c  |k(2,count%,.).=||
0000a150  0c ed 20 63 6f 75 6e 74  25 0d 3d 86 0f 20 c8 8e  |.. count%.=.. ..|
0000a160  20 69 74 65 6d 24 20 ca  0d 3d 90 1a 20 20 c9 20  | item$ ..=..  . |
0000a170  22 4c 65 6e 67 74 68 20  20 20 20 20 20 20 8b 46  |"Length       .F|
0000a180  31 22 0d 3d 9a 2e 20 20  20 f2 74 69 63 6b 28 32  |1".=..   .tick(2|
0000a190  2c 30 2c b9 29 3a 74 79  70 65 25 3d 31 3a 6e 65  |,0,.):type%=1:ne|
0000a1a0  77 5f 74 79 70 65 24 3d  22 4c 65 6e 67 74 68 22  |w_type$="Length"|
0000a1b0  0d 3d a4 1a 20 20 c9 20  22 41 72 65 61 20 20 20  |.=..  . "Area   |
0000a1c0  20 20 20 20 20 20 8b 46  32 22 0d 3d ae 2c 20 20  |      .F2".=.,  |
0000a1d0  20 f2 74 69 63 6b 28 32  2c 31 2c b9 29 3a 74 79  | .tick(2,1,.):ty|
0000a1e0  70 65 25 3d 32 3a 6e 65  77 5f 74 79 70 65 24 3d  |pe%=2:new_type$=|
0000a1f0  22 41 72 65 61 22 0d 3d  b8 1a 20 20 c9 20 22 4d  |"Area".=..  . "M|
0000a200  61 73 73 20 20 20 20 20  20 20 20 20 8b 46 33 22  |ass         .F3"|
0000a210  0d 3d c2 2c 20 20 20 f2  74 69 63 6b 28 32 2c 32  |.=.,   .tick(2,2|
0000a220  2c b9 29 3a 74 79 70 65  25 3d 33 3a 6e 65 77 5f  |,.):type%=3:new_|
0000a230  74 79 70 65 24 3d 22 4d  61 73 73 22 0d 3d cc 1a  |type$="Mass".=..|
0000a240  20 20 c9 20 22 56 6f 6c  75 6d 65 20 20 20 20 20  |  . "Volume     |
0000a250  20 20 8b 46 34 22 0d 3d  d6 2e 20 20 20 f2 74 69  |  .F4".=..   .ti|
0000a260  63 6b 28 32 2c 33 2c b9  29 3a 74 79 70 65 25 3d  |ck(2,3,.):type%=|
0000a270  34 3a 6e 65 77 5f 74 79  70 65 24 3d 22 56 6f 6c  |4:new_type$="Vol|
0000a280  75 6d 65 22 0d 3d e0 1a  20 20 c9 20 22 43 61 70  |ume".=..  . "Cap|
0000a290  61 63 69 74 79 20 20 20  20 20 8b 46 35 22 0d 3d  |acity     .F5".=|
0000a2a0  ea 30 20 20 20 f2 74 69  63 6b 28 32 2c 34 2c b9  |.0   .tick(2,4,.|
0000a2b0  29 3a 74 79 70 65 25 3d  35 3a 6e 65 77 5f 74 79  |):type%=5:new_ty|
0000a2c0  70 65 24 3d 22 43 61 70  61 63 69 74 79 22 0d 3d  |pe$="Capacity".=|
0000a2d0  f4 1a 20 20 c9 20 22 54  65 6d 70 65 72 61 74 75  |..  . "Temperatu|
0000a2e0  72 65 20 20 8b 46 36 22  0d 3d fe 33 20 20 20 f2  |re  .F6".=.3   .|
0000a2f0  74 69 63 6b 28 32 2c 35  2c b9 29 3a 74 79 70 65  |tick(2,5,.):type|
0000a300  25 3d 36 3a 6e 65 77 5f  74 79 70 65 24 3d 22 54  |%=6:new_type$="T|
0000a310  65 6d 70 65 72 61 74 75  72 65 22 0d 3e 08 06 20  |emperature".>.. |
0000a320  cb 0d 3e 12 3b f2 70 75  74 5f 69 63 6f 6e 5f 74  |..>.;.put_icon_t|
0000a330  65 78 74 28 6d 61 69 6e  25 2c 33 2c 22 4d 65 61  |ext(main%,3,"Mea|
0000a340  73 75 72 65 6d 65 6e 74  20 74 79 70 65 20 2d 20  |surement type - |
0000a350  22 2b 6e 65 77 5f 74 79  70 65 24 29 0d 3e 1c 0d  |"+new_type$).>..|
0000a360  f2 73 65 74 5f 75 6e 69  74 0d 3e 26 12 f2 73 65  |.set_unit.>&..se|
0000a370  6c 65 63 74 65 64 5f 75  6e 69 74 0d 3e 30 05 e1  |lected_unit.>0..|
0000a380  0d 3e 3a 04 0d 3e 44 1b  dd f2 6c 65 6e 67 74 68  |.>:..>D...length|
0000a390  5f 6d 74 5f 6d 65 6e 75  28 69 74 65 6d 24 29 0d  |_mt_menu(item$).|
0000a3a0  3e 4e 0d 20 ea 20 63 6f  75 6e 74 25 0d 3e 58 14  |>N. . count%.>X.|
0000a3b0  20 20 e3 20 63 6f 75 6e  74 25 3d 30 20 b8 20 32  |  . count%=0 . 2|
0000a3c0  0d 3e 62 18 20 20 20 f2  74 69 63 6b 28 33 2c 63  |.>b.   .tick(3,c|
0000a3d0  6f 75 6e 74 25 2c a3 29  0d 3e 6c 0e 20 20 ed 20  |ount%,.).>l.  . |
0000a3e0  63 6f 75 6e 74 25 0d 3e  76 0f 20 c8 8e 20 69 74  |count%.>v. .. it|
0000a3f0  65 6d 24 20 ca 0d 3e 80  15 20 20 c9 20 22 43 65  |em$ ..>..  . "Ce|
0000a400  6e 74 69 6d 65 74 72 65  73 22 0d 3e 8a 21 20 20  |ntimetres".>.!  |
0000a410  20 f2 74 69 63 6b 28 33  2c 30 2c b9 29 3a 72 65  | .tick(3,0,.):re|
0000a420  66 5f 6e 75 6d 62 65 72  25 3d 31 0d 3e 94 10 20  |f_number%=1.>.. |
0000a430  20 c9 20 22 4d 65 74 72  65 73 22 0d 3e 9e 21 20  | . "Metres".>.! |
0000a440  20 20 f2 74 69 63 6b 28  33 2c 31 2c b9 29 3a 72  |  .tick(3,1,.):r|
0000a450  65 66 5f 6e 75 6d 62 65  72 25 3d 32 0d 3e a8 14  |ef_number%=2.>..|
0000a460  20 20 c9 20 22 4b 69 6c  6f 6d 65 74 72 65 73 22  |  . "Kilometres"|
0000a470  0d 3e b2 21 20 20 20 f2  74 69 63 6b 28 33 2c 32  |.>.!   .tick(3,2|
0000a480  2c b9 29 3a 72 65 66 5f  6e 75 6d 62 65 72 25 3d  |,.):ref_number%=|
0000a490  33 0d 3e bc 06 20 cb 0d  3e c6 0f f2 72 65 66 5f  |3.>.. ..>...ref_|
0000a4a0  6e 75 6d 62 65 72 0d 3e  d0 05 e1 0d 3e da 04 0d  |number.>....>...|
0000a4b0  3e e4 18 dd f2 6c 65 6e  67 74 68 5f 6d 65 6e 75  |>....length_menu|
0000a4c0  28 69 74 65 6d 24 29 0d  3e ee 0d 20 ea 20 63 6f  |(item$).>.. . co|
0000a4d0  75 6e 74 25 0d 3e f8 14  20 20 e3 20 63 6f 75 6e  |unt%.>..  . coun|
0000a4e0  74 25 3d 30 20 b8 20 33  0d 3f 02 18 20 20 20 f2  |t%=0 . 3.?..   .|
0000a4f0  74 69 63 6b 28 34 2c 63  6f 75 6e 74 25 2c a3 29  |tick(4,count%,.)|
0000a500  0d 3f 0c 0e 20 20 ed 20  63 6f 75 6e 74 25 0d 3f  |.?..  . count%.?|
0000a510  16 0f 20 c8 8e 20 69 74  65 6d 24 20 ca 0d 3f 20  |.. .. item$ ..? |
0000a520  10 20 20 c9 20 22 49 6e  63 68 65 73 22 0d 3f 2a  |.  . "Inches".?*|
0000a530  21 20 20 20 f2 74 69 63  6b 28 34 2c 30 2c b9 29  |!   .tick(4,0,.)|
0000a540  3a 72 65 66 5f 6e 75 6d  62 65 72 25 3d 34 0d 3f  |:ref_number%=4.?|
0000a550  34 0e 20 20 c9 20 22 46  65 65 74 22 0d 3f 3e 21  |4.  . "Feet".?>!|
0000a560  20 20 20 f2 74 69 63 6b  28 34 2c 31 2c b9 29 3a  |   .tick(4,1,.):|
0000a570  72 65 66 5f 6e 75 6d 62  65 72 25 3d 35 0d 3f 48  |ref_number%=5.?H|
0000a580  0f 20 20 c9 20 22 59 61  72 64 73 22 0d 3f 52 21  |.  . "Yards".?R!|
0000a590  20 20 20 f2 74 69 63 6b  28 34 2c 32 2c b9 29 3a  |   .tick(4,2,.):|
0000a5a0  72 65 66 5f 6e 75 6d 62  65 72 25 3d 36 0d 3f 5c  |ref_number%=6.?\|
0000a5b0  0f 20 20 c9 20 22 4d 69  6c 65 73 22 0d 3f 66 21  |.  . "Miles".?f!|
0000a5c0  20 20 20 f2 74 69 63 6b  28 34 2c 33 2c b9 29 3a  |   .tick(4,3,.):|
0000a5d0  72 65 66 5f 6e 75 6d 62  65 72 25 3d 37 0d 3f 70  |ref_number%=7.?p|
0000a5e0  06 20 cb 0d 3f 7a 0f f2  72 65 66 5f 6e 75 6d 62  |. ..?z..ref_numb|
0000a5f0  65 72 0d 3f 84 05 e1 0d  3f 8e 04 0d 3f 98 19 dd  |er.?....?...?...|
0000a600  f2 61 72 65 61 5f 6d 74  5f 6d 65 6e 75 28 69 74  |.area_mt_menu(it|
0000a610  65 6d 24 29 0d 3f a2 0d  20 ea 20 63 6f 75 6e 74  |em$).?.. . count|
0000a620  25 0d 3f ac 14 20 20 e3  20 63 6f 75 6e 74 25 3d  |%.?..  . count%=|
0000a630  30 20 b8 20 33 0d 3f b6  18 20 20 20 f2 74 69 63  |0 . 3.?..   .tic|
0000a640  6b 28 35 2c 63 6f 75 6e  74 25 2c a3 29 0d 3f c0  |k(5,count%,.).?.|
0000a650  0e 20 20 ed 20 63 6f 75  6e 74 25 0d 3f ca 0f 20  |.  . count%.?.. |
0000a660  c8 8e 20 69 74 65 6d 24  20 ca 0d 3f d4 10 20 20  |.. item$ ..?..  |
0000a670  c9 20 22 53 71 20 63 6d  73 22 0d 3f de 21 20 20  |. "Sq cms".?.!  |
0000a680  20 f2 74 69 63 6b 28 35  2c 30 2c b9 29 3a 72 65  | .tick(5,0,.):re|
0000a690  66 5f 6e 75 6d 62 65 72  25 3d 38 0d 3f e8 13 20  |f_number%=8.?.. |
0000a6a0  20 c9 20 22 53 71 20 6d  65 74 72 65 73 22 0d 3f  | . "Sq metres".?|
0000a6b0  f2 21 20 20 20 f2 74 69  63 6b 28 35 2c 31 2c b9  |.!   .tick(5,1,.|
0000a6c0  29 3a 72 65 66 5f 6e 75  6d 62 65 72 25 3d 39 0d  |):ref_number%=9.|
0000a6d0  3f fc 12 20 20 c9 20 22  48 65 63 74 61 72 65 73  |?..  . "Hectares|
0000a6e0  22 0d 40 06 22 20 20 20  f2 74 69 63 6b 28 35 2c  |".@."   .tick(5,|
0000a6f0  32 2c b9 29 3a 72 65 66  5f 6e 75 6d 62 65 72 25  |2,.):ref_number%|
0000a700  3d 31 30 0d 40 10 10 20  20 c9 20 22 53 71 20 6b  |=10.@..  . "Sq k|
0000a710  6d 73 22 0d 40 1a 22 20  20 20 f2 74 69 63 6b 28  |ms".@."   .tick(|
0000a720  35 2c 33 2c b9 29 3a 72  65 66 5f 6e 75 6d 62 65  |5,3,.):ref_numbe|
0000a730  72 25 3d 31 31 0d 40 24  06 20 cb 0d 40 2e 0f f2  |r%=11.@$. ..@...|
0000a740  72 65 66 5f 6e 75 6d 62  65 72 0d 40 38 05 e1 0d  |ref_number.@8...|
0000a750  40 42 04 0d 40 4c 16 dd  f2 61 72 65 61 5f 6d 65  |@B..@L...area_me|
0000a760  6e 75 28 69 74 65 6d 24  29 0d 40 56 0d 20 ea 20  |nu(item$).@V. . |
0000a770  63 6f 75 6e 74 25 0d 40  60 14 20 20 e3 20 63 6f  |count%.@`.  . co|
0000a780  75 6e 74 25 3d 30 20 b8  20 34 0d 40 6a 18 20 20  |unt%=0 . 4.@j.  |
0000a790  20 f2 74 69 63 6b 28 36  2c 63 6f 75 6e 74 25 2c  | .tick(6,count%,|
0000a7a0  a3 29 0d 40 74 0e 20 20  ed 20 63 6f 75 6e 74 25  |.).@t.  . count%|
0000a7b0  0d 40 7e 0f 20 c8 8e 20  69 74 65 6d 24 20 ca 0d  |.@~. .. item$ ..|
0000a7c0  40 88 13 20 20 c9 20 22  53 71 20 69 6e 63 68 65  |@..  . "Sq inche|
0000a7d0  73 22 0d 40 92 22 20 20  20 f2 74 69 63 6b 28 36  |s".@."   .tick(6|
0000a7e0  2c 30 2c b9 29 3a 72 65  66 5f 6e 75 6d 62 65 72  |,0,.):ref_number|
0000a7f0  25 3d 31 32 0d 40 9c 11  20 20 c9 20 22 53 71 20  |%=12.@..  . "Sq |
0000a800  66 65 65 74 22 0d 40 a6  22 20 20 20 f2 74 69 63  |feet".@."   .tic|
0000a810  6b 28 36 2c 31 2c b9 29  3a 72 65 66 5f 6e 75 6d  |k(6,1,.):ref_num|
0000a820  62 65 72 25 3d 31 33 0d  40 b0 12 20 20 c9 20 22  |ber%=13.@..  . "|
0000a830  53 71 20 79 61 72 64 73  22 0d 40 ba 22 20 20 20  |Sq yards".@."   |
0000a840  f2 74 69 63 6b 28 36 2c  32 2c b9 29 3a 72 65 66  |.tick(6,2,.):ref|
0000a850  5f 6e 75 6d 62 65 72 25  3d 31 34 0d 40 c4 0f 20  |_number%=14.@.. |
0000a860  20 c9 20 22 41 63 72 65  73 22 0d 40 ce 22 20 20  | . "Acres".@."  |
0000a870  20 f2 74 69 63 6b 28 36  2c 33 2c b9 29 3a 72 65  | .tick(6,3,.):re|
0000a880  66 5f 6e 75 6d 62 65 72  25 3d 31 35 0d 40 d8 12  |f_number%=15.@..|
0000a890  20 20 c9 20 22 53 71 20  6d 69 6c 65 73 22 0d 40  |  . "Sq miles".@|
0000a8a0  e2 22 20 20 20 f2 74 69  63 6b 28 36 2c 34 2c b9  |."   .tick(6,4,.|
0000a8b0  29 3a 72 65 66 5f 6e 75  6d 62 65 72 25 3d 31 36  |):ref_number%=16|
0000a8c0  0d 40 ec 06 20 cb 0d 40  f6 0f f2 72 65 66 5f 6e  |.@.. ..@...ref_n|
0000a8d0  75 6d 62 65 72 0d 41 00  05 e1 0d 41 0a 04 0d 41  |umber.A....A...A|
0000a8e0  14 19 dd f2 6d 61 73 73  5f 6d 74 5f 6d 65 6e 75  |....mass_mt_menu|
0000a8f0  28 69 74 65 6d 24 29 0d  41 1e 0d 20 ea 20 63 6f  |(item$).A.. . co|
0000a900  75 6e 74 25 0d 41 28 14  20 20 e3 20 63 6f 75 6e  |unt%.A(.  . coun|
0000a910  74 25 3d 30 20 b8 20 32  0d 41 32 18 20 20 20 f2  |t%=0 . 2.A2.   .|
0000a920  74 69 63 6b 28 37 2c 63  6f 75 6e 74 25 2c a3 29  |tick(7,count%,.)|
0000a930  0d 41 3c 0e 20 20 ed 20  63 6f 75 6e 74 25 0d 41  |.A<.  . count%.A|
0000a940  46 0f 20 c8 8e 20 69 74  65 6d 24 20 ca 0d 41 50  |F. .. item$ ..AP|
0000a950  0f 20 20 c9 20 22 47 72  61 6d 73 22 0d 41 5a 22  |.  . "Grams".AZ"|
0000a960  20 20 20 f2 74 69 63 6b  28 37 2c 30 2c b9 29 3a  |   .tick(7,0,.):|
0000a970  72 65 66 5f 6e 75 6d 62  65 72 25 3d 31 37 0d 41  |ref_number%=17.A|
0000a980  64 13 20 20 c9 20 22 4b  69 6c 6f 67 72 61 6d 73  |d.  . "Kilograms|
0000a990  22 0d 41 6e 22 20 20 20  f2 74 69 63 6b 28 37 2c  |".An"   .tick(7,|
0000a9a0  31 2c b9 29 3a 72 65 66  5f 6e 75 6d 62 65 72 25  |1,.):ref_number%|
0000a9b0  3d 31 38 0d 41 78 10 20  20 c9 20 22 54 6f 6e 6e  |=18.Ax.  . "Tonn|
0000a9c0  65 73 22 0d 41 82 22 20  20 20 f2 74 69 63 6b 28  |es".A."   .tick(|
0000a9d0  37 2c 32 2c b9 29 3a 72  65 66 5f 6e 75 6d 62 65  |7,2,.):ref_numbe|
0000a9e0  72 25 3d 31 39 0d 41 8c  06 20 cb 0d 41 96 0f f2  |r%=19.A.. ..A...|
0000a9f0  72 65 66 5f 6e 75 6d 62  65 72 0d 41 a0 05 e1 0d  |ref_number.A....|
0000aa00  41 aa 04 0d 41 b4 16 dd  f2 6d 61 73 73 5f 6d 65  |A...A....mass_me|
0000aa10  6e 75 28 69 74 65 6d 24  29 0d 41 be 0d 20 ea 20  |nu(item$).A.. . |
0000aa20  63 6f 75 6e 74 25 0d 41  c8 14 20 20 e3 20 63 6f  |count%.A..  . co|
0000aa30  75 6e 74 25 3d 30 20 b8  20 32 0d 41 d2 18 20 20  |unt%=0 . 2.A..  |
0000aa40  20 f2 74 69 63 6b 28 38  2c 63 6f 75 6e 74 25 2c  | .tick(8,count%,|
0000aa50  a3 29 0d 41 dc 0e 20 20  ed 20 63 6f 75 6e 74 25  |.).A..  . count%|
0000aa60  0d 41 e6 0f 20 c8 8e 20  69 74 65 6d 24 20 ca 0d  |.A.. .. item$ ..|
0000aa70  41 f0 10 20 20 c9 20 22  4f 75 6e 63 65 73 22 0d  |A..  . "Ounces".|
0000aa80  41 fa 22 20 20 20 f2 74  69 63 6b 28 38 2c 30 2c  |A."   .tick(8,0,|
0000aa90  b9 29 3a 72 65 66 5f 6e  75 6d 62 65 72 25 3d 32  |.):ref_number%=2|
0000aaa0  30 0d 42 04 10 20 20 c9  20 22 50 6f 75 6e 64 73  |0.B..  . "Pounds|
0000aab0  22 0d 42 0e 22 20 20 20  f2 74 69 63 6b 28 38 2c  |".B."   .tick(8,|
0000aac0  31 2c b9 29 3a 72 65 66  5f 6e 75 6d 62 65 72 25  |1,.):ref_number%|
0000aad0  3d 32 31 0d 42 18 0e 20  20 c9 20 22 54 6f 6e 73  |=21.B..  . "Tons|
0000aae0  22 0d 42 22 22 20 20 20  f2 74 69 63 6b 28 38 2c  |".B""   .tick(8,|
0000aaf0  32 2c b9 29 3a 72 65 66  5f 6e 75 6d 62 65 72 25  |2,.):ref_number%|
0000ab00  3d 32 32 0d 42 2c 06 20  cb 0d 42 36 0f f2 72 65  |=22.B,. ..B6..re|
0000ab10  66 5f 6e 75 6d 62 65 72  0d 42 40 05 e1 0d 42 4a  |f_number.B@...BJ|
0000ab20  04 0d 42 54 1b dd f2 76  6f 6c 75 6d 65 5f 6d 74  |..BT...volume_mt|
0000ab30  5f 6d 65 6e 75 28 69 74  65 6d 24 29 0d 42 5e 0d  |_menu(item$).B^.|
0000ab40  20 ea 20 63 6f 75 6e 74  25 0d 42 68 14 20 20 e3  | . count%.Bh.  .|
0000ab50  20 63 6f 75 6e 74 25 3d  30 20 b8 20 31 0d 42 72  | count%=0 . 1.Br|
0000ab60  18 20 20 20 f2 74 69 63  6b 28 39 2c 63 6f 75 6e  |.   .tick(9,coun|
0000ab70  74 25 2c a3 29 0d 42 7c  0e 20 20 ed 20 63 6f 75  |t%,.).B|.  . cou|
0000ab80  6e 74 25 0d 42 86 0f 20  c8 8e 20 69 74 65 6d 24  |nt%.B.. .. item$|
0000ab90  20 ca 0d 42 90 13 20 20  c9 20 22 43 75 62 69 63  | ..B..  . "Cubic|
0000aba0  20 63 6d 73 22 0d 42 9a  22 20 20 20 f2 74 69 63  | cms".B."   .tic|
0000abb0  6b 28 39 2c 30 2c b9 29  3a 72 65 66 5f 6e 75 6d  |k(9,0,.):ref_num|
0000abc0  62 65 72 25 3d 32 33 0d  42 a4 16 20 20 c9 20 22  |ber%=23.B..  . "|
0000abd0  43 75 62 69 63 20 6d 65  74 72 65 73 22 0d 42 ae  |Cubic metres".B.|
0000abe0  22 20 20 20 f2 74 69 63  6b 28 39 2c 31 2c b9 29  |"   .tick(9,1,.)|
0000abf0  3a 72 65 66 5f 6e 75 6d  62 65 72 25 3d 32 34 0d  |:ref_number%=24.|
0000ac00  42 b8 06 20 cb 0d 42 c2  0f f2 72 65 66 5f 6e 75  |B.. ..B...ref_nu|
0000ac10  6d 62 65 72 0d 42 cc 05  e1 0d 42 d6 04 0d 42 e0  |mber.B....B...B.|
0000ac20  18 dd f2 76 6f 6c 75 6d  65 5f 6d 65 6e 75 28 69  |...volume_menu(i|
0000ac30  74 65 6d 24 29 0d 42 ea  0d 20 ea 20 63 6f 75 6e  |tem$).B.. . coun|
0000ac40  74 25 0d 42 f4 14 20 20  e3 20 63 6f 75 6e 74 25  |t%.B..  . count%|
0000ac50  3d 30 20 b8 20 32 0d 42  fe 19 20 20 20 f2 74 69  |=0 . 2.B..   .ti|
0000ac60  63 6b 28 31 30 2c 63 6f  75 6e 74 25 2c a3 29 0d  |ck(10,count%,.).|
0000ac70  43 08 0e 20 20 ed 20 63  6f 75 6e 74 25 0d 43 12  |C..  . count%.C.|
0000ac80  0f 20 c8 8e 20 69 74 65  6d 24 20 ca 0d 43 1c 16  |. .. item$ ..C..|
0000ac90  20 20 c9 20 22 43 75 62  69 63 20 69 6e 63 68 65  |  . "Cubic inche|
0000aca0  73 22 0d 43 26 23 20 20  20 f2 74 69 63 6b 28 31  |s".C&#   .tick(1|
0000acb0  30 2c 30 2c b9 29 3a 72  65 66 5f 6e 75 6d 62 65  |0,0,.):ref_numbe|
0000acc0  72 25 3d 32 35 0d 43 30  14 20 20 c9 20 22 43 75  |r%=25.C0.  . "Cu|
0000acd0  62 69 63 20 66 65 65 74  22 0d 43 3a 23 20 20 20  |bic feet".C:#   |
0000ace0  f2 74 69 63 6b 28 31 30  2c 31 2c b9 29 3a 72 65  |.tick(10,1,.):re|
0000acf0  66 5f 6e 75 6d 62 65 72  25 3d 32 36 0d 43 44 15  |f_number%=26.CD.|
0000ad00  20 20 c9 20 22 43 75 62  69 63 20 79 61 72 64 73  |  . "Cubic yards|
0000ad10  22 0d 43 4e 23 20 20 20  f2 74 69 63 6b 28 31 30  |".CN#   .tick(10|
0000ad20  2c 32 2c b9 29 3a 72 65  66 5f 6e 75 6d 62 65 72  |,2,.):ref_number|
0000ad30  25 3d 32 37 0d 43 58 06  20 cb 0d 43 62 0f f2 72  |%=27.CX. ..Cb..r|
0000ad40  65 66 5f 6e 75 6d 62 65  72 0d 43 6c 05 e1 0d 43  |ef_number.Cl...C|
0000ad50  76 04 0d 43 80 1d dd f2  63 61 70 61 63 69 74 79  |v..C....capacity|
0000ad60  5f 6d 74 5f 6d 65 6e 75  28 69 74 65 6d 24 29 0d  |_mt_menu(item$).|
0000ad70  43 8a 0d 20 ea 20 63 6f  75 6e 74 25 0d 43 94 14  |C.. . count%.C..|
0000ad80  20 20 e3 20 63 6f 75 6e  74 25 3d 30 20 b8 20 32  |  . count%=0 . 2|
0000ad90  0d 43 9e 19 20 20 20 f2  74 69 63 6b 28 31 31 2c  |.C..   .tick(11,|
0000ada0  63 6f 75 6e 74 25 2c a3  29 0d 43 a8 0e 20 20 ed  |count%,.).C..  .|
0000adb0  20 63 6f 75 6e 74 25 0d  43 b2 0f 20 c8 8e 20 69  | count%.C.. .. i|
0000adc0  74 65 6d 24 20 ca 0d 43  bc 14 20 20 c9 20 22 4d  |tem$ ..C..  . "M|
0000add0  69 6c 69 6c 69 74 72 65  73 22 0d 43 c6 23 20 20  |ililitres".C.#  |
0000ade0  20 f2 74 69 63 6b 28 31  31 2c 30 2c b9 29 3a 72  | .tick(11,0,.):r|
0000adf0  65 66 5f 6e 75 6d 62 65  72 25 3d 32 38 0d 43 d0  |ef_number%=28.C.|
0000ae00  10 20 20 c9 20 22 4c 69  74 72 65 73 22 0d 43 da  |.  . "Litres".C.|
0000ae10  23 20 20 20 f2 74 69 63  6b 28 31 31 2c 31 2c b9  |#   .tick(11,1,.|
0000ae20  29 3a 72 65 66 5f 6e 75  6d 62 65 72 25 3d 32 39  |):ref_number%=29|
0000ae30  0d 43 e4 06 20 cb 0d 43  ee 0f f2 72 65 66 5f 6e  |.C.. ..C...ref_n|
0000ae40  75 6d 62 65 72 0d 43 f8  05 e1 0d 44 02 04 0d 44  |umber.C....D...D|
0000ae50  0c 1a dd f2 63 61 70 61  63 69 74 79 5f 6d 65 6e  |....capacity_men|
0000ae60  75 28 69 74 65 6d 24 29  0d 44 16 0d 20 ea 20 63  |u(item$).D.. . c|
0000ae70  6f 75 6e 74 25 0d 44 20  14 20 20 e3 20 63 6f 75  |ount%.D .  . cou|
0000ae80  6e 74 25 3d 30 20 b8 20  32 0d 44 2a 19 20 20 20  |nt%=0 . 2.D*.   |
0000ae90  f2 74 69 63 6b 28 31 32  2c 63 6f 75 6e 74 25 2c  |.tick(12,count%,|
0000aea0  a3 29 0d 44 34 0e 20 20  ed 20 63 6f 75 6e 74 25  |.).D4.  . count%|
0000aeb0  0d 44 3e 0f 20 c8 8e 20  69 74 65 6d 24 20 ca 0d  |.D>. .. item$ ..|
0000aec0  44 48 16 20 20 c9 20 22  46 6c 75 65 64 20 6f 75  |DH.  . "Flued ou|
0000aed0  6e 63 65 73 22 0d 44 52  23 20 20 20 f2 74 69 63  |nces".DR#   .tic|
0000aee0  6b 28 31 32 2c 30 2c b9  29 3a 72 65 66 5f 6e 75  |k(12,0,.):ref_nu|
0000aef0  6d 62 65 72 25 3d 33 30  0d 44 5c 0f 20 20 c9 20  |mber%=30.D\.  . |
0000af00  22 50 69 6e 74 73 22 0d  44 66 23 20 20 20 f2 74  |"Pints".Df#   .t|
0000af10  69 63 6b 28 31 32 2c 31  2c b9 29 3a 72 65 66 5f  |ick(12,1,.):ref_|
0000af20  6e 75 6d 62 65 72 25 3d  33 31 0d 44 70 11 20 20  |number%=31.Dp.  |
0000af30  c9 20 22 47 61 6c 6c 6f  6e 73 22 0d 44 7a 23 20  |. "Gallons".Dz# |
0000af40  20 20 f2 74 69 63 6b 28  31 32 2c 32 2c b9 29 3a  |  .tick(12,2,.):|
0000af50  72 65 66 5f 6e 75 6d 62  65 72 25 3d 33 32 0d 44  |ref_number%=32.D|
0000af60  84 06 20 cb 0d 44 8e 0f  f2 72 65 66 5f 6e 75 6d  |.. ..D...ref_num|
0000af70  62 65 72 0d 44 98 05 e1  0d 44 a2 04 0d 44 ac 1a  |ber.D....D...D..|
0000af80  dd 20 f2 74 65 6d 70 5f  6d 74 5f 6d 65 6e 75 28  |. .temp_mt_menu(|
0000af90  69 74 65 6d 24 29 0d 44  b6 12 20 f2 74 69 63 6b  |item$).D.. .tick|
0000afa0  28 31 33 2c 30 2c a3 29  0d 44 c0 12 20 f2 74 69  |(13,0,.).D.. .ti|
0000afb0  63 6b 28 31 33 2c 31 2c  a3 29 0d 44 ca 0f 20 c8  |ck(13,1,.).D.. .|
0000afc0  8e 20 69 74 65 6d 24 20  ca 0d 44 d4 10 20 20 c9  |. item$ ..D..  .|
0000afd0  20 22 4b 65 6c 76 69 6e  22 0d 44 de 23 20 20 20  | "Kelvin".D.#   |
0000afe0  f2 74 69 63 6b 28 31 33  2c 30 2c b9 29 3a 72 65  |.tick(13,0,.):re|
0000aff0  66 5f 6e 75 6d 62 65 72  25 3d 33 33 0d 44 e8 12  |f_number%=33.D..|
0000b000  20 20 c9 20 22 b0 43 65  6c 63 69 75 73 22 0d 44  |  . ".Celcius".D|
0000b010  f2 23 20 20 20 f2 74 69  63 6b 28 31 33 2c 31 2c  |.#   .tick(13,1,|
0000b020  b9 29 3a 72 65 66 5f 6e  75 6d 62 65 72 25 3d 33  |.):ref_number%=3|
0000b030  34 0d 44 fc 06 20 cb 0d  45 06 0f f2 72 65 66 5f  |4.D.. ..E...ref_|
0000b040  6e 75 6d 62 65 72 0d 45  10 05 e1 0d 45 1a 04 0d  |number.E....E...|
0000b050  45 24 17 dd 20 f2 74 65  6d 70 5f 6d 65 6e 75 28  |E$.. .temp_menu(|
0000b060  69 74 65 6d 24 29 0d 45  2e 21 20 f2 74 69 63 6b  |item$).E.! .tick|
0000b070  28 31 33 2c 30 2c b9 29  3a 72 65 66 5f 6e 75 6d  |(13,0,.):ref_num|
0000b080  62 65 72 25 3d 33 35 0d  45 38 10 20 f2 72 65 66  |ber%=35.E8. .ref|
0000b090  5f 6e 75 6d 62 65 72 0d  45 42 05 e1 0d 45 4c 04  |_number.EB...EL.|
0000b0a0  0d 45 56 1c f4 20 20 2d  20 45 72 72 6f 72 20 68  |.EV..  - Error h|
0000b0b0  61 6e 64 6c 65 72 20 28  39 2e 31 29 0d 45 60 04  |andler (9.1).E`.|
0000b0c0  0d 45 6a 1e dd f2 65 72  72 6f 72 28 21 65 72 72  |.Ej...error(!err|
0000b0d0  6f 72 62 6c 6b 25 2c 65  72 72 6f 72 24 29 0d 45  |orblk%,error$).E|
0000b0e0  74 13 20 65 72 72 6f 72  63 6f 75 6e 74 25 2b 3d  |t. errorcount%+=|
0000b0f0  31 0d 45 7e 2e 20 20 e7  20 65 72 72 6f 72 63 6f  |1.E~.  . errorco|
0000b100  75 6e 74 25 3e 35 3a 85  20 a2 20 30 2c 22 54 6f  |unt%>5:. . 0,"To|
0000b110  6f 20 6d 61 6e 79 20 65  72 72 6f 72 73 21 22 0d  |o many errors!".|
0000b120  45 88 2b 20 20 20 e7 20  9f 3c 32 30 30 20 65 72  |E.+   . .<200 er|
0000b130  72 6f 72 24 2b 3d 22 20  61 74 20 6c 69 6e 65 20  |ror$+=" at line |
0000b140  22 2b c3 28 9e 20 81 31  30 29 0d 45 92 3b 20 20  |"+.(. .10).E.;  |
0000b150  20 e7 20 9f 3d 32 30 30  20 65 72 72 6f 72 24 3d  | . .=200 error$=|
0000b160  22 2a 2a 2a 20 45 72 72  6f 72 20 69 6e 20 6d 65  |"*** Error in me|
0000b170  6e 75 20 66 69 6c 65 21  20 2a 2a 2a 20 22 2b 65  |nu file! *** "+e|
0000b180  72 72 6f 72 24 0d 45 9c  3b 20 20 20 e7 20 9f 3d  |rror$.E.;   . .=|
0000b190  32 30 31 20 65 72 72 6f  72 24 3d 22 2a 2a 2a 20  |201 error$="*** |
0000b1a0  20 20 20 20 4d 65 6e 75  20 65 72 72 6f 72 20 20  |    Menu error  |
0000b1b0  20 20 20 20 2a 2a 2a 20  22 2b 65 72 72 6f 72 24  |    *** "+error$|
0000b1c0  0d 45 a6 3b 20 20 20 e7  20 9f 3d 32 30 32 20 65  |.E.;   . .=202 e|
0000b1d0  72 72 6f 72 24 3d 22 2a  2a 2a 20 20 20 20 20 49  |rror$="***     I|
0000b1e0  63 6f 6e 20 65 72 72 6f  72 20 20 20 20 20 20 2a  |con error      *|
0000b1f0  2a 2a 20 22 2b 65 72 72  6f 72 24 0d 45 b0 3b 20  |** "+error$.E.; |
0000b200  20 20 e7 20 9f 3d 32 30  33 20 65 72 72 6f 72 24  |  . .=203 error$|
0000b210  3d 22 2a 2a 2a 20 20 20  20 20 46 69 6c 65 20 65  |="***     File e|
0000b220  72 72 6f 72 20 20 20 20  20 20 2a 2a 2a 20 22 2b  |rror      *** "+|
0000b230  65 72 72 6f 72 24 0d 45  ba 3b 20 20 20 e7 20 9f  |error$.E.;   . .|
0000b240  3d 32 30 34 20 65 72 72  6f 72 24 3d 22 2a 2a 2a  |=204 error$="***|
0000b250  20 20 20 20 57 69 6e 64  6f 77 20 65 72 72 6f 72  |    Window error|
0000b260  20 20 20 20 20 2a 2a 2a  20 22 2b 65 72 72 6f 72  |     *** "+error|
0000b270  24 0d 45 c4 28 20 20 20  e7 20 9f 3d 32 30 20 8c  |$.E.(   . .=20 .|
0000b280  20 f2 77 68 6f 6f 70 73  3a 65 72 72 6f 72 63 6f  | .whoops:errorco|
0000b290  75 6e 74 25 2d 3d 31 3a  e1 0d 45 ce 1e 20 20 c8  |unt%-=1:..E..  .|
0000b2a0  99 22 58 4f 53 5f 46 69  6e 64 22 2c 30 2c 6d 65  |."XOS_Find",0,me|
0000b2b0  6e 75 66 69 6c 65 25 0d  45 d8 1d 20 20 c8 99 22  |nufile%.E..  .."|
0000b2c0  58 57 69 6d 70 5f 43 6c  6f 73 65 54 65 6d 70 6c  |XWimp_CloseTempl|
0000b2d0  61 74 65 22 0d 45 e2 1a  20 24 28 65 72 72 6f 72  |ate".E.. $(error|
0000b2e0  62 6c 6b 25 2b 34 29 3d  65 72 72 6f 72 24 0d 45  |blk%+4)=error$.E|
0000b2f0  ec 30 20 c8 99 20 22 57  69 6d 70 5f 52 65 70 6f  |.0 .. "Wimp_Repo|
0000b300  72 74 45 72 72 6f 72 22  2c 65 72 72 6f 72 62 6c  |rtError",errorbl|
0000b310  6b 25 2c 31 2c 61 70 70  5f 6e 61 6d 65 24 0d 45  |k%,1,app_name$.E|
0000b320  f6 05 e1 0d 46 00 04 0d  46 0a 0d dd 20 f2 77 68  |....F...F... .wh|
0000b330  6f 6f 70 73 0d 46 14 27  20 f2 70 75 74 5f 69 63  |oops.F.' .put_ic|
0000b340  6f 6e 5f 74 65 78 74 28  6d 61 69 6e 25 2c 31 37  |on_text(main%,17|
0000b350  2c 22 45 72 72 6f 72 21  21 22 29 0d 46 1e 04 0d  |,"Error!!").F...|
0000b360  46 28 05 e1 0d 46 32 04  0d 46 3c 0a dd f2 71 75  |F(...F2..F<...qu|
0000b370  69 74 0d 46 46 18 20 c8  99 20 22 57 69 6d 70 5f  |it.FF. .. "Wimp_|
0000b380  43 6c 6f 73 65 44 6f 77  6e 22 0d 46 50 06 20 e0  |CloseDown".FP. .|
0000b390  0d 46 5a 05 e1 0d 46 64  04 0d 46 6e 0f dd 20 f2  |.FZ...Fd..Fn.. .|
0000b3a0  73 65 74 5f 75 6e 69 74  0d 46 78 11 20 c8 8e 20  |set_unit.Fx. .. |
0000b3b0  6d 65 74 72 69 63 25 20  ca 0d 46 82 09 20 20 c9  |metric% ..F..  .|
0000b3c0  20 b9 0d 46 8c 11 20 20  20 c8 8e 20 74 79 70 65  | ..F..   .. type|
0000b3d0  25 20 ca 0d 46 96 14 20  20 20 20 c9 20 31 3a f4  |% ..F..    . 1:.|
0000b3e0  20 6c 65 6e 67 74 68 0d  46 a0 17 20 20 20 20 20  | length.F..     |
0000b3f0  6d 65 6e 75 5f 6e 75 6d  62 65 72 25 3d 33 0d 46  |menu_number%=3.F|
0000b400  aa 0b 20 20 20 20 c9 20  32 0d 46 b4 17 20 20 20  |..    . 2.F..   |
0000b410  20 20 6d 65 6e 75 5f 6e  75 6d 62 65 72 25 3d 35  |  menu_number%=5|
0000b420  0d 46 be 0b 20 20 20 20  c9 20 33 0d 46 c8 17 20  |.F..    . 3.F.. |
0000b430  20 20 20 20 6d 65 6e 75  5f 6e 75 6d 62 65 72 25  |    menu_number%|
0000b440  3d 37 0d 46 d2 0b 20 20  20 20 c9 20 34 0d 46 dc  |=7.F..    . 4.F.|
0000b450  17 20 20 20 20 20 6d 65  6e 75 5f 6e 75 6d 62 65  |.     menu_numbe|
0000b460  72 25 3d 39 0d 46 e6 0b  20 20 20 20 c9 20 35 0d  |r%=9.F..    . 5.|
0000b470  46 f0 18 20 20 20 20 20  6d 65 6e 75 5f 6e 75 6d  |F..     menu_num|
0000b480  62 65 72 25 3d 31 31 0d  46 fa 0b 20 20 20 20 c9  |ber%=11.F..    .|
0000b490  20 36 0d 47 04 18 20 20  20 20 20 6d 65 6e 75 5f  | 6.G..     menu_|
0000b4a0  6e 75 6d 62 65 72 25 3d  31 33 0d 47 0e 08 20 20  |number%=13.G..  |
0000b4b0  20 cb 0d 47 18 09 20 20  c9 20 a3 0d 47 22 11 20  | ..G..  . ..G". |
0000b4c0  20 20 c8 8e 20 74 79 70  65 25 20 ca 0d 47 2c 14  |  .. type% ..G,.|
0000b4d0  20 20 20 20 c9 20 31 3a  f4 20 6c 65 6e 67 74 68  |    . 1:. length|
0000b4e0  0d 47 36 17 20 20 20 20  20 6d 65 6e 75 5f 6e 75  |.G6.     menu_nu|
0000b4f0  6d 62 65 72 25 3d 34 0d  47 40 0b 20 20 20 20 c9  |mber%=4.G@.    .|
0000b500  20 32 0d 47 4a 17 20 20  20 20 20 6d 65 6e 75 5f  | 2.GJ.     menu_|
0000b510  6e 75 6d 62 65 72 25 3d  36 0d 47 54 0b 20 20 20  |number%=6.GT.   |
0000b520  20 c9 20 33 0d 47 5e 17  20 20 20 20 20 6d 65 6e  | . 3.G^.     men|
0000b530  75 5f 6e 75 6d 62 65 72  25 3d 38 0d 47 68 0b 20  |u_number%=8.Gh. |
0000b540  20 20 20 c9 20 34 0d 47  72 18 20 20 20 20 20 6d  |   . 4.Gr.     m|
0000b550  65 6e 75 5f 6e 75 6d 62  65 72 25 3d 31 30 0d 47  |enu_number%=10.G|
0000b560  7c 0b 20 20 20 20 c9 20  35 0d 47 86 18 20 20 20  ||.    . 5.G..   |
0000b570  20 20 6d 65 6e 75 5f 6e  75 6d 62 65 72 25 3d 31  |  menu_number%=1|
0000b580  32 0d 47 90 0b 20 20 20  20 c9 20 36 0d 47 9a 18  |2.G..    . 6.G..|
0000b590  20 20 20 20 20 6d 65 6e  75 5f 6e 75 6d 62 65 72  |     menu_number|
0000b5a0  25 3d 31 34 0d 47 a4 08  20 20 20 cb 0d 47 ae 06  |%=14.G..   ..G..|
0000b5b0  20 cb 0d 47 b8 05 e1 0d  47 c2 04 0d 47 cc 11 dd  | ..G....G...G...|
0000b5c0  20 f2 72 65 66 5f 6e 75  6d 62 65 72 0d 47 d6 10  | .ref_number.G..|
0000b5d0  ea 20 75 6e 69 74 5f 6e  61 6d 65 24 0d 47 e0 15  |. unit_name$.G..|
0000b5e0  20 c8 8e 20 72 65 66 5f  6e 75 6d 62 65 72 25 20  | .. ref_number% |
0000b5f0  ca 0d 47 ea 09 20 20 c9  20 31 0d 47 f4 1f 20 20  |..G..  . 1.G..  |
0000b600  20 75 6e 69 74 5f 6e 61  6d 65 24 3d 22 43 65 6e  | unit_name$="Cen|
0000b610  74 69 6d 65 74 72 65 73  22 0d 47 fe 09 20 20 c9  |timetres".G..  .|
0000b620  20 32 0d 48 08 1a 20 20  20 75 6e 69 74 5f 6e 61  | 2.H..   unit_na|
0000b630  6d 65 24 3d 22 4d 65 74  72 65 73 22 0d 48 12 09  |me$="Metres".H..|
0000b640  20 20 c9 20 33 0d 48 1c  1e 20 20 20 75 6e 69 74  |  . 3.H..   unit|
0000b650  5f 6e 61 6d 65 24 3d 22  4b 69 6c 6f 6d 65 74 72  |_name$="Kilometr|
0000b660  65 73 22 0d 48 26 09 20  20 c9 20 34 0d 48 30 1a  |es".H&.  . 4.H0.|
0000b670  20 20 20 75 6e 69 74 5f  6e 61 6d 65 24 3d 22 49  |   unit_name$="I|
0000b680  6e 63 68 65 73 22 0d 48  3a 09 20 20 c9 20 35 0d  |nches".H:.  . 5.|
0000b690  48 44 18 20 20 20 75 6e  69 74 5f 6e 61 6d 65 24  |HD.   unit_name$|
0000b6a0  3d 22 46 65 65 74 22 0d  48 4e 09 20 20 c9 20 36  |="Feet".HN.  . 6|
0000b6b0  0d 48 58 19 20 20 20 75  6e 69 74 5f 6e 61 6d 65  |.HX.   unit_name|
0000b6c0  24 3d 22 59 61 72 64 73  22 0d 48 62 09 20 20 c9  |$="Yards".Hb.  .|
0000b6d0  20 37 0d 48 6c 19 20 20  20 75 6e 69 74 5f 6e 61  | 7.Hl.   unit_na|
0000b6e0  6d 65 24 3d 22 4d 69 6c  65 73 22 0d 48 76 09 20  |me$="Miles".Hv. |
0000b6f0  20 c9 20 38 0d 48 80 1a  20 20 20 75 6e 69 74 5f  | . 8.H..   unit_|
0000b700  6e 61 6d 65 24 3d 22 53  71 20 63 6d 73 22 0d 48  |name$="Sq cms".H|
0000b710  8a 09 20 20 c9 20 39 0d  48 94 1d 20 20 20 75 6e  |..  . 9.H..   un|
0000b720  69 74 5f 6e 61 6d 65 24  3d 22 53 71 20 6d 65 74  |it_name$="Sq met|
0000b730  72 65 73 22 0d 48 9e 0a  20 20 c9 20 31 30 0d 48  |res".H..  . 10.H|
0000b740  a8 1c 20 20 20 75 6e 69  74 5f 6e 61 6d 65 24 3d  |..   unit_name$=|
0000b750  22 48 65 63 74 61 72 65  73 22 0d 48 b2 0a 20 20  |"Hectares".H..  |
0000b760  c9 20 31 31 0d 48 bc 1a  20 20 20 75 6e 69 74 5f  |. 11.H..   unit_|
0000b770  6e 61 6d 65 24 3d 22 53  71 20 6b 6d 73 22 0d 48  |name$="Sq kms".H|
0000b780  c6 0a 20 20 c9 20 31 32  0d 48 d0 1d 20 20 20 75  |..  . 12.H..   u|
0000b790  6e 69 74 5f 6e 61 6d 65  24 3d 22 53 71 20 69 6e  |nit_name$="Sq in|
0000b7a0  63 68 65 73 22 0d 48 da  0a 20 20 c9 20 31 33 0d  |ches".H..  . 13.|
0000b7b0  48 e4 1b 20 20 20 75 6e  69 74 5f 6e 61 6d 65 24  |H..   unit_name$|
0000b7c0  3d 22 53 71 20 66 65 65  74 22 0d 48 ee 0a 20 20  |="Sq feet".H..  |
0000b7d0  c9 20 31 34 0d 48 f8 1c  20 20 20 75 6e 69 74 5f  |. 14.H..   unit_|
0000b7e0  6e 61 6d 65 24 3d 22 53  71 20 79 61 72 64 73 22  |name$="Sq yards"|
0000b7f0  0d 49 02 0a 20 20 c9 20  31 35 0d 49 0c 19 20 20  |.I..  . 15.I..  |
0000b800  20 75 6e 69 74 5f 6e 61  6d 65 24 3d 22 41 63 72  | unit_name$="Acr|
0000b810  65 73 22 0d 49 16 0a 20  20 c9 20 31 36 0d 49 20  |es".I..  . 16.I |
0000b820  1c 20 20 20 75 6e 69 74  5f 6e 61 6d 65 24 3d 22  |.   unit_name$="|
0000b830  53 71 20 6d 69 6c 65 73  22 0d 49 2a 0a 20 20 c9  |Sq miles".I*.  .|
0000b840  20 31 37 0d 49 34 19 20  20 20 75 6e 69 74 5f 6e  | 17.I4.   unit_n|
0000b850  61 6d 65 24 3d 22 47 72  61 6d 73 22 0d 49 3e 0a  |ame$="Grams".I>.|
0000b860  20 20 c9 20 31 38 0d 49  48 1e 20 20 20 75 6e 69  |  . 18.IH.   uni|
0000b870  74 5f 6e 61 6d 65 24 3d  22 4b 69 6c 69 6f 67 72  |t_name$="Kiliogr|
0000b880  61 6d 73 22 0d 49 52 0a  20 20 c9 20 31 39 0d 49  |ams".IR.  . 19.I|
0000b890  5c 1a 20 20 20 75 6e 69  74 5f 6e 61 6d 65 24 3d  |\.   unit_name$=|
0000b8a0  22 54 6f 6e 6e 65 73 22  0d 49 66 0a 20 20 c9 20  |"Tonnes".If.  . |
0000b8b0  32 30 0d 49 70 1a 20 20  20 75 6e 69 74 5f 6e 61  |20.Ip.   unit_na|
0000b8c0  6d 65 24 3d 22 4f 75 6e  63 65 73 22 0d 49 7a 0a  |me$="Ounces".Iz.|
0000b8d0  20 20 c9 20 32 31 0d 49  84 1a 20 20 20 75 6e 69  |  . 21.I..   uni|
0000b8e0  74 5f 6e 61 6d 65 24 3d  22 50 6f 75 6e 64 73 22  |t_name$="Pounds"|
0000b8f0  0d 49 8e 0a 20 20 c9 20  32 32 0d 49 98 18 20 20  |.I..  . 22.I..  |
0000b900  20 75 6e 69 74 5f 6e 61  6d 65 24 3d 22 54 6f 6e  | unit_name$="Ton|
0000b910  73 22 0d 49 a2 0a 20 20  c9 20 32 33 0d 49 ac 1d  |s".I..  . 23.I..|
0000b920  20 20 20 75 6e 69 74 5f  6e 61 6d 65 24 3d 22 43  |   unit_name$="C|
0000b930  75 62 69 63 20 63 6d 73  22 0d 49 b6 0a 20 20 c9  |ubic cms".I..  .|
0000b940  20 32 34 0d 49 c0 20 20  20 20 75 6e 69 74 5f 6e  | 24.I.    unit_n|
0000b950  61 6d 65 24 3d 22 43 75  62 69 63 20 6d 65 74 72  |ame$="Cubic metr|
0000b960  65 73 22 0d 49 ca 0a 20  20 c9 20 32 35 0d 49 d4  |es".I..  . 25.I.|
0000b970  20 20 20 20 75 6e 69 74  5f 6e 61 6d 65 24 3d 22  |    unit_name$="|
0000b980  43 75 62 69 63 20 69 6e  63 68 65 73 22 0d 49 de  |Cubic inches".I.|
0000b990  0a 20 20 c9 20 32 36 0d  49 e8 1e 20 20 20 75 6e  |.  . 26.I..   un|
0000b9a0  69 74 5f 6e 61 6d 65 24  3d 22 43 75 62 69 63 20  |it_name$="Cubic |
0000b9b0  66 65 65 74 22 0d 49 f2  0a 20 20 c9 20 32 37 0d  |feet".I..  . 27.|
0000b9c0  49 fc 1f 20 20 20 75 6e  69 74 5f 6e 61 6d 65 24  |I..   unit_name$|
0000b9d0  3d 22 43 75 62 69 63 20  59 61 72 64 73 22 0d 4a  |="Cubic Yards".J|
0000b9e0  06 0a 20 20 c9 20 32 38  0d 4a 10 1e 20 20 20 75  |..  . 28.J..   u|
0000b9f0  6e 69 74 5f 6e 61 6d 65  24 3d 22 4d 69 6c 69 6c  |nit_name$="Milil|
0000ba00  69 74 72 65 73 22 0d 4a  1a 0a 20 20 c9 20 32 39  |itres".J..  . 29|
0000ba10  0d 4a 24 1a 20 20 20 75  6e 69 74 5f 6e 61 6d 65  |.J$.   unit_name|
0000ba20  24 3d 22 4c 69 74 72 65  73 22 0d 4a 2e 0a 20 20  |$="Litres".J..  |
0000ba30  c9 20 33 30 0d 4a 38 20  20 20 20 75 6e 69 74 5f  |. 30.J8    unit_|
0000ba40  6e 61 6d 65 24 3d 22 46  6c 75 65 64 20 6f 75 6e  |name$="Flued oun|
0000ba50  63 65 73 22 0d 4a 42 0a  20 20 c9 20 33 31 0d 4a  |ces".JB.  . 31.J|
0000ba60  4c 19 20 20 20 75 6e 69  74 5f 6e 61 6d 65 24 3d  |L.   unit_name$=|
0000ba70  22 50 69 6e 74 73 22 0d  4a 56 0a 20 20 c9 20 33  |"Pints".JV.  . 3|
0000ba80  32 0d 4a 60 1b 20 20 20  75 6e 69 74 5f 6e 61 6d  |2.J`.   unit_nam|
0000ba90  65 24 3d 22 47 61 6c 6c  6f 6e 73 22 0d 4a 6a 0a  |e$="Gallons".Jj.|
0000baa0  20 20 c9 20 33 33 0d 4a  74 1a 20 20 20 75 6e 69  |  . 33.Jt.   uni|
0000bab0  74 5f 6e 61 6d 65 24 3d  22 4b 65 6c 76 69 6e 22  |t_name$="Kelvin"|
0000bac0  0d 4a 7e 0a 20 20 c9 20  33 34 0d 4a 88 1c 20 20  |.J~.  . 34.J..  |
0000bad0  20 75 6e 69 74 5f 6e 61  6d 65 24 3d 22 b0 43 65  | unit_name$=".Ce|
0000bae0  6c 63 69 75 73 22 0d 4a  92 0a 20 20 c9 20 33 35  |lcius".J..  . 35|
0000baf0  0d 4a 9c 1f 20 20 20 75  6e 69 74 5f 6e 61 6d 65  |.J..   unit_name|
0000bb00  24 3d 22 b0 46 61 68 72  65 6e 68 65 69 74 22 0d  |$=".Fahrenheit".|
0000bb10  4a a6 06 20 cb 0d 4a b0  28 20 20 f2 70 75 74 5f  |J.. ..J.(  .put_|
0000bb20  69 63 6f 6e 5f 74 65 78  74 28 6d 61 69 6e 25 2c  |icon_text(main%,|
0000bb30  38 2c 75 6e 69 74 5f 6e  61 6d 65 24 29 0d 4a ba  |8,unit_name$).J.|
0000bb40  05 e1 0d 4a c4 04 0d 4a  ce 0e dd 20 f2 6f 68 5f  |...J...J... .oh_|
0000bb50  73 6d 65 67 0d 4a d8 0b  ea 20 74 65 78 74 24 0d  |smeg.J... text$.|
0000bb60  4a e2 27 20 20 74 68 65  5f 75 6e 69 74 24 3d a4  |J.'  the_unit$=.|
0000bb70  67 65 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |get_icon_text(ma|
0000bb80  69 6e 25 2c 38 29 0d 4a  ec 15 20 20 f2 6e 75 6c  |in%,8).J..  .nul|
0000bb90  6c 5f 76 61 72 69 61 62  6c 65 73 0d 4a f6 33 20  |l_variables.J.3 |
0000bba0  20 20 20 20 e7 20 a4 69  63 6f 6e 5f 73 65 6c 65  |    . .icon_sele|
0000bbb0  63 74 65 64 28 6d 61 69  6e 25 2c 32 33 29 3d a3  |cted(main%,23)=.|
0000bbc0  20 8c 20 6e 65 67 61 74  69 76 65 25 3d a3 0d 4b  | . negative%=..K|
0000bbd0  00 33 20 20 20 20 20 e7  20 a4 69 63 6f 6e 5f 73  |.3     . .icon_s|
0000bbe0  65 6c 65 63 74 65 64 28  6d 61 69 6e 25 2c 32 33  |elected(main%,23|
0000bbf0  29 3d b9 20 8c 20 6e 65  67 61 74 69 76 65 25 3d  |)=. . negative%=|
0000bc00  b9 0d 4b 0a 3f 20 20 76  61 6c 75 65 3d bb 28 a4  |..K.?  value=.(.|
0000bc10  67 65 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |get_icon_text(ma|
0000bc20  69 6e 25 2c 37 29 2b a4  67 65 74 5f 69 63 6f 6e  |in%,7)+.get_icon|
0000bc30  5f 74 65 78 74 28 6d 61  69 6e 25 2c 32 35 29 29  |_text(main%,25))|
0000bc40  0d 4b 14 2a 20 20 20 20  e7 20 6e 65 67 61 74 69  |.K.*    . negati|
0000bc50  76 65 25 20 3d 20 b9 20  8c 20 76 61 6c 75 65 3d  |ve% = . . value=|
0000bc60  76 61 6c 75 65 2a 28 2d  31 29 0d 4b 1e 17 20 20  |value*(-1).K..  |
0000bc70  20 c8 8e 20 72 65 66 5f  6e 75 6d 62 65 72 25 20  | .. ref_number% |
0000bc80  ca 0d 4b 28 04 0d 4b 32  17 20 20 20 20 c9 20 31  |..K(..K2.    . 1|
0000bc90  20 3a 20 f4 20 2d 4c 65  6e 67 74 68 0d 4b 3c 23  | : . -Length.K<#|
0000bca0  20 20 20 20 20 74 65 78  74 24 3d c3 28 28 76 61  |     text$=.((va|
0000bcb0  6c 75 65 2f 31 30 30 29  2a 31 2e 30 39 34 29 0d  |lue/100)*1.094).|
0000bcc0  4b 46 0b 20 20 20 20 c9  20 32 0d 4b 50 1d 20 20  |KF.    . 2.KP.  |
0000bcd0  20 20 20 74 65 78 74 24  3d c3 28 76 61 6c 75 65  |   text$=.(value|
0000bce0  2a 31 2e 30 39 34 29 0d  4b 5a 0b 20 20 20 20 c9  |*1.094).KZ.    .|
0000bcf0  20 33 0d 4b 64 22 20 20  20 20 20 74 65 78 74 24  | 3.Kd"     text$|
0000bd00  3d c3 28 76 61 6c 75 65  2a 31 2e 30 39 34 2a 31  |=.(value*1.094*1|
0000bd10  30 30 30 29 0d 4b 6e 0b  20 20 20 20 c9 20 34 0d  |000).Kn.    . 4.|
0000bd20  4b 78 25 20 20 20 20 20  74 65 78 74 24 3d c3 28  |Kx%     text$=.(|
0000bd30  28 76 61 6c 75 65 2f 31  32 29 2f 33 2e 32 38 30  |(value/12)/3.280|
0000bd40  38 34 30 29 0d 4b 82 0b  20 20 20 20 c9 20 35 0d  |840).K..    . 5.|
0000bd50  4b 8c 20 20 20 20 20 20  74 65 78 74 24 3d c3 28  |K.      text$=.(|
0000bd60  76 61 6c 75 65 2f 33 2e  32 38 30 38 34 30 29 0d  |value/3.280840).|
0000bd70  4b 96 0b 20 20 20 20 c9  20 36 0d 4b a0 1d 20 20  |K..    . 6.K..  |
0000bd80  20 20 20 74 65 78 74 24  3d c3 28 76 61 6c 75 65  |   text$=.(value|
0000bd90  2f 31 2e 30 39 34 29 0d  4b aa 0b 20 20 20 20 c9  |/1.094).K..    .|
0000bda0  20 37 0d 4b b4 26 20 20  20 20 20 74 65 78 74 24  | 7.K.&     text$|
0000bdb0  3d c3 28 76 61 6c 75 65  2f 30 2e 36 32 31 33 37  |=.(value/0.62137|
0000bdc0  31 31 2a 31 30 30 30 29  0d 4b be 04 0d 4b c8 16  |11*1000).K...K..|
0000bdd0  20 20 20 20 c9 20 38 20  3a 20 f4 20 2d 20 41 72  |    . 8 : . - Ar|
0000bde0  65 61 0d 4b d2 25 20 20  20 20 20 74 65 78 74 24  |ea.K.%     text$|
0000bdf0  3d c3 28 28 76 61 6c 75  65 2f 31 30 30 30 30 29  |=.((value/10000)|
0000be00  2a 31 2e 31 39 36 29 0d  4b dc 0b 20 20 20 20 c9  |*1.196).K..    .|
0000be10  20 39 0d 4b e6 1d 20 20  20 20 20 74 65 78 74 24  | 9.K..     text$|
0000be20  3d c3 28 76 61 6c 75 65  2a 31 2e 31 39 36 29 0d  |=.(value*1.196).|
0000be30  4b f0 0c 20 20 20 20 c9  20 31 30 0d 4b fa 23 20  |K..    . 10.K.# |
0000be40  20 20 20 20 74 65 78 74  24 3d c3 28 76 61 6c 75  |    text$=.(valu|
0000be50  65 2a 31 30 30 30 30 2a  31 2e 31 39 36 29 0d 4c  |e*10000*1.196).L|
0000be60  04 0c 20 20 20 20 c9 20  31 31 0d 4c 0e 25 20 20  |..    . 11.L.%  |
0000be70  20 20 20 74 65 78 74 24  3d c3 28 76 61 6c 75 65  |   text$=.(value|
0000be80  2a 31 30 30 30 30 30 30  2a 31 2e 31 39 36 29 0d  |*1000000*1.196).|
0000be90  4c 18 0c 20 20 20 20 c9  20 31 32 0d 4c 22 22 20  |L..    . 12.L"" |
0000bea0  20 20 20 20 74 65 78 74  24 3d c3 28 76 61 6c 75  |    text$=.(valu|
0000beb0  65 2f 31 32 39 36 2f 31  2e 31 39 36 29 0d 4c 2c  |e/1296/1.196).L,|
0000bec0  0c 20 20 20 20 c9 20 31  33 0d 4c 36 1f 20 20 20  |.    . 13.L6.   |
0000bed0  20 20 74 65 78 74 24 3d  c3 28 76 61 6c 75 65 2f  |  text$=.(value/|
0000bee0  39 2f 31 2e 31 39 36 29  0d 4c 40 0c 20 20 20 20  |9/1.196).L@.    |
0000bef0  c9 20 31 34 0d 4c 4a 1d  20 20 20 20 20 74 65 78  |. 14.LJ.     tex|
0000bf00  74 24 3d c3 28 76 61 6c  75 65 2f 31 2e 31 39 36  |t$=.(value/1.196|
0000bf10  29 0d 4c 54 0c 20 20 20  20 c9 20 31 35 0d 4c 5e  |).LT.    . 15.L^|
0000bf20  22 20 20 20 20 20 74 65  78 74 24 3d c3 28 76 61  |"     text$=.(va|
0000bf30  6c 75 65 2a 34 38 34 30  2f 31 2e 31 39 36 29 0d  |lue*4840/1.196).|
0000bf40  4c 68 0c 20 20 20 20 c9  20 31 36 0d 4c 72 25 20  |Lh.    . 16.Lr% |
0000bf50  20 20 20 20 74 65 78 74  24 3d c3 28 76 61 6c 75  |    text$=.(valu|
0000bf60  65 2a 33 30 39 37 36 30  30 2f 31 39 36 30 30 29  |e*3097600/19600)|
0000bf70  0d 4c 7c 04 0d 4c 86 17  20 20 20 20 c9 20 31 37  |.L|..L..    . 17|
0000bf80  20 3a 20 f4 20 2d 20 4d  61 73 73 0d 4c 90 22 20  | : . - Mass.L." |
0000bf90  20 20 20 20 74 65 78 74  24 3d c3 28 76 61 6c 75  |    text$=.(valu|
0000bfa0  65 2f 31 30 30 30 2a 32  2e 32 30 35 29 0d 4c 9a  |e/1000*2.205).L.|
0000bfb0  0c 20 20 20 20 c9 20 31  38 0d 4c a4 1d 20 20 20  |.    . 18.L..   |
0000bfc0  20 20 74 65 78 74 24 3d  c3 28 76 61 6c 75 65 2a  |  text$=.(value*|
0000bfd0  32 2e 32 30 35 29 0d 4c  ae 0c 20 20 20 20 c9 20  |2.205).L..    . |
0000bfe0  31 39 0d 4c b8 22 20 20  20 20 20 74 65 78 74 24  |19.L."     text$|
0000bff0  3d c3 28 76 61 6c 75 65  2a 31 30 30 30 2a 32 2e  |=.(value*1000*2.|
0000c000  32 30 35 29 0d 4c c2 0c  20 20 20 20 c9 20 32 30  |205).L..    . 20|
0000c010  0d 4c cc 20 20 20 20 20  20 74 65 78 74 24 3d c3  |.L.      text$=.|
0000c020  28 76 61 6c 75 65 2f 31  36 2f 32 2e 32 30 35 29  |(value/16/2.205)|
0000c030  0d 4c d6 0c 20 20 20 20  c9 20 32 31 0d 4c e0 1d  |.L..    . 21.L..|
0000c040  20 20 20 20 20 74 65 78  74 24 3d c3 28 76 61 6c  |     text$=.(val|
0000c050  75 65 2f 32 2e 32 30 35  29 0d 4c ea 0c 20 20 20  |ue/2.205).L..   |
0000c060  20 c9 20 32 32 0d 4c f4  22 20 20 20 20 20 74 65  | . 22.L."     te|
0000c070  78 74 24 3d c3 28 76 61  6c 75 65 2a 32 32 34 30  |xt$=.(value*2240|
0000c080  2f 32 2e 32 30 35 29 0d  4c fe 04 0d 4d 08 19 20  |/2.205).L...M.. |
0000c090  20 20 20 c9 20 32 33 20  3a 20 f4 20 2d 20 56 6f  |   . 23 : . - Vo|
0000c0a0  6c 75 6d 65 0d 4d 12 27  20 20 20 20 20 74 65 78  |lume.M.'     tex|
0000c0b0  74 24 3d c3 28 28 76 61  6c 75 65 2f 31 30 30 30  |t$=.((value/1000|
0000c0c0  30 30 30 29 2a 33 35 2e  33 31 29 0d 4d 1c 0c 20  |000)*35.31).M.. |
0000c0d0  20 20 20 c9 20 32 34 0d  4d 26 1d 20 20 20 20 20  |   . 24.M&.     |
0000c0e0  74 65 78 74 24 3d c3 28  76 61 6c 75 65 2a 33 35  |text$=.(value*35|
0000c0f0  2e 33 31 29 0d 4d 30 0c  20 20 20 20 c9 20 32 35  |.31).M0.    . 25|
0000c100  0d 4d 3a 24 20 20 20 20  20 74 65 78 74 24 3d c3  |.M:$     text$=.|
0000c110  28 28 76 61 6c 75 65 2f  31 37 32 38 29 2f 33 35  |((value/1728)/35|
0000c120  2e 33 31 29 0d 4d 44 0c  20 20 20 20 c9 20 32 36  |.31).MD.    . 26|
0000c130  0d 4d 4e 1d 20 20 20 20  20 74 65 78 74 24 3d c3  |.MN.     text$=.|
0000c140  28 76 61 6c 75 65 2f 33  35 2e 33 31 29 0d 4d 58  |(value/35.31).MX|
0000c150  0c 20 20 20 20 c9 20 32  37 0d 4d 62 22 20 20 20  |.    . 27.Mb"   |
0000c160  20 20 74 65 78 74 24 3d  c3 28 28 76 61 6c 75 65  |  text$=.((value|
0000c170  2a 32 37 29 2f 33 35 2e  33 31 29 0d 4d 6c 04 0d  |*27)/35.31).Ml..|
0000c180  4d 76 1b 20 20 20 20 c9  20 32 38 20 3a 20 f4 20  |Mv.    . 28 : . |
0000c190  2d 20 43 61 70 61 63 69  74 79 0d 4d 80 23 20 20  |- Capacity.M.#  |
0000c1a0  20 20 20 74 65 78 74 24  3d c3 28 28 76 61 6c 75  |   text$=.((valu|
0000c1b0  65 2f 31 30 30 30 29 2a  31 2e 37 36 29 0d 4d 8a  |e/1000)*1.76).M.|
0000c1c0  0c 20 20 20 20 c9 20 32  39 0d 4d 94 1c 20 20 20  |.    . 29.M..   |
0000c1d0  20 20 74 65 78 74 24 3d  c3 28 76 61 6c 75 65 2a  |  text$=.(value*|
0000c1e0  31 2e 37 36 29 0d 4d 9e  0c 20 20 20 20 c9 20 33  |1.76).M..    . 3|
0000c1f0  30 0d 4d a8 21 20 20 20  20 20 74 65 78 74 24 3d  |0.M.!     text$=|
0000c200  c3 28 28 76 61 6c 75 65  2f 32 30 29 2f 31 2e 37  |.((value/20)/1.7|
0000c210  36 29 0d 4d b2 0c 20 20  20 20 c9 20 33 31 0d 4d  |6).M..    . 31.M|
0000c220  bc 1c 20 20 20 20 20 74  65 78 74 24 3d c3 28 76  |..     text$=.(v|
0000c230  61 6c 75 65 2f 31 2e 37  36 29 0d 4d c6 0c 20 20  |alue/1.76).M..  |
0000c240  20 20 c9 20 33 32 0d 4d  d0 1e 20 20 20 20 20 74  |  . 32.M..     t|
0000c250  65 78 74 24 3d c3 28 28  76 61 6c 75 65 29 2a 34  |ext$=.((value)*4|
0000c260  2e 35 35 29 0d 4d da 04  0d 4d e4 1e 20 20 20 20  |.55).M...M..    |
0000c270  c9 20 33 33 20 3a 20 f4  20 2d 20 54 65 6d 70 65  |. 33 : . - Tempe|
0000c280  72 61 74 75 72 65 0d 4d  ee 28 20 20 20 20 20 74  |rature.M.(     t|
0000c290  65 78 74 24 3d c3 28 28  28 28 76 61 6c 75 65 2d  |ext$=.((((value-|
0000c2a0  32 37 33 29 2a 39 29 2f  35 29 2b 33 32 29 0d 4d  |273)*9)/5)+32).M|
0000c2b0  f8 0c 20 20 20 20 c9 20  33 34 0d 4e 02 22 20 20  |..    . 34.N."  |
0000c2c0  20 20 20 74 65 78 74 24  3d c3 28 28 28 76 61 6c  |   text$=.(((val|
0000c2d0  75 65 2a 39 29 2f 35 29  2b 33 32 29 0d 4e 0c 0c  |ue*9)/5)+32).N..|
0000c2e0  20 20 20 20 c9 20 33 35  0d 4e 16 22 20 20 20 20  |    . 35.N."    |
0000c2f0  20 74 65 78 74 24 3d c3  28 28 28 76 61 6c 75 65  | text$=.(((value|
0000c300  2d 33 32 29 2a 35 29 2f  39 29 0d 4e 20 08 20 20  |-32)*5)/9).N .  |
0000c310  20 cb 0d 4e 2a 1a 20 20  20 20 20 e7 20 a7 74 65  | ..N*.     . .te|
0000c320  78 74 24 2c 22 45 22 29  3e 30 20 8c 0d 4e 34 44  |xt$,"E")>0 ..N4D|
0000c330  20 20 20 20 20 20 f2 70  75 74 5f 69 63 6f 6e 5f  |      .put_icon_|
0000c340  74 65 78 74 28 6d 61 69  6e 25 2c 32 34 2c 22 45  |text(main%,24,"E|
0000c350  22 2b c2 74 65 78 74 24  2c 28 a9 20 74 65 78 74  |"+.text$,(. text|
0000c360  24 2d a7 74 65 78 74 24  2c 22 45 22 29 29 29 29  |$-.text$,"E"))))|
0000c370  0d 4e 3e 38 20 20 20 20  20 20 f2 70 75 74 5f 69  |.N>8      .put_i|
0000c380  63 6f 6e 5f 74 65 78 74  28 6d 61 69 6e 25 2c 31  |con_text(main%,1|
0000c390  37 2c c0 74 65 78 74 24  2c a7 74 65 78 74 24 2c  |7,.text$,.text$,|
0000c3a0  22 45 22 29 2d 31 29 29  0d 4e 48 0a 20 20 20 20  |"E")-1)).NH.    |
0000c3b0  20 cc 0d 4e 52 28 20 20  20 20 20 20 f2 70 75 74  | ..NR(      .put|
0000c3c0  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
0000c3d0  2c 31 37 2c 74 65 78 74  24 29 0d 4e 5c 27 20 20  |,17,text$).N\'  |
0000c3e0  20 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |    .put_icon_te|
0000c3f0  78 74 28 6d 61 69 6e 25  2c 32 34 2c 22 45 30 22  |xt(main%,24,"E0"|
0000c400  29 0d 4e 66 0a 20 20 20  20 20 cd 0d 4e 70 19 20  |).Nf.     ..Np. |
0000c410  20 20 20 63 6f 6e 5f 76  61 6c 75 65 3d bb 20 74  |   con_value=. t|
0000c420  65 78 74 24 0d 4e 7a 14  20 20 20 20 f2 63 68 6f  |ext$.Nz.    .cho|
0000c430  6f 73 65 5f 75 6e 69 74  0d 4e 84 05 e1 0d 4e 8e  |ose_unit.N....N.|
0000c440  04 0d 4e 98 12 dd 20 f2  63 68 6f 6f 73 65 5f 75  |..N... .choose_u|
0000c450  6e 69 74 0d 4e a2 15 20  c8 8e 20 72 65 66 5f 6e  |nit.N.. .. ref_n|
0000c460  75 6d 62 65 72 25 20 ca  0d 4e ac 0d 20 20 c9 20  |umber% ..N..  . |
0000c470  31 2c 32 2c 33 0d 4e b6  11 20 20 20 6d 65 61 73  |1,2,3.N..   meas|
0000c480  75 72 65 25 3d 36 0d 4e  c0 27 20 20 20 f2 70 75  |ure%=6.N.'   .pu|
0000c490  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
0000c4a0  25 2c 31 35 2c 22 59 61  72 64 73 22 29 0d 4e ca  |%,15,"Yards").N.|
0000c4b0  0f 20 20 c9 20 34 2c 35  2c 36 2c 37 0d 4e d4 11  |.  . 4,5,6,7.N..|
0000c4c0  20 20 20 6d 65 61 73 75  72 65 25 3d 31 0d 4e de  |   measure%=1.N.|
0000c4d0  28 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |(   .put_icon_te|
0000c4e0  78 74 28 6d 61 69 6e 25  2c 31 35 2c 22 4d 65 74  |xt(main%,15,"Met|
0000c4f0  72 65 73 22 29 0d 4e e8  11 20 20 c9 20 38 2c 39  |res").N..  . 8,9|
0000c500  2c 31 30 2c 31 31 0d 4e  f2 11 20 20 20 6d 65 61  |,10,11.N..   mea|
0000c510  73 75 72 65 25 3d 37 0d  4e fc 2a 20 20 20 f2 70  |sure%=7.N.*   .p|
0000c520  75 74 5f 69 63 6f 6e 5f  74 65 78 74 28 6d 61 69  |ut_icon_text(mai|
0000c530  6e 25 2c 31 35 2c 22 53  71 20 79 61 72 64 73 22  |n%,15,"Sq yards"|
0000c540  29 0d 4f 06 16 20 20 c9  20 31 32 2c 31 33 2c 31  |).O..  . 12,13,1|
0000c550  34 2c 31 35 2c 31 36 0d  4f 10 11 20 20 20 6d 65  |4,15,16.O..   me|
0000c560  61 73 75 72 65 25 3d 32  0d 4f 1a 2b 20 20 20 f2  |asure%=2.O.+   .|
0000c570  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |put_icon_text(ma|
0000c580  69 6e 25 2c 31 35 2c 22  53 71 20 6d 65 74 72 65  |in%,15,"Sq metre|
0000c590  73 22 29 0d 4f 24 10 20  20 c9 20 31 37 2c 31 38  |s").O$.  . 17,18|
0000c5a0  2c 31 39 0d 4f 2e 11 20  20 20 6d 65 61 73 75 72  |,19.O..   measur|
0000c5b0  65 25 3d 38 0d 4f 38 28  20 20 20 f2 70 75 74 5f  |e%=8.O8(   .put_|
0000c5c0  69 63 6f 6e 5f 74 65 78  74 28 6d 61 69 6e 25 2c  |icon_text(main%,|
0000c5d0  31 35 2c 22 50 6f 75 6e  64 73 22 29 0d 4f 42 10  |15,"Pounds").OB.|
0000c5e0  20 20 c9 20 32 30 2c 32  31 2c 32 32 0d 4f 4c 11  |  . 20,21,22.OL.|
0000c5f0  20 20 20 6d 65 61 73 75  72 65 25 3d 33 0d 4f 56  |   measure%=3.OV|
0000c600  2b 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |+   .put_icon_te|
0000c610  78 74 28 6d 61 69 6e 25  2c 31 35 2c 22 4b 69 6c  |xt(main%,15,"Kil|
0000c620  6f 67 72 61 6d 73 22 29  0d 4f 60 0d 20 20 c9 20  |ograms").O`.  . |
0000c630  32 33 2c 32 34 0d 4f 6a  11 20 20 20 6d 65 61 73  |23,24.Oj.   meas|
0000c640  75 72 65 25 3d 39 0d 4f  74 2c 20 20 20 f2 70 75  |ure%=9.Ot,   .pu|
0000c650  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
0000c660  25 2c 31 35 2c 22 43 75  62 69 63 20 66 65 65 74  |%,15,"Cubic feet|
0000c670  22 29 0d 4f 7e 10 20 20  c9 20 32 35 2c 32 36 2c  |").O~.  . 25,26,|
0000c680  32 37 0d 4f 88 11 20 20  20 6d 65 61 73 75 72 65  |27.O..   measure|
0000c690  25 3d 34 0d 4f 92 2e 20  20 20 f2 70 75 74 5f 69  |%=4.O..   .put_i|
0000c6a0  63 6f 6e 5f 74 65 78 74  28 6d 61 69 6e 25 2c 31  |con_text(main%,1|
0000c6b0  35 2c 22 43 75 62 69 63  20 6d 65 74 72 65 73 22  |5,"Cubic metres"|
0000c6c0  29 0d 4f 9c 0d 20 20 c9  20 32 38 2c 32 39 0d 4f  |).O..  . 28,29.O|
0000c6d0  a6 12 20 20 20 6d 65 61  73 75 72 65 25 3d 31 30  |..   measure%=10|
0000c6e0  0d 4f b0 27 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |.O.'   .put_icon|
0000c6f0  5f 74 65 78 74 28 6d 61  69 6e 25 2c 31 35 2c 22  |_text(main%,15,"|
0000c700  50 69 6e 74 73 22 29 0d  4f ba 10 20 20 c9 20 33  |Pints").O..  . 3|
0000c710  30 2c 33 31 2c 33 32 0d  4f c4 11 20 20 20 6d 65  |0,31,32.O..   me|
0000c720  61 73 75 72 65 25 3d 35  0d 4f ce 28 20 20 20 f2  |asure%=5.O.(   .|
0000c730  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |put_icon_text(ma|
0000c740  69 6e 25 2c 31 35 2c 22  4c 69 74 72 65 73 22 29  |in%,15,"Litres")|
0000c750  0d 4f d8 0d 20 20 c9 20  33 33 2c 32 34 0d 4f e2  |.O..  . 33,24.O.|
0000c760  2d 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |-   .put_icon_te|
0000c770  78 74 28 6d 61 69 6e 25  2c 31 35 2c 22 b0 46 61  |xt(main%,15,".Fa|
0000c780  68 72 65 6e 68 65 69 74  22 29 0d 4f ec 0a 20 20  |hrenheit").O..  |
0000c790  c9 20 33 35 0d 4f f6 2a  20 20 20 f2 70 75 74 5f  |. 35.O.*   .put_|
0000c7a0  69 63 6f 6e 5f 74 65 78  74 28 6d 61 69 6e 25 2c  |icon_text(main%,|
0000c7b0  31 35 2c 22 b0 43 65 6c  63 69 75 73 22 29 0d 50  |15,".Celcius").P|
0000c7c0  00 06 20 cb 0d 50 0a 05  e1 0d 50 14 04 0d 50 1e  |.. ..P....P...P.|
0000c7d0  14 dd 20 f2 73 65 6c 65  63 74 65 64 5f 75 6e 69  |.. .selected_uni|
0000c7e0  74 0d 50 28 11 20 c8 8e  20 6d 65 74 72 69 63 25  |t.P(. .. metric%|
0000c7f0  20 ca 0d 50 32 09 20 20  c9 20 b9 0d 50 3c 11 20  | ..P2.  . ..P<. |
0000c800  20 20 c8 8e 20 74 79 70  65 25 20 ca 0d 50 46 0b  |  .. type% ..PF.|
0000c810  20 20 20 20 c9 20 31 0d  50 50 29 20 20 20 20 20  |    . 1.PP)     |
0000c820  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 6d  |.put_icon_text(m|
0000c830  61 69 6e 25 2c 38 2c 22  4d 65 74 72 65 73 22 29  |ain%,8,"Metres")|
0000c840  0d 50 5a 29 20 20 20 20  20 f2 70 75 74 5f 69 63  |.PZ)     .put_ic|
0000c850  6f 6e 5f 74 65 78 74 28  6d 61 69 6e 25 2c 31 35  |on_text(main%,15|
0000c860  2c 22 59 61 72 64 73 22  29 0d 50 64 15 20 20 20  |,"Yards").Pd.   |
0000c870  20 20 f2 74 69 63 6b 28  33 2c 30 2c a3 29 0d 50  |  .tick(3,0,.).P|
0000c880  6e 15 20 20 20 20 20 f2  74 69 63 6b 28 33 2c 31  |n.     .tick(3,1|
0000c890  2c b9 29 0d 50 78 15 20  20 20 20 20 f2 74 69 63  |,.).Px.     .tic|
0000c8a0  6b 28 33 2c 32 2c a3 29  0d 50 82 17 20 20 20 20  |k(3,2,.).P..    |
0000c8b0  20 20 72 65 66 5f 6e 75  6d 62 65 72 25 3d 32 0d  |  ref_number%=2.|
0000c8c0  50 8c 0b 20 20 20 20 c9  20 32 0d 50 96 2c 20 20  |P..    . 2.P.,  |
0000c8d0  20 20 20 f2 70 75 74 5f  69 63 6f 6e 5f 74 65 78  |   .put_icon_tex|
0000c8e0  74 28 6d 61 69 6e 25 2c  38 2c 22 53 71 20 6d 65  |t(main%,8,"Sq me|
0000c8f0  74 72 65 73 22 29 0d 50  a0 2c 20 20 20 20 20 f2  |tres").P.,     .|
0000c900  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |put_icon_text(ma|
0000c910  69 6e 25 2c 31 35 2c 22  53 71 20 79 61 72 64 73  |in%,15,"Sq yards|
0000c920  22 29 0d 50 aa 15 20 20  20 20 20 f2 74 69 63 6b  |").P..     .tick|
0000c930  28 35 2c 30 2c a3 29 0d  50 b4 15 20 20 20 20 20  |(5,0,.).P..     |
0000c940  f2 74 69 63 6b 28 35 2c  31 2c b9 29 0d 50 be 15  |.tick(5,1,.).P..|
0000c950  20 20 20 20 20 f2 74 69  63 6b 28 35 2c 32 2c a3  |     .tick(5,2,.|
0000c960  29 0d 50 c8 15 20 20 20  20 20 f2 74 69 63 6b 28  |).P..     .tick(|
0000c970  35 2c 33 2c a3 29 0d 50  d2 17 20 20 20 20 20 20  |5,3,.).P..      |
0000c980  72 65 66 5f 6e 75 6d 62  65 72 25 3d 39 0d 50 dc  |ref_number%=9.P.|
0000c990  0b 20 20 20 20 c9 20 33  0d 50 e6 2c 20 20 20 20  |.    . 3.P.,    |
0000c9a0  20 f2 70 75 74 5f 69 63  6f 6e 5f 74 65 78 74 28  | .put_icon_text(|
0000c9b0  6d 61 69 6e 25 2c 38 2c  22 4b 69 6c 6f 67 72 61  |main%,8,"Kilogra|
0000c9c0  6d 73 22 29 0d 50 f0 2a  20 20 20 20 20 f2 70 75  |ms").P.*     .pu|
0000c9d0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
0000c9e0  25 2c 31 35 2c 22 50 6f  75 6e 64 73 22 29 0d 50  |%,15,"Pounds").P|
0000c9f0  fa 15 20 20 20 20 20 f2  74 69 63 6b 28 37 2c 30  |..     .tick(7,0|
0000ca00  2c a3 29 0d 51 04 15 20  20 20 20 20 f2 74 69 63  |,.).Q..     .tic|
0000ca10  6b 28 37 2c 31 2c b9 29  0d 51 0e 15 20 20 20 20  |k(7,1,.).Q..    |
0000ca20  20 f2 74 69 63 6b 28 37  2c 32 2c a3 29 0d 51 18  | .tick(7,2,.).Q.|
0000ca30  18 20 20 20 20 20 20 72  65 66 5f 6e 75 6d 62 65  |.      ref_numbe|
0000ca40  72 25 3d 31 38 0d 51 22  0b 20 20 20 20 c9 20 34  |r%=18.Q".    . 4|
0000ca50  0d 51 2c 2f 20 20 20 20  20 f2 70 75 74 5f 69 63  |.Q,/     .put_ic|
0000ca60  6f 6e 5f 74 65 78 74 28  6d 61 69 6e 25 2c 38 2c  |on_text(main%,8,|
0000ca70  22 43 75 62 69 63 20 6d  65 74 72 65 73 22 29 0d  |"Cubic metres").|
0000ca80  51 36 2e 20 20 20 20 20  f2 70 75 74 5f 69 63 6f  |Q6.     .put_ico|
0000ca90  6e 5f 74 65 78 74 28 6d  61 69 6e 25 2c 31 35 2c  |n_text(main%,15,|
0000caa0  22 43 75 62 69 63 20 66  65 65 74 22 29 0d 51 40  |"Cubic feet").Q@|
0000cab0  15 20 20 20 20 20 f2 74  69 63 6b 28 39 2c 30 2c  |.     .tick(9,0,|
0000cac0  a3 29 0d 51 4a 15 20 20  20 20 20 f2 74 69 63 6b  |.).QJ.     .tick|
0000cad0  28 39 2c 31 2c b9 29 0d  51 54 18 20 20 20 20 20  |(9,1,.).QT.     |
0000cae0  20 72 65 66 5f 6e 75 6d  62 65 72 25 3d 32 34 0d  | ref_number%=24.|
0000caf0  51 5e 0b 20 20 20 20 c9  20 35 0d 51 68 29 20 20  |Q^.    . 5.Qh)  |
0000cb00  20 20 20 f2 70 75 74 5f  69 63 6f 6e 5f 74 65 78  |   .put_icon_tex|
0000cb10  74 28 6d 61 69 6e 25 2c  38 2c 22 4c 69 74 72 65  |t(main%,8,"Litre|
0000cb20  73 22 29 0d 51 72 29 20  20 20 20 20 f2 70 75 74  |s").Qr)     .put|
0000cb30  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
0000cb40  2c 31 35 2c 22 50 69 6e  74 73 22 29 0d 51 7c 16  |,15,"Pints").Q|.|
0000cb50  20 20 20 20 20 f2 74 69  63 6b 28 31 31 2c 30 2c  |     .tick(11,0,|
0000cb60  a3 29 0d 51 86 16 20 20  20 20 20 f2 74 69 63 6b  |.).Q..     .tick|
0000cb70  28 31 31 2c 31 2c b9 29  0d 51 90 18 20 20 20 20  |(11,1,.).Q..    |
0000cb80  20 20 72 65 66 5f 6e 75  6d 62 65 72 25 3d 32 39  |  ref_number%=29|
0000cb90  0d 51 9a 0b 20 20 20 20  c9 20 36 0d 51 a4 2b 20  |.Q..    . 6.Q.+ |
0000cba0  20 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |    .put_icon_te|
0000cbb0  78 74 28 6d 61 69 6e 25  2c 38 2c 22 b0 43 65 6c  |xt(main%,8,".Cel|
0000cbc0  63 69 75 73 22 29 0d 51  ae 2f 20 20 20 20 20 f2  |cius").Q./     .|
0000cbd0  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |put_icon_text(ma|
0000cbe0  69 6e 25 2c 31 35 2c 22  b0 46 61 68 72 65 6e 68  |in%,15,".Fahrenh|
0000cbf0  65 69 74 22 29 0d 51 b8  16 20 20 20 20 20 f2 74  |eit").Q..     .t|
0000cc00  69 63 6b 28 31 33 2c 30  2c a3 29 0d 51 c2 16 20  |ick(13,0,.).Q.. |
0000cc10  20 20 20 20 f2 74 69 63  6b 28 31 33 2c 31 2c b9  |    .tick(13,1,.|
0000cc20  29 0d 51 cc 18 20 20 20  20 20 20 72 65 66 5f 6e  |).Q..      ref_n|
0000cc30  75 6d 62 65 72 25 3d 33  34 0d 51 d6 08 20 20 20  |umber%=34.Q..   |
0000cc40  cb 0d 51 e0 09 20 20 c9  20 a3 0d 51 ea 11 20 20  |..Q..  . ..Q..  |
0000cc50  20 c8 8e 20 74 79 70 65  25 20 ca 0d 51 f4 0b 20  | .. type% ..Q.. |
0000cc60  20 20 20 c9 20 31 0d 51  fe 28 20 20 20 20 20 f2  |   . 1.Q.(     .|
0000cc70  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 6d 61  |put_icon_text(ma|
0000cc80  69 6e 25 2c 38 2c 22 59  61 72 64 73 22 29 0d 52  |in%,8,"Yards").R|
0000cc90  08 2a 20 20 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |.*     .put_icon|
0000cca0  5f 74 65 78 74 28 6d 61  69 6e 25 2c 31 35 2c 22  |_text(main%,15,"|
0000ccb0  4d 65 74 72 65 73 22 29  0d 52 12 15 20 20 20 20  |Metres").R..    |
0000ccc0  20 f2 74 69 63 6b 28 34  2c 30 2c a3 29 0d 52 1c  | .tick(4,0,.).R.|
0000ccd0  15 20 20 20 20 20 f2 74  69 63 6b 28 34 2c 31 2c  |.     .tick(4,1,|
0000cce0  a3 29 0d 52 26 15 20 20  20 20 20 f2 74 69 63 6b  |.).R&.     .tick|
0000ccf0  28 34 2c 32 2c b9 29 0d  52 30 15 20 20 20 20 20  |(4,2,.).R0.     |
0000cd00  f2 74 69 63 6b 28 34 2c  33 2c a3 29 0d 52 3a 17  |.tick(4,3,.).R:.|
0000cd10  20 20 20 20 20 20 72 65  66 5f 6e 75 6d 62 65 72  |      ref_number|
0000cd20  25 3d 36 0d 52 44 0b 20  20 20 20 c9 20 32 0d 52  |%=6.RD.    . 2.R|
0000cd30  4e 2b 20 20 20 20 20 f2  70 75 74 5f 69 63 6f 6e  |N+     .put_icon|
0000cd40  5f 74 65 78 74 28 6d 61  69 6e 25 2c 38 2c 22 53  |_text(main%,8,"S|
0000cd50  71 20 79 61 72 64 73 22  29 0d 52 58 2d 20 20 20  |q yards").RX-   |
0000cd60  20 20 f2 70 75 74 5f 69  63 6f 6e 5f 74 65 78 74  |  .put_icon_text|
0000cd70  28 6d 61 69 6e 25 2c 31  35 2c 22 53 71 20 6d 65  |(main%,15,"Sq me|
0000cd80  74 72 65 73 22 29 0d 52  62 15 20 20 20 20 20 f2  |tres").Rb.     .|
0000cd90  74 69 63 6b 28 36 2c 30  2c a3 29 0d 52 6c 15 20  |tick(6,0,.).Rl. |
0000cda0  20 20 20 20 f2 74 69 63  6b 28 36 2c 31 2c a3 29  |    .tick(6,1,.)|
0000cdb0  0d 52 76 15 20 20 20 20  20 f2 74 69 63 6b 28 36  |.Rv.     .tick(6|
0000cdc0  2c 32 2c b9 29 0d 52 80  15 20 20 20 20 20 f2 74  |,2,.).R..     .t|
0000cdd0  69 63 6b 28 36 2c 33 2c  a3 29 0d 52 8a 15 20 20  |ick(6,3,.).R..  |
0000cde0  20 20 20 f2 74 69 63 6b  28 36 2c 34 2c a3 29 0d  |   .tick(6,4,.).|
0000cdf0  52 94 18 20 20 20 20 20  20 72 65 66 5f 6e 75 6d  |R..      ref_num|
0000ce00  62 65 72 25 3d 31 34 0d  52 9e 0b 20 20 20 20 c9  |ber%=14.R..    .|
0000ce10  20 33 0d 52 a8 29 20 20  20 20 20 f2 70 75 74 5f  | 3.R.)     .put_|
0000ce20  69 63 6f 6e 5f 74 65 78  74 28 6d 61 69 6e 25 2c  |icon_text(main%,|
0000ce30  38 2c 22 50 6f 75 6e 64  73 22 29 0d 52 b2 2d 20  |8,"Pounds").R.- |
0000ce40  20 20 20 20 f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |    .put_icon_te|
0000ce50  78 74 28 6d 61 69 6e 25  2c 31 35 2c 22 4b 69 6c  |xt(main%,15,"Kil|
0000ce60  6f 67 72 61 6d 73 22 29  0d 52 bc 15 20 20 20 20  |ograms").R..    |
0000ce70  20 f2 74 69 63 6b 28 38  2c 30 2c a3 29 0d 52 c6  | .tick(8,0,.).R.|
0000ce80  15 20 20 20 20 20 f2 74  69 63 6b 28 38 2c 31 2c  |.     .tick(8,1,|
0000ce90  b9 29 0d 52 d0 15 20 20  20 20 20 f2 74 69 63 6b  |.).R..     .tick|
0000cea0  28 38 2c 32 2c a3 29 0d  52 da 18 20 20 20 20 20  |(8,2,.).R..     |
0000ceb0  20 72 65 66 5f 6e 75 6d  62 65 72 25 3d 32 31 0d  | ref_number%=21.|
0000cec0  52 e4 0b 20 20 20 20 c9  20 34 0d 52 ee 2d 20 20  |R..    . 4.R.-  |
0000ced0  20 20 20 f2 70 75 74 5f  69 63 6f 6e 5f 74 65 78  |   .put_icon_tex|
0000cee0  74 28 6d 61 69 6e 25 2c  38 2c 22 43 75 62 69 63  |t(main%,8,"Cubic|
0000cef0  20 66 65 65 74 22 29 0d  52 f8 30 20 20 20 20 20  | feet").R.0     |
0000cf00  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 6d  |.put_icon_text(m|
0000cf10  61 69 6e 25 2c 31 35 2c  22 43 75 62 69 63 20 6d  |ain%,15,"Cubic m|
0000cf20  65 74 72 65 73 22 29 0d  53 02 16 20 20 20 20 20  |etres").S..     |
0000cf30  f2 74 69 63 6b 28 31 30  2c 30 2c a3 29 0d 53 0c  |.tick(10,0,.).S.|
0000cf40  16 20 20 20 20 20 f2 74  69 63 6b 28 31 30 2c 31  |.     .tick(10,1|
0000cf50  2c b9 29 0d 53 16 16 20  20 20 20 20 f2 74 69 63  |,.).S..     .tic|
0000cf60  6b 28 31 30 2c 32 2c a3  29 0d 53 20 18 20 20 20  |k(10,2,.).S .   |
0000cf70  20 20 20 72 65 66 5f 6e  75 6d 62 65 72 25 3d 32  |   ref_number%=2|
0000cf80  36 0d 53 2a 0b 20 20 20  20 c9 20 35 0d 53 34 28  |6.S*.    . 5.S4(|
0000cf90  20 20 20 20 20 f2 70 75  74 5f 69 63 6f 6e 5f 74  |     .put_icon_t|
0000cfa0  65 78 74 28 6d 61 69 6e  25 2c 38 2c 22 50 69 6e  |ext(main%,8,"Pin|
0000cfb0  74 73 22 29 0d 53 3e 2a  20 20 20 20 20 f2 70 75  |ts").S>*     .pu|
0000cfc0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
0000cfd0  25 2c 31 35 2c 22 4c 69  74 72 65 73 22 29 0d 53  |%,15,"Litres").S|
0000cfe0  48 16 20 20 20 20 20 f2  74 69 63 6b 28 31 32 2c  |H.     .tick(12,|
0000cff0  30 2c a3 29 0d 53 52 16  20 20 20 20 20 f2 74 69  |0,.).SR.     .ti|
0000d000  63 6b 28 31 32 2c 31 2c  b9 29 0d 53 5c 16 20 20  |ck(12,1,.).S\.  |
0000d010  20 20 20 f2 74 69 63 6b  28 31 32 2c 32 2c a3 29  |   .tick(12,2,.)|
0000d020  0d 53 66 18 20 20 20 20  20 20 72 65 66 5f 6e 75  |.Sf.      ref_nu|
0000d030  6d 62 65 72 25 3d 33 31  0d 53 70 0b 20 20 20 20  |mber%=31.Sp.    |
0000d040  c9 20 36 0d 53 7a 2e 20  20 20 20 20 f2 70 75 74  |. 6.Sz.     .put|
0000d050  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
0000d060  2c 38 2c 22 b0 46 61 68  72 65 6e 68 65 69 74 22  |,8,".Fahrenheit"|
0000d070  29 0d 53 84 2c 20 20 20  20 20 f2 70 75 74 5f 69  |).S.,     .put_i|
0000d080  63 6f 6e 5f 74 65 78 74  28 6d 61 69 6e 25 2c 31  |con_text(main%,1|
0000d090  35 2c 22 b0 43 65 6c 63  69 75 73 22 29 0d 53 8e  |5,".Celcius").S.|
0000d0a0  16 20 20 20 20 20 f2 74  69 63 6b 28 31 34 2c 30  |.     .tick(14,0|
0000d0b0  2c b9 29 0d 53 98 18 20  20 20 20 20 20 72 65 66  |,.).S..      ref|
0000d0c0  5f 6e 75 6d 62 65 72 25  3d 33 35 0d 53 a2 08 20  |_number%=35.S.. |
0000d0d0  20 20 cb 0d 53 ac 06 20  cb 0d 53 b6 05 e1 0d 53  |  ..S.. ..S....S|
0000d0e0  c0 04 0d 53 ca 13 dd 20  f2 75 70 28 63 6f 6e 76  |...S... .up(conv|
0000d0f0  65 72 74 25 29 0d 53 d4  11 20 c8 8e 20 6d 65 74  |ert%).S.. .. met|
0000d100  72 69 63 25 20 ca 0d 53  de 09 20 20 c9 20 b9 0d  |ric% ..S..  . ..|
0000d110  53 e8 14 20 20 20 c8 8e  20 63 6f 6e 76 65 72 74  |S..   .. convert|
0000d120  25 20 ca 0d 53 f2 17 20  20 20 20 c9 20 31 20 3a  |% ..S..    . 1 :|
0000d130  20 f4 20 2d 20 59 61 72  64 73 0d 53 fc 12 20 20  | . - Yards.S..  |
0000d140  20 20 20 79 61 72 64 73  25 2b 3d 31 0d 54 06 1e  |   yards%+=1.T..|
0000d150  20 20 20 20 20 e7 20 79  61 72 64 73 25 3d 35 20  |     . yards%=5 |
0000d160  8c 20 79 61 72 64 73 25  3d 34 0d 54 10 17 20 20  |. yards%=4.T..  |
0000d170  20 20 20 f2 79 61 72 64  73 28 79 61 72 64 73 25  |   .yards(yards%|
0000d180  29 0d 54 1a 0b 20 20 20  20 c9 20 32 0d 54 24 15  |).T..    . 2.T$.|
0000d190  20 20 20 20 20 73 71 5f  79 61 72 64 73 25 2b 3d  |     sq_yards%+=|
0000d1a0  31 0d 54 2e 24 20 20 20  20 20 e7 20 73 71 5f 79  |1.T.$     . sq_y|
0000d1b0  61 72 64 73 25 3d 33 20  8c 20 73 71 5f 79 61 72  |ards%=3 . sq_yar|
0000d1c0  64 73 25 3d 32 0d 54 38  12 20 20 20 20 20 f2 73  |ds%=2.T8.     .s|
0000d1d0  71 5f 79 61 72 64 73 0d  54 42 0b 20 20 20 20 c9  |q_yards.TB.    .|
0000d1e0  20 33 0d 54 4c 13 20 20  20 20 20 70 6f 75 6e 64  | 3.TL.     pound|
0000d1f0  73 25 2b 3d 31 0d 54 56  20 20 20 20 20 20 e7 20  |s%+=1.TV      . |
0000d200  70 6f 75 6e 64 73 25 3d  32 20 8c 20 70 6f 75 6e  |pounds%=2 . poun|
0000d210  64 73 25 3d 31 0d 54 60  10 20 20 20 20 20 f2 70  |ds%=1.T`.     .p|
0000d220  6f 75 6e 64 73 0d 54 6a  0b 20 20 20 20 c9 20 34  |ounds.Tj.    . 4|
0000d230  0d 54 74 17 20 20 20 20  20 63 75 62 69 63 5f 66  |.Tt.     cubic_f|
0000d240  65 65 74 25 2b 3d 31 0d  54 7e 28 20 20 20 20 20  |eet%+=1.T~(     |
0000d250  e7 20 63 75 62 69 63 5f  66 65 65 74 25 3d 32 20  |. cubic_feet%=2 |
0000d260  8c 20 63 75 62 69 63 5f  66 65 65 74 25 3d 31 0d  |. cubic_feet%=1.|
0000d270  54 88 14 20 20 20 20 20  f2 63 75 62 69 63 5f 66  |T..     .cubic_f|
0000d280  65 65 74 0d 54 92 0b 20  20 20 20 c9 20 35 0d 54  |eet.T..    . 5.T|
0000d290  9c 12 20 20 20 20 20 70  69 6e 74 73 25 2b 3d 31  |..     pints%+=1|
0000d2a0  0d 54 a6 1e 20 20 20 20  20 e7 20 70 69 6e 74 73  |.T..     . pints|
0000d2b0  25 3d 32 20 8c 20 70 69  6e 74 73 25 3d 31 0d 54  |%=2 . pints%=1.T|
0000d2c0  b0 0f 20 20 20 20 20 f2  70 69 6e 74 73 0d 54 ba  |..     .pints.T.|
0000d2d0  0b 20 20 20 20 c9 20 36  0d 54 c4 0f 20 20 20 20  |.    . 6.T..    |
0000d2e0  20 66 61 72 25 3d 30 0d  54 ce 0c 20 20 20 20 f2  | far%=0.T..    .|
0000d2f0  66 61 72 0d 54 d8 08 20  20 20 cb 0d 54 e2 09 20  |far.T..   ..T.. |
0000d300  20 c9 20 a3 0d 54 ec 14  20 20 20 c8 8e 20 63 6f  | . ..T..   .. co|
0000d310  6e 76 65 72 74 25 20 ca  0d 54 f6 18 20 20 20 20  |nvert% ..T..    |
0000d320  c9 20 31 20 3a 20 f4 20  2d 20 4d 65 74 72 65 73  |. 1 : . - Metres|
0000d330  0d 55 00 13 20 20 20 20  20 6d 65 74 72 65 73 25  |.U..     metres%|
0000d340  2b 3d 31 0d 55 0a 20 20  20 20 20 20 e7 20 6d 65  |+=1.U.      . me|
0000d350  74 72 65 73 25 3d 32 20  8c 20 6d 65 74 72 65 73  |tres%=2 . metres|
0000d360  25 3d 31 0d 55 14 10 20  20 20 20 20 f2 6d 65 74  |%=1.U..     .met|
0000d370  72 65 73 0d 55 1e 0b 20  20 20 20 c9 20 32 0d 55  |res.U..    . 2.U|
0000d380  28 16 20 20 20 20 20 73  71 5f 6d 65 74 72 65 73  |(.     sq_metres|
0000d390  25 2b 3d 31 0d 55 32 26  20 20 20 20 20 e7 20 73  |%+=1.U2&     . s|
0000d3a0  71 5f 6d 65 74 72 65 73  25 3d 33 20 8c 20 73 71  |q_metres%=3 . sq|
0000d3b0  5f 6d 65 74 72 65 73 25  3d 32 0d 55 3c 13 20 20  |_metres%=2.U<.  |
0000d3c0  20 20 20 f2 73 71 5f 6d  65 74 72 65 73 0d 55 46  |   .sq_metres.UF|
0000d3d0  0b 20 20 20 20 c9 20 33  0d 55 50 16 20 20 20 20  |.    . 3.UP.    |
0000d3e0  20 6b 69 6c 6f 67 72 61  6d 73 25 2b 3d 31 0d 55  | kilograms%+=1.U|
0000d3f0  5a 26 20 20 20 20 20 e7  20 6b 69 6c 6f 67 72 61  |Z&     . kilogra|
0000d400  6d 73 25 3d 32 20 8c 20  6b 69 6c 6f 67 72 61 6d  |ms%=2 . kilogram|
0000d410  73 25 3d 31 0d 55 64 13  20 20 20 20 20 f2 6b 69  |s%=1.Ud.     .ki|
0000d420  6c 6f 67 72 61 6d 73 0d  55 6e 0b 20 20 20 20 c9  |lograms.Un.    .|
0000d430  20 34 0d 55 78 18 20 20  20 20 20 63 75 62 69 63  | 4.Ux.     cubic|
0000d440  5f 6d 65 74 72 65 73 25  3d 30 0d 55 82 16 20 20  |_metres%=0.U..  |
0000d450  20 20 20 f2 63 75 62 69  63 5f 6d 65 74 72 65 73  |   .cubic_metres|
0000d460  0d 55 8c 0b 20 20 20 20  c9 20 35 0d 55 96 12 20  |.U..    . 5.U.. |
0000d470  20 20 20 20 6c 69 74 72  65 73 25 3d 30 0d 55 a0  |    litres%=0.U.|
0000d480  10 20 20 20 20 20 f2 6c  69 74 72 65 73 0d 55 aa  |.     .litres.U.|
0000d490  0b 20 20 20 20 c9 20 36  0d 55 b4 0f 20 20 20 20  |.    . 6.U..    |
0000d4a0  20 63 65 6c 25 3d 30 0d  55 be 0d 20 20 20 20 20  | cel%=0.U..     |
0000d4b0  f2 63 65 6c 0d 55 c8 08  20 20 20 cb 0d 55 d2 06  |.cel.U..   ..U..|
0000d4c0  20 cb 0d 55 dc 05 e1 0d  55 e6 04 0d 55 f0 15 dd  | ..U....U...U...|
0000d4d0  20 f2 64 6f 77 6e 28 63  6f 6e 76 65 72 74 25 29  | .down(convert%)|
0000d4e0  0d 55 fa 11 20 c8 8e 20  6d 65 74 72 69 63 25 20  |.U.. .. metric% |
0000d4f0  ca 0d 56 04 09 20 20 c9  20 b9 0d 56 0e 14 20 20  |..V..  . ..V..  |
0000d500  20 c8 8e 20 63 6f 6e 76  65 72 74 25 20 ca 0d 56  | .. convert% ..V|
0000d510  18 17 20 20 20 20 c9 20  31 20 3a 20 f4 20 2d 20  |..    . 1 : . - |
0000d520  59 61 72 64 73 0d 56 22  18 20 20 20 20 20 79 61  |Yards.V".     ya|
0000d530  72 64 73 25 3d 79 61 72  64 73 25 2d 31 0d 56 2c  |rds%=yards%-1.V,|
0000d540  1e 20 20 20 20 20 e7 20  79 61 72 64 73 25 3d 30  |.     . yards%=0|
0000d550  20 8c 20 79 61 72 64 73  25 3d 31 0d 56 36 17 20  | . yards%=1.V6. |
0000d560  20 20 20 20 f2 79 61 72  64 73 28 79 61 72 64 73  |    .yards(yards|
0000d570  25 29 0d 56 40 0b 20 20  20 20 c9 20 32 0d 56 4a  |%).V@.    . 2.VJ|
0000d580  15 20 20 20 20 20 73 71  5f 79 61 72 64 73 25 2d  |.     sq_yards%-|
0000d590  3d 31 0d 56 54 26 20 20  20 20 20 e7 20 73 71 5f  |=1.VT&     . sq_|
0000d5a0  79 61 72 64 73 25 3d 2d  33 20 8c 20 73 71 5f 79  |yards%=-3 . sq_y|
0000d5b0  61 72 64 73 25 3d 2d 32  0d 56 5e 12 20 20 20 20  |ards%=-2.V^.    |
0000d5c0  20 f2 73 71 5f 79 61 72  64 73 0d 56 68 0b 20 20  | .sq_yards.Vh.  |
0000d5d0  20 20 c9 20 33 0d 56 72  13 20 20 20 20 20 70 6f  |  . 3.Vr.     po|
0000d5e0  75 6e 64 73 25 2d 3d 31  0d 56 7c 22 20 20 20 20  |unds%-=1.V|"    |
0000d5f0  20 e7 20 70 6f 75 6e 64  73 25 3d 2d 32 20 8c 20  | . pounds%=-2 . |
0000d600  70 6f 75 6e 64 73 25 3d  2d 31 0d 56 86 10 20 20  |pounds%=-1.V..  |
0000d610  20 20 20 f2 70 6f 75 6e  64 73 0d 56 90 0b 20 20  |   .pounds.V..  |
0000d620  20 20 c9 20 34 0d 56 9a  17 20 20 20 20 20 63 75  |  . 4.V..     cu|
0000d630  62 69 63 5f 66 65 65 74  25 2d 3d 31 0d 56 a4 2a  |bic_feet%-=1.V.*|
0000d640  20 20 20 20 20 e7 20 63  75 62 69 63 5f 66 65 65  |     . cubic_fee|
0000d650  74 25 3d 2d 32 20 8c 20  63 75 62 69 63 5f 66 65  |t%=-2 . cubic_fe|
0000d660  65 74 25 3d 2d 31 0d 56  ae 14 20 20 20 20 20 f2  |et%=-1.V..     .|
0000d670  63 75 62 69 63 5f 66 65  65 74 0d 56 b8 0b 20 20  |cubic_feet.V..  |
0000d680  20 20 c9 20 35 0d 56 c2  12 20 20 20 20 20 70 69  |  . 5.V..     pi|
0000d690  6e 74 73 25 2d 3d 31 0d  56 cc 20 20 20 20 20 20  |nts%-=1.V.      |
0000d6a0  e7 20 70 69 6e 74 73 25  3d 2d 32 20 8c 20 70 69  |. pints%=-2 . pi|
0000d6b0  6e 74 73 25 3d 2d 31 0d  56 d6 0f 20 20 20 20 20  |nts%=-1.V..     |
0000d6c0  f2 70 69 6e 74 73 0d 56  e0 0b 20 20 20 20 c9 20  |.pints.V..    . |
0000d6d0  36 0d 56 ea 0f 20 20 20  20 20 66 61 72 25 3d 30  |6.V..     far%=0|
0000d6e0  0d 56 f4 0d 20 20 20 20  20 f2 66 61 72 0d 56 fe  |.V..     .far.V.|
0000d6f0  08 20 20 20 cb 0d 57 08  09 20 20 c9 20 a3 0d 57  |.   ..W..  . ..W|
0000d700  12 14 20 20 20 c8 8e 20  63 6f 6e 76 65 72 74 25  |..   .. convert%|
0000d710  20 ca 0d 57 1c 18 20 20  20 20 c9 20 31 20 3a 20  | ..W..    . 1 : |
0000d720  f4 20 2d 20 4d 65 74 72  65 73 0d 57 26 13 20 20  |. - Metres.W&.  |
0000d730  20 20 20 6d 65 74 72 65  73 25 2d 3d 31 0d 57 30  |   metres%-=1.W0|
0000d740  22 20 20 20 20 20 e7 20  6d 65 74 72 65 73 25 3d  |"     . metres%=|
0000d750  2d 32 20 8c 20 6d 65 74  72 65 73 25 3d 2d 31 0d  |-2 . metres%=-1.|
0000d760  57 3a 10 20 20 20 20 20  f2 6d 65 74 72 65 73 0d  |W:.     .metres.|
0000d770  57 44 0b 20 20 20 20 c9  20 32 0d 57 4e 16 20 20  |WD.    . 2.WN.  |
0000d780  20 20 20 73 71 5f 6d 65  74 72 65 73 25 2d 3d 31  |   sq_metres%-=1|
0000d790  0d 57 58 28 20 20 20 20  20 e7 20 73 71 5f 6d 65  |.WX(     . sq_me|
0000d7a0  74 72 65 73 25 3d 2d 32  20 8c 20 73 71 5f 6d 65  |tres%=-2 . sq_me|
0000d7b0  74 72 65 73 25 3d 2d 31  0d 57 62 13 20 20 20 20  |tres%=-1.Wb.    |
0000d7c0  20 f2 73 71 5f 6d 65 74  72 65 73 0d 57 6c 0b 20  | .sq_metres.Wl. |
0000d7d0  20 20 20 c9 20 33 0d 57  76 16 20 20 20 20 20 6b  |   . 3.Wv.     k|
0000d7e0  69 6c 6f 67 72 61 6d 73  25 2d 3d 31 0d 57 80 28  |ilograms%-=1.W.(|
0000d7f0  20 20 20 20 20 e7 20 6b  69 6c 6f 67 72 61 6d 73  |     . kilograms|
0000d800  25 3d 2d 32 20 8c 20 6b  69 6c 6f 67 72 61 6d 73  |%=-2 . kilograms|
0000d810  25 3d 2d 31 0d 57 8a 13  20 20 20 20 20 f2 6b 69  |%=-1.W..     .ki|
0000d820  6c 6f 67 72 61 6d 73 0d  57 94 0b 20 20 20 20 c9  |lograms.W..    .|
0000d830  20 34 0d 57 9e 1b 20 20  20 20 20 63 75 62 69 63  | 4.W..     cubic|
0000d840  5f 6d 65 74 72 65 73 25  3d 28 2d 31 29 0d 57 a8  |_metres%=(-1).W.|
0000d850  16 20 20 20 20 20 f2 63  75 62 69 63 5f 6d 65 74  |.     .cubic_met|
0000d860  72 65 73 0d 57 b2 0b 20  20 20 20 c9 20 35 0d 57  |res.W..    . 5.W|
0000d870  bc 13 20 20 20 20 20 6c  69 74 72 65 73 25 3d 2d  |..     litres%=-|
0000d880  31 0d 57 c6 10 20 20 20  20 20 f2 6c 69 74 72 65  |1.W..     .litre|
0000d890  73 0d 57 d0 0b 20 20 20  20 c9 20 36 0d 57 da 10  |s.W..    . 6.W..|
0000d8a0  20 20 20 20 20 63 65 6c  25 3d 2d 31 0d 57 e4 0d  |     cel%=-1.W..|
0000d8b0  20 20 20 20 20 f2 63 65  6c 0d 57 ee 08 20 20 20  |     .cel.W..   |
0000d8c0  cb 0d 57 f8 06 20 cb 0d  58 02 05 e1 0d 58 0c 04  |..W.. ..X....X..|
0000d8d0  0d 58 16 15 dd 20 f2 6e  75 6c 6c 5f 76 61 72 69  |.X... .null_vari|
0000d8e0  61 62 6c 65 73 0d 58 20  16 20 63 6f 6e 5f 76 61  |ables.X . con_va|
0000d8f0  6c 75 65 20 20 20 20 20  3d 20 30 0d 58 2a 16 20  |lue     = 0.X*. |
0000d900  6d 65 74 72 65 73 25 20  20 20 20 20 20 20 3d 20  |metres%       = |
0000d910  30 0d 58 34 16 20 73 71  5f 6d 65 74 72 65 73 25  |0.X4. sq_metres%|
0000d920  20 20 20 20 3d 20 30 0d  58 3e 16 20 6b 69 6c 6f  |    = 0.X>. kilo|
0000d930  67 72 61 6d 73 25 20 20  20 20 3d 20 30 0d 58 48  |grams%    = 0.XH|
0000d940  16 20 63 75 62 69 63 5f  6d 65 74 72 65 73 25 20  |. cubic_metres% |
0000d950  3d 20 30 0d 58 52 16 20  6c 69 74 72 65 73 25 20  |= 0.XR. litres% |
0000d960  20 20 20 20 20 20 3d 20  30 0d 58 5c 16 20 79 61  |      = 0.X\. ya|
0000d970  72 64 73 25 20 20 20 20  20 20 20 20 3d 20 33 0d  |rds%        = 3.|
0000d980  58 66 16 20 73 71 5f 79  61 72 64 73 25 20 20 20  |Xf. sq_yards%   |
0000d990  20 20 3d 20 30 0d 58 70  16 20 70 6f 75 6e 64 73  |  = 0.Xp. pounds|
0000d9a0  25 20 20 20 20 20 20 20  3d 20 30 0d 58 7a 16 20  |%       = 0.Xz. |
0000d9b0  63 75 62 69 63 5f 66 65  65 74 25 20 20 20 3d 20  |cubic_feet%   = |
0000d9c0  30 0d 58 84 16 20 70 69  6e 74 73 25 20 20 20 20  |0.X.. pints%    |
0000d9d0  20 20 20 20 3d 20 30 0d  58 8e 16 20 66 61 72 25  |    = 0.X.. far%|
0000d9e0  20 20 20 20 20 20 20 20  20 20 3d 20 30 0d 58 98  |          = 0.X.|
0000d9f0  16 20 63 65 6c 25 20 20  20 20 20 20 20 20 20 20  |. cel%          |
0000da00  3d 20 30 0d 58 a2 05 e1  0d 58 ac 04 0d 58 b6 24  |= 0.X....X...X.$|
0000da10  dd 20 f2 63 68 61 6e 67  65 72 28 63 74 65 78 74  |. .changer(ctext|
0000da20  24 2c 63 6f 6e 76 65 72  74 5f 74 79 70 65 24 29  |$,convert_type$)|
0000da30  0d 58 c0 17 20 e7 20 a7  63 74 65 78 74 24 2c 22  |.X.. . .ctext$,"|
0000da40  45 22 29 3e 30 20 8c 0d  58 ca 43 20 20 f2 70 75  |E")>0 ..X.C  .pu|
0000da50  74 5f 69 63 6f 6e 5f 74  65 78 74 28 6d 61 69 6e  |t_icon_text(main|
0000da60  25 2c 32 34 2c 22 45 22  2b c2 63 74 65 78 74 24  |%,24,"E"+.ctext$|
0000da70  2c 28 a9 20 63 74 65 78  74 24 2d a7 63 74 65 78  |,(. ctext$-.ctex|
0000da80  74 24 2c 22 45 22 29 29  29 29 0d 58 d4 36 20 20  |t$,"E")))).X.6  |
0000da90  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 6d  |.put_icon_text(m|
0000daa0  61 69 6e 25 2c 31 37 2c  c0 63 74 65 78 74 24 2c  |ain%,17,.ctext$,|
0000dab0  a7 63 74 65 78 74 24 2c  22 45 22 29 2d 31 29 29  |.ctext$,"E")-1))|
0000dac0  0d 58 de 06 20 cc 0d 58  e8 25 20 20 f2 70 75 74  |.X.. ..X.%  .put|
0000dad0  5f 69 63 6f 6e 5f 74 65  78 74 28 6d 61 69 6e 25  |_icon_text(main%|
0000dae0  2c 31 37 2c 63 74 65 78  74 24 29 0d 58 f2 23 20  |,17,ctext$).X.# |
0000daf0  20 f2 70 75 74 5f 69 63  6f 6e 5f 74 65 78 74 28  | .put_icon_text(|
0000db00  6d 61 69 6e 25 2c 32 34  2c 22 45 30 22 29 0d 58  |main%,24,"E0").X|
0000db10  fc 06 20 cd 0d 59 06 2c  20 20 f2 70 75 74 5f 69  |.. ..Y.,  .put_i|
0000db20  63 6f 6e 5f 74 65 78 74  28 6d 61 69 6e 25 2c 31  |con_text(main%,1|
0000db30  35 2c 63 6f 6e 76 65 72  74 5f 74 79 70 65 24 29  |5,convert_type$)|
0000db40  0d 59 10 05 e1 0d 59 1a  04 0d 59 24 14 dd 20 f2  |.Y....Y...Y$.. .|
0000db50  79 61 72 64 73 28 79 61  72 64 73 25 29 0d 59 2e  |yards(yards%).Y.|
0000db60  10 20 c8 8e 20 79 61 72  64 73 25 20 ca 0d 59 38  |. .. yards% ..Y8|
0000db70  09 20 20 c9 20 31 0d 59  42 29 20 20 20 f2 63 68  |.  . 1.YB)   .ch|
0000db80  61 6e 67 65 72 28 c3 28  63 6f 6e 5f 76 61 6c 75  |anger(.(con_valu|
0000db90  65 2a 33 36 29 2c 22 49  6e 63 68 65 73 22 29 0d  |e*36),"Inches").|
0000dba0  59 4c 09 20 20 c9 20 32  0d 59 56 26 20 20 20 f2  |YL.  . 2.YV&   .|
0000dbb0  63 68 61 6e 67 65 72 28  c3 28 63 6f 6e 5f 76 61  |changer(.(con_va|
0000dbc0  6c 75 65 2a 33 29 2c 22  46 65 65 74 22 29 0d 59  |lue*3),"Feet").Y|
0000dbd0  60 09 20 20 c9 20 33 0d  59 6a 25 20 20 20 f2 63  |`.  . 3.Yj%   .c|
0000dbe0  68 61 6e 67 65 72 28 c3  28 63 6f 6e 5f 76 61 6c  |hanger(.(con_val|
0000dbf0  75 65 29 2c 22 59 61 72  64 73 22 29 0d 59 74 09  |ue),"Yards").Yt.|
0000dc00  20 20 c9 20 34 0d 59 7e  2a 20 20 20 f2 63 68 61  |  . 4.Y~*   .cha|
0000dc10  6e 67 65 72 28 c3 28 63  6f 6e 5f 76 61 6c 75 65  |nger(.(con_value|
0000dc20  2f 31 37 36 30 29 2c 22  4d 69 6c 65 73 22 29 0d  |/1760),"Miles").|
0000dc30  59 88 06 20 cb 0d 59 92  05 e1 0d 59 9c 04 0d 59  |Y.. ..Y....Y...Y|
0000dc40  a6 0d dd 20 f2 6d 65 74  72 65 73 0d 59 b0 11 20  |... .metres.Y.. |
0000dc50  c8 8e 20 6d 65 74 72 65  73 25 20 ca 0d 59 ba 0a  |.. metres% ..Y..|
0000dc60  20 20 c9 20 2d 31 0d 59  c4 2f 20 20 20 f2 63 68  |  . -1.Y./   .ch|
0000dc70  61 6e 67 65 72 28 c3 28  63 6f 6e 5f 76 61 6c 75  |anger(.(con_valu|
0000dc80  65 2a 31 30 30 29 2c 22  43 65 6e 74 69 6d 65 74  |e*100),"Centimet|
0000dc90  72 65 73 22 29 0d 59 ce  09 20 20 c9 20 30 0d 59  |res").Y..  . 0.Y|
0000dca0  d8 26 20 20 20 f2 63 68  61 6e 67 65 72 28 c3 28  |.&   .changer(.(|
0000dcb0  63 6f 6e 5f 76 61 6c 75  65 29 2c 22 4d 65 74 72  |con_value),"Metr|
0000dcc0  65 73 22 29 0d 59 e2 09  20 20 c9 20 31 0d 59 ec  |es").Y..  . 1.Y.|
0000dcd0  2f 20 20 20 f2 63 68 61  6e 67 65 72 28 c3 28 63  |/   .changer(.(c|
0000dce0  6f 6e 5f 76 61 6c 75 65  2f 31 30 30 30 29 2c 22  |on_value/1000),"|
0000dcf0  4b 69 6c 6f 6d 65 74 72  65 73 22 29 0d 59 f6 06  |Kilometres").Y..|
0000dd00  20 cb 0d 5a 00 05 e1 0d  5a 0a 04 0d 5a 14 0f dd  | ..Z....Z...Z...|
0000dd10  20 f2 73 71 5f 79 61 72  64 73 0d 5a 1e 13 20 c8  | .sq_yards.Z.. .|
0000dd20  8e 20 73 71 5f 79 61 72  64 73 25 20 ca 0d 5a 28  |. sq_yards% ..Z(|
0000dd30  0a 20 20 c9 20 2d 32 0d  5a 32 2f 20 20 20 f2 63  |.  . -2.Z2/   .c|
0000dd40  68 61 6e 67 65 72 28 c3  28 63 6f 6e 5f 76 61 6c  |hanger(.(con_val|
0000dd50  75 65 2a 39 2a 31 34 34  29 2c 22 53 71 20 69 6e  |ue*9*144),"Sq in|
0000dd60  63 68 65 73 22 29 0d 5a  3c 0a 20 20 c9 20 2d 31  |ches").Z<.  . -1|
0000dd70  0d 5a 46 29 20 20 20 f2  63 68 61 6e 67 65 72 28  |.ZF)   .changer(|
0000dd80  c3 28 63 6f 6e 5f 76 61  6c 75 65 2a 39 29 2c 22  |.(con_value*9),"|
0000dd90  53 71 20 66 65 65 74 22  29 0d 5a 50 09 20 20 c9  |Sq feet").ZP.  .|
0000dda0  20 30 0d 5a 5a 28 20 20  20 f2 63 68 61 6e 67 65  | 0.ZZ(   .change|
0000ddb0  72 28 c3 28 63 6f 6e 5f  76 61 6c 75 65 29 2c 22  |r(.(con_value),"|
0000ddc0  53 71 20 79 61 72 64 73  22 29 0d 5a 64 09 20 20  |Sq yards").Zd.  |
0000ddd0  c9 20 31 0d 5a 6e 2a 20  20 20 f2 63 68 61 6e 67  |. 1.Zn*   .chang|
0000dde0  65 72 28 c3 28 63 6f 6e  5f 76 61 6c 75 65 2f 34  |er(.(con_value/4|
0000ddf0  38 34 30 29 2c 22 41 63  72 65 73 22 29 0d 5a 78  |840),"Acres").Zx|
0000de00  09 20 20 c9 20 32 0d 5a  82 33 20 20 20 f2 63 68  |.  . 2.Z.3   .ch|
0000de10  61 6e 67 65 72 28 c3 28  63 6f 6e 5f 76 61 6c 75  |anger(.(con_valu|
0000de20  65 2f 28 36 34 30 2a 34  38 34 30 29 29 2c 22 53  |e/(640*4840)),"S|
0000de30  71 20 6d 69 6c 65 73 22  29 0d 5a 8c 06 20 cb 0d  |q miles").Z.. ..|
0000de40  5a 96 05 e1 0d 5a a0 04  0d 5a aa 10 dd 20 f2 73  |Z....Z...Z... .s|
0000de50  71 5f 6d 65 74 72 65 73  0d 5a b4 14 20 c8 8e 20  |q_metres.Z.. .. |
0000de60  73 71 5f 6d 65 74 72 65  73 25 20 ca 0d 5a be 0a  |sq_metres% ..Z..|
0000de70  20 20 c9 20 2d 31 0d 5a  c8 2c 20 20 20 f2 63 68  |  . -1.Z.,   .ch|
0000de80  61 6e 67 65 72 28 c3 28  63 6f 6e 5f 76 61 6c 75  |anger(.(con_valu|
0000de90  65 2a 31 30 30 30 30 29  2c 22 53 71 20 63 6d 73  |e*10000),"Sq cms|
0000dea0  22 29 0d 5a d2 09 20 20  c9 20 30 0d 5a dc 29 20  |").Z..  . 0.Z.) |
0000deb0  20 20 f2 63 68 61 6e 67  65 72 28 c3 28 63 6f 6e  |  .changer(.(con|
0000dec0  5f 76 61 6c 75 65 29 2c  22 53 71 20 6d 65 74 72  |_value),"Sq metr|
0000ded0  65 73 22 29 0d 5a e6 09  20 20 c9 20 31 0d 5a f0  |es").Z..  . 1.Z.|
0000dee0  2e 20 20 20 f2 63 68 61  6e 67 65 72 28 c3 28 63  |.   .changer(.(c|
0000def0  6f 6e 5f 76 61 6c 75 65  2f 31 30 30 30 30 29 2c  |on_value/10000),|
0000df00  22 48 65 63 74 61 72 65  73 22 29 0d 5a fa 09 20  |"Hectares").Z.. |
0000df10  20 c9 20 32 0d 5b 04 2e  20 20 20 f2 63 68 61 6e  | . 2.[..   .chan|
0000df20  67 65 72 28 c3 28 63 6f  6e 5f 76 61 6c 75 65 2f  |ger(.(con_value/|
0000df30  31 30 30 30 30 30 30 29  2c 22 53 71 20 6b 6d 73  |1000000),"Sq kms|
0000df40  22 29 0d 5b 0e 06 20 cb  0d 5b 18 05 e1 0d 5b 22  |").[.. ..[....["|
0000df50  04 0d 5b 2c 0d dd 20 f2  70 6f 75 6e 64 73 0d 5b  |..[,.. .pounds.[|
0000df60  36 11 20 c8 8e 20 70 6f  75 6e 64 73 25 20 ca 0d  |6. .. pounds% ..|
0000df70  5b 40 0a 20 20 c9 20 2d  31 0d 5b 4a 29 20 20 20  |[@.  . -1.[J)   |
0000df80  f2 63 68 61 6e 67 65 72  28 c3 28 63 6f 6e 5f 76  |.changer(.(con_v|
0000df90  61 6c 75 65 2a 31 36 29  2c 22 4f 75 6e 63 65 73  |alue*16),"Ounces|
0000dfa0  22 29 0d 5b 54 09 20 20  c9 20 30 0d 5b 5e 26 20  |").[T.  . 0.[^& |
0000dfb0  20 20 f2 63 68 61 6e 67  65 72 28 c3 28 63 6f 6e  |  .changer(.(con|
0000dfc0  5f 76 61 6c 75 65 29 2c  22 50 6f 75 6e 64 73 22  |_value),"Pounds"|
0000dfd0  29 0d 5b 68 09 20 20 c9  20 31 0d 5b 72 29 20 20  |).[h.  . 1.[r)  |
0000dfe0  20 f2 63 68 61 6e 67 65  72 28 c3 28 63 6f 6e 5f  | .changer(.(con_|
0000dff0  76 61 6c 75 65 2f 32 32  34 30 29 2c 22 54 6f 6e  |value/2240),"Ton|
0000e000  73 22 29 0d 5b 7c 06 20  cb 0d 5b 86 05 e1 0d 5b  |s").[|. ..[....[|
0000e010  90 04 0d 5b 9a 10 dd 20  f2 6b 69 6c 6f 67 72 61  |...[... .kilogra|
0000e020  6d 73 0d 5b a4 14 20 c8  8e 20 6b 69 6c 6f 67 72  |ms.[.. .. kilogr|
0000e030  61 6d 73 25 20 ca 0d 5b  ae 0a 20 20 c9 20 2d 31  |ams% ..[..  . -1|
0000e040  0d 5b b8 2a 20 20 20 f2  63 68 61 6e 67 65 72 28  |.[.*   .changer(|
0000e050  c3 28 63 6f 6e 5f 76 61  6c 75 65 2a 31 30 30 30  |.(con_value*1000|
0000e060  29 2c 22 47 72 61 6d 73  22 29 0d 5b c2 09 20 20  |),"Grams").[..  |
0000e070  c9 20 30 0d 5b cc 29 20  20 20 f2 63 68 61 6e 67  |. 0.[.)   .chang|
0000e080  65 72 28 c3 28 63 6f 6e  5f 76 61 6c 75 65 29 2c  |er(.(con_value),|
0000e090  22 4b 69 6c 6f 67 72 61  6d 73 22 29 0d 5b d6 09  |"Kilograms").[..|
0000e0a0  20 20 c9 20 31 0d 5b e0  2b 20 20 20 f2 63 68 61  |  . 1.[.+   .cha|
0000e0b0  6e 67 65 72 28 c3 28 63  6f 6e 5f 76 61 6c 75 65  |nger(.(con_value|
0000e0c0  2f 31 30 30 30 29 2c 22  54 6f 6e 6e 65 73 22 29  |/1000),"Tonnes")|
0000e0d0  0d 5b ea 06 20 cb 0d 5b  f4 05 e1 0d 5b fe 04 0d  |.[.. ..[....[...|
0000e0e0  5c 08 11 dd 20 f2 63 75  62 69 63 5f 66 65 65 74  |\... .cubic_feet|
0000e0f0  0d 5c 12 15 20 c8 8e 20  63 75 62 69 63 5f 66 65  |.\.. .. cubic_fe|
0000e100  65 74 25 20 ca 0d 5c 1c  0a 20 20 c9 20 2d 31 0d  |et% ..\..  . -1.|
0000e110  5c 26 31 20 20 20 f2 63  68 61 6e 67 65 72 28 c3  |\&1   .changer(.|
0000e120  28 63 6f 6e 5f 76 61 6c  75 65 2a 31 37 32 38 29  |(con_value*1728)|
0000e130  2c 22 43 75 62 69 63 20  69 6e 63 68 65 73 22 29  |,"Cubic inches")|
0000e140  0d 5c 30 09 20 20 c9 20  30 0d 5c 3a 2a 20 20 20  |.\0.  . 0.\:*   |
0000e150  f2 63 68 61 6e 67 65 72  28 c3 28 63 6f 6e 5f 76  |.changer(.(con_v|
0000e160  61 6c 75 65 29 2c 22 43  75 62 69 63 20 66 65 65  |alue),"Cubic fee|
0000e170  74 22 29 0d 5c 44 09 20  20 c9 20 31 0d 5c 4e 2e  |t").\D.  . 1.\N.|
0000e180  20 20 20 f2 63 68 61 6e  67 65 72 28 c3 28 63 6f  |   .changer(.(co|
0000e190  6e 5f 76 61 6c 75 65 2f  32 37 29 2c 22 43 75 62  |n_value/27),"Cub|
0000e1a0  69 63 20 59 61 72 64 73  22 29 0d 5c 58 06 20 cb  |ic Yards").\X. .|
0000e1b0  0d 5c 62 05 e1 0d 5c 6c  04 0d 5c 76 13 dd 20 f2  |.\b...\l..\v.. .|
0000e1c0  63 75 62 69 63 5f 6d 65  74 72 65 73 0d 5c 80 17  |cubic_metres.\..|
0000e1d0  20 c8 8e 20 63 75 62 69  63 5f 6d 65 74 72 65 73  | .. cubic_metres|
0000e1e0  25 20 ca 0d 5c 8a 0a 20  20 c9 20 2d 31 0d 5c 94  |% ..\..  . -1.\.|
0000e1f0  30 20 20 20 f2 63 68 61  6e 67 65 72 28 c3 28 63  |0   .changer(.(c|
0000e200  6f 6e 5f 76 61 6c 75 65  2a 31 30 30 30 30 30 30  |on_value*1000000|
0000e210  29 2c 22 43 75 62 69 63  20 63 6d 22 29 0d 5c 9e  |),"Cubic cm").\.|
0000e220  09 20 20 c9 20 30 0d 5c  a8 2c 20 20 20 f2 63 68  |.  . 0.\.,   .ch|
0000e230  61 6e 67 65 72 28 c3 28  63 6f 6e 5f 76 61 6c 75  |anger(.(con_valu|
0000e240  65 29 2c 22 43 75 62 69  63 20 6d 65 74 72 65 73  |e),"Cubic metres|
0000e250  22 29 0d 5c b2 06 20 cb  0d 5c bc 05 e1 0d 5c c6  |").\.. ..\....\.|
0000e260  04 0d 5c d0 0c dd 20 f2  70 69 6e 74 73 0d 5c da  |..\... .pints.\.|
0000e270  10 20 c8 8e 20 70 69 6e  74 73 25 20 ca 0d 5c e4  |. .. pints% ..\.|
0000e280  0a 20 20 c9 20 2d 31 0d  5c ee 2f 20 20 20 f2 63  |.  . -1.\./   .c|
0000e290  68 61 6e 67 65 72 28 c3  28 63 6f 6e 5f 76 61 6c  |hanger(.(con_val|
0000e2a0  75 65 2a 32 30 29 2c 22  46 6c 75 65 64 20 6f 75  |ue*20),"Flued ou|
0000e2b0  6e 63 65 73 22 29 0d 5c  f8 09 20 20 c9 20 30 0d  |nces").\..  . 0.|
0000e2c0  5d 02 25 20 20 20 f2 63  68 61 6e 67 65 72 28 c3  |].%   .changer(.|
0000e2d0  28 63 6f 6e 5f 76 61 6c  75 65 29 2c 22 50 69 6e  |(con_value),"Pin|
0000e2e0  74 73 22 29 0d 5d 0c 09  20 20 c9 20 31 0d 5d 16  |ts").]..  . 1.].|
0000e2f0  29 20 20 20 f2 63 68 61  6e 67 65 72 28 c3 28 63  |)   .changer(.(c|
0000e300  6f 6e 5f 76 61 6c 75 65  2f 38 29 2c 22 47 61 6c  |on_value/8),"Gal|
0000e310  6c 6f 6e 73 22 29 0d 5d  20 06 20 cb 0d 5d 2a 05  |lons").] . ..]*.|
0000e320  e1 0d 5d 34 04 0d 5d 3e  0d dd 20 f2 6c 69 74 72  |..]4..]>.. .litr|
0000e330  65 73 0d 5d 48 11 20 c8  8e 20 6c 69 74 72 65 73  |es.]H. .. litres|
0000e340  25 20 ca 0d 5d 52 0a 20  20 c9 20 2d 31 0d 5d 5c  |% ..]R.  . -1.]\|
0000e350  2f 20 20 20 f2 63 68 61  6e 67 65 72 28 c3 28 63  |/   .changer(.(c|
0000e360  6f 6e 5f 76 61 6c 75 65  2a 31 30 30 30 29 2c 22  |on_value*1000),"|
0000e370  4d 69 6c 69 6c 69 74 72  65 73 22 29 0d 5d 66 09  |Mililitres").]f.|
0000e380  20 20 c9 20 30 0d 5d 70  26 20 20 20 f2 63 68 61  |  . 0.]p&   .cha|
0000e390  6e 67 65 72 28 c3 28 63  6f 6e 5f 76 61 6c 75 65  |nger(.(con_value|
0000e3a0  29 2c 22 4c 69 74 72 65  73 22 29 0d 5d 7a 06 20  |),"Litres").]z. |
0000e3b0  cb 0d 5d 84 05 e1 0d 5d  8e 04 0d 5d 98 0a dd 20  |..]....]...]... |
0000e3c0  f2 66 61 72 0d 5d a2 29  20 f2 63 68 61 6e 67 65  |.far.].) .change|
0000e3d0  72 28 c3 28 63 6f 6e 5f  76 61 6c 75 65 29 2c 22  |r(.(con_value),"|
0000e3e0  b0 46 61 68 72 65 6e 68  65 69 74 22 29 0d 5d ac  |.Fahrenheit").].|
0000e3f0  05 e1 0d 5d b6 04 0d 5d  c0 0a dd 20 f2 63 65 6c  |...]...]... .cel|
0000e400  0d 5d ca 0e 20 c8 8e 20  63 65 6c 25 20 ca 0d 5d  |.].. .. cel% ..]|
0000e410  d4 0a 20 20 c9 20 2d 31  0d 5d de 2a 20 20 20 f2  |..  . -1.].*   .|
0000e420  63 68 61 6e 67 65 72 28  c3 28 63 6f 6e 5f 76 61  |changer(.(con_va|
0000e430  6c 75 65 2b 32 37 33 29  2c 22 4b 65 6c 76 69 6e  |lue+273),"Kelvin|
0000e440  22 29 0d 5d e8 09 20 20  c9 20 30 0d 5d f2 28 20  |").]..  . 0.].( |
0000e450  20 20 f2 63 68 61 6e 67  65 72 28 c3 28 63 6f 6e  |  .changer(.(con|
0000e460  5f 76 61 6c 75 65 29 2c  22 b0 43 65 6c 63 69 75  |_value),".Celciu|
0000e470  73 22 29 0d 5d fc 06 20  cb 0d 5e 06 05 e1 0d 5e  |s").].. ..^....^|
0000e480  10 04 0d 5e 1a 0b dd 20  f2 6a 6f 6b 65 0d 5e 24  |...^... .joke.^$|
0000e490  27 61 24 3d c2 a4 73 79  73 74 65 6d 5f 76 61 72  |'a$=..system_var|
0000e4a0  69 61 62 6c 65 28 22 73  79 73 24 64 61 74 65 22  |iable("sys$date"|
0000e4b0  29 2c 36 29 0d 5e 2e 28  62 24 3d 20 c0 a4 73 79  |),6).^.(b$= ..sy|
0000e4c0  73 74 65 6d 5f 76 61 72  69 61 62 6c 65 28 22 73  |stem_variable("s|
0000e4d0  79 73 24 64 61 74 65 22  29 2c 36 29 0d 5e 38 1d  |ys$date"),6).^8.|
0000e4e0  e7 20 62 24 20 3d 20 22  46 72 69 2c 31 33 22 20  |. b$ = "Fri,13" |
0000e4f0  8c 20 f2 73 70 6f 6f 6b  79 0d 5e 42 05 e1 0d 5e  |. .spooky.^B...^|
0000e500  4c 04 0d 5e 56 0d dd 20  f2 73 70 6f 6f 6b 79 0d  |L..^V.. .spooky.|
0000e510  5e 60 0d 20 ea 20 63 6f  75 6e 74 25 0d 5e 6a 17  |^`. . count%.^j.|
0000e520  20 20 e3 20 63 6f 75 6e  74 25 20 3d 20 31 20 b8  |  . count% = 1 .|
0000e530  20 31 30 0d 5e 74 2d 20  20 20 f2 70 75 74 5f 69  | 10.^t-   .put_i|
0000e540  63 6f 6e 5f 74 65 78 74  28 69 6e 66 6f 25 2c 63  |con_text(info%,c|
0000e550  6f 75 6e 74 25 2c 22 53  70 6f 6f 6b 79 21 22 29  |ount%,"Spooky!")|
0000e560  0d 5e 7e 0e 20 20 ed 20  63 6f 75 6e 74 25 0d 5e  |.^~.  . count%.^|
0000e570  88 05 e1 0d 5e 92 04 0d  5e 9c 57 f4 20 4f 74 68  |....^...^.W. Oth|
0000e580  65 72 20 53 74 75 66 66  20 3d 3d 3d 3d 3d 3d 3d  |er Stuff =======|
0000e590  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
0000e5c0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 0d 5e  |==============.^|
0000e5d0  a6 04 0d 5e b0 30 dd a4  67 65 74 5f 69 63 6f 6e  |...^.0..get_icon|
0000e5e0  5f 74 65 78 74 28 77 69  6e 64 6f 77 5f 68 61 6e  |_text(window_han|
0000e5f0  64 6c 65 25 2c 69 63 6f  6e 5f 68 61 6e 64 6c 65  |dle%,icon_handle|
0000e600  25 29 0d 5e ba 1e 74 65  6d 70 5f 62 6c 6b 25 21  |%).^..temp_blk%!|
0000e610  30 3d 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |0=window_handle%|
0000e620  0d 5e c4 1c 74 65 6d 70  5f 62 6c 6b 25 21 34 3d  |.^..temp_blk%!4=|
0000e630  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 0d 5e ce 24  |icon_handle%.^.$|
0000e640  c8 99 22 57 69 6d 70 5f  47 65 74 49 63 6f 6e 53  |.."Wimp_GetIconS|
0000e650  74 61 74 65 22 2c 2c 74  65 6d 70 5f 62 6c 6b 25  |tate",,temp_blk%|
0000e660  0d 5e d8 23 e7 20 28 74  65 6d 70 5f 62 6c 6b 25  |.^.#. (temp_blk%|
0000e670  21 32 34 20 80 20 26 31  30 31 29 3c 3e 26 31 30  |!24 . &101)<>&10|
0000e680  31 20 8c 0d 5e e2 2b 85  20 32 30 32 2c 22 49 63  |1 ..^.+. 202,"Ic|
0000e690  6f 6e 20 22 2b c3 69 63  6f 6e 25 2b 22 20 6e 6f  |on "+.icon%+" no|
0000e6a0  74 20 69 6e 64 69 72 65  63 74 65 64 21 22 0d 5e  |t indirected!".^|
0000e6b0  ec 07 3d 22 22 0d 5e f6  05 cd 0d 5f 00 12 3d 24  |..="".^...._..=$|
0000e6c0  74 65 6d 70 5f 62 6c 6b  25 21 32 38 0d 5f 0a 30  |temp_blk%!28._.0|
0000e6d0  dd a4 69 63 6f 6e 5f 73  65 6c 65 63 74 65 64 28  |..icon_selected(|
0000e6e0  77 69 6e 64 6f 77 5f 68  61 6e 64 6c 65 25 2c 69  |window_handle%,i|
0000e6f0  63 6f 6e 5f 68 61 6e 64  6c 65 25 29 0d 5f 14 1e  |con_handle%)._..|
0000e700  74 65 6d 70 5f 62 6c 6b  25 21 30 3d 77 69 6e 64  |temp_blk%!0=wind|
0000e710  6f 77 5f 68 61 6e 64 6c  65 25 0d 5f 1e 1c 74 65  |ow_handle%._..te|
0000e720  6d 70 5f 62 6c 6b 25 21  34 3d 69 63 6f 6e 5f 68  |mp_blk%!4=icon_h|
0000e730  61 6e 64 6c 65 25 0d 5f  28 24 c8 99 22 57 69 6d  |andle%._($.."Wim|
0000e740  70 5f 47 65 74 49 63 6f  6e 53 74 61 74 65 22 2c  |p_GetIconState",|
0000e750  2c 74 65 6d 70 5f 62 6c  6b 25 0d 5f 32 26 e7 20  |,temp_blk%._2&. |
0000e760  28 74 65 6d 70 5f 62 6c  6b 25 21 32 34 20 80 20  |(temp_blk%!24 . |
0000e770  31 3c 3c 32 31 29 20 8c  20 3d b9 20 8b 20 3d a3  |1<<21) . =. . =.|
0000e780  0d 5f 3c 38 dd f2 69 63  6f 6e 5f 76 61 6c 69 64  |._<8..icon_valid|
0000e790  61 74 69 6f 6e 28 77 69  6e 64 6f 77 5f 68 61 6e  |ation(window_han|
0000e7a0  64 6c 65 25 2c 69 63 6f  6e 5f 68 61 6e 64 6c 65  |dle%,icon_handle|
0000e7b0  25 2c 74 79 70 65 24 29  0d 5f 46 1e 74 65 6d 70  |%,type$)._F.temp|
0000e7c0  5f 62 6c 6b 25 21 30 3d  77 69 6e 64 6f 77 5f 68  |_blk%!0=window_h|
0000e7d0  61 6e 64 6c 65 25 0d 5f  50 1c 74 65 6d 70 5f 62  |andle%._P.temp_b|
0000e7e0  6c 6b 25 21 34 3d 69 63  6f 6e 5f 68 61 6e 64 6c  |lk%!4=icon_handl|
0000e7f0  65 25 0d 5f 5a 24 c8 99  22 57 69 6d 70 5f 47 65  |e%._Z$.."Wimp_Ge|
0000e800  74 49 63 6f 6e 53 74 61  74 65 22 2c 2c 74 65 6d  |tIconState",,tem|
0000e810  70 5f 62 6c 6b 25 0d 5f  64 25 e7 20 28 74 65 6d  |p_blk%._d%. (tem|
0000e820  70 5f 62 6c 6b 25 21 32  34 20 80 20 26 45 31 30  |p_blk%!24 . &E10|
0000e830  31 29 3c 3e 26 45 31 30  31 20 8c 0d 5f 6e 43 85  |1)<>&E101 .._nC.|
0000e840  20 32 30 32 2c 22 49 63  6f 6e 20 22 2b c3 69 63  | 202,"Icon "+.ic|
0000e850  6f 6e 5f 68 61 6e 64 6c  65 25 2b 22 20 6e 6f 74  |on_handle%+" not|
0000e860  20 77 72 69 74 61 62 6c  65 20 61 6e 64 20 6e 6f  | writable and no|
0000e870  74 20 69 6e 64 69 72 65  63 74 65 64 21 22 0d 5f  |t indirected!"._|
0000e880  78 05 e1 0d 5f 82 05 cd  0d 5f 8c 0e c8 8e 20 74  |x..._...._.... t|
0000e890  79 70 65 24 20 ca 0d 5f  96 0e c9 20 22 6e 75 6d  |ype$ .._... "num|
0000e8a0  62 65 72 22 0d 5f a0 19  24 74 65 6d 70 5f 62 6c  |ber"._..$temp_bl|
0000e8b0  6b 25 21 33 32 3d 22 41  30 2d 39 2e 22 0d 5f aa  |k%!32="A0-9."._.|
0000e8c0  0c c9 20 22 66 69 6c 65  22 0d 5f b4 26 24 74 65  |.. "file"._.&$te|
0000e8d0  6d 70 5f 62 6c 6b 25 21  33 32 3d 22 41 7e 20 24  |mp_blk%!32="A~ $|
0000e8e0  26 40 5c 5c 5e 3a 2e 23  2a 7c 22 2b bd 33 34 0d  |&@\\^:.#*|"+.34.|
0000e8f0  5f be 05 cb 0d 5f c8 05  e1 0d 5f d2 38 dd f2 70  |_...._...._.8..p|
0000e900  6c 61 63 65 5f 63 61 72  65 74 28 77 69 6e 64 6f  |lace_caret(windo|
0000e910  77 5f 68 61 6e 64 6c 65  25 2c 69 63 6f 6e 5f 68  |w_handle%,icon_h|
0000e920  61 6e 64 6c 65 25 2c 70  6f 73 69 74 69 6f 6e 25  |andle%,position%|
0000e930  29 0d 5f dc 1e 74 65 6d  70 5f 62 6c 6b 25 21 30  |)._..temp_blk%!0|
0000e940  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
0000e950  5f e6 1c 74 65 6d 70 5f  62 6c 6b 25 21 34 3d 69  |_..temp_blk%!4=i|
0000e960  63 6f 6e 5f 68 61 6e 64  6c 65 25 0d 5f f0 24 c8  |con_handle%._.$.|
0000e970  99 22 57 69 6d 70 5f 47  65 74 49 63 6f 6e 53 74  |."Wimp_GetIconSt|
0000e980  61 74 65 22 2c 2c 74 65  6d 70 5f 62 6c 6b 25 0d  |ate",,temp_blk%.|
0000e990  5f fa 25 e7 20 28 74 65  6d 70 5f 62 6c 6b 25 21  |_.%. (temp_blk%!|
0000e9a0  32 34 20 80 20 26 45 31  30 31 29 3c 3e 26 45 31  |24 . &E101)<>&E1|
0000e9b0  30 31 20 8c 0d 60 04 43  85 20 32 30 32 2c 22 49  |01 ..`.C. 202,"I|
0000e9c0  63 6f 6e 20 22 2b c3 69  63 6f 6e 5f 68 61 6e 64  |con "+.icon_hand|
0000e9d0  6c 65 25 2b 22 20 6e 6f  74 20 77 72 69 74 61 62  |le%+" not writab|
0000e9e0  6c 65 20 61 6e 64 20 6e  6f 74 20 69 6e 64 69 72  |le and not indir|
0000e9f0  65 63 74 65 64 21 22 0d  60 0e 05 e1 0d 60 18 05  |ected!".`....`..|
0000ea00  cd 0d 60 22 17 74 65 78  74 24 3d 24 74 65 6d 70  |..`".text$=$temp|
0000ea10  5f 62 6c 6b 25 21 32 38  0d 60 2c 27 e7 20 70 6f  |_blk%!28.`,'. po|
0000ea20  73 69 74 69 6f 6e 25 3e  a9 74 65 78 74 24 20 70  |sition%>.text$ p|
0000ea30  6f 73 69 74 69 6f 6e 25  3d a9 74 65 78 74 24 0d  |osition%=.text$.|
0000ea40  60 36 4a c8 99 22 57 69  6d 70 5f 53 65 74 43 61  |`6J.."Wimp_SetCa|
0000ea50  72 65 74 50 6f 73 69 74  69 6f 6e 22 2c 77 69 6e  |retPosition",win|
0000ea60  64 6f 77 5f 68 61 6e 64  6c 65 25 2c 69 63 6f 6e  |dow_handle%,icon|
0000ea70  5f 68 61 6e 64 6c 65 25  2c 30 2c 30 2c 2d 31 2c  |_handle%,0,0,-1,|
0000ea80  70 6f 73 69 74 69 6f 6e  25 0d 60 40 05 e1 0d 60  |position%.`@...`|
0000ea90  4a 38 dd f2 70 75 74 5f  69 63 6f 6e 5f 73 70 72  |J8..put_icon_spr|
0000eaa0  69 74 65 28 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  |ite(window_handl|
0000eab0  65 25 2c 69 63 6f 6e 5f  68 61 6e 64 6c 65 25 2c  |e%,icon_handle%,|
0000eac0  74 65 78 74 24 29 0d 60  54 1e 74 65 6d 70 5f 62  |text$).`T.temp_b|
0000ead0  6c 6b 25 21 30 3d 77 69  6e 64 6f 77 5f 68 61 6e  |lk%!0=window_han|
0000eae0  64 6c 65 25 0d 60 5e 1c  74 65 6d 70 5f 62 6c 6b  |dle%.`^.temp_blk|
0000eaf0  25 21 34 3d 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |%!4=icon_handle%|
0000eb00  0d 60 68 24 c8 99 22 57  69 6d 70 5f 47 65 74 49  |.`h$.."Wimp_GetI|
0000eb10  63 6f 6e 53 74 61 74 65  22 2c 2c 74 65 6d 70 5f  |conState",,temp_|
0000eb20  62 6c 6b 25 0d 60 72 1e  c8 8e 20 28 74 65 6d 70  |blk%.`r... (temp|
0000eb30  5f 62 6c 6b 25 21 32 34  20 80 20 26 31 30 33 29  |_blk%!24 . &103)|
0000eb40  20 ca 0d 60 7c 0f c9 20  26 30 30 32 2c 26 30 30  | ..`|.. &002,&00|
0000eb50  33 0d 60 86 17 24 74 65  6d 70 5f 62 6c 6b 25 21  |3.`..$temp_blk%!|
0000eb60  32 38 3d 74 65 78 74 24  0d 60 90 0a c9 20 26 31  |28=text$.`... &1|
0000eb70  30 32 0d 60 9a 3d e7 20  74 65 6d 70 5f 62 6c 6b  |02.`.=. temp_blk|
0000eb80  25 21 33 36 3e 30 20 24  74 65 6d 70 5f 62 6c 6b  |%!36>0 $temp_blk|
0000eb90  25 21 32 38 3d 74 65 78  74 24 3a 24 74 65 6d 70  |%!28=text$:$temp|
0000eba0  5f 62 6c 6b 25 21 33 36  3d a9 74 65 78 74 24 0d  |_blk%!36=.text$.|
0000ebb0  60 a4 0a c9 20 26 31 30  33 0d 60 ae 1b 24 74 65  |`... &103.`..$te|
0000ebc0  6d 70 5f 62 6c 6b 25 21  33 32 3d 22 53 22 2b 74  |mp_blk%!32="S"+t|
0000ebd0  65 78 74 24 0d 60 b8 35  7f 20 85 20 32 30 32 2c  |ext$.`.5. . 202,|
0000ebe0  22 4e 6f 20 73 70 72 69  74 65 20 6e 61 6d 65 20  |"No sprite name |
0000ebf0  69 6e 20 69 63 6f 6e 20  22 2b c3 69 63 6f 6e 5f  |in icon "+.icon_|
0000ec00  68 61 6e 64 6c 65 25 3a  e1 0d 60 c2 05 cb 0d 60  |handle%:..`....`|
0000ec10  cc 11 74 65 6d 70 5f 62  6c 6b 25 21 38 3d 30 0d  |..temp_blk%!8=0.|
0000ec20  60 d6 12 74 65 6d 70 5f  62 6c 6b 25 21 31 32 3d  |`..temp_blk%!12=|
0000ec30  30 0d 60 e0 24 c8 99 22  57 69 6d 70 5f 53 65 74  |0.`.$.."Wimp_Set|
0000ec40  49 63 6f 6e 53 74 61 74  65 22 2c 2c 74 65 6d 70  |IconState",,temp|
0000ec50  5f 62 6c 6b 25 0d 60 ea  05 e1 0d 60 f4 36 dd f2  |_blk%.`....`.6..|
0000ec60  70 75 74 5f 69 63 6f 6e  5f 74 65 78 74 28 77 69  |put_icon_text(wi|
0000ec70  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 2c 69 63 6f  |ndow_handle%,ico|
0000ec80  6e 5f 68 61 6e 64 6c 65  25 2c 74 65 78 74 24 29  |n_handle%,text$)|
0000ec90  0d 60 fe 1e 74 65 6d 70  5f 62 6c 6b 25 21 30 3d  |.`..temp_blk%!0=|
0000eca0  77 69 6e 64 6f 77 5f 68  61 6e 64 6c 65 25 0d 61  |window_handle%.a|
0000ecb0  08 1c 74 65 6d 70 5f 62  6c 6b 25 21 34 3d 69 63  |..temp_blk%!4=ic|
0000ecc0  6f 6e 5f 68 61 6e 64 6c  65 25 0d 61 12 24 c8 99  |on_handle%.a.$..|
0000ecd0  22 57 69 6d 70 5f 47 65  74 49 63 6f 6e 53 74 61  |"Wimp_GetIconSta|
0000ece0  74 65 22 2c 2c 74 65 6d  70 5f 62 6c 6b 25 0d 61  |te",,temp_blk%.a|
0000ecf0  1c 23 e7 20 28 74 65 6d  70 5f 62 6c 6b 25 21 32  |.#. (temp_blk%!2|
0000ed00  34 20 80 20 26 31 30 31  29 3c 3e 26 31 30 31 20  |4 . &101)<>&101 |
0000ed10  8c 0d 61 26 32 85 20 32  30 32 2c 22 49 63 6f 6e  |..a&2. 202,"Icon|
0000ed20  20 22 2b c3 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  | "+.icon_handle%|
0000ed30  2b 22 20 6e 6f 74 20 69  6e 64 69 72 65 63 74 65  |+" not indirecte|
0000ed40  64 21 22 0d 61 30 05 e1  0d 61 3a 05 cd 0d 61 44  |d!".a0...a:...aD|
0000ed50  20 74 65 78 74 24 3d c0  74 65 78 74 24 2c 74 65  | text$=.text$,te|
0000ed60  6d 70 5f 62 6c 6b 25 21  33 36 2d 31 29 0d 61 4e  |mp_blk%!36-1).aN|
0000ed70  17 24 74 65 6d 70 5f 62  6c 6b 25 21 32 38 3d 74  |.$temp_blk%!28=t|
0000ed80  65 78 74 24 0d 61 58 11  74 65 6d 70 5f 62 6c 6b  |ext$.aX.temp_blk|
0000ed90  25 21 38 3d 30 0d 61 62  12 74 65 6d 70 5f 62 6c  |%!8=0.ab.temp_bl|
0000eda0  6b 25 21 31 32 3d 30 0d  61 6c 24 c8 99 22 57 69  |k%!12=0.al$.."Wi|
0000edb0  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
0000edc0  2c 2c 74 65 6d 70 5f 62  6c 6b 25 0d 61 76 05 e1  |,,temp_blk%.av..|
0000edd0  0d 61 80 36 dd f2 73 65  6c 65 63 74 5f 69 63 6f  |.a.6..select_ico|
0000ede0  6e 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |n(window_handle%|
0000edf0  2c 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 2c 73 65  |,icon_handle%,se|
0000ee00  6c 65 63 74 25 29 0d 61  8a 1e 74 65 6d 70 5f 62  |lect%).a..temp_b|
0000ee10  6c 6b 25 21 30 3d 77 69  6e 64 6f 77 5f 68 61 6e  |lk%!0=window_han|
0000ee20  64 6c 65 25 0d 61 94 1c  74 65 6d 70 5f 62 6c 6b  |dle%.a..temp_blk|
0000ee30  25 21 34 3d 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |%!4=icon_handle%|
0000ee40  0d 61 9e 17 74 65 6d 70  5f 62 6c 6b 25 21 31 32  |.a..temp_blk%!12|
0000ee50  3d 31 3c 3c 32 31 3a 0d  61 a8 30 e7 20 73 65 6c  |=1<<21:.a.0. sel|
0000ee60  65 63 74 25 20 74 65 6d  70 5f 62 6c 6b 25 21 38  |ect% temp_blk%!8|
0000ee70  3d 31 3c 3c 32 31 20 8b  20 74 65 6d 70 5f 62 6c  |=1<<21 . temp_bl|
0000ee80  6b 25 21 38 3d 30 3a 0d  61 b2 24 c8 99 22 57 69  |k%!8=0:.a.$.."Wi|
0000ee90  6d 70 5f 53 65 74 49 63  6f 6e 53 74 61 74 65 22  |mp_SetIconState"|
0000eea0  2c 2c 74 65 6d 70 5f 62  6c 6b 25 0d 61 bc 05 e1  |,,temp_blk%.a...|
0000eeb0  0d 61 c6 2e dd f2 75 70  64 61 74 65 5f 69 63 6f  |.a....update_ico|
0000eec0  6e 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |n(window_handle%|
0000eed0  2c 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 29 0d 61  |,icon_handle%).a|
0000eee0  d0 1e 74 65 6d 70 5f 62  6c 6b 25 21 30 3d 77 69  |..temp_blk%!0=wi|
0000eef0  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 0d 61 da 1c  |ndow_handle%.a..|
0000ef00  74 65 6d 70 5f 62 6c 6b  25 21 34 3d 69 63 6f 6e  |temp_blk%!4=icon|
0000ef10  5f 68 61 6e 64 6c 65 25  0d 61 e4 11 74 65 6d 70  |_handle%.a..temp|
0000ef20  5f 62 6c 6b 25 21 38 3d  30 0d 61 ee 12 74 65 6d  |_blk%!8=0.a..tem|
0000ef30  70 5f 62 6c 6b 25 21 31  32 3d 30 0d 61 f8 24 c8  |p_blk%!12=0.a.$.|
0000ef40  99 22 57 69 6d 70 5f 53  65 74 49 63 6f 6e 53 74  |."Wimp_SetIconSt|
0000ef50  61 74 65 22 2c 2c 74 65  6d 70 5f 62 6c 6b 25 0d  |ate",,temp_blk%.|
0000ef60  62 02 05 e1 0d 62 0c 29  dd a4 70 75 74 5f 69 63  |b....b.)..put_ic|
0000ef70  6f 6e 5f 6f 6e 5f 62 61  72 28 73 70 72 69 74 65  |on_on_bar(sprite|
0000ef80  5f 6e 61 6d 65 24 2c 73  69 64 65 24 29 0d 62 16  |_name$,side$).b.|
0000ef90  0d ea 20 68 61 6e 64 6c  65 25 0d 62 20 31 e7 20  |.. handle%.b 1. |
0000efa0  73 69 64 65 24 3d 22 52  49 47 48 54 22 20 21 74  |side$="RIGHT" !t|
0000efb0  65 6d 70 5f 62 6c 6b 25  3d 2d 31 20 8b 20 21 74  |emp_blk%=-1 . !t|
0000efc0  65 6d 70 5f 62 6c 6b 25  3d 2d 32 0d 62 2a 11 74  |emp_blk%=-2.b*.t|
0000efd0  65 6d 70 5f 62 6c 6b 25  21 34 3d 30 0d 62 34 11  |emp_blk%!4=0.b4.|
0000efe0  74 65 6d 70 5f 62 6c 6b  25 21 38 3d 30 0d 62 3e  |temp_blk%!8=0.b>|
0000eff0  13 74 65 6d 70 5f 62 6c  6b 25 21 31 32 3d 36 38  |.temp_blk%!12=68|
0000f000  0d 62 48 13 74 65 6d 70  5f 62 6c 6b 25 21 31 36  |.bH.temp_blk%!16|
0000f010  3d 36 38 0d 62 52 1a 74  65 6d 70 5f 62 6c 6b 25  |=68.bR.temp_blk%|
0000f020  21 32 30 3d 26 31 37 30  30 32 30 32 41 0d 62 5c  |!20=&1700202A.b\|
0000f030  20 24 28 74 65 6d 70 5f  62 6c 6b 25 2b 32 34 29  | $(temp_blk%+24)|
0000f040  3d 73 70 72 69 74 65 5f  6e 61 6d 65 24 0d 62 66  |=sprite_name$.bf|
0000f050  2d c8 99 20 22 57 69 6d  70 5f 43 72 65 61 74 65  |-.. "Wimp_Create|
0000f060  49 63 6f 6e 22 2c 2c 74  65 6d 70 5f 62 6c 6b 25  |Icon",,temp_blk%|
0000f070  20 b8 20 68 61 6e 64 6c  65 25 0d 62 70 0c 3d 68  | . handle%.bp.=h|
0000f080  61 6e 64 6c 65 25 0d 62  7a 43 dd f2 70 75 74 5f  |andle%.bzC..put_|
0000f090  69 6e 66 6f 5f 74 65 78  74 28 77 69 6e 64 6f 77  |info_text(window|
0000f0a0  5f 68 61 6e 64 6c 65 25  2c 6e 61 6d 65 24 2c 70  |_handle%,name$,p|
0000f0b0  75 72 70 6f 73 65 24 2c  61 75 74 68 6f 72 24 2c  |urpose$,author$,|
0000f0c0  76 65 72 73 69 6f 6e 24  29 0d 62 84 2a f2 70 75  |version$).b.*.pu|
0000f0d0  74 5f 69 63 6f 6e 5f 74  65 78 74 28 77 69 6e 64  |t_icon_text(wind|
0000f0e0  6f 77 5f 68 61 6e 64 6c  65 25 2c 31 2c 6e 61 6d  |ow_handle%,1,nam|
0000f0f0  65 24 29 0d 62 8e 2d f2  70 75 74 5f 69 63 6f 6e  |e$).b.-.put_icon|
0000f100  5f 74 65 78 74 28 77 69  6e 64 6f 77 5f 68 61 6e  |_text(window_han|
0000f110  64 6c 65 25 2c 32 2c 70  75 72 70 6f 73 65 24 29  |dle%,2,purpose$)|
0000f120  0d 62 98 2c f2 70 75 74  5f 69 63 6f 6e 5f 74 65  |.b.,.put_icon_te|
0000f130  78 74 28 77 69 6e 64 6f  77 5f 68 61 6e 64 6c 65  |xt(window_handle|
0000f140  25 2c 33 2c 61 75 74 68  6f 72 24 29 0d 62 a2 2d  |%,3,author$).b.-|
0000f150  f2 70 75 74 5f 69 63 6f  6e 5f 74 65 78 74 28 77  |.put_icon_text(w|
0000f160  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 2c 34 2c  |indow_handle%,4,|
0000f170  76 65 72 73 69 6f 6e 24  29 0d 62 ac 05 e1 0d 62  |version$).b....b|
0000f180  b6 36 dd a4 70 75 74 5f  73 70 72 69 74 65 5f 74  |.6..put_sprite_t|
0000f190  65 78 74 5f 6f 6e 5f 62  61 72 28 73 70 72 69 74  |ext_on_bar(sprit|
0000f1a0  65 5f 6e 61 6d 65 24 2c  73 69 64 65 24 2c 74 65  |e_name$,side$,te|
0000f1b0  78 74 24 29 0d 62 c0 2e  ea 20 68 61 6e 64 6c 65  |xt$).b... handle|
0000f1c0  25 2c 6c 65 6e 67 74 68  25 2c 73 70 72 69 74 65  |%,length%,sprite|
0000f1d0  5f 6e 61 6d 65 25 2c 74  65 78 74 5f 73 70 61 63  |_name%,text_spac|
0000f1e0  65 25 0d 62 ca 26 de 20  73 70 72 69 74 65 5f 6e  |e%.b.&. sprite_n|
0000f1f0  61 6d 65 25 20 28 a9 28  73 70 72 69 74 65 5f 6e  |ame% (.(sprite_n|
0000f200  61 6d 65 24 29 2b 33 29  0d 62 d4 1e de 20 74 65  |ame$)+3).b... te|
0000f210  78 74 5f 73 70 61 63 65  25 20 28 a9 28 74 65 78  |xt_space% (.(tex|
0000f220  74 24 29 2b 32 29 0d 62  de 22 24 73 70 72 69 74  |t$)+2).b."$sprit|
0000f230  65 5f 6e 61 6d 65 25 3d  22 53 22 2b 73 70 72 69  |e_name%="S"+spri|
0000f240  74 65 5f 6e 61 6d 65 24  0d 62 e8 16 24 74 65 78  |te_name$.b..$tex|
0000f250  74 5f 73 70 61 63 65 25  3d 74 65 78 74 24 0d 62  |t_space%=text$.b|
0000f260  f2 31 e7 20 73 69 64 65  24 3d 22 52 49 47 48 54  |.1. side$="RIGHT|
0000f270  22 20 21 74 65 6d 70 5f  62 6c 6b 25 3d 2d 31 20  |" !temp_blk%=-1 |
0000f280  8b 20 21 74 65 6d 70 5f  62 6c 6b 25 3d 2d 32 0d  |. !temp_blk%=-2.|
0000f290  62 fc 11 74 65 6d 70 5f  62 6c 6b 25 21 34 3d 30  |b..temp_blk%!4=0|
0000f2a0  0d 63 06 13 74 65 6d 70  5f 62 6c 6b 25 21 38 3d  |.c..temp_blk%!8=|
0000f2b0  2d 31 36 0d 63 10 2a 77  69 64 74 68 25 3d 31 36  |-16.c.*width%=16|
0000f2c0  2a a9 74 65 78 74 24 3a  e7 20 77 69 64 74 68 25  |*.text$:. width%|
0000f2d0  3c 36 38 20 77 69 64 74  68 25 3d 36 38 0d 63 1a  |<68 width%=68.c.|
0000f2e0  17 74 65 6d 70 5f 62 6c  6b 25 21 31 32 3d 77 69  |.temp_blk%!12=wi|
0000f2f0  64 74 68 25 0d 63 24 13  74 65 6d 70 5f 62 6c 6b  |dth%.c$.temp_blk|
0000f300  25 21 31 36 3d 38 38 0d  63 2e 1a 74 65 6d 70 5f  |%!16=88.c..temp_|
0000f310  62 6c 6b 25 21 32 30 3d  26 31 37 30 30 32 31 32  |blk%!20=&1700212|
0000f320  42 0d 63 38 1c 74 65 6d  70 5f 62 6c 6b 25 21 32  |B.c8.temp_blk%!2|
0000f330  34 3d 74 65 78 74 5f 73  70 61 63 65 25 0d 63 42  |4=text_space%.cB|
0000f340  1d 74 65 6d 70 5f 62 6c  6b 25 21 32 38 3d 73 70  |.temp_blk%!28=sp|
0000f350  72 69 74 65 5f 6e 61 6d  65 25 0d 63 4c 19 74 65  |rite_name%.cL.te|
0000f360  6d 70 5f 62 6c 6b 25 21  33 32 3d a9 28 74 65 78  |mp_blk%!32=.(tex|
0000f370  74 24 29 0d 63 56 2d c8  99 20 22 57 69 6d 70 5f  |t$).cV-.. "Wimp_|
0000f380  43 72 65 61 74 65 49 63  6f 6e 22 2c 2c 74 65 6d  |CreateIcon",,tem|
0000f390  70 5f 62 6c 6b 25 20 b8  20 68 61 6e 64 6c 65 25  |p_blk% . handle%|
0000f3a0  0d 63 60 0c 3d 68 61 6e  64 6c 65 25 0d 63 6a 1e  |.c`.=handle%.cj.|
0000f3b0  dd 20 a4 74 61 73 6b 5f  69 6e 69 74 69 61 6c 69  |. .task_initiali|
0000f3c0  73 65 28 74 69 74 6c 65  24 29 0d 63 74 0e ea 20  |se(title$).ct.. |
0000f3d0  76 65 72 73 69 6f 6e 25  0d 63 7e 10 76 65 72 73  |version%.c~.vers|
0000f3e0  69 6f 6e 25 3d 32 30 30  0d 63 88 48 c8 99 20 22  |ion%=200.c.H.. "|
0000f3f0  57 69 6d 70 5f 49 6e 69  74 69 61 6c 69 73 65 22  |Wimp_Initialise"|
0000f400  2c 76 65 72 73 69 6f 6e  25 2c 26 34 42 35 33 34  |,version%,&4B534|
0000f410  31 35 34 2c 74 69 74 6c  65 24 20 b8 20 76 65 72  |154,title$ . ver|
0000f420  73 69 6f 6e 25 2c 74 68  69 73 5f 74 61 73 6b 25  |sion%,this_task%|
0000f430  0d 63 92 0f 3d 74 68 69  73 5f 74 61 73 6b 25 0d  |.c..=this_task%.|
0000f440  63 9c 1a dd f2 61 64 64  5f 6d 65 6e 75 5f 69 74  |c....add_menu_it|
0000f450  65 6d 28 6c 69 6e 65 24  29 0d 63 a6 44 ea 20 6d  |em(line$).c.D. m|
0000f460  65 6e 75 66 6c 61 67 25  2c 69 63 6f 6e 66 6c 61  |enuflag%,iconfla|
0000f470  67 25 2c 70 61 72 61 6d  24 2c 73 75 62 25 2c 69  |g%,param$,sub%,i|
0000f480  74 65 6d 74 65 78 74 24  2c 77 72 69 74 61 62 6c  |temtext$,writabl|
0000f490  65 25 2c 6d 61 78 6c 65  6e 67 74 68 25 0d 63 b0  |e%,maxlength%.c.|
0000f4a0  2a 69 63 6f 6e 66 6c 61  67 25 3d 26 37 30 30 30  |*iconflag%=&7000|
0000f4b0  30 32 31 3a 73 75 62 25  3d 2d 31 3a 77 72 69 74  |021:sub%=-1:writ|
0000f4c0  61 62 6c 65 25 3d a3 0d  63 ba 3a 69 74 65 6d 74  |able%=..c.:itemt|
0000f4d0  65 78 74 24 3d a4 6d 65  6e 75 5f 69 74 65 6d 5f  |ext$=.menu_item_|
0000f4e0  74 65 78 74 28 6c 69 6e  65 24 29 3a 6d 61 78 6c  |text(line$):maxl|
0000f4f0  65 6e 67 74 68 25 3d a9  69 74 65 6d 74 65 78 74  |ength%=.itemtext|
0000f500  24 0d 63 c4 05 f5 0d 63  ce 22 70 61 72 61 6d 24  |$.c....c."param$|
0000f510  3d a4 6d 65 6e 75 5f 69  74 65 6d 5f 70 61 72 61  |=.menu_item_para|
0000f520  6d 28 6c 69 6e 65 24 29  0d 63 d8 13 c8 8e 20 c0  |m(line$).c.... .|
0000f530  70 61 72 61 6d 24 2c 34  29 20 ca 0d 63 e2 21 c9  |param$,4) ..c.!.|
0000f540  22 74 69 63 6b 22 3a 6d  65 6e 75 66 6c 61 67 25  |"tick":menuflag%|
0000f550  3d 6d 65 6e 75 66 6c 61  67 25 84 31 0d 63 ec 21  |=menuflag%.1.c.!|
0000f560  c9 22 6c 69 6e 65 22 3a  6d 65 6e 75 66 6c 61 67  |."line":menuflag|
0000f570  25 3d 6d 65 6e 75 66 6c  61 67 25 84 32 0d 63 f6  |%=menuflag%.2.c.|
0000f580  27 c9 22 73 68 61 64 22  3a 69 63 6f 6e 66 6c 61  |'."shad":iconfla|
0000f590  67 25 3d 69 63 6f 6e 66  6c 61 67 25 84 26 34 30  |g%=iconflag%.&40|
0000f5a0  30 30 30 30 0d 64 00 30  c9 22 73 75 62 6d 22 3a  |0000.d.0."subm":|
0000f5b0  73 75 62 25 3d a4 6d 65  6e 75 5f 73 75 62 6d 65  |sub%=.menu_subme|
0000f5c0  6e 75 28 a4 6d 65 6e 75  76 61 72 28 70 61 72 61  |nu(.menuvar(para|
0000f5d0  6d 24 29 29 0d 64 0a 2f  c9 22 77 69 6e 64 22 3a  |m$)).d./."wind":|
0000f5e0  73 75 62 25 3d a4 6d 65  6e 75 5f 77 69 6e 64 6f  |sub%=.menu_windo|
0000f5f0  77 28 a4 6d 65 6e 75 76  61 72 28 70 61 72 61 6d  |w(.menuvar(param|
0000f600  24 29 29 0d 64 14 36 c9  22 69 63 6f 6e 22 3a 69  |$)).d.6."icon":i|
0000f610  63 6f 6e 66 6c 61 67 25  3d a4 6d 65 6e 75 5f 69  |conflag%=.menu_i|
0000f620  63 6f 6e 66 6c 61 67 28  a4 6d 65 6e 75 76 61 72  |conflag(.menuvar|
0000f630  28 70 61 72 61 6d 24 29  29 0d 64 1e 2c c9 22 77  |(param$)).d.,."w|
0000f640  72 69 74 22 3a f2 6d 65  6e 75 5f 77 72 69 74 61  |rit":.menu_writa|
0000f650  62 6c 65 28 a4 6d 65 6e  75 76 61 72 28 70 61 72  |ble(.menuvar(par|
0000f660  61 6d 24 29 29 0d 64 28  05 cb 0d 64 32 0f fd 20  |am$)).d(...d2.. |
0000f670  70 61 72 61 6d 24 3d 22  22 0d 64 3c 18 70 6f 69  |param$="".d<.poi|
0000f680  6e 74 65 72 25 21 30 3d  6d 65 6e 75 66 6c 61 67  |nter%!0=menuflag|
0000f690  25 0d 64 46 13 70 6f 69  6e 74 65 72 25 21 34 3d  |%.dF.pointer%!4=|
0000f6a0  73 75 62 25 0d 64 50 23  e7 20 a9 28 69 74 65 6d  |sub%.dP#. .(item|
0000f6b0  74 65 78 74 24 29 3e 31  32 20 84 20 77 72 69 74  |text$)>12 . writ|
0000f6c0  61 62 6c 65 25 20 8c 0d  64 5a 20 70 6f 69 6e 74  |able% ..dZ point|
0000f6d0  65 72 25 21 38 3d 69 63  6f 6e 66 6c 61 67 25 20  |er%!8=iconflag% |
0000f6e0  84 20 26 31 30 30 3a 0d  64 64 33 f2 69 6e 64 69  |. &100:.dd3.indi|
0000f6f0  72 65 63 74 65 64 5f 69  74 65 6d 28 70 6f 69 6e  |rected_item(poin|
0000f700  74 65 72 25 2c 77 72 69  74 61 62 6c 65 25 2c 6d  |ter%,writable%,m|
0000f710  61 78 6c 65 6e 67 74 68  25 29 0d 64 6e 05 cc 0d  |axlength%).dn...|
0000f720  64 78 18 70 6f 69 6e 74  65 72 25 21 38 3d 69 63  |dx.pointer%!8=ic|
0000f730  6f 6e 66 6c 61 67 25 0d  64 82 26 24 28 70 6f 69  |onflag%.d.&$(poi|
0000f740  6e 74 65 72 25 2b 31 32  29 3d c0 69 74 65 6d 74  |nter%+12)=.itemt|
0000f750  65 78 74 24 2b bd 28 30  29 2c 31 32 29 0d 64 8c  |ext$+.(0),12).d.|
0000f760  05 cd 0d 64 96 10 70 6f  69 6e 74 65 72 25 2b 3d  |...d..pointer%+=|
0000f770  32 34 0d 64 a0 05 e1 0d  64 aa 16 dd a4 62 65 67  |24.d....d....beg|
0000f780  69 6e 6d 65 6e 75 28 6c  69 6e 65 24 29 0d 64 b4  |inmenu(line$).d.|
0000f790  1e e7 20 c0 6c 69 6e 65  24 2c 39 29 3d 22 62 65  |.. .line$,9)="be|
0000f7a0  67 69 6e 6d 65 6e 75 22  20 3d b9 0d 64 be 06 3d  |ginmenu" =..d..=|
0000f7b0  a3 0d 64 c8 26 dd a4 64  65 63 6f 64 65 5f 6d 65  |..d.&..decode_me|
0000f7c0  6e 75 28 6d 65 6e 75 73  74 61 72 74 25 2c 6c 69  |nu(menustart%,li|
0000f7d0  73 74 70 74 72 25 29 0d  64 d2 10 ea 20 74 65 78  |stptr%).d... tex|
0000f7e0  74 5f 70 61 74 68 24 0d  64 dc 45 c8 99 22 57 69  |t_path$.d.E.."Wi|
0000f7f0  6d 70 5f 44 65 63 6f 64  65 4d 65 6e 75 22 2c 2c  |mp_DecodeMenu",,|
0000f800  6d 65 6e 75 73 74 61 72  74 25 2c 6c 69 73 74 70  |menustart%,listp|
0000f810  74 72 25 2c 62 6c 6b 25  2b 32 35 36 20 b8 20 2c  |tr%,blk%+256 . ,|
0000f820  2c 2c 74 65 78 74 5f 70  61 74 68 24 0d 64 e6 0f  |,,text_path$.d..|
0000f830  3d 74 65 78 74 5f 70 61  74 68 24 0d 64 f0 45 dd  |=text_path$.d.E.|
0000f840  f2 64 69 6d 5f 6d 65 6e  75 5f 61 72 72 61 79 73  |.dim_menu_arrays|
0000f850  28 6d 65 6e 75 63 6f 75  6e 74 25 2c 69 74 65 6d  |(menucount%,item|
0000f860  63 6f 75 6e 74 25 2c 77  72 69 74 65 63 6f 75 6e  |count%,writecoun|
0000f870  74 25 2c 77 69 6e 64 6f  77 63 6f 75 6e 74 25 29  |t%,windowcount%)|
0000f880  0d 64 fa 30 de 20 6d 65  6e 75 73 74 61 72 74 25  |.d.0. menustart%|
0000f890  20 28 6d 65 6e 75 63 6f  75 6e 74 25 2a 32 38 29  | (menucount%*28)|
0000f8a0  2b 28 69 74 65 6d 63 6f  75 6e 74 25 2a 32 34 29  |+(itemcount%*24)|
0000f8b0  0d 65 04 1c de 20 6d 65  6e 75 77 69 64 74 68 25  |.e... menuwidth%|
0000f8c0  28 6d 65 6e 75 63 6f 75  6e 74 25 29 0d 65 0e 17  |(menucount%).e..|
0000f8d0  de 20 6d 65 6e 75 25 28  6d 65 6e 75 63 6f 75 6e  |. menu%(menucoun|
0000f8e0  74 25 29 0d 65 18 21 de  20 77 72 69 74 61 62 6c  |t%).e.!. writabl|
0000f8f0  65 5f 69 74 65 6d 25 28  77 72 69 74 65 63 6f 75  |e_item%(writecou|
0000f900  6e 74 25 29 0d 65 22 20  de 20 77 72 69 74 61 62  |nt%).e" . writab|
0000f910  6c 65 5f 6c 65 6e 25 28  77 72 69 74 65 63 6f 75  |le_len%(writecou|
0000f920  6e 74 25 29 0d 65 2c 05  e1 0d 65 36 19 dd a4 67  |nt%).e,...e6...g|
0000f930  65 74 5f 77 72 69 74 65  6d 28 77 72 69 74 65 6d  |et_writem(writem|
0000f940  25 29 0d 65 40 0b ea 20  74 65 6d 70 24 0d 65 4a  |%).e@.. temp$.eJ|
0000f950  31 e7 20 77 72 69 74 65  6d 25 3c 31 20 84 20 77  |1. writem%<1 . w|
0000f960  72 69 74 65 6d 25 3e de  28 77 72 69 74 61 62 6c  |ritem%>.(writabl|
0000f970  65 5f 69 74 65 6d 25 28  29 2c 31 29 20 8c 0d 65  |e_item%(),1) ..e|
0000f980  54 3d 85 20 32 30 31 2c  22 77 72 69 74 61 62 6c  |T=. 201,"writabl|
0000f990  65 20 6d 65 6e 75 20 69  74 65 6d 20 22 2b c3 28  |e menu item "+.(|
0000f9a0  77 72 69 74 65 6d 25 29  2b 22 20 64 6f 65 73 20  |writem%)+" does |
0000f9b0  6e 6f 74 20 65 78 69 73  74 21 22 0d 65 5e 05 cd  |not exist!".e^..|
0000f9c0  0d 65 68 23 77 72 69 74  65 6d 25 3d 77 72 69 74  |.eh#writem%=writ|
0000f9d0  61 62 6c 65 5f 69 74 65  6d 25 28 77 72 69 74 65  |able_item%(write|
0000f9e0  6d 25 29 0d 65 72 3a 74  65 6d 70 24 3d 22 22 3a  |m%).er:temp$="":|
0000f9f0  20 c8 95 20 3f 77 72 69  74 65 6d 25 3e 33 31 3a  | .. ?writem%>31:|
0000fa00  74 65 6d 70 24 2b 3d bd  3f 77 72 69 74 65 6d 25  |temp$+=.?writem%|
0000fa10  3a 77 72 69 74 65 6d 25  2b 3d 31 3a ce 0d 65 7c  |:writem%+=1:..e||
0000fa20  0a 3d 74 65 6d 70 24 0d  65 86 14 dd f2 67 6f 74  |.=temp$.e....got|
0000fa30  6f 5f 62 65 67 69 6e 6d  65 6e 75 0d 65 90 11 ea  |o_beginmenu.e...|
0000fa40  20 74 65 6d 70 25 2c 6c  69 6e 65 24 0d 65 9a 11  | temp%,line$.e..|
0000fa50  cf 23 6d 65 6e 75 66 69  6c 65 25 3d 30 0d 65 a4  |.#menufile%=0.e.|
0000fa60  05 f5 0d 65 ae 15 74 65  6d 70 25 3d 8f 23 6d 65  |...e..temp%=.#me|
0000fa70  6e 75 66 69 6c 65 25 0d  65 b8 15 6c 69 6e 65 24  |nufile%.e..line$|
0000fa80  3d be 23 6d 65 6e 75 66  69 6c 65 25 0d 65 c2 25  |=.#menufile%.e.%|
0000fa90  fd 20 a4 62 65 67 69 6e  6d 65 6e 75 28 6c 69 6e  |. .beginmenu(lin|
0000faa0  65 24 29 20 84 20 c5 23  6d 65 6e 75 66 69 6c 65  |e$) . .#menufile|
0000fab0  25 0d 65 cc 3a e7 c5 23  6d 65 6e 75 66 69 6c 65  |%.e.:..#menufile|
0000fac0  25 20 85 20 32 30 30 2c  22 4e 6f 20 27 62 65 67  |% . 200,"No 'beg|
0000fad0  69 6e 6d 65 6e 75 27 20  66 6f 75 6e 64 20 69 6e  |inmenu' found in|
0000fae0  20 6d 65 6e 75 20 66 69  6c 65 22 0d 65 d6 15 cf  | menu file".e...|
0000faf0  23 6d 65 6e 75 66 69 6c  65 25 3d 74 65 6d 70 25  |#menufile%=temp%|
0000fb00  0d 65 e0 05 e1 0d 65 ea  32 dd f2 69 6e 64 69 72  |.e....e.2..indir|
0000fb10  65 63 74 65 64 5f 69 74  65 6d 28 6d 65 6e 75 5f  |ected_item(menu_|
0000fb20  70 74 72 25 2c 77 72 69  74 61 62 6c 65 25 2c 6c  |ptr%,writable%,l|
0000fb30  65 6e 67 74 68 25 29 0d  65 f4 10 ea 20 69 6e 64  |ength%).e... ind|
0000fb40  69 72 5f 70 74 72 25 0d  65 fe 11 e7 20 77 72 69  |ir_ptr%.e... wri|
0000fb50  74 61 62 6c 65 25 20 8c  0d 66 08 1a de 20 69 6e  |table% ..f... in|
0000fb60  64 69 72 5f 70 74 72 25  20 6c 65 6e 67 74 68 25  |dir_ptr% length%|
0000fb70  2b 31 0d 66 12 05 cc 0d  66 1c 1d de 20 69 6e 64  |+1.f....f... ind|
0000fb80  69 72 5f 70 74 72 25 20  31 2b a9 69 74 65 6d 74  |ir_ptr% 1+.itemt|
0000fb90  65 78 74 24 0d 66 26 05  cd 0d 66 30 1c 6d 65 6e  |ext$.f&...f0.men|
0000fba0  75 5f 70 74 72 25 21 31  32 3d 69 6e 64 69 72 5f  |u_ptr%!12=indir_|
0000fbb0  70 74 72 25 3a 0d 66 3a  1e 24 69 6e 64 69 72 5f  |ptr%:.f:.$indir_|
0000fbc0  70 74 72 25 3d 69 74 65  6d 74 65 78 74 24 2b bd  |ptr%=itemtext$+.|
0000fbd0  28 30 29 0d 66 44 11 e7  20 77 72 69 74 61 62 6c  |(0).fD.. writabl|
0000fbe0  65 25 20 8c 0d 66 4e 28  77 72 69 74 61 62 6c 65  |e% ..fN(writable|
0000fbf0  5f 69 74 65 6d 25 28 77  72 69 74 61 62 6c 65 25  |_item%(writable%|
0000fc00  29 3d 69 6e 64 69 72 5f  70 74 72 25 0d 66 58 24  |)=indir_ptr%.fX$|
0000fc10  77 72 69 74 61 62 6c 65  5f 6c 65 6e 25 28 77 72  |writable_len%(wr|
0000fc20  69 74 61 62 6c 65 25 29  3d 6c 65 6e 67 74 68 25  |itable%)=length%|
0000fc30  0d 66 62 19 69 6e 64 69  72 5f 70 74 72 25 2b 3d  |.fb.indir_ptr%+=|
0000fc40  6c 65 6e 67 74 68 25 2b  31 0d 66 6c 1a 6d 65 6e  |length%+1.fl.men|
0000fc50  75 5f 70 74 72 25 21 32  30 3d 6c 65 6e 67 74 68  |u_ptr%!20=length|
0000fc60  25 2b 31 0d 66 76 05 cc  0d 66 80 1c 69 6e 64 69  |%+1.fv...f..indi|
0000fc70  72 5f 70 74 72 25 2b 3d  31 2b a9 69 74 65 6d 74  |r_ptr%+=1+.itemt|
0000fc80  65 78 74 24 0d 66 8a 1e  6d 65 6e 75 5f 70 74 72  |ext$.f..menu_ptr|
0000fc90  25 21 32 30 3d 31 2b a9  69 74 65 6d 74 65 78 74  |%!20=1+.itemtext|
0000fca0  24 3a 0d 66 94 05 cd 0d  66 9e 11 3f 69 6e 64 69  |$:.f....f..?indi|
0000fcb0  72 5f 70 74 72 25 3d 30  0d 66 a8 1c 6d 65 6e 75  |r_ptr%=0.f..menu|
0000fcc0  5f 70 74 72 25 21 31 36  3d 69 6e 64 69 72 5f 70  |_ptr%!16=indir_p|
0000fcd0  74 72 25 3a 0d 66 b2 05  e1 0d 66 bc 1b dd a4 69  |tr%:.f....f....i|
0000fce0  74 65 6d 5f 63 6f 75 6e  74 28 6d 65 6e 75 5f 70  |tem_count(menu_p|
0000fcf0  74 72 25 29 0d 66 c6 0c  ea 20 63 6f 75 6e 74 25  |tr%).f... count%|
0000fd00  0d 66 d0 0c 63 6f 75 6e  74 25 3d 31 0d 66 da 11  |.f..count%=1.f..|
0000fd10  6d 65 6e 75 5f 70 74 72  25 2b 3d 32 38 0d 66 e4  |menu_ptr%+=28.f.|
0000fd20  35 c8 95 20 28 21 6d 65  6e 75 5f 70 74 72 25 20  |5.. (!menu_ptr% |
0000fd30  80 20 26 38 30 29 3d 30  3a 6d 65 6e 75 5f 70 74  |. &80)=0:menu_pt|
0000fd40  72 25 2b 3d 32 34 3a 63  6f 75 6e 74 25 2b 3d 31  |r%+=24:count%+=1|
0000fd50  3a ce 0d 66 ee 0b 3d 63  6f 75 6e 74 25 0d 66 f8  |:..f..=count%.f.|
0000fd60  1b dd f2 6c 6f 61 64 5f  6d 65 6e 75 73 28 6d 65  |...load_menus(me|
0000fd70  6e 75 66 69 6c 65 24 29  0d 67 02 32 ea 20 6d 65  |nufile$).g.2. me|
0000fd80  6e 75 63 6f 75 6e 74 25  2c 68 65 61 64 65 72 25  |nucount%,header%|
0000fd90  2c 6c 69 6e 65 24 2c 70  6f 69 6e 74 65 72 25 2c  |,line$,pointer%,|
0000fda0  6d 65 6e 75 73 74 61 72  74 25 0d 67 0c 20 f2 73  |menustart%.g. .s|
0000fdb0  69 7a 65 5f 6d 65 6e 75  5f 61 72 72 61 79 73 28  |ize_menu_arrays(|
0000fdc0  6d 65 6e 75 66 69 6c 65  24 29 0d 67 16 18 6d 65  |menufile$).g..me|
0000fdd0  6e 75 66 69 6c 65 25 3d  8e 6d 65 6e 75 66 69 6c  |nufile%=.menufil|
0000fde0  65 24 0d 67 20 14 f2 73  65 74 5f 6d 65 6e 75 5f  |e$.g ..set_menu_|
0000fdf0  61 72 72 61 79 73 0d 67  2a 13 f2 67 6f 74 6f 5f  |arrays.g*..goto_|
0000fe00  62 65 67 69 6e 6d 65 6e  75 0d 67 34 1a 6d 65 6e  |beginmenu.g4.men|
0000fe10  75 63 6f 75 6e 74 25 3d  30 3a 68 65 61 64 65 72  |ucount%=0:header|
0000fe20  25 3d a3 0d 67 3e 05 f5  0d 67 48 15 6c 69 6e 65  |%=..g>...gH.line|
0000fe30  24 3d be 23 6d 65 6e 75  66 69 6c 65 25 0d 67 52  |$=.#menufile%.gR|
0000fe40  19 e7 20 a4 62 65 67 69  6e 6d 65 6e 75 28 6c 69  |.. .beginmenu(li|
0000fe50  6e 65 24 29 20 8c 0d 67  5c 43 e7 68 65 61 64 65  |ne$) ..g\C.heade|
0000fe60  72 25 20 85 20 32 30 30  2c 22 42 61 64 20 6d 65  |r% . 200,"Bad me|
0000fe70  6e 75 20 66 69 6c 65 2c  20 6e 6f 20 69 74 65 6d  |nu file, no item|
0000fe80  73 20 69 6e 20 6d 65 6e  75 20 22 2b c3 28 6d 65  |s in menu "+.(me|
0000fe90  6e 75 63 6f 75 6e 74 25  29 0d 67 66 28 e7 6d 65  |nucount%).gf(.me|
0000fea0  6e 75 63 6f 75 6e 74 25  20 f2 6d 61 72 6b 5f 6d  |nucount% .mark_m|
0000feb0  65 6e 75 5f 65 6e 64 28  70 6f 69 6e 74 65 72 25  |enu_end(pointer%|
0000fec0  29 0d 67 70 11 6d 65 6e  75 63 6f 75 6e 74 25 2b  |).gp.menucount%+|
0000fed0  3d 31 0d 67 7a 15 6c 69  6e 65 24 3d be 23 6d 65  |=1.gz.line$=.#me|
0000fee0  6e 75 66 69 6c 65 25 0d  67 84 46 f2 6d 61 6b 65  |nufile%.g.F.make|
0000fef0  5f 6d 65 6e 75 5f 68 65  61 64 65 72 28 70 6f 69  |_menu_header(poi|
0000ff00  6e 74 65 72 25 2c 6c 69  6e 65 24 2c 6d 65 6e 75  |nter%,line$,menu|
0000ff10  77 69 64 74 68 25 28 6d  65 6e 75 63 6f 75 6e 74  |width%(menucount|
0000ff20  25 29 29 3a 68 65 61 64  65 72 25 3d b9 0d 67 8e  |%)):header%=..g.|
0000ff30  05 cc 0d 67 98 23 f2 61  64 64 5f 6d 65 6e 75 5f  |...g.#.add_menu_|
0000ff40  69 74 65 6d 28 6c 69 6e  65 24 29 3a 68 65 61 64  |item(line$):head|
0000ff50  65 72 25 3d a3 0d 67 a2  05 cd 0d 67 ac 11 fd 20  |er%=..g....g... |
0000ff60  c5 23 6d 65 6e 75 66 69  6c 65 25 0d 67 b6 1c f2  |.#menufile%.g...|
0000ff70  6d 61 72 6b 5f 6d 65 6e  75 5f 65 6e 64 28 70 6f  |mark_menu_end(po|
0000ff80  69 6e 74 65 72 25 29 0d  67 c0 28 c8 99 22 58 4f  |inter%).g.(.."XO|
0000ff90  53 5f 46 69 6e 64 22 2c  30 2c 6d 65 6e 75 66 69  |S_Find",0,menufi|
0000ffa0  6c 65 25 3a 6d 65 6e 75  66 69 6c 65 25 3d 30 0d  |le%:menufile%=0.|
0000ffb0  67 ca 43 e7 68 65 61 64  65 72 25 20 85 20 32 30  |g.C.header% . 20|
0000ffc0  30 2c 22 42 61 64 20 6d  65 6e 75 20 66 69 6c 65  |0,"Bad menu file|
0000ffd0  2c 20 6e 6f 20 69 74 65  6d 73 20 69 6e 20 6d 65  |, no items in me|
0000ffe0  6e 75 20 22 2b c3 28 6d  65 6e 75 63 6f 75 6e 74  |nu "+.(menucount|
0000fff0  25 29 0d 67 d4 05 e1 0d  67 de 30 dd f2 6d 61 6b  |%).g....g.0..mak|
00010000  65 5f 6d 65 6e 75 5f 68  65 61 64 65 72 28 f8 20  |e_menu_header(. |
00010010  70 6f 69 6e 74 65 72 25  2c 74 69 74 6c 65 24 2c  |pointer%,title$,|
00010020  77 69 64 74 68 25 29 0d  67 e8 1f 24 70 6f 69 6e  |width%).g..$poin|
00010030  74 65 72 25 3d c0 74 69  74 6c 65 24 2c 31 32 29  |ter%=.title$,12)|
00010040  2b bd 28 30 29 3a 0d 67  f2 12 70 6f 69 6e 74 65  |+.(0):.g..pointe|
00010050  72 25 3f 31 32 3d 37 3a  0d 67 fc 12 70 6f 69 6e  |r%?12=7:.g..poin|
00010060  74 65 72 25 3f 31 33 3d  32 3a 0d 68 06 12 70 6f  |ter%?13=2:.h..po|
00010070  69 6e 74 65 72 25 3f 31  34 3d 37 3a 0d 68 10 12  |inter%?14=7:.h..|
00010080  70 6f 69 6e 74 65 72 25  3f 31 35 3d 30 3a 0d 68  |pointer%?15=0:.h|
00010090  1a 17 70 6f 69 6e 74 65  72 25 21 31 36 3d 77 69  |..pointer%!16=wi|
000100a0  64 74 68 25 3a 0d 68 24  13 70 6f 69 6e 74 65 72  |dth%:.h$.pointer|
000100b0  25 21 32 30 3d 34 34 3a  0d 68 2e 12 70 6f 69 6e  |%!20=44:.h..poin|
000100c0  74 65 72 25 21 32 34 3d  30 3a 0d 68 38 11 70 6f  |ter%!24=0:.h8.po|
000100d0  69 6e 74 65 72 25 2b 3d  32 38 3a 0d 68 42 05 e1  |inter%+=28:.hB..|
000100e0  0d 68 4c 1d dd f2 6d 61  72 6b 5f 6d 65 6e 75 5f  |.hL...mark_menu_|
000100f0  65 6e 64 28 70 6f 69 6e  74 65 72 25 29 0d 68 56  |end(pointer%).hV|
00010100  28 21 28 70 6f 69 6e 74  65 72 25 2d 32 34 29 3d  |(!(pointer%-24)=|
00010110  21 28 70 6f 69 6e 74 65  72 25 2d 32 34 29 20 84  |!(pointer%-24) .|
00010120  20 26 38 30 3a 0d 68 60  05 e1 0d 68 6a 10 dd f2  | &80:.h`...hj...|
00010130  6d 65 6e 75 5f 63 6c 6f  73 65 0d 68 74 1b c8 99  |menu_close.ht...|
00010140  22 57 69 6d 70 5f 43 72  65 61 74 65 4d 65 6e 75  |"Wimp_CreateMenu|
00010150  22 2c 2c 2d 31 0d 68 7e  05 e1 0d 68 88 1c dd a4  |",,-1.h~...h....|
00010160  6d 65 6e 75 5f 68 65 69  67 68 74 28 6d 65 6e 75  |menu_height(menu|
00010170  5f 70 74 72 25 29 0d 68  92 23 ea 20 69 74 65 6d  |_ptr%).h.#. item|
00010180  63 6f 75 6e 74 25 2c 6c  69 6e 65 63 6f 75 6e 74  |count%,linecount|
00010190  25 2c 68 65 69 67 68 74  25 0d 68 9c 10 69 74 65  |%,height%.h..ite|
000101a0  6d 63 6f 75 6e 74 25 3d  31 0d 68 a6 26 68 65 69  |mcount%=1.h.&hei|
000101b0  67 68 74 25 3d 6d 65 6e  75 5f 70 74 72 25 21 32  |ght%=menu_ptr%!2|
000101c0  30 2b 6d 65 6e 75 5f 70  74 72 25 21 32 34 3a 0d  |0+menu_ptr%!24:.|
000101d0  68 b0 11 6d 65 6e 75 5f  70 74 72 25 2b 3d 32 38  |h..menu_ptr%+=28|
000101e0  0d 68 ba 1b c8 95 20 28  21 6d 65 6e 75 5f 70 74  |.h.... (!menu_pt|
000101f0  72 25 20 80 20 26 38 30  29 3d 30 0d 68 c4 11 69  |r% . &80)=0.h..i|
00010200  74 65 6d 63 6f 75 6e 74  25 2b 3d 31 0d 68 ce 25  |temcount%+=1.h.%|
00010210  e7 20 28 21 6d 65 6e 75  5f 70 74 72 25 20 80 20  |. (!menu_ptr% . |
00010220  26 32 29 20 6c 69 6e 65  63 6f 75 6e 74 25 2b 3d  |&2) linecount%+=|
00010230  31 0d 68 d8 11 6d 65 6e  75 5f 70 74 72 25 2b 3d  |1.h..menu_ptr%+=|
00010240  32 34 0d 68 e2 05 ce 0d  68 ec 26 e7 20 28 21 6d  |24.h....h.&. (!m|
00010250  65 6e 75 5f 70 74 72 25  20 80 20 26 32 29 20 6c  |enu_ptr% . &2) l|
00010260  69 6e 65 63 6f 75 6e 74  25 2b 3d 31 3a 0d 68 f6  |inecount%+=1:.h.|
00010270  25 3d 69 74 65 6d 63 6f  75 6e 74 25 2a 68 65 69  |%=itemcount%*hei|
00010280  67 68 74 25 2b 6c 69 6e  65 63 6f 75 6e 74 25 2a  |ght%+linecount%*|
00010290  32 34 0d 69 00 19 dd a4  6d 65 6e 75 5f 69 63 6f  |24.i....menu_ico|
000102a0  6e 66 6c 61 67 28 76 61  72 24 29 0d 69 0a 32 e7  |nflag(var$).i.2.|
000102b0  76 61 72 24 3d 22 22 20  85 20 32 30 30 2c 22 4d  |var$="" . 200,"M|
000102c0  65 6e 75 20 69 63 6f 6e  20 66 6c 61 67 20 76 61  |enu icon flag va|
000102d0  6c 75 65 20 6d 69 73 73  69 6e 67 21 22 0d 69 14  |lue missing!".i.|
000102e0  0c 3d a0 28 76 61 72 24  29 0d 69 1e 2c dd 20 a4  |.=.(var$).i.,. .|
000102f0  6d 65 6e 75 5f 69 6e 66  6f 5f 71 75 69 74 28 77  |menu_info_quit(w|
00010300  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 2c 74 69  |indow_handle%,ti|
00010310  74 6c 65 24 29 0d 69 28  0b ea 20 6d 65 6e 75 25  |tle$).i(.. menu%|
00010320  0d 69 32 0e de 20 6d 65  6e 75 25 20 37 36 0d 69  |.i2.. menu% 76.i|
00010330  3c 15 24 6d 65 6e 75 25  3d 74 69 74 6c 65 24 2b  |<.$menu%=title$+|
00010340  bd 31 33 0d 69 46 24 6d  65 6e 75 25 3f 31 32 3d  |.13.iF$menu%?12=|
00010350  37 3a 6d 65 6e 75 25 3f  31 33 3d 32 3a 6d 65 6e  |7:menu%?13=2:men|
00010360  75 25 3f 31 34 3d 37 0d  69 50 27 6d 65 6e 75 25  |u%?14=7.iP'menu%|
00010370  3f 31 35 3d 30 3a 6d 65  6e 75 25 21 31 36 3d 31  |?15=0:menu%!16=1|
00010380  30 38 3a 6d 65 6e 75 25  21 32 30 3d 34 34 0d 69  |08:menu%!20=44.i|
00010390  5a 0e 6d 65 6e 75 25 21  32 34 3d 30 0d 69 64 28  |Z.menu%!24=0.id(|
000103a0  6d 65 6e 75 25 21 32 38  3d 26 30 30 3a 6d 65 6e  |menu%!28=&00:men|
000103b0  75 25 21 33 32 3d 77 69  6e 64 6f 77 5f 68 61 6e  |u%!32=window_han|
000103c0  64 6c 65 25 0d 69 6e 2d  6d 65 6e 75 25 21 33 36  |dle%.in-menu%!36|
000103d0  3d 26 30 37 30 30 30 30  32 31 3a 24 28 6d 65 6e  |=&07000021:$(men|
000103e0  75 25 2b 34 30 29 3d 22  49 6e 66 6f 22 2b bd 31  |u%+40)="Info"+.1|
000103f0  33 0d 69 78 1c 6d 65 6e  75 25 21 35 32 3d 26 38  |3.ix.menu%!52=&8|
00010400  30 3a 6d 65 6e 75 25 21  35 36 3d 2d 31 0d 69 82  |0:menu%!56=-1.i.|
00010410  2d 6d 65 6e 75 25 21 36  30 3d 26 30 37 30 30 30  |-menu%!60=&07000|
00010420  30 32 31 3a 24 28 6d 65  6e 75 25 2b 36 34 29 3d  |021:$(menu%+64)=|
00010430  22 51 75 69 74 22 2b bd  31 33 0d 69 8c 0a 3d 6d  |"Quit"+.13.i..=m|
00010440  65 6e 75 25 0d 69 96 1e  dd a4 6d 65 6e 75 5f 69  |enu%.i....menu_i|
00010450  74 65 6d 5f 70 61 72 61  6d 28 f8 20 69 74 65 6d  |tem_param(. item|
00010460  24 29 0d 69 a0 0c ea 20  70 61 72 61 6d 24 0d 69  |$).i... param$.i|
00010470  aa 13 e7 20 a7 69 74 65  6d 24 2c 22 2c 22 29 20  |... .item$,",") |
00010480  8c 0d 69 b4 1f 69 74 65  6d 24 3d c1 69 74 65 6d  |..i..item$=.item|
00010490  24 2c a7 69 74 65 6d 24  2c 22 2c 22 29 2b 31 29  |$,.item$,",")+1)|
000104a0  0d 69 be 20 70 61 72 61  6d 24 3d c0 69 74 65 6d  |.i. param$=.item|
000104b0  24 2c a7 69 74 65 6d 24  2c 22 2c 22 29 2d 31 29  |$,.item$,",")-1)|
000104c0  0d 69 c8 05 cc 0d 69 d2  0d 70 61 72 61 6d 24 3d  |.i....i..param$=|
000104d0  22 22 0d 69 dc 05 cd 0d  69 e6 0b 3d 70 61 72 61  |"".i....i..=para|
000104e0  6d 24 0d 69 f0 1b dd a4  6d 65 6e 75 5f 69 74 65  |m$.i....menu_ite|
000104f0  6d 5f 74 65 78 74 28 69  74 65 6d 24 29 0d 69 fa  |m_text(item$).i.|
00010500  2d e7 20 a7 69 74 65 6d  24 2c 22 2c 22 29 20 69  |-. .item$,",") i|
00010510  74 65 6d 24 3d c0 69 74  65 6d 24 2c a7 69 74 65  |tem$=.item$,.ite|
00010520  6d 24 2c 22 2c 22 29 2d  31 29 0d 6a 04 0a 3d 69  |m$,",")-1).j..=i|
00010530  74 65 6d 24 0d 6a 0e 15  dd a4 6d 65 6e 75 5f 70  |tem$.j....menu_p|
00010540  61 74 68 28 70 74 72 25  29 0d 6a 18 0b ea 20 70  |ath(ptr%).j... p|
00010550  61 74 68 24 0d 6a 22 12  70 61 74 68 24 3d c3 28  |ath$.j".path$=.(|
00010560  21 70 74 72 25 29 0d 6a  2c 0b 70 74 72 25 2b 3d  |!ptr%).j,.ptr%+=|
00010570  34 0d 6a 36 10 c8 95 20  21 70 74 72 25 3c 3e 2d  |4.j6... !ptr%<>-|
00010580  31 0d 6a 40 17 70 61 74  68 24 2b 3d 22 2e 22 2b  |1.j@.path$+="."+|
00010590  c3 28 21 70 74 72 25 29  0d 6a 4a 0b 70 74 72 25  |.(!ptr%).jJ.ptr%|
000105a0  2b 3d 34 0d 6a 54 05 ce  0d 6a 5e 0a 3d 70 61 74  |+=4.jT...j^.=pat|
000105b0  68 24 0d 6a 68 17 dd a4  6d 65 6e 75 5f 71 75 69  |h$.jh...menu_qui|
000105c0  74 28 74 69 74 6c 65 24  29 0d 6a 72 0b ea 20 6d  |t(title$).jr.. m|
000105d0  65 6e 75 25 0d 6a 7c 0e  de 20 6d 65 6e 75 25 20  |enu%.j|.. menu% |
000105e0  35 32 0d 6a 86 15 24 6d  65 6e 75 25 3d 74 69 74  |52.j..$menu%=tit|
000105f0  6c 65 24 2b bd 31 33 0d  6a 90 24 6d 65 6e 75 25  |le$+.13.j.$menu%|
00010600  3f 31 32 3d 37 3a 6d 65  6e 75 25 3f 31 33 3d 32  |?12=7:menu%?13=2|
00010610  3a 6d 65 6e 75 25 3f 31  34 3d 37 0d 6a 9a 27 6d  |:menu%?14=7.j.'m|
00010620  65 6e 75 25 3f 31 35 3d  30 3a 6d 65 6e 75 25 21  |enu%?15=0:menu%!|
00010630  31 36 3d 31 30 38 3a 6d  65 6e 75 25 21 32 30 3d  |16=108:menu%!20=|
00010640  34 34 0d 6a a4 27 6d 65  6e 75 25 21 32 34 3d 30  |44.j.'menu%!24=0|
00010650  3a 6d 65 6e 75 25 21 32  38 3d 26 38 30 3a 6d 65  |:menu%!28=&80:me|
00010660  6e 75 25 21 33 32 3d 2d  31 0d 6a ae 2d 6d 65 6e  |nu%!32=-1.j.-men|
00010670  75 25 21 33 36 3d 26 30  37 30 30 30 30 32 31 3a  |u%!36=&07000021:|
00010680  24 28 6d 65 6e 75 25 2b  34 30 29 3d 22 51 75 69  |$(menu%+40)="Qui|
00010690  74 22 2b bd 31 33 0d 6a  b8 0a 3d 6d 65 6e 75 25  |t"+.13.j..=menu%|
000106a0  0d 6a c2 18 dd a4 6d 65  6e 75 5f 73 75 62 6d 65  |.j....menu_subme|
000106b0  6e 75 28 76 61 72 24 29  0d 6a cc 28 e7 20 bb 28  |nu(var$).j.(. .(|
000106c0  76 61 72 24 29 3c 31 20  84 20 bb 28 76 61 72 24  |var$)<1 . .(var$|
000106d0  29 3e de 28 6d 65 6e 75  25 28 29 2c 31 29 20 8c  |)>.(menu%(),1) .|
000106e0  0d 6a d6 41 85 20 32 30  30 2c 22 43 61 6e 27 74  |.j.A. 200,"Can't|
000106f0  20 66 69 6e 64 20 6d 65  6e 75 20 22 2b 76 61 72  | find menu "+var|
00010700  24 2b 22 2c 20 61 73 20  72 65 66 65 72 72 65 64  |$+", as referred|
00010710  20 74 6f 20 69 6e 3a 2d  20 22 2b 70 61 72 61 6d  | to in:- "+param|
00010720  24 0d 6a e0 05 cd 0d 6a  ea 1a e7 20 bb 28 76 61  |$.j....j... .(va|
00010730  72 24 29 3d 6d 65 6e 75  63 6f 75 6e 74 25 20 8c  |r$)=menucount% .|
00010740  0d 6a f4 4c 85 20 32 30  30 2c 22 41 6e 20 69 74  |.j.L. 200,"An it|
00010750  65 6d 20 69 6e 20 6d 65  6e 75 20 22 2b 76 61 72  |em in menu "+var|
00010760  24 2b 22 20 63 61 6e 6e  6f 74 20 68 61 76 65 20  |$+" cannot have |
00010770  6d 65 6e 75 20 22 2b 76  61 72 24 2b 22 20 61 73  |menu "+var$+" as|
00010780  20 61 20 73 75 62 6d 65  6e 75 21 22 0d 6a fe 05  | a submenu!".j..|
00010790  cd 0d 6b 08 13 3d 6d 65  6e 75 25 28 bb 28 76 61  |..k..=menu%(.(va|
000107a0  72 24 29 29 0d 6b 12 13  dd a4 6d 65 6e 75 76 61  |r$)).k....menuva|
000107b0  72 28 76 61 72 24 29 0d  6b 1c 1c 76 61 72 24 3d  |r(var$).k..var$=|
000107c0  c1 76 61 72 24 2c a7 76  61 72 24 2c 22 28 22 29  |.var$,.var$,"(")|
000107d0  2b 31 29 0d 6b 26 1c 76  61 72 24 3d c0 76 61 72  |+1).k&.var$=.var|
000107e0  24 2c a7 76 61 72 24 2c  22 29 22 29 2d 31 29 0d  |$,.var$,")")-1).|
000107f0  6b 30 09 3d 76 61 72 24  0d 6b 3a 17 dd a4 6d 65  |k0.=var$.k:...me|
00010800  6e 75 5f 77 69 6e 64 6f  77 28 76 61 72 24 29 0d  |nu_window(var$).|
00010810  6b 44 0d ea 20 68 61 6e  64 6c 65 25 0d 6b 4e 07  |kD.. handle%.kN.|
00010820  ea 20 85 0d 6b 58 43 ee  85 20 85 20 a2 20 30 2c  |. ..kXC.. . . 0,|
00010830  22 4d 65 6e 75 20 66 69  6c 65 20 65 72 72 6f 72  |"Menu file error|
00010840  2e 20 57 69 6e 64 6f 77  20 76 61 72 69 61 62 6c  |. Window variabl|
00010850  65 20 22 2b 76 61 72 24  2b 22 20 6e 6f 74 20 66  |e "+var$+" not f|
00010860  6f 75 6e 64 2e 22 0d 6b  62 13 68 61 6e 64 6c 65  |ound.".kb.handle|
00010870  25 3d a0 28 76 61 72 24  29 0d 6b 6c 11 e7 20 68  |%=.(var$).kl.. h|
00010880  61 6e 64 6c 65 25 3c 31  20 8c 0d 6b 76 1c c8 99  |andle%<1 ..kv...|
00010890  22 58 4f 53 5f 46 69 6e  64 22 2c 30 2c 6d 65 6e  |"XOS_Find",0,men|
000108a0  75 66 69 6c 65 25 0d 6b  80 06 85 3a 0d 6b 8a 05  |ufile%.k...:.k..|
000108b0  cd 0d 6b 94 0c 3d 68 61  6e 64 6c 65 25 0d 6b 9e  |..k..=handle%.k.|
000108c0  19 dd f2 6d 65 6e 75 5f  77 72 69 74 61 62 6c 65  |...menu_writable|
000108d0  28 76 61 72 24 29 0d 6b  a8 10 6d 61 78 6c 65 6e  |(var$).k..maxlen|
000108e0  67 74 68 25 3d 30 0d 6b  b2 12 e7 20 a7 76 61 72  |gth%=0.k... .var|
000108f0  24 2c 22 3a 22 29 20 8c  0d 6b bc 25 6d 61 78 6c  |$,":") ..k.%maxl|
00010900  65 6e 67 74 68 25 3d bb  28 c1 76 61 72 24 2c a7  |ength%=.(.var$,.|
00010910  76 61 72 24 2c 22 3a 22  29 2b 31 29 29 0d 6b c6  |var$,":")+1)).k.|
00010920  32 e7 a9 28 69 74 65 6d  74 65 78 74 24 29 3e 6d  |2..(itemtext$)>m|
00010930  61 78 6c 65 6e 67 74 68  25 20 6d 61 78 6c 65 6e  |axlength% maxlen|
00010940  67 74 68 25 3d a9 69 74  65 6d 74 65 78 74 24 0d  |gth%=.itemtext$.|
00010950  6b d0 05 cc 0d 6b da 19  6d 61 78 6c 65 6e 67 74  |k....k..maxlengt|
00010960  68 25 3d a9 69 74 65 6d  74 65 78 74 24 0d 6b e4  |h%=.itemtext$.k.|
00010970  05 cd 0d 6b ee 2b 6d 65  6e 75 66 6c 61 67 25 3d  |...k.+menuflag%=|
00010980  6d 65 6e 75 66 6c 61 67  25 84 34 3a 77 72 69 74  |menuflag%.4:writ|
00010990  61 62 6c 65 25 3d bb 28  76 61 72 24 29 0d 6b f8  |able%=.(var$).k.|
000109a0  05 e1 0d 6c 02 1f dd f2  70 75 74 5f 77 72 69 74  |...l....put_writ|
000109b0  65 6d 28 77 72 69 74 65  6d 25 2c 74 65 78 74 24  |em(writem%,text$|
000109c0  29 0d 6c 0c 31 e7 20 77  72 69 74 65 6d 25 3c 31  |).l.1. writem%<1|
000109d0  20 84 20 77 72 69 74 65  6d 25 3e de 28 77 72 69  | . writem%>.(wri|
000109e0  74 61 62 6c 65 5f 69 74  65 6d 25 28 29 2c 31 29  |table_item%(),1)|
000109f0  20 8c 0d 6c 16 3d 85 20  32 30 31 2c 22 77 72 69  | ..l.=. 201,"wri|
00010a00  74 61 62 6c 65 20 6d 65  6e 75 20 69 74 65 6d 20  |table menu item |
00010a10  22 2b c3 28 77 72 69 74  65 6d 25 29 2b 22 20 64  |"+.(writem%)+" d|
00010a20  6f 65 73 20 6e 6f 74 20  65 78 69 73 74 21 22 0d  |oes not exist!".|
00010a30  6c 20 05 cd 0d 6c 2a 25  e7 20 a9 74 65 78 74 24  |l ...l*%. .text$|
00010a40  3e 77 72 69 74 61 62 6c  65 5f 6c 65 6e 25 28 77  |>writable_len%(w|
00010a50  72 69 74 65 6d 25 29 20  8c 0d 6c 34 2b e7 20 a9  |ritem%) ..l4+. .|
00010a60  74 65 78 74 24 3e 31 30  30 20 74 65 78 74 24 3d  |text$>100 text$=|
00010a70  c0 74 65 78 74 24 2c 31  30 30 29 2b 22 2e 2e 2e  |.text$,100)+"...|
00010a80  2e 2e 2e 22 0d 6c 3e 45  85 20 32 30 31 2c 22 54  |...".l>E. 201,"T|
00010a90  65 78 74 20 27 22 2b 74  65 78 74 24 2b 22 27 20  |ext '"+text$+"' |
00010aa0  74 6f 6f 20 6c 6f 6e 67  20 66 6f 72 20 77 72 69  |too long for wri|
00010ab0  74 61 62 6c 65 20 69 74  65 6d 20 22 2b c3 77 72  |table item "+.wr|
00010ac0  69 74 65 6d 25 2b 22 21  22 0d 6c 48 05 cd 0d 6c  |item%+"!".lH...l|
00010ad0  52 22 24 77 72 69 74 61  62 6c 65 5f 69 74 65 6d  |R"$writable_item|
00010ae0  25 28 77 72 69 74 65 6d  25 29 3d 74 65 78 74 24  |%(writem%)=text$|
00010af0  0d 6c 5c 05 e1 0d 6c 66  15 dd f2 73 65 74 5f 6d  |.l\...lf...set_m|
00010b00  65 6e 75 5f 61 72 72 61  79 73 0d 6c 70 1d ea 20  |enu_arrays.lp.. |
00010b10  69 74 65 6d 63 6f 75 6e  74 25 2c 6c 69 6e 65 24  |itemcount%,line$|
00010b20  2c 77 69 64 74 68 25 0d  6c 7a 24 6d 65 6e 75 63  |,width%.lz$menuc|
00010b30  6f 75 6e 74 25 3d 30 3a  70 6f 69 6e 74 65 72 25  |ount%=0:pointer%|
00010b40  3d 6d 65 6e 75 73 74 61  72 74 25 0d 6c 84 13 f2  |=menustart%.l...|
00010b50  67 6f 74 6f 5f 62 65 67  69 6e 6d 65 6e 75 0d 6c  |goto_beginmenu.l|
00010b60  8e 05 f5 0d 6c 98 15 6c  69 6e 65 24 3d be 23 6d  |....l..line$=.#m|
00010b70  65 6e 75 66 69 6c 65 25  0d 6c a2 19 e7 20 a4 62  |enufile%.l... .b|
00010b80  65 67 69 6e 6d 65 6e 75  28 6c 69 6e 65 24 29 20  |eginmenu(line$) |
00010b90  8c 0d 6c ac 42 6d 65 6e  75 25 28 6d 65 6e 75 63  |..l.Bmenu%(menuc|
00010ba0  6f 75 6e 74 25 2b 31 29  3d 6d 65 6e 75 73 74 61  |ount%+1)=menusta|
00010bb0  72 74 25 2b 28 6d 65 6e  75 63 6f 75 6e 74 25 2a  |rt%+(menucount%*|
00010bc0  32 38 29 2b 28 69 74 65  6d 63 6f 75 6e 74 25 2a  |28)+(itemcount%*|
00010bd0  32 34 29 0d 6c b6 16 6c  69 6e 65 24 3d be 23 6d  |24).l..line$=.#m|
00010be0  65 6e 75 66 69 6c 65 25  3a 0d 6c c0 11 6d 65 6e  |enufile%:.l..men|
00010bf0  75 63 6f 75 6e 74 25 2b  3d 31 0d 6c ca 14 6c 69  |ucount%+=1.l..li|
00010c00  6e 65 24 3d c0 6c 69 6e  65 24 2c 31 32 29 0d 6c  |ne$=.line$,12).l|
00010c10  d4 27 6d 65 6e 75 77 69  64 74 68 25 28 6d 65 6e  |.'menuwidth%(men|
00010c20  75 63 6f 75 6e 74 25 29  3d 31 32 2b 31 36 2a a9  |ucount%)=12+16*.|
00010c30  6c 69 6e 65 24 0d 6c de  05 cc 0d 6c e8 11 69 74  |line$.l....l..it|
00010c40  65 6d 63 6f 75 6e 74 25  2b 3d 31 0d 6c f2 13 e7  |emcount%+=1.l...|
00010c50  20 a7 6c 69 6e 65 24 2c  22 2c 22 29 20 8c 0d 6c  | .line$,",") ..l|
00010c60  fc 29 77 69 64 74 68 25  3d 31 32 2b 31 36 2a a9  |.)width%=12+16*.|
00010c70  28 c0 6c 69 6e 65 24 2c  a7 6c 69 6e 65 24 2c 22  |(.line$,.line$,"|
00010c80  2c 22 29 2d 31 29 29 0d  6d 06 05 cc 0d 6d 10 17  |,")-1)).m....m..|
00010c90  77 69 64 74 68 25 3d 31  32 2b 31 36 2a a9 6c 69  |width%=12+16*.li|
00010ca0  6e 65 24 0d 6d 1a 05 cd  0d 6d 24 41 e7 20 77 69  |ne$.m....m$A. wi|
00010cb0  64 74 68 25 3e 6d 65 6e  75 77 69 64 74 68 25 28  |dth%>menuwidth%(|
00010cc0  6d 65 6e 75 63 6f 75 6e  74 25 29 20 6d 65 6e 75  |menucount%) menu|
00010cd0  77 69 64 74 68 25 28 6d  65 6e 75 63 6f 75 6e 74  |width%(menucount|
00010ce0  25 29 3d 77 69 64 74 68  25 0d 6d 2e 05 cd 0d 6d  |%)=width%.m....m|
00010cf0  38 11 fd 20 c5 23 6d 65  6e 75 66 69 6c 65 25 0d  |8.. .#menufile%.|
00010d00  6d 42 05 e1 0d 6d 4c 1f  dd f2 73 68 61 64 65 28  |mB...mL...shade(|
00010d10  6d 65 6e 75 25 2c 69 74  65 6d 25 2c 73 68 61 64  |menu%,item%,shad|
00010d20  65 25 29 0d 6d 56 12 ea  20 66 6c 61 67 61 64 64  |e%).mV.. flagadd|
00010d30  72 65 73 73 25 0d 6d 60  23 e7 6d 65 6e 75 25 3c  |ress%.m`#.menu%<|
00010d40  31 20 84 20 6d 65 6e 75  25 3e de 28 6d 65 6e 75  |1 . menu%>.(menu|
00010d50  25 28 29 2c 31 29 20 8c  0d 6d 6a 37 85 20 32 30  |%(),1) ..mj7. 20|
00010d60  31 2c 22 49 74 65 6d 20  73 68 61 64 65 20 65 72  |1,"Item shade er|
00010d70  72 6f 72 2e 20 4f 75 74  20 6f 66 20 72 61 6e 67  |ror. Out of rang|
00010d80  65 20 6d 65 6e 75 20 6e  75 6d 62 65 72 21 22 0d  |e menu number!".|
00010d90  6d 74 05 cd 0d 6d 7e 31  e7 20 69 74 65 6d 25 3c  |mt...m~1. item%<|
00010da0  30 20 84 20 69 74 65 6d  25 3e a4 69 74 65 6d 5f  |0 . item%>.item_|
00010db0  63 6f 75 6e 74 28 6d 65  6e 75 25 28 6d 65 6e 75  |count(menu%(menu|
00010dc0  25 29 29 20 8c 0d 6d 88  3c 85 20 32 30 31 2c 22  |%)) ..m.<. 201,"|
00010dd0  49 74 65 6d 20 73 68 61  64 65 20 65 72 72 6f 72  |Item shade error|
00010de0  2e 20 4f 75 74 20 6f 66  20 72 61 6e 67 65 20 6d  |. Out of range m|
00010df0  65 6e 75 20 69 74 65 6d  20 6e 75 6d 62 65 72 21  |enu item number!|
00010e00  22 0d 6d 92 05 cd 0d 6d  9c 2d 66 6c 61 67 61 64  |".m....m.-flagad|
00010e10  64 72 65 73 73 25 3d 6d  65 6e 75 25 28 6d 65 6e  |dress%=menu%(men|
00010e20  75 25 29 2b 32 38 2b 28  32 34 2a 69 74 65 6d 25  |u%)+28+(24*item%|
00010e30  29 2b 38 0d 6d a6 28 e7  20 73 68 61 64 65 25 3d  |)+8.m.(. shade%=|
00010e40  b9 20 73 68 61 64 65 25  3d 26 34 30 30 30 30 30  |. shade%=&400000|
00010e50  20 8b 20 73 68 61 64 65  25 3d 30 0d 6d b0 36 21  | . shade%=0.m.6!|
00010e60  66 6c 61 67 61 64 64 72  65 73 73 25 3d 28 21 66  |flagaddress%=(!f|
00010e70  6c 61 67 61 64 64 72 65  73 73 25 20 80 20 26 46  |lagaddress% . &F|
00010e80  46 42 46 46 46 46 46 29  20 84 20 73 68 61 64 65  |FBFFFFF) . shade|
00010e90  25 0d 6d ba 05 e1 0d 6d  c4 21 dd f2 73 69 7a 65  |%.m....m.!..size|
00010ea0  5f 6d 65 6e 75 5f 61 72  72 61 79 73 28 6d 65 6e  |_menu_arrays(men|
00010eb0  75 66 69 6c 65 24 29 0d  6d ce 3a ea 20 6d 65 6e  |ufile$).m.:. men|
00010ec0  75 63 6f 75 6e 74 25 2c  69 74 65 6d 63 6f 75 6e  |ucount%,itemcoun|
00010ed0  74 25 2c 77 72 69 74 65  63 6f 75 6e 74 25 2c 77  |t%,writecount%,w|
00010ee0  69 6e 64 6f 77 63 6f 75  6e 74 25 2c 6c 69 6e 65  |indowcount%,line|
00010ef0  24 0d 6d d8 18 6d 65 6e  75 66 69 6c 65 25 3d 8e  |$.m..menufile%=.|
00010f00  6d 65 6e 75 66 69 6c 65  24 0d 6d e2 05 f5 0d 6d  |menufile$.m....m|
00010f10  ec 15 6c 69 6e 65 24 3d  be 23 6d 65 6e 75 66 69  |..line$=.#menufi|
00010f20  6c 65 25 0d 6d f6 19 e7  20 a4 62 65 67 69 6e 6d  |le%.m... .beginm|
00010f30  65 6e 75 28 6c 69 6e 65  24 29 20 8c 0d 6e 00 24  |enu(line$) ..n.$|
00010f40  6d 65 6e 75 63 6f 75 6e  74 25 2b 3d 31 3a 6c 69  |menucount%+=1:li|
00010f50  6e 65 24 3d be 23 6d 65  6e 75 66 69 6c 65 25 3a  |ne$=.#menufile%:|
00010f60  0d 6e 0a 05 cc 0d 6e 14  24 e7 20 a7 6c 69 6e 65  |.n....n.$. .line|
00010f70  24 2c 22 2c 77 72 69 74  22 29 20 77 72 69 74 65  |$,",writ") write|
00010f80  63 6f 75 6e 74 25 2b 3d  31 0d 6e 1e 25 e7 20 a7  |count%+=1.n.%. .|
00010f90  6c 69 6e 65 24 2c 22 2c  77 69 6e 64 22 29 20 77  |line$,",wind") w|
00010fa0  69 6e 64 6f 77 63 6f 75  6e 74 25 2b 3d 31 0d 6e  |indowcount%+=1.n|
00010fb0  28 11 69 74 65 6d 63 6f  75 6e 74 25 2b 3d 31 0d  |(.itemcount%+=1.|
00010fc0  6e 32 05 cd 0d 6e 3c 11  fd 20 c5 23 6d 65 6e 75  |n2...n<.. .#menu|
00010fd0  66 69 6c 65 25 0d 6e 46  28 c8 99 22 58 4f 53 5f  |file%.nF(.."XOS_|
00010fe0  46 69 6e 64 22 2c 30 2c  6d 65 6e 75 66 69 6c 65  |Find",0,menufile|
00010ff0  25 3a 6d 65 6e 75 66 69  6c 65 25 3d 30 0d 6e 50  |%:menufile%=0.nP|
00011000  44 f2 64 69 6d 5f 6d 65  6e 75 5f 61 72 72 61 79  |D.dim_menu_array|
00011010  73 28 6d 65 6e 75 63 6f  75 6e 74 25 2c 69 74 65  |s(menucount%,ite|
00011020  6d 63 6f 75 6e 74 25 2c  77 72 69 74 65 63 6f 75  |mcount%,writecou|
00011030  6e 74 25 2c 77 69 6e 64  6f 77 63 6f 75 6e 74 25  |nt%,windowcount%|
00011040  29 0d 6e 5a 05 e1 0d 6e  64 1d dd f2 74 69 63 6b  |).nZ...nd...tick|
00011050  28 6d 65 6e 75 25 2c 69  74 65 6d 25 2c 74 69 63  |(menu%,item%,tic|
00011060  6b 25 29 0d 6e 6e 12 ea  20 66 6c 61 67 61 64 64  |k%).nn.. flagadd|
00011070  72 65 73 73 25 0d 6e 78  23 e7 6d 65 6e 75 25 3c  |ress%.nx#.menu%<|
00011080  31 20 84 20 6d 65 6e 75  25 3e de 28 6d 65 6e 75  |1 . menu%>.(menu|
00011090  25 28 29 2c 31 29 20 8c  0d 6e 82 36 85 20 32 30  |%(),1) ..n.6. 20|
000110a0  31 2c 22 49 74 65 6d 20  74 69 63 6b 20 65 72 72  |1,"Item tick err|
000110b0  6f 72 2e 20 4f 75 74 20  6f 66 20 72 61 6e 67 65  |or. Out of range|
000110c0  20 6d 65 6e 75 20 6e 75  6d 62 65 72 21 22 0d 6e  | menu number!".n|
000110d0  8c 05 cd 0d 6e 96 31 e7  20 69 74 65 6d 25 3c 30  |....n.1. item%<0|
000110e0  20 84 20 69 74 65 6d 25  3e a4 69 74 65 6d 5f 63  | . item%>.item_c|
000110f0  6f 75 6e 74 28 6d 65 6e  75 25 28 6d 65 6e 75 25  |ount(menu%(menu%|
00011100  29 29 20 8c 0d 6e a0 36  85 20 32 30 31 2c 22 49  |)) ..n.6. 201,"I|
00011110  74 65 6d 20 74 69 63 6b  20 65 72 72 6f 72 2e 20  |tem tick error. |
00011120  4f 75 74 20 6f 66 20 72  61 6e 67 65 20 69 74 65  |Out of range ite|
00011130  6d 20 6e 75 6d 62 65 72  21 22 0d 6e aa 05 cd 0d  |m number!".n....|
00011140  6e b4 2b 66 6c 61 67 61  64 64 72 65 73 73 25 3d  |n.+flagaddress%=|
00011150  6d 65 6e 75 25 28 6d 65  6e 75 25 29 2b 32 38 2b  |menu%(menu%)+28+|
00011160  28 32 34 2a 69 74 65 6d  25 29 0d 6e be 1f e7 20  |(24*item%).n... |
00011170  74 69 63 6b 25 3d b9 20  74 69 63 6b 25 3d 31 20  |tick%=. tick%=1 |
00011180  8b 20 74 69 63 6b 25 3d  30 0d 6e c8 35 21 66 6c  |. tick%=0.n.5!fl|
00011190  61 67 61 64 64 72 65 73  73 25 3d 28 21 66 6c 61  |agaddress%=(!fla|
000111a0  67 61 64 64 72 65 73 73  25 20 80 20 26 46 46 46  |gaddress% . &FFF|
000111b0  46 46 46 46 45 29 20 84  20 74 69 63 6b 25 0d 6e  |FFFFE) . tick%.n|
000111c0  d2 05 e1 0d 6e dc 22 dd  a4 67 65 74 5f 73 74 72  |....n."..get_str|
000111d0  69 6e 67 28 70 6f 69 6e  74 65 72 25 2c 6c 65 6e  |ing(pointer%,len|
000111e0  67 74 68 25 29 0d 6e e6  0b ea 20 74 65 6d 70 24  |gth%).n... temp$|
000111f0  0d 6e f0 1b e7 20 6c 65  6e 67 74 68 25 3d 30 20  |.n... length%=0 |
00011200  6c 65 6e 67 74 68 25 3d  32 35 35 0d 6e fa 2c e3  |length%=255.n.,.|
00011210  20 70 6f 69 6e 74 65 72  25 3d 70 6f 69 6e 74 65  | pointer%=pointe|
00011220  72 25 20 b8 20 70 6f 69  6e 74 65 72 25 2b 6c 65  |r% . pointer%+le|
00011230  6e 67 74 68 25 2d 31 0d  6f 04 14 e7 20 3f 70 6f  |ngth%-1.o... ?po|
00011240  69 6e 74 65 72 25 3c 33  32 20 8c 0d 6f 0e 0a 3d  |inter%<32 ..o..=|
00011250  74 65 6d 70 24 0d 6f 18  05 cc 0d 6f 22 17 74 65  |temp$.o....o".te|
00011260  6d 70 24 2b 3d bd 28 3f  70 6f 69 6e 74 65 72 25  |mp$+=.(?pointer%|
00011270  29 0d 6f 2c 05 cd 0d 6f  36 05 ed 0d 6f 40 0a 3d  |).o,...o6...o@.=|
00011280  74 65 6d 70 24 0d 6f 4a  12 dd a4 68 65 78 28 6e  |temp$.oJ...hex(n|
00011290  75 6d 62 65 72 25 29 0d  6f 54 0a ea 20 68 65 78  |umber%).oT.. hex|
000112a0  24 0d 6f 5e 35 c8 99 22  4f 53 5f 43 6f 6e 76 65  |$.o^5.."OS_Conve|
000112b0  72 74 48 65 78 38 22 2c  6e 75 6d 62 65 72 25 2c  |rtHex8",number%,|
000112c0  22 30 30 30 30 30 30 30  30 30 30 22 2c 31 30 20  |"0000000000",10 |
000112d0  b8 20 68 65 78 24 0d 6f  68 23 c8 95 20 c0 68 65  |. hex$.oh#.. .he|
000112e0  78 24 2c 31 29 3d 22 30  22 3a 68 65 78 24 3d c1  |x$,1)="0":hex$=.|
000112f0  68 65 78 24 2c 32 29 3a  ce 0d 6f 72 16 e7 20 68  |hex$,2):..or.. h|
00011300  65 78 24 3d 22 22 20 68  65 78 24 3d 22 30 22 0d  |ex$="" hex$="0".|
00011310  6f 7c 09 3d 68 65 78 24  0d 6f 86 11 dd a4 6c 65  |o|.=hex$.o....le|
00011320  61 66 28 70 61 74 68 24  29 0d 6f 90 30 c8 95 20  |af(path$).o.0.. |
00011330  a7 70 61 74 68 24 2c 22  2e 22 29 3a 70 61 74 68  |.path$,"."):path|
00011340  24 3d c1 70 61 74 68 24  2c a7 70 61 74 68 24 2c  |$=.path$,.path$,|
00011350  22 2e 22 29 2b 31 29 3a  ce 0d 6f 9a 0a 3d 70 61  |".")+1):..o..=pa|
00011360  74 68 24 0d 6f a4 14 dd  a4 72 65 61 73 6f 6e 28  |th$.o....reason(|
00011370  65 76 65 6e 74 25 29 0d  6f ae 0d ea 20 72 65 61  |event%).o... rea|
00011380  73 6f 6e 24 0d 6f b8 0f  c8 8e 20 65 76 65 6e 74  |son$.o.... event|
00011390  25 20 ca 0d 6f c2 22 c9  20 30 3a 72 65 61 73 6f  |% ..o.". 0:reaso|
000113a0  6e 24 3d 22 4e 75 6c 6c  20 72 65 61 73 6f 6e 20  |n$="Null reason |
000113b0  63 6f 64 65 22 0d 6f cc  27 c9 20 31 3a 72 65 61  |code".o.'. 1:rea|
000113c0  73 6f 6e 24 3d 22 52 65  64 72 61 77 20 77 69 6e  |son$="Redraw win|
000113d0  64 6f 77 20 72 65 71 75  65 73 74 22 0d 6f d6 25  |dow request".o.%|
000113e0  c9 20 32 3a 72 65 61 73  6f 6e 24 3d 22 4f 70 65  |. 2:reason$="Ope|
000113f0  6e 20 77 69 6e 64 6f 77  20 72 65 71 75 65 73 74  |n window request|
00011400  22 0d 6f e0 26 c9 20 33  3a 72 65 61 73 6f 6e 24  |".o.&. 3:reason$|
00011410  3d 22 43 6c 6f 73 65 20  77 69 6e 64 6f 77 20 72  |="Close window r|
00011420  65 71 75 65 73 74 22 0d  6f ea 28 c9 20 34 3a 72  |equest".o.(. 4:r|
00011430  65 61 73 6f 6e 24 3d 22  50 6f 69 6e 74 65 72 20  |eason$="Pointer |
00011440  6c 65 61 76 69 6e 67 20  77 69 6e 64 6f 77 22 0d  |leaving window".|
00011450  6f f4 29 c9 20 35 3a 72  65 61 73 6f 6e 24 3d 22  |o.). 5:reason$="|
00011460  50 6f 69 6e 74 65 72 20  65 6e 74 65 72 69 6e 67  |Pointer entering|
00011470  20 77 69 6e 64 6f 77 22  0d 6f fe 26 c9 20 36 3a  | window".o.&. 6:|
00011480  72 65 61 73 6f 6e 24 3d  22 4d 6f 75 73 65 20 62  |reason$="Mouse b|
00011490  75 74 74 6f 6e 20 70 72  65 73 73 65 64 22 0d 70  |utton pressed".p|
000114a0  08 29 c9 20 37 3a 72 65  61 73 6f 6e 24 3d 22 44  |.). 7:reason$="D|
000114b0  72 61 67 20 68 61 73 20  62 65 65 6e 20 63 6f 6d  |rag has been com|
000114c0  70 6c 65 74 65 64 22 0d  70 12 1d c9 20 38 3a 72  |pleted".p... 8:r|
000114d0  65 61 73 6f 6e 24 3d 22  4b 65 79 20 70 72 65 73  |eason$="Key pres|
000114e0  73 65 64 22 0d 70 1c 20  c9 20 39 3a 72 65 61 73  |sed".p. . 9:reas|
000114f0  6f 6e 24 3d 22 4d 65 6e  75 20 73 65 6c 65 63 74  |on$="Menu select|
00011500  69 6f 6e 22 0d 70 26 20  c9 31 30 3a 72 65 61 73  |ion".p& .10:reas|
00011510  6f 6e 24 3d 22 53 63 72  6f 6c 6c 20 72 65 71 75  |on$="Scroll requ|
00011520  65 73 74 22 0d 70 30 1d  c9 31 31 3a 72 65 61 73  |est".p0..11:reas|
00011530  6f 6e 24 3d 22 4c 6f 6f  73 65 20 63 61 72 65 74  |on$="Loose caret|
00011540  22 0d 70 3a 1c c9 31 32  3a 72 65 61 73 6f 6e 24  |".p:..12:reason$|
00011550  3d 22 47 61 69 6e 20 63  61 72 65 74 22 0d 70 44  |="Gain caret".pD|
00011560  1e c9 31 37 3a 72 65 61  73 6f 6e 24 3d 22 55 73  |..17:reason$="Us|
00011570  65 72 20 6d 65 73 73 61  67 65 22 0d 70 4e 22 c9  |er message".pN".|
00011580  31 38 3a 72 65 61 73 6f  6e 24 3d 22 4d 65 73 73  |18:reason$="Mess|
00011590  61 67 65 20 72 65 63 6f  72 64 65 64 22 0d 70 58  |age recorded".pX|
000115a0  2a c9 31 39 3a 72 65 61  73 6f 6e 24 3d 22 55 73  |*.19:reason$="Us|
000115b0  65 72 20 6d 65 73 73 61  67 65 20 61 63 6b 6e 6f  |er message ackno|
000115c0  77 6c 65 64 67 65 22 0d  70 62 05 cb 0d 70 6c 0c  |wledge".pb...pl.|
000115d0  3d 72 65 61 73 6f 6e 24  0d 70 76 23 dd f2 72 65  |=reason$.pv#..re|
000115e0  70 6f 72 74 5f 65 72 72  6f 72 28 6d 65 73 73 61  |port_error(messa|
000115f0  67 65 24 2c 74 69 74 6c  65 24 29 0d 70 80 24 6d  |ge$,title$).p.$m|
00011600  65 73 73 61 67 65 24 3d  bd 30 2b bd 30 2b bd 30  |essage$=.0+.0+.0|
00011610  2b bd 30 2b 6d 65 73 73  61 67 65 24 2b bd 30 0d  |+.0+message$+.0.|
00011620  70 8a 2c c8 99 20 22 57  69 6d 70 5f 52 65 70 6f  |p.,.. "Wimp_Repo|
00011630  72 74 45 72 72 6f 72 22  2c 6d 65 73 73 61 67 65  |rtError",message|
00011640  24 2c 31 38 2c 74 69 74  6c 65 24 0d 70 94 05 e1  |$,18,title$.p...|
00011650  0d 70 9e 21 dd f2 73 68  6f 77 5f 76 61 6c 75 65  |.p.!..show_value|
00011660  28 6c 69 6e 65 25 2c 76  61 72 69 61 62 6c 65 24  |(line%,variable$|
00011670  29 0d 70 a8 11 6c 69 6e  65 25 3d 6c 69 6e 65 25  |).p..line%=line%|
00011680  83 34 0d 70 b2 17 e7 20  a7 76 61 72 69 61 62 6c  |.4.p... .variabl|
00011690  65 24 2c 22 24 22 29 20  8c 0d 70 bc 1f 76 61 72  |e$,"$") ..p..var|
000116a0  69 61 62 6c 65 24 2b 3d  22 3d 22 2b a0 28 76 61  |iable$+="="+.(va|
000116b0  72 69 61 62 6c 65 24 29  0d 70 c6 05 cc 0d 70 d0  |riable$).p....p.|
000116c0  17 e7 20 a7 76 61 72 69  61 62 6c 65 24 2c 22 20  |.. .variable$," |
000116d0  22 29 20 8c 0d 70 da 05  cc 0d 70 e4 22 76 61 72  |") ..p....p."var|
000116e0  69 61 62 6c 65 24 2b 3d  22 3d 22 2b c3 28 a0 28  |iable$+="="+.(.(|
000116f0  76 61 72 69 61 62 6c 65  24 29 29 0d 70 ee 05 cd  |variable$)).p...|
00011700  0d 70 f8 05 cd 0d 71 02  34 f2 70 75 74 5f 69 63  |.p....q.4.put_ic|
00011710  6f 6e 5f 74 65 78 74 28  73 68 6f 77 5f 76 61 6c  |on_text(show_val|
00011720  75 65 25 2c 6c 69 6e 65  25 2c c0 76 61 72 69 61  |ue%,line%,.varia|
00011730  62 6c 65 24 2c 33 35 29  29 0d 71 0c 1d f2 6f 70  |ble$,35)).q...op|
00011740  65 6e 5f 77 69 6e 64 6f  77 28 73 68 6f 77 5f 76  |en_window(show_v|
00011750  61 6c 75 65 25 29 0d 71  16 05 e1 0d 71 20 35 dd  |alue%).q....q 5.|
00011760  20 f2 73 68 61 64 65 5f  69 63 6f 6e 28 77 69 6e  | .shade_icon(win|
00011770  64 6f 77 5f 68 61 6e 64  6c 65 25 2c 69 63 6f 6e  |dow_handle%,icon|
00011780  5f 68 61 6e 64 6c 65 25  2c 73 68 61 64 65 25 29  |_handle%,shade%)|
00011790  0d 71 2a 1f 20 74 65 6d  70 5f 62 6c 6b 25 21 30  |.q*. temp_blk%!0|
000117a0  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
000117b0  71 34 1d 20 74 65 6d 70  5f 62 6c 6b 25 21 34 3d  |q4. temp_blk%!4=|
000117c0  69 63 6f 6e 5f 68 61 6e  64 6c 65 25 0d 71 3e 17  |icon_handle%.q>.|
000117d0  20 74 65 6d 70 5f 62 6c  6b 25 21 31 32 3d 31 3c  | temp_blk%!12=1<|
000117e0  3c 32 32 0d 71 48 30 20  e7 20 73 68 61 64 65 25  |<22.qH0 . shade%|
000117f0  20 74 65 6d 70 5f 62 6c  6b 25 21 38 3d 31 3c 3c  | temp_blk%!8=1<<|
00011800  32 32 20 8b 20 74 65 6d  70 5f 62 6c 6b 25 21 38  |22 . temp_blk%!8|
00011810  3d 30 3a 0d 71 52 25 20  c8 99 22 57 69 6d 70 5f  |=0:.qR% .."Wimp_|
00011820  53 65 74 49 63 6f 6e 53  74 61 74 65 22 2c 2c 74  |SetIconState",,t|
00011830  65 6d 70 5f 62 6c 6b 25  0d 71 5c 05 e1 0d 71 66  |emp_blk%.q\...qf|
00011840  1f dd a4 73 79 73 74 65  6d 5f 76 61 72 69 61 62  |...system_variab|
00011850  6c 65 28 73 79 73 5f 76  61 72 24 29 0d 71 70 0d  |le(sys_var$).qp.|
00011860  ea 20 6c 65 6e 67 74 68  25 0d 71 7a 3d c8 99 22  |. length%.qz=.."|
00011870  58 4f 53 5f 52 65 61 64  56 61 72 56 61 6c 22 2c  |XOS_ReadVarVal",|
00011880  73 79 73 5f 76 61 72 24  2b bd 28 30 29 2c 74 65  |sys_var$+.(0),te|
00011890  6d 70 5f 62 6c 6b 25 2c  2d 31 20 b8 20 2c 2c 6c  |mp_blk%,-1 . ,,l|
000118a0  65 6e 67 74 68 25 0d 71  84 41 e7 20 6c 65 6e 67  |ength%.q.A. leng|
000118b0  74 68 25 3d 30 20 85 20  a2 20 30 2c 22 53 79 73  |th%=0 . . 0,"Sys|
000118c0  74 65 6d 20 76 61 72 69  61 62 6c 65 20 27 22 2b  |tem variable '"+|
000118d0  73 79 73 5f 76 61 72 24  2b 22 27 20 6e 6f 74 20  |sys_var$+"' not |
000118e0  66 6f 75 6e 64 21 22 0d  71 8e 41 c8 99 22 58 4f  |found!".q.A.."XO|
000118f0  53 5f 52 65 61 64 56 61  72 56 61 6c 22 2c 73 79  |S_ReadVarVal",sy|
00011900  73 5f 76 61 72 24 2b bd  28 30 29 2c 74 65 6d 70  |s_var$+.(0),temp|
00011910  5f 62 6c 6b 25 2c 32 35  35 2c 2c 33 20 b8 20 2c  |_blk%,255,,3 . ,|
00011920  2c 6c 65 6e 67 74 68 25  0d 71 98 1b 3f 28 74 65  |,length%.q..?(te|
00011930  6d 70 5f 62 6c 6b 25 2b  6c 65 6e 67 74 68 25 29  |mp_blk%+length%)|
00011940  3d 31 33 0d 71 a2 0f 3d  24 74 65 6d 70 5f 62 6c  |=13.q..=$temp_bl|
00011950  6b 25 0d 71 ac 31 dd f2  63 68 61 6e 67 65 5f 70  |k%.q.1..change_p|
00011960  6f 69 6e 74 65 72 28 73  70 72 69 74 65 73 25 2c  |ointer(sprites%,|
00011970  73 70 72 69 74 65 5f 6e  61 6d 65 24 2c 78 25 2c  |sprite_name$,x%,|
00011980  79 25 29 0d 71 b6 36 c8  99 22 4f 53 5f 53 70 72  |y%).q.6.."OS_Spr|
00011990  69 74 65 4f 70 22 2c 26  31 32 34 2c 73 70 72 69  |iteOp",&124,spri|
000119a0  74 65 73 25 2c 73 70 72  69 74 65 5f 6e 61 6d 65  |tes%,sprite_name|
000119b0  24 2c 32 2c 78 25 2c 79  25 0d 71 c0 11 74 65 6d  |$,2,x%,y%.q..tem|
000119c0  70 5f 62 6c 6b 25 3f 30  3d 31 0d 71 ca 12 74 65  |p_blk%?0=1.q..te|
000119d0  6d 70 5f 62 6c 6b 25 3f  31 3d 32 35 0d 71 d4 13  |mp_blk%?1=25.q..|
000119e0  74 65 6d 70 5f 62 6c 6b  25 3f 32 3d 26 46 46 0d  |temp_blk%?2=&FF.|
000119f0  71 de 13 74 65 6d 70 5f  62 6c 6b 25 3f 33 3d 26  |q..temp_blk%?3=&|
00011a00  42 42 0d 71 e8 13 74 65  6d 70 5f 62 6c 6b 25 3f  |BB.q..temp_blk%?|
00011a10  34 3d 26 42 42 0d 71 f2  1c c8 99 22 4f 53 5f 57  |4=&BB.q...."OS_W|
00011a20  6f 72 64 22 2c 31 32 2c  74 65 6d 70 5f 62 6c 6b  |ord",12,temp_blk|
00011a30  25 0d 71 fc 11 74 65 6d  70 5f 62 6c 6b 25 3f 30  |%.q..temp_blk%?0|
00011a40  3d 32 0d 72 06 13 74 65  6d 70 5f 62 6c 6b 25 3f  |=2.r..temp_blk%?|
00011a50  32 3d 26 35 35 0d 72 10  13 74 65 6d 70 5f 62 6c  |2=&55.r..temp_bl|
00011a60  6b 25 3f 33 3d 26 35 35  0d 72 1a 13 74 65 6d 70  |k%?3=&55.r..temp|
00011a70  5f 62 6c 6b 25 3f 34 3d  26 35 35 0d 72 24 1c c8  |_blk%?4=&55.r$..|
00011a80  99 22 4f 53 5f 57 6f 72  64 22 2c 31 32 2c 74 65  |."OS_Word",12,te|
00011a90  6d 70 5f 62 6c 6b 25 0d  72 2e 0e 2a 50 4f 49 4e  |mp_blk%.r..*POIN|
00011aa0  54 45 52 20 32 0d 72 38  05 e1 0d 72 42 15 dd f2  |TER 2.r8...rB...|
00011ab0  72 65 73 74 6f 72 65 5f  70 6f 69 6e 74 65 72 0d  |restore_pointer.|
00011ac0  72 4c 0e 2a 50 4f 49 4e  54 45 52 20 31 0d 72 56  |rL.*POINTER 1.rV|
00011ad0  05 e1 0d 72 60 32 dd a4  67 65 74 5f 73 70 72 69  |...r`2..get_spri|
00011ae0  74 65 5f 6e 61 6d 65 28  77 69 6e 64 6f 77 5f 68  |te_name(window_h|
00011af0  61 6e 64 6c 65 25 2c 69  63 6f 6e 5f 68 61 6e 64  |andle%,icon_hand|
00011b00  6c 65 25 29 0d 72 6a 0b  ea 20 74 65 6d 70 24 0d  |le%).rj.. temp$.|
00011b10  72 74 1e 74 65 6d 70 5f  62 6c 6b 25 21 30 3d 77  |rt.temp_blk%!0=w|
00011b20  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 0d 72 7e  |indow_handle%.r~|
00011b30  1c 74 65 6d 70 5f 62 6c  6b 25 21 34 3d 69 63 6f  |.temp_blk%!4=ico|
00011b40  6e 5f 68 61 6e 64 6c 65  25 0d 72 88 24 c8 99 22  |n_handle%.r.$.."|
00011b50  57 69 6d 70 5f 47 65 74  49 63 6f 6e 53 74 61 74  |Wimp_GetIconStat|
00011b60  65 22 2c 2c 74 65 6d 70  5f 62 6c 6b 25 0d 72 92  |e",,temp_blk%.r.|
00011b70  1e c8 8e 20 28 74 65 6d  70 5f 62 6c 6b 25 21 32  |... (temp_blk%!2|
00011b80  34 20 80 20 26 31 30 33  29 20 ca 0d 72 9c 0f c9  |4 . &103) ..r...|
00011b90  20 26 30 30 32 2c 26 30  30 33 0d 72 a6 22 3d a4  | &002,&003.r."=.|
00011ba0  67 65 74 5f 73 74 72 69  6e 67 28 74 65 6d 70 5f  |get_string(temp_|
00011bb0  62 6c 6b 25 21 32 38 2c  32 35 36 29 0d 72 b0 0a  |blk%!28,256).r..|
00011bc0  c9 20 26 31 30 32 0d 72  ba 16 e7 20 74 65 6d 70  |. &102.r... temp|
00011bd0  5f 62 6c 6b 25 21 33 36  3e 30 20 8c 0d 72 c4 2b  |_blk%!36>0 ..r.+|
00011be0  3d a4 67 65 74 5f 73 74  72 69 6e 67 28 74 65 6d  |=.get_string(tem|
00011bf0  70 5f 62 6c 6b 25 21 32  38 2c 74 65 6d 70 5f 62  |p_blk%!28,temp_b|
00011c00  6c 6b 25 21 33 36 29 0d  72 ce 05 cc 0d 72 d8 31  |lk%!36).r....r.1|
00011c10  85 20 32 30 32 2c 22 4e  6f 20 73 70 72 69 74 65  |. 202,"No sprite|
00011c20  20 6e 61 6d 65 20 69 6e  20 69 63 6f 6e 20 22 2b  | name in icon "+|
00011c30  c3 69 63 6f 6e 5f 68 61  6e 64 6c 65 25 0d 72 e2  |.icon_handle%.r.|
00011c40  07 3d 22 22 0d 72 ec 05  cd 0d 72 f6 0a c9 20 26  |.="".r....r... &|
00011c50  31 30 33 0d 73 00 2f 3d  c1 a4 67 65 74 5f 73 74  |103.s./=..get_st|
00011c60  72 69 6e 67 28 74 65 6d  70 5f 62 6c 6b 25 21 33  |ring(temp_blk%!3|
00011c70  32 2c 74 65 6d 70 5f 62  6c 6b 25 21 33 36 29 2c  |2,temp_blk%!36),|
00011c80  32 29 0d 73 0a 05 7f 0d  73 14 31 85 20 32 30 32  |2).s....s.1. 202|
00011c90  2c 22 4e 6f 20 73 70 72  69 74 65 20 6e 61 6d 65  |,"No sprite name|
00011ca0  20 69 6e 20 69 63 6f 6e  20 22 2b c3 69 63 6f 6e  | in icon "+.icon|
00011cb0  5f 68 61 6e 64 6c 65 25  0d 73 1e 07 3d 22 22 0d  |_handle%.s..="".|
00011cc0  73 28 05 cb 0d 73 32 0a  3d 74 65 6d 70 24 0d 73  |s(...s2.=temp$.s|
00011cd0  3c 33 dd a4 69 63 6f 6e  5f 73 70 72 69 74 65 5f  |<3..icon_sprite_|
00011ce0  74 79 70 65 28 77 69 6e  64 6f 77 5f 68 61 6e 64  |type(window_hand|
00011cf0  6c 65 25 2c 69 63 6f 6e  5f 68 61 6e 64 6c 65 25  |le%,icon_handle%|
00011d00  29 0d 73 46 3d 3d a0 28  22 26 22 2b c2 a4 67 65  |).sF==.("&"+..ge|
00011d10  74 5f 73 70 72 69 74 65  5f 6e 61 6d 65 28 77 69  |t_sprite_name(wi|
00011d20  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 2c 69 63 6f  |ndow_handle%,ico|
00011d30  6e 5f 68 61 6e 64 6c 65  25 29 2c 33 29 29 0d 73  |n_handle%),3)).s|
00011d40  50 19 dd a4 6c 6f 61 64  5f 73 70 72 69 74 65 73  |P...load_sprites|
00011d50  28 66 69 6c 65 24 29 0d  73 5a 14 ea 20 73 70 72  |(file$).sZ.. spr|
00011d60  69 74 65 73 25 2c 73 69  7a 65 25 0d 73 64 1e 73  |ites%,size%.sd.s|
00011d70  69 7a 65 25 3d a4 66 69  6c 65 5f 73 69 7a 65 28  |ize%=.file_size(|
00011d80  66 69 6c 65 24 29 2b 31  36 0d 73 6e 14 de 20 73  |file$)+16.sn.. s|
00011d90  70 72 69 74 65 73 25 20  73 69 7a 65 25 0d 73 78  |prites% size%.sx|
00011da0  14 73 70 72 69 74 65 73  25 21 30 3d 73 69 7a 65  |.sprites%!0=size|
00011db0  25 0d 73 82 11 73 70 72  69 74 65 73 25 21 38 3d  |%.s..sprites%!8=|
00011dc0  31 36 0d 73 8c 28 c8 99  22 4f 53 5f 53 70 72 69  |16.s.(.."OS_Spri|
00011dd0  74 65 4f 70 22 2c 26 31  30 41 2c 73 70 72 69 74  |teOp",&10A,sprit|
00011de0  65 73 25 2c 66 69 6c 65  24 3a 0d 73 96 0d 3d 73  |es%,file$:.s..=s|
00011df0  70 72 69 74 65 73 25 0d  73 a0 42 dd a4 6e 65 77  |prites%.s.B..new|
00011e00  5f 74 65 6d 70 6c 61 74  65 28 74 65 6d 70 6c 61  |_template(templa|
00011e10  74 65 5f 66 69 6c 65 24  2c 77 69 6e 64 6f 77 5f  |te_file$,window_|
00011e20  6e 61 6d 65 24 2c f8 20  6d 65 6d 66 72 65 65 25  |name$,. memfree%|
00011e30  2c 6d 65 6d 65 6e 64 25  29 0d 73 aa 14 ea 20 77  |,memend%).s... w|
00011e40  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 0d 73 b4  |indow_handle%.s.|
00011e50  29 c8 99 22 57 69 6d 70  5f 4f 70 65 6e 54 65 6d  |).."Wimp_OpenTem|
00011e60  70 6c 61 74 65 22 2c 2c  74 65 6d 70 6c 61 74 65  |plate",,template|
00011e70  5f 66 69 6c 65 24 0d 73  be 3b 77 69 6e 64 6f 77  |_file$.s.;window|
00011e80  5f 68 61 6e 64 6c 65 25  3d a4 74 65 6d 70 6c 61  |_handle%=.templa|
00011e90  74 65 28 77 69 6e 64 6f  77 5f 6e 61 6d 65 24 2c  |te(window_name$,|
00011ea0  6d 65 6d 66 72 65 65 25  2c 6d 65 6d 65 6e 64 25  |memfree%,memend%|
00011eb0  29 0d 73 c8 1b c8 99 20  22 57 69 6d 70 5f 43 6c  |).s.... "Wimp_Cl|
00011ec0  6f 73 65 54 65 6d 70 6c  61 74 65 22 0d 73 d2 13  |oseTemplate".s..|
00011ed0  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
00011ee0  73 dc 28 dd a4 74 65 6d  70 6c 61 74 65 28 77 69  |s.(..template(wi|
00011ef0  6e 64 6f 77 5f 6e 61 6d  65 24 2c f8 20 70 74 72  |ndow_name$,. ptr|
00011f00  25 2c 65 6e 64 25 29 0d  73 e6 1b ea 20 66 6f 75  |%,end%).s... fou|
00011f10  6e 64 25 2c 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  |nd%,window_handl|
00011f20  65 25 0d 73 f0 4e c8 99  22 57 69 6d 70 5f 4c 6f  |e%.s.N.."Wimp_Lo|
00011f30  61 64 54 65 6d 70 6c 61  74 65 22 2c 2c 62 6c 6b  |adTemplate",,blk|
00011f40  25 2c 70 74 72 25 2c 65  6e 64 25 2c 2d 31 2c 77  |%,ptr%,end%,-1,w|
00011f50  69 6e 64 6f 77 5f 6e 61  6d 65 24 2c 30 20 b8 20  |indow_name$,0 . |
00011f60  2c 2c 70 74 72 25 2c 2c  2c 2c 66 6f 75 6e 64 25  |,,ptr%,,,,found%|
00011f70  0d 73 fa 0e e7 20 66 6f  75 6e 64 25 20 8c 0d 74  |.s... found% ..t|
00011f80  04 31 c8 99 20 22 57 69  6d 70 5f 43 72 65 61 74  |.1.. "Wimp_Creat|
00011f90  65 57 69 6e 64 6f 77 22  2c 2c 62 6c 6b 25 20 b8  |eWindow",,blk% .|
00011fa0  20 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  | window_handle%.|
00011fb0  74 0e 05 cc 0d 74 18 3f  85 20 a2 20 30 2c 22 57  |t....t.?. . 0,"W|
00011fc0  69 6e 64 6f 77 20 22 2b  77 69 6e 64 6f 77 5f 6e  |indow "+window_n|
00011fd0  61 6d 65 24 2b 22 20 6e  6f 74 20 66 6f 75 6e 64  |ame$+" not found|
00011fe0  20 69 6e 20 74 65 6d 70  6c 61 74 65 20 66 69 6c  | in template fil|
00011ff0  65 21 22 0d 74 22 14 77  69 6e 64 6f 77 5f 68 61  |e!".t".window_ha|
00012000  6e 64 6c 65 25 3d 30 0d  74 2c 05 cd 0d 74 36 13  |ndle%=0.t,...t6.|
00012010  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
00012020  74 40 44 dd a4 61 64 64  5f 69 63 6f 6e 28 74 79  |t@D..add_icon(ty|
00012030  70 65 24 2c 74 65 78 74  24 2c 77 69 6e 64 6f 77  |pe$,text$,window|
00012040  5f 68 61 6e 64 6c 65 25  2c 78 25 2c 79 25 2c 73  |_handle%,x%,y%,s|
00012050  6c 25 2c 65 73 67 5f 73  70 25 2c 62 6f 72 64 65  |l%,esg_sp%,borde|
00012060  72 25 29 0d 74 4a 29 dd  f2 63 68 61 6e 67 65 5f  |r%).tJ)..change_|
00012070  65 78 74 65 6e 74 28 77  69 6e 64 6f 77 5f 68 61  |extent(window_ha|
00012080  6e 64 6c 65 25 2c 78 25  2c 79 25 29 0d 74 54 37  |ndle%,x%,y%).tT7|
00012090  ea 20 6d 69 6e 5f 78 25  2c 6d 69 6e 5f 79 25 2c  |. min_x%,min_y%,|
000120a0  6d 61 78 5f 78 25 2c 6d  61 78 5f 79 25 2c 6d 61  |max_x%,max_y%,ma|
000120b0  78 5f 76 69 73 5f 78 25  2c 6d 69 6e 5f 76 69 73  |x_vis_x%,min_vis|
000120c0  5f 79 25 0d 74 5e 1d 21  74 65 6d 70 5f 62 6c 6b  |_y%.t^.!temp_blk|
000120d0  25 3d 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |%=window_handle%|
000120e0  0d 74 68 26 c8 99 20 22  57 69 6d 70 5f 47 65 74  |.th&.. "Wimp_Get|
000120f0  57 69 6e 64 6f 77 49 6e  66 6f 22 2c 2c 74 65 6d  |WindowInfo",,tem|
00012100  70 5f 62 6c 6b 25 0d 74  72 17 6d 69 6e 5f 78 25  |p_blk%.tr.min_x%|
00012110  3d 74 65 6d 70 5f 62 6c  6b 25 21 34 34 0d 74 7c  |=temp_blk%!44.t||
00012120  12 6d 69 6e 5f 79 25 3d  79 25 2d 79 25 83 34 0d  |.min_y%=y%-y%.4.|
00012130  74 86 12 6d 61 78 5f 78  25 3d 78 25 2d 78 25 83  |t..max_x%=x%-x%.|
00012140  32 0d 74 90 17 6d 61 78  5f 79 25 3d 74 65 6d 70  |2.t..max_y%=temp|
00012150  5f 62 6c 6b 25 21 35 36  0d 74 9a 34 6d 61 78 5f  |_blk%!56.t.4max_|
00012160  76 69 73 5f 78 25 3d 74  65 6d 70 5f 62 6c 6b 25  |vis_x%=temp_blk%|
00012170  21 32 30 2b 74 65 6d 70  5f 62 6c 6b 25 21 31 32  |!20+temp_blk%!12|
00012180  2d 74 65 6d 70 5f 62 6c  6b 25 21 34 0d 74 a4 34  |-temp_blk%!4.t.4|
00012190  6d 69 6e 5f 76 69 73 5f  79 25 3d 74 65 6d 70 5f  |min_vis_y%=temp_|
000121a0  62 6c 6b 25 21 32 34 2d  74 65 6d 70 5f 62 6c 6b  |blk%!24-temp_blk|
000121b0  25 21 31 36 2b 74 65 6d  70 5f 62 6c 6b 25 21 38  |%!16+temp_blk%!8|
000121c0  0d 74 ae 29 e7 20 6d 69  6e 5f 79 25 3e 6d 69 6e  |.t.). min_y%>min|
000121d0  5f 76 69 73 5f 79 25 20  6d 69 6e 5f 79 25 3d 6d  |_vis_y% min_y%=m|
000121e0  69 6e 5f 76 69 73 5f 79  25 0d 74 b8 29 e7 20 6d  |in_vis_y%.t.). m|
000121f0  61 78 5f 76 69 73 5f 78  25 3e 6d 61 78 5f 78 25  |ax_vis_x%>max_x%|
00012200  20 6d 61 78 5f 78 25 3d  6d 61 78 5f 76 69 73 5f  | max_x%=max_vis_|
00012210  78 25 0d 74 c2 16 74 65  6d 70 5f 62 6c 6b 25 21  |x%.t..temp_blk%!|
00012220  30 3d 6d 69 6e 5f 78 25  0d 74 cc 16 74 65 6d 70  |0=min_x%.t..temp|
00012230  5f 62 6c 6b 25 21 34 3d  6d 69 6e 5f 79 25 0d 74  |_blk%!4=min_y%.t|
00012240  d6 16 74 65 6d 70 5f 62  6c 6b 25 21 38 3d 6d 61  |..temp_blk%!8=ma|
00012250  78 5f 78 25 0d 74 e0 17  74 65 6d 70 5f 62 6c 6b  |x_x%.t..temp_blk|
00012260  25 21 31 32 3d 6d 61 78  5f 79 25 0d 74 ea 2f c8  |%!12=max_y%.t./.|
00012270  99 22 57 69 6d 70 5f 53  65 74 45 78 74 65 6e 74  |."Wimp_SetExtent|
00012280  22 2c 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |",window_handle%|
00012290  2c 74 65 6d 70 5f 62 6c  6b 25 0d 74 f4 05 e1 0d  |,temp_blk%.t....|
000122a0  74 fe 04 0d 75 08 23 dd  20 f2 63 6c 6f 73 65 5f  |t...u.#. .close_|
000122b0  77 69 6e 64 6f 77 28 77  69 6e 64 6f 77 5f 68 61  |window(window_ha|
000122c0  6e 64 6c 65 25 29 0d 75  12 1d 21 74 65 6d 70 5f  |ndle%).u..!temp_|
000122d0  62 6c 6b 25 3d 77 69 6e  64 6f 77 5f 68 61 6e 64  |blk%=window_hand|
000122e0  6c 65 25 0d 75 1c 24 c8  99 20 22 57 69 6d 70 5f  |le%.u.$.. "Wimp_|
000122f0  43 6c 6f 73 65 57 69 6e  64 6f 77 22 2c 2c 74 65  |CloseWindow",,te|
00012300  6d 70 5f 62 6c 6b 25 0d  75 26 05 e1 0d 75 30 04  |mp_blk%.u&...u0.|
00012310  0d 75 3a 04 0d 75 44 24  dd 20 f2 64 65 6c 65 74  |.u:..uD$. .delet|
00012320  65 5f 77 69 6e 64 6f 77  28 77 69 6e 64 6f 77 5f  |e_window(window_|
00012330  68 61 6e 64 6c 65 25 29  0d 75 4e 1d 21 74 65 6d  |handle%).uN.!tem|
00012340  70 5f 62 6c 6b 25 3d 77  69 6e 64 6f 77 5f 68 61  |p_blk%=window_ha|
00012350  6e 64 6c 65 25 0d 75 58  25 c8 99 20 22 57 69 6d  |ndle%.uX%.. "Wim|
00012360  70 5f 44 65 6c 65 74 65  57 69 6e 64 6f 77 22 2c  |p_DeleteWindow",|
00012370  2c 74 65 6d 70 5f 62 6c  6b 25 0d 75 62 05 e1 0d  |,temp_blk%.ub...|
00012380  75 6c 22 dd 20 f2 6f 70  65 6e 5f 77 69 6e 64 6f  |ul". .open_windo|
00012390  77 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |w(window_handle%|
000123a0  29 0d 75 76 21 f2 63 6c  6f 73 65 5f 77 69 6e 64  |).uv!.close_wind|
000123b0  6f 77 28 77 69 6e 64 6f  77 5f 68 61 6e 64 6c 65  |ow(window_handle|
000123c0  25 29 0d 75 80 1d 21 74  65 6d 70 5f 62 6c 6b 25  |%).u..!temp_blk%|
000123d0  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
000123e0  75 8a 27 c8 99 20 22 57  69 6d 70 5f 47 65 74 57  |u.'.. "Wimp_GetW|
000123f0  69 6e 64 6f 77 53 74 61  74 65 22 2c 2c 74 65 6d  |indowState",,tem|
00012400  70 5f 62 6c 6b 25 0d 75  94 23 c8 99 20 22 57 69  |p_blk%.u.#.. "Wi|
00012410  6d 70 5f 4f 70 65 6e 57  69 6e 64 6f 77 22 2c 2c  |mp_OpenWindow",,|
00012420  74 65 6d 70 5f 62 6c 6b  25 0d 75 9e 17 20 f4 20  |temp_blk%.u.. . |
00012430  2d 20 42 72 69 6e 67 20  74 6f 20 66 72 6f 6e 74  |- Bring to front|
00012440  0d 75 a8 05 e1 0d 75 b2  1d dd f2 70 72 69 6e 74  |.u....u....print|
00012450  5f 6c 69 6e 65 28 6c 69  6e 65 25 2c 74 65 78 74  |_line(line%,text|
00012460  24 29 0d 75 bc 4c ea 20  6d 61 78 5f 6c 69 6e 65  |$).u.L. max_line|
00012470  73 25 2c 6d 69 6e 5f 78  25 2c 6d 69 6e 5f 79 25  |s%,min_x%,min_y%|
00012480  2c 6d 61 78 5f 78 25 2c  6d 61 78 5f 79 25 2c 6c  |,max_x%,max_y%,l|
00012490  69 6e 65 5f 74 6f 70 25  2c 6c 69 6e 65 5f 62 6f  |ine_top%,line_bo|
000124a0  74 25 2c 78 25 2c 79 25  2c 6d 6f 72 65 25 0d 75  |t%,x%,y%,more%.u|
000124b0  c6 21 6d 61 78 5f 6c 69  6e 65 73 25 3d de 28 70  |.!max_lines%=.(p|
000124c0  72 69 6e 74 5f 6c 69 6e  65 24 28 29 2c 31 29 0d  |rint_line$(),1).|
000124d0  75 d0 18 e7 20 6c 69 6e  65 25 3e 6d 61 78 5f 6c  |u... line%>max_l|
000124e0  69 6e 65 73 25 20 8c 0d  75 da 39 85 20 32 30 34  |ines% ..u.9. 204|
000124f0  2c 22 4f 75 74 20 6f 66  20 72 61 6e 67 65 20 6c  |,"Out of range l|
00012500  69 6e 65 20 6e 75 6d 62  65 72 20 69 6e 20 27 50  |ine number in 'P|
00012510  52 4f 43 70 72 69 6e 74  5f 6c 69 6e 65 27 21 22  |ROCprint_line'!"|
00012520  0d 75 e4 05 e1 0d 75 ee  05 cd 0d 75 f8 1c 21 74  |.u....u....u..!t|
00012530  65 6d 70 5f 62 6c 6b 25  3d 70 72 69 6e 74 5f 77  |emp_blk%=print_w|
00012540  69 6e 64 6f 77 25 0d 76  02 26 c8 99 20 22 57 69  |indow%.v.&.. "Wi|
00012550  6d 70 5f 47 65 74 57 69  6e 64 6f 77 49 6e 66 6f  |mp_GetWindowInfo|
00012560  22 2c 2c 74 65 6d 70 5f  62 6c 6b 25 0d 76 0c 17  |",,temp_blk%.v..|
00012570  6d 69 6e 5f 78 25 3d 74  65 6d 70 5f 62 6c 6b 25  |min_x%=temp_blk%|
00012580  21 34 34 0d 76 16 17 6d  69 6e 5f 79 25 3d 74 65  |!44.v..min_y%=te|
00012590  6d 70 5f 62 6c 6b 25 21  34 38 0d 76 20 17 6d 61  |mp_blk%!48.v .ma|
000125a0  78 5f 78 25 3d 74 65 6d  70 5f 62 6c 6b 25 21 35  |x_x%=temp_blk%!5|
000125b0  32 0d 76 2a 17 6d 61 78  5f 79 25 3d 74 65 6d 70  |2.v*.max_y%=temp|
000125c0  5f 62 6c 6b 25 21 35 36  0d 76 34 1d 6c 69 6e 65  |_blk%!56.v4.line|
000125d0  5f 74 6f 70 25 3d 6d 61  78 5f 79 25 2d 6c 69 6e  |_top%=max_y%-lin|
000125e0  65 25 2a 33 32 0d 76 3e  1a 6c 69 6e 65 5f 62 6f  |e%*32.v>.line_bo|
000125f0  74 25 3d 6c 69 6e 65 5f  74 6f 70 25 2d 33 32 0d  |t%=line_top%-32.|
00012600  76 48 2b 6c 69 6e 65 25  3d 28 6c 69 6e 65 25 2b  |vH+line%=(line%+|
00012610  70 72 69 6e 74 5f 74 6f  70 25 29 83 28 6d 61 78  |print_top%).(max|
00012620  5f 6c 69 6e 65 73 25 2b  31 29 0d 76 52 2b 70 72  |_lines%+1).vR+pr|
00012630  69 6e 74 5f 6c 69 6e 65  24 28 6c 69 6e 65 25 29  |int_line$(line%)|
00012640  3d c0 74 65 78 74 24 2c  70 72 69 6e 74 5f 77 69  |=.text$,print_wi|
00012650  64 74 68 25 29 0d 76 5c  21 78 25 3d 74 65 6d 70  |dth%).v\!x%=temp|
00012660  5f 62 6c 6b 25 21 34 2d  74 65 6d 70 5f 62 6c 6b  |_blk%!4-temp_blk|
00012670  25 21 32 30 2b 34 0d 76  66 2c 79 25 3d 74 65 6d  |%!20+4.vf,y%=tem|
00012680  70 5f 62 6c 6b 25 21 31  36 2d 74 65 6d 70 5f 62  |p_blk%!16-temp_b|
00012690  6c 6b 25 21 32 34 2b 6c  69 6e 65 5f 74 6f 70 25  |lk%!24+line_top%|
000126a0  2d 34 0d 76 70 1d 74 65  6d 70 5f 62 6c 6b 25 21  |-4.vp.temp_blk%!|
000126b0  30 3d 70 72 69 6e 74 5f  77 69 6e 64 6f 77 25 0d  |0=print_window%.|
000126c0  76 7a 16 74 65 6d 70 5f  62 6c 6b 25 21 34 3d 6d  |vz.temp_blk%!4=m|
000126d0  69 6e 5f 78 25 0d 76 84  19 74 65 6d 70 5f 62 6c  |in_x%.v..temp_bl|
000126e0  6b 25 21 38 3d 6c 69 6e  65 5f 62 6f 74 25 0d 76  |k%!8=line_bot%.v|
000126f0  8e 17 74 65 6d 70 5f 62  6c 6b 25 21 31 32 3d 6d  |..temp_blk%!12=m|
00012700  61 78 5f 78 25 0d 76 98  1a 74 65 6d 70 5f 62 6c  |ax_x%.v..temp_bl|
00012710  6b 25 21 31 36 3d 6c 69  6e 65 5f 74 6f 70 25 0d  |k%!16=line_top%.|
00012720  76 a2 2c c8 99 22 57 69  6d 70 5f 55 70 64 61 74  |v.,.."Wimp_Updat|
00012730  65 57 69 6e 64 6f 77 22  2c 2c 74 65 6d 70 5f 62  |eWindow",,temp_b|
00012740  6c 6b 25 20 b8 20 6d 6f  72 65 25 0d 76 ac 0c c8  |lk% . more%.v...|
00012750  95 20 6d 6f 72 65 25 0d  76 b6 09 e6 20 37 3a db  |. more%.v... 7:.|
00012760  0d 76 c0 0b ec 20 78 25  2c 79 25 0d 76 ca 19 f1  |.v... x%,y%.v...|
00012770  3b 70 72 69 6e 74 5f 6c  69 6e 65 24 28 6c 69 6e  |;print_line$(lin|
00012780  65 25 29 3b 0d 76 d4 2c  c8 99 22 57 69 6d 70 5f  |e%);.v.,.."Wimp_|
00012790  47 65 74 52 65 63 74 61  6e 67 6c 65 22 2c 2c 74  |GetRectangle",,t|
000127a0  65 6d 70 5f 62 6c 6b 25  20 b8 20 6d 6f 72 65 25  |emp_blk% . more%|
000127b0  0d 76 de 05 ce 0d 76 e8  05 e1 0d 76 f2 04 0d 76  |.v....v....v...v|
000127c0  fc 26 dd a4 77 69 6e 64  6f 77 5f 72 65 63 74 61  |.&..window_recta|
000127d0  6e 67 6c 65 28 77 69 6e  64 6f 77 5f 68 61 6e 64  |ngle(window_hand|
000127e0  6c 65 25 29 0d 77 06 0b  ea 20 6d 6f 72 65 25 0d  |le%).w... more%.|
000127f0  77 10 47 74 65 6d 70 5f  62 6c 6b 25 21 30 3d 77  |w.Gtemp_blk%!0=w|
00012800  69 6e 64 6f 77 5f 68 61  6e 64 6c 65 25 3a c8 99  |indow_handle%:..|
00012810  22 57 69 6d 70 5f 47 65  74 52 65 63 74 61 6e 67  |"Wimp_GetRectang|
00012820  6c 65 22 2c 2c 74 65 6d  70 5f 62 6c 6b 25 20 b8  |le",,temp_blk% .|
00012830  20 6d 6f 72 65 25 0d 77  1a 0a 3d 6d 6f 72 65 25  | more%.w..=more%|
00012840  0d 77 24 23 dd a4 77 69  6e 64 6f 77 5f 75 70 64  |.w$#..window_upd|
00012850  61 74 65 28 77 69 6e 64  6f 77 5f 68 61 6e 64 6c  |ate(window_handl|
00012860  65 25 29 0d 77 2e 0b ea  20 6d 6f 72 65 25 0d 77  |e%).w... more%.w|
00012870  38 1e 74 65 6d 70 5f 62  6c 6b 25 21 30 3d 77 69  |8.temp_blk%!0=wi|
00012880  6e 64 6f 77 5f 68 61 6e  64 6c 65 25 0d 77 42 1a  |ndow_handle%.wB.|
00012890  74 65 6d 70 5f 62 6c 6b  25 21 34 3d 26 38 30 30  |temp_blk%!4=&800|
000128a0  30 30 30 30 30 3a 0d 77  4c 1a 74 65 6d 70 5f 62  |00000:.wL.temp_b|
000128b0  6c 6b 25 21 38 3d 26 38  30 30 30 30 30 30 30 3a  |lk%!8=&80000000:|
000128c0  0d 77 56 1b 74 65 6d 70  5f 62 6c 6b 25 21 31 32  |.wV.temp_blk%!12|
000128d0  3d 26 36 46 46 46 46 46  46 46 3a 0d 77 60 1b 74  |=&6FFFFFFF:.w`.t|
000128e0  65 6d 70 5f 62 6c 6b 25  21 31 36 3d 26 36 46 46  |emp_blk%!16=&6FF|
000128f0  46 46 46 46 46 3a 0d 77  6a 2c c8 99 22 57 69 6d  |FFFFF:.wj,.."Wim|
00012900  70 5f 55 70 64 61 74 65  57 69 6e 64 6f 77 22 2c  |p_UpdateWindow",|
00012910  2c 74 65 6d 70 5f 62 6c  6b 25 20 b8 20 6d 6f 72  |,temp_blk% . mor|
00012920  65 25 0d 77 74 0a 3d 6d  6f 72 65 25 0d 77 7e 25  |e%.wt.=more%.w~%|
00012930  dd a4 77 69 6e 64 6f 77  5f 78 5f 6f 72 69 67 69  |..window_x_origi|
00012940  6e 28 77 69 6e 64 6f 77  5f 68 61 6e 64 6c 65 25  |n(window_handle%|
00012950  29 0d 77 88 1e 74 65 6d  70 5f 62 6c 6b 25 21 30  |).w..temp_blk%!0|
00012960  3d 77 69 6e 64 6f 77 5f  68 61 6e 64 6c 65 25 0d  |=window_handle%.|
00012970  77 92 26 c8 99 22 57 69  6d 70 5f 47 65 74 57 69  |w.&.."Wimp_GetWi|
00012980  6e 64 6f 77 53 74 61 74  65 22 2c 2c 74 65 6d 70  |ndowState",,temp|
00012990  5f 62 6c 6b 25 0d 77 9c  1d 3d 74 65 6d 70 5f 62  |_blk%.w..=temp_b|
000129a0  6c 6b 25 21 34 2d 74 65  6d 70 5f 62 6c 6b 25 21  |lk%!4-temp_blk%!|
000129b0  32 30 0d 77 a6 25 dd a4  77 69 6e 64 6f 77 5f 79  |20.w.%..window_y|
000129c0  5f 6f 72 69 67 69 6e 28  77 69 6e 64 6f 77 5f 68  |_origin(window_h|
000129d0  61 6e 64 6c 65 25 29 0d  77 b0 1e 74 65 6d 70 5f  |andle%).w..temp_|
000129e0  62 6c 6b 25 21 30 3d 77  69 6e 64 6f 77 5f 68 61  |blk%!0=window_ha|
000129f0  6e 64 6c 65 25 0d 77 ba  26 c8 99 22 57 69 6d 70  |ndle%.w.&.."Wimp|
00012a00  5f 47 65 74 57 69 6e 64  6f 77 53 74 61 74 65 22  |_GetWindowState"|
00012a10  2c 2c 74 65 6d 70 5f 62  6c 6b 25 0d 77 c4 1e 3d  |,,temp_blk%.w..=|
00012a20  74 65 6d 70 5f 62 6c 6b  25 21 31 36 2d 74 65 6d  |temp_blk%!16-tem|
00012a30  70 5f 62 6c 6b 25 21 32  34 0d 77 ce 16 dd a4 66  |p_blk%!24.w....f|
00012a40  69 6c 65 5f 73 69 7a 65  28 66 69 6c 65 24 29 0d  |ile_size(file$).|
00012a50  77 d8 12 ea 20 73 69 7a  65 25 2c 66 6f 75 6e 64  |w... size%,found|
00012a60  25 0d 77 e2 2a c8 99 22  4f 53 5f 46 69 6c 65 22  |%.w.*.."OS_File"|
00012a70  2c 31 37 2c 66 69 6c 65  24 20 b8 20 66 6f 75 6e  |,17,file$ . foun|
00012a80  64 25 2c 2c 2c 2c 73 69  7a 65 25 0d 77 ec 3c e7  |d%,,,,size%.w.<.|
00012a90  20 66 6f 75 6e 64 25 3c  3e 31 20 8c 20 85 20 32  | found%<>1 . . 2|
00012aa0  30 33 2c 22 46 69 6c 65  20 27 22 2b a4 6c 65 61  |03,"File '"+.lea|
00012ab0  66 28 66 69 6c 65 24 29  2b 22 27 20 6e 6f 74 20  |f(file$)+"' not |
00012ac0  66 6f 75 6e 64 21 22 0d  77 f6 0a 3d 73 69 7a 65  |found!".w..=size|
00012ad0  25 0d 78 00 05 3a 0d 78  0a 4e f4 20 2d 2d 2d 2d  |%.x..:.x.N. ----|
00012ae0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00012b20  2d 2d 2d 2d 0d 78 14 37  f4 20 20 20 20 20 20 20  |----.x.7.       |
00012b30  20 20 20 20 20 20 20 20  20 20 20 47 65 74 20 66  |           Get f|
00012b40  69 6c 65 20 74 79 70 65  20 66 6f 72 20 61 20 64  |ile type for a d|
00012b50  65 66 69 6e 65 64 20 66  69 6c 65 0d 78 1e 4e f4  |efined file.x.N.|
00012b60  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
00012b70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00012ba0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 78 28 05 3a 0d 78  |---------.x(.:.x|
00012bb0  32 16 dd a4 66 69 6c 65  5f 74 79 70 65 28 66 69  |2...file_type(fi|
00012bc0  6c 65 24 29 0d 78 3c 12  ea 20 74 65 6d 70 25 2c  |le$).x<.. temp%,|
00012bd0  66 6f 75 6e 64 25 0d 78  46 28 c8 99 22 4f 53 5f  |found%.xF(.."OS_|
00012be0  46 69 6c 65 22 2c 31 37  2c 66 69 6c 65 24 20 b8  |File",17,file$ .|
00012bf0  20 66 6f 75 6e 64 25 2c  2c 74 65 6d 70 25 0d 78  | found%,,temp%.x|
00012c00  50 3b e7 20 66 6f 75 6e  64 25 3c 3e 31 20 8c 20  |P;. found%<>1 . |
00012c10  85 20 32 30 33 2c 22 46  69 6c 65 20 22 2b a4 6c  |. 203,"File "+.l|
00012c20  65 61 66 28 66 69 6c 65  24 29 2b 22 2c 20 6e 6f  |eaf(file$)+", no|
00012c30  74 20 66 6f 75 6e 64 21  22 0d 78 5a 2c e7 28 74  |t found!".xZ,.(t|
00012c40  65 6d 70 25 3e 3e 3e 32  30 29 3d 26 46 46 46 8c  |emp%>>>20)=&FFF.|
00012c50  3d 28 74 65 6d 70 25 3e  3e 3e 38 29 80 26 46 46  |=(temp%>>>8).&FF|
00012c60  46 20 8b 3d 30 0d 78 64  05 3a 0d 78 6e 4e f4 20  |F .=0.xd.:.xnN. |
00012c70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00012cb0  2d 2d 2d 2d 2d 2d 2d 2d  0d 78 78 36 f4 20 20 20  |--------.xx6.   |
00012cc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 49  |               I|
00012cd0  6e 69 74 69 61 74 65 20  61 20 73 61 76 65 20 74  |nitiate a save t|
00012ce0  6f 20 61 6e 6f 74 68 65  72 20 74 61 73 6b 0d 78  |o another task.x|
00012cf0  82 4e f4 20 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.N. ------------|
00012d00  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00012d30  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0d 78 8c 05  |------------.x..|
00012d40  3a 0d 78 96 41 dd f2 69  6e 69 74 69 61 74 65 5f  |:.x.A..initiate_|
00012d50  73 61 76 65 28 77 69 6e  64 6f 77 25 2c 69 63 6f  |save(window%,ico|
00012d60  6e 25 2c 78 25 2c 79 25  2c 66 69 6c 65 24 2c 73  |n%,x%,y%,file$,s|
00012d70  74 61 72 74 25 2c 73 69  7a 65 25 2c 74 79 70 65  |tart%,size%,type|
00012d80  25 29 0d 78 a0 14 f4 20  50 52 4f 43 73 61 76 65  |%).x... PROCsave|
00012d90  5f 73 65 74 75 70 0d 78  aa 39 f4 20 43 61 6c 6c  |_setup.x.9. Call|
00012da0  20 74 68 69 73 20 70 72  6f 63 65 64 75 72 65 20  | this procedure |
00012db0  61 66 74 65 72 20 61 20  64 72 61 67 20 68 61 73  |after a drag has|
00012dc0  20 62 65 65 6e 20 63 6f  6d 70 6c 65 74 65 64 0d  | been completed.|
00012dd0  78 b4 05 f4 0d 78 be 4a  f4 20 77 69 6e 64 6f 77  |x....x.J. window|
00012de0  25 20 69 73 20 74 68 65  20 77 69 6e 64 6f 77 20  |% is the window |
00012df0  68 61 6e 64 6c 65 20 6f  66 20 61 20 77 69 6e 64  |handle of a wind|
00012e00  6f 77 20 62 65 6c 6f 6e  67 69 6e 67 20 74 6f 20  |ow belonging to |
00012e10  74 68 65 20 6f 74 68 65  72 20 74 61 73 6b 0d 78  |the other task.x|
00012e20  c8 47 f4 20 69 63 6f 6e  25 20 20 20 69 73 20 61  |.G. icon%   is a|
00012e30  6e 20 69 63 6f 6e 20 68  61 6e 64 6c 65 20 69 6e  |n icon handle in|
00012e40  20 61 20 77 69 6e 64 6f  77 20 62 65 6c 6f 6e 67  | a window belong|
00012e50  69 6e 67 20 74 6f 20 74  68 65 20 6f 74 68 65 72  |ing to the other|
00012e60  20 74 61 73 6b 0d 78 d2  36 f4 20 78 25 20 20 20  | task.x.6. x%   |
00012e70  20 20 20 69 73 20 74 68  65 20 70 6f 69 6e 74 65  |   is the pointe|
00012e80  72 20 78 20 70 6f 73 69  74 69 6f 6e 20 61 74 20  |r x position at |
00012e90  65 6e 64 20 6f 66 20 64  72 61 67 0d 78 dc 36 f4  |end of drag.x.6.|
00012ea0  20 79 25 20 20 20 20 20  20 69 73 20 74 68 65 20  | y%      is the |
00012eb0  70 6f 69 6e 74 65 72 20  79 20 70 6f 73 69 74 69  |pointer y positi|
00012ec0  6f 6e 20 61 74 20 65 6e  64 20 6f 66 20 64 72 61  |on at end of dra|
00012ed0  67 0d 78 e6 31 f4 20 66  69 6c 65 24 20 20 20 69  |g.x.1. file$   i|
00012ee0  73 20 74 68 65 20 6e 61  6d 65 20 6f 66 20 74 68  |s the name of th|
00012ef0  65 20 66 69 6c 65 20 74  6f 20 62 65 20 73 61 76  |e file to be sav|
00012f00  65 64 0d 78 f0 3a f4 20  73 74 61 72 74 25 20 20  |ed.x.:. start%  |
00012f10  69 73 20 74 68 65 20 73  74 61 72 74 20 61 64 64  |is the start add|
00012f20  72 65 73 73 20 6f 66 20  74 68 65 20 61 72 65 61  |ress of the area|
00012f30  20 74 6f 20 62 65 20 73  61 76 65 64 0d 78 fa 31  | to be saved.x.1|
00012f40  f4 20 73 69 7a 65 25 20  20 20 69 73 20 74 68 65  |. size%   is the|
00012f50  20 73 69 7a 65 20 6f 66  20 74 68 65 20 64 61 74  | size of the dat|
00012f60  61 20 74 6f 20 62 65 20  73 61 76 65 64 0d 79 04  |a to be saved.y.|
00012f70  38 f4 20 74 79 70 65 25  20 20 20 69 73 20 74 68  |8. type%   is th|
00012f80  65 20 66 69 6c 65 20 74  79 70 65 20 28 65 67 20  |e file type (eg |
00012f90  26 46 46 46 20 66 6f 72  20 61 20 74 65 78 74 20  |&FFF for a text |
00012fa0  66 69 6c 65 29 0d 79 0e  05 3a 0d 79 18 4d f4 20  |file).y..:.y.M. |
00012fb0  53 74 6f 72 65 20 73 74  61 72 74 20 61 64 64 72  |Store start addr|
00012fc0  65 73 73 20 61 6e 64 20  73 69 7a 65 20 69 6e 20  |ess and size in |
00012fd0  61 20 76 61 72 69 61 62  6c 65 20 66 6f 72 20 75  |a variable for u|
00012fe0  73 65 20 64 75 72 69 6e  67 20 64 61 74 61 20 74  |se during data t|
00012ff0  72 61 6e 73 66 65 72 0d  79 22 1a 6d 65 6d 5f 61  |ransfer.y".mem_a|
00013000  72 65 61 5f 73 74 61 72  74 25 3d 73 74 61 72 74  |rea_start%=start|
00013010  25 0d 79 2c 18 6d 65 6d  5f 64 61 74 61 5f 73 69  |%.y,.mem_data_si|
00013020  7a 65 25 3d 73 69 7a 65  25 0d 79 36 18 6d 65 6d  |ze%=size%.y6.mem|
00013030  5f 64 61 74 61 5f 70 74  72 25 3d 73 74 61 72 74  |_data_ptr%=start|
00013040  25 0d 79 40 05 3a 0d 79  4a 0e 62 6c 6b 25 21 30  |%.y@.:.yJ.blk%!0|
00013050  3d 32 35 36 0d 79 54 23  62 6c 6b 25 21 31 32 3d  |=256.yT#blk%!12=|
00013060  30 3a f4 20 41 6e 20 6f  72 69 67 69 6e 61 6c 20  |0:. An original |
00013070  6d 65 73 73 61 67 65 0d  79 5e 2a 62 6c 6b 25 21  |message.y^*blk%!|
00013080  31 36 3d 31 3a f4 20 41  20 27 64 61 74 61 20 73  |16=1:. A 'data s|
00013090  61 76 65 27 20 74 79 70  65 20 6d 65 73 73 61 67  |ave' type messag|
000130a0  65 0d 79 68 13 62 6c 6b  25 21 32 30 3d 77 69 6e  |e.yh.blk%!20=win|
000130b0  64 6f 77 25 0d 79 72 11  62 6c 6b 25 21 32 34 3d  |dow%.yr.blk%!24=|
000130c0  69 63 6f 6e 25 0d 79 7c  0e 62 6c 6b 25 21 32 38  |icon%.y|.blk%!28|
000130d0  3d 78 25 0d 79 86 0e 62  6c 6b 25 21 33 32 3d 79  |=x%.y..blk%!32=y|
000130e0  25 0d 79 90 11 62 6c 6b  25 21 33 36 3d 73 69 7a  |%.y..blk%!36=siz|
000130f0  65 25 0d 79 9a 11 62 6c  6b 25 21 34 30 3d 74 79  |e%.y..blk%!40=ty|
00013100  70 65 25 0d 79 a4 17 24  28 62 6c 6b 25 2b 34 34  |pe%.y..$(blk%+44|
00013110  29 3d 66 69 6c 65 24 2b  bd 30 0d 79 ae 43 c8 99  |)=file$+.0.y.C..|
00013120  20 22 57 69 6d 70 5f 53  65 6e 64 4d 65 73 73 61  | "Wimp_SendMessa|
00013130  67 65 22 2c 31 37 2c 62  6c 6b 25 2c 77 69 6e 64  |ge",17,blk%,wind|
00013140  6f 77 25 2c 69 63 6f 6e  25 20 b8 20 64 65 73 74  |ow%,icon% . dest|
00013150  69 6e 61 74 69 6f 6e 5f  74 61 73 6b 25 0d 79 b8  |ination_task%.y.|
00013160  05 e1 0d 79 c2 05 3a 0d  79 cc 46 f4 20 54 68 65  |...y..:.y.F. The|
00013170  20 66 6f 6c 6c 6f 77 69  6e 67 20 6d 65 73 73 61  | following messa|
00013180  67 65 20 74 79 70 65 73  20 61 72 65 20 61 73 73  |ge types are ass|
00013190  6f 63 69 61 74 65 64 20  77 69 74 68 20 74 72 61  |ociated with tra|
000131a0  6e 73 66 65 72 20 6f 66  20 64 61 74 61 0d 79 d6  |nsfer of data.y.|
000131b0  41 f4 20 54 4f 20 74 68  69 73 20 74 61 73 6b 20  |A. TO this task |
000131c0  46 52 4f 4d 20 61 6e 6f  74 68 65 72 20 74 61 73  |FROM another tas|
000131d0  6b 20 28 6f 72 20 66 72  6f 6d 20 74 68 65 20 66  |k (or from the f|
000131e0  69 6c 69 6e 67 20 73 79  73 74 65 6d 29 2e 0d 79  |iling system)..y|
000131f0  e0 05 3a 0d 79 ea 4e f4  20 2d 2d 2d 2d 2d 2d 2d  |..:.y.N. -------|
00013200  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013240  2d 0d 79 f4 32 f4 20 20  20 20 20 20 20 20 20 20  |-.y.2.          |
00013250  20 20 20 20 20 20 20 20  20 20 20 20 4c 6f 61 64  |            Load|
00013260  20 61 20 66 69 6c 65 20  69 6e 74 6f 20 6d 65 6d  | a file into mem|
00013270  6f 72 79 0d 79 fe 4e f4  20 2d 2d 2d 2d 2d 2d 2d  |ory.y.N. -------|
00013280  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000132c0  2d 0d 7a 08 05 3a 0d 7a  12 2c dd a4 6c 6f 61 64  |-.z..:.z.,..load|
000132d0  5f 64 61 74 61 28 66 69  6c 65 5f 70 61 74 68 24  |_data(file_path$|
000132e0  2c 73 74 61 72 74 25 2c  6d 61 78 5f 73 69 7a 65  |,start%,max_size|
000132f0  25 29 0d 7a 1c 10 ea 20  72 65 61 6c 5f 73 69 7a  |%).z... real_siz|
00013300  65 25 0d 7a 26 43 f4 20  66 69 6c 65 5f 70 61 74  |e%.z&C. file_pat|
00013310  68 24 20 69 73 20 74 68  65 20 66 75 6c 6c 20 70  |h$ is the full p|
00013320  61 74 68 20 61 6e 64 20  6e 61 6d 65 20 6f 66 20  |ath and name of |
00013330  74 68 65 20 66 69 6c 65  20 74 6f 20 62 65 20 6c  |the file to be l|
00013340  6f 61 64 65 64 0d 7a 30  31 f4 20 73 74 61 72 74  |oaded.z01. start|
00013350  25 20 20 20 20 20 69 73  20 74 68 65 20 6c 6f 61  |%     is the loa|
00013360  64 20 61 64 64 72 65 73  73 20 66 6f 72 20 74 68  |d address for th|
00013370  65 20 66 69 6c 65 0d 7a  3a 3f f4 20 6d 61 78 5f  |e file.z:?. max_|
00013380  73 69 7a 65 25 20 20 69  73 20 74 68 65 20 6d 61  |size%  is the ma|
00013390  78 69 6d 75 6d 20 73 69  7a 65 20 6f 66 20 66 69  |ximum size of fi|
000133a0  6c 65 20 74 68 61 74 20  63 61 6e 20 62 65 20 6c  |le that can be l|
000133b0  6f 61 64 65 64 0d 7a 44  25 72 65 61 6c 5f 73 69  |oaded.zD%real_si|
000133c0  7a 65 25 3d a4 66 69 6c  65 5f 73 69 7a 65 28 66  |ze%=.file_size(f|
000133d0  69 6c 65 5f 70 61 74 68  24 29 0d 7a 4e 1c e7 20  |ile_path$).zN.. |
000133e0  72 65 61 6c 5f 73 69 7a  65 25 3e 6d 61 78 5f 73  |real_size%>max_s|
000133f0  69 7a 65 25 20 8c 0d 7a  58 46 20 20 f2 72 65 70  |ize% ..zXF  .rep|
00013400  6f 72 74 5f 65 72 72 6f  72 28 22 46 69 6c 65 20  |ort_error("File |
00013410  74 6f 20 6c 6f 61 64 20  69 73 20 74 6f 6f 20 6c  |to load is too l|
00013420  61 72 67 65 21 22 2c 22  44 61 74 61 20 6c 6f 61  |arge!","Data loa|
00013430  64 69 6e 67 20 65 72 72  6f 72 22 29 0d 7a 62 08  |ding error").zb.|
00013440  20 20 3d 30 0d 7a 6c 05  cd 0d 7a 76 24 c8 99 22  |  =0.zl...zv$.."|
00013450  4f 53 5f 46 69 6c 65 22  2c 31 36 2c 66 69 6c 65  |OS_File",16,file|
00013460  5f 70 61 74 68 24 2c 73  74 61 72 74 25 0d 7a 80  |_path$,start%.z.|
00013470  0f 3d 72 65 61 6c 5f 73  69 7a 65 25 0d 7a 8a 05  |.=real_size%.z..|
00013480  3a 0d 7a 94 4e f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |:.z.N. ---------|
00013490  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000134c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
000134d0  7a 9e 42 f4 20 20 20 20  20 20 20 20 52 65 70 6c  |z.B.        Repl|
000134e0  79 20 74 6f 20 61 6e 6f  74 68 65 72 20 74 61 73  |y to another tas|
000134f0  6b 73 20 64 61 74 61 20  73 61 76 65 20 6d 65 73  |ks data save mes|
00013500  73 61 67 65 20 75 73 69  6e 67 20 61 20 66 69 6c  |sage using a fil|
00013510  65 0d 7a a8 4e f4 20 2d  2d 2d 2d 2d 2d 2d 2d 2d  |e.z.N. ---------|
00013520  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013550  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 0d  |---------------.|
00013560  7a b2 05 3a 0d 7a bc 18  dd 20 f2 6d 65 73 73 61  |z..:.z... .messa|
00013570  67 65 5f 66 69 6c 65 5f  73 61 76 65 0d 7a c6 35  |ge_file_save.z.5|
00013580  f4 20 41 6e 6f 74 68 65  72 20 74 61 73 6b 20 77  |. Another task w|
00013590  61 6e 74 73 20 74 6f 20  73 65 6e 64 20 74 68 69  |ants to send thi|
000135a0  73 20 74 61 73 6b 20 73  6f 6d 65 20 64 61 74 61  |s task some data|
000135b0  2c 0d 7a d0 3c f4 20 54  65 6c 6c 20 74 61 73 6b  |,.z.<. Tell task|
000135c0  20 74 6f 20 75 73 65 20  61 6e 20 69 6e 74 65 72  | to use an inter|
000135d0  6d 65 64 69 61 74 65 20  66 69 6c 65 20 66 6f 72  |mediate file for|
000135e0  20 74 68 65 20 74 72 61  6e 73 66 65 72 0d 7a da  | the transfer.z.|
000135f0  05 3a 0d 7a e4 13 72 61  6d 5f 74 72 61 6e 73 66  |.:.z..ram_transf|
00013600  65 72 25 3d a3 0d 7a ee  32 f4 20 43 68 65 63 6b  |er%=..z.2. Check|
00013610  20 69 66 20 57 69 6d 70  24 53 63 72 61 70 20 65  | if Wimp$Scrap e|
00013620  78 69 73 74 73 20 74 68  65 6e 20 73 65 6e 64 20  |xists then send |
00013630  6d 65 73 73 61 67 65 0d  7a f8 2c 20 20 e7 20 a4  |message.z.,  . .|
00013640  73 79 73 74 65 6d 5f 76  61 72 69 61 62 6c 65 28  |system_variable(|
00013650  22 57 69 6d 70 24 53 63  72 61 70 22 29 3c 3e 22  |"Wimp$Scrap")<>"|
00013660  22 20 8c 0d 7b 02 12 20  20 20 20 62 6c 6b 25 21  |" ..{..    blk%!|
00013670  33 36 3d 2d 31 0d 7b 0c  24 20 20 20 20 24 28 62  |36=-1.{.$    $(b|
00013680  6c 6b 25 2b 34 34 29 3d  22 3c 57 69 6d 70 24 53  |lk%+44)="<Wimp$S|
00013690  63 72 61 70 3e 22 2b bd  30 0d 7b 16 11 20 20 20  |crap>"+.0.{..   |
000136a0  20 62 6c 6b 25 21 30 3d  36 34 0d 7b 20 45 20 20  | blk%!0=64.{ E  |
000136b0  20 20 62 6c 6b 25 21 31  32 3d 62 6c 6b 25 21 38  |  blk%!12=blk%!8|
000136c0  3a 62 6c 6b 25 21 31 36  3d 32 3a c8 99 20 22 57  |:blk%!16=2:.. "W|
000136d0  69 6d 70 5f 53 65 6e 64  4d 65 73 73 61 67 65 22  |imp_SendMessage"|
000136e0  2c 31 37 2c 62 6c 6b 25  2c 62 6c 6b 25 21 34 0d  |,17,blk%,blk%!4.|
000136f0  7b 2a 07 20 20 cc 0d 7b  34 4c 20 20 20 20 f2 72  |{*.  ..{4L    .r|
00013700  65 70 6f 72 74 5f 65 72  72 6f 72 28 22 57 69 6d  |eport_error("Wim|
00013710  70 24 53 63 72 61 70 20  6e 6f 74 20 66 6f 75 6e  |p$Scrap not foun|
00013720  64 2e 20 52 75 6e 20 21  53 79 73 74 65 6d 20 6f  |d. Run !System o|
00013730  72 20 21 53 63 72 61 70  22 2c 22 45 72 72 6f 72  |r !Scrap","Error|
00013740  22 29 0d 7b 3e 07 20 20  cd 0d 7b 48 05 e1 0d 7b  |").{>.  ..{H...{|
00013750  52 05 3a 0d 7b 5c 4e f4  20 2d 2d 2d 2d 2d 2d 2d  |R.:.{\N. -------|
00013760  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000137a0  2d 0d 7b 66 3e f4 20 20  20 20 20 20 20 20 20 20  |-.{f>.          |
000137b0  20 20 20 20 20 20 20 4c  6f 61 64 20 64 61 74 61  |       Load data|
000137c0  20 66 72 6f 6d 20 61 20  66 69 6c 65 20 67 69 76  | from a file giv|
000137d0  65 6e 20 69 6e 20 61 20  6d 65 73 73 61 67 65 0d  |en in a message.|
000137e0  7b 70 4e f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |{pN. -----------|
000137f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013820  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 7b 7a  |-------------.{z|
00013830  05 3a 0d 7b 84 24 dd a4  6d 65 73 73 61 67 65 5f  |.:.{.$..message_|
00013840  6c 6f 61 64 28 73 74 61  72 74 25 2c 6d 61 78 5f  |load(start%,max_|
00013850  73 69 7a 65 25 29 0d 7b  8e 1e ea 20 66 69 6c 65  |size%).{... file|
00013860  5f 74 6f 5f 6c 6f 61 64  24 2c 66 69 6c 65 5f 73  |_to_load$,file_s|
00013870  69 7a 65 25 0d 7b 98 05  3a 0d 7b a2 20 f4 20 4c  |ize%.{..:.{. . L|
00013880  6f 61 64 20 61 20 66 69  6c 65 20 66 72 6f 6d 20  |oad a file from |
00013890  74 68 65 20 66 69 6c 65  72 0d 7b ac 2a 66 69 6c  |the filer.{.*fil|
000138a0  65 5f 74 6f 5f 6c 6f 61  64 24 3d a4 67 65 74 5f  |e_to_load$=.get_|
000138b0  73 74 72 69 6e 67 28 62  6c 6b 25 2b 34 34 2c 32  |string(blk%+44,2|
000138c0  35 35 29 0d 7b b6 39 66  69 6c 65 5f 73 69 7a 65  |55).{.9file_size|
000138d0  25 3d a4 6c 6f 61 64 5f  64 61 74 61 28 66 69 6c  |%=.load_data(fil|
000138e0  65 5f 74 6f 5f 6c 6f 61  64 24 2c 73 74 61 72 74  |e_to_load$,start|
000138f0  25 2c 6d 61 78 5f 73 69  7a 65 25 29 0d 7b c0 3b  |%,max_size%).{.;|
00013900  e7 20 66 69 6c 65 5f 74  6f 5f 6c 6f 61 64 24 3d  |. file_to_load$=|
00013910  22 3c 57 69 6d 70 24 53  63 72 61 70 3e 22 20 8c  |"<Wimp$Scrap>" .|
00013920  20 2a 44 45 4c 45 54 45  20 22 3c 57 69 6d 70 24  | *DELETE "<Wimp$|
00013930  53 63 72 61 70 3e 22 0d  7b ca 05 3a 0d 7b d4 28  |Scrap>".{..:.{.(|
00013940  f4 20 52 65 70 6c 79 20  74 6f 20 66 69 6c 65 72  |. Reply to filer|
00013950  20 77 69 74 68 20 61 6e  20 61 63 6b 6e 6f 77 6c  | with an acknowl|
00013960  65 64 67 65 0d 7b de 41  62 6c 6b 25 21 31 32 3d  |edge.{.Ablk%!12=|
00013970  62 6c 6b 25 21 38 3a 62  6c 6b 25 21 31 36 3d 34  |blk%!8:blk%!16=4|
00013980  3a c8 99 20 22 57 69 6d  70 5f 53 65 6e 64 4d 65  |:.. "Wimp_SendMe|
00013990  73 73 61 67 65 22 2c 31  37 2c 62 6c 6b 25 2c 62  |ssage",17,blk%,b|
000139a0  6c 6b 25 21 34 0d 7b e8  05 3a 0d 7b f2 0f 3d 66  |lk%!4.{..:.{..=f|
000139b0  69 6c 65 5f 73 69 7a 65  25 0d 7b fc 05 3a 0d 7c  |ile_size%.{..:.||
000139c0  06 46 f4 20 54 68 65 20  66 6f 6c 6c 6f 77 69 6e  |.F. The followin|
000139d0  67 20 6d 65 73 73 61 67  65 20 74 79 70 65 73 20  |g message types |
000139e0  61 72 65 20 61 73 73 6f  63 69 61 74 65 64 20 77  |are associated w|
000139f0  69 74 68 20 74 72 61 6e  73 66 65 72 20 6f 66 20  |ith transfer of |
00013a00  64 61 74 61 0d 7c 10 3f  f4 20 46 52 4f 4d 20 74  |data.|.?. FROM t|
00013a10  68 69 73 20 74 61 73 6b  20 54 4f 20 61 6e 6f 74  |his task TO anot|
00013a20  68 65 72 20 74 61 73 6b  20 28 6f 72 20 74 6f 20  |her task (or to |
00013a30  74 68 65 20 66 69 6c 69  6e 67 20 73 79 73 74 65  |the filing syste|
00013a40  6d 29 2e 0d 7c 1a 05 3a  0d 7c 24 4e f4 20 2d 2d  |m)..|..:.|$N. --|
00013a50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013a90  2d 2d 2d 2d 2d 2d 0d 7c  2e 43 f4 20 20 20 20 20  |------.|.C.     |
00013aa0  20 20 20 20 52 65 70 6c  79 20 74 6f 20 61 6e 6f  |    Reply to ano|
00013ab0  74 68 65 72 20 74 61 73  6b 73 20 64 61 74 61 20  |ther tasks data |
00013ac0  73 61 76 65 20 6d 65 73  73 61 67 65 20 75 73 69  |save message usi|
00013ad0  6e 67 20 6d 65 6d 6f 72  79 0d 7c 38 4e f4 20 2d  |ng memory.|8N. -|
00013ae0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013b20  2d 2d 2d 2d 2d 2d 2d 0d  7c 42 05 3a 0d 7c 4c 2d  |-------.|B.:.|L-|
00013b30  dd 20 f2 6d 65 73 73 61  67 65 5f 73 61 76 65 5f  |. .message_save_|
00013b40  6f 6b 28 6d 79 5f 61 64  64 72 65 73 73 25 2c 6d  |ok(my_address%,m|
00013b50  61 78 5f 73 69 7a 65 25  29 0d 7c 56 35 f4 20 41  |ax_size%).|V5. A|
00013b60  6e 6f 74 68 65 72 20 74  61 73 6b 20 77 61 6e 74  |nother task want|
00013b70  73 20 74 6f 20 73 65 6e  64 20 74 68 69 73 20 74  |s to send this t|
00013b80  61 73 6b 20 73 6f 6d 65  20 64 61 74 61 2e 0d 7c  |ask some data..||
00013b90  60 3d f4 20 53 65 6e 64  20 62 61 63 6b 20 61 20  |`=. Send back a |
00013ba0  6d 65 73 73 61 67 65 20  74 6f 20 73 75 67 67 65  |message to sugge|
00013bb0  73 74 20 74 68 65 20 75  73 65 20 52 41 4d 20 66  |st the use RAM f|
00013bc0  6f 72 20 74 72 61 6e 73  66 65 72 0d 7c 6a 05 3a  |or transfer.|j.:|
00013bd0  0d 7c 74 36 f4 20 44 61  74 61 20 77 69 6c 6c 20  |.|t6. Data will |
00013be0  62 65 20 73 61 76 65 64  20 54 4f 20 74 68 69 73  |be saved TO this|
00013bf0  20 74 61 73 6b 20 61 74  20 27 6d 79 5f 61 64 64  | task at 'my_add|
00013c00  72 65 73 73 25 27 0d 7c  7e 42 f4 20 6d 61 78 5f  |ress%'.|~B. max_|
00013c10  73 69 7a 65 25 20 6c 69  6d 69 74 73 20 74 68 65  |size% limits the|
00013c20  20 6d 61 78 69 6d 75 6d  20 73 69 7a 65 20 6f 66  | maximum size of|
00013c30  20 66 69 6c 65 20 74 68  61 74 20 6d 61 79 20 62  | file that may b|
00013c40  65 20 6c 6f 61 64 65 64  0d 7c 88 05 3a 0d 7c 92  |e loaded.|..:.|.|
00013c50  37 f4 20 53 65 74 20 66  6c 61 67 20 74 6f 20 69  |7. Set flag to i|
00013c60  64 65 6e 74 69 66 79 20  74 79 70 65 20 6f 66 20  |dentify type of |
00013c70  74 72 61 6e 73 66 65 72  20 69 6e 20 70 72 6f 67  |transfer in prog|
00013c80  72 65 73 73 0d 7c 9c 26  f4 20 28 69 6e 20 63 61  |ress.|.&. (in ca|
00013c90  73 65 20 6d 65 73 73 61  67 65 20 6e 6f 74 20 72  |se message not r|
00013ca0  65 70 6c 69 65 64 20 74  6f 29 0d 7c a6 13 72 61  |eplied to).|..ra|
00013cb0  6d 5f 74 72 61 6e 73 66  65 72 25 3d b9 0d 7c b0  |m_transfer%=..|.|
00013cc0  13 72 61 6d 5f 74 72 61  6e 73 6d 69 74 25 3d a3  |.ram_transmit%=.|
00013cd0  0d 7c ba 05 3a 0d 7c c4  38 f4 20 53 74 6f 72 65  |.|..:.|.8. Store|
00013ce0  20 76 61 72 69 61 62 6c  65 73 20 66 6f 72 20 6c  | variables for l|
00013cf0  61 74 65 72 20 75 73 65  20 64 75 72 69 6e 67 20  |ater use during |
00013d00  64 61 74 61 20 74 72 61  6e 73 66 65 72 0d 7c ce  |data transfer.|.|
00013d10  1f 6d 65 6d 5f 61 72 65  61 5f 73 74 61 72 74 25  |.mem_area_start%|
00013d20  3d 6d 79 5f 61 64 64 72  65 73 73 25 0d 7c d8 1c  |=my_address%.|..|
00013d30  6d 65 6d 5f 61 72 65 61  5f 73 69 7a 65 25 3d 6d  |mem_area_size%=m|
00013d40  61 78 5f 73 69 7a 65 25  0d 7c e2 14 6d 65 6d 5f  |ax_size%.|..mem_|
00013d50  64 61 74 61 5f 73 69 7a  65 25 3d 30 0d 7c ec 05  |data_size%=0.|..|
00013d60  3a 0d 7c f6 28 f4 20 53  65 74 20 75 70 20 70 61  |:.|.(. Set up pa|
00013d70  72 61 6d 65 74 65 72 20  62 6c 6f 63 6b 20 66 6f  |rameter block fo|
00013d80  72 20 6d 65 73 73 61 67  65 0d 7d 00 1b 62 6c 6b  |r message.}..blk|
00013d90  25 21 32 30 3d 6d 65 6d  5f 61 72 65 61 5f 73 74  |%!20=mem_area_st|
00013da0  61 72 74 25 0d 7d 0a 36  f4 20 53 65 74 20 62 6c  |art%.}.6. Set bl|
00013db0  6f 63 6b 20 73 69 7a 65  20 74 6f 20 62 65 20 75  |ock size to be u|
00013dc0  73 65 64 20 64 75 72 69  6e 67 20 6d 65 6d 6f 72  |sed during memor|
00013dd0  79 20 74 72 61 6e 73 66  65 72 0d 7d 14 1b 62 6c  |y transfer.}..bl|
00013de0  6b 25 21 32 34 3d 72 61  6d 5f 62 6c 6f 63 6b 5f  |k%!24=ram_block_|
00013df0  73 69 7a 65 25 0d 7d 1e  18 f4 20 53 65 74 75 70  |size%.}... Setup|
00013e00  20 6d 79 5f 72 65 66 65  72 65 6e 63 65 0d 7d 28  | my_reference.}(|
00013e10  12 62 6c 6b 25 21 31 32  3d 62 6c 6b 25 21 38 0d  |.blk%!12=blk%!8.|
00013e20  7d 32 45 f4 20 4d 65 73  73 61 67 65 20 74 79 70  |}2E. Message typ|
00013e30  65 20 69 73 20 52 41 4d  66 65 74 63 68 2c 20 69  |e is RAMfetch, i|
00013e40  65 20 61 74 74 65 6d 70  74 20 74 6f 20 75 73 65  |e attempt to use|
00013e50  20 6d 65 6d 6f 72 79 20  66 6f 72 20 74 72 61 6e  | memory for tran|
00013e60  73 66 65 72 0d 7d 3c 0d  62 6c 6b 25 21 31 36 3d  |sfer.}<.blk%!16=|
00013e70  36 0d 7d 46 27 c8 99 22  57 69 6d 70 5f 53 65 6e  |6.}F'.."Wimp_Sen|
00013e80  64 4d 65 73 73 61 67 65  22 2c 31 37 2c 62 6c 6b  |dMessage",17,blk|
00013e90  25 2c 62 6c 6b 25 21 34  0d 7d 50 05 3a 0d 7d 5a  |%,blk%!4.}P.:.}Z|
00013ea0  05 e1 0d 7d 64 05 3a 0d  7d 6e 4e f4 20 2d 2d 2d  |...}d.:.}nN. ---|
00013eb0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013ef0  2d 2d 2d 2d 2d 0d 7d 78  37 f4 20 20 20 20 20 20  |-----.}x7.      |
00013f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 53 65  |              Se|
00013f10  6e 64 20 61 20 72 65 70  6c 79 20 74 6f 20 61 20  |nd a reply to a |
00013f20  73 61 76 65 20 6d 65 73  73 61 67 65 0d 7d 82 4e  |save message.}.N|
00013f30  f4 20 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |. --------------|
00013f40  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00013f70  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0d 7d 8c 05 3a 0d  |----------.}..:.|
00013f80  7d 96 18 dd f2 6d 65 73  73 61 67 65 5f 73 61 76  |}....message_sav|
00013f90  65 5f 72 65 70 6c 79 0d  7d a0 24 f4 20 52 65 70  |e_reply.}.$. Rep|
00013fa0  6c 79 20 77 69 74 68 20  61 20 64 61 74 61 20 6c  |ly with a data l|
00013fb0  6f 61 64 20 6d 65 73 73  61 67 65 0d 7d aa 41 62  |oad message.}.Ab|
00013fc0  6c 6b 25 21 31 32 3d 62  6c 6b 25 21 38 3a 62 6c  |lk%!12=blk%!8:bl|
00013fd0  6b 25 21 31 36 3d 33 3a  c8 99 20 22 57 69 6d 70  |k%!16=3:.. "Wimp|
00013fe0  5f 53 65 6e 64 4d 65 73  73 61 67 65 22 2c 31 37  |_SendMessage",17|
00013ff0  2c 62 6c 6b 25 2c 62 6c  6b 25 21 34 0d 7d b4 05  |,blk%,blk%!4.}..|
00014000  e1 0d 7d be 05 3a 0d 7d  c8 4e f4 20 2d 2d 2d 2d  |..}..:.}.N. ----|
00014010  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00014050  2d 2d 2d 2d 0d 7d d2 37  f4 20 20 20 20 20 20 20  |----.}.7.       |
00014060  20 20 20 20 20 20 20 20  20 20 20 20 20 53 65 6e  |             Sen|
00014070  64 20 64 61 74 61 20 74  6f 20 61 20 74 61 73 6b  |d data to a task|
00014080  20 76 69 61 20 6d 65 6d  6f 72 79 0d 7d dc 4e f4  | via memory.}.N.|
00014090  20 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ---------------|
000140a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000140d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 0d 7d e6 05 3a 0d 7d  |---------.}..:.}|
000140e0  f0 18 dd f2 72 61 6d 5f  74 72 61 6e 73 66 65 72  |....ram_transfer|
000140f0  5f 72 65 70 6c 79 0d 7d  fa 14 f4 20 50 52 4f 43  |_reply.}... PROC|
00014100  73 61 76 65 5f 73 65 74  75 70 0d 7e 04 1a ea 20  |save_setup.~... |
00014110  62 75 66 5f 73 69 7a 65  25 2c 64 61 74 61 5f 73  |buf_size%,data_s|
00014120  69 7a 65 25 0d 7e 0e 41  f4 20 41 6e 6f 74 68 65  |ize%.~.A. Anothe|
00014130  72 20 74 61 73 6b 20 77  61 6e 74 73 20 74 68 69  |r task wants thi|
00014140  73 20 74 61 73 6b 20 74  6f 20 75 73 65 20 6d 65  |s task to use me|
00014150  6d 6f 72 79 20 74 6f 20  73 65 6e 64 20 74 68 65  |mory to send the|
00014160  20 64 61 74 61 0d 7e 18  05 3a 0d 7e 22 37 f4 20  | data.~..:.~"7. |
00014170  46 69 6e 64 20 6f 75 74  20 68 6f 77 20 62 69 67  |Find out how big|
00014180  20 74 68 65 20 74 72 61  6e 73 66 65 72 65 64 20  | the transfered |
00014190  64 61 74 61 20 62 6c 6f  63 6b 20 63 61 6e 20 62  |data block can b|
000141a0  65 0d 7e 2c 15 62 75 66  5f 73 69 7a 65 25 3d 62  |e.~,.buf_size%=b|
000141b0  6c 6b 25 21 32 34 0d 7e  36 05 3a 0d 7e 40 19 f4  |lk%!24.~6.:.~@..|
000141c0  20 53 65 6e 64 20 74 68  65 20 64 61 74 61 20 62  | Send the data b|
000141d0  6c 6f 63 6b 0d 7e 4a 4c  c8 99 22 57 69 6d 70 5f  |lock.~JL.."Wimp_|
000141e0  54 72 61 6e 73 66 65 72  42 6c 6f 63 6b 22 2c 74  |TransferBlock",t|
000141f0  68 69 73 5f 74 61 73 6b  25 2c 6d 65 6d 5f 64 61  |his_task%,mem_da|
00014200  74 61 5f 70 74 72 25 2c  62 6c 6b 25 21 34 2c 62  |ta_ptr%,blk%!4,b|
00014210  6c 6b 25 21 32 30 2c 62  75 66 5f 73 69 7a 65 25  |lk%!20,buf_size%|
00014220  0d 7e 54 05 3a 0d 7e 5e  2a f4 20 53 65 65 20 68  |.~T.:.~^*. See h|
00014230  6f 77 20 6d 75 63 68 20  64 61 74 61 20 68 61 73  |ow much data has|
00014240  20 79 65 74 20 74 6f 20  62 65 20 73 65 6e 74 0d  | yet to be sent.|
00014250  7e 68 3b 64 61 74 61 5f  73 69 7a 65 25 3d 6d 65  |~h;data_size%=me|
00014260  6d 5f 61 72 65 61 5f 73  74 61 72 74 25 2b 6d 65  |m_area_start%+me|
00014270  6d 5f 64 61 74 61 5f 73  69 7a 65 25 2d 6d 65 6d  |m_data_size%-mem|
00014280  5f 64 61 74 61 5f 70 74  72 25 0d 7e 72 05 3a 0d  |_data_ptr%.~r.:.|
00014290  7e 7c 2f f4 20 4c 69 6d  69 74 20 64 61 74 61 20  |~|/. Limit data |
000142a0  73 65 6e 74 20 74 6f 20  74 68 65 20 61 6c 6c 6f  |sent to the allo|
000142b0  77 65 64 20 62 6c 6f 63  6b 20 73 69 7a 65 0d 7e  |wed block size.~|
000142c0  86 2e f4 20 61 6e 64 20  63 6c 6f 73 65 20 74 68  |... and close th|
000142d0  65 20 6d 65 6e 75 20 69  66 20 62 75 66 66 65 72  |e menu if buffer|
000142e0  20 69 73 20 6e 6f 74 20  66 75 6c 6c 0d 7e 90 3f  | is not full.~.?|
000142f0  e7 20 64 61 74 61 5f 73  69 7a 65 25 3e 62 75 66  |. data_size%>buf|
00014300  5f 73 69 7a 65 25 20 8c  20 64 61 74 61 5f 73 69  |_size% . data_si|
00014310  7a 65 25 3d 62 75 66 5f  73 69 7a 65 25 20 8b 20  |ze%=buf_size% . |
00014320  f2 6d 65 6e 75 5f 63 6c  6f 73 65 0d 7e 9a 05 3a  |.menu_close.~..:|
00014330  0d 7e a4 33 f4 20 55 70  64 61 74 65 20 70 6f 69  |.~.3. Update poi|
00014340  6e 74 65 72 20 74 6f 20  6e 65 78 74 20 61 72 65  |nter to next are|
00014350  61 20 74 6f 20 62 65 20  74 72 61 6e 73 66 65 72  |a to be transfer|
00014360  72 65 64 0d 7e ae 1d 6d  65 6d 5f 64 61 74 61 5f  |red.~..mem_data_|
00014370  70 74 72 25 2b 3d 64 61  74 61 5f 73 69 7a 65 25  |ptr%+=data_size%|
00014380  0d 7e b8 05 3a 0d 7e c2  41 f4 20 54 65 6c 6c 20  |.~..:.~.A. Tell |
00014390  74 68 65 20 6f 74 68 65  72 20 74 61 73 6b 20 74  |the other task t|
000143a0  6f 20 6c 6f 61 64 20 64  61 74 61 20 62 79 20 73  |o load data by s|
000143b0  65 6e 64 69 6e 67 20 61  20 27 52 41 4d 54 72 61  |ending a 'RAMTra|
000143c0  6e 73 6d 69 74 27 0d 7e  cc 2f 62 6c 6b 25 21 31  |nsmit'.~./blk%!1|
000143d0  32 3d 62 6c 6b 25 21 38  3a 62 6c 6b 25 21 31 36  |2=blk%!8:blk%!16|
000143e0  3d 37 3a 62 6c 6b 25 21  32 34 3d 64 61 74 61 5f  |=7:blk%!24=data_|
000143f0  73 69 7a 65 25 0d 7e d6  28 c8 99 20 22 57 69 6d  |size%.~.(.. "Wim|
00014400  70 5f 53 65 6e 64 4d 65  73 73 61 67 65 22 2c 31  |p_SendMessage",1|
00014410  37 2c 62 6c 6b 25 2c 62  6c 6b 25 21 34 0d 7e e0  |7,blk%,blk%!4.~.|
00014420  05 e1 0d 7e ea 05 3a 0d  7e f4 4e f4 20 2d 2d 2d  |...~..:.~.N. ---|
00014430  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00014470  2d 2d 2d 2d 2d 0d 7e fe  3a f4 20 20 20 20 20 20  |-----.~.:.      |
00014480  20 20 20 20 20 20 20 20  20 4c 6f 61 64 20 64 61  |         Load da|
00014490  74 61 20 66 72 6f 6d 20  61 6e 6f 74 68 65 72 20  |ta from another |
000144a0  74 61 73 6b 20 76 69 61  20 6d 65 6d 6f 72 79 0d  |task via memory.|
000144b0  7f 08 4e f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..N. -----------|
000144c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000144f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 7f 12  |-------------...|
00014500  05 3a 0d 7f 1c 12 dd f2  72 61 6d 5f 74 72 61 6e  |.:......ram_tran|
00014510  73 6d 69 74 0d 7f 26 04  0d 7f 30 48 f4 20 41 6e  |smit..&...0H. An|
00014520  6f 74 68 65 72 20 74 61  73 6b 20 68 61 73 20 61  |other task has a|
00014530  67 72 65 65 64 20 74 6f  20 75 73 65 20 6d 65 6d  |greed to use mem|
00014540  6f 72 79 20 66 6f 72 20  74 68 65 20 74 72 61 6e  |ory for the tran|
00014550  73 66 65 72 20 74 6f 20  74 68 69 73 20 6f 6e 65  |sfer to this one|
00014560  0d 7f 3a 13 72 61 6d 5f  74 72 61 6e 73 6d 69 74  |..:.ram_transmit|
00014570  25 3d b9 0d 7f 44 1b 6d  65 6d 5f 64 61 74 61 5f  |%=...D.mem_data_|
00014580  73 69 7a 65 25 2b 3d 62  6c 6b 25 21 32 34 0d 7f  |size%+=blk%!24..|
00014590  4e 21 20 20 e7 20 62 6c  6b 25 21 32 34 3d 72 61  |N!  . blk%!24=ra|
000145a0  6d 5f 62 6c 6f 63 6b 5f  73 69 7a 65 25 20 8c 0d  |m_block_size% ..|
000145b0  7f 58 31 20 20 20 20 f4  20 4e 6f 74 20 61 6c 6c  |.X1    . Not all|
000145c0  20 74 68 65 20 64 61 74  61 20 68 61 73 20 62 65  | the data has be|
000145d0  65 6e 20 72 65 63 69 65  76 65 64 20 79 65 74 2e  |en recieved yet.|
000145e0  0d 7f 62 32 20 20 20 20  f4 20 43 68 65 63 6b 20  |..b2    . Check |
000145f0  69 66 20 74 68 65 72 65  20 69 73 20 72 6f 6f 6d  |if there is room|
00014600  20 66 6f 72 20 61 6e 6f  74 68 65 72 20 62 6c 6f  | for another blo|
00014610  63 6b 0d 7f 6c 39 20 20  20 20 e7 20 6d 65 6d 5f  |ck..l9    . mem_|
00014620  64 61 74 61 5f 73 69 7a  65 25 2b 72 61 6d 5f 62  |data_size%+ram_b|
00014630  6c 6f 63 6b 5f 73 69 7a  65 25 3e 6d 65 6d 5f 61  |lock_size%>mem_a|
00014640  72 65 61 5f 73 69 7a 65  25 20 8c 0d 7f 76 4b 20  |rea_size% ...vK |
00014650  20 20 20 20 20 f2 72 65  70 6f 72 74 5f 65 72 72  |     .report_err|
00014660  6f 72 28 22 49 6e 73 75  66 66 69 63 69 65 6e 74  |or("Insufficient|
00014670  20 72 6f 6f 6d 20 66 6f  72 20 64 61 74 61 21 22  | room for data!"|
00014680  2c 22 52 41 4d 20 74 72  61 6e 73 66 65 72 20 65  |,"RAM transfer e|
00014690  72 72 6f 72 22 29 0d 7f  80 1a 20 20 20 20 20 20  |rror")....      |
000146a0  6d 65 6d 5f 64 61 74 61  5f 73 69 7a 65 25 3d 30  |mem_data_size%=0|
000146b0  0d 7f 8a 09 20 20 20 20  cc 0d 7f 94 2a 20 20 20  |....    ....*   |
000146c0  20 20 20 f4 20 53 65 6e  64 20 61 6e 6f 74 68 65  |   . Send anothe|
000146d0  72 20 52 41 4d 20 66 65  74 63 68 20 6d 65 73 73  |r RAM fetch mess|
000146e0  61 67 65 0d 7f 9e 22 20  20 20 20 20 20 62 6c 6b  |age..."      blk|
000146f0  25 21 32 30 2b 3d 72 61  6d 5f 62 6c 6f 63 6b 5f  |%!20+=ram_block_|
00014700  73 69 7a 65 25 0d 7f a8  22 20 20 20 20 20 20 62  |size%..."      b|
00014710  6c 6b 25 21 31 32 3d 62  6c 6b 25 21 38 3a 62 6c  |lk%!12=blk%!8:bl|
00014720  6b 25 21 31 36 3d 36 0d  7f b2 2e 20 20 20 20 20  |k%!16=6....     |
00014730  20 c8 99 20 22 57 69 6d  70 5f 53 65 6e 64 4d 65  | .. "Wimp_SendMe|
00014740  73 73 61 67 65 22 2c 31  38 2c 62 6c 6b 25 2c 62  |ssage",18,blk%,b|
00014750  6c 6b 25 21 34 0d 7f bc  09 20 20 20 20 cd 0d 7f  |lk%!4....    ...|
00014760  c6 07 20 20 cc 0d 7f d0  23 20 20 20 20 f4 20 44  |..  ....#    . D|
00014770  41 54 41 20 74 72 61 6e  73 66 65 72 20 69 73 20  |ATA transfer is |
00014780  63 6f 6d 70 6c 65 74 65  0d 7f da 07 20 20 cd 0d  |complete....  ..|
00014790  7f e4 05 e1 0d 7f ee 05  3a 0d 7f f8 4e f4 20 2d  |........:...N. -|
000147a0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000147e0  2d 2d 2d 2d 2d 2d 2d 0d  80 02 38 f4 20 20 20 20  |-------...8.    |
000147f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
00014800  61 76 65 20 61 6e 20 61  72 65 61 20 6f 66 20 6d  |ave an area of m|
00014810  65 6d 6f 72 79 20 74 6f  20 61 20 66 69 6c 65 0d  |emory to a file.|
00014820  80 0c 4e f4 20 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |..N. -----------|
00014830  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00014860  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0d 80 16  |-------------...|
00014870  05 3a 0d 80 20 35 dd f2  73 61 76 65 5f 64 61 74  |.:.. 5..save_dat|
00014880  61 28 66 69 6c 65 5f 6e  61 6d 65 24 2c 66 69 6c  |a(file_name$,fil|
00014890  65 5f 74 79 70 65 25 2c  73 74 61 72 74 25 2c 6c  |e_type%,start%,l|
000148a0  65 6e 67 74 68 25 29 0d  80 2a 14 f4 20 50 52 4f  |ength%)..*.. PRO|
000148b0  43 73 61 76 65 5f 73 65  74 75 70 0d 80 34 3f c8  |Csave_setup..4?.|
000148c0  99 22 4f 53 5f 46 69 6c  65 22 2c 31 30 2c 66 69  |."OS_File",10,fi|
000148d0  6c 65 5f 6e 61 6d 65 24  2c 66 69 6c 65 5f 74 79  |le_name$,file_ty|
000148e0  70 65 25 2c 2c 73 74 61  72 74 25 2c 73 74 61 72  |pe%,,start%,star|
000148f0  74 25 2b 6c 65 6e 67 74  68 25 0d 80 3e 05 e1 0d  |t%+length%..>...|
00014900  80 48 05 3a 0d 80 52 2b  dd f2 64 72 61 67 5f 62  |.H.:..R+..drag_b|
00014910  6f 78 28 77 69 6e 64 6f  77 5f 68 61 6e 64 6c 65  |ox(window_handle|
00014920  25 2c 69 63 6f 6e 5f 68  61 6e 64 6c 65 25 29 0d  |%,icon_handle%).|
00014930  80 5c 0b ea 20 78 25 2c  79 25 0d 80 66 1e 74 65  |.\.. x%,y%..f.te|
00014940  6d 70 5f 62 6c 6b 25 21  30 3d 77 69 6e 64 6f 77  |mp_blk%!0=window|
00014950  5f 68 61 6e 64 6c 65 25  0d 80 70 26 c8 99 22 57  |_handle%..p&.."W|
00014960  69 6d 70 5f 47 65 74 57  69 6e 64 6f 77 53 74 61  |imp_GetWindowSta|
00014970  74 65 22 2c 2c 74 65 6d  70 5f 62 6c 6b 25 0d 80  |te",,temp_blk%..|
00014980  7a 1f 78 25 3d 74 65 6d  70 5f 62 6c 6b 25 21 34  |z.x%=temp_blk%!4|
00014990  2d 74 65 6d 70 5f 62 6c  6b 25 21 32 30 0d 80 84  |-temp_blk%!20...|
000149a0  20 79 25 3d 74 65 6d 70  5f 62 6c 6b 25 21 31 36  | y%=temp_blk%!16|
000149b0  2d 74 65 6d 70 5f 62 6c  6b 25 21 32 34 0d 80 8e  |-temp_blk%!24...|
000149c0  05 3a 0d 80 98 1c 74 65  6d 70 5f 62 6c 6b 25 21  |.:....temp_blk%!|
000149d0  34 3d 69 63 6f 6e 5f 68  61 6e 64 6c 65 25 0d 80  |4=icon_handle%..|
000149e0  a2 24 c8 99 22 57 69 6d  70 5f 47 65 74 49 63 6f  |.$.."Wimp_GetIco|
000149f0  6e 53 74 61 74 65 22 2c  2c 74 65 6d 70 5f 62 6c  |nState",,temp_bl|
00014a00  6b 25 0d 80 ac 05 3a 0d  80 b6 39 f4 20 44 6f 6e  |k%....:...9. Don|
00014a10  27 74 20 61 6c 6c 6f 77  20 69 63 6f 6e 73 20 77  |'t allow icons w|
00014a20  69 74 68 20 62 75 74 74  6f 6e 20 74 79 70 65 20  |ith button type |
00014a30  31 31 20 74 6f 20 62 65  20 64 72 61 67 67 65 64  |11 to be dragged|
00014a40  0d 80 c0 24 e7 20 28 74  65 6d 70 5f 62 6c 6b 25  |...$. (temp_blk%|
00014a50  21 32 34 20 80 20 26 42  30 30 30 29 3d 26 42 30  |!24 . &B000)=&B0|
00014a60  30 30 20 e1 0d 80 ca 05  3a 0d 80 d4 44 f4 20 44  |00 .....:...D. D|
00014a70  6f 6e 27 74 20 61 6c 6c  6f 77 20 68 69 64 64 65  |on't allow hidde|
00014a80  6e 20 69 63 6f 6e 73 20  74 6f 20 62 65 20 64 72  |n icons to be dr|
00014a90  61 67 67 65 64 20 28 69  65 20 77 68 65 6e 20 62  |agged (ie when b|
00014aa0  69 74 20 32 33 20 69 73  20 73 65 74 29 0d 80 de  |it 23 is set)...|
00014ab0  28 e7 20 28 74 65 6d 70  5f 62 6c 6b 25 21 32 34  |(. (temp_blk%!24|
00014ac0  20 80 20 26 38 30 30 30  30 30 29 3d 26 38 30 30  | . &800000)=&800|
00014ad0  30 30 30 20 e1 0d 80 e8  05 3a 0d 80 f2 11 74 65  |000 .....:....te|
00014ae0  6d 70 5f 62 6c 6b 25 21  34 3d 35 0d 80 fc 13 74  |mp_blk%!4=5....t|
00014af0  65 6d 70 5f 62 6c 6b 25  21 38 2b 3d 78 25 0d 81  |emp_blk%!8+=x%..|
00014b00  06 14 74 65 6d 70 5f 62  6c 6b 25 21 31 32 2b 3d  |..temp_blk%!12+=|
00014b10  79 25 0d 81 10 14 74 65  6d 70 5f 62 6c 6b 25 21  |y%....temp_blk%!|
00014b20  31 36 2b 3d 78 25 0d 81  1a 14 74 65 6d 70 5f 62  |16+=x%....temp_b|
00014b30  6c 6b 25 21 32 30 2b 3d  79 25 0d 81 24 13 74 65  |lk%!20+=y%..$.te|
00014b40  6d 70 5f 62 6c 6b 25 21  32 34 3d 2d 31 0d 81 2e  |mp_blk%!24=-1...|
00014b50  13 74 65 6d 70 5f 62 6c  6b 25 21 32 38 3d 2d 31  |.temp_blk%!28=-1|
00014b60  0d 81 38 1a 74 65 6d 70  5f 62 6c 6b 25 21 33 32  |..8.temp_blk%!32|
00014b70  3d 26 37 46 46 46 46 46  46 46 0d 81 42 1a 74 65  |=&7FFFFFFF..B.te|
00014b80  6d 70 5f 62 6c 6b 25 21  33 36 3d 26 37 46 46 46  |mp_blk%!36=&7FFF|
00014b90  46 46 46 46 0d 81 4c 1f  c8 99 22 57 69 6d 70 5f  |FFFF..L..."Wimp_|
00014ba0  44 72 61 67 42 6f 78 22  2c 2c 74 65 6d 70 5f 62  |DragBox",,temp_b|
00014bb0  6c 6b 25 0d 81 56 05 e1  0d 81 60 04 0d 81 6a 04  |lk%..V....`...j.|
00014bc0  0d ff 61 6d 65 0d 50 75  2c 0f 00 00 0c 10 1f e5  |..ame.Pu,.......|
00014bd0  0c 10 81 e0 14 10 0f e5  18 d0 4f e2 00 40 2d e9  |..........O..@-.|
00014be0  20 00 1f e5 43 10 8f e2  09 20 a0 e3 d4 00 00 ef  | ...C.... ......|
00014bf0  24 00 9f e5 34 10 1f e5  01 00 80 e0 34 10 8f e2  |$...4.......4...|
00014c00  09 20 a0 e3 d4 00 00 ef  2c 00 a0 e3 23 00 cf e5  |. ......,...#...|
00014c10  08 00 8f e2 05 00 00 ef  00 80 bd e8 96 4b 01 00  |.............K..|
00014c20  2a 42 61 73 69 63 20 2d  71 75 69 74 20 20 40 00  |*Basic -quit  @.|
00014c30  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
00014c40  00 00 00 00                                       |....|
00014c44