Share Tweet reddit Email

Imagine an alternative 1987. IBM never bothered to enter the microcomputer market. Apple has yet to launch the Macintosh. A new generation of 16-bit computers aimed at people who grew up with 8-bit machines is on sale. The IIGS from Apple, the Amiga from Atari, the C65 from Commodore. But the MSX Turbo-R is still in development. There’s a small window of opportunity for another manufacturer to launch a 16-bit, Z80 instruction set compatible machine that can run Microsoft BASIC programs. The Chloe Corporation aims to take 8080 and Z80 users into the 16-bit era with the new Chloe 280SE.

Fast-forward to 2019. There are a lot of FPGA-based projects to recreate old machines. But they are almost all closed systems to some degree. The hardware design is proprietary, the firmware can only be legally used with a license, source code is not available, or the case is only available from a single vendor. Chloe Corporation decides to create a fully open (hardware, firmware and software) FPGA version of the Chloe 280SE. Users will be able to modify every aspect of the project, do anything they like with it, and the only protected IP will be the Chloe trademark.

Of course, things didn’t work out quite like that. But there is an FPGA machine called the Chloe 280SE in development by a small group of enthusiasts, and it is a fully open system. The hardware and FPGA core are based on an existing open project, the ZX-Uno. The BASIC interpreter is derived in part from the Timex Sinclair 1000. The OS kernel is the most cryptic part of the project, being reverse engineered from a firmware for the divMMC SD card interface, but source code is provided.

The long term goal is to replace the current FPGA core with a dedicated 16-bit core that will provide a number of additional features. But that core will remain compatible with the standard ZX-Uno hardware. Therefore, the current specification of the machine is not final and includes only what is available in the last publicly released core:

Z80A CPU @28MHz.

512KB RAM.

100MHz bus.

256 color palette (G3R3B2).

Direct access 32KB video RAM (shared with main RAM).

60Hz interrupt (NTSC/VGA compatible).

80 column text mode (2 color).

40 column bitmap mode (64 color with attributes).

Six channel PSG @1.75MHz.

40K boot ROM (no system disk required).

Microsoft BASIC style interpreter (with on-entry error checking and built in disk file commands).

FAT-32 file system.

88-key mechanical keyboard (US layout).

Serial mouse (up to four buttons and scroll wheel support).

Genesis game pad support.

Full localization support with code pages, languages and keyboard files.

After the ZX-Uno is configured to run as a Chloe 280SE, the firmware can be updated simply by copying the update file to the root of the SD card and power cycling the machine. Video modes are currently limited to the legacy modes provided by the existing FPGA core, but the plan is to provide more advanced modes in the 16-bit core. Audio is provided by two AY-3-8913 chips implemented in the FPGA core. The 16-bit core should also include an 8-bit DAC.

Chloe Corporation has realistic expectations about the level of interest in a machine like this. There isn’t going to be a “big bang” crowdfunding campaign. Instead, there’s a Patreon where those who are interested can get exclusive updates for $1 a month. The first funding goal is to get the ZX-Uno board professionally redesigned to comply with FCC and CE EMR regulations. Sponsors are also encouraged to contribute to the project, for example by providing translations in their native language.

Because there is little incentive to develop original titles for a platform this niche, frameworks are being developed for the machine’s application package format to make it easy to port programs from other platforms, such as the Timex Sinclair 2068. However, there are a good selection of developer tools available, many of which are cross-platform, including:

There are also a number of technical demos with full source code available from Source Solutions demonstrating techniques such as:

Fading images in and out.

Loading files from disk.

Palette cycling.

Playing music.

Reading the contents of a folder.

Scrolling an image across the screen from a file.

Using the shadow RAM.

Video mode and frame buffer combinations.

Although the Chloe 280SE can boot without a disk, if a system folder is provided it can contain a configuration file with code page and language settings that will override the default (IBM 437 / US English) at boot time. The BASIC interpreter is about 23K in length which leaves about 41K for BASIC programs. Video RAM contains the bitmap, attributes, palette, character map and the 256 character font. It is paged in only during writes to the screen. This means programs that don’t require BASIC can comfortably contain up to 32K of continuous code and 128K of data in 16K chunks without getting into paging gymnastics. By using RAM in the lowest 16K, you can have up to 48K of continuous code.

Applications consist of a main executable and a resource folder. They are launched using RUN a$ (where a$ is the name of the application). The advantage of the application package format is that you can modify the resources of the application without having to recompile it. It also makes it easier for the user to customize the application. One example of how this is used is the slideshow application, which displays any images stored in the resource folder, without needing to know the filenames in advance.

While 6502 coders have the Mega65 and Commander X16 to look forward to, the hope is that the Chloe 280SE will appeal to those who grew up with Z80 computers that ran Microsoft BASIC.

You can download the emulator, tools and applications from Source Solutions on itch.io.

You can follow Chloe Corporation on:











