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!news.be.innet.net!INbe.net!news.nl.innet.net!INnl.net!hunter.premier.net!www.nntp.primenet.com!nntp.primenet.com!swrinde.nde.swri.edu!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: <erkyrathDxpHw8.18H@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> <erkyrathDx8tDI.JrH@netcom.com> <516cf5$af0@bud.peinet.pe.ca>
Date: Sat, 14 Sep 1996 05:00:08 GMT
Lines: 32
Sender: erkyrath@netcom21.netcom.com

Trevor Barrie (tbarrie@cycor.ca) wrote:
> erkyrath@netcom.com (Andrew Plotkin) wrote:

> >> 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 if you need multiple-level undo, you write your own code which stores two
> or more sets of changes to the game state somewhere accessible to the
> Z-machine, and then recovers it if necessary.

The "game state" is a snapshot of the Z-machine's memory. The only place 
available to write in is the Z-machine's memory. I trust the problems 
become apparent.

Yes, you can optimize matters, but you're still using up huge extra 
chunks of your RAM (of which you only have 64k) to add this feature, 
which is supposed to be an interpreter-level feature anyway.

--Z


-- 

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