*** Modifications in version 1.27 *** - Fixed a bug that would cause the IDE to crash if an equation contained less close parenthesis than open parenthesis. - No longer supports Windows 95, 98, 98SE amd Me. *** Modifications in version 1.26 *** - Fixed a bug that would cause the Assembler to hang when trying to process an include directive that indicates the name of a file that does not exist or that can not be opened. - Modified the copy to clipboard function to add a line feed character after each carriage return character. Earlier versions ended each line with the carriage return character only. - Added support for simulating the dual dptr feature of the ADuC84x microcontroller. - Added support for simulating the EEPROM feature in the ADuC84x microcontroller. - Modified the Open and Save routines to resolve a problem with networked drives. The problem would not allow the opening of file on network drives where the file server did not support the date/time modified status. - Fixed a bug where the inequality != and <> were not being evaluated properly. *** Modifications in version 1.25 *** - Added the paged mode addressing for 8-bit address instruction to the simulator. This feature is enabled and disabled in the Simulator Option dialog by checking and unchecking the Use P2 for @Ri addressing option. - Modified the error reporting of undefined labels/symbols such that sections of the label containing a period (.) are included in the error message. - Modified the assembler to not convert lines to uppercase during assembly. This allows the actual case of a problem section of user code to be displayed in the error message. - Fixed the Sample.a51 sample file to remove duplicated sections. This also reduced the size such that it can be loaded by the evaluation verssion. - Added verification for use of the dot operator as in 20h.1 If the dot operator is specified and the following character is not a number an error is displayed. Also added code to verify that the operator value is between 0 and 7 (inclusive). - Modified the assembler to output a code overlap error only if the overlap occurs. Previous versions would output an error if an ORG specified an address that was less than the current program counter address. For example ORG 100 mov a,#0 ORG 90 mov b,#10 this example does not actually contain an overlap of code. However earlier versions of the IDE would generate an error. *** Modifications in version 1.24 *** - Modified the monitor service routine to use less CPU time. Previous versions could consume considerable CPU time. *** Modifications in version 1.23 *** - Added the soft break option. A soft break will not stop simulated execution but will update the simulation windows when that location in the code is reached. It can be thought of as a break and continue. *** Modifications in version 1.22 *** - Added support for the ONCE Loader in the download function. *** Modifications in version 1.22 *** - Modified the Open File dialog to default to the Workspace directory and to display this default directory in the dialogs title bar. - Fixed a bug that would cause the program to lock up when performing a search for text that does not exist in the document. - Modified the Window menu to only list source/edit windows. The behavior was also changed to move the most receintly selected edit window to the top of the window list. - Added support to download code into the Analog Devices ADuC8xx family of microcontrollers. *** Modifications in version 1.21 *** - Added an option to automatically update the simulation windows when running code. For more info see Options\Simulator. - Fixed a bug that would not generate an error when the destination address of an ACALL was outside the 2k page boundry. *** Modifications in version 1.20 *** - Fixed a bug that caused incorrect operation of timer 2. - Changed the Find In File operation to default to the Work Space directory if not previously specified. Once changed the directory name is saved in the workspace file. This helps remove the problem of unknowingly searching another projects directory. - Added the Total Cycles simulator watch value. The Cycles watch now reflects the cycles in the last step (into, over, run-to, etc) and the Total Cycles watch represent the total cumulative number of machine cycles that have been simulated since the simulator was first started or last reset or since the Total Cycle count was last cleared by user action. - Added the Assembler directive MEMTYPE to indicate what type of variables are being declared. This is used by the simulator to automatically select the resource type when adding watch variables from the editor. - Fixed an issue were when a file was oppened via a double click of the Open File dialog box the text in the new edit window would be highlighted. - Added support for paged data memory. - Added support for HighWord and LowWord commands. - Modified the delete operation such that a highlight block is not copied to the clipboard when deleted via the delete key. *** Modifications in version 1.19 *** - Fixed a bug that caused the SET command to generate an error when used more than once on the same symbol. - Fixed a bug that caused the Save All command to be disabled. - Modified the Save As command to allow the saving of .p51 files. *** Modifications in version 1.18 *** - Added support for a Virtual Button dialog. - Fixed a bug that prevented the Step Out (Shift-F11) operation from executing propery. - Added support for the DATA assembler directive. *** Modifications in version 1.17 *** - Enhanced editor word selection for left double click and Find In Files operations. - Fixed a memory leak that would eat up system resources. *** Modifications in version 1.16 *** - Fixed a bug that prevented the last character in a file from being processed in the assembler. This only possed a problem when the last character was needed in the assembly process. If the last character was a new line, space or comment then the error would not show up. - Fixed a bug in the simulator that prevented the alternate register banks from being used. When setting of Program Status Word bots 3 and 4 (RS0 and RS1) the displayed and simulated registers would not follow the changing of these bits. - Fixed a bug that prevented the stepping into of interrupt service routines after a Step Over operation had been performed. - Fixed a bug that prevented the Parity bit of the Program Status Word from being updated properly. - Fixed a bug that caused the Replace All operation to lock up the IDE requiring a Ctrl+Alt+Del to shut down the IDE. *** Modifications in version 1.15 *** - Fixed a bug that resulted in the incorrect evaluation of bit addressable memory locations using the dot operator. This error occurred when defining a bit address for memory locations at 0x80, 0x88, 0x90, etc. Previous version always assumed a bit address range of 0x00 - 0x7F (byte addressable memory locations 0x20 to 0x2F). - Modified the assembler evaluation parser to accept the following code segment memaddr equ 0d8h clr memaddr.1 this code now evaluates memaddr.1 to 0d8h + 1. The actual operation evaluates memaddr.n as if (memaddr < 0x30) value = (memaddr - 0x20) * 8 + n else value = memaddr + n Previously this type of construct would generate and error. - Fixed a bug that caused the IDE to abnormally terminate when pressing the Delete key within the Watch window when no entries are in the window. *** Modifications in version 1.14 *** - Fixed a bug in the assembler which would incorrectly build the hex, list and symbol file names for a project or source file that has periods in the directory names of the file path name. For example given a project file name C:\Projects\Dev03.01\Device.prj the generated hex file would be given the name C:\Projects\Dev03.HEX in stead of the proper path name C:\Projects\Dev03.01\Device.hex - Modified the IDE to save all modified documents before performing a Find in Files search. This insures the search results are synchronized to any file currently loaded in the editor. - Fixed an error message typo Changed: ORG cause and overlap of code. To: ORG caused an overlap of code. - Added the BIT directive. This directive provides a mechanism for defining bit related symbols. For example HoldPin BIT 80h Defines a symbol called HoldPin with a bit address of 80h (same as bit 0 of port 0). *** Modifications in version 1.13 *** - added a Register button to the Registration dialog box which assists in the process of copying a registration key file into the application directory. this supports the registration procedure received when licensing a copy of the IDE via Register Now. - fixed other minor bugs. *** Modifications in version 1.12 *** - fixed a bug in the editor (introduced in the previous bug fix) which would cause a GPF when search or search/replace operations are performed in the Down direction. - removed limit on number of lines that can be contained within the editor. the limit is now based on available system memory and is no longer a static value. - modified the editor to reallocate text buffer space as it gets low. previously the edit buffer was fixed to be 64k greater than the size of the file loaded. when creating a new empty document the buffer was limited to 64k during that edit session. - fixed a bug which would incorrectly scroll an edit windows when more than one editor was visible at once. when dragging the selection highlight from one window over another would result in scrolling of the incorrect window. *** Modifications in version 1.11 *** - added the ability to auto scroll and highlight using the mouse. this allows you to select text by dragging the mouse over the text and when it goes outside the active window the highlight is scrolled up, down, left or right depending on the position of the mouse pointer. - fixed a bug in the editor which would cause a GPF when search or search/replace operations are performed in the Up direction. - fixed a bug which would cause the IDE to GPF when viewing the external memory window. *** Modifications in version 1.10 *** - fixed a bug in the assembler which would not allow a bit addressable memory location to be specified as a value. for example the line SETB 22H would produce an assembler error. the assembler required either a predefined or user defined label be used. for example BIT_LOCATION EQU 22H SETB BIT_LOCATION the assembler now accepts the use of a immediate value for an address. - fixed a bug in the watch window which would not correctly interpret an address specified as an immediate value if the value was not preceded with the # symbol. for example specifying 8EH for the address would not work as desired. - fixed a bug (introduced in a previous release) which would cause the IDE to crash when pasting text near the top of the edit buffer. *** Modifications in version 1.09 *** - fixed cosmetic issues related to the About and Registration dialog boxes. - included the Users Guide (in Adobe PDF format) with the setup program. It is copied into the program directory during the installation process. The Acrobat Reader is not included in setup disk set. You will need to obtain it from the Adobe web site (www.adobe.com). *** Modifications in version 1.08 *** - Simulator C++ source code used char data type for byte operations. This caused some calculations to be incorrect as the compiler treated the char data type as signed. This bug has been fixed by changing to the BYTE data type. This bug would manifest itself in a number of places. The one which first exposed this bug was in the simulation of the SUBB instruction which would not always set the carry flag properly. - Lowered pricing on Professional version and renamed it the "Registered Version". Which now replaces the Standard Version. Now only two versions are available the Evaluation Version and the Registered Version. - The text buffer in the Registered Version is now 64k bytes larger than the file being loaded. - The text buffer in the Evaluation Version is now limited to 16k. *** Modifications in version 1.07 *** - Fixed a bug in the editor which could result in an infinit loop when deleting a block of text. - Changed the default project extension from A51 to P51. This provides a distintion between project and source files. - Fixed errors in the help file which incorrectly described the operation of the cjne instructions. - Increased the speed of the Find In Files command. This was done by optimizing the read operations of files being searched. - Added options to the Default Settings dialog box which allows you to turn off the generation of List, Symbol and Hex files. Turning the generation of these files off greatly decreases the assembly time. *** Modifications in version 1.06 *** - Fixed bug in Add Watch command which would incorrectly identify predefined bit symbols. The following procedure will allow you to select a predefined bit addressable symbol from the Add Watch Address drop down list 1. Open Add Watch dialog box. 2. Select the Bit format from the Format drop down list. 3. Select the Direct Memory resource type. 4. Select the predefined bit addressable symbol from the Address drop down list. 5. Select the OK button. - Added code which identifies user defined symbols for bit addressable direct memory locations. For example the line StatBit equ 20h.2 defines a symbol which addresses bit 2 of direct memory location 20h. When selecting this symbol (after assembling) for addition to the watch list it will be identified as a Direct Memory resource of Bit format with a Bit Index of 2. Note: The symbol being added to the watch list must have existed in a previous assembly of the current source code. If it was added after the last assembly process it will not be present in the user defined symbol list and as such will not be identified. This is because the symbol is identified as a bit label during the assembly process. - Text Edit buffer (in Professional Version) is now allocated based on the size of the file being loaded. The size of the buffer is set to 32k plus the size of the file being loaded. Previous versions had a text buffer of 64k regardless of the size of the file being loaded. This limited the size of files which could be loaded into the editor. Files greater than 65k could not be loaded into the editor. The text buffer in the Standard Version is limited to a 64k. The text buffer in the Evaluation Version is limited to 32k. - Only modified files are saved prior to a build or save command. Previously all open editor files were saved regardless of their modified state. Saving only modified files decreases the time to build a project. - Increased the efficiency of saving text files. This decreases the build time by decreasing the time to save files prior to building them. *** Modifications in version 1.05 *** - Added the keyboard accelerator F8 for Monitor Download command. - Added the Remove All Break Points command to the Simulate menu. - Resolved a problem were break points set in the simulator would get removed (and not restored) when assembling the project. Now the break points are restored once the simulator is restarted. - Resolved a problem were relative addresses using the program counter symbol ($) in an expression were evaluated incorrectly. For example when assembling the code sequence CJNE A,#10,$+5 MOV A,#1 relative address would be incorrectly calculated. In this example the relative offset should be 2. Which is 5 less 3 bytes for the CJNE instruction. The intent of such and construct is to skip the MOV A,#1 instruction if A is not equal to 10. *** Modifications in version 1.04a *** - Fixed bug in assembler which caused instructions using indirect addressing (like MOV @Ri,A) to be assembled improperly. This bug was introduced in a previous interim version. *** Modifications in version 1.04 *** - Modified the simulator to reset the cycle counter when performing a step into and step over operation. - Modified the editor word selection for double clicking, find/replace, and find in files operations such that ',' and '#' symbols are not included in the suggested dialog text. *** Modifications in version 1.03 *** - Fixed bug in simulation which incorrectly distinguished between Indirect and Direct memory regions above address 127. - Added the Save All toolbar icon. - Fixed bug in simulator which incorrectly displayed values in the DRAM and IRAM memory view windows. - Started adding 8051 instruction descriptions to the help file. See "Appendix A - 8051 Instruction Set" in the help index. Notice links to each listed instruction. *** Modifications in version 1.02 *** - Added monitor related menu commands - Download - transfer via com port the assembled code to the development board. - Start - opens a com port for communication with a development board. While running the monitor will update the CPU related windows to reflect last known state (as returned by the monitor) of the processor. - Reset - resets the development board connected to the monitor com port. - Stop - stops monitoring the com port for received status information and closes the port. *** Modifications in version 1.01 *** - Fixed bug, which when starting IDE via association (for example double clicking on source file in Windows Explorer) would result in an Windows Application Error dialog box being displayed. - Fixed bug which would cause the vertical scroll bar to be incorrectly positioned after a cut or paste operation. - Added the Simulation Result Resource Type to the Add Watch dialog. This resource type allows selection and display of simulation related status variables. Initial variables include - Machine Cycles : which indicates the number of instruction machine cycles that were executed in the last step or run operation. - Max SP : which indicates the maximum value that the Stack Pointer has reached during program simulation since the simulator was last started. - Fixed bug which would cause editor to incorrectly determine Ctrl, Alt and Shift key states if the IDE lost focus (dialog displayed or switched to another running program) after the key was pressed and before the key way released. - Added workspace related commands - Open Workspace - Save Workspace - Close Workspace - Recent Workspaces - Added the Arrange Windows command to the Window menu. - Moved the Recent File list to a Recent Files sub menu.