In fact it would be possible to pack all logic into a very big CPLD which many people aren't able to solder themselve. As I am preparing this project as a kit it should be very easy for most people to handle. And it has to be more than just 4 or 5 chips, I think. There are two many CPLD projects out there, but this is more or less philosophy.
Here you have the final revision with the exact position of all components and a PDF for a larger view. It will have white color (solder mask) with black silk print like the ZX80CORE.
It was quite hard doing the routing with 900 pins, 200 vias and more than 1000 inches track length all in all on a board with just 8 x 6 inches.
It took over a week to finish. Minimum track width is 8 mil (0.2mm) and minimum track space is 12 mil (0.3mm) - so it is very full but complete. Of course there are much wider tracks for the power supply (60 with up to 200 mil depending on space) and enough power supply capacitors. So far so good.
The board fits into a standard original ZX80 case - nearly. Nearly because I don't think there are too much unused original cases out there and nearly because the connectors on the rear side do not match to all positions. But it fits into the acrylic case I made last year for the ZX80CORE if anyone likes to upgrade it. So the board price will be nearly the same as for the ZX80CORE - so GBP 16.00. But the minimal kit is offered with some additional maybe harder to get parts in single quotes.
The board kit will be offered for GBP 24 and contains the pcb, the USB controller chip from FTDI (VNC32-L1B) which is preprogrammed and soldered on the back side, the preprogrammed CPLD from Altera (MAX3000) in PLCC case (can be inserted easily in a standard PLCC socket), a RGB color LED, a battery holder for a CR1220 battery (3V) for the real time clock and a special reset key on the board. I will offer complete part kits and keyboards as well and come back with further details soon.
The firmware for the FTDI controller can be updated easily with a simple USB stick so the initial program will have some basic functionality which can be upgraded from time to time with more functionality and features and support of different USB components. The main advantage to the common SD/MMC cards is, that via USB you can connect many other peripherals not only mass storage. And there are 2 ports present, one for a USB stick as mass storage interface and a second for some peripheral like a RS232 converter if somebody likes to use a real terminal for CP/M or maybe some newer joysticks. There are some crazy toys out there waiting to be adapted to the ZXmore.
I will come back with a list of all provided features and needed components soon.
- ZXmore - Layout.pdf
- (53.58 KiB) Downloaded 163 times
Unfortunately it will be a bit more expencive than planned but this is a 3 or 4 in one system (depends if you count the partly spectrum support) and has additional interfaces like 2 USB ports for connecting USB sticks as mass storage and other peripherals like joysticks, keyboards, serial converter for CP/M and so on. I thought a while of maybe offer downgraded versions but decided against it because saving about GBP 10 make loose of some nice features, so if you want to have this gadget you maybe need to calculate a bit more.
There are 3 kits I will offer officially like following (prices are in EUR and GBP, there maybe a difference but the currency exchange changes daily and paypal will charge additional fee for receiving GBP on an EUR accout):
Board kit for GBP 24.00 (EUR 30.00) including some maybe hard to get parts and SMD chip already soldered on the board
* Pcb board 204 x 156 mm, 2 layer in white color with black silk print
* VNC2-32L1B USB controller, programmed and soldered already (SMD part)
* EPM3032ALC44-10N, programmed, CPLD in PLCC44 case, can be inserted in a PLCC socket easily
* RGB LED, 4 Pin
* Reset switch MJTP-1105
* Battery holder S8411-45R (for CR1220 batteries for the RTC chip)
Parts kit for GBP EUR 40.00 (EUR 50.00) with all other parts (without the keyboard)
* see attached PDF for details (including high precision sockets)
Keyboard set for GBP 16.00 (EUR 20.00)
* Original ZX80 keyboard membrane in high glossy quality for high asthetic demands
* 40 Alps SMD tactile switches SKQGAFE010 for an easy and bombastic type feeling
So in fact you need all which is in summary GBP 80.00 or EUR 100.00 but your are free to choose the options you need. The minimum kit is the board kit, if you have most other parts at home this would make sense. The keyboard kit is optional and the combination of membrane and tactile switches highly recommended for power users and a good offer also, I think. The SMD tactile switches are very easy to solder for people with less soldering experience as well, not harder than an IC socket. Alternatively you may use a ZX8-KDLX external keyboard as well as the board has connectors for it. If anybody needs some special parts he couldn't get at his local dealer he may write me a PN and ask for some additional components, no problem.
- (67.58 KiB) Downloaded 154 times
In very simple words (but this is more marketing than detailed technical description) the ZXmore may be described as follows:
This could maybe understood from even not so technical users. For the technical experts here are the more detailed features.4-in-1 computer with support of executing ZX80, ZX81, ZX Spectrum and CP/M software with up to 60k RAM
8 instances with 64k RAM and ROM for every instance with free segmentation in 4k steps, all in all 512k RAM and 512k ROM
7 instances can be run concurrently with same or different rom binaries, different memory layout and switched between and supported as multitasking
2 USB ports are supported for mass storage (USB stick with FAT32) and peripherals like joysticks, keyboards, printers
optional high speed mode (6.5 MHz instead of 3.25 MHz) for all or single instances upon configuration
As many features are supported with additional software one instance is prepared to run a special ZXmore binary rom for configuration, task switching and multi-tasking. This software is devided into 3 revisions while the first revision (rev.1) is included in the first delivery with the boards in may 2015 and revision 2 and 3 are distributed a few month later for full feature set. This is because I need some time to develop the full binary. Binaries can be easily updated via the USB stick including the firmware for the USB controller, you don't need a programmer or something even not for loading binaries into the flash chip. The system will do all self depending on desired configuration.
Technical feature list:
* compatible to ZX80, ZX81, ZX Spectrum (Rev.2) and CP/M (Rev.3) systems as supporting all binaries and hardware options
* ZX Spectrum supports only monochrome display
* 512k RAM, 512k Flash ROM, 2x USB, composite video via chinch, 9V DC power supply via audio jack 3.5mm, reset key onboard, offering hard and soft reset
* alternative powering via USB host (PC for example) supported
* hardware ROM switch for manually switching all 8 instances - OR - soft switching via keyboard with ZXmore control image (rom binary)
* free memory layout for every instance with use of up to 64k RAM/64k ROM, segmentation possible in 4k steps for every instance, max. 60k RAM
* write protect for flash rom may be activated depending on instance (protect for ZX81 rom writes)
* RAM mirroring can be optional activated per instance for compatibility (A15 mode) - will result in 32k RAM max.
* extended M1 NOT feature which allows running code everywhere in memory, even in $C000-$FFFF
* HRG and UDG may be used over the whole memory area from either ROM or RAM
* highspeed clock when no video display active (user code) with 6.5 MHz - will result in double speed for ZX80 or ZX81
* instances can be switched/activated with simple keypress
* multitasking possible for 2-7 instances upon configuration (Rev.2)
* 2 USB slave ports, powering of ZXmore without external power supply when connecting to a USB host
* USB stick as mass storage BOMS with FAT32 and support of LOAD/SAVE command
* loading and programming rom binaries from USB stick
* real time clock (RTC) for use with CP/M and USB (correct timestamp for files created) (Rev.2)
* RS232 support via USB with external USB-RS232 adapter (Rev.3)
* joystick and keyboard support via USB (Rev.3)
The ZXmore has two 8 bit registers which can be written to with OUT instruction which control all features. This can be used from user programs but should normally coordinated with the control image when using multiple instances with soft switch. So there will be offered a mechanism to set options from programs if needed. After reset and without control image system behaves like a standard ZX80/ZX81 with 16k ROM and 48k RAM.
The extended M1 NOT mode works with the standard video display with HALT and INT ACK (interrupt mode) and allows distinction between code execution during video display and code execution in user programs. So more code or libraries may be used with the ZXmore than with most ZX81 modifications. High speed mode is useful when using the multitasking mode allowing two or more programs to be run concurrently while display and keyboard is focused to the foreground application. But may be used in single instances as well upon configuration.
The memory layout supports any configuration from 4k ROM and 60k RAM to 60k ROM and 4k RAM in 4k steps. It is not possible to use single 4k pages, it is more like a border between RAM and ROM which can be moved. One bit allows to swap RAM and ROM which is important for the CP/M mode which awaits RAM from page zero and ROM normally is supported in the high region. Many implementations use 64k memory even for the BIOS/BDOS of CP/M but this concept uses a fixed ROM with minimum 4k size allowing 60k RAM from $0000-$EFFF and ROM from $F000-$FFFF. The flexible and overlapping memory concept allows to use more memory than 64k but this is not the same as RAM banking. For example it is possible to use ZX81 with use of area $2000-$3FFF with ROM binaries for example some drivers and $2000-$3FFF for video display with HRG software. So both areas RAM or ROM may be activated on request from a user program.
The ZX Spectrum support is restricted to the ZX81 hardware. The video buffer can be displayed from the ZXmore rom binary but in monochrome only and audio and hardware modules won't be supported and it is running slower as the video display take some time. So all in all the ZX Spectrum is possible with about 60% of speed when using the high speed clock. I have plans to develop a full spectrum compatibility module which may be attached via the edge connector and offering colour display, audio support, original clock speed (7 MHz) and a connector for spectrum hardware (expansion connector with ZX spectrum layout). This module will be handled as an additional hardware option which is not included in the ZXmore and may be available in autumn this year converting the ZXmore into a full ZX spectrum.
The main target of this development was to offer CP/M support without loosing ZX80 or ZX81 compatibility. For CP/M the internal keyboard and attached monitor may be used as "terminal" but external RS232 terminal connection via USB will be supported as well. There maybe a restriction with the char mode of the internal display limited to 34 or 36 chars instead of 40 chars but this is handled with the BDOS automatically. So we will see what is technically possible. USB allows support of additional hardware like joysticks, keyboards, printers and more. There maybe a restriction of the amount of concurrently used peripherals depending on the memory size of USB controller but the firmware may changed via the USB stick that there is in fact no really hardware limit. And there are weird toys available for USB.
So hopefully you know now more about the ZXmore.
The board has no direct RS232 interface but a RS232 or serial TTL converter may be used via USB for external connection.
There was not really space for a SUBD9 connector and additional chips, so I decided to use a external USB serial converter.