10 REM . SAVE ARKEOLOG 20 REM 30 REM <><>ARKEOLOG<><> 40 REM < 50 REM < DAVID ANDERSSON 60 REM < 70 REM < 810215 80 REM < 90 REM <><><><><><><><> 100 REM 110 REM 120 REM 150 RANDOMIZE 160 ; CHR$(12%)' <><><><><>'; 170 ; ' ARKEOLOG <><><><><>' : ; 180 ; 'Du {r en ber|md arkeolog som '; 190 ; 'ska' : ; 'utforska en faraoisk'; 200 ; ' pyramid.' : ; 210 ; 'I pyramiden finns det ett '; 220 ; 'myller' : ; 'av g}ngar som du '; 230 ; 'ska f|lja tills' 240 ; 'du kommer till mitten,' 250 ; 'd{r SKATTEN finns.' 260 ; CUR(22%,0%)'*) Har du aldrig spelat ARKEOLOG n}gon' 270 ; ' g}ng s} tryck p} +'; 280 ; CUR(10%,0%)' <><><><><> '; 290 ; 'SV]RHET <><><><><>' : ; 300 ; 'V{lj pyramidstorlek *) (1-5)'; 310 GET A$ : IF A$='+' OR A$='?' CHAIN 'ARKEOLOG.HLP' 320 IF A$<'1' OR A$>'5' THEN 310 330 ; A$ : V%=VAL(A$) 340 FOR Z%=0% TO 3000% : NEXT Z% 350 ; CHR$(12%)' <><><><><> ARKEOLOG <><><><><>' : ; 360 ; : ; 'TANGENTBORDET :' 370 ; : ; ' g} 4 meter fram}t = S' : ; ' vrida 90 gr. h|ger = X' 380 ; ' vrida 90 gr. v{nster= Z' 382 ; ' n|d utg}ngning = U' : ; : ; 390 ; 'Observera att livsl{ngden p}' 400 ; 'ficklamps-batteriet {r begr{nsad.' 410 ; : ; : ; 420 ; 'Kom i h}g! Det du ser p} sk{rmen {r' 430 ; 'en TV-bild inifr}n pyramiden.' 440 ; CUR(22%,0%)'(v{nta 'MID$(' ett tv} trefyra fem',V%*4%-3%,4%)' |gonblick)'; 450 X0%=3%+V%*2% : Y0%=2%+V%*2% 460 REM LABYRINT 470 X%=240% 480 DIM G%(15%,14%),X%(X%),Y%(X%),X1%(4%),Y1%(4%),S%(4%),A%(32%) 490 R%=-1% : F%=-1% : M%=1% 500 X%=X0%/2% : Y%=Y0%/2% : RESTORE 520 510 READ X1%,Y1%,A% : IF A% LET G%(X%+X1%,Y%+Y1%)=A% : GOTO 510 520 DATA -1,0,2, 0,-1,6,0,0,31,0,1,3 530 DATA 1,-1,12,1,0,13,1,1,9,0,0,0 540 X%=X0% : G%(X%,Y%)=2% 550 REM 560 IF M% IF Y%<>Y0%/2% LET Z%=SGN(Y%-Y0%/2%) : M%=0% 570 R%=R%+1% : X%(R%)=X% : Y%(R%)=Y% : GOTO 600 580 F%=F%+1% : IF F%>R% THEN 720 590 X%=X%(F%) : Y%=Y%(F%) 600 K%=0% : Y1%=Y% 610 X1%=X%+1% : S%=2% : IF X1%<=X0% GOSUB 700 620 X1%=X%-1% : S%=8% : IF X1%>=0% GOSUB 700 630 X1%=X% : Y1%=Y%+1% : S%=4% : IF Y1%<=Y0% GOSUB 700 640 Y1%=Y%-1% : S%=1% : IF Y1%>=0% GOSUB 700 650 IF K%=0% THEN 580 660 K%=1%+RND*K% : X1%=X1%(K%) : Y1%=Y1%(K%) 670 G%(X%,Y%)=G%(X%,Y%) OR S%(K%) 680 G%(X1%,Y1%)=G%(X1%,Y1%) OR (S%(K%)*17%/4% AND 15%) 690 X%=X1% : Y%=Y1% : GOTO 550 700 IF G%(X1%,Y1%) RETURN 710 K%=K%+1% : S%(K%)=S% : X1%(K%)=X1% : Y1%(K%)=Y1% : RETURN 720 IF Z%=-1% LET S%=4% ELSE S%=1% 730 X%=X0%/2%-1% : Y%=Y0%/2% 740 G%(X%,Y%)=G%(X%,Y%) OR S% : Y%=Y%-Z% 750 G%(X%,Y%)=G%(X%,Y%) OR (S%*17%/4% AND 15%) 760 FOR D1%=0% TO 3% 770 X%=RND*(X0%+1%) : Y%=RND*(Y0%+1%) 780 IF G%(X%,Y%) AND (481% OR 2%^D1%) THEN 770 790 G%(X%,Y%)=G%(X%,Y%) OR 2%^D1%*32% 800 NEXT D1% 810 Q0%=RND<.1 820 ; CUR(22%,0%)'TRYCK RETURN N[R DU L[ST KLART'; 830 GET A$ : IF A$<>CHR$(13%) THEN 830 840 T1%=255% : T2%=255% : T3%=255% 850 S%=0% : M%=0% 860 REM ING]NG 870 IF M% THEN 2480 880 R%=33% : Q1%=1% : Q2%=0% 890 ; CHR$(12%)' <><><><><> ARKEOLOG <><><><><>' 900 FOR X%=11% TO 21% : ; CUR(X%,0%)CHR$(23%); : NEXT X% 910 ; CUR(21%,2%)STRING$(36%,112%); 920 ; CUR(11%,15%)STRING$(11%,35%); 930 FOR X%=33% TO 65% : SETDOT X%,30% 940 SETDOT X%,52% : NEXT X% 950 ; CUR(2%,0%); 960 IF S% ; ' Skatten {r kvar d{rinne' ELSE ; 'Detta {r ing}ngen till pyramiden' 970 ; : ; 'Har du kompass med dig (J/N)'; : GOSUB 2680 : Q2%=A% 980 ; 'Har du ficklampa ? (J/N)'; 990 GOSUB 2680 : IF A% LET Q1%=0% ELSE Q1%=1% 1000 ; 'Vill du se kartan ? (J/N)'; 1010 GOSUB 2680 : IF A%=0% THEN 1150 1020 SETDOT R%,2% 1030 FOR X1%=0% TO X0% : X%=X1%*2%+R%+1% 1040 FOR Y1%=0% TO Y0% : Y%=Y1%*2%+3% 1050 F%=G%(X1%,Y1%) : SETDOT X%+1%,Y%+1% 1060 IF X1%<>0% AND Y1% THEN 1100 1070 SETDOT X%+1%,Y%-1% : SETDOT X%-1%,Y%+1% 1080 IF (F% AND 1%)=0% SETDOT X%,Y%-1% 1090 IF (F% AND 8%)=0% SETDOT X%-1%,Y% 1100 IF (F% AND 4%)=0% SETDOT X%,Y%+1% 1110 IF (F% AND 2%)=0% SETDOT X%+1%,Y% 1120 NEXT Y1% : NEXT X1% 1130 X%=X0%/2%*2%+R%+2% : Y%=Y0%/2%*2%+2% 1140 CLRDOT X%,Y% : CLRDOT X%,Y%+2% 1150 ; : ; 'TRYCK S N[R DU G]R IN'; 1160 GET A$ : IF A$<>'S' AND A$<>'s' THEN 1160 1170 RESTORE 1200 : S%=0% : M1%=35% : M2%=40% 1180 FOR S%=0% TO 11% : READ A%(S%) : NEXT S% 1190 FOR S%=S% TO 32% : A%(S%)=2% : NEXT S% 1200 DATA 35,29,19,14,11,9,7,6,5,4,3,2 1210 POKE 65008%,T1%,T2%,T3% 1220 X%=X0%+1% : Y%=Y0%/2% : D%=3% : G%=1 : S9%=8% : GOTO 1320 1230 REM KRYPA 1240 ; CUR(22%,0%); : GET A$ : G%=0% 1250 IF INSTR(1%,'uU',A$) LET M%=0% : S%=1% : GOTO 860 1252 Z%= NOT PEEK(65009%)+SWAP%(PEEK(65010%)) 1254 S9%=7%-Z%/16% 1260 IF INSTR(1%,'Zz',A$) LET D%=D%+1% AND 3% : GOTO 1320 1270 IF INSTR(1%,'Xx',A$) LET D%=D%-1% AND 3% : GOTO 1320 1280 IF INSTR(1%,'Ss',A$) LET G%=1% ELSE ; CHR$(7); : GOTO 1230 1290 IF G%(X%,Y%) AND 2%^D% THEN 1320 1300 ; CUR(22%,6%)CHR$(1%)'Det {r en V[GG i v{gen'CHR$(23%,7%); 1310 GOTO 1230 1320 REM 1330 RESTORE 1340 1340 DATA V[STER,0,-1,S\DER,1,0,\STER,0,1,NORR,-1,0 1350 FOR D1%=0% TO D% : READ A$,X2%,Y2% : NEXT D1% 1360 IF G% LET X%=X%+X2% : Y%=Y%+Y2% 1370 IF X%>X0% LET S%=1% : GOTO 860 1380 IF G%(X%,Y%) AND 16% THEN 2130 1390 REM SYNBILD 1400 ; CHR$(12%); : FOR Z%=0% TO 23% : ; CUR(Z%,0%)CHR$(23%); : NEXT Z% 1410 S%=0% : IF Q2% ; CUR(22%,17%)A$; 1420 X1%=X%+X2%*S%/2% : Y1%=Y%+Y2%*S%/2% 1430 Z0%=A%(S%) : Z1%=A%(S%+1%) : G%=G%(X1%,Y1%) 1440 IF X1%>X0% THEN 1770 1450 IF G% AND 16% THEN 1900 1460 F%=2%^D% 1470 IF Q1% OR S%>S9% THEN 1730 1480 F1%=2%^(D%+1% AND 3%) : F2%=2%^(D%-1% AND 3%) 1490 IF S%=2% AND F1%*32% AND G% ; CUR(11%,12%)'5'; 1500 IF (G% AND F1%)=0% FOR Z%=Z1% TO Z0% : SETDOT M1%-Z%,M2%-Z% : SETDOT M1%+Z%,M2%-Z% : NEXT Z% : GOTO 1550 1530 IF S% FOR Z%=-Z0% TO Z0% : SETDOT M1%+Z%,M2%-Z0% : NEXT Z% 1540 FOR Z%=Z1% TO Z0% : SETDOT M1%-Z1%,M2%-Z% : SETDOT M1%+Z1%,M2%-Z% : NEXT Z% 1550 IF S%=2% AND F2%*32% AND G% ; CUR(11%,28%)'j'; 1560 IF (G% AND F2%)=0% FOR Z%=Z1% TO Z0% : SETDOT M1%-Z%,M2%+Z% : SETDOT M1%+Z%,M2%+Z% : NEXT Z% : GOTO 1610 1590 IF S% FOR Z%=-Z0% TO Z0% : SETDOT M1%+Z%,M2%+Z0% : NEXT Z% 1600 FOR Z%=Z1% TO Z0% : SETDOT M1%-Z1%,M2%+Z% : SETDOT M1%+Z1%,M2%+Z% : NEXT Z% 1610 IF G% AND F%*32% IF S%=0% GOSUB 2040 ELSE IF S%=2% ; CUR(11%,20%)''; ELSE IF S%=4% ; CUR(11%,20%)'0'; 1650 IF (F% AND G%)=0% FOR Z%=-Z1% TO Z1% : SETDOT M1%+Z1%,M2%+Z% : SETDOT M1%-Z1%,M2%+Z% : NEXT Z% : GOTO 1230 1680 FOR Z%=A%(S%+2%) TO Z1% 1690 SETDOT M1%-Z%,M2%-Z% : SETDOT M1%-Z%,M2%+Z% : SETDOT M1%+Z%,M2%-Z% : SETDOT M1%+Z%,M2%+Z% : NEXT Z% 1710 IF F1% AND G% FOR Z%=-Z1% TO Z1% : SETDOT M1%+Z%,M2%-Z1% : NEXT Z% 1720 IF F2% AND G% FOR Z%=-Z1% TO Z1% : SETDOT M1%+Z%,M2%+Z1% : NEXT Z% 1730 IF (G% AND F%)=0% THEN 1230 1750 S%=S%+2% : GOTO 1420 1760 REM EXIT 1770 IF S%>6% THEN 1870 1780 FOR Z%=-Z0% TO Z0% 1790 SETDOT M1%+Z%,M2%-Z0% : SETDOT M1%+Z%,M2%+Z0% 1800 SETDOT M1%-Z0%,M2%+Z% : NEXT Z% 1810 RESTORE 1840 1820 FOR D1%=2% TO S% STEP 2% 1830 READ Z% : NEXT D1% 1840 DATA 32274,32658,31930 1850 POKE Z%,197%,216%,201%,212% 1860 GOTO 1230 1870 FOR Z1%=M1%-Z0% TO M1%+Z0% 1880 FOR Z%=-Z0% TO Z0% 1890 SETDOT Z1%,M2%+Z% : NEXT Z% : NEXT Z1% : GOTO 1230 1900 REM FARAO 1910 FOR Z%=-Z0% TO Z0% : SETDOT M1%+Z%,M2%-Z0% 1920 SETDOT M1%+Z%,M2%+Z0% : SETDOT M1%-Z0%,M2%+Z% : NEXT Z% 1930 ; CUR(6%,16%)'4 4 4'; 1940 ; CUR(7%,16%)'*0 5 :'; 1950 ; CUR(8%,17%)'i 5 h!'; 1960 ; CUR(9%,12%)',p e 5`% `8$'; 1970 ; CUR(10%,14%)'#,p "456 `8&! '; 1980 ; CUR(11%,14%)'`p #,zo8&!'; 1990 ; CUR(12%,14%)'5 ),,,,,ppp<4'; 2000 ; CUR(13%,14%)'uppssssupppp5'; 2010 ; CUR(14%,12%)'#!5<,,,,,,,,,45#!'; 2020 ; CUR(15%,14%)'ussssssssssq5'; 2030 GOTO 1230 2040 REM M]LNING 2050 ON D%+1% RESTORE 2060,2070,2080,2090 2060 DATA ' h8!',' `n','eqzp:',' ###' 2070 DATA ' `p','h! i','"dp&','& 4"$' 2080 DATA '` t4','e {!','h0','' 2090 DATA '"cmg#','(!j )',' j','' 2100 FOR D1%=10% TO 13% : READ A$ 2110 ; CUR(D1%,18%)A$; : NEXT D1% 2120 RETURN 2130 REM FRAMME 2140 IF PEEK(65008%)<4% 2140 ELSE T1%=PEEK(65008%) : T2%=PEEK(65009%) : T3%=PEEK(65010%) 2150 ; CHR$(12%)' <><><><> GRAVKAMMAREN <><><><><><>' : ; 2160 ; CHR$(17%)'wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww5' : ; 2170 IF M% THEN 2410 2180 IF Q0% THEN 2430 2190 ; ' Nu {r du framme hos gamle farao.' 2200 ; CHR$(23%)STRING$(32%,35%) 2210 REM FOR Z%=0% TO 3000% : NEXT Z% 2220 A$=CHR$(23%)+' ' : ; A$' ` 0' 2230 ; A$' (#d!: p' 2240 ; A$' `,$%%&(!' 2250 ; A$'j# k##7 #5' 2260 ; A$'*xp8)6 i&dpt%' 2270 ; A$'  =,,n ' 2280 ; A$' 74 e : hk' 2290 ; A$' uj0 ",,! `5z' : ; 2300 ; 'Har du kameran med dig (J/N)'; 2310 GOSUB 2680 : IF A%=0% ; : ; ']]]]]]!' : ; 'N}ja.'; : GOTO 2330 2320 ; : ; 'Ta nu n|dv{ndiga foton och' 2330 ; 'ta s} mycket guld du orkar b{ra.' 2340 ; : ; 'Nu ska du ut ur pyramiden !' 2350 ; CUR(21%,0%)'klar ?(J/N)'; : GOSUB 2680 2360 IF A% GOTO 2390 2370 ; CUR(21%,0%)' JAS] ! '; 2380 FOR Z%=0% TO 5000% : NEXT Z% : GOTO 2350 2390 POKE 65008%,T1%,T2%,T3% 2400 X%=X0%/2%-1% : Y%=Y0%/2% : D%=1% : G%=0% : M%=1% : GOTO 1320 2410 ; 'H{r har du redan varit' : ; 2420 GOTO 2340 2430 ; ' TOMT ! INGENTING !' : ; 2440 OUT 6%,7% 2450 FOR Z%=0% TO 6000% : NEXT Z% : OUT 6%,0% 2460 ; 'Tusan ocks} !!' : ; 'H{r har ju varit gravplundrare.' : ; 2470 GOTO 2340 2480 REM KLAR 2490 ; CHR$(12%)' <><><><><> ARKEOLOG <><><><><>' : ; 2500 IF PEEK(65008%)<4% 2500 ELSE T1%=PEEK(65008%) XOR 255% : T2%=PEEK(65009%) XOR 255% : T3%=PEEK(65010%) XOR 255% 2510 T=(T3%*65536+T2%*256+T1%)/50 2520 T1%=T/60 : T2%=T-60*T1% 2530 ; 'Det tog'; : IF T1% ; T1%' minuter och'; 2540 ; T2%' sekunder.' : ; : ; 2550 IF Q0% ; 'B{ttre lycka n{sta g}ng (gravg}ng haha)' : ; : ; : GOTO 2600 2560 T3%=T/V% : IF T3%<14% ; 'Du {r en faraologisk sensation!' : GOTO 2600 2570 IF T3%<25% ; 'Nu blir du {nnu mera ber|md' : GOTO 2600 2580 IF T3%<60% ; 'Det var ju bra gjort' : GOTO 2600 2590 ; 'Du kom ut till slut !' 2600 ; : ; 2610 ; 'Vill Du forts{tta utforska ? (J/N)'; 2620 GOSUB 2680 : IF A%=0% END : CHAIN 'MENY' 2630 ; : IF Q0% THEN 2660 2640 ; 'Ny pyramid ? (J/N)'; 2650 GOSUB 2680 : IF A%=0% THEN 840 2660 FOR X%=0% TO X0% : FOR Y%=0% TO Y0% : G%(X%,Y%)=0% : NEXT Y% : NEXT X% 2670 GOTO 160 2680 REM GET 2690 GET A$ : IF INSTR(1%,'Nn',A$) LET A%=0% : ; 'Nej' : RETURN 2700 IF INSTR(1%,'Jj'+CHR$(13%),A$) LET A%=1% : ; ' Ja' : RETURN ELSE 2690