Type: Program
Platform(s): TS 2068
Land on Saturn, if you can.
Content
Source Code
3 REM
4 REM
7 REM SATURN LANDER
8 REM \''\''\''\''\''\''\''\''\''\''\''\''\''
9 REM
10 REM FROM "YOUR COMPUTER" MAGAZINE MAY 1983
11 REM
12 REM Entered by
13 REM G.F.Chambers
14 REM
15 REM
16 REM
17 GO TO 20
18 PLOT SX,SY: PLOT SX,SY+1: DRAW 3,0: PLOT SX+3,SY: PLOT SX+1,SY+2: PLOT SX+2,SY+2
19 RETURN
20 PAPER 0: INK 7: CLS : OVER 1
21 PLOT 0,0: DRAW 10,20: DRAW 9,-10: DRAW 8,6: DRAW 14,-10: DRAW 6,4
22 DRAW 4,-4: DRAW 8,6: DRAW 14,-10: DRAW 16,0
24 DRAW 0,1: DRAW -16,0: DRAW OVER 0;16,-1
26 DRAW 14,6: DRAW 4,-4: DRAW 18,8: DRAW 6,-2: DRAW 8,4
28 DRAW 10,-10: DRAW 10,6: DRAW 8,12: DRAW 10,-8: DRAW 8,4
30 DRAW 16,-10: DRAW 24,14: DRAW 8,-10: DRAW 4,2: DRAW 8,-10
32 DRAW 10,-4
35 RANDOMIZE : FOR S=1 TO RND*100: LET L=USR 32300: NEXT S
40 LET r$="\a\b \c\d \a\b \c\d \a\b \c\d \c\d \a\b \c\d"
45 PRINT AT 12,0;R$;AT 15,0;R$: LET R$=R$(15 TO )+R$( TO 14): PRINT AT 17,0;R$
50 LET R$="EFG KLM KLM EFG EFG KLM HIJ NOP NOP HIJ HIJ NOP "
51 LET r$="\e\f\g \k\l\m \k\l\m \e\f\g \e\f\g \k\l\m \h\i\j \n\o\p \n\o\p \h\i\j \h\i\j \n\o\p"
55 PRINT INK 5;AT 4,0;R$;AT 8,0;R$
60 LET SX=RND*100+75: LET SY=165
61 LET HU=0: LET VV=0
62 LET S=0
64 GO SUB 18
65 IF POINT (SX,SY-1)+POINT (SX+1,SY-1)+POINT (SX+2,SY-1)=3 THEN GO TO 2000
66 LET OSX=SX: LET OSY=SY
67 LET SX=SX+HU
68 LET SY=SY-VV: IF SY>165 THEN LET VV=0
69 LET NSX=SX: LET NSY=SY: LET SX=OSX: LET SY=OSY
70 GO SUB 18
71 LET SX=NSX: LET SY=NSY
72 LET S=S+1-(INKEY$<>"")
75 LET L=USR 32200
76 LET HU=HU+.25*((INKEY$="3" AND SX<250 AND HU<=3)-(INKEY$="1" AND SX>2 AND HU>=-3))
77 LET VV=VV+.25-.5*(INKEY$="2")
78 INPUT "": PRINT #1;"VERT.VEL=";INT (VV*100)/100,"HOR.VEL=";INT (HU*100)/100
80 IF POINT (SX,SY)+POINT (SX,SY+1)+POINT (SX+1,SY+1)+POINT (SX+1,SY+2)+POINT (SX+2,SY+1)+POINT (SX+2,SY+2)+POINT (SX+3,SY)+POINT (SX+3,SY+1)<>0 THEN GO TO 1000
200 GO TO 64
1000 FOR F=0 TO 30: OVER (F/2=INT (F/2)): INK 2: PLOT SX,SY: DRAW 3,2
1010 PLOT SX,SY+2: DRAW 3,-2
1020 OUT 254,55*(F/2=INT (F/2))
1030 NEXT F
1035 INK 7
1040 OUT 254,0
1050 PRINT OVER 1;AT 10,11; FLASH 1;"GAME OVER"
1055 PRINT TAB 11;"SCORE=";S
1056 PRINT AT 18,2; FLASH 1;"PRESS ANY KEY TO PLAY AGAIN"
1060 PAUSE 1000: RUN
2000 IF ABS HU>.25 OR SY>5 THEN GO TO 1000
2010 FOR X=10 TO 50 STEP 5: BEEP .1,X: NEXT X
2015 INK 7
2020 PRINT AT 10,12; FLASH 1;"WELL DONE"
2030 PRINT TAB 11;"SCORE=";200-S
8000 STOP
8900 CLEAR 31999: PRINT AT 5,0;"Controls are:"
8905 PRINT " 1-accelerate to left 2-accelerate to the right 0-accelerate upwards"
8910 PRINT ''"Wait for data to load"
9000 RESTORE 9000: FOR U=0 TO 127
9010 READ DATUM: POKE USR "A"+U,DATUM: NEXT U
9020 DATA 0,15,31,31,63,63,7,0,0,192,224,248,252,252,192,0
9030 DATA 0,1,15,31,127,63,31,0,0,224,252,254,254,248,240,0
9040 DATA 0,0,0,3,15,31,63,61,0,0,0,248,254,255,255,255,0,0,0,0,0,0,128,192
9050 DATA 126,127,127,127,127,63,15,0,247,15,255,255,255,255,255,255,224,240,BIN 10110000,BIN 10111000,BIN 01111000,DATUM,240,0
9060 DATA 0,0,0,0,0,1,3,15,0,0,0,0,127,255,255,255,0,0,0,0,128,224,240,248
9070 DATA BIN 00110111,111,111,BIN 00110111,31,3,0,0,251,247,239,223,255,255,0,0,248,248,240,240,128,0,0,0
9502 RESTORE 9610
9505 READ ADD
9510 LET A$=""
9520 IF A$="" THEN READ A$
9525 IF A$="N" THEN GO TO 9505
9526 IF A$="S" THEN GO TO 10
9540 IF CODE A$(1)>64 THEN LET A$(1)=CHR$ (CODE A$(1)-7)
9550 IF CODE A$(2)>64 THEN LET A$(2)=CHR$ (CODE A$(2)-7)
9560 POKE ADD,16*CODE A$+CODE A$(2)-816
9570 LET ADD=ADD+1
9580 LET A$=A$(3 TO )
9590 GO TO 9520
9610 DATA 32000,"C5D5E5F52B1120000608C5237ECB172BF519F10620CB162B10FB24C110ECF1E1D1C1C9N"
9620 DATA 32100,"C5D5E5F51120000608C52B197ECB1FF5A7ED5223F10620CB1E2310FBA7ED5224C110E6F1E1D1C1C9N"
9630 DATA 32200,"218040CD007D21A040CD007D210048CD647D212048CD647D218048CD007D21E048CD647D212050CD007DC9N"
9640 DATA 32300,"216050CD647D218050CD647D21A050CD647DC9N"
9700 DATA 0,"S"
9998 SAVE "Saturn" LINE 8900
9999 PRINT "Rewind to Verify": VERIFY "Saturn"