Skip to main content

Full text of "SoftSide Magazine Selections Issue 61 (1984-01 Front Runner)"

See other formats


FRONT RUNNER 



Printed Game Software for Atari®, Apple®, IBM® PC. 



rebound 


GUSH 


^^* 


KANGARILLA 



A product of SoftSide Publications, (v\c. 
10 Northern Blvd., Amherst, NH 03031 





A 



CRISIS by Lyle Grant 2 

A ruthless race of aliens has taken possession of 
the Empire State Building. Your goal is to rescue 
the hostages. 



KANGARILLA by Oscar Bascara I 

IBM® PC version by Kerry Shetline 

Your baby kangaroo has wandered to the top of a 

four-level maze, and you must rescue him. 



REBOUND by Steven Kuehne 11 

Fire the moving ball into the colored goal in the 
center of your screen, but count the barriers you 
erect with each press of the joystick. They block or 
bounce your ball in the right direction — and 
lower your score as they accumulate. 



GENERAL INFORMATION + Q 

and SYSTEM REQUIREMENTS I O 



This booklet prepared by the staff of SoftSide Publications, Inc., 
Entire contents copyright © 1983 by SoftSide Publications, Inc., 10 
Northern Blvd., Northwood Executive Park, Amherst, NH 03031. 

Apple®, Atari 9 , IBM®, and TRS-80 9 are registered trademarks of The Apple Computer 
Company, Warner Communications, international Business Machines Corporation and 
The Tandy Corporation, respectively. 



SoftSide Selections §46 



SoftSide Selections #46 



CRIM 




by Lyle Grant 

Crisis is an arcade-style color graphics game for any Apple® II computer 
with one disk drive and 48K RAM. 



A ruthless race of aliens has captured the Empire State Building, and holds 
the people inside as hostages. Your task is to rescue as many of the hostages as 
you can. You have three "men" to perform this feat of daring and bravery. 
The aliens have taken measures to prevent such a rescue. On each floor of the 
building, you encounter a poison cloud, an electric beam, and walls that sud- 
denly appear in your path. 

To free a hostage, you must touch him as you move about the floor. Use the 
I, J, K and M keys to move up, left, right and down. If you take too long to 
free a prisoner, he moves to another spot on the floor. Each time you free a 
hostage, you earn 100 points. If you save eight hostages without being killed, a 
door opens up on the left side of the screen. Going through the door gets you 
bonus points and a ride to the next floor. There you must rescue another eight, 
but the game gets progressively faster and harder. 



Variables 



A, B: Electric beam's position. 
A(*): Stored machine language 
data. 

Al, A2, X, X$: Miscellaneous 
variables. 

B: Bonus points for finishing a 
floor. 

B(*): Location of the cloud's and 
beam's machine language move- 
ment data. 

C(*): Positions of new walls. 
DR: Tells when the door has 
opened. 

EE, MM, NN: Position and shape 
of the hostage. 

HS: The number of hostages left 
on the floor. 
J, K: The cloud's position. 



KA, KB, KC, KD, MT, VK, VL, 
VM, VN, VP: Constants. 
KY: Keyboard input. 
LV: Floor number. 
MA: Time since the hostage last 
moved. 

MB: Time between relocations of 
the hostage. 
MN: Lives left. 
SC: Score. 
VJ: Width of door. 
WA, WL: Length of new walls. 
WG: Time since the walls last ap- 
peared. 

WH: Time between appearances of 
walls. 

XX, YY: Player's position. 
Z: Player's direction. 



SS SS SS SS SS SS SS SS SS SS SS 



SS 

ss Applesoft BASIC 


SS 
SS 


SS 'Crisis' 


SS 


SS Author: Lyle Grant 


SS 


SS Copyright © 19B3 


SS 


SS SoftSide Publications, 


I DC SS 


SS 


SS 



SS SS SS SS SS SS SS SS SS SS SS 

If you don't wish to type this program. It 
is available on issue #46 SoftSide DV. 



Main program. 

100 GOTO 680 

110 KY = PEEK IKD):KY = KY - 32 i 

(KY > 95): IF KY > KA AND KY 
< KC AND KY < > KB THEN Z = 

KY - KA 
120 C0LOR= 4: PLOT XX, YY 
130 ON 2 GOSUB 330, 340, 350, 360, 3 

70 
140 IF SCRNi XX, YY) = 15 THEN G0SU3 

660: 60SUB 460": GDSU8 600 
150 IF SCRN( XX, YY) < > 4 THEN 

940 
160 C0L0R= 7: PLOT XX, YY 
170 FOR X = 1 TO 4 



130 A(X) = PEEK !B(X)):BIX) = B( 

X) + l: NEXT 
190 A = Afl):J = A(2):B = A(3):K = 

A(4) 
200 IF BU) = 31821 THEN BID -- 

31750:BI3! = 31825 
210 IF B(2) = 31979 THEN B(2) = 

31900:6(4) = 31980 
220 IF XX > = J - 1 AND XX < = 

J + 3 AND YY > = K - 1 AND 

YY < = K + 3 THEN GQSUB 94 


230 C0L0R= 13: VLIN A, A + .5 AT 

B 
240 C0LQR= u j FOR X = 1 TO 2 
250 VLIN K,K f 3 AT J: VLIN K,K + 

3 AT J + l: VLIN K,K + 3 AT 

J + 2 
260 C0L0R= 4: NEXT 
270 PLOT A.B 

280 we = «e + i: if ws = wh then 

G0SUB 490 
290 HA = HA + l: IF MA = MB THEN 

COLOR* 4: G0SUB 660: GOSUB 
620 
300 GOSUB 650 
310 IF HS < =0 THEN GOSUB 380 

320 GOTO 110 



SoftSide Selections #46 



SoftSide Selections #46 



Player's movement. 

330 VY = VY - Ml: RETURN 
340 XX = n - mt: RETURN 
350 U = U 4 «T: RETURN 
360 POP : BDTG HO 
370 VV = VV + KT: RETURN 

Routine to handle open door. 

380 m = OR + l: IF DR - 1 THEN BOSUB 

420 
390 C0L0R= 4: VLIN VJ.VK AT VI 
400 IF YV < = VK + 1 AND VY ) = 

VJ AND U < Iffl THEN 890 
410 RETURN 

Sound for open door. 

420 FOR X = 1 IU 700: NEXT : FOR 

X - 1 10 5 
430 & 29,20: I 30,20: 'k 33,15 
440 NEXT 
450 & 23,50: RETURN 

Draw border walls. 

460 CQL0R= 13 

470 HUN VL.VH AT VI: HLI« VL.VN 
AT VN: VLIN VL,VN AT VL: VL1N 
VL.VN AT n: HUN VL.VN AT V 

r 

480 RETURN 
Draw new walls. 

490 C0L0R= (i 

500 FOR v = i TO 4 

5!0 RN = RND (l) * 3): IF (X = 2 
AND ABS !RN - VY) < 4; DR 
(X = 4 AND AES !RN - XX) < 
4) THEN 510 

520 CIXS = RN: NEST 

530 HL - Oil) + I'M = C13) + 7 

540 FOR X = 1 TO 2 

550 HUN C(i),WL AT C(2) 

SAO C(2) = CI2) + l: NEXT 

570 VLIN CI3),WA AT C!4i 

530 GDSUB 460 

590 WB = 0: RETURN 

Hostage saved. 

600 k 30,15: k 23,8: Si 15,10 



610 SC = SC -t 100: IF HS ) =1 THEN 

KS = HS - 1 
620 VTAR 21: HTAP 14: PRINT SC: HTA3 

3?: VTAB 22: PRINT HS 
Draw new hostage. 

630 KN s RND (i) * 3?:EE = MM + 
2:NN = RND <,D * 36 

640 HA = 0: GDSUB 460 

650 COLOR* 15 

660 HLIN MN,EE A7;NN + 1!: VLIN 
NN.NN + 2 AT HN + l: PLOT MM 
,NN + 3: PLOT EE.HN + 3 

670 RETURN 

Initialization. 

680 DM A(4): BIH SMi; Din GI4) 

690 GOSUB 1070 

700 READ MT,Kft,KB,KC,KD,yj,yK,VL 

,VR,VN,VP 
710 BOSUB 840 

720 Lv = urn = i:m = 33:11s = 60 

:sc = 
730 Bill = 31750:8(2) = 31900:EM3 

i = 31325:814) = 31980 
740 SR : BOSUB 1050 
750 a = 13: iV = 19; CDL0R= 6: PLOT 

XX, fV 
760 HB = B 
770 G03UB 490: GOSUB 490: BOSUB 

460: GOSUB 630 
780 POKE 49168.0:7 • 0: HONE 
790 VTAB 21: HTAB 8: PRINT "Beer 

e:"SC: HTAB 21: VTAB 22: PRINT 

"Hostages on flour! "HS 
800 OTAB 21: HTAB 24: PRINT "Flo 

or:"LV 
310 VTAB 22: HTAB 3: PRINT "Live 

e:"MN 
820 for x = 1 to 800: next x 

830 GOTO 110 
Instructions. 

840 HONE I HTAB 14: PRINT '-INS 

TRUCTIONS-" 
350 VTAB 5: PRINT 'Moveeent (revs 

: 'V = up": PRINT : HTAB 1 

7: PRINT ■'•'H' = dawn" 
360 PRINT : HTAB 17: PRINT "'J' 

=lett": PRINT : HTAB 17: PRINT 

"'!:' =riqht" 



870 VTAB 14: PRINT "Scoring: has 
taqes = 100 pts. each.": PRINT 
: PRINT "Bonus pts. given a* 
ter finishing a flocr" 

8S0 VTAB 23: HTAB 9: PRINT "-Pre 
ss SPACE to begin-";: BET K$ 
: RETURN 

Set up new floor. 

890 & 50,25: l- 48,15: 5 40,25: I 

jo,ij, « Ji'tiij. « id, i j. « J 

0,25; I 15,25 
900 TEXT I HOME : VTAB 11: HTAB 

!0:B = 1000 * LV: PRINT "Bon 

us="Bi: PRINT " pts." 
910 LV = LV + i:SH = HH - l:HB = 

MB - 3:DR = 0:W = VJ + 1 
920 SC = SC + 8: VTAB 22: HTAB 4: 

PRINT "Score: "SC 
930 FOR I = 1 TC 1000: NEJT X: 6DT0 

730 

Player loses one life. 

940 k 255, 10u; a 250, lOo: Sc 22v, ; 

40: I 200.150: I 190,255: I 

240,255: Sr 254,255 
950 m = MN - ! 
960 IF HH < > THEN 730 

Game over. Ask player for another 
game. 

970 INVERSE : PRINT '»)»»»» 

»»SAHE dver(««««;<«« 

<";: NORMAL 
980 POKE 49168,0 
990 FOR X = 1 TO 1000: NEXT 
1000 PRINT "Bo you want to play 

again? "J 
1010 6ET WM = ASC (»S: IF A 

I > 95 THEN A>: = Ai - 32 
1020 IF A!! < } 78 AND ftX < > 8 

9 THEN 1010 
1030 IF AX = 78 THEN TEH : NG«E 

: END 
1040 GOTO 720 

Draw background color. 

1050 FOR I = 1 TO 38 



1060 C0L0R= 4: HUN '„V,'N AT V. NEXT 

: RETURN 
Display title page. 

1070 PRINT CHR* mW. TEST ! HOME 
: NORMAL I VTAB 8: HTAB 15: PRINT 
"++CRISIS++": HTAB 19: VTAB 

17: print "by": vtab 19: htab 
15: PRIST "Lyle Grant" 

Poke in sound routine and machine 
language data. 

1080 FOR I = 31750 TO 31821: HEAD 

A1,A2: POKE X + 75. A2: POKE 

X,Al: NEXT 
1090 FOR X = 31900 TO 31978: READ 

A1,A2: POKE H t 80, A2: POKE 

l,Ml NEXT 
1100 FOR X = 768 TO 833: READ Al 

: POKE X,Al: NEXT 
1110 POKE 1013.76: POKE 1014,0: POKE 

1015,3 
1120 RETURN 

Sound routine and machine 
language data. 

1130 DATA 20,2,19,3,18,4,17,5,16 
,6, 15, 7, 14, 8,13,9, 12, 10, 11,1 
1 

1140 DATA 10,12,9,13,8,14,7,15,6 
,16,5.17,4,18,3.19,2,20,3,21 

1150 DATA 4,22,5,23,6,24,7,25,8, 

26,9,27,10,28,11,29 
1160 DATA 12, 30, 13, 31, 14, 32,15,3. 

3,16,34,17,35,18,36 
1170 DATA 19,37,20,38,21,37,22,3 

6,23,35,24,34,25,33,26,32 
1180 DAIA 27,31,28,30,29,29,30,2 

8,31,27,32,26 
1190 DATA 33,25,34,24,35,23,36,2 

2,37, 21, 38, 20, 37, 19, 36, IB ' 
1200 DATA 33,17,34,16,33,15,32,1 

4, 31, 13, 30,12,29,11,23, 10 
1210 DATA 2', 9,26, 8, 25, 7,24, 6, 23 

,5,22,4,21,3 
1220 DATA 2,29.3,26,3,24,4,23,4. 

21,4,19,5,16,5,14,6,11 



SoftSide Selections #46 



SoftSide Selections #46 



1230 
1240 

1250 
1240 
1270 
1280 
1290 



DATA 6,9,7,6,7,4,8,2,9,5,10 
,8, 10,10, 11, 13, 11, 15, 12. 18 

DATA 13,21,13,23,14,26,14,2 
8,15,30,16,33,17,35.16,32,19 
,29 

DATA 20,26,21,23,22,20,23,1 
7,24,14,25,11,26,8,27,6 

DATA 27,5,28,2,29,4,30,7.3! 
,10,32,13,33,16,34,19,35,22 

DATA 36,25,35,26,34,27,33,2 
8,32,29,31,30,30,31,29,32 

DATA 28,33,27,34,26,35,25,3 
2,24,29,23,26,22,23,21,20 

DATA 20,17,19,14,18,11,17,8 
,16,5,15,2,14,5,13,8,12,11 



1300 DATA 11,14,10,17,9,20,8,23, 

7,26,6,29,5.32,4,35,3,32 
1310 DATA 201,84,206,15,32,177,0 

,32,248,230,138,72,32,183 
1320 DATA 0,201,44,240,3,76,201, 

222,32.177,0.32,248,230 
1330 DATA 104, 134,3, 134, 1,133,0, 

170,160,1,132,2,173,48 
1340 DATA 192, 136, 20B, 4, 198, 1,24 

0,7,202,208,246,166,0,208 
1350 DATA 239,165,3,133,1,198,2, 

208,241,96 
1360 DATA 1.2,200,204,206,49152, 

7,22,0,2,39,1 



,MP |g2V* 



V- * KSk •■* TABLE ^" iVV 



For Apple® CRISIS 












STOMP 








STOMP 




LINES CODE 


LENGTH 


LINES 




CODE 


LENGTH 


!00- 210 ZH 


287 


820- 


930 


UN 


454 


220- 330 XR 


197 


940- 


1050 


LF 


270 


340- 450 TT 


163 


1060- 


1170 


UK 


467 


460- 570 CB 


207 


1180- 


1280 


rs 


529 


580- 690 NL 


209 


1290- 


1360 


KN 


368 


700- 810 BS 1 


j 282 













KANGARILLA 



by Oscar Bascara 
Translation by Kerry Shetline 



Kangarilla is an arcade-style game for an IBM® PC with disk drive, 
64K RAM and color graphics adapter. A joystick controller is optional. 



In Kangarilla, you control a distraught mother kangaroo whose baby is 
stranded at the top of the four-level maze. To reach the upper levels, you must 
make the kangaroo leap through holes in the ceiling. 

The program asks whether you wish to use the keyboard or a joystick. If you 
choose joystick control, move the joystick to control her direction, and use 
either button to make her jump. Be sure to press the button when the 
kangaroo's foot is on the ground. On the keyboard, use the cursor keypad: 
left-arrow for left, down-arrow to stop, right-arrow for right, and up-arrow to 
jump. 

When you make the kangaroo leap, be careful not to make her bump into 
the ceiling, and watch out for the rolling ball that tries to trip her up. If she hits 
the ceiling or ball, the round is over, and you move to your next kangaroo. 

If the kangaroo reaches her baby, the baby is suddenly transported away, 
but if you succeed six times, mother and baby live happily ever after. You will 
need good timing and a bit of strategy to accomplish this. Are you up to the 
Kangarilla challenge? 



SoftSide Selections #46 



SoftSide Selections §46 



Variables 



A$: General input string. 

BALL%: Graphics array for ball. 

D(*): The kangaroo's change in 

position, according to the direction 

of movement. 

FL: A flag that determines whether 

to make sound. 

G: The number to add to the 

kangaroo's y-coordinate. 

IT: The shape number of the 

kangaroo. 

KANG1% — KANG4%: Graphics 

arrays for kangaroo. 

K,K2: ASCII values of input. 

L: The y-coordinate of the level. 



M: The ball's horizontal coor- 
dinate. 

MO: Mode of operation — 1 for 
keyboard, 2 for joystick. 
P: Pause loop variable. 
Q: Level number. 
SHAPE$(*): Kangaroo shapes. 
SP: Board number — controls 
speed of ball. 

T: Contains 0, 1, or 2, depending 
on the direction of movement. 
U: Number of kangaroos used. 
X, Y: Coordinates of the 
kangaroo. 



SS 



ss 

SS 

S5 



SS SS S3 SS 3S SS SS BS SS SS 

SS 

SS PC Advanced BASIC 

SS 'Kangarilla' 

SS Author: Oscar C. Bascara 

SS Translator: Kerry Shetline 

SS Copyright © 1983 

SS SoftSide Publications, Inc 

SS 

SS SS SS SS SS SS SS SS SS SS 



If you don't wish to type this program, It is 
available on Issue #46 SoftSide DV. 

Initialization. 

100 KEY OFF: SCREE!" 1,0: CLS 

110 DIM BflLL?.(5),KAN6U(ll),KANG2JU12),K 

flNG37. -ill), KAN64X il 2) , SHAPE f (4 S : DEF FNRi 

X)=INTIRND'!)*Xi; DEF FNUP$!»!=CHRJiASC 

(Xt!+32*iASCU$)>96>) 

120 FDR M 10 4: READ SKAPEliX): PRESET 

U*20,0): BRASS K C3"+5HAPE*(X): NEXT 
130 DATA "S! LI Gl R2 0! LI 81 R2 BR3 BD 
1 Li BL2 LI 61 R4 El L3 B! R2 BD1 BL2 LI 

U 

140 DATA "SI LI Gl R2 Dl LI Gl R2 BR3 BD 

1 LI BL2 L! Gl R4 Gl L3 01 R2 Fl Gl' 
150 DATA "BL2 Fl Rl Fl 1.2 Dl Rl Fl L2 BL 
3 BD1 Rl BR2 Rl Fl L4 Fl R3 SI L2 BD1 BR 

2 Rl" 

160 DATA "BL2 Fl Rl Fl L2 Dl R! Fl L2 BL 

3 BD1 Rl BR2 Rl Fl L4 Fi R3 Dl L2 Bl Fl" 
170 PSET (10,0): DRAW "Rl F! L3 Dl R3 G! 

LI" 



180 EABY*="Fi Rl Fl L2 Dl Rl Dl LI Dl R2 

190 GET i9,0)->12,3),SALL2: SET !16,0)-( 
23,9),KANGU: GET (36, 0)-(43, 10) -KANS2S: 
GET !5i,0)-(i3,9),KAffG3/:: GET <76,0)-(6 
3,10),KANS47.: CLS 

200 RANDOMIZE VAUHIM<TIHEt,3,2)>*10O*V 
AL(RT6HT$(TI(1E$,2)> 
Prompt user for control mode. 
210 LOCATE 7: PRINT "Joystick or Keyboar 
d? iJ/KJ": LINE (224,48)-(231,55),,BF 
220 A«=INKEY$: !F ft$=*" THEN 220 ELSE At 
=FNUP$!Ai): IF A$=T THEN 110=2: BTRIG 
N ELSE IF A$="K" THEN H0=1 ELSE 220 
230 CLS 

240 SF-l: B(G)=-2: B(1)=0: D!2S=2 
Plot levels on the screen and place 
a randomly located hole in each 
level. 

250 FGR 1=230 TO 240 STEP 10: PSET 11,14 
0!: DRAW SHAPE* (1): NEXT 
260 FOR 1=135 TO 45 STEP -30: LINE 10,1) 
-! 279,1) 

270 IF 1=135 THEN 300 
280 H=FNR(200i+4: IF PGiNTiH, J+30;=0 OR 
POINTiH+15, 1+301=0 OR (1=45 AND H<30! TH 
EN 2B0 
290 LINE iH,n-iH+15,I!,0 

300 NEXT 

Draw the baby kangaroo. Draw a 

ball at the bottom of the screen to 

indicate board number. 

310 PSET [1,39) J mm BABY*: PUT (3P*5+5 

,145), BALL?. 



Clear the keyboard. Initialize the 

kangaroo's coordinates, level, shape 

and "bounce formula." 

320 DEF SEG-0: POKE 1050, PESU 1052* : H.-2 

60: v=l20: L=l25: lT=i: s=o 

Initialize ball coordinates. 

330 H=9: PUT (H,L+4),8ftLLZ 

Beginning of main program loop. 

Read kangaroo's movement. 

340 60ELIB 550 

Bounce formula. 

350 g=b+.5: x=Mm: v=y+6 

Set shape number according to the 

direction and height of the 

kangaroo. 

340 IF TOl THEN IT=T+1 ELSE IT=IT-(UT+ 

1! HDD 2) 

370 IF ABSiGSOG THEN !T=1T+! 

380 G0SUB 1040 

Make sure the kangaroo doesn't 

leave the side of the screen. 

390 !F X>272 OR X< 2 2 THEN BBSUB 1040: X= 

X-D!T! : G0SUB 1040 

Check if the kangaroo's feet are on 

the ground. If so, set up a new 

bounce. 

400 IF V=L THEN 5=-3: GOTO 45C 

Move the ball. 

410 GDSUB 830 

Check if the ball is hitting the 

kangaroo. If so, the kangaroo trips. 

420 IF L+5<>+? AND L+5>¥ AND IHDifJTfIT 

/3))*2!-7a AND N-UHJMTUT/3>J*2)+2»I T 

HEN G0SUB 740: GOTO 7S0 

Check if the kangaroo's head hit the 

ceiling. If so, the kangaroo falls. 

430 Q=U10: IF I»T(Y)*L+U AND FOINTIX.Q 

)=3 THEN 420 

Erase the kangaroo and go back to 

the beginning of the main loop. 

440 S0SUB 1040: GOTO 340 

Check if the kangaroo has rescued 

the baby. 

450 IF L< 50 AND JK40 THEN 370 

Check if the kangaroo will fall 

through a hole. 

460 IF T=t THEN T=0 

470 z=x+&m-i: if a<i35 and 7=2 and pdi 

ST(U5,QJ«fl THEN Z=M 

480 IF B<135 AND 1=2 AND P01NTU+3,8>=0 

THEN Z=X+3 

490 IF B<135 AND P0INTlZ,Qi=0 AND FL=0 T 

HEN 6=1.5: E=-30: 8Q3U6 540: S0T0 410 



Produce bouncing sound unless the 
kangaroo is falling through a hole. 

500 IF FL=0 THEN SOUND 700,. 1 
510 FL=0 

Check for a jump. 
520 60SUB 590' 

Go back to the main loop. 
530 G0TD 410 

Place the ball on the same level as 
the kangaroo. 
540 PUT (M,L+4),BALL2: L=L-E: PUT (K.L+6 
/.BALLli: RETURN 

Read direction from keyboard or 
joystick. 

550 IF NQ=2 THEN T=INT(STICK<0)/90i: RET 
URN ELSE At=INkEYS: IF At="" THEN T=HT: 
RETURN 

560 IF LENiA*)=! THEN At=FNUFS(A$!: K=A3 
0(At): K2=0 ELSE K=0: K2=ASC(MlB*<A*.2i > 
570 IF K=52 OR K2=75 THEN 1=0 ELSE IF K= 
54 OR K2=77 THEN T=2 ELSE T=l 
580 HT=T: RETURN 
Check for Jump, keyboard or 
joystick control. 

590 IF L<5! THEN RETURN ELSE IF MQ=1 THE 
N IF K=32 OR K2=72 THEN 610 ELSE RETURN 
600 IF NOT STSIG(l) AND NOT STRIGiS'i THE 
N RETURN 

610 G=-4: E=3«: G03UB 540: FL=1: K=0: K2 
=0: RETURN 

Kangaroo falls after hitting her head 
on the ceiling. 
620 G0SUB 740 

430 IF IT=4 THEN DRAW "Al": FD=36 ELSE D 
RAK "A3": FD=3B 
640 FOR I=V+5 TO L+FD 
650 PSET (X,I>: DRAfi SHAPE* I IT) 
660 FOR P=l TO 20: NEXT 
670 PRESET tX,I): DRAM SHAPE$(IT) 
680 NEXT 
690 FL=0 

Check if the kangaroo was hit three 
times. If so the game ends. 
700 U=U+l: IF U=3 THEN LOCATE 21,1: PRIfi 
T "Sa§e Over,": GOTO 1020 
Subtract one kangaroo from the in- 
dicator that shows how many 
kangaroos remain. 
710 DRAM °A0" 

720 PRESET (220+10*11, 1401: DRAW SHAPED! 
) 
730 GOTO 320 



SoftSide Selections #46 



SoftSide Selections #46 



10 



Make a sound, then clear the 

kangaroo and the ball from the 

screen. 

740 SOUND 300,. I 

750 GDSUB 1040 

760 PUT («,L+6),BflLLX 

770 RETURN 

The kangaroo falls over. 

7B0 IF DIT)*2 THEN 17=3: A=4 ELSE IT=S: 

A=4 

790 LINE (Ji-4,Y>-iX+3,Y+9>,0,BF: DRAW "A 

1" 

BOO PRESET !M2,L+A;: ORAM "C3"+SHAPE*< 

IT) 

S10 FOR P=t TO 750: NEXT: PRESET U-12,1 

+fi): DRAS SHAPE*!IT)+"ftO" 

320 GOTO 700 

Subroutine for moving the ball. 

830 PUT (H,L+6t,BALLi 

840 H=N+SP: IF M)275 THEN H=5 

350 PUT iK.L+ii.BALLX 

SiO RETURN 

The kangaroo reaches her baby. 

870 GQSUB 750 

380 LOCATE 7,1: PRINT "Ham!" 

890 M', FOR X=! TO I! STEP -] 

900 60SUB 1040 

910 FOR F=l TO 30: NEJfT 

920 GOSUB 1040: NEXT 

930 GOSUB 1040 

940 LOCATE 4,2: PRINT CHR$i3) 

Set higher ball speed. If six boards 

are completed, the game is won. 

950 SP=SP+l: IF SP=7 THEN LOCATE 21,1: P 

RINT "You won 1 ": GOTO 1020 

960 FOR M TO 1000: NEST 

970 PRESET (1,391: DRAW BABY* 

960 LOCATE 7.4: PRINT ">' 

990 LOCATE 4,2: PRINT !l ?" 

Baby kangaroo floats away. 

1000 FOR 1=38 TO STEP -1: PSET il.Ii: 

DRAW BABY$: FOR P=l TO 30: NEXT: PRESET 

(1,1); DRAW BABYJ: NEXT I 

Start the next board. 

1010 FOR P=l TO 1200: NEXT: LINE i0,0i-i 

319,135), 0,BF: GOTO 260 

Check if the player wants another 

game. 

1020 PRINT: PRINT 'Stoald you lite to ola 

y again? iY/NS": LINE (298, 1761-1295, 183 



^L 



1030 Ai=INKEY$: IF ft$=" THEN 1030 ELSE 
A*=FNUPt(A*l: IF AS="Y" THEN RUN ELSE IF 
A*=°N" THEN CIS: END ELSE 1030 
Kangaroo plotting routine. 
1040 n=)H: ON IT GOTO 1050,1060,1070,1 
080 

1050 PUT isX,Yi,KftNGU: RETURN 
1040 PUT (XS,Yi,kANG2S: RETURN 
1070 PUT ia,Y!,KANG3X: RETURN 
1080 PUT (XX,Y"),KAN64/;: RETURN 



STOMP .gsswrr _. 
^imv # "* 1 TABLE 



For IBM 


" PC KANGARILLA 






STOMP 




LINES 


CODE 


LENGTH 


100 - 


170 


m 


511 


180 - 


290 


ML 


499 


300 - 


410 


SI 


251 


420 - 


530 


6F 


294 


540 - 


650 


VL 


3:7 


560 - 


770 


IN 


157 


780 - 


890 


DF 




900 - 


1010 


DC 


HIT 


1020 - 


1080 


LI 


LLi 




r, 



m 



V 



abound 



(r 



m 



>) 








by Stephen Kuehne 







Rebound is a two-player, abstract, arcade-style game for an 
Atari® with 16K RAM (24K with disk) and one or two joysticks. 

Your joystick controls everything in Rebound — no need for the keyboard. 
If you have one joystick, plug it into port one; plug a second stick into port 
two. Use the joystick button to move past the instructions after you've read 
them. Then, move the stick up and down to select your responses to the set-up 
questions (one or two joysticks, skill levels, number of rounds to play). The 
button tells the Atari that you've made your choice. 

The object of Rebound is to direct the moving ball into the colored goal at 
the center of the screen by placing diagonal barriers in the ball's path. You 
start play in each round by pressing the joystick button after the word "Serve" 
appears at the top of the screen. When you move your joystick left or right, a 
barrier appears. The type of barrier depends on the direction you move the 
stick. If you construct more than fifteen barriers, you can't receive any points, 
and if you use all your time, your opponent gets 25 bonus points. The amount 
of time you have depends on your skill level. A beeper warns when your time is 
almost up. If the ball goes into the goal and you've placed no barriers, it's a 
lucky serve, and you have to go again. 

The game gets more complex as play progresses, because the barriers stay on 
the screen. Don't get too frustrated when you can't get the ball to go where 
you want — it's only a game. 



SoftSide Selections #46 



A- 



// 



SoftSide Selections §46 



A- 



12 



Variables 



A$: Used to hold graphics. 
AT: Allowed time in which to 
finish a round. TT counts up to 
AT by one for each movement of 
the ball. 

CHBAS: This times 256 is the low 
end of the transferred character 
set. 

CHROM: This times 256 is the low 
end of the ROM character set. 
DIR: Current direction of the ball. 
DS: The number of barriers placed 
in the current round. If DS = at 
the end of a round, then a lucky 
serve happened. 
EN: Controls program flow by 
determining whether to skip line 
300. 

Nl: The constant 1. 
NUM: The actual number of 
rounds to play. 
OXP: Old x position. The 
x-coordinate of the ball's previous 
screen position, used in erasing the 
ball. 

OYP: Old y position. 
P: Miscellaneous. 

PL: Which player is currently play- 
ing. 

RN: The current round number. 
S: Miscellaneous. 
SCI: Player l's score. 
SC2: Player 2's score. 
SKI: Player l's skill level. 
SK2: Player 2's skill level. 
SL(*,*): Stores up to the first 50 
barriers placed in each round. 
SL(*,1) stores the x-coordinate, 
SL(*,2) stores the y-coordinate, 
and SL(*,3) stores the type of bar- 
rier. 

ST(*): Stores the joystick port 
numbers for the two players. 
STR: Score this round. Holds the 
score earned in the most recently 
completed round. 



I 



T: Used for time delays. 

TDIR: Temporary direction. Holds 

possible new direction of ball after 

a barrier is hit. 

TENS: Used in getting the 10's 

digit of the number of rounds to 

play. 

TS: Temporary slash (barrier). 

Since a player can place a barrier 

only once for every two 

movements of the ball, TS is set to 

1 when a barrier is placed and set 

to when the ball moves. The 

player cannot place a barrier when 

TS equals 1. 

TT: Total time used each round. If 

TT reaches the value of AT, then 

too much time has gone by. 

WUNS: Used in getting the l's 

digit of the number of rounds to 

play. 

X: Miscellaneous. 

XC(*): Holds the change in the 

ball's x-coordinate for each of the 

four directions. 

XP: Holds the ball's current 

x-coordinate. 

XT: Holds the x-coordinate of the 

next location to which the ball 

might go. 

Y: Miscellaneous. 

YC(*): Holds the change in the 

ball's y-coordinate for each of the 

four directions. 

YP: Holds the ball's current 

y-coordinate. 

YT: Holds the y-coordinate of the 

next position to which the ball 

might go. 

Z: Miscellaneous. 

ZZ: Holds the ATASCII value of 

location on screen during the end- 

of-round routine. 



SB SS SS SB BS SS SB SB BS SB SB 

SS S3 

SS Atari BASIC SS 

SS 'Rebound' SS 

SS Author: Stephen C. Kuehne SS 

SS Copyright © 1983 SS 

SS SoftSide Publications, Inc SS 

SS SS 

SS SS SS SS SS SS 33 SS S3 SS SS 

If you don't wish to type this program, It 
is available on issue #46 SoftSide CV 
and DV. 

Branch vectors. 

10 GOTO 1000 
15 CLR :60TO 950 
Set up values. 

20 SC1=0:SC2=0 

25 DIM A$!20):A$=CHRt(165):A*(20)=A$:A 

*(2)=A*:N1=1 

30 DIM SL(50,3),XC(4),YC(4):XCU!=0:XC 

(2>=1:XC(3)=0:XC(4)=-I:YC(1)=-1:YC(2)= 

0:YCI3)=1:YC(4)=0:RN=1 

Set up values, set colors, and do 
various routines for player 1. 

40 AT= 1750- 1 50 1 SK 1 : SETCQL0R 0,15,3:SET 

COLOR !,0,10:SETCOLOR 2,7,0:SETC0L0R 3 

,4,4 

45 60SUB 190:PL=1:BDSUB 150 

50 DIR=1:YP=22:XP=INT(13»RND(0))+1:TT= 

0:DS=0:STR=0:GOSUB 200: IF DS=0 THEN 50 

55 SC1=SC1+STR 

Set up values, set colors, and do 
various routines for player 2. 

60 AT= 1 750- 1 50 »SK2 : SETC0L0R 0,15,8:SET 

COLOR l,0,10:SETCOL0R 2,12,0:SETC0L0R 

3 4,4 

65 B0SUB 190:PL=2:G0SUB 150 

70 DIR=l:YP=22:XP=INT(18tRND(0))+l:TT= 

0:DS=0:STR=0:G0SUB 200: IF DS=0 THEN 70 

75 SC2=SC2+STR 

Prevent the attract mode, see if the 
game is over, and return to player 1. 

B0 POKE 77,0: IF RN=NUM THEN 920 
85 POSITION 2,0:? #6; "END OF ROUND "jR 
N:F0R T=l TO 500:NEXT T:POSITI0N 2,0:? 
*6;A$!N1,16); 



SoftSide Selections #46 



90 RN=RN+1:B0T0 40 

Routine to display scores, tell the 
player to serve, then wait for the 
serve. 

150 POSITION 1,0:PRINT #6;'PLAYER 1 SC 

0RE=";SC1:F0R T=l TO 400:NEXT T:P0SITI 

ON 1,0:PRINT #6;A$(N1,18) 

155 POSITION 1,0:PRINT #6;"PLAYER 2 SC 

0RE=";SC2:F0R T=l TO 400:NEXT TiPOSITI 

ON 1,0:PRINT #6;A*(N1,18! 

160 POSITION 4,0:PRINT #6;"PLAYER ";PL 

;" UP":F0R T=l TO 400:NEXT T:POSITI0N 

4,0:PRINT #6;A$(N1,11) 

165 POSITION 7,0:PRINT *6;' SERVE": FOR 

T=l TO 400:NEXT T:P0SITION 7,0:PRINT # 

6;At(Nl,5) 

167 IF STRIS!ST(PL!K>0 THEN 167 

170 RETURN 

Routine to draw the border and 
target. 

190 POSITION 0,0:PRINT #6;A$ 

192 FOR M TO 22:P0SITION 0,X:PRINT I 

6;AJ(N1,N1):P0SITI0N 19,X:PRINT #6;A$( 

N1,N1):NEXT X 

194 POSITION 0,23:PRINT #6;A$; 

196 POSITION 9,11:PRINT I6;CHRJ(251);C 

HR$(253) 

198 RETURN 

Routine to read the joystick. If the 
player wants to place a slash, make 
sure it's OK to do so. If so, plot and 
record the barrier. 

200 TS=0:P=STICK(ST(PL!) 

210 IF P>11 THEN 250 

220 XT=XP+XC(DIR):YT=YP+YC(DIR! 

225 IF XT<1 OR XTM8 OR YT<1 OR YT>22 

THEN 250 

230 LOCATE XT,YT,Z:P0SITIQN XT,YT 

235 IF Z<>32 OR P<9 THEN 240 

237 DS=DS+1:TS=1:PRINT ti}"/":IF DS<51 

THEN SL(DS,1)=XT:SL(DS,2)=YT:SL(DS,3) 
=1 

233 GOTO 250 
240 IF 2<>32 THEN 250 
242 DS=DS+1:TS=1:FRINT #6; a \°:IF DS<51 

THEN SL!DS,1)=XT:SL(DS,2)=YT:SL(DS,3) 



A- 



J 

13 



SoftSide Selections #46 



14 



A 



Routine to figure the new bail posi- 
tion. 

250 IF EN=I THEN EN=0:60T0 302 
300 0XP=XP:0YP=YP;G0T0 305 

Erase the ball, and turn off the 
sound. 

302 SOUND 0,0, OPPOSITION 0XP,0YP:PRI 

NT #6;" " 

Increment TT, check whether time is 
up, and start the time warning beep 
if necessary. 

305 TT=TT+i: IF TT>AT THEN 900 

306 IF AT-TK100 THEN SOUND 0,29,10,8 

Check whether the ball's next posi- 
tion is on the play field. 

307 XT=XP+XCCDIR):YT=YP+YC(DIR): IF XT) 

AND XT<19 AND YT>0 AND YT<23 THEN 32 


The ball's next position was off the 
play field, so reverse its direction. 

313 DIR=DIR+2:IF DIR>4 THEN DIR=DIR-4 
315 SOUND 0,243, 10, 8:B0T0 300 

If the ball hit a target, go to the ap- 
propriate routine. 

320 LOCATE XT,YT,I:IF Z=25I OR 2=253 T 
HEN 700 

If the ball's next position is empty, 
go to the routine that plots the ball. 

340 IF 2=32 THEN XP=XT:YP=YT:60T0 450 
350 SOUND 0,121,10,8:XP=XP+XC!DIR):YP= 
YP+YCiDIR) 

Figure the new direction of the ball 
after it hits a barrier. 

360 IF ((2=47 OR 2=40) AND (DIR=2 DR D 
IR=4)) OR l(Z=92 OR Z=41) AND (DIR=1 
R DIR=3)> THEN TDIR=DIR-1 
365 IF TDIR=0 THEN TDIR=4 
370 IF ((2=47 OR Z=40) AND (DIR=1 OR D 
IR=3)) OR 1(2=92 OR 2=41) AND (DIR=2 
R DIR=4!) THEN TDIR=DIR+1 
375 IF TDIR=5 THEN TDIR=1 

If the new direction would put the 
ball off the play field, then don't use 

it. 

390 XT=XP+XC!TDIR!:YT=YP+YC(TDIR):IF X 

T<1 OR XTM8 OR YT<1 OR YT)22 THEN 450 



Use the new direction, then go back 
to read the joystick. 

400 DIR=TDIR:IF TS=i THEN TS=0:G0T0 30 

2 

402 EN=1:G0T0 200 

Clear the sound and the ball's old 
location, then display the new ball. 

450 SOUND 0,0, OPPOSITION 0XP,0YP:PRI 
NT #6;" " 

460 POSITION XP,YP:PRINT #6;CHR$(10> 
470 GOTO 200 

Routine to handle the ball hitting 

the target. 

Clear the sound and the ball's old 

location. 

700 SOUND 0,0, OPPOSITION 0XP,0YP:PRI 
NT #6; u ":P0SITI0N 9,11:PRINT #6;CHR$! 
25D;CHR$i253! 

Sound for a lucky serve. 

701 IF DS>0 THEN 703 

702 FOR X=l TO 8:S0UND 0, 255,10, 8:F0R 
T=l TO 15:NEXT T:SQUND 0,0,0,0:FOR T=l 

TO 15:NEXT T:NEXT X:60T0 705 

Sound for the ball hitting the target. 

703 FOR X=50 TO 250 STEP 25; FOR Y=0 TO 
48 STEP 3: SOUND 0,X-Y,10,8:NEXT Y:NEX 

T XiSOUND 0,0,0,0:GOTO 720 

Tell the player to serve again, then 
wait for the serve. 

705 POSITION 4,0:PRINT #6; "LUCKY SERVE 

":F0R T=l TO 400:NEXT T:P0SITI0N 4,0:P 

RINT S6;A*(N1,11) 

710 POSITION 4,0:PRINT I6;"SERVE AGAIN 

":F0R T=l TO 400:NEXT T:P0SITI0N 4,0:P 

RINT ItijAtlNl.ll) 

712 IF STRIG!ST(PL))O0 THEN 712 

715 RETURN 

Highlight the slashes most recently 
placed, and figure the score. 

720 IF DS)50 THEN DS=50 

721 FOR 2=1 TO DS:X=SL!2,1):Y=SL(Z,2): 
LOCATE X,Y,2Z:IF SL!2,3!<)1 THEN 745 
725 FOR 5*15 TO STEP -hPOSITION X,Y 
iPRINT §6;T:P0SITIQN X,Y:PRINT #6;CH 
R$(ZZ!:SQUND 0,60,8,S:NEXT S 



730 GOTO 760 

745 FOR S=15 TO STEP -hPOSITION 1,1 
.'PRINT l6;°r':P0SITI0N X,Y:PRINT I6;CH 
fttlllhSQUND 0,60, 8,S: NEXT S 

760 NEXT Z 

770 IF DS<16 THEN STR=16-DS 

780 RETURN 

Time ran out, so give a bonus to the 
player's opponent. 

900 POSITION QXP,0YP:? #6;" °:SQUND 0, 

0,0,0 

903 POSITION 4,0:PRINT #6;"TIHE'S UP"; 

:F0R T=l TO 400:NEXT T:P0SITI0N 4,0:? 

#6;A$(N1,9) 

910 IF PL=2 THEN 914 

911 SC2=SC2+25: POSITION 3,0:? l6;"PLftY 
ER 2 6ETS";:F0R T=l TO 300:NEXT T:P0SI 
TI0N 3,0:? #6;A*(N1,13) 

912 GOTO 915 

914 SC1=SC1+25:PDSITI0N 3,0:? #6; "PLAY 
ER 1 GETS";:F0R T=l TO 300:NEXT T:P0SI 
TION 3,0:? I6;A$(N1,13) 

915 POSITION 2,0:? #6; "25 BONUS POINTS 
°;:F0R T=l TO 300:NEXT T.-POSITION 2,0: 
? #6;A$(N1,15) 

917 POP :0N PL GOTO 60,80 
Game over. 

920 ? *6;CHR*U25):PRINT #6:PRINT I6:P 

RINT #6; "FINAL SCORE:' 

925 PRINT *6:PRINT #6;"PLAYER 1 - ";SC 

1 

927 PRINT #6; "PLAYER 2 - ";SC2 

930 POSITION 0,15:PRINT *6;'PUSH TRIGG 

ER TD":PRINT #6; "PLAY AGAIN" 

935 IF STRI6(0)<>0 AND STRI6IDO0 THE 

N 935 

940 PRINT #6;CHR$(125):F0R T=l TO 50:N 

EXT T:G0T0 15 

Determine the number of joysticks 

available. 

950 DIM ST(2):ST(1)=0:PRINT *6;CHR$(12 
5):P0SITI0N 0,0:PRINT #6; "ARE BOTH PLA 
YERS US-"; 

951 ? #6;"ING THE SAME JOY- STICK?": 
ST(2)=0 

952 POSITION 8,4:? #6;" YES" : POSITION 
8,5:? #6;" NO" 



953 SOUND 0,121»(ST(2)+1),10,8:POSITIO 
N 8,4+ST(2):PRINT I6;">":IF STRIG(0)=0 

THEN SOUND 0,0, 0,0: GOTO 960 

954 IF STICK(0)=13 AND ST(2)=0 THEN ST 
(2)=1:G0T0 952 

956 IF STICK(0)=14 AND ST(2)=1 THEN ST 
(2) =0: GOTO 952 
958 GOTO 953 

Get player 1's skill level. 
960 FOR T=l TO 35:NEXT T.-PRINT *6;CHR$ 
(125):P0SITI0N 0,0 

962 PRINT 16; "SKILL PLAYER 1":F0R X=l 
TO 10.-P0SITI0N 5,X+5:PRINT I6;X:NEXT X 
:SKI=1 

964 SOUND 0,100+SKU15,10,B:P0SITI0N 4 
,SK1+5:PRINT #6;">":IF STRIG(0)=0 THEN 
980 

966 IF STICK(0!=14 AND SKD1 THEN POSI 
TION 4,SK1+5:PRINT #6;" ":SK1=SK1-1:G0 
TO 964 

968 IF STICK (01=13 AND SKK10 THEN POS 
ITION 4,SKH5:PRINT »6;" ":SK1=SK1+1:G 
0T0 964 
970 GOTO 964 
Get player 2's skill level. 

980 FOR T=l TO 35:NEXT T:PRINT #6;CHR$ 
(125):P0SITI0N 0,0 

981 PRINT #6; "SKILL PLAYER 2":F0R X=l 
TO 10:P0SITI0N 15,X+5:PRINT t6;X:NEXT 
X:SK2=1 

982 SOUND 0, 100+SK2*15, 10, 8: POSITION 1 
4,SK2+5:PRINT #6;">":IF STRIG(ST(2))=0 

THEN 987 

983 IF STICK(ST(2))=14 AND SK2>1 THEN 
POSITION 14,SK2+5:PRINT #6;" ":SK2=SK2 
-1 

984 IF STICK(ST(2))=13 AND SK2<10 THEN 
POSITION 14,SK2+5:PRINT #6;° ":SK2=SK 

2+1 

985 GOTO 982 

Get the number of rounds to play. 

987 FOR T=l TO 35:NEXT T:? #6;CHR$(125 
):P0SITIDN 0,0 

988 ? #6; 'HOW MANY ROUNDS DO YOU WANT 
TO PLAY?":F0R X=0 TO 9:P0SITI0N 8,X+6 

:? #6;X;" ';X:NEXT X:TENS=0 



SoftSide Selections #46 



A- 



J 

15 



SoftSide Selections #46 



989 SOUND 0, 115+TENS*15, 10, 8: POSITION 

7JENS+6:? #6;">":IF STRI6(0)=0 THEN 9 
94 

990 IF STICK (0) =14 AND TENS>0 THEN PQS 
ITION 7JENS+6:? #6;" ":TENS=TENS-1 

991 IF STICK(0)=13 AND TENS<9 THEN POS 
ITION 7.TENS+6:? #6;° ":TENS=TENS+1 

992 GOTO 989 

994 FOR T=l TO 35:NEXT T:KUNS=0:IF TEN 
S=0 THEN WUNS=1:P0SITI0N 10,6:? #6;" " 

995 SOUND 0, 115+WUMSJ15, 10, 8: POSITION 
ll.HUNS+6:? #6;"<": IF STRIG(0)=0 THEN 
999 

996 IF STICK (0) =14 AND ((TENS=0 AND WU 
NS>1) OR !TENS>0 AND WUNS>0)) THEN POS 
ITION ll,WUNS+6:? t6;" ":WUNS=WUNS-1 

997 IF STICK(0)=13 AND WUNS<9 THEN POS 
ITION ll,«UNS+6:? *6;" ":WUNS=WUNS+1 

998 60T0 995 

999 UH=TENStlO+NUNS:SOUND 0,0,0,0:PRI 
NT I6;CHR$(125):S0T0 20 

Transfer the character set from 
ROM to RAM, then redefine eight 
characters. 

1000 CHBAS=256I(PEEK(106)-4):P0KE 106, 
PEEK(106)-5:6RAPHICS 17:CHR0M=256»PEEK 
(756) 

1005 POSITION 6,5:PRINT #6; "rebound" :P 
OSITION 1,8:PRINT #6;"BY Stephen kuehn 
e" 

1007 POSITION 3,15:PRINT #6;"TRANSFERR 
ING":P0SITI0N 2,16:PRINT #6; "CHARACTER 
SET." 

1010 POSITION 3,17:? #6; "PLEASE WAIT." 
:F0R X=0 TO 1023:P0KE CHBAS+X,PEEK(CHR 
0H+X):NEXT X 
1020 POKE 756,CHBAS/256 
1030 FOR X=l TO 8:READ P:F0R Y=0 TO 7: 
READ Z:P0KE CHBAS+PtB+Y, Z:NEXT Y:NEXT 
X 

1100 DATA 60,0,64,32,16,8,4,2,0 
1110 DATA 15,0,2,4,8,16,32,64,0 
1120 DATA 10,60,126,255,255,255,255,12 
6,60 

1130 DATA 5,255,255,255,255,255,255,25 
5,255 

U40 DATA 59,127,255,255,255,255,255,2 
55,127 



-A- 



16 



1150 DATA 61,254,255,255,255,255,255,2 

55,254 

1160 DATA 8,0,2,4,8,16,32,64,0 

1170 DATA 9,0,64,32,16,8,4,2,0 

Display the instructions. 

1200 PRINT #6;CHR$(125):P0SITIQN 6,0:P 

RINT #6:" rebound ":PRINT #6 

1210 PRINT #6;"THE OBJECT OF RE-":PRIN 

T #6; "BOUND IS TO HIT THE":PRINT t6;"T 

ARGET WITH THE BALL"; 

1220 PRINT S6;"USINS AS FEW SLASHES";: 

PRINT #6; "AS POSSIBLE. YOU":PRINT 16; 

"MUST USE AT LEAST 1" 

1230 PRINT #6; "SLASH, AND EACH EX-":PR 

INT 86;"TRA SLASH AFTER THE":PRINT #6; 

"1ST DECREASES YOUR" 

1240 PRINT #6; "POSSIBLE SCORE FOR':PRI 

NT #6: "THAT ROUND. IF YQU":PRINT #6;" 

USE ONLY 1 SLASH, " 

1250 PRINT 16; "YOU WILL RECEIVE 15":PR 

INT #6; "POINTS. IF YOU USE":PRINT #6; 

"2 SLASHES, YOU HILL" 

1260 PRINT #6; "RECEIVE 14 POINTS, ":PRI 

NT #6; "AND SO ON, SO THAT":PRINT S6;"I 

F YOU USE MORE THAN"; 

1270 PRINT 16; "15 SLASHES, YOU WILL";: 

PRINT #6; "RECEIVE NO POINTS." 

1273 ? #6:? #6;" PRESS TRIGGER."; 

1275 IF STRIG(0)O0 AND STRIGIDOO TH 
EN 1275 

1276 PRINT 86;CHR$(125):FQR T=l TO 50: 
NEXT T:P03ITIDN 0,0 

1277 PRINT #6; "YOU HAVE A LIMITED": PRI 
NT #6; "AMOUNT OF TIME TO": PRINT #6; "HI 
T THE TARGET. A" 

1278 PRINT #6;"FflST HIGH BEEP WARNS";: 
PRINT #6; "YOU WHEN YOUR TIME":PRINT #6 
;"IS ALMOST UP.":PRINT »6 

1230 PRINT «6;"THE TRIGGER SERVES. ":PR 

INT #6;"PUSHING THE JOYSTICK";: PRINT t 

6; "LEFT PUTS A / IN" 

1290 PRINT t6; "FRONT OF THE 8ALL.':PRI 

NT tt6;"PUSHING THE JOYSTICK"; : PRINT #6 

; "RIGHT PUTS A \ IN" 

1300 PRINT #6; "FRONT OF THE BALL." 

1310 PRINT I6:PRINT #6; "PRESS TRI6GER 

TO":PRINT 86; "BEGIN." 



1320 IF STRI6(0)<>0 AND STRI6U1O0 TH 

EN 1320 

1330 PRINT #i;CHR*(125):FQR T=l TO 50: 

NEXT T 

1340 SOTO 15 








\) 







■ 



'# 







STOMP ^sni'r . .. 
^Jmv •»* TABLE 

For Atari® REBOUND 





STOMP 




LINES 


CODE 


LENGTH 


10 - 70 


ML 


534 


75 - 167 


Ell 


514 


170 - 235 


KF 


350 


237 - 315 


JW 


448 


320 - 460 


KL 


515 


470 - 720 


m 


509 


721 - 911 


JO 


523 


912 - 950 


UN 


544 


951 - 966 


BH 


554 


968 - 988 


80 


577 


989 - 997 


Rfi 


513 


998 - 1110 


ZB 


519 


1120 - 1230 


GP 


558 


1240 - 1277 


m 


550 


1278 - 1340 


GX 


454 




A- 



SoftSide Selections #46 



J 

17 



SoftSide Selections #46 is 

General Information ^ 

These are the standard procedures for the programs published by 
SoftSide Publications, Inc. Sometimes, a particular program does not 
lend Itself to these procedures. Always read the specific instructions 
accompanying a program. They will instruct you if there are any 
variances from the following procedures. Also, back issues of Soft- 
Side Magazine may differ In some details. 

w*«r// STOMP ^mUfir 

<*mw f ** TABLE ^JJt •«** 



STOMP Tables 

At the conclusion of each SoftSide listing, we include a STOMP 
Table. STOMP for the Atari appeared in Issue #45. STOMP supersedes 
SWAT as SoftSlde's standard debugging tool to help those who type 
BASIC programs from the pages of SoftSide Selections. If you don't 
have STOMP, we'll send you a free reprint. Send a business-sized, self- 
addressed, stamped envelope to: 

SoftSide Publications, Inc. 

Department STOMP 

10 Northern Blvd. 

Northwood Executive Park 

Amherst, NH 03031 
Be sure to tell us what kind of computer you have. 



Line Listings 



^ 



= — = IBWA'C USERS 

The line listings in this booklet appear in a 40-column format. If you 
type LIST when your computer is displaying 40-column text (WIDTH 
40), your screen should display exactly what appears in the printed 
listing. Be sure to use STOMP on your program, and get the free 
reprint if you don't have STOMP. 
/ 




APPLE® USERS 

The line listings in this booklet are in standard Applesoft® format, 
and they appear exactly as they should on your screen when you type 
LIST. Beginning with Issue #45, Applesoft listings In SoftSide Selec- 
tions may have lower-case characters in them. If you have an Apple lie 
or an Apple II with a lower-case adapter, you may type these listings 
exactly as they appear. If you have an Apple II without lower case, 
simply type the lower-case characters as capitals. STOMP, SoftSlde's 
debugging utility, ignores the case of characters, so both ways of typ- 
ing programs result in the same STOMP Table. 

Things to watch out for when typing are: 
• Lower-case characters: The Apple lie and some Apple ll's have 



flower case. Many programs we publish contain lower case. Since," 
STOMP, SoftSide's debugging utility, ignores the case of characters, 
you may use capital letters if you so desire or If your Apple doesn't 
have lower case. 

• REM and DATA statements: STOMP, like Applesoft, ignores REM 
statements. You do not have to type the text of REMs. STOMP also ig- 
nores the space or spaces between the keyword DATA and the first 
data element. Type numbers and strings In DATA statements exactly 
as they appear in the published listing. 

• Spaces between quotes: Applesoft is a bit eccentric about how it 
shows these. Just list the line after you type it, and compare it to the 
printed listing. 

Also, be sure to use STOMP on your program, and get the free 
reprint if you don't have STOMP. 



A 



ATARIUSERS 



• The line listings in this booklet are in standard 38-column format, 
with special conventions for representing unprintable characters: 

• You must type underlined characters, including blank spaces, in in- 
verse video. 

• When graphics or control characters are included In a string (be- 
tween quotation marks), a nearby REM statement will make note of it; 
in such cases, graphics characters appear as the corresponding 
lower-case letters, and control characters appear as the correspond- 
ing unshifted key symbols. For example: The lower-case letter s 
represents a graphic cross, which you type by pressing the S key while 
holding down the CTRL key; the = sign represents CTRL-down-arrow, 
which you type by pressing and releasing the ESC key, then pressing 
the = key while holding down CTRL. For more information about 
entering control characters, refer to Appendix F and the back cover of 
your Atari Reference Manual. 

There are two exceptions to our above convention: A clear-screen 
character (ESC SHIFT-CLEAR) appears in our listings as a right-hand 
brace, which looks like this: } . The other exception is that a shifted 
= sign appears as a broken, vertical line: |. 

Occasionally, a program will demand that we vary from these con- 
ventions. In such a case, a nearby REM statement or the program's in- 
troductory article will clearly note the special instructions. 



Copyright © 1983 SoftSide Publications, Inc. 

These programs are for your personal use only. Please resist the 
urge to give away copies of copyrighted material. 



SoftSide Selections #46 19 



The Best of SoftSide 

□ YES... I want to enjoy the best programs — Games. Utilities. 
Adventures — from SoftSide Magazine's past Please rush my 
copies of The Best of SoftSide to. 



Address 
City 



_SI.il. 



_Z.p 



Here's my order For The Best of SoftSide 




Computer 


Quantity 
Book Only 
$14.95 ea. 


Quantity 
Book plus Disk 
$49.95 ea. 


Apple® 






Atari" 






TRS-BO® 






TOTAL COPIES 


@$1 4.95 


@S49.95 



□ I've already ordered The Best of SoftSide 
book. I'm enclosing $35 for the disks only. 
I'm paying by: 

D Check # 

D Money Order # 

D VISA 

□ MasterCard 

Total Enclosed $ 



VISA/MasterCard #_ 
Name of Cardholder. 
Signature 



(Foreign order please include 55 postage 
PAY IN USA FUNDS ONLY.) 

Exp. Date_ 



Like SoftSide? Wait 'til you've seen our BEST! 




The Best 
of SoftSide! 



For the past four years, SoftSide Magazine has been bringing Apple®, Atari®, and 
TRS-80® owners the best in BASIC software. But now you can do even better. ..The 
Best of SoftSide. From all our back issues, we've selected the most useful. ..the most 
entertaining... the most fun programs SoftSide has ever published. 

The Best of SoftSide is available in three versions. ..one for Apple, Atari, and 
TRS-80. Each contains page after page of BASIC code for adventures, simulations, 
practical applications, and much more. 



To order your copy of The Best of SoftSide, fill out the coupon, and mail it along 
with $14.95 to SoftSide, 10 Northern Blvd., Northwood Executive Park, Amherst, 
New Hampshire 03031. 




Tired of Typing? 



• Use And Enjoy These Programs Right 
Away! 

• Avoid Worry About Typos! 

• Get Additional Programs to Enjoy 
Without Typing. 




Order this Issue's Programs on Disk or Cassette 



Send the coupon below to: 

SoftSide Publications, Inc. 

10 Northern Blvd. 

Northwood Executive Park 

Amherst, NH 03031 




^\i S^^\i 



_5J 



iae 



Selections 



ORDER THIS ISSUE'S MEDIA 

Having difficulty finding the time to input the programs 
from this issue of SoftSide Selections? Don't despair — the 
cassette and disk versions are still available! And, each DV 
(disk version) contains an additional program 

D #46 DV $19.95 □ #46 CV $14.95 

Disk Only: Q Apple® D IBM® PC 

Diik or Casutte: □ Atari* D TRS-80® Mod. I □ TRS-80* Mod. II! 

Name 

Address 

City/State 

D Check or Money Order 

□ MasterCard □ VISA 

Name of Cardholder 

MC#/ VISA# 

Exp. Date / / Signature. 



-Zip- 




Prices subject to change without notice. Apple*, IBM®, Atari® and TRS-80® are registered trademarks of Apple Computer, Inc., 
International Business Machines, Inc., Warner Communications, and Tandy Corporation respectively. 



FRONT RUNNER 



CRISIS 

A ruthless race of aliens has taken posses- 
sion of the Empire State Building. Your goal is 
to rescue the hostages. 

KANGARILLA 

Your baby kangaroo has wandered to the top 
of a four-level maze, and you must rescue him. 



REBOUND 

Fire the moving ball into the colored goal in 
the center of your screen, but count the bar- 
riers you erect with each press of the joystick. 
They block or bounce your ball in the right 
direction — and lower your score as they ac- 
cumulate. 



SOFTSIDE PUBLICATIONS, INC. 

Amherst, New Hampshire