-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Latest version 3.2B #12
Comments
Changelog from dungeon_doc.txt inside dungeon.zip:
|
Since I retranslated starting from the version 2.6A Fortran source (under C2021 within my copy of zork-fortran) and have mostly reconciled it with this C translation (under C1991 and also under my copy of this "zork" archive) - which comes off of the slightly later version 2.6B of the Fortran source, you can review the translate log and History file to see what kinds of things you'll need to do to complete a translation with f2c. The changes made, starting from the raw f2c conversion, are described in a fair amount of detail (and you can always see them directly by reviewing the branch history diff listings). It is certainly do-able to re-root the C translation in version 3.2 and to even merge it with this (or better: my) C translation; with a few provisos: most of the file-splittings in pre version 3 Fortran (e.g. dso{1,2,3,4,5,6,7}.c instead of just dso.c) were compromises made to respect the limitations of Fortran compilers of the time and are not necessary any more. The splits were kept intact in the C translations, but where undone in the Fortran versions by version 3 and files were reintegrated. There are far fewer source files in version 3 than in version 2. Besides re-merging split files, other files were joined together, e.g. cat {clockr,demons,actors}.f >timefnc.f. And, in addition, contents within the files were moved around to other files (e.g. CLOCKD moved from verbs.f to timefunc.f). GitHub does not handle file splittings and file joinings very well (i.e. there is no "git merge A B into C" or "git split C into A B"). So, it will be difficult to history-log the transitions in going from version 2 to 3. Yet, the transition process in going from version 2 to 3 - for both the Fortran version and any C translation of it - should be logged and it shouldn't just be simply a conversion rooted in version a 3 Fortran source as its starting point. It should be rooted in the earliest available sources. The first of the two links you posted from the (insecure) simh-trailing-edge link is version 3.2A and is already on GitHub in another archive also named "zork-fortran". The second of the two links you posted is version 3.2B. |
The history section doesn't mention the original MDL was ported to DEC FORTRAN by Bob Supnik.
Which is important, because he has the newer version 3.2B from 1996 available on his home page (still in DEC FORTRAN) which is newer than this C port which is based on his older version 2.5.6.
http://simh.trailing-edge.com/games/dungeon.zip
I know there is a 3.2B C port available, but this requires an additional library Glk and the even newer C++-17 port requires at least Gcc-7 which makes it less portable to especially older Unix systems.
I could compile this version on AIX with XL C successfully.
Could the changes be merged into this version, maybe allow to build version 2.5.6 or 3.2B by an option in the makefile?
Edit:
There is also a GNU G77 FORTRAN version of 3.2B available (needs dos2unix conversion and removal of ^L - sed -i 's/\o14//g' ).
https://www.ifarchive.org/if-archive/games/source/dungn32b.zip
But I had no luck in converting it with f2c (probably GNU extensions?) and Ubuntu has no more f77, but gfortran which also doesn't like the code (I have no experience with Fortran).
The text was updated successfully, but these errors were encountered: