Electronics > Projects, Designs, and Technical Stuff
Z80 running CP\M
Ferroto:
Beware for I have some noob questions ;D
I've always wanted to make a homebrew z80 computer but have no idea where to start. I've dealt with micros but never dealt with a processor before and every homebrew project I've seen went way above my head.
I've found a site that has the CM\M ASM files for the Z80 http://www.cpm.z80.de/source.html
As well as the processor its self http://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=269-3895-ND
I know some basics like the address lines are used to address ram and ROM and the data lines are bidirectional it has a 16-bit address bus and an 8-bit data bus
My first question is: Does the processor address the first address in RAM on boot like the 8088\86 processor. and if so is the CPU responsible for transferring the firmware from ROM to RAM or does that have to be done with external circuitry.
saturation:
My 2c. I began my microprocessor world with the 6800 and the Z80, then later the 8080. This was a long time ago.
I recall with some aged confusion, one of these 3 addressed memory from top to bottom, so the boot code had to reside within a fixed location likely 0000, since on power up, it would begin reading from 0000 and work up. I don't recall if electronics did the transfer from ROM to RAM, I think the ROM must occupy the boot memory addresses the CPU will read on start up and thus, all the initializations must be there.
THey still make the microprofessor and clones of it, so you can purchase the hardware since writing software for it in hex, is fairly time consuming.
http://en.wikipedia.org/wiki/Micro-Professor_MPF-I
http://flite.co.uk/microprofessor-mpf-1b-z80-training-system.htm
Balaur:
The "classic" Z80 that you plan to use has a single memory address space from 0 to 64KB. It doesn't distinguish between ROM and RAM, it just asserts the address, rd/wr and mreq signals whenever memory access is needed.
The reset vector is 0x0000. You would normally map some kind of a ROM memory here that contain your application/firmware and map some RAM elsewhere.
Please have a look at the ZX Spectrum machines:
http://en.wikipedia.org/wiki/Sinclair_ZX_Spectrum
http://www.worldofspectrum.org/documentation.html#manuals
Those are the most widely know Z80 computers. The implementation uses 16KB ROM (EPROM) chips from 0 to 16KB and the rest is RAM. Some versions include memory bank switching for multiplying the available address space.
Also, if you go for a ZX-Spectrum clone, you can instantly use a wide library of software, including CP/M.
RayJones:
Wow, a Z-80 project today. :)
Rodney Zaks' book was the bible on the Z-80.
Mine became very dog eared as I read it on the train many times going to/from RMIT.
I even have a Microprofessor I was given many years after I had finished RMIT, we used these at uni at the time and they had a nice fluorescent 14 segment display.
Never been fired up though by myself!
And yeah the Z-80 sets the program counter to 0000 upon reset and starts reading opcodes from there.
Other processors used vector tables and other techniques, but a simple lets start reading from 0 was the Z-80's approach.
One unique feature the Z-80 had at the time was shadow registers to avoid wasting time doing context switches in interrupts, very handy.
Ferroto:
--- Quote from: Balaur on November 18, 2010, 04:53:10 am ---The "classic" Z80 that you plan to use has a single memory address space from 0 to 64KB. It doesn't distinguish between ROM and RAM, it just asserts the address, rd/wr and mreq signals whenever memory access is needed.
The reset vector is 0x0000. You would normally map some kind of a ROM memory here that contain your application/firmware and map some RAM elsewhere.
Please have a look at the ZX Spectrum machines:
http://en.wikipedia.org/wiki/Sinclair_ZX_Spectrum
http://www.worldofspectrum.org/documentation.html#manuals
Those are the most widely know Z80 computers. The implementation uses 16KB ROM (EPROM) chips from 0 to 16KB and the rest is RAM. Some versions include memory bank switching for multiplying the available address space.
Also, if you go for a ZX-Spectrum clone, you can instantly use a wide library of software, including CP/M.
--- End quote ---
Thanks, do I need any other Zilog branded chips to make this work or do I just need the CPU, Parallel ram that has 16 bit addressing and 8 bit databus, and similar ROM.
I'll check those links out when I get home from school.
Navigation
[0] Message Index
[#] Next page
Go to full version