Also, the Z-machine that ran Zork and other Infocom games was an early example of a cross-platform bytecode interpreter, well before Java and the like.
Yes. Z-machine specifies a table of 256 opcodes. Developers write code in ZIL (Z-machine Implementation Language), a text-based source code. The ZIL is then compiled into a byte code program consisting of those 1-byte opcodes as well as arguments and static data.