Rather like how things went with Scott Morgan’s Haunted House, I only had one puzzle left to go, the pit of acid. My previous post is needed for context.
I admit I simply had to pull open the source to figure this one out. I had tried the right object out, but the game needs a very very specific phrasing, and it makes me wonder where the author was getting his science knowledge from.
![]()
Here’s the basic gameplay loop section; after an action happens, most of the time the game does the command GOTO 410:
410 CALL CLEAR
420 IF W$=”N” OR W$=”S” OR W$=”E” OR W$=”W” OR W$=”D” OR W$=”U” OR W$=”O” OR SEG$(W$,1,2)=”GO” THEN CALL WALK
430 IF M$”” THEN DISPLAY AT(17,1):M$ ELSE M$=”OK” :: GOTO 430
440 DISPLAY AT(1,1):”LOCATION:”;L$(LOC)
450 DISPLAY AT(3,1):”YOU SEE:”;
You might think the different directions call some kind of subroutine which then refers to a data chart where locations are cross-referenced (something like ROOM, 5, 6, 0, 0, 0, 0, where North goes to room 5 and South goes to room 6), but CALL WALK is simply a routine that adds sound effects to the player walking around.
1880 CALL SOUND(5,-3,5) :: CALL SOUND(30,-7,20) :: CALL SOUND(500,-7,30) :: N=N+1
There is a data line that gives directions to the various rooms…
1770 DATA U,DN,S,,N,D,UEW,W,E,SWE,SE,N,NSE,NWE,NE,SE,W,NWE,NW,SW,EW,SD,U,N,O
…but this doesn’t get referred to at all in order to move the player around, just in order to fill the top display under DIRECTIONS. Basically the author is cheating; a normal parser would interpret the data and display directions based on the data, but here he’s listing the exits out manually as a text string. How does the movement actually happen, you might then ask? Manually for every single room. Here’s some of the hedge maze:
1150 IF W$=”N” AND LOC=15 THEN LOC=16 :: GOTO 410
1160 IF W$=”E” AND LOC=15 THEN LOC=14 :: GOTO 410
1170 IF W$=”S” AND LOC=16 THEN LOC=15 :: GOTO 410
1180 IF W$=”E” AND LOC=16 THEN LOC=17 :: GOTO 410
1190 IF W$=”W” AND LOC=17 THEN LOC=16 :: GOTO 410
1200 IF W$=”E” AND LOC=18 THEN LOC=19 :: GOTO 410
1210 IF W$=”W” AND LOC=18 THEN LOC=14 :: GOTO 410
1220 IF W$=”N” AND LOC=18 THEN LOC=22 :: GOTO 410
No other commands are understood, which is why the game is so unresponsive to bad commands.
This does have the odd side-effect of making the mirror room that required a scream being given more synonyms than typical…
730 IF W$=”SCREAM” OR W$=”SHOUT” OR W$=”HOWL” OR W$=”SCREECH” OR W$=”HOLLER” OR W$=”SING” OR W$=”YODEL” THEN 740 ELSE 750
…(that is, pitching an extra OR W$=”VERB” in the line is easy, adding cross-referenced verbs as data is hard) but generally speaking, everything is worse as you can’t tell from the game if a verb is wrong, a noun is wrong, an action is impossible, or the author just happened to fishing for a different phrasing of a command.
Now, here’s the whole section starting with the card-in-sewer leading up to the acid pit:
1320 IF W$=”LOOK SEWER” AND LOC=23 THEN M$=”YOU SEE A CARD.” :: GOTO 410
1330 IF W$=”TAKE CARD” AND LOC=23 AND O(17)=-1 THEN M$=”I CANNOT REACH THE CARD,WITH WHAT?” :: GOTO 410
1340 IF W$=”STICK GUM” AND LOC=23 THEN M$=”TO WHAT?” :: GOTO 410
1350 IF W$=”TO STICK” AND LOC=23 AND O(13)=0 THEN OT=1 :: GOTO 410
1360 IF W$=”WITH STICK” AND LOC=23 AND OT=1 AND O(17)=-1 THEN O(17)=0 :: M$=”I HAVE MANAGED TO GET IT!” :: GOTO 410
1370 IF W$=”LOOK DOOR” AND LOC=23 THEN M$=”IT READS:’EXIT'” :: GOTO 410
1380 IF W$=”GO DOOR” AND LOC=23 AND OPN=0 THEN M$=”CAN’T, IT’S CLOSED.” :: GOTO 410
1390 IF W$=”PUT CARD” AND LOC=23 AND O(17)=0 THEN M$=”INTO WHAT?” :: GOTO 410
1400 IF W$=”INTO SLOT” AND LOC=23 AND O(17)=0 THEN OPN=1 :: M$=”DOOR OPENS.” :: GOTO 410
1410 IF W$=”GO DOOR” AND LOC=23 AND OPN=1 THEN LOC=24 :: GOTO 410
1420 IF W$=”U” AND LOC=23 THEN LOC=22 :: GOTO 410
1430 IF W$=”N” AND LOC=24 THEN LOC=23 :: GOTO 410
1440 IF W$=”GO PIT” AND UN=0 AND LOC=24 THEN M$=”YOU WANT TO LIVE!” :: GOTO 410
1450 IF W$=”NEUTRALIZE ACID” AND LOC=24 AND UN=0 THEN M$=”WITH WHAT?” :: GOTO 410
1460 IF W$=”WITH LICHENS” AND LOC=24 AND UN=0 THEN O$(19)=”WATER PIT” :: UN=1 :: M$=”ACID TURNS TO WATER!” :: GOTO 410
The way through is to NEUTRALIZE ACID, and then say WITH LICHENS when the game asks. I did try THROW LICHENS (even before writing my last post) but that’s because I thought it’d have some interesting side effect, not that it would turn the substance into water somehow.
![]()
Anyone have an idea what he’s thinking of here? Some searching led to papers where the acid from lichen was removed via some process, but that’s the exact opposite of using lichen to remove external acid.
![]()
![]()
The source is a grand total of 219 lines, most of the sort shown above. The author seemed to be more concerned with utilizing the speaker of the TI-99/4A than consistent parser and world modeling.
2010 SUB CAROUSEL
2020 FOR A=1 TO 10 :: L=-99 :: CALL SOUND(L,523,0) :: CALL SOUND(L,659,0) :: CALL SOUND(L,659,0) :: CALL SOUND(L,523,0)
2030 CALL SOUND(L,440,0) :: CALL SOUND(L,440,0)
2040 NEXT A
We’re nearing the end of the trail with the TIVentures as this game says to play Stone Age, meaning we have finally learned what the full sequence is!
007 Aqua Base, Haunted House, Miner 49’er, In Search of the Four Vedas, Fun House, Stone Age
Coming up next: Stone Age, which hopefully will not recommend Aqua Base and put us into an infinite loop.





