ZX81 Emulator written in Typescript
The Sinclair ZX81 was my first computer, in 1982. It is one of those home computers very popular in the '80s and affordable (£49.95 in kit). Other very popular computers were the Commodore 64 and the Apple II but were far more expensive. The successor of the ZX81 was the ZX Spectrum.
The ZX81 computer was based on a 8-bit processor (
Z80A from Zilog or
µPD780C from NEC) at 3.5 MHz with 1 KiB of RAM and 8 KiB of ROM. It was possible the buy a RAM extension (I had a 16 KiB one).
The characters set was not based on
ASCII but was custom and includes only capital letters. It includes also some graphic characters:
Using these characters, it was possible to make some graphics but it was very limited (64x48). Using some tricks (and sometimes some hardware modifications), it was possible to achieve (more or less) 256x192 (more or less because it was not possible to get all pixel combinations per line).
These are my objectives for this project:
- Find a way to transform automatically Java code into Typescript. The
Z80emulation code is too big to be translated manually.
- Use the latest version of Webpack.
- Use Promise, fetch, async and await syntax.
Currently, all the objectives are fullfiled except those:
- The keyboard does not always display properly on iPad.
I found one of my first applications: a game I build in 1985. Texts were in French and I have translated them in English.
It is written with a mix of
BASIC (to display the menu, the rules of the game, etc) and
Z80 assembly code (for the game itself).
Want to try the game and the emulator? It is available at the following address: www.andrivet.com/static/ZX81/:
a keys to move the left character,
l to move the right one, and
j to abandon.
In the menu, if you choose item
5, you will exit the game and play with the ZX81 emulator. The original manual Sinclair ZX81 BASIC Programming is available.
|Documents||Contains some documents related to ZX81, such as the original manual Sinclair ZX81 BASIC Programming, the Z80 CPU User document, etc.|
|Emulator||The Typescript emulator|
Credits and Copyrights
Note: A full list of components used by the emulator can be found in NOTICE.md.
- ZX81 Emulator written in Typescript Copyright © 2017 Sebastien Andrivet.
USINEgames Copyright © 1985-2017 Sebastien Andrivet.
This emulator is based on these software:
- C++ emulator EightyOne Copyright © 2003-2006 Michael D Wynne and by others.
- Java emulator JtyOne Java translation © 2006 Simon Holdsworth and others.
- Z80 Emulation based on Fuse - the Free Unix Spectrum Emulator Copyright © 2003 Philip Kendall.
The emulator code is released under GNU General Public License version 3 (GPLv3). Components are released under their respective licenses.