Yet another Z180

General "chat", not necessarily MTX related
Post Reply
Martin A
Posts: 797
Joined: 09 Nov 2013 21:03

Yet another Z180

Post by Martin A »

Over on ther 6502 forums there was a post outlining what's basically a 2 chip VGA adaptor, using a 64 macrocell CPLD and a 4k dual port RAM:
http://forum.6502.org/viewtopic.php?f=10&t=6502

It's such a simple idea I decided to try one. Having coded definable, in 6bit fpreground, background and border colour instead of monochrome, my version uses 88 macrosells and 45 pins of a ATF1508 or EPM7128. Taken to extremes, a single 1k Dual port ram could be used, split evenly between screen and characters that gives 32 x 16 tex and space to define 64 characters. Pretty much what you get from the 6847 (Atom/Dragon/CoCo) in text mode.

To test it, I needed a CPU, using the 25.175mhz VGA clock as a CPU clock might have worked with a Z80, they can be pushed pretty hard. But I decided to use a 33mhz rated Z180 for the extra control over wait states and the built in MMU. The 1 meg Z180 memory map is splt up by the CPLD into 16 x 64k "chunks" with ROM in the first 7, then the video memory and then RAM in the other 8, Thats a theoretical 448k ROM, and 512k RAM, though only 128k of each are currently fitted. On boot the entire memory is filled with ROM the boot code then creates a MTX style fixed RAM area at the top of memory, using the MMU, to copy itself to before paging out the ROM.

The keyboard is the modified 88 key USB keyboard I mentioned in Bill's Z180 thread, with a replacement controller.
controller.jpg
controller.jpg (98.84 KiB) Viewed 75130 times
Space under the keyboard is incredible tight, so the chips had to be soldered in, there is no clearnce for sockets. The keyboard appears as a single I/O port, the output port uses the low 4 data bits via a 4 to 16 decoder to set a drive line, instead of controlling the dirve lines directly. Reading from the port reads the 8 keys on the current drive line. That would allow up to 128 keys to be read on a single port, instead of needing 2 as in the MTX. For simplicity I put the Control, Shift amd Alt keys on the same drive line.
Mangled.jpg
Mangled.jpg (78.3 KiB) Viewed 75130 times
keyboard.jpg
keyboard.jpg (60.78 KiB) Viewed 75130 times
Also on the "I/O board" is a CF connected via a 82C55 as used in the CFX. Unlike Bill, I didn't write a new CPM BIOS I re-wrote the FDX bootrom instead! That's not as complicated as it sounds, the CPM "boot" code, that runs once the memoy is sett to all ram, is a straight copy of the CFX code. The "disc" code is also just a copy of the CFX disc code with the I/O ports re-defined. The keyboard is 90% MTX code with updated key tables and the simplified drive line setting code. The video driver code was the only bit really needing any work.

The CF therefore just uses a copy of a CFX partition to boot into CPM, and announces to the world that it's an FDX from 1984.
running FDX bios.jpg
running FDX bios.jpg (86.2 KiB) Viewed 75130 times
In use, the display driver uses the MMU to bring the video memoy into the map then pages it out again on exit. If I ever write a RAMdrive driver it would also use the MMU to make a portion of the unused RAM visible for loading and saving.

Now the extra 0.175mhz from the usung the on spec VGA clock to drive the CPU becomes important, because it possibly makes this the fastest "FDX" around. The Z180 board I did for the MTX plus ran at 25mhz, as does Rememotech.
Post Reply