cbmeeks wrote:
But, if that's the case, how is it truly a 16-bit MPU?
BigDumbDinosaur wrote:
It has a 16 bit ALU and the accumulator and index registers can handle 16 bit values. Arithmetic, logic and load/store instructions can process words or bytes as required. In this respect the '816 is similar to the Intel 8088.
BDD is right. Internally they have 16-bit registers and are perfectly fluent with 16-bit operations, yet they have only an 8-bit data bus for loading and storing data from the outside world. Compared with a 16-bit data bus, the 8-bit bus saves space and reduces cost, but it transfers only 8 bits per bus cycle. It's necessary that a 16-bit load or store be done in two halves, requiring two bus cycles rather than one.
Whether an '816 or 8088 can be considered a "true" 16-bit MPU depends on whose definition you use.
BigDumbDinosaur wrote:
Oneironaut wrote:
There is no difference in operation, except that the 16 bit SRAM offers the ability to mask the Hi and Lo bytes for RW.
The problem is the '816 does not tell the outside world which part of a 16 bit memory cycle is occurring. How would you tell the 16 bit SRAM which data lines to use?
We want to connect a 16-bit RAM to the '816, is that what we're talking about? (Of course an '816 won't get any extra benefit from a 16-bit RAM, so the proposition seems unlikely. But it is easily possible to do this.)
16-bit RAM's like the ones Brad linked to are organized almost exactly as if they had a pair of ordinary 8-bit RAM's inside. And from an external POV you can treat them accordingly. IOW you can take the RAM's two 8-bit data buses and tie them together, just as you would with a pair of individual 8-bit RAM's.
There's a minor wrinkle in regard to the glue logic. One of the CPU address lines (one not otherwise attached to the RAM) would be used to feed the RAM's BHE\ input. The same address line, but inverted, would feed the RAM's BLE\ input. (Or BHE\ and BLE\ can be interchanged; it doesn't matter.)
It's true the RAM won't know why the '816 is accessing a given byte, or whether that access represents half of a 16-bit access, but these details aren't essential for getting the job done, and "mushroom management" will suffice.
Each cycle has, at most, one simple, 8-bit operation: ie, read the byte from this address. Or write to it.
_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html