MICEpack/SLD 1.4
----------------

Host System Requirements
------------------------
The following host computer requirements and recommendations apply:
 1. An Intel 386DX, Intel 486, or Intel Pentium(tm)-based PC or 100%
    compatible system.
 2. At least 6 Megabytes of RAM.
 3. 4.4 Megabytes of available disk space.
 4. VGA or Super VGA graphics card and color monitor (A graphics
    accelerator card will boost performance, and a monitor capable
    of at least 800x600 operation is highly recommended).
 5. Mouse.
 6. MS-PCE card or MIF key for connection to emulator.
 7. MSDOS 3.3, 5.0, or 6.x.
 8. Windows 3.1 running in 386-enhanced mode.
 9. 4 Megabytes or greater swap file (permanent swap file recommended).
10. Minimum: Files=30  Buffers=30


MICEpack/SLD Configuration Guidelines
-------------------------------------

  * Use a disk cache such as smartdrive for improved Windows performance.

  * Be sure you have a swap file of at least 4 Megabytes (a permanent
    swap file is recommended).

  * MICEpack/SLD requires a minimum of 5 Megabytes of free memory after
    Windows is loaded.  More memory is better, especially if you run
    other applications at the same time.  If memory is low, close other
    applications to regain memory.

  * While the emulator runs, status messages are sent from the chassis to
    the host PC.  If you are running a DOS shell at the same time, give it
    a low priority via the .PIF file settings, or stop the emulator.

  * One GP fault that showed up in MICEpack/SLD was traced to a
    faulty video device driver of the Diamond Stealth ISA 1M VRAM card
    (version 2.31) in 1024 X 768 mode.  The problem went away by
    reducing the resolution to 800 X 600.  Another problem exists with
    the Genoa 256-color small font driver.  The symptom is the load-progress
    indicator is not updated completely at the completion of a load.
    If you encounter a fault in a driver file (*.DRV), try installing a 
    more current device driver.

Changes in version 1.4
-----------------------
  
  * Support PL/M 86 source level debugging.

  * Support Intel Absolute 8086 Hexadecimal format.

  * Provide "Ignore Case" load option in the load dialog box and
    "ignorecase" keyword in the Load shell command to oppress case
    sensibility for symbols lookup.  Intel iC86, ASM86, and PL/M 86
    users should always use this option to be able to lookup symbols
    in the Source Window.

  * MP/SLD now allow user to use INT 3.

  * Fixed the bug that setting trigger conditions didn't reliable.

  * Remove "Trace" menu from the Trace Window.

  * Correct syntax checking error in memory copy CLI command.

  * When peripheral windows was closed, MP/SLD now save layout correctly.

  * Log command now turn on logging immediately.

  * New source path now is added to the top of the path list.
 
  * While source file wasn't exist, MP/SLD now can display source and 
    stepping in assembly mode. 

  * MP/SLD now can enable the HWM even though the segment of stack base
    is different from current stack segment.
  
  * The disassembly body in Source/Memory Window now display more compactly.

  * Fixed an assembler bug that interprets "MOV BYTE PTR[0],XX" to 3-byte
    length instead of 5-byte.

  * Fixed a bug that step-into Assembly module acts like step-over.

  * Status Window now report the correct message when accessing protected/
    guard memory area.   

  * Fix a bug that setting breakpoint in source window sometimes show
    incorrect message, "exceed address limit".

  * Fix a bug that scrolling source window (in assemly) to next page make
    IP becomes incorrect address.

  * Fix a bug that TLIST command display incorrect data in 188 CPU models.

  * Fix a bug that trace buffer windows was incorrect while the program was
    executing within a loop command.

  * Fix a bug that trace buffer data was saved nothing when input frame was 
    less than the start frame of trace buffer.

  * Fix a bug that caused GPF while scrolling up in Trace Window.

  * Fix a bug that caused GPF while entering incorrect Write command syntax.

  * Fix a bug for Metaware High C Enum Type.

  * Fix the bug that failed to act while clicking on a token for Mixed mode
    in the source window.
 
Changes in version 1.3a
-----------------------

  * Fixed the GPF in Memory Test/Fill/Checksum command if the logical 
    address exceeds 0xfffff.
 
  * Fixed the GPF in Include Shell command if access the zero length file.   
 
  * Removed the Source window from the default active windows while MP/SLD-186
    was invoked.   
 
Changes in version 1.3
----------------------

  * Fixed the bug of using the H/W execution breakpoint. When setting 
    breakpoint, MP/SLD-186 now uses H/W execution breakpoint first.
    It is useful for user to debug his/her code in ROM area. If more
    than 2 breakpoints are set, MP/SLD-186 uses one H/W execution breakpoint
    and the rest are set as S/W breakpoints.
  
  * Added Diagnostic feature in Shell Command. The added shell command is
    DIAGNOSTIC.

  * Added List Qualify feature in Shell Command. There are two new shell
    commands added to support this feature, TLIST and BUFFER commands.
    The TLIST command is used to list the specified address, data and 
    status in the trace buffer. The BUFFER command is to specify the active
    trace buffer.

  * Improved the performance of the STEP OVER and GO INTO RETURN command.
    It also allows user to execute these commands in ROM area.

  * Supported the number of data type in OMF86 exceeding 32767.    

Changes in version 1.2
----------------------

  * Supported OMF86 load files from the Borland compiler & Paradigm Locate 
    toolchain.

  * Source Window will updates its content after the target file is 
    loaded or whenever the memory content is modified.

  * Fixed the bug of the Input command with byte size.

  * Supported the edit keys, End, Home and Delete, in the Shell command 
    window.

  * Supported the edit keys, PageDn and PageUp, in the Source window.

  * Provided a setup utility to change the emulation processor and the 
    communication port in MP186.INI.
 
  * Added new option, ExpandSmallPtr, of [Toolchain] section in MP186.INI
    file to force OMF86 loader treat the small pointer as 16:16 pointer.
    The default setting of this option is OFF.

  * Fixed the bug of the initialized data value while loading an OMF file.
  
Toolchain Notes
---------------

  * Enumerated types do not display symbolic values.

  * Enums, structs and unions are limited to 256 elements.

  * The fatal error "Out of object pointers" indicates that MICEpack/SLD
    has exhausted system display resources.  If you frequently encounter
    this error condition, try the following:
    - close windows that are not in use.
    - reduce the size of windows.
    - decrease the number of saved transcript lines and history commands
      in the shell window.
    - when loading, select "On Demand Symbol Loading".
    - include symbols in only the modules that are being actively debugged.


MICEpack/SLD supports OMF86 file formats.  Testing has confirmed, however, 
that there are numerous interpretations of the OMF file specifications. 
MICEpack/SLD has been tested with these toolchains: 

    OMF86:  Microsoft C7 & SSI Link&Locate-86, 7.2f
    OMF86:  Microsoft C7 & Phar Lap LinkLoc 4.0
    OMF86:  Metaware High C & Phar Lap LinkLoc 4.0
    OMF86:  Borland C 4.0, Paradigm Locate 4.0
    OMF86:  PL/M 86 V3.3, LINK86, LOC86

MP/SLD-186 requires that you have only one BLKDEF record per procedure. User
must specify the -ONEBLKDEF option in Link&Locate-86 while producing the 
OMF86 file.
 
Borland floating point emulation is done by replacing the floating point 
instruction with an INT instruction and some byte information that the 
interrupt handler is going to read. The interrupt handler reads this 
information and then modifies the stack pointer to return to the next 
executable instruction. The MICEpack/SLD disassembler knows nothing of this 
operation and hence when the source code is disassembled, it 
disassembles the INT instruction and then tries to disassemble the bytes 
that follow the INT instruction. These bytes are not really opcodes 
(they are special bytes that the INT routine knows about). The 
disassembly is incorrect until the next line number is reached. At this
point the disassembly has synched up again and the disassembly is 
correct. Trying to step past this code will not work correctly either 
(suffers from the same symptoms). However, if the source is viewed in 
Source Only (not mixed mode) then single stepping should work just fine 
since the breakpoint will be placed on the line number. 

Notes for PL/M 86 Users
------------------------

  * For better performance, a source file name identical (or first 8 letters
    identical) to the first label of the program body (module name) is
    recommended.

  * The first label of the program body (module name) has to be unique.

  * All codes must be contained in procedures; otherwise the source level
    debugging might not function properly.

  * For the source modules to be debugged, $LIST and $NOLIST directives
    are not allowed in the program body.

  * For the files (header files, or code) which are included in a module,
    $NOLIST directive has to be specified at the 1st line and $LIST directive
    has to be the last line.

  * Compiling with the options "DEBUG", "MOD186" and "OPTIMIZE(0)" is
    required.

  * Do not override the default for compiler option "TITLE".

  * List files for PL/M source files must be generated and locate at the
    same path where the load-file is.

  * In MP186.INI (in the windows directory), add the PL/M source files
    extension name(s) to the "DefaultModuleExtension" item under the
    [SourceInfo] section.

  * Must check "Ignore Case" option in the load options dialog box or
    use the keyword "ignorecase" in the shell command "Load" to oppress
    the case sensitivity for symbol lookup.

Known limitations in version 1.3
--------------------------------

  * Trigger window must be closed for setting events into emulator.

  * Modules with multiple code segments are not supported.

  * The shell command AddressOf does not support #module#staticVar lookup
    if #module is not the current execution context.

  * No warning is given if a source file is newer than the OMF.

  * Does not currently support C++.
  
Initialization Script in MP186.INI
----------------------------------

    * Communication Selection

    MICEpack/SLD can be set up the communication port and its port address
    in "Comm" and "Microtekparallel" sections of MP186.INI file.
    For example:
       [Comm]
       type=microtekparallel

       [MicrotekParallel]
       basePort=0x200
 
    MICEpack/SLD can also be set up the communication port using the printer
    port in "Comm" section of MP186.INI file. The printer port could be lpt1,
    lpt2 or lpt3. For example:
       [Comm]
       type=lpt1 
    
    * Emulated Target CPU Selection

    MICEpack/SLD can be set up the emulated target CPU in "SystemInfo"
    section of MP186.INI file. For example:
       [SystemInfo]
       MICEpack=80C186XL

    MICEpack/SLD-186 supports 80C186/188 XL, 80C186/188 EA, 80C186/188 EB,
    and 80C186/188 EC.
 
    * Running Auto-initialization Script.

    MICEpack/SLD can be set up to run an auto-initialization script.  The
    script sets up the emulator to your requirements each time you
    run MICEpack/SLD.  The product is shipped with an include file that
    describes how to do this.  The file is named "include.me".  To create
    your own script file, create a file with the commands you want for
    initialization.  BE SURE TO END EACH COMMAND WITH A SEMICOLON.
    Edit the MP186.INI file (in your windows directory), and change
    the "script=include.me" line, replacing "include.me" with your
    initialization file.  Be sure to include the full path, including
    drive letter if necessary.  For example:

           script=c:\mp186\reset.inc

    You can also run the same initialization file in the Shell window.
    For example:

           include "c:\mp186\reset.inc";

    * Shell command history

    You can access the Shell command history with Ctrl-uparrow
    and Ctrl-downarrow keys.


Diagnosing Fatal MICEpack/SLD Errors
------------------------------------

  * GP Faults

    If you have received a GP fault, our ability to find and fix it is
    increased if you run the Dr. Watson recorder, which captures
    information at the point of the GP fault.  The Dr. Watson program
    is shipped with Windows and is located in your windows directory.

    To start Windows with Dr. Watson enabled, use the File Manager to
    drag and drop the drwatson.exe icon (in your windows directory) into
    the Windows StartUp Group.  Another way to do this is to add the path
    and filename to the load= line of your win.ini file.  Example:

          load=c:\windows\drwatson.exe

    After a GP fault, the drwatson.log file in your Windows directory
    holds the information.  Fax this file, along with any other
    information that led up to the GP fault, to Microtek International.  

         Fax: +886-35-772-598

  * PV.DMP

    Under some conditions, an error can occur which produces a message box
    indicating that information about a problem has been placed in the file
    pv.dmp in your MICEpack/SLD directory.  This file gets written over each
    time an error occurs, so we recommend that you rename the file, then
    fax it to Microtek International.
