Live data from Hacker News

x86 Is an Octal Machine (1995)

gist.github.com

31–40 of 51 posts

Re: x86 Is an Octal Machine (1995)

#31
post #26

Google tells me "July 5, 1992" about this article, though it doesn't say why, and Google Groups spat me out with a wave of unusability after a few seconds of trying to search there. Is there currently any good public way to search usenet archives?

> any good public way to search usenet archives

no, you just hope google groups is nice to you (it wasn't the last time you and i had this discussion on hn).

but this time it is:

the posted copy is of the message https://groups.google.com/g/alt.lang.asm/c/bl21J0NYzBY/m/BjP... from "Jan 31, 1995, 7:17:40 AM".

it references an earlier, much shorter post https://groups.google.com/g/alt.lang.asm/c/ZNZp2K-SqhY/m/plK... from "Jul 5, 1992, 8:13:26 PM"

so the (1992) is not wrong, but most precisely it's (1995).

also, a mention on hn that came up whilst looking into this: https://news.ycombinator.com/item?id=12596371

Re: x86 Is an Octal Machine (1995)

#32
post #31
post #26

Google tells me "July 5, 1992" about this article, though it doesn't say why, and Google Groups spat me out with a wave of unusability after a few seconds of trying to search there. Is there currently any good public way to search usenet archives?

> any good public way to search usenet archives no, you just hope google groups is nice to you (it wasn't the last time you and i had this discussion on hn). but this time it is: the posted copy is of the message https://groups.google.com/g/alt.lang.asm/c/bl21J0NYzBY/m/BjP... from "Jan 31, 1995, 7:17:40 AM". it references an earlier, much shorter post https://groups.google.com/g/alt.lang.asm/c/ZNZp2K-SqhY/m/plK... fr…

Thanks! I've put 1995 above.

Re: x86 Is an Octal Machine (1995)

#33
post #26

Google tells me "July 5, 1992" about this article, though it doesn't say why, and Google Groups spat me out with a wave of unusability after a few seconds of trying to search there. Is there currently any good public way to search usenet archives?

> any good public way to search usenet archives

could be a good vanity project for another fts startup like algolia?

the mboxes are all here: https://archive.org/details/usenethistorical

Re: x86 Is an Octal Machine (1995)

#34
post #32
post #31

Earlier quoted context omitted.

> any good public way to search usenet archives no, you just hope google groups is nice to you (it wasn't the last time you and i had this discussion on hn). but this time it is: the posted copy is of the message https://groups.google.com/g/alt.lang.asm/c/bl21J0NYzBY/m/BjP... from "Jan 31, 1995, 7:17:40 AM". it references an earlier, much shorter post https://groups.google.com/g/alt.lang.asm/c/ZNZp2K-SqhY/m/plK... fr…

Thanks! I've put 1995 above.

There's also a variant with a 1997 correction, I haven't looked if they are different beyond the notice.

https://web.archive.org/web/20200114164700/http://www.dabo.d...

That one shows up in HN comment search, perhaps for sufficient levels of nerdery this the equivalent of adding 'reddit' at the end of your google search.

Re: x86 Is an Octal Machine (1995)

#35

This is an old article from the early 90s and I believe it may have been the first public mention of this fact about the x86 encoding, although no doubt many have independently "discovered" it before --- especially in the times when microcomputer programming consisted largely of writing down Asm on paper and then hand-assembling the bytes into memory using something like a hex keypad. All of these are features inheri…

I thought the 8008 manuals used hex, but, as kens points out in https://news.ycombinator.com/item?id=30409889, the Datapoint manuals used octal.

My notes on the 8080 are at https://dercuano.github.io/notes/8080-opcode-map.html.

Re: x86 Is an Octal Machine (1995)

#36
post #30
post #12

Earlier quoted context omitted.

The Datapoint 2200, the source of the 8008 instruction set, is an interesting machine. The CPU was built from TTL chips. To decode instructions, they used decimal BCD decoder chips, specifically the 7442. But they'd use them as octal decoder chips, only using 8 outputs. The Datapoint 2200 documentation gave the opcodes in octal, so they were clearly thinking in octal. The 8008 documentation, however, didn't use octal…

One thing I forgot to mention: the 6502 microprocessor also uses groups of 3 bits in its instructions. However, they group them in the "wrong" way, aaabbbcc, so looking at the instructions in octal doesn't help you at all. Also, after using the Xerox Alto, which uses 16-bit words, I realized that octal is terrible. The problem is that if you're looking at two bytes in a word, the values make no sense in octal. For ex…

With 12-bit, 18-bit, or 36-bit words octal is pretty great. It just sucks with 8-bit bytes being grouped into 16-bit or 32-bit words.

Re: x86 Is an Octal Machine (1995)

#37
post #30
post #12

Earlier quoted context omitted.

The Datapoint 2200, the source of the 8008 instruction set, is an interesting machine. The CPU was built from TTL chips. To decode instructions, they used decimal BCD decoder chips, specifically the 7442. But they'd use them as octal decoder chips, only using 8 outputs. The Datapoint 2200 documentation gave the opcodes in octal, so they were clearly thinking in octal. The 8008 documentation, however, didn't use octal…

One thing I forgot to mention: the 6502 microprocessor also uses groups of 3 bits in its instructions. However, they group them in the "wrong" way, aaabbbcc, so looking at the instructions in octal doesn't help you at all. Also, after using the Xerox Alto, which uses 16-bit words, I realized that octal is terrible. The problem is that if you're looking at two bytes in a word, the values make no sense in octal. For ex…

That's just a consequence of us sticking to 8-bit bytes (and derivative word sizes), no? Octal would have made a lot more sense if it was, say, 12-bit.

Re: x86 Is an Octal Machine (1995)

#38
post #29

Earlier quoted context omitted.

> The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' Basic concepts like the 8 GPRs are rooted in it's octal decoding roots. MOD/RM is still octal decoded, SIB is still octal decoded, etc. These fields aren't just three bits long, but also aligned to a three bit boundary within the byte being decoded. > and as importantly, a Datapoint 2200 is not an x86. The x86 is not an…

They are still bits, not octdigits or whatever. When 4 bits are used, nobody calls these 'hex machines'. We can definitely spend a lot of time pedanti-digging into the details but at the end of the day, it's just an early example of 'viral title'.

> They are still bits, not octdigits or whatever.

Once again, it's not just that they're just groups of three bits, but the fields are also three bit aligned.

> When 4 bits are used, nobody calls these 'hex machines'.

I mean, most systems aren't aligned nearly as well on clear repeated boundaries the same way. The only other one that I can think of (the SH series) I for one have absolutely called a hex machine because you can read most of the machine instructions directly from the 4-bit nybbles. A four bit opcode and three address RISC instructions out of 16 GPRs means you can read the hex just about as easily as ASM.

The fact that most other machines correctly take a more bit level almost huffman coding route doesn't make x86 any more less octal derived at it's base.

Re: x86 Is an Octal Machine (1995)

#39
post #24

Earlier quoted context omitted.

The comment by kens explains how the Datapoint 2200 both documented the design of the ISA in octal and used collections of three bits to decode at the fairly high TTL chip level. https://news.ycombinator.com/item?id=30409100#30409889

The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' and as importantly, a Datapoint 2200 is not an x86. The x86 is not an octal machine.

Breaking instructions into 3 bit groups is awfully convenient (and you find it elsewhere, e.g. in portions of the THUMB encoding).

Datapoint did it consistently. And in a way that aligns with octal encoding. And then used octal in their documentation.

In turn, their instruction set basically became the 8008's, which influenced the 8080 and then 8086/8088. In turn, we still have this structure in x86 today: the instructions are prettily readable in octal.

Re: x86 Is an Octal Machine (1995)

#40
post #29

Earlier quoted context omitted.

> The fact that instructions have some 'octal' structure doesn't make the thing an 'octal machine' Basic concepts like the 8 GPRs are rooted in it's octal decoding roots. MOD/RM is still octal decoded, SIB is still octal decoded, etc. These fields aren't just three bits long, but also aligned to a three bit boundary within the byte being decoded. > and as importantly, a Datapoint 2200 is not an x86. The x86 is not an…

They are still bits, not octdigits or whatever. When 4 bits are used, nobody calls these 'hex machines'. We can definitely spend a lot of time pedanti-digging into the details but at the end of the day, it's just an early example of 'viral title'.

On a machine where opcodes were easily decodeable by just looking at their individual nybbles, calling the machine a “hex machine” would be relatively natural. Obviously the term is to be seen in context, and not (necessarily) the defining characteristic of the machine.
Post reply on HN