PDA

View Full Version : Interested in a home brew Z80 computer project?



Pages : [1] 2

NobodyIsHere
March 31st, 2008, 04:12 AM
Hi,

Is anyone interested in a home brew Z80 computer project? I have built them in the past and are a lot of fun to do. There are some others on this forum who have built their own machines but I am curious to see if there are others who would be interested in a group project. Please reply here or PM me if interested.

My latest Z80 machine is an updated design that tries to keep it simple while retaining the "feel" of vintage machines. It is a blend of technologies to address some of the major frustrating things which I faced as a home brew builder.

The first issue is parts availability; if you can't get the parts you can't build the machine. For this project, I am selecting only rather common and readily available 74LSxxx chips and LSI components like Z80 CPU, 16550 UART, 8255 PPI. All parts are readily available from vendors such as Jameco.com, etc. Custom programmable devices (except for boot EPROM) such as GALs, PALs, FPGAs, etc are out as those devices are difficult for many hobbyists to get without the special tools required to program them.

The second issue is the technology needed to build the unit; many of the advanced PCB techniques require special tools and processes which are beyond the typical hobbyist. As a result, I selected plain "through hole" (i.e. generic DIP packaging with 0.10" pin spacing) technology which is fairly simple and only requires a 25 watt soldering iron and related tools to produce. Any of the various SMT techniques are out even though they are much more dense they are too difficult.

The third issue is the PCB itself; there are a variety of techniques to make your home brew computer on such as breadboarding, wire wrap, and point to point protoboards. I have used those techniques and they do work fine although I think they tend to be for "one off" and temporary projects. The tend to devolve into a "rats nest" over time or develop other issues with reliability. For this project, I am going to try the custom manufactured PCB approach. Although initially more expensive, it promises to make for a much more reliable product and tremendously reduce the work necessary to build the device. In addition, with recent developments in free software tools and low cost PCB manufacturing, the cost associated with this approach has come down dramatically.

Finally, there has to be software for the machine. My goal for this project is standard CP/M 2.2 booted from a ROM drive and using a RAM drive for storage. This is doable since I have a custom CP/M build with CBIOS for my previous Z80 home brew project. This machine would be similar to the existing design and require some changes to the code. Most generic CP/M applications should run unmodified. As with any CP/M platform, some hardware specific programs are required such as debugger, format utility, RTC application, etc.

Please let me know if there is any interest. Thanks and have a nice day!

Andrew Lynch

JDT
March 31st, 2008, 08:23 AM
I would be interested a project like that.... granted it would take a LOT of learning on my part to contribute anything usefull =) which I am willing to do....

NobodyIsHere
March 31st, 2008, 09:17 AM
I would be interested a project like that.... granted it would take a LOT of learning on my part to contribute anything usefull =) which I am willing to do....

Hi,

I would not let inexperience limit your participation assuming you have some basic electronic familarity and the tools necessary. Primarily this should be building and debugging a home brew computer. I am proposing to re-use the design already in place and tested as part of my "Test Prototype" project from last year.

The only significant difference in this project versus the previous one would be the manufactured PCB rather than point to point prototype board, addition of a 1Mx8 EPROM with configuration latch, and some minor corrections to the RTC circuit. The CP/M software would have some small changes as well but the CBIOS should be similar. CCP and BDOS would be unchanged of course.

My planned approach is to finish reviewing the schematic to find any errors. The basic circuit is already entered from my original notes and it passes all the "ERC" tests. Still, there are subtlies which may have slipped through such as connector layouts, etc.

The next step finish the PCB layout. Actually part of that is done now already. The PCB has the parts layout done and the autorouter has completed laying the traces. The optimizer is still running to reduce trace length and via count down to more acceptable levels.

I'll order some PCBs when the design is ready and start the build up/debug procedure. It should be a standard assembly then. First, start with adding the passive components, sockets, and connectors to the PCB, add power/gnd, and start tracing lines to verify everything is where it should be. Then add as small a subset of chips as possible to start assembling subsystems. Typically that means starting with the clock circuits and then moving on to reset circuits, so on and so forth until the full computer checks out.

Thanks and have a nice day.

Andrew Lynch

bbcmicro
March 31st, 2008, 09:38 AM
I would love to build a Z60 or 6502 computer, and have been trying to do so for a while but the lack of writeups my complete beginners such as myself, my short attention span and my inexperience let me get as far as deciding and the 74XX series and designing a PSU.

I also stopped after I realised to make it do anything useful, I would need detailed knowledge of machine language to use it and to blow an EPROM to make it do anything really useful.

I still derive pleasure from reading about and seeing other people attempts, wistfully wishing I could build my own.

Keep us informed, Andrew!

Robert
March 31st, 2008, 11:16 AM
Yes - certainly interested. In fact interested enough that I registered!

I have recently been thinking about building a z80 machine - purely to get back to the times when computing was more fun. I have to admit that my assembler and hardware knowledge is somewhat rusty having worked in Software for the past ten years - but I could probably contribute something.

I don't have a lot of experience with the z80 - I cut my teeth on the 8088 but they aren't all that different.

Would be interested to know what you have in mind lynchaj.

Druid6900
March 31st, 2008, 11:19 AM
I would love to build a Z60 or 6502 computer, and have been trying to do so for a while but the lack of writeups my complete beginners such as myself, my short attention span and my inexperience let me get as far as deciding and the 74XX series and designing a PSU.

BBC,

If you spent as much time DOING the project as you have coming up with reasons why you CAN'T do it, it would be done by now.

Fine, you have a problem with attention span? Build it one chip per day, at the same time every day and make it part of your routine.

You don't have experience in this type of thing? So what? I wasn't born with a soldering iron in my hand either, but, when you're done, you'll damn well HAVE experience.

As soon as you decide that you CAN'T do something, then you can't, until then, with some determination and dedication, there is nothing one can't achieve.

Bill_Loguidice
March 31st, 2008, 11:50 AM
What are you estimating the complete parts list would cost by the time everything is finished?

bbcmicro
March 31st, 2008, 11:52 AM
You don't have experience in this type of thing? So what? I wasn't born with a soldering iron in my hand either, but, when you're done, you'll damn well HAVE experience.

As soon as you decide that you CAN'T do something, then you can't, until then, with some determination and dedication, there is nothing one can't achieve.

Encouraging words. You could say that, but I'm not smart enough to be thrown into the deep end of something I only know the basics about, and construct something as complicated as a computer. - Why I've put this project on long term hold - I'm still reading up on it - Picking up all the books I can find (I've amassed a small collection). Progress is excruciatingly slow but it is there, only in my head.

I just can't see me doing in within the next few years. I have to know what everything does and how it does it in detail.

Building one from a schematic designed by someone else is another story, something else I wouldn't mind doing, hence interest in Andrew's project.


If you spent as much time DOING the project as you have coming up with reasons why you CAN'T do it, it would be done by now.

I am by nature, a pessimist ;)

Although TBH, your words have hit home somewhat.

barythrin
March 31st, 2008, 12:53 PM
I'm obviously interested in any kits out there. I have the same problem BBC does and will glady buy one but will sit on it while I pretend I can't do it. I think the problem is (one I haven't tried to on a useful level) even when I build a kit I don't necessarily understand what parts are doing and why. That would be the most interesting part.. combining this with a component level description of what we need to build a computer, why, etc and how this works as we go along building it.

That would be awesome. But until then I'm still happy soldering things together and seeing them work but if I made the time to look up each component and the pinouts and programming for it I could probably figure out how to do it myself or improve on things.

- John

NobodyIsHere
March 31st, 2008, 06:34 PM
What are you estimating the complete parts list would cost by the time everything is finished?

Bill, the honest answer is I do not know. The PCB prototype will cost me $53 plus shipping for the initial board. Units ordered after that really drop the price down to around $20+ a piece after 4 units. Most of the components on the board will come out of my junk box as they are pretty common.

I do have a BOM that you could check against Jameco.com. I suspect it'd be less than $100 including the PCB depending on what you have and tools on hand. Personally, I'd buy the parts from a surplus store though. The most expensive parts will be the PCB, 27C080 EPROM, the 512Kx8 SRAM and the DIN 41612 connector. 8255's and 16550's are dirt cheap and the 74LSxxx pieces are really cheap too.

Thanks!

Andrew Lynch

NobodyIsHere
March 31st, 2008, 06:40 PM
I'm obviously interested in any kits out there. I have the same problem BBC does and will glady buy one but will sit on it while I pretend I can't do it. I think the problem is (one I haven't tried to on a useful level) even when I build a kit I don't necessarily understand what parts are doing and why. That would be the most interesting part.. combining this with a component level description of what we need to build a computer, why, etc and how this works as we go along building it.

That would be awesome. But until then I'm still happy soldering things together and seeing them work but if I made the time to look up each component and the pinouts and programming for it I could probably figure out how to do it myself or improve on things.

- John

John,

That's not what I am saying here. This is *NOT* a kit project. I know the basic design works but have not used the manufactured PCB yet.

I have used prototype boards earlier so I know the basic principles work. The new configuration would have to go through a build and debug cycle so this project is probably better for the people with at least *some* basic experience with electronics.

At best it is a pre-made PCB and some help. There are no instructions! You'd have to procure the parts, assemble and test along with me. Very likely the initial versions of the PCB will have errors which will require some cuts and jumpers to fix.

Thanks!

Andrew Lynch

Druid6900
March 31st, 2008, 08:09 PM
John,

That's not what I am saying here. This is *NOT* a kit project. I know the basic design works but have not used the manufactured PCB yet.

I have used prototype boards earlier so I know the basic principles work. The new configuration would have to go through a build and debug cycle so this project is probably better for the people with at least *some* basic experience with electronics.

At best it is a pre-made PCB and some help. There are no instructions! You'd have to procure the parts, assemble and test along with me. Very likely the initial versions of the PCB will have errors which will require some cuts and jumpers to fix.

Thanks!

Andrew Lynch

Kits are no fun anyway. Too easy. Much like "paint-by-numbers" art.

First a question, then a story.

The question is, Andrew, does the PCB include silk-screening of the components?

The story is, when I took electronics, way back in the days when schematics were done with a chisel on a rock, I took it as Adult retraining after 5 years of Arts and Science in high school, therefore, no technical knowledge at ALL.

Walked into the lab and looked into the back of an open TV that they were going to teach me to fix (this was before my lab partners and I designed the digital portion of the course, on the fly, and the retraining was then split into TV and digital) and thought, "Right, they are going to teach me to understand all these wires and glass things and ceramic and metal doo-hickies"

I was ready to quit the course right then and there, but, I didn't. I worked at it. I did the theory part and the lab part and, slowly, things started making sense.

It takes some application and desire and some good hard sweat-of-the-brow. In other words, it takes what it takes to do ANYTHING.

This could be a great sense of accomplishment for the people here that may think they can't do it and if it doesn't work, then you get to figure out why or get to make those cuts and jumps Andrew was talking about.

Lots of people own cars and they only have a slight idea how they work. Build the damn thing and THEN do the theory. It'll all make sense and you'll have something that will teach you WHY it does this and that.

The most that can happen is that you'll fail, which is a hell of a lot better than not trying at all.

Soupwizard
March 31st, 2008, 10:33 PM
Have you seen the P112 schematic? It's a z180 (enhanced z80) based cp/m board designed in the mid-90's and the schematic is downloadable. The p112 has some surface mount components (cpu, resistors) but I've thought about re-laying the schematic out on a bigger board and using a dip version of the z180 and other thru-hole components. It might be a good start for a homebrew board design.

the z180 is pretty nice (built in serial ports), see: http://www.zilog.com/products/family.asp?fam=219

P112 info: http://members.iinet.net.au/~daveb/p112/p112.html

I've never done pcb layout before, so a group project would be great in that other eyes could check over the design, and as you say the more boards you order the cheaper they are.

Jeff

NobodyIsHere
April 1st, 2008, 03:51 AM
Have you seen the P112 schematic? It's a z180 (enhanced z80) based cp/m board designed in the mid-90's and the schematic is downloadable. The p112 has some surface mount components (cpu, resistors) but I've thought about re-laying the schematic out on a bigger board and using a dip version of the z180 and other thru-hole components. It might be a good start for a homebrew board design.

the z180 is pretty nice (built in serial ports), see: http://www.zilog.com/products/family.asp?fam=219

P112 info: http://members.iinet.net.au/~daveb/p112/p112.html

I've never done pcb layout before, so a group project would be great in that other eyes could check over the design, and as you say the more boards you order the cheaper they are.

Jeff

Hi Jeff,

Yes, I am familiar with the P112. It is a great design and it gets nothing but respect from me.

However, as you pointed out, it uses SMT components which I consider a show stopper for me and probably the bulk of hobbyists. Yes the P112 could be redesigned but since I already have a working home brew computer sitting on my workbench I built from scratch (mucho props to the good folks at ALPACA for all their help!). I am familiar with the Test Prototype design and it seemed like a logical starting point for me. It will vary depending on your perspective.

I agree that having some other eyes review the design would indeed be very helpful. However, posting on these forums is pretty limited. I am considering starting another Google group to allow posting of files for folks to review. I do not want a formal webpage though as I'd rather spend my time working on the PCB than managing a website. Yahoo Groups and Google Groups are ideal for this sort of collaborative project.

Thanks and have a nice day!

Andrew Lynch

bbcmicro
April 1st, 2008, 12:20 PM
The verbal boot up the backside from Druid6900 I've finished building a 5V 1A ps for TTL stuff. I didn't build it myself but used scavenged parts. The odds for it being right for this p'ticular computer are slim, but it's proof to myself that I can do stuff if I want to.

So Andrew, count me in.

NobodyIsHere
April 1st, 2008, 01:45 PM
Good choice.

Druid has never been at a loss for words and he is right, as usual. Take it as wise council and start building your machine. Pick whatever does it for you. There are many examples on the internet. The folks at www.6502.org have some truly excellent examples and there are many 8080/Z80 projects around.

Best of luck! Thanks!

Andrew Lynch

NobodyIsHere
April 2nd, 2008, 04:21 AM
Hi,

I think I am getting ready for some expert and/or peer reviews prior to manufacturing the PCBs. A good friend with lots of experience is reviewing the design so I am very happy about that.

Last night, I completed my own review of the design and clean up of the schematic. The initial routing has gone well and I am getting ready for a final routing prior to sending it to the prototype PCB manufacturers.

If there are any experienced engineers, circuit designers, or PCB layout experts or anyone who would be so kind as to review the design for errors and/or improvements I would much appreciate it. I'd really like to simplify the circuit a bit to relieve some trace congestion but so far I haven't been able to.

I am mostly interested in finding logic and design flaws and also PCB layout issues. The actual PCB trace routing is all being done by the autorouter.

Just a bit of background information: this SBC is only CPU, RAM, ROM, PPI, UART, RTC, and ECB bus connector. There is no bus backplane, disk, or video subsystem. The target OS (CP/M 2.2 with custom CBIOS) boots on my prototype using ROM (A:) and RAM (B:) drives.

Assuming the core CPU SBC works bus and disk components would be follow on items. I do have a working ECB bus backplane and a disk subsystems on my bench which could also be similarily converted to PCBs depending on how this goes.

Thank you in advance for any help / advice! Please PM me and I will email you the data file for KiCad and the PDFs of the PCB.

Andrew Lynch

NobodyIsHere
April 6th, 2008, 08:14 AM
Hi,

I am getting ready to order some PCBs and have gotten a couple of questions about unit cost. The design is in a review now and will need another autoroute session which will last a few days or so. I am thinking I'll probably order some prototype boards in about a week.

The unit cost on the boards are:

2 $32.34 (I am ordering two regardless)
3 $25.34 (one additional order)
4 $21.84 (two " ")
5 $19.74

I'll be ordering from https://www.barebonespcb.com/!BB1.asp unless someone has a better idea. There is no need for additional orders but this is your opportunity for a PCB if you want one.

Of course, I have *NOT* built the PCB version yet so I do not know if or how well it will work. It should work but there are no guarantees.

This is for the PCB ONLY and you'll have to supply your own components if you intend to build. Your cost will include shipping which will be in addition to the unit cost.

Please contact me if you would like to participate. Thanks!

Andrew Lynch

PS, if anyone cares to see a *preliminary version* you can look at the PDF at: http://groups.google.com/group/n8vem

NobodyIsHere
April 14th, 2008, 03:49 AM
Hi All,
Just a quick update on the progress so far. Things have been going much slower than I planned. There were some late design changes and I had some problems getting the optimizer to complete its run. In fact, it is STILL going strong one week later although in actual run time it is probably closer to 4 or 5 days.

The good news is PCB is continuing to shrink in terms of complexity. The autorouter optimizer has been able to reduce the number of PCB vias from the mid-200's to 91 as of this morning. Also the overall trace length has shrunk from ~67M at start to now ~55M. I am not sure what the units are in the trace length (mils? but even that seems overly large) but what is clear is that there has been a significant ~20% reduction in overall traces.

What this all means there are fewer unnecessary vias and traces. The remaining PCB traces are shorter and generally more direct. Every reduction in via count and trace length usually means a more reliable and easier to debug circuit board.

I suspect the optimizer is getting near the end of its run. It amazed me that it dropped below 100 but it still continues to find simplifications. Its all good in the end but it takes time to grind out the results. I will probably order the PCBs this week assuming the optimizer finishes in the next few days.

Thanks!

Andrew Lynch

Soupwizard
April 14th, 2008, 06:03 PM
... There were some late design changes and I had some problems getting the optimizer to complete its run. In fact, it is STILL going strong one week later although in actual run time it is probably closer to 4 or 5 days. ...

Wow, what sort of cpu is the optimizer running on? One week is really long time for a job to run!

Aaron Teeling
April 14th, 2008, 06:26 PM
The last we chatted, I knew you were working on a project but I wasn't aware you were ready to go to a rev 0 production.

Aaron

Terry Yager
April 14th, 2008, 06:32 PM
AJ,

Will you be going to the trouble of locating sources for all the parts (rummaging around in the bottom of your junk drawer doesn't count). If so, put me down for a board also.

--T

NobodyIsHere
April 15th, 2008, 03:26 AM
Wow, what sort of cpu is the optimizer running on? One week is really long time for a job to run!

Hi! The autorouter and optimizer are the online versions from "freerouting.net" which was recently integrated with the KiCad EDA program. I am running it on my main home computer which is a AMD Barton 2500 CPU with 2 GB RAM. It is definitely taking a long time to run and finish the optimization. Initial autorouting took only about 1-2 hours. Contributing to the excessive optimizer run times is that the machine is getting constantly interrupted for other uses which reduces efficiency quite a bit.

I am making another computer for my kids which if it works out will be a P4 3.0 GHz that I may temporarily divert for "testing" if another autorouter/optimizer run is needed. It may be as I have been inspecting the PCB layout as it computes solutions and I think I may have found some additional improvements.

Thanks!

Andrew Lynch

NobodyIsHere
April 15th, 2008, 03:47 AM
The last we chatted, I knew you were working on a project but I wasn't aware you were ready to go to a rev 0 production.

Aaron

Hi Aaron, [sorry this response is rather long and slightly drifts off topic but it is relevant in a larger sense]

Yes, my plan is to get some prototype PCBs built in the near future. Right now I am still contemplating the best approach for the initial production run though. Although the basic SBC design is proven as I built one on my bench using prototype boards and point to point wiring, the PCB is entirely new. I am considering just ordering two boards for initial build up and check out. Then if those work out, make the PCB available for a group buy. Making the PCB available before it is fully checked out may possibly lead to a lot of unhappy people when/if unexpected problems crop with it. It is probably more expensive for me in the short run but likely worth it in terms of reduced headaches.

You see, the danger of the initial board is that it is unproven. Most likely the first revision will need some sort of cuts and jumpers to fix various items which inevitably crop up -- possibly leading to a respin of the PCB. Those problems were easily fixable on the prototype board by just adding additional wires and components. However on the PCBs, it will require using wire wrap "jumpers" and possibly cutting traces. Honestly, I just don't know at this point. I tried to keep the design as similar to the prototype as possible but a couple of changes did creep in so you just never know until the first one is built. Additionally, there is always the danger of changes or errors which crept in to the initial prototypes but were not documented in my notes. The only real fix to this is to review the schematic for design errors and logical flaws but even that has limitations. Nothing beats actually building it and making it work for proving the design is valid.

I haven't made my mind up yet but I am leaning towards just doing the first two units on my bench and then posting the results, pictures, etc. Once that is done, make the PCB available for others to purchase as part of a group buy. The only way to get the unit cost down on the PCBs is to order several at one time which means probably a lot of 10 PCBs or so. Ten units of the bare minimum PCB would only cost about $16 each plus shipping. Note those are just the as-is prices and do not include any profit or even recouping any expenses. Obviously a nicer PCB would cost slightly more but you get the idea, group buys drop the PCB unit price *significantly*.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
April 15th, 2008, 03:59 AM
AJ,

Will you be going to the trouble of locating sources for all the parts (rummaging around in the bottom of your junk drawer doesn't count). If so, put me down for a board also.

--T

Hi Terry,

I posted an early version of the PCB and schematic here for public review and comments. Your input would be very much appreciated as would anyone. Especially people with PCB design and electronics technician experience.

http://groups.google.com/group/n8vem

The schematic is unchanged although the PCB routing is different. The chip layout is the same. You can tell from the chip layout that the components I selected are intentionally plain-jane bog standard TTL parts. There are no hard to get unobtainium items in the design.

Basically, the parts are 100% orderable from any parts house like jameco.com, etc. The most expensive component is the 512K SRAM ($20 or less if you shop around) although I intend to do some experiements to see if I can substitute a pin compatible and cheaper 128K unit (~$10).

Depending on how this goes, I will probably make the PCB available for the public to order but most likely will not make a full blown kit. That may come to pass eventually but that is not my goal. After building and testing the CPU/MEM/IO card, I have three more cards on the bench I would like to build in a similar fashion. Rather than spending time on making a kit, I would design the backplane, bus debugger, and disk IO boards.

Thanks!

Andrew Lynch

Terry Yager
April 15th, 2008, 11:04 AM
OK, I'm in.

--T

bobsstuff
April 15th, 2008, 11:40 AM
Could you find existing boards by doing google, yahoo and ebay searches?
Here is one fellow on ebay who may have something: auciton 330219301204
OR
Is part of this in the DOING?

NobodyIsHere
April 15th, 2008, 02:45 PM
Could you find existing boards by doing google, yahoo and ebay searches?
Here is one fellow on ebay who may have something: auciton 330219301204
OR
Is part of this in the DOING?

Hi Bob,
Well, that is an interesting topic to me. In short, the real benefit of this project is in the doing.

I am an electronic engineer and work on a variety of things but I have found projects such as the building Z80 computers from scratch, ham radio, and other technical hobbies as valuable continuing education. Professional engineers such as myself can sometimes become so detached from "real" technical issues that their practical technical skills fade. Making projects like this and fixing vintage computers helps keep me "rooted" in the technical aspects. It helps to have practical knowledge of which is the hot end of a soldering iron and how to turn on an oscilloscope when dealing with these issues on a daily basis.

That is probably more than you wanted to know.

My plan is to make the PCB available for other hobbyists at cost just to give back a little to the community which has been very good to me. Everyone can benefit and it has already been worth it to me for the lessons I have learned using KiCad and arranging for the PCB to be made.

A side issue, there are some do it yourself computer projects on the internet but not very many. Those which are there often have "features" which put them outside of the reach of your average hobbyist. Features like PALs, GALs, FPGAs, surface mount components, hard to get parts, etc are available to really only a few people. This project is supposed to allow access to everyone with just basic tools WITHOUT having to resort to the hard to support and modify prototype boards and/or wire wrap techniques.

Thanks and have a nice day!

Andrew Lynch

PS, I noticed the PCB finally finished its optimization run. The final board has only 88 vias and trace length of 55.2M -- down from 227 vias and 67M trace length after the initial autoroute. Assuming this is the final product (ie, no late show stoppers crop up) it looks like a pretty decent PCB. I still have a couple of issues to track down and those are in work presently. I'll keep the forum posted on my progress...

bobsstuff
April 15th, 2008, 06:13 PM
That is probably more than you wanted to know.
No, I find it interesting. That is why I even looked up the ebay board.

You could supply the board and PROM/EPROMs if you have a burner.

OF COURSE, you would probably get 500 orders and be burging PROMS until you were tired of it.

PALS, GALS & surface mount? :( This is a Z80 system -- LOL

NobodyIsHere
April 15th, 2008, 06:45 PM
That is probably more than you wanted to know.
No, I find it interesting. That is why I even looked up the ebay board.

You could supply the board and PROM/EPROMs if you have a burner.

OF COURSE, you would probably get 500 orders and be burging PROMS until you were tired of it.

PALS, GALS & surface mount? :( This is a Z80 system -- LOL

Hi Bob,

My plan is to make the PCBs available if anyone wants them. All the designs are available online so that anyone can just order the PCBs themselves. Heck, they can even use KiCad and modify the board design and make their own. After I get the initial units working and the software updated I will post that online too.

I can also burn the EPROMs if people want those. I'll pass them on at cost. The EPROMs aren't a problem as I have many of those, especially if I can get the 27C010's to work. I literally have dozens of those. The key to getting the PCB cost down is a group buy though. Orders of 10 or more boards really drop the unit cost to less than $20 a piece.

As for EPROMs, the 27C080's are a bit more expensive but still not a problem. Ironically, many of the Z80 projects on the internet do use SMT, PALs, GALs, CPLDs, and even FPGAs. I was a bit surprised myself. Those components are good for simplifying the PCB layout, no doubt, but are not typically available to your average person who'd like to build a simple computer. EPROM burners and maybe a PIC/AVR programmer are about as far as most folks go.

Anyway, until I get the PCB actually ordered so it can arrive, this is all just speculation. Now that the optimizer is done, I did run the gerber file through the freeDFM service and it looks OK for manufacturing. I still have one outstanding design issue left to resolve and depending on how that goes, I will probably order a couple of initial PCBs in the next day or so. If not, I'll be doing another set of tweaks and a new respin which should take another week.

Do I think I'll get 500 orders? No, I doubt that very much. There are not that many people interested in home built computers but I am sure there are few around here and maybe CCTALK. Similar projects like the P112 actually had two separate build phases (1996 and 2004) and the GIDE project has been very successful for years. There may be some interest in this project too but all of the projects tend to be rather specialized. If I am lucky, this project will get a few interested people but won't be too wide spread.

Thanks! Have a nice day!

Andrew Lynch

PS, here is the link for the freeDFM run. You can see there are no "show stoppers" (from their perspective) but there are *lots* of little glitches in the silk screen layer.

https://www.freedfm.com/freedfm/0011697401987028/results/summary2.htm

this might be semi interesting too...

https://www.freedfm.com/freedfm/0011697401987028/results/plots.htm

Soupwizard
April 15th, 2008, 09:37 PM
Hi! The autorouter and optimizer are the online versions from "freerouting.net" which was recently integrated with the KiCad EDA program. I am running it on my main home computer which is a AMD Barton 2500 CPU with 2 GB RAM. It is definitely taking a long time to run and finish the optimization. Initial autorouting took only about 1-2 hours. Contributing to the excessive optimizer run times is that the machine is getting constantly interrupted for other uses which reduces efficiency quite a bit.

I am making another computer for my kids which if it works out will be a P4 3.0 GHz that I may temporarily divert for "testing" if another autorouter/optimizer run is needed. It may be as I have been inspecting the PCB layout as it computes solutions and I think I may have found some additional improvements.

Thanks!

Andrew Lynch

I ran the freerouting sample "single_layer_handrouted.dsn" on my dual core 2ghz athon64, and yeah it can take a while. Looks like it's mostly running in 1 thread (on one cpu), though sometimes it uses both.

For fun, I downloaded the Java files the router uses, changed the freeroute.jnlp launcher file to use the local files (so that if the internet goes down it'll keep running for sure) and increased the memory allocation to 1024MB from 512MB. Even the "bigdesign_unrouted.dsn" didn't use more than 110MB or so, but I didn't let it run for more than 15 minutes. I suspect it's the cpu that's limiting the speed, not the memory. It wasn't doing any disk i/o either while I was watching.

If you want to send me the z80 board .dsn file, I can run it on my dual core box and see if it can use both cores, or if it sticks to mostly one cpu. If it does seem to be able to use more than one effectively , I'll put it on one of the 8 core Xeon 2.3Ghz with 8MB cache workstations we have at work. They sit and do nothing over the weekend, and maybe it can zip through optimization of your design in a couple of days.

UPDATE: The sample "single_layer_handrouted.dsn" batch optimize has been running on my machine for some time now (30 minutes?) and it's now using nearly all of both cpu's (94% of each), it looks like the freerouter software will use all available cpu after some initial setup. Still using only 108MB of memory though.

(btw, I'm in for a board when you're ready for a multiperson order)

Jeff

NobodyIsHere
April 16th, 2008, 03:32 AM
[snip]

If you want to send me the z80 board .dsn file, I can run it on my dual core box and see if it can use both cores, or if it sticks to mostly one cpu. If it does seem to be able to use more than one effectively , I'll put it on one of the 8 core Xeon 2.3Ghz with 8MB cache workstations we have at work. They sit and do nothing over the weekend, and maybe it can zip through optimization of your design in a couple of days.

[snip]

Jeff

Jeff,

Thank you for your kind offer. If I end up having to do another board respin I will take you up on it. Trying to run the optimizer on the main home computer is an exercise in futility with a house full of other people. :-/

There really is only one issue left to resolve and with any luck I will make the initial order tonight. This is a good time for me to order them since work is going through another busy phase but it will be ending and slowing down just in time for the parts to arrive.

Hopefully, we'll not have to do the respin right away but I am sure another run will happen eventually.

Thanks!

Andrew Lynch

Terry Yager
April 16th, 2008, 11:58 AM
Ironically, many of the Z80 projects on the internet do use SMT, PALs, GALs, CPLDs, and even FPGAs. I was a bit surprised myself. Those components are good for simplifying the PCB layout, no doubt, but are not typically available to your average person who'd like to build a simple computer.

Exactly the thing that has put me off from attempting any of those other projects, but I'm going to give yours a try for true.

--T

NobodyIsHere
April 16th, 2008, 06:49 PM
Hi All,

Well, due to some rather poor design decisions on my part it looks like the circuit contains some critical errors so it is back to the drawing board.

I have the schematic and PCB out for another round of review and will keep you posted on the fixes and necessary respin of the board. The good news is that I had some minor changes already queued up so this respin will allow some of the nice to have changes to get rolled in.

Bummer though, I was planning on ordering the PCBs tonight. I'd rather wait a few days than have to resolve a bunch of problems though. Thanks!

Andrew Lynch

PS, when the fixes are all in, I will try with Jeff to see if we can't shrink this autorouting time down to something reasonable like a day or two.

Sharkonwheels
April 16th, 2008, 08:27 PM
Well, you KNOW I'm in...

I also have a stash of about 30 or so ST 27C801's which are 1Mx8 EPROMs, if that helps out cause any...
I also have an EPROM programmer capable of dealing with these, so I can burn the chips, and send 'em out at this end...


T

Sharkonwheels
April 17th, 2008, 04:52 PM
AJ, I had a crazy idea last night...

one thing I've ALWAYS wanted, is an ultra-portable, non-emulated CP/M system...

What about, for example, building a mainboard around a laptop design that is cheap and plentiful, to interface with the LCD/Battery/Keyboard on the laptop?

First one that came to mind, was the Dell Latitude CP-series. They made thousands upon thousands of these things, and they are cheap and plentiful.
CP-I, Cp-X, etc..

I mean, wouldn't it be SUPER cool to have a CP/M laptop?

T

NobodyIsHere
April 17th, 2008, 05:57 PM
Hi Tony,

Yes, that'd be cool but it is way above my skill level. My Test Prototype and the PCB project are trivial compared to a CP/M laptop. The keyboard might not be so bad but the LCD display would definitely be a challenge. Maybe there are intelligent displays which would work. Also the PCB would be tough and require SMT and probably custom chips like FPGAs to keep the power consumption down for battery operation. Zilog makes some nice integrated components which would work, I think.

Definitely not an easy project. Cool though!

Andrew Lynch

Sharkonwheels
April 17th, 2008, 06:15 PM
No matter, as I said, I'm in on yours...

When there is a need, keep in mind I have all those 27C801's that I can burn.


T

grant
April 17th, 2008, 08:02 PM
I recommend you look at the AT29C040A from Atmel.

I use it with the 6800 and soon the 8800.

It is 512k of parallel flash and has a software program protection to prevent a crashed processor from wiping the flash (a 3 byte command code given before a write will work).

You can use a latch to implement a simple page register to select what part of the flash is accessible. I would recommend then that you make for example 0-4k of the window ALWAYS 0-4k, and the 5-8k of the flash a selectable portion of the flash. Otherwise any monitor running on the flash will be funny.

I forgot about that when I designed the Mini680 board. There are ways to get around that, but they stink!

The flash is organized as 256byte write blocks, so it would work well as a CPM disk too.

wd0dbs
April 17th, 2008, 08:12 PM
AJ, count me in on your project. I would love to buy one of Grant's Kits but this is more my price range right now. I can sneak a few dollars at a time.

Doug

Ex-RSCC manager - long time computer buff - sometime ham

Terry Yager
April 17th, 2008, 09:59 PM
I mean, wouldn't it be SUPER cool to have a CP/M laptop?

T

My Zeos palmtop runs CP/M quite nicely (on it's V20).

--T

Sharkonwheels
April 17th, 2008, 10:12 PM
My Zeos palmtop runs CP/M quite nicely (on it's V20).

--T

Key word being "non-emulated" ;)

T

Terry Yager
April 17th, 2008, 10:26 PM
The V20 runs 8080 code natively. On the 10MHz machine, it runs somewhat faster than a 6MHz Z80 (but the flash disk prob'ly has sum'n to do with that). You should try it on one of your ol' V20 lappies. A Tandy 1400, etc. works well IME (and it's about as portable as you can get, short of one of the harder to find palmies). I'll send you a couple programs if you want to take it for a spin.

--T

Sharkonwheels
April 17th, 2008, 10:34 PM
I mean boot the b@st@rd up under CP/M 2.2, and go to town...
'side....I'm getting to old to use stuff like the Zeos Palmtop (got one) and HP 200LX (want one - had a 95LX YEARS ago...)

What's the minimum requirement for MyZ80? Gonna check....
AT or better, 290kb RAM...

Dang - it woulda' been COOL to run MyZ80 on an HP 200LX!
I think it would make a FABULOUS portable drive, be it for M100/M102/Nec, or for the Epson PX-8, etc...

T

NobodyIsHere
April 18th, 2008, 04:15 AM
I recommend you look at the AT29C040A from Atmel.

I use it with the 6800 and soon the 8800.

It is 512k of parallel flash and has a software program protection to prevent a crashed processor from wiping the flash (a 3 byte command code given before a write will work).

You can use a latch to implement a simple page register to select what part of the flash is accessible. I would recommend then that you make for example 0-4k of the window ALWAYS 0-4k, and the 5-8k of the flash a selectable portion of the flash. Otherwise any monitor running on the flash will be funny.

I forgot about that when I designed the Mini680 board. There are ways to get around that, but they stink!

The flash is organized as 256byte write blocks, so it would work well as a CPM disk too.

Hi Grant,

That is a great idea. I have been considering the trade off between EPROM and FLASH on this design since nearly the beginning. I went with EEPROM on the initial prototype and it worked fine. The current design is going with 1Mx8 EPROM mostly for space reasons (it is the largest 32 pin DIP memory, AFAIK). The plan being is the EPROM is impossible (AFAIK) to change in circuit and also large enough for a fairly complete CP/M suite to run from a ROM drive.

The 512K FLASH part would provide most of the space and allow in circuit reprogramming but my concern was run away CBIOS code trashing the FLASH and killing the SBC. The FLASH protection scheme should dramaticaly reduce the risk of accidental corruption.

Regarding the memory paging scheme, the SBC implements a simple configuration latch approach. The Z80 memory is divided into an upper and lower 32K page. The upper 32K page (8000-FFFF) is always the same on the RAM chip. The default (on boot) lower 32K page is the ROM enabled, page 0. The SBC will stay in that configuration until the ROM is disabled switched out and the RAM replaces it. The ROM can be temporarily reenabled and different 32K pages switched in by manipulating the configuration latches for the ROM block device. Similarily, the 32K RAM pages can be switched in to the lower 32K page by manipulating its own configuration latch. It is a simple scheme but lends itself to a full 64K RAM space (CP/M friendly) and also an easy to implement RAM & ROM block device in the CBIOS.

Where FLASH would be an improvement would allow the ROM device to be modified in circuit (nice) but it comes at the expense of 50% of total memory since it trades off an address line (A19?) for the /WR line. For the initial prototype PCB I am going with the EPROM since it will be more robust and I have some of those around my bench. My CBIOS already exists for the 512K RAM with 32K EEPROM and it should be readily extendable to the 512K RAM & 1M ROM block devices, however, the CBIOS will have to be modified for the new configuration.

At this point, my goal is to get the designed finished enough that I can do a build on the PCB and test it out. I'd like to know if this projectis even feasible! The PCB *looks* good on the screen and the design but we'll just never know until I get one on the bench and built up for testing. My fear is the PCB will contain either logical errors (mine) or manufacturing errors like bridges or broken traces (theirs) due to the software.

Thanks for the insight and have a nice day!

Andrew Lynch

PS; this is an older version http://groups.google.com/group/n8vem

Terry Yager
April 18th, 2008, 09:43 AM
I mean boot the b@st@rd up under CP/M 2.2, and go to town...
'side....I'm getting to old to use stuff like the Zeos Palmtop (got one)<snip>

T

Autoexec.bat? I know what ya mean tho, ol' eyes ain't what they used to be.

--T

kb2syd
April 18th, 2008, 10:54 AM
I too would be interested in getting a set to build this.

NobodyIsHere
April 19th, 2008, 05:01 AM
Hi,

Well, I think the problem is solved on the Z80 SBC design. The issue turned out to be rather subtle. There is a link between the 16550 UART INTR and the Z80 /INT lines. The signal has to be inverted for it to work properly however the Z80's /INT line is "open drain" to allow "wire OR" connections. The problem is I was using a normal TTL inverter rather than an "open collector" and pull up resistor.

The fix is simple; just replace the inverter with a old school open collector inverter single transistor circuit. I am using a 2N2222 (TO18 package) with a couple of resistors to drive the Z80 /INT in the new design. The new PCB is in routing presently on one of Jeff's many big servers. (THANKS JEFF!)

As it was, the circuit probably would have worked as designed as a stand alone SBC however if it were attached to the ECB backplane (more on that later) and a peripheral which used the bus version of /INT would cause the 74LS14 inverter and the peripheral to go into bus contention on the /INT line. Probably the peripheral would have won out but the likelihood is that eventually the inverter and/or the peripheral would have burned out. Not a good thing and especially it is one of those things that need to be fixed early rather than discovering it when the future peripheral is out.

Bad on me for not noticing it earlier but that *is* the point of the exercise... to refresh and learn those technical skills before the disappear entirely. Oh well, I am sure they'll be other problems to fix as we go along. Find em and fix em as we go!

Thanks!

Andrew Lynch

NobodyIsHere
April 23rd, 2008, 08:14 AM
Hi All,

I have a completed PCB design and am reviewing it. Noticed a couple of oddities in the routing so making a couple of tweaks and throwing it back into the optimizer to hopefully get the via count down a bit.

Provided no further problems are discovered, I am expecting to order the PCB from the manufacturer this weekend. Of course the first two units will be just experimental ones for my build and test phase. I will keep you posted on the results as it goes.

Thanks!

Andrew Lynch

PS, the optimizer just finished and I sent the design off to to FreeDFM for manufacturing checks. Here are the results:

New! Click to view PLOTS (beta release) for design TestPrototype-FreeDFM-00.zip: https://www.freedfm.com/freedfm/0011697401995800/results/plots.htm

Click to view DFM results for design TestPrototype-FreeDFM-00.zip: https://www.freedfm.com/freedfm/0011697401995800/results/summary2.htm

I ordered the two prototype boards so I expect those will be here in about two weeks or so (5 days to cut the boards and 5 days shipping).

Maybe I'll get lucky and they'll arrive sooner.

WB6BNQ
April 25th, 2008, 08:59 PM
Andrew,

I am curious as to why you did not used the ZILOG ctc, pio, sio parts ? By using other parts you are seriously limiting the ability to use intelligent interrupt processes provided for in those items.

Almost all designs that I have seen no one uses these ZILOG parts. Perhaps it is due to cost.

Bill.....WB6BNQ

NobodyIsHere
April 26th, 2008, 05:36 AM
Andrew,

I am curious as to why you did not used the ZILOG ctc, pio, sio parts ? By using other parts you are seriously limiting the ability to use intelligent interrupt processes provided for in those items.

Almost all designs that I have seen no one uses these ZILOG parts. Perhaps it is due to cost.

Bill.....WB6BNQ

Hi Bill,

The Z80 peripherals are very nice. I am familiar with them from other projects. Both the KayPro 10 and the WaveMate Bullet used a fairly complete Z80 system with CTC, DART, and PIO chips. The WMB used Z80 DMA too. They work very well and I have a bunch in my junk box.

One of my earlier ideas which I rejected was a kit form of the WaveMate Bullet SBC. I have the schematics and all the parts except for a new PCB and its tiny boot ROM. However, I did not pursue that approach since the PCB was about 6" x 8" resulting in a PCB of about 48 square inches. A large PCB really drives the cost of the project up and precludes a lot of potential hobbyists from the project due to affordability.

I am trying to follow a low cost with incremental building blocks philosophy. The big "all in one" SBC designs were just too elaborate and expensive designs. I investigated the KayPro 10, WaveMate Bullet, and Heath H-89 SBCs but decided to go with the ECB approach instead.

The present core SBC design is one I am familiar with from an earlier project I built with prototype boards. It is similiar to the Thomas Scherrer Z80 SBC design but modified and expanded with various IO devices. Part of the reason I chose the design was many of the parts are common with PCs as to keep costs low and even for cheap reuse of scrap components. The rest is bog common standard TTL chips and cheap parts. Most or all can be purchased online or salvaged from old PCs and/or boards.

Also, I did not want to radically change the design since I got my previous design working fairly well it did not make sense to start over again for similar or marginal improvements. Especially with regards to the software I had already written and debugged (ie the CBIOS and monitor). It all gets down to risk and what my comfort level is with the proven design.

With this design, however, the full Z80 interrupt capability is still present for Z80 peripheral cards if and when those are ever available. You'll notice the ECB connector retains all the signals needed for Z80 peripherals including an "open drain" bus version of /INT and IEI/IEO complete with pull up resistor. All the typical IO address, data, and control lines are buffered and present for use by any future peripheral cards.

All that remains to be done is to design and build the Z80 peripherals card. Certainly the CTC, DART, PIO, and SIOs would work although the DMA probably wouldn't with the current generation (ECB support is pretty much IO only with this version, that may change if and when we get that far).

Once I get the SBC built up and tested, the next device will be the ECB backplane. I have a preliminary design for its PCB already completed but I still have the original one made from prototype boards to use for testing in the meantime.

Thanks! Have a nice day!

Andrew Lynch

PS, I ordered two PCBs on Thursday and spoke with manufacturer last night. Apparently the PCBs have already shipped so now it is just waiting for them to arrive by UPS. Yesterday I ordered the missing parts I needed from Jameco. It was just some common 1K ohm resistors and some other miscellaneous bits and pieces.

The full set of files are available here:

http://groups.google.com/group/n8vem

I will be posting pictures and other stuff as I go.

73 de N8VEM

journey2
April 28th, 2008, 04:49 PM
Hello, I found this web page, it might be useful. 3 PCB for $51.00

http://www.expresspcb.com/
Regards from mexico

NobodyIsHere
April 28th, 2008, 07:07 PM
Hello, I found this web page, it might be useful. 3 PCB for $51.00

http://www.expresspcb.com/
Regards from mexico

Hi,

That brings up a good point. Eventually we are going to have to think about manufacturing PCBs. The PCB size is 25.2 sq inches (160 mm x 100 mm). My thinking was to just make the bare bones prototype boards from 4pcb.com but they do not include the silkscreen. The PCB board size is going to put this out of the range of the really good deals for miniboards -- typically around 3" x 2" or so.

That'll probably be alright for my build, integrate and test but for some people it might cause problems. Buying in bulk is really the only way to drive the per unit price down to a reasonable level.

I'll check with the folks at 4pcb.com to see what they can do. If you could also check around for good deals, that would certainly help.

Thanks!

Andrew Lynch

Druid6900
April 28th, 2008, 09:22 PM
Most places that supply you with design software, like, for example, the one I use, make sure that it's proprietary and you can't output it to anything else. I tried importing Andrew's design into it, without success (you think they'd make that part easy)

Fortunately, the one I use is pretty damn good and the product they generate is of sufficient quality that I don't mind too much.

The de facto standard for places that don't hand out design software (and sometimes ones that do) are Gerber files. With them, you can pretty much shop around, but, some places that have their own software put a surcharge on them.

Doing a quick calculation on the expresspcb cost per board, based on their pricing scheme, for 10 - 25.2 sq in silk-screened, solder masked PCB (10 day turn-around), they come out to 26.59 each plus whatever shipping would be.

NobodyIsHere
April 29th, 2008, 03:47 AM
Hi Richard,

For some unknown reason, there is a enormous variety of EDA programs with many unique formats. KiCad supports Specctra PCB import and export plus its own unique PCB format. I have seen/heard of some scripts which allow possible importing from Eagle but nothing tangible yet. Definitely this is an area where the EDA software could improve and hopefully it will.

To me, $27 per board plus shipping doesn't sound to bad. However, that is for the lot of 10 right? This is where things get complicated. I think we can get the barebones PCBs even cheaper but they are prototype only PCBs without any silkscreens. That'll make assembly more difficult for some so I like the silkscreen idea. There was recently a mention of a PCB house on CCTALK that was pretty inexpensive:

http://www.pcbcart.com/cart.php

They looked fairly reasonable pricewise. I don't know what is the best approach however this all rather speculative ... I still need to build and test the first boards! According to the manufacturer I should be receiving the PCBs this Thursday and start the inspection and build up process.

Unfortunately the parts I ordered from Jameco put the remaining components I need on back order. If they don't ship by this weekend, I will go to the local surplus house to see what I can get. At $3.50 per gallon of gas, that seems like a wasted trip for some 1K resistors and 32 pin ZIF socket. At least it is fun to go there... :-)

I'll keep you posted on how it goes. Thanks!

Andrew Lynch

PS, the ZIF socket is not part of the intended "standard" configuration. I am adding it to the "development" board to allow easy swapping of EPROMs while I work out the software tweaks required for the new PCB design. My plan is to make one PCB with "development" features and the other "standard" features for comparison.

Druid6900
April 29th, 2008, 12:33 PM
The reason is simple. They all want to lock you in to buying the PCBs from the design software issuing company.

NobodyIsHere
May 1st, 2008, 07:31 PM
Hi All,

The PCBs arrived today and I spent tonight inspecting the boards. I started installing the sockets. Already I have seen a few things that need changing before the final PCB.

There are a couple of photos up on the website.

http://groups.google.com/group/n8vem

Thanks!

Andrew Lynch

DoctorPepper
May 2nd, 2008, 01:52 PM
Nice job Andrew!

I can't wait until you get one built, so we can see all of the flashing lights! :-)

NobodyIsHere
May 2nd, 2008, 06:23 PM
Nice job Andrew!

I can't wait until you get one built, so we can see all of the flashing lights! :-)

Hi, Thanks!

I uploaded another photo of my progress tonight. In short, things are going slowly since inspecting the PCB. I have made two major discoveries; first is that the ECB connector is mispositioned by about 50 mils or so. Second, and more importantly, I used the default clearance setting and that is really bad news.

The ECB connector problem is fairly easily fixed with a plain flat file. I can just trim off the extra PCB and the connector will work fine. Of course, it will have to be corrected in the final board spin and that is pretty easy too.

Worse though is that I did not think about the clearance requirement and used the KiCad/FreeRouting defaults... 6.5 mils. That is super tiny and it is making good soldering a real problem. In short, it means solder bridges are a constant threat since the traces are too close to each other and the pads. I am having to solder a pin in pad, then go around with the VOM and inspect each nearby trace or pad to ensure no inadvertent bridging.

I have found several bridges this way and will likely find more. This is a much tougher problem to fix since I went in to KiCad/FreeRouting to respin the board and it was marginal to autoroute with 6.5 mils and it is really struggling for a solution with 13 mil clearance. It is possible there is no solution for 13 mils and I may have to back off to 10 or so. That sucks but there may be no choice. I really don't want to reduce trace width to compensate since TTL chips need some current carrying capacity.

Ordering the first two boards for a trial build is turning out to be a really good idea, unfortunately. I was afraid of ordering boards for people only to have them discover a bunch of problems just like these. I have found there is no substitute for real hardware to find out this stuff. I reviewed the PCB design for weeks and printed it out on paper to compare to the components and these bugs still slipped through.

Anyhow, the fun continues and I'll keep you posted on how it goes.

Thanks!

Andrew Lynch

NobodyIsHere
May 3rd, 2008, 07:55 AM
Hi All,

Just a quick update on the PCB respin progress... I tried to change the minimum clearance to 13 mils and it seems like the autorouter could not find a solution. It reached a lower limit of about 80 connections it couldn't complete. Rather than spend a lot of time pursuing what might be a never attainable 13 mil solution, I backed off to 10 mils minimum clearance.

That is 50% better than the default but still not great. 20 mils minimum clearance would be much better but based on what I am seeing now it would require a new PCB layout and a much larger board -- probably twice the area of the EuroCard 160x100 mm format. That drives unit cost up so it is a balancing of cost versus ease of construction. Going with a 4 layer board would probably help too but it quadruples the unit cost so that is not practical either.

The 10 mil autoroute solution is running right now and it seems to be having difficulty getting below the 15-20 remaining open connections. It fixes one connection only to break others in the process. It has run all night and has done over 100 passes. I moved the autorouter job to another PC in the basement and will let it run for a day or two to see if it can solve. If so, this may be the way to go. However, the PCB is marginal to solve with the current FreeRouting.net autorouter, that much is for sure.

I am going to finish the build with the current prototype PCBs to see what other problems are lurking on it. Hopefully the basic circuit is still good but it is hard to tell if sneak circuit solder bridges are undermining it.

More as it develops! Thanks!

Andrew Lynch

PS, maybe someone experienced in these matters could offer some advice as to how to proceed? Grant?

Druid6900
May 3rd, 2008, 12:21 PM
On tight spaced PCBs, a pin-point solder tip is essential to prevent stray solder bridges and one doesn't need to use a lot of solder for the connection. Pretty points on the pins look nice, but, it's mostly a waste of solder.

NobodyIsHere
May 3rd, 2008, 01:12 PM
On tight spaced PCBs, a pin-point solder tip is essential to prevent stray solder bridges and one doesn't need to use a lot of solder for the connection. Pretty points on the pins look nice, but, it's mostly a waste of solder.

Hi Richard,
Yes, agree. I try to use as little solder as possible for that reason. I filed down the point of my soldering iron for better precision and have been "mopping up" afterwards with the solder wick to pick up any excess. Checking the pin and the nearby traces for bridges is helping catch them early but prevention through an adequately spaced design would be better still.

The 10 mil clearance PCB is in respin right now. It seems to have leveled off at the 10-12 remaining connections level. I will let it run for a few days and see if it can solve. It is just an experiment now though as further buiding has revealed some interferences near the power plug which will have to be addressed to.

C4 and the power LED are too close when the protruberances from the molex connector are present. They don't show up in the 3D model or in the hand placement I tried earlier. Oh well, that's why we prototype, right?

Well for some good news. I am mostly done with the build and am now in some checking out. I installed all the sockets and passives except for the 1K ohm resistors I have on order from Jameco. Those have been shipped so it will be a couple of days. I have at least that much in testing yet to do though so I am not too worried about stalling out waiting for parts.

I hooked up the reset circuit and it seems to be working fine. Also the power LED indicator is working. All the sockets seem to have the appropriate Vcc and Gnd connections. I built a serial cable. Also tested the CPU and UART clocks and they seem OK.

My wife took the camera so I will post some photos later. The board is really starting to take shape now that most all the components are in place and even some of the chips are installed.

Have a nice weekend! Thanks!

Andrew Lynch

NobodyIsHere
May 3rd, 2008, 06:00 PM
Hi Richard,
More good news for a change.

I almost finished the build and did some checking out. Things were looking pretty good so I started slowly adding ICs. I started with the blank 27C1001 ($FF) and it did what you'd expect. Then I tried again with completely full ($00) 27C1001 just for funsies and it did what you'd expect there too.

I was fairly sure the Z80 was booting and trying to running programs so I started writing some itty bitty Z80 assembler programs like those below. These little programs always help me out with plumbing out the data, address, and control lines. Since the Z80 was cooperating, it made things go smoothly. It also confirmed the basic infrastructure is largely intact.

.org $0
loop: JR loop
.end

and

.org $0
loop: JP loop
.end

The ROM chip select is working as is the IO select. As best I can tell the ROM and RAM configuration latches are working although I haven't fully tested them yet. At least they aren't getting in the way yet.

So, the next step was to run the scream program and that worked fine. I posted some photos to the webpage. The photos are of the new configuration of the PCB with additional components. Scream is running on the laptop and you can see the ASCII zeros being blasted across the serial line. I always love this part of computer building/fixing. Getting scream to work usually means things are on the uptick.

Next I will see if the typewriter program will work. Once that is working, all the pieces are in place for the RAMless monitor and that's were the real testing starts. I am not going to install the SRAM until the RAMless monitor is working and can wring out the board. Those chips are $20 a piece and I am not going to release the magic smoke out of one of them if I can avoid it.

:-)

I sort of had to hack the circuit to make it work. I am missing the 1k ohm pull up resistor on /INT so I just substituted a 2.2K ohm resistor literally just stuck in the PCB. I know that is not kosher but it works well enough until my Jameco order comes in. I don't know how well this PCB is going to withstand desoldering so I am hesitant to solder anything in temporarily. My guess is that the prototype boards are not all that great of quality and are not going to stand up to much abuse. Unlike those VG boards which you could desolder with a blow torch and use a pipe wrench and never harm it, these seem a lot more delicate.

I just checked on the respin of the 10 mil PCB. I am pretty sure it has bottomed out at about 12 connections. That means even 10 mils is too much clearance for the autorouter to successfully solve. In addition, at 10 mils the autorouter has gone bananas adding vias in order to try to solve. There must be hundreds on the board now. Probably 500-600 or so -- this is not good.

I will back off to 9 or 8 mils clearance and see if it can solve but that is hardly any different than the default 6.5 mils. It may be that this is just a known limitation of the design we'll have to accept in order to keep the PCB unit cost down. It can still be done with normal tools, that much I know since I just did it but it is a real PITA to work with. There is very little margin for error in building the board -- way less than I am comfortable with. I am going to speak with the autorouter author and see if there is anything he can do.

More later as it develops. Thanks!

Andrew Lynch

PS, I just ran typewriter and posted a couple more photos. With the serial IO routines working, next is the ROMless monitor and a more thorough check out. I'll save that for tomorrow. Things are looking up. At least the design is holding together.

Druid6900
May 3rd, 2008, 08:56 PM
Yes, Andrew, always stop and go to bed on a high note. Saves laying awake thinking about what the hell it might be LOL

The prototype boards I've used have been able to handle a fair amount of soldering/desoldering, but, I wouldn't hit the same component more that 5 times in its lifespan if at all possible.

Your board probably isn't any worse than some kits I've ended up putting together for people on which you can't see the board between the traces, so, I wouldn't worry too much, just caution them to sharpen up their soldering skill on some junk boards.

I'm lucky in that the software I use allows me to see the board with the component outlines so that things don't overlap and the 3D view is really helpful with that too.

Respins are inevitable even when working with simple boards (since they are usually smaller and the trace distance ends up being the same) and I don't recall ever having designed anything that didn't have a version 1.1 :)

NobodyIsHere
May 4th, 2008, 09:33 AM
Hi Richard,

Yes, you are right as usual! :-) Proper soldering is a vital skill no matter what you are making. I'd just like to keep the approach "doable" for your average dude with a cheap soldering iron. I just detest solder bridges and when a PCB is routed too tightly it makes an potentially enjoyable experience into a miserable one. Solder, wick, test, repeat, until I'm ready to scream.

On a good note, so far this morning I have gotten the RAMless monitor to work. After the usual buffoonery of writing serial IO routines which actually work... :-/ it is up and running nicely. However, I must have misremembered something because I could have swore it allowed direct IO port reads and writes but apparently it doesn't. Oh well, at least it can inspect memory.

The RAMless monitor is the HDM80 tool written by my good friend Dave Dunfield. He gets all the credit for this excellent hardware debugging tool. I use it all the time for fixing old machines and making new ones. It really is great stuff and Dave deserves all the kudos for it.

Also, I spoke with Alfons over at FreeRouting.net and he has an excellent idea on how to improve the minimum clearance on the PCB respin. I made a new version with his improvements and it is in the autorouter as we speak. I set the minimum clearance to 13 mils and we'll see how it works out. Alfons idea is to set the special clearance requirements *around the pins only* which makes total sense because that is where any builders would actually solder. Whether the traces themselves are only 6.5 mils apart makes no difference to the builder since you normally don't solder traces other than at where they connect to the pins. I know that patches using "cuts and jumpers" will invalidate the approach but we'll cross that bridge when we get there.

Best of luck and have a nice Sunday afternoon! Thanks!

Andrew Lynch

PS, since the RAMless monitor is installed and working, I put in the SRAM to check it out. It is working as best I can tell. Will post more photos later.

NobodyIsHere
May 4th, 2008, 05:40 PM
Hi All,
The build continues. Tonight I got the "third-e" program running which is my ROM based monitor. It is a nearly full up monitor and requires RAM to run. The good news is practically nothing needed to be changed to make it run. Also, I used it to verify the Memory Page Configuration Latches (MPCLs) are working properly. That is a key finding since those were major changes compared to the original Test Prototype computer. This should be the last program I need to get running and verified before starting on the CP/M version. It looks like the only changes needed are to increase the serial port speed to 9600 bps and also change the ROM_ENABLE IO port to its new home on the ROM MPCL.

Installed the 82C55 PPI and it seems to be working fine. Also the ECB buffer chips are in place and at least aren't interfering with anything. It won't be possible to fully test those until the backplane is done but things are looking up. I am considering plugging the new computer into the old handmade backplane and using the bus debugger I made earlier for some testing.

More later as it develops. Things are looking good. The big remaining projects are to get the CP/M rehosted, re-implement the RTC, and then work on the ECB bus connector.

Thanks!

Andrew Lynch

NobodyIsHere
May 6th, 2008, 03:54 AM
Hi All,

I didn't get a chance to work on the build last night due to family obligations. However, did get a chance to speak with Alfons over at FreeRouting.net and have come to some solutions for the respin of the new PCB with improved clearances. There is good news and bad news though.

The good news is I think we have an answer on getting the PCB to solve with improved trace clearance.

In order for the autorouter to successfully solve this PCB layout, it *must* be able to route traces between pins. The autorouter will never successfully solve the PCB without this constraint on trace clearance.

It turns out that the maximum clearance for *most* things on the PCB you can have based on their geometry is 13 mils. In addition, there are a small subset of connectors (P1, P3, and U20) which have slightly larger pins and will allow only a maximum clearance of 11 mils.

So I set up the clearance matrix with these new constraints and the PCB solves fairly quickly. The revised PCB is in the autorouter optimizer right now as it solved over night and is now in the process of shrinking the overall trace length and eliminating vias. I suspect it'll pay a penalty in of more overall vias to increase the clearance.

The bad news is that the trace clearance is as good as it can get with this configuration and software. For the most part, 13 mils is certainly "doable" if you are careful. Minimum clearance of 20 mils would be ideal but that isn't going to be happening with this PCB in its present configuration. Even the 6.5 mil clearance is possible but it is a PITA and tough to work with. Progress is slowed by constant inspection and test but it can be done. I think the 13 mil clearance for most components except for the 11 mil clearance on the three connectors is an acceptable compromise but in any case, it is the best I can do based on the physics.

My advice is that if anyone decides to pursue building this SBC is to do what Richard has already suggested; brush up on your soldering skills with old PCBs before starting. It is a good idea regardless.

The autorouter optimizer is running on an old computer in the basement now. It is about the same speed as the other computer it was running on but has the added benefit of being dedicated to the task and much fewer interruptions. On a side note, I was working on this last night and the video card decided to die just as I was working on it. Talk about frustrating! The basement machine is also a rarely used MythTV frontend only system so the video card is a special Nvidia PCI with S-video out. I have tons of old video cards so I swapped one in to replace the card and complete the autorouting but now the machine it is effectively unusable for MythTV -- its primary function. I ordered a couple of replacements on Ebay so it is no big deal but still what poor timing for the card to die! MURPHY!

More later as it develops. My goal for tonight is to get the CP/M ROM working. Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 7th, 2008, 04:18 AM
Hi All,

Well, yesterday was a pretty good day. The good news is that I got the CP/M EPROM converted and now the SBC boots into the RAM monitor and from there you can start CP/M. CP/M has two drives at the moment; a 32K ROM drive and a 448K RAM drive. You can transfer programs into the RAM drive by XMODEM (included in the ROM drive) or directly into memory by using the Intel Hex transfer function in the monitor. I haven't had much time to really shake out the system but with some limited testing, it seemed to be working. At least as well as I remembered it did.

The revised PCB is in the autorouter still as of 0545 this morning. It was stuck on a single remaining trace and I did not have time to fix it then. If it is still trying to figure it out when I get home from work tonight I will just manually route the last connection. It'll be ugly but the optimizer will eventually remove it once all the connections are made so it doesn't matter too much.

I did notice one really odd thing last night while rehosting the CP/M EPROM; some EPROMs work fine while other do not -- even those which erase, program, and verify just fine in the programmer. The CP/M EPROM actually contains many programs such as a loader, the RAM monitor, the CP/M image, XMODEM, and RTC utilities.

The original SBC design calls for 27C080 EPROMs but during the testing phase I have been using some plentiful and cheap ST 27C1001/27C010 EPROMs because they are nearly the same pinout and I'd rather not use the more expensive 27C080/27C800's while banging away rehosting the code. At first the EPROMs worked great but as I have been going along I have found some EPROMs read normally and work in the circuit but others -- programmed identically -- act as though they are not even there. It is a mystery to me. Most of these EPROMs are 150 ns access time which should be just fine for a 4MHz circuit. All it needs is a 250ns response time, right? The EPROMs are a mixed bag of vendors, some ST and some TI and probably some others. None of the TI chips work and only some of the ST chips work. There doesn't seem to be any rhyme or reason to which work either.

Is there someone who could shed some light on what is happening with the EPROMs? In the initial boot configuration, pins 1,2,3,30, and 31 are all in the LOW state in the default configuration the MPCL comes up in.

Thanks in advance! Have a nice day!

Andrew Lynch

PS, tonight is fix the PCB respin in the autorouter, investigate the EPROMs some more and then try to get the RTC working.

ziloo
May 7th, 2008, 06:03 AM
Hi All,

.....The good news is that I got the CP/M EPROM converted and now the SBC boots into the RAM monitor and from there you can start CP/M. CP/M has two drives at the moment; a 32K ROM drive and a 448K RAM drive. You can transfer programs into the RAM drive by XMODEM (included in the ROM drive) or directly into memory by using the Intel Hex transfer function in the monitor. ......

Hello Andrew,

Thank you so much for all the detailed descriptions. The above paragraph is the core of
your present design, and it would be very helpful if you would kindly explain what goes on
when you turn the circuit on. If you could provide a flowchart or something, it would be
even more educational.

Thank you very much

ziloo

MikeS
May 7th, 2008, 07:54 AM
Hi All,
... I got the CP/M EPROM converted and now the SBC boots into the RAM monitor and from there you can start CP/M. CP/M has two drives at the moment; a 32K ROM drive and a 448K RAM drive. You can transfer programs into the RAM drive by XMODEM (included in the ROM drive) or directly into memory by using the Intel Hex transfer function in the monitor ....
---
When you say RAM monitor I assume you mean a monitor in ROM that uses RAM, or?

Are images (or, even better, sources) for these ROMs available anywhere? Instructions for the monitor?

It looks like the IC sockets are very close to the board edge on one side; kinda close in case you're going to slide this board into card guides when you implement the bus?

m

NobodyIsHere
May 7th, 2008, 10:05 AM
Hello Andrew,

Thank you so much for all the detailed descriptions. The above paragraph is the core of
your present design, and it would be very helpful if you would kindly explain what goes on
when you turn the circuit on. If you could provide a flowchart or something, it would be
even more educational.

Thank you very much

ziloo

Hi,
Well, I can try to explain. Basically when the CPU is reset there are two MPCLs. One is attached to an EPROM and the other to a SRAM. The default memory configuration (ie, MPCL 74LS273 latches are both set to $00) there is a 32K ROM page at $0000 to $7FFF and a fixed 32K RAM page at $8000 to $FFFF. The upper RAM page is fixed and can never be changed. However the lower ROM page can be switch into any of 32 different ROM pages (1MB) or switched out entirely and replaced with one of 16 different RAM pages (512K).

When the CPU boots, it starts executing at $0000 as per every Z80. The first thing it does is "toss" the program it is running (aptly named "loader") into upper memory and transfers control to the newly installed "RAM monitor" running at $F800-$FFFF. The RAM monitor continues with the rest of the hardware initialization which includes switching out the lower ROM page and creating a full 64K of RAM. The RAM monitor gives several monitor like functions you'd expect like "display" "load intel hex format" "go" "fill" "substitute" and the like. The last command it has is the "c" command which is basically a CP/M boot loader. Press c and almost immediately a CP/M prompt appears with A: being a RO ROM drive (32K soon to be 996K) and B: RW RAM drive (448K).

The first 32K of the ROM is sneakily formatted as a 32K CP/M disk complete with boot tracks (where loader and dbgmon are stored). I forget the exact format right now but the ROM is divided up into 128 byte sectors, tracks of some size, and the whole thing is 32K long. When CP/M is running it mounts A: as the block device in the CBIOS and you can do all the normal disk functions except write. You can get a directory of the three programs I placed into the ROM image. If I recall correctly, they are gm (go monitor), RTC (real time clock) and XM (XMODEM). There are supposed to be a bunch more but since I have to hand code the directory entries into the ROM image I have only done those few programs.

Hopefully this helps explain how the TP boots. Maybe you could ask a more specific question if there is something else you'd like to know? This is intended to be a open and public project so the details are all out in the open. I will be posting the software on the website once I have some confidence it more or less works.

BTW all the software is assembled from source, including CP/M 2.2 using TASM301. It is a free (as in beer not as in speech) DOS based assembler. In keeping with the open and public and free themes I'd like to convert to development environment similar licensed to KiCad for the hardware assembly but just haven't gotten that far yet. Similarily I would like to transition to a free OS like ZCPR or whatever it is called. Somebody still retains the rights to CP/M but have made it available for usage.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 7th, 2008, 10:15 AM
---
When you say RAM monitor I assume you mean a monitor in ROM that uses RAM, or?

Are images (or, even better, sources) for these ROMs available anywhere? Instructions for the monitor?

It looks like the IC sockets are very close to the board edge on one side; kinda close in case you're going to slide this board into card guides when you implement the bus?

m

Hi Mike,
The RAM monitor is one that runs entirely in RAM, starting at $F800. It is stored in ROM and loaded into the high page as part of the boot process. Once the RAM monitor starts, it initializes the hardware and switches out the ROM page. Its actually called "dbgmon-e" but I call it the RAM monitor to distinguish it from the ROM monitor which used to run entirely in ROM. It is a similiar monitor of an earlier generation.

The ROM images are available on my workbench. :-) I will be publishing the sources of the assembler on the website along with links to the tools I am using. Basically you dont need the ROM images if you have access to a DOS PC since TASM301 generates the necessary binary image (ROMIMAGE.BIN) from the assembler sources.

Yeah, I realize those ICs are rather close to the edge and were moved as part of the current respin of the board. I also added two mounting holes near the connector end of the PCB to complement the two holes as part of the DIN 41612 ECB connector. In theory you don't need a ECB backplane and could mount the PCB by itself in a case using the mounting holes. Or so the theory goes. I have to get the PCB to respin first and that means solving this minimum clearance issue. When I checked this morning, I was one connection away from a routed PCB but am not quite there yet.

I have a schematic for the backplane but no plans for a case yet. I am a big fan of air cooled computing, lets say...

:-)

Thanks!

Andrew Lynch

ziloo
May 7th, 2008, 11:09 AM
Hello Andrew,



... The RAM monitor continues with the rest of the hardware initialization which includes switching out the lower ROM page and creating a full 64K of RAM.

What is the address range for this newly established 64k RAM?



...The last command it has is the "c" command which is basically a CP/M boot loader.



What address range the CP/M is residing on?





Press c and almost immediately a CP/M prompt appears with A: being a RO ROM drive (32K soon to be 996K) and B: RW RAM drive (448K).



How are these ROM and RAM units addressed? Z80 can only address 64K of memory and
how is the bank switching implemented? (Do I understand it correctly?)

Thank you

ziloo

NobodyIsHere
May 7th, 2008, 05:08 PM
Hello Andrew,



What is the address range for this newly established 64k RAM?



Hi! Excellent questions!

After the boot process is completed (ie, the RAM monitor is running) there is RAM at $0000 to $7FFF and at $8000 to $FFFF. CP/M theoretically has access to a full 64K of RAM, however, the TPA is somewhat less than that since it shares the RAM with CP/M itself and 2K for the RAM monitor.




What address range the CP/M is residing on?



CP/M loads at $D400 and uses up to $F2FF. CP/M is composed of three parts, the CCP, BDOS, and CBIOS. The CBIOS I wrote starts at the somewhere near the end but I don't remember the exact location. It is in the source. I seem to recall the TPA is 56K(?) or so. I don't remember the exact number but it is in the CP/M 2.2 source included.





How are these ROM and RAM units addressed? Z80 can only address 64K of memory and
how is the bank switching implemented? (Do I understand it correctly?)

Thank you

ziloo


The regular $0000-$FFFF memory map is accessed normally. The extended RAM and ROM are accessed by switching in the lower 32K memory page by writing to the various MPCLs. They appear as write only IO ports. I think they are $78 for the RAM MPCL and $7C for the ROM MPCL. Since they initialize to $00 upon reset, writing 1s to any of the latch bits cause address lines to be set high. The RAM MPCL has extended address lines (A15, A16, A17, A18) and the ROM MPCL has extended address lines (A15, A16, A17, A18, A19). The ROM MPCL also has a ROM_ENABLE line at bit 7. Note the address lines are local to the specific MPCL and its memory device. The CPU can only indirectly access the extended memory address lines via its MPCL.

All the hardware information is contained in the schematic and PCB layout on the N8VEM website. Soon I will be publishing a ZIP file of all the software and make files. It is all pretty crude stuff and DOS based for easy usage. It all probably needs a serious rewrite but the intent is/was to just show viable operation of the concept.

One curious artifact of the original design is that the RAM chip has its highest 32K page "pinned" to A15 by a 74LS32. Whenever the CPU sets the A15 high, all the SRAMs extended address lines (A15, A16, A17, A18) are forced high. That way there is a "permanent" 32K RAM memory reference for running programs which manipulate the memory map. The original design did not have this and I discovered the hard way that if you are going to change the memory map, the CPU needs a source of permanent context for reference. Otherwise context gets lost and the CPU goes into LA-LA-LAND.

:-)

Thank you and have a nice day!

Andrew Lynch

PS, I did finally get the PCB to autoroute. It never was able to finish the last connection so I did it manual with some really bizarre convoluted manual trace. My hope is that now the optimizer can start and will free up some space and in doing so re-route my screwy manual trace into something that looks halfway normal. I can see why it could not solve properly though, the last connection was a real bear to finish. What a mess that section of the PCB became with the newly improved clearance. The PCB is noticably "looser" and appears it will be MUCH easier to work with. At any rate, there is not much more I can do to it.

ziloo
May 7th, 2008, 10:46 PM
Hello Andrew,




...The first 32K of the ROM is sneakily formatted as a 32K CP/M disk complete with boot tracks (where loader and dbgmon are stored). I forget the exact format right now but the ROM is divided up into 128 byte sectors, tracks of some size, and the whole thing is 32K long...

Would you please explain more details about addressing the sectors and tracks? How are the information stored on these tracks/sectors: as linked lists, some kind of an allocation
table...etc?

Thank you

ziloo

NobodyIsHere
May 8th, 2008, 04:14 AM
Hello Andrew,



Would you please explain more details about addressing the sectors and tracks? How are the information stored on these tracks/sectors: as linked lists, some kind of an allocation
table...etc?

Thank you

ziloo

Hi!
OK, well really the real tracks and sector information is contained in the CBIOS design. It views the data contained in the ROM as a 32K block device "disk". The CBIOS has an algorithm which when you tell it load track 00, sector 00, it knows to go get the first 128 bytes of the ROM. Depending on what track/sector combination you request, it returns different 128 ROM memory regions as a sector. It really is a kind of neat trick.

The ROM itself does not contain any disk metadata like sector/track information like you'd find if you used a Catweasel to do a raw read of a soft sector floppy disk. It is more like a data-only disk image where the disk imaging program knows which data goes with which track/sector based on the data's relative position within the image file.

The ROM is formatted in such a way that the CBIOS can parse it out using its track/sector block device read (and write in the case of the RAM drive). You can literally see the 32K disk structure in the layout of the ROM. It follows the CP/M DPB values in the CBIOS. I think goes something like this...

each track is 4K long and is composed of 32 sectors each 128 bytes in length. Within the 32K ROM there are 8 tracks. Track 0 and 1 are reserved as "system" tracks to contain the loader, dbgmon, & CPM boot image. Starting on track 2 is the directory structure which is like four sectors long or something. Actual disk data starts someplace after the end of the directory and goes to the end of the 32K ROM.

There is a similar concept for the RAM disk but with a different set of DPB values. Eventually I will convert the 1M ROM into a format similar to the RAM drive and include an entire CP/M set of utilities and some development tools, applications and the like. Of course this is user customizable so anything can go in there but right now you have to format the ROM image by hand which is a real PITA.

One of the things I put on the "help needed" section of the N8VEM website is for some programming whiz to make a DOS program which given a set of files and a DPB, will create a formatted ROM image. The program would not be that hard to write (I think) but would require some fairly detailed knowledge of how CP/M disk layout and formatting. I am doing that by hand now but it would be highly useful for others to have a utility which could do this automatically. All the necessary technical information is available online in the CP/M documentation and I can help point out where if anyone is interested.

Thanks and have a nice day!

Andrew Lynch

PS, OK, here is a long note and it is going to ramble about as I have lots of random thoughts I'd like to write down. These aren't aimed at you specifically Ziloo, but just some general thoughts I have been mulling over.

First, last night I worked more on the RTC. It apparently works as is and without any software modifications. I seem to remember something changing during the design or maybe my original notes were unclear. In any event, when I compared the RTC software to the schematic it seemed to be accessing it correctly and when I tried it the software "just worked". The battery back up worked fine too. I misremembered misremembering? :-)

I think tonight I am going to clean up the software directory, make a ZIP file and post the whole mess on the N8VEM website. Yeah, the software is an awful stinky pile of something smelly but it seems to work at least somewhat and rather than wait until it is "perfect" (which will never happen) I'll just post it so people can review it and get a better idea of what this SBC is doing and why. Of course, a few bug reports and improvements would be nice...

The PCB respin is going along OK too. It is rather slow on the computer in the basement (2.6MHz Northwood celeron 400MHz FSB) and it hasn't finished its first pass of optimizing yet. The new layout took a major complexity hit in my attempts to improve the minimum clearance. It is just going to be a while before the optimizer can sort out the mess. I anticipate the via count will be somewhat higher than before, probably 150 or so is acceptable, due to the increased clearance margins. Really, the number of vias is hardly noticeable anyway but the improved clearance is *VERY* important to any future builders.

Regarding making the PCB available to other hobbyists; my plan is that when this PCB comes out of the optimizer is to order a batch of boards and sell them for $20 a piece + shipping to recover the costs. I may offer a 27C1001 EPROM option if its needed. Since there is no practical way for people to order these themselves directly (my preferred method... no middle man and you are on your own) direct ordering appears impractical based on the PCB manufacturers I have spoken with.

All the PCB information is all publically available so there is nothing stopping someone from just taking the Gerber files and ordering a PCB for themselves. Due to the low volume the unit cost will be rather expensive. However, you can do it and I did it for the initial two prototypes. It costs me $80 with shipping for the two initial proofing units.

There is nothing special about the $20 per unit figure, it is just what seems like a reasonable price to me and gives me some flexibility to find a good source of manufacturing. Besides, $20 is a nice round number everyone can identify with. Keeping the price fixed dramatically reduces the overhead of managing a group buy which ties the unit cost to the number of boards sold. My goal is only to cover my costs for the order and if by some miracle there are any funds left over at the end, I will put those towards either another SBC PCB order or for a PCB order of the ECB backplane, bus debug board, or disk IO board.

Using a fixed price method, I can just order a batch of PCBs and dole them out as people's orders come in and avoid the charging people in advance for an undetermined unit cost. I just don't see a practical method of organizing a "unit cost tied to group volume buy" scheme that doesn't rely on some complicated goat rope procedure I don't have time or patience to manage. In addition, complex ordering schemes are notorious for collapsing under the weight of their own excessive details. I have found adding money to any situation makes people wierd in my experience so I'd like to keep it all as simple as possible.

Please remember this is all in the open discussion/planning/thinking out loud phase right now. I am *NOT* ready to take any orders yet. The PCB has to survive the optimizer and final check out still before I place any my order. Even then, it will be at least a couple of weeks turn around so I would expect it will be another 3 weeks (optimistically) before I am ready to accept any orders.

One final note and it is a doozy. Although I have done everything I can think of to reduce the risk of this project for other hobbyists, the initial group who purchase PCBs will be taking on some inherent risk. It is inevitable. Since my initial PCB order, I have had to change the design to account for errors and anomalies. These new boards will be much improved but essentially untried new boards. While I am confident the design is essentially intact, until the first hobbyist other than me builds their first board, no one knows for certain what will happen. Caveat Emptor and all that jazz. There is inherent risk in any project like this and there are *NO* guarrantees or assurances this will work. Please keep that in mind *before* ordering a PCB.

Thoughts? Thanks and have a nice day!

Andrew Lynch

ziloo
May 8th, 2008, 10:58 AM
Hail great Andrew!




CP/M loads at $D400 and uses up to $F2FF.


This is about 8k of program code; where is the rest of CP/M?




The CP/M EPROM actually contains many programs such as a loader,
the RAM monitor, the CP/M image, XMODEM, and RTC utilities....

...You can transfer programs into the RAM drive by XMODEM (included in the ROM drive)


1- Is "loader" part of ROM monitor or a separate program.
2- Are both ROM monitor and CP/M on the same EPROM?
3- Is ROM drive the same as CP/M EPROM?




...the CP/M rehosted...


What does "rehosted" mean?

Hope you don't mind me for being so inquisitive Andrew, but the core of your SBC design is
the address range for all different pieces of programs that are working together.
Assembly language programs, specially when not commented, are pain to read and
comprehend. It would be highly valuable for your great work to take time and explain in
more details as to what goes on in your circuit, and place it on your site.

Keep up your great work!

ziloo

NobodyIsHere
May 8th, 2008, 11:47 AM
Hail great Andrew!



This is about 8k of program code; where is the rest of CP/M?




Hi!

great? Well, I wouldn't go that far... Wait until you see the source code ;-) I am sure you'll come up with some other adjectives.

Yes, I seem to recall the TPA is 53K in length for some reason. 2K is used for the RAM BIOS. CCP and BDOS uses 5.5K, if I recall correctly. I think the CBIOS and disk buffers use up the remainder. The CBIOS supports an IDE interface as well which chews up quite a bit of RAM and also requires a 512 byte deblocking buffer someplace up in high RAM.

The IDE interface is on the Test Prototype machine I built last year. The IDE portion works great. It could easily be converted to a CF drive with an adapter, I think. I used a small 1.2GB IDE hard disk but it really only used like three 8MB partitions.

Later I built a floppy disk interface onto the card but it had issues with grounding and I ran out of time to work on it. It was completed but I never got a chance to test the software for it even though it was largely already written. I still have all the schematics and intend to incorporate them into the disk IO board later on. I will probably have to design out an obsolete part (SMC FDC9229 data separator) that has become unobtainium and replace it with a SMC FDC9216 or UM8326. That is an other story for a different day though.

I think I bought a broken NorthStar Horizon about then and became obsessed with fixing it and ended up putting the home brew computer "on hold" until that passed. I fixed the Horizon and it is a great machine but now I am finally ready to return to finish this home brew computer.

One of the reasons I transferred the design to manufactured PCBs is to fix the root problem of the grounding on the Test Prototype. Since it used prototype boards with point to point wiring, after a few generations, it began to resemble a ball of wire that you could occasionally glimpse a component in. It was rather difficult to work on. The new PCBs are MUCH nicer to assemble!






1- Is "loader" part of ROM monitor or a separate program.



From a source perspective, the loader is its own program. As a binary, it is combined into the same ROMIMAGE.BIN as the RAM monitor and the CPM boot image. The latter two programs are just data fields loader transfers to their appropriate places in memory. Loaders last job task is to jump to the coldstart vector on the RAM monitor, who in turn swaps out the ROM and loader disappears from the CPU address space entirely. You can boot CP/M from the RAM monitor if desired. Or not. Frankly, I find the RAM monitor just as useful as CP/M is for the most part. I split my time between the two.




2- Are both ROM monitor and CP/M on the same EPROM?



Yes, the RAM monitor and CP/M boot image are in the ROMIMAGE.BIN stored in the first 8K of the 32K ROM page. The CP/M boot image is only the CCP+BDOS+CBIOS. The rest of the CP/M transient utilities are stored on one of the IDE hard disk partitions. My plan is to move them and some other stuff onto the ROM drive once it expands from 32K to 992K.




3- Is ROM drive the same as CP/M EPROM?




Yes. The ROM drive (A:) is just like a floppy disk. It currently is the first 32K of the EPROM -- which used to be a 32Kx8 28C256 EEPROM but is now a 1Mx8 27C080 or 128Kx8 27C1001 EPROM. The first two tracks are reserved for system tracks which contains the loader, RAM monitor, and CP/M boot image. The remaining 6 tracks (24K) are reserved for programs like GM.COM, RTC.COM, and XM.COM.

I'll post the files tonight in the ZIP file and when you inspect the make files and the resulting ROMIMAGE.BIN, it will be more apparent how the system is structured. It really is pretty simple structure but neat how it all works out.





What does "rehosted" mean?



"rehosted" means I modified the source code so that the "new" versions run on the new hardware and reflects the updated designs. Basically two main software components had to be changed to reflect the new design has RAM and ROM MPCLs compared to the previous generation which had only a single MPCL. The RAM monitor hardware initialization routine and the CP/M CBIOS had to be modified. I haven't located any other necessary changes although it would not surprise me if there were some others lurking someplace.




Hope you don't mind me for being so inquisitive Andrew, but the core of your SBC design is
the address range for all different pieces of programs that are working together.
Assembly language programs, specially when not commented, are pain to read and
comprehend. It would be highly valuable for your great work to take time and explain in
more details as to what goes on in your circuit, and place it on your site.

Keep up your great work!

ziloo

Hey, I don't mind at all. I rather enjoy discussing it although when I try to explain it I realize how convoluted this all must seem now. The machine has gone through several design iterations and there are vestigal artifacts left over from different phases along the way. It is a bit of a hodge podge of ideas and experiments.

Wait until you see the commented source code! Warning, have some aspirin and a glass of water nearby when trying to read it as it is basically my stream of consciousness writing style with a bunch of random quotes and chunks and pieces from all over thrown in. :-) It is an awful mess but it is clear enough to modify over a year later when I changed it to run the dual MPCL configuration. Fortunately it comes with a neat little make file thing to automate building it on DOS machines.

Crappy documentation beats no documentation everytime! It surely could use a good clean up editing though. Maybe one of these days I'll get around to it...

I find it helps to have a copy of the schematic nearby when reading the source code. For some reason, they seem to go together well and things will make a lot more sense when looking at both back and forth.

Thanks and have a nice day!

Andrew Lynch

ziloo
May 8th, 2008, 12:55 PM
Hello Andrew,




...requires a 512 byte deblocking buffer someplace up in high RAM.



The first time I read about "blocking and deblocking", I thought blocking means
to stop/prevent!!! I don't know whether this terminology was coined by Gary Kildall or it
was someone else's idea. As I understand, blocking means "arranging blocks of data" and
deblocking means "removing blocks of data" (or was I right the first time?!?!). Would you
please give a more detailed explanation as to was goes on in that buffer...

Thank you

ziloo

NobodyIsHere
May 8th, 2008, 01:26 PM
Hi!

Yes, "deblocking" in the context of a CP/M CBIOS is an algorithm that converts whatever disk format sector size to the one that CP/M expects to use, namely 8" floppy disk with 128 byte sectors. When the CBIOS "deblocks" what it does is take the minimum sector size block from the native device, say an IDE hard disk minimum which its sector size is 512 bytes, and converts it into one to four 128 byte sectors usable by CP/M natively.

The CBIOS I wrote implements a crude deblocker for the IDE interface. Basically it is just one for one mapper and it horrifically inefficient. However, it does work reliably as far I could tell and the IDE harddisk is way faster than the Z80 can handle anyway. The more sophisticated CP/M deblocking algorithms were able to deblock and retain the sector information in a sort of tiny disk RAM cache for subsequent reads.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 9th, 2008, 04:13 AM
Hi All,

Last night I trimmed the PCB so the DIN 41612 ECB connector now fits. Also prepared the parallel port connector. Tonight I solder them in and that should complete the build phase for the first prototype SBC. Overall, it has gone pretty well and better than I expected.

The software has been bundled up and placed on the website for your review. All it really needs is to be unzipped into your TASM301 directory and it should build with the buildTP2.bat file. If not, please let me know. Probably the adjustments will be trivial though. It is not exactly the same configuration as mine as I tried to make it more general and remove the specific directories from the batch file. The rest is the same.

Respinning the new PCB is proving to be a bit more complicated. I replaced the video card in the machine in the basement with a new NVIDIA card I got from Ebay. That really has no effect on the optimiser running but at least I can stand to watch the screen. The temporary fix video card used 1024 x 768 *interlaced* mode. It was flickering terribly! It was truly awful and a trip back to the "bad old days" of early SVGA graphics. Ugh, how did we even stand that stuff? In addition, the PCB optimizer runs really slowly on the machine. It is a 2.6GHz Northwood Celeron (P4 class) with 400MHz FSB and 128K cache running Linux and the Sun Java package.

I think what I am going to do is check out Ebay to see if I can get a replacement CPU for this machine. I'll bet a 3.0 or 3.2 GHz P4 with 1MB cache would at least double the optimizers speed. At the rate this is going, even after shipping a new CPU would reduce the time this thing needs.

Please let me know if anyone has questions. I'll do my best to answer them or find someone who can. Thanks and have a nice day!

Andrew Lynch

ziloo
May 9th, 2008, 10:12 AM
Hello Andrew,




... ENTIRELY IN 8080 MNEUMONICS (SO ASM CAN BE USED)
; BUT ASSUMES A Z80! ....


1- I see a mixture of ASM programs in both 8080 and Z80 instruction sets in your
ZIP file. Would you please explain about this?

2- I have heard so much about IOBYTE in CP/M; would you please give an explanation
about what it is all about...

Thank you

ziloo

NobodyIsHere
May 9th, 2008, 11:06 AM
Hello Andrew,



1- I see a mixture of ASM programs in both 8080 and Z80 instruction sets in your
ZIP file. Would you please explain about this?

2- I have heard so much about IOBYTE in CP/M; would you please give an explanation
about what it is all about...

Thank you

ziloo

Hi!

Uhhh. Yeah. Not one of my proudest moments, that's for sure. :-)

Actually, it is an artifact of trying to convert the entire code base to allow compiling on the Test Prototype target itself using the standard CP/M toolset (ASM). I tried to restrict myself to just the 8080 mnemonics but occasionally a Z80 op code was necessary for some reason or other. In those cases, I basically forced the assembler to put in the proper op code even if it didn't recognize the mnemonic. The exact technique is one I learned from Allison. For example:

LDIR1: .DB $ED,$B0 ; Z80 "LDIR" INSTRUCTION (REMOVE)

Of course, there is no 8080 equivalent to LDIR and I needed it for some block transfers in loader-a and the CBIOS. I suppose I should just convert it all back to Z80 and just accept the Z80 as a requirement but "true" CP/M portable applications are written using only the 8080 instructions. There are a few exceptions to the rule.

My goal was to remove all the Z80 peculiar instructions and have "pure" 8080 only instructions but that got to be increasingly difficult and when other problems developed, I pushed the project to the back burner. There are 8080 only equivalent subroutines and macros to help Z80 -> 8080 conversion and some of those are in the source, I think.

Some files in the ZIP file are all Z80 mnemonic and others are 8080. You can tell which is which by reading the buildTP2.bat file and which TASM commands require -85 (for intel 8085) and those for -80 (for zilog Z80).

My hope for publicly posting the Test Prototype project online, warts and all, is to keep the information from being lost entirely. It is possible that when/if people start making these SBCs for themselves that some of this code will get better testing and maybe even cleaned up a bit. Certainly there are many hours of work needed.

Regarding the IOBYTE; in essence that is a tool where the CP/M CBIOS allows some IO abstraction and redirection. The IOBYTE allows switching between CP/M devices such as CON:, PUN:, LST:, PRN:, etc with minimumal impact to the CBIOS. The Andrew Laird "Programmer's Guide to CP/M" does a great job explaining what and how this works. It was my intention to support IOBYTE in the CBIOS but again, it got sidetracked. My CBIOS does not support IOBYTE in its present form.

You'll find there are a great many rabbit trails to follow in the source code. Some actually go someplace and others just trail off into the weeds. Like I said, the test prototype software surely isn't the prettiest thing you'll ever read but it more or less works.

You remembered to have your aspirin and glass of water ready before you started reading it, right? :-)

Thanks and have a nice day!

Andrew Lynch

PS, Check out the silliness in the dbgmon-e source. It was originally for an SBC-200 and "adapted" for new use on the Test Prototype. It is rather ghastly and even includes boot code for FDC1793 disk controller. The only problem with that is the actual disk IO board uses the NEC765 FDC. :-)

Originally, I was going to use a WD2797 FDC chip but later changed my mind. I even have a WD2797 still sitting here just waiting for a PCB to put it in.

ziloo
May 9th, 2008, 12:04 PM
Hi Andrew,

Do I understand correctly then that:

1- TASM takes the 8080/8085 code and assembles it into a form that is
executable on a Z80 CPU?

2- Probably most vintage computers with Z80 CPU were using CP/M versions
written entirely for 8080 CPU?

ziloo

NobodyIsHere
May 9th, 2008, 03:33 PM
Hi Andrew,

Do I understand correctly then that:

1- TASM takes the 8080/8085 code and assembles it into a form that is
executable on a Z80 CPU?

2- Probably most vintage computers with Z80 CPU were using CP/M versions
written entirely for 8080 CPU?

ziloo

Hi!

Yes, TASM is a Table Assembler and is able to cross assemble for many targets including 8080, 8085, and Z80. Not that TASM can translate assembler mnemonics between CPUs though but the Z80 and 8085 have backwards compatible opcodes with the 8080 so it sort of appears like it.

The Zilog Z80 is opcode compatible with 8080. Zilog published a new set of assembler mnemonics for Z80 very different than the Intel 8080 mnemonics but the resulting machine language is a backwards compatible superset of the Intel 8080 opcodes.

The confusion arrises because Zilog came up with a new mnemonic format which was improved over the much older Intel mnemonic format. A lot of assemblers support one or the other and sometimes both. TASM supports both Intel and Zilog mnemonics and has rather conveniently facilitates my bad habit of switching randomly between the formats.

The Intel 8085 is essentially the same as the 8080 except for a couple of new instructions (not supported on Z80) and uses identical mnemonics.

CP/M was originally written on an 8080 and all the documentation are Intel 8080 specific. I believe all the CP/M tools are in Intel mnemonic format as well. The 8085 and Z80 both run 8080 opcodes and are both far more common CPUs. As a result most CP/M machines are not 8080 but use the Z80or 8085 instead. I am pretty sure the majority of CP/M computers are Z80 though.

There are some CP/M applications which use Z80 specific opcodes like Borland Turbo Pascal but they are very few. I cannot think of another example of Z80 dependent CP/M code except for possibly some CBIOS versions.

Here is great site to sort through the wreckage of old CBIOSs. I have gotten some really great ideas sifting through these:

http://www.speakeasy.org/~rzh/bb.html

Actually there are not all that many 8080 machines left due to their early technology and unusual voltage requirements. The Z80 machines are far more common. Intel 8085 is also very popular but more so in industrial embedded applications than in microcomputer because the chip set is specially designed for easy integration and low part count. You can run CP/M on 8085's but they are a less common than Z80 regarding microcomputers.

If you are considering designing your own SBC you should consider using the 8085 as the CPU since it is possible to make very low chip count machines with them. I hope this helps explain things. Feel free to ask if there is anything I can better explain.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 9th, 2008, 04:51 PM
Hi All,
Things are going well tonight so far. I just finished up the build on the SBC and everything is installed and seems 100% operational. I did some testing with the RTC and that seems to work fine. Did some testing with XMODEM 5.0 and that works OK too. XMODEM seemed like the toughest application I had so if it is working then I think things are going well. I still need to use the oscilloscope to see what signals are appearing on the ECB bus connector but as best I can tell they should be OK.

In addition, the whole minimum clearance issue has somewhat lessened in my mind. At first when I saw the tiny 6.5 mil clearances I almost panicked considering how difficult I thought they'd be to get right. However, after a complete first time build with zero learning curve on this board, I only saw maybe 3 or 4 possible solder bridges during the entire build. Those were obvious and with a little solder wick and some rather normal VOM testing, it really doesn't seem to be much of a problem.

Considering how relatively easy it was to get this far without major problems, I am starting to think I may have overreacted to the narrow clearances. Oh well, the next PCB will have about twice the clearance so I think this problem has turned out to be basically a non problem. That's my favorite kind. :-)

OK, so as soon as this PCB finishes the optimizer, I will be ordering some boards. The manufacturer says something like 15 days turn around plus shipping. My guess is that is like 3-4 weeks or so total.

Thanks and have a nice weekend!

Andrew Lynch

ziloo
May 10th, 2008, 04:00 AM
Hello,




... CP/M loads at $D400 and uses up to $F2FF...

... I seem to recall the TPA is 53K in length for some reason. 2K is used for the RAM BIOS. CCP and BDOS uses 5.5K, if I recall correctly. I think the CBIOS and disk buffers use up the remainder. The CBIOS supports an IDE interface as well which chews up quite a bit of RAM and also requires a 512 byte deblocking buffer someplace up in high RAM...


1- Is CBIOS included in the $D400-$F2FF address interval?

1- How much memory is available for an application program?

2- Is there any unported portion of CP/M still left in the EPROM?

Thank you

ziloo

NobodyIsHere
May 10th, 2008, 05:08 AM
Hello,



1- Is CBIOS included in the $D400-$F2FF address interval?



Hi!

Yes, the CP/M boot image includes CCP+BDOS+CBIOS. The loader copies a memory image range of $1EFF in length (a little bit less than 8K) although the actual length of the CP/M binary boot image is somewhat less than that. CCP+BDOS are 5.5K and the remainder is the CBIOS.




1- How much memory is available for an application program?



I am not certain but I think it is 53K. After a quick review of the CPM22-d.asm code, I believe transient program area (TPA) = (MEM -7) * 1K where MEM = 60 in this case. For the most part, that is sufficient. I have found CP/M TPA 48K or greater to be pretty usable.

In theory, I could boost MEM to 62 but it'd cost the RAM monitor and since I use both about the same amount, I'd rather keep it. Also the CBIOS could probably be rewritten to be lot tighter code which would shrink it some too. However, more likely is that the CBIOS will grow not shrink since I do intend to add support for an FDC eventually which will further shrink the TPA probably another 1K or so.

Now this design is largely out in the public, there is nothing stopping anyone from creating their own ROM images and custom CBIOSs. In fact, I rather encourage it. I will speak with my friend to see if he can add support for the N8VEM hardware into a simulator. It should be fairly easy as there are only 5 simple IO devices.





2- Is there any unported portion of CP/M still left in the EPROM?



No, it is all converted as best I can tell. The rest of CP/M ia/are transient programs which are identical for all CP/M distributions. Those include STAT, ASM, DUMP, PIP, LOAD, etc. Those are currently stored on an IDE HD partition which I haven't attached yet but will be in the not too distant future. However, if anyone wants to use them now, they can boot the computer, start CP/M and use XMODEM to transfer the files to the RAM drive where they'll reside as long as power is applied.






Thank you

ziloo

Thank you! Have a nice weekend!

Andrew Lynch

ziloo
May 10th, 2008, 07:34 AM
Hello Andrew,

1- Please explain in more details about communication between
Dandy board ;) and something like Hyperterminal.

2- Can you download a file from a PC to Dandy board?

3- If so, which software is responsible for communication: Ram Monitor
or Xmodem?

p.s. How do you like the nickname for your board ...:D


ziloo :biggrin: (I actually smile like this guy!!)

NobodyIsHere
May 10th, 2008, 10:52 AM
Hello Andrew,

1- Please explain in more details about communication between
Dandy board ;) and something like Hyperterminal.



Hi!

Yes, I use Hyperterminal to communicate with the SBC over the serial port. There is a custom serial cable required and I suppose I need to publish the plans for it as well. I'll do that. Funny you should ask about Hyperterminal though as I have been working on the serial connection. Up until today, the SBC used 3 wire serial connection with no flow control at all. That is really not my preferrred approach but I never could figure out how to make hardware flow control work properly.

So this morning I got out the RS-232 serial break out box and the pin outs for the PC serial port and the 16C550 datasheet. I think I have fixed the problem so now the SBC appears to be using hardware flow control. Still, I need to verify it is working. The custom serial cable is pretty easy to make and when I confirm it is working I will post how to make it.





2- Can you download a file from a PC to Dandy board?



Yes, you can use XMODEM to send and receive files from the SBC.



3- If so, which software is responsible for communication: Ram Monitor
or Xmodem?



You can use either to transfer a file from a PC to the SBC. Using XMODEM is probably easier or you can use the Intel Hex transfer utility in the RAM monitor. To send a file from the SBC to the PC just use the XMODEM or text capture.




p.s. How do you like the nickname for your board ...:D




Whatever does it for you! :-)





ziloo :biggrin: (I actually smile like this guy!!)




Thanks and have a nice weekend!

Andrew Lynch

ziloo
May 10th, 2008, 12:06 PM
Hello Andrew,

1-Upon starting the SBC, under which supervisory program does the Dandy board
eventually end up...the Monitor or CP/M?

2- How do you transfer operation from one to the other?

3- Xmodem is a whole separate program, and CP/M is not aware of its presence;
because Xmodem is the communicating program for CP/M, it could not be called in
by CP/M like some other utility programs on the HD/FD/RamDrive. So it is kind of a
CBIOS extention...Do I understand this correctly?

ziloo

Druid6900
May 10th, 2008, 12:22 PM
I prefer da' Andy Board, personally.

NobodyIsHere
May 10th, 2008, 12:35 PM
Hello Andrew,

1-Upon starting the SBC, under which supervisory program does the Dandy board
eventually end up...the Monitor or CP/M?



Hi!

After pressing the RESET button and waiting a few seconds, the SBC comes up in the RAM monitor mode. You can boot into CP/M by pressing the "c" key and waiting another few seconds. It is not instantaneous because the initialization routines clear all the RAM to a known state and format the RAM drive which takes a few seconds. It is quiet though...






2- How do you transfer operation from one to the other?



From the RAM monitor to CP/M, press "c" to boot CP/M

From CP/M to the RAM monitor, type the "gm" command for "go monitor".

You can switch in between the two quite easily.





3- Xmodem is a whole separate program, and CP/M is not aware of its presence;
because Xmodem is the communicating program for CP/M, it could not be called in
by CP/M like some other utility programs on the HD/FD/RamDrive. So it is kind of a
CBIOS extention...Do I understand this correctly?

ziloo


Well ... not quite. XMODEM is a CP/M program in its own right although it does have its own unique CONIN, CONST, and CONOUT routines instead of using the ones provided by the BDOS or CBIOS.

You call up the XMODEM program by typing "xm" at the CP/M prompt. It is just like any other CP/M program for the most part. It uses BDOS routines for its file access for instance. The RTC also uses some BDOS routines. I suppose they could be stand alone programs but why rewrite all those file IO routines when CP/M provides them so nicely?


Thanks and have a nice weekend!

Andrew Lynch

PS, it is beautiful outside today so I am going to go mow the lawn!

NobodyIsHere
May 10th, 2008, 12:35 PM
I prefer da' Andy Board, personally.

:-)

Thanks!

Andrew Lynch

ziloo
May 10th, 2008, 01:19 PM
Hello Andrew,

Accoring to buildTP2.bat file:
Xmodem is assembled and linked to CP/M and few other programs to
create a binary file to be downloaded as Rom image.

Was it possible that Xmodem could have been treated like any transient program
that could be loaded by CP/M into Ram, but for now it is manually linked to the CP/M
program. If so, then the "XM" command has been manually added to CP/M (in the absence
of an storage device for Xmodem program)?

ziloo

NobodyIsHere
May 10th, 2008, 04:29 PM
Hello Andrew,

Accoring to buildTP2.bat file:
Xmodem is assembled and linked to CP/M and few other programs to
create a binary file to be downloaded as Rom image.

Was it possible that Xmodem could have been treated like any transient program
that could be loaded by CP/M into Ram, but for now it is manually linked to the CP/M
program. If so, then the "XM" command has been manually added to CP/M (in the absence
of an storage device for Xmodem program)?

ziloo

Hi!
Oh, I think I see the misconception here... XMODEM is not linked to the CP/M boot image. It is a transient program like RTC and GM or any other CP/M transient program. XM is in the same ROMIMAGE binary because the ROMIMAGE is basically just like a miniature disk image. They are together like various programs would be on a regular disk but XM is not linked to CP/M. It is written in pure assembler and only called into RAM when the CCP requests it. It does use BDOS calls but so does almost every CP/M program.

You'll notice that the loader, dbgmon, and CPM boot image are all on the first five 2K system tracks which are $0000 - $27FF (10K) in the ROMIMAGE. The CP/M directory sectors are at $2800-$2BFF (1K) and the programs themselves are stored in the data sectors $2C00-$7FFF (21K).

I have been testing XMODEM as part of my attempts to get a documented serial cable. I think I have a working prototype cable that works with hardware handshaking. One thing I have noticed is that the new PCB seems a lot more solid and reliable than the previous prototype board version. It used to be that XM was rather flaky but now it seems rock solid. I can load XM in to RAM, run it, pull data files from the PC and back again without the slightest hiccup or even a retry. That is quite different than before. I've been doing the transfers with large ZIP files as they are easy to detect if there is file corruption being introduced.

Thanks and let me know if this helps explain how this all works. Just try to think of ROMIMAGE.BIN as a miniature disk image, not an executable. Really the only thing in ROMIMAGE.BIN which actually executes in place is the loader. Everything else is just so much data -- just like on a floppy disk. Not until the OS pulls the data into RAM does it become real executables.

Have a nice day! I am going for a run while the sun is still out!

Andrew Lynch

ziloo
May 11th, 2008, 03:46 AM
Hello Andrew,



...the programs themselves are stored in the data sectors $2C00-$7FF...

Now, what is the use for the higher EPROM address range, namely $8000-$FFFF?



You can get a directory of the three programs I placed into the ROM image. If I recall
correctly, they are gm (go monitor), RTC (real time clock) and XM (XMODEM). There are
supposed to be a bunch more but since I have to hand code the directory entries into
the ROM image I have only done those few programs.

Would you please explain about "hand coding"...

ziloo

NobodyIsHere
May 11th, 2008, 06:06 AM
Hello Andrew,



Now, what is the use for the higher EPROM address range, namely $8000-$FFFF?



Hi!

In its current implementation, the ROM drive is only a single 32K page so there is nothing in outside the first page (ROM page 0, $0000-$7FFF). It is an artifact from the original design that used a 28C256 EEPROM (32K). However when I get the CBIOS updated with the new design, the ROM drive will have 32 32K pages for 1MB total capacity from the 27C080 EPROM.

From a CPU perspective, the ROM only appears as $0000-$7FFF in its lower memory page window. The ROM never appears in $8000 or above. The MPCL set the upper address lines so that you can see one of the 32 32K "windows" into the ROMs address space.




Would you please explain about "hand coding"...

ziloo

Yes, the "hand coding" is literally typing in the characters for directory entries manually. If you'll look in the ROMFRMT.ASM file you'll see the data entries of the three CP/M transient programs. Making manual entries is pretty labor intensive compared to just letting CP/M BDOS do it automatically for you. If you want to add a program, ROMFRMT.ASM has to be updated as well where ever the data image would reside in the ROMIMAGE.BIN.

Thanks! Have a nice Sunday!

Andrew Lynch

ziloo
May 11th, 2008, 12:00 PM
Hello Andrew,

I have really enjoyed our "Socrates dialogues" ... :argue:
You might have noticed that this thread has had hundreds of readers over the past
few days, so there must be great interest in learning about SBCs running CP/M.
Now, why not getting into more details:




... the "hand coding" is literally typing in the characters for directory entries manually. If you'll look in the ROMFRMT.ASM file you'll see the data entries of the three CP/M transient programs...






org $2800
.db $00,"GM COM",$00,$00,$00,$01
.db $01,$00,$00,$00,$00,$00,$00,$00
.db $00,$00,$00,$00,$00,$00,$00,$00
.db $00,"RTC COM"...



Would you please go over the entries and explain what they are all about...:winking:

Thank you

ziloo

NobodyIsHere
May 11th, 2008, 01:58 PM
Hello Andrew,

I have really enjoyed our "Socrates dialogues" ... :argue:
You might have noticed that this thread has had hundreds of readers over the past
few days, so there must be great interest in learning about SBCs running CP/M.
Now, why not getting into more details:





Would you please go over the entries and explain what they are all about...:winking:

Thank you

ziloo


Hi! Sure, no problem. I am glad you enjoy it and I look forward to helping you and others as much as I can. All I did with the ROMFRMT.ASM program is what BDOS normally does when it creates a file in the block device. Each file has a 32 byte entry with various pieces of metadata such as user, filename, the number of records, number of extents, where the file is on the disk, etc. CP/M has a very straight forward file system so doing this is much easier than it may sound. Here is a link with a good explanation although there are more detailed explanations in the CP/M documentation. I think the CP/M Alteration Guide is pretty good and the Andrew Johnson-Laird book "CP/M Programmer's Guide" has an excellent description.

http://www.geocities.com/homeofoscarvermeulen/cpm.html?200811#Directory

Please bear in mind though, I am not a CP/M guru or even an expert on vintage computers or electronics. I am but a child student at the feet of the real masters. Allison, Chuck, Mike, Howard, Dave, et al, have probably forgotten more about CP/M and vintage computers than I'll ever know.

One of the benefits of building your own computer from scratch is it forces you to learn the practical aspects of those theoretical concepts of computing you probably learned in college. I know I have and that is why this hobby has paid for itself many times over for me. I can only recommend diving in and building something. In my engineering day job, we tend to focus on the more business aspects of things, however, I am expected to keep technically current and there is nothing better than grabbing the hot tip of a soldering iron to remind you which is the business end...

At any rate, things are going well today. I contacted my friend who is a simulator expert and he has a preliminary version of the N8VEM coded up in a popular computer simulator. I tried a pre-release version already and it works so well I was able to code up a revised CBIOS to support the 1MB ROM as the F: drive without ever touching the SBC itself. Now I can run the simulator and do all the programming on the nice PC in a comfortable chair. When I am satisfied it is working, take the resulting ROMIMAGE.BIN on a floppy disk downstairs, burn an EPROM, plunk it into the SBC and presto! instant working program.

Normally debugging the CBIOS on target hardware can be a chore but now it is a breeze. I updated the CBIOS and now the F: drive contains the CP/M transient programs. I am going to upload a new set of N8VEM software tonight. Once I get clearance from my friend to release the simulator, I will do that as well assuming he will release it. I am pretty confident he will but just in case, I will hold off until he gives explicit permission to publish.

Soon you'll probably be able to take the N8VEM SBC out for a test drive on your PC to see how it works for you. Literally its "try before you buy" to see how the system works before investing in the PCB or the parts needed to build it.

Which brings up another point, it is way off topic but please let me digress; if you had a nearly empty 1MB ROM disk on a SBC what sort of programs would you put on it? My thinking was the basic CP/M transient programs would be cool. Now that those are there though I recognise that takes up practically no space at all. Of the 992K available, the CP/M transient programs only take up about 56K leaving 926K available for other programs. Got any ideas? Probably a good start would be a utility tool set with a decent editor. ED is *not* your friend. ;-)

Thanks and have a nice day!

Andrew Lynch

PS, I forgot to mention that today is the first time I tested the actual 27C080 EPROMs with the SBC design. They work as expected but I was surprised how l o n g they take to program and verify. I am finding I am really partial to the 27C1001 128Kx8 EPROMs instead. They are cheap, plentiful, practically disposable, and program quickly, MUCH quicker than the 27C080s do. I may hold off on the 1MB EPROMs until the very end as they are PITA to work with. Ah, the joy of discovery. :-/

NobodyIsHere
May 11th, 2008, 05:29 PM
Hi All,

OK, more good news this weekend!

First, the PCB is continuing to grind its way through the autorouter and optimizer. The first pass took several *days* to complete and was painfully slow on the basement computer. I have ordered a replacement CPU for the unit, a Prescott 3.2 GHz P4 with 1M cache and 800 MHz FSB, to replace the rather lame Northwood 2.6 GHz Celeron with 128K cache and 400 MHz FSB.

It appears the first pass cleared away some of the debris that was choking the optimizer as the second pass appears to be progressing *much* better. This PCB never did complete the autorouter so it may have been beyond a marginal case; I manually routed the last connection when the autorouter went into an endless loop. It may take some time for the optimizer to clean the PCB up enough for it to have any real effect.

Second, I just received authorization from the author to release the new N8VEM (aka, da' Andy, dandy, etc) SBC simulator! It is implemented in the SIMH and hopefully will be part of the mainstream release eventually. The fileset can be found on the N8VEM website. It is easy to start and use but I recommend reading the SIMH documentation included to get a better feel for how it works.

You can use the ROMIMAGE.BIN included which is the latest N8VEM software. It includes an updated CBIOS with 1MB ROM drive (F:) support. You'll find the complete CP/M distribution on the F: drive. If you think of any handy utilities which should be included, please let me know. Plain vanilla CP/M applications are preferred, especially small ones (ie, all files small enough to fit in TPA). File transfers are *much* easier than they were but are still a manual process.

Thanks and have a good week! Be careful out there! Please let me know if you have any questions or would like further explanations.

Andrew Lynch

ziloo
May 12th, 2008, 02:07 AM
Hello Andrew....I am Baaaaack! :biggrin:



...If you think of any handy utilities which should be included, please let me know...

One thing that comes into mind, although on the hardware side, is to implement a
single-step feature with 7-segment and/or LEDs indicating Address vs. Data information.
This feature can be added to the existing Dandy board, or it could be an add-on board
connected to the ECB extension.




...I am not a CP/M guru or even an expert on vintage computers or electronics. I am but a child student at the feet of the real masters...

...And you have done a monumental job of relaying your knowledge to all your friends.
Having sat through some of the discussion sessions on comp.os.cpm and noticed
the snobbish attitude of some of the contributors there, I...for one...am very thankful of
all your efforts.

Regarding my curiosity about ROMIMAGE.BIN file, I noticed that there are rows after rows of
$0 zerrrros there that reminded me so much of "my own bank account"!! :violin:
I guess it hit a nerve in me or something...:happy7:


ziloo

NobodyIsHere
May 12th, 2008, 03:37 AM
Hello Andrew....I am Baaaaack! :biggrin:



Hi! Good Morning. How are you today? I hope all is well.




One thing that comes into mind, although on the hardware side, is to implement a
single-step feature with 7-segment and/or LEDs indicating Address vs. Data information.
This feature can be added to the existing Dandy board, or it could be an add-on board
connected to the ECB extension.



Thank you for asking that question. Fortunately, I have an answer for it. I built such a ECB board for the original Test Prototype computer. It is the bus debugger board. It requires the ECB backplane to work though. So my plan is to get the SBC done first, then order the ECB backplane (the design is pretty much already done for it), and then design the bus debugger board.

The current implementation of the bus debugger provides LEDs for all the address, data, and control and has a PPI for verification of IO port working. It has about 40 LEDs on it as I recall. My plan is to add a single step mode and reset circuit to it as well.

I found that device amazingly handy on the previous computer system.





...And you have done a monumental job of relaying your knowledge to all your friends.
Having sat through some of the discussion sessions on comp.os.cpm and noticed
the snobbish attitude of some of the contributors there, I...for one...am very thankful of
all your efforts.



I am very happy it is useful to people.





Regarding my curiosity about ROMIMAGE.BIN file, I noticed that there are rows after rows of
$0 zerrrros there that reminded me so much of "my own bank account"!! :violin:
I guess it hit a nerve in me or something...:happy7:



ziloo

Yes, that is correct. Most of the 1MB ROMIMAGE.BIN is empty. It is just waiting for some worthwhile information to add to the F: drive and essential utilities for the A: drive as well. I still have to hand code the tiny utilities into the A: ROM drive. I was thinking I would add the IDE drive format utility and maybe a utility to get at the NVRAM in the DS1302. There is no hurry right now though.

My top priority is to get the revised PCB out of the autorouter. It is still grinding along. Who knows how long it is going to require but it sure is taking its sweet time about optimising. It made some progress overnight but not much.

As for the bank account, I think we can all appreciate that feeling from some time or another... :-) My goal is to keep the cost as low as possible and just offer the PCB. The rest of the parts can be obtained in many ways to keep costs down. My recommendation is to raid the junk box first, then obsolete/junk PCs and/or scrap electronic equipment. I suspect an enterprising person could recover most if not all the parts necessary from scrap recovery of a few PC boards. All of the components were selected with that idea in mind. I admit the 512Kx8 SRAM will be a little more difficult.

On that note, if someone has a spare 128Kx8 SRAM 32 pin DIP chip I could borrow for testing, I could verify that a smaller, less expensive SRAM chip could be used. I do not have any but I do have some from some 128Kx8 SRAMs old 486 motherboards (got them as salvage from a scrapper) in the 32 pin "narrow" 0.3" format but they won't fit into the socket.

Have a nice day and thank you very much for your interest!

Andrew Lynch

NobodyIsHere
May 13th, 2008, 03:23 AM
Hi All,

The PCB is still in respin grinding away. Who knows how long this is going to take but with the current CPU (the Celeron) it is still taking more than 2 days per pass. I suspect there are several to go. Hopefully the new CPU when it arrives will speed things up. Of course, the PCB is so heavily constrained with all the improved clearances that it may not be able to have many more effective optimizer passes.

Last night I used the new SIMH simulator and updated the RTC.COM code to allow full functionality. The previous code had been mostly "proof of concept" in that it allowed you to set a time but only a specific time hard coded into the program. Now it allows you to enter whatever time and date you'd like. Using the simulator to write and debug programs is very nice. You can get a good idea as to how well the program will work and then upload it easily to the SBC using XMODEM and run from RAM drive. Quick and easy. If the program is working and worth keeping permanently, you can use the SIMH simulator to make an updated ROM image.

Having a EPROM programmer is not absolutely essential but I recommend one for any potential owners. Although the ROM socket is designed for the 27C080 many chips will likely work in the 32 pin socket. How many and which will just have to be discovered as the system is built.

Thanks and have a nice day!

Andrew Lynch

PS, just quick update from yesterday... I finished updating the RTC program so now it supports full functionality to initialize, set, display, etc the TOD. Also added a function to allow arbitrary reads and writes to any DS1302 memory register. This allows full working access to the DS1302 NVRAM. The SBC supports 31 bytes of NVRAM for retaining configuration data as needed but so far other than basic access to the NVRAM and the contents there are no applications which actually use the capability.

Regarding the PCB respin on my basement computer, after a week or so of trying and only accomplishing 2 full passes, I decided the approach had some sort of major flaw and shut it down. The initial autorouting on that machine resulted in 298 vias at the beginning and had reduced it to 255 or so. The PCB had serious problems but I am not sure what is causing it. Instead, I am restarting the job upstairs on the main PC. As of this morning it had completed a full pass and about 1/3 of another when interrupted it to save its work. Since that PCB was the version Alfons had helped me with previously, the PCB started with only 187 vias and after its crunching overnight was down to 167. My plan is to just continue with this approach since the PCBs both have the same clearance specs. After the improved CPU is installed on the downstairs PC I may try again with that machine but right now it is just not practical. It would likely take *months* at the rate it was going.

NobodyIsHere
May 15th, 2008, 04:09 AM
Hi,
Things are going much better than I anticipated on the respin of the new PCB on the upstairs PC. As of this morning, the autorouter / optimizer has reduced the PCB to 119 vias and overall trace length to about 57.4 inches. It may shrink those down even further but I'd am thrilled to even see these levels of reduction.

This particular PCB has really limited the impact of the increased clearances. Only adding ~20 vias and 2 inches of overall trace length would be a small price to pay for the increased trace clearances. I am very encouraged. All that is needed now is for the optimizer to finally converge on a minimal solution and then I can start the PCB ordering process. Who knows how long the optimizer still needs but I suspect at least a couple of days.

The N8VEM software is done for now as best I can tell. The CBIOS has been updated to support the new MPCL hardware and also the 1MB ROM drive. The RTC software now supports full functionality. The basic CP/M transient commands are loaded into the F: drive and there is lots of room left for expansion, if and when that is desired. My preference is to keep the initial release of the ROM image minimal and let people discover on their own what they'd like to include. I believe there should be many ROM images created depending on what people choose to do with their SBCs. There is plenty of room on the N8VEM website for a library of ROMs.

Thanks and have a nice day!

Andrew Lynch

Sharkonwheels
May 15th, 2008, 06:25 PM
AJ - just found these:

Linkage (http://cgi.ebay.com/IC-CHIPS-M5M51008AP-10L-200-PCS_W0QQitemZ140233450926QQihZ004QQcategoryZ4663QQ tcZphotoQQssPageNameZWDVWQQrdZ1QQcmdZViewItem)

Mitsubishi 100ns 128kb x 8 CMOS Static RAM.


T

NobodyIsHere
May 16th, 2008, 04:03 AM
AJ - just found these:

Linkage (http://cgi.ebay.com/IC-CHIPS-M5M51008AP-10L-200-PCS_W0QQitemZ140233450926QQihZ004QQcategoryZ4663QQ tcZphotoQQssPageNameZWDVWQQrdZ1QQcmdZViewItem)

Mitsubishi 100ns 128kb x 8 CMOS Static RAM.


T

Thanks Tony,
I will check those out when I get home from work.

PCB respin update: I thought the optimizer had "bottomed out" and was near a solution last night but it decided to surprise me and eliminated some more vias overnight. It seems it still can squeeze this PCB down some more so it is still grinding away. However, I think we are closer to a solution. The current PCB has 115 vias and about 57 inches of total trace length. That is pretty darn good and with the new clearances will make for a nice looking and easy to build SBC PCB.

As soon as the optimizer finishes, I will run the design checks and the freeDFM tools on the PCB and set up an order. More later as it develops.

Thanks!

Andrew Lynch

PS, OK I looked into the chips. They'd probably work but 200 pcs is more than I am willing to buy. At most, I suspect there is a market for only a dozen or so PCBs.

Does anyone have one or two 128Kx8 32 pin 0.60 wide SRAM chips I can try out with the SBC for compatibility testing? I will return them when done.

NobodyIsHere
May 16th, 2008, 08:40 AM
Hi,

Does anyone have any recommendations for some simple utilities to add to the CP/M transient program files stored on the F: (1MB ROM) drive? I would like to keep the ROM drive "lean and mean" but supply some minimal level of useful programs for new builders.

If you have any recommendations for what to add, please let me know. I am looking for highly compact programs perferably in a single file or maybe two.

My ideas so far are:

1. VDE -- a tiny screen based text editor

2. TinyBASIC or something similar

Of course, CP/M provides ASM for serious programming but BASIC can be useful for some applications.

I think there is a decent small FORTH available for CP/M too but I haven't done anything with FORTH in many years.

What other sorts of utilities would people like to see included?

Thanks in advance!

Andrew Lynch

ziloo
May 16th, 2008, 10:47 AM
Although this is a small system, would a Diagnostics utility be useful? :confused1:

ziloo

NobodyIsHere
May 16th, 2008, 11:21 AM
Hi!

Well, diagnostics would be useful but usually those are platform dependent pieces of software. Unfortunately there is no diagnostics software for this SBC until someone writes it. Some functionality similar to that is contained in the RAM Monitor hardware initialization. The monitor initializes the RAM, PPI, and UART and checks them out during initialization. As for the rest of verifying the system works, well that's what an oscilloscope is for... :-)

My intent was more general purpose CP/M software applications or tools. If no one has any ideas, I think I'll probably add the VDE and some form of BASIC and call it good enough. There is no hurry to decide since once the optimizer finishes and I place the order it is still probably close to 3 weeks until the PCBs are available.

Thanks!

Andrew Lynch

journey2
May 16th, 2008, 07:08 PM
Hi,

Does anyone have any recommendations for some simple utilities to add to the CP/M transient program files stored on the F: (1MB ROM) drive? I would like to keep the ROM drive "lean and mean" but supply some minimal level of useful programs for new builders.

If you have any recommendations for what to add, please let me know. I am looking for highly compact programs perferably in a single file or maybe two.

My ideas so far are:

1. VDE -- a tiny screen based text editor

2. TinyBASIC or something similar

Of course, CP/M provides ASM for serious programming but BASIC can be useful for some applications.

I think there is a decent small FORTH available for CP/M too but I haven't done anything with FORTH in many years.

What other sorts of utilities would people like to see included?

Thanks in advance!

Andrew Lynch
Hello,
I am not sure but, isnt some kind of basic already included in the CP/PM version 2.2 ?
http://www.schorn.ch/cpm/intro.html
I think is a very good idea to include BASIC in your design!.
Regards from mexico!

NobodyIsHere
May 16th, 2008, 08:44 PM
Hi!

CP/M does not include any BASIC in the default distribution, AFAIK. However, practically every computer shipped with CP/M included a form of BASIC.

I tried getting the VDE to work in the simulator tonight but no luck. Obviously the VDE program is running but it has some weird terminal or memory mapped video display. The screen was completely nonsense. I will have to investigate further about what sort of terminal emulation is needed to work with VDE. There has to be some simple full screen editors out there for CP/M though. Any ideas?

Next I'll try to find a nice compatible BASIC. It may be better to just let people discover their own best tools and hopefully share their discoveries here or on the N8VEM website. There is no telling what people are going to like and not. BASIC does seem like a logical choice to me. It is so easy to make simple programs, it is hard to beat plain old BASIC for quick programs.

Thanks and have a nice weekend!

Andrew Lynch

MikeS
May 17th, 2008, 12:30 AM
As you'll recall, VEDIT was just discussed on comp.os.cpm; is it suitable? Al has posted the manual IIRC.

And there ought to be a few versions of BASIC around; MBASIC? Tiny?

m

mookie
May 17th, 2008, 11:17 AM
Firstly a thanks for starting this project. I'm hoping this'll be my first SBC completed succesfully.

On the subject of a BASIC, I'd like to add my two pence and put forward a vote for this version of BBC BASIC 4

http://www.bbcbasic.co.uk/bbcbasic/bbccpm.zip

Cheers
John

NobodyIsHere
May 19th, 2008, 04:26 AM
Hi,

I managed to get VDE working in SIMH so that seems to be OK. Also copied the BBCBASIC program binary and it seems to work too. It is fairly easy to update the ROMIMAGE.BIN so this should not be a problem.

On Sunday the autorouter/optimizer crashed and I lost a days worth of crunching. I restarted it on Sunday morning and let it run all day and night. The good news is the PCB is now down to 107 vias and 578" of overall trace length. I have no idea when this thing is going to finish. I thought it was almost done but who knows?

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 20th, 2008, 03:59 PM
Hi,

The autorouter & optimizer finally completed. I did some final checks and ordered the first batch of PCBs. The manufacturer has 15 days turn around time plus shipping. I expect the PCBs will arrive in about 3 weeks give or take a couple days.

In order to prevent any of the bad stuff that has occurred on other similar projects, I am buying all the boards myself and will not accept any orders prior to the boards physically arriving. I may also do a checkout to verify they are good prior to sale. The PCBs will be $20 a piece plus shipping.

If you'd like to see the PCBs, here are some results from the pre-order checkout process

https://www.freedfm.com/freedfm/0011697402017052/results/plots.htm

https://www.freedfm.com/freedfm/0011697402017052/results/summary2.htm

Let me know if you have any questions. Thanks!

Andrew Lynch

NobodyIsHere
May 22nd, 2008, 04:49 AM
Hi All,

I just received an email from the PCB manufacturer and they are estimating a delivery date of 5 June 2008 which is right in line with the prior estimates. They have accepted the design and it appears everything is in order for the PCBs. I guess we'll see how it turns out. :-)

If you are considering building one of these SBCs, now would be a good time to start gathering your parts as you have about three weeks to before the PCBs are available.

Your workbench junkbox is the obvious first place to look and then see what is available from scrap PC boards and other electronic junk. I selected the parts for the SBC based largely on their being very common and available in old junk equipment.

Probably there will be some components you'll need to order because few people are going to have everything already. The most likely candidates will be the SRAM, EPROM, and DIN 41612 connectors.

Another good thing to have, although not *absolutely* required but something you'll definitely want, is an EPROM programmer and also an EPROM eraser. My guess is that most people into repair/restoration of vintage computers and home brew computing will already have these devices. Both are available very cheaply from many sources. I have had good luck getting low cost devices from Ebay or mcumall.com. There are several programmer kits online as well. These are not endorsements but as examples illustrate the availability of EPROM programmers:

http://www.mikeg2.freeserve.co.uk/eprom/ (27C801 programmer & eraser)

http://www.mcumall.com/comersus/store/comersus_viewItem.asp?idProduct=3081

There are numerous other examples and alternatives but the key point is whatever approach you select be sure that the programmer supports *32 PIN* devices. The SBC in theory is capable of supporting a wide variety of 32 pin devices. Probably a 512K Flash ROM would work but it hasn't been tested yet.

If anyone has any questions, please feel free to ask. The best time to find out these things is before you commit to your project!

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 22nd, 2008, 03:19 PM
Hi All,
Speaking of lower cost memories...

I was digging around in my junkbox and found a CAT28F512 64Kx8 Flash ROM. It is 32 pin compatible so I programmed it with a binary image and sure enough, it worked.

Almost certainly, nearly any 32 pin memory device is going to work in either the SRAM or EPROM socket. The cool thing about the CAT28F512 is that it is reprogrammable with a FLASH programmer (more simple and even cheaper than an EPROM programmer) and does not require an eraser to work with it. I'll bet the AT29Fxxxx part Grant mentioned earlier would work as well. The only exception I have found is the 27C010 due to a difference in the pin out during the read operation.

In theory, the CAT28F512 or any 32 pin FLASH device it is capable of in-circuit reprogramming. I suspect with careful manipulation of the ROM MPCL software could be written to update the FLASH ROM while installed. The problems still are 1) how do you start the update cycle with a blank part and 2) what about accidental overwrites. The latter issue is lessened with recent parts having overwrite protection modes but the former is a real "chicken and egg" scenario. Only if you have a programmer you can start from scratch with a blank part, AFAIK.

I have made fairly good progress in reducing the cost of the ROM which was never very expensive to begin with. Its the SRAM that is causing all the grief cost wise. Even the 128Kx8 parts are $10+ at Jameco.

What we really need is a shim board to allow those nasty 0.3" DIP 28 pin 32Kx8 SRAMs salvaged from dead 486 motherboards. I have many of those but no way to use them. They are practically free if you scrounge around long enough. I have some of more rare 0.3" DIP 32 pin 128Kx8 SRAMs but can't use them either since they are that obscure narrow DIP format.

Making a $20 PCB to salvage cheap SRAMs to replace a $20 SRAM makes no sense to me at all. A PCB respin to use cheap SRAMs is a non-starter as well. Any thoughts on the subject?

Thanks!

Andrew Lynch

PS, nevermind about the EPROM/FLASH issue. I just checked on Ebay for how much a cheap EPROM programmer costs (EEPROM/FLASH/EPROM/etc) and they are like $20 + shipping. Apparently, I have fallen behind the times. The bottom has fallen out on the price of the Willem Programmers since the last time I checked. For example:

http://search.ebay.com/search/search.dll?sofocus=bs&sbrftog=1&catref=C6&from=R40&satitle=willem+programmer&sacat=-1%26catref%3DC6&sargn=-1%26saslc%3D2&sadis=200&fpos=45429&sabfmts=1&ftrt=1&ftrv=1&saprclo=&saprchi=&fsop=34%26fsoo%3D1&coaction=compare&copagenum=1&coentrypage=search

Now that still doesn't help with the SRAM cost problem but the EPROM programmer should be almost a non-issue at those prices.

PPS, OK curiousity got the best of me so I started searching Ebay for some low cost SRAM chips. I found the following and ordered a couple just to see if they'd work:

http://cgi.ebay.com/1-x-HITACHI-HM628128BLP-7-628128-128K-X-8-SRAM-DIP32_W0QQitemZ350060307543QQihZ022QQcategoryZ4663 QQssPageNameZWDVWQQrdZ1QQcmdZViewItem

If these work out, it should reduce the cost of the SRAMs significantly. Basically, a 128Kx8 SRAM would cost less than $9 shipped. A volume purchase would drive that down even further. I have to watch how much I am spending on this project myself so I'll leave that for someone else to organize.

NobodyIsHere
May 22nd, 2008, 04:09 PM
Firstly a thanks for starting this project. I'm hoping this'll be my first SBC completed succesfully.

On the subject of a BASIC, I'd like to add my two pence and put forward a vote for this version of BBC BASIC 4

http://www.bbcbasic.co.uk/bbcbasic/bbccpm.zip

Cheers
John

Hi John,
I meant to say Thanks! for the idea. I downloaded it and it worked first try. At least it started and responded to simple commands. I suspect it works pretty well.

Thanks!

Andrew Lynch

mookie
May 24th, 2008, 05:26 PM
No worries. Whilst I'm just making the foray into DIY computers, it's nice to know I'll still be able to use a familiar language. Look forward to the boards being ready.

ziloo
May 25th, 2008, 12:40 PM
Hello Andrew,

Would you please take your time (????) and explain a bit more about
addressing on your Dandy board?

1- Signals such as CS_CFG, and CFG...
2- Logic to ensure upper Ram is always enabled

Thank you

ziloo

NobodyIsHere
May 26th, 2008, 06:54 AM
Hello Andrew,

Would you please take your time (????) and explain a bit more about
addressing on your Dandy board?

1- Signals such as CS_CFG, and CFG...
2- Logic to ensure upper Ram is always enabled

Thank you

ziloo

Hi! Sure no problem.

The signals with the CS_ prefix are used for IO decoding and stands for Chip Select. There is some IO address decode logic which detects when the CPU is requesting the onboard IO devices. Specifically, any time the CPU is requesting IO (/IORQ low) and the address on the lower 8 bits of the address bus are in the $60-7F range.

When those conditions are met, the 74LS139 demultiplexer narrows it down further into specifically what IO device is being requested. It generates "Chip Select" signals for the 8255 PPI if the address is $60-$67, the 16550 UART for $68-$6F, the RTC for $70-77, and the MPCLs for $78-7F. The "Chip Select" signal is normally high but when the CPU wants to connect to a specific IO device, it pulls the devices "Chip Select" pin low to force the device out of "tristate mode" and actively on to the buses. Each of the CS_* lines go to the chip select pins on the various IO devices.

The normal state for IO devices when not being specifically accessed is to be in tristate mode. They are physically connected but all the inputs are in a very high impedance state so they act like they are not present in the circuit.

Regarding the logic to ensure the Upper RAM is always selected is something different and relates only to memory mapping. One thing I found during the design phase is the CPU has to have some region of memory which is essentially permanent so it can retain its own context.

There are two memory pages, the lower 32K and the upper 32K, and the lower 32K page is switchable. As a result, the 74LS32at U15 ensures the upper 32K page ALWAYS goes to the same region of the 512K SRAM (A15, A16, A17, A18 all high). No matter what the CPU does to the MPCLs to reconfigure memory, it is ensured that the program actually making the changes (assuming it is in the upper 32K RAM page) is always present in the address space. It may seem silly but you'd be surprised at how easy it is for a CPU to manipulate memory and suddenly it loses all context and crashes.

After reviewing the schematic, I noticed the terminology I used during the hardware phase is not the same as what I described during the software phase. I'll update the schematic to make sure it is more consistent with the terms used in the software source code. It is confusing when I use two different terms to refer to the same item.

Thanks and have a nice day!

Andrew Lynch

ziloo
May 27th, 2008, 11:55 AM
Hello Andrew,

Would you please explain about "ECB data flow direction control"?
How does it switch direction?

Thank you

ziloo

NobodyIsHere
May 27th, 2008, 05:00 PM
Hello Andrew,

Would you please explain about "ECB data flow direction control"?
How does it switch direction?

Thank you

ziloo

Hi,

The ECB bus control is in two parts; the address/control lines and the data lines. I'll explain the address/control lines first since those are easier.

The address/control lines are "export only" from the SBC perspective virtually all the time. In other words, the address/control lines are repeated from inside the SBC onto the ECB but not vice versa. The only exception to that is when something on the bus asserts bus control by lowering the /BUSRQ line. In that case, the CPU goes into BUSRQ mode and the ECB places the address/control lines into the SBC. Again, this is a pretty rare scenario but it is possible and the SBC supports it if and when a "bus mastering" peripheral is ever made. Possibly another CPU card could do this.

The SBC data lines are "import and export" depending on the situation. Normally, the SBC exports the data lines onto the ECB and does not import them. There is two exceptions though; first is the /BUSRQ being pulled low by a yet undesigned peripheral which is pretty rare, and more likely is the SBC CPU has made a IO request READ (/IORQ goes low and /RD is low) AND the IO address is outside of the internal SBC IO range ($60-$7F). In other words, the CPU is requesting to IO reads to IO address EXTERNAL to the SBC.

In all cases, it is fairly rare for the SBC to be pulling information (address, control, or data) in from the ECB. Normally, it just transmits the internal CPU bus onto the ECB for peripherals to observe and act on.

Now you may have noticed one peculiarity about this implementation of the ECB. The SBC supports CPU MEMORY WRITES (/MERQ low and /WR low) onto the ECB but it does NOT support CPU MEMORY READS from memory on the ECB. The address, control, and data lines are all there to perform the task but the SBC internal bus control logic is limited for the sake of simplicity. Also, the 1M ROM and 512K RAM is likely sufficient for actual real memory for a relatively simple CP/M or monitor based system. More than that would probably go to a secondary store like a disk drive.

If and when there is ever a next generation SBC, I will probably change the bus control logic to allow CPU MEMORY READS across the ECB. The modification would require changes to the RAM/ROM memory selection logic to allow RAM disabling in order to leave the lower 32K page fully deselected (ie, nothing is there at all, no internal RAM nor ROM) so the ECB peripheral memory would have a "hole" in the CPU address space to exist in. Also, the bus control logic would be changed to allow changing the data bus direction flow in to the SBC from the ECB whenever the SBC requests a memory write from the lower 32K memory page AND the lower 32K memory page has been disabled.

Probably, I could have made those modifications in the initial design but I put them off to lower the risk down on this SBC design. I had strayed off my prototype already in a few areas and I wanted to make sure the PCB version was fairly close to prototype to increase the likelihood it would work. PCB respins are expensive in terms of time and money so risk introduced by "feature creep" is highly undesirable.

In practical terms, having an IO only ECB is not a limitation for all the peripherals I would like to make. Virtually all of the Z80 style peripherals communicate via a IO ports. Even the "pipe dream" video cards (SY6545 and TMS9918) use IO ports only. What would be more difficult to implement would be ECB memory expansion (RAM/ROM) or memory mapped peripherals like a 6845 VDU. However, even those are possible by just using IO ports and latches to simulate the memory accesses. In other words, we are a LONG WAYS away from ever encountering this theoretical limitation and if and when it ever does get realized, there are relatively simple fixes to either get around it or resolve it as needed.

Hopefully this helps explain the SBC ECB bus design a little better. Please let me know if you have any questions. Thanks and have a nice day!

Andrew Lynch

ziloo
May 29th, 2008, 10:46 AM
Hail great Andrew,

1- what is the role of A1 and A2 in extended Ram/Rom
addressing and why?

2- Who/What is taking care of stack manipulation when in
extended addressing mode?

ziloo

MikeS
May 29th, 2008, 12:49 PM
OK, now I'm confused; aren't the SY6545 and the MC6845 more or less the same? Why would one be I/O driven and the other memory mapped? And wouldn't you pretty well need to share the display memory anyway unless you're going to run a sort-of internal terminal?

And BTW: I can deduce what it does, but what does MPCL stand for?

I've still got some 4MHz Z80s in case anybody wants any.

mike

NobodyIsHere
May 29th, 2008, 02:47 PM
Hi Mike,

Yes the SY6545 and MC6845 are very similar but the SY6545 is a later and improved part. It has the IO port addressable video RAM feature the MC6845 lacks. The MC6845 requires some memory mapped interface to change the contents of the video RAM but the SY6545 has a provision to access the entire chip and all video RAM via IO port commands. It is very much nicer for Z80/8080 style CPUs to use the chip. Kaypro 10's and some other systems use SY6545 for this very reason. The MC6845 is great for Motorola/Mostek style CPUs with dual phase clocks but a PITA for everyone else.

MPCL = Memory Page Configuration Latch. Thanks and have an nice day!

Andrew Lynch

NobodyIsHere
May 29th, 2008, 03:01 PM
Hail great Andrew,

1- what is the role of A1 and A2 in extended Ram/Rom
addressing and why?

2- Who/What is taking care of stack manipulation when in
extended addressing mode?

ziloo

Hi! The A1 and A2 are used in the IO decoding of the RAM or ROM MPCLs. Remember, Z80 circuits and peripheral chips are all active low logic (ie, when high = not enabled, when low = enabled) The OR gate acts like an AND gate in "active low" logic mode.

If A2 = 0 and A1 = 0 and /CS_CFG = 0 then /CS_CFG1 = 0 (ie, enable the chip select on the RAM MPCL chip.)

If A2 = 1 and A1 = 0 and /CS_CFG = 0 then /CS_CFG2 = 0 (ie, enable the chip select on the ROM MPCL chip.)

The "active low" logic has a nasty tendency to turn all of what you learned in school on its head but after you work with it a while it starts to make sense.

Regarding the CPU STACK while in extended addressing; the stack is set in the upper 32K memory page because it is permanent. This is one of the many reasons why the upper 32K *must* be fixed is that the CPU has to be able to depend on being able to correctly access its stack during memory map manipulations. If the stack is $FF00-$FFFF and that 32K RAM page is permanently fixed to the same physical RAM 32K block then the CPU is assured that when it pulls its context off the stack (ie returns from an interrupt or subroutine) it gets the right stuff and not some random garbage that just got paged in.

You'd be surprised at how hard it was for me to learn that particular lesson. Lose the stack and the CPU quickly goes insane! CPU context bugs are tough and can be hard to get your head around all the permutations and combinations it can manifest itself. Stack loss is just one of many... accidentally trashing a good stack is another as is changing the RAM context in midstream due to a memory page switch (ie, never execute code in the lower 32K memory page while switching memory page context!). Hopefully, this clarifies things a bit!

Thanks and have a nice day!

Andrew Lynch

MikeS
May 29th, 2008, 03:20 PM
Re: 6545/6845
Thank you, Andrew; I didn't know that. I was pretty sure that the 6545 is a direct replacement for the 6845 but never knew that it had that extra mode; I've only seen both of them used in 68xx/65xx circuits where they used the 2-phase clock to essentially have dual-port screen memory. Can't do that with a Z80, eh? Pity... ;-)

Is this ECB bus a well-defined *standard* by the way, i.e. are ECB Z80 peripheral boards described and available elsewhere likely to easily interface to your SBC, at least at the hardware level?

m

NobodyIsHere
May 29th, 2008, 03:48 PM
Re: 6545/6845
Thank you, Andrew; I didn't know that. I was pretty sure that the 6545 is a direct replacement for the 6845 but never knew that it had that extra mode; I've only seen both of them used in 68xx/65xx circuits where they used the 2-phase clock to essentially have dual-port screen memory. Can't do that with a Z80, eh? Pity... ;-)

Is this ECB bus a well-defined *standard* by the way, i.e. are ECB Z80 peripheral boards described and available elsewhere likely to easily interface to your SBC, at least at the hardware level?

m

Hi Mike,
Sure, no problem! Z80 can be interfaced with the MC6845, it just a PITA and requires special latching to synchronize the memory accesses. It also chews up precious address space and is generally troublesome. There are a few Z80/MC6845 systems out there though. The PROF80/GRIP is a good example. I'd like to make one someday...

The ECB is a well defined standard, hardware and interface. The standards are mostly in German, who apparently have a national love affair with the Z80 as it seems a good chunk of the Z80 home brew projects are German. No offense to all of my German friends... :-) (it certainly is understandable...)

http://www.hardwarebook.info/ECBbus

http://www.prof80.de/circ_a02.html

http://de.wikipedia.org/wiki/ECB-Bus

Thanks and have a nice day!

Andrew Lynch

ziloo
May 30th, 2008, 10:16 AM
Hi Andrew,




1- what is the role of A1 and A2 in extended Ram/Rom
addressing and why?



...The A1 and A2 are used in the IO decoding of the RAM or ROM MPCLs.


My bad...and thank you for clarifying it Andrew! I was under the impression that
you will be using the Data lines to enable and establish the Ram/Rom page, but
you are actually using the Address lines in addition to Data lines. So you would be
using:

Out Ad, Da

where, Ad represents A7 A6....A2 A1 A0 and Da represents D7 D6....D0 .

Why aren't you using A0?

Thank you

ziloo

NobodyIsHere
May 30th, 2008, 08:15 PM
Hi,

Well, sort of. Yes, the address lines are used by the IO decoding circuit to identify the appropriate MPCL (RAM or ROM) and the data lines set the values in MPCL. However, the CPU address or data lines do not explicitly set the extended address lines on the RAM or the ROM, the CPU only tells the MPCL to do it.

It is a subtlety but an important one; the MPCLs act effectively as an extension of the CPU for higher memory accesses and they are accessed as IO port devices. Otherwise the CPU would have no way of controlling the memory in excess of 64K using its 16 address lines.

In other words, the CPU manipulates the MPCLs and the MPCLs control the RAM and ROM extended addressing. It is an indirect relationship but it works. Of course a Z80 with a 20, 24, or 32 bit address bus would make this unnecessary but then you'd have an 8088, Z8000, etc. :-)

Thanks and have a nice day!

Andrew Lynch

PS, I am not using A0 as part of the IO decoder as each device is allocated an 8 address range for IO ports. It is unnecessary as the MPCLs each have their IO address mirrored across 4 addresses (RAM MPCL is $78-$7B, ROM MPCL is $7C-7F). The reason is the UART requires 8 addresses for control and to keep the decoder logic simple and small, I allow a 32 address range of IO ports dedicated to the "on board" IO devices (PPI, UART, RTC, and MPCLs).

ziloo
May 30th, 2008, 10:40 PM
Hello again,


...the address lines are used by the IO decoding circuit to identify the appropriate
MPCL (RAM or ROM) and the data lines set the values in MPCL...

The point I am making is that by using an "Out Ad, Da" command you would be
placing the appropriate signals on the lines for the decoding section (MPCL) to
access the IO device. It is the Out instruction that is doing the job.


...I am not using A0 as part of the IO decoder as each device is allocated an 8 address range for IO ports. It is unnecessary ...

I am saying that you could have used A0 & A1 instead of A1 & A2, but you just
chose A1 & A2 instead.

Thank you

ziloo

NobodyIsHere
May 31st, 2008, 07:12 AM
Hi!

Oh, I see what you are saying... yes, the OUT instruction is used for setting the extended addressing. The CPU uses data and address lines to with the OUT instruction accessing the MPCLs.

I could have used the A0 address line as part of the decoding and it would have worked. My thought was to keep the RAM MPCL IO port in on region ($78-$7B) and the ROM MPCL in another ($7C-$7F). Using A0 would have caused the IO ports to alternate on even/odd addresses but since practically speaking you really only access a single IO port how they are mirrored is not much of an issue.

If I had more PCB room, I would change the IO decoding logic to be a lot more specific and only the minimum necessary IO ports and reduce the usage of IO address space. However, in order to keep the design simple there was some trade off with efficiency. Its design artifacts like this which make using large PCBs and/or custom chips so appealing but of course that drives cost. Its all a trade off in the end...

Great questions and good observations! Thanks and please let me know if there are any other aspects I can help with!

Andrew Lynch

Druid6900
May 31st, 2008, 09:26 AM
Well, Andrew, you certainly won't have to worry about writing technical documentation on Da'Andy, you can just come back to this thread and vacuum up all the posts LMAO.

NobodyIsHere
May 31st, 2008, 11:10 AM
Hi!

Well, that is a pretty good idea! I do want to document the SBC and capture all the design information. I suspect we will be seeing even more questions once people start actually building them...

That is a good thing though. I guess we will see in a few days.

Thanks and have a nice day!

Andrew Lynch

ziloo
June 1st, 2008, 08:33 AM
Hello Andrew,

Looking at the scematics for your Dandy board, some clarification would be very
helpful regarding the role of A15:

1- whenever A15=1 (high) --> Ram is selected
2- whenever A15=0 (low ) & Rom is NOT enabled (Rom_Enable=1) --> Ram is selected
3- whenever A15=0 (low ) & Rom is enabled (Rom_Enable =0) --> Rom is selected

4- whenever A15 = 1 --> we are in the higher 32k
5- whenever A15 = 0 & Ram is selected --> we are in the lower 32k



Higher 32k, one page only
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
1 - - - - - - - - - - - - - - -
1 1 1 1 - - - - - - - - - - - - - - -
A'18 A'17 A'16 A'15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Lower 32k, 8 pages
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
0 - - - - - - - - - - - - - - -
- - - 0 - - - - - - - - - - - - - - -
A'18 A'17 A'16 A'15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

where, A' is A_Ram in schematics
- can be any binary value.



Generally speaking, stack pointer SP has no idea which page we are in, and I assume it
always refers to the higher 32k where our main program is located. Thus any line of
program placed on other pages that uses Call or RET would end up in the LA-LA land unless
we can devise a very sophisticated stack manipulation manager.

Any comment would be much appreciated...

ziloo

NobodyIsHere
June 1st, 2008, 09:06 AM
Hi Ziloo,

Yes, I think you have it regarding A15 and the memory paging circuit. Thanks, yours is an excellent description and that was probably one of the more challenging aspects of getting the home brew prototype to work.

While CP/M is running, the only RAM pages that should have any programs executing in them are the very top (upper 32K; A15, A16, A17, A18 all high) and the very bottom (lower 32K; A15, A16, A17, A18 all low). That is where CP/M has its TPA and main memory. The rest of the RAM is basically just a block device (RAM drive).

The design theory is CP/M and the stack would exist in the upper 32K so that in any event, the CPU would retain proper context information. There is no guarrantee though as programmers could write programs to run *ANYWHERE*, even from within the ROM (which isn't a bad idea either, it sure would save TPA space by shrinking the CBIOS). The only program that exploits this ROM "execute in place" feature is the loader but it is theoretically extendable to any program. Similarily programs could execute in the other RAM pages as well but stack management becomes an issue.

However, *in theory* it is possible to have programs executing anywhere in the RAM but as you pointed out it is the responsibility of the program designer to keep track of CPU and memory context. That is the hazard of executing any program in bank switched memory and not unique to this SBC design.

If any advanced operating systems come out with support for this platform, they'll have to take this fundamental design approach into account. I am pretty sure there are some Z80 real time OS's around so it is possible but fairly unlikely. I suspect most people will be thrilled to run the monitor and CP/M (I know I am!) although you never know what people will do. :-)

Well, since you are helping create some great detailed technical documentation (theory of operations) for the "Dandy" by extracting this information out of my brain maybe there are some other angles people would like to try?

I got asked a question about the "parts list" for the SBC which might be helpful. My plan was that the schematic and the PCB layout were sufficient to select parts but maybe people would be more comfortable with a formal Bill Of Materials? Detailed building instructions wouldn't hurt either but I think we need to get some PCBs out there to do that...

Thanks and excellent questions! I much appreciate your interest!

Andrew Lynch

ziloo
June 5th, 2008, 09:20 AM
Heya Andrew,

Congratulations! I hear you got all the PCBs :).
Keep us posted on any new development, hard/software-wise for
the Dandy baord.

ziloo

NobodyIsHere
June 5th, 2008, 02:53 PM
Heya Andrew,

Congratulations! I hear you got all the PCBs :).
Keep us posted on any new development, hard/software-wise for
the Dandy baord.

ziloo

Hi!

Yes, the PCBs arrived and all is well. I did a small trial run announcement on the N8VEM and the ALPACA_designers lists to get the process working before a wider release. So, since we are already talking about it here, I'll just go ahead and post on how to order PCBs:






Hi All,

At long last, the PCBs have arrived!


If you are interested in building your own SBC and would like to purchase a PCB, please send me an email with N8VEM in the subject line.

The PCBs are $20 a piece with shipping of $2 in the US. I prefer PayPal and I will send you the email address in the response email.

If you require different payment forms, live outside the US, or have other special requirements please specify in the email.

EPROMs are available on request but I would like to discourage ordering EPROMs as you'll want to burn your own whenever possible.

If you require an EPROM, however, they'll cost extra to replace my limited stock -- $3 for 27C1001 (128Kx8) and $5 for 27C080 or 27C801 (1Mx8).

I have no other parts so you'll have to get the rest yourself!

Although I have done everything I can practically do to ensure these PCBs are good there is some risk as with any project.

The PCBs are sold "as is" with no guarantees implied or otherwise and no returns.

I will help as best I can but it is ultimately your decision to build a SBC using one of these PCBs. Please keep this in mind before
ordering!

So if you'd like to order a PCB or two, please send me an email. Thanks in advance for your patience! Have a nice day!

Andrew Lynch

NobodyIsHere
June 6th, 2008, 04:04 AM
Hi All,
Last night I was experimenting with replacing the 1Mx8 EPROM with reused Flash ROMs I bought from a board scrapper. I got a whole bag of various miscellaneous chips and it included a number of reprogrammable 32 pin memories.

Unfortunately after trying about 6 different chips, I didn't find any that would work. However, I think with a bit of research I may be able to fashion a "shim socket" to fake out the Flash ROM and convince it to work.

The investigation continues...

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 6th, 2008, 08:45 PM
Hi All,

The 128Kx8 SRAMs arrived today so I will test those out in the machine tomorrow. Its been awful busy here the last couple of days. The orders are coming in and I am packaging up the PCBs and sending them on their way.

I am a bit surprised at the high percentage of people requesting the 1Mx8 EPROM and I guess I did not anticipate that happening. Probably will have to regroup here soon as I will run out of the EPROMs pretty quickly. I have no problem programming the EPROMs for people but getting the actual EPROMs may take a while. I am working some arrangements for additional chips. If I just run out, we can use the 128Kx8 chips in the meantime until I figure out what to do next.

There are a couple of alternatives for the 1Mx8 UV EPROMs. I can order some new ones from Jameco in bulk for about $7 or so. Alternatively, we could use OTP (One Time Programmable) PROMs for about $6. However, either case does exactly what I was trying to avoid... jack up the cost. I put in some RFQs for more parts and we'll see what shakes out. I am not a fan of OTPs for this application since once I burn it for you, that is it. There is no reuse or updating the chip. Of course, then your chip is practically invulnerable and you'll have a "fall back" chip but you'll need a different one if you ever plan to modify the software.

As a not very practical alternative, people could just order the EPROMs, send them to me and I'll program it for you and send it back. That'd work but what a PITA and shipping isn't cheap these days.

I still need to investigate using the smaller FLASH ROM parts with a shim socket and see if that'll help. That'll take a while though as I need to review and compare some datasheets.

Overall things seem to be going OK. I guess we'll see as the first build reports come in. For those with PCBs on the way, please be sure to post lots of photos and progress reports. I am certainly curious as to your progress and maybe we can all help out if anyone has problems.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 7th, 2008, 07:22 AM
Hi,
I was able to get a few more 27C801s so that should solve the immediate EPROM availability problem. Still looking for more parts though so if anyone has any ideas, I am open to hear them out.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 7th, 2008, 11:42 AM
Hi All,
I tried the 128Kx8 SRAMs and they did not work as direct substitutes for the 512K SRAM part. It is probably a similar same problem as with the 29Fxxx Flash ROMs substituting for the 1M EPROM.

Using shim sockets, I'll have to make some adjustments to the circuit for these alternative parts to work. Given the price difference between new 512K and 128K SRAMs is only about 50% and less than $10 it is hardly worth it once you figure in the cost of the 32 pin socket and time necessary to convert it. Still, it is a possibility and I'll continue investigating some lower cost options.

If anyone has other ideas for cost reductions please let me know. Thanks!

Andrew Lynch

DAVlifer
June 7th, 2008, 02:16 PM
I am looking for a compiler/asssembler that will take Z80 to TMS9900. There was a z80 chess machine that was converted to run on the TI 9900 CPU so I suspect such a program exsists. Any help would be appreciated. thank you

NobodyIsHere
June 8th, 2008, 04:12 PM
Hi,
After some investigating, I have found how to make shim sockets to allow 29F020 style Flash ROM chips to work in the SBC. I have about two dozen of those (256Kx8) gotten from scrappers "throw aways". They are not the full compliment of ROM but are large enough to put in all the N8VEM software to date and still have about 50% remaining capacity.

You'll still need a programmer to change them but not an eraser to reuse the chips. The SBC does not support in circuit reprogramming although that is a possibility with cuts, jumpers, and some software writing. I am not planning on doing it but maybe someone will desire Flash ROM sufficiently to make the changes. They are fairly simple modifications at least in theory. :-)

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 9th, 2008, 06:26 PM
Hi

Some people have requested a BOM/Parts List for the N8VEM SBC so I posted one on the N8VEM website files area. Feel free to use it but please first read the post in the discussion forum on the subject.

Thank you in advance and have a nice day!

Andrew Lynch

NobodyIsHere
June 14th, 2008, 07:17 AM
Hi,
So far things are going OK with the SBC PCBs. People have received their boards and there have been no major problems yet.

After a bit of research I found that 27C4001 EPROMs (512Kx8) are suitable replacements for the 27C080/27C801 EPROMs. They are half the size but cost somewhat less. Its probably not worth the substitution if you are building your own SBC and buying the parts but its useful to me if my supply of 27C801s runs out. I can easily buy the 27C4001's from the used surplus market at a reasonably low cost.

One thing I did want to mention is that if you are building your own SBC, be sure to use machined pin sockets for the EPROM socket. Most likely that socket will be the one with its chip removed and replaced. You'll want a tough and durable socket there if possible. A ZIF would be better but I don't think the clearance will allow it. I tried with one of mine and the filter capacitor is in the way. That'd easily be removed with no problem but if its already soldered in its probably not worth it.

Please let me know if anyone has any more questions or thoughts on building their own home brew Z80 CP/M computer.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 16th, 2008, 05:41 PM
Hi All,

Some people have received their PCBs and are busily working on getting their SBCs working. There are some really nice projects out there and a couple of really great photo albums out there documenting the build progress.

I liked these photos so much I thought I'd share with the nice people here. If these pictures don't get you motivated to build your own home brew Z80 computer, check your pulse!

Seth's very nice looking build:

http://www.flickr.com/photos/twylo/sets/72157605637029141/

Seth's doing a great job! Nice Panavise too. I think I want one of those...


Tony's doing great too!

http://s117.photobucket.com/albums/o62/nurb432/Z80%20Project/

Sweet looking case... Check out the passives and the 2N2222A TO-18 transistor installed...


I am glad to see the projects moving along and can't wait to hear those first test results.

Great job guys and please keep us posted on your progress! I will be glad to help out in any way I can.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 18th, 2008, 03:53 AM
Hi All,

There is some good news on this day...

Seth got his N8VEM SBC kit working! Here is the link:

http://groups.google.com/group/n8vem/t/1ba82bc54a81d858

Apparently he posted some photos on Flickr as well but I can't see them from here.

So for all you waiting to see if this SBC actually can be built and will work in someone else's hands, here is your proof! The Z80 home brew SBC project is alive!

Yippee! Much dancing and rejoicing!

Seth added some of his own personal touches to his build and that is nice. The SBC is meant to be customized and include personal variety. I am always surprised at the innovative and different ways people come to do things. That is really good and I am very happy it is now his unique creation. I would like to encourage all of the SBC builders to get theirs working and do experiments with them. Customize, Explore, Innovate!

Hopefully this will drum up some interest in home brew computing. Thanks and have a nice day!

Andrew Lynch

Druid6900
June 19th, 2008, 12:58 PM
Ok, people, if you're building this SBC and need parts, I got e-mail from a place today that deals with parts and checked it out.

They have almost everything you'll need, sockets, chips, resistor, caps, etc.

They have a 20 buck minimum, BUT if you need A resistor, you can order A resistor instead of having to take a bag of 100. I think the only major chip they didn't have was the SRAM, they even have the EEPROM.

Prices are good and I'm not affiliated with them in any way.

www.unicornelectronics-nospam.com (remove the -nospam, of course)

NobodyIsHere
June 19th, 2008, 01:25 PM
Hi,

Thanks Richard! I can vouch for UnicornElectronics. I have dealt with them quite a bit and they are good guys. They deserve our support and have some pretty unique and special stuff. Please consider them for your electronics needs.

Personally, I have never had any trouble with the $20 minimum since it is like a kid in a candy store whenever I go to their website :-)

Thanks!

Andrew Lynch

NobodyIsHere
June 20th, 2008, 03:37 PM
Hi All,
Well, the good news is the SBC PCB is selling and my stock is moving.

However, if you are waiting to order your PCB I recommend you do it soon. I have passed the 50% left mark on remaining stock and the end is near.

Please contact me if you would like to order a PCB. I do not know if/when there will be another run. If there is one, it will be weeks away as it takes about three weeks from order to delivery to me. Shipment to you is on top of that.

Thanks! Have a nice day!

Andrew Lynch

Ksarul
June 20th, 2008, 08:44 PM
I get most of my project parts from Unicorn. I highly recommend them.

Druid6900
June 20th, 2008, 08:49 PM
Yeah, they seem like a good place and I'll probably start using them but, I think I'll offer to redesign their website :)

ziloo
June 21st, 2008, 05:24 AM
Hello Andrew,

I don't know where I should post this, but for the sake of consistency,
I go ahead and post it here :) !

I have always had this question about handshaking procedure for
terminal emulators; some SBCs use only null cables and some
others use standard serial cables. Would you please explain about
the handshaking procedure for an emulator such as Hyperterminal?

Thank you very much

ziloo

NobodyIsHere
June 21st, 2008, 06:11 AM
Hi!

There is a similar thread on the N8VEM discussion board. Seth was able to get his SBC to work using his serial cable like this:


[N8VEM -------- 9-pin DSUB]
2 (DSR) ------- 4
3 (RX) ------- 3
5 (TX) ------- 2
7 (DTR) ------- 6
9 (GND) ------- 5


Seth posted photos of his serial cable so you can see it up close.

http://groups.google.com/group/n8vem/t/8730736c05641986


My cable is a bit different since I am using HyperTerm and like to use hardware handshaking.

PC DB25 (9 to 25 pin cable) SBC (25 pin female)
2 TD----------------------RD
3 RD----------------------TD
7 GND---------------------GND
6 DSR---------------------DTR
20 DTR----+----------------DSR
5 CTS----+

It is the same as what you have except pin 20 DTR and 5 CTS are wired
together. This allows hardware handshaking using HyperTerm.

As to whether it is actually using hardware handshaking is probably a
matter for debate but at least it doesn't hang anymore...

Making serial connections between computers, especially the older ones, is a complicated subject. I can usually make something work with a RS-232 breakout box but I am no expert on the subject that is for sure. I like to use hardware handshaking whenever I can but sometimes it isn't an option.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 25th, 2008, 03:44 AM
Yeah! Success! Huzzah for our very own Rich Camarda! He built his own SBC and it is working!

SUPER JOB RICH! CONGRATULATIONS!

Much dancing and rejoicing by all!

:-)

That makes two SBCs in a row working. There may be more out there I don't know about yet but who knows?

You can see the announcement and photos of Rich's shiny new SBC at:

http://groups.google.com/group/n8vem/t/c95b46cbbc5c1596

http://n8vem.googlegroups.com/web/N8VEM-RC.jpg?gda=Vo9Yrj0AAAADER1szsBwNP-45JaChd6oqmzaIw8LdyzEqTj6uf8Vb2G1qiJ7UbTIup-M2XPURDRRxzGhO7K7sGg6P-gotD4g

http://n8vem.googlegroups.com/web/N8VEM-RC-2.jpg?gda=HKLqbz8AAAADER1szsBwNP-45JaChd6oqmzaIw8LdyzEqTj6uf8Vb2G1qiJ7UbTIup-M2XPURDTrvnQmBxuwO1h4UOLczkXq

Thanks Rich! BTW nice touch with the Red LED and the Wyse terminal. That is some retro cool! Enjoy your SBC!

Have a nice day!

Andrew Lynch

NobodyIsHere
June 26th, 2008, 04:24 AM
Hi All,
Well, good news and bad news.

The good news... The SBC has been more popular than I expected. Originally I thought maybe there would be 10-12 interested people. I had enough PCBs to cover all of them and some extras but many more people have come forward recently. I think the photos of Seth's and Rich's working systems are encouraging people to take the plunge and also there isn't much much like it right now.

The bad news... I sold out of all my PCBs.

I have plenty of EPROMs (I think) and the website seems to be going OK. Overall I am pretty happy with it.

I would like to order another batch of PCBs but before I invest a bunch of $$$ I'd like to measure interest. I really cannot afford to spend hundreds of dollars on a box of PCBs only to have them sit unused. There has to be a method to mitigate the risk so I am trying a new approach.

I start a waiting list for interested people with a firm commitment to buying the PCB when they are available. It will be several weeks, at least three from the time I make the order plus delivery. If and when the waiting list gets big enough to make it viable, I will make the PCB manufacturing order and distribute the PCBs to those on the list first and then make the rest available to whoever else wants them. The deal is the same as before.

If you are interested or have other ideas please contact me or reply here.

Thanks and have a nice day!

Andrew Lynch

carlsson
June 26th, 2008, 12:28 PM
I may be interested in one or a couple (2-5) boards. To summarize: are there a lot of components one needs to gather yourself, or do you offer kits of the required parts as well as the boards themselves? I suppose the most basic resistors, diodes, capacitors and so on are easy to find locally, but in case there some more specific items it is good to recapitulate this.

NobodyIsHere
June 26th, 2008, 01:30 PM
I may be interested in one or a couple (2-5) boards. To summarize: are there a lot of components one needs to gather yourself, or do you offer kits of the required parts as well as the boards themselves? I suppose the most basic resistors, diodes, capacitors and so on are easy to find locally, but in case there some more specific items it is good to recapitulate this.

Hi Anders,
All I sell is the PCB. I'll sell the pre-programmed EPROM only if needed. The rest of the parts are up to the builder to find and source. There are only commonly available parts in the design although that may vary depending on where you are. I do not sell kits or other parts to keep costs low and encourage salvaging or other innovative methods of gathering parts to keep costs low.

Thanks for asking! Have a nice day!

Andrew Lynch

NobodyIsHere
June 27th, 2008, 04:43 AM
I may be interested in one or a couple (2-5) boards. To summarize: are there a lot of components one needs to gather yourself, or do you offer kits of the required parts as well as the boards themselves? I suppose the most basic resistors, diodes, capacitors and so on are easy to find locally, but in case there some more specific items it is good to recapitulate this.

Hi Anders,
I thought about your question a bit more and would like to expand a bit on my answer from yesterday.

My goal for the N8VEM SBC project is to encourage and help people start home brew computing. Making an SBC kit actually detracts from that goal in two important ways:

1. part selection and acquisition are key skills necessary for the home brew hobbyist for building your own computers or any other electronics project. Doing so builds necessary skills and gives insight into the design building a kit never will. Also few things teach better than making some mistakes -- especially when desoldering is involved. This is probably the most important reason against making a full blown SBC kit. It basically robs the hobbyist of much of the fun and benefit of doing it in the first place.

2. investment and risk to make full blown kits is MUCH higher than just a lot of manufactured PCBs. The manufacturing of PCBs alone cost me hundreds of dollars which is a significant investment for a regular working person. Adding to that lot buys of components would increase my investment and risk several fold. If those kits don't sell, I am out some serious funds and will have to explain that to the family. This practical limitation is probably this is why so few hobbyist kit projects exist. Those which do exist tend to be small and inexpensive. Very few people have thousands of dollars available to risk on a non-profit venture with an unknown customer base and unknown demand. Worse, the risk of being straddled with unsold kits increases with the cost of the kit -- the more expensive it is the less likely it is to sell. Frankly, I just can't stand the pain of losing that sort of family money and I doubt many others could either.

Hopefully this gives some insight into my reasoning on the home brew vs. kit decision.

Thanks and have a nice day!

Andrew Lynch

PS, if anyone is interested in buying a PCB, please contact me so you can get on the waiting list for the next batch.

carlsson
June 27th, 2008, 07:07 AM
Thank you. I will look up later exactly what the parts list looks like and determine how many components I will be able to find without spending a small fortune. As for EPROMs, both me and my friends (for whom the 2-5 boards would go to) have our own programmers, only the chips themselves would be required to obtain. I saw from previous posts in this thread places to order components from, but those places usually only make sense to people in the North America, even though the USD still is quite low in value.

NobodyIsHere
June 27th, 2008, 09:40 AM
Hi Anders,

On the N8VEM Google Group there are a couple of "parts list" documents. I wrote one using Jameco and Howard wrote one for DigiKey. Those are both usable but reflect different perspectives and approaches and will result in very different final total parts costs.

If you'd like they are available to help review and guide personal selections. Of course, discussion on the costs and benefits before soldering starts or even ordering parts is good preparation. You should be able to order parts locally and/or reuse parts available from salvage, etc. Certainly there are quite a few European parts suppliers with more than adequate selection.

The whole parts selection process has lead to some very excellent discussion threads as builders dig into what is required and their own design decisions. Overall this is exactly the purpose of leaving the parts list undefined is so the builders go through the process of evaluating parts and performance vs. cost trade offs.

It's my guess that every SBC which gets built will be unique and reflect the personal choices of the builder. Exactly as it should be for home brew computers -- they are all unique.

Thanks and have a nice day!

Andrew Lynch

PS, having at least one EPROM programmer among you and your group of friends should be sufficient for updating the contents of the ROM drive and/or system programming. Usually burning your own EPROM is not something you do everyday but when you need it, you'll really enjoy having one available. There is already a builder who has started rewriting the CBIOS which I very much appreciate. No doubt, the current CBIOS could use some review and new ideas!

carlsson
June 27th, 2008, 10:56 AM
Hm, ok. So the values of many common components are defined within some ranges, i.e. 300-700 Ohm, 100 - 1000 nF, any diode that will prevent back current at 1V and so on? That's cool, and I understand it will lead to some discussion which parts are better suited than others if you dig deep into the specs.

As I wrote, I will have a look and ask around if we're interested to be put on the waiting list. There is a group of us with highly varying soldering and building skills who have got together for a little over a year, sitting down to putting together a common project. Last year we built the ZX Spectrum divIDE interface from a kit: four out of seven finished soldering, two out of four got it working and one out of two managed to avoid getting the interface die without reason a few months later. This spring we built a Velleman Pong kit which was much simpler than the divIDE interface, and I think everyone succeeded although it was not nearly as fun - some people had ideas about further modifications but I don't think anyone has done anything to it.

A SBC Z80 computer would be an interesting, challenging project in line with my requests that we find something that is not about assembling straight out of a box, but my friends may disagree, in particular if the costs get too high.

There are well-stocked electronics shops here, like ELFA (http://www.elfa.se), but they tend to be a lot more expensive than your Digikey or Jameco, even if international shipping was considered. Some other stores sell components too, either as individual items or in large bags of assorted surplus. The latter is really affordable, but you never know what's inside the bag until you get home. For those who already have a big box of most typical components it is not a problem to get a few missing pieces, but if you virtually has nothing to start with you got to decide more carefully what you buy. For example, I'm fond of wiring resistors in series to reach a higher resistance, something I might do on a N8VEM board too if I didn't have resistors of suitable values.

NobodyIsHere
June 27th, 2008, 01:27 PM
Hi Anders,

Your hobby electronics group certainly sounds like the N8VEM SBC project would be right for them especially if this is a group build project. The members on the N8VEM website are of varying experience levels but that doesn't seem to be causing any trouble. My target audience for the project is electronics and computer hobbyists with education and entertainment in mind. I'd like the project to be challenging and educational but not so hard that new builders are discouraged.

Actually ordering parts for a group may be easier and you'll get a better value if you can combine the orders. I know Jameco and others give discounts for parts based on quantity. Also, some parts are sold in minimum quantity like resistors so it would actually be beneficial to order a 100 resistors and split the order among the group to share costs.

All of the parts are very common items so the price should not be too bad but if you are considering a large group order of parts, I strongly recommend a thorough review of the parts selection and even asking for an outside review. Having to do follow on buys for limited parts will wreck any economy of scale.

However, I don't know your group so you'll have to be the judge as to whether this is appropriate for them or not. During the design phase, I really emphasized to make the PCB easy to assemble by maximizing the clearances to reduce bridging. Adding the solder mask really seemed to help too. I haven't heard of a single mention of solder bridging since I built the initial PCB prototypes which had no solder mask and only minimal clearances.

That being said though, I don't have an estimated date for a second batch order of PCBs. It will depend on demand as to whether and when that will happen. Probably I will let things settle for a while and help the builders complete some projects. It seems that word and pictures of successful builds is the best sales pitch rather than me trying to explain the project.

I hope this helps. Please let me know what I can do. Thanks and have a nice day!

Andrew Lynch

carlsson
June 27th, 2008, 02:14 PM
Yep, I just posted to the major Swedish vintage gaming/computing site. Let's see if I spun some interest. In the best case, I may end up with putting an order of 10+ boards on the waiting list?

NobodyIsHere
June 27th, 2008, 02:30 PM
Yep, I just posted to the major Swedish vintage gaming/computing site. Let's see if I spun some interest. In the best case, I may end up with putting an order of 10+ boards on the waiting list?

Hi Anders,
Wow! If you can get a reasonably firm commitment to buy 10 PCBs we don't need a waiting list. I will just order a new batch straight away. All I am looking to do is have a semi-reasonable chance of covering my expenses.

Please let me know what comes of it. Thanks! I do appreciate your initiative!

Andrew Lynch

NobodyIsHere
July 1st, 2008, 03:50 AM
Hi All,
It looks like another N8VEM SBC has sprung to life with photos to document the joyous occasion! Congratulations Juha! Excellent work!

http://n8vem.googlegroups.com/web/alive.jpg?gda=tI7yaDoAAAADER1szsBwNP-45JaChd6o0ShPOpr1K6LH6iqdWjYle2G1qiJ7UbTIup-M2XPURDS0mIZv3KyzgLe-Efpubu6n

Check the N8VEM Google Group site for more details.

This would make it three SBCs in a row working for hobbyists other than me. Definitely a good sign! Each one is unique and highly personalized.

Things are looking up!

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
July 2nd, 2008, 04:09 AM
Yep, I just posted to the major Swedish vintage gaming/computing site. Let's see if I spun some interest. In the best case, I may end up with putting an order of 10+ boards on the waiting list?

Hi Anders,

Has there been any interest in your post? There have been a few people joining the waiting list. I think I am up to about 7 people now so the I am getting close to ordering the second batch of PCBs.

Probably only about 3-5 more would be enough. 10 is the working minimum but it'd be nice to have a couple of backups in case people can't due to circumstances.

Please let me know how things are going. Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
July 25th, 2008, 08:54 AM
Hi!
Is anyone still interested in this subject who is not already involved in some way?

Thanks!

Andrew Lynch

NobodyIsHere
July 26th, 2008, 07:24 AM
Hi! If anyone would like a N8VEM Z80 SBC PCB, the second batch of PCBs has arrived and I am ready to process any orders. The first batch went fairly quickly so I bought more.

All the orders on the waiting list have been sent already and there are plenty PCBs left for anyone who would like to build their own home brew Z80 CP/M SBC from scratch.

The good news for those who waited for the second batch is that there are several successful builders who have published photos of their working SBCs. I think it is safe to say now you don't have to worry this SBC design may have contained some fatal design flaw.

You'll benefit from the first group which went before and has posted lots of information on how to make your project a success. The SBC has been demonstrated working numerous times by many kinds of builders of varying degrees of experience.

Please send me an email if you are interested! Thanks and have a nice day!

Andrew Lynch

http://groups.google.com/group/n8vem

NobodyIsHere
August 16th, 2008, 06:04 PM
Hi,

I recall someone in this thread a while back asking about the N8VEM SBC and saying they were looking forward to seeing its "BlinkenLights". Well, that day has finally come!

http://n8vem.googlegroups.com/web/IMG_6726.JPG

This afternoon I built up an ECB backplane and got the N8VEM SBC to work with it. The very first N8VEM ECB peripheral is my old TestPrototype Bus Interface Test Tool sometimes referred to as the Bus Interface Test Checker (the BITC) ;-)

The good news is the SBC and ECB backplane have all checked out and the BITC was helpful in getting it all to work together. Although it was cranky about it as usual and not terribly reliable, the BITC is one of those tools I used a lot when doing the same types of testing on the TestPrototype system.

It is a tremendously simple peripheral and practically useless but it demonstrates the general principles behind making a simple ECB peripheral. All it has is some simple IO decoding logic, an intel 8255, and a series of LEDs to indicate state of one of the parallel outputs. I also added LED status indicators for the various bus pins like Address, Data, and some Control signals.

You can watch the N8VEM SBC go through its boot sequence and you can generally tell what it is doing based on the LED patterns. All the i8255 does is demonstrate the IO port logic is working. Once that is in place any Z80 peripheral should work *in theory*.

Thanks and have a nice day!

Andrew Lynch

Druid6900
August 16th, 2008, 09:50 PM
Great work, Andrew.

I can see this becoming the first washing machine sized SBC in history and requiring a 3 foot square fan and 220V three phase power LOL

mistamidget
August 18th, 2008, 06:34 AM
I have a multiuser(2) z80 cp/m based single board system here that I built decades ago for a video industry design.
As it was a "manufactured device" it has artworks for the pcb and I still have all the details of the associated bits and pieces (epld programs, monitor rom, cp/m source etc).
It now uses an IDE hard disk because the original MFM drive died and it is not easy to get a replacement and there are trillions of old ide drives around (well maybe I exaggerate here but ide is very easy to implement and there are probably billions of them floating around).
If you think any of this may be useful to a/the project concept then let me know and I can post photos on my web site.

NobodyIsHere
August 18th, 2008, 08:54 AM
Hi!

Yes, please do post you photos & documentation. I am curious as to what your SBC design is.

You say you designed your own Z80 SBC? Are you interested in a little more Z80 SBC design? How are you with peripheral development? The N8VEM project is getting ready to start the peripheral development phase.

This weekend I built and tested the ECB backplane with the SBC and it is working. My TestPrototype BITC and Disk IO boards are working so I have primitive bus monitoring and the IDE disk interface working. The FDC section of the Disk IO board still needs to be tested, etc but signs so far are hopeful. The new PCBs seem to be much more reliable and the theory about improved grounding seems to be holding up.

I would certainly appreciate a hand in the design area. If nothing else, you could do some independent review of my upcoming designs to make sure they are as error free as possible. Specifically the ECB bus monitor (BITC replacement) is in the final phase and needs some fresh review before I send it off for manufactured PCBs.

Do you do any prototype development? (wire-wrap or point to point soldering on prototype boards?)

Thanks and have a nice day! Please consider joining us on the N8VEM Google Group.

Andrew Lynch

mistamidget
August 19th, 2008, 04:37 AM
Hi again,

I have posted some photos on http://www.candl.com.au/cpm today.
You can work out the architecture from the chip numbers but basically it is a 10mhz z80 with 128kb nvram (64k for each user) and 4k nvrom for the monitor.
There is a mfm disk controller, now not used, bottom left, which if not installed makes the board 1/2 the size.
The ide add-on is top left and is the best bit about the system as it make it worth keeping. The floppy is a 1.44MB pc floppy formatted for 720k to be compatible with my original prototype. That system was wire wrap but is long gone I now breadboard stuff and then solder a final version (see ide add-on) when finalized.
The pcb in front is the hsc inc 68k co-processor which is altogether another story.
I will post all the electronic bits I can find over the weekend as it will take some time to find it all.
You are welcome to use any/all/none of what you find, however, if you find it useful please add a line in any derived stuff stating where it came from (so I can apologize for any inconvenience caused)
This board was designed for Glaxo Australia to implement a voice alarm system back in the early 90's and was used there of well over a decade, only retired when the mfm drives failed (hence the ide add-on (which never went into production (sadly)))

NobodyIsHere
August 19th, 2008, 06:37 PM
Hi!

WOW! JUST WOW!

That is one cool SBC! You made an ST-506/ST-412 MFM interface? I wouldn't even consider it as it is WAY over my head. I am impressed!

Did the system have on board video? I see it uses the WD FDC2793. Sweet FDC but it sure is a shame practically every recent PC uses the not so nice NEC765 and derivatives.

I'd like to ask about the 68K but I can see that is probably quite a story. Are you familiar with the ECB bus? There was some interest in making 68K home brew systems for ECB. I have seen bits and pieces around but they are pretty rare these days. I am so swamped right now I cannot even consider the possibilities until I get some of these projects finished.

There are two N8VEM ECB peripherals in work right now that could definitely use your help. The N8VEM SBC and ECB backplanes are both done and working so it is too late for those. :-) The PCBs are available for home brew hobbyists but I would like to transition the project into the peripheral development phase. It's easier said than done though. I am trying to recruit some talented individuals and you just joined the short list.

I am making an ECB bus monitor and am almost done. The schematic and PCB layout is in final review now but I could use some rigorous peer review as to whether this thing will actually work and if there are any improvements I could roll in -- preferrably while preserving the original intent of the design. The original design is derived from a German ECB project in C'T Projekt magazine and follows it fairly well but I have made some extensions and modernized it. The peripheral operates somewhat like a Jade Bus Probe but for ECB bus rather than S-100. It's sole purpose is for hardware/software development but could be used for other Z80 type projects since ECB is so similar to the Z80 bus structure. Here is a link -- caution 29MB download!

http://www.hd64180-ecb.de/assets/download2008/ct_bus_monitor.pdf

The other peripheral is the "crown jewel" of the project at least in my mind. It is the Disk IO board which contains an IDE and an FDC interface. The IDE interface is known working and I have a CP/M CBIOS which supports it. I have my prototype version running in my basement workshop and I am fairly confident it is OK. Here is a link from the N8VEM website. You can barely see the circuit due to all the wiring and it is a relatively low complexity board.

http://n8vem.googlegroups.com/web/IMG_6757.JPG

The FDC section is another story though; my original prototype started getting flaky last year due to poor grounding, I think. I switched the project to all manufactured PCBs to address the poor grounding of the prototype boards and improve reliability. So far, that has paid off nicely and the SBC and ECB backplanes do not exhibit the constant flakiness the original prototypes did. Even my prototype peripherals just work better. However, I halted the project after building the FDC but never tested it. I have some simple FDC software written but again never even tried it out. :-(

Now I am too busy scrambling to get this ECB bus monitor finished and managing the N8VEM project to work on the FDC. My plan is to finish the ECB bus monitor and then start on the testing of the FDC portion of the Disk IO board. Once I know it works and/or rolled in the fixes then I'll convert it to manufactured PCBs like the rest of the project.

So, are you interested in reviewing a couple of designs? The ECB bus monitor is straight TTL chip logic and the pieces are not all that complex. Still the overall function is rather complex due to its use of one-shots, etc. The FDC section on the Disk IO board could use some TLC as well. How are you at building prototypes? :-)

Please consider joining us on the N8VEM project. Seriously, I could use your help. Thanks!

Have a nice day!

Andrew Lynch

http://groups.google.com/group/n8vem?hl=en

mistamidget
August 21st, 2008, 03:07 AM
Hi Andrew
I will look at the links you have posted although I will be going from scratch as I have only come across this forum this week.
I like things to be "the smaller the better" hence the system I have here. I probably wouldn't build a bus oriented system for myself as integration makes it nicer to hide hardware. (I am thinking I will be putting the board I have here in my PC case and getting rid of the horrid box on my desk. I would like to try sharing the ide drive on the PC with the CP/M one just to see what I get) This may mean I can have the z80 system AND the PC accessing one disk although I suspect not.
This system is serial console only as a typical cp/m system originally was. Also being 2 user serial is lots easier to implement. I would like to redo the board with the mfm stuff replaced by the ide circuit and shrunk to maybe half its size.
The 68K board is not really required now the ide is running so I might remove it.
I have posted the pcb layouts and schematics today and will find the monitor source/binaries and a floppy disk image for the cp/m development system this weekend. This makes it all usable rather easily.
It might be worthwhile making one of these up for yourself to augment what you are doing as I can give you a complete floppy or ide based image from what I have here although you would only have access to the duarts I use peripheral wise. Let me know if you or anyone else decides to do that as the ide circuit isn't drawn up except as a sketch.
I guess you know the software apps I have posted (autotrax and schedit) as I understand they are common public domain systems from last century. The aplus stuff I am not so sure about but as the jedec files are there you dont really need to even run it. You can do whatever you like with these pcb's and schematics if you can do things cheaply there overseas. I have no idea how you make boards so cheaply there in the US as I paid hundreds for the 4 I originally produced here in Australia.
Without the mfm controller you can power this thing from +5v only.
Note it was nearly 20 years ago I did this z80 design and then went down scale, processor wise, from there (motorola embedded devices hc5's and dallas ds5000's) so I have not though about this stuff for a long time, but it might be good to exercise my mind again.
Thinking as I type I reckon putting this system on a PCI card to derive power and plugging it into a pc would be a neat way of hiding it whilst keeping actual z80 systems alive!
Anyway I will visit the project over the weekend and have a look.

mistamidget
August 24th, 2008, 06:03 PM
I had a browse of what you are doing there and it is quite impressive. You look like you have come a long way.
For a bus monitor tho' would'nt it be better to use a PIC based controller to provide an lcd display and single-step/trace facility using busrq/halt rather than a discrete system.
Although, what I do here and used way back when, is an Arium ML4100 with a z80 pod and zsid for debugging although old hardware is getting more scarce as it gets junked (ebay is still worth a look regularly if you live in the States).
Unfortunately I am not in a position to built a whole new bus oriented system as I have no bench space in my little room here, so will keep and maybe one day shrink my existing system, so I dont think I can be of much help.
I am slowly putting up all the info on my system on the web site http://candl.com.au/cpm/ for easy access so if any of that info is helpful to you or anyone else you are welcome to use any of it.
Also after playing with the z80 system the last few days I decided to separate the hsc 68k board and re-engineer it to use some old 4mb 30p simms I have laying around to give it more memory (it only has 2m) and put a duart on it so I can run it standalone.
I will then junk my old rack and mount the z80 (and hopefully the 68k as well) in my existing PC case to hide the electronics and just keep it all for posterity.
If you have any questions or would like me to look at something you are doing from a "theoretical" perspective you are welcome to pm me.

Mike Chambers
August 25th, 2008, 02:08 PM
i'd be interested, it soudns fun. i just saw this thread! i don't want to read 18 pages so excuse me if this has been addressed, but what kind of expansion bus is on this project? any?

what about video output, or is it like a headless serial interface?

NobodyIsHere
August 25th, 2008, 04:43 PM
i'd be interested, it soudns fun. i just saw this thread! i don't want to read 18 pages so excuse me if this has been addressed, but what kind of expansion bus is on this project? any?

what about video output, or is it like a headless serial interface?

Hi!

Yes the N8VEM project is a lot of fun! The PCBs are available for the SBC if you'd like to give it a try.

There are PCBs for the ECB-bus backplane as well. The SBC plugs into the ECB to access peripherals. There are some peripherals on board the SBC such as serial, parallel, and RTC and the ECB is supposed to be for "heavy" IO like Disk controllers and video.

The primary means for communicating with the SBC is over serial. I would like to do a video board but that is more a dream than anything at the moment. Who knows what the other builders are working on though. I have been investigating some simple video boards but nothing past the early planning stages.

I am working on an ECB bus monitor and it is almost finished. In addition, I am working on a Disk IO board with IDE and FDC interfaces on board. It will be quite a while before the Disk IO board is completed but the IDE section fully works and has software already. I have a working prototype on my workbench. The FDC is still a work in progress though.

If you are interested, feel free to join us at http://groups.google.com/group/n8vem

There have been several successful builders and lots of photos and information to help you get started.

Thanks and have a nice day!

Andrew Lynch

Mike Chambers
August 28th, 2008, 10:31 AM
very very nice! serial is fine anyway. just turns any PC into it's "video card" :)

with serial ports, you could do all kinds of cool stuff.... even turn it into a sort of BBS host haha. even over telnet, using SLIP!


Hi!

Yes the N8VEM project is a lot of fun! The PCBs are available for the SBC if you'd like to give it a try.

There are PCBs for the ECB-bus backplane as well. The SBC plugs into the ECB to access peripherals. There are some peripherals on board the SBC such as serial, parallel, and RTC and the ECB is supposed to be for "heavy" IO like Disk controllers and video.

The primary means for communicating with the SBC is over serial. I would like to do a video board but that is more a dream than anything at the moment. Who knows what the other builders are working on though. I have been investigating some simple video boards but nothing past the early planning stages.

I am working on an ECB bus monitor and it is almost finished. In addition, I am working on a Disk IO board with IDE and FDC interfaces on board. It will be quite a while before the Disk IO board is completed but the IDE section fully works and has software already. I have a working prototype on my workbench. The FDC is still a work in progress though.

If you are interested, feel free to join us at http://groups.google.com/group/n8vem

There have been several successful builders and lots of photos and information to help you get started.

Thanks and have a nice day!

Andrew Lynch

Mike Chambers
August 28th, 2008, 10:39 AM
btw, i have an old dead 286 board.. are there any parts i can harvest from it if i start this project? maybe memory? the mem chips are labelled:

MALAYSIA 8623
TM50256P-12
U2212888

i doubt it, but it's worth asking i guess. :P

if nothing else, there are about a billion chip sockets i could harvest from it of varying sizes.. a few are even the right size for a Z80.

Druid6900
August 28th, 2008, 11:40 AM
btw, i have an old dead 286 board.. are there any parts i can harvest from it if i start this project? maybe memory? the mem chips are labelled:

MALAYSIA 8623
TM50256P-12
U2212888

i doubt it, but it's worth asking i guess. :P

if nothing else, there are about a billion chip sockets i could harvest from it of varying sizes.. a few are even the right size for a Z80.

Those would be 256K x 1 - 120nS DRAM, at a guess and sockets can be purchased relatively cheaply enough (even the good dual wiper kind) to make the hassle of unsoldering them not worth it.

NobodyIsHere
August 28th, 2008, 05:50 PM
Hi!

I agree with Richard. There might be something useful on the 286 board but more likely it is too new to be useful. I suggest you get the parts from a surplus electronics or another supplier.

There are parts lists available on the N8VEM Google Groups website. You can see all the information for hardware and software freely available.

http://groups.google.com/group/n8vem

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
September 12th, 2008, 04:05 AM
Hi,
A quick update on the Z80 home brew project. I finished the ECB bus monitor design and ordered the PCBs. They should be here in a couple of weeks or so. The ECB bus monitor is similar to the Jade Bus Probe but for ECB rather than S-100. It is based on a design from the German magazine C'T Projekt with some extensions. Once the PCBs arrive and I build my first unit, I will post an update on how it went and availability of the PCBs. Since the ECB is essentially the Z80 bus, the magazine article describes an adapter socket which can allow the unit to plug into a Z80 socket directly so it *may* have broader application than just ECB.

Recently been spending a lot of time working on the Disk IO board. Since the SBC and ECB backplanes are basically done and the ECB bus monitor is on order, I am focusing on making a Disk IO board design complete. The board will contain an IDE interface and an FDC interface. The IDE interface is done and working. The CBIOS and CP/M already supports it in the default distribution so that is not a problem.

The FDC interface is currently in development. It is based on the Intel 8272A FDC (NEC 765 compatible). I have a working prototype on my bench which can reliably read sectors from a 360K DSDD MS-DOS formatted floppy disk. My plan is to support the high density drives (1.4MB 3.5" and 1.2MB 5.25") eventually. However, the software and hardware is proving to be quite a bit more complex than I expected so it will be a while before this board is done.

You don't have to wait until the PCBs are ordered to get your own. The schematics and software are available if you'd like to build your own using prototype boards. It is what I am using and it works OK. The design is generic enough it should work with any Z80 design with minor adaptation.

If anyone has any questions or is interested in helping I would be glad to discuss it.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
September 17th, 2008, 01:18 PM
Hi All,
This weekend I got the N8VEM Disk IO board to reliably read arbitrary disk sectors on 1.4MB 3.5" and 1.2MB 5.25" floppy disks. This is major progress since it shows the basic design can handle the 500 Kbps requirement. There is still a long ways to go but things are looking up.

I have SBC and ECB backplane PCBs still available if anyone is interested. The ECB bus monitor PCBs should be showing up soon too. I have no idea when the Disk IO board will be done but it will be quite a while.

As a side note, I am considering a disk imaging type project similar to Catweasel but using the N8VEM Disk IO board and a PC with a high speed parallel port. Working on this Disk IO board has given me some ideas on how to go about doing disk imaging in a very general way.

Thanks and have a nice day!

Andrew Lynch

rscottdrysdale
September 17th, 2008, 06:42 PM
veddy nice, veddy nice...

BUT...

i was looking at some of the assembler listings. what's up with the evil 8080 code, dude? this is a *Z* 80.

lxi h,foo? NO!NO!NO! ld hl,foo!!!!

and what's up with the IDE interface design? all that work to read a byte pair. this is a *Z* machine, boys! INIR, OTIR!! put a flippity flop out there so you can at least speed up reads. the idea is that the flop would be reset such that it initially indicates "do a 16-bit read from the IDE and provide the LSB to the host". when you do that read, the flop flips. the next read would do nothing at the IDE connector, but provide the MSB to the host, and the flop flips back. then you can use INIR to suck 256 bytes at a time out of the thing. it's like having an instruction cache!

... tell drive what block to read, tell it to read, wait for buffer to fill

;read the 512-byte buffer from the drive.
;
;we assume HL already points to a 512-byte destination for the read.

ld bc,256*0 + IDE_RD_PORT ;B=0 (really 256), C=input port addr
inir ;do { *HL++ = PORT_READ(C); --B } while (B != 0);
inir ;do { *HL++ = PORT_READ(C); --B } while (B != 0);

FEEL the power! this turns out to be just as fast as DMA.

a little bit of hardware can go a long way. the RoadRunner cartridges worked like that - the hardware had an 8-bit latch for the upper 8 cart addrs, and an 8-bit counter for the lower ones that would auto-increment after a read or write.

you can make it behave similarly on write. i'd suggest trying to make the read accelerator work first, as reads are much more popular than writes.

send me your source code - i didn't even have to look up the registers for INIR, and haven't touched a Z80 since, oh, 1987.

seriously, Z80 code can be more compact than 8080 code, and the mnemonics make a lot more sense. except "jp (hl)" (should have been "jp hl") which looks like "read 16 bit address from memory pointed to by HL, then jump to that address", and there was another one that bothered me, but i can't remember. the 'ol DRAMs haven't been refreshed in a while.

ps: i just did a preview and the forum software ate my nicely formatted columns. fooey.

rscottdrysdale
September 17th, 2008, 09:39 PM
when you have unused space in your EPROM image, fill it with $FF, not $00. the EPROM's natural "erased" state is $FF, so when you program a partial image that has $FF in the empty spaces, it will only have to work on the non-empty portion. i don't know what your image-making tools do, how you feed them to your programmer, or how your programmer works - but generally you can tell the programmer to fill with $FF, and generate a sparse .hex file (only contains blocks of data where you want there to be data). then you're not sending all those 0's to the programmer, as well as not beating them into the EPROM.

most FLASH works the same way - $FF is erased.

besides, as i recall (don't shoot me if i'm wrong - these brain cells haven't been used in 20 years), $FF as an instruction is RST 7 (simulate an interrupt 7). now you can have code at the vector for interrupt 7 that says "hey! you're executing vacuum!"

NobodyIsHere
September 18th, 2008, 04:08 AM
Hi!

Yes, you are right that the N8VEM software can certainly use a rewrite. I posted what is there mostly as a demonstration or guide not as the formal software distribution. My thinking is that most builders would write their own software and use what is there as documentation only.

Not only a software rewrite but a new development environment as well. I am currently using TASM32 which should be replaced with a CP/M native environment or at least one that supports better modularity.

The CBIOS is written entirely or almost entirely in 8080 although there may be a couple Z80 instructions hidden in there someplace. I actually prefer the Z80 mnemonics and they *are* much more efficient.

As usual, there is only so much time available and I have been spending all of it getting the basic hardware out. So far the SBC and ECB backplanes are done, the ECB bus monitor PCBs should be arriving soon for the initial build and test. After that it will be the Disk IO board.

What I'd really like in the short term is for some ambitious and talented hardware and software hacker(s) to build a prototype Disk IO board and help me get this project finished. A lot of the complexity of the FDC is in the software which is making this project so time consuming. Its coming along but slowly. I have to get the basics working reliably before even attempting to start on the CBIOS.

This weekend my plan is to make the modifications to allow adjustments to the write precompensation settings. Once those are in place and working, start the testing for sector writing. *In theory* it should be simple but I have found nothing ever is simple :-)

Thanks and have a nice day!

Andrew Lynch

PS, please join us on the N8VEM forum. I can see you'd like to be a builder and are just itching to write some efficient Z80 code!

http://groups.google.com/group/n8vem

NobodyIsHere
October 23rd, 2008, 04:00 AM
Hi All,

The N8VEM home brew computing project is still going. There are about 50 members or so of the N8VEM Google Group and numerous SBCs have been completed. I've sold many of the PCBs and have lost count somewhere along the way. All of the SBCs which have been built and I know of are now working. There were a few builders that had some problems but we seem to have worked through those.

I still have PCBs available for the SBC so if you are interested please contact me. If you are interested in expansion, there is also an ECB backplane available for adding peripherals. You can build your own or add peripherals as they come available.

There has been some good news recently as the ECB bus monitor is now working to help builders debug hardware and software. It is supposed to operate a bit like a Jade Bus Probe but is for ECB instead. It seems to work although I haven't completed my own unit yet there are some builders with working units. Here are some N8VEM blinkenlight videos of the ECB in action:

From my friend Rolf:

http://www.hd64180-ecb.de/assets/n8vem/N8VEM_BUS_0001.AVI

http://www.hd64180-ecb.de/assets/n8vem/N8VEM_BUS_0002.AVI

From my friend Clive:

http://n8vem.googlegroups.com/web/ECB+Monitor+clip+.wmv

If you are new to home brew computing, some highly motivated builders have produced excellent introductory webpages on how to get started.

James excellent work here at Instructables:

http://www.instructables.com/id/Robot_Brain_Build_a_single_board_computer_in_an_e/

Oscar has written this wonderful introductory piece:

http://www.geocities.com/homeofoscarvermeulen/n8vem/n8vem.html

I have PCBs available for the SBC, the ECB backplane, and the ECB bus monitor. They are $20 each plus shipping. Shipping is typically $2 each in the US and $5 overseas. Multiple boards per order reduces per unit shipping costs but has to be determined depending on weight.

There are two more boards in development; the prototype board and the Disk IO board.

The prototype board is a custom ECB board specifically designed for builder prototyping. It has a bus interface with signals exported to builder pads, programmable high nibble IO address decoding with builder extension pads, full buffering of address, data, and incoming control signals. Outgoing control signals are available to the builder. VCC and GND rails are provided for short connections to the ICs. Everything is labeled on the prototype board for easy access. It is in final PCB layout right now and should be going to manufacturing soon pending final review. You don't have to use this board to make your own prototypes but several builders have requested this unit so I designed it. Hopefully it will make home brew peripherals easier to build.

There is also a Disk IO board in work with IDE and and FDC based on the i8272. I built a working hardware prototype from protoboards on my bench and some initial testing software which provides the basic functions (seek track, recalibrate, sector read, sector write, format track, etc). I am fairly sure the fundamental design is solid. Presently I have captured the schematic in KiCAD and am doing a PCB layout. The PCB is in the auto-router optimizer right now but due to complexity of this unit it will probably be a while before it is released to manufacturing. I would like to get some additional reviews of this design due to its inherent complexity as well.

Several builders have their own peripheral projects in work as well ranging from LCD displays, SD reader/writers, wireless links, and various other things that are probably better described by the builders themselves. Here is a picture of an LCD display project Clive made that is just great and made me smile when I first saw the picture:

http://n8vem.googlegroups.com/web/LCDisplay1(top).jpg

So if you are interested in building your own home brew Z80 CP/M computer you may be interested in checking out the N8VEM project. Builders of all skill levels are welcome and I will be glad to help out as best I can.

Thanks and have a nice day!

Andrew Lynch

Dr_Acula
November 13th, 2008, 09:37 PM
Re rscottdrysdale "i was looking at some of the assembler listings. what's up with the evil 8080 code, dude?"

Working on that. Should have something in the next few days after finding a nifty CP/M program to convert evil 8080 into Z80 opcodes. Only fell over with 16 errors on the first go with the entire cpm source code, so should be possible to fix.

Oh, and a general thankyou to Andrew Lynch for his amazing efforts on this board!

Addit: Done it. Had to change the CP/M assembly code source and also the XMODEM source. Used a CP/M program called XIZ.COM and it was a matter of sending the assembly text files over to the N8VEM board, running XIZ and then sending the new file with Z80 opcodes back to the PC. Then create a new romimage with TASM and burn a new eprom. Files etc all on the N8VEM website.

Amazing to think that useful CP/M files are still out there on the internet. A big generic thankyou to those who maintain the websites of such obsolete information.

Now with pukka Z80 opcodes the Oshonsoft Z80 emulator can be used to build assembly programs without having to do eprom burns all the time.

I hope the N8VEM counts as vintage. It is using a large ram chip as the disk drive, so the computer ends up smaller and much quicker and uses far less power (65mA) than old CP/M machines. But the software is very much vintage.

A>b:
B>dir
B: FORMAT COM : RTC COM : XMODEM COM
B>a:
A>dir
A: PIP COM : XMODEM COM : DISPLAY COM : BRUN COM
A: BASCOM COM : MBASIC COM : BASLIB REL : BCLOAD
A: L80 COM : SUPERSUB COM : BAS SUB : DUMP COM
A: AUTOEXEC SUB : DDT COM : STAT COM : XIZ COM
A: UNLOAD COM
A>stat
A: R/W, Space: 290k
B: R/W, Space: 25k


A>

NobodyIsHere
November 25th, 2008, 04:20 AM
Hi All! Its been a while since I posted on the N8VEM project so here is a quick update:

I ordered some more N8VEM ECB backplane PCBs (sold out the first batch!) and also the first batch of prototype boards. They should be arriving in three weeks or so. I will post when they arrive. There are plenty of low cost SBC and ECB bus monitor PCBs available.

The good news is that the several N8VEM builders have made their systems and are developing their own peripherals. Some amazing things have come about and I am very impressed with the creativity and skills of the builders.

If any new people are interested in building their own Z80 CP/M home brew computer and associated peripherals this is great opportunity with the ECB backplane and prototype board. The prototype boards are manufactured PCBs in the Eurocard format (160mm X 100 mm) with about a 100 mm x 100 mm square area for builders to create their own circuits. These should dramatically ease new construction of builder projects compared to using generic prototype boards.

The prototype PCB provides an ECB connector, fully buffered address and control lines and a bus transceiver for data IO lines. There is an address selectable IO decoder (upper nibble only) and all the bus signals are exported and critical ones labeled for easy access. In addition, there are VCC and GND rail lines along the prototype section for short wire connections.

My recommendation is to use the ECB backplane for peripheral development but several developments have used the SBC connectors directly. To aid in further development hardware and software development, the N8VEM SBC uses commonly available PC based tools (free or low cost) and also the full suite of generic CP/M programs. There is also an ECB bus monitor PCB available for debugging those inevitable development problems.

All PCBs are $20 each plus shipping. This is an amatuer home brew computing project and is not commercial in any way. All hardware, software, design information are freely available and open source. The hardware PCBs are sold as close to at cost as practical. I have designed the PCBs with home brew builders in mind so I believe it is possible to even manufacture your own PCBs if anyone were so inclined. In my opinion, the N8VEM project is well suited for hobby and educational purposes and was designed for easy construction and explanation. I would be glad to make special arrangements for educators as needed.

There is always room for more builders of any skill level. Of course we could use some additional persons with computer software/hardware development experience. Any further contributions (non-monetary of course) to the N8VEM project are greatly appreciated. Please contact me if interested.

Thank you and have a nice day!

Andrew Lynch

Dr_Acula
November 29th, 2008, 06:21 PM
To add to Andrew's post, the N8VEM is really moving ahead with a number of people actively contributing. A hard drive interface is almost ready as is a prototype board.

The design now has a 20x4 LCD display and a keyboard interface, so it is possible to run this as a standalone computer with all the CP/M functionality.

From my perspective, the unique thing about the N8VEM is the battery backed ram drive. The Z80 program space and the ram drive share the same ram chip, so the board has 64k of Z80 ram and 448k of drive A> space. This means it has no moving parts, and eliminates all the problems with disk media degrading/clogging up heads etc. The ram drive is also significantly faster - about 1/2 a second to fire up MBASIC. With a wireless interface at 9600 baud, files can be stored on other boards if the drive is filling up.

I appreciate that the N8VEM isn't quite vintage computing in the true sense of the word. Perhaps it is more like the 10,000 year old battle axe that has had 50 new handles and 50 new heads. But all the software is very much vintage. Certainly it has been a delight to fire up all the old favourites again like Wordstar and MBasic. It is also great to have these programs running on a single board computer that cost less than $50. Writing mbasic on a 20x4 LCD has a few limitations, but it is just a matter of keeping the lines short, and asking questions and getting user responses one line at a time. Not so good for games, but the N8VEM can run on a terminal emulator as well - eg hyperterminal or teraterm. In this mode, input comes from either the PC keyboard or the boards keyboard, and output goes to both the LCD display and the terminal display.

James Moxham

NobodyIsHere
December 7th, 2008, 08:16 AM
Hi All!

I just received the new PCBs. There are four (4) types of PCBs available; the SBC, the ECB backplane, the ECB bus monitor, and the newly available ECB Prototyping Board.

If anyone is interested in building their own Z80 CP/M home brew computer please contact me. There are numerous home brew peripherals and projects being developed which are too numerous to list or give adequate description here. Suffice it to say, I can't keep track of what's happening in the project any more!

More information here:

http://groups.google.com/group/n8vem

http://n8vem-sbc.pbwiki.com/

I am presently working on a Disk IO board (IDE and FDC). It is nearing completion and hopefully there will be a PCB manufacturing order in the near future.

Another project I am working on is a Terminal Replacement Board which uses the Parallax Propeller to use a VGA monitor and PS/2 keyboard to emulate a terminal. Initial prototype development is underway but there is no time frame for completion at the moment.

Thanks and have a nice day!

Andrew Lynch

PS I have lots of PCBs available. They are all $20 each plus shipping. Shipping is typically $2 each in the US and $5 each overseas. Combining multiple PCBs in an order will reduce shipping based on weight, etc.

carlsson
December 7th, 2008, 04:56 PM
PS I have lots of PCBs available.
I still have my five boards shrink-wrapped from the reseller, a.k.a. my group hasn't gotten anywhere yet. But we will, in due time. Or at least I will, and the others can decide for themselves if they like to join or not.

NobodyIsHere
December 8th, 2008, 03:22 AM
Hi Anders!

Thanks! Please be sure to let me know if there is anything I can do to help your group with their build of the SBCs. The N8VEM group is friendly and supportive of new builders. All the SBC PCBs which have been built by their builders that I know of have resulted in working systems. We've had a couple of bumps along the way but eventually everyone gets theirs going.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
December 21st, 2008, 04:14 PM
Hi! If you are interested in making your own home brew Z80 CP/M computer now is a good time to get your PCBs and start. With those long winter nights ahead, this will give you something fun to work on!

I have plenty of Single Board Computer, ECB backplane, ECB bus monitor, and ECB prototyping board PCBs available. You get your own parts and build it yourself. This is especially good time since I am at home for the holidays and can ship PCBs quickly.

All hardware, software, and design information is freely and publicly available. We are always looking for skilled and experienced builders to join the N8VEM group even as advisors. There are a lot of peripherals being developed and more are being discussed.

Here is more information:

http://n8vem-sbc.pbwiki.com/

http://groups.google.com/group/n8vem

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
January 9th, 2009, 04:50 AM
Hi All! The N8VEM home brew computer project continues bumping along. We've made some big improvements in the documentation on the wiki (http://n8vem-sbc.pbwiki.com/) which is helping the builders.

As for recent news, there is a flurry of development regarding a couple of terminal project based on the Propeller. There are a couple in work right now and probably will be available soon although I don't have an ETA. It looks like there will be a straight terminal solution using a VGA monitor, PS/2 keyboard, and a couple of serial ports. There is also a similar project but with much more IO such as audio, TV out, SD, etc. I'll post more information as it comes available.

I recently made a PCB manufacturing order for the long discussed DiskIO project. PCBs should be here by the end of January or so. It will provide an IDE and FDC (NEC765A) interface. Although I have built a working hardware prototype the software is still not complete and is pretty immature. The IDE code is pretty much already done and is in the CBIOS now. The FDC code is really just proof of concept demonstration on the hardware prototype so it has a long ways to go yet. Of course the PCB and software will be going through lots of testing and the usual thrashing about trying to make it work.

Several builders have requested a Zilog Peripherals board so I am building a prototype. It will have a CTC, DART, and two PIOs. This should address some of the main concerns regarding lack of IO, no priority interrupts, lack of system timer, etc.

Things are going well. If you'd like to make your own Z80 CP/M home brew computer please join us on the N8VEM (http://groups.google.com/group/n8vem) project. Its a pretty friendly group and builders of all skills and experience levels are welcome. Bring your great ideas, soldering irons, and all that software expertise to make your own system from the ground up!

BTW Z80 and CP/M are just the local favorites and not a mandate. If you want to make your own SBC using your favorite CPU to run that free OS you've been dreaming about you are welcome to use the N8VEM system as a platform for your development. For example, I would *love* to see some of the 6809 and/or 68K gurus find a nice home for their OS-9 with the N8VEM project. You are certainly welcome and you can use the Z80 SBC as your IO processor!

Thanks and have a nice day!

Andrew Lynch

PS, just an example; take a design similar to one of these EPAC 68008 (http://www.themotionstore.com/leeedavison/68k/epac/index.html) and mount it on a Eurocard with a 8255 to act as the communications link between the 68K and the ECB. Write a N8VEM SBC application to serve IO requests to the 68K via the 8255. Instant home brew 68K with peripherals!

Dr_Acula
January 9th, 2009, 05:35 AM
Just to second what Andrew has said, tonight I built two. As in two complete CP/M machines with a keyboard and a small LCD display and the ability to run CP/M programs. And a big thankyou to the hoster of the Walnut Creek CP/M archive. It is a treasure trove, though it takes a bit of searching. But I found what I needed, which was a small MBASIC program that can chain a .sub file. So now it is possible to daisy chain programs. All the parts for wireless CP/M networking are falling into place, and this ought to have real applications for networking vintage computers too. Can already send any file wirelessly over many hundreds of metres using xmodem. One project coming to fruition is a router based on the N8VEM that can route wired and wireless RS232 signals.

The Propeller monitor is also taking shape. One of the builders has suggested that the N8VEM is too quiet and he has suggested the Propeller terminal have a speaker and produce sound effects of disc reads and writes? Maybe someone could record a .wav?

Terry Yager
January 10th, 2009, 12:16 PM
BTW Z80 and CP/M are just the local favorites and not a mandate. If you want to make your own SBC using your favorite CPU to run that free OS you've been dreaming about you are welcome to use the N8VEM system as a platform for your development. For example, I would *love* to see some of the 6809 and/or 68K gurus find a nice home for their OS-9 with the N8VEM project. You are certainly welcome and you can use the Z80 SBC as your IO processor!

Thanks and have a nice day!

Andrew Lynch

PS, just an example; take a design similar to one of these EPAC 68008 (http://www.themotionstore.com/leeedavison/68k/epac/index.html) and mount it on a Eurocard with a 8255 to act as the communications link between the 68K and the ECB. Write a N8VEM SBC application to serve IO requests to the 68K via the 8255. Instant home brew 68K with peripherals!


I' d like to see an interface to this board, if anyone is interested:

http://www.users.cloud9.net/~stark/sbc02.htm

It's a kewl lil' gizmo, very simple to build, that runs a tiny version of BASIC, but no mass storage.

--T

NobodyIsHere
January 15th, 2009, 05:45 AM
Hi Terry! How about one of these (http://www.sbprojects.com/projects/nano6802/nano6802.htm) on an N8VEM ECB prototyping board.

Hook the 6821's parallel IO a 8255 parallel IO (8255 only needs an IO decode 74LS32) That's 5 chips by my count.

There would need to be Z80 software on the N8VEM to serve IO to the 6802 via the 8255 and corresponding software on the 6802 side for its client IO.

Do you know of any 68xx hobbyists that'd be interested in pursuing such a creature?

I would really like to broaden the appeal of the N8VEM to other home brew computer hobbyists. Maybe making a 68xx device would be appealing to them?

This sounds interesting.

Thanks and have a nice day!

Andrew Lynch

PS use 8255 mode 2 for bidirectional IO via port A and port C for strobe pins. Not sure what the 6821 can do but probably IO on one port and control on the other.

Terry Yager
January 15th, 2009, 02:10 PM
AJ,

Brilliant! Gotta have one...but that's a whole 'nother project to add to my queue. Still looking to find a good use for my SBC-2, although your interfacing ideas look doable, as it uses a 6821 as well.

--T

carlsson
January 20th, 2009, 03:21 PM
Please be sure to let me know if there is anything I can do to help your group with their build of the SBCs.
Yes please. I've located the parts lists and tried to figure out what parts are mandatory, which are recommended and which are additional.

I found this list (http://n8vem.googlegroups.com/web/TestPrototype_BOM_PART-LIST.lst?gda=6DMrhVQAAABRoI8ydU505jGCwGWcAnRLVYTZa CdyJias028kLbDjM7mHeIlRNZNuWyWm5kKNAJr2D8gD3ctlIYK czaAghgqdUwk_6Qi3BU8HCN0q6OYwM6JXPqrFQS5SIfKND7Qsa YY) which has all the items that can go on the board. Furthermore I found this page (http://n8vem-sbc.pbwiki.com/Least-expensive-but-still-functional-N8VEM-SBC) where you have taken a stab at building the cheapest possible SBC, leaving out a number of components. I also found some tutorials like James Moxham's (http://www.instructables.com/id/Robot_Brain_Build_a_single_board_computer_in_an_e) and Oscar Vermulen's (http://www.geocities.com/homeofoscarvermeulen/n8vem/n8vem.html). James writes he left out the clock chip while Oscar clearly didn't install the 96-pin DIN 41612 connector which I believe is for connecting the board to the ECB bus?

On the step by step (http://n8vem-sbc.pbwiki.com/StepByStep) page, it says a parts list should be uploaded by July 5th, 2008. Probably it was, just that I find it a slight bit hard to follow. I'm sure these questions have been brought up in your mailing list, but I'm too lazy to search through it, in particular as you have a complete parts list already listed.

Some of us in the group would hesitate in spending too much money on something they're not sure what they can use it for, thus I'd be very thankful if I got some pointers and tips what is a good cut-off point on parts required, parts recommended and parts that can be added afterwards. I see that members of the group have made a lot of interesting additions that we may partake in at a later stage, but the first part would be to get the basic boards running through a serial connection I presume.

NobodyIsHere
January 20th, 2009, 07:02 PM
Yes please. I've located the parts lists and tried to figure out what parts are mandatory, which are recommended and which are additional.

I found this list (http://n8vem.googlegroups.com/web/TestPrototype_BOM_PART-LIST.lst?gda=6DMrhVQAAABRoI8ydU505jGCwGWcAnRLVYTZa CdyJias028kLbDjM7mHeIlRNZNuWyWm5kKNAJr2D8gD3ctlIYK czaAghgqdUwk_6Qi3BU8HCN0q6OYwM6JXPqrFQS5SIfKND7Qsa YY) which has all the items that can go on the board. Furthermore I found this page (http://n8vem-sbc.pbwiki.com/Least-expensive-but-still-functional-N8VEM-SBC) where you have taken a stab at building the cheapest possible SBC, leaving out a number of components. I also found some tutorials like James Moxham's (http://www.instructables.com/id/Robot_Brain_Build_a_single_board_computer_in_an_e) and Oscar Vermulen's (http://www.geocities.com/homeofoscarvermeulen/n8vem/n8vem.html). James writes he left out the clock chip while Oscar clearly didn't install the 96-pin DIN 41612 connector which I believe is for connecting the board to the ECB bus?

On the step by step (http://n8vem-sbc.pbwiki.com/StepByStep) page, it says a parts list should be uploaded by July 5th, 2008. Probably it was, just that I find it a slight bit hard to follow. I'm sure these questions have been brought up in your mailing list, but I'm too lazy to search through it, in particular as you have a complete parts list already listed.

Some of us in the group would hesitate in spending too much money on something they're not sure what they can use it for, thus I'd be very thankful if I got some pointers and tips what is a good cut-off point on parts required, parts recommended and parts that can be added afterwards. I see that members of the group have made a lot of interesting additions that we may partake in at a later stage, but the first part would be to get the basic boards running through a serial connection I presume.

Hi Anders! Thanks! Yes, the parts list/BOM has been a bit of a controversy. The issue is that there is not just one parts list. There are several and in fact many different builder styles and implementations result in a large array of potential methods to build. The good news is practically everyone I have heard of has worked AFAIK. Some use the Digikey parts list, others the Jameco, others you can't tell them how to make their SBC and they'll do it whatever way they please! That's great since home brew computing is all about personal expression and the differences are welcome!

The issue of how to make the least expensive SBC has come up several times. My suggestion is that if you'd like to pursue a low cost option is to just start building using the minimum required parts list and have your test equipment standing by to test as you go. Leaving parts off will result in lower cost but there is a risk of leaving off a part you'll need. About half of the parts can be safely left off. The things that are necessary are the CPU, ROM, UART (for serial communications -- even this is optional if you are willing to use an oscilloscope), and some of the glue logic. The rest is optional. Operating an SBC without RAM sounds odd but it is certainly possible and there are debugging programs included which do that exactly.

Certainly, the ECB interface, bus buffers, the RTC circuit, the PPI, much of the memory paging logic (MPCLs), can be safely left out without compromising basic functionality. However, when you do want to use them obviously you are going to need them installed and working.

I suggest just writing up what you think you want to do and a parts list and then posting on the mailing list for comments. The N8VEM builders are a friendly and helpful group of people who will jump at the chance to help out.

I hope this helps! Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
January 24th, 2009, 06:07 AM
Hi All! I just received a new batch of SBC PCBs so there are *plenty* available if anyone would like to get one of their own. I have all the PCBs and everything is available. So far there are five PCBs:

N8VEM SBC (Z80, CP/M, RAM/ROM drives, UART/PPI/RTC)
ECB backplane (6 slots w/switch and PS interface)
ECB bus monitor (like Jade Bus Probe but for ECB)
ECB prototyping board (make your own peripherals, rapid prototyping)

and the newly arrived:

Disk IO board (IDE and FDC i8272)

All the boards are available for $20 plus shipping which is typically $2 in the US and $5 overseas.

The Disk IO board is fairly new still so the software is not fully mature however there are several builders with Disk IO projects underway so I think we'll see new developments soon.

I have a Zilog Peripherals board (CTC counter timer, DART dual serial ports, and dual PIO dual parallel ports -- four 8 bit ports total) in development now. There is a hardware prototype going into test fairly soon. No estimate for when that will be available. There a lots of other ideas in varying states of detail for other follow on peripherals but I won't be taking on any new projects until the Zilog Peripherals board is completed.

If you are interested in building your own home brew computer, just join us on the mailing list (http://groups.google.com/group/n8vem) and/or contact me directly.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
March 1st, 2009, 07:12 PM
Hi All! Its been a while since my last update but lots of things are developing for the N8VEM project. If you are interested in making your own home brew Z80 CP/M computer now is a good time to start. I have lots of PCBs for all the N8VEM components; the N8VEM SBC, the ECB backplane, the ECB bus monitor, the ECB prototyping board, and the Disk IO boards are all available and ready to go. All boards have been built by N8VEM builders and are in varying degrees of operation. The Disk IO is the most recent and probably the least mature but even it is getting a work out recently.

Whats new? Well, the N8VEM Zilog Peripherals board is almost finished in the trace optimizer, I think. It is nearing completion and as soon as its done, I will make a PCB manufacturing order. It brings a system timer, dual serial, and dual parallel IO in the form of a Zilog CTC, a DART, and two PIO chips.

Next is a 6809 "host processor" which is basically a 6809 SBC on an ECB prototype board. It communicates with the rest of the world via a parallel interface to the N8VEM. It uses the Z80 SBC as its IO processor so the 6809 is free to do what it does best with minimal interference from a IO cluttering up its memory space. I just got the prototype running on my bench and once I get some software and the 6821 to 8255 interface working it will be made into a manufactured PCB like the rest of the N8VEM components.

Some of the builders are requesting an ECB bus extender so that will follow the 6809 host processor. I am also working on an S-100 bus bridge and S-100 backplace project for the N8VEM but that is quite a ways off. However, the S-100 backplane plans are posted in the N8VEM wiki if you'd like to see them.

There are a number of other projects in work as well. Dave is working on a Propeller IO board which should be neat. James is working on a massive wireless mesh project that is just incredible in scope. You'll have to get him to explain it though since it is fairly complicated. Bill is rewriting the N8VEM SBC ROM to make it better with a much improved CBIOS and CP/M. Rich, Rich, and Max worked quite a bit on the Disk IO board IDE section so that is working. Really there are many things going on and this is just a partial list of what I can remember right now. No offense intended if I didn't mention someone's project but there are so many builders pursuing so many different directions at once I get confused as to who is doing what.

Also there are couple of side projects of note not necessarily N8VEM but related. Bob is selling a Z80 ICE circuit which has gotten some good reviews. I bought one and its sitting on my bench staring at me waiting for its turn on the bench. Vince is now selling his PockeTerm terminal replacement controller which is/was codeveloped with some N8VEM builders. I have a couple and am looking for a chance to build them soon as they are very nice using a standard PS/2 keyboard and VGA monitor for a serial terminal.

I intended this message to be short but so much is happening recently its just a very exciting time. If you are interested in joining the N8VEM home brew computing project feel free to stop on by the mailing list and/or wiki and join in the fun. You don't have to build your own system but I think you'll want to as it is a lot of fun. Every builder who has tried making their own has succeeded as far as I know. At least I don't know of any out there which haven't worked after a little work. Most work on the first try so it is an ideal starter project. With the new software development it is even more friendly to new builders.

Thanks and have a nice day!

Andrew Lynch

PS, I uploaded a couple of fuzzy pictures of the new 6809 host processor prototype to the wiki in the m6809 folder. It is working and running a couple of small diagnostic programs as of tonight.

jlon
March 26th, 2009, 04:47 PM
I found this thread and joined the forum to participate, if I may. A TRS-80 Model III was my second computer and having recently begun working with microcontrollers, I've wondered if it would be possible to build a Z80 machine.

I've been in the software business for more than 20 years so I might be able to help, and I love retro stuff.

Joe

Dr_Acula
March 29th, 2009, 04:51 AM
We hope to see you over at the N8VEM forum! The N8VEM forum has a lot of discussion about building boards and getting things working. But there is a lot of very relevent discussion on this forum too as these are vintage designs running vintage software. I just built another board this evening - this time a design with 4 serial ports - 1 for the monitor, 1 to a PC, 1 to a radio module and 1 will be going to a real world interface board. Got a LM2575 switching reg too, and finally everything runs cold.

NobodyIsHere
March 29th, 2009, 06:30 AM
I found this thread and joined the forum to participate, if I may. A TRS-80 Model III was my second computer and having recently begun working with microcontrollers, I've wondered if it would be possible to build a Z80 machine.

I've been in the software business for more than 20 years so I might be able to help, and I love retro stuff.

Joe


Hi! Please join us on the N8VEM mailing list and also the wiki:

http://groups.google.com/group/n8vem

http://n8vem-sbc.pbwiki.com/

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
April 15th, 2009, 04:25 AM
Hi All! I just wanted to let people know that the N8VEM Zilog Peripherals PCB has now arrived and you can order those. I have PCBs available of everything so if you'd like to build your own home brew computer this is a good time to start. You only need the SBC PCB to start and can optionally expand your system with the other PCBs.

I have PCBs for the N8VEM SBC, ECB backplane, ECB bus monitor, ECB prototyping board, Disk IO board, and the Zilog Peripherals board. There is an active community building their own systems and using them for a variety of things. I recommend joining the mailing list and wiki to see the latest developments and also ask questions to the community.

http://groups.google.com/group/n8vem

http://n8vem-sbc.pbwiki.com

I've built a prototype 6809 host processor board and its PCB is in work at the moment. No estimate as to when it will be available but several weeks at least. It is just a 6809 processor that attaches to a N8VEM system as a peripheral. It includes an expansion bus to allow builders to customize it as desired.

Please contact me if interested. Either reply to this thread or send me a PM. PCBs are $20 each plus shipping which is generally $2 in the US and $5 overseas. Ordering multiple boards reduces shipping depending on weight. I prefer PayPal but will make special arrangements as needed.

The N8VEM home brew computing project is a completely ad hoc, all volunteer, amateur, nonprofit, noncommercial, hobbyist project. It grows in random directions based on the interests of the builders involved. The PCBs are extra units I was going to order anyway and am making available to the community at cost. There is no long term plan, no formal leadership, no board of directors, and no commercial interests are involved. Basically, if you want something you either make it yourself and/or ask someone in the community to help you.

This is real home brew computing and a lot of fun. You are welcome to participate. I appreciate all the great works builders have done in the spirit of home brew computing. Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
May 20th, 2009, 05:54 PM
Hi All! Just a quick note on some developments with the N8VEM home brew computing project. Things are going well. I have all six current PCBs (SBC, ECB backplane, ECB bus monitor, ECB prototyping board, Disk IO, and Zilog Peripherals board) on hand so if anyone would like some please contact me. James (aka Dr_Acula) has several of his own too and they are really nice.

The two latest projects on the ECB side are the Motorola 6809 Host Processor board. I built a prototype and it is working fine. It runs a modified version of the Motorola "mini bug" software and a corresponding application on the N8VEM SBC to communicate with it. The 6809 operates in parallel with the Z80 based SBC as a "host processor" which appears as a peripheral to the SBC "bus controller". The 6809 host processor has limited IO but a memory map that's almost completely clear. It has 64K of RAM and 2K of ROM (actually, its Flash and reprogrammable in circuit). It is also designed with its own expansion bus in addition to the ECB interface so it can mount its own devices on a mezzanine bus in parallel with the regular N8VEM system.

My plan is/was to port FLEX or CUBIX to the system but I got distracted by the pretty lights again and my attention turned to other things. The summary is the PCB is almost complete in its trace routing and I am getting ready to make a manufacturing order for PCBs. If you are interested please let me know. The 6809 host processor is definitely an acquired taste, its rather different but I think it has tremendous potential.

You can see all the latest data and photos at the N8VEM wiki here: (http://n8vem-sbc.pbworks.com/browse/#view=ViewFolder&param=m6809)

The next major development is I've started working on a Video Display Unit (VDU) for the N8VEM system. There are already some nice things like Vince's
PockeTerm which allow the use of VGA monitors and PS/2 keyboards. That is a great system but the VDU is quite different. Its more like a true video card with the capabilities of what you'd get in a KayPro 10. Basically its a simple SY6545 system for character mode video. You can do limited graphics using characters similar to how this was done on CP/M systems of the era.

I've just started on this project so it will be a while before its done. I've got a basic design template and a schematic in work. Also the prototype is started. Not all the design features are set quite yet but I want to establish a working "core" before expanding on this feature set. You can see the latest including the picture of the prototype board in development here (http://n8vem-sbc.pbworks.com/browse/#view=ViewFolder&param=VDU) I would really like it if someone would like to follow along and build the prototype with me. I think it would be fun and highly educational. Also it would help to have separate eyes on this design as the video is notoriously tricky circuitry.

There is some work going on in the S-100 side but that's another thread. If anyone is interested in joining the N8VEM project please contact me or post here.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 8th, 2009, 06:31 PM
Hi All! I've been working on the N8VEM VDU board. Tonight I got the board to generate some video so I posted some pictures on the wiki in the VDU folder. The project is not done yet although I think its over the hump. What's left is to write some better test software to exercise the board and then to add an 8255 for a PS/2 keyboard interface.

Thanks and have a nice day!

Andrew Lynch

Dr_Acula
June 8th, 2009, 10:41 PM
The video looks great. Proper retro green screen too. That is on a TV as I gather vga is a bit too fast. The pocketerm uses TV and VGA. It has the potential to do colour as well as you can set pixels to any colour, though limited to slightly odd screen sizes on vga.

Andrew, will you be implementing VT100 codes and Wyse codes so we can run the games?

As for keyboard, the source code is on the wiki for driving a PS/2 keyboard via an 8255. Sing out when you get to the keyboard part...

NobodyIsHere
June 9th, 2009, 05:01 AM
The video looks great. Proper retro green screen too. That is on a TV as I gather vga is a bit too fast. The pocketerm uses TV and VGA. It has the potential to do colour as well as you can set pixels to any colour, though limited to slightly odd screen sizes on vga.

Andrew, will you be implementing VT100 codes and Wyse codes so we can run the games?

As for keyboard, the source code is on the wiki for driving a PS/2 keyboard via an 8255. Sing out when you get to the keyboard part...

Hi James! Thanks! The N8VEM VDU board uses a regular composite monitor (CVBS) rather than a VGA monitor. It is compatible with TV sets that accept composite signals. My goal is for a vintage like video board similar to a KayPro 10 or Vector Graphic FlashWriter II. It is simple monochrome character video just like you'd find on the early microcomputers.

At least in theory, the VDU could be bumped up to VGA speeds by replacing the dot clock (16 MHz) with a 25 MHz unit and some custom programming. Also it probably would require larger video RAM if I keep the character gen ROM the same. It currently uses 80x25 character video with each character being 8x10 dots (640x250).

The minimum VGA signal would be 640x400 which would require 40 vertical characters. I suppose a different character generator ROM with 16 dot tall characters would work to preserve 80x25. However the big problem is that VGA speeds require a much faster character clock. The current SY6545A allows for a 2MHz character clock but boosting to VGA speeds means at least 3 MHz. SY6845EB/UM6845EB chips support those speeds but its drifting away from what I really wanted to do and adds complexity to a really nice simple design.

As for software support, my plan is to build a simple application that demonstrates the features of the board. It will have a library of simple functions like clearing the screen, placing a character at a position, moving the cursor, etc. I am rather leaning away from CBIOS support or any advanced terminal emulation as I would like to "spin up" this PCB and move on to other projects. I think if N8VEM builders would like to extend the software functionality it would be fairly straight forward.

What I'd really like to do is add PS/2 keyboard, PS/2 mouse, and parallel printer support. However, I am not sure I can squeeze all those functions out of a simple 8255. I am doing some research on the subject.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
June 13th, 2009, 12:31 PM
Hi All! The PCBs arrived for the N8VEM 6809 host processor board. I have several available if anyone would like to build one. Please contact me for arrangements. As usual, the PCBs are $20 each plus shipping.

If anyone is interested in a project to port FLEX, CUBIX, or OS-9 to the N8VEM 6809 host processor please let me know. The primary OS for the N8VEM home brew computing system is CP/M on the Z80 based SBC however this is not a mandate. Other operating systems such as FLEX or CUBIX should run. The 6809 host processor currently runs a modified version of the Motorola minibug monitor.

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
July 6th, 2009, 05:41 AM
Hi! I got the VDU prototype working and it seems to work well. The PCB is layed out and in the trace optimizer. It will probably be in there for quite a while as it is a complex circuit.

In the meantime, I am working with some other builders on the N8VEM project to make a "PropIO" board. It is an ECB board with a Propeller and various IO. Since the Z80 is able to communicate with the Propeller directly (no UART interface) via IO ports the transfer rate should be very quick. The current design supports VGA monitor, PS/2 keyboard, and a micro SD interface. The PropIO is built using standard off-the-shelf parts and a N8VEM ECB prototyping board. There are pictures on the N8VEM wiki in the DWM-PropIO folder.

The PropIO design is rather fluid right now. It is not using a lot of the PCB so I am considering adding a second Propeller and more IO to it. I'll keep you posted on how it goes. If you are interested in joining the prototyping efforts, please join us on the N8VEM mailing list and wiki.

Builders of all skill levels are always welcome in the N8VEM project. It is a fun project for brand new electronics hobbyists through highly experienced professionals. There is something for everyone and we are having a lot of fun!

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
August 13th, 2009, 06:43 PM
Hi! Just a quick update... One of the builders has taken on the project of making a FDC CBIOS for the Disk IO project. It seems at long last the dream of a N8VEM that can actually use real floppy disks may be finally coming true.

This would be a huge moment for the N8VEM project if it comes to pass. I certainly hope so and it is looking good at the moment. Keep your fingers crossed. There is a draft FDC CBIOS up on the wiki and a dramatically improve disk monitor in the works too.

The VDU board seems trapped in trace routing/optimizer purgatory. I am not sure when it will be done but hopefully while we are still young. The PCB trace routing exceeded some type of complexity threshold and the router has been having an awful time with it.

Thanks and have a nice day!

Andrew Lynch

Dr_Acula
August 13th, 2009, 11:03 PM
Floppy disk access will be nifty. Posts are coming thick and fast on the forum as it comes together.

Andrew - the 30 boards I ordered arrived today and I'm going to keep a few and send most of them over from here in Australia to you in the US as it will mean shipping costs will be lower for most people. I soldered one up today and it booted 1st time. The design is getting very reliable now.

Also, some crazy experimental stuff going on with the Propeller. Take a 40 pin prop chip, eeprom, ram chip, max232 and a thumbnail sized sd card. Load up 8 disk images of 1-8mb each off the Altair SIMH project and fire up a Z80 emulation in software. It can do Mbasic, Wordstar and even games - all the stuff the N8VEM can. And today xmodem is working so can transfer files.

The Prop emulation is still experimental but shows great potential. Coupled with the wireless network we already have working, the prop emulation could act as a file server for a N8VEM network.

I have to stop posting now - my soldering iron is cooling down!

wolfie
August 20th, 2009, 07:59 PM
is there a list of part that are needed to build a z80 because i want to build one but i don't want to spend alot of money and i am hopeing i can scavenge most it if not all from old motherboards. thanks

cosam
August 21st, 2009, 02:02 AM
is there a list of part that are needed to build a z80 because i want to build one but i don't want to spend alot of money and i am hopeing i can scavenge most it if not all from old motherboards. thanks
I take it you're not talking about the N8VEM, in which case we could split this off into a new thread if necessary.

The bare minimum would be the Z80 CPU itself, some memory and an oscillator to use as a clock. Some kind of I/O is nice if you want to see what it's doing - this could be as simple as some LEDs and/or switches.

You might be able to scavenge an old flash BIOS chip to use as ROM, maybe the cache from a 486 motherboard could work as RAM. The Z80 and an oscillator can be found on some kinds of expansion cards.

Then you're got the small point of actually designing your computer ;-) You'll also need something to wire it all up on, like a bread board or some other kind of prototyping board for soldering or wire wrapping.

Dr_Acula
August 21st, 2009, 02:12 AM
I don't think you will get many parts from old motherboards. Unless they are vintage motherboards, in which case, pls pls, stop right now!

I built a couple of Z80 computers in the last week. Takes about half an hour to solder a board up once you have the components. Realistic cost is about $60 per board - can you afford that?

NobodyIsHere
August 21st, 2009, 03:50 AM
is there a list of part that are needed to build a z80 because i want to build one but i don't want to spend alot of money and i am hopeing i can scavenge most it if not all from old motherboards. thanks

Hi! Yes, there are parts lists and BOMs for all the N8VEM designs on the wiki. Also schematics, hardware design information, software, PCB layouts, Gerber files, KiCAD and Eagle EDA files, stories, notes, builder dialogs, questions, answers, pretty much any sort of information you can think of is there already. It is all freely available for builder use.

I highly encourage you to use scrap electronics for parts. Using scrap is a triple win; you save lots of money and it makes the build more enjoyable (I think) and you keep perfectly good working components out of the waste electronics stream. Lots of old electronic components contain elements which are perfectly safe in a working system but are toxic and dangerous when left outside in the elements to degrade. Certainly reusing scrap electronics is a better and more responsible thing than sending it to some pitiful third world person poison themselves and everyone else by burning it in an open pit for scrap metals.

The N8VEM parts are mostly common 74LSxxx TTL and there is a lot of flexibility for parts substitution. You can find ICs and components in a variety of places ranging from old PCs to various scrap electronics. I have recycled a *lot* of components that way. Old controllers, cash registers, consumer electronics, broken toys, random ISA boards (broken of course). Old PCs are great too but that's almost too easy a target. Go after something more challenging!

There are several techniques for extracting used ICs and components from old boards. You'll find many of the ICs you'd need on practically any old PCB from the early 1980's although I don't recommend trashing vintage computers there are plenty of other parts donors out there if you are willing to dig into anything with a circuit board.

8255, 16550, 74ls245, 74ls08, 74ls10, 74ls32, resistors, capacitors, connectors, etc are all very commonly available parts. You can find them at surplus stores or even electronic scrap yards. Depending on how adventuresome you are I recommend getting a chip tester or at least one working unit for part substitution to help sort out the good from the bad.

Believe me, you won't be the first N8VEM builder to go down this path! Just join mailing list and wiki and post lots of questions and tell us all about your progress!

There are lots of exciting things happening right now. Work continues on the FDC CBIOS issue although we've kind of taken a little break to work on the PropIO board. Last night was a big event; I am building a prototype of the PropIO along with Dave (Yoda) the PropIO designer. Here are some photos of last nights results:

http://groups.google.com/group/n8vem/browse_thread/thread/f6cb899ef2965903/cb07e94b794b4ff4?show_docid=cb07e94b794b4ff4#

I am not sure what's next. I am thinking since we made such great progress on the PropIO that Dave probably needs some time to digest the next steps. The plan is to get the PropIO uSD socket working and write a CBIOS to use those itty bitty uSD cards to work as mega sized CP/M hard drives. There is already a CBIOS that uses the PropIO PS/2 keyboard and VGA display.

While that project is "soaking" I think I am going to write a floppy disk test routine extension to the FDC monitor program that Dan, another N8VEM builder, wrote recently. I added a floppy disk formatting routine and it works fine although I am curious to see how many builders are able to use the floppy drive subsystem and how reliable it is.

So there is a lot happening on the N8VEM home brew computing project. Please join us if you are interested. There is always room for more exciting builder projects and neat stuff to do. James and the Propeller fans are a veritable fountain of cool and wonderous projects. I can't keep up with the developments there are so many and so often!

Thanks and have a nice day!

Andrew Lynch

wolfie
August 21st, 2009, 04:46 PM
I don't think you will get many parts from old motherboards. Unless they are vintage motherboards, in which case, pls pls, stop right now!

I built a couple of Z80 computers in the last week. Takes about half an hour to solder a board up once you have the components. Realistic cost is about $60 per board - can you afford that?

i was thinking about using some 486 motherboards for parts. i know where there are a few that look on the older side. i was also thinking about taking some parts out of a sega genisis if i can. at this moment in time i cannot afford $60. my projects are always longterm. i've had a truck 2 years and its still not on the road.

Dreamcast270mhz
August 21st, 2009, 05:34 PM
The Genesis has a Z80 for SMS compatibility and sound processing. BUT it also has a M68k class CPU which can be prototyped too. :)

carlsson
August 22nd, 2009, 08:01 AM
Wolfie: Maybe you can buy an old, ready built Z80 computer, take it apart in parts and solder everything back in again? :-P You should easily be able to get some simple Z80 computer for less than $60.

NobodyIsHere
August 22nd, 2009, 08:49 AM
Hi! Yes, if you look around you can probably find old electronics with Z80 boards already in them. Its amazing what you can find in a scrap yard or dump. Generic Z80 scrap boards go on sale on eBay frequently although that rather defeats the purpose of scrounging around.

Thanks and have a nice day!

Andrew Lynch

wolfie
August 22nd, 2009, 10:49 AM
Wolfie: Maybe you can buy an old, ready built Z80 computer, take it apart in parts and solder everything back in again? :-P You should easily be able to get some simple Z80 computer for less than $60.

i want to start collecting parts and build my own till i can afford to buy one.

Dreamcast270mhz
August 22nd, 2009, 03:47 PM
Hey wolfie I got 3 Z80A(the A means 2mhz) CPU's I can send you for 4.00 plus postage. PM sent

NobodyIsHere
August 22nd, 2009, 04:56 PM
Hi! You may want to investigate the minimalist approach to building an SBC.

Here is a stripped down minimum parts list just to get something up and running for an N8VEM SBC.

http://n8vem-sbc.pbworks.com/Least-expensive-but-still-functional-N8VEM-SBC

You can probably do some parts substitution and shrink this down even further. Use the Gerber files and make your own PCB to save even more using toner transfer method.

There are lots of things you can do to get the costs down.

Thanks and have a nice day!

Andrew Lynch

wolfie
August 22nd, 2009, 10:55 PM
thanks Andrew for the link. That was exactly what i was looking for. i have only 1 question now and that is what is X1 CRYSTAL. i think i can find the rest. if you could point me to some pictures or info that would appreciated.
thanks again
mat

Dr_Acula
August 23rd, 2009, 12:59 AM
There are two crystals and they are both 14 pin modules. Only a couple of dollars from futurlec or many other places. The 4Mhz one is the main clock and you can run a range of frequencies - eg I underclock mine at 3.68Mhz because I have a few of those modules lying around. The 1.8432 Mhz module does need to be this frequency though as this runs the UART which sets the baud rate. The modules have 4 pins but they fit into a 14 pin socket so that makes it easy to change clock frequencies if you want to down the track.

If you were feeling keen there are clock circuits using discrete xtals and a few gates from a 74LS04.

NobodyIsHere
August 23rd, 2009, 03:35 AM
thanks Andrew for the link. That was exactly what i was looking for. i have only 1 question now and that is what is X1 CRYSTAL. i think i can find the rest. if you could point me to some pictures or info that would appreciated.
thanks again
mat

Hi! Thanks! James is right, there are 2 main oscillators; the UART (1.832MHz) and CPU clock (typically 4 MHz but can be practically anything).

There is also another crystal X1 for the realtime clock. It is 32768 Hz and not needed in the absolute minimum build without the RTC.

Thanks and have a nice day!

Andrew Lynch

Dr_Acula
August 23rd, 2009, 06:44 AM
Yes, Andrew is right, that is a real time clock crystal. You can leave out that part of the circuit if you like.

I've got some photos of a recent build of a modified N8VEM that has a few extra features. http://www.smarthome.viviti.com/build

Things are changing all the time with this project so if you are interested please join in the fun!

NobodyIsHere
August 23rd, 2009, 07:15 AM
Great Googly Moogly! Where did *THAT* come from? Wow!

James, I am impressed! Did you post that write up before and I am just now finding it? Geez, I need to crawl out from under my rock more often.

That's one thing about the N8VEM home brew computing project, you never know what will happen next! You made my day!

Thanks! Have a nice day!

Andrew Lynch

ziloo
August 23rd, 2009, 12:20 PM
Great Googly Moogly!


Without help from your best friend "Google", tell me
who or what is/was "Moogly"?

Thanks and have a nice day...

ziloo

NobodyIsHere
August 23rd, 2009, 12:39 PM
Hi! It is an oblique reference to a very funny football (US) related TV commercial. The grounds keeper has just finished laying out the chalk lines and field graphics of the Kansas City Chiefs. After all that work, he looks over and sees he has spelled out the Kansas City Chefs. The look on the poor guys face is priceless.

http://www.youtube.com/watch?v=hSAXLayoMKI

Yep, I know the feeling.

Thanks and have nice day!

Andrew Lynch

ziloo
August 23rd, 2009, 01:29 PM
.....an oblique reference to a very funny football (US) related TV commercial. .....

yet...there is another "Moogly" that I am thinking... :wink:

ziloo

NobodyIsHere
August 23rd, 2009, 01:33 PM
OK, this I gotta hear...

Waiting patiently...

Thanks and have a nice day!

Andrew Lynch

Dr_Acula
August 23rd, 2009, 06:14 PM
Did you post that write up before and I am just now finding it?

I took the photos some time ago but only got around to writing it up last night. The boards are being rushed to you as we speak. I thought a build using photos would be better than a description.

Still chuckling about the football team story.

MikeS
August 23rd, 2009, 06:41 PM
James, as usual I'm sitting here with my mouth open; where the heck *DO* you find the time to come up with all this great stuff?

NobodyIsHere
August 23rd, 2009, 06:57 PM
Wow! Things are really rolling fast now. Disk IO FDC CBIOS development and test is going at break neck speeds and PropIO is going just as fast! I am barely able to keep up with the testing! This is a really great problem to have!

Disk IO FDC support has never looked better and the bugs are being crushed left and right. There is still a nasty one embedded in there some place but it is fast running out of room to hide. The Disk IO can now read and write many files to the floppy disks and for most of them it seems to work fine. There are problems but they are repeatable so I think they'll be found before long.

PropIO is also blooming. Just tonight the VGA & PS/2 keyboard terminal interface got VT-100 compatibility from the PockeTerm project (Thanks James, Jeff, Vince, and others!). I think the uSD support is probably on its way soon too. There is so much successful reuse from the Propeller group that development goes quickly once the major infrastructure is in place.

Wow, what a weekend! I think I need to build another N8VEM SBC setup bench just to support all the testing. This is exciting!

Thanks and have a nice day!

Andrew Lynch

NobodyIsHere
August 29th, 2009, 07:02 PM
Hi! Just posted a fully functional but not optimized FDC CBIOS on the wiki for test. It seems to work fine and at least I didn't find a way to break it.

Please let me know if you are interested in building your own home brew computer. Soon there will be a full fledged FDC CBIOS for the Disk IO board to support floppy disks.

Thanks and have a nice day!

Andrew Lynch

Dougtronics
August 29th, 2009, 07:47 PM
Hi! Just posted a fully functional but not optimized FDC CBIOS on the wiki for test. It seems to work fine and at least I didn't find a way to break it.

Please let me know if you are interested in building your own home brew computer. Soon there will be a full fledged FDC CBIOS for the Disk IO board to support floppy disks.

Thanks and have a nice day!

Andrew Lynch

Count me in, I always like to build project like this, and I am not too far from Jameco.

Dougtronics

NobodyIsHere
August 30th, 2009, 07:54 AM
Hi Doug! The first step is to sign up for the mailing list and wiki. Then you can get all the information you would like and build your own system. Probably by the time you get your PCBs and build them up the FDC CBIOS will be even better and you'll be able to use it for your home brew system.

There are several PCBs available such as the SBC, ECB backplane, ECB bus monitor, ECB prototyping board, DiskIO, Zilog Peripherals board, 6809 host processor board, etc. I have all the PCBs available for builders.

There are at least two other boards in active development such as the Video Display Unit (VDU) for composite video and PS/2 keyboard and mouse and the PropIO which is an intelligent IO controller and provides VGA display, PS/2 keyboard, and uSD media capability.

In addition, there are related projects such as the DSKY front panel debugger, Vince Briel's PockeTerm, and James mini-N8VEM SBCs. There are probably others as well but I'm having increasing difficulties keeping up since there is so much development recently.

All design information for hardware and software is freely and publicly available. The PCBs are available and low cost to encourage easy entry to the project.

Thanks and have a nice day!

Andrew Lynch

Soupwizard
August 30th, 2009, 04:19 PM
Hi Doug! ... There are several PCBs available such as the SBC, ECB backplane, ECB bus monitor, ECB prototyping board, DiskIO, Zilog Peripherals board, 6809 host processor board, etc. I have all the PCBs available for builders.

Doug was by my place this morning to pick up some Kaypros I was giving away, and he bought my spare N8VEM cpu and backplane boards (I bought an extra set but a friend who going to build with me bailed so I didn't need them anymore), so he's on his way!

NobodyIsHere
August 30th, 2009, 05:57 PM
Hi! That's great! Just be sure that all new builders review the mailing list and wiki *before* they buy anything so they are fully informed of what they are getting in to. I recommend that any new builders thoroughly check out the N8VEM project beforehand on the wiki and mailing list and make fully informed decisions. Making your own home brew computer is a lot of fun and I am totally enthralled with it but it is not for everyone! Reviewing the trials and tribulations of our builders will help people make informed decisions.

Honestly though, there are few builders with genuine problems during build. A lot fewer than I would have expected. Only a few have required more than simple fixes to get going and almost all got their systems working on the first try AFAIK. This is both good and bad. Good is that builders are successful but bad in that there are so few new builders with problems to help. The few new builders with build problems about get mobbed on the mailing list with other builders trying to help.

I think its a bit like the MayTag repairman at times...

Thanks and have a nice day!

Andrew Lynch

Dougtronics
August 31st, 2009, 12:23 AM
Hi Doug! The first step is to sign up for the mailing list and wiki. Then you can get all the information you would like and build your own system. Probably by the time you get your PCBs and build them up the FDC CBIOS will be even better and you'll be able to use it for your home brew system.

There are several PCBs available such as the SBC, ECB backplane, ECB bus monitor, ECB prototyping board, DiskIO, Zilog Peripherals board, 6809 host processor board, etc. I have all the PCBs available for builders.

There are at least two other boards in active development such as the Video Display Unit (VDU) for composite video and PS/2 keyboard and mouse and the PropIO which is an intelligent IO controller and provides VGA display, PS/2 keyboard, and uSD media capability.

In addition, there are related projects such as the DSKY front panel debugger, Vince Briel's PockeTerm, and James mini-N8VEM SBCs. There are probably others as well but I'm having increasing difficulties keeping up since there is so much development recently.

All design information for hardware and software is freely and publicly available. The PCBs are available and low cost to encourage easy entry to the project.

Thanks and have a nice day!

Andrew Lynch

Thanks, got you and how to sign up for the mailing list and wiki ?

Dougtronics

NobodyIsHere
August 31st, 2009, 03:58 AM
Thanks, got you and how to sign up for the mailing list and wiki ?

Dougtronics

Hi Doug! Please join us on the N8VEM mailing list and wiki:

http://groups.google.com/group/n8vem

http://n8vem-sbc.pbwiki.com/

Thanks and have a nice day!

Andrew Lynch