PowerPack SLD 2.4 ________________________________________ Contents Changes in 2.4 Windows/PowerPack SLD Configuration Guidelines Processor and Toolchain Notes Diagnosing Fatal PowerPack SLD Errors ________________________________________ Changes in 2.4 * Combined Motorola and Intel Versions Previously the 2.2 version was "Motorola only" and the 2.3 version was "Intel only". This release brings both together in a single version. A new installation procedure was created to offer the choice of family upon installation. * Name Change Prior releases of this software were called "PowerViews". Because of trademark registration issues we have renamed the software "PowerPack SLD" or just "SLD". The initialization steps are now displayed as SLD loads and initiates communication with the emulator. Help files have been corrected and expanded. * Intel Processor Specifics SLD 2.4 supports OMF86 and OMF386 load files from the Borland compiler & Phar Lap TNT toolchain. Configuration support for the peripheral registers in the 386EX allows the user to control the operation of EX peripherals during breakpoints or halts. Floating point support for the 387 coprocessor is added. Debug registers can be individually assigned for use by SLD or by the application. * Motorola Processor Specifics The peripheral window no longer depends on having a valid MBAR in order to read registers. Support for the 68360 emulator has been added. Beginning with version 2.3, all addresses are assumed to be hexadecimal. The default radix for data continues to be decimal, with hexadecimal values indicated by a "0x" prefix. For example: shell command interpretation ------------- -------------- reg pc 55; set register pc to 55 decimal dump 400; dump memory at address 400 hexadecimal write 10:50 0x33; write 33 hexadecimal to segment 10 hexadecimal, offset 50 hexadecimal Be sure to read additional processor-specific information in the Notes section below. ________________________________________ Windows/PowerPack SLD Configuration Guidelines * GPF From Faulty Video Drivers One GP fault that showed up in PowerPack 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. * Reset PowerPack Base after Error If an error occurs, forcing you to exit PowerPack SLD or restart Windows, you should reset the PowerPack base before restarting PowerPack SLD. * Adobe Type Manager If you use Adobe Type Manager, turn it off when running SLD. The proportional font in the SLD Trigger window is displayed incorrectly when running ATM. * Serial Communications with 16550 If you have a communications port with a 16550 FIFO enabled, rebooting without properly closing Windows may result in an inability to reestablish communications with the emulator. You can avoid this problem by including the default address of the COM port in your system.ini file. Edit the [386Enh] section of system.ini to include one of the following addresses corresponding to the COM port used for communication with the PowerPack or PowerScope: COM1Base=3f8h COM2Base=2f8h COM3Base=3e8h COM4Base=2e8h ________________________________________ Processor and Toolchain Notes * General The Map command can time out (up to 90 seconds is required) when mapping extremely large regions of target memory to TARGET NONE. The workaround is to perform the mapping in two or three commands instead of a single command. 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 PowerPack 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. * Intel Toolchain Notes PowerPack SLD supports OMF86 and OMF386 file formats. Testing has confirmed, however, that there are numerous interpretations of the OMF file specifications. PowerPack 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: Borland C 4.0, Paradigm Locate 4.0 OMF386: Metaware High C 3.21 & SSI Xlink386 1.5o OMF386: Metaware High C 3.21 & PharLap Asm/LinkLoc 4.0 OMF386: Borland C 4.0 and 4.5, Phar Lap TNT LinkLoc 7.1(beta) Using Metaware High C and PharLap LinkLoc, variable void * types are displayed as signed short int *. PharLap does not generate the void types; these types default to signed short ints. Using Metaware High C and PharLap LinkLoc, variable enumeration types show as signed char. PharLap does not generate the enumerated types. These default to signed char. Using Metaware High C and PharLap LinkLoc, when the linker generates the warning "Cannot process all of the debug information in module", PowerPack SLD might not have all the debug information for the module. Using Metaware High C, type "unsigned int" is converted to "unsigned long". 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 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. * Motorola Toolchain Notes PowerPack SLD supports the IEEE695 file format. Testing has confirmed, however, that there are numerous interpretations of the IEEE695 specifications. PowerPack SLD has been tested with these toolchains: MRI 4.4 Intermetrics Intertools 8.2.5 SDS CrossCode C 6.2 Sierra C 3.0 Introl 3.07 Whitesmiths 68HC16 3.32 HiWare Hi-Cross 2.6 (Microtek IEEE-695 converter required) * 386EX The BUSY#, ERROR#, and PEREQ pins normally interface to a coprocessor. The 386EX allows these pins to be redirected to one of the internal timers instead. Since the 386EX powers up with the pins programmed to their FPU function, the PP firmware will detect if a coprocessor is present. However, if the pins are later redefined by user code or in the peripheral window, SLD may crash since it can no longer access the coprocessor. This will only affect users who (1) have a target coprocessor, and (2) reprogram the pins as above so it cannot be accessed, and (3) try to access the coprocessor from SLD. The inline assembler generates incorrect instructions in use32 mode for "mov eax,[0]" and "mov [esi],si" (10283) When the 386EX is reset internally, breakpoints and ICECFG0 contents are lost. Normally, emulation is briefly stopped when the CPU is reset in order to restore the user's breakpoint and ICECFG0 register contents. However, the user can also reset the CPU by writing to PORT92 at io address 0xFF92. In this case, the emulator cannot detect the reset, and debug registers and ICECFG0 contents are not restored. This could result in a system hang if software breakpoints are installed since the op code used for software breakpoints would be handled as an INT1 instead of breaking emulation. * 68360 For PowerPack 360, the Trace window now handles instruction trace display gracefully without showing the error message- "IPIPE1 pin not functioning correctly." For PowerPack 360, the XTAL, EXTAL, MODCK0 and MODCK1 signals are always enabled to the target system. The following are no longer available: - In the CPU window Signal Menu: Clock Enable item - In the Shell window: Signal CLK command (other Signal commands remain unchanged) ________________________________________ Diagnosing Fatal PowerPack 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 or e-mail this file, along with any other information that led up to the GP fault, to Microtek International. Fax: 1-503-629-8460. E-mail: csupport@microtekintl.com * POWERPAK.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 powerpak.dmp in your PowerPack SLD directory. This file gets written over each time an error occurs, so we recommend that you rename the file, then fax or e-mail it to Microtek International.