Unix pages
Home -> UNIX software -> JOYCE


JOYCE emulates the Amstrad PCW on Unix, Windows and Mac OS X. Since it's written using SDL, it shouldn't be too hard to port it to other platforms such as MacOS Classic or BeOS.

JOYCE incorporates ANNE, which emulates the PcW16.

Update History

JOYCE v2.5.3 (development) released. PCW-Linkit emulation, ability to use the serial port as a UNIX terminal.
JOYCE v2.5.2 (development) released. Improved LocoLink emulation.
JOYCE v2.4.2 (stable) released. Compilation fixes for C++17 compilers.
JOYCE v2.5.1 (development) and 2.4.1 (stable) released. Fixes for parallel port emulation within ANNE.
JOYCE v2.5.0 (development) released. Adds support for running CP/M-86 or CP/M 2 as guest sessions inside PCW CP/M.
JOYCE v2.4.0 (stable) released: Fixes an issue where PIP would hang copying 16k-32k files on folders mapped as drives.
JOYCE v2.2.15 (stable) released: Fixes handling of DSK files with unformatted tracks.
JOYCE v2.2.14 (stable) released: Fixes autodetection of extended DSK files, display artefacts when colours are changed while video is disabled, and Rosanne checksum detection when the ROM is patched.
JOYCE v2.2.13 (stable) released: fixes compilation on recent Unix distributions. Since this only applies to Linux source builds I haven't done a new Windows pack.
JOYCE v2.2.12 (stable) released: the default keyboard mapping for the # and \ keys under Windows has been corrected.
JOYCE v2.2.11 (stable) released: added a feature allowing up to 13 emulated hard drives in CP/M (rather than 5-6 as in previous versions). Also corrected the build process so LyX is not required.
JOYCE v2.2.10 (stable) released: compilation fixes for recent GCC versions. Since these only apply to Linux source builds I haven't done a new Windows pack.
JOYCE v2.2.9 (stable) released. This adds emulation of the Electric Studio light pen.
JOYCE v2.2.7 (stable) released. This contains code to guard against the possibility of a malicious CP/M program overwriting or deleting important files on the host computer or crashing JOYCE. If you use JOYCE / ANNE to run CP/M programs downloaded from the Internet, I recommend that you upgrade to this version.
JOYCE v2.2.5 (stable) released, with compilation fixes for the latest version of libpng, and a fix for a crash in the native VGA driver.
JOYCE v2.2.4 (stable) released. Improvements to keyboard emulation; some compiler warnings removed, and an updated SDL.DLL included with the Windows version.
JOYCE v2.2.3 (stable) released. This has a further correction to the configuration script.
JOYCE v2.2.2 (stable) released. This corrects some compilation issues on recent Linux systems.
JOYCE v2.2.1 (stable) released. This corrects a bug which caused ANNE to crash when reinstalling the OS.
JOYCE v2.2.0 (stable) released. Apart from minor code cleanups, this is unchanged from the last development version, 2.1.11.
JOYCE v2.1.11 (development) released. A bug in the Z80 emulation which caused Starglider to hang has been fixed.
JOYCE v2.1.10 (development) released. A longstanding bug which prevented the PCKEY utility working has been fixed.
JOYCE v2.1.9 (development) released. This includes a bugfix to the new folder support in 2.1.8, and some changes to allow compilation on Mac OS X.
JOYCE v2.1.8 (development) released. This allows folders on the host PC to be used as disc images, without the need for any changes to the software on the PCW.
JOYCE v2.1.7 (development) released. The native GSX and Logo drivers (which went missing in JOYCE 2.0.0) have been brought back.
JOYCE v2.1.6 (development) released. This version improves support for some PCW games and disc protection schemes. The Windows version now works if there are no printers set up.
JOYCE v2.1.5 (development) released. This version adds support for joystick emulation using the host PC's joystick(s).
JOYCE v2.1.4 (development) released. Support for my proposed extension to the DSK format has been added; this allows the emulated PcW16 to load CP/M.
JOYCE v2.1.3 (development) released. Various bug fixes in the PcW16 acceleration code.
JOYCE v2.1.2 (development) released. The bug fixed last year in 2.0.2 is now fixed in the development version as well. This version also includes acceleration code in the PcW16 emulator, allowing slow operations such as the memory test to be skipped.
JOYCE v2.0.2 (stable) released - bug fix in MYZ80 hard drive emulation.

PCW Miscellany

These are here because I can't think of anywhere else among my pages to put them.

PCW hardware information

This is included in the JOYCE package, but it's here in case you want it as a separate download: PCW hardware information.

The PCW Keyboard

Keyboard layout and wire protocol.

Gem Drive / Flash Drive hardware information

JOYCE does not emulate the Cirtech Gem hard drive or Flash Drive; its own emulated hard drive does not match any real-world hardware. But I've documented the real hardware: Gem Drive and Flash Drive.

(See also the Gem Drive installation instructions below)

Hardware installation instructions

Amstrad CP/M screen fonts

Articles and software related to screen font redefinition

PCW PD catalogue

Public Domain Software Catalogue from PCW PD

File formats

LocoScript 1 file format.

Moonstone BasHelp file format and utilities.

LocoScript Version History

LocoScript Version History (my reconstruction)

PCW television output

This is a circuit diagram for a PCW-to-television converter, allowing a PCW screen to be displayed on one or more television sets. I redrew it from the original, published in the Crawley PCW Club magazine.

PDF circuit diagram

Original Diagram2 file (requires Diagram2 under NeXTStep or OpenStep).

PCW / PC Hybrid

[swift286.jpg, 91Kb]

This advertisement is for a "Swift-286-PCW", a hybrid between a 286 PC and a PCW. Apparently only fourteen of these were ever sold, so the chances of one still existing must be pretty slim.

Though I've not seen one, I'd guess that the PCW compatible video card was a monochrome card (I'd guess MDA or Hercules; the ATI Small Wonder would also be a possibility). The PCW video system has a command ('float video' - OUT 0xF8, 8) which stops the PCW video controller trying to drive the monitor. The monitor signals are present on the PCW expansion port (pin 44 for SYNC, 46 for VIDEO) so once the PCW video controller has been disabled, the PC video card can drive the monitor using them.

My thanks to David Rathbone, who owned Micro Surgeons, for information on this system.

8000 Plus / PCW Plus typeins

[TGZ] typeins.tar.gz (299k) contains type-in listings from issues 1-124 of 8000 Plus / PCW Plus.

Multilink Network

I describe a PCW network card and the network it was attached to here.


LocoLink interface and wire protocol.

John Elliott 2023-03-25