‹ BackHN Continuity

Thread

Alan Kay's answer to “Did the ENIAC have a BIOS”?

188 points · 74 comments · midnightfish

  1. retrac · · focus · HN ↗
    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.

    1. Taniwha · · focus · HN ↗
      Yes that early pdp-11s had core memory, its contents survived power cycling. We'd hand toggle in the bootstrap into high ROM and start it, it would load whatever we were running from paper tape - unless you did something stupid that trashed that high memory you'd get to reuse the bootstrap over and over

      Having said that the bootstrap was something like 8 16-bit instructions, a pain but not impossible

      1. rswail · · focus · HN ↗
        The first machine I ever played with was a PDP-11/10 with 16K of "core" and 3 ASR-33s & a VT52 connected by 20mA current loop serial.

        Bootstrap was a small set of octal instructions on a piece of paper stuck to the front panel.

        That was enough to load the "absolute loader" from paper tape on one of the ASR-33s, which then loaded blocks of BASIC from paper tape.

        It was a "multi-user" BASIC that dropped string functions (except CHR$()) in exchange for allowing 3 users.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.