Original Text of Gibson’s “Agrippa” Poem Extracted From Computer Memory During a Run of the Disk

Download diff file showing differences between poem extracted from disk and Web version on Gibson's site Also download agrippa.diff
Editor’s Note: The following was contributed on July 17, 2011, by Freek Wiedijk, a mathematician and Assistant Professor of Computing and Information Sciences at Radboud Universiteit Nijmegen, The Netherlands.

 

I have been a long time fan of William Gibson, and was very excited about Agrippa when it appeared, long ago. At the time I was a Mac hacker. However, as I did not have access to the disk in the Agrippa art-book, I could not play with that. Of course I dutifully downloaded, read and stored the “Agrippa” poem once it was “hacked”, but that was it. (It took a long time before I had an idea what the book itself looked like, though.)

So recently I discovered The Agrippa Files site, and downloaded both the disk image and the movie of the Agrippa disk running in emulation.

So then I wondered whether I could have gotten the text of the poem out of that disk myself (without retyping it, just by hacking.) Of course my “classic Mac” skills are very rusty by now, but I still wanted to try. And I indeed did manage to “hack” Agrippa relatively easily, in a crude but effective way.

I did this in three steps:

1. I ran Mini vMac on my iMac, and booted a system with the TMON debugger installed. It turns out that the Agrippa disk still runs in this situation. So then I interrupted the program when it was scrolling its text, and used the Find function of the User Area to locate the string ‘”I h’, or rather its hex equivalent 22492068, this being the start of the poem. And it turned out that the full text of the poem was just there, sitting in memory. But how to get at that in an easy way?

2. So then I repeated this experiment under Linux, where I ran minivmac under the ckpt checkpointing system. When the text was scrolling again, I just dumped the whole memory of the minivmac process (including the poem) into a file. And then I cut the poem from that file. The file was huge (it also included the emulator and everything), and the poem was in the middle of lots of incomprehensible stuff (see minivmac.ckpt.partdump), but that didn’t matter.

3. It turned out that the two bytes in front of the poem were in hexadecimal:

26BE

which is in decimal

9918

which in its turn is the length of the text if you include the two trailing spaces but don’t add a final line terminator. So I guess that’s what the poem is: something that ends in two space characters.

I include the relevant 9918 byte-long file of the text of the “Agrippa” poem (agrippa-poem-extracted-from-diskimage.txt) extracted from the disk image [item #D50]).

If you run the “strings -a” command on the dumped memory of the emulator, then the strings directly in front of the poem are:

/HUMC45:Desktop Folder:untitled folder:Files:It2
RED-FLAG
WHEAT
RETRO
TULSATIME
TTOP
DABORDH
DABORDV
DABORDTOP
*COLOR-WINDOW*n
*FENESTRE*
*MINGZI*
*TW*
*TV*
*ABOUT-AGRI*
*DABORD*
MY-PICT-PTR
THIS-PICT-PTRrap
FENESTRECT
ABOUT-RECT
DONE
THIS-NUM
THAT-NUM
RETURNS
HEAD
LITTLE
HERE
TAIL
NUM-CELLS
QUEST
TEMP1
TEMP2
TEMP3
START=
LAG
SOONER
LATER
DIFF
BUNCH
TRASH
SNDH
OLDSND
READ-THE
**:Agrippa
Agrippa(a book of the dead):
AgrippaC
Aggrippa
Helvetica
MORT
about Agrippa
Times
NUMB
UN-MAKE-DES
UN-DO-IT
UN-DO-TOO-IT
UP-IT
UPP-IT
UN-HAPPENIN

while the strings directly after the poem are:

UN-ROLL-ZI
HANG
SHOOT-GUNm
CAMERA
NA-BAOm
GET-IT
ROLL
UNMAKE
FINALE
THE-SHOW
TheStory

As I didn’t really study the code of the program, I have no idea what those strings refer to, but they look interesting.

Finally, there seem to be basically two versions of the “Agrippa” poem on the web. The one on Gibson’s site departs quite a bit from the version in the application. But the version that was distributed so widely back then differs somewhat too from the version that I found on the disk.

The easiest way to distinguish the “real” version (that I extracted from the disk) from the widely distributed version is that in the “real” version one reads

in chalk-like white pencil:

(as you also will see when you play the emulation), i.e., with a lower-case “i”, while in the web version it is

In chalk-like white pencil:

with an upper-case “I”. I include a full diff file (agrippa.diff) of these two versions. As you can see, the difference is mostly in the spaces.

So I don’t know whether the “deluxe edition” of Agrippa had the same disk as the “small edition.” [Editor's Note: recent examination of a "small edition" indicates that it did not include a disk, at least in the particular small edition that was examined.] Nor do I know whether there maybe have been different versions of the software. Who knows? So maybe this explains the difference between “i” and “I”? Or maybe it just was a typo when the people who got it out back-then did their thing then.

–Freek

P.S. I also include part of a hex dump of the file (minivmac.ckpt. partdump) in which I saved the state of the minivmac process (and from which I cut the “canonical Agrippa version that’s on the floppy”). The full “ckpt” file is 7640520 bytes long, and the “Agrippa” text starts in that file at offset 1867564 (hex: 1c7f2c, see line 202 of the dump). So this dump shows bytes 1865952-1877679, i.e., 11728 of bytes of the file. The “Agrippa” poem itself of course is 9918 characters long. (You can see the “26 be” bytes that give this number in front of the text on line 201 of the dump.)