diff --git a/ksp/ksp.bas b/ksp/ksp.bas index 7c626647..45d77db2 100644 --- a/ksp/ksp.bas +++ b/ksp/ksp.bas @@ -32,7 +32,7 @@ 2000 NEXT I 2999 GET A$ 3000 AN=0:GX=0:GY=-9.8:GA=0:V=0:VX=0:VY=0:AX=0:AY=0:KR=600000 -3016 RX=0:RY=KR+10:RA=KR+10:TR=0:T=0 +3016 RX=0:RY=KR+10:RA=KR+10:TR=0:T=0:BF=0 3020 HGR:ROT=0:SCALE=2:H=0 3030 REM ** LAUNCHPAD ** 3035 PRINT:PRINT CHR$(4);"BLOAD LAUNCHPAD.HGR,A$2000" @@ -51,7 +51,7 @@ 4016 IF RR>40000 AND CQ<>1 THEN GOSUB 7700 4018 FL=FM(S)*100/SF(S) 4020 IF TR<>1 THEN GOTO 4050 -4025 IF FM(S)<0.1 THEN FM(S)=0:AX=0:AY=0:GOTO 4050 +4025 IF FM(S)<0.1 THEN FM(S)=0:BF=1:AX=0:AY=0:GOTO 4050 4030 AX=(TH(S)/TM(S))*SIN(AN):AY=(TH(S)/TM(S))*COS(AN) 4040 FM(S)=FM(S)-FF(S):TM(S)=TM(S)-FF(S) 4047 GOTO 4060 @@ -59,33 +59,29 @@ 4055 AX=0:AY=0 4060 GA=ATN(RX/RY) 4065 IF RY<0 THEN GA=GA+3.14 -4070 GY=COS(GA)*G:GX=SIN(GA)*G -4080 AY=AY+GY:AX=AX+GX -4090 ZX=VX:ZY=VY -5000 VY=ZY+AY:VX=ZX+AX -5010 V=SQR(VX*VX+VY*VY) -5012 RY=RY+0.5*(ZY+VY):RX=RX+0.5*(ZX+VX) -5018 RA=SQR(RX*RX+RY*RY) +4070 GY=COS(GA)*G:GX=SIN(GA)*G:AY=AY+GY:AX=AX+GX +4090 ZX=VX:ZY=VY:VY=ZY+AY:VX=ZX+AX:V=SQR(VX*VX+VY*VY) +5012 RY=RY+0.5*(ZY+VY):RX=RX+0.5*(ZX+VX):RA=SQR(RX*RX+RY*RY) 5020 IF RA1 THEN XDRAW 1+((S-1)*2)+TR AT 140,80 -5115 Q=PEEK(-16384):IF Q<128 THEN GOTO 6080 -6000 A$=CHR$(Q-128):POKE 49168,0 +5100 IF BF=1 THEN BF=0:A$="X":GOTO 5555 +5115 Q=PEEK(-16384):IF Q<128 THEN GOTO 6095 +5222 A$=CHR$(Q-128):POKE 49168,0 +5555 IF OM<>1 THEN XDRAW 1+((S-1)*2)+TR AT 140,80 6060 IF A$="Q" THEN END 6061 IF A$="A" THEN R=R-8:AN=AN-0.7853 6062 IF A$="D" THEN R=R+8:AN=AN+0.7853 6063 IF A$="C" THEN GOTO 8000 -6064 IF A$="Z" THEN TH=1 -6065 IF A$="V" THEN RA=RA+100 -6066 IF A$="X" THEN TH=0 -6067 IF A$="M" THEN GOTO 6300 -6068 IF A$=" " AND LN=1 THEN S=S-1:XX=PEEK(-16336) -6069 IF A$=" " AND LN=0 THEN GOSUB 7500 -6070 IF A$="E" THEN GOSUB 8100 +6064 IF A$="Z" THEN TR=1 +6066 IF A$="X" THEN TR=0 +6067 IF A$="M" AND OM=1 THEN OM=0:CQ=-1:GOTO 4000 +6068 IF A$="M" AND OM=0 THEN OM=1:HOME:PRINT:PRINT CHR$(4);"BLOAD GLOBE.HGR,A$2000":GOTO 6095 +6070 IF A$=" " AND LN=1 THEN S=S-1:XX=PEEK(-16336) +6071 IF A$=" " AND LN=0 THEN GOSUB 7500 +6072 IF A$="E" THEN GOSUB 8100 6073 IF R=64 THEN R=0:AN=0 6074 IF R=-8 THEN R=56 6075 IF S<1 THEN S=1 @@ -94,34 +90,6 @@ 6095 IF OM=1 THEN HX=INT(RX/25000)+140:HY=INT(-RY/25000)+85:HCOLOR=3:HPLOT HX,HY 6118 T=T+1 6200 GOTO 4000 -6300 IF OM=1 THEN OM=0:CQ=-1:GOTO 4000 -6310 OM=1:HOME:PRINT:PRINT CHR$(4);"BLOAD GLOBE.HGR,A$2000":GOTO 6095 -7200 DATA 6,0,14,0,42,0,77,0,113,0 -7201 DATA 156,0,200,0,219,36,36,44,44,44 -7202 DATA 53,53,53,54,54,54,54,63,63,45 -7203 DATA 46,46,62,63,63,39,37,37,63,36 -7204 DATA 36,0,219,36,36,44,44,44,53,53 -7205 DATA 53,54,54,54,54,63,63,45,46,46 -7206 DATA 62,63,127,73,62,54,62,39,36,39 -7207 DATA 39,37,37,63,36,36,0,219,36,36 -7208 DATA 36,36,44,44,44,53,53,53,54,54 -7209 DATA 54,54,54,54,54,54,63,63,45,46 -7210 DATA 46,62,63,63,39,37,37,63,36,36 -7211 DATA 36,36,0,219,36,36,36,36,44,44 -7212 DATA 44,53,53,53,54,54,54,54,54,54 -7213 DATA 54,54,63,63,45,46,46,62,63,127 -7214 DATA 73,62,54,62,39,36,39,39,37,37 -7215 DATA 63,36,36,36,36,0,219,36,36,36 -7216 DATA 36,36,36,44,44,44,53,53,53,54 -7217 DATA 54,54,54,54,54,54,54,54,54,54 -7218 DATA 54,63,63,45,46,46,62,63,63,39 -7219 DATA 37,37,63,36,36,36,36,36,36,0 -7220 DATA 219,36,36,36,36,36,36,44,44,44 -7221 DATA 53,53,53,54,54,54,54,54,54,54 -7222 DATA 54,54,54,54,54,63,63,45,46,46 -7223 DATA 62,63,127,73,62,54,62,39,36,39 -7224 DATA 39,37,37,63,36,36,36,36,36,36 -7225 DATA 0 7500 REM *** LAUNCH *** 7510 HCOLOR=0:HPLOT 110,110 TO 110,60:HPLOT TO 130,60: HPLOT 110,70 TO 130,70 7520 XX=PEEK(-16336) @@ -141,7 +109,7 @@ 8000 REM *** CRASH *** 8010 SCALE=3 8015 GOSUB 8200 -8020 FOR I=0 TO 64 STEP 8: ROT=I:XDRAW 1+((S-1)*2)+TH AT 140,80: XX=PEEK(-16336):NEXT I +8020 FOR I=0 TO 64 STEP 8: ROT=I:XDRAW 1+((S-1)*2)+TR AT 140,80: XX=PEEK(-16336):NEXT I 8030 FOR I=1 TO 50 8040 X=INT(RND(1)*80)+1:Y=INT(RND(1)*80)+1 8050 C=INT(RND(1)*7)+1:HCOLOR=C @@ -167,3 +135,29 @@ 8225 HCOLOR=1:HPLOT 259,155 TO 271,155:HPLOT 259,156 TO 271,156 8226 HCOLOR=0:HPLOT 259,155 TO 271,155:HPLOT 261,156 TO 269,156 8227 RETURN +9200 DATA 6,0,14,0,42,0,77,0,113,0 +9201 DATA 156,0,200,0,219,36,36,44,44,44 +9202 DATA 53,53,53,54,54,54,54,63,63,45 +9203 DATA 46,46,62,63,63,39,37,37,63,36 +9204 DATA 36,0,219,36,36,44,44,44,53,53 +9205 DATA 53,54,54,54,54,63,63,45,46,46 +9206 DATA 62,63,127,73,62,54,62,39,36,39 +9207 DATA 39,37,37,63,36,36,0,219,36,36 +9208 DATA 36,36,44,44,44,53,53,53,54,54 +9209 DATA 54,54,54,54,54,54,63,63,45,46 +9210 DATA 46,62,63,63,39,37,37,63,36,36 +9211 DATA 36,36,0,219,36,36,36,36,44,44 +9212 DATA 44,53,53,53,54,54,54,54,54,54 +9213 DATA 54,54,63,63,45,46,46,62,63,127 +9214 DATA 73,62,54,62,39,36,39,39,37,37 +9215 DATA 63,36,36,36,36,0,219,36,36,36 +9216 DATA 36,36,36,44,44,44,53,53,53,54 +9217 DATA 54,54,54,54,54,54,54,54,54,54 +9218 DATA 54,63,63,45,46,46,62,63,63,39 +9219 DATA 37,37,63,36,36,36,36,36,36,0 +9220 DATA 219,36,36,36,36,36,36,44,44,44 +9221 DATA 53,53,53,54,54,54,54,54,54,54 +9222 DATA 54,54,54,54,54,63,63,45,46,46 +9223 DATA 62,63,127,73,62,54,62,39,36,39 +9224 DATA 39,37,37,63,36,36,36,36,36,36 +9225 DATA 0