What I've attached below is a drawing of a Z80 project that I did, you guessed it, way back in the 80's. The data and address lines on the left goto the Z80. The RD and WR lines on the left are the read and write lines from the Z80. The MREQ is a line from the Z80 that tells us that the address/data busses are being used for memory operations. It enables the 74LS138 when high and thus allows the memory chips to be addressed.Ok, i know this is a lot to ask of you, kchriste, but i was wondering if you would draw a diagram of that.
To use the Z80 or the 8088 both require you to have a method of burning an EEPROM. Back in the 80's I built my own using the Z80. I had to build a discrete logic data entry system to key the Hex codes into battery backed RAM (I didn't own a computer!). All opcodes where hand assembled and entered via hexkeypad. Boy did I have time on my hands or what?Ok, if you think the Z80 is useless, then what about the 8088? I have one of those. I got it out of a PC XT, along with that DRAM. How about his CPU?
What I've attached below is a drawing of a Z80 project that I did, you guessed it, way back in the 80's. The data and address lines on the left goto the Z80. The RD and WR lines on the left are the read and write lines from the Z80. The MREQ is a line from the Z80 that tells us that the address/data busses are being used for memory operations. It enables the 74LS138 when high and thus allows the memory chips to be addressed.
The Z80 also has a IORQ line that tells us that the address/data busses are being used IO. It is not shown on this diagram.
The memory map of this circuit is as follows:
ROM 0x0000 - 0x07FF
RAM1 0X0800 - 0X0FFF
RAM2 0X1000 - 0X17FF
When the Z80 is first powered up and reset, it will look for the first instruction at address 0x0000 which is in the ROM chip. What happens after that is up to what is programmed into the ROM.
To use the Z80 or the 8088 both require you to have a method of burning an EEPROM. Back in the 80's I built my own using the Z80. I had to build a discrete logic data entry system to key the Hex codes into battery backed RAM (I didn't own a computer!). All opcodes where hand assembled and entered via hexkeypad. Boy did I have time on my hands or what? Then I wrote code and tested it. Finally I wrote the code to burn the EEPROM and crossed my fingers... Much easier today with a computer, compiler and burner! But if you don't have a burner you'll have to do what I did I don't recommend it.
Much easier to start with a PIC or AVR type chip. They have everything on a single chip, cost less than $5, and just need 5V. A good place to start. Then if you want tackle the Z80, 8085, 8088, 8086, etc you will be ready.
0x just means that the 4 digits following it are HEX digits. It is to avoid confusing a HEX number with decimal number if there is no A,B,C,D,E, OR F in it. Like the number 1234. Is it HEX or decimal? You know that 0x1234 is hex which is 4660 in decimal.I have a question; What is the syntax of the address "*x****"? What i mean, is, what do each one of the digits mean? Like the number before the the "x", and the 4 numbers that ar after. They are in HEX, right?
Besides being connected to the 3 memory chips and the 74LS138, they go off to another diagram on another page (There are 7 pages) to some special control circuitry. For this example we can ignore the special control circuitry.And why is there 3 CE lines coming off of the circuit? Shouldn't all be connected?
It is connected to the upper address lines to select the 3 memory chips like this:What is the purpose of the multiplexer?
Parallel EEPROM is what the Z80 can read natively. It cannot use serial EEPROM for program memory.I was wondering if a serial EEPROM would work with a shift register? Or should i get a parallel EEPROM?
No problem!Thanks for your help so far!
0x just means that the 4 digits following it are HEX digits. It is to avoid confusing a HEX number with decimal number if there is no A,B,C,D,E, OR F in it. Like the number 1234. Is it HEX or decimal? You know that 0x1234 is hex which is 4660 in decimal.
Besides being connected to the 3 memory chips and the 74LS138, they go off to another diagram on another page (There are 7 pages) to some special control circuitry. For this example we can ignore the special control circuitry.
Quote:
Parallel EEPROM is what the Z80 can read natively. It cannot use serial EEPROM for program memory.
I hope you say that 20 more questions from now!No problem!
It is actually the 74LS138 which controls the special control circuitry as well as the memories. ie: data flows out those lines to the other page, not in.Ahh, i see. But then how would i control the memories without that circuit? Also, are thoes SRAM or DRAM chips?
That'll answer alot of questions for you and probably generate another 20!I just bought that book i talked about in another post a few days ago. The book is called "Computer archetecture and organization". I will read it cover to cover as soon as i get it
Marks256 said:Ok, if you think the Z80 is useless, then what about the 8088? I have one of those. I got it out of a PC XT, along with that DRAM. How about his CPU? I like the sounds of that, but some of the pins are multipurpose. I think they are mulitplexed? I don't know, but a few of the address lines are for addressinga AND data? How does that work? I have the pinouts of the 8088 included.
They are SRAM chips. I don't think you'll be able to find the same chips I used because they are really old and dated now. Who wants 2K RAM chips these days? Just get a 32K one and a 32K EEPROM and you'll have the whole Z80 address space used up. Even those may be hard to find.
That'll answer alot of questions for you and probably generate another 20!
There is a much funnier, cheaper and more rewarding approach to computing.
Look at this link **broken link removed**
At a starting cost of $13 you will get a running computer to program before the first day is over. A few resistors and you can program it from your PC.
You will have a robot running before you get anything out of the Z80.
For the Z80 you will need an EPROM burner and eraser to write the boot code. So when you got this for all your savings you got to understand how to use it. Then you got to know the assembler for the Z80 to program it. I understand your desire for building a computer. But it's like climbing a mountain before you even have learned to walk if you do not have a whole bunch of experience.
And certainly with the simple beginner questions you're asking?, your chances of building a full blown 1970's/1980's computer seen VERY remote!
I would suggest you start somewhat lower?, perhaps a 6502 or Z80?, something more back in the "build from scratch" days. An 8088 or 8086 probably isn't too bad?, but a 486 is asking for trouble!.
Marks256 said:We all must learn some how. I have chosen to learn with the z80. Actually, i think you were the one who suggested the Z80 TO ME!
Not a chance!and stop all your silly questions relating to it?
Anyway, I've scanned the EZ80 circuit for you, it should (hopefully) allow you to see how a simple Z80 circuit looks, and stop all your silly questions relating to it?
Marks256 said:Just as the title asks; what is multiplexing? I have the slightest idea, but i don't understand. Thanks.
It is combining multible lines into one. The multiplexer samples each line at a rate faster then that rate that the lines change. It then sends the value of each line in rapid susession.
Basically, it sends a more then one thing at a time down a wire.
Marks256 said:I just ran into another slight problem. I found nine sticks of RAM in an old motherboard. From what i can read on them, i can tell that they are 256k. The problem is; I can't find any data on them.The part number is as follows; UM61M256K-15. The reason the "M" is in bold is because it is on the chip too. They are in a 28 DIP package. Does anyone have any data on these? I suppose if you think it would be worth the effort, i will post a topic in the datasheets request forum. Thanks!
Aah, i am not sure what you mean? Do you mean what type of computer i will program the BOOT ROM on? I don't know. I have a i480 Laptop running DOS 6.0 from a floppy, or a TI Travelmate 6030 with Win98 on it, and the same kind with DOS on it. Or a Gateway with XP Home on it, or my desktop running XP PRO on it. I have enough computers, but what would you suggest for a compiler?So, after you lay down the circuitry and purchase a PC to plug an expensive PROM burner into it, you have to pick an OS (Operating System) and the compiler to write it in. Any thoughts on which of these you will eventually use?
I am around mostly during the week. I do go camping alot on the weekends so I may take a few days to respond to posts then. Not to mention my 1.5 weeks holiday at the start of September.That'll answer alot of questions for you and probably generate another 20!
Most likely. You will be here, right? Lol.
Well, I didn't have a scope or even a computer then either... It can be done without these tools if you are very carefull in assembling your circuit.Yes, i know a pic would be much funner and easier, BUT I JUST DON'T WANT TO! Ok, i just want to use the Z80, then an 8088, and then build my own CPU. I don't even own an Oscilloscope!
Nigel, that is a nasty trick they use to scan the Keyboard Rows via the upper address lines!Anyway, I've scanned the EZ80 circuit for you, it should (hopefully) allow you to see how a simple Z80 circuit looks, and stop all your silly questions relating to it?
kchriste said:Nigel, that is a nasty trick they use to scan the Keyboard Rows via the upper address lines!First I thought they were just using the IO addressing to scan the rows, and then I realized that IO transactions only involve the lower 8bits of the address buss.... Hmmm... Must be some undocumented function. Ahhh! I figured it out. They are using the Memory mapped IO probably with the LD (0x????), A instuction. You made me dig out my old dusty hardcover paper Z80 manual. Now look what you've done!
Marks256 said:Ok, i just want to get this straight now. I have been looking at Z80 and other schematics, and found something that disturbed me. It looks to me as if the software does all of the work!? Is this true? I mean, the hardware is just directly hooked into some I/O's, and no other controlling hardware! Is this fact, or am i out-of-it?
So, if i am correct, memory isn't really necessary? I know it is needed to store variables, data, and crap like that, but it isn't mandatory?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?