System variables (again!)

Page 4/4
1 | 2 | 3 |

Par Metalion

Paragon (1625)

Portrait de Metalion

05-07-2022, 10:13

Pokun wrote:

On many other CPUs like the 6502 there are no I/O ports at all, so MMIO (memory mapped I/O) is basically the only way to wire hardware to the CPU, which explains why 6502-based systems like VIC-20, C64 and Famicom/NES does it like that.

Cool, I did not know that.
It explains a lot.

Par gdx

Enlighted (6213)

Portrait de gdx

05-07-2022, 10:19

gdx wrote:

Using eight I/O ports.

I meant five, one for the primary slots and four for the secondary slots. Thus access to the registers no longer depended on the context. They would be directly accessible whatever the configuration of the slots. So managing the slots would be much simpler (by using the method of bits invertion for reading of secondary slot registers).

This loses four I/O ports but greatly improves the system.

And if the FFFFh address was used for the Memory Mapper, they would all be independent, we could write and read each of the registers. Then the four lost I/O ports are regained.

I know that concretely it is useless to talk about it. What has been done is done. This is no longer modifiable, but it shows the current functioning of the slots and its constraints.

Par NYYRIKKI

Enlighted (6067)

Portrait de NYYRIKKI

05-07-2022, 11:35

gdx wrote:

I meant five, one for the primary slots and four for the secondary slots. Thus access to the registers no longer depended on the context. They would be directly accessible whatever the configuration of the slots. So managing the slots would be much simpler (by using the method of bits invertion for reading of secondary slot registers).

Yes, I understand this very well from software developer point of view. I'm just saying that this would have been hard to do without redesign of the whole idea of slots. The HW problem comes from this "subslots are optional feature" idea. The problem comes from the fact that cartridges don't know what slot they are inserted to. Only MSX knows that. All the practical solutions around the problem (ie. DIP-switches to configure the I/O port as most simple workaround) would have added the mandatory complexity. In this kind of super simple solution we would have lost also possibility to easily swap main slots freely. This could have been fixed by telling the cartridge what slot it is inserted to, but that would have yet again added new, hard to cope problems.

Page 4/4
1 | 2 | 3 |