I have been thinking and it occurs to me that the original IBM PC was an 8088 4.77MHz that shared video memory with the video card.
Now, here is where I am unsure...
IIRC there was no memory on the CGA card (or mono card - what was the common brand?) so in order to display on the CGA screen it would need to interrupt the CPU - correct??? If so, then half the processing time would be used for displaying the screen leaving half for processing??? If this was the case, then IMHO an IBM PC is within the realms of a prop emulation. Any comments???
The CGA had 16Kb of RAM, or something like that. Few shared memory designs were done for PC's. There have been some for lower end home PC and portable / laptop designs. 2D, mostly, with some limited 3D from Intel.
On a side note, SGI did a really great one, modeled off the Cobalt chipset in the O2 series of computers. That one could do live video, and 2GB texture maps. No need to offload the graphics into the card, nor any real need to pump it over a small bus. Compute speed remained quite high. I don't remember the details on that, just that I ran them for some time, and they were probably some of the best PC graphics designs made. (legal buried them, BTW --long story)
Anyway, the core idea on the PC was to put the video memory where the adapter could see it, preserving overall compute throughput. Only recently has the bus speed reached a point where that's not a issue for most tasks. Still, many cards come with very large amounts of RAM, just to deal with that streaming issue.
(a point of concern for me on Prop II, BTW, which appears to be leaning pretty heavy on external RAM, bringing all that ugly into the picture here --another thread clearly, or a blog entry now that we have them.)
Many other machines did interrupt the CPU, with a few of them designed to allow a fetch on a trailing clock phase, leaving the CPU deterministic, but for interrupts, and at it's peak throughput. Color Computer comes to mind here.
The big cost on CPU was the complex bus system, consuming a LOT of clocks to do things. Many other devices operated on a slower clock, doing a lot more per cycle. In the end, that proved to be interesting as various CPU designs grew. MIPS, Moto, others kept to a more per cycle model, where Intel basically ended up playing the lotto, showing the world that efficiency didn't get it done. Simply execute everything possible, carry away the heat, and just get the compute done. Brutal, but true!
You are correct them shared memory BUT that memory was always on Video card.
Video address have memory window in memory map that are from
Mono B000:0000 (4K)
Color B000:0800 (16K)
From segment C000:000 starts ROM and reserved area
PS/2 used even segment between A000:0000 to A000:FFFF as EGA Video memory
I have been thinking and it occurs to me that the original IBM PC was an 8088 4.77MHz that shared video memory with the video card.
Now, here is where I am unsure...
IIRC there was no memory on the CGA card (or mono card - what was the common brand?) so in order to display on the CGA screen it would need to interrupt the CPU - correct??? If so, then half the processing time would be used for displaying the screen leaving half for processing??? If this was the case, then IMHO an IBM PC is within the realms of a prop emulation. Any comments???
IIRC the original PC only had 256KB of RAM although the clones had 640KB. I should therefore think that an emulation using RamBlade at 104-108MHz could keep up. The RamBlade could drive mono directly (1-pin TV) or CGA via a second prop. I am still not so sure of the benefits of running DRDOS or MSDOS as I think there were better things done with CPM - and we have that running with ZiCog, etc.
Comments
Now, here is where I am unsure...
IIRC there was no memory on the CGA card (or mono card - what was the common brand?) so in order to display on the CGA screen it would need to interrupt the CPU - correct??? If so, then half the processing time would be used for displaying the screen leaving half for processing??? If this was the case, then IMHO an IBM PC is within the realms of a prop emulation. Any comments???
On a side note, SGI did a really great one, modeled off the Cobalt chipset in the O2 series of computers. That one could do live video, and 2GB texture maps. No need to offload the graphics into the card, nor any real need to pump it over a small bus. Compute speed remained quite high. I don't remember the details on that, just that I ran them for some time, and they were probably some of the best PC graphics designs made. (legal buried them, BTW --long story)
Anyway, the core idea on the PC was to put the video memory where the adapter could see it, preserving overall compute throughput. Only recently has the bus speed reached a point where that's not a issue for most tasks. Still, many cards come with very large amounts of RAM, just to deal with that streaming issue.
(a point of concern for me on Prop II, BTW, which appears to be leaning pretty heavy on external RAM, bringing all that ugly into the picture here --another thread clearly, or a blog entry now that we have them.)
Many other machines did interrupt the CPU, with a few of them designed to allow a fetch on a trailing clock phase, leaving the CPU deterministic, but for interrupts, and at it's peak throughput. Color Computer comes to mind here.
The big cost on CPU was the complex bus system, consuming a LOT of clocks to do things. Many other devices operated on a slower clock, doing a lot more per cycle. In the end, that proved to be interesting as various CPU designs grew. MIPS, Moto, others kept to a more per cycle model, where Intel basically ended up playing the lotto, showing the world that efficiency didn't get it done. Simply execute everything possible, carry away the heat, and just get the compute done. Brutal, but true!
You are correct them shared memory BUT that memory was always on Video card.
Video address have memory window in memory map that are from
Mono B000:0000 (4K)
Color B000:0800 (16K)
From segment C000:000 starts ROM and reserved area
PS/2 used even segment between A000:0000 to A000:FFFF as EGA Video memory
IIRC the original PC only had 256KB of RAM although the clones had 640KB. I should therefore think that an emulation using RamBlade at 104-108MHz could keep up. The RamBlade could drive mono directly (1-pin TV) or CGA via a second prop. I am still not so sure of the benefits of running DRDOS or MSDOS as I think there were better things done with CPM - and we have that running with ZiCog, etc.