Update the french translation regarding the previous revision.
[kugel-rb.git] / apps / plugins / zxbox / README
blob916984027661978fd73714bd3d15e7ce270e93d7
2                       * * * * * * * * * * * * * * *
3                       *                           *
4                       *      S P E C T E M U      *
5                       *                           *
6                       *        Version 0.94       *
7                       *                           *
8                       * * * * * * * * * * * * * * *
11 This package contains a 48k ZX-Spectrum emulator for Linux and other
12 UNIX operating systems, with full Z80 instruction set, comprehensive
13 screen, sound and tape emulation, and snapshot file saving and
14 loading. It can run on a Linux console, or in an X11 window.
16 The program is free software and is copyrighted under the GNU General
17 Public License. It comes with absolutely no warranty. See the file
18 COPYING for details.
20 Written by Miklos Szeredi
21 Email: mszeredi@inf.bme.hu
23 It can be downloaded by FTP from:
24     tsx-11.mit.edu:/pub/linux/ALPHA/spectemu/spectemu-0.94.tar.gz
26     sunsite.unc.edu:/pub/Linux/system/emulators/zx/spectemu-0.94.tar.gz 
28 For news and updates have a look at the Spectemu Page:
29     http://www.inf.bme.hu/~mszeredi/spectemu/
32 You can also join a mailing list (at the Spectemu Page), to receive a
33 notice when new versions of spectemu are available.
36 Table of contents
37 =================
39   1.   Requirements
41   2.   Recommended
43   3.   Features
45   4.   Drawbacks
47   5.   Compiling and installation
49   6.   Using the emulator
51   6.1    Command line arguments and configuration files (NEW)
53   6.2    Using the Spectrum keyboard
55   6.3    Keys that control the emulator
57   6.4    Effects of changing frame frequency and sound buffer size
59   7.   Where can I get ZX Spectrum games for this emulator
61   8.   Tape files
63   8.1    Loading a tape file
65   8.2    Quick loading of tape files
67   8.3    Saving to a tape file
69   8.4    Saving a tape file to real tape
71   8.5    Making a tape file from a real tape
73   9.   Bug reports
75   10.  Credits
78 1. Requirements
79 ===============
81 Linux or other UNIX OS.
82 Color X11 server (depths 8, 16 and 32 bits are supported) 
83         and/or 
84 SVGALIB console graphics library on Linux.
86 2. Recommended
87 ==============
89 A sound-card on Linux for wonderful spectrum 1-bit sound.  And well, a
90 fast enough processor... (Especially for the X11 version.)
92 3. Features
93 ===========
95  - Very fast because of assembly code in emulation (only on Intel
96    processors).
98  - Emulation also in C, which is slower, but supports any processor.
100  - X support (with MITSHM if available, optionally double size window)
102  - Linux console graphics (with SVGALIB)
104  - Sound support (through Linux kernel sound-card driver, 
105    or SUN sound drivers)
107  - Snapshot saving and loading (.Z80 and .SNA format)
109  - Tape emulation: loading from tape files (.TAP and .TZX format)
111  - Optional quick loading of tapes. 
113  - Saving to tape files.
115  - Separate utility to save tape files to real tape
117  - Configurable with config files and from command line
119 4. Drawbacks
120 ============
122  - Poor user interface
124 See the file TODO for a list of things which still need to be done (Maybe
125 by YOU)
127 5. Compiling and installation
128 =============================
130 To install the precompiled Linux executables just run 'make install'
131 as root.
133 To recompile the programs on other platforms first type
135    ./configure
137 This tries to determine the system type and parameters.  Probably you
138 won't have to give any options to configure, but here is the list of
139 the most important options:
141   --help                Print a full list of options
143   --prefix=PREFIX       Install files under PREFIX (default is /usr/local)
144                         Executables go under PREFIX/bin, ...
146   --without-readline    Do not use the readline library (default is to 
147                         use it if it's available on your system)
149   --without-i386asm     Do not use the Intel assembly code (default is 
150                         to use it, if your system is Intel based)
152 You may want to have a look at the produced `Makefile' and `config.h'.
153 Then just type
155   make clean
156   make
158 Then to install the program, login as root, and run
160   make install
162 (If you want to compile on another machine be sure to `make realclean'
163 before re-configuring and re-making the program!)
165 At the moment, there are two executable programs for running the emulator:
167   xspect             the X11 version
168   vgaspect           the Linux console version
170 'vgaspect' uses the SVGALIB library. If you do not have this installed
171 on your system 'vgaspect' cannot be started. You _MUST_ have SVGALIB
172 version 1.2.10 or greater installed, and it is STRONGLY recommended,
173 that you get version 1.2.11 or later!
175 SVGALIB is available at:
176 sunsite.unc.edu:/pub/Linux/libs/graphics/
178 If you have SVGALIB version 1.2.11 or later, the emulator can run in
179 background when you switch virtual consoles.
181 6. Using the emulator
182 =====================
184 After starting 'xspect' or 'vgaspect' you should get the '(C) 1982 Sinclair
185 Research Ltd' message, and after pressing a key, the flashing cursor. If
186 not, then all I can say, is hard luck to you (if you are ambitious, compile
187 the programs with debug information, and try to figure out what is causing
188 the problem). Do not start the emulator processes in the background, the
189 terminal is needed when loading or saving files. 
191 To load a snapshot immediately after the start of the emulator, you
192 can enter the name of the snapshot file on the command line. (Also see
193 section 6.1)
195 E.g. 
197 xspect snap/chuckie2
199 In X you can resize the window. Window size can only be a multiple of
200 the smallest window size (320x256). Smaller window means faster
201 emulation, so if emulation doesn't run at full speed, try making the
202 window smaller.
204 6.1 Command line arguments and configuration files
205 --------------------------------------------------
207 You can give options to Spectemu in three different ways:
209  1) In a configuration file (either ~/.spectemurc, or 
210     /usr/local/share/spectemu/spectemu.cfg)
212  2) With the X Resource Database (.Xdefaults), this applies only to 'xspect'
214  3) On the command line
216 Most of the options are common to all three methods, only the syntax
217 differs slightly. Here are examples of the different syntax:
219 Config File:
220     scale = 1
221     private-map = true
222     sound = false
223     color-type = grayscale
225 .Xdefaults:
226     xspect.scale:      1
227     xspect.privateMap: true
228     xspect.sound:      false
229     xspect.colorType:  grayscale
231 Command line:
232     xspect -scale 1 -private-map -no-sound -color-type grayscale
234 List of common options:
235 ~~~~~~~~~~~~~~~~~~~~~~~
237  NAME               RANGE     DEFAULT   DESCRIPTION
238  ----               -----     -------   -----------
240  frame-skip         1...      2         The smaller this is, the more 
241                                         often the screen is updatated
243  scale              1..4      2         Window size of 'xspect'
245  private-map        yes/no    no        Use private colormap in 'xspect'
247  mit-shm            yes/no    yes       Use MIT-SHM extension in X server 
248                                         if available
250  vga-mode           320x200   320x240   Resolution to use in 'vgaspect',
251                     320x240             320x200 is faster (but not so nice)
253  sound              yes/no    yes       Spectrum sound, if availble
255  sound-delay        1...      4         The amount of frames (1/50 seconds) 
256                                         to delay sound. See section 6.4
258  sound-device       filename  (system   The name of the sound device
259                               dependent)  
261  sound-sample-rate  4000...   ~15625    Sample rate of sound device
263  sound-autoclose    yes/no    yes       Whether to close sound device when
264                                         unused (so other programs can use it) 
266  sound-dsp-setfrag  yes/no    yes       Set this to 'no' if you use PCSND
267                                         sound driver
269  keyboard-type      extended  extended  Specifies the mapping of the keys,
270                     spectrum            from the PC keyboard to the spectrum
271                     compat              keys. See section 6.2
272                     custom              
274  cursor-type        shifted   shifted   How to use the arrow keys on the
275                     raw                 PC keyboard. See section 6.2
276                     joystick            
278  allow-ascii        yes/no    yes       Interpret other keys on the PC
279                                         keyboard. See section 6.2
281  true-shift         <modif>*  alt       Modifier to get shifted symbol 
282                                         as on the PC.
284  func_shift         <modif>*  control   Modifier to get control functions.
286  color-type         normal    normal    What type of colors to use. Gray-
287                     grayscale           scale looks better on monochrome
288                     custom              displays.
290  pause-on-iconify   yes/no    no        Whether to pause emulator, when it
291                                         is iconified ('xspect' only)
293  vga-pause-bg       yes/no    no        Whether to pasue emulator, when you
294                                         switch to a different console
296  quick-load         yes/no    no        Use built in (quick) loader for
297                                         tapefiles.
299  auto-stop          yes/no    no        Pause tape after each segment when
300                                         quick loading.
302  load-immed         yes/no    no        Load tapefile immediately (as if 
303                                         you typed LOAD "" / ENTER)
305  pause              yes/no    no        Pause the emulator on startup
308 * <modif> can be one of: none, shift, lock, control, alt, 
309                          mod2, mod3, mod4, mod5
311 Extra command line parameters:
312 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
314 On the command line you may also use the following options:
316  -help              Prints usage information, and a list of available
317                     options
319  -version           Prints out the version
322 Also on the command line, a snapshot file and/or a tapefile can be
323 specified. Spectemu figures out the type of file from the extension.
324 You can omit the extension, e.g. you have a snapshot file 'snap.z80'
325 and you start spectemu with 'xspect snap', then it will add the '.z80'
326 extension.
328 You can specify what type is the file by preceding it with one of
329 '-z80', '-sna', '-tap' or '-tzx' options. This is useful for cases,
330 when the filename does not have an extension (e.g. automatic starting
331 with the midnight commander). 
333 Extra config file options:
334 ~~~~~~~~~~~~~~~~~~~~~~~~~~
336 Color configuration
337 '''''''''''''''''''
338 You can configure the custom colors in the config files (and the X
339 Resource Database) with:
341     color[0..15] = R G B
343 e.g. 
345     color-type = custom
347     color0 = 10 20 30
348     color7 = 40 50 60
350 changes the 0-th (black) and the 7-th (white) colors. 
352 Keyboard configuration
353 ''''''''''''''''''''''
354 You can set custom key bindings in the config file:
356     Key_<keysym_name> = K ...
357     ...
359 Or in the X resource database:
361     xspect.keys: <keysym_name> = K ...; ...
364 The <keysym_name> can be set to any keysym (defined in 'spkey_p.h').
365 The K arguments are the spectrum keys to be assigned to the given PC
366 key. K can be any letter, number (a..z, 0..9) or the following:
368     none, space, enter, capsshift, symbolshift, 
369     kempston_up, kempston_down, kempston_left, kempston_right, kempston_fire
371 e.g.
372    
373     keyboard-type = custom
374     true-shift  = none   
376     Key_Insert  = capsshift 9
377     Key_Tab     = capsshift symbolshift
378     Key_Shift_R = kempston_fire
379     Key_Alt_L   = symbolshift
380     Key_Alt_R   = symbolshift
381     
382 or as it would appear in a .Xdefaults file:
384     xspect.keyboardType: custom
385     xspect.trueShift:    none
387     xspect.keys:         Insert = capsshift 9;        \
388                          Tab = capsshift symbolshift; \
389                          Shift_R = kempston_fire;     \
390                          Alt_L = symbolshift; Alt_R = symbolshift
392 6.2 Using the Spectrum keyboard
393 -------------------------------
395 Those of you that have at some time used a Spectrum know, that the keyboard
396 of this little computer is something very strange, with a LOT of keywords
397 and symbols on and around each key. If you have not seen this keyboard (or
398 have somehow managed to forget some bit of information that is on it) we
399 produced quite a good copy of it, found in the 'spectkey.gif' file.
401 If you are using 'xspect' than pressing 'Ctrl-k' brings up the picture
402 of the spectrum keyboard. You can press keys with the mouse (even more
403 than one if you like), and it also shows which keys are pressed.  (You
404 can see what the emulator does when, for example you press 'BackSpace'
405 or a '[' key on the PC keyboard).
407 The default mapping of the spectrum's keyboard to the PC's is the
408 following:
410 The numbers, the letters, Enter and Space are the same. The left Shift on
411 the PC corresponds to the CAPS SHIFT key of the Spectrum, and the right
412 Shift corresponds to the SYMBOL SHIFT. This is quite simple and with these
413 keys you can get all the functionality of the original Spectrum (assuming
414 of course, you know how).
416 But...
418 To make life a bit easier, you can also use the Backspace, the arrow
419 keys, and the following symbols as on a PC keyboard: ,./;'-=<>?:"_+[]{}\|~
420 (unless you turn the 'allow-ascii' option off) 
422 To get a symbol which is written above the numbers on the PC, and not
423 the function or symbol that is on the Spectrum, press Alt (actually
424 the value of the 'true-shift' option) instead of Shift.
426 You can slightly modify the mapping with the 'keyboard-type' and
427 'cursor-type' options. Every mapping includes the basic keys (letters,
428 numbers, Space and Enter). Here are the mappings special to each
429 keyboard type and cursor type:
431    PC Key            Spectrum Key
432    ------            ------------
434 (Keyboard Types)
436 extended: (default)
437    Left Shift    ->  Caps Shift
438    Right Shift   ->  Symbol Shift
439    Back Space    ->  Caps Shift + '0'
440    Escape        ->  Caps Shift + '1'
442 spectrum: (spectrum-like layout, useful for some games, e.g. Jumping Jack)
443    < same as extended, plus: >
444    Comma (,)     ->  Symbol Shift
445    Period (.)    ->  Space
446    Semicolon (;) ->  Enter    
448 compat: (similar to other emulators' layouts, e.g. Z80, X128, XZX ...)
449    Shift (both)  ->  Caps Shift
450    Alt           ->  Symbol Shift
451    Back Space    ->  Caps Shift + '0'
452    Escape        ->  Caps Shift + '1'
454 custom:
455    Use key bindings specified in the config file (see section 6.1)
457 (Cursor Types)
459 shifted: (default)
460    Left Arrow    -> Caps Shift + '5'
461    Down Arrow    -> Caps Shift + '6'
462    Up Arrow      -> Caps Shift + '7'
463    Right Arrow   -> Caps Shift + '8'
465 raw:
466    Left Arrow    -> '5'
467    Down Arrow    -> '6'
468    Up Arrow      -> '7'
469    Right Arrow   -> '8'
472 joystick:
473    Left Arrow    -> Kempston Left
474    Down Arrow    -> Kempston Down
475    Up Arrow      -> Kempston Up
476    Right Arrow   -> Kempston Right
477    Keypad Ins    -> Kempston Fire
478    Keypad Del    -> Kempston Fire
479    Keypad Home   -> Kempston Up + Left
480    Keypad PgUp   -> Kempston Up + Right
481    Keypad End    -> Kempston Down + Left
482    Keypad PgDn   -> Kempston Down + Right
485 6.3 Keys that control the emulator
486 ----------------------------------
488 All control keys are produced by pressing the Ctrl key and another key.
490  Ctrl-c, F10      Quit the emulator immediately
491              
492  Ctrl-l, F3       Load a snapshot file; you must type the path and 
493                   filename on the terminal where you started the emulator,
494                   e.g. 'snap/chuckie2'. The type and extension of the
495                   file is determined automatically (.z80 or .sna). 
496              
497  Ctrl-t, F2       Save the current state of the emulator in a snapshot file.
498                   Format depends on the extension (.z80 or .sna). If no
499                   extension is given, .z80 is appended. 
501  Ctrl-w, Ctrl-F2  Save a snapshot to a temporary file 
503  Ctrl-e, Ctrl-F3  Restore last temporary snapshot saved with 'Ctrl-w'
505  Ctrl-q, F5       Reset the Spectrum
506           
507  Ctrl-f           Fast mode
508           
509  Ctrl-n           Normal speed mode
510           
511  Ctrl-b           Pause/Unpause emulator (you can do operations like loading
512                   a snapshot file, etc... in paused mode too)
513           
514  Ctrl-m           Toggle sound on/off
516  Ctrl-h, F1       Print help
517           
518  Ctrl-k           Display (undisplay) keyboard of spectrum. See section 6.2.
519           
520  Ctrl-p, F4       Play tape. Tape file must be entered on the terminal. 
521                   Optionally the starting segment can be entered; 
522                   e.g. 'tape/tape1.tap' or 'tape/tape1.tzx 13'
523           
524  Ctrl-s, F7       Stop tape
525           
526  Ctrl-y           Toggle quick loading
527           
528  Ctrl-o, F6       Pause and unpause during tapefile playing (restarts the
529                   current segment).
530           
531  Ctrl-r           Record to tape file. See section 8.3.
532           
533  Ctrl-\, F9       Refresh screen, reset keyboard state and 
534                   refresh colors.
536  Ctrl-j           Toggle private colormap mode (only X) 
537       
538  Ctrl-comma       Decrease window size (only X)
540  Ctrl-dot         Increase window size (only X)
541           
542  Ctrl-equals      Skip more screen frames
543           
544  Ctrl-minus       Skip less screen frames
545           
546  Ctrl-]           Increase sound buffer size 
547           
548  Ctrl-[           Decrease sound buffer size
549           
551 6.4 Effects of changing frame frequency and sound buffer size
552 -------------------------------------------------------------
554 ONLY READ THIS IF YOU ARE NOT TOTALLY SATISFIED WITH THE EMULATOR'S
555 PERFORMANCE
557 This should be totally automatic, so I'm now programming you to do what
558 the emulator should. (Luckily you are much easier to program) 
560 Frame skipping determines, after how many frames the emulator displays one
561 on the screen. There are 50 frames in one second, and normally every other
562 frame is displayed (25 per second). If the emulator is too slow under X,
563 increasing frame skipping can have a good effect on performance, but at the
564 cost of poorer quality. But the interesting thing is, that increasing frame
565 skipping may cause a worsening of both performance and of picture quality
566 (I will not explain it here why).
568 Decreasing frame skipping has the opposite effect of the above.
570 If the emulator uses sound, but sound is not continuous, then experiment
571 with increasing sound buffer size, and increasing frame skipping. If you
572 are lucky you can make things a bit better. Increasing sound buffer size
573 has also the negative effect of delaying more the sound effects.
575 7. Where can I get ZX Spectrum games for this emulator
576 ======================================================
578 On the Spectemu homepage (http://www.inf.bme.hu/~mszeredi/spectemu/)
579 you can find a list of sites worth checking. Here are some:
581 http://www.void.demon.nl/spectrum.html
582 http://www.nvg.unit.no/sinclair/planet/
584 The fact is, that there were a lot of Spectrum games around on audio tapes,
585 and some of them are really good. There were always cracked and copyable
586 versions around, and nobody was interested in copyrights. Unfortunately the
587 big FTP archives do not allow non free software on their servers, so I
588 can't include any games in this distribution.
590 (Because Spectrums have died out, and perhaps some of the software
591 companies do not exist any more, probably some games could be distributed
592 freely. But I will not check on those things.)
594 I've included a program named 'spconv', written by Henk de Groot
595 (hegr@ensae.ericsson.se) which can convert between snapshot file formats.
597 Alternatively if you have some old spectrum tapes laying around, and you
598 are very brave, you can check out section 8.5.
600 8. Tape files
601 =============
603 8.1 Loading a tape file
604 -----------------------
606 The emulator now supports G.A. Lunter's .TAP and Tomaz Kac's .TZX tape
607 files. To load a file, enter
609 LOAD ""
611 to the spectrum (by pressing keys j""), then press 'Ctrl-p'.
612 On the terminal enter the name of the tape file to load, e.g.
614 tape/cnamemat
616 The emulator will now load from the tape file 'tape/cnamemat.tzx' or
617 'tape/cnamemat.tap' whichever exists. Playing automatically stops at
618 the end of the tape file. To stop loading before this press Ctrl-s.
620 The default extensions are '.tap' / '.tzx' or '.TAP' / '.TZX' depending
621 on whether the entered tape file is upper or lower case.
623 While loading try pressing Ctrl-f, which can speed things up. After loading
624 the file press press Ctrl-n to restore normal speed.
626 8.2 Quick loading of tape files 
627 -------------------------------
629 Quick loading means bypassing of the tape loading routine in the
630 spectrum ROM, and loading of tape blocks directly into the memory.
631 Some programs use their own tape loading routines, and in that case
632 the tape blocks are always "slow loaded" (see above section).
634 Quick loading is optional and can be toggled with the 'Ctrl-y' key.
636 When quick loading is on, after entering 'LOAD ""' you are immediately
637 prompted for a tapefile. If the tapefile can't be loaded, the quick
638 loading of the first header block is cancelled, but you can still load
639 the rest of tape by pressing 'Ctrl-p' and entering the tapefile name.
641 Even in quick load mode, the playing of tapes is not automatically
642 paused, when the program doesn't load more blocks, so with '.tap'
643 files containing multipart games, you have to pause the tape at the
644 end of each part with 'Ctrl-o' ('.tzx' tapefiles can contain a
645 "Stop the Tape" mark, to automatically pause playing).
647 8.3 Saving to a tape file
648 -------------------------
650 If you want to save something to a tape file using the spectrum's "SAVE"
651 command, do the following:
653 1) Enter 'SAVE "file"' on the spectrum
654 2) press Ctrl-r to start the recording
655 3) on the terminal enter the name of the tapefile to use
656 4) press a key on the spectrum
657 5) wait for the recording to stop
658 6) press Ctrl-s to stop recording
660 If the specified tape file already exists, the newly saved segments are
661 appended to the old tapefile.
664 8.4 Saving a tape file to real tape
665 -----------------------------------
667 The utility 'tapeout' enables you to save tape files (.tap and .tzx)
668 to real tape via the soundcard. At the moment it only works on Linux,
669 because it uses the OSS sound driver. (You can compile it for non
670 linux systems, by adding -DNO_SOUNDCARD to CFLAGS in Makefile. Then
671 instead of writing to the sound device, the program writes to a
672 headerless wav file (bits: 8, sample rate: what you've given).)
674 You can compile 'tapeout' by entering
676   make tapeout
678 in the main directory of spectemu. The command line parameters are:
680   tapeout sample_rate tapefile [start_block [output_file]]
682 The default value for start_block is 0, for output_file it is "/dev/dsp"
683 (or if compiled -DNO_SOUNDCARD it is "tape.out").
685 You can stop recording to the tape by pressing Ctrl-C.
687 8.5 Making a tape file from a real tape
688 ---------------------------------------
690 WARNING, ONLY TRY THIS IF YOU REALLY-REALLY WANT TO!
692 Well it's not so bad as that, I've digitized a lot Spectrum tapes with
693 ease, but I have the advantage of having played with tapes a lot on the
694 real Spectrum, and of being able to modify the code which does the
695 digitization.
697 First of all you must have a sound-card to do this. If you've got it, then
698 you have a small chance of succeeding.
700 First get the cassette player which you used to play Spectrum tapes. Then
701 plug it in your sound-card's 'line-in' or 'mic' inputs. Then somehow set the
702 sound driver so that it reads things form the input in which you plugged
703 your cassette (I use 'xmmix' the 'Motif Audio Mixer' to do this). And if
704 you've managed to get this far, go to the directory where you want to store
705 the tape files (remember, there will be a lot of little files: one for each
706 little segment!), and enter the following command:
708   recs - 32000 | filt | spload tapefile
710                or     
712   recs - 32000 | spload tapefile
714 (The first type worked better for me)
716 Where 'recs', 'filt' and 'spload' are programs found in the utils
717 directory, and 'tapefile' is the name of the tape file without the '.spt'
718 extension.
720 '.spt' tape files only exist because of historical reasons (the tape
721 digitizing program preceeded the emulator, and also at that time I didn't
722 know of the '.TAP' format), and now it isn't suppurted by the emulator
723 any more. So you must convert '.spt' files to '.tap' with the utility 
724 spt2tap (in the utils directory) to use it with the emulator. 
726 (The contents of the utils directory can be remade by changing to that
727 directory and entering the command:  'make realclean; make')
729 Now you can put your favorite Spectrum cassette in the cassette player, and
730 press the Play button.
732 'spload' will write a lot of information on the terminal, of which you
733 might try to make some sense. Also you can do a 'tail -f tapefile.spt' in
734 another terminal, to see what is happening. Again if nothing happens, then
735 you are on your own (and most probably at first nothing will happen).
737 And remember that this digitizer is not better than the real Spectrum, so
738 if you cannot load a program with a Spectrum, you'll most probably will not
739 be able to load it with 'spload'.
741 Good Luck!
743 9. Bug reports
744 ==============
746 Please send bug reports to:
748 mszeredi@inf.bme.hu
750 If you make any changes to the source, please mail me the 'diff -u' of the
751 file(s) changed, and also why were the changes needed.
753 Please also tell me if you would like to maintain, or to continue
754 developing spectemu.
756 10. Credits
757 ===========
759 Szeredi Tamas, for testing the emulator, and for helping with the
760 'spectkey.gif'.
762 Egmont Koblinger for helping to write some parts of the emulator, and for
763 a lot of useful suggestions.
765 Dani Nagy and Zsazsa for helping to test the emulator.
767 G.A. Lunter for a very good description of the Spectrum, the undocumented
768 features of Z80, and the '.z80' snapshot file format.
770 And lots of others, who sent me good ideas and modifications.