Jump to content
IGNORED

Tower of Mystery


devwebcl

Recommended Posts

Ok - absolutely by curiosity...

 

I've retrieved game listing using VICE emulator, converted EOLs to ATASCII ones and tried to load it by ENTER"D:..." on Atari emulator.

 

And encountered this:

 

post-4727-0-34542200-1334950784_thumb.png

 

In the attachment the game listing in both formats (ASCII and ATASCII), for someone who would play with it.

 

Right now I have no idea what to do next.

tower.zip

Link to comment
Share on other sites

You will have much better luck if you use Atari Microsoft Basic. Since this is a text adventure, the conversion issues should be absolutely minimal.

 

Here is a screen shot of it running on my XL with AMSB.

 

-Larry

 

edit: AMSB will be the best "fit," but Basic XL and Basic XE both support string arrays (in a slightly different syntax, IIRC).

 

Atari BASIC does not support string arrays.

post-8008-0-91469700-1334963659_thumb.jpg

Link to comment
Share on other sites

I downloaded it from scribd and here is the patch for the Atari.

Program 2, Tower of Mystery, Modifications For Atari BASIC
Translation by Stephen Levy
2 GRAPHICS 0:SETCOLOR 1,0,12:SETCOLOR 2,0,4:SETCOLOR 4,0,4:P0KE 752,1
5 POKE 82,0:PRINT "PLEASE WAIT WHILE I GET READY":PRINT:PRINT
15 DIM C1$(10),C2$(10),A$(41),B$(10),C$(15)
20 DIM AC(NR,6),VB$(NV*5),OB$(NO*5),RM$(NR*41),TD$(NT*20),VN(NV),TL(NT),TF(NT)
30 RM$=" ":RM$(574)=RM$:RM$(2)=RM$:VB$=RM$:OB$=RM$:TM$=RM$
120 FOR I=1 TO NR:READ A$:RM$(I*41-40,I*41)=A$:NEXT I
130 FOR I=1 TO NV:READ A$,Q:VN(I)=Q:VB$(I*5-4,I*5)=A$:NEXT I
140 FOR I=1 TO NO:READ A$:OB$(I*5-4,I*5)=A$:NEXT I
150 FOR I=1 TO NT:READ A$,Q,Ql:TD$(I*20-19,I*20)=A$:TL(I)=Q:TF(I)=Q1:NEXT I
160 FOR I=1 TO NR:READ Q,Q1:AC(I,1)=Q:AC(I,2)=Q1
170 READ Q,Q1:AC(I,3)=Q:AC(I,4)=Q1:READ Q,Q1:AC(I,5)=Q:AC(I,6)=Q1:NEXT I

210 WD=0:PRINT RM$(RM*41-40,RM*41)
260 PRINT TD$(I*20-19,I*20)
320 IF AC(RM,I<>0 THEN PRINT VB$(I*5-4,I*5); "  ";
400 POKE 752,O:INPUT C$
405 IF C$="INVENTORY" THEN 2OOO
406 IF C$="LOOK" THEN 2610
440 A$=C$(I,I):A=ASC(A$):IF A>=97 AND A<=122 THEN A$=CHR$(A-32)
460 IF X=0 THEN C1$(LEN(C1$)+1)=A$:GOTO 490
470 TRAP 490:C2$(LEN(C2$)+1,LEN(C2$+1)=A$:TRAP 40000
510 Q=LEN(C1$):IF Q=5 THEN 515
512 FOR Q1=Q+1 TO 5:C1$(Q1,Q1)=" ":NEXT Q1:C1$=C1$(1,5)
515 Q=LEN(C2$):IF Q=5 THEN 520
517 FOR Q1=Q+1 TO 5: C2$(Q1,Q1)=" ":NEXT Q1:C2$=C2$(1,5)
530 IF VB$(C1*5-4,C1*5)=C1$ THEN C1=VN(C1):GOTO 600
620 IF OB$(C2*5-4,C2*5)=C2$ THEN 700
1930 TD$(1,19)="SLEEPY RATS":TL(6)=-1:RT=0
2020 IF TL(I)=0 THEN PRINT TD$(I*19-18,I*19):K=1
8230 CD=-1:CA=0:TD$(115,133)="DEAD COMPUTER"

 

Jay

Link to comment
Share on other sites

Thanks, AtariGeezer.

 

I've applied the patch, and also did some manual tampering like changing P0KE to POKE, "l" (small "L") to "1", and there was misspell near the beginning (no variable like TM$, I changed it to TD$).

 

Attached stand alone file to load it using LOAD"D:..." under Atari BASIC.

 

Not tested thoroughly, though. :)

TOWER.BAS

Link to comment
Share on other sites

Good work, Miker. You got better results than I did, but the Atari-modified version still doesn't quite work right under Atari Basic.

 

For instance, when you RUN then program, the very first "room description" is cut off -- it leaves off "clock tower."

 

I'm still looking for what causes that.

 

-Larry

Link to comment
Share on other sites

Not to say that I couldn't have mis-read, but I have checked all the patch lines against the book twice (fixed 1 or 2 small issues).

 

It looks to me like the room descriptions are too short. If you print RM$, the descriptors are cut off at 41 characters. The end of the RM$ string contains garbage. (?) I wonder if this was correct as published?

 

That Atari Microsoft Basic version is looking better and better! ;)

 

-Larry

 

edit: I think I've found a problem. As written, they have allowed 41 characters for each of the 14 room descriptions. The first, line 9000, has 53 characters. The rest have less than 41. Shorten line 9000, and it should work. If you lengthen the Strings (A$, RM$) then it may cause other problems.

 

 

 

I'm pretty sure that above patch has some bugs already. Mainly because of bad text OCR-ing...

Link to comment
Share on other sites

I'm pretty sure that above patch has some bugs already. Mainly because of bad text OCR-ing...

 

The OCR'd text was a big mess, I went through it correcting all the mistakes, or so I thought...

The TM$ ref was due to the RM$ OCR goof, but I did catch 4 more errors;

150 FOR I=1 TO NT:READ A$,Q,Q1:TD$(I*20-19,I*20)=A$:TL(I)=Q:TF(I)=Q1:NEXT I
320 IF AC(RM,I)<>0 THEN PRINT VB$(I*5-4,I*5); " ";
400 POKE 752,0:INPUT C$
405 IF C$="INVENTORY" THEN 2000

 

Line 150 had Ql not Q1

Line 320 was missing the ")" in AC(RM,I<>0

Line 400 had a "O" in the Poke instead of a 0 (zero)

Line 405 was 2OOO, not 2000

 

Jay

Edited by AtariGeezer
Link to comment
Share on other sites

OK, changed TD$ back to RM$ in line 30.

 

Now try this one:

 

Line 30 should be

30 RM$=" ":RM$(574)=RM$:RM$(2)=RM$:VB$=RM$:OB$=RM$:TD$=RM$

 

Jay

Hm... so it's already in attachment to post #11. Maybe something else is screwed...

 

but tower3.bas has at the end of line 30:

 

RM$=RM$

 

line 400 has the miss 752,0 yet (it has an "O" instead)

Edited by devwebcl
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...