• Please review our updated Terms and Rules here

i would like to make a cp/m capable computer

Sure, I'll have those schematics ready for you in a couple of days.
If you want to interact with the computer through a serial terminal, with this design you can do a simple Z80 computer with 4 chips - an Atmel ATmega16 uC, a 128k SRAM chip (I'm using the lower half only), a Z80, and an RS232 line driver. The Atmega16 has a built-in UART and can relay characters back and forth from the Z80. To solve the timing issues, the ATmega16 listens for the IORQ signal (when the Z80 wants to interact with IO), and immediately asserts WAIT. I use IO port 0 for terminal I/O, and relay each character received from the Z80 over the UART.
To add the keyboard and composite display capability requires a couple of logic chips and two additional microcontrollers.

I'll let you know when I have the schematics ready.
 
I guess I should point to my little project: http://mini-altair.tripod.com/, though I posted about it a while ago. It's an 8085 SBC that runs CP/M. It also has micro-controllers hanging off the bus to pre-load the RAM, jam boot instructions and do the floppy emulation with an SD card. One nice thing is that it's pretty much software compatible with an Altair 8800, so you can run all the Altair software including Altair Disk Basic without modification.
 
Ok I went to glitch's project and got the free run test completed and was wondering, do i have to use the 74373 for memory or can i use the 8155 for memory?
 
Huh? The 373 is an octal latch/flip-flop. Without looking at glitch's schematic, I'm going to guess that it's used to demultiplex the low 8 bits of address from data. It's not a memory device. The 8155 has very little memory on it; enough for some very simple tasks, but a far cry from what's needed for CP/M. You'll need an SRAM chip (e.g. a 62256 will give you 32K; a 628128 will give you 128KB (you can bank-switch that if you want to use the whole thing))
 
from what you said i guess the 8155 is not a memory controller but instead it is just a io controller with a timer with a little ram (512 bytes)

also do you think i should use parts from a spare xt clone board
 
Last edited:
I'm assuming that you mean the 8155 :). Yes, it's sort of an all-purpose chip to get you the smallest chip count for a functional system. Unfortunately, it's pretty limited on RAM.

Certainly most of the chips on an XT clone board are 8085-compatible (e.g. the 8254 (or 8253), 8237, 8259, 8255--even the uPD765/8272 floppy controller (but I wouldn't use that one--there are much better controllers). So, it's your board, but most of the peripheral chips are still available on the retail market--and they're inexpensive.
 
Do you mean that you intend to trash a perfectly good XT clone board? I wouldn't--I'd think that a functional XT clone board would be worth more than the sum of its chips.
 
I'll admit that I'm torn here. On one hand, learning to troubleshoot and repair the board would be a great experience. On the other, if it goes unrepaired, it's junk. Then again, suppose one of the chips that you want to use on your 8085 project is the chip causing the XT clone problem. You'd just be importing a problem into your 8085 design, which would very likely cause you some anguish.

Your choice, I guess.
 
never mind about the xt board im saving it. But i do have one more question so if i do get the 74LS373 what would that allow me to do?
 
Do you understand the function of the 373? If not, try to follow along.

The 8085 has 40 pins. Those 40 pins have to furnish power (2 pins); serial input and output (2 pins), read, write, ready and hold and hold acknowledge (5 pins), 3 status lines, S0, S1 and S2 (IO/M) (3 pins), Interrupt and Interrupt Acknowledge (2 pins), RST 5.5, 6.5 and 7.5 as well as TRAP (4 pins), Reset In and Reset Out (2 pins), crystal 1 and 2 (2 pins), clock out (1 pin) and address valid (1 pin) as well as 8 data bits and 16 address bits (24 pins). So, if we total those up we get:

2+2+5+3+2+4+2+2+1+1+24 = 48 pins. Houston, we have a problem--our package doesn't have enough pins! (Yes, we could make the package larger, but 40 pins was, for a long time, the upper end of the DIP world). So how do we get out of this mess?

Easy; use some pins for two purposes. Namely, we use the lowest 8 address bits to double as data bits. We can use the "address valid) (ALE) to tell us when those pins have an address and not data on them, but we need a way to remember what they were when it comes around to passing data through them.

So we use a "latch" that, when triggered by ALE, will "remember" the 8 low order address bits. Now, the 74LS373 isn't the only chip than can do this (you can use a 74LS573 or 4 74LS74 dual flip-flops or any of a host of other chips and chip combinations.). but it and the later 74LS573 are the most convenient. The 573 is essentially the same as a 373, but has its inputs on one side of the chip and the outputs on the other side of the chip, instead of intermingling them as the 373 does. In other words, for use as a bus latch, it makes layout easier.

As an aside, the Z80 does not multiplex its address and data lines, but has fewer auxiliary status and control lines. Compromises are the way of life in chips. You'll find the same design approach on the 8086 and 8088 CPUs.
 
Thank you very much for explaining. Now I am not as confused and the pin layout is a little more clearly defined in my mind thanks to what you have said.;)
 
Any good reason for wanting to build 8085-based system specifically?

Z80-based system will be much easier to implement. Z80 CPU doesn't do bus multiplexing, so it will save you the 74LS373 latch, wires, and some headache. Also Z80 has richer instruction set, and probably some CP/M software was written to take an advantage of it and won't work on 8085.

It is possible to build a very basic Z80 system using Z80 CPU itself, SRAM, EPROM, UART, and a few 74* chips for the glue logic. N8VEM does more or less that, plus it provides ECB bus in case you'll want to extend your system in the future. In case you don't want future extendability, but rather just something to play with, you can take a look at my Zeta SBC project: http://n8vem-sbc.pbworks.com/w/page/44366173/Zeta SBC

The only advantage of 8085 is simpler interface to other Intel chips (8259 PIC and 8237 DMA specifically). It is possible to use both of them with Z80, but it will require some additional logic. But most likely you don't want to implement a multi-level interrupts or a DMA for a simple system anyways...

If you still want to use an Intel CPU, I would go for a minimum mode 8088: Its hardware interface is very similar to 8085, but on the software side it is a 16-bit CPU capable of addressing 1MB of memory... There are quite a few 8088 based projects on the internet.
 
Back
Top