congratulations for the computer! When y was a child, y had one of these.. loading games from audio tape. It was a HC91 and running BASIC language.Anyway , great job and respect for the effort you made. I know what it means to make a computer like this from scratch! I am a electronic hobbyist and i am aware about what effort you have done tu make something like this! Congratulations again! You have gained a new subscriber!
btw, it reminds me of a dual cpu z80 based computer circuit i saw once before... maybe you can add a second cpu to your design :) they used alternate clock signals so they didn't need a wait state... both with full access to the enter 64kb ram
@ninjazhu Thanks - dual CPUs sounds like an interesting prospect. :-) I ended up adding an AVR and dsPIC to the "Mark 2" - they do the heavy lifting as far as I/O and video output are concern, leaving the Z80 to spend more time running programs.
The N8VEM project provides the SBC board for $20 USD plus postage. You supply parts and DIY, basic support available in build manual and Google discussion group.
@fredosstudio I started with the software side (writing programs for my graphical calculator and the Sega Game Gear). For the hardware side I relied on the Z80 Family CPU User Manual (search the web for um0080.pdf) and the datasheets for the various other components. "Electronics Explained" by M W Brimicombe is a good textbook for getting started with electronics if you don't have any experience in that field (try the preview on Google Books first as it's quite expensive).
@benryves I know x86 assembly, and the z80 has similar instruction set right? And I already know the basics of electronics, so I'll guess I'll search for the manual, hopefully it isn't a big one.
Found it, 300 pages, nothing compared to the i386 manual :D, sadly still quit a bit :c But I found a great website on the z80 explaining the basic architecture and everything. :D: Z80.info
This was amazingly great. I didn't understand most of the video since I am not an expert in electronics, I am only interested in programming. BTW, you often sound like the British version of Sheldon Cooper, have you ever watched the Big Bang Theory? :D
By the way, on the Motorola 68000, A0 is an address register and D0 is a data register. I think it could confuse many programmers who only know about 68k and are willing to give the z80 a try. I have so many things to learn! thanks for the wonderful video! it really inspired me.
@sonnyk88 Thanks for your comments - I'm no expert with electronics, but am a firm believer in the value of datasheets. :-) And I'd much rather be Maurice Moss than Sheldon Cooper!
@RobertMOdell I can't put links in comments but if you plug um0080.pdf into your favourite search engine you should be able to find the Z80 Family CPU User Manual on Zilog's website.
you have a piano in your room.. Very clever i almost understood half of it :D and that screen and its holder look like a little man carrying the screen. still very cool look forward to seeing more of it!
The Z-80 has a useful feature that allows it to slow down for slow devices. The /Wait input can be used to add wait states. While ideally, only your slow display would be affected, a simple solution is to add wait state to all I/O accesses.
@PeterCCamilleri Thank you for your comment. I built a new Z80 computer that uses the /WAIT feature - a flip-flop automatically asserts /WAIT on any /IORQ, at which point an AVR microcontroller performs the requisite I/O operation before resetting the flip-flop and letting the Z80 continue.
To switch speed in software, just have two clocks connected to tristates (to control)
Have a D latch to remember which of the two clocks is being used and use the and use the IO address lines to activate it. so maybe when address 1 is chosen it initiates 10mhz and when address 2 is chosen it changes back into 2mhz.
@TheOneToxic Sounds like a plan. I had intended on doing it manually, though your automatic switch sounds like a good idea. My main issue were runt pulses when switching between 10MHz and 2MHz. Ultimately, I scrapped this design and went for one where everything ran happily at 10MHz.
So you do have the PS/2 keyboard hooked up in an I2C fashion? I'm trying to get my keyboard connected to my Atmega, and I considered USART but would I2C be better?
@3mustardMoNkEyS The clock and data lines for PS/2 (and AT) devices are open-collector, in the same way that the I²C SCL/SDA lines are. On the ATmega you can implement this by using any two digital IO pins. The two states would be a pin configured as an output driven low or a pin configured as an input with a pull-up resistor.
@benryves Ok thanks, and also I've read that PS/2 keyboard's clock signals can vary depending upon manufacturer, but its possible to configure the I2C ports on the fly for those clock signals right?
@3mustardMoNkEyS The AT protocol is different to the I²C protocol so you would not be able to use the I²C module to control a keyboard - you'd need to implement the protocol yourself in software.
@windoes98se Not at all. Even though the new computer design on my channel executes many more instructions per second than the C64, it still has greatly inferior sound and video hardware.
@matchstickpro Thank you very much for your comments! I am currently putting together a new design that is simpler (in terms of part count) yet much more practical and powerful. I hope to post a video to demonstrate it in the not-too-distant future but for the time being am posting updates on my website.
One Way of making room on broads with limited space is using a Raiser Board
Turn "T" upside down you you'll get what a raiser board is
Raiser boards use to be quite common in 60s to 80s hardware (they use to have about +15 of them) Due it Added Extra space to fit extra components Vertically up on there side from the main Motherboard but allowed a lot to fit in a square 3D space
@hitechguy18 Sounds like a good plan, thanks for the tip (though I've usually seen such a design referred to as "riser cards"). My revised design (using an ATmega644P as an I/O controller) fits easily on two breadboards, so I should be able to make the final circuit much smaller. :-)
Nicely done! Although the logic for inserting wait states on the Z80 is a bit of a pain, I suggest you give it some serious thought. I took the approach you seem to be considering (switching between two clocks) to solve a similar problem with IO devices on Magic-1, and it turned out to be much more difficult than I'd expected. I finally got it to work, but the logic to make the two clocks and the reset line play nicely together is pretty ugly. Anyways, best of luck.
@buzbee1 Thank you, and your work on Magic-1 is very inspiring! I have since started working on the project again, and replaced all of the I/O devices with an ATmega644P. A flip-flop between the /IORQ and /WAIT Z80 pins is used to give the AVR time to respond, and the Z80 can now run at its full 10MHz. Having a programmable I/O device has made things much easier, and I currently boot CP/M 3 from an SD card.
When you metioned the special 40pin chip to expand the z80's IO's/parrel inteface, is this simlair or close to the ULA chip found on a sinclair zx spectrum? im looking into what i would need to build a z80 computer and i have a sinclair zx spectrum that i can probably scavenge parts from.
@pieznice29 I don't know much about the ZX Spectrum, I'm afraid. :-( The ULA seems to be used for video, but I don't know if it also provides general I/O capabilities (I can't find much information about that).
The chip I referred to was the Z80-PIO. I'm probably going to end up using an AVR for I/O (keyboard, storage) and interface that with the Z80 using some latches as per the current design.
How did you connected LCD module? I'd like to know, because I did simple Z80 system myself, so I tried to connect KS0108-compatible 128*64 LCD to it (directly to Z80 bus, C/D is A0, CS1 is A1, CS2 is A2, E is /IORQ, RD/WR is /WR)... No luck.
@ZXRulezzz I think I had similar problems to you. I used a 3-to-8 decoder to split up the address bus, and this 3-to-8 decoder has an "enable" pin that was connected to /IORQ. The LCD's R/W was connected to the Z80's /RD pin via a NOT gate. E was driven using a binary counter connected to the Z80 clock and reset by /IORQ. For a better explanation, see benryves com journal 3302840 (insert a dot before com and slashes between the other parts).
@benryves Yesterday I fixed the problem :-). I connected R/W pin to Z80 address line (A3), and E to inverted Z80 /IORQ.
Only one thing that is uncomfortable about that type of connection that you much change port address to read or write to display... And there's no diffrerence between IN or OUT instruction to display.
@ZXRulezzz Ah, as long as that works for you. My main problem was the LCD trying to put stuff on the bus when it shouldn't, causing odd crashes. I hope your solution is more reliable! :-) I hope to use a 320x240 LCD driven by a PIC instead, which should make things more robust and more efficient (drawing operations can run on the PIC).
Anyhow, do you have the source .ASM or whatever for this? I am thinking of creating a Z80 based computer but thought of just simple serial I/O and I do like your BBC basic OS with the ability to prefix them with "*" for system commands...very clever.
The * functionality is a standard feature of BBC BASIC that works nicely to my advantage (you can also use the OSCLI statement to the same effect, but that takes a standard BASIC string so can be rather more flexible).
The code for BBC BASIC is not available, unfortunately; Richard Russell kindly provided me with relocatable modules when I asked him.
Rather than write a custom OS, I'm thinking about running CP/M on the computer; this would provide a much larger library of software (including BBC BASIC), it's known to work well and saves me having to write my own command processor, file system, utilities &c.
I'd be glad to offer any help I can via email (see my website for contact info)!
Do you have circuitry of this? I'd like to build the same thing myself! (only with the 40 pin Z80 parallel IO chip instead of the "Glue"registers). Nice presentation and well explained. Give us an update on this amazing machine! You're BBC Basic Z80 implentation was already finished so practically you should now be able to write programs on it! (how about a paint like program?)
Thanks for the comment! I'm afraid I don't have any circuit diagrams for this. The memory ICs have their address and data buses connected pretty much directly to the Z80 (the three most significant bits of the 128KB ROM's address come from an I/O register to implement bank switching) with 3-to-8 line decoders (74HC138N) connected between the Z80's address bus and /MREQ pin to only enable a particular memory chip for a particular address range. Is there anything in particular you need? Good luck!
I'm aware of what FPGA technology is, but can you find a relatively decent system for a low price and in DIL packaging? I haven't seen any, myself, but if you have any recommendations I'd gladly take a look into it!
ALTERA has EPM7064 it is PLCC44 and can be easely soldered with wires even without PCB it don't need any external components and costs hers in Moscow about 20USD in hi price shop near my work (probably 7-10USD in "normal" shops).
If you think that PLCC44 is easily soldered to wires then you have a steadier hand than me! ;-) Farnell are selling them for around £7, and I've found a PLCC44 to DIP40 adapter for $8 - though I don't know where four of the pins go (and they all seem to be PIC-specific). I'll continue hunting, thanks for the tip!
Cheers! The Z80 is a Z84C0010PEG (10MHz), the fastest I could find for a reasonable price in the UK (£5.58 from Farnell; there is a 20MHz Z84C0020PEG if you can find it). The two SRAM ICs are CY62256NLL, £2.27 each from Farnell. The flash ROM is a AM29F010B, £2.69 from RS. All of the glue logic is just 74-series.
Sourcing parts is the easy bit, I think - finding the time to work on your own projects is much more difficult! ;-)
I'm an x86 assembly guy and I don't know Z80 asm, so I would have to learn it, but instead of learning Z80 I'd like to learn 6502 so I can use that knowledge in writing stuff for the SNES later on (a nostalgia thing); but the 6502 seems a lot harder to find any places that sell.
Would you happen to know any place that have or might have variants of the 6502?
Or perhaps the Z80 is much easier as a first time project?
I thought it was the NES that had a 6502-based CPU in it? I was more of a Sega fan, and they used Z80s in their consoles. ;-)
When looking for Z80s I found a couple of slower ones on eBay being sold as spares for the ZX Spectrum; there are two 6502s on the UK eBay at the moment, but they're pretty expensive.
I've only written a few snippets of 6502 assembly for the BBC Micro, so couldn't comment on how easy it would be to build a computer around one. The Z80 is certainly easier to find!
I am impressed with what you have managed to do :-) I had an Amstrad CPC 6128 (it sleeps in my closet for years now...) and it too had a Z80 CPU. Nowadays I am not nearly an amateur when it comes to electronics, as I have dropped this hobby for years to focus my energy towards computer science and one of my secret ambitions recently has been to make my own homebrew computer, something small and light. Maybe my own little handheld game console :-) Keep up the good work, congrats again!
Thanks for the comments - my main problem is finding enough time for my own projects away from work! It doesn't help that I'm annoyed by the design mistakes I made the first time around, either. My main work is in programming, but I find it's always fun to get your hands dirty with a bit of electronics, so good luck if you get back into it! :-)
Cool circuit!
Great to see people still playing around with the "older" circuits - not everything in life needs 3 GHz :-)
Keep up the good work!
hbsorensen 3 weeks ago
do you have schematics for this design??
JDepptastic 4 weeks ago
@JDepptastic I'm afraid not, sorry. Is there any bit of it you had particular interest in?
benryves 4 weeks ago
wow that's the most amazing z80 project yet!!,
JDepptastic 1 month ago
congratulations for the computer! When y was a child, y had one of these.. loading games from audio tape. It was a HC91 and running BASIC language.Anyway , great job and respect for the effort you made. I know what it means to make a computer like this from scratch! I am a electronic hobbyist and i am aware about what effort you have done tu make something like this! Congratulations again! You have gained a new subscriber!
dumyyyyyy 2 months ago in playlist More videos from benryves
@dumyyyyyy Thank you very much for your kind comments! :-)
benryves 2 months ago
btw, it reminds me of a dual cpu z80 based computer circuit i saw once before... maybe you can add a second cpu to your design :) they used alternate clock signals so they didn't need a wait state... both with full access to the enter 64kb ram
ninjazhu 2 months ago
@ninjazhu Thanks - dual CPUs sounds like an interesting prospect. :-) I ended up adding an AVR and dsPIC to the "Mark 2" - they do the heavy lifting as far as I/O and video output are concern, leaving the Z80 to spend more time running programs.
benryves 2 months ago
The N8VEM project provides the SBC board for $20 USD plus postage. You supply parts and DIY, basic support available in build manual and Google discussion group.
Nice entrance ramp.
w9gb 2 months ago
@w9gb It looks very interesting, thank you for the tip - I'll have to investigate it more thoroughly when I have the time! :-)
benryves 2 months ago
How did you start with the z80, I'm interested in making my own basic z80 computer, but I need some simple schematics.
fredosstudio 3 months ago
@fredosstudio I started with the software side (writing programs for my graphical calculator and the Sega Game Gear). For the hardware side I relied on the Z80 Family CPU User Manual (search the web for um0080.pdf) and the datasheets for the various other components. "Electronics Explained" by M W Brimicombe is a good textbook for getting started with electronics if you don't have any experience in that field (try the preview on Google Books first as it's quite expensive).
benryves 3 months ago
@benryves I know x86 assembly, and the z80 has similar instruction set right? And I already know the basics of electronics, so I'll guess I'll search for the manual, hopefully it isn't a big one.
Found it, 300 pages, nothing compared to the i386 manual :D, sadly still quit a bit :c But I found a great website on the z80 explaining the basic architecture and everything. :D: Z80.info
fredosstudio 3 months ago
This was amazingly great. I didn't understand most of the video since I am not an expert in electronics, I am only interested in programming. BTW, you often sound like the British version of Sheldon Cooper, have you ever watched the Big Bang Theory? :D
sonnyk88 3 months ago
6:55 Quite interesting!
By the way, on the Motorola 68000, A0 is an address register and D0 is a data register. I think it could confuse many programmers who only know about 68k and are willing to give the z80 a try. I have so many things to learn! thanks for the wonderful video! it really inspired me.
sonnyk88 3 months ago
@sonnyk88 Thanks for your comments - I'm no expert with electronics, but am a firm believer in the value of datasheets. :-) And I'd much rather be Maurice Moss than Sheldon Cooper!
benryves 3 months ago
Where can I find good user documentation or tutorial information for a full understanding of operating the z80 chip itself? Thanks.
RobertMOdell 4 months ago
@RobertMOdell I can't put links in comments but if you plug um0080.pdf into your favourite search engine you should be able to find the Z80 Family CPU User Manual on Zilog's website.
benryves 4 months ago
@benryves perfect! Best wishes on your project. You have inspired me.
RobertMOdell 4 months ago
you have a piano in your room.. Very clever i almost understood half of it :D and that screen and its holder look like a little man carrying the screen. still very cool look forward to seeing more of it!
blackcountryme 5 months ago
@blackcountryme Hehe, thank you. :-) Those holders are very useful for keeping things in place when soldering!
benryves 5 months ago
Very interesting, love seeing homebrew machines and am a big Z80 fan
khisanth75 5 months ago
The Z-80 has a useful feature that allows it to slow down for slow devices. The /Wait input can be used to add wait states. While ideally, only your slow display would be affected, a simple solution is to add wait state to all I/O accesses.
PeterCCamilleri 6 months ago
@PeterCCamilleri Thank you for your comment. I built a new Z80 computer that uses the /WAIT feature - a flip-flop automatically asserts /WAIT on any /IORQ, at which point an AVR microcontroller performs the requisite I/O operation before resetting the flip-flop and letting the Z80 continue.
benryves 6 months ago
This is incredibly cool. Nice work :)
yibbleware 8 months ago
@yibbleware Thank you! The videos on your channel are great - it's very interesting to follow your NES development process.
benryves 8 months ago
you may have allready though about this but:
To switch speed in software, just have two clocks connected to tristates (to control)
Have a D latch to remember which of the two clocks is being used and use the and use the IO address lines to activate it. so maybe when address 1 is chosen it initiates 10mhz and when address 2 is chosen it changes back into 2mhz.
Happy designing :)
TheOneToxic 1 year ago
@TheOneToxic Sounds like a plan. I had intended on doing it manually, though your automatic switch sounds like a good idea. My main issue were runt pulses when switching between 10MHz and 2MHz. Ultimately, I scrapped this design and went for one where everything ran happily at 10MHz.
benryves 1 year ago
@benryves
because that way, its done in software :)
TheOneToxic 1 year ago
where do you get a z80 kit
MrZachattack11 1 year ago
@MrZachattack11 I bought my Z80 from Farnell. I'm not sure what to recommend in terms of suppliers in the USA, though.
benryves 1 year ago
So you do have the PS/2 keyboard hooked up in an I2C fashion? I'm trying to get my keyboard connected to my Atmega, and I considered USART but would I2C be better?
3mustardMoNkEyS 1 year ago
@3mustardMoNkEyS The clock and data lines for PS/2 (and AT) devices are open-collector, in the same way that the I²C SCL/SDA lines are. On the ATmega you can implement this by using any two digital IO pins. The two states would be a pin configured as an output driven low or a pin configured as an input with a pull-up resistor.
benryves 1 year ago
@benryves Ok thanks, and also I've read that PS/2 keyboard's clock signals can vary depending upon manufacturer, but its possible to configure the I2C ports on the fly for those clock signals right?
3mustardMoNkEyS 1 year ago
@3mustardMoNkEyS The AT protocol is different to the I²C protocol so you would not be able to use the I²C module to control a keyboard - you'd need to implement the protocol yourself in software.
benryves 1 year ago
wood you supose it is more powerfull than the comador 64 ?
windoes98se 1 year ago
@windoes98se Not at all. Even though the new computer design on my channel executes many more instructions per second than the C64, it still has greatly inferior sound and video hardware.
benryves 1 year ago
Please do more videos on this computer it is one of the coolest things I've ever seen.
I'd realy like to learn more about this beutiful machiene, and hopefully eventualy build one
matchstickpro 1 year ago 2
@matchstickpro Thank you very much for your comments! I am currently putting together a new design that is simpler (in terms of part count) yet much more practical and powerful. I hope to post a video to demonstrate it in the not-too-distant future but for the time being am posting updates on my website.
benryves 1 year ago
One Way of making room on broads with limited space is using a Raiser Board
Turn "T" upside down you you'll get what a raiser board is
Raiser boards use to be quite common in 60s to 80s hardware (they use to have about +15 of them) Due it Added Extra space to fit extra components Vertically up on there side from the main Motherboard but allowed a lot to fit in a square 3D space
hitechguy18 1 year ago
@hitechguy18 Sounds like a good plan, thanks for the tip (though I've usually seen such a design referred to as "riser cards"). My revised design (using an ATmega644P as an I/O controller) fits easily on two breadboards, so I should be able to make the final circuit much smaller. :-)
benryves 1 year ago
Nicely done! Although the logic for inserting wait states on the Z80 is a bit of a pain, I suggest you give it some serious thought. I took the approach you seem to be considering (switching between two clocks) to solve a similar problem with IO devices on Magic-1, and it turned out to be much more difficult than I'd expected. I finally got it to work, but the logic to make the two clocks and the reset line play nicely together is pretty ugly. Anyways, best of luck.
...Bill Buzbee
buzbee1 1 year ago
@buzbee1 Thank you, and your work on Magic-1 is very inspiring! I have since started working on the project again, and replaced all of the I/O devices with an ATmega644P. A flip-flop between the /IORQ and /WAIT Z80 pins is used to give the AVR time to respond, and the Z80 can now run at its full 10MHz. Having a programmable I/O device has made things much easier, and I currently boot CP/M 3 from an SD card.
benryves 1 year ago
Very very interesting video !
LunaVorax 1 year ago
@LunaVorax Thanks! :-) I've just started working on the project again so I hope to have something more to show for it this time.
benryves 1 year ago
you sound like your 65 but you look no older than 20 wtf can imagine ur voice on some nature program on T.V lol ;P
nathbf2142 1 year ago
When you metioned the special 40pin chip to expand the z80's IO's/parrel inteface, is this simlair or close to the ULA chip found on a sinclair zx spectrum? im looking into what i would need to build a z80 computer and i have a sinclair zx spectrum that i can probably scavenge parts from.
pieznice29 1 year ago
@pieznice29 I don't know much about the ZX Spectrum, I'm afraid. :-( The ULA seems to be used for video, but I don't know if it also provides general I/O capabilities (I can't find much information about that).
The chip I referred to was the Z80-PIO. I'm probably going to end up using an AVR for I/O (keyboard, storage) and interface that with the Z80 using some latches as per the current design.
Best of luck with your project!
benryves 1 year ago
@benryves ok great thanks, guess ill have to do some more googling lol. Btw great job on your computer project :D
pieznice29 1 year ago
Guauuuu!!! this is amazing, is beatiful your machine and is fantastic what can made a z80.
Thanks for this video and yours Kwoledges.
Very cool!!!.
Best Regards, from Spain.
Iwain
mentalthink 1 year ago
@mentalthink Thank you for your kind comments. :-)
benryves 1 year ago
How did you connected LCD module? I'd like to know, because I did simple Z80 system myself, so I tried to connect KS0108-compatible 128*64 LCD to it (directly to Z80 bus, C/D is A0, CS1 is A1, CS2 is A2, E is /IORQ, RD/WR is /WR)... No luck.
ZXRulezzz 1 year ago
@ZXRulezzz I think I had similar problems to you. I used a 3-to-8 decoder to split up the address bus, and this 3-to-8 decoder has an "enable" pin that was connected to /IORQ. The LCD's R/W was connected to the Z80's /RD pin via a NOT gate. E was driven using a binary counter connected to the Z80 clock and reset by /IORQ. For a better explanation, see benryves com journal 3302840 (insert a dot before com and slashes between the other parts).
benryves 1 year ago
@benryves Yesterday I fixed the problem :-). I connected R/W pin to Z80 address line (A3), and E to inverted Z80 /IORQ.
Only one thing that is uncomfortable about that type of connection that you much change port address to read or write to display... And there's no diffrerence between IN or OUT instruction to display.
ZXRulezzz 1 year ago
@ZXRulezzz Sorry, typo " that you muST change port address " :-)
ZXRulezzz 1 year ago
@ZXRulezzz Ah, as long as that works for you. My main problem was the LCD trying to put stuff on the bus when it shouldn't, causing odd crashes. I hope your solution is more reliable! :-) I hope to use a 320x240 LCD driven by a PIC instead, which should make things more robust and more efficient (drawing operations can run on the PIC).
benryves 1 year ago
mind if i ask your age?
afxtal 1 year ago
@afxtal You may, and the answer can be found on my profile page!
benryves 1 year ago
god, where would our sanity be without hobbies? keep at it man!
OBSysteme 1 year ago
@OBSysteme Thank you :-) One has to strike a balance!
benryves 1 year ago
Interesting stuff. Thanks.
canis65536 1 year ago
@canis65536 Cheers!
benryves 1 year ago
You are awesome! Never stop hat you are doing.
That is all.
fleabites 1 year ago
Thank you very much!
benryves 1 year ago
interesting project
V6Z80Puser 1 year ago
@V6Z80Puser
Take a look at this z80 board V6Z80P.
V6Z80Puser 1 year ago
Hi, Tried to post before but failed ??
Anyhow, do you have the source .ASM or whatever for this? I am thinking of creating a Z80 based computer but thought of just simple serial I/O and I do like your BBC basic OS with the ability to prefix them with "*" for system commands...very clever.
Thanks in advance.
stevebasset 1 year ago
YouTube's comment system is a bit weird!
The * functionality is a standard feature of BBC BASIC that works nicely to my advantage (you can also use the OSCLI statement to the same effect, but that takes a standard BASIC string so can be rather more flexible).
The code for BBC BASIC is not available, unfortunately; Richard Russell kindly provided me with relocatable modules when I asked him.
(...to be continued...)
benryves 1 year ago
Rather than write a custom OS, I'm thinking about running CP/M on the computer; this would provide a much larger library of software (including BBC BASIC), it's known to work well and saves me having to write my own command processor, file system, utilities &c.
I'd be glad to offer any help I can via email (see my website for contact info)!
benryves 1 year ago
Do you have circuitry of this? I'd like to build the same thing myself! (only with the 40 pin Z80 parallel IO chip instead of the "Glue"registers). Nice presentation and well explained. Give us an update on this amazing machine! You're BBC Basic Z80 implentation was already finished so practically you should now be able to write programs on it! (how about a paint like program?)
Fangornmmc 2 years ago
Thanks for the comment! I'm afraid I don't have any circuit diagrams for this. The memory ICs have their address and data buses connected pretty much directly to the Z80 (the three most significant bits of the 128KB ROM's address come from an I/O register to implement bank switching) with 3-to-8 line decoders (74HC138N) connected between the Z80's address bus and /MREQ pin to only enable a particular memory chip for a particular address range. Is there anything in particular you need? Good luck!
benryves 2 years ago
try learn FPGA (ask wikipedia) !
i think it will be not dificult for you, but it so cool !!!
it is MUCH better then 74xxx
with it you can make in one day digital logic weach take month of soldering if implemented in 74xxx and at MUCH faster freq...
odv000 2 years ago
I'm aware of what FPGA technology is, but can you find a relatively decent system for a low price and in DIL packaging? I haven't seen any, myself, but if you have any recommendations I'd gladly take a look into it!
benryves 2 years ago
I'm following your blog/journal at gamedev for ... well years. But holy shit never expected that you are so young XD
Great tinkering,
MarijnStevens 2 years ago
I'm not sure if that's a compliment or not, but thanks. ;-)
benryves 2 years ago
I never see any in DIP.
ALTERA has EPM7064 it is PLCC44 and can be easely soldered with wires even without PCB it don't need any external components and costs hers in Moscow about 20USD in hi price shop near my work (probably 7-10USD in "normal" shops).
odv000 2 years ago
If you think that PLCC44 is easily soldered to wires then you have a steadier hand than me! ;-) Farnell are selling them for around £7, and I've found a PLCC44 to DIP40 adapter for $8 - though I don't know where four of the pins go (and they all seem to be PIC-specific). I'll continue hunting, thanks for the tip!
benryves 2 years ago
Oh my god how cool.
Do you have a parts list for this? Especially the SRAM and CPU?
getpagesize 2 years ago
Cheers! The Z80 is a Z84C0010PEG (10MHz), the fastest I could find for a reasonable price in the UK (£5.58 from Farnell; there is a 20MHz Z84C0020PEG if you can find it). The two SRAM ICs are CY62256NLL, £2.27 each from Farnell. The flash ROM is a AM29F010B, £2.69 from RS. All of the glue logic is just 74-series.
Sourcing parts is the easy bit, I think - finding the time to work on your own projects is much more difficult! ;-)
benryves 2 years ago
Oh neat, thanks!
I'm an x86 assembly guy and I don't know Z80 asm, so I would have to learn it, but instead of learning Z80 I'd like to learn 6502 so I can use that knowledge in writing stuff for the SNES later on (a nostalgia thing); but the 6502 seems a lot harder to find any places that sell.
Would you happen to know any place that have or might have variants of the 6502?
Or perhaps the Z80 is much easier as a first time project?
getpagesize 2 years ago
I thought it was the NES that had a 6502-based CPU in it? I was more of a Sega fan, and they used Z80s in their consoles. ;-)
When looking for Z80s I found a couple of slower ones on eBay being sold as spares for the ZX Spectrum; there are two 6502s on the UK eBay at the moment, but they're pretty expensive.
I've only written a few snippets of 6502 assembly for the BBC Micro, so couldn't comment on how easy it would be to build a computer around one. The Z80 is certainly easier to find!
benryves 2 years ago
Wow! A remarkably excellent video. Very well done.
peterwilson69 2 years ago
Thanks for the comments! :-)
benryves 2 years ago
I am impressed with what you have managed to do :-) I had an Amstrad CPC 6128 (it sleeps in my closet for years now...) and it too had a Z80 CPU. Nowadays I am not nearly an amateur when it comes to electronics, as I have dropped this hobby for years to focus my energy towards computer science and one of my secret ambitions recently has been to make my own homebrew computer, something small and light. Maybe my own little handheld game console :-) Keep up the good work, congrats again!
jojos08 2 years ago
Thanks for the comments - my main problem is finding enough time for my own projects away from work! It doesn't help that I'm annoyed by the design mistakes I made the first time around, either. My main work is in programming, but I find it's always fun to get your hands dirty with a bit of electronics, so good luck if you get back into it! :-)
benryves 2 years ago
Why not use a PIO between the CPU buses and the LCD display?
korgpolyex800 2 years ago
I suppose I could. If/when I manage to get hold of a PIO I'll bear it in mind as a viable alternative, thanks!
benryves 2 years ago
How hard is to come by an 82C55 in England? Nice job with porting CPM to your "platform". That must have been a real effort and a half.
korgpolyex800 2 years ago
eBay have a couple going for about £15, and looking up the generic "8255" brings up a few other useful results, cheers!
I'm not running CP/M on this hardware - it's just the Z80 version of BBC BASIC.
benryves 2 years ago
I get some of this stuff from Futurlec (dot com) since they do 4 bucks shipping for orders under 39 and an 82C55 is only 3 bucks 90 cents.
korgpolyex800 2 years ago