Skip to content

1Bitsy/1bitsy-zork

Repository files navigation

README

This repository contains a port of the Public Domain source code to the original DUNGEON game (Zork I) code to the 1Bitsy microcontroller platform.

The original DUNGEON source code has been released to the PD by Infocom.

This implementation uses the MDL ported to Fortran translated to C code from github.com/devshane/zork repository and adds USB cdcacm serial interface. You can play Zork on a 1Bitsy by connecting to the virtual serial port:

cu -l /dev/ttyACM0 -s 115200

You should be presented with the following prompt:

Welcome to Dungeon. This version created 11-MAR-91 You are in an open field west of a big white house with a boarded front door. There is a small mailbox here.

Credits

Huge thanks to @kbob (Bob Miller) for adapting the original unix code to run on the 1Bitsy microcontroller board. All credit goes to him for the 1Bitsy port.

Compiling

You will have to fetch the libopencm3 submodule by running:

git submodule init
git submodule update

You compile the needed part of the library and the project firmware by invoking "make" in the toplevel directory.

Executing "make flash" will try to use arm-none-eabi-gdb to connect ta a Black Magic Probe and upload the firmware to your 1Bitsy.

Contributions

Pull requests simplifying and making this code easier or more powerful to are welcome! Please strive to keep things tidy. :)

TODO

The following features would be nice to have:

  • Saving and loading gamestate from/to onboard Flash

History of the C Implementation of Dungeon

This version of dungeon has been modified from FORTRAN to C. The original was written in DEC FORTRAN, translated from MDL. It was then translated to f77 for UN*X systems, from which it was translated to C. The C translation was done with the help of f2c, the FORTRAN to C translator written by David Gay (AT&T Bell Labs), Stu Feldman (Bellcore), Mark Maimone (Carnegie-Mellon University), and Norm Schryer (AT&T Bell Labs).

I. From the original documentation...

To: Dungeon Players From: "The Translator" Subj: Game Information Date: 8-OCT-80

This is the first (and last) source release of the PDP-11 version of Dungeon.

Please note that Dungeon has been superceded by the game ZORK(tm). The following is an extract from the new product announcement for ZORK in the September, 1980 issue of the RT-11 SIG newsletter:

"'ZORK: The Great Underground Empire - Part I' ...was developed by the original authors based on their ZORK (Dungeon) game for the PDP-10. It features a greatly improved parser; command input and transcript output files; SAVEs to any device and file name; and adaptation to different terminal types, including a status line on VT100s. Note: this is not the FORTRAN version that has been available through DECUS. This version has been completely rewritten to run efficiently on small machines - up to 10 times as fast as the DECUS version.

...ZORK runs under RT-ll, HT-ll, or RSTS/E and requires as little as 20K words of memory and a single floppy disk drive. The game package, consisting of an RX01-format diskette and an instruction booklet, is available from Infocom, Inc., P.O. Box 120, Kendall Station, Cambridge, Ma. 02142."

ZORK(tm) is a trademark of Infocom, Inc. It is available for several popular personal computers as well as for the PDP-ll.

Summary

Welcome to Dungeon!

Dungeon is a game of adventure, danger, and low cunning. In it you will explore some of the most amazing territory ever seen by mortal man. Hardened adventurers have run screaming from the terrors contained within.

In Dungeon, the intrepid explorer delves into the forgotten secrets of a lost labyrinth deep in the bowels of the earth, searching for vast treasures long hidden from prying eyes, treasures guarded by fearsome monsters and diabolical traps!

No DECsystem should be without one!

Dungeon was created at the Programming Technology Division of the MIT Laboratory for Computer Science by Tim Anderson, Marc Blank, Bruce Daniels, and Dave Lebling. It was inspired by the Adventure game of Crowther and Woods, and the Dungeons and Dragons game of Gygax and Arneson. The original version was written in MDL (alias MUDDLE). The current version was translated from MDL into FORTRAN IV by a somewhat paranoid DEC engineer who prefers to remain anonymous.

On-line information may be obtained with the commands HELP and INFO.

II. DEC FORTRAN to f77 Conversion (17-nov-81)

The conversion from DEC FORTRAN to Unix f77 was done by Randy Dietrich, Lynn Cochran and Sig Peterson. Much hacking was done to get it to fit in the limited address space of a PDP-11/44 (split I/D). Suffice it to say that by leaving out the debugging package and not linking in the f77 i/o library they managed to get it to run.

III. PDP to VAX (dec-85)

Based on the work of Randy, Lynn and Sig, Bill Randle folded in the full save/restore functions and the game debugging package (gdt) into the pdp version to create a Vax/Unix version. This version also uses f77 i/o, thus eliminating the extra speak and listen processes needed on the pdp.

IV. Cleanup I (11-dec-86)

John Gilmore (hoptoad!gnu) cleaned up the source files by moving most of the common declarations into include files and added comments from the original (FORTRAN or MDL?) source. His efforts are greatly appreciated.

V. Cleanup II (9-feb-87)

Bill Randle (billr@tekred.tek.com) added the pdp dependencies back into the Vax source files with #ifdefs in order to have just one set of sources. Previously, there were two sets of source: one for the pdp and one for the Vax. In addition, a shell escape of the form !cmd was added and the wizard can enter the gdt without having to recompile the source. Finally, a man page was generated, based on the dungeon.doc file.

VI. f77 to C (11-mar-91)

Ian Lance Taylor (ian@airs.com or uunet!airs!ian) used the f2c translator to generate C source code. The resulting code was modified to remove the FORTRAN I/O library, to add simple more processing, and to change the format of the database file. Andre Srinivasan (andre@cs.pitt.edu) help test it. Jonathan Mark (uunet!microsoft!jonm) made it work under MS-DOS and Microsoft C.

About

1Bitsy port of the original DUNGEON (Zork I)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages