*****************************
* HP9800E - HP9800 Emulator *
*****************************


Changes in Release 1.41
=======================
Bugfix: Overall slow timing on some platforms caused by SFC/SFS CPU instructions fixed.
Change: Behaviour of PAPER key for internal printer in HP9810/20/21 changed (feed amount, sound, auto-repeat).
Change: Timing control of display in all models reworked to avoid flickering and sporadic display blanking.
New: Added calibration of internal timing constants for platform independent and more realistic timing of devices.


Changes in Release 1.40
=======================
Bugfix: Problem with drawing of HP9830A ROM box fixed.
Change: Configuration files are now searched first in the current working directory, then in the directory containig the HP9800E.jar, and last in the HP9800E.jar file itself.
Change: Display output optimized for response to interrupts.
Change: Improved thread synchronizing
Change: Avoid flickering when updating background image.
New: Added high speed output modes (without artificial delay) to HP9861A, HP9862A, HP9866A and the build-in printers of HP9810A, HP9820A, and HP9821A.
New: Workaround for Direct3D problem in Java 6
New: Configuration files for plug-in ROMs
New: Validation of calculator ROM configuration
New: Display of user instructions for calculator and plug-in ROMs


Changes in Release 1.32
=======================
Bugfix: Missing keyname.cfg is now handled correctly.
New: If a customized configuration file is missing, the default is now loaded from HP9800E.jar.


Changes in Release 1.31
=======================
Bugfix: Problem with display of empty ROM slots in HP9830A fixed.
New: Display of key map overlay.
New: Added different file I/O-modes to HP11202A interface.


Changes in Release 1.30
=======================

Bugfix: Added event.consume() in keyPressed() to hide key event from host OS.
Bugfix: Handle exception if no sound output available.
Bugfix: Handle off-sync output to HP9862A (avoid exception).
Change: Handling of keyboard input reworked HP98xxKeyboardInterface.release()
Change: Added IOregister.instructionCounter() for control of display blanking and key release.
New: Added HP9861A typewriter.
New: Added HP11201A typwriter interface.


Changes in Release 1.20
=======================

Bugfix: Handling of clear leader in HP9865A corrected
Bugfix: Interrupt handling completely reworked and several bugs in IO-bus usage fixed.
        The bugs where due to incomplete understanding of the interrupt mechanism and
        could cause irregular changes of the IO-register and data loss.
Bugfix: Release of keyboard SRQ and STP now automatically timer-controlled.
Change: Removed 150ms sleep in execution of HP9830A BEEP
Change: Class Disassembler renamed to Console. Various optimizations in dialog elements.
Change: JAR filename no longer hard coded. JAR file access by getClass().getResourceAsStream()
Change: Display blanking improved by changing from fixed timer to instruction counter.
Change: Memory allocation in disassembler improved.
Change: Mainframe thread now runs in lower priority than device threads to minimize loss of data.
Change: Emulator windows now have fixed sizes.
Change: HP9866A timing changed to comply with HP9810A Typewriter ROM
Change: Use software sound mixer instead of hardware mixer to avoid sound problems under Linux
Change: HP9867A data transfer is now synchronous to avoid timing problems on some plattforms.
New: CLEAR and KEY LOG functions in Console dialog.
New: Infinite wait in single STEP mode.
New: Assignment of PC-keys to emulator keys is now fully configurable.
New: HP11267A Typewriter/Cass. Memory and HP11213A User Definable Functions ROM fpr HP9810A added.
New: Sound output may now be switched on and off by Ctrl+S.
New: Fan sound output may now be switched on and off by Ctrl+F.


Changes in Release 1.10
=======================

Change: Extended transscription of asc-tape files to support complete tape dumps.
Change: Corrected start addresses of HP9830A ROM slots in configuration file.
New: Added HP11273 System Tape to support HP9880 Mass Memory.
New: Added HP9880A/B Mass Memory System.
New: Added HP9880 Systems Tape and Service Tape.
New: Added several application pacs for HP9830A (Plotter, Statistics)
New: Added several system test programs for HP9820A.
New: Added CLEAR button to disassembler window.
New: Added comment lines to configuration file.
New: Added Breakpoints and Watchpoints to configuration file.
New: Added description of disassembler and HP9880 to user manual.


Changes in Release 1.00
=======================

Bugfix: HP9865A tapefile is now closed when drive door is opened
Bugfix: HP9865A tapefiles now have a set of filler bytes at the beginning to avoid errors when accessing the first file
Bugfix: Machine reset (Ctrl+R) now also sets CPU registers A and B to 0
Change: HP9820A now sets MAW (address 01377) to the correct upper memory address
Change: Code for all machine mainframes completely restructured and optimized
New: Added HP9821A model
New: User manual chapters describing assembler programming


Changes in Release 0.30
=======================

Bugfix: STOP key on HP9820A now resets SSF.
Bugfix: Problem at begin of tape with HP9865A tape activity indicator fixed.
Bugfix: Broken service request of HP9865A at begin-of-tape fixed.
Change: HP11202A split into pure interface and HostIO classes.
Change: ctrl+D now toggles visibility of disassembler window.
New: Added HP11265A Cassette Memory ROM for HP9810A.
New: Added CPU opcode timing measurement (ctrl+T).
New: Added machine configuration file.
New: Added interactive exchange of ROM modules and keyboard templates for all machines.
New: Added HP11262A Peripheral Control II ROM for HP9810A.
New: Added HP11265A Cassette Memory ROM for HP9810A.
New: Added several combo ROMs for HP9810A.
New: Added HP11222A User Definable Functions for HP9820A.
New: Added HP11273A Mass Memory ROM for HP9830A.
New: Added HP11277A Terminal 1 ROM for HP9830A.
New: Added HP11278A Batch Basic ROM for HP9830A.
New: Added HP11283A Printer Control ROM for HP9830A.
New: Added calculator power-on restart (Alt+Ctrl+R)
New: User manual


Changes in Release 0.23
=======================

Bugfix: The keyboard templated for the HP9810A (version 2) Statistics ROM was lost in the previous releases.
Bugfix: Instruction CLF 1 now sets the IO register correctly.
Bugfix: All JPEG images for HP9865A are now correctly loaded from JAR file.
New: Added tape activity indicators to HP9865A and HP9830A.
New: HP11202A interface for input from and output to host files.


Changes in Release 0.22
=======================

Bugfix: HP9830+HP9865 remaining tape problems fixed.
Bugfix: Remaining display problems (sporadic going off) fixed.
Change: Timing of HP9860A completely reworked.
Change: Monitoring of SRQ during display output on all models.
New: HP9865 now can open ASCII coded file dumps from original machines.
New: Added several application program tapes and cards for all models.



Changes in Release 0.21
=======================

Bugfix: Long magnetic cards (>900 bytes) are now read correctly.
Bugfix: Disassembler output now limited to 4096 lines to avoid OutOfMemoryError.
Bugfix: Start print sound on HP9810/20 only if one line completely printed.
Bugfix: Print sound file shortened to 32ms.
Bugfix: HP9820 display instability fixed (several loop bugs and display timing changed).
Bugfix: HP9830 display timing problem on Linux plattforms fixed.
Bugfix: General display problems fixed.
Bugfix: HP9820+HP9865 tape problems after REW fixed. Handling of clear leader and SRQ reworked.
New: Debug mode added to MagneticCardReaderInterface.
New: Positioning of windows for mainframe and external devices.
