Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM E



Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\BE\C8\AF\BE\CA\BE

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3\E0 3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.' 4 REM \AF\BE\CA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
D

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"E

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3 5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 7 REM \AF\BE\C8

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"A\FBA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"A\FB\C9 12 REM \AF\BE\CA\AC

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\CE itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3\CF 13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 14 REM \AF\BE\CA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
CE

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\CE itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3 15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 22 REM \AF\BE\CA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\AB

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3\B8 23 REM

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\CC

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1" 24 REM \AF\BE\CA\E5

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\BE

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3 25 REM

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\DE

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1" 26 REM E£RND7) THEN ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 27 REM 5\':RND%J%YCOS E£RND7)EXP ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 32 REM \AF\BE\CAD

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\EF

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\C3 33 REM E£RND7) LOAD ;Q\..)\##\' ;Q\''/\:'% 34 REM \AF\BE\CA\A7

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C\FE

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\C3\C0 35 REM E£RND7) RETURN ;Q\..)\##\' ;Q\''/\:'% 36 REM E£RND7) RETURN ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 37 REM 5\':RND%J%YCOS E£RND7) LIST ;\.':Q\..7( CLS ) IF ;\.':Q\''7( CLS TAN 42 REM \AF\BE\CA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\C6

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3 43 REM E£RND7))\' ;Q\..)LEN ;Q\''/\:'% 44 REM \AF\BE\CA

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
A

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
C itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"E itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\C6

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
\C3C 45 REM E£RND7)2\' ;Q\..)LEN ;Q\''/\:'% 46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 49 REM

Labyrinth

Products: Labyrinth
Date: 1982
Type: Cassette
Platform(s): TS 1000

This is a quickload program. It is comprised of a short speed loader in normal ZX81/TS1000 format followed by the actual program in a format similar to the Spectrum and TS2068 tape format.

  • Labrinth.wav is the file directly from the tape with fades and dropouts corrected.
  • Labrinth1.wav has been edited to remove noise and provide more of a square wave signal.

Content

Appears On

Related Products

Pick your maze; from small and simple to complex. The maze is displayed for a few minutes to let you...

Related Articles

Related Content

Image Gallery

Labyrinth

Source Code

   1 REM  \' \ '\. \' 
   2 REM \21\84\40\3E\02\BE\C8\21\82\40\AF\BE\CA\BE\40\2A\0C\40\23\23\36\86\11\22\00\19\36\86\11\94\02\19\36\06\11\20\00\19\36\06\C3\E0\40
   3 REM E£RND7)5 ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\.'
   4 REM \21\83\40\AF\BE\CA\0D\41\2A\0C\40\23\11\1E\00\19\36\06\11\20\00\19\36\06\11\94\02\19\36\86\11\22\00\19\36\86\C3\30\41
   5 REM E£RND7)Y ;\.'\''Q\..7( CLS )%)\ ';\.'\''Q\''7( CLS /\:'% 
   6 REM E£RND)Z ;\.'<)\.' ;Q\ :). ;Q\: ( PAUSE /\:'% 
   7 REM \21\84\40\AF\BE\C8\2A\0C\40\23\11\24\00\19\06\1A\36\83\23\10\FB\11\7A\02\19\06\1A\36\03\23\10\FB\C9\80\80
  12 REM \21\82\40\AF\BE\CA\AC\41\2A\0C\40\23\11\45\00\19\36\86\11\22\00\19\36\86\19\36\86\11\CE\01\19\36\06\11\20\00\19\36\06\19\36\06\C3\CF\41
  13 REM E£RND7)\ . ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  14 REM \21\83\40\AF\BE\CA\02\42\2A\0C\40\23\11\5E\00\19\36\06\11\20\00\19\36\06\19\36\06\11\CE\01\19\36\86\11\22\00\19\36\86\19\36\86\C3\25\42
  15 REM E£RND7)%2 ;\.'\''Q\..7( CLS )ACS \' ;\.'\''Q\''7( CLS /\:'% 
  16 REM E£RND)%3 ;\.'$)£ ;Q\ :)+ ;Q\: ( PAUSE /\:'% 
  17 REM 5\':RND%J%YCOS E£RND7)\!! ;\.'=Q\..7( CLS )%U\' ;\.'=Q\''7( CLS TAN 
  22 REM \21\82\40\AF\BE\CA\99\42\2A\0C\40\23\11\AB\00\19\36\86\11\22\00\19\36\86\11\4A\01\19\36\06\11\20\00\19\36\06\C3\B8\42
  23 REM \2A\0C\40\23\11\CC\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  24 REM \21\83\40\AF\BE\CA\E5\42\2A\0C\40\23\11\BE\00\19\36\06\11\20\00\19\36\06\11\4A\01\19\36\86\11\22\00\19\36\86\C3\04\43
  25 REM \2A\0C\40\23\11\DE\00\19\36\83\23\36\83\11\49\01\19\36\03\23\36\03\18\07\80
  26 REM E£RND7) THEN  ;\.'\,,)( ;Q\ :)) ;Q\: ( PAUSE /\:'% 
  27 REM 5\':RND%J%YCOS E£RND7)EXP  ;\.'(Q\..7( CLS )U\' ;\.'(Q\''7( CLS TAN 
  32 REM \21\82\40\AF\BE\CA\6D\43\2A\0C\40\23\11\EF\00\19\36\86\11\08\01\19\36\06\C3\86\43
  33 REM E£RND7) LOAD  ;Q\..)\##\' ;Q\''/\:'% 
  34 REM \21\83\40\AF\BE\CA\A7\43\2A\0C\40\23\11\FE\00\19\36\06\11\08\01\19\36\86\C3\C0\43
  35 REM E£RND7) RETURN  ;Q\..)\##\' ;Q\''/\:'% 
  36 REM E£RND7) RETURN  ;\.'\:')> ;Q\ :)? ;Q\: ( PAUSE /\:'% 
  37 REM 5\':RND%J%YCOS E£RND7) LIST  ;\.':Q\..7( CLS ) IF  ;\.':Q\''7( CLS TAN 
  42 REM \21\82\40\AF\BE\CA\29\44\2A\0C\40\23\11\11\01\19\36\86\11\C6\00\19\36\06\C3\42\44
  43 REM E£RND7))\' ;Q\..)LEN  ;Q\''/\:'% 
  44 REM \21\83\40\AF\BE\CA\63\44\2A\0C\40\23\11\1E\01\19\36\06\11\C6\00\19\36\86\C3\7C\44
  45 REM E£RND7)2\' ;Q\..)LEN  ;Q\''/\:'% 
  46 REM E£RND7)2\' ;\.'\: )= ;Q\ :)$ ;Q\: ( PAUSE /\:'% 
  47 REM 5\':RND%J%YCOS E£RND7)>\' ;\.'£Q\..7( CLS )%U ;\.'£Q\''7( CLS TAN 
  49 REM \21\86\40\46\2B\05\28\14\4E\79\CB\39\CB\01\91\CB\07\CB\07\CB\07\4E\CB\39\81\77\10\EC\4E\79\CB\39\CB\01\91\11\82\40\12\13\4E\79\CB\3F\CB\3F\CB\39\CB\39\CB\39\CB\01\91\12\13\4E\79\CB\3F\CB\39\CB\39\CB\01\91\12\C9
  50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 
   0 REM "ZX81 LABYRINTH"
   0 REM AXIS SOFTWARE 
  54 CLS 
  55 GOTO 2000
  59 IF B=O THEN GOTO 72
  60 IF B<=V THEN GOTO 63
  61 POKE E,G
  62 RETURN 
  63 POKE 16517,A(A+(B-T)*H)
  64 LET Q=USR 17604
  65 RETURN 
  72 POKE 16514,O
  73 POKE 16515,O
  74 POKE 16516,T
  75 IF A=W THEN POKE E,O
  76 IF PEEK Z<>T AND A=W THEN POKE E,G
  78 RETURN 
  85 IF PEEK E>O THEN GOTO 90
  86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3)
  87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4)
  88 RETURN 
  90 PRINT AT 10,10;
  91 IF PEEK E=T THEN PRINT "SOLID WALL"
  92 IF PEEK E=G THEN PRINT "NO MANS LAND"
  93 RETURN 
 100 IF Y>V THEN GOTO 5000
 101 LET Q=USR 17697
 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H")
 105 CLS 
 107 GOTO 5110
 110 POKE Z,PEEK Z-T
 111 IF PEEK Z=O THEN POKE Z,4
 112 GOTO 185
 120 POKE Z,PEEK Z+T
 121 IF PEEK Z=5 THEN POKE Z,T
 122 GOTO 185
 130 POKE Z,PEEK Z+G
 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4
 132 GOTO 185
 135 PRINT AT 11,11;"HELP COMING"
 136 GOSUB 6100
 140 GOSUB 4000
 141 PRINT "YOU ARE FACING ";
 142 IF PEEK Z=T THEN PRINT "NORTH"
 143 IF PEEK Z=G THEN PRINT "EAST"
 144 IF PEEK Z=3 THEN PRINT "SOUTH"
 145 IF PEEK Z=4 THEN PRINT "WEST"
 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*"
 147 FOR P=T TO 200
 148 NEXT P
 149 GOTO 185
 150 LET A=X
 155 LET B=Y
 160 GOSUB 59
 165 GOSUB 85
 170 LET X=A
 175 LET Y=B
 180 IF PEEK E>O THEN GOTO 100
 182 LET R$=R$+CHR$ X+CHR$ Y
 185 LET A=X
 190 LET B=Y
 192 LET Q=USR 17680
 195 GOSUB 59
 200 LET Q=USR 16525
 205 IF PEEK E<>O THEN GOTO 100
 210 GOSUB 85
 215 GOSUB 59
 220 IF PEEK E=G THEN GOTO 100
 225 LET Q=USR 16761
 230 IF PEEK E<>O THEN GOTO 100
 235 GOSUB 85
 240 GOSUB 59
 245 IF PEEK E=G THEN GOTO 100
 250 LET Q=USR 17004
 255 IF PEEK E<>O THEN GOTO 100
 260 GOSUB 85
 265 GOSUB 59
 270 IF PEEK E=G THEN GOTO 100
 275 LET Q=USR 17228
 280 IF PEEK E<>O THEN GOTO 100
 285 GOSUB 85
 290 GOSUB 59
 295 IF PEEK E=G THEN GOTO 100
 300 LET Q=USR 17416
 305 IF PEEK E<>O THEN GOTO 100
 310 GOSUB 85
 315 GOSUB 59
 320 IF PEEK E=G THEN GOTO 100
 325 PRINT AT 11,14;"""?"""
 330 GOTO 100
2000 LET Q=USR 17680
2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE"
2002 PRINT 
2003 PRINT "%   \ .% \.  % % \:. %  %  % % \:. %  %  %  % % %  %  % "
2004 PRINT "%   %  %  %  %  %  %  %  %  %  % \: %   %   %  % "
2005 PRINT "%   % % %  % % \:  \ '% \'  % % \:  %  % \'.%   %   % % % "
2006 PRINT "%   %  %  %  %   %   %  %  %  % \ :%   %   %  % "
2007 PRINT "% %  %  %  % % \:'  %   %  %  %  %  %   %   %  % "
2008 PRINT 
2009 PRINT "    DIMENSIONS OF THE MAZE"
2010 PRINT 
2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )"
2012 GOSUB 6000
2013 LET O=0
2014 LET T=1
2015 INPUT H$
2016 RAND 
2017 LET G=2
2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G)
2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015
2025 LET H=VAL H$
2030 PRINT 
2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )"
2036 GOSUB 6000
2040 INPUT V$
2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040
2050 LET V=VAL V$
2060 PRINT 
2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE"
2080 GOSUB 6100
2090 FAST 
2100 LET A=H*V+T
2102 LET AA=A
2105 LET C=G
2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.."
2110 DIM A(A*C)
2111 LET E=16516
2112 LET JJ=O
2115 LET Q=O
2116 LET Z=Q
2120 LET X=INT (RND*H)+T
2121 LET XX=X
2122 LET Y=O
2125 LET A(A)=X
2130 LET A(X)=T
2135 LET R$=CHR$ X+CHR$ Y
2140 LET R=X
2145 LET S=T
2150 GOTO 2220
2160 IF R<H THEN GOTO 2200
2170 IF S<V THEN GOTO 2190
2180 LET R=T
2181 LET S=T
2182 GOTO 2210
2190 LET R=T
2191 LET S=S+T
2192 GOTO 2210
2200 LET R=R+T
2210 IF A(R+(S-T)*H)=O THEN GOTO 2160
2220 IF R-T=O THEN GOTO 2610
2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610
2240 IF S-T=O THEN GOTO 2420
2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420
2260 IF R=H THEN GOTO 2320
2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320
2280 LET X=INT (RND*3)+T
2290 IF X=T THEN GOTO 2960
2300 IF X=G THEN GOTO 3000
2310 GOTO 3040
2320 IF S<>V THEN GOTO 2350
2330 IF Z=T THEN GOTO 2400
2340 LET Q=T
2345 GOTO 2360
2350 IF A(R+S*H)<>O THEN GOTO 2400
2360 LET X=INT (RND*3)+T
2370 IF X=T THEN GOTO 2960
2380 IF X=G THEN GOTO 3000
2390 GOTO 3110
2400 LET X=INT (RND*G)+T
2410 GOTO 2370
2420 IF R=H THEN GOTO 2540
2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540
2440 IF S<>V THEN GOTO 2470
2450 IF Z=T THEN GOTO 2520
2460 LET Q=T
2465 GOTO 2480
2470 IF A(R+S*H)<>O THEN GOTO 2520
2480 LET X=INT (RND*3)+T
2490 IF X=T THEN GOTO 2960
2500 IF X=G THEN GOTO 3040
2510 GOTO 3110
2520 LET X=INT (RND*G)+T
2530 GOTO 2490
2540 IF S<>V THEN GOTO 2570
2550 IF Z=T THEN GOTO 2960
2560 LET Q=T
2565 GOTO 2580
2570 IF A(R+S*H)<>O THEN GOTO 2960
2580 LET X=INT (RND*G)+T
2590 IF X=T THEN GOTO 2960
2600 GOTO 3110
2610 IF S-T=O THEN GOTO 2820
2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820
2630 IF R=H THEN GOTO 2750
2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750
2650 IF S<>V THEN GOTO 2680
2660 IF Z=T THEN GOTO 2730
2670 LET Q=T
2675 GOTO 2690
2680 IF A(R+S*H)<>O THEN GOTO 2730
2690 LET X=INT (RND*3)+T
2700 IF X=T THEN GOTO 3000
2710 IF X=G THEN GOTO 3040
2720 GOTO 3110
2730 LET X=INT (RND*G)+T
2740 GOTO 2700
2750 IF S<>V THEN GOTO 2780
2760 IF Z=T THEN GOTO 3000
2770 LET Q=T
2775 GOTO 2790
2780 IF A(R+S*H)<>O THEN GOTO 3000
2790 LET X=INT (RND*G)+T
2800 IF X=T THEN GOTO 3000
2810 GOTO 3110
2820 IF R=H THEN GOTO 2910
2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910
2840 IF S<>V THEN GOTO 2870
2850 IF Z=T THEN GOTO 3040
2860 LET Q=T
2865 GOTO 2880
2870 IF A(R+S*H)<>O THEN GOTO 3040
2880 LET X=INT (RND*G)+T
2890 IF X=T THEN GOTO 3040
2900 GOTO 3110
2910 IF S<>V THEN GOTO 2940
2920 IF Z=T THEN GOTO 2160
2930 LET Q=T
2935 GOTO 2950
2940 IF A(R+S*H)<>O THEN GOTO 2160
2950 GOTO 3110
2960 LET A(R-T+(S-T)*H)=C
2970 LET C=C+T
2972 LET A(A+R-T+(S-T)*H)=G
2974 LET R=R-T
2980 IF C=A THEN GOTO 3210
2990 LET Q=O
2995 GOTO 2220
3000 LET A(R+(S-G)*H)=C
3010 LET C=C+T
3020 LET A(A+R+(S-G)*H)=T
3022 LET S=S-T
3024 IF C=A THEN GOTO 3210
3030 LET Q=O
3035 GOTO 2220
3040 LET A(R+T+(S-T)*H)=C
3050 LET C=C+T
3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070
3060 LET A(A+R+(S-T)*H)=3
3065 GOTO 3080
3070 LET A(A+R+(S-T)*H)=G
3080 LET R=R+T
3090 IF C=A THEN GOTO 3210
3100 GOTO 2610
3110 IF Q=T THEN GOTO 3170
3120 LET A(R+S*H)=C
3122 LET C=C+T
3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140
3130 LET A(A+R+(S-T)*H)=3
3135 GOTO 3150
3140 LET A(A+R+(S-T)*H)=T
3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3
3150 LET S=S+T
3155 IF C=A THEN GOTO 3210
3160 GOTO 2220
3170 LET Z=T
3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200
3190 LET A(A+R+(S-T)*H)=3
3192 LET Q=O
3194 GOTO 2160
3200 LET A(A+R+(S-T)*H)=T
3202 LET Q=O
3204 LET R=T
3206 GOTO 2210
3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H
3220 IF Z<>T THEN LET A(X)=A(X)+T
3230 CLS 
3235 SLOW 
3240 PRINT 
3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH  THE KEYS LISTED BELOW"
3247 PRINT 
3250 PRINT "  ""F"" - ONE STEP FORWARD"
3252 PRINT "  ""L"" - LOOK LEFT"
3254 PRINT "  ""R"" - LOOK RIGHT"
3256 PRINT "  ""B"" - LOOK BACK"
3258 PRINT "  ""H"" - FOR HELP"
3260 PRINT "  ""G"" - GIVE UP"
3270 PRINT 
3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE  PLAN BEFORE YOU START?"
3282 PRINT 
3285 PRINT "(Y/N)"
3290 INPUT Q$
3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290
3300 IF Q$(T)<>"Y" THEN GOTO 3610
3305 GOSUB 6300
3310 GOSUB 4000
3315 LET JJ=O
3320 PRINT AT V*G+G,XX*G-T;"*"
3330 PRINT AT 21,O;"STUDY CAREFULLY"
3340 GOTO 3640
3610 GOSUB 6200
3620 FAST 
3640 FOR I=T TO A-T
3650 LET J=I+A
3660 LET A(I)=(3-A(J))*G
3670 NEXT I
3710 LET W=INT A(A)
3720 FOR J=T TO V
3730 LET K=(J-T)*H
3740 FOR I=T TO H
3750 LET L=I+K
3760 IF J<>T THEN GOTO 3790
3770 IF I=W THEN GOTO 3820
3780 LET M=T
3785 GOTO 3810
3790 LET M=INT (A(L-H)/G)
3800 LET M=M-INT (M/G)*G
3810 LET A(L)=A(L)+M*8
3820 IF I=T THEN LET M=T
3825 IF I=T THEN GOTO 3850
3830 LET M=INT (A(L-T)/4)
3840 LET M=M-INT (M/G)*G
3850 LET A(L)=A(L)+M
3860 NEXT I
3865 IF J=T THEN GOSUB 6200
3870 NEXT J
3875 CLS 
3880 LET X=W
3882 LET Y=O
3884 LET Z=16518
3886 POKE Z,T
3888 SLOW 
3890 GOTO 185
4000 CLS 
4001 FAST 
4003 PRINT 
4005 FOR J=V TO T STEP -T
4010 FOR I=T TO H
4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050
4030 PRINT "%  ";
4040 GOTO 4060
4050 PRINT "% % ";
4060 NEXT I
4070 PRINT "% "
4080 PRINT "% ";
4090 FOR I=T TO H
4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130
4110 PRINT "  ";
4120 GOTO 4140
4130 PRINT " % ";
4140 NEXT I
4150 PRINT 
4160 NEXT J
4170 FOR I=T TO H
4180 IF I=A(AA) THEN GOTO 4210
4190 PRINT "% % ";
4200 GOTO 4220
4210 PRINT "%  ";
4220 NEXT I
4230 PRINT "% "
4240 PRINT 
4245 IF Q$(T)="Y" THEN GOTO 4260
4250 LET JJ=JJ+T
4260 SLOW 
4270 LET Q$="N"
4300 RETURN 
5000 CLS 
5010 PRINT 
5020 PRINT A$
5025 PRINT 
5040 PRINT TAB 8;"CONGRATULATIONS"
5045 PRINT 
5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE"
5052 PRINT "IN ";LEN R$/G-T;" MOVES."
5055 PRINT 
5060 IF JJ=O THEN GOTO 5100
5065 PRINT "BUT YOU ASKED FOR HELP ";
5066 IF JJ<>T THEN PRINT JJ;" TIMES"
5070 IF JJ=T THEN PRINT "ONCE"
5075 PRINT 
5100 PRINT A$
5110 PRINT 
5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?"
5125 PRINT 
5127 PRINT "(Y/N)"
5130 INPUT P$
5132 IF P$="" THEN GOTO 5130
5135 IF P$(T)="N" THEN GOTO 5240
5138 IF P$(T)="Y" THEN GOTO 5140
5139 GOTO 5130
5140 GOSUB 6300
5150 GOSUB 4000
5160 FOR J=T TO LEN R$ STEP G
5170 LET X=CODE R$(J)*G
5175 LET Y=CODE R$(J+T)*G
5180 PRINT AT V*G+G-Y,X-T;"*"
5185 LET Q=LN EXP T
5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" "
5200 NEXT J
5210 FOR J=T TO 20
5220 NEXT J
5230 CLS 
5240 PRINT 
5300 PRINT "WOULD YOU LIKE ANOTHER GAME?"
5302 PRINT 
5305 PRINT "(Y/N)"
5306 IF P$(T)="N" THEN GOTO 5310
5307 PRINT 
5308 PRINT "OR ANOTHER REPLAY (R)"
5310 INPUT Q$
5320 IF Q$="" THEN GOTO 5310
5330 IF Q$(T)="Y" THEN RUN 
5335 IF Q$(T)="R" THEN GOTO 5140
5337 IF Q$(T)<>"N" THEN GOTO 5310
5340 PRINT 
5350 PRINT "OK, THANKS FOR PLAYING.  BYE"
5380 IF INKEY$="" THEN GOTO 5380
5390 GOTO T
6000 PRINT " AND PRESS NEWLINE" 
6010 PRINT 
6020 RETURN 
6100 FOR K=T TO 20
6110 NEXT K
6120 RETURN 
6200 CLS 
6230 PRINT 
6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE"
6250 GOSUB 6100
6255 FAST 
6270 RETURN 
6300 CLS 
6305 PRINT 
6310 PRINT "OK, HOLD ON"
6315 GOSUB 6100
6320 RETURN 
9000 CLEAR 
9010 SAVE "LABYRINT%H"
9020 RUN 

People

No people associated with this content.

Scroll to Top
BE\CB\CB itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\CB\CB\CBE\CB\ECE\CB\CB itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"E\CBF\CBF\CB\CB\CB\CB itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"E\CBF\CB\CB\CB itemtype='https://schema.org/Blog' itemscope='itemscope' class="wp-singular computer_media-template-default single single-computer_media postid-58413 wp-custom-logo wp-theme-astra wp-child-theme-astra-child ast-desktop ast-separate-container ast-left-sidebar astra-4.11.2 group-blog ast-blog-single-style-1 ast-custom-post-type ast-single-post ast-inherit-site-logo-transparent ast-hfb-header ast-full-width-primary-header ast-box-layout ast-normal-title-enabled astra-addon-4.11.1"\C9 50 REM E£RND:/\.'47Q ( CLS 7$4 PRINT TAN E£RND)\:'\'';Q*TAN 0 REM "ZX81 LABYRINTH" 0 REM AXIS SOFTWARE 54 CLS 55 GOTO 2000 59 IF B=O THEN GOTO 72 60 IF B<=V THEN GOTO 63 61 POKE E,G 62 RETURN 63 POKE 16517,A(A+(B-T)*H) 64 LET Q=USR 17604 65 RETURN 72 POKE 16514,O 73 POKE 16515,O 74 POKE 16516,T 75 IF A=W THEN POKE E,O 76 IF PEEK Z<>T AND A=W THEN POKE E,G 78 RETURN 85 IF PEEK E>O THEN GOTO 90 86 LET B=B+T*(PEEK Z=T)-T*(PEEK Z=3) 87 LET A=A+T*(PEEK Z=G)-T*(PEEK Z=4) 88 RETURN 90 PRINT AT 10,10; 91 IF PEEK E=T THEN PRINT "SOLID WALL" 92 IF PEEK E=G THEN PRINT "NO MANS LAND" 93 RETURN 100 IF Y>V THEN GOTO 5000 101 LET Q=USR 17697 102 GOTO 102+3*(INKEY$="G")+8*(INKEY$="L")+18*(INKEY$="R")+48*(INKEY$="F")+28*(INKEY$="B")+33*(INKEY$="H") 105 CLS 107 GOTO 5110 110 POKE Z,PEEK Z-T 111 IF PEEK Z=O THEN POKE Z,4 112 GOTO 185 120 POKE Z,PEEK Z+T 121 IF PEEK Z=5 THEN POKE Z,T 122 GOTO 185 130 POKE Z,PEEK Z+G 131 IF PEEK Z>4 THEN POKE Z,PEEK Z-4 132 GOTO 185 135 PRINT AT 11,11;"HELP COMING" 136 GOSUB 6100 140 GOSUB 4000 141 PRINT "YOU ARE FACING "; 142 IF PEEK Z=T THEN PRINT "NORTH" 143 IF PEEK Z=G THEN PRINT "EAST" 144 IF PEEK Z=3 THEN PRINT "SOUTH" 145 IF PEEK Z=4 THEN PRINT "WEST" 146 PRINT AT (V*G+G)-Y*G,X*G-T;"*" 147 FOR P=T TO 200 148 NEXT P 149 GOTO 185 150 LET A=X 155 LET B=Y 160 GOSUB 59 165 GOSUB 85 170 LET X=A 175 LET Y=B 180 IF PEEK E>O THEN GOTO 100 182 LET R$=R$+CHR$ X+CHR$ Y 185 LET A=X 190 LET B=Y 192 LET Q=USR 17680 195 GOSUB 59 200 LET Q=USR 16525 205 IF PEEK E<>O THEN GOTO 100 210 GOSUB 85 215 GOSUB 59 220 IF PEEK E=G THEN GOTO 100 225 LET Q=USR 16761 230 IF PEEK E<>O THEN GOTO 100 235 GOSUB 85 240 GOSUB 59 245 IF PEEK E=G THEN GOTO 100 250 LET Q=USR 17004 255 IF PEEK E<>O THEN GOTO 100 260 GOSUB 85 265 GOSUB 59 270 IF PEEK E=G THEN GOTO 100 275 LET Q=USR 17228 280 IF PEEK E<>O THEN GOTO 100 285 GOSUB 85 290 GOSUB 59 295 IF PEEK E=G THEN GOTO 100 300 LET Q=USR 17416 305 IF PEEK E<>O THEN GOTO 100 310 GOSUB 85 315 GOSUB 59 320 IF PEEK E=G THEN GOTO 100 325 PRINT AT 11,14;"""?""" 330 GOTO 100 \n2000 LET Q=USR 17680 \n2001 PRINT TAB 11;"Z X 8 1";TAB 38;"(C) AXIS SOFTWARE" \n2002 PRINT \n2003 PRINT "% \ .% \. % % \:. % % % % \:. % % % % % % % % " \n2004 PRINT "% % % % % % % % % % % \: % % % % " \n2005 PRINT "% % % % % % \: \ '% \' % % \: % % \'.% % % % % " \n2006 PRINT "% % % % % % % % % % \ :% % % % " \n2007 PRINT "% % % % % % \:' % % % % % % % % % " \n2008 PRINT \n2009 PRINT " DIMENSIONS OF THE MAZE" \n2010 PRINT \n2011 PRINT "ENTER WIDTH ( BETWEEN 3 AND 15 )" \n2012 GOSUB 6000 \n2013 LET O=0 \n2014 LET T=1 \n2015 INPUT H$ \n2016 RAND \n2017 LET G=2 \n2018 GOTO 2015+10*(H$>"2" AND H$<"A" AND LEN H$=T)+5*(LEN H$=G) \n2020 IF H$(T)<>"1" OR H$(G)>"5" OR H$(G)<"0" THEN GOTO 2015 \n2025 LET H=VAL H$ \n2030 PRINT \n2035 PRINT "ENTER HEIGHT ( BETWEEN 3 AND 9 )" \n2036 GOSUB 6000 \n2040 INPUT V$ \n2045 IF V$<"3" OR V$>"9" OR LEN V$<>T THEN GOTO 2040 \n2050 LET V=VAL V$ \n2060 PRINT \n2070 PRINT " PLEASE WAIT WHILE I GO AND MAKETHE MAZE" \n2080 GOSUB 6100 \n2090 FAST \n2100 LET A=H*V+T \n2102 LET AA=A \n2105 LET C=G \n2107 LET A$="\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\..\.." \n2110 DIM A(A*C) \n2111 LET E=16516 \n2112 LET JJ=O \n2115 LET Q=O \n2116 LET Z=Q \n2120 LET X=INT (RND*H)+T \n2121 LET XX=X \n2122 LET Y=O \n2125 LET A(A)=X \n2130 LET A(X)=T \n2135 LET R$=CHR$ X+CHR$ Y \n2140 LET R=X \n2145 LET S=T \n2150 GOTO 2220 \n2160 IF R<H THEN GOTO 2200 \n2170 IF S<V THEN GOTO 2190 \n2180 LET R=T \n2181 LET S=T \n2182 GOTO 2210 \n2190 LET R=T \n2191 LET S=S+T \n2192 GOTO 2210 \n2200 LET R=R+T \n2210 IF A(R+(S-T)*H)=O THEN GOTO 2160 \n2220 IF R-T=O THEN GOTO 2610 \n2230 IF A(R-T+(S-T)*H)<>O THEN GOTO 2610 \n2240 IF S-T=O THEN GOTO 2420 \n2250 IF A(R+(S-G)*H)<>O THEN GOTO 2420 \n2260 IF R=H THEN GOTO 2320 \n2270 IF A(R+T+(S-T)*H)<>O THEN GOTO 2320 \n2280 LET X=INT (RND*3)+T \n2290 IF X=T THEN GOTO 2960 \n2300 IF X=G THEN GOTO 3000 \n2310 GOTO 3040 \n2320 IF S<>V THEN GOTO 2350 \n2330 IF Z=T THEN GOTO 2400 \n2340 LET Q=T \n2345 GOTO 2360 \n2350 IF A(R+S*H)<>O THEN GOTO 2400 \n2360 LET X=INT (RND*3)+T \n2370 IF X=T THEN GOTO 2960 \n2380 IF X=G THEN GOTO 3000 \n2390 GOTO 3110 \n2400 LET X=INT (RND*G)+T \n2410 GOTO 2370 \n2420 IF R=H THEN GOTO 2540 \n2430 IF A(R+T+(S-T)*H)<>O THEN GOTO 2540 \n2440 IF S<>V THEN GOTO 2470 \n2450 IF Z=T THEN GOTO 2520 \n2460 LET Q=T \n2465 GOTO 2480 \n2470 IF A(R+S*H)<>O THEN GOTO 2520 \n2480 LET X=INT (RND*3)+T \n2490 IF X=T THEN GOTO 2960 \n2500 IF X=G THEN GOTO 3040 \n2510 GOTO 3110 \n2520 LET X=INT (RND*G)+T \n2530 GOTO 2490 \n2540 IF S<>V THEN GOTO 2570 \n2550 IF Z=T THEN GOTO 2960 \n2560 LET Q=T \n2565 GOTO 2580 \n2570 IF A(R+S*H)<>O THEN GOTO 2960 \n2580 LET X=INT (RND*G)+T \n2590 IF X=T THEN GOTO 2960 \n2600 GOTO 3110 \n2610 IF S-T=O THEN GOTO 2820 \n2620 IF A(R+(S-G)*H)<>O THEN GOTO 2820 \n2630 IF R=H THEN GOTO 2750 \n2640 IF A(R+T+(S-T)*H)<>O THEN GOTO 2750 \n2650 IF S<>V THEN GOTO 2680 \n2660 IF Z=T THEN GOTO 2730 \n2670 LET Q=T \n2675 GOTO 2690 \n2680 IF A(R+S*H)<>O THEN GOTO 2730 \n2690 LET X=INT (RND*3)+T \n2700 IF X=T THEN GOTO 3000 \n2710 IF X=G THEN GOTO 3040 \n2720 GOTO 3110 \n2730 LET X=INT (RND*G)+T \n2740 GOTO 2700 \n2750 IF S<>V THEN GOTO 2780 \n2760 IF Z=T THEN GOTO 3000 \n2770 LET Q=T \n2775 GOTO 2790 \n2780 IF A(R+S*H)<>O THEN GOTO 3000 \n2790 LET X=INT (RND*G)+T \n2800 IF X=T THEN GOTO 3000 \n2810 GOTO 3110 \n2820 IF R=H THEN GOTO 2910 \n2830 IF A(R+T+(S-T)*H)<>O THEN GOTO 2910 \n2840 IF S<>V THEN GOTO 2870 \n2850 IF Z=T THEN GOTO 3040 \n2860 LET Q=T \n2865 GOTO 2880 \n2870 IF A(R+S*H)<>O THEN GOTO 3040 \n2880 LET X=INT (RND*G)+T \n2890 IF X=T THEN GOTO 3040 \n2900 GOTO 3110 \n2910 IF S<>V THEN GOTO 2940 \n2920 IF Z=T THEN GOTO 2160 \n2930 LET Q=T \n2935 GOTO 2950 \n2940 IF A(R+S*H)<>O THEN GOTO 2160 \n2950 GOTO 3110 \n2960 LET A(R-T+(S-T)*H)=C \n2970 LET C=C+T \n2972 LET A(A+R-T+(S-T)*H)=G \n2974 LET R=R-T \n2980 IF C=A THEN GOTO 3210 \n2990 LET Q=O \n2995 GOTO 2220 \n3000 LET A(R+(S-G)*H)=C \n3010 LET C=C+T \n3020 LET A(A+R+(S-G)*H)=T \n3022 LET S=S-T \n3024 IF C=A THEN GOTO 3210 \n3030 LET Q=O \n3035 GOTO 2220 \n3040 LET A(R+T+(S-T)*H)=C \n3050 LET C=C+T \n3055 IF A(A+R+(S-T)*H)=O THEN GOTO 3070 \n3060 LET A(A+R+(S-T)*H)=3 \n3065 GOTO 3080 \n3070 LET A(A+R+(S-T)*H)=G \n3080 LET R=R+T \n3090 IF C=A THEN GOTO 3210 \n3100 GOTO 2610 \n3110 IF Q=T THEN GOTO 3170 \n3120 LET A(R+S*H)=C \n3122 LET C=C+T \n3124 IF A(A+R+(S-T)*H)=O THEN GOTO 3140 \n3130 LET A(A+R+(S-T)*H)=3 \n3135 GOTO 3150 \n3140 LET A(A+R+(S-T)*H)=T \n3145 IF R<>H AND RND>.6 THEN LET A(A+R+(S-T)*H)=3 \n3150 LET S=S+T \n3155 IF C=A THEN GOTO 3210 \n3160 GOTO 2220 \n3170 LET Z=T \n3180 IF A(A+R+(S-T)*H)=O THEN GOTO 3200 \n3190 LET A(A+R+(S-T)*H)=3 \n3192 LET Q=O \n3194 GOTO 2160 \n3200 LET A(A+R+(S-T)*H)=T \n3202 LET Q=O \n3204 LET R=T \n3206 GOTO 2210 \n3210 IF Z<>T THEN LET X=A+INT ((RND*(H-T))+T)+(V-T)*H \n3220 IF Z<>T THEN LET A(X)=A(X)+T \n3230 CLS \n3235 SLOW \n3240 PRINT \n3245 PRINT "TO MOVE THROUGH THE MAZE TOUCH THE KEYS LISTED BELOW" \n3247 PRINT \n3250 PRINT " ""F"" - ONE STEP FORWARD" \n3252 PRINT " ""L"" - LOOK LEFT" \n3254 PRINT " ""R"" - LOOK RIGHT" \n3256 PRINT " ""B"" - LOOK BACK" \n3258 PRINT " ""H"" - FOR HELP" \n3260 PRINT " ""G"" - GIVE UP" \n3270 PRINT \n3280 PRINT "WOULD YOU LIKE TO SEE THE MAZE PLAN BEFORE YOU START?" \n3282 PRINT \n3285 PRINT "(Y/N)" \n3290 INPUT Q$ \n3295 IF (CODE Q$<>62)+(CODE Q$<>51)<>T THEN GOTO 3290 \n3300 IF Q$(T)<>"Y" THEN GOTO 3610 \n3305 GOSUB 6300 \n3310 GOSUB 4000 \n3315 LET JJ=O \n3320 PRINT AT V*G+G,XX*G-T;"*" \n3330 PRINT AT 21,O;"STUDY CAREFULLY" \n3340 GOTO 3640 \n3610 GOSUB 6200 \n3620 FAST \n3640 FOR I=T TO A-T \n3650 LET J=I+A \n3660 LET A(I)=(3-A(J))*G \n3670 NEXT I \n3710 LET W=INT A(A) \n3720 FOR J=T TO V \n3730 LET K=(J-T)*H \n3740 FOR I=T TO H \n3750 LET L=I+K \n3760 IF J<>T THEN GOTO 3790 \n3770 IF I=W THEN GOTO 3820 \n3780 LET M=T \n3785 GOTO 3810 \n3790 LET M=INT (A(L-H)/G) \n3800 LET M=M-INT (M/G)*G \n3810 LET A(L)=A(L)+M*8 \n3820 IF I=T THEN LET M=T \n3825 IF I=T THEN GOTO 3850 \n3830 LET M=INT (A(L-T)/4) \n3840 LET M=M-INT (M/G)*G \n3850 LET A(L)=A(L)+M \n3860 NEXT I \n3865 IF J=T THEN GOSUB 6200 \n3870 NEXT J \n3875 CLS \n3880 LET X=W \n3882 LET Y=O \n3884 LET Z=16518 \n3886 POKE Z,T \n3888 SLOW \n3890 GOTO 185 \n4000 CLS \n4001 FAST \n4003 PRINT \n4005 FOR J=V TO T STEP -T \n4010 FOR I=T TO H \n4020 IF A(AA+I+(J-T)*H)=O OR A(AA+I+(J-T)*H)=G THEN GOTO 4050 \n4030 PRINT "% "; \n4040 GOTO 4060 \n4050 PRINT "% % "; \n4060 NEXT I \n4070 PRINT "% " \n4080 PRINT "% "; \n4090 FOR I=T TO H \n4100 IF A(AA+I+(J-T)*H)<G THEN GOTO 4130 \n4110 PRINT " "; \n4120 GOTO 4140 \n4130 PRINT " % "; \n4140 NEXT I \n4150 PRINT \n4160 NEXT J \n4170 FOR I=T TO H \n4180 IF I=A(AA) THEN GOTO 4210 \n4190 PRINT "% % "; \n4200 GOTO 4220 \n4210 PRINT "% "; \n4220 NEXT I \n4230 PRINT "% " \n4240 PRINT \n4245 IF Q$(T)="Y" THEN GOTO 4260 \n4250 LET JJ=JJ+T \n4260 SLOW \n4270 LET Q$="N" \n4300 RETURN \n5000 CLS \n5010 PRINT \n5020 PRINT A$ \n5025 PRINT \n5040 PRINT TAB 8;"CONGRATULATIONS" \n5045 PRINT \n5050 PRINT "YOU GOT THROUGH THE ";H;" BY ";V;" MAZE" \n5052 PRINT "IN ";LEN R$/G-T;" MOVES." \n5055 PRINT \n5060 IF JJ=O THEN GOTO 5100 \n5065 PRINT "BUT YOU ASKED FOR HELP "; \n5066 IF JJ<>T THEN PRINT JJ;" TIMES" \n5070 IF JJ=T THEN PRINT "ONCE" \n5075 PRINT \n5100 PRINT A$ \n5110 PRINT \n5120 PRINT "DO YOU WANT TO SEE YOUR ROUTE?" \n5125 PRINT \n5127 PRINT "(Y/N)" \n5130 INPUT P$ \n5132 IF P$="" THEN GOTO 5130 \n5135 IF P$(T)="N" THEN GOTO 5240 \n5138 IF P$(T)="Y" THEN GOTO 5140 \n5139 GOTO 5130 \n5140 GOSUB 6300 \n5150 GOSUB 4000 \n5160 FOR J=T TO LEN R$ STEP G \n5170 LET X=CODE R$(J)*G \n5175 LET Y=CODE R$(J+T)*G \n5180 PRINT AT V*G+G-Y,X-T;"*" \n5185 LET Q=LN EXP T \n5190 IF J<LEN R$-G THEN PRINT AT (V*G+G)-Y,X-T;" " \n5200 NEXT J \n5210 FOR J=T TO 20 \n5220 NEXT J \n5230 CLS \n5240 PRINT \n5300 PRINT "WOULD YOU LIKE ANOTHER GAME?" \n5302 PRINT \n5305 PRINT "(Y/N)" \n5306 IF P$(T)="N" THEN GOTO 5310 \n5307 PRINT \n5308 PRINT "OR ANOTHER REPLAY (R)" \n5310 INPUT Q$ \n5320 IF Q$="" THEN GOTO 5310 \n5330 IF Q$(T)="Y" THEN RUN \n5335 IF Q$(T)="R" THEN GOTO 5140 \n5337 IF Q$(T)<>"N" THEN GOTO 5310 \n5340 PRINT \n5350 PRINT "OK, THANKS FOR PLAYING. BYE" \n5380 IF INKEY$="" THEN GOTO 5380 \n5390 GOTO T \n6000 PRINT " AND PRESS NEWLINE" \n6010 PRINT \n6020 RETURN \n6100 FOR K=T TO 20 \n6110 NEXT K \n6120 RETURN \n6200 CLS \n6230 PRINT \n6240 PRINT "PLEASE WAIT WHILE I BUILD UP THEENTRANCE TO THE MAZE" \n6250 GOSUB 6100 \n6255 FAST \n6270 RETURN \n6300 CLS \n6305 PRINT \n6310 PRINT "OK, HOLD ON" \n6315 GOSUB 6100 \n6320 RETURN \n9000 CLEAR \n9010 SAVE "LABYRINT%H" \n9020 RUN

People

No people associated with this content.

Scroll to Top