mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-03-06 03:29:46 +00:00
ksp: start merging into one big file
also make stage fixes
This commit is contained in:
parent
8012d2f90b
commit
a10d80b1ad
@ -13,6 +13,9 @@ CONTRACT.BAS: contract.bas
|
||||
FLIGHT.BAS: flight.bas
|
||||
$(TXT2BAS) < flight.bas > FLIGHT.BAS
|
||||
|
||||
KSP.BAS: ksp.bas
|
||||
$(TXT2BAS) < ksp.bas > KSP.BAS
|
||||
|
||||
LAUNCH.BAS: launch.bas
|
||||
$(TXT2BAS) < launch.bas > LAUNCH.BAS
|
||||
|
||||
@ -30,6 +33,7 @@ VAB.BAS: vab.bas
|
||||
ksp.dsk: ACMPLX.BAS \
|
||||
CONTRACT.BAS \
|
||||
FLIGHT.BAS \
|
||||
KSP.BAS \
|
||||
LAUNCH.BAS GLOBE.HGR LAUNCHPAD.HGR ORBIT_TOP.HGR ORBIT_RIGHT.HGR \
|
||||
LOADING.BAS LOADING.HGR SQUAD.HGR TITLE.HGR \
|
||||
PHYSICS.BAS \
|
||||
@ -49,6 +53,7 @@ ksp.dsk: ACMPLX.BAS \
|
||||
$(DOS33) -y ksp.dsk SAVE A PHYSICS.BAS
|
||||
$(DOS33) -y ksp.dsk SAVE A FLIGHT.BAS
|
||||
$(DOS33) -y ksp.dsk SAVE A CONTRACT.BAS
|
||||
$(DOS33) -y ksp.dsk SAVE A KSP.BAS
|
||||
|
||||
|
||||
LAUNCHPAD.HGR: launchpad.pcx
|
||||
|
83
ksp/ksp.bas
Normal file
83
ksp/ksp.bas
Normal file
@ -0,0 +1,83 @@
|
||||
7 HOME
|
||||
10 REM PRINT CHR$(4);"BLOAD GLOBE.HGR,A$2000"
|
||||
20 AN$="ZURGTROYD"
|
||||
90 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
|
||||
1000 PRINT "ROCKET SUMMARY:":PRINT
|
||||
1005 FOR I=1 TO S
|
||||
1010 EM(I)=EN(I)*1.5+ST(I)*FT(I)*0.5
|
||||
1012 IF I=1 THEN EM(I)=EM(I)+1.0
|
||||
1014 FM(I)=ST(I)*FT(I)*4.0
|
||||
1015 SF(I)=FM(I)
|
||||
1016 SM(I)=EM(I)+FM(I)
|
||||
1020 TM(I)=0
|
||||
1022 FOR J=1 TO I
|
||||
1025 TM(I)=TM(I)+SM(J)
|
||||
1030 NEXT J
|
||||
1035 TH(I)=EN(I)*168
|
||||
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
|
||||
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
|
||||
3018 TR=1:T=0
|
||||
4000 REM
|
||||
4010 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)
|
||||
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
|
||||
5010 V=SQR(VX*VX+VY*VY)
|
||||
5012 RY=RY+0.5*(ZY+VY)
|
||||
5014 RX=RX+0.5*(ZX+VX)
|
||||
5018 RA=SQR(RX*RX+RY*RY)
|
||||
5020 IF RA<KR THEN PRINT "CRASH": END
|
||||
5030 G=-9.8/((RA/KR)*(RA/KR))
|
||||
5031 REM PRINT "-------------------------"
|
||||
5032 VTAB 21
|
||||
5040 PRINT "TIME: ";T,"STAGE: ";S;" ";AN$
|
||||
5045 PRINT "ALT: ";INT((RA-KR)/1000);"KM "
|
||||
5060 PRINT "VEL: ";INT(V);"M/S","FUEL: ";INT(FL);"% "
|
||||
5080 REM PRINT "GRAVANGLE ";GA*180/3.14
|
||||
5090 REM PRINT "X: ";RX;" Y: ";RY
|
||||
5100 REM PRINT "VX: ";VX;" VY: ";VY
|
||||
5110 REM PRINT "ANGLE: ";AN
|
||||
5112 REM PRINT "AX: ";AX;"AY: ";AY
|
||||
5115 GET A$
|
||||
5118 T=T+1
|
||||
5120 REM GET A$:IF A$="Q" THEN END
|
||||
5130 HX=INT(RX/25000)+140:HY=INT(-RY/25000)+85
|
||||
5135 REM CHECK BOUNDS
|
||||
5140 REM HPLOT HX,HY
|
||||
5150 GOTO 4000
|
Loading…
x
Reference in New Issue
Block a user