This README.TXT file documents the changes made to the PCOS C SDK API Library =============================================================================== 3.61 =============================================================================== Summary Maintenance release. New Features/Changes - None. Fixed Problems - Added missing "stub" functions that would cause a non-Xinu application not to link. =============================================================================== v3.60 =============================================================================== Summary Maintenance release. New Features/Changes - Requires a BIOS with "library version" of 3.41 or later. - Added support for hardware and software handshaking on COM ports 3 thru 6. - Added BiosType() function. Fixed Problems - Made communication API functions thread safe. - Added small delays to RTCInit() macro to fix initialization failing at high temperature. - Removed EFR restore capability that was causing a COM port to stop responding after a ComOpen()/ComClose() cycle. - Fixed bug in ComBytesToMs() macro that was cras communications at 300 baud. =============================================================================== v3.51 =============================================================================== Summary Maintenance release. New Features/Changes - Added support for determining I2C EEPROM type. Fixed Problems - None. =============================================================================== v3.50 =============================================================================== Summary Maintenance release. New Features/Changes - Added support for using the CMOS RTC as the tick timer on the PC. - Changed type cast on AbsToFar to a void far pointer. Fixed Problems - None. =============================================================================== v3.40 =============================================================================== Summary Maintenance release. New Features/Changes - Added MTOS semaphores to RTCRead() and RTCWrite(). - Changed ComLastRcvTime() to ComLastRcvTimeGet(). - Added ComLastRcvTimeUpdate(). - Added huge memory model support. Fixed Problems - None. =============================================================================== v3.32 =============================================================================== Summary Maintenance release. New Features/Changes - None. Fixed Problems - The system timer would stop when a call to a nested application returned. The WDT status register is now restored when an application terminates. - Spurious interrupt vectors are also restored for IRQ7 and IRQ15. - System timer functions ( i.e. SysTickRead() ) could return corrupted values due to a compiler optimization error. =============================================================================== v3.30 =============================================================================== Summary Maintenance release. New Features/Changes - Added message that prints to console when power fail interrupt is detected. - Moved ISR chaining features on INT2 to the 4300 API. Fixed Problems - =============================================================================== v3.22 =============================================================================== Summary Maintenance release. New Features/Changes - A handler for power fail interrupt has been implemented. When an impending power fail is detected, the CPU is halted. Note that the CPU does not reset after a "brown out" because the current hardware does not support this. (Power must drop all the way to the reset level then rise again before the CPU will reset). The function PowerFailInit() is used to initialize the power fail interrupt handler. Fixed Problems - The function EepromInit(), which makes a software int call, is no longer automatically called at startup. It is now called the first time EEPROM is accessed, in case the PCOS BIOS is not being used. =============================================================================== v3.21 =============================================================================== Summary Maintenance release. New Features/Changes - Added two API functions to adjust CPU clock between 33Mhz (default), 25MHz and 8MHz: CpuClockSpeedSet() and CpuClockSpeedGet(). Fixed Problems - Fixed NVRAM allocation errors with compiler versions BC31 and TC30. =============================================================================== v3.20 =============================================================================== Summary Maintenance release. New Features/Changes - Added I2C bus functions for accessing EEPROM on newer PCOS variants (functions absorbed from ICL-4300 API library). - Changed Vers.h to VersPcos.h two avoid conflicts with other ICL libraries. The #define API_VERSION was also changed to VERS_PCOS. Fixed Problems - Incorrect makefile version was being copied into bc50 directory for pwrdown example. - Fixed problem that prevented including pcos.h in cpp file. =============================================================================== v3.13 =============================================================================== Summary Maintenance release in support of PCOS BIOS v3.10. New Features/Changes - Added BiosCfgPtr() and BiosConsoleGet() functions. Fixed Problems - Removed all "static const" declarations which seem to cause random fixup overflow by the linker. - Fixed bug in FarToAbs() macro. - Updated Flash functions in Am29fxxx.c to properly push/pop the registers which are used in inline assembly code. - Fixed bug in calculation of NVRAM base addess (specifying 512K would start at address 0x7fC00 which is standard RAM). =============================================================================== v3.12 =============================================================================== Summary Minor maintenance release. New Features/Changes - Added PC detection to PCOS BIOS version detection routine. - Added override of BIOS detection via function stub ( void Pcos( void ) ). - Changed SysTickUserFnct() to SysTickCyclicFnct(). - Added SysTickTimeoutFnct(). - Removed all floating point operations from API. - Removed environmental variable override of WDT initialization. Fixed Problems - None. =============================================================================== v3.11 =============================================================================== Summary Minor maintenance release. New Features/Changes - Added tComRcvBuf "Communications receive buffer", which implements a "rewindable" buffer. Fixed Problems - None. =============================================================================== v3.10 =============================================================================== Summary Minor maintenance release. New Features/Changes - "Nine-bit" serial communications added. - Changed I2CByteRead function to EEByteRead. - Changed I2CByteWrite function to EEByteWrite. - New function DelaySec added to give seconds-based delay. Fixed Problems - Serial port control signal access functions did not work unless the port was open. Now they work even when the port is closed. =============================================================================== v3.00 =============================================================================== Summary Support for PCOS Super Size added. Requires BIOS version 3.01 or later. New Features/Changes - Support added for Super Size PCOS (flash memory and NVRAM). - The serial communications ISR and timer ISR were optimized for speed, increasing overall efficiency and increasing highest acceptable baud rate on COM1/COM2 (which have no FIFOs). - Support for use of the transmit FIFO was added in the serial port routines. - The interrupt priorities were rearranged, to give COM1/COM2 highest priority. This allows COM1/COM2 to handle higher baud rates. - Added tDoubleBytes typedef to ICLTYPES.H for access to bytes of a double. - Debug information is now stripped from the libraries/object modules. - Added support to time-stamp bytes received on COM ports. - Com7 is no longer configured for a 4X baud clock, changed to 1X to match hardware change. - Support added for watchdog timer. - Added function to determine the number of bytes in the transmit buffer for serial communications. - The efficiency of ComWaitUntilXmtEmpty was improved when used with XINU. - Functions for determining the BIOS version were added. - I2C bus access functions were added. - Added signed data types to the typedef tDataType. Fixed Problems - Problem in library makefile was causing libraries to be compiled as 8086 for all compiler versions, as opposed to generating 80386 code for 4.5 and 5.0 compilers. - LSR error (framing, parity) status was not being checked in ComWaitUntilXmtEmpty(). - Changed library makefile to cause in and out I/O instructions to be generated inline, instead of using function calls (which is the default behavior in BC 5.0). - Added support to handle additional interrupt source cases in COM ISR (Receiver Line Status, Modem Status). Normally these cases should not occur, but will handled now if they ever do. =============================================================================== v1.30 =============================================================================== Summary Maintenance release. New Features/Changes - Support for COM7 added. - ComReadStatus and associated enums changed to support multiple error values. Each bit in value no represents a different error. - Enabled transmit and receive FIFO usage on COM3-COM7 to reduce interrupt rate and allow higher baud rates without receive overruns. - Revamped Com ISR to process received bytes first, reducing likelyhood of receive overruns. - When used with XINU, ComWriteBytes and ComWriteString now use a more efficient waiting process, if no room in available in transmit buffer, to allow other threads more CPU time. - ComReset now sets port status to normal. Fixed Problems - Whenever the UART LSR register was read, the value was not always checked for parity/rcv overrun/framing errors. Thus some errors could be missed and not reported via ComReadStatus. - Receive overflow (data being received faster than application is reading it from software buffer) was not being recorded.