Noise to boot v16
Each machine gets its own memory image filled from one seeded stream of random bytes: 64 KB for the 6502, 4 KB for CHIP-8, 64 KB for the 8086, so the three images differ. Only bytes you paste or load are common to all three. Each machine follows its own jumps, calls and returns. Undefined opcodes in the noise are rewritten to defined ones before they run, and a machine that starts looping jumps to fresh noise, so execution never stops. Each machine runs two boot tracks side by side: the original stages (POST to LOGIN) and local stages named for that machine. Both advance on what that machine does to its own memory, stack and devices, and each reboots on its own. Every stage runs for an even stretch: it holds for at least the set number of instructions, advances once its rule is met, and moves on regardless after three times that.
Self-test running…
Your data, boot rules and exports
Paste hex bytes, or load a disk image (.img, .ima, .dsk) or other binary, to place it at each machine's start address (6502 $0600, CHIP-8 $200, 8086 $0100) instead of noise. Each machine takes as much as fits. If the image starts with a PC boot sector (55 AA at offset 510), the 8086 boots it like a BIOS would: the first 512 bytes go to 0000:7C00 and execution starts there. The rest of memory stays noise from the seed. Your bytes are never rewritten by the patcher: undefined opcodes inside them are stepped over, loop escapes land outside them, and every reboot of the local track reloads them and starts again at the start address.