diff --git a/ksp/ksp.bas b/ksp/ksp.bas index 82ef206f..cef06fac 100644 --- a/ksp/ksp.bas +++ b/ksp/ksp.bas @@ -1,13 +1,11 @@ 7 TEXT:HOME 10 REM PRINT CHR$(4);"BLOAD GLOBE.HGR,A$2000" -20 AN$="ZURGTROYD" -90 S=3 +20 AN$="ZURGTROYD":S=3 95 G=-9.8 100 EN(1)=1:ST(1)=1:FT(1)=1 101 EN(2)=2:ST(2)=2:FT(2)=1 102 EN(3)=3:ST(3)=3:FT(3)=1 -103 LN=0 -104 CQ=0 +103 LN=0:CQ=0:OM=0 110 HIMEM:7925 120 POKE 232,245:POKE 233,30 130 FOR L=7925 TO 8175: READ B:POKE L,B:NEXT L @@ -26,65 +24,52 @@ 1040 DV(I)=270*-G*LOG(TM(I)/(TM(I)-FM(I))) 1050 TW(I)=TH(I)/(TM(I)*-G) 1055 FF(I)=TH(I)/(270*-G) -1990 PRINT "STAGE: ";I +1990 PRINT "STAGE: ";4-I 1991 PRINT " TANKS=";ST(I)*FT(I);" ENGINES=";EN(I) 1992 PRINT " STAGE MASS=";SM(I);" TOTAL MASS=";TM(I) 1993 PRINT " DELTAV=";DV(I) 1995 PRINT " TWR=";TW(I) 2000 NEXT I 2999 GET A$ -3000 AN=0 -3012 GX=0:GY=-9.8:GA=0 -3013 V=0:VX=0:VY=0 -3014 AX=0:AY=0 -3015 KR=600000 -3016 RX=0:RY=KR+10 -3017 RA=KR+10 -3018 TR=0:T=0 +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 3020 HGR:ROT=0:SCALE=2:H=0 3030 REM ** LAUNCHPAD ** 3035 PRINT:PRINT CHR$(4);"BLOAD LAUNCHPAD.HGR,A$2000" 3038 HCOLOR=1:HPLOT 1,80 TO 132,80: HPLOT 148,80 TO 247,80 3039 HCOLOR=3:HPLOT 110,110 TO 110,60:HPLOT TO 130,60: HPLOT 110,70 TO 130,70 -4000 REM -4001 IF LN=0 GOTO 5032 -4003 IF (RA-KR)>1800 THEN GOTO 4012 +3040 XDRAW 1+((S-1)*2)+TR AT 140,80 +4000 REM ** LOOP ** +4002 IF LN=0 GOTO 5032 +4003 RR=RA-KR +4004 IF RR>1800 THEN GOTO 4012 4005 HCOLOR=0:HPLOT 1,80+H TO 132,80+H:HPLOT 148,80+H TO 247,80+H -4010 H=(RA-KR)/20:HCOLOR=1:HPLOT 1,80+H TO 132,80+H:HPLOT 148,80+H TO 247,80+H -4012 IF (RA-KR)<10000 AND CQ<>0 THEN GOSUB 7600 -4014 IF (RA-KR)<10000 GOTO 4018 -4016 IF (RA-KR)>10000 AND CQ<>1 THEN GOSUB 7700 +4010 H=RR/20:HCOLOR=1:HPLOT 1,80+H TO 132,80+H:HPLOT 148,80+H TO 247,80+H +4012 IF RR<40000 AND CQ<>0 THEN GOSUB 7600 +4014 IF RR<40000 GOTO 4018 +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 -4030 AX=(TH(S)/TM(S))*SIN(AN) -4035 AY=(TH(S)/TM(S))*COS(AN) -4040 FM(S)=FM(S)-FF(S) -4045 TM(S)=TM(S)-FF(S) +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 4050 REM NOT THRUSTING 4055 AX=0:AY=0 4060 GA=ATN(RX/RY) -4062 REM PRINT "GA=";GA;" AY=";AY 4065 IF RY<0 THEN GA=GA+3.14 -4070 GY=COS(GA)*G -4075 GX=SIN(GA)*G -4080 AY=AY+GY -4085 AX=AX+GX -4090 ZX=VX -4095 ZY=VY -5000 VY=ZY+AY -5005 VX=ZX+AX +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) -5014 RX=RX+0.5*(ZX+VX) +5012 RY=RY+0.5*(ZY+VY):RX=RX+0.5*(ZX+VX) 5018 RA=SQR(RX*RX+RY*RY) -5020 IF RA