Discussion:
[N8VEM: 19082] New to N8VEM / working on a Z80 Project
Matthew Cook
2014-12-11 16:21:36 UTC
Permalink
I wasn't aware that this group existed until recently. I have been working on a project to build a Z80 computer from the ground up for a while now. I have gone through many iterations of design to arrive where I am now which is basically starting over for a third time to execute an idea I have been having. First I have a blog that I maintain (rather infrequently) showing my progress called z80project.wordpress.com . My first iteration was on a breadboard which essentially got as far as interfacing memory, a keyboard, and video through a UART type interface with other modules. After success with this I tried to create the design on a single board, but many failed iterations moved me toward a BUS system for expand-ability. (specifically the STD-BUS)
I moved this design to a STD-BUS back-plane and protocard design, but found it extremely limiting and time consuming since it was all point to point soldering.
To alleviate this problem I moved toward laying out the design across numerous printed circuit boards, but due to cost I was only producing 10cm x 10cm designs with STD-BUS card edges for connection to back-plane, so this limited what I could produce. Also the STD-BUS back-planes are hard to come by and expensive in many cases because they are from old industrial rack computers.
Before finding this group my current idea was a hybrid SBC/BUS design. I found cheap PCB edge connector samples from TE and started layout on what I call the "Mother-Plane". Essentially a bare-bones z80 system would be designed on one half of a 15cm x 25cm PCB and the other half would sport as many pcb edge connectors as spacing would allow. This hybrid back-plane/ bare-bones system seemed like a good idea from a testing standpoint. Card add-ons would connect to the edge connectors via PCB edge-pads.
Then I found this group and it seems like continuing with my project would only be re-inventing the wheel.
The reason I was doing this project in the first place was to learn assembly since we never really used it in university. For the past year "or longer?" it has become an on-again off-again obsession to build this computer with many failures along the way. Honestly to this day I have no idea what I wanted to do with this system when it was completed other than poke around on it.
I need direction. I am good with Eagle and Kicad, Eagle being my first choice and Kicad continually learning, but I can get by. Ultimately I want an opinion on if I should continue creating my system or focus more time on the systems on this website which seem to be a very similar idea to what I wanted to create. Thanks!
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
James Moxham
2014-12-12 02:17:26 UTC
Permalink
Hi Matthew,

Great post, and very interesting reading through your blog.

Re the question about continuing with your system or using what has
already been done, I've taken the approach of doing both! In other words,
I am happy to buy boards made by others and solder them up and get them
working, but I also feel a desire to create things truly from scratch too,
so then I take a design and modify it.

Lots of good STD cards out there eg
http://www.retrotechnology.com/herbs_stuff/stdbus.html

Re Eagle and Kicad, my preference is Eagle but I know much of the work on
the N8VEM site is Kicad. You mention 10x10cm boards - I think that is the
maximum for free boards on Eagle. I shelled out $125 many years back for
the Student version and that goes to 10x16cm and that investment has paid
me back many times. STD bus cards are, (tap tap on computer) 16.51cm x
11.43cm, just slightly higher than the student Eagle pcb size. But there
is a workaround! the 10x16cm size is for components, and you can actually
make the board bigger than this and the autorouter will put tracks outside
the limited 10x16cm space, and also I think it lets you put holes outside
this too. So you maybe can make these STD boards on Eagle.

Getting PCBs made - I've been using Seeed studios and they work in
multiples of 5x5cm, so I tend to bump the board size down to 10x15cm as it
is cheaper. Got ten boards made yesterday 10x15cm for $50. Quicker than
point to point soldering!

Just to throw a curveball into the mix, fpga emulations can be fun too.
Fastest builds of a Z80 machine can be with fpga - ok, I cheated as I
already had the fpga software installed and I had a SD card with CP/M on
it which I cloned, but including this cloning and including soldering the
board from bare bones to working CP/M prompt on a VGA monitor I managed 40
minutes once. http://smarthome.jigsy.com/fpga and
http://searle.hostei.com/grant/Multicomp/index.html

Then you can get straight into assembly programming. Or get lost in the
maze of complexity that is MP/M with banked memory. All good fun!

Though there is still something very satisfying about taking a 40 pin Z80
chip on a breadboard and getting it to the point of compiling and running
a Basic or C program.

If you already have a STD bus cage, it would be great to see this filled
up with cards :)

Cheers, James Moxham



On Fri, 12 Dec 2014 02:51:36 +1030, Matthew Cook
Post by Matthew Cook
I wasn't aware that this group existed until recently. I have been
working on a project to build a Z80 computer from the ground up for a
while now. I have gone through many iterations of design to arrive where
I am now which is basically starting over for a third time to execute an
idea I have been having. First I have a blog that I maintain (rather
infrequently) showing my progress called z80project.wordpress.com . My
first iteration was on a breadboard which essentially got as far as
interfacing memory, a keyboard, and video through a UART type interface
with other modules. After success with this I tried to create the design
on a single board, but many failed iterations moved me toward a BUS
system for expand-ability. (specifically the STD-BUS)
I moved this design to a STD-BUS back-plane and protocard design, but
found it extremely limiting and time consuming since it was all point to
point soldering.
To alleviate this problem I moved toward laying out the design across
numerous printed circuit boards, but due to cost I was only producing
10cm x 10cm designs with STD-BUS card edges for connection to
back-plane, so this limited what I could produce. Also the STD-BUS
back-planes are hard to come by and expensive in many cases because they
are from old industrial rack computers.
Before finding this group my current idea was a hybrid SBC/BUS design. I
found cheap PCB edge connector samples from TE and started layout on
what I call the "Mother-Plane". Essentially a bare-bones z80 system
would be designed on one half of a 15cm x 25cm PCB and the other half
would sport as many pcb edge connectors as spacing would allow. This
hybrid back-plane/ bare-bones system seemed like a good idea from a
testing standpoint. Card add-ons would connect to the edge connectors
via PCB edge-pads.
Then I found this group and it seems like continuing with my project
would only be re-inventing the wheel.
The reason I was doing this project in the first place was to learn
assembly since we never really used it in university. For the past year
"or longer?" it has become an on-again off-again obsession to build this
computer with many failures along the way. Honestly to this day I have
no idea what I wanted to do with this system when it was completed other
than poke around on it.
I need direction. I am good with Eagle and Kicad, Eagle being my first
choice and Kicad continually learning, but I can get by. Ultimately I
want an opinion on if I should continue creating my system or focus more
time on the systems on this website which seem to be a very similar idea
to what I wanted to create. Thanks!
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Sergey
2014-12-12 19:04:48 UTC
Permalink
Hi Matthew,

Welcome to the N8VEM group. I browsed through your blog, and I liked the
detailed description of your project, something that I think is missing in
many other projects.

IMHO, we are all reinventing the wheel here, and an old one too :-). Yet, I
find it very rewarding to build your own computer, to program it with the
software you wrote, and so on.

One technical note about your current design: If one day you'll want to run
CP/M on your system, it should allow mapping RAM to the beginning of the
address space. It is a bit tricky, since on reset Z80 starts execution from
0000h. Two popular approaches here:
1. Have a D flip-flop to select between ROM and RAM. Connect /RESET (or
/SET) of it to the CPU's reset signal, so that the ROM is selected on power
on or reset. The code in the beginning of the ROM would jump to the
permanent ROM location in higher addresses, and then disable ROM and enable
RAM at lower addresses by writing an I/O port. An enhancement of this
approach is memory paging logic (N8VEM SBC does that).
2. Implement a jump on reset circuit. This is a circuit that will feed CPU
a JMP to a ROM address command on reset.

As far as STDBUS: I am on the fence about this one (although it will be
interesting to see where you take it). I would design a simple single board
Z80 computer (well, I already did). Probably just enough to run some
software: a monitor, CP/M applications, BASIC, a home automation system,
etc. The design gets more complicated and more costly once you integrate a
bus, even as simple as STDBUS or ECB. It will need buffers and
transceivers, more address decode and control logic, and so on. Also cards
get bigger. It is quite possible to build a simple Z80 SBC on a 100 mm x
100 mm PCB. Yet for a bussed system, half of such a board will be taken by
the additional logic and the bus connector, barely leaving a space for CPU
(and almost no space for anything else). So if you decide to design STDBUS
system I'd recommend looking for other people interested in your design, so
you can split PCB manufacturing costs. You can ask on this group,
vintage-computer.com CP/M forum or comp.so.cpm newsgroup.

In any case take a look at N8VEM ECB boards. You can get some ideas for
your STDBUS system, or perhaps you'll want to build an ECB system instead
:-)

KiCAD vs. Eagle. I used to use Eagle while ago. I still think it is more
intuitive than KiCAD. But I didn't like freeware limitations (one page of
schematic and 100 mm x 80 mm PCB?!), and I was not ready to pay for an
upgrade. I am using KiCAD for my projects, and while it takes some time to
get used to it, I found it to be very flexible.

Best regards,
Sergey

My projects' page: http://www.malinov.com/Home/sergeys-projects
Post by Matthew Cook
I wasn't aware that this group existed until recently. I have been working
on a project to build a Z80 computer from the ground up for a while now. I
have gone through many iterations of design to arrive where I am now which
is basically starting over for a third time to execute an idea I have been
having. First I have a blog that I maintain (rather infrequently) showing
my progress called z80project.wordpress.com . My first iteration was on a
breadboard which essentially got as far as interfacing memory, a keyboard,
and video through a UART type interface with other modules. After success
with this I tried to create the design on a single board, but many failed
iterations moved me toward a BUS system for expand-ability. (specifically
the STD-BUS)
I moved this design to a STD-BUS back-plane and protocard design, but
found it extremely limiting and time consuming since it was all point to
point soldering.
To alleviate this problem I moved toward laying out the design across
numerous printed circuit boards, but due to cost I was only producing 10cm
x 10cm designs with STD-BUS card edges for connection to back-plane, so
this limited what I could produce. Also the STD-BUS back-planes are hard to
come by and expensive in many cases because they are from old industrial
rack computers.
Before finding this group my current idea was a hybrid SBC/BUS design. I
found cheap PCB edge connector samples from TE and started layout on what I
call the "Mother-Plane". Essentially a bare-bones z80 system would be
designed on one half of a 15cm x 25cm PCB and the other half would sport as
many pcb edge connectors as spacing would allow. This hybrid back-plane/
bare-bones system seemed like a good idea from a testing standpoint. Card
add-ons would connect to the edge connectors via PCB edge-pads.
Then I found this group and it seems like continuing with my project would
only be re-inventing the wheel.
The reason I was doing this project in the first place was to learn
assembly since we never really used it in university. For the past year "or
longer?" it has become an on-again off-again obsession to build this
computer with many failures along the way. Honestly to this day I have no
idea what I wanted to do with this system when it was completed other than
poke around on it.
I need direction. I am good with Eagle and Kicad, Eagle being my first
choice and Kicad continually learning, but I can get by. Ultimately I want
an opinion on if I should continue creating my system or focus more time on
the systems on this website which seem to be a very similar idea to what I
wanted to create. Thanks!
--
You received this message because you are subscribed to the Google Groups "N8VEM" group.
To unsubscribe from this group and stop receiving emails from it, send an email to n8vem+***@googlegroups.com.
To post to this group, send email to ***@googlegroups.com.
Visit this group at http://groups.google.com/group/n8vem.
For more options, visit https://groups.google.com/d/optout.
Loading...