> On Mar 14, 2025, at 3:30 PM, ben via cctalk <cctalk@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