Home » CEEFAX disks » telesoftware17.adl » 30-07-89/Maze

30-07-89/Maze

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 » CEEFAX disks » telesoftware17.adl
Filename: 30-07-89/Maze
Read OK:
File size: 12FD bytes
Load address: FFFF0E00
Exec address: FFFF802B
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
   10REM  Maze maker
   20REM  by Terry Blunt
   30REM  11 / 5 / 87
   40MODE 7
   50U%=HIMEM-16
   60HIMEM=TOP+&200
   70PROCinit
   80ONERRORPROCerr
  100REPEAT:RESTORE32010:CLS
  110PRINTTAB(12,2)CHR$134"Maze  Maker"''TAB(15)CHR$131"Menu" ''
  120FORI%=1 TO7
  130READa$:PRINTCHR$130;I%SPC4a$
  140NEXT
  150PRINT'TAB(7)CHR$131"'ESCAPE' for menu" '' TAB(10)CHR$131"Enter number";
  160a=GET-48:IFa>0 ANDa<7 PRINTTAB(0,6+a)CHR$136 TAB(0,16)
  170ONa GOSUB1000,2000,3000,4000,5000,6000,7000 ELSEIFa=-6 GOSUB8000
  180UNTILFALSE
 1000PROCname:a=OPENINa$:IFa=0 PRINT'"File not found";:PROCkey:RETURN
 1010FORI%=-8 TO-3:R%?I%=BGET#a:NEXT
 1020IFR%!-8<>&657A616D PRINT'"File not valid";:PROCkey:RETURN
 1030CLOSE#a:PROCoscli("LOAD"+a$)
 1040K%=R%?-4:L%=R%?-3:Z%=TRUE:GOSUB4000
 1050RETURN
 2000PROCsize:IFN% RETURN
 2010R%?-2=RND(K% DIV2)+K% DIV4:R%?TRUE=RND(L% DIV2)+L% DIV4
 2020R%?(R%?-2+(R%?TRUE)*K%)=211
 2030Z%=TRUE:GOSUB4000
 2040RETURN
 3000PROCsize:IFN% RETURN
 3010N%=K%*L% DIV8
 3015PRINTCHR$131"Quick maze (Y/N) ";:IFGET=89 S%=1:PRINT"Y" ELSES%=4:PRINT"N"
 3020PRINTCHR$131"PLEASE WAIT WHILE I BUILD THE MAZE"'CHR$130"  This may take up to ";:IFS%=1 PRINT"5"; ELSEPRINT"10";
 3030PRINT" minutes.";:J%=FALSE:A%=1:M%=0:T%=K%*2:S%=N%DIV(100*S%):IFS%<4 S%=4
 3040D%=RND(4)-1
 3050IFD%MOD2=0 V%=RND(K%DIV2)+K%DIV4 ELSEW%=RND(L%DIV2)*K%+K%*(L%DIV4)
 3060IFD%=1 V%=0
 3070IFD%=3 V%=K%-1
 3080IFD%=0 W%=L%*K%-K%
 3090IFD%=2 W%=0
 3100REPEAT:IFRND(9)=2 D%=(D%+RND(3))MOD4:A%=A%EOR2
 3110PROCcheck:IFE%>1529 PROCmove ELSEPROCback
 3120UNTILJ%
 3130REPEAT:N%=N%-1:UNTILG%?N%<&FF
 3140R%?-2=G%?N%:R%?TRUE=(H%?N%)
 3150R%?(R%?-2+(R%?TRUE)*K%)=211
 3160Z%=TRUE:GOSUB4000
 3170RETURN
 4000IFNOTZ% RETURN
 4010N%=255:S%=0:T%=0:V%=17:W%=K%*12:C%=R%?-2:F%=R%?TRUE*K%
 4020IFC%<17 V%=C%:C%=0 ELSEIFK%-C%<16 V%=C%+35-K%:C%=K%-35 ELSEC%=C%-17
 4030IFF%<12*K% W%=F%:F%=0 ELSEIFL%*K%-F%<12*K% W%=F%+(23-L%)*K%:F%=(L%-23)*K% ELSEF%=F%-12*K%
 4040CLS:FORI%=0 TO24:PRINTTAB(0,I%)CHR$150CHR$157CHR$148;:NEXT
 4050VDU23;8202;0;0;0;
 4060M%=R%+C%+F%
 4070REPEAT:REPEAT
 4080S%=INKEY-26-INKEY-122
 4090T%=K%*(INKEY-58-INKEY-42)
 4100IFINKEY-97 PROCtab
 4110IFN%=0 PROCedit
 4120E%=M%+S%+T%+V%+W%
 4130UNTIL?E%<>N% ANDV%+S%>TRUE ANDV%+S%<35 ANDW%+T%>TRUE AND(W%+T%)DIVK%<23
 4140IF?E%=255 F%=79 ELSEF%=88
 4150IFV%=17 AND((M%-R%)MODK%>0 ANDS%<0 OR(M%-R%)MODK%<K%-35 ANDS%>0) M%=M%+S%:S%=0
 4160IFW%=K%*12 AND(M%-R%>K%-1 ANDT%<0 OR(M%-R%)DIVK%<L%-23 ANDT%>0) M%=M%+T%:T%=0
 4170V%=V%+S%:W%=W%+T%
 4180CALLscreen:PRINTTAB(V%+3,1+W% DIVK%)CHR$F%
 4190PROCwait
 4200UNTILFALSE
 5000IFNOTZ% RETURN
 5010R%!-8=&657A616D
 5020PROCname
 5030PROCoscli("SAVE"+a$+"+"+STR$~(K%*L%+8))
 5040RETURN
 6000IFNOTZ% RETURN
 6010PRINT':VDU2,1,27,1,51,1,18
 6020PRINT"Size ";K%" x ";L% '
 6030S%=K%*8
 6040FORW%=K% TOL%*K%-K%*2 STEP K%
 6050A%=R%
 6060VDU1,27,1,76,1,S% MOD256,1,S% DIV256
 6070FORV%=1 TOS% DIV8
 6080A%=A%+1:B%=P%+W%?A% DIV110*8
 6090PROCchar
 6100NEXT
 6110VDU1,10
 6120NEXT
 6130VDU1,12,3
 6140RETURN
 7000CLS:PRINTTAB(13,3)CHR$131"VIEW MODE"'
 7010FORI%=0 TO13
 7020READa$:PRINTCHR$134a$
 7030NEXT
 7040PROCkey
 7050RETURN
 8000REPEAT
 8010PRINT''"*";
 8020INPUT""a$
 8030PROCoscli(a$):PROCkey
 8040UNTILa<>42
 8050RETURN
10000DEFPROCwait
10010REPEAT:UNTILTIME>10:TIME=0
10020ENDPROC
11000DEFPROCkey
11010PRINT''CHR$134"Press any key";
11020a=GET
11030ENDPROC
24000DEFPROCchar
24010FORI%=0 TO7
24020VDU1,I%?B%
24030NEXT
24040ENDPROC
25000DEFPROCname
25010PRINT''CHR$131"Enter filename ";
25020INPUT""a$:a$=" "+a$+" "+STR$~(R%-8)
25030ENDPROC
26000DEFPROCtab
26010IFN%=0 N%=255 ELSEN%=0
26020VDU7:PROCwait
26030ENDPROC
27000DEFPROCedit
27010IFINKEY-106 AND?E%=255 ?E%=32
27020IFINKEY-90 AND?E%=32 ?E%=255
27030ENDPROC
28000DEFPROCsize
28010N%=FALSE
28020PRINT''CHR$134"Maze width (35 min) ";
28030INPUT"" k%
28040PRINTCHR$134"Maze depth (23 min) ";
28050INPUT"" l%
28060IFk%>250 ORl%>250 ORR%+k%*l%>U% PRINT'"Sorry this is too big";:N%=TRUE
28070IFk%<35 ORl%<23 PRINT'"Sorry this is too small";:N%=TRUE
28080IFN% PROCkey:ENDPROC
28090K%=k%:L%=l%:Z%=FALSE:CALLwipe
28100FORI%=K% TOK%*L%-K% STEP K%:R%?(I%-1)=106:R%?I%=53:NEXT:FORI%=1 TOK%-2:R%?I%=47:R%?(I%+K%*L%-K%)=124:NEXT:?R%=63:R%?(K%-1)=111:R%?(K%*L%-K%)=125:R%?(K%*L%-1)=126
28110R%?-4=K%:R%?-3=L%
28120ENDPROC
29000DEFPROCcheck
29010E%=FALSE:IFM%=N% ENDPROC
29020FORI%=0 TO3
29030IFD%=0 PROCup
29040IFD%=1 PROCright
29050IFD%=2 PROCdown
29060IFD%=3 PROCleft
29070IFE%>1529 I%=4 ELSEE%=FALSE:D%=(D%+A%)MOD4
29080NEXT
29090ENDPROC
29100DEFPROCup:FORC%=TRUE TO1:FORF%=K% TOT% STEPK%:E%=E%+R%?(V%+C%+W%-F%):NEXT,:ENDPROC
29200DEFPROCright:FORF%=-K% TOK% STEPK%:FORC%=1 TO2:E%=E%+R%?(V%+C%+W%+F%):NEXT,:ENDPROC
29300DEFPROCdown:FORC%=TRUE TO1:FORF%=K% TOT% STEPK%:E%=E%+R%?(V%+C%+W%+F%):NEXT,:ENDPROC
29400DEFPROCleft:FORF%=-K% TOK% STEPK%:FORC%=1 TO2:E%=E%+R%?(V%-C%+W%+F%):NEXT,:ENDPROC
29500DEFPROCmove
29510IFD%=0 W%=W%-K%
29520IFD%=1 V%=V%+1
29530IFD%=2 W%=W%+K%
29540IFD%=3 V%=V%-1
29550R%?(V%+W%)=32:G%?M%=V%:H%?M%=W%DIVK%:M%=M%+1
29560ENDPROC
29600DEFPROCback
29610IFM%>S%+2 M%=M%-S%:V%=G%?M%:W%=H%?M%*K% ELSEJ%=TRUE
29620ENDPROC
30000DEFPROCinit
30010G%=HIMEM:H%=G%+(U%-G%)DIV10:R%=H%+(U%-G%)DIV10+8:Z%=FALSE
30020P%=&900
30030[OPT 2
30040.screen
30050LDA &434:STA&70:LDA &435:STA&71
30060LDA #&2B:STA &72:LDA #&7C:STA &73:LDX #23
30070.frame:LDY #34
30080.line:LDA (&70),Y:STA (&72),Y
30090DEY:BPL line
30100CLC:LDA &70:ADC &42C:STA &70:LDA &71:ADC #0:STA &71
30110CLC:LDA &72:ADC #40:STA &72:LDA &73:ADC #0:STA &73
30120DEX:BNE frame
30130RTS
30140.wipe
30150LDA #0:STA &70
30160LDA #G%DIV256:STA &71
30170LDX #(U%-G%)DIV256
30180LDY #G%MOD256
30190LDA #&FF
30200.loop:STA (&70),Y
30210INY:BNE loop
30220INC &71:DEX:BPL loop
30230RTS:]
30240FORI%=0 TO23
30250READI%?P%
30260NEXT
30270ENDPROC
31000DEFPROCerr
31010VDU3:IFERR=17 ANDNOTINKEYTRUE ENDPROC
31020REPORT:IFERR=204:PROCkey:ENDPROC
31021PRINT" at line ";ERL
31030END
32000DATA 0,0,0,0,0,0,0,0,0,48,72,72,72,72,48,0,252,252,252,252,252,252,252,252
32010DATA Load maze from file,Set blank sheet,Build new maze,View maze,Save maze to file,Print maze,Help
32020DATA Use 'TAB' to switch between normal,movement through the maze and edit.,,"  In edit mode you can move freely",over the whole maze area.
32030DATA ,"  Use :",,'COPY' to put the path in,'DELETE' to change to background,Cursor keys to move around,,"  Thin lines mark the maze edges","and 'X' the cursor, 'S' the start."
32040DEFPROCoscli(a$)
32050LOCAL C%
32060DIM C% 30
32070$C%=a$:X%=C%MOD256:Y%=C%DIV256:CALL&FFF7
32080ENDPROC

�  Maze maker
�  by Terry Blunt
�  11 / 5 / 87
(� 7
2U%=�-16
<
�=�P+&200
F	�init
P
��err
d
�:��PJ}:�
n/�12,2)�134"Maze  Maker"''�15)�131"Menu" ''
x�I%=1 �7
��a$:�130;I%�4a$
��
�;�'�7)�131"'ESCAPE' for menu" '' �10)�131"Enter number";
�(a=�-48:�a>0 �a<7 �0,6+a)�136 �0,16)
�7�a �dhC,�dPG,�txK,�t`O,�tHS,�DpW,�DX[ ��a=-6 �D@_
���
�/�name:a=�a$:�a=0 �'"File not found";:�key:�
��I%=-8 �-3:R%?I%=�#a:�
�0�R%!-8<>&657A616D �'"File not valid";:�key:�
�#a:�oscli("LOAD"+a$)
 K%=R%?-4:L%=R%?-3:Z%=�:�t`O
�
��size:�N% �
�,R%?-2=�(K% �2)+K% �4:R%?�=�(L% �2)+L% �4
�R%?(R%?-2+(R%?�)*K%)=211
�Z%=�:�t`O
��
��size:�N% �
�N%=K%*L% �8
�8�131"Quick maze (Y/N) ";:�=89 S%=1:�"Y" �S%=4:�"N"
�_�131"PLEASE WAIT WHILE I BUILD THE MAZE"'�130"  This may take up to ";:�S%=1 �"5"; ��"10";
�B�" minutes.";:J%=�:A%=1:M%=0:T%=K%*2:S%=N%�(100*S%):�S%<4 S%=4
�
D%=�(4)-1
�4�D%�2=0 V%=�(K%�2)+K%�4 �W%=�(L%�2)*K%+K%*(L%�4)
��D%=1 V%=0
��D%=3 V%=K%-1
�D%=0 W%=L%*K%-K%
�D%=2 W%=0
$�:�(9)=2 D%=(D%+�(3))�4:A%=A%�2
& �check:�E%>1529 �move ��back
0�J%
:�:N%=N%-1:�G%?N%<&FF
DR%?-2=G%?N%:R%?�=(H%?N%)
NR%?(R%?-2+(R%?�)*K%)=211
XZ%=�:�t`O
b�
�
�Z% �
�7N%=255:S%=0:T%=0:V%=17:W%=K%*12:C%=R%?-2:F%=R%?�*K%
�?�C%<17 V%=C%:C%=0 ��K%-C%<16 V%=C%+35-K%:C%=K%-35 �C%=C%-17
�U�F%<12*K% W%=F%:F%=0 ��L%*K%-F%<12*K% W%=F%+(23-L%)*K%:F%=(L%-23)*K% �F%=F%-12*K%
�&�:�I%=0 �24:�0,I%)�150�157�148;:�
��23;8202;0;0;0;
�M%=R%+C%+F%
��:�
�S%=�-26-�-122
�T%=K%*(�-58-�-42)
�-97 �tab
�N%=0 �edit
E%=M%+S%+T%+V%+W%
"7�?E%<>N% �V%+S%>� �V%+S%<35 �W%+T%>� �(W%+T%)�K%<23
,�?E%=255 F%=79 �F%=88
6F�V%=17 �((M%-R%)�K%>0 �S%<0 �(M%-R%)�K%<K%-35 �S%>0) M%=M%+S%:S%=0
@G�W%=K%*12 �(M%-R%>K%-1 �T%<0 �(M%-R%)�K%<L%-23 �T%>0) M%=M%+T%:T%=0
JV%=V%+S%:W%=W%+T%
T�screen:�V%+3,1+W% �K%)�F%
^	�wait
h��
�
�Z% �
�R%!-8=&657A616D
�	�name
�%�oscli("SAVE"+a$+"+"+�~(K%*L%+8))
��
p
�Z% �
z�':�2,1,27,1,51,1,18
��"Size ";K%" x ";L% '
�S%=K%*8
��W%=K% �L%*K%-K%*2 � K%
�	A%=R%
�"�1,27,1,76,1,S% �256,1,S% �256
��V%=1 �S% �8
�A%=A%+1:B%=P%+W%?A% �110*8
�	�char
��
�	�1,10
��
��1,12,3
��
X�:�13,3)�131"VIEW MODE"'
b
�I%=0 �13
l�a$:�134a$
v�
��key
��
@�
J�''"*";
T	�""a$
^�oscli(a$):�key
h
�a<>42
r�
'
��wait
'�:��>10:�=0
'$�
*�	��key
+�''�134"Press any key";
+a=�
+�
]�
��char
]��I%=0 �7
]��1,I%?B%
]��
]��
a�
��name
a��''�131"Enter filename ";
a� �""a$:a$=" "+a$+" "+�~(R%-8)
a��
e�	��tab
e��N%=0 N%=255 �N%=0
e��7:�wait
e��
ix
��edit
i��-106 �?E%=255 ?E%=32
i��-90 �?E%=32 ?E%=255
i��
m`
��size
mjN%=�
mt"�''�134"Maze width (35 min) ";
m~
�"" k%
m� �134"Maze depth (23 min) ";
m�
�"" l%
m�@�k%>250 �l%>250 �R%+k%*l%>U% �'"Sorry this is too big";:N%=�
m�3�k%<35 �l%<23 �'"Sorry this is too small";:N%=�
m��N% �key:�
m�K%=k%:L%=l%:Z%=�:�wipe
mĖ�I%=K% �K%*L%-K% � K%:R%?(I%-1)=106:R%?I%=53:�:�I%=1 �K%-2:R%?I%=47:R%?(I%+K%*L%-K%)=124:�:?R%=63:R%?(K%-1)=111:R%?(K%*L%-K%)=125:R%?(K%*L%-1)=126
m�R%?-4=K%:R%?-3=L%
m��
qH��check
qRE%=�:�M%=N% �
q\�I%=0 �3
qf
�D%=0 �up
qp�D%=1 �right
qz�D%=2 �down
q��D%=3 �left
q�$�E%>1529 I%=4 �E%=�:D%=(D%+A%)�4
q��
q��
q�<��up:�C%=� �1:�F%=K% �T% �K%:E%=E%+R%?(V%+C%+W%-F%):�,:�
r@��right:�F%=-K% �K% �K%:�C%=1 �2:E%=E%+R%?(V%+C%+W%+F%):�,:�
rt>��down:�C%=� �1:�F%=K% �T% �K%:E%=E%+R%?(V%+C%+W%+F%):�,:�
r�?��left:�F%=-K% �K% �K%:�C%=1 �2:E%=E%+R%?(V%-C%+W%+F%):�,:�
s<
��move
sF�D%=0 W%=W%-K%
sP�D%=1 V%=V%+1
sZ�D%=2 W%=W%+K%
sd�D%=3 V%=V%-1
sn.R%?(V%+W%)=32:G%?M%=V%:H%?M%=W%�K%:M%=M%+1
sx�
s�
��back
s�0�M%>S%+2 M%=M%-S%:V%=G%?M%:W%=H%?M%*K% �J%=�
s��
u0
��init
u:1G%=�:H%=G%+(U%-G%)�10:R%=H%+(U%-G%)�10+8:Z%=�
uDP%=&900
uN
[OPT 2
uX.screen
ub#LDA &434:STA&70:LDA &435:STA&71
ul-LDA #&2B:STA &72:LDA #&7C:STA &73:LDX #23
uv.frame:LDY #34
u�!.line:LDA (&70),Y:STA (&72),Y
u�DEY:BPL line
u�7CLC:LDA &70:ADC &42C:STA &70:LDA &71:ADC #0:STA &71
u�6CLC:LDA &72:ADC #40:STA &72:LDA &73:ADC #0:STA &73
u�DEX:BNE frame
u�RTS
u�	.wipe
u�LDA #0:STA &70
u�LDA #G%�256:STA &71
u�LDX #(U%-G%)�256
u�LDY #G%�256
u�LDA #&FF
u�.loop:STA (&70),Y
vINY:BNE loop
vINC &71:DEX:BPL loop
v	RTS:]
v 
�I%=0 �23
v*
�I%?P%
v4�
v>�
y	��err
y"�3:�=17 ���� �
y,�:�=204:�key:�
y-�" at line ";�
y6�
}K� 0,0,0,0,0,0,0,0,0,48,72,72,72,72,48,0,252,252,252,252,252,252,252,252
}
d� Load maze from file,Set blank sheet,Build new maze,View maze,Save maze to file,Print maze,Help
}�� Use 'TAB' to switch between normal,movement through the maze and edit.,,"  In edit mode you can move freely",over the whole maze area.
}�� ,"  Use :",,'COPY' to put the path in,'DELETE' to change to background,Cursor keys to move around,,"  Thin lines mark the maze edges","and 'X' the cursor, 'S' the start."
}(��oscli(a$)
}2� C%
}<� C% 30
}F%$C%=a$:X%=C%�256:Y%=C%�256:�&FFF7
}P�
�
00000000  0d 00 0a 11 f4 20 20 4d  61 7a 65 20 6d 61 6b 65  |.....  Maze make|
00000010  72 0d 00 14 15 f4 20 20  62 79 20 54 65 72 72 79  |r.....  by Terry|
00000020  20 42 6c 75 6e 74 0d 00  1e 12 f4 20 20 31 31 20  | Blunt.....  11 |
00000030  2f 20 35 20 2f 20 38 37  0d 00 28 07 eb 20 37 0d  |/ 5 / 87..(.. 7.|
00000040  00 32 0b 55 25 3d 93 2d  31 36 0d 00 3c 0d d3 3d  |.2.U%=.-16..<..=|
00000050  b8 50 2b 26 32 30 30 0d  00 46 09 f2 69 6e 69 74  |.P+&200..F..init|
00000060  0d 00 50 0a ee 85 f2 65  72 72 0d 00 64 0d f5 3a  |..P....err..d..:|
00000070  f7 8d 50 4a 7d 3a db 0d  00 6e 2f f1 8a 31 32 2c  |..PJ}:...n/..12,|
00000080  32 29 bd 31 33 34 22 4d  61 7a 65 20 20 4d 61 6b  |2).134"Maze  Mak|
00000090  65 72 22 27 27 8a 31 35  29 bd 31 33 31 22 4d 65  |er"''.15).131"Me|
000000a0  6e 75 22 20 27 27 0d 00  78 0c e3 49 25 3d 31 20  |nu" ''..x..I%=1 |
000000b0  b8 37 0d 00 82 14 f3 61  24 3a f1 bd 31 33 30 3b  |.7.....a$:..130;|
000000c0  49 25 89 34 61 24 0d 00  8c 05 ed 0d 00 96 3b f1  |I%.4a$........;.|
000000d0  27 8a 37 29 bd 31 33 31  22 27 45 53 43 41 50 45  |'.7).131"'ESCAPE|
000000e0  27 20 66 6f 72 20 6d 65  6e 75 22 20 27 27 20 8a  |' for menu" '' .|
000000f0  31 30 29 bd 31 33 31 22  45 6e 74 65 72 20 6e 75  |10).131"Enter nu|
00000100  6d 62 65 72 22 3b 0d 00  a0 28 61 3d a5 2d 34 38  |mber";...(a=.-48|
00000110  3a e7 61 3e 30 20 80 61  3c 37 20 f1 8a 30 2c 36  |:.a>0 .a<7 ..0,6|
00000120  2b 61 29 bd 31 33 36 20  8a 30 2c 31 36 29 0d 00  |+a).136 .0,16)..|
00000130  aa 37 ee 61 20 e4 8d 64  68 43 2c 8d 64 50 47 2c  |.7.a ..dhC,.dPG,|
00000140  8d 74 78 4b 2c 8d 74 60  4f 2c 8d 74 48 53 2c 8d  |.txK,.t`O,.tHS,.|
00000150  44 70 57 2c 8d 44 58 5b  20 8b e7 61 3d 2d 36 20  |DpW,.DX[ ..a=-6 |
00000160  e4 8d 44 40 5f 0d 00 b4  06 fd a3 0d 03 e8 2f f2  |..D@_........./.|
00000170  6e 61 6d 65 3a 61 3d 8e  61 24 3a e7 61 3d 30 20  |name:a=.a$:.a=0 |
00000180  f1 27 22 46 69 6c 65 20  6e 6f 74 20 66 6f 75 6e  |.'"File not foun|
00000190  64 22 3b 3a f2 6b 65 79  3a f8 0d 03 f2 1a e3 49  |d";:.key:......I|
000001a0  25 3d 2d 38 20 b8 2d 33  3a 52 25 3f 49 25 3d 9a  |%=-8 .-3:R%?I%=.|
000001b0  23 61 3a ed 0d 03 fc 30  e7 52 25 21 2d 38 3c 3e  |#a:....0.R%!-8<>|
000001c0  26 36 35 37 41 36 31 36  44 20 f1 27 22 46 69 6c  |&657A616D .'"Fil|
000001d0  65 20 6e 6f 74 20 76 61  6c 69 64 22 3b 3a f2 6b  |e not valid";:.k|
000001e0  65 79 3a f8 0d 04 06 19  d9 23 61 3a f2 6f 73 63  |ey:......#a:.osc|
000001f0  6c 69 28 22 4c 4f 41 44  22 2b 61 24 29 0d 04 10  |li("LOAD"+a$)...|
00000200  20 4b 25 3d 52 25 3f 2d  34 3a 4c 25 3d 52 25 3f  | K%=R%?-4:L%=R%?|
00000210  2d 33 3a 5a 25 3d b9 3a  e4 8d 74 60 4f 0d 04 1a  |-3:Z%=.:..t`O...|
00000220  05 f8 0d 07 d0 0f f2 73  69 7a 65 3a e7 4e 25 20  |.......size:.N% |
00000230  f8 0d 07 da 2c 52 25 3f  2d 32 3d b3 28 4b 25 20  |....,R%?-2=.(K% |
00000240  81 32 29 2b 4b 25 20 81  34 3a 52 25 3f b9 3d b3  |.2)+K% .4:R%?.=.|
00000250  28 4c 25 20 81 32 29 2b  4c 25 20 81 34 0d 07 e4  |(L% .2)+L% .4...|
00000260  1c 52 25 3f 28 52 25 3f  2d 32 2b 28 52 25 3f b9  |.R%?(R%?-2+(R%?.|
00000270  29 2a 4b 25 29 3d 32 31  31 0d 07 ee 0e 5a 25 3d  |)*K%)=211....Z%=|
00000280  b9 3a e4 8d 74 60 4f 0d  07 f8 05 f8 0d 0b b8 0f  |.:..t`O.........|
00000290  f2 73 69 7a 65 3a e7 4e  25 20 f8 0d 0b c2 0f 4e  |.size:.N% .....N|
000002a0  25 3d 4b 25 2a 4c 25 20  81 38 0d 0b c7 38 f1 bd  |%=K%*L% .8...8..|
000002b0  31 33 31 22 51 75 69 63  6b 20 6d 61 7a 65 20 28  |131"Quick maze (|
000002c0  59 2f 4e 29 20 22 3b 3a  e7 a5 3d 38 39 20 53 25  |Y/N) ";:..=89 S%|
000002d0  3d 31 3a f1 22 59 22 20  8b 53 25 3d 34 3a f1 22  |=1:."Y" .S%=4:."|
000002e0  4e 22 0d 0b cc 5f f1 bd  31 33 31 22 50 4c 45 41  |N"..._..131"PLEA|
000002f0  53 45 20 57 41 49 54 20  57 48 49 4c 45 20 49 20  |SE WAIT WHILE I |
00000300  42 55 49 4c 44 20 54 48  45 20 4d 41 5a 45 22 27  |BUILD THE MAZE"'|
00000310  bd 31 33 30 22 20 20 54  68 69 73 20 6d 61 79 20  |.130"  This may |
00000320  74 61 6b 65 20 75 70 20  74 6f 20 22 3b 3a e7 53  |take up to ";:.S|
00000330  25 3d 31 20 f1 22 35 22  3b 20 8b f1 22 31 30 22  |%=1 ."5"; .."10"|
00000340  3b 0d 0b d6 42 f1 22 20  6d 69 6e 75 74 65 73 2e  |;...B." minutes.|
00000350  22 3b 3a 4a 25 3d a3 3a  41 25 3d 31 3a 4d 25 3d  |";:J%=.:A%=1:M%=|
00000360  30 3a 54 25 3d 4b 25 2a  32 3a 53 25 3d 4e 25 81  |0:T%=K%*2:S%=N%.|
00000370  28 31 30 30 2a 53 25 29  3a e7 53 25 3c 34 20 53  |(100*S%):.S%<4 S|
00000380  25 3d 34 0d 0b e0 0d 44  25 3d b3 28 34 29 2d 31  |%=4....D%=.(4)-1|
00000390  0d 0b ea 34 e7 44 25 83  32 3d 30 20 56 25 3d b3  |...4.D%.2=0 V%=.|
000003a0  28 4b 25 81 32 29 2b 4b  25 81 34 20 8b 57 25 3d  |(K%.2)+K%.4 .W%=|
000003b0  b3 28 4c 25 81 32 29 2a  4b 25 2b 4b 25 2a 28 4c  |.(L%.2)*K%+K%*(L|
000003c0  25 81 34 29 0d 0b f4 0e  e7 44 25 3d 31 20 56 25  |%.4).....D%=1 V%|
000003d0  3d 30 0d 0b fe 11 e7 44  25 3d 33 20 56 25 3d 4b  |=0.....D%=3 V%=K|
000003e0  25 2d 31 0d 0c 08 15 e7  44 25 3d 30 20 57 25 3d  |%-1.....D%=0 W%=|
000003f0  4c 25 2a 4b 25 2d 4b 25  0d 0c 12 0e e7 44 25 3d  |L%*K%-K%.....D%=|
00000400  32 20 57 25 3d 30 0d 0c  1c 24 f5 3a e7 b3 28 39  |2 W%=0...$.:..(9|
00000410  29 3d 32 20 44 25 3d 28  44 25 2b b3 28 33 29 29  |)=2 D%=(D%+.(3))|
00000420  83 34 3a 41 25 3d 41 25  82 32 0d 0c 26 20 f2 63  |.4:A%=A%.2..& .c|
00000430  68 65 63 6b 3a e7 45 25  3e 31 35 32 39 20 f2 6d  |heck:.E%>1529 .m|
00000440  6f 76 65 20 8b f2 62 61  63 6b 0d 0c 30 07 fd 4a  |ove ..back..0..J|
00000450  25 0d 0c 3a 18 f5 3a 4e  25 3d 4e 25 2d 31 3a fd  |%..:..:N%=N%-1:.|
00000460  47 25 3f 4e 25 3c 26 46  46 0d 0c 44 1c 52 25 3f  |G%?N%<&FF..D.R%?|
00000470  2d 32 3d 47 25 3f 4e 25  3a 52 25 3f b9 3d 28 48  |-2=G%?N%:R%?.=(H|
00000480  25 3f 4e 25 29 0d 0c 4e  1c 52 25 3f 28 52 25 3f  |%?N%)..N.R%?(R%?|
00000490  2d 32 2b 28 52 25 3f b9  29 2a 4b 25 29 3d 32 31  |-2+(R%?.)*K%)=21|
000004a0  31 0d 0c 58 0e 5a 25 3d  b9 3a e4 8d 74 60 4f 0d  |1..X.Z%=.:..t`O.|
000004b0  0c 62 05 f8 0d 0f a0 0a  e7 ac 5a 25 20 f8 0d 0f  |.b........Z% ...|
000004c0  aa 37 4e 25 3d 32 35 35  3a 53 25 3d 30 3a 54 25  |.7N%=255:S%=0:T%|
000004d0  3d 30 3a 56 25 3d 31 37  3a 57 25 3d 4b 25 2a 31  |=0:V%=17:W%=K%*1|
000004e0  32 3a 43 25 3d 52 25 3f  2d 32 3a 46 25 3d 52 25  |2:C%=R%?-2:F%=R%|
000004f0  3f b9 2a 4b 25 0d 0f b4  3f e7 43 25 3c 31 37 20  |?.*K%...?.C%<17 |
00000500  56 25 3d 43 25 3a 43 25  3d 30 20 8b e7 4b 25 2d  |V%=C%:C%=0 ..K%-|
00000510  43 25 3c 31 36 20 56 25  3d 43 25 2b 33 35 2d 4b  |C%<16 V%=C%+35-K|
00000520  25 3a 43 25 3d 4b 25 2d  33 35 20 8b 43 25 3d 43  |%:C%=K%-35 .C%=C|
00000530  25 2d 31 37 0d 0f be 55  e7 46 25 3c 31 32 2a 4b  |%-17...U.F%<12*K|
00000540  25 20 57 25 3d 46 25 3a  46 25 3d 30 20 8b e7 4c  |% W%=F%:F%=0 ..L|
00000550  25 2a 4b 25 2d 46 25 3c  31 32 2a 4b 25 20 57 25  |%*K%-F%<12*K% W%|
00000560  3d 46 25 2b 28 32 33 2d  4c 25 29 2a 4b 25 3a 46  |=F%+(23-L%)*K%:F|
00000570  25 3d 28 4c 25 2d 32 33  29 2a 4b 25 20 8b 46 25  |%=(L%-23)*K% .F%|
00000580  3d 46 25 2d 31 32 2a 4b  25 0d 0f c8 26 db 3a e3  |=F%-12*K%...&.:.|
00000590  49 25 3d 30 20 b8 32 34  3a f1 8a 30 2c 49 25 29  |I%=0 .24:..0,I%)|
000005a0  bd 31 35 30 bd 31 35 37  bd 31 34 38 3b 3a ed 0d  |.150.157.148;:..|
000005b0  0f d2 13 ef 32 33 3b 38  32 30 32 3b 30 3b 30 3b  |....23;8202;0;0;|
000005c0  30 3b 0d 0f dc 0f 4d 25  3d 52 25 2b 43 25 2b 46  |0;....M%=R%+C%+F|
000005d0  25 0d 0f e6 07 f5 3a f5  0d 0f f0 11 53 25 3d a6  |%.....:.....S%=.|
000005e0  2d 32 36 2d a6 2d 31 32  32 0d 0f fa 15 54 25 3d  |-26-.-122....T%=|
000005f0  4b 25 2a 28 a6 2d 35 38  2d a6 2d 34 32 29 0d 10  |K%*(.-58-.-42)..|
00000600  04 0e e7 a6 2d 39 37 20  f2 74 61 62 0d 10 0e 0f  |....-97 .tab....|
00000610  e7 4e 25 3d 30 20 f2 65  64 69 74 0d 10 18 15 45  |.N%=0 .edit....E|
00000620  25 3d 4d 25 2b 53 25 2b  54 25 2b 56 25 2b 57 25  |%=M%+S%+T%+V%+W%|
00000630  0d 10 22 37 fd 3f 45 25  3c 3e 4e 25 20 80 56 25  |.."7.?E%<>N% .V%|
00000640  2b 53 25 3e b9 20 80 56  25 2b 53 25 3c 33 35 20  |+S%>. .V%+S%<35 |
00000650  80 57 25 2b 54 25 3e b9  20 80 28 57 25 2b 54 25  |.W%+T%>. .(W%+T%|
00000660  29 81 4b 25 3c 32 33 0d  10 2c 19 e7 3f 45 25 3d  |).K%<23..,..?E%=|
00000670  32 35 35 20 46 25 3d 37  39 20 8b 46 25 3d 38 38  |255 F%=79 .F%=88|
00000680  0d 10 36 46 e7 56 25 3d  31 37 20 80 28 28 4d 25  |..6F.V%=17 .((M%|
00000690  2d 52 25 29 83 4b 25 3e  30 20 80 53 25 3c 30 20  |-R%).K%>0 .S%<0 |
000006a0  84 28 4d 25 2d 52 25 29  83 4b 25 3c 4b 25 2d 33  |.(M%-R%).K%<K%-3|
000006b0  35 20 80 53 25 3e 30 29  20 4d 25 3d 4d 25 2b 53  |5 .S%>0) M%=M%+S|
000006c0  25 3a 53 25 3d 30 0d 10  40 47 e7 57 25 3d 4b 25  |%:S%=0..@G.W%=K%|
000006d0  2a 31 32 20 80 28 4d 25  2d 52 25 3e 4b 25 2d 31  |*12 .(M%-R%>K%-1|
000006e0  20 80 54 25 3c 30 20 84  28 4d 25 2d 52 25 29 81  | .T%<0 .(M%-R%).|
000006f0  4b 25 3c 4c 25 2d 32 33  20 80 54 25 3e 30 29 20  |K%<L%-23 .T%>0) |
00000700  4d 25 3d 4d 25 2b 54 25  3a 54 25 3d 30 0d 10 4a  |M%=M%+T%:T%=0..J|
00000710  15 56 25 3d 56 25 2b 53  25 3a 57 25 3d 57 25 2b  |.V%=V%+S%:W%=W%+|
00000720  54 25 0d 10 54 1f d6 73  63 72 65 65 6e 3a f1 8a  |T%..T..screen:..|
00000730  56 25 2b 33 2c 31 2b 57  25 20 81 4b 25 29 bd 46  |V%+3,1+W% .K%).F|
00000740  25 0d 10 5e 09 f2 77 61  69 74 0d 10 68 06 fd a3  |%..^..wait..h...|
00000750  0d 13 88 0a e7 ac 5a 25  20 f8 0d 13 92 13 52 25  |......Z% .....R%|
00000760  21 2d 38 3d 26 36 35 37  41 36 31 36 44 0d 13 9c  |!-8=&657A616D...|
00000770  09 f2 6e 61 6d 65 0d 13  a6 25 f2 6f 73 63 6c 69  |..name...%.oscli|
00000780  28 22 53 41 56 45 22 2b  61 24 2b 22 2b 22 2b c3  |("SAVE"+a$+"+"+.|
00000790  7e 28 4b 25 2a 4c 25 2b  38 29 29 0d 13 b0 05 f8  |~(K%*L%+8)).....|
000007a0  0d 17 70 0a e7 ac 5a 25  20 f8 0d 17 7a 18 f1 27  |..p...Z% ...z..'|
000007b0  3a ef 32 2c 31 2c 32 37  2c 31 2c 35 31 2c 31 2c  |:.2,1,27,1,51,1,|
000007c0  31 38 0d 17 84 19 f1 22  53 69 7a 65 20 22 3b 4b  |18....."Size ";K|
000007d0  25 22 20 78 20 22 3b 4c  25 20 27 0d 17 8e 0b 53  |%" x ";L% '....S|
000007e0  25 3d 4b 25 2a 38 0d 17  98 1b e3 57 25 3d 4b 25  |%=K%*8.....W%=K%|
000007f0  20 b8 4c 25 2a 4b 25 2d  4b 25 2a 32 20 88 20 4b  | .L%*K%-K%*2 . K|
00000800  25 0d 17 a2 09 41 25 3d  52 25 0d 17 ac 22 ef 31  |%....A%=R%...".1|
00000810  2c 32 37 2c 31 2c 37 36  2c 31 2c 53 25 20 83 32  |,27,1,76,1,S% .2|
00000820  35 36 2c 31 2c 53 25 20  81 32 35 36 0d 17 b6 10  |56,1,S% .256....|
00000830  e3 56 25 3d 31 20 b8 53  25 20 81 38 0d 17 c0 1e  |.V%=1 .S% .8....|
00000840  41 25 3d 41 25 2b 31 3a  42 25 3d 50 25 2b 57 25  |A%=A%+1:B%=P%+W%|
00000850  3f 41 25 20 81 31 31 30  2a 38 0d 17 ca 09 f2 63  |?A% .110*8.....c|
00000860  68 61 72 0d 17 d4 05 ed  0d 17 de 09 ef 31 2c 31  |har..........1,1|
00000870  30 0d 17 e8 05 ed 0d 17  f2 0b ef 31 2c 31 32 2c  |0..........1,12,|
00000880  33 0d 17 fc 05 f8 0d 1b  58 1d db 3a f1 8a 31 33  |3.......X..:..13|
00000890  2c 33 29 bd 31 33 31 22  56 49 45 57 20 4d 4f 44  |,3).131"VIEW MOD|
000008a0  45 22 27 0d 1b 62 0d e3  49 25 3d 30 20 b8 31 33  |E"'..b..I%=0 .13|
000008b0  0d 1b 6c 0f f3 61 24 3a  f1 bd 31 33 34 61 24 0d  |..l..a$:..134a$.|
000008c0  1b 76 05 ed 0d 1b 80 08  f2 6b 65 79 0d 1b 8a 05  |.v.......key....|
000008d0  f8 0d 1f 40 05 f5 0d 1f  4a 0b f1 27 27 22 2a 22  |...@....J..''"*"|
000008e0  3b 0d 1f 54 09 e8 22 22  61 24 0d 1f 5e 13 f2 6f  |;..T..""a$..^..o|
000008f0  73 63 6c 69 28 61 24 29  3a f2 6b 65 79 0d 1f 68  |scli(a$):.key..h|
00000900  0a fd 61 3c 3e 34 32 0d  1f 72 05 f8 0d 27 10 0a  |..a<>42..r...'..|
00000910  dd f2 77 61 69 74 0d 27  1a 0f f5 3a fd 91 3e 31  |..wait.'...:..>1|
00000920  30 3a d1 3d 30 0d 27 24  05 e1 0d 2a f8 09 dd f2  |0:.=0.'$...*....|
00000930  6b 65 79 0d 2b 02 1b f1  27 27 bd 31 33 34 22 50  |key.+...''.134"P|
00000940  72 65 73 73 20 61 6e 79  20 6b 65 79 22 3b 0d 2b  |ress any key";.+|
00000950  0c 07 61 3d a5 0d 2b 16  05 e1 0d 5d c0 0a dd f2  |..a=..+....]....|
00000960  63 68 61 72 0d 5d ca 0c  e3 49 25 3d 30 20 b8 37  |char.]...I%=0 .7|
00000970  0d 5d d4 0c ef 31 2c 49  25 3f 42 25 0d 5d de 05  |.]...1,I%?B%.]..|
00000980  ed 0d 5d e8 05 e1 0d 61  a8 0a dd f2 6e 61 6d 65  |..]....a....name|
00000990  0d 61 b2 1d f1 27 27 bd  31 33 31 22 45 6e 74 65  |.a...''.131"Ente|
000009a0  72 20 66 69 6c 65 6e 61  6d 65 20 22 3b 0d 61 bc  |r filename ";.a.|
000009b0  20 e8 22 22 61 24 3a 61  24 3d 22 20 22 2b 61 24  | .""a$:a$=" "+a$|
000009c0  2b 22 20 22 2b c3 7e 28  52 25 2d 38 29 0d 61 c6  |+" "+.~(R%-8).a.|
000009d0  05 e1 0d 65 90 09 dd f2  74 61 62 0d 65 9a 16 e7  |...e....tab.e...|
000009e0  4e 25 3d 30 20 4e 25 3d  32 35 35 20 8b 4e 25 3d  |N%=0 N%=255 .N%=|
000009f0  30 0d 65 a4 0c ef 37 3a  f2 77 61 69 74 0d 65 ae  |0.e...7:.wait.e.|
00000a00  05 e1 0d 69 78 0a dd f2  65 64 69 74 0d 69 82 1a  |...ix...edit.i..|
00000a10  e7 a6 2d 31 30 36 20 80  3f 45 25 3d 32 35 35 20  |..-106 .?E%=255 |
00000a20  3f 45 25 3d 33 32 0d 69  8c 19 e7 a6 2d 39 30 20  |?E%=32.i....-90 |
00000a30  80 3f 45 25 3d 33 32 20  3f 45 25 3d 32 35 35 0d  |.?E%=32 ?E%=255.|
00000a40  69 96 05 e1 0d 6d 60 0a  dd f2 73 69 7a 65 0d 6d  |i....m`...size.m|
00000a50  6a 08 4e 25 3d a3 0d 6d  74 22 f1 27 27 bd 31 33  |j.N%=..mt".''.13|
00000a60  34 22 4d 61 7a 65 20 77  69 64 74 68 20 28 33 35  |4"Maze width (35|
00000a70  20 6d 69 6e 29 20 22 3b  0d 6d 7e 0a e8 22 22 20  | min) ";.m~.."" |
00000a80  6b 25 0d 6d 88 20 f1 bd  31 33 34 22 4d 61 7a 65  |k%.m. ..134"Maze|
00000a90  20 64 65 70 74 68 20 28  32 33 20 6d 69 6e 29 20  | depth (23 min) |
00000aa0  22 3b 0d 6d 92 0a e8 22  22 20 6c 25 0d 6d 9c 40  |";.m..."" l%.m.@|
00000ab0  e7 6b 25 3e 32 35 30 20  84 6c 25 3e 32 35 30 20  |.k%>250 .l%>250 |
00000ac0  84 52 25 2b 6b 25 2a 6c  25 3e 55 25 20 f1 27 22  |.R%+k%*l%>U% .'"|
00000ad0  53 6f 72 72 79 20 74 68  69 73 20 69 73 20 74 6f  |Sorry this is to|
00000ae0  6f 20 62 69 67 22 3b 3a  4e 25 3d b9 0d 6d a6 33  |o big";:N%=..m.3|
00000af0  e7 6b 25 3c 33 35 20 84  6c 25 3c 32 33 20 f1 27  |.k%<35 .l%<23 .'|
00000b00  22 53 6f 72 72 79 20 74  68 69 73 20 69 73 20 74  |"Sorry this is t|
00000b10  6f 6f 20 73 6d 61 6c 6c  22 3b 3a 4e 25 3d b9 0d  |oo small";:N%=..|
00000b20  6d b0 0e e7 4e 25 20 f2  6b 65 79 3a e1 0d 6d ba  |m...N% .key:..m.|
00000b30  1a 4b 25 3d 6b 25 3a 4c  25 3d 6c 25 3a 5a 25 3d  |.K%=k%:L%=l%:Z%=|
00000b40  a3 3a d6 77 69 70 65 0d  6d c4 96 e3 49 25 3d 4b  |.:.wipe.m...I%=K|
00000b50  25 20 b8 4b 25 2a 4c 25  2d 4b 25 20 88 20 4b 25  |% .K%*L%-K% . K%|
00000b60  3a 52 25 3f 28 49 25 2d  31 29 3d 31 30 36 3a 52  |:R%?(I%-1)=106:R|
00000b70  25 3f 49 25 3d 35 33 3a  ed 3a e3 49 25 3d 31 20  |%?I%=53:.:.I%=1 |
00000b80  b8 4b 25 2d 32 3a 52 25  3f 49 25 3d 34 37 3a 52  |.K%-2:R%?I%=47:R|
00000b90  25 3f 28 49 25 2b 4b 25  2a 4c 25 2d 4b 25 29 3d  |%?(I%+K%*L%-K%)=|
00000ba0  31 32 34 3a ed 3a 3f 52  25 3d 36 33 3a 52 25 3f  |124:.:?R%=63:R%?|
00000bb0  28 4b 25 2d 31 29 3d 31  31 31 3a 52 25 3f 28 4b  |(K%-1)=111:R%?(K|
00000bc0  25 2a 4c 25 2d 4b 25 29  3d 31 32 35 3a 52 25 3f  |%*L%-K%)=125:R%?|
00000bd0  28 4b 25 2a 4c 25 2d 31  29 3d 31 32 36 0d 6d ce  |(K%*L%-1)=126.m.|
00000be0  15 52 25 3f 2d 34 3d 4b  25 3a 52 25 3f 2d 33 3d  |.R%?-4=K%:R%?-3=|
00000bf0  4c 25 0d 6d d8 05 e1 0d  71 48 0b dd f2 63 68 65  |L%.m....qH...che|
00000c00  63 6b 0d 71 52 11 45 25  3d a3 3a e7 4d 25 3d 4e  |ck.qR.E%=.:.M%=N|
00000c10  25 20 e1 0d 71 5c 0c e3  49 25 3d 30 20 b8 33 0d  |% ..q\..I%=0 .3.|
00000c20  71 66 0d e7 44 25 3d 30  20 f2 75 70 0d 71 70 10  |qf..D%=0 .up.qp.|
00000c30  e7 44 25 3d 31 20 f2 72  69 67 68 74 0d 71 7a 0f  |.D%=1 .right.qz.|
00000c40  e7 44 25 3d 32 20 f2 64  6f 77 6e 0d 71 84 0f e7  |.D%=2 .down.q...|
00000c50  44 25 3d 33 20 f2 6c 65  66 74 0d 71 8e 24 e7 45  |D%=3 .left.q.$.E|
00000c60  25 3e 31 35 32 39 20 49  25 3d 34 20 8b 45 25 3d  |%>1529 I%=4 .E%=|
00000c70  a3 3a 44 25 3d 28 44 25  2b 41 25 29 83 34 0d 71  |.:D%=(D%+A%).4.q|
00000c80  98 05 ed 0d 71 a2 05 e1  0d 71 ac 3c dd f2 75 70  |....q....q.<..up|
00000c90  3a e3 43 25 3d b9 20 b8  31 3a e3 46 25 3d 4b 25  |:.C%=. .1:.F%=K%|
00000ca0  20 b8 54 25 20 88 4b 25  3a 45 25 3d 45 25 2b 52  | .T% .K%:E%=E%+R|
00000cb0  25 3f 28 56 25 2b 43 25  2b 57 25 2d 46 25 29 3a  |%?(V%+C%+W%-F%):|
00000cc0  ed 2c 3a e1 0d 72 10 40  dd f2 72 69 67 68 74 3a  |.,:..r.@..right:|
00000cd0  e3 46 25 3d 2d 4b 25 20  b8 4b 25 20 88 4b 25 3a  |.F%=-K% .K% .K%:|
00000ce0  e3 43 25 3d 31 20 b8 32  3a 45 25 3d 45 25 2b 52  |.C%=1 .2:E%=E%+R|
00000cf0  25 3f 28 56 25 2b 43 25  2b 57 25 2b 46 25 29 3a  |%?(V%+C%+W%+F%):|
00000d00  ed 2c 3a e1 0d 72 74 3e  dd f2 64 6f 77 6e 3a e3  |.,:..rt>..down:.|
00000d10  43 25 3d b9 20 b8 31 3a  e3 46 25 3d 4b 25 20 b8  |C%=. .1:.F%=K% .|
00000d20  54 25 20 88 4b 25 3a 45  25 3d 45 25 2b 52 25 3f  |T% .K%:E%=E%+R%?|
00000d30  28 56 25 2b 43 25 2b 57  25 2b 46 25 29 3a ed 2c  |(V%+C%+W%+F%):.,|
00000d40  3a e1 0d 72 d8 3f dd f2  6c 65 66 74 3a e3 46 25  |:..r.?..left:.F%|
00000d50  3d 2d 4b 25 20 b8 4b 25  20 88 4b 25 3a e3 43 25  |=-K% .K% .K%:.C%|
00000d60  3d 31 20 b8 32 3a 45 25  3d 45 25 2b 52 25 3f 28  |=1 .2:E%=E%+R%?(|
00000d70  56 25 2d 43 25 2b 57 25  2b 46 25 29 3a ed 2c 3a  |V%-C%+W%+F%):.,:|
00000d80  e1 0d 73 3c 0a dd f2 6d  6f 76 65 0d 73 46 12 e7  |..s<...move.sF..|
00000d90  44 25 3d 30 20 57 25 3d  57 25 2d 4b 25 0d 73 50  |D%=0 W%=W%-K%.sP|
00000da0  11 e7 44 25 3d 31 20 56  25 3d 56 25 2b 31 0d 73  |..D%=1 V%=V%+1.s|
00000db0  5a 12 e7 44 25 3d 32 20  57 25 3d 57 25 2b 4b 25  |Z..D%=2 W%=W%+K%|
00000dc0  0d 73 64 11 e7 44 25 3d  33 20 56 25 3d 56 25 2d  |.sd..D%=3 V%=V%-|
00000dd0  31 0d 73 6e 2e 52 25 3f  28 56 25 2b 57 25 29 3d  |1.sn.R%?(V%+W%)=|
00000de0  33 32 3a 47 25 3f 4d 25  3d 56 25 3a 48 25 3f 4d  |32:G%?M%=V%:H%?M|
00000df0  25 3d 57 25 81 4b 25 3a  4d 25 3d 4d 25 2b 31 0d  |%=W%.K%:M%=M%+1.|
00000e00  73 78 05 e1 0d 73 a0 0a  dd f2 62 61 63 6b 0d 73  |sx...s....back.s|
00000e10  aa 30 e7 4d 25 3e 53 25  2b 32 20 4d 25 3d 4d 25  |.0.M%>S%+2 M%=M%|
00000e20  2d 53 25 3a 56 25 3d 47  25 3f 4d 25 3a 57 25 3d  |-S%:V%=G%?M%:W%=|
00000e30  48 25 3f 4d 25 2a 4b 25  20 8b 4a 25 3d b9 0d 73  |H%?M%*K% .J%=..s|
00000e40  b4 05 e1 0d 75 30 0a dd  f2 69 6e 69 74 0d 75 3a  |....u0...init.u:|
00000e50  31 47 25 3d 93 3a 48 25  3d 47 25 2b 28 55 25 2d  |1G%=.:H%=G%+(U%-|
00000e60  47 25 29 81 31 30 3a 52  25 3d 48 25 2b 28 55 25  |G%).10:R%=H%+(U%|
00000e70  2d 47 25 29 81 31 30 2b  38 3a 5a 25 3d a3 0d 75  |-G%).10+8:Z%=..u|
00000e80  44 0b 50 25 3d 26 39 30  30 0d 75 4e 0a 5b 4f 50  |D.P%=&900.uN.[OP|
00000e90  54 20 32 0d 75 58 0b 2e  73 63 72 65 65 6e 0d 75  |T 2.uX..screen.u|
00000ea0  62 23 4c 44 41 20 26 34  33 34 3a 53 54 41 26 37  |b#LDA &434:STA&7|
00000eb0  30 3a 4c 44 41 20 26 34  33 35 3a 53 54 41 26 37  |0:LDA &435:STA&7|
00000ec0  31 0d 75 6c 2d 4c 44 41  20 23 26 32 42 3a 53 54  |1.ul-LDA #&2B:ST|
00000ed0  41 20 26 37 32 3a 4c 44  41 20 23 26 37 43 3a 53  |A &72:LDA #&7C:S|
00000ee0  54 41 20 26 37 33 3a 4c  44 58 20 23 32 33 0d 75  |TA &73:LDX #23.u|
00000ef0  76 12 2e 66 72 61 6d 65  3a 4c 44 59 20 23 33 34  |v..frame:LDY #34|
00000f00  0d 75 80 21 2e 6c 69 6e  65 3a 4c 44 41 20 28 26  |.u.!.line:LDA (&|
00000f10  37 30 29 2c 59 3a 53 54  41 20 28 26 37 32 29 2c  |70),Y:STA (&72),|
00000f20  59 0d 75 8a 10 44 45 59  3a 42 50 4c 20 6c 69 6e  |Y.u..DEY:BPL lin|
00000f30  65 0d 75 94 37 43 4c 43  3a 4c 44 41 20 26 37 30  |e.u.7CLC:LDA &70|
00000f40  3a 41 44 43 20 26 34 32  43 3a 53 54 41 20 26 37  |:ADC &42C:STA &7|
00000f50  30 3a 4c 44 41 20 26 37  31 3a 41 44 43 20 23 30  |0:LDA &71:ADC #0|
00000f60  3a 53 54 41 20 26 37 31  0d 75 9e 36 43 4c 43 3a  |:STA &71.u.6CLC:|
00000f70  4c 44 41 20 26 37 32 3a  41 44 43 20 23 34 30 3a  |LDA &72:ADC #40:|
00000f80  53 54 41 20 26 37 32 3a  4c 44 41 20 26 37 33 3a  |STA &72:LDA &73:|
00000f90  41 44 43 20 23 30 3a 53  54 41 20 26 37 33 0d 75  |ADC #0:STA &73.u|
00000fa0  a8 11 44 45 58 3a 42 4e  45 20 66 72 61 6d 65 0d  |..DEX:BNE frame.|
00000fb0  75 b2 07 52 54 53 0d 75  bc 09 2e 77 69 70 65 0d  |u..RTS.u...wipe.|
00000fc0  75 c6 12 4c 44 41 20 23  30 3a 53 54 41 20 26 37  |u..LDA #0:STA &7|
00000fd0  30 0d 75 d0 17 4c 44 41  20 23 47 25 81 32 35 36  |0.u..LDA #G%.256|
00000fe0  3a 53 54 41 20 26 37 31  0d 75 da 14 4c 44 58 20  |:STA &71.u..LDX |
00000ff0  23 28 55 25 2d 47 25 29  81 32 35 36 0d 75 e4 0f  |#(U%-G%).256.u..|
00001000  4c 44 59 20 23 47 25 83  32 35 36 0d 75 ee 0c 4c  |LDY #G%.256.u..L|
00001010  44 41 20 23 26 46 46 0d  75 f8 15 2e 6c 6f 6f 70  |DA #&FF.u...loop|
00001020  3a 53 54 41 20 28 26 37  30 29 2c 59 0d 76 02 10  |:STA (&70),Y.v..|
00001030  49 4e 59 3a 42 4e 45 20  6c 6f 6f 70 0d 76 0c 18  |INY:BNE loop.v..|
00001040  49 4e 43 20 26 37 31 3a  44 45 58 3a 42 50 4c 20  |INC &71:DEX:BPL |
00001050  6c 6f 6f 70 0d 76 16 09  52 54 53 3a 5d 0d 76 20  |loop.v..RTS:].v |
00001060  0d e3 49 25 3d 30 20 b8  32 33 0d 76 2a 0a f3 49  |..I%=0 .23.v*..I|
00001070  25 3f 50 25 0d 76 34 05  ed 0d 76 3e 05 e1 0d 79  |%?P%.v4...v>...y|
00001080  18 09 dd f2 65 72 72 0d  79 22 13 ef 33 3a e7 9f  |....err.y"..3:..|
00001090  3d 31 37 20 80 ac a6 b9  20 e1 0d 79 2c 13 f6 3a  |=17 .... ..y,..:|
000010a0  e7 9f 3d 32 30 34 3a f2  6b 65 79 3a e1 0d 79 2d  |..=204:.key:..y-|
000010b0  12 f1 22 20 61 74 20 6c  69 6e 65 20 22 3b 9e 0d  |.." at line ";..|
000010c0  79 36 05 e0 0d 7d 00 4b  dc 20 30 2c 30 2c 30 2c  |y6...}.K. 0,0,0,|
000010d0  30 2c 30 2c 30 2c 30 2c  30 2c 30 2c 34 38 2c 37  |0,0,0,0,0,0,48,7|
000010e0  32 2c 37 32 2c 37 32 2c  37 32 2c 34 38 2c 30 2c  |2,72,72,72,48,0,|
000010f0  32 35 32 2c 32 35 32 2c  32 35 32 2c 32 35 32 2c  |252,252,252,252,|
00001100  32 35 32 2c 32 35 32 2c  32 35 32 2c 32 35 32 0d  |252,252,252,252.|
00001110  7d 0a 64 dc 20 4c 6f 61  64 20 6d 61 7a 65 20 66  |}.d. Load maze f|
00001120  72 6f 6d 20 66 69 6c 65  2c 53 65 74 20 62 6c 61  |rom file,Set bla|
00001130  6e 6b 20 73 68 65 65 74  2c 42 75 69 6c 64 20 6e  |nk sheet,Build n|
00001140  65 77 20 6d 61 7a 65 2c  56 69 65 77 20 6d 61 7a  |ew maze,View maz|
00001150  65 2c 53 61 76 65 20 6d  61 7a 65 20 74 6f 20 66  |e,Save maze to f|
00001160  69 6c 65 2c 50 72 69 6e  74 20 6d 61 7a 65 2c 48  |ile,Print maze,H|
00001170  65 6c 70 0d 7d 14 8c dc  20 55 73 65 20 27 54 41  |elp.}... Use 'TA|
00001180  42 27 20 74 6f 20 73 77  69 74 63 68 20 62 65 74  |B' to switch bet|
00001190  77 65 65 6e 20 6e 6f 72  6d 61 6c 2c 6d 6f 76 65  |ween normal,move|
000011a0  6d 65 6e 74 20 74 68 72  6f 75 67 68 20 74 68 65  |ment through the|
000011b0  20 6d 61 7a 65 20 61 6e  64 20 65 64 69 74 2e 2c  | maze and edit.,|
000011c0  2c 22 20 20 49 6e 20 65  64 69 74 20 6d 6f 64 65  |,"  In edit mode|
000011d0  20 79 6f 75 20 63 61 6e  20 6d 6f 76 65 20 66 72  | you can move fr|
000011e0  65 65 6c 79 22 2c 6f 76  65 72 20 74 68 65 20 77  |eely",over the w|
000011f0  68 6f 6c 65 20 6d 61 7a  65 20 61 72 65 61 2e 0d  |hole maze area..|
00001200  7d 1e b0 dc 20 2c 22 20  20 55 73 65 20 3a 22 2c  |}... ,"  Use :",|
00001210  2c 27 43 4f 50 59 27 20  74 6f 20 70 75 74 20 74  |,'COPY' to put t|
00001220  68 65 20 70 61 74 68 20  69 6e 2c 27 44 45 4c 45  |he path in,'DELE|
00001230  54 45 27 20 74 6f 20 63  68 61 6e 67 65 20 74 6f  |TE' to change to|
00001240  20 62 61 63 6b 67 72 6f  75 6e 64 2c 43 75 72 73  | background,Curs|
00001250  6f 72 20 6b 65 79 73 20  74 6f 20 6d 6f 76 65 20  |or keys to move |
00001260  61 72 6f 75 6e 64 2c 2c  22 20 20 54 68 69 6e 20  |around,,"  Thin |
00001270  6c 69 6e 65 73 20 6d 61  72 6b 20 74 68 65 20 6d  |lines mark the m|
00001280  61 7a 65 20 65 64 67 65  73 22 2c 22 61 6e 64 20  |aze edges","and |
00001290  27 58 27 20 74 68 65 20  63 75 72 73 6f 72 2c 20  |'X' the cursor, |
000012a0  27 53 27 20 74 68 65 20  73 74 61 72 74 2e 22 0d  |'S' the start.".|
000012b0  7d 28 0f dd f2 6f 73 63  6c 69 28 61 24 29 0d 7d  |}(...oscli(a$).}|
000012c0  32 08 ea 20 43 25 0d 7d  3c 0b de 20 43 25 20 33  |2.. C%.}<.. C% 3|
000012d0  30 0d 7d 46 25 24 43 25  3d 61 24 3a 58 25 3d 43  |0.}F%$C%=a$:X%=C|
000012e0  25 83 32 35 36 3a 59 25  3d 43 25 81 32 35 36 3a  |%.256:Y%=C%.256:|
000012f0  d6 26 46 46 46 37 0d 7d  50 05 e1 0d ff           |.&FFF7.}P....|
000012fd
30-07-89/Maze.m0
30-07-89/Maze.m1
30-07-89/Maze.m2
30-07-89/Maze.m4
30-07-89/Maze.m5