‹ BackHN Continuity

Thread

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

188 points · 74 comments · midnightfish

  1. coldpie · · focus · HN ↗
    Somewhat tangential, I've watched a bunch of videos on YouTube from @deramp5113 about the Altair 8800 and other early microcomputers, which feature a similar set of front panel switches for dialing in your initial program. One thing that's interesting to me, as someone who learned computing in the late 90s, is how much is expressed in octal instead of hex on these early computers.

    As shown in the linked picture, the byte pairs are divided into [4 groups of 3] instead of [3 groups of 4] switches, which I would find more comfortable as a hex-reader. I believe, maybe someone can confirm, that octal notation is easier to translate into bits than hex is. We just don't do either of those things terribly often anymore, so octal has mostly fallen out of favor, perhaps because it groups less nicely into multiples of 8.

    Nowadays I almost never think in octal. The only time it seems to come up is for Unix file mode switches (chmod etc), which likely date to this time when octal was more common.

    Just some interesting cultural drift.

    1. z500 · · focus · HN ↗
      Octal just maps onto 3 bits instead of hex's 4. I always imagined it had something to do with the size of the byte not being standardized yet.
      1. voidUpdate · · focus · HN ↗
        AFAIK, a "byte" is 8 bits, but a "word" wasn't quite decided yet, and they were often divisible by 3, making octal make more sense
        1. ElevenLathe · · focus · HN ↗
          Was this at all related to standard tubes using octal sockets? I can't think of any reason this would be personally, but I could be missing something.
          1. voidUpdate · · focus · HN ↗
            Octal sockets are just tube sockets with 8 pins, it doesn't mean they calculate in octal
            1. ElevenLathe · · focus · HN ↗
              Right, how could they? It's just one tube.
        2. rswail · · focus · HN ↗
          On a PDP-11 there were 8 registers, R0-R7, with R6 being the (default) stack pointer and R7 being the program counter.

          There were 8 address modes for each register.

          So a src/dst instruction used up 12 bits for the src/dst+modes, a single register instruction used 6 bits.

          You could load the registers directly at addresses 177770 through 177777 on the front panel. So if your program was 5 words long, you could load that into registers R0-R4, then load R7 with the address 177770 and execute.

    2. AkBKukU · · focus · HN ↗
      I have restored a Data General MicroNOVA that also uses octal. It has an emulated front panel over serial and uses octal in multi-digit commands like specifying which address you want to boot from, "33L" to book from an MFM disk controller for example. That is probably a legacy carryover from the NOVA 3 and earlier where you would be able to input the same thing into the front panel switches.

      Fundamentally I wouldn't say octal is fundamentally easier to interpret other than hex because it's just half as many digits. The shorthand things about octal used in unix you mentioned all still technically apply to hex as well. The only really tricky part is where it becomes letters and you have to think if D or E is the odd value with the first bit set. If you were doing hex all day though, the 6 hex letter patterns would be pretty easy to memorize.

      Personally I would say for front panel systems specifically was just about physical space for the switches. If you look up CPU trainers for something like Intel 8080 in the Altair 8800, you'll see it uses a hex keypad. Multiple 16b values would have been a lot harder to fit in single bit switches.

    3. SoftTalker · · focus · HN ↗
      Octal allowed used of simpler numeric displays (numeric nixie tubes or 7-segment displays) as you only needed digits and not ABCDEF that you'd need for hex notation.
      1. rswail · · focus · HN ↗
        Octal on a PDP-11 meant that the instruction set (16 bits) allowed two-register instructions with src/dst register and modes taking up 12 bits.

        So you programmed the front panel with 3 fingers for octal instead of 4 for hex.

Open on Hacker News to reply ↗

Unofficial Hacker News client; not affiliated with Y Combinator.