Added: 2 years ago
From: benryves
Views: 13,647
Sort by time | Sort by thread (beta)

Link to this comment:

Share to:
see all

All Comments (87)

Sign In or Sign Up now to post a comment!
  • 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!

  • do you have schematics for this design??

  • @JDepptastic I'm afraid not, sorry. Is there any bit of it you had particular interest in?

  • wow that's the most amazing z80 project yet!!,

  • 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 Thank you very much for your kind comments! :-)

  • 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.

    Nice entrance ramp.

  • @w9gb It looks very interesting, thank you for the tip - I'll have to investigate it more thoroughly when I have the time! :-)

  • How did you start with the z80, I'm interested in making my own basic z80 computer, but I need some simple schematics.

  • @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

  • 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 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!

  • Where can I find good user documentation or tutorial information for a full understanding of operating the z80 chip itself? Thanks.

  • @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 perfect! Best wishes on your project. You have inspired me.

  • 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 Hehe, thank you. :-) Those holders are very useful for keeping things in place when soldering!

  • Very interesting, love seeing homebrew machines and am a big Z80 fan

  • 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.

  • This is incredibly cool. Nice work :)

  • @yibbleware Thank you! The videos on your channel are great - it's very interesting to follow your NES development process.

  • 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 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

    because that way, its done in software :)

    

  • where do you get a z80 kit

    

  • @MrZachattack11 I bought my Z80 from Farnell. I'm not sure what to recommend in terms of suppliers in the USA, though.

  • 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.

  • wood you supose it is more powerfull than the comador 64 ?

  • @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.

  • 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 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.

    ...Bill Buzbee

  • @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.

  • Very very interesting video !

  • @LunaVorax Thanks! :-) I've just started working on the project again so I hope to have something more to show for it this time.

  • 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

  • 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.

    Best of luck with your project!

  • @benryves ok great thanks, guess ill have to do some more googling lol. Btw great job on your computer project :D

  • 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 Thank you for your kind comments. :-)

  • 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 Sorry, typo " that you muST change port address " :-)

  • @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).

  • mind if i ask your age?

  • @afxtal You may, and the answer can be found on my profile page!

  • god, where would our sanity be without hobbies? keep at it man!

  • @OBSysteme Thank you :-) One has to strike a balance!

  • Interesting stuff. Thanks.

  • @canis65536 Cheers!

  • You are awesome! Never stop hat you are doing.

    That is all.

  • Thank you very much!

  • interesting project

  • @V6Z80Puser

    Take a look at this z80 board V6Z80P.

  • 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.

  • 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...)

  • 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!

  • 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...

  • 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!

  • I'm following your blog/journal at gamedev for ... well years. But holy shit never expected that you are so young XD

    Great tinkering,

  • I'm not sure if that's a compliment or not, but thanks. ;-)

  • 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).

  • 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!

  • Oh my god how cool.

    Do you have a parts list for this? Especially the SRAM and CPU?

  • 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! ;-)

  • 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?

  • 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!

  • Wow! A remarkably excellent video. Very well done.

  • Thanks for the comments! :-)

  • 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! :-)

  • Why not use a PIO between the CPU buses and the LCD display?

  • 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!

  • 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.

  • 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.

  • 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.

Loading...
0 / 00Unsaved Playlist Return to active list
    1. Your queue is empty. Add videos to your queue using this button:
      or sign in to load a different list.
    Loading...Loading...Saving...
    • Clear all videos from this list
    • Learn more