I noticed you didn't mention an Static RAM chip. Are you using the NVRAM as your SRAM as well? I know that an NVRAM is an SRAM with a lithium battery in the package.
@mnprg I also noticed on your website you had a 512 KB disk that you use for the OS and user files. The Z80 has a 64 KB addressing range. How do you manage this in the software? I know that the upper address lines would just be an IO port but how does your software model deal with this?
The 'disk' is accessed via a PIC microcontroller that allows reading it in small chunks into RAM as performance does not need to be too high, this is quite fast :)
@mnprg When you want to execute a program off of the "disk" (i figured it was a solid state thing) do you read it into ram then execute and after jump back to the program that is the console?
I have also designed a system whereby the system RAM can be larger than the Z80 address space and a few banks can be swapped. This allows the interesting possibility of simple co-operative multitasking without needing relocatable code. Just load one program per bank (but have the OS allow a program to occupy multiple banks).
Nice project. I've just bought a FPGA dev board and am thinking of writing a Z80 in verilog. The board's got USB, SD reader, VGA out, serial and ethernet so I could make a nice machine.
I saw on your site you were planning to implement ethernet, would you be using the Microchip TCP/IP stack or writing your own?
I would be writing my own stack, as TCP/IP would be implemented in the OS running on the Z80. The support PIC would be there to translate packets into a nice format directly onto the Z80 bus using the PSP (Parallel Slave Port) peripheral.
Your FPGA method should allow you to add the kind of things I want to add far more easily. I'd be interested in seeing a video of it in action.
If you were to use SDCC (open source cross compiler) then you can write all of your code in C and also use the LINUX IP source to save yourself the trouble of developing your own TCP/IP stack - which is a HUGE undertaking.
Good Job! I'm trying to build a Z80 computer too, but I have no ram! :D In days I will get it and made something with it. I will answer to your video. Bye!
Yes there were problems with interference - if I turned my desk lamp off and on it would crash the system. I have since soldered this onto stripboard which stopped that issue.
To program, as said in the video I am using a custom project and software called "memorybrick" :)
Very nice. I've been working on a similar Z80 project, though without any NVRAM so far. I have a LCD text display working for it, mapped to I/O addresses 0x00 (for control) and 0x01 (for data). It uses a parallel-interface LCD module and a PIC16F887.
Cool project I have also been messing around with a Z80. I don't know which asyembler to use though and I am having great problems making any software that uses the Pport on the computer so can't burn my EEPROM. At the moment I am programing it by asyembling in my head and writing the program to the EEPROM using dip switches which is hmmm... tedius. For your PS/2 interface I would use a PIC to interface with the keyboard and then connect it to one of the parallel ports on your I/O chip.
The foundations look so cool. It'll be interesting to see the finished thing at some point. I wish you the best of luck in finishing your microcomputer! ^_^
Where do you get all these old chips, like the z80 for starters.
RobertMOdell 2 months ago
you have the same voice as me :O
And i too love computers+ electronics
I plan on making a large scale z80 computer :D!!!
TheOneToxic 8 months ago
dude great computer you just need to updade to a newer OS
loko95ftp 11 months ago
@loko95ftp I have Windows 7 now, and most of my computer has been upgraded ;)
mnprg 11 months ago
Wow incredible project!
TheNovum 1 year ago
That is brave to have all of that wiring on a breadboard, 1 mistake would be a major pain!
thishasgottobecrazy 1 year ago
Nice man. That look soo fucking interesting.
One question : did you finish your Z80 project?
xzfabian 1 year ago
I did move this onto a soldered board, see my website for details :)
mnprg 1 year ago
I noticed you didn't mention an Static RAM chip. Are you using the NVRAM as your SRAM as well? I know that an NVRAM is an SRAM with a lithium battery in the package.
linuxrobotdude 1 year ago
Correct, in this demo the NVRAM is also used for SRAM.
Later on, I added a real SRAM too.
mnprg 1 year ago
@mnprg I also noticed on your website you had a 512 KB disk that you use for the OS and user files. The Z80 has a 64 KB addressing range. How do you manage this in the software? I know that the upper address lines would just be an IO port but how does your software model deal with this?
linuxrobotdude 1 year ago
The 'disk' is accessed via a PIC microcontroller that allows reading it in small chunks into RAM as performance does not need to be too high, this is quite fast :)
mnprg 1 year ago
@mnprg When you want to execute a program off of the "disk" (i figured it was a solid state thing) do you read it into ram then execute and after jump back to the program that is the console?
linuxrobotdude 1 year ago
Correct that is exactly how it works.
I have also designed a system whereby the system RAM can be larger than the Z80 address space and a few banks can be swapped. This allows the interesting possibility of simple co-operative multitasking without needing relocatable code. Just load one program per bank (but have the OS allow a program to occupy multiple banks).
mnprg 1 year ago
Nice project. I've just bought a FPGA dev board and am thinking of writing a Z80 in verilog. The board's got USB, SD reader, VGA out, serial and ethernet so I could make a nice machine.
I saw on your site you were planning to implement ethernet, would you be using the Microchip TCP/IP stack or writing your own?
NIGH8R88 2 years ago
Thank you
I would be writing my own stack, as TCP/IP would be implemented in the OS running on the Z80. The support PIC would be there to translate packets into a nice format directly onto the Z80 bus using the PSP (Parallel Slave Port) peripheral.
Your FPGA method should allow you to add the kind of things I want to add far more easily. I'd be interested in seeing a video of it in action.
mnprg 2 years ago
If you were to use SDCC (open source cross compiler) then you can write all of your code in C and also use the LINUX IP source to save yourself the trouble of developing your own TCP/IP stack - which is a HUGE undertaking.
korgpolyex800 1 year ago
Awesome super cool project!! Z80 rocks...
PhatPhunk 2 years ago
Good Job! I'm trying to build a Z80 computer too, but I have no ram! :D In days I will get it and made something with it. I will answer to your video. Bye!
Z80Fan 2 years ago
Nice. Any radio interference with all the wire loops?
What PC software are you using to burn your chips? I currently use a Top2000 (junk) but it works.
mainedoggie 2 years ago
Yes there were problems with interference - if I turned my desk lamp off and on it would crash the system. I have since soldered this onto stripboard which stopped that issue.
To program, as said in the video I am using a custom project and software called "memorybrick" :)
mnprg 2 years ago
Very nice. I've been working on a similar Z80 project, though without any NVRAM so far. I have a LCD text display working for it, mapped to I/O addresses 0x00 (for control) and 0x01 (for data). It uses a parallel-interface LCD module and a PIC16F887.
FlyByPC 3 years ago
Nice hacking.
jtel 3 years ago
Cool project I have also been messing around with a Z80. I don't know which asyembler to use though and I am having great problems making any software that uses the Pport on the computer so can't burn my EEPROM. At the moment I am programing it by asyembling in my head and writing the program to the EEPROM using dip switches which is hmmm... tedius. For your PS/2 interface I would use a PIC to interface with the keyboard and then connect it to one of the parallel ports on your I/O chip.
kipman725 3 years ago
The foundations look so cool. It'll be interesting to see the finished thing at some point. I wish you the best of luck in finishing your microcomputer! ^_^
tomatzu 3 years ago