YT2095
Freebander
Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
|
Reply | Quote
|
|
My Z.E.D Machine
This is the product of 2 months work, often 12 hours a day!
and although perhaps not immediately apparent, it`s actually a Fully operational computer based on the Z-80 CPU.
here`s it switched off and "closed":
and now it`s On and "Open" (and really blurry!) :P
and the difference is basically the Programming keypad folds down, and looks like this close-up:
I won`t go to in-depth gory details but this system is designed to have Zero overheads in terms of CPU usage that can otherwise be done in Hardware, so this keyboard will output directly the Address and Data and also display this in Hex with No cpu intervention at all, and works purely on a DMA basis when you hit the Bus Aquire switch and Yes that Is a huge green LED just above it (a project can`t have too many LEDs!).
the Hex keypad basically feeds the Address lines of a 27512 EPROM and outputs the appropriate 4 bit code for the digit pressed, and the Other 4 bits are simply used to toggle a flip-flop that latches this data alternately to make a 1 byte word.
the Address side of the panel is easy, I use 4 rotary hex encoders to Load the start address of where I want to Edit/Program and then click the green switch to advance the now loaded UP-Counters.
asleep yet?...
ok, on with the "show":
as you can see it`s a Card based system that uses a common bus on 2 tiers (that`s the reason for One of the ribbon cables).
the longer card header has the Power, address, data and control lines, the Shorter one is the decoded I/O lines, giving me 16 groups of 16. this might seem odd as there aren`t 16 card slots, but as you`ll see soon, some of the cards have more than one I/O device on them.
This is the CPU card, quite a mess I know! but it works at 8MHz quite happily, although I only had a 2.048MHz x-tal in there for this picture:
as I eluded to earlier about some cards having more than 1 I/O device on it, This:
is such a card. Onboard we have an 8255 3x8bit port for general purpose parallel stuff, the pretty ribbon cable goes to the 8x 2 color LEDs and Switch array (nice for testing bits individually), and also a 3 channel counter/timer that I use in square wave mode as a sound card (hence the little speaker thingy).
the above is the EEPROM card, one of them contains the Boot/OS rom although it`s Very simple in there at the mo, and doing little other than setting up the IO cards, the stack pointer, interrupts and redirecting the PC (Program Counter) to the Next ROM on that board which is the User area.
the User area is 8k big and starts at 2000H, but the great part about using EEPROM is that I can switch the computer off half way through a prog I`m working on, and it`ll be there next day where I left it, without having to save it to tape etc...
I`ll point out that all this programed in Machine Code directly and by hand.
some of you have already seen this before, it`s the 48k RAM card using a strange Wire-Wrap method I created out of necessity, have you SEEN the price of wire wrap boards and parts lately!??
so a soldering/wire-wrap hybrid that Top wires circuits was born
Above is the Ribbon cable interface, simple point-to-point conversion, but Had to incorporate an L.E.D otherwise it just wouldn`t be suitable!
this next card is my favorite of all, it`s my I/O diagnostic card and can be mapped in Anywhere in the Z-80s I/O range and also deliver a decoded strobe that the Address/Data display can use as a Latch to hold information with.
here`s the Address/Data decoder/display mentioned above:
yes I cut my own perspex for it, and no it`s not perfect, but what the hey! the printout looks pretty funky
this next card isn`t finished yet, it`ll contain 3 micro controllers, all performing tasks that would otherwise have to be done by the CPU (Remember, I wanted Zero overheads).
A quick re-cap of all the cards (so far):
and the now empty Z.E.D skeleton...
incidentally ZED stands for Z Eighty Development, yeah I know, boring eh!
this project is FAR from over! in fact what you`ve seen so far is the bare bones basics of the system, the Real work now that`s it`s fully operational as a stand-alone computer will put the "D" in ZED
stay tuned...
--- I`m also on Twitter as "YT2095" ;)
|
20/Jun/2011, 2:10 pm
|
Link to this post
Send Email to YT2095
Send PM to YT2095
Blog
|
topbuzzuk
Big Cheese
Registered: 11-2007
Location: Wiltshire, UK
Posts: 2655
Karma: 12 (+12/-0)
|
Reply | Quote
|
|
Re: My Z.E.D Machine
bloody hell, lost me there, very clever bit of work that. I wouldnt know where to start
--- 26FB118
|
20/Jun/2011, 4:15 pm
|
Link to this post
Send Email to topbuzzuk
Send PM to topbuzzuk
Yahoo
|
YT2095
Freebander
Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
|
Reply | Quote
|
|
Re: My Z.E.D Machine
thanks
it probably looks worse than it is in reality, the hardest part being is remembering that I wanted Zero overheads, so Everything that can waste CPU time/cycles will be performed in Hardware (physical cards) where possible.
the card with the 3 Atmel 328p micro-controllers (not wired up yet) for instance will perform tasks such as Random Number generation, hardware multiplication, LCD display parsing and so forth...
all these things are Traditionally done by the CPU as subroutines, thus wasting valuable processor time that could otherwise be employed doing work on Your program task you want it to do.
the cool part is that I can pull the CPU card out entirely, and under DMA control, Still make the thing do usable stuff!
yeah, it doubles as an EPROM programmer too
I`m basically picking all the Good bits from computers I`v encountered before, and trying to employ them in this design, the "Action Replay" inspired the h/ware Mem/IO manipulation without affecting the "running" program, I can in effect "Freeze" a prog, Edit it, and then resume at the point I "Froze" it and observe changes
so operating with zero overheads like this makes 8k a Huge amount of mem to program in.
Last edited by YT2095, 20/Jun/2011, 4:48 pm
--- I`m also on Twitter as "YT2095" ;)
|
20/Jun/2011, 4:47 pm
|
Link to this post
Send Email to YT2095
Send PM to YT2095
Blog
|
Hot Fusion
Management
Registered: 03-2008
Location: South West England
Posts: 1389
Karma: 7 (+7/-0)
|
Reply | Quote
|
|
Re: My Z.E.D Machine
quote: YT2095 wrote:
it probably looks worse than it is in reality, the hardest part being is remembering that I wanted Zero overheads, so Everything that can waste CPU time/cycles will be performed in Hardware (physical cards) where possible.
Looks worse??
That is an object of beauty.
And as for zero overheads, it's a pity that the humble PC wasn't designed that way. And as for crappy bloated software, don't get me started, you'll regret it!
Excellent job as I'm sure you already know. Digital electronics 'ain't my bag, baby', but I fully appreciate what you have achieved there. Good luck with the refinements - sometime you will have to talk us through the data input process and how you read the output.
--- Andy - FB107
|
20/Jun/2011, 7:08 pm
|
Link to this post
Send Email to Hot Fusion
Send PM to Hot Fusion
|
YT2095
Freebander
Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
|
Reply | Quote
|
|
Re: My Z.E.D Machine
well... Currenty the I/O consists of using the input Hex keyboard to put the machine code directly into memory that the CPU will run, and the Output is is the address/Data display on the machine (the one with the red and green perspex) for the output.
it also has sound too and the 16x16 LEd array at the back.
this is Just enough for bare-bone-basics of a computer and is quite workable.
but for more Human type interfaces, I have an SPO256-AL2 speech chip, all the Atmega 328p chips I`m likely to ever need (about 50 of them), that will do the LCD display for the menu driven OS, and also the TV Output (video card).
I have prototypes of these all working already, it`s just a case of incorporating them onto a card(s).
I have an Atmega32 that arrived today, and a Dev board that should be here middle of next month.
These will control the Keyboard (a full alpha-numeric ASCII type), I just need to learn how to program it.
interestingly, it`s the sale of arduino 328p based kits that`s paid for all of the bits I`v had to buy to make this machine
the Upper part of the OS ROMs address`s will be used for Lookup tables, so for instance if I wanted to output a sine wave to the D to A converter, it would simply output these numbers from the table directly to the card, no Sine Maths needed (Zero Overheads
the speech will be similarly arranged but as a state machine on the card.
in effect ZED will still be able to do things even with the CPU (Z80) card unplugged
--- I`m also on Twitter as "YT2095" ;)
|
21/Jun/2011, 3:41 pm
|
Link to this post
Send Email to YT2095
Send PM to YT2095
Blog
|
Add a reply
You are not logged in ( login)
|