User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

My own 8-bit RETRO Homecomputer: RhoCoCo

Wed Nov 14, 2018 10:29 am

As a few people may know, I have been working on my own 8-bit retro computers for some time now, my first attempt was a ZX81 clone I called ZX81+34, and I wrote about it earlier here: viewtopic.php?p=551927#p551927, and published about it on my maker space wiki here: https://revspace.nl/ZX81PLUS34_ZX81_clone.

After I completed the ZX81 clone successfully, I started working on a color computer, not directly compatible with any older system, but picking and choosing idea's from various other systems, essentially creating a new home computer, with modern parts, but with capabilities rivaling the best 8-bit home computers.

I wanted to create a small simple and cheap kit, that would be easy to fully understand and tinker with, with as much flexibility as possible, and able to produce VGA output. The result is RhoCoCo (for Retro Home Color Computer, and yes, it Rho-CoCo not Ro-CoCo, as Rho is the Greek letter coming after PI in the Greek alphabet).

The current iteration looks like this (this is a faithful computer rendering). When I wrote this I was in the process of re-doing the layout, to add memory mapper support, for it's 128K/256K RAM, the picture below is now updated with the 74LS670 chip that is doing the memory mapping, any of the eight/sixteen 16K blocks in RAM can appear in any of the 16K banks of the Z80 memory map.

Image

This version uses a real Z80 CPU, (as the Z80 is the only CPU which is still in full production, and is still cheap and easy to get) I gave up on using a second Propeller, instead of the Z80, to emulate a (6502) CPU.
Currently I found video generator code, I will use as a base to generate 40x25 text and 320x240 64 color bitmap graphics modes with sprites , and also found code to simulate a SID chip for excellent sound.

You can read about my progress in designing it on my maker-space wiki page here: https://revspace.nl/RhoCoCo_Retro_Home_COlor_COmputer.

I created this thread, so there is a place you can comment.

[updated on May 7, 2019]

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 11:31 am

Excellent job but I was wondering what is driving the decision to use non-Pi hardware when Pi's can run at GHz speeds, deliver HDMI and composite out the box, support VGA with a simple hardware addition, has its memory and SD Card advantages, and would seem better suited to instruction set emulation ?

A single Pi would seem to fit better with the "less is more" principles of the venture.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 1:30 pm

The "8-bit guy", well know from his you-tube Retro computer vlogs, (https://www.youtube.com/channel/UC8uT9c ... u7ITLGo9Ww) described his wish for his "dream computer" thus:
Why not use the Raspberry Pi?

Well, to be honest the Raspberry Pi is just a linux computer. You cannot program the Raspberry Pi directly, rather you program it just like you would a desktop computer in modern languages like C, Python, Java, etc. It’s not the same. It’s also a platform that is ever changing, something I’d like to avoid.

Why do you want an 8-Bit computer?

Imagine trying to learn to work on automobiles for the first time. One one hand you have a 1957 Chevy and on the other hand you have a 2018 Toyota Prius. Which one will be easier to understand how all of the drivetrain works? The complexity of modern computers makes the barrier to understanding them much harder. If you start with something more simple, it will be easier to understand. People will be able to write code and actually understand how the hardware they are interacting with actually works.
see: http://www.the8bitguy.com/3543/my-dream ... er-part-2/

He explains exactly and eloquently precisely my own thought processes, and why I wanted to create something different from a Raspberry PI.
It should be exactly like a Commodore 64, or a Sinclair spectrum, or BBC Model or an AMSTRAD CPC, or an Tandy coco, a home-computer, a system that you can completely know, in detail, and can tinker with, or as I like to put it "Less is more, less complexity, more fun is the driving force behind the Rhococo (Retro Home Color Computer). ".

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 3:14 pm

I can see the argument that a Pi is "just another linux computer" but only by choice and commonest use case.

I can also understand the "I don't want that"; in fact it's what has me looking at using just the Pi's GPU for everything, never letting the ARM core(s) out of reset, though I wouldn't be adverse to running them as Smart Peripherals to assist the GPU.

To me the $5 Pi Zero board, GPU used as if a microcontroller, is the modern, low-cost, incarnation of a home-come-retro-computer though it doesn't seem I can convince anyone else to run with that notion :ugeek:

I hadn't considered using the Pi's GPU to emulate other instruction sets but that's an interesting possibility.

Don't get me wrong; I'm all for running stuff on raw silicon. I'm perhaps just getting old and looking for the easiest and cheapest ways to do it.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 3:31 pm

Using the PI's GPU as a "simple and understandable system" does not make sense to me, its the most incomprehensible part of an RPI's SoC, and the only "black box" like part of the system.
There are only a few people in the world that can understand its vector based GPU instruction set well enough to program it, its not for kids, and as far away to retro as I can imagine.

I'm not even looking to build the cheapest computer ever, even having a keyboard with 48 keys as part of the system makes that impossible, I just want to make something halfway affordable.

Again, it must be simple enough to completely grasp any aspect of it, be easy to tinker with, cheap enough to be affordable by anyone, and capable enough to develop the kind of games for which made the Sinclair Spectrum and C64 so popular.
Ideally it should be able to build one as a kit.

I don't want to create something that can run modern 3D games, I want a modern version of the old home-computer.

I want to get back the simplicity we lost in the last couple of decades, it must be retro-tech not hi-tech.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 3:56 pm

Sounds like a cool project. Though I would stick with a real Z80, as you can get those up to 50MHz (and one MIPS/MHz), while the P8X32A only runs at 20 MIPS (up to 28 MIPS if you overclock to max) so could not emulate an 8-bit past about 4MHz (as we have seen from the likes of ZiCog). Now the P8X32A would have the advantage of being capable of emulation a 32-bit CPU with a simple load store instruction set at a decent speed (likely possible to get 5 MIPS, along the lines of the Archimedes 310 speed) though it could be a bit hard to implement the external bus code with only 32 GPIO's.

Are you aware that you can still purchase new 65C02S and 65C816S chips rated at 14Mhz max and being static implementation (allowing clocking down as slow as you want, or even pausing the clock)? The prices are comparible to those of the Z80 IC's.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 4:53 pm

mahjongg wrote:
Wed Nov 14, 2018 3:31 pm
Using the PI's GPU as a "simple and understandable system" does not make sense to me, its the most incomprehensible part of an RPI's SoC, and the only "black box" like part of the system.
It is "black box" by intent and lack of disclosure but the lid has been lifted enough to allow it to be easily usable as if a micro. The rest of it can simply be ignored.
mahjongg wrote:
Wed Nov 14, 2018 3:31 pm
There are only a few people in the world that can understand its vector based GPU instruction set well enough to program it, its not for kids, and as far away to retro as I can imagine.
The QPU / SIMD stuff is complicated, but the core and basic VPU / Integer Vector / Scalar instruction set is simple enough, reverse-engineered, tested and documented, not much different to an ARM instruction set, and even simpler. It's exactly like any traditional von Neumann architecture.

The GPU only seems complicated because of all it provides for and how it is used and considered within the context of a Linux, other OS or application environment. Ignore everything but the VPU and it's dead simple.

Strip away all the fluff and it's basically a 16-bit multi-register CPU, with access to 8 through 32-bit data, running in 128KB RAM, initially loaded from bootload.bin, and executed upon reset.

One can manipulate registers, move data between registers and RAM, write to GPIO and other on-chip registers. That's as close to retro as it gets.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 5:15 pm

Yeah, I know, but I can't buy any 6502 compatible processor in DIP form from any of my common suppliers, and yes I have looked for them.
They seem to be not as commonly used as the Z80, and I fear for their future availability.

The Z80 can be bought from Farnell, for about 5 euro, and the Propeller (P8X32A) for less than 8 euro from RS.
Although the P8X32A isn't very common, I don't fear for its availability.

All of them can be bought in simple DIP format, which is important when you try to design a kit, that can be soldered by a beginner, it makes using SMT out of the question, I had to use an SD-cardholder in SMT, as PTH versions simply do not exist, but that will be my only concession, even the USB connector used is a type B connector, not a microUSB connector, so it is fully a PTH device.

yeah I know the performance of an emulated CPU will not be grand, even running in assembler on a 80MHz clocked system, but with 8 cores available I might wring out an acceptable performance, either from a Z80 core, or a 6502 core, and the emulated processor can also emulate the memory mapping needed for a 128K RAM based system.
With just a Z80 CPU and RAM address line A17 controlled by a propeller I would have to do some advanced and complex slow trickery to make it work. With an emulated CPU such concerns all go away.

In the end the simplicity and flexibility I gain, makes it worthwhile.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 5:23 pm

hippy wrote:
Wed Nov 14, 2018 4:53 pm
mahjongg wrote:
Wed Nov 14, 2018 3:31 pm
Using the PI's GPU as a "simple and understandable system" does not make sense to me, its the most incomprehensible part of an RPI's SoC, and the only "black box" like part of the system.
It is "black box" by intent and lack of disclosure but the lid has been lifted enough to allow it to be easily usable as if a micro. The rest of it can simply be ignored.
mahjongg wrote:
Wed Nov 14, 2018 3:31 pm
There are only a few people in the world that can understand its vector based GPU instruction set well enough to program it, its not for kids, and as far away to retro as I can imagine.
The QPU / SIMD stuff is complicated, but the core and basic VPU / Integer Vector / Scalar instruction set is simple enough, reverse-engineered, tested and documented, not much different to an ARM instruction set, and even simpler. It's exactly like any traditional von Neumann architecture.

The GPU only seems complicated because of all it provides for and how it is used and considered within the context of a Linux, other OS or application environment. Ignore everything but the VPU and it's dead simple.

Strip away all the fluff and it's basically a 16-bit multi-register CPU, with access to 8 through 32-bit data, running in 128KB RAM, initially loaded from bootload.bin, and executed upon reset.

One can manipulate registers, move data between registers and RAM, write to GPIO and other on-chip registers. That's as close to retro as it gets.
Not close enough to retro to my liking, initially I thought about using an ARM, (a STR710FZ2) but I wanted an even simpler CPU, and the ability to use the wealth of available software that exists for old 8-bit based computers.

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 6:05 pm

I guess we all have different views on what's best, most appropriate or simplest.

I favour the Pi GPU approach because the hardware's cheap, easy to obtain, ready assembled and ready to use; all the heavy lifting has been done by someone else. It's then "just software" but I can appreciate the hardware side of things will be more important for others.

Here's my simplified view of using a Pi GPU as a retro-machine -

Code: Select all

                    .---------- ignore -----------.
                    |                             |
.---------------------------------------------------.
|                   .-----. .- - -. .- - -. .- - -. |
|  "CPU"            | ARM | : ARM : : ARM : : ARM : | 
|                   `-----' `- - -' `- - -' `- - -' |
| .-----.           .-----. .-----. .-----. .-----. |
| | VPU |           | VPU | | QPU | | QPU | | QPU | |
| `-----'           `-----' `-----' `-----' `-----' |
|    |                                      .-----. | .------.
|    }-------.- - - - -.- - - -.          .-| VID |=|=| HDMI |
|    |       |         :       :          | `-----' | `------'
| .-----. .-----,   .-----. .-----.       | .-----. | .------.
| | RAM | | I/O |   | CLK | | CFG |-------^-| MEM |=|=| DRAM |
| `-----' `-----'   `-----' `-----'         `-----' | `------'
`------------|--------------------------------------'
      .-------------.
      | Peripherals |
      `-------------'
Most of the GPU is 'going to waste' but I don't see that as a problem.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 8:32 pm

I am not 100% sure that the z80 is simpler than the ARM?

The z80 has more instructions, is less orthogonal, and has seperate address space for I/O (if one chooses to use such).

The ARM has a ver orthogonal instruction set (we use the same move or load/store instructions to return from a subroutine as we use for any other register), uses a single address space, and has a lot fewer instructions. Not to mention that it is easy to do very complex things in ARM (shift combined with most operations, much better multiple load/store, etc), and the rules for register usage are very simple.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 8:33 pm

Though very nice project. I always like to see new 8-bit designs (and even some 16-bit).

It is very good to see this here.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

ejolson
Posts: 3689
Joined: Tue Mar 18, 2014 11:47 am

Re: My own Retro homecomputer called RhoCoCo

Wed Nov 14, 2018 10:00 pm

mahjongg wrote:
Wed Nov 14, 2018 10:29 am
I wanted to create a small simple and cheap kit, that would be easy to filly understand and tinker with, with as much flexibility as possible, and able to produce VGA output. The result is RhoCoCo (for Retro Home Color Computer, and yes, it Rho-CoCo not Ro-CoCo, as Rho is the Greek letter coming after PI in the Greek alphabet).
I like the looks of this project--especially the effort to keep it simple and understandable. It will be interesting to see how things turn out.

As a note, I think the name confounds this new retro-computer with the Tandy Color Computer also nicknamed the CoCo, which may or may not be a problem.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 10:11 am

I'm not afraid there will be any confusion between the Tandy Color Computer, (nicknamed coco) and my Retro Home color computer (rhococo), but I agree that the similarities in name went not unnoticed to me.

On a side note, I'm still doubting over whether using a second P8X32A (propeller chip) is the best solution for the CPU of the system, on the one hand it makes the design much more flexible, on the other hand now I have looked at which CPU emulators there are available to it I am a bit disappointed. what there is does seem unfinished, especially the 6502 emulator, and seems more meant as IP inside the chip, than as a physical CPU replacement (having a memory interface through a data and address bus).
I have also heard other arguments against using one and for using a real Z80.

Then if I do return to using a real Z80, I must give the memory mapping problem (supporting 128K RAM) some more thought, because I'm getting more and more convinced that some hardware support for it is unavoidable.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 10:28 am

DavidS wrote:
Wed Nov 14, 2018 8:32 pm
I am not 100% sure that the z80 is simpler than the ARM?

The z80 has more instructions, is less orthogonal, and has seperate address space for I/O (if one chooses to use such).

The ARM has a ver orthogonal instruction set (we use the same move or load/store instructions to return from a subroutine as we use for any other register), uses a single address space, and has a lot fewer instructions. Not to mention that it is easy to do very complex things in ARM (shift combined with most operations, much better multiple load/store, etc), and the rules for register usage are very simple.
[tongue in cheek] Yeah, its arguably that a Z80 is "simpler" than a basic ARM chip, in many ways an ARM chip has a simpler (one could say reduced) instruction set [/tongue in cheek] :mrgreen: :mrgreen:

LOL.

Lets just reword what I said, to "I wanted an even more retro CPU".

Or one could argue that I wanted a more primitive CPU.

The main reason for using a Z80 CPU is that there is so much software you can "borrow", or port.
In fact when you look at wikipedia, and compare Z80 based computers to 6502 Based computers you will see that there were many more Z80 based ones than 6502 based ones. Notwithstanding that some very well known ones were 6502 based. (Apple ][, C64 and BBC Micro) the list for Z80 based ones is far longer.

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 1:30 pm

mahjongg wrote:
Thu Nov 15, 2018 10:11 am
On a side note, I'm still doubting over whether using a second P8X32A (propeller chip) is the best solution for the CPU of the system
The new Prop2 seems to finally reaching its "imminent arrival" stage so it may be worth holding off on a decision. Of course that's likely to arrive with very little ready-written software, CPU emulators or anything else, but I would imagine those who coded such things for the Prop1 will be eager get their hands on a Prop2.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 1:50 pm

It seems the "imminent arrival" of the Propeller 2 has gone on forever, and I'm not planning to wait for it.
Obviously it might be interesting for a successor of the rhococo, and i'm certainly keeping an eye on it.
However, in any case, it wont be a (40-pin) DIP chip, and so wont fit into my current design.

User avatar
DavidS
Posts: 4334
Joined: Thu Dec 15, 2011 6:39 am
Location: USA
Contact: Website

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 3:04 pm

mahjongg wrote:
Thu Nov 15, 2018 1:50 pm
It seems the "imminent arrival" of the Propeller 2 has gone on forever, and I'm not planning to wait for it.
Obviously it might be interesting for a successor of the rhococo, and i'm certainly keeping an eye on it.
However, in any case, it wont be a (40-pin) DIP chip, and so wont fit into my current design.
I will second that. I forget how many years I have been waiting for the Propeller II, they have even had at least one failed run. It has been a long time since the first time they froze the spec of the propeller II only to unfreeze it shortly therafter.
RPi = The best ARM based RISC OS computer around
More than 95% of posts made from RISC OS on RPi 1B/1B+ computers. Most of the rest from RISC OS on RPi 2B/3B/3B+ computers

hippy
Posts: 6080
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 4:50 pm

DavidS wrote:
Thu Nov 15, 2018 3:04 pm
I forget how many years I have been waiting for the Propeller II
It was first proposed about a decade ago and has been dragging on ever since. Parallax has finally got 'final test silicon' back but they are still dicking about, adding things, changing things, prior to the re-spin, so it's anyone's guess what the future holds.

I don't know whether to laugh or cry. I don't know what happens when it goes into production and it's greeted with a collective "meh" by the wider community which I suspect it may be.

ejolson
Posts: 3689
Joined: Tue Mar 18, 2014 11:47 am

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 5:28 pm

mahjongg wrote:
Thu Nov 15, 2018 10:11 am
Then if I do return to using a real Z80, I must give the memory mapping problem (supporting 128K RAM) some more thought, because I'm getting more and more convinced that some hardware support for it is unavoidable.
Bank switched memory was not unheard of even for early S100 bus microcomputers. I would look into what Alan Cox needs for Fuzix OS to run and let software dictate the bank-switch hardware design these days. In many ways, using a 68000 CPU without an MMU would be simpler. Something like the Sage II or IV (see also here) with VGA graphics would make an interesting kind of CoCo in my opinion.

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 5:50 pm

ejolson wrote:
Thu Nov 15, 2018 5:28 pm
mahjongg wrote:
Thu Nov 15, 2018 10:11 am
Then if I do return to using a real Z80, I must give the memory mapping problem (supporting 128K RAM) some more thought, because I'm getting more and more convinced that some hardware support for it is unavoidable.
Bank switched memory was not unheard of even for early S100 bus microcomputers. I would look into what Alan Cox needs for Fuzix OS to run and let software dictate the hardware design these days. In many ways, using a 68000 CPU without an MMU would be simpler. Something like the Sage II or IV (see also here) with VGA graphics.
The real problem is not the software, the real problem is how I can do bank switching with a Z80 with no, or an absolute minimum of extra hardware. Currently I only have the ability to switch A17 from 0 to 1 with an IOWrite command, and I can write code to both 64K halves of the memory map, so I can put code in both 64K halves, so that the Z80 won't immediately crash when I switch the whole 64K memory map from bank 1 (primary 64K) to bank 2 (secondary 64K). But what I would really need is a hardware such that I can switch part of the memory map to another bank, while the rest of the memory map stays in the primary bank. I wrote extensive memory mapping software for MSX-1 and MSX-2 computers decades ago, but the trick is in implementing a usable memory mapper that uses little or no logic. I'm thinking about only using a few XOR ports, and a few latches to remember the state of A17, and the "mapper mechanics".

If I go the "real Z80 route", I have to think of a simple solution.

obviously I will study all available solutions, to prevent I have to re-invent the wheel, so thanks for the URL's.
I now have also studied how the Sinclair Spectrum's that had 128K RAM (+1 and +2) did it, and as usual Sinclair used very smart and simple solutions, that used minimal hardware.
I think the basic idea is that all memory is divided in 16K sections, and that the top 16K can hold either the original primary bank memory, or any of the four 16K sections of the secondary bank. The MSX computers had a much more complex solution, that I don't want to copy, and the C64 mapping hardware was convoluted to say the least.
I will adhere KISS religiously.... The simpler the better.

Switching to a 16-bit processor (MC68000 or MC68008) is out of the question, unless its a propeller emulated version, but even then I won't because I want to keep it simple and run old Z80 (or 6502) code.

ejolson
Posts: 3689
Joined: Tue Mar 18, 2014 11:47 am

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 7:38 pm

mahjongg wrote:
Thu Nov 15, 2018 5:50 pm
Switching to a 16-bit processor (MC68000 or MC68008) is out of the question, unless its a propeller emulated version, but even then I won't because I want to keep it simple and run old Z80 (or 6502) code.
In many ways I don't see much difference between a Propeller emulating a Z80 compared to an ARM doing it. In either case, there is an additional software layer that could become corrupted, needs to be understood, needs to be debugged and is compiled for different instruction sets. While emulation of simpler hardware is compelling, it does not, in fact, lead to simpler hardware.

Vintage CPUs don't have loadable microcode nor do standard TTL parts. Being able to boot and run a system using software for only one CPU architecture is much simpler than having to combine software for all sorts of individually programmable components together. For these reasons I find something like the Sage computer to be much easier to understand.

Heater
Posts: 13629
Joined: Tue Jul 17, 2012 3:02 pm

Re: My own Retro homecomputer called RhoCoCo

Thu Nov 15, 2018 8:30 pm

ejolson,
In many ways I don't see much difference between a Propeller emulating a Z80 compared to an ARM doing it.
True enough.

In my case the motivation was as follows:

I had just acquired a Prop and got it running on a strip board, with SD card and 2 line LCD attached. I wanted to get a bit familiar with PASM. My original Intel 8080 emulator was just an exercise in learning PASM. My first PASM program. Then came the crazy notion that it should run CP/M. It was a blast seeing it run in 24K of HUB RAM and displaying the CP/M put prompt on that 2 line LCD!

This could all be done in an ARM micro-controller of course. Like an STM 32 or some such. Part of the attraction of doing it on the Prop was aesthetic, it's a good old huge DIP chip! Part of it was the challenge of getting a whole 8080 emulator into the space available in a COG. Almost did apart from a couple of lesser used 8080 instructions.

That was indeed a very simple hardware solution to get CP/M running. A Prop, and SD, an LCD, a serial terminal port. Only one easy to breadboard chip.
Memory in C++ is a leaky abstraction .

User avatar
mahjongg
Forum Moderator
Forum Moderator
Posts: 12339
Joined: Sun Mar 11, 2012 12:19 am
Location: South Holland, The Netherlands

Re: My own Retro homecomputer called RhoCoCo

Fri Nov 16, 2018 11:04 am

Yes, using a propeller to create a small CP/M system is easy. Its just that a propeller in itself does not have enough RAM, just 32K. If you also want to generate video, it would mean the usable RAM size would shrink even more (by at least 2K). It was one of the reasons that at one point I invented a memory expansion board for the propeller based Hydra, an idea that was later adapted by André LaMothe who designed his own version of it.

My initial enthusiasm for the idea of using a second propeller to replace the Z80, possibly emulate a 6502, and also solve the bank switching support problem has waned off, now that it becomes clear what the disadvantages are.
My hope that it would be easy to create a 6502 based computer this way were torpedoed when I found out that 6502 emulation code doesn't really exists for the propeller in a finished form.
I also realized that supporting an expansion port would be nearly impossible, and that the CPU speed would suffer dramatically. It would also seem much less like a true retro device without a real Z80 chip.

oh well... Back to using a real Z80 then.

As for implementing hardware MMU (bankswitching) support, I decided its not really possible, it simply needs more extra hardware than I'm willing to add. It would destroy the simplicity of my current design.
I still think I can make good use of the second 64K with some clever software tricks.

Memotech Bill
Posts: 25
Joined: Sun Nov 18, 2018 9:23 am

Re: My own Retro homecomputer called RhoCoCo

Sun Nov 18, 2018 9:54 am

@mahjongg you may be interested in http://primrosebank.net/computers/mtx/p ... b80col.htm, a Propeller video generator specifically designed to interface with a Z80. Capabilities:

"Native Mode":
Text: 80x24x64 colours
Graphics: 320x240x64 colours (restricted to 2 colours per 8x10 character cell)

Also emulates a Texas Instruments TMS 9929A video processor (including sprites).

For the firmware source see the CFX-II Firmware page on the same site. The site also has a USB keyboard to Matrix keyboard translator, also using a Propeller.

Return to “Off topic discussion”