2/14/20 WHAT'S NEW IN THIS RELEASE? The CLOSE.ECI command terminates all External Call Interface child processes started by the process in which the command is executed. For compatibility with other systems, QM now supports the DECATALOG command to delete a local catalogue entry and its object code. The LIST.READU and PSTAT commands now show the time at which a blocked process started waiting for a lock. This information is also returned by the QMBasic GETLOCKS() function. The SED editor now has split up and split down functions to allow movement of the split point in a split window. An optional $VLIST control record has been added to dictionaries and the VOC to ovreride the default determination of the name column width. A vertical mode query processor report now makes it easier to distinguish between multivalued data and a long line that has wrapped. In the latter case, the colon before the data is omitted on all but the first line. A new $MODE setting, TIME.MS, has been added to cause TIME() and SYSTEM(12) to return the time to millisecond precision as a floating point value. A new $MODE setting, STRICT.EQUATE, has been added to show a warning if the token name set by EQUATE or $DEFINE is also a statement name, function name or reserved word. The QMBasic GET statement reads data from a device, typically a serial port. The QMBasic INPUTIF statement returns any data in the type-ahead buffer or in the DATA queue. For improved compatibility, the QMBasic STATUS statement now returns field 27 as the file pathname. The QMBasic SYSTEM() function key 35 (SYS$USERS) returns the current number of users. The QMBasic SYSTEM() function key 1083 (SYS$DEADLOCK) returns information about the most recent deadlock for use where an application catches the deadlock exception. Several tools to assist in migrating to QM and procedure documentation have been added. BUG FIXES IN THIS RELEASE A complex sequence of events could cause a file corruption when starting a phantom process. The CLEAR.FILE command and equivalent QMBasic statement ignored the NO.RESIZE flag on the file. The compile time check that the argument to INMAT() is a matrix has been removed so that INMAT() can be used with a data collection where the topmost element is an array. A QMBasic expression using an unquoted numeric format code could be mis-parsed by the compiler. The QMBasic JPARSE() function should not be accepting a non-default NLS decimal separator character in numeric values. Users could get a "login is currently inhibited" message if a previous shutdown of the QMSvc service failed because a QM process was not responding to a termination request.