DUNGEON 1.3 This program was intended to be a 'dungeon'-style game interface which somewhat copied Richard Garriot's Alakabeth (written in the late 70s for the Apple ][+). While fairly graphic-intensive, the interesting thing about my design was that the user could design their own dungeon and 'map' it out using conventional data lines and map square codes. The game would interpret the data lines and display a 3D world. It's a fairly simple world, but the 3D effect is rather neat. This sort of game was the very early precursor to the 3D shooter style games which are so popular today. I always wanted to continue development of this style of game, and maybe some day I will. WINDOW 1,,(0,20)-(520,400),3 GOSUB 6000 BUTTON 1,1,"Forward",(315,50)-(385,75),1 BUTTON 2,1,"Left",(280,85)-(340,110),1 BUTTON 3,1,"Right",(360,85)-(420,110),1 BUTTON 4,1,"Torch",(320,120)-(380,145),1 BUTTON 5,1,"Stop",(315,155)-(385,180),1 BUTTON 6,1,"Re-Run",(315,190)-(385,215),1 PLX=2 PLY=3 DIR=90 TRCH=1 FOR Y=1 TO 4 FOR X=1 TO 4 READ A$(X,Y) NEXT X NEXT Y 100 REM ***** START ***** IF DIR=0 THEN GOSUB 1000 IF DIR=90 THEN GOSUB 1200 IF DIR=180 THEN GOSUB 1400 IF DIR=270 THEN GOSUB 1600 110 IF DIALOG(0)<>1 THEN 110 GOSUB 6000 IF DIALOG(1)=1 THEN GOSUB 5000 IF DIALOG(1)=2 THEN GOSUB 5100 IF DIALOG(1)=3 THEN GOSUB 5200 IF DIALOG(1)=4 THEN GOSUB 200 IF DIALOG(1)=5 THEN END IF DIALOG(1)=6 THEN RUN GOTO 100 200 IF TRCH=1 THEN 201 TRCH=1 RETURN 201 TRCH=0 GOSUB 6000 RETURN REM ******************** VIEWS ******************** 1000 REM ***** FIRST @ 0 ***** IF LEFT$(A$(PLX,PLY),3)="UAX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="HAA" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN GOSUB 4006 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="XXX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UAB" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="TBX" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN GOSUB 4017 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN GOSUB 4016 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN GOSUB 4001 IF LEFT$(A$(PLX,PLY),3)="UBA" THEN GOSUB 4004 IF LEFT$(A$(PLX,PLY),3)="HBD" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="UDX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="HBB" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN GOSUB 4004 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN GOSUB 4019 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN GOSUB 4001 IF RIGHT$(A$(PLX,PLY),2)="ZE" THEN GOSUB 4901 IF RIGHT$(A$(PLX,PLY),2)="ZW" THEN GOSUB 4903 IF RIGHT$(A$(PLX,PLY),2)="ZN" THEN GOSUB 4900 IF TRCH=0 THEN 1199 IF STP=1 THEN 1199 REM ***** SECOND @ 0 ***** IF LEFT$(A$(PLX,PLY-1),3)="CCX" THEN GOSUB 4104 IF LEFT$(A$(PLX,PLY-1),3)="HBH" THEN GOSUB 4105 IF LEFT$(A$(PLX,PLY-1),3)="UDA" THEN GOSUB 4102 IF LEFT$(A$(PLX,PLY-1),3)="TBX" THEN GOSUB 4111 IF LEFT$(A$(PLX,PLY-1),3)="HBO" THEN GOSUB 4108 IF LEFT$(A$(PLX,PLY-1),3)="HBD" THEN GOSUB 4105 IF LEFT$(A$(PLX,PLY-1),3)="HBA" THEN GOSUB 4100 IF LEFT$(A$(PLX,PLY-1),3)="UDX" THEN GOSUB 4102 IF LEFT$(A$(PLX,PLY-1),3)="HBB" THEN GOSUB 4100 IF LEFT$(A$(PLX,PLY-1),3)="CCC" THEN GOSUB 4113 IF RIGHT$(A$(PLX,PLY-1),2)="ZE" THEN GOSUB 4905 IF STP=1 THEN 1199 REM ***** THIRD @ 0 ***** IF LEFT$(A$(PLX,PLY-2),3)="CCX" THEN GOSUB 4202 IF LEFT$(A$(PLX,PLY-2),3)="TBX" THEN GOSUB 4204 IF LEFT$(A$(PLX,PLY-2),3)="HBD" THEN GOSUB 4208 IF LEFT$(A$(PLX,PLY-2),3)="UDX" THEN GOSUB 4201 IF STP=1 THEN 1199 REM ***** FOURTH @ 0 ***** IF LEFT$(A$(PLX,PLY-3),3)="CCX" THEN GOSUB 4302 1199 STP=0 : RETURN 1200 REM ***** FIRST @ 90 ***** IF LEFT$(A$(PLX,PLY),3)="UAX" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="HAA" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN GOSUB 4001 IF LEFT$(A$(PLX,PLY),3)="XXX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UAB" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="TBX" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN GOSUB 4006 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="UBA" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="HBD" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UDX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="HBB" THEN GOSUB 4008 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN GOSUB 4018 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN GOSUB 4001 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN GOSUB 4017 IF RIGHT$(A$(PLX,PLY),2)="ZE" THEN GOSUB 4900 IF RIGHT$(A$(PLX,PLY),2)="ZS" THEN GOSUB 4901 IF RIGHT$(A$(PLX,PLY),2)="ZN" THEN GOSUB 4903 IF TRCH=0 THEN 1399 IF STP=1 THEN 1399 REM ***** SECOND @ 90 ***** IF LEFT$(A$(PLX+1,PLY),3)="HAA" THEN GOSUB 4103 IF LEFT$(A$(PLX+1,PLY),3)="CCX" THEN GOSUB 4101 IF LEFT$(A$(PLX+1,PLY),3)="CDX" THEN GOSUB 4104 IF LEFT$(A$(PLX+1,PLY),3)="HAG" THEN GOSUB 4105 IF LEFT$(A$(PLX+1,PLY),3)="TBX" THEN GOSUB 4106 IF LEFT$(A$(PLX+1,PLY),3)="HAH" THEN GOSUB 4107 IF LEFT$(A$(PLX+1,PLY),3)="UBA" THEN GOSUB 4102 IF LEFT$(A$(PLX+1,PLY),3)="TDX" THEN GOSUB 4110 IF LEFT$(A$(PLX+1,PLY),3)="UBX" THEN GOSUB 4102 IF LEFT$(A$(PLX+1,PLY),3)="CCC" THEN GOSUB 4114 IF LEFT$(A$(PLX+1,PLY),3)="TCX" THEN GOSUB 4111 IF RIGHT$(A$(PLX+1,PLY),2)="ZS" THEN GOSUB 4905 IF RIGHT$(A$(PLX+1,PLY),2)="ZE" THEN GOSUB 4904 IF STP=1 THEN 1399 REM ***** THIRD @ 90 ***** IF LEFT$(A$(PLX+2,PLY),3)="CCX" THEN GOSUB 4200 IF LEFT$(A$(PLX+2,PLY),3)="CDX" THEN GOSUB 4202 IF LEFT$(A$(PLX+2,PLY),3)="HAH" THEN GOSUB 4203 IF LEFT$(A$(PLX+2,PLY),3)="UBA" THEN GOSUB 4201 IF RIGHT$(A$(PLX+2,PLY),2)="ZS" THEN GOSUB 4909 IF STP=1 THEN 1399 REM ***** FOURTH @ 90 ***** IF LEFT$(A$(PLX+3,PLY),3)="CCX" THEN GOSUB 4300 1399 STP=0 : RETURN 1400 REM ***** FIRST @ 180 ***** IF LEFT$(A$(PLX,PLY),3)="UAX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="HAA" THEN GOSUB 4007 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="XXX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UAB" THEN GOSUB 4004 IF LEFT$(A$(PLX,PLY),3)="TBX" THEN GOSUB 4016 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN GOSUB 4006 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN GOSUB 4017 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="UBA" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="HBD" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="UDX" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="HBB" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN GOSUB 4004 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN GOSUB 4019 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN GOSUB 4004 IF RIGHT$(A$(PLX,PLY),2)="ZE" THEN GOSUB 4903 IF RIGHT$(A$(PLX,PLY),2)="ZW" THEN GOSUB 4901 IF RIGHT$(A$(PLX,PLY),2)="ZS" THEN GOSUB 4900 IF TRCH=0 OR STP=1 THEN 1599 REM ***** SECOND @ 180 ***** IF LEFT$(A$(PLX,PLY+1),3)="HBH" THEN GOSUB 4103 IF LEFT$(A$(PLX,PLY+1),3)="CDX" THEN GOSUB 4101 IF LEFT$(A$(PLX,PLY+1),3)="CBX" THEN GOSUB 4104 IF LEFT$(A$(PLX,PLY+1),3)="HBO" THEN GOSUB 4108 IF LEFT$(A$(PLX,PLY+1),3)="HBD" THEN GOSUB 4100 IF LEFT$(A$(PLX,PLY+1),3)="TDX" THEN GOSUB 4111 IF LEFT$(A$(PLX,PLY+1),3)="HBA" THEN GOSUB 4103 IF LEFT$(A$(PLX,PLY+1),3)="HBB" THEN GOSUB 4105 IF LEFT$(A$(PLX,PLY+1),3)="CBA" THEN GOSUB 4113 IF LEFT$(A$(PLX,PLY+1),3)="CBB" THEN GOSUB 4104 IF RIGHT$(A$(PLX,PLY+1),2)="ZS" THEN GOSUB 4904 IF STP=1 THEN 1599 REM ***** THIRD @ 180 ***** IF LEFT$(A$(PLX,PLY+2),3)="CDX" THEN GOSUB 4200 IF LEFT$(A$(PLX,PLY+2),3)="TDX" THEN GOSUB 4204 IF LEFT$(A$(PLX,PLY+2),3)="HBA" THEN GOSUB 4207 IF LEFT$(A$(PLX,PLY+2),3)="CDX" THEN GOSUB 4200 IF LEFT$(A$(PLX,PLY+2),3)="CBA" THEN GOSUB 4209 IF RIGHT$(A$(PLX,PLY+2),2)="ZS" THEN GOSUB 4908 IF STP=1 THEN 1599 REM ***** FOURTH @ 180 ***** IF LEFT$(A$(PLX,PLY+3),3)="CDX" THEN GOSUB 4300 IF STP=1 THEN 1599 1599 STP=0 : RETURN 1600 REM ***** FIRST @ 270 ***** IF LEFT$(A$(PLX,PLY),3)="UAX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="HAA" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN GOSUB 4006 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="XXX" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UAB" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="TBX" THEN GOSUB 4014 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN GOSUB 4015 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN GOSUB 4006 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN GOSUB 4010 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN GOSUB 4005 IF LEFT$(A$(PLX,PLY),3)="UBA" THEN GOSUB 4013 IF LEFT$(A$(PLX,PLY),3)="HBD" THEN GOSUB 4008 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN GOSUB 4007 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN GOSUB 4002 IF LEFT$(A$(PLX,PLY),3)="UDX" THEN GOSUB 4003 IF LEFT$(A$(PLX,PLY),3)="HBB" THEN GOSUB 4009 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN GOSUB 4000 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN GOSUB 4018 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN GOSUB 4001 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN GOSUB 4005 IF RIGHT$(A$(PLX,PLY),2)="ZW" THEN GOSUB 4900 IF RIGHT$(A$(PLX,PLY),2)="ZS" THEN GOSUB 4903 IF RIGHT$(A$(PLX,PLY),2)="ZN" THEN GOSUB 4901 IF TRCH=0 OR STP=1 THEN 1799 REM ***** SECOND @ 270 ***** IF LEFT$(A$(PLX-1,PLY),3)="UAX" THEN GOSUB 4102 IF LEFT$(A$(PLX-1,PLY),3)="HAA" THEN GOSUB 4100 IF LEFT$(A$(PLX-1,PLY),3)="HAG" THEN GOSUB 4103 IF LEFT$(A$(PLX-1,PLY),3)="CBX" THEN GOSUB 4101 IF LEFT$(A$(PLX-1,PLY),3)="UAB" THEN GOSUB 4102 IF LEFT$(A$(PLX-1,PLY),3)="TBX" THEN GOSUB 4110 IF LEFT$(A$(PLX-1,PLY),3)="HAH" THEN GOSUB 4105 IF LEFT$(A$(PLX-1,PLY),3)="UAA" THEN GOSUB 4102 IF LEFT$(A$(PLX-1,PLY),3)="TDX" THEN GOSUB 4112 IF LEFT$(A$(PLX-1,PLY),3)="CBA" THEN GOSUB 4101 IF LEFT$(A$(PLX-1,PLY),3)="CBB" THEN GOSUB 4101 IF RIGHT$(A$(PLX-1,PLY),2)="ZS" THEN GOSUB 4907 IF RIGHT$(A$(PLX-1,PLY),2)="ZN" THEN GOSUB 4905 IF RIGHT$(A$(PLX-1,PLY),2)="ZW" THEN GOSUB 4904 IF STP=1 THEN 1799 REM ***** THIRD @ 270 ***** IF LEFT$(A$(PLX-2,PLY),3)="UAX" THEN GOSUB 4201 IF LEFT$(A$(PLX-2,PLY),3)="CBX" THEN GOSUB 4200 IF LEFT$(A$(PLX-2,PLY),3)="UAB" THEN GOSUB 4201 IF LEFT$(A$(PLX-2,PLY),3)="TBX" THEN GOSUB 4206 IF LEFT$(A$(PLX-2,PLY),3)="UAA" THEN GOSUB 4201 IF RIGHT$(A$(PLX-2,PLY),2)="ZN" THEN GOSUB 4909 REM ***** FOURTH @ 270 ***** IF LEFT$(A$(PLX-3,PLY),3)="UAB" THEN GOSUB 4301 1799 STP=0 : RETURN REM ******************** PICTURES ******************** REM ***** FIRST PICTURES ***** 4000 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (75,75)-(75,225),0 LINE (75,75)-(250,75),0 LINE (75,225)-(250,225),0 STP=1 RETURN 4001 LINE (75,75)-(225,75),0 LINE (75,225)-(225,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(225,225),0 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 STP=1 RETURN 4002 LINE (50,50)-(75,75),0 LINE (250,50)-(225,75),0 LINE (50,250)-(75,225),0 LINE (250,250)-(225,225),0 RETURN 4003 LINE (50,75)-(225,75),0 LINE (50,225)-(225,225),0 LINE (225,75)-(225,225),0 LINE (250,50)-(225,75),0 LINE (250,250)-(225,225),0 STP=1 RETURN 4004 LINE (75,75)-(225,75),0 LINE (75,225)-(225,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(225,225),0 LINE (250,50)-(225,75),0 LINE (250,250)-(225,225),0 STP=1 RETURN 4005 LINE (50,50)-(75,75),0 LINE (250,50)-(225,75),0 LINE (50,250)-(75,225),0 LINE (250,250)-(225,225),0 LINE (75,75)-(225,225),0,B STP=1 RETURN 4006 LINE (75,75)-(225,225),0,B STP=1 RETURN 4007 LINE (75,75)-(75,225),0 LINE (75,75)-(250,75),0 LINE (75,225)-(250,225),0 STP=1 RETURN 4008 LINE (225,75)-(225,225),0 LINE (50,75)-(225,75),0 LINE (50,225)-(225,225),0 STP=1 RETURN 4009 LINE (50,75)-(250,75),0 LINE (50,225)-(250,225),0 STP=1 RETURN 4010 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (225,75)-(2250,75),0 LINE (225,225)-(250,225),0 LINE (225,75)-(225,225),0 RETURN 4011 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 RETURN 4012 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (225,75)-(225,225),0 RETURN 4013 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (250,50)-(225,75),0 LINE (250,250)-(225,225),0 LINE (225,75)-(225,225),0 RETURN 4014 LINE (50,75)-(75,75),0 LINE (50,225)-(75,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(250,50),0 LINE (225,225)-(250,250),0 RETURN 4015 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (75,75)-(75,225),0 LINE (250,50)-(225,75),0 LINE (225,225)-(250,250),0 RETURN 4016 LINE (50,75)-(75,75),0 LINE (50,225)-(75,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(250,75),0 LINE (225,225)-(250,225),0 LINE (225,75)-(225,225),0 RETURN 4017 LINE (50,50)-(75,75),0 LINE (50,250)-(75,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(250,50),0 LINE (225,225)-(250,250),0 LINE (225,75)-(225,225),0 RETURN 4018 LINE (50,75)-(75,75),0 LINE (50,225)-(75,225),0 LINE (75,75)-(75,225),0 LINE (225,75)-(250,50),0 LINE (225,225)-(250,250),0 LINE (225,75)-(225,225),0 RETURN 4019 LINE (50,50)-(75,75),0 LINE (75,75)-(75,225),0 LINE (50,250)-(75,225),0 LINE (225,75)-(250,75),0 LINE (225,75)-(225,225),0 LINE (225,225)-(250,225),0 RETURN REM ***** SECOND PICTURES ***** 4100 LINE (75,75)-(100,100),0 LINE (225,75)-(200,100),0 LINE (75,225)-(100,200),0 LINE (200,200)-(225,225),0 RETURN 4101 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (100,100)-(100,200),0 LINE (225,75)-(225,225),0 LINE (100,100)-(225,100),0 LINE (100,200)-(225,200),0 STP=1 RETURN 4102 LINE (100,100)-(200,200),0,B LINE (75,75)-(100,100),0 LINE (225,75)-(200,100),0 LINE (75,225)-(100,200),0 LINE (225,225)-(200,200),0 STP=1 RETURN 4103 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (225,75)-(200,100),0 LINE (225,225)-(200,200),0 LINE (200,100)-(200,200),0 RETURN 4104 LINE (75,75)-(75,225),0 LINE (75,100)-(200,100),0 LINE (75,200)-(200,200),0 LINE (200,100)-(225,75),0 LINE (200,200)-(225,225),0 LINE (200,100)-(200,200),0 STP=1 RETURN 4105 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (100,100)-(100,200),0 LINE (200,100)-(225,75),0 LINE (200,200)-(225,225),0 RETURN 4106 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 RETURN 4107 LINE (75,75)-(100,100),0 LINE (225,75)-(200,100),0 LINE (75,225)-(100,200),0 LINE (200,200)-(225,225),0 LINE (225,75)-(250,75),0 LINE (225,225)-(250,225),0 LINE (225,75)-(225,225),0 RETURN 4108 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (100,100)-(100,200),0 LINE (225,75)-(200,100),0 LINE (200,200)-(225,225),0 LINE (200,100)-(200,200),0 RETURN 4109 LINE (225,75)-(200,100),0 LINE (200,200)-(225,225),0 RETURN 4110 LINE (75,100)-(100,100),0 LINE (75,200)-(100,200),0 LINE (100,100)-(100,200),0 LINE (200,100)-(225,75),0 LINE (200,200)-(225,225),0 RETURN 4111 LINE (75,100)-(225,100),0 LINE (75,200)-(225,200),0 STP=1 RETURN 4112 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (200,100)-(225,100),0 LINE (200,200)-(225,200),0 LINE (200,100)-(200,200),0 RETURN 4113 LINE (75,75)-(75,225),0 LINE (200,100)-(225,75),0 LINE (200,200)-(225,225),0 LINE (100,100)-(200,200),0,B STP=1 RETURN 4114 LINE (75,75)-(100,100),0 LINE (75,225)-(100,200),0 LINE (100,100)-(200,200),0,B LINE (225,75)-(225,225),0 STP=1 RETURN REM ***** THIRD PICTURES ***** 4200 LINE (100,100)-(125,125),0 LINE (100,200)-(125,175),0 LINE (125,125)-(125,175),0 LINE (125,125)-(200,125),0 LINE (125,175)-(200,175),0 LINE (200,100)-(200,200),0 STP=1 RETURN 4201 LINE (100,100)-(125,125),0 LINE (100,200)-(125,175),0 LINE (175,125)-(200,100),0 LINE (175,175)-(200,200),0 LINE (125,125)-(175,175),0,B STP=1 RETURN 4202 LINE (100,100)-(100,200),0 LINE (100,125)-(175,125),0 LINE (100,175)-(175,175),0 LINE (175,125)-(175,175),0 LINE (175,125)-(200,100),0 LINE (175,175)-(200,200),0 STP=1 RETURN 4203 LINE (100,100)-(125,125),0 LINE (100,200)-(125,175),0 LINE (200,100)-(175,125),0 LINE (200,200)-(175,175),0 LINE (200,100)-(200,200),0 LINE (200,100)-(225,100),0 LINE (200,200)-(225,200),0 RETURN 4204 LINE (100,125)-(200,125),0 LINE (100,175)-(200,175),0 STP=1 RETURN 4205 LINE (75,100)-(100,100),0 LINE (75,200)-(100,200),0 LINE (100,100)-(100,200),0 LINE (100,100)-(125,125),0 LINE (100,200)-(125,175),0 LINE (200,100)-(175,125),0 LINE (175,175)-(200,200),0 RETURN 4206 LINE (100,125)-(125,125),0 LINE (100,175)-(125,175),0 LINE (125,125)-(125,175),0 LINE (175,125)-(200,100),0 LINE (175,175)-(200,200),0 RETURN 4207 LINE (100,100)-(125,125),0 LINE (100,200)-(125,175),0 LINE (175,125)-(200,100),0 LINE (175,175)-(200,200),0 LINE (175,125)-(175,175),0 RETURN 4208 LINE (100,100)-(125,125),0 LINE (125,125)-(125,175),0 LINE (125,175)-(100,200),0 LINE (175,125)-(200,100),0 LINE (175,175)-(200,200),0 RETURN 4209 LINE (100,100)-(100,200),0 LINE (200,100)-(175,125),0 LINE (175,175)-(200,200),0 LINE (125,125)-(175,175),0,B STP=1 RETURN REM ***** FOURTH PICTURES ***** 4300 LINE (125,125)-(140,140),0 LINE (125,175)-(140,160),0 LINE (140,140)-(140,160),0 LINE (175,125)-(175,175),0 LINE (140,140)-(175,140),0 LINE (140,160)-(175,160),0 STP=1 RETURN 4301 LINE (125,125)-(140,140),0 LINE (125,175)-(140,160),0 LINE (160,140)-(175,125),0 LINE (160,160)-(175,175),0 LINE (140,140)-(160,160),0,B STP=1 RETURN 4302 LINE (125,125)-(125,175),0 LINE (125,140)-(160,140),0 LINE (125,160)-(160,160),0 LINE (160,140)-(160,160),0 LINE (160,140)-(175,125),0 LINE (160,160)-(175,175),0 STP=1 RETURN REM ******************** DOORS ******************** 4900 REM ***** FIRST DOOR FRT FACE ***** LINE (100,95)-(100,225),0 LINE (200,95)-(200,225),0 LINE (100,95)-(200,95),0 RETURN 4901 REM ***** FIRST DOOR RT FACE ***** LINE (229,229)-(229,102),0 LINE (246,246)-(246,85),0 LINE (229,102)-(246,85),0 RETURN 4902 REM ***** FIRST DOOR 180 ***** 4903 REM ***** FIRST DOOR LT FACE ***** LINE (71,229)-(71,102),0 LINE (54,246)-(54,85),0 LINE (71,102)-(54,85),0 RETURN 4904 REM ***** SECOND DOOR FRT FACE ***** LINE (120,115)-(120,200),0 LINE (180,115)-(180,200),0 LINE (120,115)-(180,115),0 RETURN 4905 REM ***** SECOND DOOR RT FACE ***** LINE (205,205)-(205,120),0 LINE (220,220)-(220,105),0 LINE (205,120)-(220,105),0 RETURN 4906 REM ***** SECOND DOOR 180 ***** 4907 REM ***** SECOND DOOR LT FACE ***** LINE (95,205)-(95,120),0 LINE (80,220)-(80,105),0 LINE (95,120)-(80,105),0 RETURN 4908 REM ***** THIRD DOOR FRT FACE ***** LINE (137,134)-(163,134),0 LINE (137,134)-(137,175),0 LINE (163,134)-(163,175),0 RETURN 4909 REM ***** THIRD DOOR RT FACE ***** LINE (182,182)-(182,140),0 LINE (193,193)-(193,129),0 LINE (182,140)-(193,129),0 RETURN REM ******************** MOVEMENT ******************** 5000 REM ***** MOVE @ 0 ***** IF DIR=90 THEN 5020 IF DIR=180 THEN 5040 IF DIR=270 THEN 5060 IF RIGHT$(A$(PLX,PLY),2)="ZN" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="UAX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CCX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBH" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBX" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="XXX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="TBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAH" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBO" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBD" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBB" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBB" THEN 5093 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN RETURN RETURN 5020 REM ***** MOVE @ 90 ***** IF RIGHT$(A$(PLX,PLY),2)="ZE" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="UAX" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="HAA" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBH" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAG" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="UDA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="XXX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAB" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="TBX" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="TDX" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="UBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBD" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBA" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="CCC" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBB" THEN 5090 IF LEFT$(A$(PLX,PLY),3)="UAC" THEN 5090 RETURN 5040 REM ***** MOVE @ 180 ***** IF RIGHT$(A$(PLX,PLY),2)="ZS" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="UAX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CCX" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="CDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAG" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UDA" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="XXX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="TBX" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBO" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="TDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBD" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="HBA" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="UBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UDX" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="HBB" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="CBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CCC" THEN 5091 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAC" THEN RETURN RETURN 5060 REM ***** MOVE @ 270 ***** IF RIGHT$(A$(PLX,PLY),2)="ZW" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="UAX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HAA" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="CCX" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="HBH" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CDX" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="HAG" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="CBX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UDA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="XXX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="TBX" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="HAH" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="HBO" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="TDX" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="UAA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UBA" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="HBD" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UBX" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="UDX" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="HBB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CBA" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="CCC" THEN 5092 IF LEFT$(A$(PLX,PLY),3)="CBB" THEN RETURN IF LEFT$(A$(PLX,PLY),3)="UAC" THEN RETURN RETURN 5090 LET PLX=PLX+1 RETURN 5091 LET PLY=PLY+1 RETURN 5092 LET PLX=PLX-1 RETURN 5093 LET PLY=PLY-1 RETURN 5100 DIR=DIR-90 IF DIR=(-90) THEN DIR=270 RETURN 5200 DIR=DIR+90 IF DIR=360 THEN DIR=0 RETURN 6000 LINE (50,50)-(250,250),1,BF RETURN REM DATA UAB,TBX,HAHZS,CCX REM DATA XXXZS,HBO,XXXZN,HBD REM DATA UAAZN,TDX,UBA,HBA REM DATA UAX,UBXZE,UAAZW,CDX DATA UDX,CAX,HAH,CCX DATA HBB,UCAZE,XXXZW,HBH DATA CBAZS,CCCZE,UACZW,TCX DATA XXXZN,CBB,UBA,UCB