its icon indicating copy to clipboard operation
its copied to clipboard

Port Frotz to ITS

Open larsbrinkhoff opened this issue 6 years ago • 61 comments

To play Zork I, II, III and other Infocom games.

Anachronistic? You bet.

larsbrinkhoff avatar Apr 18 '18 10:04 larsbrinkhoff

Related to this, @atsampson had a great idea: To make an interactive fiction game in the Tech Square universe.

We have a map of the ninth floor:
http://gunkies.org/wiki/Tech_Square

larsbrinkhoff avatar Apr 18 '18 11:04 larsbrinkhoff

http://inform-fiction.org/zmachine/standards/index.html has a detailed specification of the Z-Machine.

36bit avatar Apr 25 '18 02:04 36bit

Hello @ethandicks,

Retrocomputing fans will of course want to run the original RT-11 Z-machine. Is it available or buried under a heap of Activision lawyers?

larsbrinkhoff avatar Apr 25 '18 07:04 larsbrinkhoff

On Wed, Apr 25, 2018 at 3:06 AM, Lars Brinkhoff [email protected] wrote:

Hello @ethandicks,

Retrocomputing fans will of course want to run the original RT-11 Z-machine. Is it available or buried under a heap of Activision lawyers?

Hi, Lars,

I'm not sure about buried by lawyers, but the original Infocom Z-machine for RT-11 isn't hanging out on any servers I know of. It's been passed around from person to person over the past 10-15 years.

Besides the ifarchive, do you have a suggestion where it might be placed?

-ethan

ethandicks avatar Apr 25 '18 20:04 ethandicks

@ethandicks,

I would suggest Bitsavers.

Best regards, Lars

larsbrinkhoff avatar Apr 25 '18 20:04 larsbrinkhoff

@neozeed have shown interest in RT-11 Zork.

larsbrinkhoff avatar Apr 26 '18 07:04 larsbrinkhoff

Hello @DavidGriffith,

I see you make some interactive fiction of your own. (I remember reading about Uninvited in a magazine back in the day.) Maybe you'd like to make one about Tech Square 9th floor and its surroundings. It'd be another unauthorized adaptation. :-)

larsbrinkhoff avatar May 16 '18 17:05 larsbrinkhoff

Here's an RT-11 terp: http://ifarchive.org/indexes/if-archiveXinfocomXinterpretersXzemu.html

There should be some 8-inch RT-11 floppies floating around of the earliest of Infocom's games. The trick there is that the terp on the floppy would likely be able to do no more than V3 games. Zemu can do up to V5. It might do up to V8, but I'm not sure.

I can make a simulation of the 9th floor, but I'll need someone who knows the place better to add decorations.

DavidGriffith avatar May 17 '18 02:05 DavidGriffith

I can make a simulation of the 9th floor, but I'll need someone who knows the place better to add decorations.

Great! There's a map of the 9th floor here:
http://gunkies.org/w/images/2/29/9th_floor_techsquare.png

5th floor: http://images.slideplayer.com/32/9976732/slides/slide_25.jpg

There's also a short story about the basement. I'll contact the author about permission to use it.

larsbrinkhoff avatar May 17 '18 06:05 larsbrinkhoff

Can you run RT-11 on a 11/20 or a 11/45? 11SIM can do disk devices etc.

larsbrinkhoff avatar May 17 '18 06:05 larsbrinkhoff

NE43 floor plans:
http://www.ai.mit.edu/projects/vtour/floor0.html

larsbrinkhoff avatar May 17 '18 08:05 larsbrinkhoff

@DavidGriffith

I can make a simulation of the 9th floor, but I'll need someone who knows the place better to add decorations.

Let me know if you want to do this. We have floor plans for the entire building, room numbers, people's office number, which terminals were placed in which rooms, were the computers were located, etc. And the possibility to interview people for more details if necessary.

larsbrinkhoff avatar Jun 04 '18 08:06 larsbrinkhoff

What has this become? An intelligence operation?

larsbrinkhoff avatar Jun 04 '18 08:06 larsbrinkhoff

There's a Z Machine interpreter for Emacs, but I'm not sure if it's possible to run it on the earlier ITS version of it. http://ifarchive.org/indexes/if-archiveXinfocomXinterpretersXemacs.html

popeyeotaku avatar Nov 20 '18 18:11 popeyeotaku

Thanks. I'm quite sure it won't run on TECO EMACS. But you never know, there was some kind of Lisp interpreter written in TECO. Maybe @netsettler can tell us about that.

larsbrinkhoff avatar Nov 20 '18 18:11 larsbrinkhoff

@larsbrinkhoff, I wrote a special-purpose Lisp compiler (not interpreter) for TECO as part of ZBABYL. But it was exclusively for a set of patterns that were found in ZMAIL and ZBABYL init files, it wouldn't have helped at all for anything more general. I don't know of other Lisp in TECO hacks than that.

Unrelated to Lisp or Emacs (since I think it might have been written in Midas, but I just don't remember), there was also a very trivial zork placeholder that ran on MC as part of Games and that really existed only to tell you zork wasn't on that machine.

And finally anyone who wants to play original zork, not in the infocom form but in the original ITS form, you can find it at telehack.com along with a lot of other retro games.

netsettler avatar Nov 20 '18 20:11 netsettler

If we can get a halfway decent C compiler going for ITS and some docs for the screen-handling abstraction, then Frotz will work.

DavidGriffith avatar Nov 20 '18 20:11 DavidGriffith

@netsettler, we found that Zork placeholder, and it's part of this repository. The difference between the three versions is interesting and reflects events at MIT:

  • ZORK 19 has timestamp 1979-11-24. "The only MIT machine supporting Zork is MIT-DMS"
  • ZORK 20 has timestamp 1981-11-27. "No MIT machine supports Zork any longer."
  • ZORK 21 has timestamp 1987-11-13. "No MIT supports DM any longer."

I did play around in telehack a bit, but I didn't pay any attention to the games. Maybe they use the Confusion interpreter wich can run MDL Zork?

We do have the intpreter written in MIDAS, but Zork is too big to run interpreted. We do not yet have the MDL compiler.

larsbrinkhoff avatar Nov 21 '18 06:11 larsbrinkhoff

If we can get a halfway decent C compiler going for ITS

We have an excellently archaic C compiler for ITS! It's harks back to the very dawn of C, so I'm afraid you'll have to type =+ instead of +=. It was written at the Dynamic Modeling group (maybe called Programming Technology Division at that time?) so it's totally on topic for this thread.

larsbrinkhoff avatar Nov 21 '18 06:11 larsbrinkhoff

If we can get a halfway decent C compiler going for ITS

We have an excellently archaic C compiler for ITS! It's harks back to the very dawn of C, so I'm afraid you'll have to type =+ instead of +=. It was written at the Dynamic Modeling group (maybe called Programming Technology Division at that time?) so it's totally on topic for this thread.

I'm aware of a C header that lets you compile K&R C code on a modern compiler, but not one for the other way around

popeyeotaku avatar Nov 21 '18 06:11 popeyeotaku

I'm not sure what the status of K&R support in the latest C version is. I tested with GCC 5.4, and it does accept K&R function definitions.

What I have seen is a macro which can expand to either a K&R function definition, or an ANSI definition.

larsbrinkhoff avatar Nov 21 '18 06:11 larsbrinkhoff

Somebody here says they got the dumb terminal version of Frotz working on a 1985 K&R C compiler by changing one line (?????) https://bytes.com/topic/c/answers/220926-ansi-k-r

popeyeotaku avatar Nov 26 '18 21:11 popeyeotaku

Is there any guide on getting KCC to work? I found the modified compiler that builds as a Win32 fine, and it’ll output a MAC assembly file, but what about includes or libraries? Can you do the full cross compile from MS-DOS (Windows?)

Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10


From: everyfan [email protected] Sent: Tuesday, November 27, 2018 5:43:50 AM To: PDP-10/its Cc: neozeed; Mention Subject: Re: [PDP-10/its] Make Z-code interpreter (#815)

Somebody here says they got the dumb terminal version of Frotz working on a 1985 K&R C compiler by changing one line (?????) https://bytes.com/topic/c/answers/220926-ansi-k-rhttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbytes.com%2Ftopic%2Fc%2Fanswers%2F220926-ansi-k-r&data=02%7C01%7C%7C3eb5570190c44cd9b94008d653e841ad%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636788654323553778&sdata=ZemRnmBC2Sc4TFgrEJOkNDbY3wWaQfVoK%2BXnt3NFIr4%3D&reserved=0

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FPDP-10%2Fits%2Fissues%2F815%23issuecomment-441810236&data=02%7C01%7C%7C3eb5570190c44cd9b94008d653e841ad%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636788654323553778&sdata=dClkS99rjU6ajzSxlIRlklyrDbbLN8k3KcYPHwrWr%2FE%3D&reserved=0, or mute the threadhttps://nam05.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAInPD0oaPDOg_pToCZdtYnWFCFpUiNnrks5uzGCWgaJpZM4TZy6N&data=02%7C01%7C%7C3eb5570190c44cd9b94008d653e841ad%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636788654323553778&sdata=5FtDqzyjz4y4Ug7TIQnSB7nl7yI%2FafLE53xCn2wRUvo%3D&reserved=0.

neozeed avatar Nov 27 '18 02:11 neozeed

If there is a KCC guide, it should be here:
https://github.com/PDP-10/panda/tree/105fa46cdb9b31954a39e1845e9d0ab0411f3e50/files/kcc-6

That's for TOPS-20. It looks like KCC was first written for WAITS. It was never completely ported to ITS.

larsbrinkhoff avatar Nov 27 '18 06:11 larsbrinkhoff

Somebody here says they got the dumb terminal version of Frotz working on a 1985 K&R C compiler by changing one line (?????) https://bytes.com/topic/c/answers/220926-ansi-k-r

It looks like the trick was to remove the const qualifier. The version of Frotz they were working with is quite old given that the thread was last posted to in 2005.

DavidGriffith avatar Nov 27 '18 23:11 DavidGriffith

I see the old GCC unprotoize program was used to convert Frotz to K&R syntax. That could be a way to port more programs to ITS. The conversion could also be updated to translate += to =+ etc, and other possible quirks needed for the Snyder compiler.

larsbrinkhoff avatar Nov 29 '18 10:11 larsbrinkhoff

Lately I've seen some fixes in the current GCC concerning problems compiling PDP-11 code mentioned on the cctalk mailing list. Is there still PDP-10 support in there?

DavidGriffith avatar Dec 14 '18 00:12 DavidGriffith

The PDP-10 backend was never merged to mainline GCC. I'm not sure it's possible to do cleanly; I needed many hacks to make it do the right thing for word addressing and byte pointers.

larsbrinkhoff avatar Dec 14 '18 06:12 larsbrinkhoff

Another idea for a possible Tech Square interactive fiction game:
Have the game draw Maze War-like 3D graphics.

larsbrinkhoff avatar Mar 25 '19 15:03 larsbrinkhoff

Here's the ZIL assembler for TOPS-20:
https://github.com/historicalsource/minizork-1982/blob/65673bb4345f31fc3cb8f8aba9e6822fff1f99a6/zap.mid

Looks like it should port in a few days.

larsbrinkhoff avatar Apr 16 '19 09:04 larsbrinkhoff