16K Cassette or Disk
by Dennis Fox
Shooting Stars is an assembly-language game that strands you on an asteroid with almost zero gravity. Red-hot particles of space debris are bouncing all around you. Death is virtually certain in this hostile environment. The question is, how long can you survive?
Your objective is to avoid contact with the "shooting stars" for as long as possible. You are represented by a little astronaut figure, which can be moved around the screen with a joystick plugged into port #1.
You begin the game with five lives. The number of lives remaining is displayed in the top part of the screen, along with a clock which shows how long you have survived. An extra life is awarded at the 3-minute mark, and another at the 5-minute mark. A bell will signal the earning of an extra life. The longer you remain alive, the faster the flying particles will move.
I hope you enjoy playing Shooting Stars. See if you can beat my high score of five minutes and fourteen seconds.
Before typing anything into your computer, take a look at the program listings accompanying this article.
Follow the instructions below to make either a cassette or disk version of Shooting Stars.
SSTARS.LST is available in ATASCII format.
1 REM *** SHOOTING STARS ***
10 DATA 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,
0,0,10,11,12,13,14,15
20 DIM DAT$(91),HEX(22):FOR X=0 TO 22:
READ N:HEX(X)=N:NEXT X:LINE=990:RESTOR
E 1000:TRAP 60:? "CHECKING DATA"
25 LINE=LINE+10:? "LINE:";LINE:READ DA
T$:IF LEN(DAT$)<>90 THEN 110
28 DATLIN=PEEK(183)+PEEK(184)*256:IF D
ATLIN<>LINE THEN ? "LINE ";LINE;" MISS
ING!":END
30 FOR X=1 TO 89 STEP 2:D1=ASC(DAT$(X,
X))-48:D2=ASC(DAT$(X+1,X+1))-48:BYTE=H
EX(D1)*16+HEX(D2)
35 IF PASS=2 THEN PUT #1,BYTE:NEXT X:R
EAD CHKSUM:GOTO 25
40 TOTAL=TOTAL+BYTE:IF TOTAL>999 THEN
TOTAL=TOTAL-1000
45 NEXT X:READ CHKSUM:IF TOTAL=CHKSUM
THEN 25
50 GOTO 110
60 IF PEEK(195)<>6 THEN 110
100 ? "WRITING FILE":PASS=2:LINE=990:R
ESTORE 1000:TRAP 60:GOTO 25
110 ? "BAD DATA: LINE ";LINE:END
1000 DATA A209A9FF9D30259DDE26CA10F7A2
29A92585D6A93A85D5A009B9122591D58810F8
A5D518690A85D5A5D6690085,695
1010 DATA D6CA10E6A9CA8D3002A9248D3102
A90085CD85CB85CF85D185D3A93385CEA93485
CCA93585D0A93685D2A93785,788
1020 DATA D4A9108D42068D43068DA006A900
8DA1068DA2068DA3068D6006A9058D5006A9B4
8D0006AD0AD24A1869378D01,948
1030 DATA 06A200AD0AD24A4A69329D1006E8
E006D0F1A2008A0A0A0A0A0A69379D2006E8E0
06D0F0A200AD0AD229039D30,321
1040 DATA 06E8E006D0F3A9308D07D4A93E8D
2F02A9038D1DD0A900A891CB91CD91CF91D191
D3C8D0F3A9008D45068D1ED0,300
1050 DATA A9468DC002A90F8DC1028DC2028D
C302A9968DC502A9368DC602A9F88DC402A903
8D4106A907A224A080205CE4,446
1060 DATA AD1FD0C906D0034C6824AD780229
01D003CE0106AD78022908D003EE0006AD7802
2902D003EE0106AD78022904,186
1070 DATA D003CE0006AD0006C9C8D003CE00
06AD0006C932D003EE0006AD0106C934D003EE
0106AD0106C9C8D003CE0106,391
1080 DATA AD00068D00D0A200AC0106BDFF24
91CBE8C8E013D0F5A200BD3006D006FE1006DE
2006BD3006C901D006FE1006,306
1090 DATA FE2006BD3006C902D006DE1006FE
2006BD3006C903D006DE1006DE2006E8E006D0
C9A200BD1006C9CAD012BD30,69
1100 DATA 06D008A9039D3006189005A9029D
3006BD1006C930D014BD3006C902F008A9009D
3006189005A9019D3006BD20,766
1110 DATA 06C934D012BD3006D008A9019D30
06189005A9029D3006BD2006C9D5D014BD3006
C901D008A9009D3006189005,729
1120 DATA A9039D3006E8E006D093AD10068D
01D0AD11068D02D0AD12068D03D0AD13068D05
D0AD14068D06D0AD15068D07,24
1130 DATA D0A900AC200691CFA910C891CFC8
91CFA900C891CFA900AC210691D1A910C891D1
C891D1A900C891D1A900AC22,98
1140 DATA 0691D3A910C891D3C891D3A900C8
91D3A9EFAC230631CD91CDA910C811CD91CDA9
10C811CD91CDA9EFC831CD91,628
1150 DATA CDA9FBAC240631CD91CDA904C811
CD91CDA904C811CD91CDA9FBC831CD91CDA9BF
AC250631CD91CDA940C811CD,19
1160 DATA 91CDA940C811CD91CDA9BFC831CD
91CDEE4006AD4006C910D03AA9008D4006CE41
06AD4106D005A9038D4106A9,239
1170 DATA C88D03D2AD4106C903D008A9788D
02D2189014AD4106C902D008A9648D02D21890
05A9558D02D2AD42068D2525,812
1180 DATA AD43068D2625ADA0068D2325ADA0
06C913D015ADA106D010EE5006EEA106A9A48D
01D2A9018DA206ADA006C915,632
1190 DATA D017ADA106C901D010EE5006EEA1
06A9A48D01D2A9018DA206AD4506F0034C1724
A9504E42060838ED4206282E,6
1200 DATA 4206A200EDA006E8E003D0F8AAA0
00C8D0FDCAD0F8ADA206C901D017A9328D00D2
EEA306ADA306C925D008EEA2,154
1210 DATA 06A9008DA306ADA206C902D017A9
288D00D2EEA306ADA306C925D008EEA206A900
8DA306ADA206C903D017A920,39
1220 DATA 8D00D2EEA306ADA306C925D008EE
A206A9008DA306ADA206C904D00DA9008D00D2
8D01D2A9008DA306A98AA200,65
1230 DATA 9D2925E8EC5006D0F74C0E21CE50
06A9A88D01D28D03D2A9328D00D2481869648D
02D28DC00268A000A200E8D0,192
1240 DATA FDC8C019D0F6186901C964D0DFA9
008D00D28D01D28D02D28D03D2A9468DC002A9
00AC5006992925AD5006F003,491
1250 DATA 4C7920A9008D5006AD8402F007AD
1FD0C906D0F4A900854D4C5B20AD09D00D0AD0
0D0BD00D0DD00D0ED00D0FD0,877
1260 DATA 29018D4506EE6006AD6006C93CD0
26A9008D6006EE4306AD4306C91AD017A9108D
4306EE4206AD4206C916D008,77
1270 DATA EEA006A9108D42064C62E4707070
471C2509090909090909090909090909090909
090909090909090909090909,5
1280 DATA 0909090909090909090909090909
090941CA24007C546C7C447C1010FEBABABA38
382828EE0080000000000000,486
1290 DATA 000001000074696D6500001A0000
00000000000000000000000000000000000000
000000000000000000000000,944
1 DATA 881,955,686,427,745,192,617,545
,276,445,496,549,150,973,995,8932
1020 DATA 768,669,955,856,671,709,750,
27,551,477,210,152,143,547,83,7568
1170 DATA 840,823,674,934,969,941,836,
724,876,758,202,441,487,9505
SSTARSC.LST is available in ATASCII format.
2 REM *** CASSETTE VERSION ***
65 IF PASS=2 THEN FOR X=1 TO 18:PUT #1
,0:NEXT X:CLOSE #1:END
70 ? "READY CASSETTE AND PRESS RETURN"
;:OPEN #1,8,128,"C:":RESTORE 200:FOR X
=1 TO 40:READ N:PUT #1,N:NEXT X
200 DATA 0,11,216,31,255,31,169,0,141,
47,2,169,60,141,2,211,169,0,141,231,2,
133,14,169,56,141,232,2
210 DATA 133,15,169,0,133,10,169,32,13
3,11,24,96
SSTARSD.LST is available in ATASCII format.
2 REM *** DISK VERSION ***
65 IF PASS=2 THEN PUT #1,224:PUT #1,2:
PUT #1,225:PUT #1,2:PUT #1,0:PUT #1,32
:CLOSE #1:END
70 ? "INSERT DISK WITH DOS, PRESS RETU
RN";:DIM IN$(1):INPUT IN$:OPEN #1,8,0,
"D:AUTORUN.SYS"
90 PUT #1,255:PUT #1,255:PUT #1,0:PUT
#1,32:PUT #1,69:PUT #1,37
The assembly listing appears on a separate page.