1 REM Ins{nt av 4868 100 REM ******************************* 110 REM * ANCHION2.800 * 120 REM * Efter spelet UPPSJ\ av * 130 REM * ABC-medlem <1423> * 140 REM * 1984-04-22 Ver 2.0 * 150 REM ******************************* 160 REM $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 170 REM $ THE COOL $ 180 REM $ PROGRAMMER $ 190 REM $ STRIKES AGAIN! $ 200 REM $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ 201 REM Raderna 520,1040,1520,1530,1980 [R KAPADE F\R ATT KUNNA S[NDAS IN!!! 202 REM Den bortkapade biten ligger p} raden efter!! 210 EXTEND : FLOAT 220 DIM A$=80,B$=80,C$=80,D$=4,F$=10 230 DIM P(20) 240 RANDOMIZE : R=.05 250 Irving=-1 : Heffa=-1 : Garaged|rr=0 260 Antalf|rem}l=20 270 \vrigt=8 280 Startsekunder=PEEK(-14)*3600+PEEK(-13)*60+PEEK(-12) 290 P=35 : ; : ; ' Du befinner dig framf|r ing}ngen till' : ; ' det nyrenoverade M|rkrets Boning!' : ; 300 ; ' Det {r m|rkt och fuktigt i luften...' 310 FOR N=1 TO Antalf|rem}l : READ P(N) : NEXT N 320 DATA 35,254,44,254,48,51,61,57,57,57,76,61,254,65,54,73,254,76,61,77 330 A$='' : B$='' : C$='' 340 IF P=32 A$='Du {r i Djupa K{llaren' : F$='"""!' 350 IF P=33 A$='Du {r i Djupa K{llaren' : F$=' 4 "' 360 IF P=34 A$='Du {r i Djupa K{llaren' : F$=' ! ' 370 IF P<>35 THEN 390 380 A$='Du st}r framf|r porten' : F$='$C' 390 IF P=36 A$='Du st}r i den stora hallen' : F$='#%-' 400 IF P=37 A$='Du st}r framf|r trappan till |verv}ningen' : F$="$&'" 410 IF P=38 A$='Du st}r i ett m{rkligt utrymme' : F$=',8%' 420 IF P=39 A$='Du st}r vid |vre {nden av en trappa' : F$='(%' 430 IF P=40 A$='Du st}r i ett galleri.'+CHR$(13,10)+'Under dig ser du hallen' : F$=")'*<$" 440 IF P=41 A$='Du st}r p} en stor balkong med l}gt r{cke' : F$='#(' 450 IF P<>42 THEN 490 460 A$='Du {r i ett sovrum' : B$='Vid ena v{ggen finns en sk}pd|rr' 470 IF Sk}pd|rr THEN C$='Den {r |ppen' ELSE C$='Den {r st{ngd' 480 F$='+(' 490 IF P<>43 THEN 550 500 A$='Du st}r i ett stort rum'+CHR$(13,10) : F$='*' 510 IF Tele THEN F$='P*' 520 IF Matta THEN A$=A$+'med en ihoprullad matta l{ngs'+CHR$(13,10)+'den norra v{ggen' ELSE A$=A$+'med en matta mitt p} golvet' 530 IF Matta=0 THEN 550 540 C$='P} golvet {r det dammigt..' 550 IF P=44 THEN A$='Du st}r i en stor sal' : F$='&' 560 IF P=45 THEN A$='Du st}r i en mycket l}ng korridor' : F$='$.' 570 IF P=46 THEN A$='Du st}r i en mycket l}ng korridor' : F$='/-3' 580 IF P=47 THEN A$='Du st}r i en mycket l}ng korridor' : F$='.0I' 590 IF P=48 THEN A$='Du st}r i en mycket l}ng korridor' : F$='/1J' 600 IF P<>49 THEN 640 610 IF P=49 THEN A$='Du st}r vid den |vre delen av en spiraltrappa' : F$='H02' 620 IF Klar<>98 THEN 640 630 A$='En internationell liga har stulit spiraltrappan!' : B$='Du kan inte ta dig ned' : F$='H0' 640 IF P<>50 THEN 680 650 A$='Du {r vid foten av en spiraltrappa' : F$='9:1' 660 IF Klar<>98 THEN 680 670 A$='En internationell liga har stulit spiraltrappan!' : B$='Du kan inte ta dig upp!' : F$='9:' 680 IF P=51 A$='Du {r p} toaletten' : F$='.' 690 IF P=52 A$='Du {r i en korridor' : F$=' 5M' 700 IF P=53 A$='Du {r i en korridor' : F$='467' 710 IF P=54 A$='Du {r i matk{llaren' : F$='5' 720 IF P=55 A$='Du {r i garaget' : B$='I S|der finns en garaged|rr' : F$='59' 730 IF P=55 AND Garaged|rr THEN F$='G59' 740 IF P<>55 THEN 760 750 IF Garaged|rr THEN C$='Den {r |ppen' ELSE C$='Den {r st{ngd' 760 IF P=56 A$='Du {r i k|ket' : F$='&H' 770 IF P=57 A$='Du {r i ett f|rr}d' : F$='27' 780 IF P<>58 THEN 820 790 ; 'Du {r i en liten g}ng' : F$='2' : IF Irving=0 THEN F$=';2' : GOTO 820 800 ; 'En VAKT-IRVING sp{rrar v{gen f|r dig!' 810 ; 'Den kan bara mutas med en sak..' 820 IF P=59 A$='Du {r i ett litet rum med jordgolv' : F$=':' 830 IF P=59 AND Grop THEN P=65 840 IF P=60 THEN A$='Du {r i en liten trappa' : F$='(=' 850 IF P=61 A$='Du {r p} taket' : F$='<' 860 IF P=65 A$='Du {r i en grotta' : F$='A' 870 IF P=65 AND Heffa THEN B$='Tyv{rr sitter en ilsken heffaklump och sp{rrar din v{g' 880 IF P=65 AND Heffa=0 THEN F$='AN' 890 IF P=65 AND P(5)=65 THEN F$='A:' 900 IF P=65 AND P(5)=65 AND Heffa=0 THEN F$='AN:' 910 IF P=66 THEN ; : ; 'Du har lyckats ta dig ut!!' : GOTO 2690 920 IF P=67 THEN A$='Du st}r p} en v{lkrattad g}ng' : F$='D#' 930 IF P=68 THEN A$='Du {r vid h|rnet p} huset' : F$='EC' 940 IF P=69 THEN A$='H{r {r g}ngen inte lika v{lkrattad' : F$='DF' 950 IF P=70 THEN A$='Du st}r vid ett fallf{rdigt skjul' : F$='EG' 960 IF P=71 THEN A$='Du ramlade nedf|r en sl{nt' : B$='I Norr finns en garaged|rr' : F$='F' 970 IF P=71 AND P2=75 THEN F$='K' 980 IF P=71 AND Garaged|rr THEN A$='Du st}r utanf|r garaget' : B$='' : F$='7F' 990 IF P=71 AND Garaged|rr AND P2=75 THEN F$='7K' 1000 IF P=72 THEN A$='Du st}r i ett litet f|rr}d' : F$='81' 1010 IF P=73 THEN A$='Du st}r i badrummet' : F$='/' 1020 IF P<>74 THEN 1050 1030 A$='Du {r i konferanslokalen' : F$='K0' 1040 IF Spegel=0 THEN B$='P} den Norra v{ggen sitter en stor spegel' ELSE B$='Lutad mot den V{stra v{ggen st}r en spegel' : F$="LK0" 1050 IF P=75 THEN A$='Du {r ute p} en stor altan' : F$='JG' 1060 IF P=76 THEN A$='Du {r i ett l|nnrum' : F$='J' 1070 IF P=77 THEN A$='Du {r i bastun' : F$='4' 1080 IF P=78 THEN A$='Du {r i en gammal vink{llare' : IF Tele<2 THEN F$='OA' ELSE F$='A' 1090 IF P=79 THEN A$='Du st}r i en telefonhytt med'+CHR$(13,10)+'knapptelefon' : F$='N' 1100 IF P=80 THEN A$='Du st}r i en telefonhytt med'+CHR$(13,10)+'knapptelefon' : F$='+' : Tele=-1 1110 REM ------ huvudrutin ---------- 1120 REM 1130 IF A$>'' ; A$ '.' 1140 IF B$>'' ; B$ '.' 1150 IF C$>'' ; C$ '.' 1160 P2=P : GOSUB 2520 : REM inventera platsen 1170 REM ----- plats f|r specialare --- 1180 IF P<36 OR (P>66 AND P<=71) X9=0 : X0=0 : GOTO 1270 1190 IF RND'; : INPUT LINE A$ : ; 1320 L0=LEN(A$)-2 : IF L0=0 1270 1330 GOSUB 2340 1340 L1=INSTR(3,A$,' ') : IF L1=0 L1=L0+1 1350 B$=LEFT$(A$,L1-1) : K=0 : F=0 : GOSUB 2390 1360 IF L0>L1 B$=RIGHT$(A$,L1) : GOSUB 2450 1370 IF K=0 ; 'Vad ska jag g|ra???' : GOTO 1270 1380 IF P<>35 THEN 1400 1390 IF K<>2 AND K<>3 AND K<7 THEN ; 'F|rs|k inte smita...' : GOTO 1310 1400 ! Hopp hit ! 1410 IF K<>5 THEN 1430 1420 IF P=65 AND P(5)<>0 AND P(5)<>65 THEN ; 'Du har ingen stege!' : ; 'Tyv{rr kan du inte komma upp...' : GOTO 2690 1430 IF K>12 THEN 1460 ELSE IF (P>66 AND P<=71) OR (X1 AND P(1)=0) OR P<35 OR (P=35 AND K<>2) THEN 1460 1440 IF P=55 AND K=2 THEN 1460 1450 ; 'Du kan inte forts{tta i m|rkret' : GOTO 1270 1460 IF K<>1 OR P<>41 THEN 1480 1470 ; 'Du ramlar ned fr}n balkongen!!' : ; 'Lyktan g}r s|nder och du kan inte forts{tta.' : GOTO 2690 1480 IF P(5)=0 AND ((K=5 AND P=50) OR (K=6 AND P=49)) THEN ; 'Stegen g}r inte in i spiraltrappan!' : GOTO 1290 1490 IF K<>6 OR P<>40 THEN 1510 1500 ; 'Du hoppar ned fr}n galleriet!' 1510 IF K<17 OR K>19 THEN 1540 1520 IF P=58 AND Irving AND F=13 AND P(13)=0 THEN ; 'Irvingen glufsar i sig glassen och g}r upp i r|k!' : Irving=0 : P(13)=255 : F$="';2' : goto 1290" 1530 IF P=65 AND F=20 AND Heffa THEN Heffa=0 : P(20)=255 : ; 'Heffaklumpen slukar burken och d|r genast i sv}ra pl}gor!' : F$='N' : GOTO 1290 1540 IF K=19 AND P=65 AND F=15 AND P(15)=0 THEN P(15)=255 : ; 'Heffaklumpen svalde kniven!' : GOTO 1290 1550 ! 1560 REM ------- Kombinera!! -------- 1570 IF K>10 THEN 1620 1580 IF LEN(F$)11 1640 1630 P2=0 : GOSUB 2520 : P2=P : GOSUB 2520 : GOTO 1310 1640 IF K>12 1680 1650 ; 'M|jliga r|relseriktningar:' : RESTORE 2650 : FOR N=1 TO LEN(F$) : READ C$ 1660 IF ASCII(MID$(F$,N,1))<127 ; ' ' C$ 1670 NEXT N : GOTO 1310 1680 IF K=13 2690 1690 IF K>16 1780 1700 IF F=Antalf|rem}l+6 THEN ; 'Du kan inte ta lampan!' : ; 'Den {r p} j{rnv{gsstationen i UPPSJ\!!' : GOTO 1270 1710 IF F=0 THEN 2300 ELSE IF F>Antalf|rem}l ; 'Ge mig ett b{ttre f|rslag, tack!' : GOTO 1270 1720 IF P(F)=0 ; 'Du har den redan' : GOTO 1270 ELSE IF P(F)<>P 2330 1730 R1=0 : FOR N=1 TO Antalf|rem}l 1740 IF P(N)=0 R1=R1+1 1750 NEXT N : IF R1>5 THEN ; 'Du kan inte b{ra mer' : GOTO 1270 1760 IF Heffa AND F=14 THEN ; 'Heffaklumpen vaktar den med sitt liv!' : GOTO 1270 1770 P(F)=0 : ; 'ok' : GOTO 1180 1780 IF K>19 1820 1790 IF F=0 OR F>Antalf|rem}l THEN 2300 1800 IF P(F)>0 2320 ELSE ; 'ok' 1810 P(F)=P : GOTO 1180 1820 IF (K=20 OR K=21) AND F=Antalf|rem}l+6 THEN ; 'Det finns ingen lampa i det h{r spelet!' : GOTO 1270 1830 IF K<22 IF F<>1 2300 ELSE IF P(1)>0 2320 1840 IF K=20 IF X1 ; 'Den {r redan t{nd' : GOTO 1270 ELSE ; 'ok' : X1=-1 : GOTO 1180 1850 IF K=21 AND P(1)=0 IF NOT X1 ; 'Den {r redan sl{ckt.' : GOTO 1270 ELSE ; 'ok' : X1=0 : GOTO 1180 1860 IF K<>22 THEN 1940 1870 IF P(11) THEN ; 'Du har inget att gr{va med!' : GOTO 1270 1880 IF P=59 THEN 1910 ELSE IF P=69 AND P(17)=254 THEN 1920 1890 IF P=35 OR (P>66 AND P<72) THEN ; 'Det blev en snygg grop...' : GOTO 1290 1900 ; 'H{r kan du v{l inte gr{va..' : GOTO 1270 1910 P=65 : Grop=-1 : GOTO 330 1920 ; 'H{r ligger en nyckel!!' : P(17)=P : GOTO 1290 1930 GOTO 1160 1940 IF K<>23 OR F<>Antalf|rem}l+3 THEN 1970 1950 Lucka|ppen=-1 : IF P<43 THEN ; 'H{r finns ingen lucka!' : GOTO 1290 1960 ; 'Jag kan inte uppt{cka n}gon lucka!' : GOTO 1290 1970 IF K=23 AND F=Antalf|rem}l+2 THEN 1980 ELSE 2000 1980 IF K=23 AND P=42 AND Sk}pd|rr=0 THEN ; 'Sk}pets inneh}ll rasar ut p} golvet!' : P(2)=42 : P(4)=42 : P(13)=42 : Sk}pd|rr=-1 : GOTO 1160 1990 IF K=23 AND P=42 THEN ; 'D|rren {r redan |ppen' : GOTO 1290 2000 IF K<>23 OR (P<>71 AND P<>55) OR F<>Antalf|rem}l+2 THEN 2060 2010 IF P=71 AND Garaged|rr=0 AND P(17) THEN ; 'Du har ingen nyckel!' : GOTO 1290 2020 IF Garaged|rr THEN ; 'Den {r redan |ppen' : GOTO 1290 2030 IF P=55 THEN ; 'L}set {r trasigt.' : ; 'Den g}r inte att |ppna inifr}n!' : GOTO 1160 2040 IF P=71 ; 'Ok!' : Garaged|rr=-1 : F$='7F' : GOTO 1290 2050 IF K=23 AND F=Antalf|rem}l+2 THEN ; 'H{r finns ingen d|rr att |ppna.' : GOTO 1160 2060 IF P=65 AND K=26 AND P(15)=0 AND F=Antalf|rem}l+4 THEN ; ' HUR??' : GOTO 1290 2070 IF K<>25 OR F<>Antalf|rem}l+8 OR P<>79 THEN 2100 2080 IF Knapp<2 THEN Knapp=Knapp+1 : ; 'Ingenting h{nder.' : GOTO 1290 2090 P=80 : ; 'Telefonhytten startar och r|r sig upp}t!' : GOTO 330 2100 IF K=25 AND F=Antalf|rem}l+8 AND P=80 THEN ; 'Ingenting h{nder!' : GOTO 1290 2110 IF K=25 AND F=Antalf|rem}l+8 THEN ; 'H{r finns ingen knapp!' : GOTO 1290 2120 IF K=25 ; 'Det kan jag inte...' : GOTO 1290 2130 IF K<>27 AND K<>28 2220 2140 IF P<>43 OR F<>Antalf|rem}l+1 THEN 2180 2150 IF Matta THEN ; 'Kan inte flytta mattan igen!' : GOTO 1160 2160 Matta=-1 2170 ; 'Mattan {r flyttad' : GOTO 1160 2180 IF P<>74 OR F<>Antalf|rem}l+7 THEN 2220 2190 IF Spegel THEN ; 'Kan inte flytta spegeln igen!' : GOTO 1160 2200 Spegel=-1 : ; 'Spegeln {r flyttad.' 2210 ; 'Bakom spegeln fanns ett rum!' : F$='LK0' : GOTO 1160 2220 IF K=24 AND F=3 AND Rep=0 AND P=43 THEN 2230 ELSE 2250 2230 IF P(3) THEN ; 'Du har inget rep' : GOTO 1290 2240 ; 'Du har bundit fast repet och det h{nger nu ned i det svarta h}let!' : Rep=1 : P(3)=254 : GOTO 1160 2250 IF K=24 AND F=5 AND P=43 AND P(5)=0 THEN 2260 ELSE 2270 2260 ; 'Stegen var f|r kort!' : ; 'Den f|rsvann ned i m|rkret!' : P(5)=32 : GOTO 1290 2270 IF K=24 AND F=5 AND P=65 AND P(5)=0 THEN 2280 ELSE 2290 2280 ; 'Ok!' : P(5)=65 : F$='AAAA:' : GOTO 1270 2290 ! 2300 ; 'Jag f|rst}r inte!' : GOTO 1270 2310 ; 'Dumt f|rslag!' : GOTO 1270 2320 ; 'Du har den inte!' : GOTO 1270 2330 ; 'Finns ej h{r!' : GOTO 1270 2340 REM ------ Versaler ------ 2350 FOR I=1 TO L0 : Z=ASCII(MID$(A$,I,1)) : IF Z>95 AND Z<127 THEN Z=Z-32 2360 MID$(A$,I,1)=CHR$(Z) : NEXT I 2370 RETURN 2380 REM ------ Kommandos|k ------- 2390 RESTORE 2650 2400 FOR N=1 TO 29 2410 READ C$ 2420 IF C$=B$ THEN K=N : RETURN 2430 NEXT N : RETURN 2440 REM ------- s|k f|rem}l ------ 2450 RESTORE 2590 2460 FOR N=1 TO Antalf|rem}l+\vrigt 2470 READ C$,D$ 2480 IF INSTR(1,B$,D$)>0 THEN F=N : RETURN 2490 NEXT N : RETURN 2500 STOP 2510 REM -------- inventera -------- 2520 RESTORE 2590 : R2=0 2530 FOR N=1 TO Antalf|rem}l : READ C$,D$ 2540 IF P(N)<>P2 2580 2550 IF R2 2570 ELSE R2=1 2560 IF P2 ; 'H{r finns f|ljande:' : GOTO 2570 ELSE ; 'Du b{r p} f|ljande saker:' 2570 ; ' ' C$ 2580 NEXT N : RETURN 2590 DATA 'En batteridriven lykta',LYK,'Ett k|ttben',BEN,'Ett rep',REP,'En klocka',KLO 2591 DATA 'En l{ttmetallstege',STE,'En s}g',S]G 2600 DATA 'En liten husmus',MUS,'En tom tr{l}da',L]D,'Ett gammalt bord',BORD,'Ett knippe mor|tter',MOR,'En spade',SPA 2610 DATA 'En TV-antenn',ANT,'En glass',GLA,'En f|rgylld osthyvel',HYV,'En kniv',KNI 2611 DATA 'En rakapparat',RAK,'En nyckel fr}n L}sbolaget',NYC 2620 DATA 'Ett skelett',SKE,'En pistol',PIS,'En burk surstr|mming',BUR 2630 DATA ' ',MATT,' ',D\RR,' ',LUC,' ',HEFF,' ',SK]P,' ',LAMP 2640 DATA ' ',SPE,' ',KNA 2650 DATA N,S,\,V,UPP,NED,NO,NV,SO,SV,INV,NAV,SLUT,TA,TAG,F]NGA,L[MNA,SL[PP,KASTA,T[ND 2660 DATA SL[CK,GR[V,\PPNA,ANV[ND,TRYCK,D\DA,FLYTTA,LYFT,L]S 2670 DATA 2680 ; : ; CHR$(7) ' Du dog nyss under mystiska' : ; ' omst{ndigheter!' 2690 REM ------ po{ng & avslutning ---- 2700 Sluttid=PEEK(-14)*3600+PEEK(-13)*60+PEEK(-12) 2710 Tid=ABS(Startsekunder-Sluttid) 2720 T=INT(Tid/3600) : M=INT((Tid-T*3600)/60) : S=INT(Tid-(T*3600)-(M*60)) 2730 IF Klar=0 THEN ; 'Din tid blev:' : GOTO 2750 2740 IF Klar=99 THEN ; 'Du klarade det p} tiden:' 2750 ; ' ' T;' :' M;' :' S 2760 IF Klar=0 THEN ; 'och du klarade det inte...' 2770 END