Home » Personal collection » Acorn ADFS disks » Electron » Games_1.ADF » Menu

Menu

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 » Personal collection » Acorn ADFS disks » Electron » Games_1.ADF
Filename: Menu
Read OK:
File size: 151E bytes
Load address: FFFF0E00
Exec address: FFFF8023
File contents
   10 REM User-Friendly Menu System
   20 REM (C) Steve Wyeth 1989
   30 MODE 4
   40 *FX 4,1
   50 REM *FX 229,1
   60 PROC_variable_definitions
   70 PROC_fill_arrays
   80 PROC_print_screen
   90 PROC_print_menu_items
  100 REPEAT
  110 PROC_print_current_option
  120 PROC_accept_input_from_user
  130 IF flag = FALSE THEN PROC_delete_current_option   
  140 UNTIL flag = TRUE   
  150 *FX 4,0
  160 PROC_load_game
  170 END
  180 :
  190 DEF PROC_variable_definitions
  200 blue          = 4  
  210 white         = 7 
  220 background    = 0   
  230 foreground    = 1   
  240 current_entry = 1 
  250 READ menu_entries   
  260 DIM position$(menu_entries)
  270 DIM entry$(menu_entries)
  280 DIM loading$(menu_entries)
  290 DIM filename$(menu_entries)  
  300 DIM note$(menu_entries)
  310 pos           = 0  
  320 old_entry     = 1  
  330 flag          = FALSE    
  340 entry_flag    = FALSE   
  350 User_Input$   = ""    
  360 ENDPROC
  370 :
  380 DEF PROC_fill_arrays
  390 FOR loop% = 1 TO menu_entries
  400 READ position$(loop%)
  410 READ entry$(loop%)
  420 READ loading$(loop%)
  430 READ filename$(loop%)
  440 READ note$(loop%)
  450 NEXT loop%
  460 ENDPROC
  470 :
  480 DEF PROC_print_screen
  490 VDU 19,background,blue;0;  
  500 VDU 19,foreground,white;0;  
  510 PROC_character_definitions
  520 VDU 23;8202;0;0;0;
  530 PROC_print_background
  540 PROC_pretty_border(584,1008,4)   
  550 MOVE 584,992   
  560 PRINT "MENU"
  570 VDU 4
  580 COLOUR 129
  590 COLOUR 0
  600 PROC_rectangle(250,200,782,650) 
  610 PROC_pretty_border(96,108,34)
  620 PROC_pretty_border(96,76,34)     
  630 PRINTTAB(3,29);"  Please select the required game "
  640 PRINT TAB(5,30);SPC(7);"by ";CHR$130;CHR$131;" and RETURN"
  650 GCOL 0,1
  660 PLOT 69,1184,72
  670 PLOT 69,1184,76
  680 ENDPROC
  690 :
  700 DEF PROC_character_definitions
  710 REM Up Arrow
  720 VDU 23,130,24,60,60,126,24,24,24,24
  730 REM Down Arrow
  740 VDU 23,131,24,24,24,24,126,60,60,24
  750 REM Background Character
  760 VDU 23,132,146,36,73,146,36,73,146,36     
  770 ENDPROC
  780 :
  790 DEF PROC_print_background
  800 FOR loop%=0 TO 31
  810 PRINT TAB(0,loop%);STRING$(40,CHR$132);
  820 NEXT loop%
  830 VDU 5
  840 MOVE 0,28
  850 PRINT STRING$(40,CHR$132)  
  860 ENDPROC
  870 :
  880 DEF PROC_pretty_border(X_Co_ord%,Y_Co_ord%,String_Length%)
  890 GCOL 0,0
  900 Y_Adjustment%=Y_Co_ord%-64    
  910 X_Adjustment%=X_Co_ord%+String_Length%*32   
  920 MOVE X_Co_ord%,Y_Co_ord%
  930 MOVE X_Co_ord%,Y_Co_ord%-16    
  940 PLOT 85,X_Co_ord%-32,Y_Co_ord%-16
  950 PLOT 85,X_Co_ord%-32,Y_Co_ord%-48
  960 MOVE X_Co_ord%,Y_Co_ord%-48   
  970 PLOT 85,X_Co_ord%,Y_Co_ord%-16
  980 MOVE X_Co_ord%,Y_Co_ord%-48  
  990 MOVE X_Co_ord%-32,Y_Co_ord%-48 
 1000 PLOT 85,X_Co_ord%,Y_Co_ord%-64  
 1010 MOVE X_Adjustment%,Y_Co_ord%
 1020 MOVE X_Adjustment%,Y_Co_ord%-16
 1030 PLOT 85,X_Adjustment%+32,Y_Co_ord%-16   
 1040 PLOT 85,X_Adjustment%+32,Y_Co_ord%-48
 1050 MOVE X_Adjustment%,Y_Co_ord%-48
 1060 PLOT 85,X_Adjustment%,Y_Co_ord%-16    
 1070 MOVE X_Adjustment%,Y_Co_ord%-48  
 1080 MOVE X_Adjustment%+32,Y_Co_ord%-48   
 1090 PLOT 85,X_Adjustment%,Y_Co_ord%-64   
 1100 MOVE X_Co_ord%,Y_Co_ord%
 1110 MOVE X_Co_ord%,Y_Adjustment%  
 1120 PLOT 85,X_Adjustment%,Y_Co_ord%    
 1130 PLOT 85,X_Adjustment%,Y_Adjustment%
 1140 GCOL 0,1
 1150 MOVE X_Co_ord%,Y_Co_ord%-8
 1160 MOVE X_Co_ord%,Y_Adjustment%+8
 1170 PLOT 85,X_Adjustment%,Y_Co_ord%-8 
 1180 PLOT 85,X_Adjustment%,Y_Adjustment%+8    
 1190 GCOL 0,0
 1200 ENDPROC
 1210 :
 1220 DEF PROC_rectangle(X_Co_ord%,Y_Co_ord%,Width%,Height%)
 1230 VDU 24,X_Co_ord%;Y_Co_ord%;X_Co_ord%+Width%;Y_Co_ord%+Height%;
 1240 CLG
 1250 VDU 26
 1260 GCOL 0,1
 1270 MOVE X_Co_ord%,Y_Co_ord%
 1280 DRAW X_Co_ord%,Y_Co_ord%+Height%
 1290 DRAW X_Co_ord%+Width%,Y_Co_ord%+Height%
 1300 DRAW X_Co_ord%+Width%,Y_Co_ord%
 1310 DRAW X_Co_ord%,Y_Co_ord%
 1320 ENDPROC    
 1330 :
 1340 DEF PROC_print_menu_items
 1350 COLOUR 1
 1360 COLOUR 128
 1370 FOR loop% = 1 TO menu_entries
 1380 PRINT TAB(10,loop%+6);position$(loop%);": ";entry$(loop%)    
 1390 NEXT loop%
 1400 ENDPROC
 1410 :
 1420 DEF PROC_print_current_option
 1430 COLOUR 0
 1440 COLOUR 129
 1450 PRINT TAB(9,current_entry+6);" ";position$(current_entry);": ";entry$(current_entry);    
 1460 pos = POS
 1470 FOR loop% = pos TO 30
 1480 PRINT " ";
 1490 NEXT
 1500 ENDPROC
 1510 :
 1520 DEF PROC_accept_input_from_user
 1530 *FX 15
 1540 entry_flag  = FALSE  
 1550 User_Input$ = ""  
 1560 REPEAT
 1570 User_Input$=INKEY$(20)
 1580 PROC_validate_input
 1590 UNTIL entry_flag = TRUE
 1600 old_entry = current_entry
 1610 IF User_Input$ = CHR$138 THEN current_entry = current_entry +1
 1620 IF User_Input$ = CHR$139 THEN current_entry = current_entry -1
 1630 IF User_Input$ = CHR$13 THEN flag = TRUE    
 1640 IF (ASC(User_Input$)-64)>0 AND (ASC(User_Input$)-64)<=menu_entries THEN current_entry = (ASC(User_Input$)-64) 
 1650 IF User_Input$ = CHR$138 AND (current_entry > menu_entries) THEN current_entry = 1
 1660 IF User_Input$ = CHR$139 AND (current_entry < 1) THEN current_entry = menu_entries
 1670 ENDPROC
 1680 :
 1690 DEF PROC_validate_input
 1700 IF User_Input$=CHR$139 OR User_Input$=CHR$138 OR User_Input$=CHR$13 THEN entry_flag=TRUE
 1710 IF (ASC(User_Input$)-64)>0 AND (ASC(User_Input$)-64)<=menu_entries THEN entry_flag = TRUE
 1720 ENDPROC
 1730 :
 1740 DEF PROC_delete_current_option
 1750 COLOUR 1
 1760 COLOUR 128
 1770 PRINT TAB(9,old_entry+6);" ";position$(old_entry);": ";entry$(old_entry);
 1780 pos = POS
 1790 FOR loop% = pos TO 30  
 1800 PRINT " ";  
 1810 NEXT
 1820 ENDPROC
 1830 :
 1840 DEF PROC_load_game
 1850 PROC_check_notes
 1860 IF loading$(current_entry) = "CHAIN" THEN CHAIN filename$(current_entry)
 1870 IF loading$(current_entry) = "*EXEC" THEN OSCLI("EXEC" + filename$(current_entry))
 1875IF loading$(current_entry) = "DIR" THEN OSCLI("DIR " + filename$(current_entry)):CHAIN "RUN_THIS"     
 1880 IF loading$(current_entry) = "*RUN" THEN OSCLI("RUN" + filename$(current_entry))
 1890 ENDPROC
 1900 :
 1910 DEF PROC_check_notes
 1920 IF INSTR(note$(current_entry),"M") = 1 THEN VDU 22,VAL(MID$(note$(current_entry),2,1))
 1930 ENDPROC
 1940 :
 1950 REM ***************
 1960 REM ** Data Area **
 1970 REM ***************
 1980 REM :
 1990 REM OSCLI (e.g. *RUN) calls need
 2000 REM full pathname including drive
 2010 REM :
 2020DATA 7
 2030DATA A,Elite,DIR,ELITE,XX
 2040DATA B,Chess,DIR,CHESS,XX
 2050DATA C,Frak!,DIR,FRAK!,XX
 2060DATA D,Qwak,DIR,QWAK,XX
 2070DATA E,Pipemania,DIR,PIPEMANIA,XX
 2080DATA F,Tetris,DIR,TETRIS,XX
 2090DATA G,Make-4,DIR,MAKE-4,XX

  � User-Friendly Menu System
 � (C) Steve Wyeth 1989
 � 4
( *FX 4,1
2 � *FX 229,1
< �_variable_definitions
F �_fill_arrays
P �_print_screen
Z �_print_menu_items
d �
n �_print_current_option
x �_accept_input_from_user
�, � flag = � � �_delete_current_option   
� � flag = �   
� *FX 4,0
� �_load_game
� �
� :
� � �_variable_definitions
� blue          = 4  
� white         = 7 
� background    = 0   
� foreground    = 1   
� current_entry = 1 
� � menu_entries   
 � position$(menu_entries)
 � entry$(menu_entries)
 � loading$(menu_entries)
"  � filename$(menu_entries)  
, � note$(menu_entries)
6 pos           = 0  
@ old_entry     = 1  
J flag          = �    
T entry_flag    = �   
^ User_Input$   = ""    
h �
r :
| � �_fill_arrays
� � loop% = 1 � menu_entries
� � position$(loop%)
� � entry$(loop%)
� � loading$(loop%)
� � filename$(loop%)
� � note$(loop%)
� � loop%
� �
� :
� � �_print_screen
� � 19,background,blue;0;  
� � 19,foreground,white;0;  
� �_character_definitions
 � 23;8202;0;0;0;
 �_print_background
# �_pretty_border(584,1008,4)   
& � 584,992   
0
 � "MENU"
: � 4
D
 � 129
N � 0
X" �_rectangle(250,200,782,650) 
b �_pretty_border(96,108,34)
l# �_pretty_border(96,76,34)     
v1 �3,29);"  Please select the required game "
�0 � �5,30);�(7);"by ";�130;�131;" and RETURN"
�
 � 0,1
� � 69,1184,72
� � 69,1184,76
� �
� :
� � �_character_definitions
� � Up Arrow
�& � 23,130,24,60,60,126,24,24,24,24
� � Down Arrow
�& � 23,131,24,24,24,24,126,60,60,24
� � Background Character
�- � 23,132,146,36,73,146,36,73,146,36     
 �
 :
 � �_print_background
  � loop%=0 � 31
* � �0,loop%);�40,�132);
4 � loop%
> � 5
H � 0,28
R � �40,�132)  
\ �
f :
p: � �_pretty_border(X_Co_ord%,Y_Co_ord%,String_Length%)
z
 � 0,0
�# Y_Adjustment%=Y_Co_ord%-64    
�1 X_Adjustment%=X_Co_ord%+String_Length%*32   
� � X_Co_ord%,Y_Co_ord%
�! � X_Co_ord%,Y_Co_ord%-16    
�# � 85,X_Co_ord%-32,Y_Co_ord%-16
�# � 85,X_Co_ord%-32,Y_Co_ord%-48
�  � X_Co_ord%,Y_Co_ord%-48   
�  � 85,X_Co_ord%,Y_Co_ord%-16
� � X_Co_ord%,Y_Co_ord%-48  
�! � X_Co_ord%-32,Y_Co_ord%-48 
�" � 85,X_Co_ord%,Y_Co_ord%-64  
� � X_Adjustment%,Y_Co_ord%
�! � X_Adjustment%,Y_Co_ord%-16
* � 85,X_Adjustment%+32,Y_Co_ord%-16   
' � 85,X_Adjustment%+32,Y_Co_ord%-48
! � X_Adjustment%,Y_Co_ord%-48
$( � 85,X_Adjustment%,Y_Co_ord%-16    
.# � X_Adjustment%,Y_Co_ord%-48  
8' � X_Adjustment%+32,Y_Co_ord%-48   
B' � 85,X_Adjustment%,Y_Co_ord%-64   
L � X_Co_ord%,Y_Co_ord%
V  � X_Co_ord%,Y_Adjustment%  
`% � 85,X_Adjustment%,Y_Co_ord%    
j% � 85,X_Adjustment%,Y_Adjustment%
t
 � 0,1
~ � X_Co_ord%,Y_Co_ord%-8
�  � X_Co_ord%,Y_Adjustment%+8
�$ � 85,X_Adjustment%,Y_Co_ord%-8 
�+ � 85,X_Adjustment%,Y_Adjustment%+8    
�
 � 0,0
� �
� :
�6 � �_rectangle(X_Co_ord%,Y_Co_ord%,Width%,Height%)
�A � 24,X_Co_ord%;Y_Co_ord%;X_Co_ord%+Width%;Y_Co_ord%+Height%;
� �
�	 � 26
�
 � 0,1
� � X_Co_ord%,Y_Co_ord%
" � X_Co_ord%,Y_Co_ord%+Height%

) � X_Co_ord%+Width%,Y_Co_ord%+Height%
! � X_Co_ord%+Width%,Y_Co_ord%
 � X_Co_ord%,Y_Co_ord%
(
 �    
2 :
< � �_print_menu_items
F � 1
P
 � 128
Z � loop% = 1 � menu_entries
d; � �10,loop%+6);position$(loop%);": ";entry$(loop%)    
n � loop%
x �
� :
� � �_print_current_option
� � 0
�
 � 129
�W � �9,current_entry+6);" ";position$(current_entry);": ";entry$(current_entry);    
� pos = �
� � loop% = pos � 30
� � " ";
� �
� �
� :
� � �_accept_input_from_user
� *FX 15
 entry_flag  = �  
 User_Input$ = ""  
 �
" User_Input$=�(20)
, �_validate_input
6 � entry_flag = �
@ old_entry = current_entry
J< � User_Input$ = �138 � current_entry = current_entry +1
T< � User_Input$ = �139 � current_entry = current_entry -1
^' � User_Input$ = �13 � flag = �    
hg � (�(User_Input$)-64)>0 � (�(User_Input$)-64)<=menu_entries � current_entry = (�(User_Input$)-64) 
rN � User_Input$ = �138 � (current_entry > menu_entries) � current_entry = 1
|N � User_Input$ = �139 � (current_entry < 1) � current_entry = menu_entries
� �
� :
� � �_validate_input
�K � User_Input$=�139 � User_Input$=�138 � User_Input$=�13 � entry_flag=�
�Q � (�(User_Input$)-64)>0 � (�(User_Input$)-64)<=menu_entries � entry_flag = �
� �
� :
� � �_delete_current_option
� � 1
�
 � 128
�G � �9,old_entry+6);" ";position$(old_entry);": ";entry$(old_entry);
� pos = �
� � loop% = pos � 30  

 � " ";  
 �
 �
& :
0 � �_load_game
: �_check_notes
DE � loading$(current_entry) = "CHAIN" � � filename$(current_entry)
NO � loading$(current_entry) = "*EXEC" � �("EXEC" + filename$(current_entry))
S^� loading$(current_entry) = "DIR" � �("DIR " + filename$(current_entry)):� "RUN_THIS"     
XM � loading$(current_entry) = "*RUN" � �("RUN" + filename$(current_entry))
b �
l :
v � �_check_notes
�J � �note$(current_entry),"M") = 1 � � 22,�(�note$(current_entry),2,1))
� �
� :
� � ***************
� � ** Data Area **
� � ***************
� � :
�# � OSCLI (e.g. *RUN) calls need
�$ � full pathname including drive
� � :
�� 7
�� A,Elite,DIR,ELITE,XX
�� B,Chess,DIR,CHESS,XX
� C,Frak!,DIR,FRAK!,XX
� D,Qwak,DIR,QWAK,XX
"� E,Pipemania,DIR,PIPEMANIA,XX
 � F,Tetris,DIR,TETRIS,XX
*� G,Make-4,DIR,MAKE-4,XX
�
00000000  0d 00 0a 20 20 f4 20 55  73 65 72 2d 46 72 69 65  |...  . User-Frie|
00000010  6e 64 6c 79 20 4d 65 6e  75 20 53 79 73 74 65 6d  |ndly Menu System|
00000020  0d 00 14 1b 20 f4 20 28  43 29 20 53 74 65 76 65  |.... . (C) Steve|
00000030  20 57 79 65 74 68 20 31  39 38 39 0d 00 1e 08 20  | Wyeth 1989.... |
00000040  eb 20 34 0d 00 28 0c 20  2a 46 58 20 34 2c 31 0d  |. 4..(. *FX 4,1.|
00000050  00 32 10 20 f4 20 2a 46  58 20 32 32 39 2c 31 0d  |.2. . *FX 229,1.|
00000060  00 3c 1b 20 f2 5f 76 61  72 69 61 62 6c 65 5f 64  |.<. ._variable_d|
00000070  65 66 69 6e 69 74 69 6f  6e 73 0d 00 46 12 20 f2  |efinitions..F. .|
00000080  5f 66 69 6c 6c 5f 61 72  72 61 79 73 0d 00 50 13  |_fill_arrays..P.|
00000090  20 f2 5f 70 72 69 6e 74  5f 73 63 72 65 65 6e 0d  | ._print_screen.|
000000a0  00 5a 17 20 f2 5f 70 72  69 6e 74 5f 6d 65 6e 75  |.Z. ._print_menu|
000000b0  5f 69 74 65 6d 73 0d 00  64 06 20 f5 0d 00 6e 1b  |_items..d. ...n.|
000000c0  20 f2 5f 70 72 69 6e 74  5f 63 75 72 72 65 6e 74  | ._print_current|
000000d0  5f 6f 70 74 69 6f 6e 0d  00 78 1d 20 f2 5f 61 63  |_option..x. ._ac|
000000e0  63 65 70 74 5f 69 6e 70  75 74 5f 66 72 6f 6d 5f  |cept_input_from_|
000000f0  75 73 65 72 0d 00 82 2c  20 e7 20 66 6c 61 67 20  |user..., . flag |
00000100  3d 20 a3 20 8c 20 f2 5f  64 65 6c 65 74 65 5f 63  |= . . ._delete_c|
00000110  75 72 72 65 6e 74 5f 6f  70 74 69 6f 6e 20 20 20  |urrent_option   |
00000120  0d 00 8c 12 20 fd 20 66  6c 61 67 20 3d 20 b9 20  |.... . flag = . |
00000130  20 20 0d 00 96 0c 20 2a  46 58 20 34 2c 30 0d 00  |  .... *FX 4,0..|
00000140  a0 10 20 f2 5f 6c 6f 61  64 5f 67 61 6d 65 0d 00  |.. ._load_game..|
00000150  aa 06 20 e0 0d 00 b4 06  20 3a 0d 00 be 1d 20 dd  |.. ..... :.... .|
00000160  20 f2 5f 76 61 72 69 61  62 6c 65 5f 64 65 66 69  | ._variable_defi|
00000170  6e 69 74 69 6f 6e 73 0d  00 c8 18 20 62 6c 75 65  |nitions.... blue|
00000180  20 20 20 20 20 20 20 20  20 20 3d 20 34 20 20 0d  |          = 4  .|
00000190  00 d2 17 20 77 68 69 74  65 20 20 20 20 20 20 20  |... white       |
000001a0  20 20 3d 20 37 20 0d 00  dc 19 20 62 61 63 6b 67  |  = 7 .... backg|
000001b0  72 6f 75 6e 64 20 20 20  20 3d 20 30 20 20 20 0d  |round    = 0   .|
000001c0  00 e6 19 20 66 6f 72 65  67 72 6f 75 6e 64 20 20  |... foreground  |
000001d0  20 20 3d 20 31 20 20 20  0d 00 f0 17 20 63 75 72  |  = 1   .... cur|
000001e0  72 65 6e 74 5f 65 6e 74  72 79 20 3d 20 31 20 0d  |rent_entry = 1 .|
000001f0  00 fa 16 20 f3 20 6d 65  6e 75 5f 65 6e 74 72 69  |... . menu_entri|
00000200  65 73 20 20 20 0d 01 04  1e 20 de 20 70 6f 73 69  |es   .... . posi|
00000210  74 69 6f 6e 24 28 6d 65  6e 75 5f 65 6e 74 72 69  |tion$(menu_entri|
00000220  65 73 29 0d 01 0e 1b 20  de 20 65 6e 74 72 79 24  |es).... . entry$|
00000230  28 6d 65 6e 75 5f 65 6e  74 72 69 65 73 29 0d 01  |(menu_entries)..|
00000240  18 1d 20 de 20 6c 6f 61  64 69 6e 67 24 28 6d 65  |.. . loading$(me|
00000250  6e 75 5f 65 6e 74 72 69  65 73 29 0d 01 22 20 20  |nu_entries).."  |
00000260  de 20 66 69 6c 65 6e 61  6d 65 24 28 6d 65 6e 75  |. filename$(menu|
00000270  5f 65 6e 74 72 69 65 73  29 20 20 0d 01 2c 1a 20  |_entries)  ..,. |
00000280  de 20 6e 6f 74 65 24 28  6d 65 6e 75 5f 65 6e 74  |. note$(menu_ent|
00000290  72 69 65 73 29 0d 01 36  18 20 70 6f 73 20 20 20  |ries)..6. pos   |
000002a0  20 20 20 20 20 20 20 20  3d 20 30 20 20 0d 01 40  |        = 0  ..@|
000002b0  18 20 6f 6c 64 5f 65 6e  74 72 79 20 20 20 20 20  |. old_entry     |
000002c0  3d 20 31 20 20 0d 01 4a  1a 20 66 6c 61 67 20 20  |= 1  ..J. flag  |
000002d0  20 20 20 20 20 20 20 20  3d 20 a3 20 20 20 20 0d  |        = .    .|
000002e0  01 54 19 20 65 6e 74 72  79 5f 66 6c 61 67 20 20  |.T. entry_flag  |
000002f0  20 20 3d 20 a3 20 20 20  0d 01 5e 1b 20 55 73 65  |  = .   ..^. Use|
00000300  72 5f 49 6e 70 75 74 24  20 20 20 3d 20 22 22 20  |r_Input$   = "" |
00000310  20 20 20 0d 01 68 06 20  e1 0d 01 72 06 20 3a 0d  |   ..h. ...r. :.|
00000320  01 7c 14 20 dd 20 f2 5f  66 69 6c 6c 5f 61 72 72  |.|. . ._fill_arr|
00000330  61 79 73 0d 01 86 1f 20  e3 20 6c 6f 6f 70 25 20  |ays.... . loop% |
00000340  3d 20 31 20 b8 20 6d 65  6e 75 5f 65 6e 74 72 69  |= 1 . menu_entri|
00000350  65 73 0d 01 90 17 20 f3  20 70 6f 73 69 74 69 6f  |es.... . positio|
00000360  6e 24 28 6c 6f 6f 70 25  29 0d 01 9a 14 20 f3 20  |n$(loop%).... . |
00000370  65 6e 74 72 79 24 28 6c  6f 6f 70 25 29 0d 01 a4  |entry$(loop%)...|
00000380  16 20 f3 20 6c 6f 61 64  69 6e 67 24 28 6c 6f 6f  |. . loading$(loo|
00000390  70 25 29 0d 01 ae 17 20  f3 20 66 69 6c 65 6e 61  |p%).... . filena|
000003a0  6d 65 24 28 6c 6f 6f 70  25 29 0d 01 b8 13 20 f3  |me$(loop%).... .|
000003b0  20 6e 6f 74 65 24 28 6c  6f 6f 70 25 29 0d 01 c2  | note$(loop%)...|
000003c0  0c 20 ed 20 6c 6f 6f 70  25 0d 01 cc 06 20 e1 0d  |. . loop%.... ..|
000003d0  01 d6 06 20 3a 0d 01 e0  15 20 dd 20 f2 5f 70 72  |... :.... . ._pr|
000003e0  69 6e 74 5f 73 63 72 65  65 6e 0d 01 ea 1e 20 ef  |int_screen.... .|
000003f0  20 31 39 2c 62 61 63 6b  67 72 6f 75 6e 64 2c 62  | 19,background,b|
00000400  6c 75 65 3b 30 3b 20 20  0d 01 f4 1f 20 ef 20 31  |lue;0;  .... . 1|
00000410  39 2c 66 6f 72 65 67 72  6f 75 6e 64 2c 77 68 69  |9,foreground,whi|
00000420  74 65 3b 30 3b 20 20 0d  01 fe 1c 20 f2 5f 63 68  |te;0;  .... ._ch|
00000430  61 72 61 63 74 65 72 5f  64 65 66 69 6e 69 74 69  |aracter_definiti|
00000440  6f 6e 73 0d 02 08 15 20  ef 20 32 33 3b 38 32 30  |ons.... . 23;820|
00000450  32 3b 30 3b 30 3b 30 3b  0d 02 12 17 20 f2 5f 70  |2;0;0;0;.... ._p|
00000460  72 69 6e 74 5f 62 61 63  6b 67 72 6f 75 6e 64 0d  |rint_background.|
00000470  02 1c 23 20 f2 5f 70 72  65 74 74 79 5f 62 6f 72  |..# ._pretty_bor|
00000480  64 65 72 28 35 38 34 2c  31 30 30 38 2c 34 29 20  |der(584,1008,4) |
00000490  20 20 0d 02 26 11 20 ec  20 35 38 34 2c 39 39 32  |  ..&. . 584,992|
000004a0  20 20 20 0d 02 30 0d 20  f1 20 22 4d 45 4e 55 22  |   ..0. . "MENU"|
000004b0  0d 02 3a 08 20 ef 20 34  0d 02 44 0a 20 fb 20 31  |..:. . 4..D. . 1|
000004c0  32 39 0d 02 4e 08 20 fb  20 30 0d 02 58 22 20 f2  |29..N. . 0..X" .|
000004d0  5f 72 65 63 74 61 6e 67  6c 65 28 32 35 30 2c 32  |_rectangle(250,2|
000004e0  30 30 2c 37 38 32 2c 36  35 30 29 20 0d 02 62 1f  |00,782,650) ..b.|
000004f0  20 f2 5f 70 72 65 74 74  79 5f 62 6f 72 64 65 72  | ._pretty_border|
00000500  28 39 36 2c 31 30 38 2c  33 34 29 0d 02 6c 23 20  |(96,108,34)..l# |
00000510  f2 5f 70 72 65 74 74 79  5f 62 6f 72 64 65 72 28  |._pretty_border(|
00000520  39 36 2c 37 36 2c 33 34  29 20 20 20 20 20 0d 02  |96,76,34)     ..|
00000530  76 31 20 f1 8a 33 2c 32  39 29 3b 22 20 20 50 6c  |v1 ..3,29);"  Pl|
00000540  65 61 73 65 20 73 65 6c  65 63 74 20 74 68 65 20  |ease select the |
00000550  72 65 71 75 69 72 65 64  20 67 61 6d 65 20 22 0d  |required game ".|
00000560  02 80 30 20 f1 20 8a 35  2c 33 30 29 3b 89 28 37  |..0 . .5,30);.(7|
00000570  29 3b 22 62 79 20 22 3b  bd 31 33 30 3b bd 31 33  |);"by ";.130;.13|
00000580  31 3b 22 20 61 6e 64 20  52 45 54 55 52 4e 22 0d  |1;" and RETURN".|
00000590  02 8a 0a 20 e6 20 30 2c  31 0d 02 94 11 20 f0 20  |... . 0,1.... . |
000005a0  36 39 2c 31 31 38 34 2c  37 32 0d 02 9e 11 20 f0  |69,1184,72.... .|
000005b0  20 36 39 2c 31 31 38 34  2c 37 36 0d 02 a8 06 20  | 69,1184,76.... |
000005c0  e1 0d 02 b2 06 20 3a 0d  02 bc 1e 20 dd 20 f2 5f  |..... :.... . ._|
000005d0  63 68 61 72 61 63 74 65  72 5f 64 65 66 69 6e 69  |character_defini|
000005e0  74 69 6f 6e 73 0d 02 c6  0f 20 f4 20 55 70 20 41  |tions.... . Up A|
000005f0  72 72 6f 77 0d 02 d0 26  20 ef 20 32 33 2c 31 33  |rrow...& . 23,13|
00000600  30 2c 32 34 2c 36 30 2c  36 30 2c 31 32 36 2c 32  |0,24,60,60,126,2|
00000610  34 2c 32 34 2c 32 34 2c  32 34 0d 02 da 11 20 f4  |4,24,24,24.... .|
00000620  20 44 6f 77 6e 20 41 72  72 6f 77 0d 02 e4 26 20  | Down Arrow...& |
00000630  ef 20 32 33 2c 31 33 31  2c 32 34 2c 32 34 2c 32  |. 23,131,24,24,2|
00000640  34 2c 32 34 2c 31 32 36  2c 36 30 2c 36 30 2c 32  |4,24,126,60,60,2|
00000650  34 0d 02 ee 1b 20 f4 20  42 61 63 6b 67 72 6f 75  |4.... . Backgrou|
00000660  6e 64 20 43 68 61 72 61  63 74 65 72 0d 02 f8 2d  |nd Character...-|
00000670  20 ef 20 32 33 2c 31 33  32 2c 31 34 36 2c 33 36  | . 23,132,146,36|
00000680  2c 37 33 2c 31 34 36 2c  33 36 2c 37 33 2c 31 34  |,73,146,36,73,14|
00000690  36 2c 33 36 20 20 20 20  20 0d 03 02 06 20 e1 0d  |6,36     .... ..|
000006a0  03 0c 06 20 3a 0d 03 16  19 20 dd 20 f2 5f 70 72  |... :.... . ._pr|
000006b0  69 6e 74 5f 62 61 63 6b  67 72 6f 75 6e 64 0d 03  |int_background..|
000006c0  20 13 20 e3 20 6c 6f 6f  70 25 3d 30 20 b8 20 33  | . . loop%=0 . 3|
000006d0  31 0d 03 2a 1b 20 f1 20  8a 30 2c 6c 6f 6f 70 25  |1..*. . .0,loop%|
000006e0  29 3b c4 34 30 2c bd 31  33 32 29 3b 0d 03 34 0c  |);.40,.132);..4.|
000006f0  20 ed 20 6c 6f 6f 70 25  0d 03 3e 08 20 ef 20 35  | . loop%..>. . 5|
00000700  0d 03 48 0b 20 ec 20 30  2c 32 38 0d 03 52 12 20  |..H. . 0,28..R. |
00000710  f1 20 c4 34 30 2c bd 31  33 32 29 20 20 0d 03 5c  |. .40,.132)  ..\|
00000720  06 20 e1 0d 03 66 06 20  3a 0d 03 70 3a 20 dd 20  |. ...f. :..p: . |
00000730  f2 5f 70 72 65 74 74 79  5f 62 6f 72 64 65 72 28  |._pretty_border(|
00000740  58 5f 43 6f 5f 6f 72 64  25 2c 59 5f 43 6f 5f 6f  |X_Co_ord%,Y_Co_o|
00000750  72 64 25 2c 53 74 72 69  6e 67 5f 4c 65 6e 67 74  |rd%,String_Lengt|
00000760  68 25 29 0d 03 7a 0a 20  e6 20 30 2c 30 0d 03 84  |h%)..z. . 0,0...|
00000770  23 20 59 5f 41 64 6a 75  73 74 6d 65 6e 74 25 3d  |# Y_Adjustment%=|
00000780  59 5f 43 6f 5f 6f 72 64  25 2d 36 34 20 20 20 20  |Y_Co_ord%-64    |
00000790  0d 03 8e 31 20 58 5f 41  64 6a 75 73 74 6d 65 6e  |...1 X_Adjustmen|
000007a0  74 25 3d 58 5f 43 6f 5f  6f 72 64 25 2b 53 74 72  |t%=X_Co_ord%+Str|
000007b0  69 6e 67 5f 4c 65 6e 67  74 68 25 2a 33 32 20 20  |ing_Length%*32  |
000007c0  20 0d 03 98 1a 20 ec 20  58 5f 43 6f 5f 6f 72 64  | .... . X_Co_ord|
000007d0  25 2c 59 5f 43 6f 5f 6f  72 64 25 0d 03 a2 21 20  |%,Y_Co_ord%...! |
000007e0  ec 20 58 5f 43 6f 5f 6f  72 64 25 2c 59 5f 43 6f  |. X_Co_ord%,Y_Co|
000007f0  5f 6f 72 64 25 2d 31 36  20 20 20 20 0d 03 ac 23  |_ord%-16    ...#|
00000800  20 f0 20 38 35 2c 58 5f  43 6f 5f 6f 72 64 25 2d  | . 85,X_Co_ord%-|
00000810  33 32 2c 59 5f 43 6f 5f  6f 72 64 25 2d 31 36 0d  |32,Y_Co_ord%-16.|
00000820  03 b6 23 20 f0 20 38 35  2c 58 5f 43 6f 5f 6f 72  |..# . 85,X_Co_or|
00000830  64 25 2d 33 32 2c 59 5f  43 6f 5f 6f 72 64 25 2d  |d%-32,Y_Co_ord%-|
00000840  34 38 0d 03 c0 20 20 ec  20 58 5f 43 6f 5f 6f 72  |48...  . X_Co_or|
00000850  64 25 2c 59 5f 43 6f 5f  6f 72 64 25 2d 34 38 20  |d%,Y_Co_ord%-48 |
00000860  20 20 0d 03 ca 20 20 f0  20 38 35 2c 58 5f 43 6f  |  ...  . 85,X_Co|
00000870  5f 6f 72 64 25 2c 59 5f  43 6f 5f 6f 72 64 25 2d  |_ord%,Y_Co_ord%-|
00000880  31 36 0d 03 d4 1f 20 ec  20 58 5f 43 6f 5f 6f 72  |16.... . X_Co_or|
00000890  64 25 2c 59 5f 43 6f 5f  6f 72 64 25 2d 34 38 20  |d%,Y_Co_ord%-48 |
000008a0  20 0d 03 de 21 20 ec 20  58 5f 43 6f 5f 6f 72 64  | ...! . X_Co_ord|
000008b0  25 2d 33 32 2c 59 5f 43  6f 5f 6f 72 64 25 2d 34  |%-32,Y_Co_ord%-4|
000008c0  38 20 0d 03 e8 22 20 f0  20 38 35 2c 58 5f 43 6f  |8 ..." . 85,X_Co|
000008d0  5f 6f 72 64 25 2c 59 5f  43 6f 5f 6f 72 64 25 2d  |_ord%,Y_Co_ord%-|
000008e0  36 34 20 20 0d 03 f2 1e  20 ec 20 58 5f 41 64 6a  |64  .... . X_Adj|
000008f0  75 73 74 6d 65 6e 74 25  2c 59 5f 43 6f 5f 6f 72  |ustment%,Y_Co_or|
00000900  64 25 0d 03 fc 21 20 ec  20 58 5f 41 64 6a 75 73  |d%...! . X_Adjus|
00000910  74 6d 65 6e 74 25 2c 59  5f 43 6f 5f 6f 72 64 25  |tment%,Y_Co_ord%|
00000920  2d 31 36 0d 04 06 2a 20  f0 20 38 35 2c 58 5f 41  |-16...* . 85,X_A|
00000930  64 6a 75 73 74 6d 65 6e  74 25 2b 33 32 2c 59 5f  |djustment%+32,Y_|
00000940  43 6f 5f 6f 72 64 25 2d  31 36 20 20 20 0d 04 10  |Co_ord%-16   ...|
00000950  27 20 f0 20 38 35 2c 58  5f 41 64 6a 75 73 74 6d  |' . 85,X_Adjustm|
00000960  65 6e 74 25 2b 33 32 2c  59 5f 43 6f 5f 6f 72 64  |ent%+32,Y_Co_ord|
00000970  25 2d 34 38 0d 04 1a 21  20 ec 20 58 5f 41 64 6a  |%-48...! . X_Adj|
00000980  75 73 74 6d 65 6e 74 25  2c 59 5f 43 6f 5f 6f 72  |ustment%,Y_Co_or|
00000990  64 25 2d 34 38 0d 04 24  28 20 f0 20 38 35 2c 58  |d%-48..$( . 85,X|
000009a0  5f 41 64 6a 75 73 74 6d  65 6e 74 25 2c 59 5f 43  |_Adjustment%,Y_C|
000009b0  6f 5f 6f 72 64 25 2d 31  36 20 20 20 20 0d 04 2e  |o_ord%-16    ...|
000009c0  23 20 ec 20 58 5f 41 64  6a 75 73 74 6d 65 6e 74  |# . X_Adjustment|
000009d0  25 2c 59 5f 43 6f 5f 6f  72 64 25 2d 34 38 20 20  |%,Y_Co_ord%-48  |
000009e0  0d 04 38 27 20 ec 20 58  5f 41 64 6a 75 73 74 6d  |..8' . X_Adjustm|
000009f0  65 6e 74 25 2b 33 32 2c  59 5f 43 6f 5f 6f 72 64  |ent%+32,Y_Co_ord|
00000a00  25 2d 34 38 20 20 20 0d  04 42 27 20 f0 20 38 35  |%-48   ..B' . 85|
00000a10  2c 58 5f 41 64 6a 75 73  74 6d 65 6e 74 25 2c 59  |,X_Adjustment%,Y|
00000a20  5f 43 6f 5f 6f 72 64 25  2d 36 34 20 20 20 0d 04  |_Co_ord%-64   ..|
00000a30  4c 1a 20 ec 20 58 5f 43  6f 5f 6f 72 64 25 2c 59  |L. . X_Co_ord%,Y|
00000a40  5f 43 6f 5f 6f 72 64 25  0d 04 56 20 20 ec 20 58  |_Co_ord%..V  . X|
00000a50  5f 43 6f 5f 6f 72 64 25  2c 59 5f 41 64 6a 75 73  |_Co_ord%,Y_Adjus|
00000a60  74 6d 65 6e 74 25 20 20  0d 04 60 25 20 f0 20 38  |tment%  ..`% . 8|
00000a70  35 2c 58 5f 41 64 6a 75  73 74 6d 65 6e 74 25 2c  |5,X_Adjustment%,|
00000a80  59 5f 43 6f 5f 6f 72 64  25 20 20 20 20 0d 04 6a  |Y_Co_ord%    ..j|
00000a90  25 20 f0 20 38 35 2c 58  5f 41 64 6a 75 73 74 6d  |% . 85,X_Adjustm|
00000aa0  65 6e 74 25 2c 59 5f 41  64 6a 75 73 74 6d 65 6e  |ent%,Y_Adjustmen|
00000ab0  74 25 0d 04 74 0a 20 e6  20 30 2c 31 0d 04 7e 1c  |t%..t. . 0,1..~.|
00000ac0  20 ec 20 58 5f 43 6f 5f  6f 72 64 25 2c 59 5f 43  | . X_Co_ord%,Y_C|
00000ad0  6f 5f 6f 72 64 25 2d 38  0d 04 88 20 20 ec 20 58  |o_ord%-8...  . X|
00000ae0  5f 43 6f 5f 6f 72 64 25  2c 59 5f 41 64 6a 75 73  |_Co_ord%,Y_Adjus|
00000af0  74 6d 65 6e 74 25 2b 38  0d 04 92 24 20 f0 20 38  |tment%+8...$ . 8|
00000b00  35 2c 58 5f 41 64 6a 75  73 74 6d 65 6e 74 25 2c  |5,X_Adjustment%,|
00000b10  59 5f 43 6f 5f 6f 72 64  25 2d 38 20 0d 04 9c 2b  |Y_Co_ord%-8 ...+|
00000b20  20 f0 20 38 35 2c 58 5f  41 64 6a 75 73 74 6d 65  | . 85,X_Adjustme|
00000b30  6e 74 25 2c 59 5f 41 64  6a 75 73 74 6d 65 6e 74  |nt%,Y_Adjustment|
00000b40  25 2b 38 20 20 20 20 0d  04 a6 0a 20 e6 20 30 2c  |%+8    .... . 0,|
00000b50  30 0d 04 b0 06 20 e1 0d  04 ba 06 20 3a 0d 04 c4  |0.... ..... :...|
00000b60  36 20 dd 20 f2 5f 72 65  63 74 61 6e 67 6c 65 28  |6 . ._rectangle(|
00000b70  58 5f 43 6f 5f 6f 72 64  25 2c 59 5f 43 6f 5f 6f  |X_Co_ord%,Y_Co_o|
00000b80  72 64 25 2c 57 69 64 74  68 25 2c 48 65 69 67 68  |rd%,Width%,Heigh|
00000b90  74 25 29 0d 04 ce 41 20  ef 20 32 34 2c 58 5f 43  |t%)...A . 24,X_C|
00000ba0  6f 5f 6f 72 64 25 3b 59  5f 43 6f 5f 6f 72 64 25  |o_ord%;Y_Co_ord%|
00000bb0  3b 58 5f 43 6f 5f 6f 72  64 25 2b 57 69 64 74 68  |;X_Co_ord%+Width|
00000bc0  25 3b 59 5f 43 6f 5f 6f  72 64 25 2b 48 65 69 67  |%;Y_Co_ord%+Heig|
00000bd0  68 74 25 3b 0d 04 d8 06  20 da 0d 04 e2 09 20 ef  |ht%;.... ..... .|
00000be0  20 32 36 0d 04 ec 0a 20  e6 20 30 2c 31 0d 04 f6  | 26.... . 0,1...|
00000bf0  1a 20 ec 20 58 5f 43 6f  5f 6f 72 64 25 2c 59 5f  |. . X_Co_ord%,Y_|
00000c00  43 6f 5f 6f 72 64 25 0d  05 00 22 20 df 20 58 5f  |Co_ord%..." . X_|
00000c10  43 6f 5f 6f 72 64 25 2c  59 5f 43 6f 5f 6f 72 64  |Co_ord%,Y_Co_ord|
00000c20  25 2b 48 65 69 67 68 74  25 0d 05 0a 29 20 df 20  |%+Height%...) . |
00000c30  58 5f 43 6f 5f 6f 72 64  25 2b 57 69 64 74 68 25  |X_Co_ord%+Width%|
00000c40  2c 59 5f 43 6f 5f 6f 72  64 25 2b 48 65 69 67 68  |,Y_Co_ord%+Heigh|
00000c50  74 25 0d 05 14 21 20 df  20 58 5f 43 6f 5f 6f 72  |t%...! . X_Co_or|
00000c60  64 25 2b 57 69 64 74 68  25 2c 59 5f 43 6f 5f 6f  |d%+Width%,Y_Co_o|
00000c70  72 64 25 0d 05 1e 1a 20  df 20 58 5f 43 6f 5f 6f  |rd%.... . X_Co_o|
00000c80  72 64 25 2c 59 5f 43 6f  5f 6f 72 64 25 0d 05 28  |rd%,Y_Co_ord%..(|
00000c90  0a 20 e1 20 20 20 20 0d  05 32 06 20 3a 0d 05 3c  |. .    ..2. :..<|
00000ca0  19 20 dd 20 f2 5f 70 72  69 6e 74 5f 6d 65 6e 75  |. . ._print_menu|
00000cb0  5f 69 74 65 6d 73 0d 05  46 08 20 fb 20 31 0d 05  |_items..F. . 1..|
00000cc0  50 0a 20 fb 20 31 32 38  0d 05 5a 1f 20 e3 20 6c  |P. . 128..Z. . l|
00000cd0  6f 6f 70 25 20 3d 20 31  20 b8 20 6d 65 6e 75 5f  |oop% = 1 . menu_|
00000ce0  65 6e 74 72 69 65 73 0d  05 64 3b 20 f1 20 8a 31  |entries..d; . .1|
00000cf0  30 2c 6c 6f 6f 70 25 2b  36 29 3b 70 6f 73 69 74  |0,loop%+6);posit|
00000d00  69 6f 6e 24 28 6c 6f 6f  70 25 29 3b 22 3a 20 22  |ion$(loop%);": "|
00000d10  3b 65 6e 74 72 79 24 28  6c 6f 6f 70 25 29 20 20  |;entry$(loop%)  |
00000d20  20 20 0d 05 6e 0c 20 ed  20 6c 6f 6f 70 25 0d 05  |  ..n. . loop%..|
00000d30  78 06 20 e1 0d 05 82 06  20 3a 0d 05 8c 1d 20 dd  |x. ..... :.... .|
00000d40  20 f2 5f 70 72 69 6e 74  5f 63 75 72 72 65 6e 74  | ._print_current|
00000d50  5f 6f 70 74 69 6f 6e 0d  05 96 08 20 fb 20 30 0d  |_option.... . 0.|
00000d60  05 a0 0a 20 fb 20 31 32  39 0d 05 aa 57 20 f1 20  |... . 129...W . |
00000d70  8a 39 2c 63 75 72 72 65  6e 74 5f 65 6e 74 72 79  |.9,current_entry|
00000d80  2b 36 29 3b 22 20 22 3b  70 6f 73 69 74 69 6f 6e  |+6);" ";position|
00000d90  24 28 63 75 72 72 65 6e  74 5f 65 6e 74 72 79 29  |$(current_entry)|
00000da0  3b 22 3a 20 22 3b 65 6e  74 72 79 24 28 63 75 72  |;": ";entry$(cur|
00000db0  72 65 6e 74 5f 65 6e 74  72 79 29 3b 20 20 20 20  |rent_entry);    |
00000dc0  0d 05 b4 0c 20 70 6f 73  20 3d 20 b1 0d 05 be 17  |.... pos = .....|
00000dd0  20 e3 20 6c 6f 6f 70 25  20 3d 20 70 6f 73 20 b8  | . loop% = pos .|
00000de0  20 33 30 0d 05 c8 0b 20  f1 20 22 20 22 3b 0d 05  | 30.... . " ";..|
00000df0  d2 06 20 ed 0d 05 dc 06  20 e1 0d 05 e6 06 20 3a  |.. ..... ..... :|
00000e00  0d 05 f0 1f 20 dd 20 f2  5f 61 63 63 65 70 74 5f  |.... . ._accept_|
00000e10  69 6e 70 75 74 5f 66 72  6f 6d 5f 75 73 65 72 0d  |input_from_user.|
00000e20  05 fa 0b 20 2a 46 58 20  31 35 0d 06 04 16 20 65  |... *FX 15.... e|
00000e30  6e 74 72 79 5f 66 6c 61  67 20 20 3d 20 a3 20 20  |ntry_flag  = .  |
00000e40  0d 06 0e 17 20 55 73 65  72 5f 49 6e 70 75 74 24  |.... User_Input$|
00000e50  20 3d 20 22 22 20 20 0d  06 18 06 20 f5 0d 06 22  | = ""  .... ..."|
00000e60  16 20 55 73 65 72 5f 49  6e 70 75 74 24 3d bf 28  |. User_Input$=.(|
00000e70  32 30 29 0d 06 2c 15 20  f2 5f 76 61 6c 69 64 61  |20)..,. ._valida|
00000e80  74 65 5f 69 6e 70 75 74  0d 06 36 15 20 fd 20 65  |te_input..6. . e|
00000e90  6e 74 72 79 5f 66 6c 61  67 20 3d 20 b9 0d 06 40  |ntry_flag = ...@|
00000ea0  1e 20 6f 6c 64 5f 65 6e  74 72 79 20 3d 20 63 75  |. old_entry = cu|
00000eb0  72 72 65 6e 74 5f 65 6e  74 72 79 0d 06 4a 3c 20  |rrent_entry..J< |
00000ec0  e7 20 55 73 65 72 5f 49  6e 70 75 74 24 20 3d 20  |. User_Input$ = |
00000ed0  bd 31 33 38 20 8c 20 63  75 72 72 65 6e 74 5f 65  |.138 . current_e|
00000ee0  6e 74 72 79 20 3d 20 63  75 72 72 65 6e 74 5f 65  |ntry = current_e|
00000ef0  6e 74 72 79 20 2b 31 0d  06 54 3c 20 e7 20 55 73  |ntry +1..T< . Us|
00000f00  65 72 5f 49 6e 70 75 74  24 20 3d 20 bd 31 33 39  |er_Input$ = .139|
00000f10  20 8c 20 63 75 72 72 65  6e 74 5f 65 6e 74 72 79  | . current_entry|
00000f20  20 3d 20 63 75 72 72 65  6e 74 5f 65 6e 74 72 79  | = current_entry|
00000f30  20 2d 31 0d 06 5e 27 20  e7 20 55 73 65 72 5f 49  | -1..^' . User_I|
00000f40  6e 70 75 74 24 20 3d 20  bd 31 33 20 8c 20 66 6c  |nput$ = .13 . fl|
00000f50  61 67 20 3d 20 b9 20 20  20 20 0d 06 68 67 20 e7  |ag = .    ..hg .|
00000f60  20 28 97 28 55 73 65 72  5f 49 6e 70 75 74 24 29  | (.(User_Input$)|
00000f70  2d 36 34 29 3e 30 20 80  20 28 97 28 55 73 65 72  |-64)>0 . (.(User|
00000f80  5f 49 6e 70 75 74 24 29  2d 36 34 29 3c 3d 6d 65  |_Input$)-64)<=me|
00000f90  6e 75 5f 65 6e 74 72 69  65 73 20 8c 20 63 75 72  |nu_entries . cur|
00000fa0  72 65 6e 74 5f 65 6e 74  72 79 20 3d 20 28 97 28  |rent_entry = (.(|
00000fb0  55 73 65 72 5f 49 6e 70  75 74 24 29 2d 36 34 29  |User_Input$)-64)|
00000fc0  20 0d 06 72 4e 20 e7 20  55 73 65 72 5f 49 6e 70  | ..rN . User_Inp|
00000fd0  75 74 24 20 3d 20 bd 31  33 38 20 80 20 28 63 75  |ut$ = .138 . (cu|
00000fe0  72 72 65 6e 74 5f 65 6e  74 72 79 20 3e 20 6d 65  |rrent_entry > me|
00000ff0  6e 75 5f 65 6e 74 72 69  65 73 29 20 8c 20 63 75  |nu_entries) . cu|
00001000  72 72 65 6e 74 5f 65 6e  74 72 79 20 3d 20 31 0d  |rrent_entry = 1.|
00001010  06 7c 4e 20 e7 20 55 73  65 72 5f 49 6e 70 75 74  |.|N . User_Input|
00001020  24 20 3d 20 bd 31 33 39  20 80 20 28 63 75 72 72  |$ = .139 . (curr|
00001030  65 6e 74 5f 65 6e 74 72  79 20 3c 20 31 29 20 8c  |ent_entry < 1) .|
00001040  20 63 75 72 72 65 6e 74  5f 65 6e 74 72 79 20 3d  | current_entry =|
00001050  20 6d 65 6e 75 5f 65 6e  74 72 69 65 73 0d 06 86  | menu_entries...|
00001060  06 20 e1 0d 06 90 06 20  3a 0d 06 9a 17 20 dd 20  |. ..... :.... . |
00001070  f2 5f 76 61 6c 69 64 61  74 65 5f 69 6e 70 75 74  |._validate_input|
00001080  0d 06 a4 4b 20 e7 20 55  73 65 72 5f 49 6e 70 75  |...K . User_Inpu|
00001090  74 24 3d bd 31 33 39 20  84 20 55 73 65 72 5f 49  |t$=.139 . User_I|
000010a0  6e 70 75 74 24 3d bd 31  33 38 20 84 20 55 73 65  |nput$=.138 . Use|
000010b0  72 5f 49 6e 70 75 74 24  3d bd 31 33 20 8c 20 65  |r_Input$=.13 . e|
000010c0  6e 74 72 79 5f 66 6c 61  67 3d b9 0d 06 ae 51 20  |ntry_flag=....Q |
000010d0  e7 20 28 97 28 55 73 65  72 5f 49 6e 70 75 74 24  |. (.(User_Input$|
000010e0  29 2d 36 34 29 3e 30 20  80 20 28 97 28 55 73 65  |)-64)>0 . (.(Use|
000010f0  72 5f 49 6e 70 75 74 24  29 2d 36 34 29 3c 3d 6d  |r_Input$)-64)<=m|
00001100  65 6e 75 5f 65 6e 74 72  69 65 73 20 8c 20 65 6e  |enu_entries . en|
00001110  74 72 79 5f 66 6c 61 67  20 3d 20 b9 0d 06 b8 06  |try_flag = .....|
00001120  20 e1 0d 06 c2 06 20 3a  0d 06 cc 1e 20 dd 20 f2  | ..... :.... . .|
00001130  5f 64 65 6c 65 74 65 5f  63 75 72 72 65 6e 74 5f  |_delete_current_|
00001140  6f 70 74 69 6f 6e 0d 06  d6 08 20 fb 20 31 0d 06  |option.... . 1..|
00001150  e0 0a 20 fb 20 31 32 38  0d 06 ea 47 20 f1 20 8a  |.. . 128...G . .|
00001160  39 2c 6f 6c 64 5f 65 6e  74 72 79 2b 36 29 3b 22  |9,old_entry+6);"|
00001170  20 22 3b 70 6f 73 69 74  69 6f 6e 24 28 6f 6c 64  | ";position$(old|
00001180  5f 65 6e 74 72 79 29 3b  22 3a 20 22 3b 65 6e 74  |_entry);": ";ent|
00001190  72 79 24 28 6f 6c 64 5f  65 6e 74 72 79 29 3b 0d  |ry$(old_entry);.|
000011a0  06 f4 0c 20 70 6f 73 20  3d 20 b1 0d 06 fe 19 20  |... pos = ..... |
000011b0  e3 20 6c 6f 6f 70 25 20  3d 20 70 6f 73 20 b8 20  |. loop% = pos . |
000011c0  33 30 20 20 0d 07 08 0d  20 f1 20 22 20 22 3b 20  |30  .... . " "; |
000011d0  20 0d 07 12 06 20 ed 0d  07 1c 06 20 e1 0d 07 26  | .... ..... ...&|
000011e0  06 20 3a 0d 07 30 12 20  dd 20 f2 5f 6c 6f 61 64  |. :..0. . ._load|
000011f0  5f 67 61 6d 65 0d 07 3a  12 20 f2 5f 63 68 65 63  |_game..:. ._chec|
00001200  6b 5f 6e 6f 74 65 73 0d  07 44 45 20 e7 20 6c 6f  |k_notes..DE . lo|
00001210  61 64 69 6e 67 24 28 63  75 72 72 65 6e 74 5f 65  |ading$(current_e|
00001220  6e 74 72 79 29 20 3d 20  22 43 48 41 49 4e 22 20  |ntry) = "CHAIN" |
00001230  8c 20 d7 20 66 69 6c 65  6e 61 6d 65 24 28 63 75  |. . filename$(cu|
00001240  72 72 65 6e 74 5f 65 6e  74 72 79 29 0d 07 4e 4f  |rrent_entry)..NO|
00001250  20 e7 20 6c 6f 61 64 69  6e 67 24 28 63 75 72 72  | . loading$(curr|
00001260  65 6e 74 5f 65 6e 74 72  79 29 20 3d 20 22 2a 45  |ent_entry) = "*E|
00001270  58 45 43 22 20 8c 20 ff  28 22 45 58 45 43 22 20  |XEC" . .("EXEC" |
00001280  2b 20 66 69 6c 65 6e 61  6d 65 24 28 63 75 72 72  |+ filename$(curr|
00001290  65 6e 74 5f 65 6e 74 72  79 29 29 0d 07 53 5e e7  |ent_entry))..S^.|
000012a0  20 6c 6f 61 64 69 6e 67  24 28 63 75 72 72 65 6e  | loading$(curren|
000012b0  74 5f 65 6e 74 72 79 29  20 3d 20 22 44 49 52 22  |t_entry) = "DIR"|
000012c0  20 8c 20 ff 28 22 44 49  52 20 22 20 2b 20 66 69  | . .("DIR " + fi|
000012d0  6c 65 6e 61 6d 65 24 28  63 75 72 72 65 6e 74 5f  |lename$(current_|
000012e0  65 6e 74 72 79 29 29 3a  d7 20 22 52 55 4e 5f 54  |entry)):. "RUN_T|
000012f0  48 49 53 22 20 20 20 20  20 0d 07 58 4d 20 e7 20  |HIS"     ..XM . |
00001300  6c 6f 61 64 69 6e 67 24  28 63 75 72 72 65 6e 74  |loading$(current|
00001310  5f 65 6e 74 72 79 29 20  3d 20 22 2a 52 55 4e 22  |_entry) = "*RUN"|
00001320  20 8c 20 ff 28 22 52 55  4e 22 20 2b 20 66 69 6c  | . .("RUN" + fil|
00001330  65 6e 61 6d 65 24 28 63  75 72 72 65 6e 74 5f 65  |ename$(current_e|
00001340  6e 74 72 79 29 29 0d 07  62 06 20 e1 0d 07 6c 06  |ntry))..b. ...l.|
00001350  20 3a 0d 07 76 14 20 dd  20 f2 5f 63 68 65 63 6b  | :..v. . ._check|
00001360  5f 6e 6f 74 65 73 0d 07  80 4a 20 e7 20 a7 6e 6f  |_notes...J . .no|
00001370  74 65 24 28 63 75 72 72  65 6e 74 5f 65 6e 74 72  |te$(current_entr|
00001380  79 29 2c 22 4d 22 29 20  3d 20 31 20 8c 20 ef 20  |y),"M") = 1 . . |
00001390  32 32 2c bb 28 c1 6e 6f  74 65 24 28 63 75 72 72  |22,.(.note$(curr|
000013a0  65 6e 74 5f 65 6e 74 72  79 29 2c 32 2c 31 29 29  |ent_entry),2,1))|
000013b0  0d 07 8a 06 20 e1 0d 07  94 06 20 3a 0d 07 9e 16  |.... ..... :....|
000013c0  20 f4 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | . *************|
000013d0  2a 2a 0d 07 a8 16 20 f4  20 2a 2a 20 44 61 74 61  |**.... . ** Data|
000013e0  20 41 72 65 61 20 2a 2a  0d 07 b2 16 20 f4 20 2a  | Area **.... . *|
000013f0  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 0d 07  |**************..|
00001400  bc 08 20 f4 20 3a 0d 07  c6 23 20 f4 20 4f 53 43  |.. . :...# . OSC|
00001410  4c 49 20 28 65 2e 67 2e  20 2a 52 55 4e 29 20 63  |LI (e.g. *RUN) c|
00001420  61 6c 6c 73 20 6e 65 65  64 0d 07 d0 24 20 f4 20  |alls need...$ . |
00001430  66 75 6c 6c 20 70 61 74  68 6e 61 6d 65 20 69 6e  |full pathname in|
00001440  63 6c 75 64 69 6e 67 20  64 72 69 76 65 0d 07 da  |cluding drive...|
00001450  08 20 f4 20 3a 0d 07 e4  07 dc 20 37 0d 07 ee 1a  |. . :..... 7....|
00001460  dc 20 41 2c 45 6c 69 74  65 2c 44 49 52 2c 45 4c  |. A,Elite,DIR,EL|
00001470  49 54 45 2c 58 58 0d 07  f8 1a dc 20 42 2c 43 68  |ITE,XX..... B,Ch|
00001480  65 73 73 2c 44 49 52 2c  43 48 45 53 53 2c 58 58  |ess,DIR,CHESS,XX|
00001490  0d 08 02 1a dc 20 43 2c  46 72 61 6b 21 2c 44 49  |..... C,Frak!,DI|
000014a0  52 2c 46 52 41 4b 21 2c  58 58 0d 08 0c 18 dc 20  |R,FRAK!,XX..... |
000014b0  44 2c 51 77 61 6b 2c 44  49 52 2c 51 57 41 4b 2c  |D,Qwak,DIR,QWAK,|
000014c0  58 58 0d 08 16 22 dc 20  45 2c 50 69 70 65 6d 61  |XX...". E,Pipema|
000014d0  6e 69 61 2c 44 49 52 2c  50 49 50 45 4d 41 4e 49  |nia,DIR,PIPEMANI|
000014e0  41 2c 58 58 0d 08 20 1c  dc 20 46 2c 54 65 74 72  |A,XX.. .. F,Tetr|
000014f0  69 73 2c 44 49 52 2c 54  45 54 52 49 53 2c 58 58  |is,DIR,TETRIS,XX|
00001500  0d 08 2a 1c dc 20 47 2c  4d 61 6b 65 2d 34 2c 44  |..*.. G,Make-4,D|
00001510  49 52 2c 4d 41 4b 45 2d  34 2c 58 58 0d ff        |IR,MAKE-4,XX..|
0000151e
Menu.m0
Menu.m1
Menu.m2
Menu.m4
Menu.m5