Message-ID: <3AC3820E.5C27FCB0@csi.com>
Date: Thu, 29 Mar 2001 13:42:22 -0500
From: John Colagioia <JColagioia@csi.com>
Organization: No Conspiracy Here...
X-Mailer: Mozilla 4.76 [en] (Win98; U)
X-Accept-Language: en,fr,ru,es,it,ga,de,ja,gd,eu
MIME-Version: 1.0
Newsgroups: rec.arts.int-fiction
Subject: Z-Machine Assembly
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 208.34.37.104
X-Original-NNTP-Posting-Host: 208.34.37.104
X-Trace: excalibur.gbmtech.net 985891061 208.34.37.104 (29 Mar 2001 13:37:41 EST)
Lines: 34
X-Authenticated-User: jnc
Path: news.duke.edu!newsgate.duke.edu!solaris.cc.vt.edu!news.vt.edu!news.netins.net!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsfeed.online.be!ams.uu.net!nyc.uu.net!excalibur.gbmtech.net
Xref: news.duke.edu rec.arts.int-fiction:84720

OK, I'm a geek.  I admit it.

I'm sitting at work with no lunch plans, and I say to myself, "hey,
let's learn Z Assembly!"  So, I go digging around my hard drive, and I
realize that--wonder of wonders--I have a copy of Matt Kimball's ZASM
script sitting there, and I already have Perl installed on the PC.

So far, so good.  I pull out the Z-Machine spec.  Again, so far, so
good.  But then it gets all...not-so-good.

I try a simple assembly program, and get the error message, "No _start
label!"  So, I start reading through the Perl code, and finally figure
out that a program has to start with "label _start"--and I can live
with that.  So now, my program stands at:

    label _start
        print  "Hello, World!"
        print_char 13
        quit

I assemble it, and I get a 64+kB (65,556B) out.z5 file which doesn't
seem to do anything in WinFrotz, and causes a fatal error in txd when I
try to disassemble it.

Has anyone played with zasm and gotten further than this?  Am I
overlooking something blatantly obvious?  I'm hoping that the answer to
both questions is "yes."

(And, yeah, I realize that it would be much easier to do inline
assembly in Inform, but that just doesn't have the same "geek appeal"
as building the entire program in assembly...this isn't about getting
work done efficiently--or even about getting work done at all...)


