## Release 1.4 Build 2

##### General

- Support for AT90USB162, AT90USB646, AT90USB647, ATmega88P, ATmega168P.
- Support for AVRDragon.

##### CrossStudio General

- Properties window has been redesigned.
- Environment options dialog has been redesigned.
- Source control integration has been redesigned to work more efficiently than previous releases.
- Shift+Escape will now hide a dock site.
- Operating system file open dialog is now used.
- New memory usage window.
- Added FAQ and technical support links on the help menu.
- Help system works faster.
- Output window can now show utf-8 characters.

##### Compiler

- Structs with bitfields are at least the size of an int.
- 2D arrays in EEPROM go into EDATA0.
- Fixed assignment problem which caused scanf to fail.
- Interrupt functions now go into an ISR section.

##### CrossStudio Editing

- New menu and toolbar support for HTML editing.
- Added Go To Header to swap from header file to source file.
- Added Save Copy Of to create a new file from an existing file.
- Can now specify a codec to use when loading and saving files.
- New JAM/STAPL parsing/colouring.
- Function names are now coloured.

##### CrossStudio Project/Build

- New environment options to enable building using 1.5 binaries, libraries and source files.
- Compile now available on project explorer Folders.
- Link available on project explorer Projects.
- Preprocess action available on project Files.
- Fixed problem when locating the project explorer from the text editor when the same file is included more than once in a project/solution.
- Fixed crash when selecting properties on solutions with only one project.
- Better support for handling read-only project files.
- Removed linker property Include Startup Code.
- Added new debugger project properties Working Directory to specify the working directory in which debugIO operations are performed and Command Arguments to specify the argc/argv values supplied to the application.

##### Libraries

- Printf and scanf have been removed from the C library. There are two new libraries that implement printf and scanf using either the target or the host debugger. The particular implementation can be selected using the linker project property IO Library Name. The host debugger library also implements file and other standard IO functions.
- Added support for time.h and locale.h.
- Added debug_system, debug_vfscanf, debug_tmpnam, debug_vscanf, debug_fsetpos, debug_remove, debug_rename, debug_tmpfile, debug_ungetc, debug_vfprintf, debug_vprintf, debug_perror, debug_getenv functions to the debugIO library.
- Fixed return value of ctl_message_queue_receive and ctl_byte_queue_received.

## Release 1.4 Build 1

##### General

- New licence management system you will need to activate the software with your product key using Tools | License Manager.
- Support for AT90USB1286, AT90USB1287, ATmega164P, ATmega165P, ATmega169P, ATmega324P, ATmega3250P, ATmega325P, ATmega3290P, ATmega329P, ATmega48P, ATmega644P, ATtiny261, ATtiny44, ATtiny461, ATtiny84, ATtiny861.
- Support for AVRISP mkII.

##### IDE

- New debug registers window.
- New step into start debugging action.
- Subversion source code control support.
- New "Save Solution As" action.
- Help pages can now be displayed in an external HTML browser.
- Improved layout of New Project Dialog.
- Improved layout of Environment Options Dialog.
- Added Windows docking window (Ctrl+Alt+R) which replaces the Window > Windows dialog.
- Re-worked Debug Windows menu organisation.
- Added a quick document selector on Ctrl+Tab and Ctrl+Shift+Tab which mimics Windows Explorer Alt-tabbing.
- Now Ctrl+Tab and Ctrl+Shift+Tab follow Visual Studio tabbing behaviour so that you can quickly alternate between the same two documents.
- New Paste As String, Paste As HTML, and Paste As Comment to quickly paste copied content into program source code.
- Configurable dynamic visual brace, parenthesis, and bracket matching automatically which highlights the mate if it is visible on the screen.
- Increase Text Size and Decrease Text Size in text editor context menu now make the font size change permanent.
- Added text editor font selection to Tools > Options dialog.
- New Bookmarks window (Ctrl+Alt+K or View > Bookmarks): bookmarks are now permanent and the Edit > Bookmarks menu is updated to reflect the new bookmark capability.
- Numbered (permanent) bookmarks 1 through 9 can be dropped (Ctrl+K, 1 through Ctrl+K, 9) and jumped to (Ctrl+Q, 1 through Ctrl+Q, 9).
- New Find and Replace window (Ctrl+Alt+F or Search > Find And Replace) which contains a much enhanced find and replace capability, including project-wide, solution-wide, all-open-document, and directory (and subdirectory) find and replace.
- Exception trapping support is moved from Debug > Exceptions to the Breakpoints window to better highlight debugger and simulator capabilities and state.
- Help > Keyboard Map now has a Report feature to generate an HTML keyboard map report to an editor for saving or printing.
- New Autos window (Debug > Autos) that displays automatic variable and expression values for the current context. Note that this is not the same as the Locals window—the Locals window displays the values of parameters and local variables in the currently selected frame, the Autos window displays globals, locals, and expressions for the context around the current and previous execution points.
- New environment option to hide the Output window after a successful build (which is now the default).
- New option to hide the Output window after a successful download (which is now the default).
- Fixed phantom windows reappearing in a dock site after the final dock window in a dock site was closed.
- Added new Undo and Redo grouping styles in Tools > Options: Individual words (now the default), Individual characters (the default up to v1.5 ), and Whole of last insertion (like Microsoft Word and many other Office applications).
- New code editor key sequences: Delete Word (Ctrl+K, T) to delete the word under the cursor, Delete to Start of Line (Ctrl+K, Backspace), Delete to End of Line (Ctrl+K, Ctrl+K), and Select Word (Ctrl+Q, T).
- In addition to the middle mouse button bringing up the Go To Function menu, Alt-Middle will bring up the Go To Header menu.
- Go To Definition (Ctrl+Q, D) will move the cursor to the definition of the variable or function under the cursor and drop a navigation marker.
- Go To Declaration (Ctrl+Q, E) will move the cursor to the declaration of the variable or function under the cursor and drop a navigation marker.
- The code editor now allows additional per-language user-defined keywords. Set these up in the Languages pane of the Tools > Options dialog.
- Tools > Options now opens at the previously-selected page rather than always at Environment/General.
- Fixed problem single stepping SP-relative function calls.
- Removed Include Startup Code property.

##### Assembler

- Removed undocumented .safe directive.

##### CTL

- New byte queues that are a specialisation of message queues.
- The use_timeout parameter to blocking functions can now specify an absolute or a delay time period.

## Release 1.3 Build 1

##### General

- Support for AT90CAN32, AT90CAN64, ATmega1280, ATmega1281 and ATmega640.
- Tested with JTAGICEmkII firmware versions 0x401-0x0403 and 0x407-0x0413. Seems to be a bit more reliable than the previous release.

##### IDE

- Added vector section name in output section properties.
- Number of projects in Solution name is now updated in Project Explorer when projects are added or deleted.
- Debug start actions now available on projects in the Project Explorer.
- When adding files to a project that are children of the $(StudioDir) directory then $(StudioDir) is used in the filepath.
- Addresses in memory map files can be offsets from the enclosing address (or offset) by prefixing the address with a +.
- Registers window keeps track of open groups.
- New project wizard resized.
- JavaScript TargetInterface now has a readBinary method.
- Windows dialog is now a more capable docking window.

##### Compiler

- Added flex array support in structures.
- Fixed auto-parameter widening with narrow types.
- Fixed non-simple binary assignment when LHS has side effects.

##### C Library

- Supplied build of missing _c functions.
- Fixed __float32_to_int32 so that truncated-to-zero results are returned as zero.
- Changed crt0.asm so interrupts are disabled and restored when reading and writing EEPROM.

##### CTL

- CTL projects are now created that reference the source code of CTL. This allows the threads window to work correctly when debugging information is enabled.
- New CTL variable ctl_timeslice_period, when non-zero implements timeslicing.
- New file in $(StudioDir)/targets/ctl_avr.c that implements the CTL functions ctl_start_timer and ctl_get_ticks_per_second. This file also implements the board specific CTL functions ctl_board_init, ctl_board_set_leds and ctl_board_on_button_pressed.
- Updated default CTL application.

## Release 1.2 Build 1

##### General

- Support for __eeprom allocated variables.
- libusb now installed by CrossWorks installer or CrossStudio executable.
- Linux now supported.
- Support for ATmega644, ATtiny85 and ATtiny25.
- Tentative support for AT76C device.

##### IDE

- Added "Auto Disconnect" environment option. This causes a disconnect/reconnect on stop/start debugging and may make JTAGICE mkII debugging a little more reliable.
- Single stepping on ATmega AVR's now uses a hardware breakpoint and is faster as a consequence.
- Moved the fuse bits and lock bits editor onto the target context menu.
- Disconnect and disable debugWIRE now on the target context menu.

##### C Library

- Target header files now define both the bit number and the bit mask for hardware bit definitions.
- Supplied missing _c header files.

## Release 1.1 Build 1

##### General

- Support for V2 architecture Tiny devices that have no multiply instructions.
- Support for devices with more than 128K of code memory and 22-bit program counters.
- Support for JTAGICE mkII, STK500 High voltage programming, STK500/AVRISP ISP programming.
- JTAG ICE target properties have changed to be compatible with JTAGICE mkII.
- Simulator now generalised to support full AVR instruction set and can be configured based on a device type.
- Added support for all AVR microcontroller devices. C compiler support for architecture V2 and above.
- Fuse bits and Lock bits editor redesigned.
- Support for creating bootloader executables and debugging with JTAG ICE.

##### IDE

- Now using the Qt 3.3.4 DLL which has the QString() constructor bug fixed. Previously, Qt 3.3.2 had a bug causing CrossStudio to crash randomly.

##### Compiler

- Support for 8K, 128K, and 8M devices with -m8k, -m128k, and -m8m switches.
- Fixed register spill bug.

##### Linker

- Support for 8K, 128K, and 8M devices with -m8k, -m128k, and -m8m switches.

##### Compiler Driver

- Support for 8K, 128K, and 8M devices with -m8k, -m128k, and -m8m switches.

##### C Library

- Support for tiny devices with no multiply instructions and for parts with more than 128K of code memory.
- Fixed problem printing values in wrong field width when supporting output widths greater than the natural integer width.
- Fixed indeterminate behaviour when rounding the last bit of a quotient.

##### Known Problems

- Debugging of boot loaders with JTAGICE mkII is problematic.
- When stop is pressed and debug IO is occuring (e.g. when using debug_printf) JTAGICE mkII may return an invalid PC and sometimes lock up the JTAGICE mkII.
- Continuous usage of OCDR register by the application can cause CrossStudio to lock up.
- Usage of the ISP mode of JTAGICE mkII with debugWIRE devices is problematic.
- Disabling the debugWIRE fuse on disconnect is problematic.

## Release 1.0 Build 1

##### Known Problems

- No known problems.

##### Help System

- The help system content is not yet complete. We are converting our printed matter to XHTML as an ongoing activity.