Author Topic: My homebrew computer project  (Read 18 times)

Cas

  • Otto's Student
  • **
  • Posts: 343
  • Think different. That's OK... as long as you think
    • View Profile
    • Dimioca Labs
My homebrew computer project
« on: September 07, 2019, 01:22:48 AM »
I've mentioned in a couple of occasions that this year I've been working on a home-made computer project with a friend of mine, but now I thought I'd drop it here, to share more information with you guys about it.

We had begun early this year thinking about how a microprocessor should be designed and had made some sketches on the PC and in paper, but it was all theoretical. Then we started to consider taking it to reality, but it seemed expensive, very likely to fail and well, it was going to be pretty slow and useless, except for learning from doing. So I asked my friend if he'd like instead to build a computer out of an existing microprocessor. We'd design mostly everything else. The idea sounded good and we chose the Z80B, which is a pretty popular microprocessor for these projects. It's 8 bits, but runs relatively fast (6MHz) so that the result could be comparable in power to an XT for some applications (and definitely not, for others, because of memory addressing, mostly).

We first started working on a PIC 16F84A micro-controller. These guys help a lot in developing projects like these. My friend had the software to program it, but it was windows-dependent, so we researched the protocol and managed to build a DOS-based assembler and burner. It took time and patience. Then, we incorporated a Z80A first and some latches and we used the PIC to emulate a memory system by controlling the Z80 clock and communicating with the PC. The PC would receive read requests from the Z80 via the PIC and return the values from PC memory and do the same the other way: receive data from the Z80 and store it in memory, thus emulating a memory environment. After considerable work, it was a success!  We were able to run simple programs at about 2Hz, ha, ha.

Now we've started running the Z80B at 4MHz directly connected to on board SRAM. We have a four-row LCD text display that we've already been able to interface and will soon be implementing a keyboard, a real-time clock and simple sound output, besides a parallel port. Our idea is to have this mini-computer help us with other electronics projects, being more friendly in that respect than a PC. But also, why not, get it to work like a standalone personal computer, eventually having a VGA output that could be converted to HDMI. We could even use a Yamaha OPL2 or OPL3 to output much better sound.

Another possibility would be to try to make it compatible, to some degree with either the Sinclair ZX Spectrum or the Commodore 128, in order to be able to run some of the software originally designed for those, but this would imply including some audio and video chips that are hard to find and sub-optimal nowadays for a project like this (harder to program, with worse quality and more expensive), so we'll see about that.
Earth is my country. Science is my religion.