So lets go into some technical details with the ZXmore.
In very simple words (but this is more marketing than detailed technical description) the ZXmore may be described as follows:
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
This could maybe understood from even not so technical users. For the technical experts here are the more detailed features.
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.