Difference between revisions of "Playing DUNGEON on VMS V1.0"

From Computer History Wiki
Jump to: navigation, search
(Fun with VMS V1.0 ...)
 
m (Added Dungeon link)
Line 1: Line 1:
 
'''UNDER CONSTRUCTION - NOT YET FINISHED!'''
 
'''UNDER CONSTRUCTION - NOT YET FINISHED!'''
  
You can play '''DUNGEON''' (aka '''ZORK''' or '''ADVENTURE''') on [[VMS]] V1.0!
+
You can play '''[[Dungeon]]''' (aka '''[[Zork]]''') on [[VMS]] V1.0!
  
 
There are FORTRAN sources for this game available; unfortunately there is no VAX FORTRAN V1.0 compiler for VMS V1.0 available yet, so this game had to be compiled with VMS V2.0 and VAX FORTRAN 2.4, but you won't notice any difference ;-)
 
There are FORTRAN sources for this game available; unfortunately there is no VAX FORTRAN V1.0 compiler for VMS V1.0 available yet, so this game had to be compiled with VMS V2.0 and VAX FORTRAN 2.4, but you won't notice any difference ;-)

Revision as of 07:45, 30 May 2022

UNDER CONSTRUCTION - NOT YET FINISHED!

You can play Dungeon (aka Zork) on VMS V1.0!

There are FORTRAN sources for this game available; unfortunately there is no VAX FORTRAN V1.0 compiler for VMS V1.0 available yet, so this game had to be compiled with VMS V2.0 and VAX FORTRAN 2.4, but you won't notice any difference ;-)

Installing DUNGEON

Get the DUNGEON RK07 disk image from here, unzip, and put it in your SIMH directory.

"Mount" the RK07 disk pack in your RK07 disk drive. Change the line in vax780.ini:

ATT HK1 DATA.RK7

to:

ATT HK1 DUNGEON.RK7

You can even load the disk pack while the simulator is running, just stop it for a moment using <CTRL + e>, type in the command from above, and resume the simulation using the c (continue) command.

When VMS is up and running, you have to mount the disk pack using the VMS MOUNT command:

$ MOUNT DM1: DUNGEON
%MOUNT-I-MOUNTED, DUNGEON      MOUNTED ON _DMA1:
$

You are curious, so you have a look what's on the disk pack:

$ DIRECTORY DM1:<000000>


DIRECTORY DM1:<000000>
29-MAY-79 20:01

000000.DIR;1        1.      C  22-NOV-78 17:26
BACKUP.SYS;1        0.         22-NOV-78 17:26
BADBLK.SYS;1        24.        22-NOV-78 17:26
BADLOG.SYS;1        0.         22-NOV-78 17:26
BITMAP.SYS;1        5.      C  22-NOV-78 17:26
CONTIN.SYS;1        0.         22-NOV-78 17:26
CORIMG.SYS;1        0.         22-NOV-78 17:26
DUNGEON.DIR;1       1.      C  22-NOV-78 17:27
INDEXF.SYS;1        28.        22-NOV-78 17:26
VOLSET.SYS;1        0.         22-NOV-78 17:26

TOTAL OF 59./76. BLOCKS IN 10. FILES
$

Aha, there's a directory DUNGEON - lets have a look into that:

$ DIRECTORY DM1:<DUNGEON>


DIRECTORY DM1:<DUNGEON>
29-MAY-79 20:02

DINDX.DAT;2         26.        07-DEC-78 00:00
DTEXT.DAT;3         462.       07-DEC-78 00:00
DUNGEON.COM;1       1.         22-NOV-78 17:34
DUNGEON.DOC;1       19.        22-NOV-78 17:35
DUNGEON.EXE;2       210.       07-DEC-78 00:00

TOTAL OF 718./736. BLOCKS IN 5. FILES
$

You cannot resist the temptation to try DUNGEON.COM:

$ @DM1:<DUNGEON>DUNGEON.COM
  PREVIOUS LOGICAL NAME ASSIGNMENT REPLACED
WELCOME TO DUNGEON.             THIS VERSION CREATED 3-NOV-78.
YOU ARE IN AN OPEN FIELD WEST OF A BIG WHITE HOUSE WITH A BOARDED
FRONT DOOR.
THERE IS A SMALL MAILBOX HERE.
>

You try HELP:

>HELP
USEFUL COMMANDS:

   THE 'BRIEF' COMMAND SUPPRESSES PRINTING OF LONG ROOM DESCRIPTIONS
FOR ROOMS WHICH HAVE BEEN VISITED.  THE 'SUPERBRIEF' COMMAND SUPPRESSES
PRINTING OF LONG ROOM DESCRIPTIONS FOR ALL ROOMS.  THE 'VERBOSE'
COMMAND RESTORES LONG DESCRIPTIONS.
   THE 'INFO' COMMAND PRINTS INFORMATION WHICH MIGHT GIVE SOME IDEA
OF WHAT THE GAME IS ABOUT.
   THE 'QUIT' COMMAND PRINTS YOUR SCORE AND ASKS WHETHER YOU WISH
TO CONTINUE PLAYING.
   THE 'SAVE' COMMAND SAVES THE STATE OF THE GAME FOR LATER CONTINUATION.
   THE 'RESTORE' COMMAND RESTORES A SAVED GAME.
   THE 'INVENTORY' COMMAND LISTS THE OBJECTS IN YOUR POSSESSION.
   THE 'LOOK' COMMAND PRINTS A DESCRIPTION OF YOUR SURROUNDINGS.
   THE 'SCORE' COMMAND PRINTS YOUR CURRENT SCORE AND RANKING.
   THE 'TIME' COMMAND TELLS YOU HOW LONG YOU HAVE BEEN PLAYING.
   THE 'DIAGNOSE' COMMAND REPORTS ON YOUR INJURIES, IF ANY.

COMMAND ABBREVIATIONS:

   THE 'INVENTORY' COMMAND MAY BE ABBREVIATED 'I'.
   THE 'LOOK' COMMAND MAY BE ABBREVIATED 'L'.
   THE 'QUIT' COMMAND MAY BE ABBREVIATED 'Q'.

CONTAINMENT:

   SOME OBJECTS CAN CONTAIN OTHER OBJECTS.  MANY SUCH CONTAINERS CAN
BE OPENED AND CLOSED.  THE REST ARE ALWAYS OPEN.   THEY MAY OR MAY
NOT BE TRANSPARENT.  FOR YOU TO ACCESS (E.G., TAKE) AN OBJECT
WHICH IS IN A CONTAINER, THE CONTAINER MUST BE OPEN.  FOR YOU
TO SEE SUCH AN OBJECT, THE CONTAINER MUST BE EITHER OPEN OR
TRANSPARENT.  CONTAINERS HAVE A CAPACITY, AND OBJECTS HAVE SIZES;
THE NUMBER OF OBJECTS WHICH WILL FIT THEREFORE DEPENDS ON THEIR
SIZES.  YOU MAY PUT ANY OBJECT YOU HAVE ACCESS TO (IT NEED NOT BE
IN YOUR HANDS) INTO ANY OTHER OBJECT.  AT SOME POINT, THE PROGRAM
WILL ATTEMPT TO PICK IT UP IF YOU DON'T ALREADY HAVE IT, WHICH
PROCESS MAY FAIL IF YOU'RE CARRYING TOO MUCH.  ALTHOUGH CONTAINERS
CAN CONTAIN OTHER CONTAINERS, THE PROGRAM DOESN'T ACCESS MORE THAN
ONE LEVEL DOWN.

FIGHTING:

   OCCUPANTS OF THE DUNGEON WILL, AS A RULE, FIGHT BACK WHEN
ATTACKED.  IN SOME CASES, THEY MAY ATTACK EVEN IF UNPROVOKED.
USEFUL VERBS HERE ARE 'ATTACK <VILLAIN> WITH <WEAPON>', 'KILL',
ETC.  KNIFE-THROWING MAY OR MAY NOT BE USEFUL.  YOU HAVE A
FIGHTING STRENGTH WHICH VARIES WITH TIME.  BEING IN A FIGHT,
GETTING KILLED, AND BEING INJURED ALL LOWER THIS STRENGTH.
STRENGTH IS REGAINED WITH TIME.  THUS, IT IS NOT A GOOD IDEA TO
FIGHT SOMEONE IMMEDIATELY AFTER BEING KILLED.  OTHER DETAILS
SHOULD BECOME APPARENT AFTER A FEW MELEES OR DEATHS.

COMMAND PARSER:

   A COMMAND IS ONE LINE OF TEXT TERMINATED BY A CARRIAGE RETURN.
FOR REASONS OF SIMPLICITY, ALL WORDS ARE DISTINGUISHED BY THEIR
FIRST SIX LETTERS.  ALL OTHERS ARE IGNORED.  FOR EXAMPLE, TYPING
'DISASSEMBLE THE ENCYCLOPEDIA' IS NOT ONLY MEANINGLESS, IT ALSO
CREATES EXCESS EFFORT FOR YOUR FINGERS.  NOTE THAT THIS TRUNCA-
TION MAY PRODUCE AMBIGUITIES IN THE INTEPRETATION OF LONGER WORDS.

   YOU ARE DEALING WITH A FAIRLY STUPID PARSER, WHICH UNDERSTANDS
THE FOLLOWING TYPES OF THINGS--

   ACTIONS:
        AMONG THE MORE OBVIOUS OF THESE, SUCH AS TAKE, PUT, DROP, ETC.
        FAIRLY GENERAL FORMS OF THESE MAY BE USED, SUCH AS PICK UP,
        PUT DOWN, ETC.

   DIRECTIONS:
        NORTH, SOUTH, UP, DOWN, ETC. AND THEIR VARIOUS ABBREVIATIONS.
        OTHER MORE OBSCURE DIRECTIONS (LAND, CROSS) ARE APPROPRIATE IN
        ONLY CERTAIN SITUATIONS.

   OBJECTS:
        MOST OBJECTS HAVE NAMES AND CAN BE REFERENCED BY THEM.

   ADJECTIVES:
        SOME ADJECTIVES ARE UNDERSTOOD AND REQUIRED WHEN THERE ARE
        TWO OBJECTS WHICH CAN BE REFERENCED WITH THE SAME 'NAME' (E.G.,
        DOORS, BUTTONS).

   PREPOSITIONS:
        IT MAY BE NECESSARY IN SOME CASES TO INCLUDE PREPOSITIONS, BUT
        THE PARSER ATTEMPTS TO HANDLE CASES WHICH AREN'T AMBIGUOUS
        WITHOUT.  THUS 'GIVE CAR TO DEMON' WILL WORK, AS WILL 'GIVE DEMON
        CAR'.  'GIVE CAR DEMON' PROBABLY WON'T DO ANYTHING INTERESTING.
        WHEN A PREPOSITION IS USED, IT SHOULD BE APPROPRIATE;  'GIVE CAR
        WITH DEMON' WON'T PARSE.

   SENTENCES:
        THE PARSER UNDERSTANDS A REASONABLE NUMBER OF SYNTACTIC CONSTRUC-
        TIONS.  IN PARTICULAR, MULTIPLE COMMANDS (SEPARATED BY COMMAS)
        CAN BE PLACED ON THE SAME LINE.

   AMBIGUITY:
        THE PARSER TRIES TO BE CLEVER ABOUT WHAT TO DO IN THE CASE OF
        ACTIONS WHICH REQUIRE OBJECTS THAT ARE NOT EXPLICITLY SPECIFIED.
        IF THERE IS ONLY ONE POSSIBLE OBJECT, THE PARSER WILL ASSUME
        THAT IT SHOULD BE USED.  OTHERWISE, THE PARSER WILL ASK.
        MOST QUESTIONS ASKED BY THE PARSER CAN BE ANSWERED.
>

O.k. that's it!

But the disk pack must be returned immediately - so stop that:

>QUIT
YOUR SCORE WOULD BE   0 [TOTAL OF 585 POINTS], IN    2 MOVES.
THIS GIVES YOU THE RANK OF BEGINNER.
DO YOU WISH TO LEAVE THE GAME?
YES
$

The disk pack was given to you from a friend on loan, so you will copy the game to your disk.

First, you create a directory to hold the game files:

$ CREATE/DIRECTORY DM0:<GAMES.DUNGEON>
$

Then you copy the game files to your new directory:

$ COPY/LOG DM1:<DUNGEON>*.* DM0:<GAMES.DUNGEON>
%COPY-S-COPIED, DM1:<DUNGEON>DINDX.DAT;2 COPIED TO DM0:<GAMES.DUNGEON>DINDX.DAT;2 (26 BLOCKS)
%COPY-S-COPIED, DM1:<DUNGEON>DTEXT.DAT;3 COPIED TO DM0:<GAMES.DUNGEON>DTEXT.DAT;3 (462 BLOCKS)
%COPY-S-COPIED, DM1:<DUNGEON>DUNGEON.COM;1 COPIED TO DM0:<GAMES.DUNGEON>DUNGEON.COM;1 (1 BLOCK)
%COPY-S-COPIED, DM1:<DUNGEON>DUNGEON.DOC;1 COPIED TO DM0:<GAMES.DUNGEON>DUNGEON.DOC;1 (19 BLOCKS)
%COPY-S-COPIED, DM1:<DUNGEON>DUNGEON.EXE;2 COPIED TO DM0:<GAMES.DUNGEON>DUNGEON.EXE;2 (210 BLOCKS)
%COPY-S-NEWFILES, 5 FILES CREATED
$

More in the next episode ...