Language-Zcode
view release on metacpan or search on metacpan
Isn't that against the spec?
----------------------------- November 10, 2003 --------------------------------
Stream 2 is at least partly working.
----------------------------- November 11, 2003 --------------------------------
I've decided to make the czech test separation "interactive" vs.
"non-interactive". So for non-int I'm going to use input_stream 1
and test read. I may use output_stream 2. Can definitely use output_stream 3.
Start working on 'read' test. I'm able to read a line & compare it to
an array of bytes.
----------------------------- November 12, 2003 --------------------------------
Put read test into a subroutine do_ni_read. Then I can test multiple strings.
Created ti.in to input the strings with.
----------------------------- November 13, 2003 --------------------------------
Infocom-ized the read tests. Btw, I'm running into a problem because Inform
encodes a quotation mark in the dictionary as a ZSCII char instead of an A2
char, so my encode_text (and Winfrotz'!) aren't finding it.
Able to run tn.pl with Win32!
Also, when I run my program in a 1000-line window, it prints the buffer on
line zero, which is invisible way up at the top of the scrollbar! Shouldn't
the system be using Window() instead of Size() and then writing things to
(Size)[1]-(Window)[1]?
Alternatively, you could set Size equal to Window, which will get rid
of the scrollbar. Still, it seems convenient to have the scrolling available.
I did the latter for now, cuz it only requires changing one subroutine
(tho it would be polite to restore the size (and color) in DESTROY!)
Able to run minizork.z3, too!
Advent's status line isn't working correctly, though. Is it getting
buffered?
----------------------------- November 17, 2003 --------------------------------
Found a STUPID bug in verify which happened to work always until now because
dynamic memory's last byte was always a zero.
rezrov doesn't buffer output stream 2. This is a good excuse to refactor the
whole IO module.
Put plans in IO section in NOTES.txt for now.
Release v0.6. It's not really fully tested but I should freeze things before
breaking everything. Tests seem to work right now.
----------------------------- November 19, 2003 --------------------------------
Separated PlotzPerl::Input from the rest of PlotzPerl::IO. In theory, I can
now separate out PlotzPerl::Output, tho that's harder. (Almost everything now
in PPI will go in there!)
----------------------------- November 20, 2003 --------------------------------
Looks like stuff in the upper window doesn't get written to stream 2, but DOES
get written to stream 3.
----------------------------- November 25, 2003 --------------------------------
Thinking about streaming
----------------------------- November 26, 2003 --------------------------------
Wrote lots of notes on streaming plans. I think I have a workable system.
Text is turned into PP::Text objects which are blessed scalarrefs; the
subclasses determine whether the text was input or output, etc.
PP::Output tries to write to every stream (but returns immediately if it
wrote to stream 3). Each OutputStream tests itself to see whether it's
selected, and also to see whether there are other reasons not to accept
the stream. If the stream does accept, then the text is streamed to it.
If buffering is on for that stream/window/buffer_mode, then it gets
buffered, otherwise simply written. Only stream 1 ever knows about
the Screen object (although stream 2 needs to know which window we're
writing too since some windows don't get written to the transcript).
----------------------------- December 01, 2003 --------------------------------
Moved a bunch of stuff to PlotzPerl::Output.
I'm able to run czech on it with the new class in place.
I'm running into some ugliness: should windows, cursor be in Output class?
If not, then we're doing lots of cross-class talking. If yes, then Output
class is really just the IO class (cuz Windows aren't only Output). In THAT
case, we should get rid of output class and just give IO class an array of
OutputStreams, an array of Windows, InputStreams, etc.
----------------------------- December 04, 2003 --------------------------------
Start creating OutputStream class & subclasses.
----------------------------- December - February ------------------------------
[RL]
----------------------------- February 24, 2004 --------------------------------
Added rudimentary XML output capability. Depends on XML::Simple
Should make XML::Simple use'd only if I input .xml as the target, tho.
------------------------------ March 04, 2004 ----------------------------------
Export needed subs from PP::Runtime, to make output program a bit more
readable. I should do the same for PPI, once it settles down.
------------------------------ March 08, 2004 ----------------------------------
Working on adding restart opcode.
Wrote simple Perl script to read quetzal files.
It looks like Frotz2002 may have a bug for extremely simple programs - the
local vars in the save file don't seem to be what they should be.
Rezrov always makes 15 local variables in each frame of the save file.
Dzip seems to get things right, or at least almost right.
------------------------------ March 09, 2004 ----------------------------------
More work on OutputStream stuff. Get it to write transcript bits if we change
them using storew instead of output_stream.
Put Plotz into cvs at home!
Fixed a package bug that was causing register_newline not to be used at all,
such that [MORE] wasn't happening. Then fixed a couple package bugs that made
register_newline not work. We seem to be back to passing tests again.
------------------------------ March 10, 2004 ----------------------------------
Put main() into a while loop and an eval block.
Which allows for restart/restore.
Basically, restart/restore do a die() with a special string that means "repeat
the while loop, which will rerun the Z-machine from scratch, possibly with
( run in 1.557 second using v1.01-cache-2.11-cpan-600a1bdf6e4 )