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.

My guess is that he might have been drawing on something he saw in an old horror or sci-fi movie, rather than anything legitimately scientific. When I got there, I kind of half figured out where he was going with this, so I tried “ABSORB” acid and other variations of that, thinking that he meant to have the lichen act as a sort of sponge to get rid of it, but nothing worked. When I finally hit the code out of frustration, I was as surprised as you with the whole turning to water thing. But mainly I was irritated at such ridiculous verb usage.
Stone Age is just simplistic and boring, I’m afraid. The ending was kind of funny though, IIRC.
I already finished Stone Age and have my post half-written for tomorrow. (This one was scheduled ahead.) Honestly didn’t bug me since it was over quickly and I agree the ending was funny. If someone wanted to play any Morgan games I’d say start with Stone Age and go to Four Vedas and they can stop there. That’ll all wait until tomorrow when I finish though.
Well there’s a new verb for your list. I trust nothing has required “neutralize” yet? As for what he was thinking… maybe he was somehow associating lichens with “lye” or “lime,”* which are alkaline and might neutralize acid? But really I have no idea.
The author being more concerned with the TI-99/4A’s speaker than with making a good parser certainly jibes with how I used my TI-99/4A. I remember trying to program it to play “Alpha” by Vangelis–since I didn’t have a score and didn’t know what frequencies corresponded to which notes and am not super musical, this was challenging.
*The chemical, not the fruit, which leads to this amazing stackexchange question I found: “Why are limes alkaline, but lemons are acidic? They taste about the same.”
I read the link, and I’m still not sure how someone arrived at the idea that limes are alkaline and not acidic n the first place.
I think they just mixed up quicklime with the kind of limes you eat.
The reality show Rough Science (just scientists and nobody gets eliminated) has a really neat part in one of the episodes where one of the scientists makes “hand warmers” using quicklime (except it starts dissolving the bags, whoops).
https://www.pbs.org/weta/roughscience/series3/ice/handwarmers.html
See, had that been in the context of a game, I could imagine it being a “game logic” thing that limes could be analogous to garden lime – a Nord-and-Bert sort of thing, or just “Limes are the opposite of lemons”. That’s the kind of impressionistic logic you see in certain periods of video game.
Yes, NEUTRALIZE is new. What I should have done is do the Scott Adams style parser skip and go for WITH (X) for each item in my inventory. WITH LICHENS would then do the neutralizing. It doesn’t actually bother to check if you’ve asked for neutralizing first, the prompt it gives is to simply direct the player that “WITH” is really the right “verb” to apply here.
I thought that this might have something to do with acid “leaching” rather than “lichens” but that doesn’t make sense with the act of neutralization.
”SCREAM” OR W$=”SHOUT” OR W$=”HOWL” OR W$=”SCREECH” OR W$=”HOLLER” OR W$=”SING” OR W$=”YODEL”
I must admit I’m quite amused by the idea of yodeling to break glass.