[Simh] Quest from 1979 on RSTS/E V06C-03 in Simh

Will Senn will.senn at gmail.com
Sat Dec 29 10:42:49 EST 2018


All,

I had some fun over the past few days playing around with BASIC-PLUS and 
thought I would share it with you. I resurrected an old BASIC game and 
played it on SIMH running RSTS/E V06C-03 and BASIC-PLUS mostly to learn 
more about BASIC, my first language back in the day, but also to play an 
old style adventure inspired game that was originally written for a 
Commodore Pet 2001, the first computer I ever programmed.

Read on for some old time fun and reminiscence.

TLDR (links at bottom of email):
1. Grab SIMH
2. Grab RSTS/E V06C-03
3. Grab the source code
4. Fire up RSTS/E
5. Paste the source code into the BASIC-PLUS runtime
6. Play the game until you're weary of being lost
7. Read the code to 'cheat'

I wanted to learn BASIC "over the weekend". I found two books at the 
used bookstore that looked interesting on the subject:

1. Introduction to BASIC, by Digital Equipment Corporation (DEC), 1978.
2. BASIC, by M. Boillot and W. Horn, 1976

In preparing to go through the books, I wanted to find an environment 
that would allow me to just type in the examples, as written, and obtain 
the results, as written. So, I skimmed them looking for clues.

I found the following in the DEC book on page xv:

Because it is beyond the scope of this manual to describe each system 
and BASIC version, it is necessary to choose a representative pair for 
the presentation of examples. The examples in this manual are the result 
of using BASIC-PLUS on the RSTS/E system.

Further down the page, was an even more helpful bit:

In response to the HELLO input, RSTS/E prints a line of indentification 
such as:

RSTS V06B-02 Timesharing  Job 28  KB33  01-Dec-76  09:57 AM


The Boillot mentioned Dartmouth BASIC and it had pictures of DEC 
equipment, so I was hopeful I could find a DEC BASIC-PLUS environment to 
run examples from.

So I went looking for a PDP11 compatible RSTS V06B-02 Timesharing 
environment. Well, RSTS V06B-02 Timesharing doesn't appear to exist in 
accessible places on the internet. However, RSTS V06C-03, does. I 
downloaded the preconfigured RK disk image, fired up SIMH, and started a 
session:

pdp11

PDP-11 simulator V4.0-0 Beta        git commit id: 0a00d806
sim> attach rk1 rk2.dsk
sim> b rk1
Device DP23: does not interrupt - device disabled.
Device DP26: does not interrupt - device disabled.
Device DP27: does not interrupt - device disabled.
Device DP30: does not interrupt - device disabled.
Device DP31: does not interrupt - device disabled.


RSTS V06C-03 Vixen (DK1)

Option: START
JOB MAX or SWAP MAX changes? N
Table suboption? EXIT
DD-MMM-YY? 10-MAR-88
12:03 AM? 12:00PM
Command File Name?

HELLO 11/70
Password: PDP (won't echo)

Fix a few annoyances in RSTS:
RUN $TTYSET
TTYSET  V06C-03 RSTS V06C-03 Vixen
Terminal characteristics program
? LC INPUT
? lc output
? scope
? exit

Ready

5 REM THE OBLIGATORY CONFIRMATION THAT THE WORLD IS OK
10 PRINT "HELLO, WORLD."

RUN
NONAME  12:18 AM        10-Mar-88
HELLO, WORLD.

Ready

Next, I found and downloaded DEC-11-ORBPB-A-D_BASIC-PLUS_LangMan_Jul75 
and learned a bit about RSTS's dialog of BASCIC.

I tried some code from different sections of Boillot and they all worked 
as written. I tried a few from the DEC book and the manual and decided 
the environment was sufficient for learning BASIC. I then worked through 
both books and the manual. It's amazing how well written these books 
from a nearly forgotten era are compared to today's.

Once I got the hang of the language, I decided to go after a bigger fish 
- a 'real' program, a game, of course. The game I chose was Quest, by 
Roger Chaffee, originally published in Byte magazine in July of 1979. I 
had heard of Quest through another BASIC game I had played extensively 
back in the day, called Treasure, by James L. Dean. Dean wrote Treasure 
in 1980 and he credited Quest as inspiration for his game.

I downloaded archive.org's copy of the original article and printed out 
the source code. I spent a day typing it in line by line and another 
fixing my typos and misinterpretations (try reading a scan of a 40 year 
old magazine page and see if you do any better). But, eventually, I was 
able to fire it up:

QUEST   01:13 AM        10-Mar-88
                QUEST

YOU WERE WALKING THROUGH THE
WOODS, AND YOU CAME ACROSS THE ENTRANCE
OF A CAVE, COVERED WITH BRUSH.

PEOPLE SAY THAT MANY YEARS AGO A
PIRATE HID HIS TREASURE IN THESE
WOODS, BUT NO ONE HAS EVER FOUND IT.
IT MAY STILL BE HERE, FOR ALL I KNOW.

WHEN YOU ANSWER A QUESTION, I LOOK AT
ONLY THE FIRST LETTER, ALTHOUGH YOU CAN
TYPE THE WHOLE WORD IF YOU WANT.

TYPE N,S,E,W,U, OR D FOR NORTH, SOUTH,
EAST,WEST, UP OR DOWN. TYPE P FOR SCORE


YOU'RE OUTSIDE THE CAVE.
GO SOUTH TO ENTER.

                      WHICH WAY?

Yeeha! Three and a half hours later, I had had found the treasure and 
was wandering around trying to find my way out. I scoured the article 
for hints and found:

It is possible to get through the cave by reading the program and 
decoding the data which defines the connections. If you do that, you 
will deprive yourself of the pleasure of finally finding your way 
through. It is also possible to "help" a friend by telling him how to 
get through. I don't think the easy pleasure of knowing how to get 
through can equal the joy of discovering the way, or the satisfaction of 
having discover it, or the excitement of being on the way to discovering 
it. I also don't think that anyone who merely plays Quest can have as 
much fun as I have had in writing it, and watching other people use it.

Well that's a bummer, don't cheat and don't get help, love the thrill of 
figuring it out? how many more hours is that gonna take?

Then I found this in the same article:
No huge green snake will confront you, and event the pirate, who swoops 
down to protect his treasure at some point, is beyond your control. He 
steals back the treasure after you have found it, and the problem 
continues: find the treasure again, and find your way out of the cave. 
To make it more interesting, various passages open and close according 
to your progress through the game.

Wow! That's a bit more helpful, if cryptic. I wandered around looking 
for a way out to no avail.

I began to have doubts... I wasn't sure the code that I typed in was 
actually right, maybe the reason I was unable to get out of the cave was 
because I had mistyped a critical path...

I perused the code - oops! Should have heeded the author's advice. Sure 
enough my typed in code was good enough, my ancient text gaming skills 
were what were lacking. The solution is entirely encompassed by that 
little paragraph about the treasure, the pirate, and the passages. I 
have to differ with the author on one thing though, I really enjoyed 
finding the solution through both code and play.

Make no mistake, Quest is not Adventure, it is much smaller and simpler, 
but it's still fun and given that it ran in less than 7k, it's pretty fun.

Enjoy!

SIMH - https://github.com/simh/simh
RSTS/E V06C-03 - https://skn.noip.me/pdp11/rk2.dsk
Quest Source Code - 
https://drive.google.com/open?id=1yqQE6807RibvI8Lk3yaIRoY3OHjTwhXp
Annotated Source Code - 
https://drive.google.com/open?id=1Y7MsK7I6jkkUkPXY6nF6A9mmtc__ZEeP
BASIC-PLUS Language Manual - 
http://www.bitsavers.org/pdf/dec/pdp11/rsts/V06/DEC-11-ORBPB-A-D_BASIC-PLUS_LangMan_Jul75.pdf
July 1979 Byte Magazine - 
https://archive.org/details/byte-magazine-1979-07/page/n175

Shorter links for those really long ones:
Quest Source Code - https://bit.ly/2TeS2TJ
Annotated Source Code - https://bit.ly/2SycHC4
BASIC-PLUS Language Manual - https://bit.ly/2ESOa7X

Will



-- 
GPG Fingerprint: 68F4 B3BD 1730 555A 4462  7D45 3EAA 5B6D A982 BAAF



More information about the Simh mailing list