Z80 vs. 8088 Speed
groups.google.com
groups.google.com
Let's be honest: early 80's homecomputers were more bang/$ than the earliest PC's. Graphics & sound, BASIC built in, fast-expanding software libraries, etc. They were however more suited for games than business applications.
But I'd argue that PCs had unequivocal advantage when 386s came out.
I had color games on my Apple 2 (Woz and his incredible NTSC/PAL coloring hacks) long before i had color video games on any other system, including the much later IBM PC era where CGA/EGA/VGA was an add-on feature. When the much later C64 came out the Apple 2 still played pretty much the same games, just without the audio.
The Amiga had hardware acceleration for graphics and sound as standard, long before other systems did the same thing and again was way ahead of contemporaries. Less Woz style cleverness in hardware and more "throw in every feature from the start" architecture. Still there's a reason this system is so popular in the demoscene today. This used to wow people with the graphics even in the Windows 95 era and i used to explain to people "we've had this computer since 1985" to much disbeleif.
no, I think some people are rebuilding Z80 and 6502 chips and the like, to get away from Intel spycrap and other reasons
There was no premise. I ported my T3X compiler (http://t3x.org/t3x/t3x0.html) to DOS and CP/M, self-compiled it on both, and was surprised to see pretty much no difference between the lines compiled per MHz on both systems. It is just a friendly discussion to explore some technical details of ancient architectures. No attempt to question IBM's business model. That would be a bit late to the party anyway :)
I did not "upgrade" my home computer until the 386(SX) could emulate the Z80 faster than the Z80 silicon could run.
(I was at a small company doing mailing list processing for non-profit fundraising campaigns, on an IMSAI (upgraded to a Z80 and 24M hard drive) (no that's not a typo, it was huge by which I mean * it was split in to 3x 8M pseudo disks so it fit the CP/M filesystem limits * it was about the size of a pair of tower PCs tipped over and laid side-by-side ) and we were looking askance at IBM PCs in particular - not enough I/O, not faster - in observable ways, like WordStar had noticeable latency compared to the Z80 version - it was pretty easy to believe the gossip that "these were only moving in quantity because IBM was forcing their big customers to buy them", which was a popular theory it at the time.
We were, with hindsight, entirely wrong :-)
[0] https://news.ycombinator.com/item?id=38345672
[1] https://trixter.oldskool.org/2011/06/04/at-a-disadvantage/
[1] https://retrocomputing.stackexchange.com/questions/5748/comp...
And that memory access was also the reason a 6502 carefully programmed will have better performance than a 8088 with 5x the clock speed. The first 256 bytes (0 pages) had better access performance.
I'm broadly skeptical that a 6502 outperforms an 8088 at 5x clock speed in practice. Would love to see benchmarks. Certainly I'd expect it to be highly task dependent.
These comparisons have so many variables that they are extremely hard to make accurately.
FTA - I would have guessed that the 8088 is much faster at about the same clock speed, because it has more 16-bit operations and does multiplication and division in hardware.
Does the compiler of the compiler make use of these extra 16-bit operations? How many layers of abstraction does it go through for each of the environments? Does it use DOS interrupts when running on DOS and optimized machine code on CP/M?
These comparisons are strange thought experiments.
Is it still an inaccurate comparison? Sure. But I expected something dramatically different, so I asked.
Not that it matters much, but strictly speaking this is true only for the PAL version.
On the Dhrystone 1.0 micro-benchmark, a C64 is ~36/s, whereas the PC/XT models tested (basically same as the original PC) are more like 300+/s.
That said, any 16-bit optimizations the 8088's compiler could take advantage of, well, that's fair game.
In reality, most software that time created with C or hand crafted in asm, and effectively use much larger register file of 8088 and its really 16bit arithmetic.
I remember, how much time people spent, to ensure maximum usage of registers, and avoid memory operations at all costs.
Unfortunately, this also leads to decline of alternative technologies, like virtual machines, which that time was mostly stack machines, depend on memory speed.
Sometimes I think it is this feature of the 8088 that creates the famous C power, and not something else.
And I must admit, PC before approx 386, was extremely weak (slow and low colors) on graphics and nearly no sound, so looks like was not accidental, that on PC game culture was totally other than on 8-bits.
Unfortunately, I was not in good position, to see difference myself, but my friends early see consoles and home computers, like MSX, and tell me about their much better graphics and sound. Sure I have not possibility to measure memory speed of consoles.
What really slows down the 8088 is that each 8-bit transfer on the data bus requires four clock cycles. That means simply fetching the two-byte instruction requires eight clocks! Instruction fetch is so slow on the 8088 that it's virtually impossible to achieve the published instruction timing.
(You can tell it's usenet because the "group" comp.os.cpm in the URL is a newsgroup, and Google Groups can be a a HTTP bridge to Usenet)
You can take part in those, too :)
ok, now slowly, do the calculation again... the IBM PC and 8088 was the beginning of the future. the Commodore 64 and 6502 was the tail end of the past. The 6502 caught on because it was a bargain price, but at that price it was severely hobbled in what it could do, space- and time-wise
could you write a small program for the commodore 64 that was faster? who cares, because you couldn't write a large program that was faster.
I still find it amazing that we have a lot more processing performance, RAM and disk space these days, and yet every new commercial Operating System version that comes out requires more resources than the last and yet delivers essentially the same results...
Then boot into a 2003 one and try not to shudder even harder.
Bonus points for Windows 95.
Fires up the old Amiga 1200 and boots into Workbench 3.0 (a 1992 OS) ... No shudder
Fires up the even older Amiga 500 and boots into Workbench 1.3 (a 1988 OS) ... No shudder
Ok, that last one might have triggered a shudder if I'd left the original color settings in place :D
I would continue but I've just found my old Syndicate floppy disks for the A500, so I might be sometime...
The "genius" of IBM was to reinvent an updated version of S-100, stick an IBM badge and a "business" price tag on a backward and underspecified machine, and spend millions on marketing.
16-bit hardware and operating systems were already available in the S-100 space.
Between them IBM and MS traded performance for forced standardisation. This likely held back access to much better features - like higher reliability and multitasking - for a decade or so.
Maybe I misunderstand, but for me it is a strange statement:
* IBM fought standardization: they initially released a PC compatible with nothing, even in their own product lines, and fought hard against any kind of clones - those that transformed the IBM-PC in a de-facto standard. They even tried with the PS/2 line to break compatibility for all third-party hardware extensions (the MCA bus that could be used only by paying royalties to IBM).
* Microsoft cared neither for performance (obviously) nor for standardization. They just fought to own the market. Their products became de-facto standards because MS worked hard to kill competition and real standards. They even theorized and practiced the "embrace extend extinguish" process to kill competing products by breaking standards.
It sounds more like you try to state that the results have no real world meaning, and that is very correct. But nobody have claimed otherwise. This is about historical computers. We all know which architecture won. Despite being slower performing a ROR.
And performance wise, bank switching on an 8-bit machine wasn't much more expensive than updating the segment register on an x86
The main advantage of "proper" 16 bit CPUs was the wider databus and ALU. But a wider ALU doesn't help all that much when it is held back by an 8-bit data bus (like the 8088).
Also obligatory: Amiga forever! :D
The entry level IBM PC was 16KB, and the top-of-the-line model was 128KB.
> at that price it was severely hobbled in what it could do, space- and time-wise
Again, Commodore 64 had 64KB of RAM, more than the cheapest PC. It also had dedicated sound (SID) and video (VIC-II) chips which made it more performant when it comes to entertainment (i.e. video games).