1 CALL KEY(3,KEY,STATUS) 4 PD,ST,P12,TM,TO1,PL1=0 :: C1,C2,CP,M1=1 :: NN,LO=40 :: NV=28 7 I$="sono " 10 DIM P$(24),P1(24,5),OB$(40),OB1(40),VB$(28),NO$(40) 13 GOSUB 595 16 GOSUB 424 19 PD$="now it's pitch dark! it is dangerous to move blindly" 22 IM$="i can't go there!" 25 GF$=" the door is closed" :: GF1$=" the door is open" 28 D$="i fell and broke my head!" 31 GOSUB 550 34 IF TM THEN OB1(24)=CP 37 IF TM THEN PRINT :"the mummy follows me" 40 GOSUB 58 43 IF VB>8 AND NO1$="" THEN PRINT CM$;" what?" :: GOTO 40 46 IF NO1$<>"" AND(VB=6 OR VB=7 OR VB=8)AND NO=0 THEN PRINT " I do not understand! " :: GOTO 40 49 IF VB>12 THEN 55 52 ON VB GOTO 106,136,142,142,31,160,160,160,199,214,214,244 55 ON VB-12 GOTO 244,244,271,31,289,304,316,337,355,367,373,379,379,385,400,415 58 PRINT :: INPUT " what should I do? ":CM$ :: PRINT 61 NO1$,VB1$="" :: VB,NO,FLAG=0 64 LC=LEN(CM$) :: FOR I=1 TO LC :: IF SEG$(CM$,I,1)=" " THEN I=LC :: GOTO 70 67 VB1$=VB1$&SEG$(CM$,I,1) 70 NEXT I 73 V1$=VB1$ :: VB1$=SEG$(V1$,1,4) :: FOR I=1 TO NV :: IF VB$(I)=VB1$ THEN VB=I :: I=NV+1 :: FLAG=1 76 NEXT I :: IF FLAG THEN 82 79 VB=6 :: NO1$=VB1$ :: GOTO 88 82 FLAG=0 :: IF LEN(V1$)+1>LEN(CM$)THEN NO=0 :: RETURN 85 NO1$=SEG$(CM$,LEN(V1$)+5,LEN(CM$)-4-LEN(V1$)) 88 N1$=NO1$ :: NO1$=SEG$(NO1$,1,4) :: FOR I=1 TO NN :: IF NO1$=NO$(I)THEN APP=I :: I=NN+1 :: FLAG=1 91 NEXT I :: IF FLAG THEN 97 94 NO=0 :: RETURN 97 NO=APP :: RETURN 100 PRINT :: PRINT " I'm dead!" 103 PRINT : : :: END 106 ! 109 PRINT " you have reached the" 112 DER1=0 115 IF OB1(8)=-1 THEN DER1=DER1+1 118 IF OB1(12)=-1 THEN DER1=DER1+1 121 IF OB1(18)=-1 THEN DER1=DER1+1 124 IF OB1(20)=-1 THEN DER1=DER1+1 127 PRINT DER1*25;"%" 130 IF CP=4 AND DER1=4 THEN PRINT "good boy!" :: GOTO 103 133 GOTO 40 136 ! 139 PRINT "ok." :: GOTO 103 142 ! 145 PRINT " I have with me: " :: GS,ZZ=0 148 FOR I=1 TO LO :: IF OB1(I)=-1 THEN PRINT OB$(I) :: GS=GS+1 :: ZZ=ZZ+1 151 NEXT I 154 IF GS=0 THEN PRINT "nothing" 157 GOTO 40 160 ! 163 IF NO=0 THEN PRINT "uh?" :: GOTO 40 166 IF NO1$<>"" AND NO=0 THEN PRINT " I don't know this word" :: GOTO 40 169 IF NO<27 AND NO<>5 THEN PRINT " I do not understand you" :: GOTO 40 172 IF NO>34 THEN NO=NO-6 175 IF CP=5 AND NO=5 AND C1=0 THEN PRINT "ok." :: CP=P1(CP,1) :: GOTO 31 178 IF CP=8 AND NO=27 AND P12 THEN PRINT "ok." :: CP=P1(CP,5) :: GOTO 31 181 IF CP=10 AND NO=28 AND ST THEN PRINT "ok." :: CP=P1(CP,4) :: GOTO 31 184 IF NO<29 THEN PRINT " I still can't do it " :: GOTO 40 187 NO=NO-29 190 IF(NO+1)AND PD THEN PRINT D$ :: GOTO 100 193 IF P1(CP,NO)=0 THEN PRINT IM$ :: GOTO 40 196 CP=P1(CP,NO) :: GOTO 31 199 ! 202 IF NO=0 THEN PRINT "I don't know the word ":N1$ :: GOTO 40 205 IF(NO=4 AND CP=4)OR(NO=16 AND OB1(16)=-1)THEN PRINT "something is written on it" :: GOTO 40 208 IF CP=24 AND NO=19 THEN PRINT " I see something" :: OB1(20)=24 :: CALL DELAY :: GOTO 31 211 PRINT "I don't see anything special" :: GOTO 40 214 ! 217 IF NO=0 THEN GOTO 202 220 IF OB1(NO)=-1 THEN PRINT " I already have it with me!" :: GOTO 40 223 IF OB1(NO)<>CP THEN PRINT " I do not see ";N1$;" around here" :: GOTO 40 226 IF NO=4 OR NO=5 OR NO=9 OR NO=10 OR NO=15 OR NO=19 THEN PRINT " do not be silly!" :: GOTO 40 229 IF NO>20 THEN PRINT "don't be stupid!" :: GOTO 40 232 IF ZZ>4 THEN PRINT " I can't carry anything else" :: GOTO 40 235 IF CP=20 AND NO=3 THEN P$(20)=ASDO$&ASDW$ :: P1(20,1)=0 238 IF CP=15 AND NO=16 AND C2 THEN PRINT " the cobra bit me!" :: GOTO 100 241 ZZ=ZZ+1 :: PRINT "ok." :: OB1(NO)=-1 :: GOTO 40 244 ! 247 IF NO=0 THEN 202 250 IF OB1(NO)<>-1 THEN PRINT " I don't have it with me" :: GOTO 40 253 IF NO<>3 AND NO<>7 AND NO<>11 THEN OB1(NO)=CP :: GOTO 268 256 IF NO=3 AND CP=20 THEN PRINT " wow! now I can go south by passing on the girder" :: P$(20)=ASDO$&ASDW1$ :: P1(20,1)=23 :: OB1(3)=0 259 IF NO=7 AND CP=10 THEN PRINT "the skeleton puts it on his shoulders then pulls a lever and a ladder descends from the ceiling" 262 IF NO=7 AND CP=10 THEN P1(10,4)=12 :: OB$(9)=FGR$ :: OB1(7)=0 :: ST=1 :: ZZ=ZZ-1 :: GOTO 40 265 IF NO=11 AND TM=1 THEN PRINT " the mummy takes the bandages and leaves " :: OB1(21),OB1(11)=0 :: TM=0 268 ZZ=ZZ-1 :: CALL DELAY :: GOTO 31 271 ! 274 IF NO<>5 THEN PRINT "uhu?!" :: GOTO 40 277 IF CP<>5 THEN PRINT " there is nothing to open here" :: GOTO 40 280 IF C1=0 THEN PRINT " but it's open" :: GOTO 40 283 IF OB1(2)<>-1 THEN PRINT "I have nothing to do it " :: GOTO 40 286 PRINT "ok." :: C1=0 :: P1(5,1)=6 :: CALL DELAY :: GOTO 31 289 ! 292 IF NO<>6 THEN PRINT "eh?!" :: GOTO 40 295 IF CP<>15 THEN PRINT "nothing happens" :: GOTO 40 298 IF OB1(6)<>-1 THEN PRINT " I still can't do it " :: GOTO 40 301 PRINT "it works, the cobra moves away" :: OB1(15)=0 :: C2=0 :: CALL DELAY :: GOTO 31 304 ! 307 IF NO<>4 AND NO<>16 THEN PRINT " I do not understand" :: GOTO 40 310 IF NO=4 AND CP=4 THEN PRINT "says: bring the treasures here" :: GOTO 40 313 IF NO=16 AND OB1(16)=-1 THEN PRINT "says: sway me" :: GOTO 40 316 ! 319 IF NO<>16 THEN PRINT "I do not understand" :: GOTO 40 322 IF CP<>8 THEN PRINT " nothing happens" :: GOTO 40 325 IF OB1(16)=-1 THEN PRINT " unbelievable! the wall lights up and a passage appears leading below" :: P1(8,5)=16 328 FGTY$=" there is a passage leading downstairs" 331 P12=1 :: P$(8)=SEG$(P$(8),1,16)&FGTY$ 334 CALL DELAY :: GOTO 31 337 ! 340 IF NO<>22 AND CP>5 THEN PRINT "uhu?!" :: CALL DELAY :: GOTO 31 343 IF NO<>22 THEN PRINT " I only have hands to dig ":"so I dig the sand" :: GOTO 40 346 PRINT " I dig with my hands and..." 349 IF CP=2 THEN PRINT " I find something" :: OB1(2)=2 :: CALL DELAY :: GOTO 31 352 PRINT " I find nothing" :: GOTO 40 355 ! 358 IF NO<>14 AND NO<>16 AND NO<>2 THEN PRINT " I do not like!" :: GOTO 40 361 IF OB1(14)=-1 OR(OB1(14)=CP)THEN PRINT "ok.":"aaghhh!" :: GOTO 100 364 PRINT "ok.":" it doesn't taste good" :: OB1(NO)=0:;CALL DELAY :: GOTO 31 367 ! 370 PRINT " I'm not buying this! " :: GOTO 40 373 ! 376 PRINT " better leave everything open, you never know s" :: GOTO 40 379 ! 382 PRINT " if you like to smash things, why don't you play arcade? " :: GOTO 40 385 ! 388 IF NO<>1 THEN PRINT "do not joke" :: GOTO 40 391 IF OB1(1)<>-1 THEN PRINT "I turn on what?" :: GOTO 40 394 IF TO1 THEN PRINT " it is already on" :: GOTO 40 397 PRINT "ok." :: TO1=1 :: GOTO 31 400 ! 403 IF NO<>1 THEN PRINT "explain yourself better " :: GOTO 40 406 IF OB1(1)<>-1 THEN PRINT " I can not" :: GOTO 40 409 IF TO1=0 THEN PRINT " it is already off" :: GOTO 40 412 PRINT "ok." :: TO1=0 :: GOTO 40 415 ! 418 IF CP<>20 THEN PRINT "whee!" :: GOTO 40 421 IF CP=20 AND P12=0 THEN PRINT D$ :: GOTO 100 424 ! 427 P$(1)=" in the desert " :: P$(2)=P$(1) :: P$(3)=P$(1) :: P$(4)=P$(1) 430 P$(5)=" in the desert, in front of a pyramid" 433 P$(6)="in the antechamber of the pyramid of iunnuh " 436 FGTY$=" on the wall there is a sapphire set" 439 P$(7)="in a triangular room " :: P$(8)=" in a white room "&FGTY$ :: P$(9)=" in a niche" 442 P$(10)=" in a corridor" :: P$(11)=" in a red room" :: P$(12)=" in a small room " :: P$(13)=" in the hall of the alchemist" 445 P$(14)="in the embalmer's hall" :: P$(15)=" in IANKHO's room" 448 P$(16)="in a tunnel" :: P$(17)=" in a tunnel. a writing on the wall says: do not pass or you will die" 451 P$(18)=P$(16) :: P$(19)=" in a green room" 454 ASDW$=" with a ditch too wide for me to jump over " :: ASDW1$="with a girder that acts as a passage" 457 ASDO$=" in a long and narrow tunnel," 460 P$(20)=ASDO$&ASDW$ 463 P$(21)=" in the old armory" :: P$(22)="in the hall of hieroglyphics" 466 P$(23)="in the hall of hanyke " :: P$(24)=" in the funeral chapel " 469 DATA 2,4,2,1,0,0,2,3,3,1,0,0,2,5,2,4,0,0 472 DATA 1,5,3,4,0,0,4,0,3,0,0,0,5,10,7,8,0,0 475 DATA 0,10,0,6,0,0,0,9,6,0,0,0,8,0,10,0,0,0 478 DATA 6,0,7,9,0,0,0,13,14,0,0,0,0,15,13,0,0,10,11,15,14,12,0,0,11,0,0,13,0,0 481 DATA 13,0,0,12,0,0,0,0,17,0,8,0,0,0,18,16,0,0,0,21,19,17,0,0 484 DATA 0,0,0,18,0,0,0,23,21,0,0,0,18,0,22,20,0,0,0,0,0,21,0,0 487 DATA 20,24,0,0,0,0,23,0,0,0,0,0 490 RESTORE 469 493 FOR I=1 TO 24 :: FOR J=0 TO 5 :: READ P1(I,J) :: NEXT J :: NEXT I 496 ! 499 DATA "a torch", " a key"," a wooden girder ","a sign","a door","a flute" 502 FGR$=" an happy skeleton" 505 DATA " a skull ","one *GOLD NECKLACE* ","a headless skeleton","a bloody altar","clean bandages " 508 DATA " a *GOLDEN AXE*","charged batteries"," drugs "," a poisonous cobra","one *SAPPHIRE*" 511 DATA " a broken sword","an *ANCIENT VASE*","an open sarcophagus"," a *GOLDEN MASK*"," a mummy with dirty bandages" 514 FOR I=1 TO 21 :: READ OB$(I) :: NEXT I 517 DATA 1,0,3,4,5,6,8,9,10,11,11,11,12,13,15,15,16,22,24,0,17 520 FOR I=1 TO 21 :: READ OB1(I) :: NEXT I 523 DATA TORC,KEY ,GIRD,SIGN,DOOR,FLUT,SKUL,NECK,SKEL,ALTA,BAND,AXE ,BATT,DRUG,COBR,SAPP,SWOR,VASE,SARC,MASK,MUMM 526 DATA SAND,ROOM,HIER,HALL,CORR,TUNN,LADD,NORT,SOUT,EAST,WEST,UP,DOWN,N,S,E,O,ABOV,BELO 529 FOR I=1 TO 40 :: READ NO$(I) :: NEXT I 532 DATA SCOR,EXIT,INVE,I,LOOK,GO,RUN,WALK,SEE,TAKE,GRAB,PUT,LEAV,GIVE,OPEN,*,PLAY,READ,SWAY,DIG,EAT,DRIN 535 DATA CLOS,DEST,BREA,LIGH,SWIT,JUMP 538 FOR I=1 TO 28 :: READ VB$(I) :: NEXT I 541 DATA north,south,east,west,above,below 544 FOR I=0 TO 5 :: READ DD$(I) :: NEXT I 547 RETURN 550 CALL CLEAR 553 IF CP=17 AND OB1(21)<>0 THEN TM=1 556 IF(OB1(1)<>-1 OR TO1=0)AND CP>5 THEN PRINT PD$ :: PD=1 :: RETURN 559 PRINT I$&P$(CP) :: PD=0 562 IF(CP=6 OR CP=18)AND TM=1 THEN PRINT "Help! the mummy attacks me!" :: GOTO 100 565 VB4$=" I see: " 568 FOR I=1 TO LO :: IF OB1(I)=CP THEN PRINT VB4$;OB$(I) :: VB4$="" 571 NEXT I 574 IF CP=5 AND C1 THEN PRINT GF$ ELSE IF CP=5 AND C1=0 THEN PRINT GF1$ 577 FL=0 580 PRINT "can I go to: " 583 FOR I=0 TO 5 586 IF P1(CP,I)<>0 THEN PRINT DD$(I);" "; :: FL=1 589 NEXT I 592 RETURN 595 DATA 00000038484834,0040407048483,00000038404038,00080838484834,00001824302018,0018282038202 598 DATA 000038484838083,00202038242424,00100030101038,001000301010502,00404050605049,00301010101038 601 DATA 00000060545454,00000078484848,0000003048483,000070584870404,0000384848380808,0000002830202 604 DATA 0000182038083,00101038101018,00000048484834,0000002424281 610 RESTORE 595 613 FOR ZO=97 TO 118 616 READ Z$ 619 CALL CHAR(ZO,Z$) 622 NEXT ZO 631 RETURN 634 SUB DELAY 637 FOR T=1 TO 400 :: NEXT T 640 SUBEND