CodeScape 2.2.0 Build 122 Release Notes
---------------------------------------


[Simulator is an Alpha Feature - Known Problems - ]
===================================================

1	The following instructions are not implemented:
	SLEEP
	LDTLB
	MOVCA.L
	OCBI
	OCBP
	OCBWB
2	Cache operation is not completely tested:
	a) Changes to CCR register only noticed on a 32bit write.
3	MMU not modeled.
4	Tracing (Stepping) when viewing the Simulator output can be 
	confusing during a dual instruction issue. If the first dual
	issued instruction hits breakpoint the Simulator stops.
	However, the Simulator only reports complete slot operations 
	and will not show information about the instruction until the
	the whole slot completes.
5	UI is the same as the SH2 version.



[Bugs Fixed in Build 122]
=========================

1    Fixed GPF caused by Codescape wrongly finding overlays in the code.

[Bugs Fixed in Build 121]
=========================

1   Globals symbols now shown in global region with ELF files.




[Bugs Fixed in Build 120]
=========================

1   Location expressions for functions/data items defined within Hitachi
    Assembler modules were section relative values and required correcting.

2   Redraw problem in a Source region with syntax highlighting. A small line
    appears at the bottom of the Source region which is not the background
    color. When you size the Source region the first line number displays 
    incorrectly.

3   If the cache image contains software breakpoint, and the Simulator starts,
    the breakpoint appears in the Disassembly and Memory windows.

4   Popups do not work when using qualified labels in the Disassembly region if
    a long filename is prepended to a label and the resultant string is not
    fully visible.

5   SH4 Simulator does not operate correctly on store queue 1.

6   Windows continue to update even when the update windows option is
    disabled.






[Bugs Fixed in Build 119]
=========================

1   Select some text in an Editor region and Copy and Cut are disabled (grayed)
    on the Edit menu but are enabled on the Edit toolbar, on the Editor region
    shortcut menu, and on the accelerator keys.

2   The Run() command in scripts does not start running immediately.

3   In a Source region, open the Region configuration dialog box, then click OK.
    The Region configuration dialog box remains partly drawn.

4   The SH4 Simulator can write invalid information on close. This is caused by
    the cache flush not checking to see if the cache is enabled before saving.

5   In the SH4 Simulator SHLD & SHAD do not dual issue.

6   Cannot close the dialog "Warning - Manual Reset  Exception encountered while
    block bit set" in the Simulator.

7   Cannot load a program file (e.g. ELF) with a path longer than 100
    characters.

8   When a source file is marked as read only it is  not displayed when you
    select it from the Goto Source file menu option.

9   GPF during binary load of elf file.

10  Memory does not redraw with highlight change color of a section when it is 
    uncovered by removing an obscuring window or dialog.

11  The Profiler Display Cache Line column label does not appear when it has
    been disabled and then enabled until the user clicks on the interface where
    the column button/label should appear.

12  GPF when going to a source file (shown in example f40_test.zip).






[New features in Build 118]
===========================

1  Formatted expressions (used in breakpoints) changed to support C/C++ style
   parameters and printf style formatting string.





[Bugs Fixed in Build 118]
=========================

1  In a Memory, Register, or Watch region, double-click a value to edit then
   click on the Region Combo toolbar. The value is correctly deselected, but
   does not give focus to the Region Combo toolbar region type list down.

2  Using the wheel on a Wheel Mouse to scroll a window that does not have focus
   scrolls the window correctly, but the window remains without focus.

3  In Windows, associate the *.ELF extension with CodeScape and use quotes in
   the association string e.g. E:\Codescape\CodeScape.exe "%1". With CodeScape
   running, load an *.ELF program file by double-clicking it and the load fails.

   NOTE: This also caused a problem on the command-line with filenames that
         contained spaces.

4  When a session that has an Editor region is restored, and the last edited
   file cannot be found an incorrect error message appears.

5  Restoring a session sometimes, fails to correctly maximize a window.

6  The Access Key (underline) for the Tools, Options... menu item is not present.
   It should be an "O".





[Bugs Fixed in Build 117]
=========================

1  GPF in Expression Evaluator when evaluating GNU labels in a Disassembly
   region.





[Bugs Fixed in Build 116]
=========================

1  Metrowerks test version of LibCross. The fileserver startup code fails.

2  GPF when loading program file with a Source region open. This is due to 
   CodeScape attempting to display source for a file that does not have any.





[New features in Build 115]
===========================

1  Syntax highlighting in Source regions.





[Bugs Fixed in Build 115]
=========================

1  A "Files of type" filter (e.g. *.c;*.h) is required in the List Files in
   Program File dialog box.

2  The CodeScape Editor region should periodically check open files for changes.
   If the Editor region detects changes to a file it should prompt the user to
   reload it.

3  There is no status bar information for items on the Profiler's shortcut menu.

4  The Editor region does not behave as expected when using a Wheel Mouse.

5  CTRL+SHIFT+RIGHT ARROW does not select the last word of a file in the
   Editor region.

6  Right mouse menu options when selected do not make a session dirty.

7  SH4 Simulator, the F3 Stage of the floating point is asynchronous to the
   CPU operation, and is not modeled in this manner.

8  When an Editor region is active, Find, Find Next, and Replace are disabled
   on the Edit menu in an active but enabled on the region's shortcut menu.

9  Run CodeScape and load a program file. In Windows, associate the *.ELF
   extension is associated CodeScape then double-click an *.ELF program file.
   The Load Program File dialog box appears but CodeScape shows the name of the
   currently loaded file and not the selected file.

10 In a Source region tabs are converted to spaces i.e. if tab size 
   is set to 8 then each tab is replaced with 8 spaces, this is wrong. 
   A tab should fill with the number of spaces required to move to the 
   next tab position.

11 The tick box in the option dialog for Processing File Server Asserts 
   reads Process File Sever Asserts.

12 If the PC is changed (e.g. by using "Set PC to cursor" in disass), the 
Call Stack does not reflect this change.

13 The "Browse" & "Add" options in the Source File Search Paths dialog box 
   do not operate in a consistent manner.

14 Run CodeScape and do not load a program file or open a session. Open a new
   Editor region then change it to a Source region and CodeScape GPF's.

15 Symbol resolution for destructors e.g. ~foo.  Confusion between destructor 
   and bitwise not.






[New features in Build 114]
===========================

1  The Recent files list is the same in each Editor region open in a session.

2  If the same file is open in multiple Editor regions, any changes made in one
   Editor region are applied to the others. 





[Bugs Fixed in Build 114]
=========================

1  If a Hitachi low symbol element is qualified by a specific location, 
   for example symbol @ address, the expression evaluator can GPF.

2  The number of elements in the expression history is not saved for 
   global expressions.

3  When the expression evaluator calls Salvador for a basic type handle,
   Salvador returns a form of extended pointer handle. As a result, the
   expression returns an "unknown type".

4  Pref instruction in the Simulator produces incorrect timings.

5  Cannot effectively quit the Simulator "invalid memory timing" information
   dialog.

6  When copying and pasting in a Editor region containing a file with 
   mixed line end markers, CodeScape can GPF.

7  The find / replace dialog in the Editor region was appearing on screen purely 
   by chance, it could have appeared anywhere.






[New features in Build 113]
===========================

1  The Profiler lets you save the current profile results to a text file.

2  A progress bar appears when CodeScape processes the low symbol table from
   the Hitachi map file.

3  The Expression evaluator displays the explicit address for symbol scope or
   symbol location.
   The format is generated in the Choose a Static / Global Symbol dialog box and
   describes statics in local block scopes and the overload of functions.

   Syntax:
        class::fn @ address1      //  for  class::fn (int)
        class::fn @ address2      //  for  class::fn (float)

4  The Expression evaluator supports mangled names for local static variables
   generated by the Metrowerks compiler. The compiler changes the name to
   prevent name clashes. For example:

    void fn1(void)
    {
        static int s;      // variable 's' will be named something like 's$1' 
    }

5  Fileserver library (libcrs.lib Version 2.0.1) function names have changed as
   listed below. For more information, refer to the LibCross filesever
   documentation (libcrs_usergde.PDF).

      int debug_open (const char *filename, int flags);
      int debug_close (int file);
      int debug_read(int file, char *ptr, int len);
      int debug_write (int file, char *ptr, int len);
      int debug_lseek(int file, int offset, int origin);

      char * debug_getcwd(char *buffer, int maxlen);
      int debug_chdir(const char *dirname);
      int debug_mkdir(const char *dirname);
      int debug_rmdir(const char *dirname);

      int debug_findfirst(const char *filespec, struct SNASM_finddata_t *fileinfo);
      int debug_findnext(int handle, struct SNASM_finddata_t *fileinfo);
      int debug_findclose(int handle);

      int _ASSERT(int nFlag);

      int debug_printf(char *format, ...);
 



[Bugs Fixed in Build 113]
=========================

1  A source region can be opened by default, even though the feature is disabled
   in the options dialog.

2  Possible GPF when evaluating symbols from the Hitachi map file.

3  CodeScape appears to hang when processing large Hitachi map files.

4  The menu option Simulate Processor is not grayed when profiler is selected.

5  Start directory for file browse dialog is not consistent throughout
   CodeScape.
   
6  Text selection in the disassemble region slow.





[New features in Build 112]
===========================

1  Low level symbols searching added to the expression evaluator.
   Check-box option on the Symbol Completion dialog box (default is off).




[Bugs Fixed in Build 112]
=========================

1  Obtaining correct source handles in Hitachi assembler object with multiple
   section/source mappings.
   Provided file scope to multiple start/end address mappings.
   Modified StartAddr/EndAddr (scope) to cope with multiple source file to
   start, end address mappings.




[New features in Build 111]
===========================

1  Source annotation added to disassembly region (mixed region).
   Click Tools, Options... to enable / disable 
   Automatic source / disassembly switching.

2  Scope resolution in expression evaluator
   The C / C++ expression evaluator now supports the following symbol 
   resolution operations:

     $symbol                 The register symbol.

     symbol                  The symbol most in scope based on the current PC
                             or register if no scoped symbol found.

     filename:lineno         A non quoted filename followed by a optional 
                             line no.

     ::symbol                The symbol in either current file or global scope.

     ""::symbol              The quoted empty filename indicates the symbol 
                             in global scope only.

     "filename"::symbol      The quoted filename indicates the symbol only in 
                             that file scope.

     class::class::symbol    A fixed location symbol (either static or function 
                             name) in a specified class scope.

3  Search for static / global added to expression evaluator (Global button) and 
   inplace edit (ALT-G). This produces a list of all static and globals that 
   can have a unique scope qualification for the desired symbol.

4  Fileserver modifications:
     a) Remove the need for debug information in the fileserver library.
     b) Add the following functions:
             _getcwd()       Inspect & change the host file system default
                             working directory.
             _chdir()
             _mkdir()
             _rmdir()

             _findfirst()    Examine the contents of the host file system.
             _findnext()
             _findclose()

             _ASSERT()       Halt if parameter zero & prompt for user
                             interaction.
                             (Is enabled / disabled via Tools, Options... dialog.)

5  Hitachi map file can now be processed to produce a low symbol table.
   Enable / disable the option on a check-box on the Load Program File dialog.
NOTE: No progress bar is shown during a load.

6  Low symbol table information (including that generated from a Hitachi map
   file & that contained within the GNU or Metrowerks elf ) is now used
   throughout CodeScape to describe object for which no high level debug
   information is present.
     a) Profiler used to find function names.
     b) Label in disassembly.
     c) Call stack for detection of entry points to functions.
     d) Expression evaluator (including popup & watch window).
        All low symbol objects are described as labels with global scope.

7  Shinobi Interrupt Subroutine Filter can be selected from the Profiler's setup
   dialog. This filter is activated on a Profiler Start breakpoint. If the
   Profiler enables the filter the message "Shinobi Filter Enabled" is shown on
   the title bar.
NOTE: Requires new version of Shinobi library. 

8  Instruction Cache Line column added to the profiler.

9  A source region can be opened by default on starting a debugging session.
   Set the option by clicking Tools, Options...

10 Added an option to show floats as hex in a Register region.




[Bugs Fixed in Build 111]
=========================

1  Slow loading of dwarf/elf when processing function prototype information
   (GNU C++ only).

2  Added code to support references throughout expression evaluator, expression
   evaluator dialog & watch window. Only GNU and Metrowerks compilers produce
   debug information for references.

3  Recent file list in editor could cause file to be saved with incorrect name.

4  Open a file in the editor, make some changes, then select 'open' from the
   menu. You are prompted to save the current file, select No, the open file
   dialog then appears, select a file and click OK, you are now prompted if you
   wish to save the changes to the new file, even though it has not been loaded.

5  Drop down region combo-box disabled when in place edit in operation.

6  The editor region can gpf if a binary file is loaded.

7  Processor update rate is not remembered between sessions.

8  During Step run, the source window cursor moves correctly but the window does
   not move with the cursor.

9  Selection of text in the disassembly region was very inefficient (Slow).

10 Disassembling to a file, and searching disassembly were both highly 
   inefficient.

11 If an area of the disassembly region is selected, then start/end addresses
   for disassemble to file should be initialized to the selected region values.

12 Source Region "Goto Source File" broken on build 110.

13 Expression evaluator. When expanding a structure / class "typedefs" and
   "tag type" elements are displayed as member of class. These items are not
   real symbols and should be ignored.

14  "Out of scope" label incorrectly applied to fully qualified static.

15 The configure DA dialog resets the target on pressing OK even if settings 
   have not been changed.




[New features in Build 110]
===========================

1  Added Support for LibCross without shared variable.
   "libcross_1_0_2.zip" contains the source & test example for the modified 
   library.  The pre-built library "libcrs.lib" should not contain any debug 
   information. No new commands implemented.

RESTRICTION: The library will not work when called from SH4 user mode code.
This is because the fileserver code needs to access the ASE BIOS channels. To
call the channels (using either JSR <Stub Address> or TRAP #2) you need to know
your current operating mode or you can result in the SH4 manual resetting.




[Bugs Fixed in Build 110]
=========================

1  Start the profiler, go to the drop down region box and select a region, one
   of the profiler regions changes, this eventually leads to a GPF.

2  When an address is dropped into a source region, that is currently showing
   disassembly does not cause the window to revert to showing source if source
   is available at that address.

3  The profiler source and disassembly windows do not pick up the correct colors
   when initialized (should be the same as normal source/disassembly).

4  Right click in No Type window (without pressing Control key) should bring up
   generic window menu 




[Bugs Fixed in Build 109]
=========================

1  Metrowerks Support Improved.

2  DALI flags the following line in dali.cfg as an error.




[Bugs Fixed in Build 108]
=========================

1  Source does window change files correctly when some call stack levels are
   selected.

2  Close all windows sometimes locks when profiler running.




[New features in Build 107]
===========================

1  Making expression evaluator history global.

2  Command history feature for recent watched source files.




[Bugs Fixed in Build 107]
=========================

1  Call stack code reading improvements.

2  GPF when program file renamed when locked.

3  Local watch window with structures expanded do not size the scroll bar
   properly until the expanded structure is at the bottom.

4  COFF loading options should be stored with session not globally.

5  The debug stub is accessing invalid target memory that it shouldn't.





[Bugs Fixed in Build 106]
=========================

1  Information lost when auto change from source to/from disassembly.

2  Range checking on editing of shorts in Watch region.

3  Watch window GPF when accessing certain "pointer to types" no file loaded.

4  Save/Save As, I/O (build) window, it fails to show files of the same type
   (ext) in the selection region.





[New features in Build 105]
===========================

1  Transparency of software code breakpoint between different memory spaces.
   For example, when a breakpoint is set on code in a non-cached area such as
   0xac011000, the ase_sw_break (0x003b) is never removed. Cannot Run (F9) or 
   Step (F8 or F7) afterwards. The new feature requires the shared memory 
   definitions below to be added to dali.cfg.

[SEGA KATANA MasterSH4EVA_SharedMemory]
SharedMemory = 0x0C000000, 0x0CFFFFFF, Tag:B
SharedMemory = 0x8C000000, 0x8CFFFFFF, Tag:B
SharedMemory = 0xAC000000, 0xACFFFFFF, Tag:B

2  Print and Save to file are on all tabs in the Input / Output window.

3  Can now change DA boot mode within CodeScape.





[Bugs Fixed in Build 105]
=========================

1  Source Region auto-change improved. 

2  Script parameters are not being passed correctly from the command line.

3  GPF when processing Line Number Information on loading elf.

4  Increment / decrement do not work in register window.

5  If you stop a Step Run (animation makes no difference) you can't unstop 
   (lose trace history).

6  Run all processor(s) toolbar button not disabled.

7  The exception reporting dialog should not appear when profiling if the 
   profile buffer gets full. This is not a real CPU exception.

8  GPF, when you select from the drop down region type list.

9  Updating of region type drop down list whilst moving around windows.

10 GPF passing parameters to Java script.

11 Symbols (e.g. "main") appearing at the wrong address for Hitachi elfs.

12 Right mouse option "Edit Memory Value.." does not redraw correctly one 
   memory changed if window updates are off.

13 Profiler Improved.

14 Line termination counting gets confused for files that mix both Unix (LF)
   and DOS (CR, LF) in the same file.





[Bugs Fixed in Build 103]
=========================

1  Change keyboard shortcuts further improved.

2  Run to address.  The N instructions option has been removed.

3  Gnu COFF file scope problem. (The fileserver code looks up a known 
   symbol and expects to find it in the file scope SNASM.c.)

4  Lock up in call stack region due to infinite loop.

5  GPF in demangler for gnu COFF.

6  Profiler further profiler.





[New Features in Build 102]
===========================

1  Source window displays Disassembly if no source is available.

2  If CodeScape is running and you run and second instance, the
   command-line parameters from the second is posted to the first instance.

3  Drag and drop of text and data between windows.




[Bugs Fixed in Build 102]
=========================

1  Close / New session now:
        Deletes the p-file.
        Clears the load program file dialog.
        Remove any breakpoints.
        Clear any project build, file server & source path settings.

2  Call Stack frame pointer calculated incorrectly.

3  Profile improved.




[New features in Build 101]
===========================

1  VBScript & JScript are now available for macros.

2  Additional command line options.

3  Microsoft keystrokes.




[Bugs Fixed in Build 101]
=========================

1  Active PC cursor in source region not displayed correctly for 'for()' loops
   in highly optimized code.

2  On hard reset, CodeScape now reloads using the same options as requested in
   the Load Program File dialog.

3  Change keyboard shortcuts improved.

4  External editors command line parameters where not passed correctly.

5  Watch region placed an Expand [+] on pointer to unexpandable structures.

6  Source Paths containing MBCS characters. The Expression evaluator checked for
   MBCS and refuses to evaluate the expression. In the case of file pathnames
   MBCS is valid. C/C++ evaluator now accepts MBCS.

7  GPF when loading dwarf / elf with bad debug.

8  GPF in disassembler region.




[Bugs Fixed in Build 100]
=========================

1  "No Type" choice in region combo removed once a type have been selected.

2  Cancel button on session save.

3  "CTRL+F4" & "CTRL+F6" disappeared when dynamic shortcuts added.

4  Workshop toolbar & tab on input / output region fixed.

5  The default toolbar layout on initial startup.




[Bugs Fixed in Build 99]
=========================

1  <ALT-S> symbol complete does not work in the memory windows inplace edit
   field. The window overloads the generic support but does not fill in the
   correct pointers, so the generic function that processes <ALT-S> does not
   work.

2  Workshop tab on the Input / Output tab currently disabled.




[Bugs Fixed in Build 98]
=========================

1  An uninitialized handle in the keyboard accelerator mapping code, could
   occasionally be sent to windows. Windows sometimes GPF when given junk.

2  Cannot evaluate a symbol "InitSoundMultiUnit" in example BTCFG.elf.




[Bugs Fixed in Build 97]
=========================

1  Pressing CTRL + left mouse click in the build window causes a GPF.

2  Problems with a program called elf2bin inside makefile causing the CodeScape
   build task to fail (gpf).

3  SEA & DEA calculation is incorrect on certain instructions.

4  Hitachi C++, constructor & code in header files does not work correctly.

5  The Katana initialization screen stutters when booting on CodeScape 95 & 96
   but not on 94.

6  Debug definition for "int *paaNt[2]" is wrong it returns it as "int [2][2]".

7  Global variables being given file scope on symbol lookup, this causes the
   symbol to go out of scope when leaving the file where the symbol was
   initially entered.
