This README.TXT file documents changes made to the ICL XINU C SDK API Library =============================================================================== v1.50 =============================================================================== Summary Maintenance release. New Features/Changes - Increased max length of thread name from 9 to 16 characters. - Changed dynamic memory allocation system so that unused memory is available to DOS for system calls and the like. Previously, Xinu had allocated all available DOS memory for itself and then allocated memory as needed from that pool. Now, Xinu calls DOS memory allocation functions, protecting them from reentrancy with a semaphore. - Added XAvailMem function that returns the number of bytes of available memory. - Protected several additional runtime library functions against reentrancy: putc, kbhit, getch and system. Expanded list of unsupported runtime library functions that generate compiler errors. Fixed Problems - None. =============================================================================== v1.43 =============================================================================== Summary Maintenance release. New Features/Changes - None. Fixed Problems - v1.42 was improperly released - had files from development branch instead of maintenance branch. =============================================================================== v1.42 =============================================================================== Summary Maintenance release. New Features/Changes - SemShutdown function added - waits on semaphore, deletes it, and sets semaphore ID to kXinuIllegalSemID. - Added ThreadKillAll function - kills all but the current thread. - Added stat function to list of thread protected runtime library functions. - Vers.h was renamed VersXinu.h to avoid conflicts with other ICL libraries. Fixed Problems - Made it so application program can call exit and have it kill all threads, clean up properly and exit to DOS. =============================================================================== v1.41 =============================================================================== Summary Maintenance release. New Features/Changes - Added XAvailMemPara() function, which returns the number of (16-byte) paragraphs of free memory in the Xinu heap. - Added XSetRsvdMemSize() to allow DOS memory to be reserved (not included in the Xinu heap). This was added to support DOS system() calls while Xinu is running. Fixed Problems - None. =============================================================================== v1.40 =============================================================================== Summary Maintenance release. New Features/Changes - vprintf was added to the list of "protected" (made thread-safe) runtime library functions. - Debug information is now stripped from the libraries. - Increased the initial thread stack from 2048 to 5000 bytes. - Added functions to get and set thread priority. - Added error message printout if stack overflow occurs. - Added new value kIllegalSemID to represent illegal semaphore ID. Fixed Problems - Eliminated a narrow window of vulnerability in the timer ISR, which could allow other interrupts to occur at a time when they would not be handled properly (could cause thread/system lockups). - Problem in 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. - Changed 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). This reduced execution time in timer ISR. =============================================================================== v1.30 =============================================================================== Summary Maintenance release. New Features/Changes - None. Fixed Problems - Communications lockups could occur at high baud rates when multiple COM ports were used simultaneously.