On Mar 14, 2025, at 3:30 PM, ben via cctalk
<cctalk(a)classiccmp.org> wrote:
The Electrologica X1, had the upper block of core memory as ROM for
fixed system programs use. I am doing the same for my computer.
Did any other computers have the same concept before the 1977?
Ben.
Definitely. I think the X1 got it from earlier research machines at CWI, where some of
the main memory drum tracks were set aside for fixed code.
Note that the ROM core is not simply core memory set aside as ROM; it is actual read-only
memory built very differently than read/write core memory. It is similar to the
"core rope" ROM memory used in the Apollo space craft computers, but the details
are different and the X1 design is faster and more efficient. More precisely, the access
time is reduced, and it can share significant portions of the memory electronics with the
read/write memory.
I like to refer to the X1 ROM (called "dead memory" in the documentation) as the
world's first BIOS. That's because, like IBM PC BIOS, it contains I/O support
routines intended to make application I/O a lot easier. E.W. Dijkstra designed this and
wrote his Ph.D. thesis about it (and how it serves as a way to manage the design
complexity of dealing with interrupts, which was a brand-new problem then).
A very different example of a separate block of memory appears in the "emulator"
option in the IBM 360 model 44. By default that machine does not have the string and
decimal arithmetic instructions, but the emulator option adds a block of memory used by an
emulation mode, so you can run standard 360 programs and have the missing instructions
emulated. It's somewhat like what microVAX did years later, except that the memory
used is separate from regular main memory and not visible to either applications or the
OS. There's a separate boot process to load that memory (implemented entirely in a
channel program that fits on one card!)
paul