5

The S-100 bus was extremely versatile; originally designed for the 8080, computers using it had no trouble with the Z80 as a drop-in upgrade, and it even went to 16-bit with the 8086.

To my surprise, there have also been several successful attempts to put a 68000 into an S-100 machine e.g. this board.

How does this work from the endian-ness perspective? The 8080, Z80 and 8086 are all little endian, but the 68000 is big endian. I would expect this to cause a problem, but while the above link mentions several challenges, it doesn't mention that as one of them.

3
  • 2
    The memory doesn't know what-endian anything is. So the 68000 stores and accesses memory, and memory serves up what is asked of it. The bus doesn't care.
    – Jon Custer
    Nov 14 '20 at 3:31
  • 2
    @JonCuster if you're using I/O ports on a board, the bits will be mapped differently big-endian vs. little-endian. It could certainly make a difference. Nov 14 '20 at 4:18
  • @MarkRansom It makes a difference if your code puts the data in the wrong place, but that has nothing to do with the memory and I/O hardware.
    – alephzero
    Nov 14 '20 at 14:38
3

How does this work from the endian-ness perspective?

Endianness is for most parts a software issue. Hardware, especially memory is either agnostic to the way a word ist stored, or doesn't have any idea about units wider than a byte at all(*1). Basically all I/O on S100 is 8 bit wide - after all, continuing the use of existing peripherals was a main point of continued use of the outdated S100 bus. Ther might have been a few, very special interfaces using the 16 bit wide data bus (*2), but there it depends on each individual card. S100 does not define a byte order.

In all practical situation endian issues will only arise if two S100 boards, with CPUs using different word endianes, share the same memory and data is exchanged/shared between them. Which is exactly the same as comes with every storage from RAM to floppy and punch tape to SSD, isn't it? So it's up to Software to handle this, not hardware.

but while the above link mentions several challenges, it doesn't mention that as one of them.

As the page is about hardware, not software.


*1 - Storing whatever comes along is the what RAM does, isn't it?

*2 - Maybe refer to this answer about S100 definition and extension to 16 bit.

2

Buses like S-100 are "endianness-agnostic". They do not care about data and its order, they just transport desired content as CPU (or "master") asks. Endianness is "the CPU thing".

2

A long time ago I worked on an Alpha Microsystems computer which was S-100 based little-endian, and while I was there we upgraded to a 68000-based system that had been wired (I don't know the details) to behave as if it was a little-endian system. So I can't give you details, but it is possible.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.