Thanks Marshall for the reply.
I phrased it incorrectly, as in this regard I definitely have a juvenile understanding of the terminology. Also, I haven't done much digging (and testing) beyond a 16-bit int at this point. From the mentioned Wikipedia article, what I meant was:
Mixed forms also exist, for instance the ordering of bytes in a 16-bit word may differ from the ordering of 16-bit words within a 32-bit word. Such cases are sometimes referred to as mixed-endian or middle-endian. There are also some bi-endian processors that operate in either little-endian or big-endian mode.
Cheers for the link. The more info I have to expand and hone my understanding, the better it is for me.
| [reply] |
Well in the computer world, just about every wild scheme that you can imagine has probably been tried! Over time the variations that are actually "seen in the wild" have become fewer. For the most part, you will either see pure little endian like Intel or pure big endian like Motorola. Over time, for example "byte" has come to mean "8 bits" although historically that has not been strictly true.
update: For example in the "famous" IBM punched card format, there are 12 bits available for each printed character. There are actually 3 Hollerith codes which were used with IBM punched cards, I only worked with IBM system 26 and IBM system 29. I never saw the predecessor to System 26 which itself was already obsolete in the 70's.
Anyway each punched card could have 12 bits per character, certainly not "8 bits". This wiki article doesn't clearly explain the difference between the 3 Hollerith codes, but gives an idea Hollerith codes. If there is interest, I can dig up the official names for the 3 Hollerith codes that
IBM used, but I don't think that matters here. The point here being that a single character could have been 12 bits, not 8 bits in the distant past.
More weirdness: the "zigamorph", yes that is an actual word. I think this was 12-11-0-7-8-9 multi-punch. In FORTRAN IV, this signals a comment on the same line as a statement. I never wrote code that used that, but it was a possibility.
System 29 keypunch system 29.
| [reply] |
the "zigamorph", yes that is an actual word. I think this was 12-11-0-7-8-9 multi-punch
A co-worker of mine was a student in the late 1970s. The university he attended had a CDC Cyber 170 series super computer. He has the 22 cards of his first Cyber program (written in FORTRAN) on a wall of his cubical.
He hadn't heard the term "zigamorph" before now, but pointed out a 12-11-0-7-8-9 multi-punch card that indicated the end of the "job control" commands, and a double 12-11-0-7-8-9 multi-punch card that indicated end-of-job. Those seem consistent with the definitions of zigamorph I found.
(FWIW, the job control commands identified the job, ran the FORTRAN compiler, then ran the resulting executable. After the 12-11-0-7-8-9 multi-punch card was the FORTRAN source, followed by the double 12-11-0-7-8-9 multi-punch card.)
| [reply] |
PDP-11 was very common in its time, and used the 'BADC' byte order.
I thought wikipedia would have that tidbit, but apparently not. [softwareengineering.stackexchange.com/questions/215535|This]#1 seems to have a good answer. Anyway, one benefit of the little-endian architecture is that it can help you with pointer addressing. One may cast an int pointer to unsigned char pointer, and use that to inspect the "character value" of a small int. Zero offset ie no index uses the simpler addressing mode and may yield more compact machine code.
Little-endian is conceptually similar to positional number system, where the number base is exponentiated by index. Index 0 for the smallest digit and so on. (In big-endian, the offset is offset by the operand width. Buffalo buffalo buffalo;)
#1. Linking to stackexchange is prohibited?
| [reply] |
| [reply] [d/l] |