====================
VirtualT Release.txt
====================


This file lists the changes and additions for each of the versions of VirtualT since v0.3


=======================
v1.4  Not released yet
=======================

1.  The COM data log on the Peripherals Window was not allowing selection of data to show
    time delta between 2 bytes when the top line in the window was not the first line of 
    data.  This has been corrected.  Also The last line of data would not be displayed if 
    the number of lines that would fit in the window was odd.  This has also been fixed.

2.  Fixed a bug with cold boot in T200 emulation mode.

3.  Added Model T File Viewer window.  This window allows selection of files in the Model T
    directory and provides details regarding the storage location for the directory entry
    and the actual file contents.  Also provides a view of the file's contents.

4.  Added fullscreen display mode with automatic adjustment of multiplication factor.  This
    feature was added to support sub-notbook platforms with smaller display resolutions that
    cannot display full window borders well.

5.  Added option to reload the Option ROM image.  This is useful when developing a new OptROM
    image and using VirtualT for debugging.

6.  Modified the Memory Editor's Load and Save features so they properly address the absolute
    memory addresses to RAM vs. relative offsets from the beginning RAM address.

7.  Fixed socket interface break on memory write function so an LXI H,XXXX doesn't cause a
    breakpoint at address XXXX.

8.  Added socket interface shortcuts for the key command (k) and for the "enter" keyword (cr).

9.  Modified hexadecimal input for GUI and socket interfaces to accept HEX formats using the
    "04h" notation or for values that contain 'a' through 'f', simply using "5d" notation.
    It is case insensitive for both the hex values and 'H'.

10. Fixed timing race condition on some platforms with the socket interface 'key' command 
    where the first keystroke would sometimes be dropped.
    
11. Modified remote socket interface to support telnet character based transfer and line endings.
    Added "-t" comand line option to enable telnet protocol.

12. Modified MacOSX working directory detection and ROM installation to automatically detect
    the location of the ROMs directory within path of the application bundle.
    
13. Modified the MacOSX maintenance update timing to provide faster execution speed during
    FLTK drawing updates to the LCD.

 

=======================
v1.3  September 24 2008
=======================

1.  Fixed a bug with the Remem Overrides Rampac checkbox where it wouldn't properly override
    the Rampac operations.

2.  Fixed a bug when changing from Rampac Only to ReMem + Rampac memory mode where the Rampac
    RAM file was not being saved properly.

3.  Fixed issue while loading .BA files from the "Load from HD" feature.  During the relocation
    of the "unsaved BASIC program", .DO and .CO files could potentially be corrupted due to
    an error in memory pointer calculations.

4.  Added features to both the "CPU Registers" and the socket interface debugger to allow
    stepping over function call (CALL, CZ, CNZ, etc.) and RST statements.  Performing
    multiple "step over" operations currently does not properly break at any defined breakpoints.

5.  Added a feature to both the "CPU Registers" and socket interface debuggers to enable /
    disable debugging if ISRs (Interrupt Service Routines).  If the ISR debugging is disabled,
    the debugger will not stop / halt in the middle of an ISR, and performing single step or
    step over functions will not "step into" an ISR.  The ISR will complete and the single 
    step function will return control after the RET, RZ, etc. instruction has executed.  Also
    added a shortcut key for single stepping ("s") in the socket interface.

6.  Fixed a bug with Tandy 200 serial port TX_EMPTY signal handling that caused high-speed
    transfers to overwrite data prior to being sent to the serial port.

7.  Fixed an issue with printer initialization when opening the "Peripherals" window that could
    cause it to crash the program sometimes.

8.  Fixed a race condition with socket port creation vs. socket interface initialization that
    would frequently cause the socket creation to fail under Windows. 

9.  Fixed error displaying COM port list from the COM Port Setup tab under the "Host Port"
    selection.  The list was incorrectly displaying multiple COM ports as a single entry.

10. Added support for setting the time in the clock chip for all models.  Also added a tab on
    the "Peripheral Setup" window for configuring the clock operation.  Emulated "time" can
    now be different than the host's system time.

11. Fixed the "Peripheral Setup" Ok button so it doesn't improperly give an error message that
    the COM port could not be opened, or rather, re-opened.


==============================
v1.2  Never Offically released
==============================


===================
v1.1  April 16 2008
===================

1.  Fixed a bug with Rampac Only emulation.  When this Memory Configuration was weleted, 
    the I/O operations were returning without performing any action because they were 
    checking for a NULL ReMem RAM pointer.

2.  Fixed issue with Rampac and Base Memory file saving when switching the memory configurtion
    from Rampac to ReMem + Rampac mode.

3.  Added option to control whether ReMem's "Rampac Emulation" should override the Rampac
    emulation mode.  When ReMem + Rampac mode is selected, ReMem can be configured to emulate 
    the Rampac access method and write to ReMem memory space.  The Memory Setup dialog now
    provides checkbox to control if Rampac accesses are directed to ReMem memory space or to
    Rampac memory space during this condition.

4.  Added LPT Device emulation support and configuration options on the Peripheral Setup dialog.
    Added printer icon to main window to show printer status and provide a Popup menu
    for printer control.

5.  Added Emulated printer support for printing to Files and Host Port devices.

6.  Added Epson FX-80 printer emulation with output to different "Papers".  Current papers
    include Postscript files, "Virtual Paper" (FLTK Window), Windows Printer, and Linux 'lpr'
    command line printing.

7.  Fixed issue with default (cold boot) year setting on M10 and PC-8201a models.

8.  Added an option to the COM emulation to loop back DTR to DSR and CTS to RTS to emulate a
    "loopback" cable connected to the serial port.  This option can be enabled from the COM
    setup tab.

9.  Fixed issue with Serial emulation on Linux in Base Memory emulation mode.  Received bytes
    were not trigginering the INT6.5 interrupt.

10. Fixed bug when cancelling file save operation that caused the program to crash.

11. Added support for Kyocera KC85 emulation.

12. Fixed bug with "Make OptROM Read/Write" option to save write operations between
    bank switch operations.

13. Added FLASH Program / Erase state machine to ReMem emulation.  State Machine supports
    Programming, Chip and Sector Erase, CFI Query, Autoselect, and Reset commands.  Does
    not support sector protection.


======================
v1.0  February 10 2008
======================

1.  Fixed ReMem emulation in both Normal and MMU modes.  Memory mapping now consistent with
    an actual ReMem.  Emulation supports only the latest ReMem FW version (64, 65, 66).  In 
    MMU mode, both sector access and direct memory access work properly.  Also fixed some bugs
    with the the Rampac emulation.

2.  Added configuration page for ReMem Map display and setup.

3.  Added support for M10 Emulation.

4.  Added breakpoint capability to CPURegs window.  Up to 4 breakpoints can be specified and
    enabled or disabled.

5.  Added Remote control interface via sockets.  The socket interface is enabled via a command
    line switch to specify the socket port, such as "virtualt -p 20000".  The protocol is
    simple text command and response with async text messages sent for breakpoint and otional
    screen output messages.  See Help for full details.

6.  Added serial I/O support under Linux.  The current implementation has a few "hard coded"
    port names in the port list, but allows the user to specify an "Other Host Port" name to
    specify the serial device.

7.  Modified the main emulatin loop so it uses fewer CPU cycles.  Previous versions consumed
    up to 100% CPU cycles causing heat issues and reduced battery life on laptops.  Added
    new Speed menu selections to allow finer setting of emulation speed vs. CPU utilization.

8.  Fixed a bug with the emulation of interrupts and with the extended opcode DSUB flags.

9.  Added a vt_client project / application to communicate with VirtualT socket interface 
    using a very simple command line interface.

10. Added a "Cold Boot" option to the Emulation menu.

11. Added content to the Help system.

12. Transitioned the Windows development environment to Visual Studio 2005.  The project files
    are no longer compatible with Visual Studio 6.

13. Added a feature to patch the ROM on load to show VirtualT version in the MENU. This can be
    disabled in the "Memory Options" menu.
    
14. Added auto detection and creation of missing emulation directories.  For new installations,
    all emulation directories will be created and ROM images copied from the ROMs directory.
    
15. Patched all ROM images with Y2K fix.


===================
v0.8  May 11 2006
===================

1.  Added the beginnings of an Integrated Development Environment.  The IDE included a project
    manager that supports "Tree" browsing of source files and a project settings dialog for
    specifying assember and linker options.  Also has a multi-window edit capability using a
    very simple text editor.  The editor will be expanded in a future release and will also
    include features for source level debugging, such as display of breakpoints and current
    execution location.

2.  Added an 8085 assembler, but no linker.  The assembler gernerates ELF format .obj output 
    files for use with the linker to be released in a later version.  The assembler is 
    basically useless without the assembler, but is included in the project.

3.  Added the beginnings of the Help system, although no real help info available.

4.  Maybe other bug fixes but I have forgotten because I am writing this 1 year after release.


===================
v0.7  April 20 2006
===================

1.  Fixed memory access issue in M100/M102 modes when not in ReMem emulation mode.


===================
v0.6  April 17 2006
===================

1.  Added CPU Registers window to the Tools menu.  This window allows viewing / modifying of
    8085 CPU registers in addition to simple stop/step/run operations.  It is not intended as
    a full blown debugger, but rather as a tool to be used along with a debugger to be added
    later.

2.  Completed ReMem emulation support.  VirtualT emulates rev 4 of the ReMem firmware.  All 
    features of ReMem are emulated inclulding Rampac support.  See the ReMem documentation for
    operation of the ReMem emulation.

3.  Added Load and Save operations to the Memory Editor Window. 

4.  Added MSPLAN to the T200 ROM and support for running option ROMs from T200 emulation mode.

5.  Changed the name of this file from readme.txt to release.txt.


===================
v0.4  August 3 2005
===================

1.  Added a directory structure to deal with multiple emulation platforms.  Each model has its
    own directory.  Each directory contains the ROM and RAM files for emulation of that specific
    model.  This directory structure must be maintained since the emulator searches for the
    ROM file using this tree structure.  The directories are:

    <root>
     |
     +-- M100
     +-- M102
     +-- T200
     +-- PC8201

2.  Option ROMs are now loaded based on the model being emulated.  Old Option ROM selection
    will be lost and must be re-selected.

3.  Support for the M102, T200, and PC8201 have been added.  Loading and saving BASIC files
    for the PC8201 will cause an error that will "crash" the emulation and dump the RAM contents.
    The BASIC tokens for the NEC machines are different than the Tandy machines and the tokenizer
    has not been updated yet.

4.  Partial support for ReMem and Rampac have been added under the "Emulation,  Memory Options"
    menu item.  Emulation is not fully supported yet and selecting anything but "Base Memory"
    will cause unexpected results.

5.  A HEX memory editor has been added in the "Tools,  Memory Editor" menu item.  The editor is
    fully functional except the "Load" and "Save" options under the file menu.

6.  The "Tools,  Disassembler" has been updated to disassemble the M102, T200, and PC8201 ROMS.

