Altirra Change Log

Version 2.50 prerelease:
   [features added]
   * BASIC: Altirra BASIC is now the default when no BASIC ROM is included.
   * Cartridge: Added support for another 512K/4MB/8MB flash cartridge.
   * Cassette: Tape control UI now has a waveform graph.
   * Cassette: Added support for FSK blocks in .cas files.
   * CPU: Extended 65C816 speed options to include 17MHz (10x) and 21MHz (12x).
   * Debugger: Register (r) command can now set the emulation (E) flag.
   * Debugger: Improved display of 65C816 register state.
   * Debugger: Disassembly window now steps properly above bank $00.
   * Debugger: Added search capability to History pane.
   * Debugger: Added some 65C02 and 65C816 instructions to assembler.
   * Debugger: Added .loadobj command.
   * Debugger: Keyboard shortcuts are now configurable.
   * Debugger: .basic_dumpline now decodes BASIC XL/XE tokens.
   * Debugger: Added x (examine symbols) command.
   * Debugger: Added module!symbol syntax for resolving symbols specific to a module.
   * Debugger: .sdx_loadsyms command now works on more versions of SpartaDOS X.
   * Debugger: .printf now supports string output and variable width/precision.
   * Debugger: Failed assertions now report file/line info if available.
   * Debugger: Added .basic_dumpstack command to dump BASIC runtime stack.
   * Debugger: Added option to hide namespaces for nested symbols in history window.
   * Disk: .ARC files can now be mounted as SpartaDOS X disk images.
   * Disk: Added option to format new disks with the SpartaDOS File System (SDFS).
   * Display: Fixed update problems when stepping with frame blending active.
   * Input: Middle mouse button (MMB) can now be used to release mouse capture if it is not already bound.
   * Input: Added XInput support.
   * Network: DragonCart emulation support.
   * Printer: Added Clear option to printer output pane.
   * Profiler: Added columns for unhalted cycles.
   * Serial: Service field in ATDI command is now optional and defaults to telnet (port 23).
   * Serial: Added Telnet terminal type negotiation support.
   * Serial: Added Telnet binary transfer support.
   * Serial: Added full 850 Interface Module SIO protocol and handler support.
   * UI: Added some touch device support.
   * Ultimate1MB: Added SST39SF040 (4K sectors) as an alternate flash chip option.

   [bugs fixed]
   * 65C816: RTI can no longer clear the X flag in emulation mode.
   * Cartridge: Fixed swapped 5200 two-chip and one-chip modes.
   * CPU: Fixed crashes when disabling heat map tracking.
   * CPU: Reverted unintentional change to IRQ timing (affected PM 2.0).
   * Debugger: lm (list modules) and .unloadsym now work by IDs instead of indices to avoid index renumbering problems.
   * Debugger: Improved M/X tracking in disassembly window.
   * Debugger: Fixed disassembly of absolute long addressing mode.
   * Debugger: Memory window now updates properly above bank 0.
   * Debugger: Fixed memory access value reporting above bank 0 in step disassembly.
   * Debugger: Fixed infinite loop bug in static trace (st) command.
   * Disk: Fixed crash when host file is modified on virtual SDFS mounted path and accessed before emulator can notice the change.
   * Disk: Fixed a bug that caused some root files on virtual SDFS disks to not hot-update reliably.
   * Disk: Writes to virtual disks are now blocked.
   * Disk Explorer: SDFS directory entries are now reused properly.
   * Disk Explorer: SDFS sparse files are now supported.
   * HDevice: Files can now be created in append mode.
   * HDevice: Improved error handling in delete, rename, lock, and unlock operations.
   * HLE: Acceleration hooks no longer fire in 65C816 native mode or with a non-standard emulation mode environment.
   * HLE: Program loader now detects and rejects SpartaDOS X executables.
   * HLE: Fixed state of carry flag when exiting DSKINV after failure (fixes Micropainter with SIO patch enabled).
   * HLE: Fixed EXP(-1) returning an error with FP acceleration enabled.
   * HLE: Added alternate hooking mechanism so that CIO device hooks can activate on OSes that don't use the standard CIOINV vector.
   * Input: Relative binding to the axis 0/1 inputs of a tablet controller now works.
   * Input: Fixed mouse capture malfunctioning when activated by keyboard shortcut when the mouse is outside of the window.
   * LLE: Writes to S: in mode 0 now extend logical lines properly.
   * LLE: CIO now checks permissions on get/put operations.
   * LLE: Improved accuracy of power series for ATN(x).
   * PCLink: Fixed race condition in completion of fwrite() command.
   * POKEY: Fixed POTn registers changing without POTGO being strobed.
   * Printer: High bit is now stripped on printed characters so that inverse characters can be read instead of becoming ?.
   * Serial: Fixed escaping of $FF bytes over Telnet protocol.
   * Serial: Cold reset now forces modem back to command state.
   * Serial: Modem command handling is now case-insensitive.
   * Serial: Fixed control line status from status commands issued between OPEN and XIO 40 (was causing ForemXEP drops).
   * SIDE2: Fixed SDX banking register address.
   * VBXE: Extended color bit now enables LSB of GTIA color registers.
   * VBXE: Fixed blit mode 4 (bitwise AND) not working properly with src=0.
   * VBXE: Fixed blitter collision behavior with dest=0.

Version 2.40 [November 1, 2013]:
   [features added]
   * 65C816: Optimized mode switches.
   * Audio: Added drive sound volume level option.
   * Cartridge: Added support for .CAR types 53-59 (2K, 4K, right-as-left 8K, right slot 4K, 128-512K SIC!).
   * CPU: Preliminary support for accelerated 65C816 operation.
   * Debugger: Added .dmabuf command.
   * Debugger: Added %%e, %%f, and %%g formats to .printf command.
   * Debugger: Verifier can now detect 64K address space index wrapping and abnormal DMA conditions.
   * Debugger: Added fbx (fill bytes with expression) command.
   * Debugger: r (register) command now allows access to 65C816 registers.
   * Disk: Added "Extract Boot Sectors" command to disk dialog for use with bootable virtual disks.
   * LLE: Added PBI device interrupt support.
   * MMU: High (65C816) memory can now be adjusted from 0KB-4032KB.
   * Profiler: Added 65C816 support.
   * Recorder: Added .WAV file audio recording.
   * Recorder: Added option for encoding duplicate frames as full frames.
   * UI: Added on-screen indicators for console buttons held on startup.
   * UI: Added on-screen indication for some view mode changes.
   * UI: Added support for per-monitor DPI scaling in Windows 8.1.
   * UI: Added custom debug font dialog for half point sizes.
   * UI: File > Exit now confirms if there are modified images.
   * XEP80: Initial support.
   
   [bugs fixed]
   * 5200: Floating data bus is now enabled in 5200 mode.
   * 65C816: Fixed cycle timing for JMP (abs) instruction.
   * 65C816: Fixed cycle timing for TXY instruction.
   * 65C816: Fixed TYX instruction.
   * 65C816: INX was checking M bit instead of X bit.
   * 65C816: Read/modify/write instructions now do read/write/write in emulation mode.
   * 65C816: Fixed (dp), (dp,X), and (dp,Y) behavior with DP!=0.
   * ANTIC: Disabling playfield DMA after playfield start now reads bus data into the line buffer.
   * ANTIC: Abnormal playfield DMA is now emulated.
   * ANTIC: Improved precision of CHACTL changes.
   * Cartridge: Fixed $BFxx reading with 5200 64K cartridge type.
   * CPU: Illegal instruction option now saves correctly.
   * Debugger: Display float (df) command displays all ten significant digits.
   * Debugger: Fixed LLE kernel ROM auto-reload and symbol load option.
   * Debugger: UI panels are now more consistent with debugger commands in numeric base handling.
   * Debugger: Fixed incorrect disassembly on step when running from high banks.
   * GTIA: Fixed bug with VDELAY on missiles.
   * GTIA: Fixed regression with hires player-playfield collisions (since 2.30).
   * LLE: Fixes and optimizations to math pack.
   * LLE: Decimal flag is now cleared before dispatching IRQs.
   * LLE: Fixed BRK handler to handle stack wrapping.
   * LLE: 5200 BIOS now strobes NMIRES for DLIs.
   * LLE: Fixed CIOINV timing so that emulated CIO hooks work.
   * LLE: Corrected K: debounce logic and E: AUX2 open handling (fixes Action! with LLE firmware).
   * HLE: Fixes to math pack acceleration.
   * HLE: Added partial fix for CDTMA1 during accelerated disk reads (fixes Ankh with SIO patch enabled).
   * IDE: Fixed value of Sector Count register after READ SECTOR and WRITE SECTOR commands.
   * MMU: Fixed aliasing of high memory banks.
   * POKEY: SKSTAT bit 1 is now emulated.
   * Printer: Emulated P: device now supports the PUT CHARS command with len=0.
   * Serial: Emulated R: device supports break interrupts.
   * UI: Fixed GDI handle leak in text editor.
   * UI: Added workaround for set file associations dialog not appearing on Windows 8.
   * UI: Fixed ANTIC DMA visualization mode with extended PAL height.
   * UI: Fixed PCLink indicator not updating.
   * U1MB: Fixed PIA read decoding to only respond to $D300-D37F (unfixes Bounty Bob Strikes Back!).

Version 2.30 [May 14, 2013]:
   [features added]
   * Cartridge: SIC! cartridges can now be switched between Am29F040B and SST39SF040 flash chip emulation in Options.
   * Debugger: History pane supports horizontal scrolling and hiding S/P registers.
   * Debugger: Added .readmem command.
   * Debugger: .basic_dumpline command now handles DATA statements and decodes variable names.
   * Debugger: The ESC key moves from several debugger panes to the Console pane.
   * Debugger: Added set tracepoint (bt) command.
   * Debugger: Added deref signed dword (dsd) operator.
   * Debugger: Added brief (-b) format to .sio command.
   * Debugger: .tapedata command now supports seeking options and reports gaps.
   * Debugger: Added .reload command.
   * Disk: Folders can now be mounted as virtual disk images using the SpartaDOS file system.
   * Display: Normal overscan mode now only shows 224 scanlines in NTSC mode instead of 240.
   * Display: Altered full screen resolution selection to allow possibly unsupported modes for better access to 50Hz refresh modes.
   * IDE: Added SIDE 2 support.
   * MMU: Added support for Axlon banked memory.
   * Simulation: Split XL/XE hardware into separate XL and XE modes to handle hardware differences.
   * UI: Full-screen mode can now be used when paused.
   * UI: Added full-screen versions of the Boot Image file browser and emulation error dialog.
   * UI: Added initial UI bindings for controllers (under the Console controller).
   * UI: Added on-screen keyboard (activated by UI Option from main screen).
   * UI: Improved text rendering quality.
   * UI: Right-drag drop brings up a context menu with mounting options.
   * UI: Panes can now be stacked with tabs.
   * VBXE: Updated core support to 1.24, including a/r flag in bit 7 of the MINOR_REVISION register.

   [bugs fixed]
   * 65C816: The abs,X, abs,Y, (dp),Y, [dp],Y and (d,S),Y addressing modes can now cross bank boundaries.
   * 65C816: An additional instruction is no longer executed after WAI before servicing the interrupt.
   * 65C816: JMP (abs) now always reads from bank 0 instead of the data bank.
   * 65C816: JMP (abs,X), and JSR (abs,X) now read from the program bank rather than the data bank.
   * 65C816: Fixed switch between DL=0 and DL!=0 in emulation mode not taking effect immediately.
   * 65C816: Indexed modes now properly take an additional cycle for writes and for 16-bit index registers.
   * 65C816: The d,S addressing mode can now index out of page one in emulation mode.
   * 65C816: d,S and (d,S),Y now always read from bank 0.
   * 65C816: 16-bit stack operations can access page zero and page two in emulation mode.
   * 65C816: TCS/TXS can no longer change SH in emulation mode.
   * Debugger: .tracecio now reports correct status.
   * Debugger: Fixed an issue with stack overflow in History pane on very deep recursion.
   * Debugger: Verifier now allows jumps to the CIO device initialization vectors.
   * Debugger: Fixed incorrect wrapping of zero page indexed addressing modes in disassembly.
   * Debugger: Threaded static trace (st) command.
   * Debugger: e (enter) now follows normal expression evaluation rules.
   * Debugger: Fixed disassembly of PEA ($F4) opcode.
   * Debugger: PHX and PHY no longer create bogus call trees in the History window in 16-bit indexing mode.
   * Debugger: Fixed disassembly of opcodes with the (d,S),Y addressing mode.
   * Debugger: Corrected off-by-one index handling in .unloadsym command.
   * Debugger: Fixed blowup with memory access breakpoints in GTIA range with VBXE enabled.
   * Disk: Status byte 1 bit 5 is now updated after a Write PERCOM Block command.
   * Display: Fixed a crash when Direct3D 11 is enabled and fails to initialize.
   * Display: Fixed alignment errors in OS Screen Only mode with extended PAL height enabled.
   * Display: Enabled frame skip and reduced latency in full screen vsync mode.
   * GTIA: Player/missile size code %%10 can now trigger shifter lockup.
   * GTIA: Improved accuracy of mid-shift size changes.
   * HLE: Fixed editor tab commands.
   * HLE: Fixed bug with init segment dispatching.
   * IDE: READ SECTOR and WRITE SECTOR commands now allow up to 256 sector transfers.
   * IDE: READ MULTIPLE and WRITE MULTIPLE commands now produce errors when multiple mode is disabled.
   * IDE: The block size set by the SET MULTIPLE MODE command is now reflected in IDENTIFY DEVICE output.
   * Input: Fixed MultiJoy #8 input conflict.
   * LLE: Fixed system reset NMI handling.
   * LLE: Implemented PBI handler and CIO support.
   * LLE: Keyboard routines now update ATACHR.
   * LLE: Fixed editor tab set/clear commands.
   * LLE: Added printer (P:) device support.
   * LLE: Added light pen/gun support.
   * MMU: Fixed crashes accessing high 65C816 memory in the x64 version.
   * MMU: VBXE can now properly overlay Covox.
   * POKEY: Fixed timers 3+4 occasionally not being shut off when switching to asynchronous receive mode.
   * POKEY: Fixed timers 1-3 having the wrong offset when underflowing immediately before a write to STIMER.
   * POKEY: Corrected start timing of polynomial counters.
   * POKEY: Corrected audio pattern for 9-bit and 17-bit polynomial counters (was incorrectly inverted).
   * Recorder: Fixed 8-bit uncompressed output.
   * Recorder: Minor fixes to compressor.
   * Serial: SIO emulation level setting is now saved correctly.
   * VBXE: Writing a '1' to the blitter start bit no longer aborts an active blit.

Version 2.20 [January 6, 2013]:
   [features added]
   * UI: Overlays are now rendered through composition at native resolution instead of simulated resolution.
   * UI: Text can now be copied out when the simulation is stopped.
   * UI: Keyboard shortcuts are now configurable.
   * UI: Drag-and-drop from compressed folders in Explorer is now supported.
   * UI: Shift-hover over a BASIC or DOS error message now displays error help.
   * UI: Mouse cursor changes when light pen/gun is moved on and off the virtual screen.
   * Debugger: Holding SHIFT with the mouse over the display pane now shows the beam coordinates for that point.
   * Debugger: Added .pbi and .ultimate1mb commands.
   * Debugger: Extended many commands to accept expressions for address and length arguments.
   * Debugger: The default numeric base for addresses can now be changed (.base).
   * Debugger: Added extended memory bank variable to expression parser.
   * Debugger: Symbols using reserved expression operator names can now be escaped with #.
   * Debugger: e (enter) command now accepts extended addresses.
   * Debugger: .map command now displays layer names.
   * Debugger: bs (break on sector) command now accepts expressions.
   * Debugger: Added .ide_rdsec and .ide_wrsec commands.
   * Debugger: Added .diskdumpsec command.
   * Debugger: Added deref signed word (dsw) operator.
   * Debugger: .tracecio gives more detailed output.
   * Disk: Added option to format new disks with a DOS 2 filesystem.
   * Disk: Folders can now be mounted as virtual DOS 2 disk images.
   * MyIDE II emulation support.
   * Ultimate1MB emulation support.
   * Save states: Initial support for external save state files.
   * SIDE: Implemented top cartridge register and un-reversed image order.
   * Input: Input map editor now shows more specific button and axis labels.
   * IDE: Selecting a physical disk now updates the CHS mapping.
   * IDE: Fixed-size and dynamic .VHD images can now be mounted.
   * HLE/LLE: Added boot screen.
   
   [bugs fixed]
   * ANTIC: Fixed regression with the first byte in a wide scanline occasionally being decoded before being fetched.
   * ANTIC: Fixed display list pointer corruption when a jump instruction executes across vertical blank (fixes Spindizzy load).
   * Serial: Fixed R: not going into concurrent mode on open with AUX1 bit 0 set.
   * Cartridge: Re-added missing 512K detection size for SIC! cartridges.
   * Cartridge: 5200 4K/8K/16K cartridges now mirror to the full 32K region.
   * Display: Fixed offset on display in sharp bilinear mode on downlevel graphics cards.
   * Debugger: Fixed debug reads not seeing some partially overlaid memory layers.
   * Debugger: Fixed memory leak when an error occurs during expression parsing.
   * Debugger: Fixed 'value' operator returning incorrect value when used in a range write breakpoint conditional expression.
   * Debugger: Debug display now displays IR modes 8-10 correctly.
   * Debugger: Fixed history pane bugs with stack wrapping and with the scroll bar being flaky after a clear.
   * Disk: Fixed writes being gated by rotational timing even if accurate sector timing was turned off.
   * Disk Explorer: Fixed file deletion on DOS 2 volumes to not leave orphaned directory entries.
   * Disk Explorer: DOS 2 validator now allows both DOS 2 719 sector and MyDOS 720 sector VTOCs.
   * Disk Explorer: Fixed crash with large MyDOS file systems.
   * Display: Fixed text highlighting in "OS Display" overscan mode.
   * HDevice: Get Bytes command now returns $03 status code on impending EOF (fixes BLOAD from Turbo Basic XL).
   * HLE: Fixed off-by-one handling of RMARGN in screen editor.
   * HLE: Fixed some errors in updating LOGCOL on vertical cursor movement.
   * HLE: Fixed crash when disk boot sector signals a boot error (C=1).
   * HLE: Added missing international font.
   * HLE: Fixed many compatibility issues.
   * Input: Extended paddle and tablet range to 0-228.
   * Input: Tablet stylus is now always touching the tablet when the raise stylus input (button 4) is unbound.
   * Input: The "warm reset" input of the console controller was issuing a cold reset.
   * LLE: Improved display editor.
   * LLE: Fixed many compatibility issues.
   * Flash: Multiple sector erase commands are now supported.
   * Flash: Fixed Am29F040B flash to only validate A0-A10 for commands (the Am29F040 is the one that does A0-A14).
   * POKEY: Attempting to use synchronous clocking mode during serial input now produces framing errors.
   * UI: Tabs now paste properly.
   * UI: Non-ASCII characters are now saved correctly into the Altirra.ini file in portable mode.

Version 2.10 [August 13, 2012]:
   [features added]
   * SlightSID emulation support.
   * Covox emulation support.
   * 1200XL emulation support.
   * BASIC programs can now be booted.
   * Fast boot option now accelerates timeouts for powered down disk drives.
   * Disk: Added support for format skewed ($66) command.
   * Disk: Format commands ($21, $22) now support high-speed operation.
   * Disk: Added emulation profile modes for various disk drives.
   * Disk: Reduced ACK-to-complete delay when accurate sector timing is off.
   * Disk: Added rotation and seek sound emulation.
   * Disk: Accurate disk timing prediction is now preserved when burst I/O transfers are enabled.
   * Debugger: Added .sum (sum memory area) command.
   * Debugger: Added .warmstart command.
   * Debugger: Added ap (alias pattern) command for adding aliases with patterns.
   * Debugger: Added additional aliases to a8 command (set Atari800-compatible command aliases).
   * Debugger: Added alternate L>addr syntax for setting an address range length based on an end address.
   * Debugger: Added heat map support.
   * Debugger: Added .basic_dumpline command.
   * Debugger: Enter now repeats the last command.
   * Debugger: .dumpdlist command now collapses runs of identical commands.
   * Debugger: Unassemble and dump commands now support continuation from the last address.
   * Debugger: Added deref signed byte (dsb) expression operator.
   * Debugger: Added %%c and %%y formatting specifiers to .printf command.
   * Debugger: Added .dmamap command to show ANTIC DMA pattern over the course of a frame.
   * Serial: 1030 Modem support.
   * Display: Added scanline display mode.
   * Display: Added integer-multiple version of preserve aspect ratio sizing mode.
   * Display: Added sharp bilinear filter mode.
   * Display: Text can now be copied out of ANTIC modes 2, 3, 6, and 7 (GR.0, 1, and 2).
   * Display: Added CIO intercept based enhanced text mode.
   * HDevice: Added minimal support for SDX Get Current Directory command ($30).
   * HDevice: Added support for H6-H9: text translation modes.
   * HDevice: Implemented rename, get/set/create/remove directory, and get file length commands.
   * HDevice/PCLink: Fixed lock command not setting read-only flag.
   * Cartridge: Added MicroCalc 32K cartridge type support.
   * Cartridge: Added cartridge type autodetection.
   * UI: Screenshot command now adjusts for interlacing and 14MHz dot clock rendering.
   * UI: The program is now marked as high DPI aware in the application manifest.
   * Simulator: Added support for MapRAM MMU modification.
   
   [bugs fixed]
   * Increased paste keyboard timer to reduce dropped keys on line processing delays.
   * Fixed startup crash on Sandy Bridge CPUs on Windows XP.
   * Simulator: Inhibit FP math acceleration hooks when PBI ROM overlay is active.
   * Simulator: BASIC disable Option key hold is now released more quickly to reduce cartridge conflicts.
   * Debugger: "read" and "write" terms can now appear more than twice in a conditional breakpoint expression.
   * Debugger: Fixed .tracecio off not working.
   * Debugger: Fixed execution stopping on TRACE statements.
   * Debugger: Breakpoint clear (bc) command no longer interprets breakpoint numbers as hex.
   * Debugger: Fixed console entry window not always disabling properly.
   * Debugger: .pokey command now reports correct status for secondary POKEY.
   * Display: Fixed crash on some XP systems on display mode change.
   * Display: Added workaround for ps1.1 precision issue on Intel graphics cards.
   * Display: Fixed bicubic scaling in OpenGL mode.
   * ANTIC: Fixed line buffer addressing to correctly handle aliasing of buffered data to different modes.
   * POKEY: Fixed glitching in high-pass filtering.
   * POKEY: Fixed wrong bit in SKSTAT being set for serial input overruns.
   * POKEY: Fixed asynchronous receive mode not resetting timers 3+4 that are already running.
   * Disk: Fixed handling of XF551 high-speed sector skew format commands ($A1/$A2).
   * Disk: Format command now sends back ACK+ERROR+buffer instead of NAK on a read-only disk.
   * Disk: Adjusted step rate of 810 drive to 5.3ms.
   * Disk: Fixed forced sector ordering command (.diskorder) for .pro images.
   * Disk: Step delays were not always reflected correctly in command delay time (only rotational position).
   * Disk: Fixed inverted write protect bit status.
   * Disk: Attempted writes to a write protected disk now return errors instead of a NAK.
   * Disk: Fixed command response when accessing a drive with no disk.
   * Disk: Fixed error return for unsupported Write PERCOM Block requests.
   * Disk Explorer: Fixed case sensitivity issue allowing duplicate file creation on DOS 2 file systems.
   * Input: Fixed bug in keyboard repeat detection code.
   * Input: Improved Caps Lock key support.
   * Cartridge: An error is now thrown when attempting to save a cartridge image in .CAR format with an unsupported mapper.
   * Cartridge: Fixed switchable XEGS cartridge modes.
   * Display: Fixed display mode matching when /f is specified on the command line.
   * Display: Improved behavior of interlaced mode when frames are dropped.
   * CPU: Fixed cycle behavior of ASL/LSR/ROL/ROR abs,X instructions in 65C02 mode.
   * HLE Kernel: Fixed BUFADR being overwritten by CIO, which broke the DOS XE executable loader.
   * IDE: Fixed banking in KMK/JZ V1 mode and added 3K ROM support.
   * IDE: Fixed multiple sector read requests of exactly 32 sectors.
   * VBXE: Fixed memory not being cleared on cold reset with randomize function disabled.
   * Serial: Fixed incompatibility with Ice-T XE and the R: handler's STATUS handler.
   * Misc: Fixed upper 4 bits for some R-Time 8 register reads.
   * HDevice: Fixed NOTE and POINT commands.
   * Cheats: Fixed 16-bit option not being tracked properly for manually entered cheats.
   * GTIA: Sprites are now triggered properly from within horizontal blank.
   * GTIA: Fixed sprite image overlap result.
   * Cassette: Loading a new tape didn't press 'play' on the emulated player until the next cold reset.

Version 2.00 [December 24, 2011]:
   [breaking changes]
   * Debugger: The step over command has been changed from s to o.

   [features added]
   * UI: Added OS Screen size setting.
   * UI: Added support for gzip compressed images (*.gz, *.atz).
   * UI: Arrow key behavior is now configurable.
   * UI: Added speed options.
   * UI: Added option to control whether emulation sees the Shift key pressed after a Shift+F5 cold reset.
   * UI: Added MRU list for booted images.
   * UI: Color settings can now be exported as a palette file (*.pal).
   * UI: Display API options can now be changed through the GUI (not just cmdline).
   * UI: Added full screen resolution options.
   * UI: Added single instance option.
   * UI: Request 1ms system timer precision only when unpaused.
   * UI: Added option to bind file associations in Windows for image types.
   * UI: Added /run, /disk, /tape, and /cart switches to force load types on the command line.
   * UI: Added mute option.
   * Debugger: Added command aliases (ac, al, as, a8).
   * Debugger: Added watch expression (wx) command.
   * Debugger: Added multiple memory panes.
   * Debugger: Added watch panes.
   * Debugger: Initial version of debug display.
   * Debugger: Disassembler can now display offsets from symbols.
   * Debugger: Profiler now distinguishes between VBIs and DLIs in function sampling mode.
   * Debugger: Profiler now shows unhalted cycle counts and DMA contention rates.
   * Debugger: Added call graph profiling support.
   * Debugger: Mouse wheel is now position-based instead of focus-based.
   * Debugger: Address range breakpoints can now trigger commands.
   * Debugger: Added log output filter commands (lfd/lfe/lfl/lft).
   * Debugger: Added .ide command.
   * Debugger: Enter (e) command now takes expressions.
   * Debugger: Added bitwise/low-byte/high-byte operators and address/value variables to expression evaluator.
   * Debugger: Break on expression command (bx) can now include address ranges.
   * Debugger: Added dump double words (dd) command.
   * Debugger: Go (g) command now has options to preserve and force source mode.
   * Debugger: Added batch (.batch) command.
   * Debugger: Added source mode control (.sourcemode) command.
   * Debugger: Commands can now be queued to run when an EXE loads or runs.
   * Debugger: Source line breakpoints can now be set prior to line debug information being available.
   * Debugger: A matching .atdbg file is now processed when an executable loads.
   * Debugger: startup.atdbg in the program directory is now processed on startup if present.
   * Debugger: Ctrl+Up/Down from output window command line now scrolls log pane by single lines.
   * Debugger: Added fill (f), search (s), and move (m) commands.
   * Debugger: Register (r) command can now set individual flags.
   * Debugger: Improved output of .pia command.
   * Debugger: Call, loop, and interrupt collapsing in history window can now be toggled.
   * Debugger: History window can now show timestamps in cycles, unhalted cycles, and microseconds from an anchor point.
   * Debugger: Extended memory syntax now allows access to hidden RAM (r: prefix).
   * Debugger: Added .tape and .tapedata commands.
   * Disk: Added support for Write PERCOM Block command.
   * Disk: Added option to auto-detect firmware overrides of disk accesses and automatically disable SIO patch for those drives.
   * Disk: Live disk images can now be explored directly from the disk drive entry rather than requiring an unmount and remount.
   * Disk: Disk explorer shows timestamps.
   * Disk: .ARC compressed archives can now be explored.
   * Disk: Fixed a couple of bugs with DCM disk image decoding.
   * Cartridge: Added another Atrax 128K cartridge variant used for SpartaDOS X.
   * Cartridge: Added support for OSS 8K, Blizzard 4K, AST 32K, Atrax SDX 64K, Turbosoft 64K, and Turbosoft 128K types.
   * Cartridge: Added support for newer MaxFlash 1MB cartridges that power up in bank 0 instead of bank 127.
   * Cartridge: Added support for 1M Megacart (different type with similar name).
   * Cartridge: Added support for a 5200 64K cartridge with 32K banks.
   * Input: MultiJoy8 support.
   * Input: CX-80 and 5200 trackball support.
   * Input: 1200XL F1-F4 keys can now be enabled in keyboard options.
   * Input: ~ key is now an alternate mapping for the inverse key.
   * IDE: KMK/JZ IDE / IDEPlus 2.0 emulation support.
   * IDE: Initial SIDE emulation support.
   * IDE: Solid-state mode supports up through PIO mode 6.
   * IDE: Read-only physical disk access.
   * GTIA: SECAM support.
   * GTIA: Optimizations to mode 9 and mode 10 rendering.
   * MMU: Added 800 8K/24K/32K/40K configurations.
   * MMU: Added 320K and 576K Compy Shop configurations.
   * MMU: Sped up extended bank switching.
   * Simulator: Added XEGS support.
   * SoundBoard: Multiplier support.
   * POKEY: Rewrote sound core to defer repeating events whenever possible for extra speed.

   [bugs fixed]
   * ANTIC: Added emulation of bus data displaying at the very right border of a wide scrolled playfield.
   * ANTIC: Improved accuracy of mid scan line changes to HSCROL and DMACTL.
   * ANTIC: Fixed phantom DMA data during WSYNC.
   * ANTIC: Implemented phantom DMA artifacts along right side of wide playfield.
   * ANTIC: Fixed NMIs not being reactivated after a write to NMIRES on cycle 7.
   * Disk: PERCOM block is now initialized for a drive without a disk.
   * Disk: Fixed errors in PERCOM block track and sectors per track counts.
   * Disk: Switching a disk from R/W to VirtRW mode now clears pending flush errors.
   * Disk: Fixed incorrect serial transfer rates for XF551 high speed Put/Write and Write PERCOM commands.
   * Disk: Fixed H: device not handling zero-byte get/puts properly with burst I/O enabled (affected GET/PUT from BASIC).
   * Disk: H: device now supports OPEN with AUX1=7 to fix directory listing from DOS 2.5.
   * Disk: Disk explorer now properly increments volume sequence number when modifying SpartaDOS X images.
   * Disk: DSKINV hook now supports writes to sectors bigger than 128 bytes.
   * Disk: Fixed crash with very short disk images.
   * CPU: Fixed undocumented $BB opcode using abs instead of abs,Y addressing mode.
   * CPU: Undocumented $6B opcode now supports decimal mode.
   * Debugger: Profiler sometimes lost track of intermediate call frames during function sampling.
   * Debugger: Mouse wheel now uses system wheel scroll setting.
   * Debugger: Improved parsing of MADS listings.
   * Debugger: Fixed command escaping so that escapes are no longer processed unless enabled, i.e. \"foo\nbar".
   * Debugger: Register (r) can no longer clear bits 4 and 5 of P when unsupported by current CPU mode.
   * Debugger: _ and . are now accepted as part of symbol names in expressions.
   * Debugger: Fixed crash when attempting to load empty file as symbol file.
   * Debugger: Source path matching now allows partial path matches both ways and has improved behavior with duplicate filenames in different directories.
   * Debugger: Fixed wrapping of frame counter in history window.
   * Debugger: Built-in kernel symbols now take priority over loaded symbols.
   * Debugger: Fixed page scrolling in history window after enabling CPU history tracking.
   * IDE: Added mandatory Recalibrate, Read Verify, Read Multiple, Write Multiple, Seek, Set Multiple Mode, and Initialize Device Parameters commands.
   * IDE: Fixed response from device 1 status register.
   * IDE: Improved response from Identify Drive command.
   * IDE: Set transfer mode command is now supported.
   * Cartridge: Reverted OSS 034M mapper back to original bank order and added OSS 043M mapper mode for alternate bank layout.
   * Input: Fixed crash when activating triggers to unavailable controllers.
   * PIA: Implemented IRQB and control bit 6.
   * HLE: Fixed escape handling in display handler.
   * HLE: Screen setup now matches the display list and playfield addressing of the stock OS ROM.
   * HLE: Fixed cartridge handling so that cartridges are run after disk boot completes.
   * HLE: Added known RTS instruction at $E4C0.
   * HLE: CIO now allows SPECIAL commands to be issued on a closed IOCB.
   * HLE: Boot loader now sets DBYTLO/DBYTHI to $0400 before launching.
   * HLE: Fixed crash in CIO on OPEN command with unknown device.
   * HLE: S: now supports the Get Status, line, and fill commands.
   * UI: Disk sector display was incorrect for accelerated writes.
   * UI: Fixed crash if DirectX 9 is not installed.
   * UI: Display window can no longer be undocked in full screen mode.
   * UI: Adjusted default NTSC color preset. The old preset is still available.
   * UI: Command-line processing now better matches standard VC++ escaping rules.
   * UI: Direct3D9/OpenGL rendering now works over Remote Desktop with Windows Vista/7.
   * SoundBoard: Restricted $D5/D6xx mapping to $D500-D53F and $D600-D63F.
   * POKEY: Fixed incorrect latching on IRQST bit 4 (serial output ready IRQ).
   * POKEY: Fixed deassert timing for IRQST bit 3 (serial output complete IRQ).
   * POKEY: Added partial emulation of SKSTAT bit 4 (direct input) during disk transfers.
   * Cassette: Fixed data blocks being silently dropped when reading some .cas files.
   * Cassette: Fixed inaccuracy in data rate produced from loading .cas files.
   * GTIA: Fixed incorrect color for %%1000 pattern in mode 10 with lores ANTIC input.
   * VBXE: Warm reset no longer resets all registers like a cold reset.

Version 1.9 [May 15, 2011]:
   [features added]
   * Debugger: Multiple memory access breakpoints can now be placed.
   * Debugger: Added option to break on run address of loaded executable.
   * Debugger: Conditional breakpoints (bx) are now supported.
   * Debugger: Commands can now be run when a breakpoint fires.
   * Debugger: Added ? (evaluate) and .printf commands.
   * Debugger: Trace and assert statements can now be embedded in assembler listings.
   * Debugger: Added vta, vtc, vtl, and vtr commands to control verifier OS entry point checking.
   * Debugger: Added .dumpsnap command.
   * Debugger: Memory access breakpoints can now be placed on an address range.
   * Debugger: History window now has a Copy Visible context menu option.
   * Debugger: Verifier modes are now configurable.
   * Debugger: Verifier can now catch register corruption across interrupts.
   * Debugger: .writemem now supports extended address syntax.
   * Debugger: Added .sio command.
   * Debugger: Added .sdx_loadsyms command.
   * SoundBoard: Initial support.
   * UI: Added emulator crash dialog.
   * UI: Show FPS option now also shows CPU usage.
   * Input: Added Amiga mouse support.
   * Input: Added CX-85 keypad support.
   * GTIA: NTSC and PAL modes can now have separate palettes.
   * GTIA: Added option for PAL encoding quirks.
   * GTIA: Added PAL high artifacting mode.
   * Disk: Initial version of disk explorer.
   * Serial: Inbound connections are now supported.
   * Serial: Added support for A, L, M, P, Q, S, T, V, X, &C, &D, &F, &G, &P, &T, &V, and &W modem commands.
   * Serial: Added DTR and CRX signal support.
   * Serial: Added IPv6 support.
   * Serial: Added option to force specific connection and DTE communication rates.
   * Serial: Added option to bypass accurate serial port rate throttling.
   * Cartridge: Two cartridges are now supported for 800 left+right and stacked cartridge configurations.
   * Cartridge: 2K and 4K cartridges are now supported (as mirrored 8K cartridges).
   * Cartridge: SIC! cartridge support.
   * PCLink: Initial support.
   
   [bugs fixed]
   * UI: Pane dragging is less twitchy and no longer undocks a pane as soon as you click on the caption.
   * UI: Fixed undocked panes getting lost on exit when no other panes were docked.
   * UI: Optimized Direct3D9 code to reduce flickering when switching artifacting modes.
   * UI: Fixed current beam position indicator not updating properly when stepping with interlacing enabled.
   * UI: Auto-size command now works when menu wraps.
   * HLE: Fixed crash when NMI handler is invoked with no NMIs pending.
   * HLE: Added support for XL OS PENTV vector.
   * HLE: E: device now excludes prompts from data returned by get-line commands.
   * HLE: Increased HLE kernel compatibility with SpartaDOS X.
   * HLE: Fixed BASIC ^ operator with HLE kernel or floating-point acceleration.
   * HLE: Fixed AFP not accepting leading spaces (which broke the Atari BASIC READ statement).
   * Simulator: Default kernel mode now prefers ROM images properly again.
   * Simulator: BOOT? and DOSINI are now set at the beginning of EXE/XEX loads to support more WARMSV tricks.
   * Cheats: Enable checkbox on cheats was broken.
   * CPU: Added missing SHA abs,Y ($9F) instruction.
   * CPU: Fixed CMOS BIT #imm ($89) instruction.
   * CPU: Fixed 65C02 $FC instruction.
   * CPU: Back-to-back interrupts are no longer allowed.
   * CPU: Added emulation of BRK/NMI bug.
   * CPU: Added option to emulate masked NMIs (off by default).
   * CPU: Fixed dp,X, dp,Y, and (dp,X) page wrapping behavior in 65C816 E=1 mode.
   * ANTIC: DMACTL bits 6 and 7 are no longer reflected in .dlhistory output.
   * ANTIC: Fixed CPU not being halted when playfield DMA occurred on cycle 10.
   * ANTIC: Fixed timing of when VSCROL affects DLIs.
   * Debugger: Optimized History pane.
   * Debugger: Avoid re-requesting the same source file when it is not found on disk.
   * Debugger: Improved reliability of source-level stepping.
   * Debugger: Added XL OS entry points to default entry points allowed by verifier.
   * Recorder: Fixed crash on recording errors.
   * Recorder: Fixed incorrect format on video stream when using ZMBV compression.
   * Disk: SIO receive speeds are now validated for more reliable high-speed SIO detection.
   * Disk: VAPI (ATX) images can now be loaded from .zip files.
   * Disk: Fixed problems binding disk images to D9:-D15:.
   * GTIA: NTSC high artifacting mode now respects artifact phase setting.
   * GTIA: Fixed trigger state sometimes being initially wrong when enabling latching.
   * GTIA: Improved accuracy of transitions from mode 8 to mode 9/10.
   * GTIA: Fixed hires lines not artifacting correctly with the extended PAL height setting enabled.
   * Serial: Telnet emulation now reads out of band data.
   * Serial: Telnet emulation now handles incoming WILL and WONT commands.
   * Serial: Telnet server now attempts to turn off local echo on remote end.
   * Serial: Fixed sporadic missing newlines on modem status messages.
   * Serial: Control line state is now reported in non-concurrent mode.
   * Serial: Ring pattern adjusted to match US standard (2s/4s).
   * Serial: Re-opening the R: device now flushes buffered data.
   * Serial: Closing the R: device deactivates concurrent mode to make subsequent status requests work.
   * Serial: Fixed crash in R: when invoking GET BYTE with an empty input buffer or PUT BYTE with a full output buffer.
   * Serial: Fixed BASIC GET command failing after XIO on R:.
   * Serial: Fixed erroneous CR-to-CRLF conversion on transmit path.
   * Serial: XIO commands to R: instead of R1-R4: now work properly.
   * Serial: Closing R: waits for queued output data to flush.
   * Printer: Fixed close command not actually closing IOCB.
   * VBXE: VBXE memory no longer overlays extended memory in 1088K mode with shared memory disabled.
   * IDE: Cold reset now also resets the emulated IDE device.
   * IDE: Addressing is now restricted to offsets $00-07 to avoid conflicting with OS PBI scan.
   * Cartridge: Corrected banks 1 and 2 for OSS 034M cartridge type.

Version 1.8 [December 22, 2010]:
   [features added]
   * Initial 5200 support.
   * Simulator: Added 16K memory size support.
   * Simulator: 576K and 1088K modes now allow ANTIC access to extended memory.
   * Simulator: ROM image paths are now configurable.
   * Cartridge: Added support for Corina 1MB + 8K EEPROM and 512K + 512K SRAM + 8K EEPROM cartridges.
   * Cartridge: Added support for Telelink II NVSRAM.
   * Cartridge: Added support for DB 32K, Williams 32K / 64K, Diamond 64K, SpartaDOS X 64K/128K, Phoenix 8K, Blizzard 16K, and Atrax 128K cartridges.
   * Cartridge: Added support for 8K right slot cartridges.
   * Cartridge: Added support for non-switchable 256K-1M XEGS cartridges.
   * Cartridge: Mapper dialog attempts to detect Atari 2600 cartridge images (unsupported).
   * Debugger: The history window no longer needs to be closed and reopened after toggling history mode.
   * Debugger: Source windows now highlight lines that have symbol information associated and can be used for execution control.
   * Debugger: Added on-screen watch byte/word commands (wb/ww/wc/wl).
   * Debugger: History window now detects and collapses loops.
   * Debugger: Added optional length parameter for dump and disassemble commands.
   * Debugger: Added dump INTERNAL string command (di).
   * Debugger: Added .iocb command.
   * Debugger: Added ya/yc/yd/yr/yw commands for manually adding symbols.
   * Debugger: Verifier now detects recursive NMIs.
   * Debugger: Font and font size can now be changed.
   * Debugger: Added 6502 miniassembler.
   * Debugger: Added detailed command help.
   * Debugger: Added .pathrecord command and documented existing path commands.
   * Debugger: Added .basic and .basic_vars commands.
   * Debugger: Console window now supports multiple history entries and page up/down from the command line.
   * Debugger: Added symbol parsing support for ATasm and XASM assembler output.
   * Disk: Added support for D9: through D15:.
   * UI: Added DirectSound support.
   * UI: Audio latency can now be adjusted.
   * UI: Switched to larger font for on-screen UI.
   * UI: Shift key now controls whether dropped files are mounted/added (shift) or booted (no shift).
   * UI: Left-shift and right-shift keys can now be bound separately.
   * UI: Warnings are now displayed before modified images are implicitly discarded.
   * UI: Enabled themed controls.
   * UI: Removed borders on docked panes.
   * UI: Added first pass at pause button (F9).
   * UI: Ctrl+Arrow keys now give the un-Ctrl'd keys on the emulated keyboard for programs that use pseudo arrow keys.
   * UI: Mouse auto-capture is now an option.
   * UI: Added option to resize main window to remove letterboxing on display.
   * Input: Input map editor redesigned for easier controller configuration.
   * Input: Input maps now support shifted subsets via flags.
   * Input: Analog axes can now be bound as either relative or absolute, with tunable speed for relative mode.
   * Input: Paddles now support rotation-based control.
   * Input: Added light pen/gun support.
   * Input: Added tablet support.
   * VBXE: 5200 support added.
   * IDE: Added option to switch between short and long BSY-to-DRQ delays to simulate platter and solid-state media.
   * Serial: Added support for 850 R: and basic virtual-modem-over-TCP emulation.
   * Serial: Added stub loader emulation of 850 SIO boot process.
   * Cheats: Added simple cheat finder and value locker.
   * Recording: Added options to tweak the frame rate and to record at half rate.

   [bugs fixed]
   * Disk: Added workaround for yet another goofy way to store boot sectors in a DD ATR image (3 x 128K followed by 384K of nulls).
   * Disk: Fixed crash when opening .zip file containing files with no filename extension.
   * Disk: Disk drives dialog now highlights disk images that have been modified and not saved.
   * IDE: Fixed excessively long delay for BSY to assert after a command is issued.
   * Input: Binding mouse up/down/left/right outputs to digital inputs now works.
   * UI: Fix for crash when using Direct3D display on video cards that don't support arbitrary non-pow2 textures.
   * UI: Rewrote audio output path to use block duplication/removal rather than resampling to maintain sync.
   * UI: Fixed emulated mouse button not working reliably.
   * UI: Reduced border artifacts when using bicubic display stretching.
   * UI: Fixed crosstalk between interlace and frame blending settings.
   * PIA: Control bits 6 and 7 are no longer writable.
   * POKEY: Fixed RANDOM offset in 17-bit noise generator mode.
   * POKEY: Fixed IRQ timing for CPU-triggered IRQs.
   * POKEY: Fixed serial output complete interrupt not always deactivating properly.
   * POKEY: Clearing SKCTL bit 1 now disables the keyboard.
   * POKEY: Adjusted timing of 15KHz and 64KHz timers after exiting initializing mode.
   * GTIA: Phantom P/M graphics DMA is now implemented.
   * GTIA: Fixed graphic output when changing the size in the middle of a player image.
   * GTIA: Improved accuracy of graphic output when changing GTIA modes mid-screen.
   * GTIA: Latched triggers are now implemented.
   * HLE: Delete line ($9C) now resets cursor column.
   * HLE: Implemented CRSINH function.
   * HLE: IRQ handler now clears decimal flag.
   * HLE: Fixed crash when jumping to cassette init routine.
   * Debugger: Fixed MADS listing parsing for code lines after ORG statements.
   * Debugger: .dumpdsm command works again.
   * Debugger: History window now shows effective addresses.
   * Debugger: Disassembly and history windows now allow disassembly columns to be toggled.
   * Debugger: Stepping in source view now steps by source line instead of instruction.
   * Debugger: Fixed uninitialized screen data sometimes appearing when stepping.
   * Debugger: Register "r" command can now set A register.
   * Debugger: Breakpoints now work on the run address of a loaded executable.
   * Debugger: Fixed .writemem crashing if filename was invalid.
   * CPU: Fixed IRQ timing around CLI and SEI instructions.
   * CPU: Fixed a couple of bugs with decimal mode.
   * CPU: Taken branches now delay IRQ/NMI acknowledgement by one cycle.
   * CPU: Fixed false read behavior for: STA (zp),Y; STA abs,Y; STA abs,X; STX abs,Y.
   * CPU: Implemented reserved NOPs in 65C02 mode.
   * CPU: Fixes to undocumented opcodes: RLA ($23, $27, $2F, $33, $37, $3B, $3F); ASR ($4B); SAX ($83, $87, $8F, $97); SHX ($9E).
   * ANTIC: Fixed occasional unexpected DLIs on cold reset, which was causing once-only emulation crashes.
   * ANTIC: Corrected NMIST change timing.
   * Cartridge: Fixed OSS 034M and M091 mappers.
   * Recording: Fixed crashes in some cases when recording start process failed.
   * VBXE: Attribute map RES bit is now implemented.
   * VBXE: Fixed attribute map addressing getting scrambled on mid-screen changes.
   * VBXE: Overlay scrolling and addressing is now reset at VBL and no longer affects bitmap modes.
   * VBXE: Frame blending is now supported in VBXE mode.

Version 1.7 [September 4, 2010]:
   [features added]
   * Cartridge: Fixed ID mistake on mappers 1 and 2; added 3, 15, 26-30, 32-38.
   * Cartridge: Added dialog to ask for mapper when header is missing.
   * Cartridge: Added write support for 1Mb/8Mb flash cartridges.
   * Cartridge: Added option to create new 1Mb/8Mb flash cartridges.
   * Cartridge: Added option to save cartridge images.
   * Cartridge: Added support for AtariMax 1Mb+MyIDE cartridge banking mapper.
   * UI: Added /bootvrw and /bootrw to boot disks in read/write or virtual R/W mode.
   * UI: Added /artifact switch for controlling video artifacting.
   * UI: Multiple types of images can now be mounted simultaneously via the command line.
   * UI: Added /type switch to push keys on startup.
   * UI: Added /cartmapper switch to specify mapper when booting headerless cartridges.
   * UI: Added support for saving settings in an .ini file instead of the Registry.
   * UI: Added more color presets.
   * UI: Added save screenshot command.
   * UI: Ctrl+\ and Ctrl+Shift+\ now produce Ctrl+Esc and Ctrl+Shift+Esc.
   * UI: Added /portable mode to switch to Altirra.ini for settings.
   * UI: Added help file.
   * UI: Disk, cartridge, and tape images can now be loaded from .zip files.
   * UI: Heads-up display now indicates H: access.
   * Recording: Added video recording.
   * Simulator: Added option for faster kernel boot by accelerating checksum and RAM test routines.
   * Simulator: .bin and .xfd extensions now override content-based identification for images.
   * Simulator: BASIC disable now lifts Option key on playfield enable rather than VBI enable to avoid breaking games that don't use VBIs.
   * Debugger: Added .pathbreak command to stop when new code is executed for the first time.
   * Debugger: Disassembly window now auto-pages when scrolling up or down beyond the current view.
   * Disk: Individual disk drives can now be powered on and off from the Disk Drives dialog.
   * Disk: Improved compatibility of H: device.
   * Disk: Added support for H: burst I/O.
   * IDE: Added emulation support for MyIDE interface.
   * HLE: Rearranged SIO to improve compatibility with naughty programs that copy out parts of kernel ROM.

   [bugs fixed]
   * UI: Fixed random crash when opening debugger or new debug panes.
   * UI: Booting images on the command line now removes previously mounted images.
   * UI: Fixed Alt+8 keyboard shortcut.
   * UI: Remapped Insert/Delete/Home keys to better match their Atari equivalents.
   * UI: Fixed joystick ports 3 and 4 not being mappable.
   * UI: Fixed focus anomalies when bringing up profile view undocked.
   * UI: Rewrote bicubic pixel shader to fix artifacts on Intel GMA 950.
   * UI: Display acceleration is now supported on secondary monitors.
   * POKEY: Added support for using channel 2 as serial transmit clock (SKCTL[6:5]=11).
   * POKEY: Unassigned registers now properly read $FF.
   * Disk: Increased delay from complete byte to first data in high speed mode to fix data overruns in SIO-based routines.
   * Disk: Fixed bug that caused corruption of newly created disk images during incremental updates.
   * CPU: Fixed bug in DCP opcodes.
   * CPU: Added missing ARR #imm ($6B) opcode.
   * CPU: Added missing SAX zp,Y ($97) opcode.
   * CPU: Added missing XAS abs,Y ($9B) opcode.
   * CPU: Fixed ATX #imm ($AB) opcode.
   * Debugger: Fixed crash/errors when trying to reopen printer pane after closing it.
   * Debugger: Memory leak fixes.
   * Debugger: Fixed disassembly window jumping when changing breakpoints after selecting a nested call stack frame.
   * Debugger: Fixed Alt+Shift+0 shortcut for profiler view.
   * Simulator: Fixed bug where BASIC bit wasn't handled properly in 576K and 1088K memory modes.
   * Cartridge: SuperCharger 3D cartridge is now saved and restored properly across runs.
   * HLE: Added initial cassette reading support.
   * HLE: Fixed bugs in E: logical line handling in bottom third of screen.
   * HLE: Fixed handling of undocumented ZFL entry point in math pack with accelerated FP disabled (improves compatibility with Atari BASIC).
   * HLE: SIO now disables level 2 VBLANK when active.
   * HLE: CIO no longer throws an error when closing an IOCB that is not open.
   * HLE: CIO now allows opening a device without a colon, i.e. "K".
   * GTIA: Fixed some display artifacts when extended PAL height is enabled.

Version 1.6 [April 25, 2010]:
   [features added]
   * Debugger: Added profiler.
   * Debugger: Added support for loading CA65 labels.
   * Debugger: Added verifier to catch possible coding errors.
   * Debugger: Added support to view extended memory to some commands and panes.
   * UI: Added option for controlling vertical sync lock.
   * UI: Added /opengl command line switch.
   * UI: BASIC ROM is now noted on window caption.
   * UI: Window position is saved on exit.
   * UI: Added /debug switch to launch in debugger mode.
   * UI: Added /f switch for full-screen mode.
   * UI: Added .car extension to Open Image dialog.
   * UI: Input maps can now be cloned.
   * UI: Input maps can now be bound to a specific game controller index.
   * UI: Create disk dialog now has entries for standard disk formats.
   * UI: Added ability to paste text from clipboard.
   * UI: Moved warm reset to F5, bound Help to F6 and Break to F7, and merged Run into F8 to match other emulators.
   * UI: Added program icon.
   * Simulator: Added option to fill memory with a psuedorandom pattern on cold boot instead of zeroes.
   * Simulator: Added support for 65C816 high memory at banks $01-03.
   * POKEY: Increased playback sampling rate to 44KHz.
   * POKEY: Added option to toggle non-linear mixing.
   * POKEY: Added option to toggle individual sound channels.
   * POKEY: Implemented keyboard overrun bit.
   * VBXE: Register window can now be switched between $D6xx and $D7xx.
   * Disk: Added support for 1050 drive dual density format.
   * Disk: Added support for XF551 drive high speed commands.
   * GTIA: Added a stronger level of NTSC artifact emulation.

   [bugs fixed]
   * Fixed command line parsing and added several new switches.
   * HLE: Fixed math pack issues preventing Atari Basic ATN(), INT(), and SQR() from working.
   * HLE: Fixed handling of BASIC enable/disable on warm reset.
   * LLE: Improved math pack implementation.
   * ANTIC: Playfield DMA wasn't properly shut off on cold reset.
   * ANTIC: Improved emulation of mid scan line DMACTL changes.
   * ANTIC: Reset line now resets position counters.
   * ANTIC: Emulated single cycle glitch in VCOUNT at the end of a frame.
   * ANTIC: Implemented delay for changes to CHBASE to take effect.
   * POKEY: Adjusted timing of STIMER and timer rollovers.
   * POKEY: Retuned filters and non-linear mixing curve.
   * POKEY: Fixed behavior of SKSTAT serial overrun bit.
   * GTIA: Added option for displaying full PAL height when extending display past scan line 239.
   * GTIA: Fixed display of beam position when single stepping with VBXE enabled.
   * Debugger: Fixed bug where history window didn't allow scrolling to the bottom via the slider.
   * Debugger: History window now always shows last executed instruction.
   * Debugger: History window now flushes and rebuilds the tree when the history window rolls over.
   * Debugger: "Toggle read/write breakpoint" in the memory window was using the wrong address.
   * Debugger: Disassembly window now tracks 65C816 M/X/E state.
   * Debugger: .history command was using wrong register state for decoding indexed effective addresses.
   * Debugger: Fixed incorrect index register values in Registers pane in 65C816 emulation mode.
   * Debugger: Fixed disassembly of JMP (abs,X) and JSR (abs,X) instructions.
   * CPU: XCE instruction no longer sets M/X bits when staying in native mode.
   * CPU: Fixed bank used by JML, JMP (abs), and JMP (abs,X) instructions in 65C816 mode.
   * Disk: Added support for reading broken DD disks that have full 256 byte boot sectors.
   * Disk: SIO acceleration hook now sets SKCTL correctly.
   * UI: Fixed issue where full-screen mode didn't always cover the entire screen.
   * Simulator: Shortened delay to releasing OPTION on startup.

Version 1.5 [January 31, 2010]:
   [features added]
   * Added option to redirect P: to a text pane.
   * UI: Added handing for gamepads being added or pulled during execution.
   * UI: Rewrote input system and added general input mapper.
   * UI: Added options for controlling display stretching and aspect ratio.
   * UI: Added better handling for cases in which a requested firmware ROM is not available.
   * UI: Added option to control overscan display.
   * UI: Mounted disks and cartridges are saved and restored across runs.
   * UI: FPS display in window caption is now optional.
   * UI: System configuration is now shown on the window caption.
   * POKEY: Added volume control.
   * Simulator: Added "Other" firmware option to load an otheros.rom custom kernel (16K XL).
   * Cassette: Added seek UI.
   * Cassette: Reworked playback indicator.
   * GTIA: Added option to blend adjacent frames to reduce flicker.
   * GTIA: Added System > Video > Adjust Colors.
   * GTIA: Added support for interlaced output.
   * Disk: Added sector counter option.
   * Disk: Increased max drive count to 8.
   * Disk: Added burst transfer mode compatible with SpartaDOS X.
   * Disk: Get Status and Read PERCOM Block commands are now accelerated.
   * Disk: Lazy writes are now incremental.
   * VBXE: Initial emulation support.
   * Misc: Added R-Time 8 support.
   * Debugger: Added list nearest symbol (ln) command.
   * Debugger: "Go to Source" command now asks for source file location if it cannot be found.

   [bugs fixed]
   * HLE: Improved compatibility of screen editor.
   * HLE: Fixed bug in emulated math pack that broke Atari Basic.
   * Debugger: Fixed crash when a source file couldn't be found.
   * Debugger: Auto-loading of symbols for executable files works again.
   * Debugger: Source windows no longer recenter when toggling breakpoints.
   * Debugger: Fixed misspelled SKRES symbol.
   * ANTIC: Fixed incorrect CPU timing for STA WSYNC + PHA combination.
   * ANTIC: Vertical scroll bit is now kept across VBLANK if display list is too long.
   * ANTIC: Fixed timing of display list DMA enable changes (DMACTL bit 5).
   * ANTIC: Internal line buffer is no longer cleared when repeating mode lines with display list DMA disabled.
   * ANTIC: Mode lines can now repeat across VBLANK with display list DMA disabled.
   * ANTIC: Added emulation of bug where VBLANK can fail to occur if scan line 247 is a hires line.
   * POKEY: Fixed reading of POT timers before pot counters have stabilized.
   * CPU: Implemented SBX instruction ($CB).
   * Disk: Increased reliability of lazy flush mechanism.
   * Disk: Fixed PERCOM block for large disk images.
   * Disk: Fixed boot sector count for 512 byte/sector images.
   * Disk: Hard disk (H:) no longer goes away on a warm reset.
   * Disk: Reverted change to raise RTCLOK on SIO acceleration to fix bugs with programs that monitor RTCLOK from a VBI handler.
   * UI: Mouse capture is automatically released when the simulator stops.
   * UI: Fixed USER handle leaks.
   * Simulator: 1088K memory mode no longer disables self-test bit when extended RAM is disabled.
   * LLE: Fixed cartridge initialization.
   * LLE: Fixed BASIC ROM switching.
   * LLE: K: open/close calls are now implemented.
   * LLE: Added initial math pack implementation.
   * LLE: SIO now shuts off all audio channels.

Version 1.4 [November 8, 2009]:
   [features added]
   * Debugger: Added .diskorder command to force phantom sector load order.
   * Debugger: Added .dma command to dump current ANTIC DMA pattern.
   * Debugger: Added .caslogdata to diagnose cassette data read failures.
   * Debugger: Added .pia command to dump PIA state.
   * Disk: Added support for command $4E (Read PERCOM Block).
   * Disk: Added support for reading Diskcomm (DCM) images.
   * Cassette: CAS images and mono WAV files now play data as audio.
   * Cassette: The SIO acceleration engine now reports diagnostics about damaged blocks to the console window.
   * Cassette: Made accelerated read routine more robust against interpreting garbage as the start of block sync.
   * Cassette: Optimized WAV processing routine.
   * Cassette: Added command to unload tape.
   * Cassette: Added emulation of feedback from SIO motor control line into audio input.
   * UI: Added command to reset window layout.
   * UI: Drag-and-drop is now a synonym for the Open Image command.
   * UI: Added more key mappings.
   * UI: Added Boot Image command to unload all existing cartridges/disks/tapes and cold reset after loading an image.
   * UI: Added debugging option to dump raw audio to disk (32-bit float @ 63920.4 NTSC / 63337.4Hz PAL).
   * UI: Added .com to list of file filters for the Open Image/Boot Image commands.
   * UI: Added enhanced text display mode.
   * Simulator: Added support for loading OS-A kernel ROM.
   * GTIA: Added support for PAL artifacting.

   [bugs fixed]
   * UI: Mapped Ctrl+alpha/num and Ctrl+Shift+alpha/num keys.
   * UI: Arrow-keys now auto-repeat.
   * UI: View > Display works when the debugger is disabled.
   * UI: Fixed window activation and sizing problems when toggling full screen mode.
   * UI: This simulation is now throttled in full-screen mode.
   * CPU: Implemented TDC instruction in 65C816 mode.
   * CPU: Implemented undocumented $93 (SHA) and $BB (LAS) opcodes.
   * CPU: Fixed flags on $9C (SHY) opcode.
   * CPU: Removed bogus 65C816 opcode ($DC) in 6502 decoder.
   * Cassette: Fixed desync between audio and data after accelerated load.
   * Cassette: Audio/data channels are no longer swapped when processing stereo input.
   * Cassette: Raised cutoff on control line low-pass filter to fix reliability problems at turbo baud rates.
   * Cassette: Fixed incorrect SIO return code for accelerated cassette reads.
   * Cartridge: Fixed MMU mapper so that the cartridge ROM now overrides BASIC at $A000-BFFF.
   * Cartridge: TRIG3 is now deasserted when $A000-BFFF is unmapped.
   * Cartridge: The second bank setting for Bounty Bob Strikes Back! cartridges is now saved in save states.
   * Disk: Added support for weak bit emulation in VAPI images.
   * Disk: Fixed VAPI image read errors when missing sectors are present.
   * Disk: Fixed incorrect FDC status when loading long sectors that set the "lost data" status bit.
   * Disk: SIOV/DSKINV acceleration handlers set more kernel variables for better compatibility.
   * Disk: Abort acceleration attempt when disk buffer contains SIO timeout flag (TIMFLG).
   * Disk: Adjusted sector read delay to increase VAPI image compatibility.
   * Disk: Fixed cases where the virtual read/write setting was not obeyed properly.
   * GTIA: Changes to GRAFPx/GRAFM are latched and no longer affect a sprite image that is already shifting out.
   * GTIA: Increased timing precision of console speaker from 28 cycles to single cycle.
   * GTIA: Fixed bug that caused some apps to misdetect the video mode as SECAM.
   * GTIA: Adjusted timing for mid-screen changes to P/M graphics and color registers.
   * GTIA: CONSOL output bit 3 wasn't affecting input bit 3.
   * GTIA: VDELAY now masks DMA fetches rather than actually delaying loads.
   * POKEY: Fixed random crash in stereo mode.
   * POKEY: 15KHz and 64KHz clocks are no longer joined between the left and right channel chips.
   * POKEY: The channels now have the correct 0-3 clock skew for reading the noise generators.
   * POKEY: Implemented channel 1/2 inversion when not in volume-only mode.
   * POKEY: Implemented non-linear mixing.
   * POKEY: Audio plays again when initialization mode is active.
   * POKEY: Implemented serial force break bit (SKCTL bit 7) affecting two-tone mode.
   * POKEY: STIMER now resets output channel states properly.
   * POKEY: Asynchronous serial input mode now holds down timers 3 and 4 again when a byte is not shifting in.
   * HLE: The math pack is now emulated even if the acceleration option is disabled.
   * HLE: POTGO is now strobed during vertical blank stage 2 processing.
   * HLE: STRIG2/3 are now updated from TRIG0/1 instead of TRIG2/3 for XL/XE hardware compatibility.
   * HLE: Fixed bug where POKEY was put into initialization mode after an unaccelerated SIO transfer.
   * HLE: POKEY audio channels are now shut off after an SIO operation.
   * HLE: Added keyboard click.
   * ANTIC: Two-line resolution mode now reloads GTIA every scan line.
   * ANTIC: Fixed timing when using read-modify-write instructions to trigger WSYNC.
   * Simulator: Memory banking wasn't updated properly on changes to the port B data direction register.

Version 1.3 [September 4, 2009]:
   [features added]
   * Debugger: Register pane now shows 65C816 state.
   * Debugger: Added context menu to disassembly pane.
   * Debugger: *.lst and *.lab symbols are automatically detected and loaded for direct-run EXEs and cartridges.
   * Debugger: Improved source-level debugging capability.
   * Debugger: Opcodes are now cached so that they show correctly in the history log even with bank switching.
   * UI: Filter mode is now saved on exit.
   * UI: Added command to copy current frame to the clipboard.
   * UI: Added paddle support.
   * GTIA: Optimized artifacting code.
   * GTIA: Added the ability to disable collisions for cheating.
   * Cartridge: Added support for 64K XEGS and 512K MegaCart cartridge types.
   * Cartridge: Added support for SuperCharger 3D cartridge.
   * Cassette: Added support for non-standard baud rates.
   * Cassette: Added auto-boot option.
   * Cassette: Device open commands are now accelerated.

   [bugs fixed]
   * Simulator: More fixes to executable loader.
   * Simulator: 320K memory mode now banks ANTIC along with the CPU.
   * Simulator: Joystick and bank switch masking via the PIA data direction register is now supported.
   * Simulator: Rewrote BASIC handling to use the OPTION switch rather than masking PORTB bit 1.
   * Simulator: Reset PIA, ANTIC, and CPU on warm reset for XL hardware.
   * Simulator: Self-test ROM no longer appears if kernel ROM is disabled.
   * Simulator: Adjusted PAL frame rate.
   * Simulator: Disk boot flag is now set when loading EXEs to accommodate programs that warm start through DOSINI vector.
   * Simulator: EXE loader is more tolerant of broken files.
   * CPU: Fixed many 65C02/65C816 bugs.
   * CPU: Fixed emulation of NMOS 6502 decimal mode.
   * CPU: Fixed bugs in undocumented instructions.
   * CPU: Fixed emulation crash when switching to 65C816 on the fly.
   * CPU: Fixed handling of break flag.
   * CPU: Now allow one instruction to pass before taking IRQ interrupt after clearing I flag.
   * Debugger: Improved handling of 65C816 modes in disassembler.
   * Debugger: Debug memory reads no longer see $FF in the page where a read memory breakpoint is set.
   * Debugger: Fixed bugs in symbol parser when loading MADS listings.
   * Debugger: Fixed line highlighting in source windows.
   * Debugger: Disassembly recomputes on 65C816 mode changes.
   * Disk: Fixed bug in loading of ATR files that have non-standard boot sector counts.
   * Disk: Additional compatibility fixes to DSKINV acceleration.
   * Disk: Status commands are no longer delayed by the accurate disk timing option.
   * Disk: Applied slight adjustment to SIO transfer rate.
   * Disk: POKEY timers are now shut off after SIO/DSKINV acceleration.
   * Disk: Strengthened disk image format validation and made XFD loading more tolerant.
   * UI: Fixed bug in CPU mode dialog that prevented selection of 65C02 mode.
   * UI: Fixed crash when accessing menu with display pane closed.
   * UI: Keyboard-as-joystick logic no longer allows simultaneous up+down and left+right.
   * UI: Added support for controlling joystick port 2.
   * UI: Blocked invalid machine configurations with XL kernel and 800 hardware or less than 64K of memory.
   * ANTIC: Fixed broken mode 9.
   * ANTIC: Vertical reflect now works on modes 4-7.
   * ANTIC: Player/missile DMA no longer occurs during vertical blank.
   * ANTIC: Fixed behavior of vertical scrolling on blank lines.
   * ANTIC: Changes in playfield width are now supported later in a scan line.
   * ANTIC: Moved VCOUNT advance forward by one cycle.
   * ANTIC: NMIs are now suppressed if enabled too close to trigger point.
   * ANTIC: NMIs are now delayed by one cycle if enabled exactly on cycle 8.
   * GTIA: Bogus missile-player collisions were reported if a register change occurred in the middle of a missile.
   * GTIA: Fixed CONSOL I/O interactions on switch lines.
   * GTIA: Save states now restore player/missile widths.
   * HLE: DSKINV now supports double-density disks.
   * HLE: Improved compatibility of post-init PORTB state.
   * POKEY: Rewrote resampling filter to better block high frequencies.
   * POKEY: Fixed 17-bit noise register polynomial and shift direction.
   * POKEY: Initialization mode (SKCTL[1:0] == 0) now resets the low-speed clocks and polynomial shift registers.
   * POKEY: Asynchronous serial receive mode no longer suspends channels 3 and 4.

Version 1.2 [July 5, 2009]:
   [features added]
   * Debugger: Added memory pane.
   * Debugger: Shift+F11 is now a shortcut for Step Out.
   * Debugger: History window now supports the mouse wheel.
   * GTIA: Added artifacting support.
   * UI: Cursor auto-hides when over display pane.
   * UI: Added window pane layout saving.
   * UI: Basic support for an Atari ST mouse in port 2.
   * UI: Added more keyboard mappings.
   * Simulator: Added initial save state support.
   * Simulator: Added option to pause when not the active application.
   * CPU: Initial 65C02 and 65C816 support.

   [bugs fixed]
   * Simulator: Fixed RUNAD handling in executable loader.
   * Simulator: Fixed incorrect TRIG3 cartridge sense on launch.
   * UI: Tweaked aspect ratio constants.
   * UI: Fixed some bugs with pane undocking.
   * ANTIC: Added missing address wrapping (fixes hang loading Bounty Bob).
   * ANTIC: Fixed VSCROL timing to acccommodate more mode line extension tricks.
   * ANTIC: Fixed low bits in NMIST register.
   * POKEY: Tweaked hi-pass to sound better.
   * POKEY: Implemented fast pot scan mode.
   * POKEY: Two-tone serial mode now affects timer 1/2 sound output.
   * Debugger: Breakpoints can now be seen on the active line.
   * Debugger: Fixed early stop when trying to Step Out across a PLA or PLP instruction.
   * Debugger: CPU status traces on single-step use the instruction PC rather than the raw PC.
   * HLE: Fixed black status pane in Pole Position due to incorrect attract mode handling.
   * HLE: Fixed startup path problems that prevented SpartaDOS X from starting.
   * HLE: Screen handler now adjusts user memory limit.
   * HLE: Fixed length return value bug in CIO put characters command.
   * HLE: Control codes now work with S:.
   * Disk: Fixed CIO return codes for H: handler.
   * Cartridge: Cart bank is now reset on cold reset.
   * Cartridge: Fixed banking and recognition problems with MaxFlash 1M cartridge format.
   * CPU: Added option to halt on BRK instructions.
   * GTIA: Fixed nasty bug where P/M collisions got messed up whenever the simulator dropped a frame.
   * GTIA: Fixed behavior of sprites when repositioned during active region.
   * GTIA: Implemented text blink and vertical reflect bits.
   * GTIA: Fixed low bit in PAL register in NTSC mode.

Version 1.1 [May 12, 2009]:
   [features added]
   * CPU: Added an option to disable illegal opcode support.
   * Disk: Added .XFD support.
   * Disk: Added rudimentary hard disk (H:) support.
   * UI: Added exception handler to write crash information.
   * UI: F8 now also breaks into the debugger.
   * UI: Fixed some window activation issues in the docking system.
   * UI: Display is now locked to correct aspect ratio.
   * UI: Dockable panes are now based on percentage rather than absolute width.
   * UI: Changed location of Registry key to work around antivirus false positives.
   * Cartridge: Added support for cartridge images that have headers.
   * Cartridge: Added support for MaxFlash 128K and 1M cartridge formats.
   * Debugger: F5/F8/F9/F10/Shift+F10 now work.
   * Debugger: Frames are now double-clickable in the call stack window.
   * Debugger: F10 now works in the console command line.
   * Debugger: Added history window.
   * HLE: Rewrote HLE kernel mode to be based off the LLE kernel for better compatibility.

   [bugs fixed]
   * Simulator: Init and run vectors are now implemented properly -- fixes New Year's Miracle demo.
   * Simulator: $FFFF optional headers in executables no longer produce load errors.
   * Kernel: DRKMSK was not set -- fixes missing status bar in The Last Word.
   * Debugger: The start of instruction PC is now reported instead of the CPU raw internal PC.
   * Debugger: Fixed infinite loop when viewing disassembly beyond $FFFF.
   * Debugger: Disassembly view edit window now works.
   * Debugger: Fixed a cycle being lost by the CPU on each step or breakpoint hit.
   * Debugger: Console window now scrolls to bottom when updating.
   * UI: Implemented some Ctrl+Key combinations.
   * UI: Fixed jittering problems in full-screen mode.
   * UI: Fixed some focus problems when docking and undocking panes.
   * UI: Full-screen mode no longer shows window borders when using GDI or DirectDraw for display.
   * UI: Removed horizontal and vertical blank regions from display window.
   * UI: Caps Lock now works.
   * UI: Mouse pointer is now hidden in full-screen mode.
   * Disk: Improved disk emulation compatibility with SpartaDOS X.
   * Disk: Fixed corruption of first byte on sector writes.
   * Pokey: Added missing channel 2+4 high pass filter.
   * Pokey: Fixed off-by-one in 1.79MHz 16-bit timing that screwed up some demos using 4-bit polynomial beats.
   * Pokey: Pot scanning is now implemented.
   * GTIA: Color mixing with PRIOR D0-D3=0 now works.
   * GTIA: Fixed incorrect luminance for background in 16 color mode.
   * GTIA: Fixed player/playfield priorities in 9 color mode.
   * GTIA: Fifth player now mixes in PF3 color properly in 16 color/luma modes.
   * GTIA: Color registers no longer have four luma bits.
   * GTIA: ANTIC modes other than 2, 3, and F now work with GTIA modes.
   * GTIA: Implemented psuedo-mode-E caused by resetting the GTIA mode mid-scanline.
   * GTIA: Collisions now register in 9 color mode.
   * GTIA: Implemented one color clock shift in 9 color mode.
   * GTIA: Changing HSCROL in the middle of a mode line now works.
   * ANTIC: Corrected WSYNC, DLI, and VBI timing.
   * CPU: Fixed instruction timing for read-modify-write opcodes using abs,X addressing.

Version 1.0:
   * Initial release.
