Permalink
Fetching contributors…
Cannot retrieve contributors at this time
323 lines (322 sloc) 12 KB
0 GOSUB9500:GOTO4999
1 IFK(PEEK(L+SGN(X-A)))THEND=SGN(X-A):I=D:J=.:RETURN
2 RETURN
3 IFK(PEEK(L+SGN(Y-B)*32))THEND=SGN(Y-B)*32:J=SGN(D):I=.:RETURN
4 RETURN
5 IFK(PEEK(L+D))=0THENI=-I:J=-J:D=-D:RETURN
6 RETURN
7 V=-1:K=PEEK(P-1):IFP(K)THENPOKEP,O:X=X-1:P=P+V:POKEP,79:O=K:IFP(K)>1THEN50
8 RETURN
9 V=1:K=PEEK(P+V):IFP(K)THENPOKEP,O:X=X+1:P=P+V:POKEP,79:O=K:IFP(K)>1THEN50
10 RETURN
11 V=-32:K=PEEK(P+V):IFP(K)THENPOKEP,O:Y=Y-1:P=P+V:POKEP,79:O=K:IFP(K)>1THEN50
12 RETURN
13 V=32:K=PEEK(P+V):IFP(K)THENPOKEP,O:Y=Y+1:P=P+V:POKEP,79:O=K:IFP(K)>1THEN50
14 RETURN
15 C=PEEK(P+V):IFC>192ANDC<207THENPOKEP+V,110:FORZZ=1TO10:NEXT:POKEP+V,C-64:RETURN
16 IFC>128ANDC<144THENPOKEP+V,110:FORZZ=1TO10:NEXT:POKEP+V,143:RETURN
17 RETURN
50 R(P(K)-1)=R(P(K)-1)+1:O=143:PRINT@190,RIGHT$(STR$(R(1)),1);:PRINT@222,RIGHT$(STR$(R(2)),1);
51 PRINT@254,RIGHT$(STR$(R(3)),1);:PRINT@286,RIGHT$(STR$(R(4)),1);:IFR(P(K)-1)+S(P(K)-2)>PMTHENQ=1
52 RETURN
77 PRINTM$;:C=((PEEK(17024)AND1)*256+PEEK(17025))-1+M:FORZ=C-LEN(M$)+1TOC:POKEZ,PEEK(Z)-64:NEXT:RETURN
100 REM **** start
110 GOSUB8100:GOSUB8130:E=64
120 U=120:EE=EE+1
180 GOSUB1000:POKEP,79:POKEP-1,143:POKEL,96
190 T=USR(0)
200 ONK(PEEK(2)ANDPEEK(W))GOSUB7,9,11,13,15:ONRND(5)GOSUB1,3,5:IFK(PEEK(L+D))THENPOKEL,96:L=L+D:A=A+I:B=B+J:POKEL,E
250 IFX=AANDY=BTHEN800
260 IFX=23THENGOSUB600:IFPX=4THENPX=.:GOTO3000
270 T=U-INT(USR(1)/60):PRINT@379,T;:IFT>.THEN200
280 GOTO400
300 REM **** invisible
310 GOSUB8100:GOSUB8130:N=RND(6)+6:E=64:U=180:EE=EE+1
320 GOSUB1000:POKEP,79:POKEP-1,143:POKEL,96
330 T=USR(0)
340 ONK(PEEK(2)ANDPEEK(W))GOSUB7,9,11,13,15:ONRND(5)GOSUB1,3,5:IFK(PEEK(L+D))THENPOKEL,96:L=L+D:A=A+I:B=B+J:POKEL,E
350 IFX=AANDY=BTHENE=64:GOTO800
360 IFX=23THENGOSUB600:IFPX=4THENPX=.:GOTO3000
370 T=U-INT(USR(1)/60):PRINT@379,T;:N=N-1:IFT>.ANDNTHEN340
380 IFN=.THENN=RND(6)+6:E=143:POKEL,E:ONRND(2)GOTO340:E=64:POKEL,E:GOTO340
390 IFT>.THEN340
400 REM **** time over
410 PRINT@28+11*32," 0";
415 PRINT@3+8*32," T I M E O V E R";
420 POKE8,0
430 M$="J2B2O2A2G2U2T2F2E2R2D2C2Q2C2J2J2B2O2A2U2G2T2F2E2R2D2Q2":GOSUB588
450 FORZ=1TO600:NEXT
580 POKE8,8:CR=0:RETURN
588 FORC=1TOLEN(M$)STEP2:SOUNDN(ASC(MID$(M$,C,1))-64),ASC(MID$(M$,C+1,1))-48:NEXT:RETURN
599 REM **** point
600 POKEP-1,143:E=64:POKEL,E
610 IFQ=.THENRETURN
615 GOSUB7300
620 PX=0:FORZZ=0TO3:P(ZZ)=R(ZZ+1):R(ZZ+1)=0:S(ZZ)=S(ZZ)+P(ZZ):PRINT@28+(5+ZZ)*32,;
660 IFS(ZZ)>PMTHENPX=PX+1:M$=RIGHT$(STR$(S(ZZ)),1):GOSUB77:PRINT@30+(5+ZZ)*32,"0";:GOTO680
670 PRINTRIGHT$(STR$(S(ZZ)),1);:PRINT@30+(5+ZZ)*32,"0";
680 CC=P(ZZ)*(10+(3-ZZ)*5):SC=SC+CC:AC=AC+CC
690 NEXT
700 PRINT@26+2*32,RIGHT$(" "+STR$(SC),5);
710 Q=0
730 RETURN
800 REM **** alien got you
810 POKE8,0:SOUND4,1:SOUND5,1
820 SOUND2,1:SOUND3,1
830 SOUND9,1:SOUND10,1
840 SOUND7,1
845 PRINT@A+B*32,;
850 FORZZ=1TO8
855 M$="@":GOSUB77
860 SOUND3,1
870 FORCC=0TO45:NEXT:PRINTCHR$(8);
875 PRINT"@";
880 SOUND3,1
890 FORCC=0TO45:NEXT:PRINTCHR$(8);
895 NEXT:POKE8,8:PRINT"@";
896 GOSUB7100
900 CR=CR-1
910 IFCR=0THEN970
920 PRINT@26+14*32,;
930 FORZZ=1TO4-CR:M$=" ":GOSUB77:NEXT
950 IFO=143THENPOKEL,143:GOSUB8110:IFE=143THENPOKEP,96
955 X=23:Y=11:O=143:Q=0:P=X+Y*32+M:POKEP,79:POKEP-1,143
956 IFU=60THENRETURN
957 IFH=1THENSS=SS-1:SC=SC-AC:GOSUB1000:POKEP,79:POKEP-1,143:POKEL,96:H=0:T=USR(0)
960 IFU=120THEN200
965 GOTO340
970 PRINT@3+8*32,"G A M E O V E R";
975 POKE8,0:SOUND7,10:POKE8,8
980 RETURN
1000 CLS:FORCC=0TO3:S(CC)=0:R(CC+1)=0:NEXT:AC=0
1010 PRINT" Ÿ";:M$=RIGHT$(" "+STR$(HS),5)+" ":GOSUB77
1015 PRINT"ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Ÿ ";
1020 PRINT"Ï Ï Ÿ ";
1025 PRINT"Ï ÁÁÁ ÁÁÁ ÁÁÁ ÁÁÁÂ Ï Ÿ¯¯¯¯¯¯";
1030 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â Ï Ÿ ";
1035 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â Ï Ÿ ";
1040 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â Ï Ÿ ";
1045 PRINT"Ï ÄÄÄÈ ÄÄÄÈ ÄÄÄÈ ÄÄÄÈ Ï Ÿ ";
1050 PRINT"Ï Ï Ÿ ";
1055 PRINT"Ï ÁÁÁÂ ÁÁÁÂ ÁÁÁÂ ÁÁÁÂ Ï Ÿïïïïïï";
1060 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â ¿¿¿Ÿ ";
1065 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â ¿Ÿ ";
1070 PRINT"Ï Á**Â Á^^Â Á++Â Á"CHR$(95)CHR$(95)"Â ¿¿¿Ÿ ";
1075 PRINT"Ï ÄÄÄÈ ÄÄÄÈ ÄÄÄÈ ÄÄÄÈ Ï Ÿßßßßßß";
1080 PRINT"Ï Ï Ÿ ";
1085 PRINT"ÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏÏ Ÿ ";
1090 PRINT@0," NOSTROMO ";:SS=SS+1:M$=STR$(SS):GOSUB77:PRINT"-";:PRINTPM+1;
1130 FORCC=3TO18STEP5
1140 FORZZ=4TO10STEP6
1150 C=RND(2)-1:Z=RND(3)-1
1160 PRINT@CC+C+(ZZ+Z)*32,CHR$(143);
1170 C=RND(2)-1:Z=RND(3)-1
1180 PRINT@CC+C+(ZZ+Z)*32,CHR$(239);
1190 C=RND(2)-1:Z=RND(3)-1
1200 PRINT@CC+C+(ZZ+Z)*32,CHR$(239);
1210 NEXT:NEXT
1216 PRINT@22+11*32," ";
1220 PRINT@26+1*32,"SCORE";
1221 PRINT@26+2*32,RIGHT$(" "+STR$(SC),5);
1230 PRINT@26+5*32,"*";
1240 PRINT@26+6*32,"^";
1250 PRINT@26+7*32,"+";
1260 PRINT@26+8*32,CHR$(95);
1270 FORCC=1TO4
1280 PRINT@28+(CC+4)*32,:PRINT"0-0";
1290 NEXT
1300 PRINT@28+10*32,:PRINT"TIME";
1310 PRINT@26+11*32,:PRINT" ";
1380 PRINT@26+14*32,;:M$=" O O O":GOSUB77
1381 IFCR=4THEN1390
1382 PRINT@26+14*32,:FORCC=1TO4-CR:M$=" ":GOSUB77:NEXT
1389 REM **** restore timer screen
1390 POKE49151,0:POKE8,8:RETURN
2000 REM **** time trial
2010 GOSUB1000:POKEP,79:POKEP-1,143
2020 GOSUB8100:GOSUB8130
2030 A=11:B=8:L=A+B*32+M:I=0:J=0:D=0:POKEL,64:P(64)=1
2040 T=USR(0):U=60:EE=EE+1
2060 ONK(PEEK(2)ANDPEEK(W))GOSUB7,9,11,13,15
2110 IFX=AANDY=BTHEN800
2120 IFX=23THENGOSUB600:IFPX=4THENPX=0:P(64)=.:GOTO2500
2130 T=U-INT(USR(1)/60):PRINT@379,T;:IFT>.THEN2060
2400 P(64)=0:POKE8,0:FORCC=1TO16
2410 PRINT@3+CC+8*32,;
2420 PR$=MID$("T I M E O V E R",CC,1)
2425 PRINTPR$;:IFPR$=" "THEN2435
2430 SOUNDCC,1
2435 FORZZ=1TO75:NEXT
2440 NEXT:POKE8,8
2450 PRINT@7+9*32,;:M$="SORRY NO BONUS":GOSUB77
2460 FORZ=1TO1500:NEXT:RETURN
2500 REM **** time trial bonus
2505 POKE8,0
2530 FORCC=0TOT
2540 SC=SC+2:PRINT@26+2*32,RIGHT$(" "+STR$(SC),5)
2550 PRINT@28+11*32,RIGHT$(" "+STR$(T-CC),3):SOUND102,1
2560 NEXT:POKE8,8
2570 PM=PM-1
3000 REM **** next
3050 GOSUB7200
3100 PM=PM+1:IFPM>5THENPM=5
3110 FORCC=0TO3
3120 S(CC)=0
3130 NEXT
3140 RETURN
4000 REM **** demo1
4010 CLS0:POKE49151,28:EE=EE+1
4020 PRINT"¤‚€€€€€€€€€€€€€€€€€€€€€€€€† €€€€";
4021 PRINT"€‰€€€€€€€€€€€€€€€€€€€€€˜€€€€€€";
4022 PRINT"€€€¤‚€€€€€€€€€€€€€€€€€€† €€€€€€€";
4023 PRINT"€€€€‰€€€€€€€€€€€€€€€˜€€€€€€€€€";
4024 PRINT"€€€€€€¤‚€€€€€€€€€€€€† €€€€€€€€€€";
4025 PRINT"€€€€€€€‰€€€€€€€€€˜€€€€€€€€€€€€";
4026 PRINT"€€€€€€€€€ª€€€€€€€€ª€€€€€€€€€€€€€";
4027 PRINT"€€€€€€€€€º°°°°°°°°ª€€€€€€€€€€€€€";
4028 PRINT"€€€€€€€€€ª€€€€€€€€ª€€€€€€€€€€€€€";
4029 PRINT"€€€€€€€€€º°°°°°°°°ª€€€€€€€€€€€€€";
4030 PRINT"€€€€€€€˜€€€€€€€€€‰€€€€€€€€€€€€";
4031 PRINT"€€€€€€† €€€€€€€€€€€€¤‚€€€€€€€€€€";
4032 PRINT"€€€€˜€€€€€€€€€€€€€€€‰€€€€€€€€€";
4033 PRINT"€€€† €€€€€€€€€€€€€€€€€€¤‚€€€€€€€";
4034 PRINT"€˜€€€€€€€€€€€€€€€€€€€€€‰€€€€€€";
4035 PRINT"† €€€€€€€€€€€€€€€€€€€€€€€€¤‚€€€";
4090 FORZ=1TO1500:NEXT:CLS0
4101 PRINT"¤‚€€€€€€€€€€€€€€€€€€€€€€€€† €€€€";
4102 PRINT"€‰€€€€€€€€€€€€€€€€€€€€€˜€€€€€€";
4103 PRINT"€€€¤‚€€€€€€€€€€€€€€€€€€† €€€€€€€";
4104 PRINT"€€€€‰€€€€€€€€€€€€€€€˜€€€€€€€€€";
4105 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4106 PRINT"€€€€€€«ƒƒƒƒƒƒƒƒƒƒƒƒƒƒª€€€€€€€€€€";
4107 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4108 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4109 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4110 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4111 PRINT"€€€€€€º°°°°°°°°°°°°°°ª€€€€€€€€€€";
4112 PRINT"€€€€€€ª€€€€€€€€€€€€€€ª€€€€€€€€€€";
4113 PRINT"€€€€˜€€€€€€€€€€€€€€€‰€€€€€€€€€";
4114 PRINT"€€€† €€€€€€€€€€€€€€€€€€¤‚€€€€€€€";
4115 PRINT"€˜€€€€€€€€€€€€€€€€€€€€€‰€€€€€€";
4116 PRINT"† €€€€€€€€€€€€€€€€€€€€€€€€¤‚€€€";
4220 FORZZ=1TO1500:NEXT:FORCC=1TO10
4500 POKE16650,0:POKE16618,0:POKE16587,0:POKE16588,0:POKE16589,0:POKE16590,0
4510 POKE16591,0:POKE16592,0:POKE16625,0:POKE16657,0:POKE16689,0:POKE16721,0
4520 POKE16753,0:POKE16784,0:POKE16783,0:POKE16782,0:POKE16781,0:POKE16780,0
4530 POKE16779,0:POKE16746,0:POKE16715,0:POKE16716,0:POKE16717,0:POKE16750,0
4540 POKE16650,85:POKE16618,85:POKE16587,85:POKE16588,85:POKE16589,85:POKE16590,85
4550 POKE16591,85:POKE16592,85:POKE16625,85:POKE16657,85:POKE16689,85:POKE16721,85
4560 POKE16753,85:POKE16784,85:POKE16783,85:POKE16782,85:POKE16781,85:POKE16780,85
4570 POKE16779,85:POKE16746,85:POKE16715,85:POKE16716,85:POKE16717,85:POKE16750,85
4590 NEXT
4750 FORCC=1TO17
4850 PRINT@6+14*32,;:PRINTLEFT$("÷âõàØÁúÀÀÕÝÕûÕäÕû",CC);:FORZZ=1TO25:NEXT
4860 NEXT
4870 FORCC=1TO17
4880 PRINT@6+14*32,;:PRINTLEFT$("ÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀ",CC);:FORZZ=1TO25:NEXT
4890 NEXT:CLS0:POKE49151,0
4900 RETURN
4998 REM **** init
4999 CLS:PRINT"PLEASE WAIT..."
5000 CLEAR300:DIMX,Y,A,B,P,D,L,I,J,V,O,K,T,U,K(255),P(255),E,N,W,C,Z,Q,M$,M,N(21),PX,ZZ,CC,R(5),S(5)
5001 M=16384:W=17023:X=32768:GOSUB9300
5002 K(65)=1:K(83)=2:K(87)=3:K(90)=4:K(32)=5:K(74)=1:K(76)=2:K(73)=3:K(75)=4:K(13)=5
5003 K(96)=1:K(79)=1:P(96)=1:P(143)=1:P(106)=2:P(94)=3:P(107)=4:P(95)=5
5005 C=1:FORZ=1TO63STEP3:N(C)=VAL(MID$("073093102119134141154166176180189196200206083097111127138148160",Z,3)):C=C+1
5006 NEXT
5007 PM=1:CR=4:PX=0:SS=0:EE=1:H=0:IFSC>HSTHENHS=SC
5008 SC=0
5010 IFEE>15THENEE=7
5020 ONEEGOSUB100,100,4000,6000,2000,100,100,6000,2000,8800,300,300,6000,2000,100:IFSS=6THENPM=1
5030 IFCR>.THEN5010
5040 GOTO9000
5999 REM **** time trial intro
6000 CLS:EE=EE+1
6005 PRINT@5+7*32,"@ @ @ @ @ @ @ @ @ @"
6010 FORCC=1TO25
6020 PRINT@5+7*32,LEFT$("T I M E T R I A L @",CC);:FORZZ=1TO75:NEXT
6030 NEXT
6050 POKE8,0:K$="C1Q1D1R1"
6060 M$="C2Q2D2R2E2F2"+K$+K$+K$+K$+K$+K$:GOSUB588
6070 M$="T2G2U2A2A2O2B2"+K$+K$+K$+K$+K$+K$:GOSUB588
6075 M$="C2C2C2C2"+K$+K$+"C2C2":GOSUB588:POKE8,8:FORZZ=1TO500:NEXT
6080 GOTO1390
7100 REM **** man lost
7110 POKE8,0:M$="A1A1A1A1E2F2G2F2C2C2E2D2D2F2E2E2G2F2F2D2":GOSUB588
7140 POKE49151,64
7145 FORZZ=1TO600:IFINKEY$="H"THENH=1
7146 NEXT
7150 GOTO1390
7200 REM **** level cleared!!
7205 POKE8,0
7210 M$="G2G2G2E2J2B2A2G2B2J2K2F2F2F2F2F2F2F2F2K2J2B2A2B2J2B2K2J2J2J2J2J2":GOSUB588
7280 GOTO1390
7300 POKE8,0:M$="C1E1G1C1G1C1E1G1":GOSUB588
7330 GOTO1390
8000 REM **** start positions
8100 X=23:Y=11:Q=0:P=X+Y*32+M:O=143
8110 A=1:B=2:L=A+B*32+M:I=0:J=0:D=0:P(64)=0
8120 RETURN
8130 Q=0:R(1)=0:R(2)=0:R(3)=0:R(4)=0
8140 RETURN
8600 PRINT@3*32+11,"€€ƒƒƒ€€";:PRINT@4*32+11,"€… €€€¥€";:PRINT@5*32+11,"€•€€€€€€";
8613 PRINT@6*32+11,"€•€€€€€€";:PRINT@7*32+11,"€•€€€€€€";:PRINT@8*32+11,"€•€€‡‹€";
8616 PRINT@9*32+11,"€”‚€½Ÿž€";:PRINT@10*32+11,"€€°°°€€";:RETURN
8620 PRINT@3*32+11,"€€ÁÃÃÀ€";:PRINT@4*32+11,"€Åà€€€å€";:PRINT@5*32+11,"€Õ€€€€€€";
8624 PRINT@6*32+11,"€Õ€€€€€€";:PRINT@7*32+11,"€Õ€€€€€€";:PRINT@8*32+11,"€Õ€€ÇÏË€";
8627 PRINT@9*32+11,"€Ô€ýßÞ€";:PRINT@10*32+11,"€€Ðððð€€";:RETURN
8700 REM **** spawn
8710 CLS0:FORCC=1TO10
8720 POKE49151,28
8730 GOSUB8600
8735 FORZZ=1TO50:NEXT
8740 POKE49151,68
8750 FORZZ=1TO50:NEXT
8760 POKE49151,28
8770 GOSUB8620
8775 FORZZ=1TO50:NEXT
8780 POKE49151,68
8785 FORZZ=1TO50:NEXT
8790 NEXT:CLS0:POKE49151,0
8795 RETURN
8799 REM **** spawn sound
8800 CLS0:POKE8,0:EE=EE+1:FORCC=1TO12
8810 M$=MID$("CDEFGAB",RND(7),1):M$=M$+"1":GOSUB588:NEXT:POKE8,8
8820 GOTO8700
9000 FORZZ=1TO1500:NEXT
9010 M$=" HIT 'Y' TO PLAY AGAIN. HIT 'N' TO END GAME. "
9020 FORCC=1TO50
9030 PRINT@3+8*32,MID$(M$+M$,CC,18);:FORZZ=1TO75:NEXT
9040 K$=INKEY$:IFK$<>""THEN9070
9050 NEXT
9060 GOTO9020
9070 IFK$="Y"THENCC=50:NEXT:GOTO5007
9080 IFK$="N"THENCC=50:NEXT:GOTO9200
9090 NEXT
9200 CLS:PRINT"THANKS FOR PLAYING":END
9300 Z=16896:GOSUB9301:Z=X:GOSUB9301:EXECX:RETURN
9301 READM$:FORY=1TOLEN(M$)STEP2:POKEZ,(ASC(MID$(M$,Y,1))-65)*16+ASC(MID$(M$,Y+1,1))-65:Z=Z+1:NEXT:RETURN
9302 DATAHPAAAIDLDLDLPOECBGKGACEKCGPCCBDLGOAD
9303 DATAINCFCABAABNMALMDDKEDJFAINNALNOPNAINPPNDLLNOLMHCGAEEPFPNNPNNMPNNNMKMGJAANHOPCMHDIPPECBGIGAIJHAIAODJ
9500 CLS
9510 PRINT" UCHUU YUSOUSEN NOSTROMO"
9511 PRINT" (SPACE FREIGHTER NOSTROMO)"
9512 PRINT
9513 PRINT"FROM NEC PC-6001. THE GAME IS
9514 PRINT"CREDITED TO AKIRA TAKIGUCHI AND"
9515 PRINT"MASAKUNI MITSUHASHI ON THE WEB,"
9516 PRINT"BUT THE BASIC SOURCE IS (C) BY"
9517 PRINT"HIROMI OHBA. MC-10: JIM GERRIE"
9518 PRINT
9520 PRINT"USE: w i "
9521 PRINT" a s OR j k l"
9522 PRINT" z"
9523 PRINT" AND space TO FIRE"
9524 PRINT"WHEN SCEEN IS ORANGE h=RESTART"
9530 PRINT
9540 PRINT" HIT ANY KEY TO START";
9560 IFINKEY$=""THENX=RND(1):GOTO9560
9570 RETURN
9580 REM THANKS TO CHARLIE FOR
9590 REM TRANSLATING RUSSIAN
9600 REM COMMENTS ON THE GAME