Remix.run Logo
▲ retrac 10 hours ago

EDSAC as early as 1949 had an "initial orders" module. A boot-up ROM. There was a bank of rotary selector switches, to set the octal digits in each ROM word.

David Wheeler (of subroutine fame) figured out the most sensible thing to put in the tiny ROM was a paper tape loader and mini-assembler that loaded the rest of itself from paper tape. So at switch-on the machine would start reading the tape input and run. Programs could be written on the teletype with mnemonics and relative addresses in octal.

It seems a little strange that more advanced later machines like the original PDP-11 from 1970, couldn't "autostart" from ROM like that. You had to toggle in a bootloader.

I think that was because core memory was non-volatile. (EDSAC didn't use core; it had a refreshing DRAM-like delay line memory.) With core, you only had to toggle the bootloader into once and, provided your software didn't accidentally overwrite it, it was still there after a power cycle. So re-toggling in the boot loader was not really that common, despite how much lore surrounds it.

▲TheOtherHobbes 9 hours ago | parent | next [-]

DEC supplied optional boot rom cards for UNIBUS, starting with the BM792, which arrived as a 32 x 16 matrix of diodes. You had to remove some of the diodes by hand to set the boot code.

Later cards used PROMs, and were pretty fancy. The M9312 had 512 words and included some basic CPU diagnostics. Different variants handled boot from disk, paper tape, console, etc, and you had to specify the options you wanted when you bought the card.

▲rootbear 7 hours ago | parent | prev | next [-]

In Fred Hoyle’s science fiction novel, The Black Cloud, there is a computer in an early chapter that is clearly inspired by EDSAC. When they run a program on it, the process is just what you describe - they load a paper tape in through the tape reader, which Hoyle describes in detail.

I first read that book before I knew that in British English a vacuum tube is called a valve (from thermionic valve and which makes more sense than the American term, I think), so I was confused by the line about how warm the room was due to all of the valves!

▲monocasa 5 hours ago | parent [-]

We called them thermionic valves too, just the terminology shifted a bit over time. We also called capacitors "condensers". Both were references to steam powered control systems.

▲dirkt 2 hours ago | parent | prev | next [-]

> It seems a little strange that more advanced later machines like the original PDP-11 from 1970, couldn't "autostart" from ROM like that.

Because the PDPs had magnetic core memory, so the bootloader, once toggled in, stayed in memory. The OS took care not to overwrite it.

And in normal operation you wouldn't have to use it at all, you just switched on your PDP, and it was in the same state as when you switched it off.

Also, bootloaders were short (because peripherals had lots of intelligence); toggling one in was a matter of minutes.

> I think that was because core memory was non-volatile.

Exactly. And when RAM cards were available to replace core (very late in the lifecycle of the minis), the RAM was battery backed to simulate that behaviour.

▲muglug 4 hours ago | parent | prev | next [-]

Very biased, but at Cambridge we were taught (by Maurice Wilkes among others) that the EDSAC was the first “useful” computer.

▲raldi 5 hours ago | parent | prev | next [-]

"Oh, I wonder which subroutine he came up with"

(Googles it)

"Ah"

▲qingcharles 4 hours ago | parent [-]

"Which subroutine did he come up with?"

"Yes"

▲stinkbeetle an hour ago | parent [-]

"The"

▲analog31 6 hours ago | parent | prev [-]

Processes like this are where "boot" comes from. The machine was pulling itself up by its bootstraps. The ROM was sometimes called the "bootstrap loader."