Skip to content

Commit

Permalink
Fix bad English
Browse files Browse the repository at this point in the history
  • Loading branch information
freemanix committed Dec 29, 2018
1 parent fd98241 commit c3915b7
Showing 1 changed file with 6 additions and 6 deletions.
12 changes: 6 additions & 6 deletions README.md
Expand Up @@ -2,7 +2,7 @@

## ZX Spectrum 48k emulator for Psion SIBO devices

This repository contains source code for ZXEmul - ZX Spectrum emulator for Psion SIBO devices (Psion 3a, Psion 3c and Psion 3mx). The emulator was designed, developped and tested from July to December 2000 in Prague, Czech Republic and released as freeware on Christmas 2000.
This repository contains source code for ZXEmul - ZX Spectrum emulator for Psion SIBO devices (Psion 3a, Psion 3c and Psion 3mx). The emulator was designed, developed and tested from July to December 2000 in Prague, Czech Republic and released as freeware on Christmas 2000.

![ZXemul screen](imgs/screen.gif "ZXemul screen")

Expand All @@ -14,7 +14,7 @@ This repository contains source code for ZXEmul - ZX Spectrum emulator for Psion
* 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
* 70-110% speed of the 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

Expand All @@ -24,13 +24,13 @@ This repository contains source code for ZXEmul - ZX Spectrum emulator for Psion

## Emulator architecture

To maximize the emulation speed, the emulation core is written as Psion SIBO logical device driver (LDD) in Intel 8086 assembler, with direct access to device memory and screen. The emulator itself is HWIM SIBO C application, which opens and calls the emulation core device driver. There is also a MS-DOS version of ZXEMUL, which links to the same emulation core, but can be run directly on PC for debugging.
To maximize the emulation speed, the emulation core is written as Psion SIBO logical device driver (LDD) in Intel 8086 assembler, with direct access to device memory and screen. The emulator itself is an HWIM SIBO C application, which opens and calls the emulation core device driver. There is also an MS-DOS version of ZXEMUL, which links to the same emulation core, but can be run directly on PC for debugging.

The Z80 processor instructions are emulated, one by one, on the 16-bit 8086 CPU compatible CPU of Psion. Registers AF, BC, HL, SP and PC are mapped directly onto 8086 registers, others must use memory for storage. To decode instructions as fast as possible, the fetch and jump to table code is copied at the end of the most frequently used instructions (this saves final JMP). The code uses TASM macros extensively to simplify encoding of all instruction variants.

The final speed of emulation depends on the code being run, type of instructions and difficulty to precisely emulate them on 8086. With the help of Psion 3mx CPU clocked at 27 MHz, the emulation of Z80 clocked at 3.5 MHz can run in realtime speed.
The final speed of emulation depends on the code being run, type of instructions and difficulty to precisely emulate them on 8086. With the help of Psion 3mx CPU clocked at 27 MHz, the emulation of Z80 clocked at 3.5 MHz can run in real time speed.

The drawing routines are optimized for the selected mode and they convert ZX Spectrum memory area directly into Psion display area in memory. The emulation is run for given amount of instructions, then the display is updated, input/output state read/written, and INTs generated.
The drawing routines are optimized for the selected mode and they convert ZX Spectrum memory area directly into the Psion display area in memory. The emulation is run for given amount of instructions, then the display is updated, input/output state read/written, and INTs generated.

The original ZX Spectrum ROM uses code which tries to overwrite the ROM itself. As the emulator has no memory protection implemented, the ROM is patched on load to prevent this.

Expand All @@ -40,4 +40,4 @@ Please note that to build the emulator for yourself, you will need the Psion SIB

## Binaries

Download the [original released ZXEMUL.ZIP](release/zxemul.zip), which contains the instructions how to install the emulator onto Psion device.
Download the [original released ZXEMUL.ZIP](release/zxemul.zip), which contains the instructions how to install the emulator onto a Psion device.

0 comments on commit c3915b7

Please sign in to comment.