Euphoric 0.99b_aym1 (2000-08-28)

  A patch to allow Euphoric 0.99b to compile on Linux.

Euphoric 0.99b_aym2 (2000-12-30)

  First "working" version. No hires. No attributes except paper
  and ink. No keyboard. Supports only 16 BPP PseudoColor visuals
  and the masks are hard-coded.

  Had to disable Reset_6551 because it segfaults.

Euphoric 0.99b_aym3 (2000-12-31)

  - Added changelog.
  - Added VERSION.
  - Added make dist.
  - Added proper RGB masks.
  - Implemented alternate character set.

  Yields about 120 FPS on my K6-2/450

Euphoric 0.99b_aym4 (2001-01-03)

  - Replaced VERSION by parsing of oric.c.
  - Added WM size hints.
  - Added support for 32 bit TrueColor visuals.
  - Fixed 6502.S blunder (mine).
  - New target "make test".

  Still freezes.

Xeuphoric 0.99b_aym5 (2002-01-26)

  - Attributes now correctly reset at start of line.
  - Added missing includes and prototypes.

Xeuphoric 0.1.0 (2002-01-26)

  - New options --help and --version.
  - Separate VERSION file.
  - Separate doc/ and src/ directories.

Xeuphoric 0.2.0 (2002-01-27)

  - Unified 16-bit and 32-bit visual code.

Xeuphoric 0.3.0 (2002-01-28)

  - Fixed top bar in environment screen
  - Rewrote keyboard input. Cursor keys now work. Disabled the
    keypad.

Xeuphoric 0.4.0 (2002-02-02)

  - Replaced ITIMER_VIRTUAL by ITIMER_REAL so the poll rate is
    now really 50 Hz.

Xeuphoric 0.5.0 (2002-08-15)

  - Found a workaround for the lack of timing.
  - New option -A to change the audio device.
  - Stats: removed unused cycles field.
  - New binding [f12] to take a screenshot.
  - Added asterisks in various places in 6502.S, 6551.S and
    8912.S to silence assembler warnings.
  - Added missing includes in config.c.

Xeuphoric 0.6.0 (2002-08-15)

  - Man page: automatically expand date and version number.
  - Removed obsolete options -m and -q.
  - Removed obsolete Keybfr.def and keyboard.c.
  - Menus: changed the auto-repeat delay from 500 ms to 200 ms
    and removed the intermediate 5 Hz segment.
  - Silenced a bunch of compilation warnings (unused variables,
    functions and variables without a type, missing argument
    lists).

Xeuphoric 0.7.0 (2002-08-15)

  - --version prints just the version number.
  - Added missing copyright notices.
  - Fixed corrupt Jasmin ROM.
  - Removed obsolete "oricdisk" ROM (duplicate of microdisc
    ROM).
  - Added the Telestrat ROMs.
  - Given the ROM files lower case names, without trying to make
    them 8+3 compatible.
  - Config files and ROM files are now located through more
    conventional means. You don't need to set the ORIC
    environment variable (and it's been deleted). There are now
    system-wide, per-user and per-directory versions of config
    files and ROM files, and selective overriding of config
    parameters is now possible.

Xeuphoric 0.8.0 (2002-08-17)

  - configure checks for the existence of the OSS header. Now
    compiles without any modifications on platforms without OSS,
    such as FreeBSD.
  - Added support for depths other than 16/32, and visual
    classes other than TrueColor. Xeuphoric now runs in most
    common VGA modes (4/8 bpp palette and 15/16/24/32 bpp true
    colour). The only remaining unsupported mode I'm aware of is
    monochrome, because it requires a different pixmap format (1
    bpp).
  - Killed -m and -q a second time.
  - Added -O to the compilation flags.
  - Removed the "setup:" startup messages.
  - Added two colour bands to the setup screen.
  - Installs as $PREFIX/bin/xeuphoric-$VERSION and makes a
    $PREFIX/bin/xeuphoric symlink pointing to it.
  - Ditto for the man page.

Xeuphoric 0.9.0 (2002-08-21)

  - New keyboard input section in the man page.

Xeuphoric 0.10.0 (2002-08-22)

  - Video emulation is now split in two parts ; rendering into a
    platform independant buffer, and converting the buffer into
    the format the platform wants (i.e. an XImage). Thus we're
    now able to tell which scan lines have changed without
    having to do the whole XImage-ification. Only the scan lines
    that have changed are rendered again, and only the portion
    of the window comprised between the first and the last
    changed scan lines is displayed again. The benefits are 1)
    keeping the complexity of the rendering code down, 2)
    avoiding unnecessary load on the X server (important for
    remote displays and unaccelerated VMware displays), 3) it's
    a stepping stone for pixel doubling.
  - Removed from the tarball .bindir, .datapath, .etcdir,
    .mandir, .rcfiles and .sharedir that are generated by
    ./configure, and PREFIX that is obsolete.

Xeuphoric 0.11.0 (2002-08-23)

  - Pixel doubling, controlled by new option -z.
  - Cosmetic changes in the configure script.

Xeuphoric 0.11.1 (2002-09-23)

  - Don't block when someone else holds /dev/dsp open.

Xeuphoric 0.12.0 (2003-07-02)

  - Bug fix in the handling of disk images. Thanks to Jede for pointing
    it out.
  - When installing, create $PREFIX/bin and $PREFIX/man/man1 if
    necessary. Thanks to Jede for reporting that bug.
  - Silenced warnings.
  - More sound tweaks (error messages include strerror(errno), correct
    fragment size/count setting).
  - Fixed a rendering bug that prevented the use of the hires character
    set in the bottom three lines if the switch to hires mode occurred
    after line 199. This is why the bottom of the screen in the
    Barbitoric demo "ducks" screen looks garbled in Xeuphoric 0.11.
    Thanks to Jede for pointing out the bug and providing a test case.
  - More error message fixes.
  - More documentation.
  - The FDC emulation works now. Thanks to Jede for the patch.
  - Makefile cleanup (use $(CC), $(CFLAGS) and $(LDFLAGS)).
  - Don't let [f4] increase the clock frequency beyond 100 MHz.  Thanks
    for Jede for pointing it out.
  - Removed -O from CFLAGS as it breaks Xeuphoric on too many compilers
    (not just the infamous GCC 2.96 but also GCC 3.0 and 3.2).
  - CLOAD "FOO" tries to read from "foo.tap", "FOO.TAP", "foo" and
    "FOO", in this order.
  - CLOAD "" tries to read from "________.tap", "________.TAP",
    "________" and "FOO", in this order.
  - CSAVE "FOO" writes "foo.tap", not "FOO".
  - CSAVE "" writes to "________.tap", not "________".
  - CSAVE: fixed the bug where the host file size stays at 0 until you
    CSAVE to another file. Thanks to "Ian" for the report.
  - Documented the details of tape emulation in the man page.
  - Messages are printed to standard error during tape I/O so that you
    know what's you going on.
  - Added a list of Oric-key-to-host-key mappings in the man page.

Xeuphoric 0.12.1 (2003-07-04)

  - Bug fix: CLOAD works on .tap files that have all-caps names.

Xeuphoric 0.13.0 (2003-07-04)

  - Implemented -z3.
  - In a momentary lapse of judgement, added support for artsd. By
    default, if compiled on a platform where the libarts development
    files are available, will try to connect to the aRts (nominee for
    worst use of caps) server and fall back on OSS. The new -S option
    can be used to force the use of either sound output method. Thanks
    to Jede for providing sample libarts code.
  - Silenced warnings.

Xeuphoric 0.14.0 (2003-07-06)

  - ./configure : do the right thing if libarts disappears.
  - New -Q option (quit on illegal instruction).

Xeuphoric 0.15.0 (2003-07-13)

  - Re-enabled optimisation. Contrary to what I claimed, the "black
    window" effect caused by compiling with -O was not due to a bug in
    GCC but to a missing volatile qualifier. It was my fault, not GCC's.

  - Allocate a ninth colour (grey) for future use in the debugger.

  - Sound quality has been improved somewhat by writing out audio even
    when there's only silence to output. The Euphoric 0.99b sound code
    used to skip writing to the audio output when the 8912 was silent.
    Thus, when sound was intermittent, the OSS buffers (frags) emptied,
    aggravating the overruns and resulting in a loud 50 Hz buzz in the
    audio output.

    A side-effect of this change is that audio recorded in a regular
    file (-A /some/file) now includes silent periods. It's debatable
    whether or not this is a good thing.

  - Added support for 1-BPP displays (no dithering, though).

  - Moved the to-do stuff from the man page to a separate TODO file.

  - Moved the definition of sound from adlib.S to dsp.c and removed
    adlib.S from the archive.

  - Implemented the blinking attribute.

Xeuphoric 0.16.0 (2003-07-29)

  - Fixed segfault at initialisation in telestrat mode (-t) by using
    ioperm(). This is only for platforms that have the ioperm() system
    call, and you need super-user privileges. If ioperm() is not
    available or fails, an error message is printed and 6551 emulation
    is disabled. Patch by Jede and Andr Majorel.

  - Commented out dead code in 6551.S.

Xeuphoric 0.16.1 (2003-07-31)

  - Removed unused file intrface.S from the distribution.

  - When SerialPort is set to the null string, don't try to open() it or
    call ioperm(), just disable 6551 emulation.

  - Unbroke the AsynchronousController parameter.

Xeuphoric 0.17.0 (2003-08-12)

  - Pressing [f5] again when the clock rate is already at nominal value
    divides the clock rate by two. The process can be repeated as long
    as you have a whole number of cycles per frame. With the current
    20,000 cycles per frame, you can go down to 1/32nd of the nominal
    speed, or 31.25 kHz.

    Pressing [f4] when the clock rate is below its nominal value resets
    the clock rate to the nominal value.

  - No more arbitrary limit in how far [f4] can increment the clock
    rate. You can now go as far as your hardware will allow, up to
    65,536 MHz.

Xeuphoric 0.18.0 (2003-08-16)

  - Use XShm if it's available. New option -X to set the XShm policy. A
    pleasant side-effect of using XShm is that it tends to alleviate the
    sound problems.

  - List the object files before the libraries so that it works with
    dumb linkers.

  - Removed the -I/usr/X11R6/include argument from the compilation
    rules. On most machines it's not needed and there's no point in
    having it there if it's not also in ./configure.

  - Arranged the options in the man page into sections.

  - Helpful message if you forget to ./configure.

Xeuphoric 0.18.1 (2003-10-09)

  - Listed the non-essential dependencies in the README file as a hint
    for packagers.

  - Bug fix: don't die with "caught signal 17" when trying to change the
    disc image in the setup menu. This also fixes other latent bugs
    with respect to the handling of signals. Thanks to Jede for the
    report.

  - Included unfinished, non-functional C++ code for cycle-accurate
    emulation.

Xeuphoric 0.18.2 (2004-08-21)

  - Fixed a bug in the video emulation. In certain cases, characters at
    the bottom of the hires screen were rendered with the wrong chargen
    address. This is why the bottom of the "Mermaid" screen in the LCP
    2004 demo looks garbled in Xeuphoric 0.18.1. Thanks to Jede for
    reporting the problem and Dbug for making the most of the ULA.

  - Fabrice Francs has formally agreed to release Euphoric 0.99b under
    the terms of version 2 of the GPL. Updated the doc and inserted
    copyright notices in the files that didn't have any.

  - At his request, credited J.D. as "Jede".

Xeuphoric 0.19.0 (2010-08-26)

  - Build: "make install" now honours the DESTDIR variable to make life
    easier for packagers.

  - Cassette: the messages to stderr during CLOAD now include the
    current working directory. Also, all unsafe or visually ambiguous
    characters are percent-encoded.

  - Diskette: better error checking on diskette images. Jasmin emulation
    still doesn't seem to work, though.

  - Doc: added a state diagram of the interface, a description of the
    file selector and some semblance of documentation for the
    configuration variables.

  - Doc: the "Differences with Euphoric 0.99b" section in the man page
    is out of date and updating it would make it even longer so off it
    goes.

  - Emulation: new option -R to override the ROM file from the command
    line.

  - Internals: rewrote remove_eol() to deal with empty strings.

  - Internals: write_only[], which should have been called read_only[],
    has been renamed fd_writable[] and the logic has been reversed.
    Truth also is defined the customary way, i.e. != 0, not == 1.

  - Keyboard: when the pointer leaves the window (FocusOut and
    LeaveNotify events), all keys are considered released. No more Oric
    [down] key stuck after switching to another window with [alt]-[tab].

  - Keyboard: the Oric [esc] key is now mapped to the host key [esc], in
    addition of the host key whose keycode is 49 ([`] on UK and US
    QWERTY keyboards, superscript 2 on Belgian and French AZERTY
    keyboards).

  - Keyboard: the Oric [del] key is now mapped to the host key [del], in
    addition of the host key [bs] (backspace).

  - Keyboard: added support for the different keycodes that come with
    evdev. If [altgr]/right [alt], right [ctrl] and the arrow keys do
    nothing on your system, this release is for you.

  - Setup screen:

    - New and improved file selector. See the man page for details.

    - Pathnames now shortened by using "." and "~" when appropriate and
      then abbreviated to fit the screen. Any non-ASCII and control
      characters are percent-encoded.

    - New "CWD" parameter to change directories from within Xeuphoric.
      The name passed to CLOAD and CSAVE is relative to the current
      working directory.

    - Diskette emulation: labels shortened to make room for pathnames.
      The write-protect status of a virtual diskette is now indicated by
      an "RO" or "RW" label on the right. Only allow diskette image
      selection if diskette emulation is enabled.

  - Sound: handle OSS ioctl() errors more gracefully (essentially, warn
    and proceed).

  - Sound: got rid of the loud noise spikes during silent periods by
    configuring /dev/dsp for 8-bit signed PCM (instead of unsigned) and
    halving the output amplitude. The underruns are still heard when
    sound is playing or one or more outputs of the 8912 are held high
    (tone generator disabled for channel but non-zero channel volume).

  - Sound: fixed a bug in the 8912 emulation which caused noise to turn
    on and off every minute or so. (2**32 / 1E6 / 16 / 4 = 67 s ?)

  - Video: default zoom factor is now 2.

  - Video: new xeuphoricrc variable ColourScheme which can be set from
    xeuphoricrc or interactively from the setup screen. See the man page
    for details.

  - Video: new compile-time option CELL8X8 (see the makefile) to render
    8 pixels per byte instead of 6. Messes up the hires screen.

  - Video: fixed fatal BadAlloc errors in XShm_Attach when running on a
    remote display by substituting explicit XSync(3) calls for
    XSynchronize(3). I'm not sure what XSynchronize() really does, but
    it's not as simple as the man page suggests.

  - xeuphoricrc: removed the ability to change UI messages from inside
    xeuphoricrc. ^[0-9][0-9]= lines in xeuphoricrc are now ignored.

  - xeuphoricrc: line endings in default xeuphoricrc converted from DOS
    (CR LF) to Unix (LF).

  - xeuphoricrc: improved the parsing code. Trailing tabs are now
    ignored. Read errors and lines too long to fit in the buffer are now
    caught and cause Xeuphoric to exit with a non-zero status.

  - Misc: many (but not all) pathname buffers enlarged from 256 or less
    to PATH_MAX.

  - Misc: more unfinished, broken xeuphoric-ng code.

/* vim: set sw=2 tw=72: */
