5 ! M]NLAND.800 10 ! LUNAR LEM ROCKET # 1 20 ! ADAPTERAD F\R ABC800 AV BERTIL M]RTENSSON WORD & MUSIC LUND 30 ! AHL: BASIC COMPUTER GAMES (S 106) 35 ! G]R P] ALLA ABC 800-802-806 MED 80 TECKEN. 40 ! ------------------------------------------------ 50 DOUBLE 60 EXTEND : FLOAT : RANDOMIZE 70 ! --------- Grafikinledning --------------------------- 80 ; CHR$(12); 90 Z.=FNStarmake 100 Z=FNStad 110 Z=FNRaketland 120 Rad=14 : Kol=33 : Z=FNApollo 130 Z.=FNPaus.(2000.) 140 ; FNText1$ 150 Z.=FNPaus.(2000.) 160 ; FNText2$ 170 Z.=FNPaus.(2000.) 180 Z.=FNRaketstart 190 Rad=0 : Kol=33 : Z=FNApollo 195 ; FNText1$ : ; FNText2$ 200 ; CUR(22.,0.) SPACE$(80.) 210 ; CUR(22.,0.) " . . . . . ." 220 ; CUR(15.,30.) "LYCKA TILL!" 230 Z.=FNPaus.(2000.) 240 Rad=0 : Kol=33 : Z=FNRadera 250 ; FNText1$ : ; FNText2$ 260 Z.=FNPaus.(2000.) 270 ! ------------------ Program ---------------------- 280 ; CHR$(12); 290 ; CUR(0.,18.) "L A N D N I N G E N B \ R J A R" 300 Z.=FNPaus.(1000.) 310 ; CUR(2.,4.) " Raketerna kan st{llas in mellan" 320 ; CUR(3.,4.) " 0 - 200 pund/sek" 330 ; CUR(4.,4.) " (fritt fall) (max drag)" 340 Z.=FNPaus.(1000.) 350 ; CUR(2.,46.) " Du g|r en ny inst{llning " 360 ; CUR(3.,46.) " var tionde sekund!" 370 Z.=FNPaus.(1000.) 380 ; CUR(6.,4.) " KAPSELVIKT: 32.500 PUND, BR[NSLEVIKT: 16.500 PUND" 390 L.=0. : PRINT 400 ; TAB(1.) "SEC"; : ; TAB(21.) "MI + FT"; : ; TAB(35.) "MPH"; : ; TAB(51.) "LB-FUEL"; : ; TAB(72.) "GAS" 410 A.=120. : V.=1. : M.=33000. : N.=16500. : Z.=1.8 : G.=.001 420 ; TAB(1.) L.; : ; TAB(20.) INT(A.); : ; TAB(26.) INT(5280.*(A.-INT(A.))); : ; USING "####.##" TAB(35.) 3600.*V.; : ; TAB(50.) M.-N., : INPUT K. : T.=10. 430 IF M.-N.<.001 THEN GOTO 510 440 IF T.<.001 THEN GOTO 420 450 S.=T. : IF M.>=N.+S.*K. THEN 470 460 S.=(M.-N.)/K. 470 GOSUB 730 : IF I.<=0. THEN GOTO 650 480 IF V.<=0. THEN GOTO 500 490 IF J.<0. THEN GOTO 680 500 GOSUB 640 : GOTO 430 510 PRINT "Br{nslet slut efter";L.;"sekunder" : S.=(-V.+SQR(V.*V.+2.*A.*G.))/G. 520 V.=V.+G.*S. : L.=L.+S. 530 W.=3600.*V. : PRINT "P} M}nen efter";L.;"sekunder - nerslagshastighet";W.;"MPH" 540 IF W.<=1.2 THEN PRINT "Perfekt landning" : GOTO 750 550 IF W.<=10. THEN PRINT "Bra landning (men b{ttre {r m|jligt)" : GOTO 750 560 IF W.>60. THEN GOTO 610 570 PRINT "KAPSELN [R SKADAD... Du f}r v{nta tills n}gon kommer... (?)" 580 PRINT "Njut av utsikten. R{cker syret?" 590 GOTO 750 600 IF W.>60. THEN GOTO 610 610 PRINT "Du st|rtade! Ingen |verlevde." 620 PRINT "Du }stadkom en ny m}nkrater";W.*.277*.33;"meter djup." 630 GOTO 750 640 L.=L.+S. : T.=T.-S. : M.=M.-S.*K. : A.=I. : V.=J. : RETURN 650 IF S.<.005 THEN GOTO 530 660 D.=V.+SQR(V.*V.+2.*A.*(G.-Z.*K./M.)) : S.=2.*A./D. 670 GOSUB 730 : GOSUB 640 : GOTO 650 680 W.=(1.-M.*G./(Z.*K.))/2. : S.=M.*V./(Z.*K.*(W.+SQR(W.*W.+V./Z.)))+.05 : GOSUB 730 690 IF I.<=0. GOTO 650 700 GOSUB 640 : IF J.>0. GOTO 430 710 IF V.>0. GOTO 680 720 GOTO 430 730 Q.=S.*K./M. : J.=V.+G.*S.+Z.*(-Q.-Q.^2./2.-Q.^3./3.-Q.^4./4.-Q.^5./5.) 740 I.=A.-G.*S.*S./2.-V.*S.+Z.*S.*(Q./2.+Q.^2./6.+Q.^3./12.+Q.^4./20.+Q.^5./30.) : RETURN 750 ; : ; "V}gar du f|rs|ka igen? "; 760 GET A1$ 770 IF LEFT$(A1$,1.)="J" OR LEFT$(A1$,1.)="j" THEN ; CHR$(12) : GOTO 310 ELSE 780 780 ; : ; "Tack f|r mig. Vi ses p} Mars." 790 Z.=FNPaus.(2000.) : CHAIN "Spel2.bac" 800 END 810 DEF FNRaketland 820 Rad=0 : Kol=33 830 FOR I=1 TO 14 840 Z=FNApollo 850 FOR Paus=1 TO 500 : NEXT Paus 860 Z=FNRadera 870 Rad=Rad+1 880 NEXT I 890 RETURN 0 900 FNEND 910 DEF FNStad 920 ; CUR(22,1) '_.-___-__===___^~ooo~^__ooooLUNAR BASEoo$_._.-:._.!._."===="________' 930 RETURN 0 940 FNEND 950 DEF FNApollo 960 ; CUR(Rad,Kol) " !" 970 ; CUR(Rad+1,Kol) "  " 980 ; CUR(Rad+2,Kol) "   " 990 ; CUR(Rad+3,Kol) "   " 1000 ; CUR(Rad+4,Kol) "  " 1010 ; CUR(Rad+5,Kol) "   " 1020 ; CUR(Rad+6,Kol) "  " 1030 ; CUR(Rad+7,Kol) "   " 1040 ; CUR(Rad+8,Kol) " 00000" 1050 RETURN 0 1060 FNEND 1070 DEF FNRadera 1080 FOR X=Rad TO Rad+8 1090 ; CUR(X,Kol) " " 1100 NEXT X 1110 RETURN 0 1120 FNEND 1130 DEF FNStarmake 1140 FOR X=1 TO 25 1150 ; CUR(X,0); 1160 FOR Y=1 TO 5 1170 Z=Z+INT(RND*10)+1 1180 IF RND>.5 ; TAB(Z) "." 1190 NEXT Y 1200 NEXT X 1210 RETURN 0 1220 FNEND 1230 DEF FNPaus.(X.) 1240 FOR Y.=1. TO X. : NEXT Y. 1250 RETURN 0. 1260 FNEND 1270 DEF FNRaketstart 1280 Rad=14 : Kol=33 1290 FOR I=1 TO 14 1300 ; FNText1$ : ; FNText2$ 1310 Z=FNApollo 1320 FOR Paus=1 TO 500 : NEXT Paus 1330 Z=FNRadera : Z=FNStad 1340 Rad=Rad-1 1350 NEXT I 1360 RETURN 0 1370 FNEND 1380 DEF FNText1$ 1390 ; CUR(4.,20.) "DETTA [R EN DATORSIMULERING AV EN" 1400 ; CUR(6.,22.) "A P O L L O - L A N D N I N G" 1410 RETURN "" 1420 FNEND 1430 DEF FNText2$ 1440 ; CUR(9.,19.) "P} grund av SABOTAGE mot datorn ombord" 1450 ; CUR(10.,19.) "kan du inte landa med automatiken" 1460 ; CUR(12.,19.) " - du m}ste landa MANUELLT!" 1470 RETURN "" 1480 FNEND