• Please review our updated Terms and Rules here

Infocom Games and the FreHD?

tempest

Veteran Member
Joined
Sep 16, 2014
Messages
930
Location
SE Michigan
I just tried to run an Infocom game from my FreHD and it keeps asking me to insert disk 1 over and over. These worked just fine from the floppy disk I was using before. Is there a way to fix them so they work from a hard drive?
 
Most likely it is software protection (copy) and looks for some data on the floppy disk. Unfortunately this code is written into the software and unless you hack the software you probably won't have any luck getting the program to run. Many programs back in the day used this type of "legitimacy" coding to protect their software. If I am wrong in this assumption then I hope someone out there can answer tempest's question
 
It worked on the disk I copied it to though. I can't see why the hard drive would be any different.
 
Do a DIR (SYS,INV) of your disk (or disk image) and see if there are any hidden files, make sure they are copied over to drive 0 on the FreHD.
 
It was the caps lock. I was typing the name in in lowercase. When I switched to uppercase it worked.

For some reason my Model 4 always starts in lowercase. Any way to make it start in uppercase?
 
Assuming you're using LS-DOS, load the KI/DVR filter, set caps lock the way you want it set, then SYSGEN, which will save the current state of the filter (and all of your other drivers/settings) as the boot-time state.
 
It'd be good to download the LS-DOS manual so you have it as a handy reference. You can also use HELP DOS <command> or HELP DOS SYS <SYSTEM subcommand> to get online help.

The LS-DOS manuals as well as software images for pretty much everything Misosys owned can be found at http://www.tim-mann.org/misosys.html. DEFINITELY worth having a copy of this around.

In short, you'll want to do:
SET *KI KI/DVR

This will load the driver into high memory and you should then be able to toggle caps lock how you want it. There are other parameters you can add to allow type-ahead, change repeat rate, etc.

Then you just type SYSGEN, which has the effect of saving a copy of the state of high memory (where all the drivers live) to disk, and the OS reloads this automatically at boot time, so whatever state things were in is generally remembered across boots.
 
Thanks for the info.

I ran into another odd problem today. Weerd doesn't want to start up, it keeps complaining that it won't be able to save high scores because there's no disk in the drive (Ok I get that) but then it says to push break (or was it clear?) to continue but nothing happens.

I wonder if there's a way to make these games write to the hard drive instead of the disk in drive 0 (which doesn't exist)? Hacking them is beyond my abilities though.
 
There are quite a few versions of most of the Big Five games floating around out there and some have been hacked to save high scores to the HD but most haven’t. It’s a bit of a crap shoot and a process of elimination.
 
So there's no way to know except to try every version of a game and hope it's the right one? You'd think someone would have put them all in one place or at the very least have noted which ones were hacked for a hard drive.
 
I'm happy to just have them to try (some of the ZIPs contain multiple versions/hacks/revisions of the same piece of software, but there is very little info out there as to what the differences actually are.) It is what it is. :)
 
Okay, reviving a dead thread since I also wanted to figure this out and asked around, to no avail. So, after a bit of googling, I found this handy post from 1987 which basically helped a lot.

http://www.verycomputer.com/80_ac98b089ee5eea9e_1.htm

In short, to get this to work on a FreHD (or presumably any hard drive emulator, I'm using the TRS-IO with FreHD emulation), you basically need to do the following.

First, from a PC, you need to extract the DAT and CMD files from the disks, that's it. Trstools is the easiest way to do that. Now, the older games had some rudimentary naming scheme that will likely be a problem, so what I recommend is just copying the DAT file from the older disk over to your hard drive and rename it to something you can understand (like Z.DAT to ZORK1.DAT). Ignore the rest of the files. Now, from a later infocom game, such as Lurking Horror, copy the CMD from that disk (LURKING.CMD in this case). You can use this same CMD file for all of your games, the CMD file just needs to be copied and named to match the DAT file of the appropriate game (in this came, rename LURKING.CMD to ZORK1.CMD).

Next, copy the two files (DAT and CMD) over to your FreHD SD card (or SMB share for TRS-IO).

Finally, from the TRS-80, do the following (use appropriate names for whatever game you want to copy):

IMPORT2 ZORK1.DAT ZORK1/DAT
IMPORT2 ZORK1.CMD ZORK1/CMD
ATTRIB ZORK1/DAT (ACC=SMC,UPD=SMC,PROT=EXEC)

The Trs80 will respond with some message about file has no access password, just ignore that. Basically this was the 'copy protection' that infocom used.. it needed a password on the DAT file which is why it wasn't working when you copied it off the disk. I haven't yet tried this on every disk, and no idea if there were multi-disk infocom games or how one would handle that, but whatever.. I'll let someone else figure that out. :)
 
Okay, slight addendum to this. My lack of understanding on how passwords work on TRS-80 is causing a bit of a problem. So, as mentioned, the above works just fine although i don't think it really works correctly because that is a TRSDos 1.3 command. I noticed that it seems more correct in LDOS to use the following command:

ATTRIB ZORK1/DAT (USER="SMC", OWNER="SMC", PROT=EXEC)

Which, I think would be the correct command and legitimately locks the file as expected. However, here's where things get weird. Doing this command, I can definitely run the program just fine. However, when rebooting, it doesn't appear to work again. Now, if I redo the command, it'll work again on that boot. Also, once I do that command (or any type of attrib command maybe?), ALL of the infocom games work, whether or not I placed any security on them. I'm guessing the act of putting in a user password at all is what is making it work. So, yeah, to make this permanently work on every reboot (without having to retype one of the attrib commands) is where I'm stuck. Probably need someone who has a better understanding of passwords. Perhaps just adding some kind of auto command line upon boot to do the Attrib command? Not sure. Ideas welcome!
 
The Infocom games internally all use an interpreted "z-machine". So the game code itself is *exactly* the same between all the platforms they released their games on, and they only needed to port the interpreter. It's actually an extremely clever little virtual machine, imo.

Anyway, there's nothing in the zcode specification that knows anything about swapping disks, or even really anything about disks at all. To the 'terp, the game just appears as a contiguous series of bytes. Only the first 32k (iirc) of the z-machine is directly addressable, and all the extended (readonly) data (strings, etc) are referenced through some indirect addressing modes, allowing games larger than the RAM size of the host system to run on the interpreter. The particular interpreter implementations swap sections of the extended z-machine space in and out of native RAM at runtime. So a game running on a 640k IBM PC might just load the entire game into native RAM all at once, while the same game (running the same zcode image) on an Apple II or TRS-80 would only have parts of the game loaded at a particular time, and for large games those parts might be located on different physical disks.

So it almost HAS to be the *interpreter* that's screwing up your hard-drive installation, rather than the "game" itself. That is, the 'terp must be hard-coded to expect certain of the extended segments to be located on certain disks. The good news is, there are several 3rd party zcode interpreters out there (although I don't know anything about the ones for the TRS-80). You can probably get the game working by extracting the zcode image and then running it under a more modern interpreter that knows how to deal with your HD.

If you can't figure out how to get the zcode extracted, well............. Send me a PM.
 
well you could use a jcl file that does that attrib then launches the game ? it would be a work around no ?

such as PlayZork1/jcl:

ATTRIB ZORK1/DAT (USER="SMC", OWNER="SMC", PROT=EXEC)
ZORK1

and launch game with DO playzork1/jcl

rename repeat for other games

or set auto command on boot of hdd, with the AUTo command.. to set attribute on boot each time?
AUTO ATTRIB ZORK1/DAT (USER="SMC", OWNER="SMC", PROT=EXEC)
sysgen (drive=0)

then it will do it on every boot.
I know its not the answer your looking for, but some help to not have to type that command each time, at least until a better solution is found.
 
So it almost HAS to be the *interpreter* that's screwing up your hard-drive installation, rather than the "game" itself. That is, the 'terp must be hard-coded to expect certain of the extended segments to be located on certain disks. The good news is, there are several 3rd party zcode interpreters out there (although I don't know anything about the ones for the TRS-80). You can probably get the game working by extracting the zcode image and then running it under a more modern interpreter that knows how to deal with your HD.

If you can't figure out how to get the zcode extracted, well............. Send me a PM.

So, after I posted that, I did discover there isn't really any disk swapping in infocom games that I could find, so we're good there. And, as mentioned, all the zcode files are basically the same. I did copy a few more DOS DAT files over to the trs-80 and did the trick i mentioned in my post to get it to work. They all worked except a couple of the interactive fiction plus zcode games (like 'A mind forever voyaging'), but no matter.

Also, yes, I know I can play infocom games on any number of platforms, including my phone. The point of this thread is to play them on the TRS-80 on a Hard Disk. :)
 
Last edited:
then it will do it on every boot.
I know its not the answer your looking for, but some help to not have to type that command each time, at least until a better solution is found.

Yup, I thought of that. I also noticed that if you do the command at all, on any of the files, then all of them miraculously work at that point (until reboot). So, technically, I can just have the command issued upon bootup as well. I have a few ideas to get it to work and make an 'Infocom' FreHD disk (similar to your TTRGames one) and I can get them to always work. I was kinda hoping someone with knowledge of the trs-80 file system would understand what was going on here and provide a more elegant solution then the one you or I are proposing. :)
 
Back
Top