The official ap2inf web page

If you just want to download ap2inf and don't want to read all this rubbish, then click here. Most of what is here is in the README file that's distributed with the archive anyway.

Welcome to the official ap2inf web page. I'm not expecting there to be a rush of sudden interest in ap2inf with the result that thousands of unofficial pages pop up, it's just that "ap2inf page" looked a bit too short and unimpressive.

That's nice. So what is ap2inf anyway?

Ap2inf is a computer program that I have written. It merges two of my areas of interest, these being old 8-bit computers and adventure games. The program's purpose is to extract data from Infocom disk images for the Apl2em Apple 2 emulator (and now ApplePC). The extracted data files can then be played with interpreters on other platforms.

Oh. Where do these disk images come from?

Disk images are created by transferring the disk data from an Apple 2 to a file on another machine via a serial cable or other device. If you have a PC and an Apple 2 with a serial card, you can use ADT. You could also just get disk images that have already been transfered from the infocom directory on ftp.apple.asimov.net.

Aha. And where do I get an interpreter?

There are interpreters available for just about every currently used platform. Here are a few ports of ZIP (originally written by Mark Howell): For Windows: WZIP, For X: XZIP, For the (gasp) Mac: MaxZip There are lots of other interpreters in the interpreters directory of the interactive fiction archive.

Okay... so where do I actually get ap2inf from?

The latest version is 1.4.2 and you can get it right here. It contains ANSI C source, a README file telling you how to use it and an MSDOS executable because people with MSDOS sometimes don't have C compilers.

And how does it work?

Here's a piece of the ap2inf README file. All options to ap2inf are specified on the command line. The format is as follows:

ap2inf [options] diskfile datafile

Diskfile is the name of the disk image file in the current directory and datafile is the name of the data file that the program will create. If a file of this name exists, it will be overwritten, so be careful. diskfile and datafile are required, whereas [options] are... optional. The options can be one or more of the following:

-h This gives help in using ap2inf. Since you're reading this file you probably shouldn't need to use this option. The program will not extract anything if this option is found.

-ix This is to specify the sector interleaving scheme to use. Using -i0 will cause the program to assume that the disk has no interleaving, which is true for most games. Using -i1 assumes standard DOS 3.3 interleaving such as interpreter E uses.

-lxxx This option allows the user to specify the length of the data file to extract. With most games this information is stored in the game header, but with the older games it is not. If there is no data length in the game header and none is specified on the command line then the maximum possible length of 131072 bytes is used so as to be sure not to truncate the data.

-cxxx This option allows the user to specify the checksum to use to check the integrity of the data file. As with the data length, this is usually stored in the game header but is absent in the older games.

-pxxx This is to specify padding. Older interpreters used to a use virtual memory style paging scheme due to memory constraints. Thus data files were padded with zeros to fill up the last page to the page size the interpreter used. Common values are 256 or 512 bytes. I'm sure that none of the modern commonly-used interpreters need the files to be padded in this way.

Which games will ap2inf work on?

It should work on all version 3 games. It won't work on multi-disk games. Specifically, it won't work on Bureaucracy, the only multi-disk Apple ][ game that I've come across. :( Well, not yet...

What systems will ap2inf work on?

The program is written in ANSI C and the source is provided, so it should (at least theoretically) be portable to any system that has an ANSI-compliant C compiler. A list of systems that I've actually compiled and run it on is in the README file.


If you have any questions (or answers) or anything else to talk about, send me some email.

Stephen Tjasink (stephen@tjasink.com)