On Wed, May 25, 2016 at 6:50 AM, Paul Koning <paulkoning at comcast.net> wrote:
The emulator was loaded, on those rare occasions where the memory got
wiped, using the "Emulator IPL" button, from a binary card deck. That deck
was pretty slick: it was a channel program loop. No CPU code involved at
all; the first card was a 4 (?) entry channel program that would read the
remaining cards, which were a standard assembler output (object deck).
Self modifying channel code: since each object card contained the address
and length for its data, the channel program would pick up those two fields
and drop them into the third channel command, which would transfer that
number of bytes to that address.
The DPS8 bootload was similar -- channel code to read a record from tape
into
memory. The record was placed in memory such that it overwrote the
interrupt vector (actually fault pair), so that when the read completed and
the tape drive raised the interrupt, the CPU jumped into the data just read.
-- Charles