Omnimaga
General Discussion => Technology and Development => Other => Topic started by: Keoni29 on February 27, 2015, 03:03:56 pm
-
Z820 - Z80 Computer
Original post: http://8times8.eeems.me:81/blog/index-beta.php?thread=16
First video of a blinking LED program.
The features:
CPU: Z80 @ 20MHz
RAM: 128k
ROM: 8k (BIOS+BDOS)
UART: Up to 1.25Mb/s transfer rate
FDC: Not implemented yet.
Sourcecode can be found here: https://github.com/keoni29/z820 (unoptimized as all hell, cause I am still learning)
-
I got the serial output to work with the PC16552D UART chip. There were some dodgy solder joints that caused problems with it, but I tracked them down and resolved the problem.
It prints characters at 960 Bytes/second right now, but it can go up to 125kByte/second.
Edit: I wrote a bootloader for it too. Works great. https://github.com/keoni29/z820
-
I wrote a monitor program for the computer. It's just like the one on the CBS6000. I learned a lot about the z80 in the process.
Source can be found here: https://github.com/keoni29/z820/blob/master/mon.asm
-
It always makes me jealous when I see one of these. I put some time and money into trying to make a z80 computer, but after a burned rom chip and 2 burned 9/5 v power converters, I gave up the project.
-
It always makes me jealous when I see one of these. I put some time and money into trying to make a z80 computer, but after a burned rom chip and 2 burned 9/5 v power converters, I gave up the project.
I destroyed the UART chip today by applying power the wrong way around. Man that really pissed me off. It was such an awesome chip with two uart channels, FIFO buffer and tons of other cool features.
It forced me to go in a different direction with this computer though. I will use an eZ8 microcontroller for handling all I/O operations. The eZ8 has a lot of peripherals built in including two uart channels, timers, flash memory, adc, pwm. The only thing it lacks is the ability to execute machine code from ram. That's what the Z80 is for in this computer. The z80 will be the main CPU and the eZ8 only does the I/O.
Because the microcontroller needs time to respond to the z80 the z80 will be put in a halt state until the microcontroller is done processing the I/O request. This is similar to the way benryves solved this problem on his z80 computer.
This shows that breaking stuff is not always the end of the world.