General > General Technical Chat
nostalgia of 386-level systems?!?
Berni:
Legacy is a pretty heavy collection of baggage that x86 had to drag around in order to stay compatible with things.
What makes it even worse is when the x86 design didn't let the programmers do what they wanted to do, so they invented dirty hacks to get around some of the limitations, now these dirty hacks also had to be kept working. For example dropping from 386 mode back into 286 mode was not possible because the designers of the chip assumed that once you start a OS that knows how to use 386 mode it will elevate into that mode and stay there. However Windows developers found out that 16bit executables don't always work in 32bit mode, so they needed to switch back to 16bit mode for those. The way this had to be done is reseting the CPU so that it starts up in legacy mode, set it up and then quickly jump back to whatever they ware doing to continue execution. The intel engineers probably screamed in horror when they found out how they did it, but it worked and now became the standard way of getting back into 286 mode.
They did try to get rid of the baggage and start fresh with the Intel Itanium architecture, but we all know how well that worked out.
Zero999:
--- Quote from: Coordonnée_chromatique on March 31, 2022, 08:14:11 pm ---The 386SX was too slow for DOOM, but the DX was just powerfull enough for a 320x240 screen resolution.
--- End quote ---
That's true. It depended on the clock rate. Doom was a little choppy on my parents' old 25MHz SX but it was fine on a 40MHz machine. By the way, I thought Doom ran on 320x200.
Does anyone know why IBM didn't bother with even the most basic 2D hardware acceleration and badly crippled the VGA card, so it couldn't make full use of its memory, without hacks?
A couple of hardware sprites for the mouse and text cursors, a hardware scrolling layer and blitter wouldn't have cost much. VGA had 256kiB of VRAM, yet the maximum resolution with 16 colours was 640x480, which only used 150kiB and the standard 256 colour mode was only 320x200, using only 62.5kiB. Mode X could go up to 360x480, with one page, or 320x400 with two pages, but it wouldn't have cost any extra to have 640x400 with 256 colours. I appreciate gaming was never the target market, but basic acceleration and high resolutions would have made GUIs much faster and easier to code.
SiliconWizard:
--- Quote from: aneevuser on April 05, 2022, 09:44:44 am ---
--- Quote from: aneevuser on April 03, 2022, 01:19:06 pm ---I suspect that one reason for significant i386 nostalgia is the fact that it was the first Intel device to support paged virtual memory,
--- End quote ---
This is rather off-topic, but I claimed above the the 386 was the first Intel processor to support paged VM, but a bit of googling (and Wikipedia) seems to suggest that the 286 protected mode could also support paging, and that the 286 even had an on-chip MMU, which I find somewhat surprising.
Can anyone confirm this? I believe that I have an ancient 286 data book somewhere, but I can't find it to verify this.
--- End quote ---
Yep. The 286 had of course more limited address space (24 bits IIRC) and each defined memory block per descriptor was only up to 64KB, but otherwise the protected mode was already pretty close to that of the 386.
So it absolutely supported virtual addressing and had descriptors similar to the 386, with access rights, privilege levels.
Berni:
I am guessing the IBM PC was a bit too early to the party to have hardware accelerated graphics.
Back then most people had monochrome monitors on a command line. The idea of the PC was to build it out of off the shelf components too. The easiest way to add a graphics mode was to just barf the pixels from a dual port RAM out to the screen. To do anything more would require a graphics ASIC (Like the game consoles had) and i am guessing IBM just went "Nah not worth it for something that is a serious machine for doing serious business of finance and spreadsheets and word processing". Then i suppose they just kept up the mentality even as displays became color and high resolution enough for GUIs
PCs also typically had pretty powerful CPUs compared to other computers, so i guess the lack of hardware graphics was not as much of a pressing issue when the CPU had enough horsepower to push a fair number of pixels around. But it did get some DMA functionality useful for it later on
magic:
286 did not support paging (and Wikipedia is always wrong about everything).
286 only supported segmentation. You could define continuous segments of memory and restrict an application to accessing only some of them - that was the protection. You couldn't save a 4KB block from the middle of a segment to disk and mark it as "not present" so that the CPU would fault when the application tries to access it. You couldn't restore that block to a completely different physical address and make the MMU find it there. These are things that the 386 added.
Maybe it would be possible to swap out a whole segment at once, but then you would need to use fixed-size segments (like 386 pages) if you want them to be interchangeable in the physical RAM. Problem is, if they are 64KB then small applications are allocated more memory than they need, and if they are smaller then large applications can't allocate continuous blocks of memory larger than segment size. The 64KB segment size limitation of 16 bitters was a PITA in itself already.
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version