PDA

View Full Version : First thoughts on building a simple computer



wilsonsamm
October 1st, 2006, 02:39 AM
Can anyone comment on the feasibility of a setup similar to the following one?

- Z80 processor at something like 3 or 4 MHz
- maybe a meg or so of memory, of which:
- - the bottom bit is ROM containing CP/M
- - the first 64K is that which is used as memory.
- - the highest part is non-volatile and contains a filesystem.
- USB.
- a smallish lcd display, similair perhaps to that of the Amstrad NC100
- small keyboard

and how does a Z80 normally access memory, by itself or through some sort of memory manager?
and how does I/O with the usb and keyboard normally work?

ziloo
October 1st, 2006, 07:09 AM
Hello Friend!

Your best bet of getting a decent answer back is to go to comp.os.cpm
people who have been discussing the issue for a long time now. There are
several threads there that if you search patiently, you shall find some of
your answers. You can also pose new questions...Ask and you shall find!

And welcome to VC town.

Terry Yager
October 1st, 2006, 07:54 AM
Most of what you ask can be, and has been done already (not sure about the USB). The Z80 can use an external MMU, as in the Cambridge Z88, but it is not absolutely necessary. The Z88 can use up to 4Mb of ram as main memory, switched in banks of 64Kb. Most, if not all of CP/M is ROM-able, as in the Epson PX-8, which reserves a small area (at the top of RAM?) for "User Area", where BIOS extensions/additions can be loaded. The PX-8 can also also use an external RAMdisk. Then there's the NEC Starlet, which also has ROM-based CP/M, but uses an external memory module to provide a full 64Kb of main memory/storage (the base unit has only 32Kb, some of which is set aside as mass storage). The Bondwell B2 also has CP/M in ROM, and can use an external RAMdisk for mass storage, as well as having an internal 3.5" floppy. The weird thing about it tho, is that the RAMdisk is volitile. Every time the machine is booted-up, it formats the RAMdisk as part of the power-up procedure. Also interesting is that the CP/M seems to be included in the external RAMdisk module. When the module is disconnected, it will only boot from the floppy.
I'm really getting out of my 'comfort zone' discussing these things, but rest assured, they are possible. It may just be a matter of combining the best features in one system.
If you have an Amstrad portable, you should try running ZCN OS on it. It's a CP/M-alike that uses the SRAM cards as disk drives, so even accessing PCMCIA (and/or CF) is possible. I don't have the URL handy, but google should turn up something.
Another ng you might poke around in is comp.sys.amstrad. There are a lot of (non-snobbish) Z80-knowledgable folk there, including the author of ZCN (can't recall his name right now).
Oh yeah, another thing you might google for is the Cambridge Z88 Developer's Notes, a rather lengthy document which goes into some detail about the memory management scheme (most of which is over my head). IIRC, the Z88's MMU is included in a honkin' big custom chip named 'Blink' so similar hardware may or may not be readily availavle.

--T

ziloo
October 1st, 2006, 09:56 AM
Terry hit the spot very nicely. I have been through this process myself,
and my recommendation to you is:

1- get yourself a nice working z80 system with features close to what
you want
2- collect as much information about the hardware and software
associated with that system
3- study it inside-out
4- start tinkering with hardware and software parts of it, piece by piece
5- gradually transform it to the system you desire

If you need a reference, there are some people who are
very passionate about this vintage book (haven't read it myself):

"Build your own z80 computer", Steve Ciarcia

I am a computer enthusiast myself and in the beginning of a long
journey.

Terry Yager
October 1st, 2006, 10:14 AM
If you need a reference, there are some people who are
very passionate about this vintage book (haven't read it myself):

"Build your own z80 computer", Steve Ciarcia

I am a computer enthusiast myself and in the beginning of a long
journey.

I have that book (again, mostly over my head), as well as several other CP/M & Z80 sources, both hardware & software-centric. If you have any specific questions, perhaps I could look them up somewhere.

--T

Terry Yager
October 1st, 2006, 03:21 PM
Can anyone comment on the feasibility of a setup similar to the following one?

- Z80 processor at something like 3 or 4 MHz
- maybe a meg or so of memory, of which:
- - the bottom bit is ROM containing CP/M


Oh, BTW, you will have a problem uzing the first 256 bytes of RAM for anything but CP/M in a CP/M-based system. One of the 'inviolable rulez' of CP/M is that 'page zero' must be available for storage of certain system variables (including BIOS jump-table, disk parameter block, etc). The usual solution is to place a minimal 'boot-loader' in ROM at 0000H (where the Z80 looks upon reset), which reads the system tracks, then switches to RAM after loading tracks 0 & 1 from disk.

--T

wilsonsamm
October 2nd, 2006, 04:15 AM
The Z80 can use an external MMU, as in the Cambridge Z88, but it is not absolutely necessary.
--T
How do you link the Z80 to the ram without using an MMU? Is it just a case of linking each z80 pin to the corresponding pin on the memory chip?
The downside of having now MMU, I suppose, would be a limit to 64K of memory.

Terry Yager
October 2nd, 2006, 09:11 AM
I'm not really a hardware designer, but perhaps z can chime-in here. The Z80 only has 16 address lines, so is unable to address more than 64K without some outside assistance. Again, I recommend consulting the Z88 Developer's Notes for more info on how they did it. Downloadable text file available here: http://www.worldofspectrum.org/z88forever/technical.htm

--T

Terry Yager
October 2nd, 2006, 09:42 AM
Hmmn, the Z88 Dev. Notes may not be all that helpful, at least in re: the hardware details of the memory management.


The Developer's Notes say:

The BLINK gate array

This secret chip is a NEC uPD65031. It is CMS soldered on the PCB. It manages the memory bank switching, the LCD, the serial port, the interrupts -the heart of the machine. Unfortunately we only know about it's pinout and the description of some registers. Somehow the original notes as supplied to Cambridge Computer were lost during the time of the company's move from Cambridge to Scotland.

--T

ziloo
October 2nd, 2006, 11:31 AM
There are nowadays whatchmacallit "integrated MPUs" that already
have MMU, DMA, serial I/O, etc on one chip. For zilog Z80, there is
Hitachi HD64180 which is a more refined z80 with additional features
such as having an MMU (on-chip) with capability of addressing 512k of
physical address. You can review the chip manual.

There are loads of information on the net about using MMU with Z80.
I don't want to be inquisitive, but if you are a beginner (like myself) you
should start with simple designs that already have implemented MMU and it
works. There are Z80 text books with sections discussing the use of MMU.
But if you are at an advanced level, then you can find some very nice
implementations on the net.

There is a very nice Z80 site that you might want to visit:

http://www.z80.info/#GENERAL

Have fun!