***************************************************************** Dynamic C for Rabbit Release Notes ***************************************************************** ***************************************************************** VERSION 10.46 NEW FEATURES - Supports the BL4S100 and BL4S150 single board computers. - Supports the BL4S310 and BL4S230 single board computers. - Supports the ZB firmware on all XBee-enabled products (e.g., RCM4510W, BL4S230, BL4S100, and BL4S150). BUG FIXES Compiler Bugs Library Bugs - Fixed error in RABBITWEB.LIB that came up when RABBITWEB_VERBOSE was defined. Gui Bugs Sample Program Bugs Debugger Bugs Command Line Compiler Bugs IOConfig Utility Bugs OTHER FUNCTIONAL CHANGES ***************************************************************** VERSION 10.44 NEW FEATURES - Supports the BL4S110 and BL4S160 single board computers. - Supports the MiniCore RCM5700 core module. BUG FIXES Compiler Bugs Library Bugs - Defect #27362 fixed. USE_SMTP_AUTH should be defined by the user, and not the library. Gui Bugs Sample Program Bugs Debugger Bugs Command Line Compiler Bugs IOConfig Utility Bugs OTHER FUNCTIONAL CHANGES - BLxS2xx: More TCP/IP and Wi-Fi sample programs added. - Wi-Fi: passphrase.c moved from the RCM4400W and RCM5400W sample directories to the main WiFi sample directory. - XBee Libraries: Dynamic C 10.44 includes support for beta ZigBee firmware on XBee modules. If you want to explore the new firmware, be sure to review the known issues listed at the end of Samples/XBee/README_XBEE.TXT. The next release of Dynamic C will include release versions of ZigBee firmware and X-CTU utility that address those known issues. ***************************************************************** VERSION 10.42 NEW FEATURES - Supports the BL4S200 and BL5S220 single board computers. BUG FIXES Compiler Bugs Library Bugs - Defect #26938 fixed. For Wi-Fi network interfaces, pd_powerdown() and pd_powerup() will now return valid return codes. Gui Bugs Sample Program Bugs - Defect #27179 fixed. ssl_zimport.c now has calls to tcp_reserveport to improve performance. In particular, this fixes problems with IE7 under Windows Vista. Debugger Bugs Command Line Compiler Bugs IOConfig Utility Bugs OTHER FUNCTIONAL CHANGES ***************************************************************** VERSION 10.40 NEW FEATURES - Supports the RCM4300 and RCM5400W family of core modules. - The Wi-Fi libraries now support roaming. - Please see the README.TXT for more information about the features included in this release. BUG FIXES Compiler Bugs Library Bugs - Defect #22372 fixed. In RNET.LIB, the rn_find() function now correctly supports searching for RabbitNet devices by specified port(s). - Defect #23055 fixed. HDLC_PACKET.LIB now uses HDLC_INT_LEVEL for all ipset calls (some calls were hard-coded to 1). - Defect #23787 fixed. XBEE_API.LIB now properly includes code inclusion guards. - Defect #23987 fixed. All multicast UDP frames that have a destination address that the network stack is not listening for are now properly dropped. - Defect #24252 fixed. Switching between Wi-Fi encryption types at runtime sometimes failed. This now works correctly. - Defect #24366 fixed. TCP connections to peers with large receive windows no longer time out or reset. - Defect #25283 fixed. The XBEE_API.LIB's _zb_Alloc_apif() function now returns NULL instead of 0 to eliminate a compile time warning. - Defect #25307 fixed. A PPP crash due to a possible stack imbalance in SERLINK.LIB's common ISR has been eliminated. - Defect #25369 fixed. Eliminated a compile time error due to auto / const conflict in RCM4XXX.LIB's digInAlert() function. - Defect #25452 fixed. The FTP server could prematurely abort sending files of unknown size (e.g., if the file being sent is being generated on-the-fly). - Defect #25481 fixed. Rabbit 4000 Ethernet driver sometimes stopped transmitting when there are a large number of collisions. - Defect #26136 fixed. Wi-Fi interface's link LED and link status (as reported by ifpending(), for example) now match. Also fixes problem with the link not being reported as up when configured for multiple encryption types but connecting to an open Access Point. Note that in most cases, an incorrect encryption key will cause the link to not come up; however, for WEP, the link will be reported as being up even though the key is incorrect. This is because WEP does not provide a way of determining that an incorrect key has been used. - Defect #26204 fixed. Incorrect #asm block accesses of the auto int statusbyte variable in the Lib\RabbitNet\RNET_KEYIF.LIB library's rn_keyProcess() function have been fixed. As a result of this fix, the Samples\RabbitNet\RN1600\zmenu.c sample in particular now works correctly when making keypad menu selections. - Defect #26587 fixed. For boards using the Rabbit's built-in Ethernet MAC (RCM40xx), pd_powerdown() and pd_powerup() can now be used to turn the MAC off and on. - xbee_api.lib: zb_reply() now uses correct cluster ID in response. Gui Bugs Sample Program Bugs - Defect #26509 fixed. WiFiScanAssociate.c will now switch Access Points properly when the new AP has the same WPA passphrase but different SSIDs as the old AP. - Defect #24086 fixed. Fixed sleep time calculations in SleepMode and SleepMode2 samples (in Samples/RCM4510W/ZigBee/). - Defect #24093 fixed. The Samples\Rabbit4000\ic_test.c standard sample program now scales its TAT8R register value appropriately, based on the Rabbit board's actual freq_divider value. - Defect #25398 fixed. updpages.c and ftp_fat.c samples now work with FTP clients (like FileZilla) that establish multiple, simultaneous connections. Debugger Bugs Command Line Compiler Bugs IOConfig Utility Bugs OTHER FUNCTIONAL CHANGES - RCM4400W: The wifi_ioctl() function and related compile-time macros used to configure the Wi-Fi interface have been deprecated. New commands for ifconfig() replace the wifi_ioctl() commands; view the ifconfig() function help for details on the new IFS_WIFI_* and IFG_WIFI_* commands. View the function help for TCPCONFIG for information on the new IFC_WIFI_* compile-time macros. - Removed current versioning comments and macros from the following former module libraries that are now bundled with Dynamic C (deleted macro, affected libraries): Modbus (_MODBUS_VERS, modbus_master.lib, modbus_slave.lib); PPP (_PPP_VERS, chat.lib, modem.lib, ppp.lib, pppoe.lib); RabbitWeb (_RABBITWEB_VERS, rabbitweb.lib, rweb_support.lib); SNMP (_SNMP_VERS, mib.lib, snmp.lib); uC/OS-2 (_UCOS2_VERS, os_cfg.lib, os_flag.c, os_mbox.c, os_mem.c, os_mutex.c, os_q.c, os_sem.c, os_task.c, os_time.c, ucos2.lib). - XBee Libraries: created xbee_config.lib for configuration options. - XBee Libraries: now passes payload length as second parameter to end point functions (see updated Samples/ZigBee/EndPoint.c). - XBee Libraries: Removed 1x18 firmware and added 1x41 firmware as default. - Utilities/X-CTU now includes the installer for X-CTU v5.1.0.0 and ZNet 2.5 1x41 firmware. ***************************************************************** VERSION 10.21 NEW FEATURES - Supports the RCM4050 and RCM4300 family of core modules - Improvements to the RCM4510W/Zigbee library - Networking parameters are now configurable in Options/Project Options/Defines or in user code. - STDIO_DEBUG_SERIAL mode on serial port A now defaults to "no character assembly during break." (I.e., continuous null characters are no longer generated when no cable is attached.) - Please see the README.TXT for more information about the features included in this release. BUG FIXES Compiler Bugs - Defect #21428 fixed. Structs of any size can now be added to the watch window. The amount of data actually read from the target will be limited by the size of Watch memory defined in the Environment Options. - Defect #21442 fixed. Leading blanks are now ignored in lib.dir entries. - Defect #21614 fixed. The memory leak in the Environment Options dialog has been fixed. - Defect #21773 fixed. Single step debug cursor placement for library code had been off by the number of blank lines after the start of library function descriptions. - Defect #22027 fixed. Trailing blanks are now ignored in lib.dir entries. - Defect #23043 fixed. WiFi ad-hoc beacon time reduced from ~26 seconds to ~100 ms. - Defect #80867 fixed. The compiler now requires forward declared cofunctions to be prototypes (This was actually fixed in 10.09). Library Bugs - Defect #20120 fixed. Defining USE_FAR_LIB_API was causing code crashes on programs which enabled ethernet on 4xxx cores with ASIX hardware. - Defect #20238 fixed. UCos-II samples (ucosdemo3.c, ucosdelreq.c, JackRab\UCOSJRAB1.C) complain about overriding stub functions in the library. Added pragmas that can be uncommented to quiet the warnings. - Defect #20248 fixed. dhcp_check_lease did not have a case for DHCP_ST_EXPIRED. Added. - Defect #20417 fixed. Root (char *) promoted to (far char *) now prints correctly when using printf("%ls", far_var). - Defect #20472 fixed. PPP serial more reliable with bad link quality. - Defect #20559 fixed. Grep dialog no longer stays on top when switching to another application during a time consuming grep. - Defect #20818 fixed. __con_convert_num_to_iface function was updated to take into account that wifi interfaces are IF_WIFI0 and IF_WIFI1 and that the Rabbit 3k/4k have IF_PPP4 and IF_PPP5. - Defect #20819 fixed. __con_convert_iface_to_num function was updated to take into account that wifi interfaces are numeric interfaces 2 & 3 so now PPPoE and PPP interfaces get moved down 2 spots. However, the zconsole.lib still does not support wifi interfaces. - Defect #20835 fixed. In the con_show_multi function when ifconfig attempts to get IFG_PPP_SENDEXPECT and IFG_PPP_HANGUP, there is no checking for if NULL is returned. Added conditional statement to check for NULL. - Defect #20934 fixed. Resetting an FTP socket should no longer cause bad FTP state (reported on Windows XP FTP server) - Defect #20939 fixed. Samples program "samples\tcpip\zserver\filesystem.c" compiles correctly. - Defect #20941 fixed. Zserver.lib was not filling in FAT partition info to caller, causing problems with unmount/mount operations within filesystem.c sample program. - Defect #21049 fixed. When RS232.LIB's serXopen functions are called with a baud parameter lower than can be actually achieved on a Rabbit 4000-based board, the lowest possible baud rate is now always set. Note that the serXopen functions' result indicates whether or not the achieved baud setting is within 5% of the requested baud parameter. - Defect #21226 fixed. Long HTTP headers no longer cause the HTTP connection to abort. This was causing problems on Internet Explorer under Windows Vista. - Defect #21426 fixed. Function help is now available for the _xalloc function. - Defect #21467 fixed. Fixed an off-by-one error in setting the RTS/CTS threshold in the WiFi driver. - Defect #21470 fixed. Fixed problems with setting and interpreting the fragmentation threshold in the WiFi driver. - Defect #21674 fixed. When using MS_TIMER for delays and timeouts, the elapsed interval should always be compared to the desired period, instead of direct comparisons between MS_TIMER and an end time to avoid errors when MS_TIMER rolls over. - Defect #21725 fixed. The error log's ERRLOG_PHYSICAL_ADDR macro value is now correctly defined in error log supporting compile modes. - Defect #21780 fixed. For FLASH_COMPILE or RAM_COMPILE mode programs compiled to 16-bit flash and RAM memories, A19 is no longer inverted in the MB2CR or MB3CR quadrants. Note that the A19 inversion is of no consequence to memories of size 256 KWords (512 KBytes) or smaller. - Defect #21828 fixed. A copy of the system macros table is now available for use by the _GetSysMacro* functions in "Code and BIOS in RAM" compile mode. - Defect #22044 fixed. When DCRTCP is not defined, ZCONSOLE.LIB no longer #uses the network configuration save support library. This eliminates "XXX is out of scope / not declared" error messages when compiling the basicconsole.c or loginconsole.c standard samples. - Defect #22050 fixed. When resolving multiple host names that are a mix of "dotted decimal" and name-type URLs, DNS.LIB's DNS request counter is now always incremented and decremented in a balanced fashion. - Defect #22054 fixed. The non-API repl_getCurrentNetworkConfig library support function is now properly prototyped and exposed for use by other library API functions. This eliminates the "Undefined (but used) global label" error when compiling the userblock_tcpipconsole.c standard sample. - Defect #22055 fixed. Fixed a problem where changing SSIDs would sometimes not trigger a new association with the WiFi driver. - Defect #22068 fixed. Incorrect comparisons of types char vs. NULL in ZCONSOLE.LIB's con_set_param and con_set_tcpip_debug functions have been corrected to compare char vs. char. - Defect #22091 fixed. RS232_NOCHARASSYINBRK now turns on "no character assembly in break" while in STDIO_DEBUG_SERIAL mode. If STDIO_DEBUG_SERIAL == SADR on a Rabbit 4000 (or greater), this is now the default behavior. - Defect #22094 fixed. The redundant xrelease() function help header is removed from XMEM.LIB. - Defect #22095 fixed. Modified documentation for rand16_range(). - Defect #22255 fixed. By default, excluded flash driver variables and code which are not normally necessary in "Code and BIOS in RAM" compile mode. - Defect #22730 fixed. Compilation errors in samples/LowPower/lp_ping.c and lp_smtp.c - Defect #22910 fixed. SYS.LIB's useMainOsc and 32khzOsc functions now check the current oscillator(s) setting to avoid making unwanted oscillator setting changes. The unwanted settings changes particularly affected programs run in debug no-poll mode, preventing Dynamic C from detecting end-of- program. - Defect #22945 fixed. The Nflash library had compiler errors when NFLASH_DEBUG switch was enabled. - Defect #22950 fixed. The ADC library for RCM4xxx modules had unsigned int return values for several functions that needed a signed value. This caused negative error conditions to produce incorrect large positive readings back to the caller. - Defect #22995 fixed. ADC calibration fails with non-default gain running adc_cal_chan.c or adc_cal_all.c on RCM4xxx core. - Defect #23075 fixed. Incorrect calibration of analog channel on RCM4100. - Defect #23095 fixed. When USE_FAR_LIB_API or USE_FAR_STRING_LIB was defined, several "call memcpy" asm instructions in ASIX.LIB, REALTEK.LIB and SMSC.LIB were changed to "call _f_memcpy" inappropriately. - Defect #23133 fixed. The SxER registers and SxERShadow variables are now all initialized to their HW reset state on BIOS startup. In particular, this fixes STDIO redirection problems due to reliance on uninitialized shadow register values. - Defect #23240 fixed. ioconfig_switchecho.c, double output possible due to shared variable between costates. - Defect #23256 fixed. When using TICK_TIMER for delays and timeouts, the elapsed interval should always be compared to the desired period, instead of direct comparisons between TICK_TIMER and an end time to avoid errors when TICK_TIMER rolls over. - Defect #23552 fixed. Switching power modes with set_cpu_power_mode() could sometimes cause a crash on the RCM40xx series core modules. - Defect #23638 fixed. sspec_readvariable() in ZSERVER.LIB could return incorrect values for a variable of type INT8. - Defect #23720 fixed. The help description for sspec_setfvlen() in ZSERVER.LIB has been corrected (NULL terminator should be included in PTR16 lengths). - Defect #23806 fixed. Rabbit 4000's HDLC_PACKET.LIB asm instruction mnemonic "pd" typo has been corrected to read "ld" instead. - Defect #23818 fixed. On the RCM4400W, calling tcp_tick() no longer corrupts IX register content. This fix allows RCM4400W applications that call tcp_tick() within costates or cofunctions to work correctly. - Defect #81642 fixed. HDLC driver had an incorrect check for CPU being used. - Defect #81697 fixed. _WriteFlashByteX and _WriteFlashWord no longer cause a stack imbalance when a write into the user/System ID block is detected. Gui Bugs - Defect #21215 fixed. Project changes can now be made after compiling and before returning to edit mode. - Defect #21315 fixed. Characters less than 0x20 now show as '.' on the right side of dump windows. - Defect #21763 fixed. Grep Progress window is now a fixed size and once a grep begins another cannot be started until the first ends. - Defect #21879 fixed. Edit window misbehavior from selecting Message window items is fixed. - Defect #81439 fixed. Grep in files with *.* mask now runs without error. - Defect #81450 fixed. Copy-and-paste containing tabs now works properly. (Note that this bug was actually fixed in Dynamic C version 10.09.) - Defect #81483 fixed. Project open/close will now cancel if modified file close query is cancelled. (Note that this bug was actually fixed in Dynamic C version 9.30.) - Defect #81689 fixed. Dynamic C: Serial No. Dialog now appears center-screen on a dual-monitor system. Sample Program Bugs - Defect #20941 fixed. Zserver.lib was not filling in FAT partition info to caller, causing problems with unmount/mount operations within filesystem.c sample program. - Defect #21800 fixed. Unused input capture ISR code is removed from the qd_phase_10bit.c standard sample program. - Defect #22730 fixed. The \Samples\LowPower\lp_ping.c and lp_smtp.c were missing configuration for RCM4xxx modules causing compilation errors. Configuration for all released RCM4xxx modules added. - Defect #22804 fixed. The \Samples\SysClock\test_32khz_3000.c standard sample has been renamed to test_32khz_3000_4000.c and updated with support for blinky LEDs on the RCM4xxx prototyping board. - Defect #22805 fixed. The Samples\SysClock\Test_Osc3000.c standard sample has been renamed to Test_Osc3000_4000.c and updated accordingly to work with a selection of both Rabbit 3000 and 4000 targets. - Defect #23004 fixed. The \Samples\Filesystem\FAT\fmt_device.c sample did not format additional partitions correctly, only partition 0. - Defect #23001 fixed. The \Samples\Filesystem\FAT\fmt_device.c sample had erratic partition mounting behavior after formatting a partition other than partition 0. - Defect #22986 fixed. The \Samples\Filesystem\FAT\fmt_device.c sample did not handle uncondition format of device properly with multiple partitions on the device. - Defect #23202 fixed. For PPP sample programs which define DIALOUT_SENDEXPECT, added 1.5 second pause between modem reset and dial out commands for those modems which respond with an early OK to their modem reset command. - Defect #23457 fixed. The Samples\UserBlock\idblock_report.c standard sample now includes RCM4400W board information. - Defect #23645 fixed. Corrected a logic error in checking the high temperature in Samples\TCPIP\HTTP\form1.c . - Defect #81695 fixed. In Samples\RTCLOCK\SETRTCKB.C, added check for years entered as more than 2 digits. Added date range notification to stdio window. Debugger Bugs - Defect #22163 fixed. Only one clear breakpoint command sent from compiler side. Command Line Compiler Bugs - Defect #22083 fixed. Typo corrected in help to Poll target while running. IOConfig Utility Bugs - Defect #22147 fixed. The IOConfig utility now sets up serial port D DMA correctly and the serial port works correctly after calling the generated function. - Defect #23088 fixed. Erroneous warnings about other serial ports' setup interfering with debugging via serial port A have been eliminated; valid warnings occur when appropriate. OTHER FUNCTIONAL CHANGES - The Rabbit 4000 CPU's advanced 16-bit memory mode has a defect which affects ioe instructions (auxiliary I/O, external I/O) and self-timed chip select. The Dynamic C BIOS has been updated to work around this ioe defect on affected boards, all of the RCM40xx family. If absolute top performance is required and the User is certain their application is unaffected by the ioe bug, the work around can be disabled by adding the __ALLOW_16BIT_AUXIO_DEFECT macro into Dynamic C's Project Options Defines Box. See the Rabbit 4000 Users Manual Appendix B (errata section) or TN255 for complete details. - The RCM4xxx board-specific ioconfig_switchecho.c sample and related RCM4*_IOCONFIG.LIB libraries are updated to also demonstrate configuration of serial port D with DMA enabled. - The wifi_ioctl() API function has slightly different semantics for some commands. In particular, many of the commands require that the WiFi network interface is brought down before the command is accepted. See the function help (Ctrl-H) for wifi_ioctl() for details. Application code should ensure that the return code from wifi_ioctl() is checked after each call. - WiFi Protected Access (WPA), with Pre-Shared Key (PSK), is now available for applications which require robust privacy and integrity. In order to use WPA/PSK, define WIFI_USE_WPA plus a suitable ascii passphrase or hexadecimal key, and define _WIFI_WEP_FLAG to WIFICONF_WEP_TKIP. See samples\rcm4400w\tcpip\pingled_wpa_psk.c for more details. More documentation on the relevant macros may be found by performing a Function Lookup (Ctrl+H) on TCPCONFIG. - In order to be acceptable to various countries' regulatory authorities, there is an improved API for customizing the WiFi library to conform to the radio regulations. The wifi_ioctl() API function has new commands to query and set the channel list and transmit power. The commands are WIFI_MULTI_DOMAIN which allows automatic configuration via 802.11d capable access points; WIFI_COUNTRY_SET which allows one of several known regulatory domains to be configured; WIFI_COUNTRY_GET which queries the current regulatory domain information. ***************************************************************** VERSION 10.11 NEW FEATURES - New sample TimerC\TIMER_C_INT.C demonstrates how to set up and use the timer C interrupt. - Support for sorting far arrays using qsort (_f_qsort) with a comparison function that accepts far arguments - Networking parameters are now configurable in Options/Project Options/Defines or in user code. - STDIO_SERIAL_DEBUG mode on serial port A now defaults to "no character assembly during break." (I.e., continuous null characters are no longer generated when no cable is attached.) BUG FIXES Compiler Bugs - Defect #21139 fixed. The intermittent "Internal Error: Expression Temporary Stack Usage" message no longer appears when recompiling a sample. - Defect #21483 fixed. "Internal Error: Expression Temporary Stack Usage" message no longer appears when adding a new watch expression after experiencing an error in a previous watch expression. Library Bugs - Defect #20101 fixed. I2C.LIB had an incorrect anonymous header. - Defect #20248 fixed. dhcp_check_lease did not have a case for DHCP_ST_EXPIRED. Added. - Defect #20272 fixed. The ZWORLD_RESERVED_SIZE macro is now correctly defined to 0 for RCM4xxx boards that do not have analog I/O calibration constants stored in their User block. - Defect #20472 fixed. PPP serial more reliable with bad link quality. - Defect #20570 fixed. Targetless compile to BIN file of ADC-using application for RCM4000 w/ ADC now works correctly. - Defect #20761 fixed. DMA.LIB's DMAalloc function #GLOBAL_INIT section now clears possible residual DMA setup following a soft reset. This prevents the DMAflagSetup functon from incorrectly reporting busy status following a soft reset. - Defect #20818 fixed. __con_convert_num_to_iface function was updated to take into account that wifi interfaces are IF_WIFI0 and IF_WIFI1 and that the Rabbit 3k/4k have IF_PPP4 and IF_PPP5. - Defect #20819 fixed. __con_convert_iface_to_num function was updated to take into account that wifi interfaces are numeric interfaces 2 & 3 so now PPPoE and PPP interfaces get moved down 2 spots. However, the zconsole.lib still does not support wifi interfaces. - Defect #20835 fixed. In the con_show_multi function when ifconfig attempts to get IFG_PPP_SENDEXPECT and IFG_PPP_HANGUP, there is no checking for if NULL is returned. Added conditional statement to check for NULL. - Defect #20934 fixed. Reseting an FTP socket should no longer cause bad FTP state (reported on Windows XP FTP server) - Defect #21021 fixed. In SYS.LIB, the setClockModulation() function is now declared nodebug. - Defect #21325 fixed. The function help for SYS.LIB's _sysIsSoftReset function now correctly declares the function's type to be void. - Defect #21422 fixed. Xalloc regions in battery backed SRAM are now correctly flagged as such on boards capable of "Code and BIOS in Flash, Run in RAM" compile mode. - Defect #81356 fixed. RS232.LIB serXgetc function help return value descriptions are improved, both possible reasons for a failure result are listed. - Defect #81669 fixed. ADC_ADS7870.LIB now generates helpful warning or error messages when ADC_ONBOARD or ADC_RESOLUTION macros are not defined or defined incorrectly. - Defect #81693 fixed. PWM.LIB now generates helpful error messages for boards that do not have PWM functionality available. - Defect #81727 fixed. OP72xx.LIB serMode function now always returns the appropriate result code. - Defect #81421 fixed. Pinging Rabbit from gateway router is no longer problematic. - Defect #22091 fixed. RS232_NOCHARASSYINBRK now turns on "no character assembly in break" while in STDIO_DEBUG_SERIAL mode. If STDIO_DEBUG_SERIAL == SADR on a Rabbit 4000 (or greater), this is now the default behavior. Sample Program Bugs - Defect #20939 fixed. Samples program "samples\tcpip\zserver\filesystem.c" compiles correctly. - Defect #21019 fixed. RCM40xx and RCM41xx series boards do not have pull-ups installed on the serial Rx lines, so most RCM40xx and RCM41xx serial samples have been updated to demonstrate how to disable character assembly in RS-232 line break condition. - Defect #21191 fixed. Samples\fp_benchmark.c is improved. It now calculates the appropriate amount of loop overhead time. - Defect #21192 fixed. Samples\global_init.c comment is corrected to say auto is the default storage class. - Defect #21193 fixed. Samples\random.c is improved. It now demonstrates use of RAND.LIB functionality to generate a pseudo-random sequence of range-limited integers. - Defect #21287 fixed. RCM40xx, RCM42xx Serial\serDMA.c samples now demonstrate enabled DMA (serXdmaOn call is uncommented). - Defect #81695 fixed. Added check for years entered as more than 2 digits. Added date range notification to stdio window. GUI Bugs - Defect #20177 fixed. Watch window char array data display now correct for chars with high bit set. - Defect #20599 fixed. The find in files grep window obscurred other application windows when alt-tab is used to switch to other applications. - Defect #21009 fixed. When pasting text, the cursor had been placed at the end of the text when tabs preceeded it on the line. - Defect #21208 fixed. A "Cannot open clipboard" error message will no longer appear when the Stdio window is opened while an Office program is open with Edit | Office Clipboard selected. - Defect #81439 fixed. Grep in files with *.* mask now runs without error. - Defect #81448 fixed. Disassemble at Cursor now works in libraries. Debugger Bugs - Defect #81638 fixed. In execution tracing, one can now step over _TRACE placed in functions other than main. RFU Bugs - Defect #81619 fixed. If the file selected from the File mru list was not the first in the list, the prior file was loaded, but now the selected one is always loaded. ***************************************************************** VERSION 10.09 BUG FIXES Compiler Bugs - Defect #81741 fixed. The compiler now generates correct code for arithmetic assignment operators with complex left-hand sides having far storage. - Defect #81739 fixed. The compiler now generates correct code for function calls returning characters in a conditional expression. - Defect #81732 & 81733 fixed. The compiler now generates correct addresses for externed far variables. - Defect #81714 fixed. The '&' operator now works correctly in array initialization. - Defect #81710 fixed. The compiler now omits warnings it had previously emitted erroneously in the assignment of far pointers with different storage. - Defect #81709 fixed. Using "&" and "->" operators together did not work correctly, when used as: "(&my_struct)->x". - Defect #81661 fixed. The compiler now properly processors the _system macro. - Defect #81660 fixed. Compiler and libraries now properly support the interrupt keyword for the Rabbit 4000 processor. - Defect #81636 fixed. Using multiple '.' operators on nested structures sometimes resulted in incorrect code generation. Library Bugs - Defect #20191 fixed. serXrdFlush and serXwrFlush work with serial DMA enabled and with serial DMA not enabled. - Defect #81737 fixed. FTP User can now download a file s/he uploaded to a FAT partition. - Defect #81736 fixed. SFLASH.LIB's sf_enableCS(), sf_disableCS() functions now properly protect their WrPortI() call. - Defect #81715 fixed, _n_strncat (strncat) now properly returns the address of the destination string. - Defect #81688 fixed, type checking error (multi-dimensional array) in BL20XX.lib. - Defect #81656 fixed, in the variable name parser there was an error in the range checking for the allowed character set. - Defect #81642 fixed. HDLC_Packet.lib had two bad CPU checks for the Rabbit 4000 chip. - Defect #81254 fixed, uppercased header sentinel macro __I2C_LIB in I2C.LIB GUI Bugs - Defect #81698 fixed. The flags order in the Registers window History view is now the same order as when copied and pasted. - Defect #81699 fixed. In STOP mode while execution tracing with autoscroll on, the window is no longer scrolled to the top. ***************************************************************** VERSION 10.07 NEW FEATURES - Added the error_message function to errors.lib. This function returns a descriptive string in xmem corresponding to an error code. - New sample tcpip\http\cgi_concurrent.c demonstrates how to manage concurrent CGI instances accessing a single shared resource, including proper behavior when the HTTP connection aborts. BUG FIXES Compiler Bugs - Defect #81255 fixed. Even if project file is read only, DC will exit correctly. - Defect #81485 fixed. Conditional (runtime if) test values in cofunctions are now always correctly normalized in HL before the condition's comparison is made. - Defect #81609 fixed. Invalid warnings are no longer generated for some implicitly upcast (far) NULL returns or comparisons. - Defect #81629 fixed. Pointer difference now checks pointer types correctly. - Defect #81631 fixed. Watches on string literals work correctly. - Defect #81658 fixed. The assembler now accepts subtraction for negative displacement in indexed instructions. EG: add a, (ix - d) is equivalent to add a, (ix + -d). - Defect #81687 fixed. The block instruction (LDIR, UMA, etc.) workaround for the Rabbit 4000 was not complete--the carry flag would be unconditionally cleared. This especially affected the UMA and UMS instructions. Library Bugs - Defect #81487 fixed. In LZSS.LIB, the LZ_LOOK_AHEAD_SIZE macro name has been corrected. Formerly, it was incorrectly defined as just LOOK_AHEAD_SIZE. - Defect #81581 fixed. The serial flash chip enable / disable functions in SFLASH.LIB now protect the WrPortI calls by setting ipset 1. - Defect #81604 fixed. The xalloc_stats function does not support a zero parameter, and now prints an error message asking for the required data structure. - Defect #81613 fixed. Error log exception values changed. - Defect #81657 fixed. On the ASIX AX88796 Ethernet chip, when the Ethernet cable is rapidly plugged and unplugged, the PHY could fail to detect a connection. The ASIX driver will now periodically check the link status, and will reset the PHY when it is down to work around the problem. - Defect #81662 fixed. Analog and Ethernet related macros are now defined appropriately for the BL2000B. - Defect #81663 fixed. The BL2010 and BL2030 specific "ADC_1OBIT" macro has been corrected to read "ADC_10BIT" (capital letter O typo changed to a numeral zero). - Defect #81666 fixed. The TCP/IP stack will no longer respond on TCP port 0 when the reserve ports functionality is enabled. - Defect #81675 fixed. BIOS's UserBlockAddr variable is now correct in Compile to flash, run in fast RAM compile mode when target board has a unique version 5 ID block installed. - Defect #81678 fixed. Can now read all of User block when version 5 unique ID block and large size User block are installed. - Defect #81685 fixed. On the RCM 40xx series, brdInit() no longer sets PE6 as an output. This was sometimes causing Ethernet to stop functioning. - Defect #81688 fixed. Fix type checking error (multi-dimensional array) in BL20XX.lib. - Defect #81692 fixed. Cloning on boards with 8-bit flash now works properly. - Defect #81700 fixed. DNS no longer gets stuck when resolving multiple bad addresses. Also note that the list of hostnames for the dns2.c sample has changed. Sample Program Bugs - Defect #81507 fixed. Userblock_clear.c now correctly attempts to clear only the available User block area. - Defect #81508 fixed. Userblock_info.c now reports correct information for unique v. 5 ID block. - Defect #81673 fixed. Now warns user that #define's are missing, refers user to documentation comments at the top of SERVO_FIRST.c. OTHER FUNCTIONAL CHANGES - The RCM40xx Product Family has been separated with individual Product IDs. Specifically, in Dynamic C 10.07, the macro, ‘RCM4000A’, has been redefined to the product id for an RCM4000 (PID=0x2702). Likewise, the macro, ‘RCM4010’, is now defined to the product ID for an RCM4010 (PID=0x2701). The boards' internal product ID part numbers have not changed, just the macro value definitions in this version of Dynamic C. Previous versions of Dynamic C 10 used the macro ‘RCM4000A’ to identify the RCM4010 (PID=2701). - Error logging is updated to version 2. Run time exceptions are now reported / recorded as negative int values and Dynamic C's traditional run time error codes have changed. See details in Lib\errno.lib and in Lib\BiosLib\errors.lib. - DLM/DLP programs in Samples\Download do not work with Rabbit 4000 processors. These programs were changed to reflect this. ***************************************************************** VERSION 10.05 NEW FEATURES BUG FIXES Compiler Bugs - Defect #81634 fixed. Pointers to far are now properly evaluated in boolean expressions. - Defect #81635 fixed. The casting of near pointers that have NULL value to far pointers now performs the correct up-conversion. Library Bugs - Defect #81543 fixed. Timeout is no longer calculated during SYN handshake. OTHER FUNCTIONAL CHANGES ***************************************************************** VERSION 10.03 NEW FEATURES BUG FIXES Compiler Bugs - Defect #80160 fixed. Constant expressions may now include the address of '&' operator. - Defect #80783 fixed. externed arrays having the same name now generate an error message. - Defect #80990 fixed. Empty function chains no longer generate prolog and epilog code. - Defect #81548 fixed. The assembler produces an intelligible error message for trailing '+' or '-' characters in an instruction. - Defect #81589 fixed. The assembler now omits long jumps over page boundaries when encountering inline c expressions embedded in assembly code. - Defect #81593 fixed. The compiler now properly promotes NULL pointer constants to the type of the other operand in equality comparisons provided the other operand is a pointer type. - Defect #81599 fixed. The compiler now uses labels instead of pseudocompilation to generate function blocks for cofunction related code. - Defect #81600 fixed. The RdPortI() inline function now produces an error message for undefined variables as parameters. - Defect #81602 fixed. Function implementations having the '__lcall__' function qualifier now generate parameter offsets properly. - Defect #81606 and 81611 fixed. Resolved corner cases involving pointer differences. - Defect #81612 fixed. Calling xmem functions through function pointers now honors established register conventions with respect to the first function parameter. - Defect #81615 fixed. The peephole optimizer now properly generates page shifts at source markers. Library Bugs - Defect #81479 fixed. The fmod() function now works properly when the numerator and denominator have the same (or nearly the same) value. - Defect #81492 fixed. The memcpy() and memmove() functions now properly return the destination parameter when the size is zero. - Defect #81528 fixed. Added a static keyword to a const string of encodable characters in HTTP.LIB. Note that this defect was actually fixed in Dynamic C 10.01. - Defect #81545 fixed. udp_waitopen() RabbitSys conditional compilation macros were removed because they were unneccessary. - Defect #81549 fixed. RabbitSys Macros caused incorrect logic to be compiled when compiling for non-RabbitSys applications. These errors were located in the network stack and appeared as failures in the gateway/router services. - Defect #81590 fixed. RabbitFLEX keypads with other than 2 outputs now work correctly. Also, this change will cause the outputs on a 2-output keypad to swap, so reported keycodes on a 2-output keypad will change. - Defect #81596 fixed. The library file "http.lib" compares the value of a state structure member instead of the pointer. - Defect #81603 fixed. RS232.LIB DMA transmit is now redesigned to be less interrupt intensive. - Defect #81605 fixed. RS232.LIB with DMA now will not cut off the last few bytes of a transfer. Rabbit Field Utility Bugs - Defect #81547 fixed. COM10 and higher is now supported. ***************************************************************** VERSION 10.01 NOTE: Dynamic C version 10.01 is supported only on the RCM4110 core module. Attempting to compile a program to any other Rabbit Core Module will result in a compile-time error. NEW FEATURES - Far Pointers and Far Data. The "far" keyword allows for direct access to xmem, without having to use xmem2root, root2xmem, or other library routines. A new library API for standard functions is provided to work with far pointers. - Rabbit 4000 CPU code generation. DC 10.01 introduces support for the Rabbit 4000 CPU and generates native code from C source. - Improved code generation. DC 10.01 has improved code generation over older Dynamic C releases, including the use of new Rabbit 4000 instructions to produce smaller, faster binaries. - Rabbit I/O LIB Utility. This utility is a powerful tool for initializing I/O pins and various Rabbit 4000 peripherals. - DMA support. The Rabbit 4000 supports Direct Memory Access for data transfers between I/O and memory. A full set of API are provided in the new DMA.LIB - Highly configurable serial libraries. RS232 serial API have been enhanced to support generalization. This allows for more maintainable and transferable code. RS232 also now supports DMA for less interrupt intensive serial transfers. BUG FIXES Compiler Bugs - Defect #81546 fixed. Constant structure assignment is fixed. - Defect #81550 fixed. Removed improper warning for functions returning function pointer types using typedef. - Defect #81556 fixed. Float to unsigned long conversion fixed. - Defect #81557 fixed. Accessing multi-dimensional arrays with constant indices fixed. - Defect #81562 fixed. Secondary watchdog timer is now disabled upon startup to avoid interaction problems between the primary and secondary watchdog timers. - Defect #81564 fixed. Assembler was generating incorrect code in #asm const blocks. - Defect #81570 fixed. Corrected removeram origin directive definition, fixing problems with running in RAM mode. - Defect #81577 fixed. Added a definition for the removeram origin directive for compiling in Flash Mode. - Defect #81582 fixed. The sizeof operator resulted in incorrect values when calculating the size of the address of an array. Library Bugs - Defect #81151 fixed. The functions clockDoublerOn, clockDoublerOff, and setClockModulation do not compile. - Defect #81563 fixed. Missing function prototypes for clockDoublerOn and setClockModulation were added. GUI Bugs - Defect #81572 fixed. The compiler messages window no longer leaks memory each time it is opened. - Defect #81574 fixed. Dynamic C no longer crashes if a program that loses communication before starting (yet runs to completion) is recompiled. - Defect #81576 fixed. Switch to debug mode (Shift+F5) now works correctly for programs compiled to RAM. Debugger Bugs - Defect #81573 fixed. Pressing F4 when a program is running on a BL1810 now stops the program from running and returns the IDE to edit mode. - Defect #81575 fixed. Returning to edit mode after compiling a program and turning on execution tracing no longer results in a target communication timeout. - Defect #81585 fixed. Setting a watch expression no longer corrupts data 1k below dkcWriteBufHeader in non-separate I&D. OTHER FUNCTIONAL CHANGES - Conversion of negative float values to unsigned long values, which is undefined C behavior, has changed. Previously, the float value's 32-bit representation was copied literally into the unsigned long's 32-bits. Now, conversion of a negative float value to unsigned long type results in the value 0ul. This change in behavior is coincident with the fix for defect #81556. Also note that the similarly undefined behavior for conversion of negative float values to unsigned int type has not yet changed; however, the equivalent change will occur in a future release of Dynamic C. ***************************************************************** VERSION 9.41 NEW FEATURES - Samples, libraries and documentation added to support the new customizable RabbitFLEX boards. - Dynamic C's LIB.DIR library files list mechanism now searches for library files within a specified directory tree. The option to specify a complete or relative pathlist to each individual library file remains. Note that each library file name must be unique, regardless of whether the library is explicitly specified or is found via searching a specified directory tree. Also note that this feature was actually implemented in Dynamic C v. 9.30. ***************************************************************** VERSION 9.40 NEW FEATURES - Libraries and documentation updated for the OP7200 family, which has a new LCD controller. The updated libraries work with both old and new versions of the OP72xx. A BIN file created using the new libraries will also work with both old and new versions of the OP72xx. (Note that the old libraries will not work with the new OP72xx.) BUG FIXES Compiler Bugs - Defect #81131 fixed. New compiler fixes the "undefined but used global label main" problem. - Defect #81159 fixed. Disassembler correctly prints signed values. Note that this bug was actually fixed in version 9.30. - Defect #81198 fixed. New compiler fixes the "RCM3700 #rcodorg error - out of memory" problem. - Defect #81199 fixed. New compiler fixes the "out of memory conditions can put Dynamic C in an unusable state" problem. - Defect #81335 fixed. Assembler no longer generates incorrect binary for "rr a'" and related instructions. Note that this bug was actually fixed in version 9.30. - Defect #81497 fixed. "bbram" variables are not allowed with the "static" qualifier. - Defect #81505 fixed. Some RabbitWeb guard expressions incorrectly did not compile. - Defect #81534 fixed. Writing to internal interrupt vector offsets higher than 0x0100 in separate I&D space no longer corrupts memory. - Defect #81535 fixed. Lexer now properly recognizes '0h' and '0b'. - Defect #81536 fixed. RabbitLink did not work in DC 9.30. - Defect #81539 fixed. IO bug instructions in 2000 processors at end of asm blocks now properly emit nops following the instruction. - Defect #81541 fixed. Command line compiler now compiles and runs programs on boards with small sector flash (BL1800/1810). GUI Bugs - Defect #81222 fixed. New lib.dir handling fixes this problem. - Defect #81377 fixed. A scroll bar appears when neccessary. - Defect #81468 fixed. The parameters of the targetless compile boards in the Board Selection list of the Project Options dialog can now be modified. - Defect #81491 fixed. The board description had been missing from the compile dialogs if the Project Options dialog had never been opened since installing Dynamic C. - Defect #81502 fixed. Rabbit 3000A and 4000 keywords added to syntax highlighting. This was fixed for Dynamic C 9.30. Debugger Bugs - Defect #81462 fixed. Cursor placement is now correct when stepping over or into a nodebug function containing _TRACE. - Defect #81500 fixed. Leaving the execution tracing window open while running for a long time no longer causes a problem. Library Bugs - Defect #81477 fixed. For the PowerCoreFLEX ADC capability, it is now no longer possible for an ADC ISR to occur in the middle of reading the raw analog data. - Defect #81514 fixed. SMTP library now works correctly in non-RabbitSys mode (DC 9.30-only defect). - Defect #81525 fixed. BBRAM_RESERVE_SIZE now correctly calculated. - Defect #81526 fixed. BBRAM_RESERVEORG now correctly calculated in non-RabbitSys mode. - Defect #81529 fixed. Duplicate USERDATA definitions removed. - Defect #81531 fixed. Duplicate cloning definitions removed. - Defect #81532 fixed. Functionality moved to RemoteUpload libraries. - Defect #81540 fixed. Realtek driver now works correctly for SmartStar. Sample Program Bugs - Defect #81515 fixed. PowerCoreFLEX version of sflash_test.c will no longer display uninitialized variables on failure. Rabbit Field Utility Bugs - Defect #81537 fixed. RabbitLink did not work in version 3.01. - Defect #81538 fixed. RabbitSys user program did not run after being loaded through RFU 3.01. ***************************************************************** VERSION 9.30 NEW FEATURES - Ten bit quadrature decoder capability was added for the R3000A Rabbit microprocessor along with a new sample program. (See R3000.LIB and QD_Phase_10bit.C for implementation.) - New file called WIFI_INTERP_PINCONFIG.LIB added to TCPIP folder, which contains default pin configuration settings for developers using the Wi-Fi Add-On kit. - Improved code generation (approximately 1% size improvement in general). - Improved assembly language error reporting. BUG FIXES Compiler Bugs - Integer promotion rules now match ANSI C. This may cause some new warnings to appear in older Dynamic C programs. In rare cases, legacy code that relies on the original behavior could be wrong (primarily in character to integer promotions). - Defect #80437 fixed. Stack imbalance problem with certain C expressions. - Defect #80476 fixed. Using operator /= with field accessed from a structure pointer with sizeof expression causes stack imbalance. - Defect #80532 fixed. Character shift and multiply in test expressions was broken for certain values. - Defect #80533 fixed. Comparison between char and long return types (i.e. longfoo() != charfoo()) generated an internal error. - Defect #80624 fixed. Bug with character evaluation and logical OR operator. - Defect #80884 fixed. DC generates odd code for long index into array of structures. - Defect #80885 fixed. Odd #asm block code compiles without complaint. - Defect #80933 fixed. List files would occasionally show incorrect values for addresses and code. - Defect #80945 fixed. Type conversion bug in floating point causes stack imbalance. - Defect #80950 fixed. Documented form of ljp instruction, "ljp 0xXX, 0xMMNN" was rejected by the DC assembler. - Defect #80962 fixed. The placement of DB data in assembly had an off-by-one error. - Defect #80985 fixed. The types reported in a type mismatch warning were occaisonally incorrect. - Defect #81091 fixed. Dynamic C did not do error checking on project files before loading. - Defect #81105 fixed. Using the Ctrl-H help feature could result in undefined global label errors. - Defect #81226 fixed. The DC command-line-compiler would print benign token warnings for some if statements. - Defect #81232 fixed. Boundary condition for auto variables sometimes caused incorrect code generation (stack offsets) in array expressions. - Defect #81234 fixed. The BIOS was not recompiled after changing BIOS memory setting. - Defect #81271 fixed. Identifiers containing "sizeof" caused assembler errors, and out-of-range offsets were not reported in inline assembly. - Defect #81275 fixed. Assembler now handles long labels without failing. - Defect #81283 fixed. The BIOS was not recompiled after an error occured in prior BIOS compile attempt. - Defect #81327 fixed. Hitting Alt-O instead of the Ok button after Defines window change in Project Options dialog did not cause a BIOS recompile though hitting the Ok button did. - Defect #81334 fixed. Use of long casting in binary operator expressions (&, |, ~, etc...) would occasionally produce a stack imbalance. - Defect #81340 fixed. Long to float conversion was incorrect when the long was sufficiently large. - Defect #81387 fixed. The conditional operator ("?:") could cause a stack imbalance situation in some cases. - Defect #81410 fixed. The 'Program Terminated. Exit Code n' message was only showing the low byte of n. - Defect #81411 fixed. ROM file format missing newline characters. - Defect #81417 fixed. Prototypes having zero arguments are now properly checked. - Defect #81435 fixed. Rabbitbios.map file was corrupted when Rabbitbios.c compiled 2 or more times in a Dynamic C session. - Defect #81445 fixed. Void expressions as function call parameters are now disallowed. - Defect #81463 fixed. Fixed assembler's constant folding precedence rules. The rules are now identical to C constant expression semantics. - Defect #81498 fixed. Function name and structure offset name conflicts no long confuse the assembler. - Defect #81499 fixed. Excessively long lines (including logical lines generated by macro expansion) would sometimes be ignored by the compiler. - Defect #81511 fixed. Compiler no longer reports "internal temporary stack usage" error message when compiling expressions that convert longs to integers on the stack. - Defect #81512 fixed. Stack bug identified by "expression temporary stack usage" fixed. Gui Bugs - Defect #81095 fixed. Ctrl-H function lookup had an access violation after changing some libraries. - Defect #81203 fixed. Color selection for highlights changed when selection for background was changed in Envronment dialog. - Defect #81208 fixed. Ctrl-Enter, for Load file at cursor, did not check relative paths. - Defect #81213 fixed. Save Library prompt opened multiple times during compile for modified libraries. - Defect #81222 fixed. Hitting Cancel on Save Library prompt did not cancel compile. - Defect #81225 fixed. Icon blinking and beep alerts did not work on completion of compile with Dynamic C in background. - Defect #81230 fixed. Editor scrollbar context menu top/bottom did not work. - Defect #81235 fixed. A grep search with results found did not display any message at all. - Defect #81240 fixed. Tab navigation in the Goto Line dialog (Ctrl-g) did not work. - Defect #81253 fixed. Right click Find cleared text selection. - Defect #81263 fixed. an expression over 240 characters in the Evaluate Expression dialog could make Dymic C crash. - Defect #81269 fixed. A large file loaded into an edit window would sometimes make Dynamic C crash when the window was closed. - Defect #81326 fixed. The grep button was unresponsive if a grep filespec had only a folder pathname without *.*. - Defect #81332 fixed. Targetless CPU type selection in Project Options dialog was not being saved. - Defect #81337 fixed. The file name in the titlebar was capitalized when the window was resized. - Defect #81341 fixed. Assigning a different color to Stdio window could cause an access violation. - Defect #81346 fixed. A libray function could be unrecognized for lookup if whitespace was added to some places in the description. - Defect #81354 fixed. Execution trace fields did not remember group fields. - Defect #81363 fixed. Libraries were not being rescanned when a project file was opened which had a custom lib.dir. - Defect #81372 fixed. The color assigned to a printout had been dependent on unrelated changes but now has its own value and dialog in the Environment Options. - Defect #81382 fixed. A toolbar floated to the top of the screen could not be repositioned properly. - Defect #81384 fixed. An exception dialog could be hidden behind another window waiting for acknowledgement but unseen. - Defect #81385 fixed. The dialog showing the file names being compiled was not showing all of some long board descriptions. - Defect #81389 fixed. The "Inspect | Disassemble at cursor" menu option did not open the assembly window. - Defect #81391 fixed. Stack tracing display was incorrect for pointer to struct. - Defect #81392 fixed. A toolbar could appear detached from the mouse cursor as it was being dragged. - Defect #81395 fixed. Switching between Dynamic C and other tasks when a file was modified would lead to multiple update queries. - Defect #81397 fixed. Environment options allowed setting a Stdio window width of 0 which led to Tab space requirement problems. - Defect #81399 fixed. The Stdio window would pop up after returning to edit mode in some circumstances. - Defect #81400 fixed. The File Open dialog would not start in the 'Start in' directory of a Windows shortcut when Dynamic C was launched from the shortcut. - Defect #81403 fixed. A text window with srolled text could be resized to make the scrollbar disappear but with no ability to scroll it back with the mouse. - Defect #81404 fixed. Moving the dump widow thumb would make one or more lines repeat at the bottom. - Defect #81406 fixed. In the Environment Options dialog, setting the Stdio window row limit to a low but long enough to warrant a scroll bar and the stdio window was filled with text, there was no scroll bar. - Defect #81412 fixed. The 'Change Register value' dialog did not display the prime(') for BC', DE' or HL'. - Defect #81422 fixed. The flash and memory sizes were switched for the LP3510 in the Project Options dialog targetless tab. - Defect #81429 fixed. In the Environment Options dialog, the Stdio window row minimum had been allowed to be 0, leading to an access violation. - Defect #81432 fixed. Some exit codes used in return from main() could lead to an erroneous display of a runtime error message. - Defect #81440 fixed. The board description was missing from the messages shown when compiling if the Project Options dialog had never been opened since Dynamic C was installed. - Defect #81465 fixed. Targetless compile information was missing for BL2101, BL2105, BL2111, BL2115, BL2121. Rabbit Field Utility Bugs - Defect #81073 fixed. The state of the Use USB checkbox was not being remembered. - Defect #81331 fixed. Command line RFU did not work with the -fi switch to specifiy a flash.ini file. - Defect #81339 fixed. RFU did not support max download baud rate or disable baud negotiation options as Dynamic C does. Debugger Bugs - Defect #81348 fixed. Execution tracing with Buffer Wrap option checked could lead to an access violation. - Defect #81364 fixed. Using #nodebug disabled stack tracing. - Defect #81398 fixed. Execution tracing with 'Function entry/exit only' selected was not tracing function exits. - Defect #81414 fixed. Entering a base-offset address in a dump window did return the xmem equivalent physical memory data unless the offset address began with e or f. - Defect #81428 fixed. In the watch window, a struct member of an array of characters was being displayed incorrectly. Command Line Compiler Bugs - Defect #81390 fixed. The -i switch for taking inputs from a file instead of the keyboard did not work. - Defect #81413 fixed. The -lf and -bf switch values were not being used if the project file in use had values for a lib.dir file or for a BIOS file. Library Bugs - Defect #81349 fixed. HDLC_Packet.LIB Can now startup both serial ports E & F in HDLC mode without possible lockup. - Defect #81360 fixed. R3000.LIB Corrected possible incorrect overflow condition on channel 1 of the quadrature decoder. - Defect #81383 fixed. Graphic.LIB The glLeft1 function now properly scrolls a graphic image that crosses an xmem boundary. - Defect #81418 fixed. BL26XX.LIB Now does not generate a false runtime error when using the digHout function. - Defect #81419 fixed. Sflash.lib Now clears data rcv flag during initialization. - Defect #81444 fixed. Unsigned long to float conversion is now correct even when input's most significant ('sign') bit is set. - Defect #81446 fixed. Code now generates more unique DHCP transaction ID's and also checks the Client HW address field of the DHCP response packet from the server before accepting the IP addr. assignment, etc. - Defect #81454 fixed. IP layer now correctly responds to misdirected UDP packets with a properly formed ICMP packet. - Defect #81459 fixed. No longer an MSCG12232.LIB _glData() error when graphics buffer crosses 0xF000 boundary. - Defect #81464 fixed. The Graphic.lib Textborder function now handles redrawing text borders without error. - Defect #81501 fixed. RCM3365 (nand flash) & WiFi Addon Module had problems working together. baseaddress was set incorrectly on nflash.lib. bit5 has to be zero when using WiFi. ***************************************************************** VERSION 9.25 NEW FEATURES - Samples, libraries updated and documentation added for the new RCM3305 and RCM3315 boards. BUG FIXES Library Bugs - Defect #81461 fixed. SFLASH.LIB's sf_devtable pagebitshift value for the AT45DB321 serial flash type has been corrected. - Defect #81473 fixed. SFLASH.LIB's sfspi_bitrev, sfspi_xbitrev functions now explicitly clear b register to zero as required. - Defect #81475 fixed. In default.h, the ADC, DAC and Ethernet options are now properly specified for the BL2000B. Compiler Bugs - Defect #81470 fixed. One byte hl-indirect instructions following an io prefix instruction require a preceding nop in order to function correctly in 2T and 3T 2000 processors. This fix broke in version 9.01 by way of simply replacing the instruction by a nop. The correct behavior has now been restored. ***************************************************************** VERSION 9.24 NEW FEATURES - Samples, libraries updated and documentation added for the new RCM3365, RCM3375 boards and development kit. - Samples, libraries updated and documentation added for the new RCM3750 board and development kit. - Samples (Samples\LowPower\*.c),library (Lib\LOWPOWER.LIB) added to demonstrate low power (via run-time selection of lower clock rates) capabilities of the Rabbit 3000 CPU. BUG FIXES Library Bugs - Defect #81401 fixed. In NFLASH.LIB nf_initDevice function, the correct shadow register address is now used for IBxCR where "x" is nonzero. - Defect #81402 fixed. In BL25XX.LIB, the low-level anaIn and cof_anaIn functions will not hang on stepping direction inputs that stabilize at a level different from their initial level. - Defect #81431 fixed. Realtek power up function now works as expected to power Realtek up after power down. ***************************************************************** VERSION 9.22 BUG FIXES Library Bugs - Defect #81424 fixed. RCM34XX.LIB ADC functions now return the proper error code for a timeout (ADTIMEOUT macro value, -4095). ***************************************************************** VERSION 9.21 NEW FEATURES - The program samples\tcpip\virtualeth.c demonstrates the virtual Ethernet capability introduced in Dynamic C 8.30. BUG FIXES TCP/IP Bugs - Defect #81322 fixed. SMTP Auth support will now fall back to non-authenticated access if authentication fails. The macro SMTP_AUTH_FAIL_IF_NO_AUTH can be defined to return to the old behavior. - Defect #81380 fixed. For ASIX chipsets, removing the Ethernet cable and subsequently sending frames will no longer lock up the program. Other Functional Changes - VSERIAL.LIB now has support for serial ports E and F. - The macro SMTP_AUTH_FAIL_IF_NO_AUTH can be defined for SMTP.LIB, which will cause the library to not fall back to non-authenticated access should authentication fail. - UDP will now accept datagrams with a source address of 0.0.0.0. ***************************************************************** VERSION 9.20 NEW FEATURES - Samples, libraries, and documentation added for new PowerCoreFLEX standard series boards. BUG FIXES Library Bugs - Defect #81304 fixed. In PART.LIB, format device and create partition functions cause a run time exception if not enough xmem RAM is available. Note that this bug was actually fixed in Dynamic C v. 9.01. - Defect #81371 fixed. The RCM2260 was not properly recognized in RS232.LIB, PKTDRV.LIB and others. - Defect #81374 fixed. PART.LIB - Unexpected interrupt while running fat_shell.c "format 0" in fast RAM compile mode, or system nak on exit afterward. Debugger Bugs - Defect #81361 fixed. Adding a watch expression of more than around 240 characters crashes DC. Note that this bug was actually fixed in Dynamic C v. 9.10. Gui Bugs - Defect #81193 fixed. Selecting the first row in the STDIO window changes the font size. Note that this bug was actually fixed in Dynamic C v. 9.01. - Defect #81265 fixed. Memory dump code/data space options not autogreyed out. Note that this bug was actually fixed in Dynamic C v. 9.10. - Defect #81355 fixed. Compiler messages window wasn't "in focus" immediately after messages are generated. - Defect #81357 fixed. Can't copy selected text from STDIO window. - Defect #81358 fixed. Tabs are not always correctly expanded in the STDIO window. ***************************************************************** VERSION 9.10 NEW FEATURES - PKTDRV.LIB is now optionally controlled by a macro named DISABLE_ETHERNET_AUTOCONF, which if #defined in the user's program, excludes all ethernet driver's from being automatically compiled into the user's code based on board type. Usage of this macro gives other users the option to simply turn off automatic selection and compilation of ethernet drivers based on board type. BUG FIXES Library Bugs - Defect #81243 fixed. LP3500 xxxxAlert() functions were not using shadow registers and incorrectly using data registers to write data. This defect is actually fixed in 9.01. - Defect #81244 fixed. LP3500 missing bitmask value in digInAlert() function. This defect is actually fixed in 9.01. - Defect #81251 fixed. powerMode() main oscillator modes fixed, now allows debugging at lower baud rates. This defect is actually fixed in 9.01. - Defect #81285 fixed. Eliminated RCM37XX brdInit signal pin contention between PG2 and IRDA chip. This defect is actually fixed in 9.01. - Defect #81303 fixed. The region of memory allocated for stacks can no longer overlap with other regions allocated via xalloc(). - Defect #81324 fixed. HDLC_PACKET.LIB now supports 1 byte packets. - Defect #81333 fixed. FAST_RAM_COMPILE mode limits xmem code to 64 KB less than maximum available. Compiler Bugs - Defect #81241. Using a #elif inside a nested block of #if, #ifdef, or #ifndef would result in improper conditional compilation. This defect was actually fixed in Dynamic C 9.01. - Defect #81315. Duplicate label errors now refer to the line where the label was originally defined, not line 1. - Defect #81316. File and line information were not reported correctly for undefined labels in assembly blocks. - Defect #80881 fixed. Function calls with no corresponding prototype incur a warning if the option is checked in the gui. - Defect #80985 fixed. Warning "assigning a value of type 'char' to 'char *'" and similar warnings are now displayed correctly. - Defect #81128 fixed. Externed arrays without dimension info now have correct sizes in the map file. - Defect #81205 fixed. ximport path error fixed. - Defect #81302 fixed. Disallowed typedefs to be used as offsets in assembly. - Defect #81307 fixed. Recompilation of BIOS is now forced if prior attempts fail. Gui Bugs - Defect #81192. Moving the mouse in the Assembly window could cause an error. This defect is actually fixed in 9.01. - Defect #81201. Print can now be executed from Print preview without access violation. This defect is actually fixed in 9.01. - Defect #81202. Printing selected text with line numbers and syntax highlighting no longer produces incorrect highlighting. - Defect #81277. Files were sometimes erroneously reported as being changed when switching application back to Dynamic C. - Defect #81278. Print Preview now previews highlighted text with the option to print the entire document or a page range. - Defect #81279. Memory dump characters on the right margin are now always printed correctly. - Defect #81280. The register window now updates differences correctly when stepping or stopping at a breakpoint. - Defect #81281. A program would terminate improperly if tracing was enabled and the trace window was closed. - Defect #81282. The stack window could show some shadow pixels in difference updates with some fonts with bold attribute. - Defect #81286. Execution tracing would only write traces to a file as directed in project options if the progam terminates, but now writes if the program is ended by the user or by an error. - Defect #81288. The board ID/type in the compiling messages now shows correctly after switching boards. - Defect #81289. Dynamic C will now exit cleanly when project file is made read-only. - Defect #81297. The stdio window caret was not being reset to the origin when a program terminated and would start in the wrong position when re-running the program. - Defect #81298. The Environment Options' "Apply Changes to All" applied to all open memory dump windows even when unchecked. - Defect #81299. The number of allowable execution trace 'Entries:' was initially wrong when opening the Project Options dialog. - Defect #81300. The execution tracing timestamp was not synchronized with the start of the trace. - Defect #81301. The editor window caret is no longer moved after a program is compiled and downloaded. Inspect | Go to execution point (Ctrl-E) can be used to move the caret to the current execution point. - Defect #81306. An access violation could occur while stepping after making some dump window environment changes to multiple dump windows, such as changing colors or fonts. - Defect #81308. Stepping over a function which contains an exception would cause a timeout when execution tracing is enabled. - Defect #81311. Using the execution tracing macro _TRACEON could cause a timeout when stepping. - Defect #81312. Writing memory dump to a file now works correctly. - Defect #81313. The syntax highlighting whitespace color selection would persist after changing schemes and reopening the Environment Options dialog. - Defect #81314. The Evauate Expression dialog was clipped when using Windows Large Fonts. - Defect #81319. Persistent breakpoints would not work with stack tracing disabled. - Defect #81325. The Print/Print Preview functions were enabled when the stdio window was in focus and an access violation would occur if Print or Print Preview were executed. Those function are now disabled as in prior versions when the stdio window is in focus. - Defect #81329. The stdio, when empty, can have shaded regions from z-order window movements. Command Line Compiler Bugs - Defect #81196. Command line compiler prinf now prints string literals correctly which contain '%' character. This defect is actually fixed in 9.01. - Defect #81317. Command line compiler programs run on NT would not terminate without external stimulus such as opening and closing the Task Manager - they would seem to hang even after completing. ***************************************************************** VERSION 9.01 NEW FEATURES - Execution Tracing - Traces at each statement, each function, or customer inserted points. Displays results in the Trace window. The options for execution tracing are configurable. This feature is disabled by default. - Stack Tracing - Helps customers find out the path of the program at each single step or break point. By looking through the stack, it is possible to reconstruct the path and allow the customer to easily move backwards in the current call tree to get a better feeling for the current debugging context. - Persistent Breakpoints - Persistent breakpoints mean the information is retained when transitioning back and forth from edit mode to debug mode and when a file is closed and re-opened. - Enhanced Watch Expressions - The Watches window is now a tree structure capable of showing struct members. That is, all members of a structure become viewable as watch expressions when a structure is added, without having to add them each separately. - Enhanced Memory Dumps - Changed data in the Memory Dump window is highlighted in reverse video or in customizable colors every time you single step in either C or assembly. - Enhanced Mode Switching - Debug mode can be entered without a recompile and download. If the contents of the debugged program are edited, Dynamic C prompts for a recompile. - Enhanced Stdio Window - The Stdio window is directly searchable. - Enhanced bookmark support - Bookmark menu items are checked when the corresponding bookmark is set, and unchecked when the corresponding bookmark is not set. When a book mark is set, the menu item also displays the line of text as well as the column and line number where the bookmark is placed. See Edit | Toggle Bookmark, Edit | Goto Bookmark, and Editor window popup menu. - Samples, libraries, and documentation added for new RCM3360 and RCM3370 boards equipped with soldered-on and/or socketed nand flash devices. (Note that the RCM3300's Remote Application Upload requires serial flash, and so is incompatible with the new nand flash equipped RCM3360 and RCM3370 boards.) - Support for SMTP Auth added to SMTP library. - TCP/IP stack has been reorganized to dramatically reduce the amount of root data memory used. This change frees up almost 6k of root data memory, which will allow applications which are constrained by root memory (code and/or data) to be enhanced. If the application is constrained by available root code space, the definition of DATAORG may be increased by one or two pages (4 or 8k) to allow additional root code functions. Applications which need more root data space can just use the additional root data space. - TCP/IP packet buffers used to default to 10 packets of 600 bytes each, stored in root data space. This version now defaults to 10 packets of 1536 bytes each, in xmem. The xmem buffers are allocated in units of 512 bytes, and default to 30 buffers. These buffers are shared amongst the default 10 packets. The number of packets is specified using #define ETH_MAXBUFS. Each packet uses a small amount of root data space (currently 48 bytes each). The data buffers, in xmem, are specified using #define PKT_XBUFS to the number of 512-byte chunks desired. This defaults to 30. In order to take advantage of the larger buffer space available, the default interface MTU has been increased to 1500 (from 600). This should produce an immediate performance improvement for applications which handle bulk network data. - TCP/IP stack packet (ethernet) drivers have been reorganized so that more than one type of packet driver may be included in the same application program. This is to support future products which have more than one ethernet interface, or which do not know which ethernet device is on-board until runtime. - POOL.LIB has high-speed allocation/deallocation and linked-list handling functions, in addition to the previous C implementations. BUG FIXES Library Bugs - Defect #80928 which was fixed in Dynamic C 8.51 involved a change in the default value of QD_DIVISOR used in the quadrature decoder system. TCP/IP Bugs - Defect #81272. Removed unnecessary code that used port G for reseting SMSC on RCM3300. Corrected initializations for other boards where the DDR register for the reset line was prematurely set to output. - Defect #81191. The "list variables" command in ZCONSOLE.LIB now works again. - Defect #81220. The time zone compensation in HTTP.LIB is now done correctly. - Defect #81276. Some problems with multicasting on ASIX and Realtek chipsets have been fixed. - Defect #81257 fixed. The smsc_writephy function returns incorrect values if uC/OS-II is defined. This effects the pd_havelink and prt_nicreg functions for the smsc based boards (RCM3400 and RCM3300). - Defect #81258 fixed. Selection variables in RabbitWeb can now additionally have guard expressions. Compiler Bugs - Defect #81256 fixed. The PCDR register is no longer set to 0x40 at cold boot time, preventing bits 0/2/4/6 transition on Rabbit 3000 CPUs and bit 6 transition on Rabbit 2000 CPUs. RabbitBios.c is also updated to prevent start up transitions on these bits after hardware reset. If the BIOS's previous transition behavior is desired, add _ZW_RESET_PCDR_ALL_ZEROS into the "Options > Project Options > Defines" tab. - Defect #81264 fixed. Auto "protected" variables allowed (but not protected) and local static protected variables disallowed. - Defect #81273 fixed. Long labels in the assembler (>= 32 characters) no longer cause odd errors. - Defect #81261 fixed. Pointer checking incorrectly reports runtime exceptions for battery backed root variables error under Code and BIOS in Flash, Run in RAM compile mode. Command line Compiler Bugs Debugger Bugs GUI Bugs RFU Bugs Other Functional Changes - TCP/IP: Ping responses are supported up to a maximum of 982 bytes. This is a reduction from previous versions, but is necessary for reasonable efficiency. If using a ping command from a host such as ping -s 1000 10.10.6.100 (which specifies 1000 bytes of data) then only the first 982 bytes will be echoed. Default ping commands will usually only send 56 bytes of data, so this should not be a problem in practice. The old style of TCP/IP configuration (using MY_IP_ADDRESS, MY_NETMASK, etc.) must be slightly modified to work with the new packet drivers. The macro USE_ETHERNET must be defined to 1 before the "#use dcrtcp.lib" line. Also, a warning will be issued if the macro TCPCONFIG is not defined. If you are using the old style configuration, TCPCONFIG should be defined to 0. We do, however, recommend migrating to the new style of configuration using the TCPCONFIG macro, the TCP_CONFIG.LIB library, and the ifconfig() function. ***************************************************************** VERSION 8.61 Compiler Bugs - Defect #81224 fixed. The BIOS is only recompiled when necessary. - Defect #81228. Duplicate string literals in differents scopes may cause the compiler to crash or fail to compile. TCP/IP Bugs - Defect #81227 fixed. A warning is now issued when SSPEC_MAX_OPEN is less than HTTP_MAXSERVERS or FTP_MAXSERVERS. Setting SSPEC_MAX_OPEN too low (it is 4 by default) causes spurious "404 Not Found" errors in the HTTP server when it is under load. The "404 Not Found" message in this case has also been changed to a "503 Service Unavailable" message. - Defect #81231 fixed. Some cases where #web guard expressions were not generated correctly have been fixed. ***************************************************************** VERSION 8.51 NEW FEATURES - Ethernet Support for RCM3700. - BOOTP.LIB (BOOTP and DHCP support for TCP/IP) rewritten to be non-blocking and support multiple interfaces. dhcp_release() and dhcp_acquire() have been deprecated in favor of bringing the interface down and up using the normal ifconfig() function. Processing of DHCP options has been made more flexible, via a callback function. Support for automatic TFTP download of the boot file has been removed since it is too unwieldy for multiple i/f usage. Some global variables (such as _survivebootp) have been removed. The equivalent functionality is provided via more ifconfig() options. DHCP now works as part of the normal interface startup, driven via tcp_tick(). It uses fewer resources. In particular, worst-case stack usage has dropped to under 1k from over 2k. Fewer xmem and root data resources are required. No UDP socket is required. - DNS.LIB enhanced to use facilities of new SERVLIST.LIB. SERVLIST manages prioritized lists of IP addresses which represent server resources. In particular, DNS, the name resolver, now uses a DNS server list. This has the benefit of being able to mix predefined DNS servers together with DNS servers discovered via DHCP or PPP negotiation. - Support for SSL and HTTPS. - Added xgetfloat and xsetfloat functions to get and set a floating point value in xmem - Floating point support can be conditionally compiled out of stdio.lib by adding #define STDIO_DISABLE_FLOATS to either a user program or the Defines tab page in the Project Options dialog. This can save several thousand bytes of code space. - Three new format specifiers have been added to the printf family of functions: * %ls specifies a NULL terminated string in xmem. * %p specifies a 16-bit logical pointer. * %lp specifies a 32-bit physical pointer. - Support for printing strings longer than 127 bytes has been added to stdio.lib. A new macro, STDIO_ENABLE_LONG_STRINGS must be defined in either the user program or in the Defines tab page in the Project Options dialog (the library does not define this macro by default). Special care must be taken in a multi-tasking application where different tasks may be printing strings that are longer than 128 bytes so that output from different tasks is not interleaved in the stdio window. For instance, a semaphore could be used by different tasks in a uC/OS-II application that need to print long strings to serialize access to printf. - User can now add serial ports to Serial Port combobox in Communications tab of Project Options dialog. - The command line compiler normally compiles and runs the specified source file, but now when the project file "Default Compile Mode" is one of the options which compiles to a .bin file, the command line compiler will not run the program but will compile the source to a .bin file. - Provides stronger built-in support for certain large sector flash devices; in particular, the LS support files from tn226.zip are no longer required. See Tech Note 226 for a list of supported flash devices, and a description of the limitations of support for LS flash devices. Command line Compiler - Defect #80927 fixed. Help message printed for -b flag was incorrect. - Defect #80972 fixed. The command line compiler -rf switch now reads data correctly for a targetless compile to a file. - Defect #81050 fixed. The command line compiler reads libraries from a user defined lib.dir file in the project file, if one exists. - Defect #81053 fixed. The command line compiler now uses the files given with the -lf, -bf, -clf and -pbf switches correctly. - Defect #81150 fixed. The command line compiler will now honor the compile mode setting specified in the project file. - Defect #81158 fixed. The command line compiler will now properly handle a relative given for a project file with the -pf switch. Library Bugs - Defect #80625 fixed. Corrected parity mode values listed in serXParity function descriptions. - Defect #80637 fixed. Corrected prototype syntax in function descriptions for serXparity. - Defect #80644 fixed. Corrected an incorrect function pointer check before calling the con_user_timeout ZConsole handler. - Defect #80776 fixed. Serial TX pins now revert to normal outputs when a port is closed. - Defect #80870 fixed. Corrected long modulus function to give correct sign according to ANSI C standard. - Defect #80873 fixed. Eliminated apparent duplication caused by incorrect calculation of the entry's offset into the error log. - Defect #80888 fixed. The paddr() function returns the correct physical address even when either nybble of SEGSIZE contains 0. - Defect #80906 fixed. Old flash file system's fs_block_pushxpc function sets the correct XPC value in its #asm block. - Defect #80916 fixed. Corrected conversion of float values in range (LONG_MAX,ULONG_MAX] to unsigned long type. - Defect #80917 fixed. Pilot BIOS reliably loads programs to supported large and/or nonuniform flash types. - Defect #80924 fixed. 32-bit protected variables recoverable if corrupted by interruption due to power cycle or reset. - Defect #80928 fixed. Change creates a limit of 19140 hertz on both A and B inputs with a 29.4 Mhz clock. - Defect #80930 fixed. Corrected WriteFlashArray function's retval assignments in seldom-used conditional code. - Defect #80940 fixed. The errlogGetHeaderInfo() "Index last exception:" item displays correctly when errLogInfo.ExceptionIndexMod wraps back to zero. - Defect #80948 fixed. The BIOS's MMIDR_VALUE macro definition now shifts the CS1_ALWAYS_ON value into the correct bit position. - Defect #80949 fixed. The BIOS's special FastRAM_InRAM variable is now two bytes, to allow direct ldp write access. (NB: Only the LSB is meaningful.) - Defect #80952 fixed. MASTER_SERIAL.LIB now handles Auxillary I/O use correctly. - Defect #80976 fixed. PPP now checks for full connect status before processing IP packets. - Defect #80986 fixed. In RAM_COMPILE mode, RabbitBios.c made a subroutine call before the temporary stack was set up. - Defect #80987 fixed. A FAST_RAM_COMPILE mode application that set a short period WDT time out could lock up in a WDT time out reset cycle. (Also potentially affected FLASH_COMPILE mode if the CPU clock was extremely slow.) - Defect #80991 fixed. Fast RAM compile mode repeated xalloc calls do not fail prematurely. - Defect #80993 fixed. In PPP.LIB, PAP ACK and PAP NACK packets now include message length byte with a value of zero. - Defect #80994 fixed. Added automatic support for the 0x20 sector erase command that is required by supported SST29VFxxx flash devices. - Defect #81002 fixed. Register values changed via the Registers window change options are now retained while using separate instruction and data spaces. - Defect #81007 fixed. Corrected integer modulus function to give correct sign according to ANSI C standard. - Defect #81016 fixed. WriteFlashArray no longer (over)protects the last byte before the ID/User Blocks area. - Defect #81019 fixed. In separate I&D space, RabbitBios.c's interrupt vector, root code #rcodorgs do not collide. - Defect #81023 fixed. HDLC_PACKET driver now correctly tests for bad CRC on incoming packets. - Defect #81024 fixed. XMEM.LIB's paddr() result corrected for fast RAM compile mode bbram variables. - Defect #81026 fixed. In fast RAM compile mode, unreserved battery backed memory regions at the top of the /CS1 RAM are made available to xalloc. - Defect #81030 fixed. Optional user data reserve store no longer possibly collides with xmem code. - Defect #81041 fixed. XMEM.LIB's paddrDS() result corrected in fast RAM compile mode. - Defect #81043 fixed. RabbitBios.c preserves the initial GCSR value to its reset_status variable in all compile modes. - Defect #81054 fixed. In RabbitBios.c, separate I&D space flash compile mode 'DATAORG' double subtraction wastes flash xmemcode space. - Defect #81055 fixed. In RabbitBios.c, separate I&D space fast RAM compile mode 'DATAORG' double subtraction possibly misplaces FS2 flash file system. - Defect #81104 fixed. Now, the default for all compile modes when MicroC-OS is not used is a single 4 KB stack. - Defect #81109 fixed. FS2.LIB's fs_read_pbuf() function preserves the IX register (for use within costates/cofuncs). - Defect #81124 fixed. Run in RAM and run in fast RAM applications were corrupted by errant flash ID access during gflash_setup() and pflash_setup(). - Defect #81125 fixed. Two-flash cloning works correctly, given that each board is equipped with 2*256 KB flashes. Note that two-flash cloning of boards equipped with flashes of any other size is not supported. - Defect #81147 fixed. Control registers for serial ports E and F (SECR and SFCR) are initialized to zero. - Defect #81148 fixed. RN1100 rn_digOutConfig() now saves sourcing and sinking safe states correctly on subsequent power cycles. - Defect #81160 fixed. LP35xx.lib digBankOut() writes correct values on outputs OUT8 and OUT9. - Defect #81149 fixed. Preserved register ix in the _mosi_driver(). - Defect #81142 fixed. Changed is_valid_source() to only reject address if local_only flag is set. - Defect #81143 fixed. Functions is_subnet_net_addr() and is_subnet_bcast_addr() have been changed to check for subnet IP addresses and act accordingly. - Defect #81144 fixed. Eliminated usage of DNSGlobalLock semaphore due to Deadlock issue. - Defect #81145 fixed. uC/OS - related lock leak fixed in resolve_name_start(). - Defect #81165 fixed. Added additional modes of operation (2 and 3) to the serMode function to avoid conflict with the packet and Rabbitnet drivers. - Defect #81166 fixed. Memory devices are explicitly mapped before writes occur in RabbitBios.c, in particular when ZERO_OUT_STATIC_DATA is true. - Defect #81167 fixed. Packet driver initialization is now done prior to igmp initialization, in order to prevent packets from being sent before driver init. - Defect #81143 fixed. is_subnet_bcast_addr() and is_subnet_net_addr() modified for support of non-standard subnet masks. - Defect #81146 fixed. Multicasting caused lockup in board(s) using the ASIX chip. RMBC1,2 registers cleared before aborting remote DMA, as dictated by NE2000 specs. Debugger Bugs - Defect #80807 fixed. All breakpoints can now unconditionally be reset. - Defect #80929 fixed. Single stepping over an lcall to a debuggable pure assembly function with the assembly window open no longer causes stack corruption. - Defect #80958 fixed. Watch data is now correct for a watch that is automatically reloaded at program startup and that is set on the address of a local static variable where global variables are declared between function prototypes and the function in which the variable being watched occurs. - Defect #80963 fixed. Data in af' register is not trashed when single stepping at the instruction level over a jp f,mn instruction. - Defect #80988 fixed. Debugger handles samples that use serial ports E and F correctly. See defect #81147. - Defect #81152 fixed. Disabling watch expressions in GUI now prevents target from allocating space for watch code, which can be seen in Information window. Compiler Bugs - Defect #80904 fixed. Data variables are placed beginning exactly at the top of the data origin. - Defect #80923 fixed. On an RCM3200, the BIOS is only compiled when necessary, not every time a user program is compiled. - Defect #80944 fixed. When a call cannot be inlined for builtin I/O functions, arguments are properly demoted to expected type. - Defect #80951 fixed. Using the interrupt_vector keyword with an interrupt vector name of exactly 11 characters would cause an internal error - Defect #80973 fixed. An empty LIB.DIR would cause a GPF. - Defect #80983 fixed. Dynamic C did not properly handle write-protected BIN files. - Defect #80984 fixed. Variables named "i" or "I" would cause strange errors in assembly code - Defect #81009 fixed. Dynamic C crashes while compiling large xstring table. - Defect #81018 fixed. All origin (incl. #rcodorg) collisions are now detected and reported. - Defect #81027 fixed. Short-circuit evaluation for binaray operators && and || could generate improper fixups if the first operand evaluated to a constant (and thus optimizing out the second operand in some cases). - Defect #81032 fixed. Dynamic C did not properly handle function pointers to inline-I/O functions when inline I/O was enabled. - Defect #81033 fixed. When using inline-C return statements in #asm blocks within functions, Dynamic C would sometimes omit the final return in the function, even though there was valid code between the return statement and the end of the function. - Defect #81035 fixed. Large xdata and xstring tables are no longer truncated to modulo 64 KB. TCP/IP Bugs - Defect #80817 fixed. Long PPP send/expect sequences do not cause overflow of string buffer - new chat.lib implementation. - Defect #80849 fixed. PPP works with separate I&D space enabled. - Defect #80880 fixed. TCP socket data handler does not get zerod out when socket re-opened. Data handler field is persistent. - Defect #81138 fixed. HTTP server no longer gets stuck in closing state for the timeout period when long header lines are received. - Defect #81141 fixed. Filling the ARP cache can no longer disable sending information to remote networks. - Defect #81153 fixed. TCP/IP samples with active opens now properly wait for the interface to come up. - Defect #81155 fixed. arpresolve_start_iface() now checks the ip_iface() return value correctly. - Defect #81161 fixed. Some CGI-related HTTP samples were not working correctly with Mozilla. - Defect #81164 fixed. Multicast can now be used without IGMP support. - Defect #81172 fixed. DHCP support in ZConsole.lib is now fixed. - Defect #81175 fixed. The IFG_DHCP option in ifconfig() now works correctly. GUI Bugs - Defect #80956 fixed. Pasting of text with tabs now handles eol and caret placement correctly. - Defect #80964 fixed. Detection of library files prior to compilation now works for libraries given an absolute path in lib.dir - Defect #80970 fixed. Cut, copy and paste now work in the Evaluate Expression dialog - Defect #80971 fixed. The combo box drop-down lists in the Add Watch and Evaluate Expression dialogs are now updated correctly. - Defect #80978 fixed. Using function help (Ctrl-H) after modifying a library no longer causes a copile to fail. - Defect #80979 fixed. Function help now always shows the function description at the correct starting point after modifying the library of that function. - Defect #80981 fixed. Grepping text in non ASCII files can no longer cause Dynamic C to terminate. - Defect #80982 fixed. Targetless compilation selections now correctly update the Project Options dialog when switching projects. - Defect #80999 fixed. Edit | Go to Line Number... will now always scroll when necessary to put the selected line and caret in view. - Defect #81006 fixed. All changes to the Project Options dialog which require the BIOS to be recompiled now trigger a BIOS recompile. - Defect #81036 fixed. Message window can now be moved while downloading program to RabbitLink. - Defect #81044 fixed. Entering an address into the address field of the memory dump window now puts the main part of the window in focus for keyboard scrolling. - Defect #81049 fixed. The Center Bookmarks checkbox of the Editor tab in the Environment Options dialog now reflects its current functionality. - Defect #81051 fixed. The editor margin now shows all pen styles correctly when pen width is 1. - Defect #81052 fixed. Changing the editor margin position in the Environment Options dialog would error if the field was blank. - Defect #81056 fixed. All legal tab stop values can now be set in the Environment Option dialog without error. - Defect #81057 fixed. The clock cycle sum in the Assembly window is now removed immediately after disabling the sum clock cycles option. - Defect #81058 fixed. The editor syntax highlighting now handles all foreground and background changes correctly. - Defect #81059 fixed. "Dump' has been removed from the 'Open selected' options in the Debug Windows tab of the Environment Options dialog. - Defect #81060 fixed. In the Debug Windows tab of the Environment Options dialog, the 'Show Toolbar' option for the Memory Dump window is now applied to all open dump windows if the 'Apply changes to all' option is checked. - Defect #81062 fixed. The Stdio window was handling printf tabs incorrectly for capacity outputs when Columns exceeded Rows configured in Environment Options. - Defect #81065 fixed. In the Debug Windows tab of the Environment Options dialog, The Show Source and Show File Name in Source Line options show the correct states. - Defect #81066 fixed. The "Show tool bar" option of Memory Dump Winow preferences in the Environment Options dialog now affects all open memory dump windows if the "Apply changes to all" option is checked. - Defect #81067 fixed. Print and Print Preview now display all fonts properly. - Defect #81068 fixed. Print Preview 2 page mode can now zoom/drag either page. - Defect #81069 fixed. Print Preview now truncates all lines properly for any Print/Alerts settings when Wrap Lines is diabled. - Defect #81070 fixed. Clock cycle sums for any line selections. - Defect #81072 fixed. Multiple Memory Dump windows can now be opened and closed without error. - Defect #81074 fixed. A mousedown then mouseup on the last toolbutton of a consolidated toolbar while configuring toolbars no longer produces an error. - Defect #81075 fixed. The control holding toolbars under the menu now becomes invisible when all toolbars are unchecked and visible when any are checked. - Defect #81082 fixed. Syntax highlighting now works for the "xstring" keyword. - Defect #81084 fixed. The grep utility now always exits cleanly. - Defect #81089 fixed. The Project Options dialog edit windows for max errors and max warnings now limit entries properly. - Defect #81090 fixed. The spin edit controls in the Project Options dialog now all work as expected, such as for 'Max watch expressions' in the Debugger tab. - Defect #81092 fixed. Permanent deletion of custom targetless compile board configurations in the Project Options dialog now works properly. - Defect #81095 fixed. Function help (Ctrl-H) can no longer cause an access violation by prepending spaces to the /* START FUNCTION DESCRIPTION *** for that function. - Defect #81097 fixed. RTI files opened in the Targetless tab of the Project Options dialog now correctly reads user defined board ID numbers. - Defect #81100 fixed. Rapidly pressing keys or holding down a key no longer causes problems to programs with I/O intensive loops such as demo3.c. - Defect #81108 fixed. The Replace occurrence message box generated by the Search and Replace dialog now comes up where it was last positioned after initial showing. - Defect #81112 fixed. Assembly window options modified in the Debug Options tab of the Environment Options dialog now revert if the dialog is cancelled. - Defect #81113 fixed. The watch window can now be updated when a program is in run mode and the stop button (Ctrl-Q) now works when in a getchar() loop. - Defect #81117 fixed. The foreground (font) color can now be changed for non-syntax edit windows, in the Display tab of the Environment Options dialog. - Defect #81118 fixed. Changing the Background Edit Mode color in the Display tab of the Environment Options dialog now updates the default Background colors on the Syntax Colors tab. - Defect #81119 fixed. Dynamic C no longer crashes when rapidly changing the "Show Source" option in disassembly window. - Defect #81122 fixed. Inline I/O optimization of function parameter passed into BitWrPortI is now handled correctly. - Defect #81177 fixed. Edit Properties dialog bugs fixed. Center Bookmarks on the Editor now retains checked state, Code Template changes are discarded if the dialog is cancelled, and Syntax Color defaults are now relative to the last scheme loaded. RFU Bugs - Defect #80806 fixed. The RFU no longer reqires write access to the drive from which it is executing and can be run from CD. This fix has been implemented since version 7.26. Other Functional Changes - Existing FTP server programs must now define the macro SSPEC_NO_STATIC. This is due to changes in the underlying ZSERVER.LIB that makes its handling of the HTTP and FTP servers more uniform. In particular, it is now possible to create a static resource table for the FTP server as well as the HTTP server. SSPEC_NO_STATIC indicates that the user is not creating a static resource table. - The macro SSPEC_NO_STATIC is an alias for the old macro HTTP_NO_FLASHSPEC. ***************************************************************** VERSION 8.30-B LIBRARY BUGS - Defect 81081 fixed. ZCONSOLE.LIB has been updated to reflect DNS-related changes. VERSION 8.30 NEW FEATURES - DHCP rewritten to be better integrated into the TCP/IP library suite. You can now use DHCP with multiple interfaces. When you bring the interface up and down, DHCP is automatically applied. There are more ifconfig() options for setting DHCP parameters and less reliance on global variables. For full details, see the library description at the top of lib\tcpip\bootp.lib. The main feature of the old implementation which is no longer supported is the ability to "automatically" download a boot file using TFTP. TFTP is still usable for this purpose, however DHCP will not do it for you. - You can now define multiple home IP addresses on an ethernet interface by defining the macro VIRTUAL_ETH to the number of additional home addresses. You also need to call the virtual_eth() function at runtime to define the new home addresses. See the documentation for virtual_eth() for more details. - New function send_ping_iface() to send an ICMP echo request on a specified network interface. - New function aton2() for better parsing of dotted decimal IP address strings. - Added IFS_NAMESERVER_DEL option for ifconfig() to remove nameserver entries. - The samples\tcpip\dhcp.c sample program now demonstrates a lot of tcp/ip functionality Compiler Bugs - Defect #81025 fixed. Multiple root bouncer stubs were being generated for pointers to xmem functions. TCP/IP Bugs - Defect #80828 fixed. DHCP problem, no longer relevant with new DHCP implementation. - Defect #80942 fixed. Bootfile download has been defeatured from DHCP. - Defect #80953 fixed. In ZServer forms, null termination is no longer off-by-one for updating string variables. - Defect #81021 fixed. sock_abort() now reliably sends TCP RST flag. GUI Bugs Library Bugs - Defect #81029 fixed. Problem with serial port A in separate I&D space. - Defect #81031 fixed. No longer getting intermittent results when reading RN1100 digital inputs. - Defect #81064 fixed. For the Targetless Pulldown, the SRAM size is now correct for the RCM3610 and RCM3710 boards. - Defect 81071 fixed. Boardtype for RCM3410 now corrected. ***************************************************************** VERSION 8.20 NEW FEATURES - Samples, libraries, and documentation added for new RCM3600,RCM3610,RCM3700 and RCM3710 boards. Compiler Bugs - Defect #80975 fixed. Modifying libraries and using function help can cause GPFs in program compilation. TCP/IP Bugs GUI Bugs Library Bugs - Defect #81005 fixed. BIOS compile time unknown dkStackAddress, dkReturnAddress symbol errors when debug's instruction single stepping is disabled. ***************************************************************** VERSION 8.10 NEW FEATURES - Samples, libraries, and documentation for new RN1100, RN1200, RN1300 and RN1500 added. Compiler Bugs - Defect #80980 fixed. Datatype sizes reported in mapfile were incorrect. TCP/IP Bugs - Defect #80965 fixed. SHTML (SSI-enabled) files are no longer corrupted when a short HTML tag is followed by another HTML or SSI tag. - Defect #81001 fixed. RealTek does not auto-negotiate between full and half duplex. Added a warning and driver changes for RCM3000 and SR9150. See Technical Note #237. GUI Bugs - Defect #80954 fixed. Printing a file with the string "_page" somewhere in the text will no longer corrupt the printout. ***************************************************************** VERSION 8.03 Library Bugs - Defect #80960 fixed. BL20xx/BL21xx series boards' User Block information (eg: analog calibration constants) is accessible as situated on those boards. ***************************************************************** VERSION 8.02 NEW FEATURES - DeviceMate libraries and samples have been added. - Enhanced inlining of built-in internal I/O functions. Now WrPortI can be inlined with any expression as its third argument (value). Compiler Bugs - Defect #80938 fixed. Arguments that cause fixups to be generated when used with inlined built-in internal I/O functions no longer overwrite instructions. - Defect #80944 fixed. When a call cannot be inlined for built-in I/O functions, arguments are properly demoted to expected type. Debugger Bugs - Defect #80935 fixed. Debug kernel no longer causes code corruption when debugging from ram. GUI Bugs - Defect #80939 fixed. Backup files are created when a file is compiled (functionality missing since 7.26SE). File is created prior to coldbooting the target. Communication Bugs - Defect #80947 fixed. Downloading a program via Dynamic C to the RabbitLink or ethernet downloads to the RFU using Win95, Win98, or WinMe now work correctly. Library Bugs - Defect #80936 fixed. Port F handles low baud rates correctly. - Defect #80937 fixed. Incorrect reference to port E variable in port F code was removed. ***************************************************************** VERSION 8.01 IMPORTANT NOTE! The default storage class for local variables is now auto. You can change this back to static by placing #class static at the top of your main source file. NEW FEATURES - Gui Editor - Syntax highlighting - customizable via Options | Environment Options | Syntax Colors - Code templates - new templates can be added via Options | Environment Options | Code Templates, and can be inserted into the editor using either ctrl+j or right mouse click | Insert Code Template - Columnar selection - alt + left mouse button will put the editor into column mode - Bookmarks - shift + ctrl + [0-9] will toggle a book mark at the current cursor location. ctrl + [0-9] will return the cursor to that location. - Many preferences can be set via Options | Environment, Options | Editor - "Open file at cursor" command (on right click pop up menu) - Watch expressions can be evaluated in flyover hints Grep - Located under Edit | Find in Files (Grep) allows searches to be performed in directories or in all files open in Dynamic C. Regular expressions and specific file masks can be used. Function Lookup - A tree view of all libraries and all functions (with function descriptions) contained in each library has been added to the function lookup window. - An edit button has been added to the function description window that opens the library in which the function description appears, and positions the cursor at the function description. Debug Windows (General) - Fonts and colors for debug windows can be set on the debug windows tab under Options | Environment, Options | Debug Windows. Fonts and colors can be set on a case by case basis by choosing the desired window name from the window list box. Fonts and colors for the current debug window can be applied to all debug windows by pressing the "apply settings to all" button. - Which debug windows open when a program is compiled can be specified on the debug windows tab. Selecting "Open last used windows" will make dc8 behave like the 7.x releases of dc. Disassembly window - Each column (address, machine code, opcode, and clock cycle) can be resized or completely turned off. - Source line being disassembled can be shown in the window's output - Clock cycle summation can be disabled. - Window can use same syntax highlighting scheme as editor windows. If this option is enabled, the font color and font size cannot be set via the debug windows tab under Options | Environment Options. The font color and font size will only change if the syntax options for the editor change. - A new address can be disassembled via a right click. - The current execution address can be disassembled via a right click. - A highlighted selection can either be copied to the clipboard or saved to a file. Stdio window - This window can be set to automatically scroll vertically and/or horizontally. - Output can wrap at a defined column (default to 80) Register window - This window retains the current style of output, and adds a new view which is selectable either via a right mouse click on the window or on the debug windows tab under Options | Environment Options. If the old style is selected, it is possible to change register contents by right clicking anywhere on the window and selecting "Change Register Value(s)". If the new style is selected, right clicking on an editable register will bring up a menu which allows you to increment or decrement the register, or change the contents by selecting "New Register Value...". Each of the flags can be toggled via a right mouse click. Memory dump window(s) - Multiple memory dump windows can be active at the same time. - More than 128 bytes can be dumped at once. The dump region automatically grows or shrinks as the window size changes. - The Dump at Address dialog box (found under Inspect | Dump at Address...) is sensitive to the type of input entered into it. A 16-bit logical address is entered as a four digit hex number with an optional leading 0x. A 20-bit physical address is entered as a 5 digit hex number with an optional leading 0x. An xpc:offset style address is entered as a 6 digit hex number with a ':' separating the xpc portion from the offset portion. - The Data space and code space radio buttons are only visible if the compiler options have been set to enable separate instruction and data spaces. - As the mouse moves over the memory dump window, the byte under the cursor preceded by its address is displayed in the window caption bar and in a flyover hint. Both of these options can be enabled and disabled independently. - The memory dump window is capable of displaying three different types of dumps. A dump of a logical address will result in a 64k scrollable region (0x0000 - 0xffff). A dump of a physical address will result in a dump of a 1M region (0x00000 - 0xfffff). A dump of an xpc:offset address will result in either a 4k, 64k, or 1M dump range depending on the option set on the debug windows tab under Options | Environment Options. If a 4k or 64k range is selected, the dump window will dump a 4k or 64k chunk of memory using the given xpc. If 'Full Range' is selected, the window will dump 00:0000 - ff:ffff. To increment or decrement the xpc, use the '+' and '-' buttons located below and above the scroll bar. (These buttons are only visible for an xpc:offset dump where the range is either 4k or 64k). - Each window can be set to update or not update after every single step or program pause. - A dump window can be updated via a right mouse click or the button on the windows toolbar. - The dump window toolbar can be hidden. - A highlighted selection can either be copied to the clipboard or saved to a file. Watch window - Watches can be deleted in any order. - All watches can be deleted at once. - Evaluation of a watch (without adding it to the watch list) has been separated out. Use the 'Evaluate expression' button for this functionality. Toolbars - By default Dynamic C 8 shows a set of toolbar buttons very similar to the 7.x releases. However, the buttons are now grouped together by function and separated into individual toolbars. Each toolbar can be repositioned within the main control bar, or can be removed and floated individually. - The visibility of individual toolbars can be toggled through two different means. Right clicking anywhere on the toolbars, or choosing Options | Toolbars, will allow for turning on or off selected toolbars. - All toolbars can be shown by right clicking on the toolbars and choosing "Show All Buttons" or by choosing Options | Toolbars | Show All Buttons. - The visibility of all toolbars can be toggled by right clicking on the toolbars and choosing "View Menu Buttons", or by choosing Options | Toolbars | View Menu Buttons. - All visible buttons can be placed on a single toolbar by right clicking on the toolbars and choosing "Consolidate visible buttons to one toolbar" or by choosing Options | Toolbars | Consolidate visible buttons to one toolbars. - Toolbars can be customized by right clicking on the toolbars and choosing "Customize Button Groups...", or by choosing Options | Toolbars | Customize Button Groups.... This will bring up a dialog box showing all available buttons. Any button can be dragged out of the dialog and placed onto any toolbar in any position. The same button can appear in more than one place if desired. A button can be removed from a toolbar by dragging it away from the toolbar and releasing the left mouse button. Printing - Printing options are located on the Print/Alerts tab of the Environment Options dialog box. These options control the options set via the Setup button on this page or via File | Print Options. - A font different than the editor font can be used for printing - Options include printing a header, footer, numbering pages, syntax printing, word wrap, and definable margins. Other changes - Reverse find - located on the edit menu, will find the next occurrence of the current search string in the opposite direction last set in the Find dialog. - Go to execution point - located on the Inspect menu, will bring into focus the current execution point when in debug mode. - Save all - located on the File menu, will save the contents of all open editors. - Compile mode - Default project source file - located in Project Options | Compiler | Advanced Compiler Options, will compile the specified source file whenever the F5 or F9 button is pressed. If the specified source file is not open, it will be opened. If the specified source file cannot be found, an error will occur. Using this option will allow any source file to be focused when a compile is started. - Alerts - located in Environment Options | Print / Alerts, will cause Dynamic C to flash its icon on the taskbar after a successful compile and download if Dynamic C is not the active application, beep after a successful compile and download if Dynamic C is not the active application, and check the contents of open editor windows and prompt if the contents of any open files have been modified by an external source. NEW FEATURES - Compiler - Assembly list file generation - Located in Project Options | Compiler, a list file will be generated (with the extension .LST) in the same directory as the program source. The list file consists of a complete disassembly of all the code that was compiled with the program, including library code (a separate list file is generated for the BIOS and its associated libraries). The disassembly also includes intermixed source lines, with source file and line information. - #zimport compression - A special form of #ximport, #zimport executes an external compression utility to compress input files at compile time, before download. Support libraries allow for compressed files to be decompressed on-the-fly. See the \samples\zimport sample programs for more information. - Inline builtin internal I/O functions - Located in Project Options | Compiler, when the box is checked, builtin I/O functions (WrPortI, RdPortI, BitWrPortI, BitRdPortI) will be inlined if all arguments are constant. - __lcall__ function prefix. When used in a function definition, the __lcall__ function prefix forces long call and return (lcall and lret) instructions to be generated for that function, even if the function is in root. This allows root functions to be able to be safely called from xmem. __lcall__ has no effect on xmem functions, and use with cofunctions is prohibited. - Mapfiles now include #ximport (and #zimport) information in the global/static data section. - #pragma nowarn - Two forms are allowed that turn off either just trivial (warnt) or all (warns) warnings, depending on an option passed to the pragma. '#pragma nowarn [warnt/warns]' ignores warnings for the next physical line of code only. '#pragma nowarn [warnt/warns] start' ignores warnings until the '#pragma nowarn end' is encountered. The warnt/warns option is not required; if left off, default behavior is warnt. - Compiler now defaults to storage class auto. NEW FEATURES - Other - HTTP.LIB now supports digest authentication. Digest authentication can be enabled by setting USE_HTTP_DIGEST_AUTHENTICATION to 1. See the manual for more information. - Feature Request #335 implemented: You can now have multiple users per web page by setting SSPEC_USERSPERRESOURCE and using sspec_adduser() and sspec_removeuser(). - FTP_SERVER.LIB can now act as a full FTP server with the default handler functions. Define the macro FTP_USE_FS2_HANDLERS to enable this feature. The macros FTP_USERBLOCK_OFFSET and FTP_CREATE_MASK and the functions ftp_save_filenames() and ftp_load_filenames() also control this functionality. - HTTP.LIB supports compressed files. Support is enabled automatically if you #use zimport.lib before you #use http.lib. #zimported files are automatically detected when referenced in the http_flashspec array. Compressed files added through ZSERVER.LIB functions must have the server_mask ORed with SERVER_COMPRESSED. The macro INPUT_COMPRESSION_BUFFERS must be at least as large as HTTP_MAXSERVERS. - The dlm_tcp.c and dlp_tcp.c sample programs now support separate I&D space and also support single 512KB split-flash operation. TCP/IP Bugs - Defect #80820 fixed. The ASIX packet driver was reading from the wrong I/O address in the packet driver. This could cause the ASIX to come up in the wrong duplex or glitch port a. - Defect #80826 fixed. Random overwrite of memory when DHCP packet received. - Defect #80829 fixed. SNMP trap messages being set to wrong MAC address. - Defect #80837 fixed. SMTP servers that send multiple 220 greeting lines no longer cause the SMTP.LIB client to abort sending an email. - Defect #80842 fixed. Auto-negotiation is now properly done in ASIX.LIB. This affects the RCM3200 and now allows full duplex mode to be negotiated. - Defect #80843 fixed. A problem that could potentially cause the reception of packets to stop working has been fixed in ASIX.LIB. - Defect #80858 fixed. SMSC.lib no longer enables the reception of all multicast datagrams in the SMSC chip. - Defect #80859 fixed. sock_init() on the Realtek no longer causes spurious memory writes into xmem or the stack. - Defect #80861 fixed. Buffer overflows in the test_cgi() function in samples\tcpip\http\cgi.c were fixed. - Defect #80911 fixed. sock_gets() will now always wait for a line-termination before returning data (as long as space is available in the user buffer). - Defect #80912 fixed. sock_bytesready() and sock_dataready() will always indicate the remaining data when the other side closes the connection, even when the last data was not line-terminated. - Defect #80914 fixed. Raw connections in VSERIAL.LIB now close correctly and allow later connections. - Defect #80920 fixed. Multi-byte reads with telnet_fastread() in VSERIAL.LIB are no longer garbled. - Defect #80921 fixed. pd_setup_RCM3200CORE() in ASIX.LIB now saves the IX register Filesystem Bugs - Defect #80827 fixed. Filesystem corruption when shifting files to zero size after appending multiple of LS size bytes to file. - Defect #80909 fixed. A 2-flash (DLM, DLP or USE_2NDFLASH_CODE) program that uses FS2 in its first flash won't corrupt the code in the second flash. - Defect #80910 fixed. 2-flash DLP using FS2 in its program flash can format/write file system in its non-"ID/User Blocks" area. Compiler Bugs - Defect #80399 fixed. Single stepping through pure assembly functions in library code now works correctly. - Defect #80455 fixed. Bad stack handling with some integer expressions. - Defect #80616 fixed. The illegal instruction "ld (hl+xx), a" now generates an error. - Defect #80647 fixed. The address of operator (&) did not work properly with auto arrays. - Defect #80652 fixed. An internal buffer limited function argument size. Function arguments may now be of unlimited size. - Defect #80660 fixed. Unterminated conditional directives (#if, #ifdef, #ifndef, missing a #endif) now generate errors. - Defect #80662 fixed. The GUI now checks for the existence of the BIOS before attempting to compile it (in all cases). Previously, if the BIOS was missing, Dynamic C could GPF. - Defect #80690 fixed. Token checking was not suppressed when parsing character constants in assembly. - Defect #80699 fixed. Cosmetic fix to invalid symbol name error message. Previously, invalid symbol names would not be included in the error message in some cases. - Defect #80733 fixed. Using "..." as a parameter for indexed cofunctions now correctly generates an error. - Defect #80735 fixed. Assembly macros containing single quotes occasionally failed with an incorrect error message. - Defect #80758 fixed. C++ comments can now span multiple lines by using the "\" line continuation character. - Defect #80761 fixed. The error message for defining a constant with #class auto enabled was confusing and incorrect. A new error message is now generated for this case. - Defect #80775 fixed. Array dimensions that were too large were incorrectly allowed. - Defect #80778 fixed. Actually a library bug. Using #useix caused the builtin functions BIT, SET, and RES to fail in certain circumstances. - Defect #80782 fixed. Function pointers in xmem with an ximport caused watch expressions to occasionally crash the target. Improvements to target communication and the debugger in DC 8 seem to have eliminated the problem. - Defect #80785 fixed. The extended opcode for "LD HL, (mn)" no longer crashes the target when single-stepping. - Defect #80798 fixed. Root bouncers were not generated for #asm xmem functions. - Defect #80799 fixed. #asm functions could differ in memory mapping between the prototype and the definition. This could lead to a function marked as xmem in the protoype actually being compiled to root - with no warning. - Defect #80800 fixed. The fix for defect 799 also fixed this defect. If the prototype of a #asm function has an "xmem" mapping prefix, and the definition is in a block with no mapping (default=root), an error is now generated. - Defect #80803 fixed. Warnings in unrelated initializers can no longer prevent a watch expression from being added. - Defect #80804 fixed. Macros matching register names now generate warnings. - Defect #80811 fixed. The interrupt_vector keyword now works globally. - Defect #80825 fixed. #ximport now works with relative paths rather than absolute. - Defect #80830 fixed. Warning messages occasionally had strange line numbers that did not correspond to the program or the warning. - Defect #80831 fixed. (1) Watch expressions for string literals now give the actual address of the literal (for strings in the program, does not work with constant initializers). (2) Function watch expressions now give the xmem address of the function, or its bouncer address (if the bouncer exists). (3) Errors in watch expressions do not break following valid expressions. - Defect #80832 fixed. As part of the GUI overhaul, the information window now only displays info for root constants when separate I&D spaces is enabled (root constants do not exist in non-separate I&D mode). - Defect #80835 fixed. The interrupt_vector keyword would generate the ISR jump instruction in user code (instead of the relay) under Separate I&D with #memmap xmem. - Defect #80838 fixed. Cross-referential structures now compile. - Defect #80839 fixed. Structs can now be declared and used to define pointers before the definition of the struct itself. - Defect #80840 fixed. Aggregate member offset incorrect in asm code. - Defect #80844 fixed. The modulus operator no longer allows floating point operands in any case. - Defect #80845 fixed. Character constants are now correctly checked for improper octal values. - Defect #80856 fixed. An off-by-one error in code origin checking did not allow code to completely fill an origin. - Defect #80857 fixed. #xcodorg addresses are now checked and converted to xmem range addresses, with a warning. Previously this conversion was not done, and improper addresses could result in confusing error messages. - Defect #80862 fixed. A bug related to origin follows handling could cause root code to be compiled, but not transmitted to the target. - Defect #80868 fixed. Errors in watch expressions could cause the target to crash when a valid expression was entered later. - Defect #80876 fixed. The compiler will now generate errors if #class is compiled with bad, missing, or extra arguments. - Defect #80878 fixed. Actually a bug with the zcompress.exe utility, #zimport would fail if the directory the import file (and the program) was in contained spaces in its name. This was because the utility did not handle these spaces correctly. - Defect #80901 fixed. Unnecessary nops generated for parameter passing. Library Bugs - Defect #80006 fixed. Run-time math exceptions in watch expressions no longer cause target to crash. - Defect #80721 fixed. HDLCopenX now returns correct value - Defect #80819 fixed. useClockDivider3000's CLKDIV_8 macro value now affects CPU and peripheral clocks equally, consistent with other CLKDIV_x macro values. - Defect #80824 fixed. RFU can load USE_2NDFLASH_CODE program BIN file that crosses ID/User Blocks at the top of primary flash. - Defect #80841 fixed. Pilot BIOS protects appropriate size of ID/User Blocks for both mirrored and non-mirrored versions. - Defect #80846 fixed. Error logging was broken in Compile to Flash, Run in RAM, non-Separate I&D mode. - Defect #80850 fixed. LP35xx.lib. Modified sequence of configurations when switching between main oscillator and 32khz oscillator in powerMode(). C code converted into assembly code. - Defect #80851 fixed. Much improved keyboard response when STDIO redirected to serial port A. - Defect #80852 fixed. The con_put() command in ZConsole.lib will now work with files larger than CON_BUF_SIZE (1024 by default). - Defect #80854 fixed. Target sometimes gets watchdog reset when switching from 32 KHz oscillator to main oscillator. LP35xx.lib powerMode() revised to match and useMainOsc() removed from brdInit(). - Defect #80855 fixed. The con_createv() command in ZConsole.lib now creates INT32 type variables correctly. Previously, it used the value as the format specifier, so that the variable always displayed with the original value, even if changed. - Defect #80864 fixed. Writing to the User Block on supported large and/or nonuniform flash types works correctly. NB: The user is cautioned that a single sector erase on these types of flash may take up to two seconds, during which time no interrupts can be serviced! - Defect #80874 fixed. LP35xx.lib. Corrected calibration start addresses for differential and milli-amp inputs. - Defect #80875 fixed. RCM34xx.lib. Corrected calibration start addresses for differential and milli-amp inputs. - Defect #80886 fixed. Applications which are compiled to and run in RAM and use separate I&D space can map in and write to flash. - Defect #80890 fixed. Assembly level single stepping over a relative jump in the e000-e0ff range resulted in bad jump. - Defect #80891 fixed. Assembly level single stepping over a relative jump no longer trashes the af' register. - Defect #80903 fixed. INTVEC_BASE and XINTVEC_BASE are now correctly located in FAST_RAM_COMPILE mode, with or without separate I&D space. - Defect #80908 fixed. Debug kernel no longer causes stack leakage when single stepping through a ucos program compiled for separate I&D. Gui Bugs - Defect #80021 fixed. The task bar no longer fails to come up after a print preview when Dynamic C is in full screen mode. - Defect #80238 fixed. The preview text is no longer affected by invoking and accepting the Properties dialog from the Printer icon within Print Preview. - Defect #80306 fixed. The cursor no longer moves when using the horizontal scroll buttons. - Defect #80620 fixed. Setting a breakpoint in a pure assembly function no longer causes another window to pop/open up. - Defect #80673 fixed. Memory dumps to text file is now correct for large amounts of memory. - Defect #80689 fixed. Disassembly window now correct for 00:e000-00:ffff address range. - Defect #80772 fixed. Dumping entire flash from Inspect | Dump at Address now works correctly. - Defect #80780 fixed. The Defines window in the Project Options dialog accepts multi-line entries that do not word-wrap, including pastes. - Defect #80853 fixed. Ctrl+F2 correctly restarts a program being debugged via a RabbitLink without loss of communication. - Defect #80860 fixed. The Assembly window now treats the n offset in (sp+n)-style instructions properly, as an unsigned value. - Defect #80866 fixed. Gui "Include RST 28 Instructions" and compiler "DEBUG_RST" macro now synchronized properly. Other Functional Changes - Changed TCP/IP target communications to use the sock_xfastread/write functions to improve performance. - Commented out unsupported hybrid word/byte mode flash types in FLASHWR.LIB and in FLASH.INI which were originally added in error. - The User Block maximum size limit on supported flash types has been increased to 64KB. NB: The actual size of a User Block on supported large/nonuniform sector flash types is determined by the sector map of the particular flash device. - Compiling via F5 or F9 may not display BIOS warning messages. Use Ctrl-Y to check if warnings are generated during the BIOS compile. Known Problems - Some computers may have trouble displaying the I/O register help file (Registers.chm) and/or the main Dynamic C help file (dcw.hlp). Please contact Rabbit Tech Support for the files needed to update your system. ***************************************************************** VERSION 7.34P2 OTHER FUNCTIONAL CHANGES - Added support for RCM3220 core module. ***************************************************************** VERSION 7.34 BUG FIXES Compiler Bugs - Defect #862 fixed. A bug related to origin follows handling could cause root code to be compiled, but not transmitted to the target. - Defect #877 fixed. GetVectIntern, SetVectExtern3000, and GetVectExtern3000 were broken under I&D space. Library Bugs - Defect #879 fixed. The writeUserBlock function could overwrite a version 2 ID Block. TCP/IP Bugs - Defect #859 fixed. sock_init() on the Realtek no longer causes spurious memory writes into xmem or the stack. - Defect #861 fixed. Buffer overflows in the test_cgi() function in samples\tcpip\http\cgi.c were fixed. ***************************************************************** VERSION 7.33P3 BUG FIXES Library Bugs - Defect #848 fixed. LP35xx.lib xxxAlert() functions timeout early. OTHER FUNCTIONAL CHANGES - Added support for BL2500 with RCM3200 core module option. - Added support for EG2110 Rabbit Link. ***************************************************************** VERSION 7.33TSE2 Library Bugs - Defect #847 fixed. Fixes BL2500 analog input conversion by increasing time thus allowing circuitry to settle between the 10-step approximations. Increases