Runboard.com
You're welcome.
Community logo


runboard.com       Sign up (learn about it) | Sign in (lost password?)

 
YT2095 Profile
Live feed
Blog
Friends
Miscellaneous info

Freebander
Global user

Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
Avatar
Reply | Quote
posticon 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":

Image

and now it`s On and "Open" (and really blurry!) :P

Image

and the difference is basically the Programming keypad folds down, and looks like this close-up:

Image

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":

Image

Image

Image

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:

Image


as I eluded to earlier about some cards having more than 1 I/O device on it, This:

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

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

Image
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 emoticon

Image

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

here`s the Address/Data decoder/display mentioned above:
Image
yes I cut my own perspex for it, and no it`s not perfect, but what the hey! the printout looks pretty funky emoticon

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


A quick re-cap of all the cards (so far):
Image

and the now empty Z.E.D skeleton...
Image

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 emoticon

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 Profile
Live feed
Blog
Friends
Miscellaneous info

Big Cheese
Global user

Registered: 11-2007
Location: Wiltshire, UK
Posts: 2568
Karma: 12 (+12/-0)
Avatar
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 emoticon

---
Image
20/Jun/2011, 4:15 pm Link to this post Send Email to topbuzzuk   Send PM to topbuzzuk Yahoo
 
YT2095 Profile
Live feed
Blog
Friends
Miscellaneous info

Freebander
Global user

Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
Avatar
Reply | Quote
Re: My Z.E.D Machine


thanks emoticon

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 emoticon

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 emoticon

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 Profile
Live feed
Blog
Friends
Miscellaneous info

Management
Global user

Registered: 03-2008
Location: South West England
Posts: 1341
Karma: 6 (+6/-0)
Avatar
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 Profile
Live feed
Blog
Friends
Miscellaneous info

Freebander
Global user

Registered: 12-2010
Location: the Black Country
Posts: 188
Karma: 1 (+1/-0)
Avatar
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 emoticon

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 emoticon

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 emoticon



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