1 REM************************** 2 REM* * 3 REM* NOSTROMO * 4 REM* * 5 REM* Copyright 1982 ASCII * 6 REM* * 7 REM* by HIROMI OHBA * 8 REM* * 9 REM************************** 10 EXEC&HE164 80 CLEAR300,&HEFFF:COLOR1:SCREEN 2:CONSOLE,,0,0 90 GOTO 5000 100 REM **** start 110 GOSUB8100:GOSUB8130 120 POKE&HF700,&H3A 180 GOSUB 1000 190 T=TIME 200 EXEC&HF500:EXEC&HF7D0 220 SOUND 7,60 230 IF PEEK(&HF80F)=1 THEN SOUND7,55 240 SOUND 13,9 250 IF PEEK(&HF80B)=1 THEN GOTO 800 260 IF PEEK(&HF802)=22 THEN GOSUB 600:IF PX=4 THEN PX=0:GOTO 3000 270 TT=TIME-T:TL=300-INT(TT/1000) 280 IF TL<0 THEN GOTO 400 290 LOCATE28,11:PRINT RIGHT$(" "+STR$(TL),3) 300 GOTO 200 400 REM**** TIME OVER 410 LOCATE28,11:PRINT" 0"; 415 LOCATE3,8:PRINT" T I M E O V E R" 420 PLAY"V13L12","V13L12" 430 PLAY"O6CO5BA+AG+GF+FED+DC+C","O6C+CO5BA+AG+GF+FED+DC+" 440 PLAY"L4","L4" 450 FOR I=1 TO 600:NEXT 580 GOTO 9000 599 REM ***** point 600 LOCATEPEEK(&HF800)+1,PEEK(&HF801)+2:PRINT"@"; 610 IF PEEK(&HF806)=0 THEN RETURN 615 GOSUB 7300 620 PX=0:FOR I=0 TO 3 630 P(I)=PEEK(&HF807+I) 635 POKE&HF807+I,0 640 PS(I)=PS(I)+P(I) 650 LOCATE28,5+I 655 COLOR1 660 IF PS(I)>PM THEN COLOR4:PX=PX+1 670 PRINTRIGHT$(STR$(PS(I)),1):COLOR1:LOCATE30,5+I:PRINT"0" 680 SC=SC+P(I)*(10+I*5) 690 NEXT 700 LOCATE26,2:PRINT RIGHT$(" "+STR$(SC),5) 710 POKE&HF806,0 730 RETURN 800 REM·Þ¬ 810 SOUND 4,70:SOUND 5,0 820 SOUND 2,0:SOUND 3,15 830 SOUND 9,15:SOUND10,15 840 SOUND 7,57 845 LOCATEPEEK(&HF800)+1,PEEK(&HF801)+2 850 FOR I=1TO 8 855 COLOR4:PRINT"@";CHR$(29); 860 SOUND 3,15 870 FOR J=0 TO 50:NEXT 875 COLOR2:PRINT"@";CHR$(29); 880 SOUND 3,13 890 FOR J=0 TO 50:NEXT 895 NEXT 896 GOSUB 7100 900 CR=CR-1 910 IF CR=0 THEN GOTO 970 915 COLOR1:PRINT" " 920 LOCATE 26,14 925 COLOR 4 930 FOR I=1 TO 4-CR:PRINT" ";:NEXT 935 COLOR 1 940 POKE&HF802,22:POKE&HF803,9 950 GOSUB 1390 955 POKE&HF806,0:POKE&HF807,0:POKE&HF808,0:POKE&HF809,0:POKE&HF80A,0 956 IF PEEK(&HF700)=&HC9 THEN POKE&HF700,&H3A:RETURN 957 IF H=1 THEN SS=SS-1:GOSUB 1000:T=T-100000 960 GOTO 200 970 LOCATE3,8:PRINT"G A M E O V E R" 975 SOUND 7,63 980 GOTO 9000 1000 CLS:PRINT " NOSTROMO "; 1005 SS=SS+1:COLOR4:PRINTSS;:COLOR1:PRINT"-";:COLOR3:PRINTPM+1:COLOR1 1006 FOR I=0 TO 3:PS(I)=0:NEXT 1010 PRINT" " 1020 PRINT" " 1030 PRINT" " 1035 FOR I=1 TO 3 1040 PRINT" " 1045 NEXT 1050 PRINT" " 1055 PRINT" " 1060 PRINT" " 1070 PRINT" " 1080 PRINT" " 1090 PRINT" " 1100 PRINT" " 1110 PRINT" " 1120 PRINT" "; 1130 FOR X=3 TO 18 STEP5 1140 FOR Y=4 TO 10 STEP6 1150 A=RND(1)*2:B=RND(1)*3 1160 LOCATEX+A,Y+B:PRINT" "; 1170 A=INT(RND(1)*2):B=INT(RND(1)*3) 1180 LINE((X+A)*8,(Y+B)*12)-((X+A+1)*8-1,(Y+B+1)*12-1),7,B 1190 A=INT(RND(1)*2):B=INT(RND(1)*3) 1200 LINE((X+A)*8,(Y+B)*12)-((X+A+1)*8-1,(Y+B+1)*12-1),7,B 1210 NEXT Y:NEXT X 1211 LINE(0,12)-(183,191),5,B 1212 LINE(4,16)-(179,187),5,B 1213 LINE(4,22)-(179,183),5,B 1214 LINE(183,128)-(198,147),4,B 1216 LOCATE22,11:PRINT" "; 1220 COLOR3:LOCATE26,1:PRINT"SCORE"; 1221 COLOR1:LOCATE26,2:PRINT RIGHT$(" "+STR$(SC),5); 1230 LOCATE26,5:PRINT"" 1240 LOCATE26,6:PRINT"" 1250 LOCATE26,7:PRINT"" 1260 LOCATE26,8:PRINT"" 1270 FOR I=1 TO 4 1280 LOCATE28,I+4:COLOR1:PRINT"0";:COLOR3:PRINT"-";:COLOR1:PRINT"0" 1290 NEXT 1300 LOCATE 28,10:COLOR3:PRINT"TIME" 1310 LOCATE26,11:PRINT"±Ä " 1320 LINE(200,0)-(200,191),2 1330 LINE(204,0)-(204,191),2 1340 LINE(209,110)-(256,110),7 1350 SOUND 1,2 1360 LINE(209,40)-(255,40),3 1370 LINE(209,151)-(255,151),1 1380 COLOR4:LOCATE26,14:PRINT" "; 1381 IF CR=4 THEN GOTO 1390 1382 LOCATE26,14:FOR I=1 TO 4-CR:PRINT" ";:NEXT 1390 COLOR1 1490 SOUND 0,128:SOUND 6,8:SOUND 1,2:SOUND 11,0:SOUND 12,12 1540 SOUND 8,16:SOUND 2,16:SOUND 3,2:SOUND 9,16:RETURN 2000 REM*** TIME TRIAL 2010 GOSUB 1000 2020 GOSUB8100:GOSUB8130 2030 POKE&HF800,10:POKE&HF801,6 2045 T=TIME 2050 POKE&HF700,&HC9 2060 EXEC&HF500:EXEC&HF7D0:SOUND 7,60 2090 IF PEEK(&HF80F)=1 THEN SOUND7,55 2100 SOUND 13,9 2110 IF PEEK(&HF80B)=1 THEN GOTO800 2120 IF PEEK(&HF802)=22 THEN GOSUB 600:IF PX=4 THEN PX=0:GOTO 2500 2130 TT=TIME-T:TL=100-INT(TT/1000) 2140 LOCATE28,11:PRINT RIGHT$(" "+STR$(TL),3) 2150 IF TL<0 THEN GOTO 2400 2160 GOTO 2060 2400 SOUND7,62:FOR I=1 TO 16 2410 LOCATE3+I,8 2420 PR$=MID$("T I M E O V E R",I,1) 2425 PRINTPR$:IF PR$=" " THEN GOTO 2435 2430 PLAY"L12V11N"+STR$(-I+50) 2435 FOR J=1 TO40:NEXT 2440 NEXT 2445 POKE&HF700,&H3A 2450 LOCATE7,9:COLOR4:PRINT"SORRY NO BONUS";:COLOR1 2460 FOR I=1 TO 1000:NEXT:RETURN 2500 REM********* 2505 POKE&HF700,&H3A 2530 FOR I=0 TO TL 2540 SC=SC+1:LOCATE26,2:PRINT RIGHT$(" "+STR$(SC),5) 2550 LOCATE28,11:PRINT RIGHT$(" "+STR$(TL-I),3) 2555 PLAY"L20SO5c" 2560 NEXT 2570 PM=PM-1 3000 REM**** next 3050 GOSUB 7200 3100 PM=PM+1:IF PM>6 THEN PM=6 3110 FOR I=0 TO 3 3120 PS(I)=0 3130 NEXT 3140 RETURN 4000 REM***** demo1 4010 CLS 4020 LINE(0,0)-(72,72),5 4030 LINE(0,192)-(72,116),5 4040 LINE(72,72)-(72,116),5 4050 LINE(144,72)-(216,0),5 4060 LINE(144,116)-(216,192),5 4070 LINE(144,116)-(144,72),5 4080 LINE(72,84)-(144,84),5 4090 LINE(72,108)-(144,108),5 4100 PLAY"v11l1o3c":FOR I=1 TO 500:NEXT 4110 CLS 4120 LINE(0,0)-(48,48),5 4130 LINE(0,192)-(48,140),5 4140 LINE(48,48)-(48,140),5 4150 LINE(168,48)-(216,0),5 4160 LINE(168,140)-(216,192),5 4170 LINE(168,140)-(168,48),5 4180 LINE(48,68)-(168,68),5 4190 LINE(48,120)-(168,120),5 4200 PLAY"v11l1o2b.":FOR I=1 TO 500:NEXT 4500 A$=CHR$(64)+CHR$(29) 4510 B$=A$+CHR$(30) 4520 C$=A$+CHR$(31) 4530 D$=A$+CHR$(29) 4540 E$=A$+CHR$(28) 4545 F$=C$+CHR$(29) 4550 A$=B$+B$+CHR$(28)+E$+E$+E$+E$+E$+E$+CHR$(31)+C$+C$+C$+C$+F$ 4560 A$=A$+D$+D$+D$+D$+D$+D$+CHR$(30)+B$+CHR$(28)+E$+E$+E$+CHR$(31)+E$ 4565 LOCATE9,8 4570 FOR I=1 TO 78 4580 PRINTMID$(A$,I,1); 4590 FOR J=1 TO 5:NEXT 4600 NEXT 4700 SOUND 4,70:SOUND 5,0 4710 SOUND 2,0:SOUND 3,15 4720 SOUND 9,15:SOUND10,15 4730 SOUND 7,57 4750 FOR I=1TO 8 4760 COLOR3:LOCATE9,8:PRINTA$ 4770 SOUND 3,15 4780 FOR J=0 TO 50:NEXT 4790 COLOR1:LOCATE9,8:PRINTA$ 4800 SOUND 3,13 4810 FOR J=0 TO 50:NEXT 4820 NEXT:SOUND7,60 4830 PLAY"l3o6v11d+dc+c" 4840 FORI=1 TO 12 4850 LOCATE8,14:PRINTLEFT$("˪ª ´²Ø±ÝÀÞ!",I);:FOR J=1 TO 20:NEXT 4860 NEXT 4865 COLOR3 4870 FORI=1 TO 12 4880 LOCATE8,14:PRINTLEFT$("˪ª ´²Ø±ÝÀÞ!",I);:FOR J=1 TO 20:NEXT 4890 NEXT 4900 RETURN 4999 END 5000 REM** 5005 POKE&HF5E5,&HE3:PM=1:CR=4:SS=0 5006 GOSUB 6700:EE=0 5010 EXEC&HF5B8 5020 ON PEEK(&HF5E7) GOSUB 100,2000,4000,6000,6500,8800,6000,8800 5025 IF EE=1 THEN GOTO 5000 5030 GOTO 5010 6000 CLS:FOR I=0 TO 15:PRINT" "; 6001 NEXT 6005 LOCATE5,7:PRINT"@ @ @ @ @ @ @ @ @ @" 6010 FOR I=1 TO 20 6020 LOCATE5,7:PRINTLEFT$("T I M E T R I A L @",I);:FORJ=1TO50:NEXT 6030 NEXT 6040 A$="V10L4T120" 6050 PLAYA$,A$:A$="O6C16C+16D16D+16" 6060 PLAY"O4CC+DD+EF",A$+A$+A$+A$+A$+A$ 6070 PLAY"F+GG+AA+B",A$+A$+A$+A$+A$+A$ 6075 PLAY"O5CCCC",A$+A$+"CC" 6076 FOR I=1 TO 2500:NEXT 6080 RETURN 6400 PLAY"s9m5000" 6410 A$=MID$("CDEFGAB",RND(1)*7+1,1):PLAYA$+"16":RETURN 6500 CLS 6510 POKE&HF4F1,&HC2:POKE&HF4F0,135:EXEC&HF4E0 6520 FORI=1 TO 5 6530 POKE&HF5A8,&H62:EXEC&HF5A4 6540 POKE&HF594,INT(RND(1)*4)*&H40:EXEC&HF590:GOSUB6400 6560 POKE&HF5A8,&H60:EXEC&HF5A4 6570 POKE&HF594,INT(RND(1)*4)*&H40:EXEC&HF590:GOSUB6400 6590 NEXT 6595 PLAY"L12CC+CDCD+CECFCECD+CDCCCCL4":FOR I=1 TO 600:NEXT 6600 POKE&HF53B,&H3A:POKE&HF53C,&H02:PM=1 6610 RETURN 6700 POKE&HF53B,&H18:POKE&HF53C,&H2C 6710 RETURN 7000 REM**** sound 7100 REMË´ªª 7110 A$="L6O3v8a.v9a.v10a.v11a." 7120 B$="L6O3v8e.v9f.v10g.v11f." 7130 C$="L12O4v8ccev9ddfv10eegv11ffd" 7135 POKE&HFB8F,0:POKEFB90,0:H=0:POKE&HFB90,1:POKE&HFB8F,1 7140 PLAYA$,B$,C$ 7145 FOR I=1 TO 600:IF INKEY$="h" THEN H=1 7146 NEXT 7150 GOTO 1390 7200 REM ***** ¸Ø±!!!!!!! 7205 SOUND7,56 7210 A$="L16v9gggeO5cO4bagbO5cdO4fffff" 7220 B$="L16fffgbagfddd+d+eeee" 7230 C$="L16fffO5dcO4babO5cO4bO5dccccc" 7240 E$="v9L2efge":G$="L2gfgc" 7250 F$="v9L2O4ccO3fg":H$="L2O4ccO3bg" 7260 PLAYA$+B$,E$,F$ 7270 PLAYA$+C$,G$,H$ 7275 FOR I=1 TO 500:NEXT 7280 GOTO 1390 7300 SOUND7,60 7310 A$="L16v11O5cegO6c":B$="L16v11O4gO5ceg" 7320 PLAYA$,B$:PLAYA$,B$ 7325 FOR I=1 TO 300:NEXT 7330 GOTO 1390 8000 REM **** start 8100 POKE&HF800,0:POKE&HF801,0:POKE&HF802,22:POKE&HF803,9:POKE&HF804,1 8110 POKE&HF805,0 8120 RETURN 8130 POKE&HF806,0:POKE&HF807,0:POKE&HF808,0:POKE&HF809,0:POKE&HF80A,0 8140 RETURN 8600 FORDI=1TO2:POKE&HF4F1,&HC2 8610 FOR I=128 TO 146 STEP 6 8620 POKE &HF4F0,I 8630 CLS:EXEC&HF4E0:SOUND13,9 8635 FOR J=1 TO 30:NEXT 8640 POKE &HF4F0,I-62 8650 CLS:EXEC&HF4E0 8655 FOR J=1 TO 30:NEXT 8660 POKE &HF4F0,I-60 8670 CLS:EXEC&HF4E0 8675 FOR J=1 TO 30:NEXT 8680 NEXT 8690 POKE&HF4D0,154:CLS:SOUND13,9 8695 EXEC&HF4C0:FORJ=1TO30:NEXT 8700 POKE&HF4D1,&HC2 8710 FOR I=146 TO 128 STEP-6 8720 POKE &HF4D0,I-60 8730 CLS:EXEC&HF4C0 8735 FOR J=1 TO 30:NEXT 8740 POKE &HF4D0,I-62 8750 CLS:EXEC&HF4C0 8755 FOR J=1 TO 30:NEXT 8760 POKE &HF4D0,I:SOUND13,9 8770 CLS:EXEC&HF4C0 8775 FOR J=1 TO 30:NEXT 8780 NEXT:NEXT 8799 RETURN 8800 SOUND7,&H37:SOUND8,16 8810 SOUND 12,20 8820 GOTO 8600 9000 FOR I=1 TO 1000:NEXT:COLOR3 9010 A$="Ó³²ÁÄÞ ±¿ËÞϽ¶? ±¿ÌÞÅ× 'y' ÔÒÙÅ× 'n' ¦ µ¼Ã¸ÀÞ»² " 9020 FOR I=1TO50 9030 LOCATE3,8:PRINTMID$(A$+A$,I,18);:FOR J=1 TO 10:NEXT 9040 K$=INKEY$:IF K$<>"" THEN GOTO 9070 9050 NEXT 9060 GOTO 9020 9070 IF K$="y"ORK$="Y"ORK$="Ý" THEN I=50:NEXT:EE=1:RUN 9080 IF K$="n"ORK$="N"ORK$="Ð" THEN I=50:NEXT:GOTO 9200 9090 NEXT 9200 CLS:LOCATE3,8:COLOR1:PRINT"±Ø¶ÞijºÞ»Þ²Ï¼À"