The purpose of this project - make emulation of ZX Spectrum clones more easy and keep accuracy of emulation. Speed is not purpose of this project, but I will try to make it faster.
Documentation will be ready as soon as I write JavaDocs for my project.
Central object of emulator - "Computer". It contains only Z80 CPU. You can set the speed of CPU, run/stop emulation and run single steps.
All other objects are "ComponentOfComputer". It may be anything - memory, IO ports, keyboards, joysticks, HDD, Floppy, etc...
General idea - you can add/remove components on the fly, and you can add your own components. So you can create any model of ZX Spectrum, even that did not exists! Create your own model of ZX Spectrum! It should be very interesting for real fans of ZX Spectrum.
ComponentOfComputer should support one or several basic operations from CPU:
Right now the smallest time period between calls to components - one command of Z80. Computer has the own internal timer in mks and can call any component after necessary mks (ComponentOfComputer should declare this time interval first). For example ZX Screen gets a call every 20000 mks to refresh screen.
Current emulated model is "Turbo2+". It's one of Russian's clones of ZX Spectrums. It has extended memory and extended screen modes. You can read more about this computer at http://atmturbo.narod.ru (in Russian).
It's tested with Sun JDK 1.4.1
Download offline emulator (recommended)
Thanks a lot to Razvan Surdulescu for his project jZX. I found many ideas in his project for Java version of my project. And currently I use Z80 processor from jZX.
Author: Sergey Zhukov