[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