DataMuseum.dk

Presents historical artifacts from the history of:

Jet Computer Jet80

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Jet Computer Jet80

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦cbc99ce3a⟧ TextFile

    Length: 14976 (0x3a80)
    Types: TextFile
    Names: »SFAMAIN.BAS«

Derivation

└─⟦dd59903ef⟧ Bits:30005887 Klub diskette for udveksling af software
    └─ ⟦this⟧ »SFAMAIN.BAS« 

TextFile

10 WIDTH 51:PRINT CHR$(26):PA=320:GOSUB 8000:PRINT"      The Search For Almazar":PRINT TAB(13)"Part I":PRINT:PRINT"    Written by Winston M. Llamas":PRINT"Adapted to OSBORNE-1 by Robert I. Liddelow 16.5.83":PRINT"  c. Aug 1981. All Rights Reserved."
20 DIM FT(72),MO(72,5),VC$(53),VC(53),TC$(42),TC(42),OP(29),LO$(29),SO$(29),SP(14)
30 OPEN"I",#1,"SFAMOVE.0":FOR X=1 TO 72:INPUT#1,RI,MO(X,0),MO(X,1),MO(X,2),MO(X,3),MO(X,4),MO(X,5):NEXT:CLOSE#1
40 OPEN"I",#1,"SFAVOC.0":FOR X=0 TO 53:INPUT#1,VC$(X),VC(X):NEXT X:FOR Y=0 TO 42:INPUT#1,TC$(Y),TC(Y):NEXT Y:CLOSE#1
50 OPEN"I",#1,"SFAOBDES.0":FOR X=0 TO 29:INPUT#1,DU,LO$(X):NEXT X:FOR Y=0 TO 19:INPUT#1,DU,SO$(Y):NEXT Y:FOR Z=0 TO 29:INPUT#1,OP(Z):NEXT Z:CLOSE#1
60 '
70 PRINT CHR$(26):N=1:GOSUB 7000
80 '
90 '
100 IF RN>10 AND RN<30 THEN GOSUB 7400
114 TU=TU+1:IF TU>400 THEN RE=74:PRINT:GOSUB 7100:DI=3:GOTO 7300
115 IF SP(8)=1 THEN  SP(14)=SP(14)+1:ELSE IF SP(8)=0 THEN SP(14)=0
116 IF SP(2)=1 THEN SP(1)=SP(1)-1:IF SP(1)<1 THEN SP(2)=0
117 IF SP(1)<20 AND SP(2)=1 AND OP(8)=-1 AND W1<>1 THEN RE=17:PRINT:GOSUB 7100:W1=1
118 IF SP(13)>0 THEN SP(13)=SP(13)+1:IF SP(13)>5 THEN RE=70:PRINT:GOSUB 7100:GOSUB 7200:GOTO 100
119 IF TU>360 AND W2<>1 THEN RE=16:PRINT:GOSUB 7100:W2=1
121 IF RN=15 THEN SC=1:ELSE IF OP(23)=RN THEN SP(6)=SP(6)+1:IF SP(6)>5 THEN IO=22:PRINT:GOSUB 1800
122 IF SP(14)>7 THEN RE=65:PRINT:GOSUB 7100:SP(14)=0:SP(8)=0:GOSUB 7200:GOTO 100
123 C1=0:OW=0:PRINT:INPUT CO$:PRINT:LC=LEN(CO$):FOR X=1 TO LC:IF MID$(CO$,X,1)=" " THEN C1=X:GOTO 125:ELSE NEXT X
124 IF CO$="" THEN RE=2:GOSUB 7100:GOTO 100
125 V1=C1-1:IF C1=0 OR V1>4 THEN V1=4:ELSE OW=1
130 C1$=LEFT$(CO$,V1):FOR X=0 TO 53:IF C1$=VC$(X) THEN IV=VC(X):GOTO 140:ELSE NEXT X:RE=2:GOSUB 7100:GOTO 100
140 IF IV>16 THEN 970:ELSE IF IV>6 GOTO 190
144 IF IV=1 AND SP(7)<>2 AND RN=62 THEN RE=91:GOSUB 7100:GOTO 100
145 IF IV=1 AND RN=59 AND OP(29)<>59 THEN RE=1:GOSUB 7100:GOTO 100
150 N=MO(RN,(IV-1)):IF N=0 THEN RE=1:GOSUB 7100:GOTO 100:ELSE GOSUB 7000:GOTO 100
190 ON IV-6 GOSUB 200,300,400,500,600,700,800,900,3300,3400:GOTO 100
200 N=RN:FT(N)=0:GOSUB 7000:RETURN
300 IF RN=47 OR RN=43 OR RN=52 OR RN=54 OR RN=63 OR RN=61 OR RN=70 OR RN=69 GOTO 305:ELSE RE=102:GOTO 390
305 INPUT"The HINT will cost 3 points - still want it";HQ$:IF LEFT$(HQ$,1)="N" THEN RETURN ELSE PRINT
310 IF RN=47 THEN RE=94
315 IF RN=63 THEN RE=95
320 IF RN=54 THEN RE=96
325 IF RN=61 THEN RE=97
330 IF RN=70 THEN RE=98
335 IF RN=69 THEN RE=99
340 IF RN=52 THEN RE=100
345 IF RN=43 THEN RE=101
385 PR=PR+3
390 GOSUB 7100:RETURN
400 PRINT"You are carrying":FOR X=0 TO 29:IF OP(X)=-1 THEN PRINT SO$(X):CA=1
410 NEXT X:IF CA=0 THEN PRINT"   ....nothing!
420 RETURN
500 RE=6:IF RN=27 OR RN=28 THEN RE=43
505 IF RN=41 THEN RE=48
510 IF RN=43 OR RN=44 OR RN=49 THEN RE=30
520 GOSUB 7100:IF RE=30 THEN RE=31:GOSUB 7100
530 IF RE<>6 GOTO 7200 ELSE RETURN
600 PT=0:FOR X=0 TO 7:IF OP(X)=-1 THEN PT=PT+7
610 IF OP(X)=72 THEN PT=PT+10
620 NEXT X:PT=PT-(DI*10)-PR:IF RE=8 THEN PT=PT+10
630 PRINT"You have scored: "PT"points.":RETURN
700 INPUT"Are you sure you want to quit";QU$:IF LEFT$(QU$,1)<>"N" GOTO 7300 ELSE RETURN
800 OPEN"O",#1,"SFA/SAV.0":FOR X=0 TO 29:WRITE#1,OP(X):NEXT X:FOR Y=1 TO 72:WRITE#1,FT(Y):NEXT Y:FOR Z=0 TO 14:WRITE#1,SP(Z):NEXT Z:WRITE#1,RN,TU,SC,IN,PR:CLOSE#1
810 PRINT"The game is now saved for later play.
"CHR$(13)"To continue the same game, type RESTORE at your
"CHR$(13)"first turn after resumption":PRINT:GOSUB 600:PRINT:END
900 IF TU>1 THEN PRINT"It is too late to resume an old game":RETURN
910 OPEN"I",#1,"SFA/SAV.0":FOR X=0 TO 29:INPUT#1,OP(X):NEXT X:FOR Y=1 TO 72:INPUT#1,FT(Y):NEXT Y:FOR Z=0 TO 14:INPUT#1,SP(Z):NEXT Z:INPUT#1,RN,TU,SC,IN,PR:CLOSE#1:N=RN:GOSUB 7000:RETURN
970 S2=C1+1:C2$=MID$(CO$,S2,4)
980 FOR X=0 TO 42:IF C2$=TC$(X) THEN IO=TC(X):GOTO 990:ELSE NEXT X:RE=2:GOSUB 7100:GOTO 100
990 ON IV-16 GOSUB 1000,1100,1200,1200,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,2400,2500,2600,2700,2800,2900,3000,3100,3200:GOTO 100
1000 IF IO>18 THEN RE=2:GOTO 1030
1005 IF IN+1>7 THEN RE=83:GOTO 1099
1010 IF IO=18 THEN IF OP(5)=RN THEN RE=3:OP(5)=-1:GOTO 1098:ELSE IF OP(19)=RN THEN RE=3:OP(19)=-1:GOTO 1098
1015 IF IO<>5 AND IO<>16 GOTO 1018:ELSE IF IO=5 THEN IF OP(5)=-1 THEN RE=7:GOTO 1099:ELSE IF OP(19)=-1 THEN RE=62:GOTO 1099
1016 IF IO=5 THEN IF OP(22)=RN THEN IF OP(18)=-1 THEN RE=3:OP(22)=0:OP(18)=0:OP(5)=-1:GOTO 1099:ELSE RE=60:GOTO 1099
1017 IF IO=16 THEN IF OP(16)=RN THEN IF SP(3)=1 THEN RE=3:OP(16)=-1:GOTO 1098:EELSE RE=18:GOTO 1099
1018 IF IO=1 AND OP(20)=RN THEN RE=23:GOSUB 7100:GOTO 7200
1020 IF OP(IO)=RN THEN RE=3:OP(IO)=-1:ELSE IF OP(IO)=-1 THEN RE=7 ELSE RE=4
1030 IF IO=28 THEN IF OP(8)<>-1 THEN RE=63:ELSE IF RN<>8 THEN RE=71:ELSE RE=3:SP(1)=100
1040 IF IO=29 THEN IF OP(5)=-1 OR OP(19)=-1 THEN RE=62:ELSE IF OP(18)<>-1 THEN RE=60:ELSE IF RN<>43 AND RN<>44 AND RN<>49 THEN RE=4:ELSE RE=3:OP(18)=0:OP(19)=-1
1045 IF IV=22 THEN IF RE=60 THEN RE=77:ELSE IF RE=4 THEN RE=78
1046 IF IV=22 AND RE=71 THEN RE=78
1050 IF IO=7 AND OP(26)=RN THEN OP(7)=-1:OP(26)=0:RE=3
1060 IF IO=27 THEN IF RN=32 THEN RE=9 ELSE RE=4
1070 IF IO=25 THEN IF RN=65 THEN RE=9 ELSE RE=4
1080 IF IO=2 AND OP(23)=RN THEN RE=93
1085 IF IO=31 THEN IF RN=69 THEN RE=9 ELSE RE=4
1086 IF IO=19 THEN IF RN=52 THEN RE=9 ELSE RE=4
1090 IF IO=3 AND OP(24)=RN THEN RE=61
1098 IF RE=3 AND IO<19 THEN IN=IN+1
1099 GOSUB 7100:RETURN
1100 IF IO<19 OR IO=29 GOTO 1105:ELSE RE=2:GOTO 1199
1105 IF OP(IO)=-1 AND IO<>7 THEN OP(IO)=RN:RE=3:ELSE RE=5
1106 IF IO=16 ANR RE=3 THEN RE=66:SP(3)=0
1110 IF IO=18 AND OP(5)=-1 THEN OP(5)=RN:RE=3:GOTO 1140
1120 IF(IO=18 OR IO=29) AND OP(19)=-1 THEN OP(19)=RN:RE=3
1130 IF IO=7 AND OP(IO)=-1 THEN IF OP(14)=RN THEN RE=3:OP(7)=RN:ELSE RE=75:OP(7)=0:IN=IN-1
1140 IF RE=3 THEN IN=IN-1
1199 GOSUB 7100:RETURN
1200 IF IO>18 THEN RE=2:GOTO 1299
1210 IF OP(IO)=-1 THEN RE=6:ELSE RE=5:GOTO 1299
1220 IF IV=19 AND (RN=43 OR RN=44) AND IO=12 THEN SP(8)=ABS(SP(8)-1):IF SP(8)=1 THEN RE=28 ELSE RE=29
1230 IF IV=19 AND (RN=27 OR RN=28) AND IO=11 THEN SP(9)=ABS(SP(9)-1):IF SP(9)=1 THEN RE=35 ELSE RE=36
1240 IF IV=29 AND IO=10 THEN GOSUB 1300
1299 GOSUB 7100:RETURN
1300 IF RN=61 AND SP(5)=0 THEN SP(5)=1:RE=22:GOSUB 7100:RE=25:PRINT:OP(2)=RN:OP(23)=0:RETURN
1400 RE=4:IF RN=25 AND IO=26 THEN RE=34
1410 IF RN=32 AND IO=26 THEN RE=37
1420 IF RN=43 AND IO=35 THEN RE=32
1430 IF RN=44 AND IO=26 THEN RE=67
1440 IF RN=65 AND IO=25 THEN IF SP(10)=1 THEN RE=38 ELSE RE=44
1450 IF RN=70 AND IO=26 THEN RE=33
1454 IF IO<>26 AND IO<>25 AND IO<>35 THEN RE=2
1455 IF RN<>70 OR IO<>26 GOTO 1460
1456 FOR X=0 TO 7:IF OP(X)<>72 GOTO 1460
1457 NEXT X:IF OP(10)=-1 THEN RE=8:GOSUB 7100:GOTO 7300
1460 GOSUB 7100:IF RE=44 GOTO 7200
1470 RETURN
1500 IF IO=8 THEN IO=28:GOTO 1000
1510 IF IO=18 THEN IO=29:GOTO 1000
1520 RE=2:GOSUB 7100:RETURN
1600 RE=2:IF IO<>8 AND IO<>13 GOTO 1690
1605 IF SP(2)=1 AND IO=8 THEN RE=82:GOTO 1690
1610 IF OP(10)<>-1 THEN RE=5:GOTO 1690
1620 IF IO=8 AND SP(1)<1 THEN RE=13:GOTO 1690
1630 IF OP(17)<>-1 THEN RE=12:GOTO 1690
1640 IF IO=8 THEN RE=3:SP(2)=1:SP(13)=0:ELSE OP(13)=0:IN=IN-1:IF RN=52 THEN OP(20)=0:OP(1)=RN:RE=24:ELSE RE=3
1690 GOSUB 7100:RETURN
1700 RE=6:IF IO=20 OR IO=22 OR IO=36 OR IO=27 GOTO 1705:ELSE RE=2:GOTO 1690
1705 IF IO=36 THEN IF OP(21)<>RN THEN RE=4
1706 IF IO=20 AND OP(24)<>RN THEN RE=4
1707 IF IO=22 AND OP(23)<>RN THEN RE=4
1708 IF RE=4 GOTO 1690
1710 INPUT"With what, your bare hands";QU$:IF LEFT$(QU$,1)="N" GOTO 1750
1720 IF IO=20 THEN RE=21
1730 IF IO=22 THEN RE=45
1740 IF IO=36 THEN RE=81
1745 IF IO=27 THEN RE=11
1750 PRINT:GOSUB 7100:IF RE<>21 AND RE<>45 THEN RETURN ELSE 7200
1800 RE=2:IF IO=27 THEN IF OP(25)=RN THEN RE=10 ELSE RE=4
1810 IF IO=22 AND OP(23)=RN THEN SP(6)=0:RE=45:GOSUB 7100:GOTO 7200
1811 IF IO>19 GOTO 1820
1815 IF OP(IO)<>-1 THEN RE=5:ELSE IF OP(IO)<>RN THEN RE=4
1816 IF OP(IO)=-1 THEN OP(IO)=RN:RE=3:IN=IN-1
1820 GOSUB 7100:RETURN
1900 RE=6:IF IO>18 AND IO<>27 THEN RE=2:GOTO 1960
1910 IF IO=27 THEN IF OP(25)=RN GOTO 1710 ELSE RE=4:GOTO 1960
1920 IF IO=7 AND OP(7)=-1 THEN RE=75:OP(7)=0
1930 IF (IO=18 OR IO=5) AND OP(5)=-1 THEN RE=84:GOSUB 7100:PRINT:RE=73:OP(5)=0:IN=IN-1:GOTO 1960
1940 IF IO=18 AND OP(19)=-1 THEN OP(19)=0:IN=IN-1:RE=84
1950 IF OP(IO)<>-1 THEN RE=5
1955 IF IO=18 AND OP(18)=-1 THEN IN=IN-1:OP(18)=0:RE=84
1960 GOSUB 7100:RETURN
2000 RE=2:IF IO>18 GOTO 2099
2010 IF IO=18 OR IO=5 GOTO 1900
2020 IF OP(IO)<>-1 THEN RE=5:GOTO 2099:ELSE RE=3:IN=IN-1:OP(IO)=RN:IF (IO=6 AND OP(21)=RN) GOTO 2030 ELSE 2099
2030 KG=RND-(IN*.01):IF KG>.4 THEN PRINT"You killed a nasty knife throwing gnome!":OP(21)=0:ELSE PRINT"You missed - you ought to have your eyes examined!"
2040 RETURN
2099 GOSUB 7100:RETURN
2100 RE=19:IF IO<>5 GOTO 2110 ELSE IF OP(5)=-1 OR OP(5)=RN THEN RE=40:OP(5)=0:OP(18)=-1:GOTO 2199
2101 IF OP(5)=RN THEN RE=40:OP(5)=0:OP(18)=RN
2105 IF OP(22)=RN THEN OP(22)=0:RE=40:GOTO 2199
2110 IF IO=15 THEN IF OP(15)=-1 THEN OP(15)=0:IN=IN-1:RE=80:ELSE IF OP(15)=RN THEN OP(15)=0:RE=80
2120 IF IO=16 THEN IF OP(16)=-1 THEN RE=41:IN=IN-1:OP(16)=0:GOSUB 7100:GOTO 7200:ELSE IF OP(16)=RN THEN RE=66
2199 GOSUB 7100:RETURN
2200 RE=57:IF IO<>229 THEN RE=2:GOTO 2199
2210 IF OP(19)=-1 THEN RE=56:OP(19)=0:OP(18)=-1
2215 IF OP(19)=RN THEN RE=56:OP(19)=0:OP(18)=RN
2220 IF RN=43 OR RN=44 OR RN=49 THEN RE=56
2230 GOTO 2199
2300 IF IO<>16 AND IO<>20 THEN RE=2:GOTO 2199
2310 IF IO=16 THEN IF OP(16)<>RN THEN RE=4:GOTO 2199:ELSE IF OP(15)=-1 THEN SP(3)=1:RE=3:GOTO 2199:ELSE RE=19:GOTO 2199
2320 IF OP(24)<>RN THEN RE=4:GOTO 2199:ELSE IF OP(16)<>-1 THEN RE=19:GOTO 2199
2330 IN=IN-1:OP(24)=0:RE=20:GOSUB 7100:OP(16)=0:RE=26:PRINT:OP(3)=RN:GOTO 2199
2400 RE=6:IF IO>18 AND IO<>24 THEN RE=2:GOTO 2199
2410 IF IO<>24 GOTO 2199:ELSE IF RN<>59 THEN RE=4:GOTO 2199
2415 IF OP(29)=59 THEN RE=85:OP(29)=0:GOTO 2199
2420 RE=72:OP(29)=59:GOTO 2199
2500 IF IO<>30 AND IO<>31 AND IO<>32 THEN RE=2:GOTO 2199
2501 IF IO=30 AND RN=62 GOTO 2530
2505 RE=4:IF IO=32 AND RN=66 THEN IF OP(9)=-1 THEN SP(11)=1:RE=3:ELSE RE=14
2510 IF IO=31 AND RN=69 THEN IF OP(9)=-1 THEN RE=3:SP(12)=1:ELSE RE=14
2520 GOTO 2199
2530 INPUT"LEFT";N1$:INPUT"RIGHT";N2$:INPUT"LEFT";N3$:PRINT
2540 IF VAL(N1$)=3 AND VAL(N2$)=7 AND VAL(N3$)=21 THEN RE=87:SP(7)=1:ELSE RE=89
2550 GOTO 2199
2600 RE=2:IF IO<>21 AND IO<>23 GOTO 2199
2610 RE=4:IF IO=21 THEN IF (RN<>27 AND RN<>28) GOTO 2199:ELSE IF SP(9)=0 THEN RE=42:GOTO 2199
2620 IF IO=23 THEN IF (RN<>43 AND RN<>44) GOTO 2199:ELSE IF SP(8)=0 THEN RE=27:GOTO 2199
2630 IF RN=43 THEN N=44 ELSE IF RN=44 THEN N=43
2640 IF RN=27 THEN N=28 ELSE IF RN=28 THEN N=27
2650 GOTO 7000
2700 RE=2:IF IO<>23 AND IO<>29 GOTO 2720
2710 IF RN=43 OR RN=44 OR RN=49 THEN RE=31 ELSE RE=57
2720 GOSUB 7100:IF RE=31 GOTO 7200 ELSE RETURN
2800 IF IO<>30 AND IO<>31 AND IO<>32 AND IO<>33 THEN RE=2:GOTO 2899
2810 RE=4:IF IO<>30 GOTO 2820 ELSE IF RN<>62 GOTO 2899 ELSE IF SP(7)<1 THEN RE=88:GOTO 2899:ELSE IF SP(7)=2 THEN RE=68:GOTO 2899:ELSE RE=3:SP(7)=2:GOTO 2899
2820 IF IO=31 AND RN=69 THEN IF SP(12)<1 THEN RE=86:ELSE IF SP(12)=2 THEN RE=68:ELSE RE=39:SP(12)=2
2830 IF IO=32 AND RN=66 THEN IF SP(11)<1 THEN RE=86:ELSE IF SP(11)=2 THEN RE=68:ELSE SP(11)=2:IF OP(4)=0 THEN OP(4)=RN:RE=76:ELSE RE=3
2840 IF IO=33 THEN IF RN<>65 GOTO 2899:ELSE IF SP(10)=1 THEN RE=3:SP(10)=0:OP(27)=RN:OP(28)=0:ELSE RE=68
2899 GOSUB 7100:RETURN
2900 IF IO<>30 AND IO<>31 AND IO<>32 AND IO<>33 THEN RE=2:GOTO 2899
2910 RE=4:IF IO=30 AND RN=62 THEN IF SP(7)=0 THEN RE=69:ELSE RE=3:SP(7)=0
2920 IF IO=31 AND RN=69 THEN IF SP(12)=0 THEN RE=69:ELSE RE=3:SP(12)=0
2930 IF IO=32 AND RN=66 THEN IF SP(11)=0 THEN RE=69:ELSE RE=3:SP(11)=0
2940 IF IO=33 AND RN=65 THEN IF SP(10)=1 THEN RE=69:ELSE RE=3:SP(10)=1:OP(27)=0:OP(28)=RN
2950 GOTO 2899
3000 IF IO<>8 THEN RE=2:GOTO 2899
3010 IF OP(IO)<>-1 THEN RE=5 ELSE IF SP(2)<>0 THEN SP(2)=0:RE=3:ELSE RE=92
3020 GOTO 2899
3100 RE=6:IF IO>18 AND IO<>34 THEN RE=2:GOTO 3199
3110 IF IO<>34 GOTO 3199
3120 IF RN<>60 THEN RE=4:GOTO 3199:ELSE RE=79:N=61
3199 GOSUB 7100:IF RE<>7 THEN RETURN ELSE PRINT:GOTO 7000
3200 IF IO<>18 THEN RE=2:GOTO 2899
3205 RE=5:IF OP(18)=-1 THEN RE=90
3210 IF OP(5)=-1 THEN OP(5)=0:OP(18)=-1:RE=73
3220 IF OP(19)=-1 THEN RE=3:OP(19)=0:OP(18)=-1
3230 GOTO 2899
3300 EN=0:IF RN=1 OR RN=10 OR RN=55 THEN N=RN+1:EN=1
3305 IF RN=62 THEN IF SP(7)=2 THEN N=72:EN=1:ELSE RE=91:GOTO 2199
3310 IF RN=31 THEN N=33:EN=1
3320 IF RN=51 THEN N=70:EN=1
3330 IF EN=0 THEN RE=58:GOSUB 7100:ELSE GOSUB 7000
3340 RETURN
3400 LE=0:IF RN=2 OR RN=11 OR RN=56 THEN N=RN-1:LE=1
3410 IF RN=33 THEN N=31:LE=1
3420 IF RN=70 THEN N=51:LE=1
3425 IF RN=72 THEN N=62:LE=1
3430 IF LE=0 THEN RE=59:GOSUB 7100:ELSE GOSUB 7000
3440 RETURN
7000 IF ((RN=43 AND N=44) OR (RN=44 AND N=43)) AND SP(8)=0 THEN RE=27:GOSUB 7100:N=RN:RETURN
7001 IF ((RN=27 AND N=28) OR (RN=28 AND N=27)) AND SP(9)=0 THEN RE=42:GOSUB 7100:N=RN:RETURN
7002 IF RN=61 AND N<>61 AND IV=1 AND SP(5)=0 THEN RE=64:GOSUB 7100:N=RN:RETURN
7003 IF RN=67 AND N=71 AND SP(5)=0 THEN RE=1:GOSUB 7100:N=RN:RETURN
7004 SR=0:IF ((N>11 AND N<>15 AND N<30) OR (N>32 AND N<39)) THEN SR=1
7005 IF SR=0 GOTO 7009
7006 IF SP(2)=1 AND (OP(8)=-1 OR OP(8)=N) GOTO 7009:ELSE RE=15:GOSUB 7100:IF SP(13)=0 THEN SP(13)=1
7007 RN=N:N=0:RETURN
7009 IF FT(N)=0 THEN NF$="SFALDES.0" ELSE NF$="SFASDES.0"
7010 OPEN"R",#1,NF$:FIELD#1,128 AS DE$:GET#1,N:CLOSE#1:SP(13)=0
7015 FOR X=1 TO 128:IF MID$(DE$,X,10)=STRING$(10,32) GOTO 7040
7030 PRINT MID$(DE$,X,1);:NEXT X
7040 PRINT:RN=N:FT(N)=0:N=0:IF RN=41 AND VO=0 THEN RE=55:PRINT:GOSUB 7100:VO=1
7050 FOR X=0 TO 29:IF OP(X)=RN AND X<>21 THEN PRINT:PRINT LO$(X)
7060 NEXT X:RETURN
7100 OPEN"R",#1,"SFARESP.0":FIELD#1,128 AS R$:GET#1,RE:RE$=R$:CLOSE#1:FOR X=1 TO 128:IF MID$(RE$,X,12)=STRING$(12,32) GOTO 7110:ELSE PRINT MID$(RE$,X,1);:NEXT X
7110 PRINT:RETURN
7200 DI=DI+1:IF DI=3 THEN RE=49:PRINT:GOSUB 7100:GOTO 7300
7205 PRINT:INPUT"Do you want another chance";QU$:IF LEFT$(QU$,1)<>"Y" GOTO 7300
7210 IN=0:PRINT:RE=DI+45:GOSUB 7100:FOR X=0 TO 18:IF OP(X)=-1 THEN OP(X)=INT(RND*15)
7220 NEXT X:OP(8)=2:OP(17)=6:OP(12)=42:N=1:SP(2)=0:SP(8)=0:SP(14)=0:SC=0:PRINT:GOSUB 7000:RETURN
7300 PRINT:GOSUB 600:RE=50:IF PT>7 THEN RE=51
7320 IF PT>35 THEN RE=52
7330 IF PT>79 THEN RE=53
7340 IF PT=90 THEN RE=54
7350 PRINT:GOSUB 7100:PRINT:END
7400 IF SC=0 THEN RETURN
7410 IF OP(21)=0 THEN OP(21)=INT(RND*35)
7420 IF OP(21)>RN THEN OP(21)=OP(21)-1
7425 IF OP(21)<RN THEN OP(21)=OP(21)+1
7430 IF OP(21)<>RN THEN RETURN
7440 PRINT:PRINT LO$(21):RA=RND+(IN*.01):IF RA>.7 THEN PRINT:PRINT"He throws a small knife at you!":PRINT:IF RA>.9 THEN PRINT"It gets you!":GOTO 7200:ELSE PRINT"It misses you!"
7450 RETURN
8000 'PRINT @ LOOKALIKE
8010 YPA=INT(PA/64):XPA=PA MOD 64
8020 PRINT CHR$(27)"="CHR$(32+YPA)CHR$(32+XPA);
8030 RETURN
«eof»