Newsgroups: rec.arts.int-fiction
Path: nntp.gmd.de!news.ruhr-uni-bochum.de!news.rhrz.uni-bonn.de!RRZ.Uni-Koeln.DE!news.gtn.com!osn.de!noris.net!blackbush.xlink.net!tank.news.pipex.net!pipex!newsfeed.internetmci.com!hunter.premier.net!news1.erols.com!howland.erols.net!netcom.com!erkyrath
From: erkyrath@netcom.com (Andrew Plotkin)
Subject: Re: Undo and the Twelve Cube Puzzle (was: [Inform] Turn off "undo")
Message-ID: <erkyrathDx8tDI.JrH@netcom.com>
Organization: NETCOM On-line Communication Services (408 261-4700 guest)
X-Newsreader: TIN [version 1.2 PL1]
References: <ant3011230b070RF@arnod.demon.co.uk> <erkyrathDwyvw2.7F6@netcom.com> <50hmfb$oes@mars.worldonline.nl> <50le85$mrr@bud.peinet.pe.ca>
Date: Thu, 5 Sep 1996 04:48:54 GMT
Lines: 39
Sender: erkyrath@netcom21.netcom.com

Trevor Barrie (tbarrie@cycor.ca) wrote:
> marnix@worldonline.nl (Marnix Klooster) wrote:

> >> Right. The library sets a flag which prevents you from undoing twice in a 
> >> row. If you hack the library *and* run it on a multiple-undo-supporting 
> >> interpreter, your game will support multiple undo.

> >This is definitely *not true*.  The limitation to single undo is part
> >of the design of the Z-machine.  

> I find this a little hard to believe, considering how full-featured Inform
> is supposed to be. You can write Tetris on it, but you can't store two or
> more sets of changes to the game state in memory?

Z-machine undo doesn't work by storing changes in memory. It works by 
signalling the interpreter to copy *all* of memory to an external buffer 
-- external to the Z-machine, that is. The Z-machine can't get at it, 
except by the inverse signal, which tells the interpreter to copy the data 
back.

So the capacity of undo isn't really reprogrammable within the machine; 
it depends on the behavior of those two signals, as defined in the 
Z-machine specification. If you write an interpreter that acts not in 
accordance with those definitions, your interpreter has diverged from the 
standard.

See?

(But see my previous post, where in a sudden flurry of nitpicking I argue 
that Zip 2000 has not diverged from the standard in implementing multiple 
undo.)

--Z


-- 

"And Aholibamah bare Jeush, and Jaalam, and Korah: these were the
borogoves..."
