5 ms·
Part of the reason that few 8-bit platforms successfully went 16-bit is because they filled up the address space too early. If you were writing code for a Comm
by hakfoo 3y ago
Part of the reason that few 8-bit platforms successfully went 16-bit is because they filled up the address space too early.
If you were writing code for a Commodore 64 or Atari 800XL, you largely didn't have to think about designing your software to probe the memory map or deal with larger and smaller versions of the system.
This had two toxic outcomes:
1. The platform itself had no good way to expand upwards. If you built "C64, but with a 65C816 instead", you still had loads of software that expected to hit very specific ROM and memory-mapped hardware spots, so you couldn't remap them without breaking the world.
You could potentially work around this by building the new machine with enough memory that you can just start the "enhanced-mode universe" after the hairball that exists in the bottom 64k. But if you wanted to offer a 128k or 256k machine, you can't afford to squander all that expensive RAM. And even still...
2. The software was largely incapable of exploiting extra resources if you had them. Some software learned to deal with Commodore REU devices or the bank-switched RAM in an Atari 130XE, but that requires a lot of heavy lifting to use efficiently.
In contrast, someone who took a 128k 8088 PC clone and upgraded to a 512k 286 usually got bigger spreadsheets and longer documents for free. There was no need to think about allocating from non-contiguous memory spaces-- just a larger version of the easy to manage space that starts at 1k and ends around 640k.
- Zardoz84 3y ago> You could potentially work around this by building the new machine with enough memory that you can just start the "enhanced-mode universe" after the hairball that exists in the bottom 64k. But if you wanted to offer a 128k or 256k machine, you can't afford to squander all that expensive RAM. And even still... That's exactly what PCs did with 386 . even today, if you boot on legacy bios mode, you get the same lower 1MiB address space and mappings
- hakfoo 3y agoI was thinking more specifically like https://www.phoronix.com/news/Linux-Always-Reserve-1MB https://www.phoronix.com/news/Linux-Always-Reserve-1MB Note that this was apparently a decision made in 2001. If you tried this in 1988, when 2Mb was an enormous machine, and you said to users "Yeah, only half of that will be allocated to user programs", that's not gonna fly.
- snvzz 3y agoRelative to this, the RISC-V platform specs are nice and clean. No segments, no "Conventional memory 640KB" or other such cruft.
- tcbawo 3y agoTo build on your idea: the presence of PC clones meant that a business that invests large sums of money in off the shelf and custom software solutions could be retained if their hardware vendor went out of business or failed to keep up with other clones. This aspect is highly underrated by many retro computing enthusiasts. Some software systems are too large to ever rewrite. These days, system emulation has come a long way. But at the time, the value proposition of essentially guaranteed long term support for business software was the killer feature that propelled the x86+DOS/Windows to become the dominant system.
- ddingus 3y agoAgreed. And that "hairball" (great term BTW, I love it) involved custom silicon that delivered expensive capabilities. Revising that cost too much. The PC was kind of simple in this way. So were some of the systems. I look at the Apple, which was very PC like, and the Atari ST, and when compared to systems offering custom silicon, it seemed like a no brainer choice. But, software ports were easier, CPU speeds could be increased easily, and the lack of custom silicon drove some longer term usability. Today, we may be moving back toward another custom silicon era. Expensive capabilities put into hardware will be compelling, but may also be something of a dead end. Maybe the scale and speed of what we have today will marginalize how this could work too. Interesting times ahead, as they were back then.