• Please review our updated Terms and Rules here

Interested in a home brew Z80 computer project?

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?
 
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
 
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
 
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.
 
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.
 
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
 
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
 
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
 
your Z80 toy

your Z80 toy

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.
 
Last edited:
slow EPROM programming

slow EPROM programming

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!"
 
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
 
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
 
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>
 
Last edited:
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
 
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
 
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.
 
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
 
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
 
Hi All! The N8VEM home brew computer project continues bumping along. We've made some big improvements in the documentation on the wiki 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 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 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!
 
Back
Top