Any ZCode Programs With v9 or v10 in the First Byte?

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.

\t is \x09, it’s a tab in ASCII.

That said, there shouldn’t be any version 9 or 10 files. No proposed standard ever reached any acceptance as far as I know.

2 Likes

I’m not aware of any either.

Got it! Thanks all.

So it sounds like version 9 and version 10 should not even be considerations as they aren’t considered canonical from a specification perspective.

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.