From 80deee7f3637c6df76de805befea4c50a677c368 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 27 May 2016 01:12:16 -0400 Subject: [PATCH] ksp: running out of space, loading high now --- ksp/Makefile | 9 +++++ ksp/ksp.bas | 88 +++++++++++++++++++++++++++-------------------- ksp/load_demo.bas | 5 +++ 3 files changed, 65 insertions(+), 37 deletions(-) create mode 100644 ksp/load_demo.bas diff --git a/ksp/Makefile b/ksp/Makefile index 48259343..4c6ed838 100644 --- a/ksp/Makefile +++ b/ksp/Makefile @@ -28,12 +28,19 @@ 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 + +ROCKET.SHAPE: ship2.table + ../hgr-utils/shape_table -b < ship2.table > ROCKET.SHAPE ksp.dsk: ACMPLX.BAS \ CONTRACT.BAS \ FLIGHT.BAS \ KSP.BAS \ + ROCKET.SHAPE \ + LOAD_DEMO.BAS \ LAUNCH.BAS GLOBE.HGR LAUNCHPAD.HGR ORBIT_TOP.HGR ORBIT_RIGHT.HGR \ LOADING.BAS LOADING.HGR SQUAD.HGR TITLE.HGR \ PHYSICS.BAS \ @@ -54,6 +61,8 @@ 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 B ROCKET.SHAPE LAUNCHPAD.HGR: launchpad.pcx diff --git a/ksp/ksp.bas b/ksp/ksp.bas index 45d77db2..7ee21e54 100644 --- a/ksp/ksp.bas +++ b/ksp/ksp.bas @@ -1,15 +1,13 @@ 7 TEXT:HOME -10 REM PRINT CHR$(4);"BLOAD GLOBE.HGR,A$2000" -20 AN$="ZURGTROYD":S=3 -95 G=-9.8 +20 AN$="ZURGTROYD":SS=3 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: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 +125 POKE 232,0:POKE 233,16 +127 PRINT CHR$(4);"BLOAD ROCKET.SHAPE,A$1000" +130 REM FOR L=7925 TO 8175: READ B:POKE L,B:NEXT L 1000 PRINT "ROCKET SUMMARY:":PRINT +1002 G=-9.8:LN=0:CQ=0:OM=0:S=SS 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 @@ -32,7 +30,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:BF=0 +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 3030 REM ** LAUNCHPAD ** 3035 PRINT:PRINT CHR$(4);"BLOAD LAUNCHPAD.HGR,A$2000" @@ -41,7 +39,7 @@ 3040 XDRAW 1+((S-1)*2)+TR AT 140,80 4000 REM ** LOOP ** 4002 IF LN=0 GOTO 5032 -4003 RR=RA-KR +4003 RR=RA-KR:IF RR>MX THEN MX=RR 4004 IF OM=1 GOTO 4018 4005 IF RR>1800 OR OM=1 THEN GOTO 4012 4007 HCOLOR=0:HPLOT 1,80+H TO 132,80+H:HPLOT 148,80+H TO 247,80+H @@ -71,7 +69,7 @@ 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 +6060 IF A$="Q" THEN GOTO 9000 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 @@ -116,7 +114,8 @@ 8060 HPLOT 140,80 TO 100+X,40+Y 8070 XX=PEEK(-16336) 8080 NEXT I -8090 END +8085 AD(W)=1 +8090 GOTO 9000 8100 REM *** KERBAL EYES *** 8105 HCOLOR=3:HPLOT 258,150 TO 263,150:HPLOT 265,150 TO 270,150 8110 KE=INT(RND(1)*3) @@ -135,29 +134,44 @@ 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 +9000 REM *** CONTRACT COMPLETE *** +9005 IF MX<40000 THEN C$="CRASH SHIP":F$="0.30":E$="-1":GOTO 9010 +9007 C$="REACH SPACE":F$="200":E$="20" +9010 TEXT:HOME +9020 HTAB 10:VTAB 9 +9021 FOR I=1 TO 20: PRINT "*";: NEXT I: PRINT "*" +9023 HTAB 10: PRINT "* ";:INVERSE: PRINT "CONTRACT COMPLETE";:NORMAL: PRINT " *" +9024 HTAB 10: PRINT "* "; +9026 L=10-(LEN(C$))/2 +9027 HTAB 10+L:PRINT C$;:HTAB 30: PRINT "*" +9030 HTAB 10:PRINT "* FUNDS ";F$;:HTAB 30: PRINT "*" +9030 HTAB 10:PRINT "* EXPERIENCE ";E$;:HTAB 30: PRINT "*" +9040 HTAB 10 +9042 FOR I=1 TO 20: PRINT "*";: NEXT I:PRINT "*" +9100 VTAB 16 +9110 PRINT "NOW WHAT?" +9120 PRINT " 1. RETURN TO THE VAB" +9130 PRINT " 2. RETURN TO ASTRO COMPLEX" +9140 PRINT " 3. RETURN TO LAUNCH" +9145 PRINT " 4. HELP" +9150 PRINT " 5. QUIT GAME" +9160 PRINT "---> "; +9170 GET A$ +9171 IF A$="1" GOTO 1 +9172 IF A$="2" GOTO 2 +9173 IF A$="3" GOTO 1000 +9174 IF A$="4" OR A$="H" GOTO 9200 +9175 IF A$="5" OR A$="Q" THEN TEXT:HOME:END +9176 GOTO 9160 +9200 REM *** HELP *** +9210 HOME +9220 PRINT "KSP-APPLE-II BY VINCE WEAVER" +9230 PRINT " APPLE II FOREVER" +9240 PRINT " A,D - STEER SHIP LEFT/RIGHT" +9250 PRINT " Z - START ENGINES" +9260 PRINT " X - CUT ENGINES" +9270 PRINT " SPACE - LAUNCH,STAGE" +9275 PRINT " M - SWITCH TO ORBITAL VIEW" +9280 PRINT " ESC - QUIT" +9300 GET A$ +9320 GOTO 9010 diff --git a/ksp/load_demo.bas b/ksp/load_demo.bas new file mode 100644 index 00000000..f24181df --- /dev/null +++ b/ksp/load_demo.bas @@ -0,0 +1,5 @@ +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"