Features

General

  • graphical user interface using the FLTK library
  • software (FLTK based) or OpenGL video, with resizable emulator window, fullscreen mode, brightness/contrast/gamma can be set globally or separately for red/green/blue channels, color saturation control; additional features in OpenGL mode only: single or double buffered (with synchronization to vertical refresh) mode, linear texture filtering, and some display effects
  • real time audio output uses the PortAudio library (v18 or v19), with support for many native audio APIs (MME/DirectSound/ASIO on Windows, OSS/ALSA/JACK on Linux, and CoreAudio on MacOS X); high quality sample rate conversion with low aliasing; volume control, two first order highpass filters with configurable cutoff frequency, and an optional parametric equalizer can be applied to the audio signal
  • recording audio output to a WAV format sound file
  • recording video and sound output to an AVI format video file, with 768x576 RLE8 or 384x288 uncompressed YV12 video at 24 to 60 frames per second, and 48000 Hz stereo 16-bit PCM audio
  • saving screenshots as 768x576 8-bit RLE compressed TGA files
  • saving and loading snapshots of the state of the emulated machine
  • demo recording (snapshot combined with stream of keyboard events which can be played back with accurate timing)
  • tape emulation with playback, recording, and setting tape position; markers can be created for quick positioning to specific tape locations (useful for tapes with multiple files); uses custom file format which is PCM audio data with 1 to 8 bits of sample resolution and variable sample rate, and header including the table of markers
  • GUI tape editor utility for copying Enterprise files from/to ep128emu tape images
  • simple GUI debugger with support for breakpoints/watchpoints, viewing the current state of CPU registers and memory paging, displaying memory dump or loading from or saving to a file in ASCII or binary format, modifying memory or searching for a pattern of bytes, disassembler with support for all documented and some undocumented Z80 opcodes, address offset for code that runs at a different location than where it is at the time of disassembling, and saving disassembly to a file. For memory operations and the disassembler, addresses can be 16 bit CPU (affected by current paging) or 22 bit physical (all ROM and RAM data can be accessed, regardless of memory paging) addresses. Watchpoints can also be set on I/O ports and physical addresses.

Enterprise emulation

  • instruction based emulation of the Z80 CPU, supports all documented and some undocumented opcodes, and memory wait states (including synchronization with the NICK chip when accessing video memory)
  • RAM size can be set in 16 kilobyte steps in the range 64 to 3712
  • ROM can be loaded from external image files to segments 0 to 7, 16 to 19 (decimal), 32 to 35, and 48 to 51
  • NICK chip emulation, supporting all documented video modes
  • DAVE emulation, including timers, interrupts, external ports for tape and keyboard/joystick, memory paging, and sound output (all effects are supported, and the polynomial counters generate the same pseudo-random "noise" pattern as on the real machine)
  • tape emulation with playback, recording, and setting tape position; markers can be created for quick positioning to specific tape locations (useful for tapes with multiple files); uses custom file format which is PCM audio data with 1 to 8 bits of sample resolution and variable sample rate, and header including the table of markers.
    There is also limited (read only) support for EPTE format tape files, as well as read-write (although without markers) support for sound files like WAV, AIFF, etc.
  • WD177x (floppy disk controller) emulation for EXDOS
  • optional extension ROM (epfileio.rom) that implements a FILE: device for direct access to files on the host system in a single user selectable directory
  • Spectrum emulator card emulation
  • real time clock (at ports 7E, 7F)