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ºÞ»Þ²Ï¼À"