1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program .... UPPSJ\ 3 REM ! Utg}va 1983-01-03 4 REM ! av (c) Erik ]str|m <1423> 7 REM ! Minne 16 Kbytes 9 REM +++++++++++++++++++++++++++++++++ 10 REM OBS : L{s filen UPPSJ\.INF !!! 11 REM Vid ol|sliga problem l{s 12 REM UPPSJ\1.PRO f|r Monstret, 13 REM UPPSJ\2.PRO f|r L}dan, 14 REM UPPSJ\3.PRO f|r Hissen, 15 REM UPPSJ\4.PRO f|r Ormen, 16 REM UPPSJ\5.PRO f|r Gorillan, 17 REM UPPSJ\6.PRO f|r Labyrinten. 18 REM 19 REM Screening av 20 REM Allan Varcoe & G|ran Olsson 21 REM 60 IF PEEK(590%)<>80% THEN ; INP(3%) 70 DIM A$=80%,B$=80%,C$=80%,D$=4%,F$=10% 80 DIM P%(20%) 90 RANDOMIZE : R=.05 100 POKE 65008%,255%,255%,255% 110 P%=35% : ; CHR$(12%)' Uppsj| j{rv{gsstation' : ; 120 FOR N%=1% TO 18% : READ P%(N%) : NEXT N% 130 DATA 255,34,35,37,38,38,38,38,39,39,40,42,43,47,46,46,50,59 140 A$='' : B$='' : C$='' 150 IF P%=32% A$='Du {r i Stora Skogen' : F$='"""!' 160 IF P%=33% A$='Du {r i Stora Skogen' : F$=' # "' 170 IF P%=34% A$='Du {r i Stora Skogen' : F$=' ! ' 180 IF P%=35% A$='Du st}r vid taxin, norr om stationen' : F$='!$!!' 190 IF P%=36% A$='Du {r i v{ntsalen' : F$='(%)' 200 IF P%=37% A$='Du {r p} toaletten' : F$='$&' 210 IF P%<>38% 240 220 A$='Du {r p} stationens vind. Mot S finns en d|rr' 230 IF X3% B$='Den {r |ppen' : F$="';%" ELSE B$='Den {r l}st' : F$=';%' 240 IF P%=39% A$='Du {r i en skrubb' : F$="&" 250 IF P%=40% A$='Du {r i godsmagasinet' : F$='$3' 260 IF P%=41% A$='Du st}r vid |vre {nden av en stentrappa' : F$='$*+' 270 IF P%=42% A$='Du {r i ett litet rum' : F$='0()' 280 IF P%=43% A$='Du st}r vid nedre {nden av en trappa' : F$=',)' 290 IF P%<>44% 320 300 A$='Du {r i ett fuktigt k{llarrum med jord- golv' : IF X4% B$='I golvet finns en lucka' 310 IF X5% C$='Luckan {r |ppen' : F$='-+/' ELSE F$='-+' 320 IF P%<>45% 350 330 A$='Du {r i en korridor' 340 IF X6% B$='H{r ligger en d|d orm' : F$='.,' ELSE B$='En orm sp{rrar din v{g mot N' : F$=',' 350 IF P%=46% A$='Du {r i ett litet rum med fyra d|rrar' : F$='+-!' 360 IF P%=47% A$="Du {r i Donkey Kong's h}la" : F$=',,' 370 IF P%=48% A$='Du {r i en hiss. H{r finns en knapp' : F$='*' 380 IF P%=49% A$='Du {r i en hiss. H{r finns en knapp' : F$='2' 390 IF P%=50% A$='Du {r i en l}ng korridor' : F$='0&' 400 IF P%=51% A$='Du st}r i godsmagasinet' : IF X8% F$='#4(' ELSE B$='En stor l}da sp{rrar v{gen mot S' : F$='#(' 410 IF P%=52% A$='Du {r i en labyrint av sm} g}ngar' : F$='4543' 420 IF P%=53% A$='Du {r i en labyrint av sm} g}ngar' : F$='9479' 430 IF P%=54% A$='Du {r i en labyrint av sm} g}ngar' : F$='8775' 440 IF P%=55% A$='Du {r i en labyrint av sm} g}ngar' : F$='6595' 450 IF P%=56% A$='Du {r i en labyrint av sm} g}ngar' : F$='767:' 460 IF P%=57% A$='Du {r i en labyrint av sm} g}ngar' : F$='5457' 470 IF P%=58% A$='Du {r i labyrinten. P} v{ggen finns en knapp' : F$='86' 480 IF P%=59% A$='Du {r p} taket' : F$='&' 490 REM ------ huvudrutin ---------- 500 REM 510 IF A$>'' ; A$'.' 520 IF B$>'' ; B$'.' 530 IF C$>'' ; C$'.' 540 P2%=P% : GOSUB 1480 : REM inventera platsen 550 REM ----- plats f|r specialare --- 560 IF P%=33% AND P%(14%)=0% ; 'Donkey Kong f|rsvinner omedelbart upp i en tall' : P%(14%)=255% 570 IF P%<36% X9%=0% : X0%=0% : GOTO 660 580 IF RND51% OR X8% 700 680 ; 'Donkey lyfter bort l}dan och f|rsvinner in i labyrinten' : X8%=-1% : F$='#4(' : P%(14%)=254% 690 REM ------- kommando in --------- 700 INPUTLINE A$ : ; 710 L0%=LEN(A$)-2% : IF L0%=0% 660 720 L1%=INSTR(3%,A$,' ') : IF L1%=0% L1%=L0%+1% 730 B$=LEFT$(A$,L1%-1%) : K%=0% : F%=0% : GOSUB 1350 740 IF L0%>L1% B$=RIGHT$(A$,L1%) : GOSUB 1410 750 IF K%=0% ; 'Vad ska jag g|ra???' : GOTO 660 760 IF K%>12% THEN 780 ELSE IF (X1% AND P%(3%)=0%) OR P%<35% OR (P%=35% AND K%<>2%) THEN 780 770 ; 'Du kan inte forts{tta i m|rkret' : GOTO 660 780 IF P%<>45% OR X6% THEN 820 790 IF K%=26% AND F%=24% IF P%(18%)>0% ; 'Du saknar vapen!' : GOTO 660 ELSE ; 'Hur????' : GOTO 660 800 IF F%<>18% OR K%<>19% 820 810 ; 'Ormen sticker sig sv}rt p} spr|ten och d|r efter en stund!' : X6%=-1% : F$='.,' : GOTO 1050 820 IF P%=43% AND P%(14%)=0% AND K%=5% ; 'Gorillan v{grar att g} uppf|r trappan.' : GOTO 660 830 REM ------- Kombinera!! -------- 840 IF K%>10% THEN 890 850 IF LEN(F$)11% 910 900 P2%=0% : GOSUB 1480 : P2%=P% : GOSUB 1480 : GOTO 700 910 IF K%>12% 950 920 ; 'M|jliga r|relseriktningar:' : RESTORE 1620 : FOR N%=1% TO LEN(F$) : READ C$ 930 IF ASC(MID$(F$,N%,1%))<127% ; ' 'C$ 940 NEXT N% : GOTO 700 950 IF K%=13% 1660 960 IF K%>16% 1020 970 IF F%=0% THEN 1300 ELSE IF F%>18% ; 'Ge mig ett b{ttre f|rslag, tack!' : GOTO 660 980 IF P%(F%)=0% ; 'Du har den redan' : GOTO 660 ELSE IF P%(F%)<>P% 1330 990 R1%=0% : FOR N%=1% TO 18% 1000 IF P%(N%)=0% R1%=R1%+1% 1010 NEXT N% : IF R1%>5% THEN ; 'Du kan inte b{ra mer' : GOTO 660 ELSE P%(F%)=0% : ; 'ok' : GOTO 570 1020 IF K%>19% 1060 1030 IF F%=0% OR F%>18% THEN 1300 1040 IF P%(F%)>0% 1320 ELSE ; 'ok' 1050 P%(F%)=P% : GOTO 570 1060 IF K%<22% IF F%<>3% 1300 ELSE IF P%(3%)>0% 1320 1070 IF K%=20% IF X1% ; 'Den {r redan t{nd' : GOTO 660 ELSE ; 'ok' : X1%=-1% : GOTO 570 1080 IF K%=21% AND P%(3%)=0% IF NOT X1% ; 'Den {r redan sl{ckt.' : GOTO 660 ELSE ; 'ok' : X1%=0% : GOTO 570 1090 IF K%>22% THEN 1150 1100 IF P%(8%)>0% ; 'Du har inget att gr{va med.' : GOTO 660 1110 IF P%>35% AND P%<>44% ; 'H{r kan du inte gr{va.' : GOTO 660 1120 ; 'Pust! pust!' : IF P%=32% AND P%(1%)=255% ; 'H{r ligger en nyckel!' : P%(1%)=32% : GOTO 570 1130 IF P%=44% ; 'Du har blottat en lucka.' : X4%=-1% : GOTO 570 1140 ; 'Det blev en fin grop!' : GOTO 570 1150 IF K%=23% AND F%=26% AND P%=44% AND X4% ; 'ok' : X5%=-1% : F$='-+/' : GOTO 570 1160 IF P%<>38% THEN 1200 1170 IF (K%=24% AND F%=1%) OR (K%=23% AND F%=21%) OR (K%=29% AND (F%=27% OR F%=21%)) 1180 ELSE 1200 1180 IF P%(1%)>0% ; 'Du har ingen nyckel att |ppna med.' : GOTO 660 1190 ; 'D|rren {r |ppen' : X3%=-1% : F$="';%" : GOTO 570 1200 IF K%<>25% OR F%<>23% THEN 1260 1210 IF P%=58% X7%=-1% : GOTO 1250 1220 IF P%<>48% 1330 1230 IF X7% AND NOT X2% ; 'Hissen r|r sig upp}t och stannar p} andra v}ningen.' : F$='2' : X2%=-1% : GOTO 660 1240 IF X2% ; 'Hissen stannar p} bottenplanet.' : F$='*' : X2%=0% : GOTO 660 1250 ; 'Ingenting h{nder!' : GOTO 660 1260 REM 1270 IF K%<>27% AND K%<>28% 1290 1280 IF (P%=51% AND F%=22%) OR (P%=45% AND F%=24%) ; 'Helt om|jligt!' : GOTO 660 1290 REM 1300 ; 'Jag f|rst}r inte!' : GOTO 660 1310 ; 'Dumt f|rslag!' : GOTO 660 1320 ; 'Du har den inte!' : GOTO 660 1330 ; 'Finns ej h{r!' : GOTO 660 1340 REM ------ Kommandos|k ------- 1350 RESTORE 1620 1360 FOR N%=1% TO 29% 1370 READ C$ 1380 IF C$=B$ THEN K%=N% : RETURN 1390 NEXT N% : RETURN 1400 REM ------- s|k f|rem}l ------ 1410 RESTORE 1550 1420 FOR N%=1% TO 27% 1430 READ C$,D$,R4% 1440 IF INSTR(1%,B$,D$)>0% THEN F%=N% : RETURN 1450 NEXT N% : RETURN 1460 STOP 1470 REM -------- inventera -------- 1480 RESTORE 1550 : R2%=0% 1490 FOR N%=1% TO 18% : READ C$,D$,R4% 1500 IF P%(N%)<>P2% 1540 1510 IF R2% 1530 ELSE R2%=1% 1520 IF P2% ; 'H{r finns f|ljande:' : GOTO 1530 ELSE ; 'Du b{r p} f|ljande saker:' 1530 ; ' 'C$ 1540 NEXT N% : RETURN 1550 DATA 'En nyckel',NYC,2,'En liten skogsmus',MUS,5,'En ficklampa',LAM,2,'En sko',SKO,2,'N}gra mynt',MYN,8 1560 DATA 'N}gra fotografier',FOT,12,'En vacker tavla',TAV,21,'En spade',SPA,3,'Ett juvelsmycke',SMY,107 1570 DATA 'En sax',SAX,1,'En spegel',SPE,5,'En banan',BAN,1,'Ett gammalt brev',BRE,8 1580 DATA 'En gorilla',GOR,3,'N}gra diamanter',DIA,100,'En klocka',KLO,20 1590 DATA 'En 5-kilos guldtacka',TAC,100,'En TV-antenn',ANT,4 1600 DATA -,-,0, -,GRO,0,-,D\R,0,-,L]D,0,-,KNA,0,-,ORM,0,-,MON,0,-,LUC,0,-,UPP,0 1610 DATA 1620 DATA N,S,\,V,UPP,NED,NO,NV,SO,SV,INV,NAV,SLUT,TA,TAG,F]NGA,L[MNA,SL[PP,KASTA,T[ND 1630 DATA SL[CK,GR[V,\PPNA,ANV[ND,TRYCK,D\DA,FLYTTA,LYFT,L]S 1640 DATA 1650 ; : ; CHR$(7%)' Du dog nyss under mystiska' : ; ' omst{ndigheter!' 1660 REM ------ po{ng & avslutning ---- 1670 R1%=255% XOR PEEK(65008%) : IF R1%>250% 1670 1680 R2%=255% XOR PEEK(65009%) : R3%=255% XOR PEEK(65010%) 1690 Z=(SWAP%(R3%)+R2%)*5.12+R1%/50 : R1%=-1*INT(Z/30) 1700 T=INT(Z/3600) : Z=Z-T*3600 : M=INT(Z/60) : Z=Z-M*60 1710 ; : ; : ; ' Tid 'T;' :'M;' :'INT(Z) 1720 R3%=0% 1730 RESTORE 1550 1740 FOR N%=1% TO 18% : READ C$,D$,R4% 1750 IF P%(N%)=35% R3%=R3%+R4% 1760 NEXT N% 1770 ; : ; 'Po{ng f|r f|rem}l ...'R3% 1780 ; 'Tidsavdrag ..........'R1% 1790 R3%=R3%+R1% 1800 ; ' Summa 'R3% 1810 IF R3%>360% ; 'Mycket bra!' : END 1820 IF R3%>200% ; 'Bra gjort!' : END 1830 IF R3%>50% ; 'Mindre bra.' : END 1840 ; 'Du kan s{kert g|ra det b{ttre.' 1850 END