Compare commits
No commits in common. "rawhide" and "f40" have entirely different histories.
5 changed files with 42 additions and 173 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,3 +1,2 @@
|
|||
/zork-1.0.2.tar.gz
|
||||
/zork-1.0.3.tar.gz
|
||||
/zork-1.1.0.tar.gz
|
||||
|
|
|
|||
139
README.md
139
README.md
|
|
@ -1,133 +1,16 @@
|
|||
```
|
||||
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.
|
||||
>
|
||||
```
|
||||
zork
|
||||
====
|
||||
|
||||
# DUNGEON (AKA Zork)
|
||||
|
||||
**Public Domain Source Code for the Mainframe Game "Dungeon"**
|
||||
|
||||
This repository contains the Public Domain source code for *Dungeon*, the mainframe version of the game that served as the precursor to Infocom's commercial *Zork* trilogy.
|
||||
This codebase is a C port derived from the FORTRAN source of **Zork 2.6**.
|
||||
Public Domain original DUNGEON game (Zork I)
|
||||
|
||||
|
||||
## Installation
|
||||
## About
|
||||
|
||||
### Fedora Linux
|
||||
Public Domain source code to the original DUNGEON game (Zork I).
|
||||
Released to the PD by Infocom.
|
||||
Includes source files, headers, and information.
|
||||
|
||||
This package is available in the official Fedora Linux repositories.
|
||||
You can install it directly via the command-line:
|
||||
|
||||
```bash
|
||||
sudo dnf install zork
|
||||
```
|
||||
|
||||
### Building from Source
|
||||
|
||||
To build the game from the source files in this repository:
|
||||
|
||||
```bash
|
||||
make
|
||||
```
|
||||
|
||||
|
||||
## Modern Maintainership & Philosophy (2013-12 to present)
|
||||
|
||||
**Current Maintainers:**
|
||||
|
||||
* Shane Thomas ([@devshane](https://github.com/devshane))
|
||||
* Jan Drögehoff ([@Jan200101](https://github.com/Jan200101))
|
||||
* Justin Wheeler ([@justwheel](https://github.com/justwheel))
|
||||
|
||||
**Project Philosophy:**
|
||||
|
||||
This project utilizes the FORTRAN source of *Dungeon* (Zork 2.6) as its foundation.
|
||||
The primary design goal is code preservation.
|
||||
We aim to maintain the logic and behavior of the game as accurately as possible while updating the codebase to compile and run on modern C compilers and operating systems.
|
||||
|
||||
|
||||
## History of the Implementation
|
||||
|
||||
This version of *Dungeon* has been modified from FORTRAN to C.
|
||||
The historical lineage of this code is as follows:
|
||||
|
||||
1. **Original Development (MDL)**:
|
||||
The original game (initially titled *Zork*) was written in the MDL programming language (MUDDLE) at the MIT Laboratory for Computer Science.
|
||||
2. **PDP-11 Translation (FORTRAN)**:
|
||||
Bob Supnik translated the MDL source into DEC FORTRAN for the PDP-11, renaming the game *Dungeon*.
|
||||
3. **UNIX Port (f77)**:
|
||||
The FORTRAN version was subsequently ported to `f77` for UNIX systems.
|
||||
4. **C Translation**:
|
||||
The C translation was generated from the `f77` version using `f2c`.
|
||||
`f2c` is a 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).
|
||||
|
||||
*Note on Zork I:*
|
||||
While often conflated, *Dungeon* differs from *Zork I*.
|
||||
*Zork I* is a microcomputer adaptation comprising approximately one-third of the original mainframe game's map and puzzles.
|
||||
*Dungeon* represents the more complete, albeit earlier, mainframe experience.
|
||||
|
||||
### I. From original game 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.
|
||||
|
||||
### II. DEC FORTRAN to f77 Conversion (1981-11-17)
|
||||
|
||||
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 (1985-12)
|
||||
|
||||
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 (1986-12-11)
|
||||
|
||||
**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 (1987-02-09)
|
||||
|
||||
**Bill Randle** added the PDP dependencies back into the Vax source files with `#ifdef`s 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 (1991-03-11)
|
||||
|
||||
**Ian Lance Taylor** 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** helped test it.
|
||||
**Jonathan Mark** made it work under MS-DOS and Microsoft C.
|
||||
This version of Dungeon was 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).
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (zork-1.1.0.tar.gz) = e72082b4e2e3ff8a68588ce19409fa132921e16e4d15cfef84c9471b3ac989a4d1c251bf2518ddfa7770b803b7dfc40c264377d5a1310688551413b73471cb3d
|
||||
SHA512 (zork-1.0.3.tar.gz) = def2063a01880eac1fac97a9fb2b4539202f13f9e18ed96275e23d7f73fefa68eff1b62ac256065aaf7603ea4dae3d84488fe8c3757881eb25eea8795e7c7d6a
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
From ce241188ca387a42c3ab09454c881acfe30c955e Mon Sep 17 00:00:00 2001
|
||||
From: "Justin Wheeler" <jwheel@fedoraproject.org>
|
||||
From: "Justin W. Flory" <git@jwf.io>
|
||||
Date: Tue, 30 Apr 2019 15:36:07 -0400
|
||||
Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
||||
|
||||
|
|
@ -8,9 +8,11 @@ Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
|||
dinit.c | 2 +-
|
||||
2 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 88305ce..aae1916 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -42,7 +42,7 @@
|
||||
@@ -42,7 +42,7 @@ TERMFLAG =
|
||||
# Uncomment the following line if you want to have access to the game
|
||||
# debugging tool. This is invoked by typing "gdt". It is not much
|
||||
# use except for debugging.
|
||||
|
|
@ -19,8 +21,8 @@ Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
|||
|
||||
# Compilation flags
|
||||
CFLAGS = -g #-static
|
||||
@@ -70,7 +70,7 @@
|
||||
$(CC) $(CFLAGS) -o zork $(OBJS) $(LDFLAGS) $(LIBS)
|
||||
@@ -69,7 +69,7 @@ dungeon: $(OBJS) dtextc.dat
|
||||
$(CC) $(CFLAGS) -o zork $(OBJS) $(LIBS)
|
||||
|
||||
install: zork dtextc.dat
|
||||
- mkdir -p $(BINDIR) $(LIBDIR) $(MANDIR)/man6
|
||||
|
|
@ -28,7 +30,7 @@ Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
|||
cp zork $(BINDIR)
|
||||
cp dtextc.dat $(DATADIR)
|
||||
cp dungeon.6 $(MANDIR)/man6/
|
||||
@@ -94,7 +94,7 @@
|
||||
@@ -93,7 +93,7 @@ local.o: local.c funcs.h vars.h
|
||||
$(CC) $(CFLAGS) $(GDTFLAG) -c local.c
|
||||
|
||||
supp.o: supp.c funcs.h vars.h
|
||||
|
|
@ -37,9 +39,11 @@ Subject: [PATCH 1/1] Makefile: Change compile options for Fedora RPM package
|
|||
|
||||
actors.o: funcs.h vars.h
|
||||
ballop.o: funcs.h vars.h
|
||||
diff --git a/dinit.c b/dinit.c
|
||||
index d687cf4..cda5878 100644
|
||||
--- a/dinit.c
|
||||
+++ b/dinit.c
|
||||
@@ -24,7 +24,7 @@
|
||||
@@ -24,7 +24,7 @@ FILE *dbfile;
|
||||
#define TEXTFILE "lib:dtextc.dat"
|
||||
#else /* ! __AMOS__ */
|
||||
#ifdef unix
|
||||
|
|
|
|||
57
zork.spec
57
zork.spec
|
|
@ -1,9 +1,9 @@
|
|||
Name: zork
|
||||
Version: 1.1.0
|
||||
Release: %autorelease
|
||||
Summary: Public Domain original DUNGEON game (AKA, Zork)
|
||||
Version: 1.0.3
|
||||
Release: 7%{?dist}
|
||||
Summary: Public Domain original DUNGEON game (Zork I)
|
||||
|
||||
License: LicenseRef-Fedora-Public-Domain
|
||||
License: Public Domain
|
||||
URL: https://github.com/devshane/zork
|
||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
|
||||
|
|
@ -15,17 +15,24 @@ BuildRequires: ncurses-devel
|
|||
|
||||
|
||||
%description
|
||||
Public Domain Source Code for the Mainframe Game "Dungeon". This repository contains the Public Domain source code for
|
||||
Dungeon, the mainframe version of the game that served as the precursor to Infocom's commercial Zork trilogy. This
|
||||
codebase is a C port derived from the FORTRAN source of Zork 2.6.
|
||||
Public Domain source code to the original DUNGEON game (Zork I). Released to
|
||||
the PD by Infocom. Includes source files, headers, and information.
|
||||
|
||||
This version of Dungeon was 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).
|
||||
|
||||
|
||||
%prep
|
||||
%global _hardened_build 1
|
||||
%autosetup
|
||||
|
||||
%build
|
||||
%make_build \
|
||||
CFLAGS="%{optflags} -std=c17" \
|
||||
CFLAGS="%{optflags}" \
|
||||
DATADIR="%{_datadir}/%{name}" \
|
||||
LDFLAGS="%{__global_ldflags}"
|
||||
|
||||
|
|
@ -49,30 +56,6 @@ echo ".so dungeon.6" > %{buildroot}%{_mandir}/man6/zork.6
|
|||
|
||||
|
||||
%changelog
|
||||
* Tue Jun 30 2026 Justin Wheeler <jwheel@fedoraproject.org> - 1.1.0-1
|
||||
- Update to v1.1.0
|
||||
- Upstream bug fixes: out-of-bounds array access, missing unistd.h header,
|
||||
localtime prototype, curses header preprocessor guard
|
||||
- Upstream build improvements: LDFLAGS support in Makefile
|
||||
- Migrate to %%autorelease
|
||||
- Remove unnecessary %%global _hardened_build 1 (default since F23)
|
||||
|
||||
* Sun Feb 22 2026 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.3-12
|
||||
- Fix FTBFS. Thanks @limb for the hotfix.
|
||||
- Upstream work ongoing for improved support with newer versions of the C programming language and compilers.
|
||||
|
||||
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-11
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
|
||||
|
||||
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-10
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-7
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
|
|
@ -91,12 +74,12 @@ echo ".so dungeon.6" > %{buildroot}%{_mandir}/man6/zork.6
|
|||
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Tue Mar 02 2021 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.3-1
|
||||
* Tue Mar 02 2021 Justin W. Flory <jflory7@fedoraproject.org> - 1.0.3-1
|
||||
- Fix reused integers from being optimized out.
|
||||
- Props to Jan Drögehoff (FAS: sentry) for sending this fix upstream to avoid carrying a Fedora-specific patch.
|
||||
- Remove grues.
|
||||
|
||||
* Wed Feb 17 2021 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-6
|
||||
* Wed Feb 17 2021 Justin W. Flory <jflory7@fedoraproject.org> - 1.0.2-6
|
||||
- Remove compiler optimization flag to workaround segfault while upstream change is assessed
|
||||
|
||||
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-5
|
||||
|
|
@ -105,12 +88,12 @@ echo ".so dungeon.6" > %{buildroot}%{_mandir}/man6/zork.6
|
|||
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0.2-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Mar 03 2020 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-3
|
||||
* Tue Mar 03 2020 Justin W. Flory <jflory7@fedoraproject.org> - 1.0.2-3
|
||||
- Add manpage alias for zork, to match binary executable
|
||||
- Add upstream 'history' file as a doc
|
||||
|
||||
* Tue Apr 30 2019 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-2
|
||||
* Tue Apr 30 2019 Justin W. Flory <jflory7@fedoraproject.org> - 1.0.2-2
|
||||
- Use Fedora CFLAGS during compilation
|
||||
|
||||
* Mon Apr 29 2019 Justin Wheeler <jwheel@fedoraproject.org> - 1.0.2-1
|
||||
* Mon Apr 29 2019 Justin W. Flory <jflory7@fedoraproject.org> - 1.0.2-1
|
||||
- First zork package
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue