Sinclair ZX Spectrum emulator in JavaScript/canvas