This is one of those articles that I’m writing spontaneously, so it may contain some major errors. If so, I’ll fix them later.
An article I happened across about the Memory Management Unit (MMU) on the PlayStation 2 console (PS2) [ link to said article]reminded me that the Commodore 64 (C64) had a really complex (but perhaps, not complicated, as it was the best that could be done at the time, and once you understood it, it seems rather elegant, and sensible for the time) memory situation, made worse (by current day standards), by the way in which it was implemented.
The 6510 had a build-in I/O port, which was mapped partly to the cassette interface (which was obsolete almost before it was made), and partly to some of the bank-switching hardware.
The rest was handled by the VIC-II, which saw 1/4 of the RAM (16K) space as the main CPU (the 6510A saw 64K, but…).
The thing is, the I/O chips and ROMs (KERNEL, BASIC, and Character Generator) were all accessible or ignorable depending on switches. For some applications I patched USR() to let me access the RAM “hidden under” the I/O and ROM spaces, otherwise there was no safe way to do it from BASIC.
To get at the RAM under KERNEL and BASIC, you had to disable interrupts… but you couldn’t disable the NMI, which could be triggered at any time by the RESTORE key, so, it was usually best to not mess with the under-KERNEL RAM space or to shadow at least that vector (interrupt handler).
Anyhow, that is just what I remember offhand… I remember I took years to learn it because I didn’t at that time have access to sufficient information, there was no Internet to speak of, although there was Q-Link, I couldn’t access that and even when I got a PC, well, the C64 was well dead by then — due to what I have now come to understand were a combination of business mistakes and patent trolling, leading us to The Empire which we have today, and its three faces (G-A-M-?)
The uptake in interest in emulation might be a sign that people actually would prefer a simple general purpose system to play with, because anything that you would invest time in with no hope at all of making money off of has to be a labor of love.
Although I owned a C64, I have to say that it has to be more complicated and limited than any platform I have come across since.
I suspect they are much worse offenders, but I am glad that I don’t have to even care anymore.
We have better tools, and the potential for more stable platforms, and there might be slightly lower costs in hardware development. Although it still might be very expensive if you want to bring a product to market, I think it is more feasible now to experiment with new products than it was back in the days when many companies went belly up suddenly.
More importantly, you could hone your skills fairly quickly now, although not necessarily by following a mainstream path, and to shift from hobby to professional might involve some detours, don’t you want to be the leader of your life, with everything that you need, as you strive for what you want?
They are lots of bad things… no magazines for the layman or intermediate and aspiring craftsman… but they are good things, blogs and such.
There could also be more mini-zines, I haven’t looked for them.
I will stop here for now.