When typing in short hand assembled machine code (not assembly language!) into a single board computer (like the Sintel SBC-85, which was popular in Israel and featured an Intel 8085), it was customary to keep your patch space inside your code, by inserting NOPs every 10 or 20 instructions.

The only way of editing a program you'd keyed into memory was to overwrite memory locations. The monitor had no insert, partially due to difficulty of implementation, but mostly because inserting makes no sense inside machine code. After you insert, all jumps (and some branches) need to be adjusted; a simple scan of memory cannot do the trick, as it has no way of distinguishing code from data (and generally that distinction does not exist).

Instead, you'd overwrite your old code with your new code. If the new code was longer than the old code, hopefully you'd still fit into the next block of NOPs and save lots of keying. If the new code was shorter, things were even easier -- just pad the remainder with NOPs.

patch pumpkin = P = path

patch space n.

An unused block of bits left in a binary so that it can later be modified by insertion of machine-language instructions there (typically, the patch space is modified to contain new code, and the superseded code is patched to contain a jump or call to the patch space). The near-universal use of compilers and interpreters has made this term rare; it is now primarily historical outside IBM shops. See patch (sense 4), zap (sense 4), hook.

--The Jargon File version 4.3.1, ed. ESR, autonoded by rescdsk.

Log in or register to write something here or to contact authors.