It is really intresting project. My dream homemade build would be 80286 with 16 MB of RAM, with 16bit ISA slots using 82258, 82C284,82288,82289 in matx form that spirit of the 80s.
Why you use not the more graphic Yamaha V9990 Video Display Processor. This was also used in the graphics expansion cartridge for the MSX2 computer. if this video processor is still for sale.
I think this video is very interesting for showing how to build a simple computer. This is the first video of yours which I've seen. There were lots of interesting Z80 based computers, including the Sinclair ZX Spectrum, Tatung Einstein, Memotech MTX, Texas Instruments TI99/4A, Amstrad CPC, Elan Enterprise, Spectravideo 318/328, and MSX. Unfortunately, you're using the old CP/M OS which I don't think is very interesting at all. I used to use it on an Amstrad CPC computer. The commonly used CP/M 2.2 has no graphics, only versions 3.0 or Plus, or later versions (if any) had any software with the GSX graphics system, but not much software had any graphics. Memotech MTX computers could somehow convert CP/M programs Into a multicolour mode. Also, CP/M requires 80 column text to display programs correctly. In that case, why have you used the TMS9918 video chip which can only display up to 40 columns? I think some manufacturers (e.g. Tatung and Spectravideo) had 80 column cards to upgrade this. Why not use a chip which can at least display 80 columns of text, but without any graphics? Not only that, but the TMS9918 is designed for NTSC systems, but I think you're in Germany or Denmark and using it with a PAL TV. Is that why the display is B&W mono? Why didn't you use the 9928 or 9929 version? I'd be interested to see you build a clone of one of the computers I've listed above. Perhaps it could even be a Spectrum clone, but with the enhanced graphics of the TMS9918/9928/9929 video chip, meaning that you can display more than one foreground colour in each 8x8 pixel square, like on the Timex Sinclair TS2068 version and on some clones or a compatible computer, such as the MGT Sam Coupé, which had a much better video chip, and I think was only every sold via mail order and not many units were sold either. Details about Sinclair Spectrum hardware and firmware is widely available. For details about MSX, please visit www.msx.org
This computer runs CP/M 3.0, so it could run the GSX extension. Unfortunatelly, I found no source code which I could adapt to the TMS9918. I am aware that my hardware is quite similar to that of a MSX 1. I already had the idea to make a MSX clone, but also here I found no MSX BIOS source code to adapt to my machine. However I would appreciate if someone could help me out there.
Are there enough signals, etc for a rc2014 backplane to be plugged into the connector? Provided an adapter is created. This would be a way to open the project to a ton of existing addon projects.
Great project! How can we put ports, pins to be used as gpio to interface it with sensors and motors and make small robotic applications? Should we use a microcontroller together with it in that case?
The DART has a few IO ports of which some are already used by the system itself. But with a Z80-PIO chip you can get 16 additional gpios. For my opinion it makes no sense to combine this with a microcontroller, because the microcontroller can control the robot alone and is also more powerful.
Hi, Great project I have been following the other Z80 videos as well. Can you provide a BOM for the exact ICs and the connectors the board is designed for? I was not able to find a CF to IDE card with the correctly oriented female connector on AMAZON US and the German one was out of stock, so I found a 40 pin Male-Female adapter the rotates the socket 180 degrees. Thanks
All connectors must have a raster of 100mils/2.54mm to fit. They can eiter be boxed (like in the video) or unboxed. Any adapter with 40-Pin female IDE connector should work. Some don´t have pin 20, so this one needs to be cut off in this case. Also, power must be supplied over a 3-pin Molex connector, then.
Thank you for all your hard work on this project - excellent job! I have been following this since the beginning and it is just great. I do have one question - will your latest version of the software work if I use a 4 mhz Z80 processor and crystal rather then the 6 mhz ones used in your final design? I realize that the serial baud rate would need to change but will the software work without any other changes? Thank you for your help! Rick
Yes, it will work with a 4MHz oscillator or a 4MHz Z80 as well. However you need to change the constant "Z80BDRATE" in mainwindow.h to 125000 to adapt the serial disk drive.
Hello dr volt, Im bulding my own z80 computer like you does and I apreciete verry much all your videos. I would like to run your files, like cpm amd the programs on my comouter. That one do not have a working serial communication already and has only 32k of rom and 64k of ram, that seccond one isnt used by any of the simple programs that I writed. Im here asking you by help to compile and send the bootloader and cpm to my Rom by a rom programmer before plug it on my computer to run it, is it possible? I also need to modify the IO address on the bios, because I build my own IO map from my onw mind (yes, its wasnt a good idea at all). For the last, i build the video card with the tms9918, its alredy works! Thanks for the videos!
You can find everything you need to build CP/M plus instructions on its Github repo: github.com/michalin/ZX2022. If you don't use DART for serial I/O, you need to adapt to it your hardware in CHARIO.ASM, SYSCFG.LIB and bootldr.asm. Also change the MEMTOP variable in gencpm.dat to 7D to set 32k as upper memory limit. I guess there are still other things to do, but maybe this helps you with the first steps. Good luck :)
I was thinking about this already. But I need more detailled information about the MSX hardware or the sources of its ROM. And I cannot find any of these.
Many thanks for this great project ! I figured out only one problem... The .rom image loads well and without any error, but in the seriel console, there is message "Connect serial disk and click reset. I´ve done everything (Change the parts, DART, CPU...) but I have no chance to solve that problem. Can you pls help ?
I assume that you have wired everything like shown in the video... Of course I cannot tell from far what's going wrong. Maybe the baud rates of computer and loader tool do not match? Note that it's the clock frequency divided by 32. With the 6MHz oscillator from the video it's 187500 bit/s. The loader program has been compiled for this. If you are using a different clock frequency, you need to change this and rebuild the tool. Best check with a logic analyzer or oszilloscope if there is communication at all.
Thanks for your reply. I´ve also tried with 4MHz Oscillator (125000 bit/s), re-compiling the "tool" but I see the same error. I´ve checked also every single trace on the board and also every solder pad. The only thing coming in my mind is a faulty DART - I will change this (after buying a new one) and try again.
@@DoctorVolt Hello Doctor Volt, many thanks for your answer. I think i use the schematic, because i don't know how to extract the BOM in kicad. The PCBs are in build with your gerber files. Very very cool Project. 😎
Hi doc, thanks for the tutorials. now I have a problem with the serial disk... qt shows me the sequent error:"QIODevice::read (QFile, "C:\Users\Metal eddy\Documents\Z80\ZX2022\CPM\ccp.com"): device not open"... what do you think about it? bye
@@DoctorVolt hi, thank you for your feedback. It appears on the start of the program or when clicking the button "reload"... Let me now if you figure out something... Thank you again
@@DoctorVolt sorry for the late feedback, but I had a tough time with my health... now I'm fine. Thank you for all yours replies. The file was corrupted, all it took was to download it again from your github, but it seemed too good to be true indeed now there's another error: "Error 20 (this feature has not been implemented yet) in function AVolute::GetProductInfoT::::operator ()"... it appears at the start of the program or when clicking the "reload" button of the serial disk. have you got any ideas? let me know... thank you very very much.
This AVolute::GetProductInfoT class/method has absolute no meaning to me. Which version of Qt do you use? There are often changes between the versions which that code incompatible. I built it with Qt 6.3.2 and msvc2019 64bit. There is also a precompiled binary in the /bin folder (loader.exe) did you try this?
Fantastic stuff! Thank you!
It is really intresting project. My dream homemade build would be 80286 with 16 MB of RAM, with 16bit ISA slots using 82258, 82C284,82288,82289 in matx form that spirit of the 80s.
Man, finally it has been done properly!
Beautiful Build ! Thanks for a Great Video !
This is cool. But I have a question. Is there some way to increase the sprite limit from 32 to 64 sprites?
No, that's a limit of the TMS9918 itself.
Ok thanks. I'll try to see if I could use the Yamaha V9938 as an alternative.
Why you use not the more graphic Yamaha V9990 Video Display Processor. This was also used in the graphics expansion cartridge for the MSX2 computer. if this video processor is still for sale.
The V9990 is harder to get, and it is also more expensive. But a graphics card based on this is already on my to-do list.
what other graphic processors are suitable for 8 bit processors?
@@lexpee en.wikipedia.org/wiki/List_of_home_computers_by_video_hardware
Thank you for the link.
I think this video is very interesting for showing how to build a simple computer. This is the first video of yours which I've seen. There were lots of interesting Z80 based computers, including the Sinclair ZX Spectrum, Tatung Einstein, Memotech MTX, Texas Instruments TI99/4A, Amstrad CPC, Elan Enterprise, Spectravideo 318/328, and MSX. Unfortunately, you're using the old CP/M OS which I don't think is very interesting at all. I used to use it on an Amstrad CPC computer. The commonly used CP/M 2.2 has no graphics, only versions 3.0 or Plus, or later versions (if any) had any software with the GSX graphics system, but not much software had any graphics. Memotech MTX computers could somehow convert CP/M programs Into a multicolour mode. Also, CP/M requires 80 column text to display programs correctly. In that case, why have you used the TMS9918 video chip which can only display up to 40 columns? I think some manufacturers (e.g. Tatung and Spectravideo) had 80 column cards to upgrade this. Why not use a chip which can at least display 80 columns of text, but without any graphics? Not only that, but the TMS9918 is designed for NTSC systems, but I think you're in Germany or Denmark and using it with a PAL TV. Is that why the display is B&W mono? Why didn't you use the 9928 or 9929 version? I'd be interested to see you build a clone of one of the computers I've listed above. Perhaps it could even be a Spectrum clone, but with the enhanced graphics of the TMS9918/9928/9929 video chip, meaning that you can display more than one foreground colour in each 8x8 pixel square, like on the Timex Sinclair TS2068 version and on some clones or a compatible computer, such as the MGT Sam Coupé, which had a much better video chip, and I think was only every sold via mail order and not many units were sold either. Details about Sinclair Spectrum hardware and firmware is widely available. For details about MSX, please visit www.msx.org
This computer runs CP/M 3.0, so it could run the GSX extension. Unfortunatelly, I found no source code which I could adapt to the TMS9918.
I am aware that my hardware is quite similar to that of a MSX 1. I already had the idea to make a MSX clone, but also here I found no MSX BIOS source code to adapt to my machine. However I would appreciate if someone could help me out there.
@@DoctorVolt C-BIOS is an open source BIOS for MSX computers.C-BIOS is a BIOS compatible with the MSX BIOS
This is awesome
Are there enough signals, etc for a rc2014 backplane to be plugged into the connector? Provided an adapter is created. This would be a way to open the project to a ton of existing addon projects.
All of the Z80 bus Signals are available. Don't know which ones the RC2014 needs, but you can easily find out in the schematic.
Amazing project, work and videos! A must see for anyone who likes CP/M. Thanks for sharing.
Great project! How can we put ports, pins to be used as gpio to interface it with sensors and motors and make small robotic applications? Should we use a microcontroller together with it in that case?
The DART has a few IO ports of which some are already used by the system itself. But with a Z80-PIO chip you can get 16 additional gpios. For my opinion it makes no sense to combine this with a microcontroller, because the microcontroller can control the robot alone and is also more powerful.
@@DoctorVolt I would use an 8255 PPI in preference to a Z80-PIO.
nostalgia 👌
Hi, Great project I have been following the other Z80 videos as well. Can you provide a BOM for the exact ICs and the connectors the board is designed for? I was not able to find a CF to IDE card with the correctly oriented female connector on AMAZON US and the German one was out of stock, so I found a 40 pin Male-Female adapter the rotates the socket 180 degrees. Thanks
All connectors must have a raster of 100mils/2.54mm to fit. They can eiter be boxed (like in the video) or unboxed. Any adapter with 40-Pin female IDE connector should work. Some don´t have pin 20, so this one needs to be cut off in this case. Also, power must be supplied over a 3-pin Molex connector, then.
Very Nice.
Thank you for all your hard work on this project - excellent job! I have been following this since the beginning and it is just great. I do have one question - will your latest version of the software work if I use a 4 mhz Z80 processor and crystal rather then the 6 mhz ones used in your final design? I realize that the serial baud rate would need to change but will the software work without any other changes? Thank you for your help! Rick
Yes, it will work with a 4MHz oscillator or a 4MHz Z80 as well. However you need to change the constant "Z80BDRATE" in mainwindow.h to 125000 to adapt the serial disk drive.
Thank you for your help and quick response! That is just what I needed to know.
Hello dr volt, Im bulding my own z80 computer like you does and I apreciete verry much all your videos. I would like to run your files, like cpm amd the programs on my comouter. That one do not have a working serial communication already and has only 32k of rom and 64k of ram, that seccond one isnt used by any of the simple programs that I writed. Im here asking you by help to compile and send the bootloader and cpm to my Rom by a rom programmer before plug it on my computer to run it, is it possible?
I also need to modify the IO address on the bios, because I build my own IO map from my onw mind (yes, its wasnt a good idea at all).
For the last, i build the video card with the tms9918, its alredy works! Thanks for the videos!
You can find everything you need to build CP/M plus instructions on its Github repo: github.com/michalin/ZX2022. If you don't use DART for serial I/O, you need to adapt to it your hardware in CHARIO.ASM, SYSCFG.LIB and bootldr.asm. Also change the MEMTOP variable in gencpm.dat to 7D to set 32k as upper memory limit. I guess there are still other things to do, but maybe this helps you with the first steps. Good luck :)
Great 👍 👌
It is not much different from an MSX, you could make it compatible and run all the MSX software available.
I was thinking about this already. But I need more detailled information about the MSX hardware or the sources of its ROM. And I cannot find any of these.
Many thanks for this great project ! I figured out only one problem... The .rom image loads well and without any error, but in the seriel console, there is message "Connect serial disk and click reset. I´ve done everything (Change the parts, DART, CPU...) but I have no chance to solve that problem. Can you pls help ?
I assume that you have wired everything like shown in the video...
Of course I cannot tell from far what's going wrong.
Maybe the baud rates of computer and loader tool do not match? Note that it's the clock frequency divided by 32. With the 6MHz oscillator from the video it's 187500 bit/s. The loader program has been compiled for this. If you are using a different clock frequency, you need to change this and rebuild the tool. Best check with a logic analyzer or oszilloscope if there is communication at all.
Thanks for your reply. I´ve also tried with 4MHz Oscillator (125000 bit/s), re-compiling the "tool" but I see the same error. I´ve checked also every single trace on the board and also every solder pad. The only thing coming in my mind is a faulty DART - I will change this (after buying a new one) and try again.
Hello, how can i get a part list, to order the used parts like resistors, ics.......
You can just count the parts on the schematic or extract the BOM from it via Kicad.
@@DoctorVolt Hello Doctor Volt, many thanks for your answer. I think i use the schematic, because i don't know how to extract the BOM in kicad. The PCBs are in build with your gerber files. Very very cool Project. 😎
JLCPCB are way cheaper than PCBGOGO. Especially for 4-payer boards and offer 3.5mil spacing and width at no extra cost. Nice computer!!
Hi, can we make a PC with Intel pentium or something similar?
I wouldn´t build this from scratch...
can you make a bin file from de eeprom??? i wanna a copy
You can download the file "rom.img" from the Github repository. Link is in the video description.
Hi, what is the exact model of Z80 CPU in your computer ?
It's a Z84C0006PEG
Where can I get a z 80 processor please??
Many electronics suppliers still sell them, like Mouser, for example.
Hi doc, thanks for the tutorials. now I have a problem with the serial disk... qt shows me the sequent error:"QIODevice::read (QFile, "C:\Users\Metal eddy\Documents\Z80\ZX2022\CPM\ccp.com"): device not open"... what do you think about it? bye
When does this error message appear?
@@DoctorVolt hi, thank you for your feedback. It appears on the start of the program or when clicking the button "reload"... Let me now if you figure out something... Thank you again
@@edoardomariascardamaglia4325 Looks like there is no "ccp.com" file under this path, or it's corrupted. I get the same error when I delete it.
@@DoctorVolt sorry for the late feedback, but I had a tough time with my health... now I'm fine. Thank you for all yours replies. The file was corrupted, all it took was to download it again from your github, but it seemed too good to be true indeed now there's another error: "Error 20 (this feature has not been implemented yet) in function AVolute::GetProductInfoT::::operator ()"... it appears at the start of the program or when clicking the "reload" button of the serial disk. have you got any ideas? let me know... thank you very very much.
This AVolute::GetProductInfoT class/method has absolute no meaning to me. Which version of Qt do you use? There are often changes between the versions which that code incompatible. I built it with Qt 6.3.2 and msvc2019 64bit. There is also a precompiled binary in the /bin folder (loader.exe) did you try this?