Login
Back to forumSee the full topicGo to last reply

Posted By

JamesD
on 2013-07-30
13:35:41
 Re: Z80 GUI: SymbOS

"Today the first day i hear about SymbOS, that is a multitasking GUI with own kernal for Z80 machines. I checked on youtube, how fast it works on a CPC6128 machine,and i was shocked how close the speed and user experience to win95 on a modern PC, even video playback on 4MHz machine! Amazing! "

Just keep in mind that that video was converted to a format that is fairly easy to play back on that machine and decent video playback has been done on the Atari and CoCo; probably other 8 bit machines as well.

Did you see SymbOS running on the CPC TREX? That's an FPGA based CPC clone that runs at around 24MHz. It also runs really fast on an MSX Turbo R.
Both are scary fast for a Z80 type machine.

"Did you try to use z80 assember? 6502 has clearer style of fast and simple machine language which is similar to modern ARM CPU. 20MHz SuperCPU is 3-4 times faster than 20MHz z80. "


Z80 assembler isn't bad. You just have to learn which registers to use for certain instructions. Whenever I write Z80 code and haven't used it for a while I have to keep a Z80 book next to me though. The 6502 isn't quite so bad but it has it's share of special cases as well. It's not like X and Y registers are identical. The 6502 also requires a little more code than the Z80 to do the same thing. I think in my own code there was a 10% difference in size between the two but it can be more or less depending on what you are doing.

To be honest, I'll take programming the Motorola 6803 or 6809 over either of those. The code is almost 1/3 the size of 6502 code that does the same thing and it takes less time to write because of the 16 bit support and fewer special cases (which are mostly on the 6803). The multiply instruction doesn't hurt either.


Let me just say that the ARM and 6502 are *not* alike.
I'm not trying to sound cranky here, just stating some facts.

ARM uses a load and store architecture. The 6502 doesn't.
ARM has a large number of 32 bit (or 64 bit now) internal general purpose registers. The 6502 doesn't.
ARM has a multi-stage pipelined architecture. The 6502 doesn't.
ARM has a simple easy to decode 32 bit orthogonal instruction set. The 6502 doesn't.

All those things I listed are what RISC is.
The 6502 is somewhat simple by CISC standards but not in the same way and it's instruction set is very different.


"BTW ez80 can be clocked up to 50 MHz. "

People have mentioned incompatibilities with the Z80 but since the original poster is talking about adding a Z80 to the +4 and you aren't trying to interface the ez80 with an existing Z80 machine, it doesn't matter. The problem you run into is the 6502 to Z80 interface. Video is either like the Amiga Bridge board where the host CPU displays the Z80 output (slow) or you need to pass the +4 video through your add on board like the old Trackstar Apple II boards for the PC.
Either approach works but has it's own issues.
You'd need a customized CP/M or SymbOS kernal and a rather complex board to implement it. It's cheaper to make a stand alone machine than to interface to the +4.
The easiest approach would probably be to use some dual port RAM for the eZ80 video and have the +4 CPU copy it to the +4 display RAM.

I think a better project would be a 65816 accelerator or Zip Chip like accelerator.
Then you can run existing software faster and with the 65816, you can address a lot of RAM in native mode.

Frankly, once you pass 8MHz on an 8 bitter, the software feels more like a 16 bit machine from the 80s. At 20+ MHz you can run BASIC that is as fast or faster than assembly.
I know the FPGA CoCo 3 running at 25MHz runs BASIC at assembly like speeds.
You can clearly see the speed improvement in the video below:
https://www.youtube.com/watch?v=E7982JhI5Kc



Back to top


Copyright © Plus/4 World Team, 2001-2024