Castle Bally (in BALLY BASIC)

G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

Here's a short text adventure I wrote in BALLY BASIC.
BALLY BASIC has around 1,800 bytes, so I don't know
if this will fit (haven't not tested it out on a
real Bally or a Bally emulator).

But...if Bally tokenizes text like I think it
might, it just might fit. And I am assuming
the "@(X)" array works the same way in Tiny BASIC
as it does in Bally BASIC.

Here's the listing for CASTLE BALLY. It's a simple, 6-room
text adventure with multiple objects and a few monsters. I
haven't bug tested it yet, so it might be filled with
SYNTAX ERRORS.

Anyways...check it out, try it out and suggest code modifications
to me at: dunric@yahoo.com

If it works, awesome...if not, please offer suggestions on how
I can make this small text adventure fit into either BALLY BASIC or
ASTROCADE BASIC.

Here's the listing of "CASTLE BALLY":

1 CLEAR;X=0;PRINT "CASTLE BALLY"
5 PRINT "BY PAUL PANKS";PRINT
6 R=1;T=R;I=0;O=1;S=6;H=4;W=2;M=5;D=1;P=100
10 IF R=1GOSUB 100
11 IF R=2GOSUB 102
12 IF R=3GOSUB 104
13 IF R=4GOSUB 106
14 IF R=5GOSUB 108
15 IF R=6GOSUB 110
20 PRINT "<YOU SEE>"
21 IF O=R PRINT "COIL OF ROPE"
22 IF S=R PRINT "SWORD OF FIRE"
23 IF H=R PRINT "SHIELD OF ANG"
24 IF W=R PRINT "FIERY WEREWOLF"
25 IF M=R PRINT "MORDIMAR"
30 R=T;PRINT "OK"
31 Y=RND (6)+1;GOSUB 314
32 PRINT "1.GO 2.GET 3.DROP 4.USE"
33 PRINT "5.INVENTORY 6.QUIT"
34 INPUT "WHAT NOW> " X
40 IF X=1 GOTO 50
41 IF X=2 GOTO 62
42 IF X=3 GOTO 70
43 IF X=4 GOTO 80
44 IF X=5 T=R;R=99;GOTO 21
45 IF X=6 GOTO 99
48 GOSUB 112;GOTO 30
50 PRINT "<WHICH WAY>"
51 PRINT "1> N 2> S 3> E 4> W"
52 PRINT "5> U 6> D"
53 INPUT "CHOOSE 1 TO 6>" X
54 IF R=1 GOSUB 201
55 IF R=2 GOSUB 202
56 IF R=3 GOSUB 203
57 IF R=4 GOSUB 204
58 IF R=5 GOSUB 205
59 IF R=6 GOSUB 206
60 IF @(X)=0 GOSUB 112;GOTO 30
61 R=@(X);T=R;GOTO 10
62 IF O=R O=99;GOTO 30
63 IF S=R S=99;GOTO 30
64 IF H=R H=99;GOTO 30
65 GOTO 48
70 IF O=99 O=R;GOTO 30
71 IF S=99 S=R;GOTO 30
72 IF H=99 H=R;GOTO 30
73 GOTO 48
80 PRINT "<WHAT>"
81 IF O=99 PRINT "1. ROPE"
82 IF S=99 PRINT "2. SWORD"
83 IF H=99 PRINT "3. SHIELD"
84 INPUT "CHOOSE 1 TO 3> " X
85 IF X=1 GOSUB 301;GOTO 30
86 IF X=2 GOSUB 305;GOTO 30
87 IF X=3 GOSUB 312;GOTO 30
88 GOTO 48
99 END
100 PRINT "YOU ARE BY THE VILLAGE"
101 PRINT "NEAR A WELL. <SOUTH>";RETURN
102 PRINT "YOU ARE STANDING IN A "
103 PRINT "FOREST OF TREES. <N S E W>";RETURN
104 PRINT "YOU ARE FACING A LARGE"
105 PRINT "OAK TREE. <WEST,UP>";RETURN
106 PRINT "YOU ARE IN A VAST VALLEY"
107 PRINT "NEAR A POND. <EAST>";RETURN
108 PRINT "YOU ARE WITHIN A CASTLE"
109 PRINT "BY A THRONE. <NORTH>";RETURN
110 PRINT "YOU ARE UPON A BRANCH "
111 PRINT "ABOVE THE TREES. <DOWN>";RETURN
112 PRINT "YOU CAN'T SEE A WAY.";RETURN
201 @(1)=0;@(2)=2;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
202 @(1)=1;@(2)=5;@(3)=3;@(4)=4;@(5)=0;@(6)=0;RETURN
203 @(1)=0;@(2)=0;@(3)=0;@(4)=2;@(5)=6;@(6)=0;RETURN
204 @(1)=0;@(2)=0;@(3)=2;@(4)=0;@(5)=0;@(6)=0;RETURN
205 @(1)=2;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
206 @(1)=0;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=3;RETURN
301 IF O=99 GOTO 303
302 RETURN
303 IF R=3 R=6
304 RETURN
305 IF S=99 GOTO 307
306 RETURN
307 IF W=R W=98;PRINT "SLASH. IT DIES."
308 IF M=R M=98;PRINT "YOU KILLED MORDIMAR"
309 IF M=98 PRINT "YOU'VE WON!"
310 IF M=98 GOTO 99
311 RETURN
312 IF H=99 GOTO 314
313 RETURN
314 IF M=R GOTO 316
315 RETURN
316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!";GOTO 320
317 PRINT "THE SHIELD BLOCKS MORDIMAR"
318 PRINT "FROM ATTACKING YOU..."
319 RETURN
320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!";GOTO 99
321 PRINT "HE MISSED YOU..."
322 RETURN

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

dunric@yahoo.com wrote:
> Here's a short text adventure I wrote in BALLY BASIC.
> BALLY BASIC has around 1,800 bytes, so I don't know
> if this will fit (haven't not tested it out on a
> real Bally or a Bally emulator).

Even tokenised it's about 2,200 bytes so I fear it won't fit
(unless Bally BASIC has a cleverer tokeniser than I think).

It *does* run under the free version of BBC BASIC so long as
you change all the semicolons (;) to colons :)) and add a
DIM @(6) in line 1:

1 CLEAR:DIM @(6):X=0:pRINT "CASTLE BALLY"

See http://www.bbcbasic.co.uk/products/bbcwin/download.html

Richard.
http://www.rtrussell.co.uk/
To reply by email change 'news' to my forename.
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

Richard,

Here's the BBC BASIC version, with some minor code modifications, and
an added "look" command (which the previous version lacked):

1 CLEAR:DIM @(6):X=0:pRINT "CASTLE BALLY"
5 PRINT "BY PAUL PANKS":pRINT
6 R=1:T=R:I=0:O=1:S=6:H=4:W=2:M=5:D=1:p=100
9 REM MODIFIED FOR BBC BASIC FOR WINDOWS
10 IF R=1GOSUB 100
11 IF R=2GOSUB 102
12 IF R=3GOSUB 104
13 IF R=4GOSUB 106
14 IF R=5GOSUB 108
15 IF R=6GOSUB 110
20 PRINT "<YOU SEE>"
21 IF O=R PRINT "COIL OF ROPE"
22 IF S=R PRINT "SWORD OF FIRE"
23 IF H=R PRINT "SHIELD OF ANG"
24 IF W=R PRINT "FIERY WEREWOLF"
25 IF M=R PRINT "MORDIMAR"
30 R=T:pRINT "OK"
31 Y=RND (6)+1:GOSUB 314
32 PRINT "1.GO 2.GET 3.DROP 4.USE"
33 PRINT "5.INVENTORY 6. LOOK 7. QUIT"
34 INPUT "WHAT NOW> " X
40 IF X=1 GOTO 50
41 IF X=2 GOTO 62
42 IF X=3 GOTO 70
43 IF X=4 GOTO 80
44 IF X=5 T=R:R=99:GOTO 21
45 IF X=6 GOTO 10
46 IF X=7 GOTO 99
48 GOSUB 112:GOTO 30
50 PRINT "<WHICH WAY>"
51 PRINT "1> N 2> S 3> E 4> W"
52 PRINT "5> U 6> D"
53 INPUT "CHOOSE 1 TO 6>" X
54 IF R=1 GOSUB 201
55 IF R=2 GOSUB 202
56 IF R=3 GOSUB 203
57 IF R=4 GOSUB 204
58 IF R=5 GOSUB 205
59 IF R=6 GOSUB 206
60 IF @(X)=0 GOSUB 112:GOTO 30
61 R=@(X):T=R:GOTO 10
62 IF O=R O=99:GOTO 30
63 IF S=R S=99:GOTO 30
64 IF H=R H=99:GOTO 30
65 GOTO 48
70 IF O=99 O=R:GOTO 30
71 IF S=99 S=R:GOTO 30
72 IF H=99 H=R:GOTO 30
73 GOTO 48
80 PRINT "<WHAT>"
81 IF O=99 PRINT "1. ROPE"
82 IF S=99 PRINT "2. SWORD"
83 IF H=99 PRINT "3. SHIELD"
84 INPUT "CHOOSE 1 TO 3> " X
85 IF X=1 GOSUB 301:GOTO 30
86 IF X=2 GOSUB 305:GOTO 30
87 IF X=3 GOSUB 312:GOTO 30
88 GOTO 48
99 END
100 PRINT "YOU ARE BY THE VILLAGE"
101 PRINT "NEAR A WELL. <SOUTH>":RETURN
102 PRINT "YOU ARE STANDING IN A "
103 PRINT "FOREST OF TREES. <N S E W>":RETURN
104 PRINT "YOU ARE FACING A LARGE"
105 PRINT "OAK TREE. <WEST,UP>":RETURN
106 PRINT "YOU ARE IN A VAST VALLEY"
107 PRINT "NEAR A POND. <EAST>":RETURN
108 PRINT "YOU ARE WITHIN A CASTLE"
109 PRINT "BY A THRONE. <NORTH>":RETURN
110 PRINT "YOU ARE UPON A BRANCH "
111 PRINT "ABOVE THE TREES. <DOWN>":RETURN
112 PRINT "YOU CAN'T SEE A WAY.":RETURN
201 @(1)=0:mad:(2)=2:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
202 @(1)=1:mad:(2)=5:mad:(3)=3:mad:(4)=4:mad:(5)=0:mad:(6)=0:RETURN
203 @(1)=0:mad:(2)=0:mad:(3)=0:mad:(4)=2:mad:(5)=6:mad:(6)=0:RETURN
204 @(1)=0:mad:(2)=0:mad:(3)=2:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
205 @(1)=2:mad:(2)=0:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
206 @(1)=0:mad:(2)=0:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=3:RETURN
301 IF O=99 GOTO 303
302 RETURN
303 IF R=3 R=6
304 RETURN
305 IF S=99 GOTO 307
306 RETURN
307 IF W=R W=98:pRINT "SLASH. IT DIES."
308 IF M=R M=98:pRINT "YOU KILLED MORDIMAR"
309 IF M=98 PRINT "YOU'VE WON!"
310 IF M=98 GOTO 99
311 RETURN
312 IF H=99 GOTO 314
313 RETURN
314 IF M=R GOTO 316
315 RETURN
316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!":GOTO 320
317 IF S=99 PRINT "THE SHIELD BLOCKS MORDIMAR"
318 IF S=99 PRINT "FROM ATTACKING YOU..."
319 RETURN
320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!":GOTO 99
321 PRINT "HE MISSED YOU..."
322 RETURN

Note changes in lines 45 and 46 (quit and look commands) and
lines 317 and 318 (the shield now works to block the attack of
Mordimar if the player has it on hand).

I haven't tried this small adventure out in 8085 Tiny BASIC, but it
should
probably work in that as well.

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

Here's a corrected version for BBC BASIC that uses the shield correctly
in lines 318 and 319:

1 CLEAR:DIM @(6):X=0:pRINT "CASTLE BALLY"
5 PRINT "BY PAUL PANKS":pRINT
6 R=1:T=R:I=0:O=1:S=6:H=4:W=2:M=5:D=1:p=100
9 REM MODIFIED FOR BBC BASIC FOR WINDOWS
10 IF R=1GOSUB 100
11 IF R=2GOSUB 102
12 IF R=3GOSUB 104
13 IF R=4GOSUB 106
14 IF R=5GOSUB 108
15 IF R=6GOSUB 110
20 PRINT "<YOU SEE>"
21 IF O=R PRINT "COIL OF ROPE"
22 IF S=R PRINT "SWORD OF FIRE"
23 IF H=R PRINT "SHIELD OF ANG"
24 IF W=R PRINT "FIERY WEREWOLF"
25 IF M=R PRINT "MORDIMAR"
30 R=T:pRINT "OK"
31 Y=RND (6)+1:GOSUB 314
32 PRINT "1.GO 2.GET 3.DROP 4.USE"
33 PRINT "5.INVENTORY 6. LOOK 7. QUIT"
34 INPUT "WHAT NOW> " X
40 IF X=1 GOTO 50
41 IF X=2 GOTO 62
42 IF X=3 GOTO 70
43 IF X=4 GOTO 80
44 IF X=5 T=R:R=99:GOTO 21
45 IF X=6 GOTO 10
46 IF X=7 GOTO 99
48 GOSUB 112:GOTO 30
50 PRINT "<WHICH WAY>"
51 PRINT "1> N 2> S 3> E 4> W"
52 PRINT "5> U 6> D"
53 INPUT "CHOOSE 1 TO 6>" X
54 IF R=1 GOSUB 201
55 IF R=2 GOSUB 202
56 IF R=3 GOSUB 203
57 IF R=4 GOSUB 204
58 IF R=5 GOSUB 205
59 IF R=6 GOSUB 206
60 IF @(X)=0 GOSUB 112:GOTO 30
61 R=@(X):T=R:GOTO 10
62 IF O=R O=99:GOTO 30
63 IF S=R S=99:GOTO 30
64 IF H=R H=99:GOTO 30
65 GOTO 48
70 IF O=99 O=R:GOTO 30
71 IF S=99 S=R:GOTO 30
72 IF H=99 H=R:GOTO 30
73 GOTO 48
80 PRINT "<WHAT>"
81 IF O=99 PRINT "1. ROPE"
82 IF S=99 PRINT "2. SWORD"
83 IF H=99 PRINT "3. SHIELD"
84 INPUT "CHOOSE 1 TO 3> " X
85 IF X=1 GOSUB 301:GOTO 30
86 IF X=2 GOSUB 305:GOTO 30
87 IF X=3 GOSUB 312:GOTO 30
88 GOTO 48
99 END
100 PRINT "YOU ARE BY THE VILLAGE"
101 PRINT "NEAR A WELL. <SOUTH>":RETURN
102 PRINT "YOU ARE STANDING IN A "
103 PRINT "FOREST OF TREES. <N S E W>":RETURN
104 PRINT "YOU ARE FACING A LARGE"
105 PRINT "OAK TREE. <WEST,UP>":RETURN
106 PRINT "YOU ARE IN A VAST VALLEY"
107 PRINT "NEAR A POND. <EAST>":RETURN
108 PRINT "YOU ARE WITHIN A CASTLE"
109 PRINT "BY A THRONE. <NORTH>":RETURN
110 PRINT "YOU ARE UPON A BRANCH "
111 PRINT "ABOVE THE TREES. <DOWN>":RETURN
112 PRINT "YOU CAN'T SEE A WAY.":RETURN
201 @(1)=0:mad:(2)=2:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
202 @(1)=1:mad:(2)=5:mad:(3)=3:mad:(4)=4:mad:(5)=0:mad:(6)=0:RETURN
203 @(1)=0:mad:(2)=0:mad:(3)=0:mad:(4)=2:mad:(5)=6:mad:(6)=0:RETURN
204 @(1)=0:mad:(2)=0:mad:(3)=2:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
205 @(1)=2:mad:(2)=0:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=0:RETURN
206 @(1)=0:mad:(2)=0:mad:(3)=0:mad:(4)=0:mad:(5)=0:mad:(6)=3:RETURN
301 IF O=99 GOTO 303
302 RETURN
303 IF R=3 R=6
304 RETURN
305 IF S=99 GOTO 307
306 RETURN
307 IF W=R W=98:pRINT "SLASH. IT DIES."
308 IF M=R M=98:pRINT "YOU KILLED MORDIMAR"
309 IF M=98 PRINT "YOU'VE WON!"
310 IF M=98 GOTO 99
311 RETURN
312 IF H=99 GOTO 314
313 RETURN
314 IF M=R GOTO 316
315 RETURN
316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!":GOTO 320
317 IF H=99 PRINT "THE SHIELD BLOCKS MORDIMAR"
318 IF H=99 PRINT "FROM ATTACKING YOU..."
319 RETURN
320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!":GOTO 99
321 PRINT "HE MISSED YOU..."
322 RETURN

Note: H=99 in lines 317 and 318 is correct...NOT S=99 (which is the
sword).

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

Ok, I'm trying to adapt this small text adventure to the 5,200 bytes
free 8086 Tiny BASIC from 1982.

How do I make it work under TB as written? What modifications do I need
to make? And will TB read ASCII text files? I noticed that it saves in
a tokenized format which is unreadable gibberish in Notepad.

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

Here's a working Bally BASIC version of Castle Bally, courtesy of edits
made by Lance Squire.

Remaning ram (PRINT SZ) 110 with my edits...(see added edits below)

Lance F. Squire wrote:
> Here are some memory saving edits...
> Still typing in to see if it fits...
>
> Lance
>
> Paul wrote:
>
>>Here's a slightly updated and bugfixed version of CASTLE BALLY:
>>
>>1 CLEAR;X=0;PRINT "CASTLE BALLY
>>5 PRINT "BY PAUL PANKS";PRINT
>>6 R=1;T=R;I=0;O=1;S=6;H=4;W=2;M=5;D=1;P=100
>
> 10 GOSUB (R-1)*2+100
>
>
>>20 PRINT "<YOU SEE>
>>21 IF O=R PRINT "COIL OF ROPE
>>22 IF S=R PRINT "SWORD OF FIRE
>>23 IF H=R PRINT "SHIELD OF ANG
>>24 IF W=R PRINT "FIERY WEREWOLF
>>25 IF M=R PRINT "MORDIMAR
>>30 R=T;PRINT "OK
>>31 Y=RND (6)+1;GOSUB 314
>>32 PRINT "1.GO 2.GET 3.DROP 4.USE
>>33 PRINT "5.INVENTORY 6.LOOK 7.QUIT
>>34 INPUT "WHAT NOW> " X
>>40 IF X=1 GOTO 50
>>41 IF X=2 GOTO 62
>>42 IF X=3 GOTO 70
>>43 IF X=4 GOTO 80
>>44 IF X=5 T=R;R=99;GOTO 21
>>45 IF X=6 GOTO 10
>>46 IF X=7 GOTO 99
>>48 GOSUB 112;GOTO 30
>>50 PRINT "<WHICH WAY>
>>51 PRINT "1> N 2> S 3> E 4> W
>>52 PRINT "5> U 6> D
>>53 INPUT "CHOOSE 1 TO 6>" X
>
> 54 GOSUB R+200
>
>
>>60 IF @(X)=0 GOSUB 112;GOTO 30
>>61 R=@(X);T=R;GOTO 10
>>62 IF O=R O=99;GOTO 30
>>63 IF S=R S=99;GOTO 30
>>64 IF H=R H=99;GOTO 30
>>65 GOTO 48
>>70 IF O=99 O=R;GOTO 30
>>71 IF S=99 S=R;GOTO 30
>>72 IF H=99 H=R;GOTO 30
>>73 GOTO 48
>>80 PRINT "<WHAT>
>>81 IF O=99 PRINT "1. ROPE
>>82 IF S=99 PRINT "2. SWORD
>>83 IF H=99 PRINT "3. SHIELD
>>84 INPUT "CHOOSE 1 TO 3> " X

85 GOSUB X+400;GOTO 30

>>88 GOTO 48
>>99 END
>>100 PRINT "YOU ARE BY THE VILLAGE
>>101 PRINT "NEAR A WELL. <SOUTH>";RETURN
>>102 PRINT "YOU ARE STANDING IN A
>>103 PRINT "FOREST OF TREES. <N S E W>";RETURN
>>104 PRINT "YOU ARE FACING A LARGE
>>105 PRINT "OAK TREE. <WEST,UP>";RETURN
>>106 PRINT "YOU ARE IN A VAST VALLEY
>>107 PRINT "NEAR A POND. <EAST>";RETURN
>>108 PRINT "YOU ARE WITHIN A CASTLE
>>109 PRINT "BY A THRONE. <NORTH>";RETURN
>>110 PRINT "YOU ARE UPON A BRANCH
>>111 PRINT "ABOVE THE TREES. <DOWN>";RETURN
>>112 PRINT "YOU CAN'T SEE A WAY.";RETURN
>>201 @(1)=0;@(2)=2;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
>>202 @(1)=1;@(2)=5;@(3)=3;@(4)=4;@(5)=0;@(6)=0;RETURN
>>203 @(1)=0;@(2)=0;@(3)=0;@(4)=2;@(5)=6;@(6)=0;RETURN
>>204 @(1)=0;@(2)=0;@(3)=2;@(4)=0;@(5)=0;@(6)=0;RETURN
>>205 @(1)=2;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
>>206 @(1)=0;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=3;RETURN
>>301 IF O=99 GOTO 303
>>302 RETURN
>>303 IF R=3 R=6
>>304 RETURN
>>305 IF S=99 GOTO 307
>>306 RETURN
>>307 IF W=R W=98;PRINT "SLASH. IT DIES.
>>308 IF M=R M=98;PRINT "YOU KILLED MORDIMAR
>>309 IF M=98 PRINT "YOU'VE WON!
>>310 IF M=98 GOTO 99
>>311 RETURN
>>312 IF H=99 GOTO 314
>>313 RETURN
>>314 IF M=R GOTO 316
>>315 RETURN
>>316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!";GOTO 320
>>317 IF H=99 PRINT "THE SHIELD BLOCKS MORDIMAR
>>318 IF H=99 PRINT "FROM ATTACKING YOU...
>>319 RETURN
>>320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!";GOTO 99
>>321 PRINT "HE MISSED YOU...
>>322 RETURN
401 GOTO 301
402 GOTO 305
403 GOTO 312

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

No, I'm not sure if it can or not. It's based on Li-Chen Wang's Palo
Alto Tiny BASIC.

Paul
 
G

Guest

Guest
Archived from groups: rec.games.video.classic,alt.lang.basic (More info?)

I don't know if Bally BASIC can do text manipulation, but I shortened the
code quit a bit with the following:


54 IF R=1 THEN o0$="020000"
55 IF R=2 THEN o0$="153400"
56 IF R=3 THEN o0$="000260"
57 IF R=4 THEN o0$="002000"
58 IF R=5 THEN o0$="200000"
59 IF R=6 THEN o0$="000003"
60 IF mid$(o0$,x,1)"0" THEN GOSUB 112:GOTO 30
61 R=val(mid$(o0$,x,1)):T=R:GOTO 10


<dunric@yahoo.com> wrote in message
news:1120460043.796435.86950@g14g2000cwa.googlegroups.com...
> Here's a working Bally BASIC version of Castle Bally, courtesy of edits
> made by Lance Squire.
>
> Remaning ram (PRINT SZ) 110 with my edits...(see added edits below)
>
> Lance F. Squire wrote:
> > Here are some memory saving edits...
> > Still typing in to see if it fits...
> >
> > Lance
> >
> > Paul wrote:
> >
> >>Here's a slightly updated and bugfixed version of CASTLE BALLY:
> >>
> >>1 CLEAR;X=0;PRINT "CASTLE BALLY
> >>5 PRINT "BY PAUL PANKS";PRINT
> >>6 R=1;T=R;I=0;O=1;S=6;H=4;W=2;M=5;D=1;P=100
> >
> > 10 GOSUB (R-1)*2+100
> >
> >
> >>20 PRINT "<YOU SEE>
> >>21 IF O=R PRINT "COIL OF ROPE
> >>22 IF S=R PRINT "SWORD OF FIRE
> >>23 IF H=R PRINT "SHIELD OF ANG
> >>24 IF W=R PRINT "FIERY WEREWOLF
> >>25 IF M=R PRINT "MORDIMAR
> >>30 R=T;PRINT "OK
> >>31 Y=RND (6)+1;GOSUB 314
> >>32 PRINT "1.GO 2.GET 3.DROP 4.USE
> >>33 PRINT "5.INVENTORY 6.LOOK 7.QUIT
> >>34 INPUT "WHAT NOW> " X
> >>40 IF X=1 GOTO 50
> >>41 IF X=2 GOTO 62
> >>42 IF X=3 GOTO 70
> >>43 IF X=4 GOTO 80
> >>44 IF X=5 T=R;R=99;GOTO 21
> >>45 IF X=6 GOTO 10
> >>46 IF X=7 GOTO 99
> >>48 GOSUB 112;GOTO 30
> >>50 PRINT "<WHICH WAY>
> >>51 PRINT "1> N 2> S 3> E 4> W
> >>52 PRINT "5> U 6> D
> >>53 INPUT "CHOOSE 1 TO 6>" X
> >
> > 54 GOSUB R+200
> >
> >
> >>60 IF @(X)=0 GOSUB 112;GOTO 30
> >>61 R=@(X);T=R;GOTO 10
> >>62 IF O=R O=99;GOTO 30
> >>63 IF S=R S=99;GOTO 30
> >>64 IF H=R H=99;GOTO 30
> >>65 GOTO 48
> >>70 IF O=99 O=R;GOTO 30
> >>71 IF S=99 S=R;GOTO 30
> >>72 IF H=99 H=R;GOTO 30
> >>73 GOTO 48
> >>80 PRINT "<WHAT>
> >>81 IF O=99 PRINT "1. ROPE
> >>82 IF S=99 PRINT "2. SWORD
> >>83 IF H=99 PRINT "3. SHIELD
> >>84 INPUT "CHOOSE 1 TO 3> " X
>
> 85 GOSUB X+400;GOTO 30
>
> >>88 GOTO 48
> >>99 END
> >>100 PRINT "YOU ARE BY THE VILLAGE
> >>101 PRINT "NEAR A WELL. <SOUTH>";RETURN
> >>102 PRINT "YOU ARE STANDING IN A
> >>103 PRINT "FOREST OF TREES. <N S E W>";RETURN
> >>104 PRINT "YOU ARE FACING A LARGE
> >>105 PRINT "OAK TREE. <WEST,UP>";RETURN
> >>106 PRINT "YOU ARE IN A VAST VALLEY
> >>107 PRINT "NEAR A POND. <EAST>";RETURN
> >>108 PRINT "YOU ARE WITHIN A CASTLE
> >>109 PRINT "BY A THRONE. <NORTH>";RETURN
> >>110 PRINT "YOU ARE UPON A BRANCH
> >>111 PRINT "ABOVE THE TREES. <DOWN>";RETURN
> >>112 PRINT "YOU CAN'T SEE A WAY.";RETURN
> >>201 @(1)=0;@(2)=2;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>202 @(1)=1;@(2)=5;@(3)=3;@(4)=4;@(5)=0;@(6)=0;RETURN
> >>203 @(1)=0;@(2)=0;@(3)=0;@(4)=2;@(5)=6;@(6)=0;RETURN
> >>204 @(1)=0;@(2)=0;@(3)=2;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>205 @(1)=2;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=0;RETURN
> >>206 @(1)=0;@(2)=0;@(3)=0;@(4)=0;@(5)=0;@(6)=3;RETURN
> >>301 IF O=99 GOTO 303
> >>302 RETURN
> >>303 IF R=3 R=6
> >>304 RETURN
> >>305 IF S=99 GOTO 307
> >>306 RETURN
> >>307 IF W=R W=98;PRINT "SLASH. IT DIES.
> >>308 IF M=R M=98;PRINT "YOU KILLED MORDIMAR
> >>309 IF M=98 PRINT "YOU'VE WON!
> >>310 IF M=98 GOTO 99
> >>311 RETURN
> >>312 IF H=99 GOTO 314
> >>313 RETURN
> >>314 IF M=R GOTO 316
> >>315 RETURN
> >>316 IF Y<4 PRINT "MORDIMAR ATTACKS YOU!";GOTO 320
> >>317 IF H=99 PRINT "THE SHIELD BLOCKS MORDIMAR
> >>318 IF H=99 PRINT "FROM ATTACKING YOU...
> >>319 RETURN
> >>320 IF Y=2 PRINT "HE STRUCK A MORTAL BLOW!";GOTO 99
> >>321 PRINT "HE MISSED YOU...
> >>322 RETURN
> 401 GOTO 301
> 402 GOTO 305
> 403 GOTO 312
>
> Paul
>