Existing programs will run as-is, most likely* with no modifications.
All "unused" 4-bit op-codes are still unused, to avoid conflicts if they are used in the official build in the future or by yourself.
The 4-bit op-codes use the high 4 bits for the instruction, and the low 4 bits for an address parameter.
From an 8-bit point of view, these instructions are simply repeated 16 times in the microcode, once for each possible value of the parameter bits.
To keep forward compatibility, I am utilizing the existing op-codes that do not use the parameter bits. Specifically 14 (OUT) and 15 (HLT)
To keep backward compatibility, these instructions MUST have zero bits for their unused address parameter.
For example:
"1111 xxxx" was the 4-bit "HLT" instruction, where "x" did not matter.
"1111 0000" (240 is now the 4-bit "HLT" instruction.
"1111 0001" (241) to "1111 1111" (255) are an additional 15 new instructions for 8-bit mode.