Spectrum 0.99E
--------------

Usage:

SPECTRUM/SPEC386/SPEC16K [tapefile.tap] [/SP=snapshot.sp] [/I=tapefile.tap]
                         [/SND=sound_opt] [/D=delay]

Where:

tapefile.tap:
       TAP input file or device (see below the available devices). Default
       extension is .TAP and is appended automatically if not specified.

       NOTE: Output to TAP is not implemented.

/I=tapefile.tap
       Same as above

/SP=   Load snapshot in *.SP format

/SND=  Sound option:
       OFF no sound
       SPK or IBM  Speaker (default)
       ADL or SB   AdLib

/D=    Specify delay (in decimal). 0=max speed, 65535=min.


Devices which can be used instead of tapefile.tap:

SB:[PORT]    Sound Blaster at I/O port PORT (default 220h)
LPT:[PORT]   Parallel port at I/O port PORT (default is the same as LPT1)
LPT1:     \
LPT2:      > Corresponding parallel ports
LPT3:     /

Example:
  SPEC386 SB:240 /SP=LOAD.SP /D=100 /SND=OFF
      Loads the snapshot LOAD.SP (which immediately activates LOAD ""),
      specifying that the tape reading device is the Sound Blaster at
      port 240, an emulation delay of 100 units and sound off.

Keys in the menu:

F1   To enter the emulator
F2   To save snapshot (saved as SNAPnnnn.SP)
F3   To generate NMI
F4   To pause (F1 to resume)
F9   To reset (emulated Z80 reset)
F10  To exit to DOS


Keys unlisted in menu:

F7 = "Rewind" the tapefile

"+" (num keypad) to increase speed
"-" (num keypad) to decrease speed

Contacting the author:

  Via Internet by sending E-mail to pgimeno@iname.com
  Via Fidonet by sending Netmail to 2:346/207.62

Revision history:

  0.99A:
    -First official public version after VGASPEC was illegally spread
     (noone knew about EGASPEC which also existed initially until I
     joined them both in a unique program). Basic changes were: change
     in file format, a few bugs corrected and a proper menu screen with
     my name in it (this made me learn!).

  0.99B:
    -NMI bug corrected.
    -RLD/RRD now update the screen (Wheelie uses them).
    -Enhanced RLD/RRD implementation.
    -Changed the action of certain keys during load.

  0.99C:
    -The BIOS of some VGA cards does not allow the 200-scanline mode required
     by the emulator. Not my fault but a VGA BIOS bug. Fixed using direct port
     access.
    -Fixed a bug in the interrupt generator. Ints were not disabled before the
     int routine was called. Now, AQUAPLANE and some other games work properly
     in all machines.

  0.99D:
    -Internal structure modified, resulting in a slight speed enhancement.
    -In the VGA, the border does not cause screen flickering any more.
    -Fixed obscure bug when saving snapshots, if SNAPxxxx.SP did exist.
    -Fixed NMI handling so that the CPU can resume if a HALT instruction is
     being executed.
    -Unsuccessful trial to fix the 6th bit of Port 254 behaviour.
    -Fixed obscure bug in the cassette LOAD subroutine.
    -Included Kempston-joystick emulation in the cursor keys.
    -The light of the diskette drive is now turned off before executing
     the emulator. This way the drive stops spinning if the emulator is
     loaded from diskette.
    -Included SPECTRUM.ICO and SPECTRUM.PIF for Windows, as well as a
     printable (EPSON- and IBM-compatible printers only) keyboard template.
    -Added a specific version for 386. The gain in speed is very poor though.

  0.99E:
    -Added SB load option (command-line only).
    -Added sound options (command-line only).
    -Added speed control.
    -Full R-register emulation.
    -Some undocumented instructions/flags support added. GnG, Bounder and
     Sabre Wulf work properly now.
    -The HALT instruction does no longer synchronize with vertical retrace.
     Now Wizard's Lair and Ping Pong work properly, but programs that did
     synchronize with the screen now don't (e.g. Aquaplane).
    -Loading a word from FFFFh works properly now (hopefully).
    -TAP file support (read-only).
    -The screen position table is generated in run-time and is not part of
     the executable file. This has resulted in a more compact executable.
    -16K version.
    -Removed SPECTRUM.PIF and TECLADO.PRN. Added SPECTRUM.PNG, SPEC_BW.PNG
     and SPEC_WB.PNG so hopefully more people can print it. The drawings are
     copyright 1992,1998 by Pedro Gimeno. Also added LOAD.SP and TAP.BAT to
     start loading a TAP file immediately.
    -Removed last traces of ROM modification.
    -Fixed crash when the printer was not ready.
    -EGA support eliminated. Write me if you want support for it.
    -Diskette loading works again.

    The following change was present but not documented in version 0.99E:
    -Bit 3 of status flags is now used to store the internal CPU's IMFa
     flag. If it's 0, the interrupt mode is IM0; if 1, interrupt mode will
     be 1 or 2 depending on bit 1.

  0.99F:
    -Worked around incompatibility problem with video under Windows. Now
     the border doesn't show those annoying vertical lines anymore.
    -Changed meaning of bit 3 of status flag, to maintain backward
     compatibility. The meaning of this bit is now the following:
        0 -> IM 1 or 2 (bit 1 of status flag decides what).
        1 -> IM 0
     It's ignored anyway since IM 0 is not emulated.
