#
# $Id: README.History,v 1.101 2020/04/05 14:58:17 thor Exp $
#

Atari++ 1.00:
	-The first public release.

Atari++ 1.01:
	- Improved the disk-drive built-in .EXE bootstrap code.
	- Added snapshot files
	- Fixed bug in list management that sometimes
	  crashed the directory requester of the menu.
	- Fixed bug in the menu configuration saver that
	  put simply invalid options into the configuration file.
	- Paddle management: No longer enables/links paddles #0,#1
	  by default to avoid kludging with the digital joysticks.
	- Integrated 5200 game console emulation.
	- Fixed/improved cartridge management: The menu will now show
	  only the useful cart types for the selected file.
	- Added SDL sound support.

Atari++ 1.02:
	- Fixed several cartridge related bugs left from the 1.01.

Atari++ 1.10:
	- Major change: Atari++ is now cycle based rather than scanline
	based. This means that games using a horizontal kernel will work
	now correctly. Hence, a completely new CPU concept has been used,
	and GTIA and ANTIC have been reworked to a major degree.

Atari++ 1.11:
	- Forgot to catch an Io exception in the menu class causing
	the emulator to abort if a file could not be found.
	- Fixed GTIA modes 0x40, 0x80 horizontal COLBK register change
	- Adjusted timing defaults to fix Alternate Reality.

Atari++ 1.12:
	- Re-worked cart-management completely now, this is more expandable
	  and easier to manage than previous versions.
	- Various minor bug fixes.

Atari++ 1.13:
	- Fixed the BRK emulation of the CPU.
	- Fixed X11 frontend reaction if it has no focus.
	- Added emulation of XEGS cartridges
	- Fixed a GTIA player/player collision detection bug
	  introduced in the 1.10 release.
	- Enhanced the cart emulation again.
	- Added emulation of the RTime8 real-time clock
	  pass-thru cart.

Atari++ 1.14:
	- Added emulation of the Bounty Bob cartridge.
	- Fixed some bugs in the SDL frontend.
	- Fixed a bug in the user menu that lost the command
	  line defaults when switching the front-end.
	- Added a new OssHQ audio frontend that provides excellent
	  quality without requiring a very precise Oss interface.
	- Enhanced and updated the SDL sound output noticably. It is
	  now able to generate software speech as well.

Atari++ 1.15
	- Added emulation of Axlon like RAM-Disks.
	- Moved 130XE Ram disk into a separate module, reworked MMU 
	  ramkdisk handling.
	- Reworked file requester.
	- Fixed H: handler directory handling.
	- Fixed ATR image handling.
	- Added "install" and "uninstall" make targets.
	- Moved archive into a separate subdirectory.

Atari++ 1.16
	- Added support for .dcm images and for .gz compressed
	  images of all kinds in general.
	- Fixed an ANTIC timing problem for LMS instructions for
	  text-based mode lines.
	- Fixed the directory requester of the GUI, again.
	- Fixed the cycle count for several CPU instructions that
	  seem to have escaped earlier test.
	- Added more autoconf tests for working compilers, most
	  notably for working exceptions and for icc specific
	  compiler setttings.
	- Added autoconf specialization for the intel icc
	  compiler for better performance.
	- Made several adaptions and stronger typing that
	  might help porting the code on other compilers.
	- Several other minor bugfixes.

Atari++ 1.19
	- Changed the licence conditions to TPL (almost identical
	  to the MPL).
	- fixed a fatal bug in the SDL audio output that could
	  have caused buffer overruns.
	- Fixed audio sample counter to reduce complexity.
	- Modified RT8 cart support. The current emulation model
	  makes a bit more sense than the old implementation.
	- ANTIC modeline speedup by using a different lookup table
	  concept.
	- Changed the WSYNC logic for CPU and ANTIC.
	- Simplified GTIA/CPU cycle coordination.
	- POKEY audio generation makes now use of some LUTs to 
	  speedup the polycounter usage.
	- Added proper error handling: Run time error conditions
	  are now properly reported by a graphical requester.
	- Added a warning log: Warnings get now reported within
	  the GUI and not on the command line.
	- Added a licence agreement requester.
	- Added an interface for SDL joystick emulation.
	- Improved compatibility of the code by adding even
	  more autoconf tests.
	- Split the CPU instruction build-up into several
	  subroutines to avoid some branch-distance problems
	  on some platforms.
	- Added a requester before shutting down the program.
	- Made handling of missing Os ROM images more user
	  friendly.
	- Added a flag to disable the monitor for novice
	  users.
	- Added a pretty-printer for the command-line help.
	- Removed an unnecessary window-pop up that sneaked
	  into the code in 1.18.
	- Implemented precise POT reading emulation for
	  POKEY.
	- Modified and fixed boot loader for binary image
	  files.
	- Fixed BASIC Rom handling on an error.
	- added various workarounds for popular compiler bugs.
	  The existing code should be easier to port now.
	- Added abstraction layers for time and curses
	  includes.
	- The OsROM layer will now check a "roms" subdirectory
	  for missing ROM images automatically.

Atari++ 1.20:
	- Fixed name resolution in the generic device handler.
	- Fixed handling of DD disks.
	- Fixed error handling within the menu.
	- Added emulation of various XE like RAM expansions
	  that use bankswitching controlled by PIA Port B.
	- Fixed endian dependentness of Antic emulation.
	- Fixed a possible CPU pipeline trash on the G.M
	  monitor command.

Atari++ 1.21:
	- internal pre-release that already covered a lot of
	  1.22 options but didn't make it to the public.

Atari++ 1.22:
	- fixed another set of bugs in the audio frontends that
	  could have caused memory trashes for stereo or 16bit
	  output.
	- added a separate palette for GTIA in NTSC mode
	  (thanks, James!)
	- integrated a lot of James' Win32 adaptions. Maybe
	  this code now compiles under Windows.
	- added ALSA sound front-end for high-quality/
	  low-complexity sound.
	- Added Matthias' AtariSIO frontend allowing you to
	  connect real 1050 or 810 drives to the emulator.
	- Fixed a bug in the monitor that rendered it 
	  useless if compiled in "release" mode.
	- Added partial "Us-Doubler" emulation for the 
	  diskdrive.
	- Improved the SDL GUI front-end for better
	  performance in rendering the user menu.
	- Fixed Shift+TAB for the X11 front-end.
	- Finetuning on the Autoconf process.
	- Finetuning in the timing.
	- Added schematics of the "ElCheapo" joystick
	  interface.
	
Atari++ 1.23
	- Updated the AtariSIO interface to the 0.11 version
	  of AtariSIO (Thanks, Hias!)
	- Fixed the "TraceOnReset" option.
	- Added options to hold the two other console keys
	  ("select" and "start") on reset, for symmetry
	  reasons.
	- Made several fixes to the H: handler that should now
	  be compatible to the DOS 2.XL/XA XIO command set except
	  for "binary load".
	- Improved the detection of the HATABS init location that
	  no longer uses fixed ROM addresses.
	- Added rules to generate documentations by doxygen.
	- Fixed Pokey XMTDone interrupt handling.
	- Internal cleanup in the memory management.
	- Added a new optional Os patch: The MathPackPatch
	  replaces all entries of the MathPack by calls to the 
	  host system math library, making mathematics on the 8 bit
	  noticably faster. Especially AtariBasic profits from this
	  patch. TurboBasic, on the other hand, has its on set of
	  math routines that are not covered by the patch.
	- Reworked gtia heavily. GTIA emulation now includes proper
	  intra-scanline modification of PRIOR, i.e. toggling
	  between a processed mode like Gr.9..Gr.11 and an un-
	  processed mode in a horizontal kernel. GTIA also 
	  supports horizontal splitting of players, proper
	  collision detection for these splittings and support for
	  some wierd undocumented GTIA modes (RIP,HIP,...), as
	  for example disabling of modes 0x40 and 0xc0 within a
	  horizontal scanline.
	
Atari++ 1.24
	- Worked around a g++ 3.2.2 bug that trashed the GTIA code
	  successfully if compiled in release mode. g++ 2.95 or icc 7.1
	  do not show this bug in the code generator.
	- Fixed again pokey XmtDone interrupt handling.
	- Added a "quick" user menu that provides the most important
	  options by pressing the left mouse button if the mouse hasn't
	  been used as a game port input device.
	- Fixed a couple of minor preferences handling bugs on the way.
	- Fixed a bug in the mathpack emulation core that forgot to
	  set two registers in the BCD->ASCII conversion.
	- Added an emulation of the 850 interface box. This emulation
	  supports all the private SIO commands of the 850 interface,
	  allowing you to use the serial port of the PC by the emulator.
	  Unlike the 850, only one serial line is available, but otherwise
	  all options are supported. The only exception are some of the
	  wierder baud rates the 850, but not the UART in the PC, is able
	  to generate.
	- Enlarged/completed autoconf; added a couple of options to
	  enable/disable subcomponents of the emulator on demand.

Atari++ 1.25
	- Fixed a couple of bugs of the 850 interface and the R: driver
	  built into. This includes fixes in the handler startup,
	  fixes in the baud rate selector that didn't get forwarded to
	  pokey, and fixes in the buffer handling.
	- Redesigned the audio output interface drivers.
	- Added the emulation of the stereo pokey hardware hack and
	  added apropriate options. Thanks once again to Andreas
	  Magenheimer for providing demo programs for testing this
	  new feature.
	- Improved PIA PortA/BCtrl register emulation.
	- Improved Pokey audio emulation by also including the function
	  of the serial port control register SkCtrl into the audio
	  generation.
	- Improved audio emulation is now also able to generate the SIO
	  "sound effects"; this is an optional feature as some users
	  might consider the native Atari SIO sound as anoying.
	- Improved Pokey serial timing that is now computed from the
	  pokey timers and the serial transfer mode.
	- Added more graphic formats for the screen snapshot feature.
	  Atari++ now also supports BMP and, if the libpng is available,
	  PNG snapshots. This is configurable thru the SDL or X11 inter-
	  face options.
	- Fixed H: handler EOF handling and delete protection of write-
	  protected files.
	- Modified SIO interface routines to allow synchronous single
	  byte transfers.
	- Added workaround against some SDL bugs.
	- Fixed CPU Sync() bug that could have caused segfaults.
	- Fixed ALSA channel allocation bug.
	- Fixed disk drive HD format; this used to generate invalid
	  ATR files, but not any more.
	- Added disk "Eject" button.
	- Fixed various SIO related error reporting bugs.
	- Fixed CPU BRK instruction stack.
	- Fixed ANTIC VBI generation.
	- Various other minor bugfixes.

Atari++ 1.26
	- Restructured the serial device/SIO interface for the
	  user space SIO by Hias
	- Fixed fixpoint rounding for the math pack emulation
	- Fixed possible SegFault in the .wav audio front-end
	- Added Visual Studio C++ 7.1 compilation target.
	- Adaptions/modifications for g++-3.3

Atari++ 1.27
	- Fixed the overly picky user menu that did not catch exceptions
	  due to invalid configurations.
	- Reworked the Basic interface that now also accepts generic 8K
	  cartridges as ROM images.
	- Heavily bugfixed the AtariSIO interface, also in DirectSerial
	  mode. This should work fine now.
	- Extended the printer emulation; it now also allows printing to
	  files.
	- Added zlib support for the win32 platform and hence support for
	  .gz compressed disk image image files.

Atari++ 1.28
	- Fixed a bug in the 130XE RamDisk handling that checked the
	  wrong bit to test for CPU access.
	- Fixed a missing screen refresh in the SDL frontend.
	- Fixed H: device directory handling, win32 delivers an error
	  code here unlike POSIX.
	- Added smarter speed control that also allows the emulator 
	  to run faster than a real Atari. Updated sound support 
	  for that.
	- Added a html version of the guide.

Atari++ 1.29
	- The console key "keypress generator" is now a bit more
	  conservative and tries to avoid faked key events for
	  warm starts.
	- The analog joystick interface and its SDL counterpart
	  support now up to 16 buttons.
	- The binary loader analyses and checks now the images
	  before loading them into the emulator. This test is
	  now also able to perform some simple repair algorithms
	  on the images for typical failure cases.
	- The H: device supports now the XIO 41 "binary load"
	  command using some higher trickery. This emulation
	  should be compatible to some auto-loaders, e.g.
	  TurboBasic.
	- Fixed another bug in the pattern matching code of the
	  H: device.
	- Added open mode modifiers for the H: handler similar to
	  those supported by Dos 2.XL:
	  /A: Open in append mode,
	  /D: Open for directory,
	  /N: Do not run programs.
	- Default for win32 architecture frontend is now the
	  window'd mode, full screen can be enabled by the user
	  in the full configuration menu.
	- Added emulation of the 1200XL and its 1200ROM. This
	  ROM requires special threadment due to an Os bug.
	- Fixed gameport search for multiple joysticks.

Atari++ 1.30
	- Added double-buffering option for the SDL frontend
	  if the SDL implementation provides it. Currently, only
	  the win32 port can do that.
	- Added support for Steven J. Truckers Flash Rom (ATARIMAX)
	  cartridge. Thanks, Steven!
	- Added more call-ins for the mathpack patch that are
	  inofficial but called by Basic and Mac/65.
	- Fixed Math-pack patch ZFR1 call-in.
	- Fixed several AtariSIO memory leaks.
	- Reworked parts of the cartridge management, making cart
	  type selection simpler.
	- Added MegaROM and Atrax cartridge types.
	- Fixed again a bug in the H: device, it did not accept
	  some valid file names.
	- Fixed error reporting in the disk insertion code.
	- Fixed XFD image validity checks.
	- Added a built-in OsROM. Now Atari++ does no longer require
	  an external binary ROM to function. This built-in ROM is
	  an AtariXL type ROM under my copyright that, however, lacks
	  the math pack that cannot be rewritten without copying the
	  original binary. Thanks to the mathpack patch, the new Os
	  ROM will work nevertheless correctly with programs requiring
	  the math-pack.

Atari++ 1.31
	- Fixed keyboard support for the 5200 games system.
	- Fixed reset/console key support on reset.
	- Added display postprocessor resp. de-blocking filter for the
	  SDL frontend. This generates smoother graphics on upsampling
	  the low-resolution Atari displays.
	- Added emulation of special PAL color mixing artifacts.
	- Added flicker fixer that emulates slow TV screens used by some
	  programs to generate more colors by altering fast between two
	  color sets.
	- Added more cartridge types.
	- Reworked cartridge support subsystem a bit.

Atari++ 1.32
	- Fixed a bug in the string gadget that caused a race condition
	  in the file requester.
	- Improved timing issues for GTIA and ANTIC. Users of previous
	  releases might want to set the DLIDelayCycles to 12 and the
	  BeforeDisplayCylces to 16 to adapt to the new settings.
	- Fixed a potential segfault in the X11 display when switching
	  between PAL and NTSC output.
	- Fixed command line parser for the win32 front-end. This was a
	  bit hairy since a custom startup code for win was required for
	  that.
	- Added an optional console output window for the win32 port that
	  is used for the monitor. Sorry, there is no ncurses/curses
	  support because no suitable curses library is available for the
	  win-world. The monitor will not be able to provide the SPLT
	  command because of that, but everything else will work (just
	  not that fancy...)
	- Fixed disassembly of some ANTIC commands.
	- Fixed a missing initialization in the line drawer of Os++.
	- Fixed default behaviour of printer emulation of no print
	  spooler is available. PrintToFile is then the default.
	- Speedup GTIA priority engine a bit.

Atari++ 1.33
	- Improved the runtime behaivour of the CPU a little bit, it might
	  be a bit (likely unnoticably) faster.
	- Added proper emulation of artifacts on colored background. Thanks
	  to Slor for making pictures of the real NTSC artefacts. The
	  resulting emulation is an emulation and not yet 100% accurate, though
	  much closer than before.
	- Fixed a compilation/configuration error. On some systems, libSDL
	  requires explicit linkage against libpthread.
	- Added a keyboard type-ahead buffer that allows you to type faster
	  than the emulated Atari is able to react. This avoids swallowed
	  keyboard events.
	- The Percom/815 and Happy floppy drive extended command sets can now
	  be disabled or enabled to avoid compatibility problems with software
	  that requires that certain commands fail on the disk drive.
	- The GUI supports and recognizes now the scroll wheel available on most
	  modern USB and PS/2 mice.

Atari++ 1.35
	- Fixed a segfault in the file/directory requester due to a buffer overrun
	  when extracting the file or path-part of the selected path.
	- Pokey emulation of the low-part of 16 bit counters was incorrect up to
	  this release. This fixes sound effects of various Basic type-in listings.
	- Added finer Pokey volume control.
	- Added emulation of Pokey nonlinearities.
	- Antic DLI timing was partially incorrect, the DLI signal was generated
	  one cycle too late with DMA registers sampled too early. Users of earlier
	  releases should adjust their preferences and set the "BeforeDLIClocks" to
	  eleven (11) instead of twelve.
	- Added emulation of Antic DLI behaviour if the CPU is stopped. ANTIC does
	  not generate an NMI signal immediately, but waits again for the next
	  possible NMI generation slot in its horizontal scanline.
	- Fixed the behaviour of the backspace key/control code in the S: handler of
	  the built-in Os emulation. This fixes a couple of Basic games.
	- Fixed a critical bug in the Pokey emulation that could have caused crashes
	  on startup due to non-initialized variables.

Atari++ 1.36
	- Fixed broken gadgets when the scrollwheel was used.
	- Fixed ANTIC instruction fetch for disabled DMACtrl. This fixes one
	  wierd demo.
	- Added a monitor stack traceback command.
	- Fixed cycle allocation for pre/post VBI gap of the ANTIC display list.
	- Fixed parsing of memory extensions.
	- Fixed a valgrind hit in the CartROM initialization.
	- Made patch-device support (P:,H:,D:) a bit safer by testing for 
	  valid IOCBs.
	- Fixed x11 truecolor buffering that sometimes forgot to offer an RGB
	  frame buffer.
	- Fixed handling of non-ASCII keyboard events (e.g. german umlauts) that
	  were not properly ignored before.
	- Fixed length of VBI, the Antic emulation stole nine cycles too many
	  for out-of-display length.
	- Fixed GTIA/CTIA detection and output of undefined registers for GTIA.
	- Added a new sound front-end, namely DirectX sound support for the
	  win32 platform. Audio output is much smoother now.
	- Fixed MMU emulation for XE-style extended RAM disks.

	
Atari++ 1.37
	- Fixed two files that did not compile correctly without the SDL devel
	  libraries available.
	- Fixed the flashrom cartridge disabling logic.

Atari++ 1.38
	- Fixed again a wrong timing in the antic module.
	- Modified Pokey SIO sound generation, should be better now.
	- Fixed horizontal changes of the Antic character generator.
	- Fixed handling of the Numpad keys for some X11 implementations
	- Minor adaptions for g++-3.4.1

Atari++ 1.39
	- Added a serial transport interface allowing portable serial
	  communications from Linux and Win32. This allows this release
	  to enable the 850 Interface box and AtariSIO implementation
	  for Win32.

Atari++ 1.40
	- Fixed random generator for Win32 platforms. This might have
	  broken some games.
	- Fixed attract mode in Os++, both generation counter as
	  well its application in Gr. 9/10/11 with text window.

Atari++ 1.41
	- Fixed the location of the VBI interrupt. It happened one line 
	  too late.
	- Fixed unitialized accesses in Pokey.
	- Fixed NMI status read in antic, the lowest bits are always set.
	- Fixed VSCROLL overflow emulation for 8 line text modes.
	- Added 65C02 emulation (experimental)
	- Added more joystick buttons, to be used to trigger 5200
	  keyboard events.
	- Added emulation of a mathpack feature, namely to terminate
	  the ASCII converted floating points with a decimal dot even
	  if the number is an integer.
	- Fixed the configure script, works now fine on MacOs.

Atari++ 1.42
	- Fixed race condition when switching the resolution, could
	  cause crashes.
	- Fixed Antic CHARBASE switches, did not keep care of
	  horizontal scrolling correctly.
	- Fixed leaking key presses from the GUI to the core.
	- Fixed PIA Port A handling, Port A input is non-buffered.
	- Fixed Monitor backspace key on some broken ncurses
	  implementations.
	- Added "graphical" single-step trace command for the monitor.
	- History of the monitor is now a tad smarter and buffers un-
	  finished lines.
	- Fixed "dummy writes" for INC and DEC commands.
	- Fixed player horizontal split, did erraneously remove the
	  old player.
	- Fixed timing of the pokey timers, should be more precise
	  now.
	- Fixed XIO for serial baud generator, argument zero leaves
	  baud rate alone.
	- Fixed serial input counter for concurrent mode
	- Fixed state parser, is now less sensitive to CF/LF vs. LF
	  confusion.
	
	
Atari++ 1.43
	- Added a resident R: handler that can be patched in as a
	  replacement for the 6502-based R: handler that is 
	  bootstrapped from the interface box.
	- The R: handler code now resets the replacement character
	  that is dropped in whenever a non-ATASCII character arrives
	  at the serial input.
	- Worked around the sound problems that appear due to the
	  unbalanced audio output; this release offers an additional
	  high-pass filter in the pokey output that avoids any offset.
	- The pokey keyboard disable bit was not emulated at all.
	  Setting this bit now disables all keyboard activity.
	- Fixed the emulation of the Atari/INVERSEVID key and related
	  keys; the corresponding key-up event was never forwarded
	  to the kernel.
	- Updated the manual; forgot to include the position of the
	  Atari/INVERSEVID key in the manual.

Atari++ 1.44
	- Fixed the SetIRQ service routine of the built-in Os.
	- Fixed (again) the Antic NMI/DLI generation.
	- Fixed CPU handling of the WSYNC register (broke Atlantis)
	- Fixed the keyboard handler of the 5200 emulation which
	  did not generate the up/down bits properly.
	- Fixed the light pen code generation.
	- Fixed parts of the 65C02 emulation, zero page access was
	  not extending properly to page 1.
	- Fixed a lot of compilation problems on 64 bit architectures,
	  special thanks goes to Alexander Müller for helping me to
	  hunt down these bugs.
	- Fixed the SDL detection in configure.
	- Fixed the player generation logic again a bit, did not
	  support horizontal player splitting quite as it should.
	- Improved the emulator handling of warnings, you can now
	  go back to the menu.
	- Added emulation of 1050 internal diagnostic commands.
	- Fixed SIO return codes for SIO bypass routines.

	
Atari++ 1.45
	- Added settings for the Visual Studio 8.00 compiler.
	- Fixed makefile/configure script to support the GNU g++-4.xx
	  series.
	- Fixed the flash ROM size detection.
	- Added code to disable the DPMS driven monitor disable. This
	  will only work with the raw X11 screen blanker, not with the
	  KDE or GNOME screen blanker.
	- Late modifications of the HSCROLL register are now honored.
	- Player DMA in empty antic lines are now handled correctly.
	- Stereo pokey activation was broken and could cause crashes.
	- The H: handler binary load driver overwrote the run vector
	  too early, breaking the DUP Run command.
	- The FMS drive buffer check was off by one, disabling D2:
	- The FMS did not close the binary load file properly before
	  running the file.
	- The H: Open for Append mode did not work.
	
Atari++ 1.46:
	- This release is mainly due to Mark Keates (thanks, Mark!) by
	  emulating the flash process for Steve Trucker's flash ROM
	  carts. That is, Steve's software is now able to erase and re-
	  flash the flash ROMs.
	- Added emulation code for the Phoenix, Blizzard and ATMax
	  cartridges.
	- New cartridges (for the Flash code) and new disk images can now
	  be created by the emulator on the fly. For that, just type in
	  a non-existing file name in the file requester and either
	  format this virtual disk, or set the cart type to Flash and
	  supply a flash image.
	- The FMS directory operations were complete rewritten, reducing
	  the amount of required buffer memory by 128 bytes. Furthermore,
	  the default number of buffers was reduced to the standard set
	  of two drives, three files, again leaving more memory to BASIC.
	- The FMS is now even more compatible to Dos 2.0S by offering the
	  same memory locations for the drive write mode, the number of
	  drive buffers and the number of file buffers. All these are now
	  available by standard peeks/pokes documented in Dos 2.0S.
	- The FMS is now read-compatible to Dos 2.5 and makes the extended
	  files visible in the directory listing.
	- This release fixes a couple of minor bugs in the OS
	  implementation. The text window modes of Graphics 9,10 and 11
	  flickered during SIO operation, and the ROM got streamlined
	  a bit.
	- The monitor offers now a command to log the commands executed
	  by the CPU to a file. Check for the ENVI command. Note that the
	  logs can grow very fast very long.


Atari++ 1.50
	- This release is mainly a bug-fix release that addresses a couple
	  of issues especially on 64 bit systems:
	- Fixed various erraneous varargs usages, mainly active during
	  error handling, that caused crashes on AMD64 systems.
	- Fixed reference to the linux joystick device. Newer kernels place
	  this device at /dev/input/jsx instead of /dev/jsx, fixed.
	- The H: device handler wildcard matcher now also finds files whose
	  extender consists of blanks.
	- The joystick handler contains now a workaround against some faulty
	  implementations of the emu10k1 (SoundBlaster) gameport interface
	  and got basically self-calibrating by using the second unused
	  joystick axis.
	- The DMA timing got reworked heavily. Thanks for that goes to
	  Bennet (beipdev@yahoo.com) for providing me with more detailed
	  information.
	- The way how horizontal timing is organized changed heavily, and
	  the timing constants for ANTIC and GTIA changed. Thus, new items
	  in the menu will adjust the timing, and old ones got removed.
	- The player/missile generator changed a bit and is now aware of
	  some internal GTIA reaction times. Thanks for providing examples
	  for this goes to Sebastian Pachuta (thanks again!)
	- Some heavy bugs got fixed in the X11 interface that could have
	  caused conflicts with at least some window managers because it
	  re-opened windows to fast. These problems are now avoided by using
	  a more careful logic.
	- An out-of-bounds memory write in the mathpack emulation got fixed.
	- Error handling in the complete menu and error requesters itself
	  got improved.
	- Errors from the X11 subsystem are now captured and reported in a
	  more user-friendly way.
	- The complete user menu creates now string-gadgets for numeric 
	  values whose numeric range is too large to be fine-tunable by
	  a slider alone.
	- Improved the speed of the X11 true-color output by enlarging the
	  output/color buffer.
 

Atari++ 1.51
	- Added a force-stereo output for all audio output modules for
	  Linux to work around a bug in alsa that fails to generate
	  suitable mono output if a midi sound font is loaded.
	- Reformatted the monitor output of some modules and make them
	  more consistently.

Atari++ 1.52
	- Reworked the CPU emulation, especially the 65C02 emulation got fixed
	  at several ends. Thanks goes to Waldemar Pawlaszek for detecting
	  several bugs in the 65C02 emulation.
	- Reworked the monitor disassembly to be better suited for extended CPU
	  models. The CPU now defines addressing modes and instructions for the
	  disassembler, thus requiring only one single CPU instruction database
	  instead of two.

Atari++ 1.53
	- Fixed the ADC command, creates now the proper results in
	  decimal mode even for non-BCD input.
	- SDL keyboard input is now a bit more careful about the
	  ALT key. Only the left ALT key is now understood as the
	  Atari/InverseVID key.
	- Improved building on VS8.0.
	- Improved handling of files/disks on network directories.

Atari++ 1.54
	- Fixed the handling of the initial keystroke.
	- Added a curses (text-based) front-end.
	- GTIA artifacts now support various GTIA models.
	- GTIA supports now user-defined color maps.
	- The GUI can now be used entirely by the keyboard or the
	  joystick, use the cursor keys to move the pointer from
	  gadget to gadget and press RETURN to click on an object.
	- Added a RelMouseStick input device that reacts on the
	  relative mouse movements rather than its abstract position.
	- Fixed the POKEY audio muting, it is now able to detect
	  situations in which a lower mixing frequency is audible
	  even though the channel itself is not.
	- Fixed initial timing/speed setting, could have caused
	  audio-drop outs or slow play-back.

Atari++ 1.55
	- Fixed a couple of bugs in the disk emulation, thanks to
	  Konrad Kokoszkiewicz for finding them. Specifically,
	- Read and write capacity (815 commands) did not check for
	  all supported disk layout types and hard-disk partitions,
	- Speedy commands were recognized and interfered even if
	  the speedy emulation was turned off,
	- Disk status wasn't returned correctly for high-density
	  drives
	- Fixed a parsing/error handling bug if the initial con-
	  figuration files were incorrect.
	- Fixed the implementation of ZFR1 in the mathpack patch.
	- Fixed the implementation of FFRAC in mathpack patch.
	- Added constants required by BASIC for the patch.
	- This release comes with a new release of Os++, the
	  emulator operating system. For the first time, this
	  release is complete and includes a math-pack whose
	  functions should be both faster and more precise than the
	  original implementation. Thanks to B. Watson for
	  continuously pushing me - it's done now.
	- Minor streamlining in the CIO implementation in Os++.
	- This release adds a STDIO interface to atari++, allowing
	  it to read keyboard or editor input from the command line,
	  and echo-ing output to stdout. This feature can be used
	  for batch-processing.
	- Compared to the beta release, this version fixes one bug
	  in the BCDToInt math pack routine (also known as FPI) which
	  did not handle carry-over correctly.
	- Writing 0 to SKCTL now also resets the pokey timers as it
	  emulates the POKEY soft reset.
	- Pokey STIMER also resets the poly-counters now, as it 
	  should.
	- Os++ includes minor fixes for the cursor rendering and
	  interaction of S: with E:. Writing to S: now shields the
	  cursor correctly.

Atari++ 1.56
	- Fixed parsing the preferences. No longer gets stuck if one of the
	  modules failes initialization.
	- Fixed error handling in the full module - could crash.
	- Fixed initialization of the FMS. The previous version wasn't able to
	  to run the DUP if the DOSINI vector was populated.
	- Fixed memory reservation of the emulated 850 interface.
	- Fixed complation issue on latest g++ compilers.

Atari++ 1.57
	- Fixed a couple of issues in the GUI, specifically when entering
	  data into string gadgets.
	- Fixed again a couple of exception handling issues in the menau.
	- Made the keypad stick configurable, the keys for joystick emulation
	  are now part of the configuration.
	- Added a dummy front-end, "NONE", that does not render anything to
	  the screen.
	- This release supports .CAS images; however, they are not part of a C:
	  (tape) emulation, but emulated as disks. Depending on the contents of
	  the tape archive, the disk is either considered a boot disk, a binary
	  or a basic file.
	- This release supports better disk support for BASIC and MAC/65 files.
	  If you insert such a file into the emulated disk drive, the emulator
	  will build a DOS 2.0S compatible disk structure around it and you can
	  load the image from the emulated disk as D:PROGRAM.BAS or D:PROGRAM.ASM.
	  Note that such disks are *not* bootable, you first need to boot, and
	  then turn on the emulated disk drive.

Atari++ 1.58
	- Fixed emulation of read-modify-write instructions. The 6502 consistently
	  writes the old value before replacing it by a second write with the
	  updated value.
	- The default alsa output device has been changed from hw:0.0 to default,
	  making it more compatible to hardware setups.
	- The disassembly of the BVC instruction was invalid, fixed.
	- Added the space bar as possible source for joystick events.
	- Fixed some issues with preferences reading.
	- Added additional tests for ROM image verification.
	- Fixed a NULL pointer reference in the cartridge module.

Atari++ 1.59
	- Fixed the Antic DMA cycle allocation for narrow playfields. Due to misalignment
	  between various DMA allocation slots, more cycles were available to the CPU than
	  possible in the original hardware.
	- Added a cycle-precise Pokey emulation that updates interrupt registers and
	  potentiometer registers on a cycle-by-cycle basis.

Atari++ 1.60
	- Redesigned parts of the pokey emulation. The new version offers the option to
	  be cycle-precise, i.e. pokey interrupts (POTs and timers) arrive now at
	  the cycle. This improves the audio output for the "Electronic Speach Systems
	  of Berkeley" considerably. (Kennedy Approach and others)
	- Redesigned parts of the audio interfaces. The smarter audio output count now
	  clock cycles and generate output for exactly the number of clocks passed.
	  The output frequency still requires dynamic adjustment since the CPU load of
	  the host system is never precisely in sync with the emulated clock.
	- The control mechanism to bring the emulated clock and the system clock in 
	  sync has been improved, it is now a PID type of control loop that gets faster
	  in sync than the previous versions.
	- The improved audio output is available currently only for the ALSA and DirectX
	  audio output chains. Oss/OssHQ and SDL remain unaltered. There is, however,
	  little reason to fall back to the less precise chains. Prefer ALSA on Linux and
	  DirectX on Windows.
	- The parser for the keypad stick emulation was still buggy (oh bummer!) and was
	  finally fixed. "Space" and " " can now both be used.
	- The windows emulation of the readdir() primtives still had a bug and could
	  crash the emulator on accessing a network volume. Fixed.

Atari++ 1.70
	Probably too many things changed, most of them related to the quality of the
	emulation. 
	- Priority engine for the "fifth player" generated by missles was redesigned
	  and should now reproduce all possible cases, including the priority conflicts
	  correctly.
	- Color mixing of the fifth player on top of GTIA modes C0 and 40 should now
	  work correctly.
	- Timing of the GTIA "strange mode" where PF0 to PF3 are used for a HIRES
	  generated playfield was made more precise.
	- Color lookup for GTIA modes C0 and 40 on top of non-HIRES ANTIC modes was
	  fixed.
	- Player-playfield color mixing for GTIA mode 80 was fixed.
	- Experimental support for on-line player and missile resizing was added.
	- ANTIC display generation was re-designed yet again and was rewritten.
	- ANTIC DLI and NMI timing was made a lot more precise and should now work
	  to the cycle.
	- ANTIC VSCROLL support should now work to the cycle.
	- ANTIC DMA cycle allocation should now be finally correct for all modes.
	- Added emulation for ANTIC forgetting the sync signal if the last line 
	  on the screen is HIRES.
	- Added emulation of carrying the DLI and VSCROLL information across
	  vertical blanks from the last displayed scan-line.
	- The jump on vertical blank ANTIC instruction did not generate a DLI on
	  each line if DLI was enabled. Fixed
	- The rather ugly re-generation of ANTIC modelines for character-based modes
	  was removed. This simplified the design, but might impact the emulation
	  quality in some corner cases. A new ANTIC design would be required to fix
	  this. More careful timing in display build-up should make this 
	  unnecessary anyhow.
	- DMA border computation is now much more canonical and cleaned up.
	- Since a lot of the internal timing should now work "on the cycle", there is
	  no longer a need to configure some of the ANTIC variables, thus parts
	  of the ANTIC preferences have been removed.
	- CPU emulation includes now parts of the unstable opcode family xB
	  (opcodes whose lower nibble is B).
	- The CPU emulation includes now the emulation of most (if not all) 6502
	  bugs: Forgetting conflicting NMIs, IRQs and BRKs (!).
	- Wait-cycle allocation was partially wrong and created conflicts between
	  memory-refresh cycle allocation and WSYNC requests. This was fixed.
	- As a side effect, the special "double WSYNC" check was no longer necessary
	  and was removed. The emulation is correct anyhow.
	- Some CPU preferences were removed because the emulation is considered to be
	  precise anyhow.
	- PIA DDR register reads were not emulated correctly.
	- PIA emulation includes now flank-detection on CA2 and CB2 plus interrupt
	  generation, and thus should be complete.
	- POKEY 9 and 17 bit random generators are now emulated precisely, and the
	  generated "random" numbers should be now identical to those on the real
	  hardware.
 	- POKEY two-tone mode should now be emulated correctly, including the cycle
	  timing for the linked channels.
	- Some race conditions for the serial control mode should now be emulated
	  correctly.
	- POKEY direct serial input should now work fine with the SIO emulation,
	  though direct serial output does not yet work.
	- Handling of the POKEY keyboard generation was wrong and should now work
	  correctly.
	- The SIO patch resets now also the audio registers and the IRQ control of
	  POKEY to work around some software bugs.
	- Os++ did not check properly for the RESET bit in the Antic NMI register
	  and could have triggered false resets under some race conditions.
	- The legacy return value for the write-byte bus access was removed as it
	  was no longer required since a long time.

Atari++ 1.71
	The release how 1.70 should have been, but wasn't due to time constraints.
	Lots of fixes left over from 1.70 are now integrated, and regressions have
	been fixed:
	- The ANTIC logic to roll over an instruction to the next scan was partially
	broken and also rolled a "Jump on Vertical Blank" over, breaking some games
	that played tricks with the DMA control register.
	- The new CPU logic to fetch the wrong interrupt vector (NMI instead of IRQ)
	was partially broken and forgot to fetch the right high-bit, potentially
	breaking code.
	- The 65C02 BRK instruction was emulated incorrectly. The NMOS version
	worked fine, and continues to work fine.
	- 1.70 had, as indicated, a regression for late writes on Antic CHARCTL that
	broke at least one game ("Summer Games"). The corresponding logic has been
	re-done in a much cleaner way and is now part of 1.71.
	- Pokey lo-byte timer registers in a 16-bit timer pair did not underrun to
	255 correctly. In fact, the timer emulation was partially re-done and should
	now do correctly, including the relative offset of low and high-timer on
	a STIMER resynchronization.
	- GTIA priority logic for player 4 on top of playfield 0/1 was broken in
	one priority selection, which got fixed now.
	- Player/missile retriggering was partially incorrect. This has been fixed now.
	- Player/missile resizing was, as stated, experimental in 1.70 and is now
	implemented correctly.
	- On-line player/missile shape changes are now experimentally supported.
	- The ANTIC/CPU WSYNC logic was partially broken as it does not block writes,
	only reads - the mechanism is a different one. Note that this only holds for
	the NMOS version. The CMOS version works correctly. This is also emulated.
	- The NMI/IRQ reaction times were short by one cycle. They are now 7 cycles
	as indicated.
	- GTIA mode 80 on top of a low-res screen created a wrong color for the
	PF3:BK pixel combination. This got fixed.
	- GTIA VDelay support was partially broken. Actually, the P/M DMA engine
	was redesigned for this release and should now work correctly.
	- Alsa sound support was broken on some hardware. For some Alsa drivers, 
	audio hardware reacts allergic when trying to fill more samples into the
	available buffer, stalling the main program. The updated Alsa sound support
	rounds the samples written to the Alsa buffer to entire fragment sizes avoiding
	this problem. The SDL or Oss/HQOss drivers were not affected, though in
	general Alsa is preferably.
Anti-News: (or, what does not yet work):
	- P/M shape changes are currently supported experimentally until I get hands
	on real hardware.
	- P/M shift-register disable tricks with PSIZE=2 are currently not supported.
	- Writes to GTIA color or priority registers are not delayed and happen
	immediately. The same goes to many other registers in Pokey, Antic and PIA.
	- Antic DMACtrl in-line adjustment tricks are not supported, neither any
	HScroll adjustments to disable the DMA-stop.
	- Bus noise picked up by GTIA if GRACTL is enabled but DMACTL is disabled is
	currently not emulated correctly.
	- Bus noise picked up by ANTIC on the right side of wide playfield screens is
	currently not emulated at all (and neither visible if it would).
	- The POKEY soft-reset cylce is currently not emulated completely.
	- Bit-banging serial output is currently not emulated at all.

Atari++ 1.72
	- The binary file loader automatically generated when inserting a COM or EXE
	into the disk drive and booting from it is now much shorter and requires a
	lot less RAM. It requires now, however, an additional ESCape code and hence
	emulator support. This will now also load binary files that require RAM from
	0x800 and up.
	- This release adds support for ATX files and includes an emulation of the 
	disk drive timing, handling of bad and duplicate sectors and a more precise 
	emulation of the SIO timing.
	- An additional type of watch point was added: The default watch point now
	only reacts on memory writes, whereas the new watch point continues to react
	on reads and writes.
	- Experimented a lot with the timing of the GTIA Prior writing and found that
	the currently implemented logic is actually very close to the real system,
	additional delay cycles make results only worse, not better. Thus, leaving it
	as it is right now.
	- The SDL StringGadget now reacts on Ctrl+Backspace and Ctrl+Delete and erases
	its contents on this keyboard command.
	- Added emulation for "stuck" Player/Missile shift registers when switching
	from 4x or 2x expansion to the size register "2" value, which is almost, but
	not quite 1x expansion.
	- The built-in Os blocks NMIs now early in the reset cycle and by that tries
	to work around bad display lists left over by buggy programs.
	- Minor modification in the built-in FMS (Dos 2.++): CONFIG.SYS can now change 
	the position of the FMS buffers by poking into DiskBufferBase $710,$711 and 
	relocate them.
	- Minor modification of the short VBI: GPrior, ColBK and Col1 are now only
	reloaded if the graphics mode really requires it. This applies to fine 
	scrolling text modes, and the text window modes with the GTIA modes (modes 
	9+64,10+64 and 11+64). This fixes compatibility issues with Atari Tennis and
	some Lucasfilms intros.
	- Minor modifications in the FMS: Rename with wildcard was broken, and the FMS
	no longer tries to load non-valid VTOCs.
	- The DUP COPY command avoids now trying to overwrite BASIC program memory
	or other user memory protected correctly by setting APPMEMHI. Some cartridges
	do not set this Os pointer correctly, though. Mac/65 does not. The new DUP
	command NEW will erase user memory and make it available for COPY.
	- Fixed a long standing bug of all Dos 2.XX compatible FMS'es: Directory
	reading mode did not cooperate with any other operations that would access
	the directory, and would invalidate the directory access channel. This is
	no longer the case now. Additionally, reading the directory sets now the
	EOF warning flag (Y = 3) correctly right before the EOF.
	- The STATUS command, as specified by DOS 2.0S and DOS 2.5, was actually
	quite unuseful as it required a file specification which was never supplied
	by BASIC. The new implementation returns the status of the last CIO command
	on the same channel if the channel is open, allowing BASIC for example to
	access the near-EOF warning return code.

Atari++ 1.73
	- Added emulation support for the tape drive, and .CAS files loaded into the
	tape. Raw audio files in the .WAV format are not supported by the emulator
	directly, but two external programs "wav2cas" and "cas2wav" can convert
	between them.
	- Added an additional rendering mode for the X11 video system of Linux
	machines. Instead of drawing the emulated screen on the display rectangle by
	rectangle, the "xvideo" mode uses the xv extension of X11 to render into an
	off-screen memory which is then merged into the screen by the video overlay
	mechanis of the hardware. This rendering mode may create a smoother display
	and may improve performance on lower end hardware, but is not necessarily
	available everywhere.
	- A complete manual of Os++, including a memory map, is now available as
	download.
	- Included the Os++ system disk, including disk-based utilities around Os++
	including a Dos overlay manager that relocates Dos buffers behind the
	cartridge, an RS232 handler, an updated version of DISKIO, a disk-based 
	tape handler, a menu based DUP and a lot of tools.

Atari++ 1.80
	- Atari++ has now a built-in Basic interpreter, namely Basic++. It is a
	mildly extended Atari Basic dialect, which is quite a bit faster, plus
	one additional command, "DIR". See the Basic++ distribution for additional
	modifications.
	- The Basic settings have been improved, the preferences allow now up to
	three Basic images to be defined, typically corresponding to revisions A,B
	and C of the language.
	- The CPU emulation fixed the cycle count for some rarely used instructions.
	- Added a profiler to the monitor. PROF.S starts the profiler. PROF.L lists
	the profile counts collected so far, PROF.C lists the cumulative cycle counts
	of subroutines.
	- Tape emulation has been largely extended and simplified. Entering a non-
	existing tape will now create an error immediately. The tape emulation also
	allows now WAV files, i.e. digitized real tapes, and will decode them on demand.
	Output to .WAV files (audio-encoding) is now also possible. This integrates
	the wav2cas and cas2wav programs of the same author into the emulator.
	- SIO sound emulation has been extended. The SIO sound now also emulates the
	tape sound on input, and improves on the authenticity of the disk drive sound.
	- The X11 front end improves the handling of mouse clicks. Mouse clicks that
	do not go into the window but into an overlapping window are now ignored.
	- Audio outut can now be recorded into a SAP Record-Type R file for playback.
	- Disk drive emulation has been largely improved. Several drive types are now
	emulated, including their serial transfer characteristics, such as disk drive
	speed. Note that the original 1050 drive emulation no longer takes disks that
	are double density or have more sectors than those of the original disk
	formats. To play such extended disks, select one of the more advanced drive
	types.
	- SIO emulation has been reworked to some degree to allow the extended drive
	types, control the serial speed and allow for proper tape emulation.
	- Binary disk images now also create a valid disk structure containing the
	load file as AUTORUN.SYS so it can be loaded from DOS, too.
	- The math pack patch has been revised and its precision has been inproved
	by changing the rounding policy slighty. The floating point to ASCII conversion
	now also follows the convention of the original math pack.
	- Detection of .BAS (Basic) files as disk images is now handled more carefully,
	and the emulator will no longer confuse some xfd disk images with basic files.
	- The built-in monitor supports now symbolic labels. Such label information can
	be read from a CA65 debug file output, i.e. use --dbgfile on the ca65 command line.
	The debug file is then read with the new ENVI.S command of the monitor.
	- The math pack in the built-in Os ROM had a bug in the BCD to ASCII conversion
	which could not print signed zeros and some denormalized numbers correctly. This
	got fixed.
	- The math pack could not handle signed zeros in the BCD to integer conversion,
	fixed.
	- The BCD to integer conversion was pretty slow. The new release replaces the
	algorithm completely, making it a lot faster.
	

Atari++ 1.81
	- Fixed a bug in SIO that prevented correct emulation with the SIO patch enabled.
	- Fixed a timing issue in the SIO emulation that sometimes returned a command
	  acknowledge too early for the ROM codes to react.
	- Fixed a minor bug in the Pokey SIO sound emulation of SIO.
	- Fixed the command handling of the USDoubler disk drive emulation.
	- Updated Os++, the build-in operating system. A bug in the screen-handler
	  prevented that the screen goes back to the editor in case an already established
	  text window is closed by a screen-open command.
	- Minor cleanup in the command line of the built-in Dos of Os++.
	- Updated Basic++ to the latest version 1.06.
	
Atari++ 1.82
	- Fixed bugs in the ATX support that send the total number of bytes in a sector
	  over SIO, even though SIO can only deliver 128 or 256 bytes a time.
	- Fixed a bug in GTIA argument parsing that triggered unnecessary warnings
	  in case the arguments had to be reparsed.
	- Improved rendering of artifacting.
	- Updated Basic++ to version 1.08.
	- Atari++ can now also override the math function of Basic++ to allow
	  faster execution of its trigonometric functions.
	  
Atari++ 1.83
	- The extension data for weak sectors in the ATX support was not properly parsed
	  off.
	- Disk status report for deleted sectors for the ATX was not correct.
	- Timing for track seeking for the ATX support was updated.
	- The CPU emulation did not count cycles correctly, and as a side effect, the ALSA
	  sound output quality was degraded.
	- Parsing off file names did not stop after 3 characters of the file extension and
	  as such caused spurious file name errors, i.e. error 165.
	- The warning requester in the headless mode did not accept "E - quit" as an option.
	
