diff --git a/ksp/Makefile b/ksp/Makefile index 6c20d319..57862693 100644 --- a/ksp/Makefile +++ b/ksp/Makefile @@ -1,6 +1,7 @@ PCX2HGR = ../hgr-utils/pcx2hgr DOS33 = ../dos33fs-utils/dos33 TXT2BAS = ../asoft_basic-utils/tokenize_asoft +SHAPETABLE = ../hgr-utils/shape_table all: ksp.dsk @@ -28,14 +29,14 @@ PHYSICS.BAS: physics.bas VAB.BAS: vab.bas $(TXT2BAS) < vab.bas > VAB.BAS -LOAD_DEMO.BAS: load_demo.bas - $(TXT2BAS) < load_demo.bas > LOAD_DEMO.BAS +LOAD_KSP.BAS: load_ksp.bas + $(TXT2BAS) < load_ksp.bas > LOAD_KSP.BAS ROCKET.SHAPE: ship2.table - ../hgr-utils/shape_table -b < ship2.table > ROCKET.SHAPE + $(SHAPETABLE) -b < ship2.table > ROCKET.SHAPE VAB.SHAPE: ship.table - ../hgr-utils/shape_table -b < ship.table > VAB.SHAPE + $(SHAPETABLE) -b < ship.table > VAB.SHAPE ksp.dsk: ACMPLX.BAS \ @@ -44,7 +45,7 @@ ksp.dsk: ACMPLX.BAS \ KSP.BAS \ ROCKET.SHAPE \ VAB.SHAPE \ - LOAD_DEMO.BAS \ + LOAD_KSP.BAS \ LAUNCH.BAS GLOBE.HGR LAUNCHPAD.HGR ORBIT_TOP.HGR ORBIT_RIGHT.HGR \ LOADING.BAS LOADING.HGR SQUAD.HGR TITLE.HGR \ PHYSICS.BAS \ @@ -65,7 +66,7 @@ ksp.dsk: ACMPLX.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 - $(DOS33) -y ksp.dsk SAVE A LOAD_DEMO.BAS + $(DOS33) -y ksp.dsk SAVE A LOAD_KSP.BAS $(DOS33) -y ksp.dsk SAVE B ROCKET.SHAPE $(DOS33) -y ksp.dsk SAVE B VAB.SHAPE @@ -95,4 +96,4 @@ VAB.HGR: vab.pcx $(PCX2HGR) vab.pcx > VAB.HGR clean: - rm -f *~ *.HGR *.SHAPE + rm -f *~ *.HGR *.SHAPE *.BAS diff --git a/ksp/ksp.bas b/ksp/ksp.bas index 8661a71d..49bab774 100644 --- a/ksp/ksp.bas +++ b/ksp/ksp.bas @@ -48,6 +48,7 @@ 965 DATA 255,108,202,108,170,108 970 DATA 143,216,152,216,170,216,255,216,227,255 989 REM *** DONE LOADING *** + 990 VTAB 1 999 GET A$ 1000 REM *** VAB *** 1010 REM HIMEM: 8135 @@ -124,8 +125,8 @@ 1752 REM EN(3)=3:ST(3)=3:FT(3)=1 1776 POKE 232,0:POKE 233,16 1783 PRINT CHR$(4);"BLOAD ROCKET.SHAPE,A$1000" -1800 PRINT "ROCKET SUMMARY:":PRINT -1802 G=-9.8:LN=0:CQ=0:OM=0:S=SS +1800 HOME:PRINT "ROCKET SUMMARY:":PRINT +1802 G=-9.8:LN=0:CQ=0:OM=0:S=SS:DT=1 1805 FOR I=1 TO S 1810 EM(I)=EN(I)*1.5+ST(I)*FT(I)*0.5 1812 IF I=1 THEN EM(I)=EM(I)+1.0 @@ -146,7 +147,8 @@ 1993 PRINT " DELTAV=";DV(I) 1995 PRINT " TWR=";TW(I) 2000 NEXT I -2999 GET A$ +2998 GET A$ +2999 HOME 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:BF=0:MX=0 3020 HGR:ROT=0:SCALE=2:H=0 @@ -176,8 +178,8 @@ 4060 GA=ATN(RX/RY) 4065 IF RY<0 THEN GA=GA+3.14 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) +4090 ZX=VX:ZY=VY:VY=ZY+AY*DT:VX=ZX+AX*DT:V=SQR(VX*VX+VY*VY) +5012 RY=RY+0.5*(ZY+VY)*DT:RX=RX+0.5*(ZX+VX)*DT:RA=SQR(RX*RX+RY*RY) 5020 IF RA1 THEN XDRAW 1+((S-1)*2)+TR AT 140,80 6095 IF OM=1 THEN HX=INT(RX/25000)+140:HY=INT(-RY/25000)+85:HCOLOR=3:HPLOT HX,HY -6118 T=T+1:EC=EC+1 +6118 T=T+DT:EC=EC+DT 6150 IF OM<>1 AND EC>30 THEN EC=0:GOSUB 8100 6200 GOTO 4000 7500 REM *** LAUNCH *** @@ -293,6 +297,7 @@ 9260 PRINT " X - CUT ENGINES" 9270 PRINT " SPACE - LAUNCH,STAGE" 9275 PRINT " M - SWITCH TO ORBITAL VIEW" +9277 PRINT " <,> - FAST FORWARD" 9280 PRINT " ESC - QUIT" 9300 GET A$ 9320 GOTO 9010 diff --git a/ksp/ksp.dsk b/ksp/ksp.dsk index c18ab3e3..3ec40148 100644 Binary files a/ksp/ksp.dsk and b/ksp/ksp.dsk differ diff --git a/ksp/load_demo.bas b/ksp/load_demo.bas deleted file mode 100644 index f24181df..00000000 --- a/ksp/load_demo.bas +++ /dev/null @@ -1,5 +0,0 @@ -10 REM LOAD BASIC PROGRAM INTO HGR2 AREA -15 PRINT "LOADING PRESENTER DEMO TO A$4000" -20 POKE 104,64 -30 POKE 16384,0 -40 PRINT CHR$(4);"LOAD KSP.BAS" diff --git a/ksp/load_ksp.bas b/ksp/load_ksp.bas new file mode 100644 index 00000000..8d2bde9f --- /dev/null +++ b/ksp/load_ksp.bas @@ -0,0 +1,6 @@ +10 REM LOAD BASIC PROGRAM INTO HGR2 AREA +15 PRINT "KSP TOO BIG, LOADING TO A$4000" +20 POKE 104,64 +30 POKE 16384,0 +40 PRINT CHR$(4);"RUN KSP.BAS" +50 RUN