This may seem like an odd request. But I’m looking to see if anyone knows of any zcode programs that were compiled with the putative v9 or v10 standards. (I’m not even sure if that’s possible.)
The reason for this is that I’m writing an interpreter and one of the unit tests will be for the logic that checks if the zcode version found in the header is between 1 and 8.
I’ve tried to use a hex editor to just manipulate an existing v5 file to have 9 in the first byte. But every time I save the manipulated program, it doesn’t save correctly. Specifically, the first byte always ends up looking like this:
b'\t\x00\x00\x00
As opposed to:
b'\x09\x00\x00\x00
This happens with both online and offline hex editors. Here’s an example:
The only thing I can see that differs is that I can’t ever set the AnsiChar / char8_t or the WideChar / char16_t with values that work. I’m not sure if that’s the issue and it’s no doubt something I’m doing wrong.
They also cannot be generated by compilers or read by interpreters. :)
There was some early discussion of a v9, but as Dannii said, it never solidified. It was trying to add more space and tidy up the instruction set; Glulx did both better.
IIRC, someone made some extensions to Z-code and called it version 9 and they modified an existing interpreter to run v9 games as well, but I think it was just one person or a few people behind this.
And then there’s the attempt that Andrew mentions, discussed on the Z-machine mailing list a long time ago.
None of them can be considered a proper version 9 today.