Whoa!
Look what I just found!
https://eblong.com/infocom/
Scroll down, just below the index, under The collection. You will see links to download three zip files, which contain all the INFOCOM games' source codes and z-machine format files, as well as (very little) documentation on compiling from the source code (ZIL). There is a PDF on how to write games in ZIL by Steve Meretzky in there, though.
https://foss.heptapod.net/zilf/zilf/-/wikis/home
ZILF is used to compile the ZIL files to ZAP files.
ZAPF (part of ZILF) is used to compile ZAP files to Z3 (Z-code) files, which can be played with Frotz.
I also found this video, where a very helpful fellow shows us how to use ZIL, ZILF, and ZAPF:
https://www.youtube.com/watch?v=JpaBCb6qCCo
I know!
I've been reading ZIL for hours and hours (and hours) now!
I used ZILF and ZALF to compile hitchhiker-r60 to Z-code, and the game ran in Frotz.
...but who the heck wants to compile games to play? I'd rather be reading all this old source code, written by the masters!
Oh, just for completion's sake, Infocom manuals (or most of them):
http://infodoc.plover.net/manuals/index.html
It's a language that looks like LISP but doesn't act like it. That's hard to get my head around.
It's a language that looks like LISP but doesn't act like it.
Hey... There was a typographical error in my last post. I put "NIL" rather than "ZIL".
So, when you said "looks like LISP", I'm so silly that I just read my last post ("NIL") and searched for "NIL LISP". Oddly, that directly led to this on Wikipedia:
New Implementation of LISP (NIL) is a programming language, a dialect of the language Lisp, developed at the Massachusetts Institute of Technology (MIT) during the 1970s, and intended to be the successor to the language Maclisp.
https://en.wikipedia.org/wiki/NIL_(programming_language)
This is the point I realized I was mistakenly substituting "ZIL" with "NIL", but . . .
The guys at MIT also made Zork; did they not? And isn't it funny that NIL is not unlike LISP, only different, and that people from MIT wrote games in ZIL(and these guys loved to start their software names with a "Z") while using NIL for "serious" things?
Well, the information concerning ZIL says that it was made by removing stuff they didn't need from MDL 1, and MDL (Model Development Language) was apparently referred to as "More Datatypes than Lisp" and was a descendant of Lisp. 2
http://ifwiki.org/index.php/ZIL
https://en.wikipedia.org/wiki/MDL_(programming_language)
So, LISP begat MDL, which begat NIL and ZIL (outside of wedlock in ZIL's case, apparently).
So, mrangel is quite astute; is he not?
@mrangel
You might find this article informative (or entertaining, at least):
https://blog.zarfhome.com/2019/04/what-is-zil-anyway.html
Yeah… I vaguely know the history of ZIL. But every time I see it, it's strange and disconcerting to see a language whose structure and grammar are so clearly LISP-derived, without the 3 functions that make LISP effectively different from other programming languages. (cons
, car
and cdr
- although some people would argue lambda
is also required for a language to be truly LISP-like)
…don't get me started on cddar
, caddadr
, and similar. When we did Scheme in university, our class had a miniature reenactment of one of the early holy wars about "the right way to code" among LISP pioneers