First ZX Spectrum emulator for Psion 3 series

ZX Spectrum emulator was one of cool Psion 5 applications I really missed on my Psion 3mx. In the 1980's, my first real contact with computers started just with the ZX Spectrum. Soon, more powerful computers appeared in my life, so now I am writing this page on a PC with about 300x faster processor, 3000x more memory and a storage equivalent to 7000 90-minutes casettes! But, like in other things in the human life, the first experience is the most important, something that everyone returns to.

At the start of work, writing an emulator of 3.5 MHz Z80 processor running on a poor old I8086 processor seemed as impossible, even if clocked at 27.684 MHz. A lot of highly optimized assembler code with some really nasty tricks together with going to hardware limits of Psion computers was necessary to accomplish this task.


  • compatible with Psion 3a, Psion 3c and Psion 3mx
  • highly optimized emulation core written completely in assembler
  • undocumented Z80 instructions and R register fully supported
  • 3 color modes (INK, Black & White, Gray)
  • 3 screen mapping modes (Pan, Shrink, Fit)
  • simulation of Kempston, Cursor, Fuller and Sinclair joysticks with keys
  • 70-110% speed of original ZX Spectrum on Psion 3mx
  • loading and saving of .Z80 and .SNA file formats
  • built-in Spectrum keyboard layout help screen for BASIC fans
  • freeware


Following screenshots were taken in Gray color mode and Fit screen mapping.

Knight Lore
Highway Encounter

Future plans

I have a lot of plans how to improve it further. Here are some tips for 1.1 version:

  • Sienna support (the screen will have to be cropped even horizontally)
  • TAP file saving/loading support (SAVE/LOAD commands will work)
  • saving screenshots as PIC files
  • limited support for sound
  • options for improving the emulation performance

Do you have a good feature tip for the next ZXemul version? If so, contact me.


Download ZXemul 1.0 (35kB zip)

The installation and usage instructions are included.

Any comments, suggestions or questions are highly appreciated. To contact me, send me an e-mail to freeman@mail-box.cz.

Source code

After 18 years since its creation, I released the source code of ZXemul on GitHub.