Paradigm C++ Release Notes - Product history

This reference is intended to help the Paradigm C++ user track the improvements and bug fixes added to Paradigm C++ from previous releases.

This is not a complete list of fixes and improvements but it does cover important changes.

Note: The items in the the Paradigm C++ history list can potentially change how your application behaves so please review them to make sure you are not affected.

Product history of Paradigm C++ Professional (6.0) Service Pack 6

Product history of Paradigm C++ Professional (6.0) Service Pack 5

Product history of Paradigm C++ Professional (6.0) Service Pack 4

Product history of Paradigm C++ Professional (6.0) Service Pack 3

Product history of Paradigm C++ Professional (6.0) Service Pack 2

Product history of Paradigm C++ Professional (6.0) Service Pack 1

Product history - Paradigm C++ Professional (6.0) Service Pack 6

Version history of Paradigm C++ Professional (6.0) Service Pack 6:

v6.00.045 Paradigm C++ Professional (6.0) Service Pack 6

   Compiler

   Protected mode compiler bit field fix

   Real/Extended mode compiler “out of memory” error fix 

   Added ASSUME the list of accepted assembler keywords (only handled by external assembler).

   Added support for pragma startup/exit to accept a simple macro as the priority.

   Added __ADDR20__ and __ADDR24__ to the automatic compiler defines.

   Fixed a problem with the casting of 0 to a far pointer.

   Added the _M_IX86 macro to the real mode compiler with the following definitions: 000 - 8086 100 - 80186 200 - 80286 300 - 80386 400 – 80486

   Fixed problem with protected mode compiler not allowing the calling of functions using '__interrupt'.

   Fixed problem in all compilers where parameters passed to an interrupt function were pushed but were not cleaned up following the return of the interrupt function.

   Added support for two new warnings:

   1. In C when a switch case statement bypasses the initialization of a local variable (already an error in C++)

   2. When a preprocessor directive uses an undefined macro or macro replacement in an expression

   Added code to better handle huge arrays with more than 64K of complex initializations.

   Added new error message to detect problem with huge array initializers having fixups that span a segment boundary.

   Added ability to handle pointer assignments of the form  

   const char _cs *ps = "hello"

   without a warning when large data models and the -dc option is used.

   Added support for #pragma data_seg( seg, class, group, align) where data_seg can be one of the following:

   fardata_seg

   farconst_seg

   farnvram_seg

   farbss_seg

   Fixed bug involving volatile indirection.

   Change to have the option to force page alignment always takes precedence over other alignment options (default or from #pragma).

   Increases in compiler table sizes to prevent out of memory errors.

   Arbitrary huge arrays (size is not a power of 2) are now aligned so the 64KB is an array element boundary.

   Huge segments are now para/page aligned based on the real/extended address mode.

   Segment packing is now designed so that data will not be added to an existing segment if it could cause the segment to wraparound.

   Fixed problem with IDE not setting the precision using in floating point calculations.

   Added a pragma that allows access to the new run-time library helper functions that are in segment _DATA.

   #pragma ram_rtlhelpers

   Disabled code that caused non-inlined templates to be emitted as PUBDEFs (causing conflicts in other modules at link time).

   Disabled integer overflow checking on array index operations since code such as "int a[0x4000] = 0" could trigger it.

   Debugger

   USB PromJET support added

   Evaluator fix for large source files

   Updated JTAG interfaces

   Fix to avoid cancelation of existing debugging session in multi-target projects

   Fix for crash that occurs after several debug session creation/terminations

   Support for Ceibo DS-186 in-circuit emulator

   IDE

   Fixes for .pdl file support

   Updated hardware key support for Windows XP

   Linker

   Now allows STACK or _STACK as permitted stack segment names.

   Updated the stack creation logic to check for the existence of the stack segment and create one if requested or warn if no stack is found.

   Updated linker to add unique extended mode file signature

   Fixed problem with the incomplete reading of matched public/external debug records.

   Fixed problem where debug information in libraries was not properly excluded when the -v- option was used with the library.

   Fixed bug in the output of absolute segment information in the detailed segment map.

   Extended to allow greater than 64K relocations in a relocatable load module.

   Fixed an issue with the handling of common segments so it behaves like the older Microsoft/Borland linkers and starts all segment contributions identified as 'common' to offset within the segment.

   Added code to place the heap in the same segment name and combine/align type as the startup code.

   Added warning of segment wrap around condition.

   Fixed bug in command line parsing of non-alphabetic characters.

   Fixed problem with the incorrect handling of DWORD aligned SEGDEF records.

   Locate tool

   Real mode locator configuration file parsing fix

   Real mode locator LISTFILE region directive fix

   Protected mode locator fix for builds via command line

   Fixed a problem with TD4->OMF enumerations overflowing an internal buffer.

   Extended to allow greater than 64K relocations in a relocatable load module.

   Now define the macros __ADDR20__ and __ADDR24__ based on the input file type.

   RTL

   Run-time library exception handling fixes

   Updated startup code regarding initializer structure

   Added aliases to OVRFLOW/R_OVRFLW/PCPPRTL so they can overloaded by user code.

   Added RAM-based RTL helpers which can be accessed using the compiler pragma. These can be used to allow all code to be in RAM when programming flash memory.

   #pragma ram_rtlhelpers

   Fixed bug in the distance to the _fperror function.  Reworked code so that _fpinit/_fpreset are the same and can be used interchangeably.

   Added support for the snprintf/vsnprintf functions.

   Redid memcmp() and strcmp() to operate at full bus bandwidth.  Except for the initial overhead, memcmp() runs twice as fast as previous editions.  strcmp() also runs twice as fast during comparisons but has more overhead since the string length must first be determined.

   Fix to skip the save of DS in huge memory model in some CSTRING RTL functions. Fixed a bug (small/medium memory models) which caused AX to be trashed when in fact the strings were equal in memcmp().

   Streamlined heap code to run 5-15% faster than previous versions.

 

Product history - Paradigm C++ Professional (6.0) Service Pack 5

Version history of Paradigm C++ Professional (6.0) Service Pack 5:

v6.00.038 Paradigm C++ Professional (6.0) Service Pack 5

The following changes have been made in the Paradigm C++ Professional (6.0) Service Pack 5:

Compiler Improved 32-bit I/O performance.
Fixed problem with h2ash utility and use of #undef.
Fixed real mode compiler segment overflow error.
Debugger Fixed bug that could prevent older PDREMOTE/ROM monitors from working.
Fixed debug session bug that prevented setting of breakpoints when using PromJET.
Updated JTAG interface.
IDE Updated hardware key support for Windows XP SP2.
Locate tool Fixed locate CPUINIT bug when more than 1KB of initializations are specified.
Project Manager Fixed bug that caused .pdl file to lose target connection settings when loaded.

Product history - Paradigm C++ Professional (6.0) Service Pack 4

Version history of Paradigm C++ Professional (6.0) Service Pack 4:

v6.00.037 Paradigm C++ Professional (6.0) Service Pack 4

The following changes have been made in the Paradigm C++ Professional (6.0) Service Pack 4:

Assembler PASM32 has a fix for BSR/BSF instruction bug.
Compiler Fixed compiler bug where incorrect code was being generated when floating point constants were used.
Fixed case where floating point code would cause an application crash when used with standard I/O functions, such as sprintf().
New function for real/extended mode, _outpcb(port, value), to perform I/O write operations to PCB registers.
Exception handling is now off by default for command line compiler.
Debugger Fixed memory read crash in debugger when opening CPU window with protected mode PDREMOTE/ROM.
ROM emulator communication test change to error reporting.
Third party RTOS support fixes, added Nucleus Plus 16-bit support.
Improved PDREMOTE/ROM download speeds for large applications.
Added PDREMOTE/ROM tester in communication options.
IDE Increased line length capacity in editor.
Mouse wheel support for the IDE.
'Keep response files' option now also controls the IDE created response files from the $RSP transfer macro.
Leading spaces $INC transfer macro expansion removed to allow long file name support.
Allow 'Paradigm C++ Technical Support' link under Help menu in IDE to launch a mail program if a mail program is not already running.
Locate tool Locate INITCODE directive fix for 386EX processor.
Project Manager Fix for .pdl files that prevented use of spaces in source/lib/include path.
Run-time libraries Improved real/extended mode 32-bit integer division performance.
Protected mode floating point emulation fix.

Product history - Paradigm C++ Professional (6.0) Service Pack 3

Version history of Paradigm C++ Professional (6.0) Service Pack 3:

v6.00.033 Paradigm C++ Professional (6.0) Service Pack 3

The following changes have been made in the Paradigm C++ Professional (6.0) Service Pack 3:

Assembler Fixed problem with realloc() in extended address mode.
Fixed problem with EXITDATA class alignment in extended address mode.
Compiler Fixes a bug affecting unsigned char arithmetic with signed integers.
Real/extended mode fix for the casting of char types.
Real/extended mode fix for "Unknown error" when using pre-compiled headers.
Real/extended mode compile/assemble "out of hash space" fix.
Fixed the 32-bit compiler so the macro _M_IX86 is guaranteed to be output.
Fixed a problem with the 32-bit compiler not emitting a line number record for local declarations in processing switch case statements.
Rebuilt compiler to support a 4096 path in the IDE version.
Fixed a bug in the 16-bit compiler optimizer that caused the assignment to a needed local to be optimized away.
Added error diagnostic to complain of automatic data using the nonvolatile property (which is not permitted).
Debugger Real/extended mode fix for missing call stack window entries.
Allow inspect and watch window contents to be logged.
Finder Fixed a problem where files containing a form-feed in the first 256 bytes were considered to be binary and were not searched.
IDE Fixed problem where zero-length temporary files were left in the TEMP directory from transfers that did not capture any output.
Fixed a bug where opening project from command line could cause a crash.
Lint tool now receives the predefined compiler macro _M_IX86 for the 32-bit compiler (used in Win32 header files).
Fixed missing support for compiler coverage display in the options hierarchy window.
Added code to the compiler and assembler tools to create the output directory if it does not exist.
Fixed the project file to makefile utility to allow the continuation of long makefile lines so they do not exceed the editor line length capacity.
Added ability to strip off debugging information (independently of the Options.Project settings) using the 'Exclude debugging information' checkbox in the node 'Edit node attributes' dialog.
Fixed problem with generation of PASM filenames so that short filenames are created in the makefile since a long filename will not be accepted by PASM.
Librarian Added ability to work with quoted command lines containing spaces.
Fixed problem with options getting set but never reset. Now IDE can set/reset /0 option using 'Exclude debug info' option.
Linker Fixed problem in 16-bit linker with the unmangling of large STL template names emitted to the map file.
Locate tool Added support to CPUTYPE for Advantech EVA1611C to EVA1630C devices.
Added support to CPUTYPE for Infinior IMS16B and IMS16C devices.
Added support to CPUTYPE for RDC R1610, R1620, R2000, R2010, and R2020 devices.
Make utility Filename used for temporary response files was changed from MAKE0000.@@@ to MAKE0000.MAK.
Project Manager Fixed bug where deleting a node from the project could cause a crash after clicking on a message referring to it in the message window.
Added feature to copy the contents of the 'Options hierarchy' display to the clipboard.
Fixed cases where a double-click on a source file in the project failed to open the file.
Added support for a new, more version control system friendly .pdl file format for project files in addition to .ide files.

Product history - Paradigm C++ Professional (6.0) Service Pack 2

Version history of Paradigm C++ Professional (6.0) Service Pack 2:

v6.00.021 Paradigm C++ Professional (6.0) Service Pack 2

The following changes have been made in the Paradigm C++ Professional (6.0) Service Pack 2:

Debugger Memory map or I/O dialog change will refresh any opened memory displays.
Third party RTOS 32-bit evaluator and menu fixes made.
Support for the SC520 CodeTAP interface added.
Support for RDC processor JTAG inferface added.
Tool added to edit .EMU file to be loaded by debugger (right-click on .axe node, select View | Current .EMU file) for new projects that are created.
Remote console window added to display PDREMOTE/ROM and SC520 JTAG remote console output (View | Remote console when in a debug session).
IDE Editor windows now open in an area consistent with the first editor window opened.
Option for multi-seat licensing over network added.
Hardware key support for license management implemented.
Project Manager Added option to TargetExpert for protected mode applications to allow alternate application startup code to be added.

Product history - Paradigm C++ Professional (6.0) Service Pack 1

Version history of Paradigm C++ Professional (6.0) Service Pack 1:

v6.00.012 Paradigm C++ Professional (6.0) Service Pack 1
v6.00.008 Initial Paradigm C++ Professional (6.0) release

The following changes have been made in the Paradigm C++ Professional (6.0) Service Pack 1:

Compiler (Real-mode) Added ability to place local scope automatic array/structure initializers in the code segment using the automatic const data option
(Real-mode) Added debug information for module-level static data to the ?DEBUG records in assembly language output
(Real-mode) Fixed bug which prevented certain optimizations from being disabled
(Real-mode) Added ability to detect a full define buffer and now issues an error when defines are passed in from the IDE
(Real-mode) Added code to disable constant overflow checking when tree nodes are reordered for purposes of address calculations
(Real-mode) Fixed a problem (when assembly language output is used) with the segments not being emitted in the same order as they were created. This caused the debug information to refer to incorrect segments
New option to make all 'const' data automatically far so it can be placed in a read-only address space. This option is enabled with the -dx option
Coverage records are now disabled by default but can be enabled using the -vc command line option
The -Fp option can now be used (currently on an evaluation basis using #pragma option -Fp) to pack far undimensioned initialized arrays into optimally-sized segments. Without this option, undimensioned will always be placed in a new segment
Handling of NULL pointers has been improved, especially the comparison of near and far pointers. One thing to consider if you mix pointer types is that promotion of a NULL near pointer to a far pointer will never be NULL, it will be DS:0
Bug in 16-bit intrinsic functions that limited the size to 32KB has now been fixed
New compiler errors
It is now an error to include an initializer on data that is declared as '__nonvolatile'
Compiler now checks and warns if constant expressions do not fit in type int (16-bits for real/extended mode, 32-bits for protected mode)
A warning will be issued for const declarations that do not include an initializer, such as const int x ;
Debugger Single step in CPU window now changed to stop on any unexpected break condition
IDE lockup when attempting to display an error dialog fixed
Fixed case where a selection of a large block of text could cause crash when trying to evaluate it
New 16-bit compiler option to make all 'const' data far can be found in Options.Project.16-bit compiler.Memory Model
New compiler options to enable/disable the new compiler warnings are available in Options.Project.Messages
New assembler options in Options.Project.Assembler.Code Generation allow control of smart code generation, smart conditional jumps, and version emulation
The macro $ENV() is now supported in output directory definitions
Spaces in macro definitions should now be supported for all tools. Previously some tool interfaces such as Lint could not handle 'DEBUG = 1'
Option in Debugging allows the disabling of coverage records
IDE no longer attempts to open files that no longer exist
The IDE object in cScript now includes the CurrentProject() property
Building of source files in the default project is no longer allowed
User defined I/O interface fixes added
AMDebug trace fixes, stepping with trace buffer open fix made
Environment option added to toggle processor reset on connection/download
Environment option added for real mode case sensitve inspections
SuperTAP event system fix for != condition
SuperTAP event system data mask support added (data value & 0xff to look at only 8 bits of value)
Improved stepping when a source file is not in the path specified in its project node
Environment option debugger behavior flag, "dynamic update" now saved/restored in .IDE file
Emu file #include directive searches .EMU file path, project path, $pcpproot\bin and $pcpproot\include
Emu file #load directive searches .EMU file path, then .AXE file path
(FS2) added timestamp trace mode
Header files I80386EX.H now includes EMBEDDED.H
The following RDC R1100 and R8800 header files are now included: (R1100.H, R1120.H, R1122.H, R8800.H, R8820.H, R8822.H)
IDE Added code to use double quotes '"" to deal with long filenames with embedded spaces for the linker
Added the project directory to the path list for the assembler so the project directory is searched first for include files (same search order as the compiler)
Added fix for the Visual Assist problem of crashing when windows were split
Increased the maximum # of compiler defines to 4KB and fixed problem with buffer overruns when the $ENV and $INHERIT macros were used
Feature added to allow printing of selected lines in the editor
Linker (Real-mode) Change made to detect segments that are not fully addressable, for example, a segment starting at offset 8 could be at most 64KB-8 bytes in size
(Real-mode) Improved support for the handing absolute segments
(Real-mode) Problem with type information parent type indices being off by one was fixed
(Real-mode) Fixed a number of minor problems: (virtual offset field was off by two, member folding problem with static member fixups, type folding did not use the second half of 2 record types)
(Real-mode) Fixed to allow double quotes to be used with long filenames having white space
(Real-mode) Added ability to split out absolute segments from the detailed segment map
Worked around a problem with bad input debug information and now issues a warning when the problem is detected
Static members from C++ classes are now handled correctly
Detailed segment map no longer lists zero-length segments (other than the first)
Lint '__nonvolatile' and other Paradigm C++ key-works have been added
Lint can now handle .C source files that are marked to use the CppCompile translator
Locator (Real-mode) Fixed problem where the wrong symbol was being displayed and the warning was issued twice
(Real-mode) Fixed problem with older Borland formats not handling scope record function symbol indices
Added support for RDC R8800 and R1100 processors
Increased the number of preprocessor include files supported to 100
PDREMOTE/ROM Removed header file definitions that are part of Paradigm C++ (no more support for obsolete BC++/MSC/C++ compilers)
Support for RDC R8800 and R1100 processor types has been added
Project Manager New projects will no longer have compiler dependency information stored in the project file by default. Default option for Autodependencies is now 'Use', which means that this information will be obtained directly from object files
Fixed View Options Hierarchy crash caused by a large number of compiler defines
Fixed multi-target project when targets have different connections
TargetExpert support for optional PEG graphics added
Run-time Library Startup priorities of run-time library are now more organized: (0 - 15 = C/C++ Run-time library initializers, 16 - 31 = RTKernel initializers, 32 and up = Application initializers)
findfirst() and findnext() support has been added to the run-time library.
Visual Assist Fixed "blank window" bug that caused a crash when blank editor window was closed
A bug that caused a crash when windows were splitting has been fixed
Now remains disabled unless a project is open

Paradigm C++ (5.x) Service Pack 4
Paradigm C++ (5.0) Service Pack 3
Paradigm C++ (5.0) Service Pack 2
Paradigm C++ (5.0) Service Pack 1

The following are the highlights included in the Paradigm C++ Summer 2000 (5.0):

v5.10.021 Paradigm C++ Summer 2000 (5.x) Service Pack 4
v5.10.004 Paradigm C++ Summer 2000 (5.0) Service Pack 3
v500.028 Paradigm C++ Summer 2000 (5.0) Service Pack 2
v500.026 Paradigm C++ Summer 2000 (5.0) Service Pack 1
v500.025 Paradigm C++ Summer 2000 (5.0) CD
v500.014 Paradigm C++ Winter 2000 (5.0) CD
v500.010 Paradigm C++ Summer 1999 (5.0) CD
v500.006 Initial Paradigm C++ (5.0) release

Product history - Paradigm C++ (5.0) Service Pack 1

The following changes have been made in the Paradigm C++ Summer 2000 (5.0) Service Pack 1:

CS.LIB
CM.LIB
CC.LIB
CL.LIB
CH.LIB
Fixed a bug in FBRK.OBJ where an incorrect fixup record could cause a linker error.
LOCATE.EXE The 16-bit locate tool now supports #message as a preprocessor directive. Use this FILTER.SPP to output informational messages from the locate tool, such as #message PDREMOTE/ROM is defined.
PLINK.EXE Fixed an internal error when a linker defined symbol was used in an error diagnostic.
PCC.EXE Fixed a bug that caused source files with hundreds of segments to overflow the BCWS16.DLL object file LNAMES record.
PDREMOTE/ROM Fixed Windows 98 and Windows 2000 error and warning messages when generating Wizard PDREMOTE/ROM projects for some processor types.
Source files Fixed source file correlation for source files referenced with the node's 'source' path specification. This bug was expressed when using the Debug Load command. Source file lines with debug information were not displayed with dots.
CPU window Fixed a bug in the CPU Disassembly window where global symbols were not always displayed symbolically.
Debugger SuperTAP emulator specific - Fixed a bug where a memory map region fill, or a memory map copy from target into overlay command, resulted in a region that was 1 byte less than the desired length.
FS2 specific - Fixes a hardware breakpoint bug occurring when a read or write memory break was encountered during a rep movsw (or equivalent), resulting in a corrupted CS:IP.
FS2 specific - Trace displays for cores with deep traces ( > 16 ) are now ordered properly.
FS2 specific - Trace entries at a software breakpoint were cleaned up. The breakpoint entry is now software breakpoint occurred and falso execution cycles following the break were stripped out.

Product history - Paradigm C++ (5.0) Service Pack 2

The following changes have been made in the Paradigm C++ Summer 2000 (5.0) Service Pack 2:

Compiler Definition of NULL has been changed to '(void*)0' from 0 or 0L in C mode.
Compiler Bug fixed where too many segments overflow an OMF record.
Optimizer bug fixed that causes a register allocation failure.
Examples Changed to #pragma startup 64 or greater. 0-63 are reserved for the compiler and run-time libraries.
IDE $INHERIT is now expanded in the $DEF transfer macro.
Add node can now add multiple nodes in Windows 2000.
Ctrl-Brk can now be used in .KBD files.
The size of the Source file path information has been expanded.
Read-only files can now be optionally saved.
ESC key in Options | Project crash fix.
Linker Fixed a bug that caused PIDATA records to be expanded incorrectly.
Locate INITCODE NOTHING is now supported to generate a JMP to the application entry point at the address defined by class ??LOCATE.
OMF86 output bug fix for PARAMETER types.
RTL Startup code now initializes all registers to allow use on instruction set simulators that can't handle XOR AX, AX.
Debugger Basic 186CC register view support added.
Module view address sort fixed.
PDREMOTE/ROM wizard fixed.
Communication fixes with PDREMOTE/ROM were made.
Evaluator fix for SuperTAP trace buffer.
Interval timer UI fix for SuperTAP.
Copy/Fill overlay memory fix for SuperTAP.

Product history - Paradigm C++ Professional (5.0) Service Pack 3

The following changes have been made in the Paradigm C++ Summer 2000 (5.0) Service Pack 3:

Compiler Fixed bug with local common subexpressions.
Command line size is no longer limited to a fixed size.
Compiler memory limits increased.
Fixed __emit__() tail merging bug.
Fixed bug in inline assembler jump optimizations.
Fixed bug found when calling interrupt routines from floating point code.
Debugger Symbol table parsing fixes were added.
CPU view sub-menu has new log feature for disassembly.
CPU and Dump views sub-menus now contain dialog for viewing I/O.
Dump window sub-menu now has block fill, read from binary file, and write to binary file.
User-defined I/O feature was added under View | Target peripherals for users to create their own list of I/O locations.
IDE Visual Studio editor emulation added.
Selecting text with the mouse is now fixed.
Command line builds can run minimized using the /b and /m options with /q.
Linker Added support for missing FIXUPP type.
Added support for C++ namespaces. (Note: support for outputting namespace records in the debug record will be added into a future service pack)
RTL Floating emulator data structure members aligned for faster access.
Libraries updated to support the Paradigm C++ RTKernel RTOS.

Product history - Paradigm C++ Professional (5.x) Service Pack 4

The following changes have been made in the Paradigm C++ Summer 2000 (5.x) Service Pack 4:

Compiler Local constant data feature added.
Increased number of compiler defines that can be passed.
New option to make all 'const' data automatically far so it can be placed in a read-only address space. This option is enabled with the -dx option.
Coverage records are now disabled by default but can be enabled using the -vc command line option.
The -Fp option can now be used (currently on an evaluation basis using #pragma option -Fp) to pack far undimensioned initialized arrays into optimally-sized segments. Without this option, undimensioned will always be placed in a new segment.
Handling of NULL pointers has been improved, especially the comparison of near and far pointers. One thing to consider if you mix pointer types is that promotion of a NULL near pointer to a far pointer will never be NULL, it will be DS:0.
Bug in 16-bit intrinsic functions that limited the size to 32KB has now been fixed.
New compiler errors
It is now an error to include an initializer on data that is declared as '__nonvolatile'.
New compiler errors
Compiler now checks and warns if constant expressions do not fit in type int (16-bits for real/extended mode, 32-bits for protected mode).
A warning will be issued for const declarations that do not include an initializer, such as const int x ;.
Debugger Memory map or I/O dialog change will refresh any opened memory displays.
Tool added to edit .EMU file to be loaded by debugger (right-click on .axe node, select View | Current .EMU file) for new projects that are created.
Remote console window added to display PDREMOTE/ROM console output (View | Remote console when in a debug session).
Single step in CPU window now changed to stop on any unexpected break condition.
New 16-bit compiler option to make all 'const' data far can be found in Options.Project.16-bit compiler.Memory Model.
New compiler options to enable/disable the new compiler warnings are available in Options.Project.Messages.
New assembler options in Options.Project.Assembler.Code Generation allow control of smart code generation, smart conditional jumps, and version emulation.
The macro $ENV() is now supported in output directory definitions.
Spaces in macro definitions should now be supported for all tools.
Option in Debugging allows the disabling of coverage records.
IDE no longer attempts to open files that no longer exist.
The IDE object in cScript now includes the CurrentProject() property.
Building of source files in the default project is no longer allowed.
User defined I/O interface fixes added.
Environment option added to toggle processor reset on connection/download.
Environment option added for real mode case sensitve inspections.
SuperTAP event system fix for != condition.
SuperTAP event system data mask support added (data value & 0xff to look at only 8 bits of value).
Improved stepping when a source file is not in the path specified in its project node.
Environment option debugger behavior flag, "dynamic update" now saved/restored in .IDE file.
Emu file #include directive searches .EMU file path, project path, $pcpproot\bin and $pcpproot\include.
Emu file #load directive searches .EMU file path, then .AXE file path.
IDE Editor windows now open in an area consistent with the first editor window opened.
Hardware key support for license management implemented.
Option for multi-seat licensing over network added.
Linker Static members from C++ classes are now handled correctly.
Detailed segment map no longer lists zero-length segments (other than the first).
Locate Increased the number of preprocessor include files supported to 100.
Project Manager New projects will no longer have compiler dependency information stored in the project file by default. Default option for Autodependencies is now 'Use', which means that this information will be obtained directly from object files.
Fixed View Options Hierarchy crash caused by a large number of compiler defines.
Fixed multi-target project when targets have different connections.