Thoroughbred Basic™Thoroughbred Basic™

Contact Us  |  Enhancements  |  Changes

NOTE: There are new installation instructions for TS Environment for Windows and TS Network Basic with DataServer. It is important that you review the updated Installation manuals before installing product.

Enhancements [up]


  1. Support for Vista and 2008 Server.
  2. Support for 64-bit memory models.
  3. Added XML functions to the TFF() function that produce an XML formatted string from fields in a FORMAT or use an XML formatted string to update fields in a FORMAT.
    Click here for more detailed information.
  4. The UNIX Time Zone information will be used if there is no TZ environment variable.
  5. Added support for Disk Directories Da through Dz.
  6. Added new TCB() functionality:
    • TCB(1) returns the number of available entries for Public Programs.
    • TCB(2) returns the channel of the last error except channel 0.
    • TCB(40) returns the sort number that generated the error 107.
    • TCB(41) returns the sort field that generated the error 107.
    • TCB(42) returns a value that represents the reason for the error 107 :
      • -1 No sorts defined or the specified sort is not defined
      • -2 Invalid sort field
      • -3 Error during the numeric conversion of the sort field. See TCB(43) for the Basic error code.
      • -4 Error during I/O. See TCB(43) for the Basic error code.
    • TCB(43) returns the Basic error code that generated the error 107. See TCB(42).
  7. ATR() option 29 now returns the element number of a data name in a format.
  8. Added -v option to ghoststat to display program version.
  9. Improved single-thread mechanism for Journals.
  10. Added user-count increments 12, 224, 320, and 384.
  11. Allow Y/N fields to be blank if input type is optional.
  12. New messages in TSICONST.INI.
  13. Expanded maximum record size in IPLINPUT from 80 to 150. The last argument on DEV records can be up to 128 characters.
  14. DEV= on OPEN maximum string length is increased to 166.
  15. Startup message, "GHOST task name must be G0-G9, GA-GZ or Ga-Gz" now includes Ga-Gz on UNIX systems to reflect supported ghost tasks.
  16. Assignments to and from Variable formats. For example:
    LET #FMT1$ = #FMT2$ & %AFMT3$
    LET #FMT$ = STR$
    LET STR$ = #FMT$

  17. Reference: Link Trigger
    An error message can now be set to ERR=99 in the Common Global Variable (CGV) "OOIO_ERROR" so that prior to the exit from the IO trigger (OOIO) you can return a message or a CONNECT METHOD with an optional parameter value. For Example:
    LET OOIO$[0]="99";
    LET OOIO$[0]="99";

  18. PRM NOSTRERR disables the possible error 41 and error 43 conditions returned by STR(,NTP=,SIZ=) when validating numbers.
  19. Additional Date Type 8 combinations ... 5.4, 6.5, 8.7, 9.8, 12.5, 13.6, 14.7 and 15.8. See the Dictionary-IV Developer Guide.
  20. Improved performance for Journaling. If an update of a record is rewriting the exact same record, it is not written to the file Journal.
  21. Server sockets for Basic. Allow Basic to start with SOCKET=port parameter.
    Click here for more information.
  22. Added CHECK option to OPEN,OPT=DLINK to validate file names specified by the DATA-FILE=, SORT-FILE= and TEXT-FILE= options.
    Click here for more information.
  23. The length of device names on DEV records in IPLINPUT is now checked. Terminal names (Task-Id) may be 2, 3, or 4 characters. All others must be 2 characters.
  24. INF(2,0) returns the current user count limit.
  25. INF(2,1) returns the Installation Code.
  26. CVT() Option 32768 removes trailing nulls then trailing LF and CRLF.
  27. New Basic Utility AEDPUB
    This utility performs a sanity test on the key block structure for Auto-expanding key files. This utility will identify files with potential key block and deleted key block problems (ERR=7). This is a public program that you call passing in the file name to analyze.
    MSG$[0] - Result:                                        
                 "." if successful completion without error 
                 message text if an error                    
    MSG$[1] - File name to check, prompt if empty            
    MSG$[2] - Location of key in records, "0" = don't check  
    MSG$[3] - "Y" = Check allocation, default = "N"          
    MSG$[4] - "Y" = Show progress, default = "N"             
    MSG$[5] - "Y" = Show summary, default = "N"    

Windows Only

  1. The size of the physical window can be set in the [BASIC] section of TSI.INI using window_hsize and window_vsize. Defaults remain 132 and 24. The "number of lines" setting in TCONFIGW must match window_vsize to avoid scrolling problems.


  1. On OpenVMS, a non-existent record now returns a record of all nulls.

Changes [up]


  1. Unused BOOT directive replaced with NOOP.
  2. OPT="" on OPEN is now ignored.
  3. A problem with CLOSE(numeric-variable) closing all channels when the value in numeric-variable is 0 has been fixed.
  4. Changed start up message to the correct default of 100 for PRM PUBLICS.
  5. DUMP IPLCONFIG now displays the DST information correctly in Ghost Tasks and when DST information is included on the CNF record in IPLINPUT.
  6. PRINT or WRITE a string array using [ALL] now returns the correct number if an error occurs.
  7. TSK(1) correctly returns task names longer than 2 characters.
  8. NTD() now correctly produces fractional seconds.
  9. ATR() produces an ERR=41 if the elem-number or attr-number is less than 0.
  10. In the string returned by the DSD(), the flag for sub-directories, stored in position 6, has been changed to return the sub-directory flag from the IPLINPUT file. A value of 1 represents a 3-character sub-directory.
  11. The DSD string option of ENABLE as been enabled for all operating systems.
  12. A problem causing an EXTRACT of the first text field record when using OPT=DLINK and the end of the file is reached has been fixed.
  13. A problem returning an ERR=162 in ERRBUF when you do not INCLUDE a format ALIAS has been fixed.
  14. A problem causing SAVE to return an ERR=10 when saving a new program containing format aliases has been fixed.
  15. Multiple problems re-including a format when the dictionary is accessed via a Network DataServer have been fixed.
  16. A problem reporting an error 107 from the Network DataServer has been fixed.
  17. A problem with OPT=DLINK returning the key of an extracted record via a Network DataServer has been fixed.
  18. A problem with OPT=DLINK|CREATE returning an error condition has been fixed.
  19. A problem with OPT=DLINK overwriting %FORMAT data during I/O has been fixed.
  20. A problem in OPT=DLINK validating the yes/no field of a format containing field separators has been fixed.
  21. A problem with OPT=DLINK removing secondary keys has been fixed. Note that all numeric sorts MUST be rebuilt.
  22. A problem with OPT=DLINK losing the first key while reading secondary keys has been fixed.
  23. A problem with OPT=DLINK that prevented FORMAT INIT from initializing a format has been fixed.
  24. Problems with OPT="DLINK" not recognizing all secondary keys have been resolved.
  25. Problems caused by error conditions with ERASE,OPT="DLINK" and RENAME,OPT="DLINK" have been resolved.
  26. A problem with OPEN,OPT="DLINK|CREATE" not creating the secondary key file of a link with only 1 secondary key has been fixed.
  27. Problems with OPT="DLINK" processing links with secondary key sizes greater than 99 characters have been resolved.
  28. Problems with OPT="DLINK" processing SORT records have been resolved.
  29. An error 13 is issued if an INPUT directive causes output to a DIRECT file without a KEY= or IND= or previous EXTRACT.
  30. A problem with RENAME on TS Network DataServer when the client uses PRM JOURNALING has been corrected.
  31. A LOCK directive can only be released by an UNLOCK or CLOSE on the same channel.
  32. ERR=20 is issued when an FST() used in an Input/Output statement would corrupt channel data.

OpenVMS Only

  1. Problems releasing extracted SORT records have been fixed.
  2. Multiple problems processing files you OPEN with OPT=DLINK have been fixed.
  3. Problems when you PREAD through an MSORT file have been fixed.

Windows Only

  1. Serial Ports now work when using the Telnet Basic.
  2. A problem unmarking highlighted text after the mouse is moved outside of the Basic window has been fixed.
  3. A Web Basic problem with READ(0,TIM=T) R$ without an established connection no longer prevents other Basics from starting and the TIM= value is now recognized.
  4. A problem where the terminal and printer fonts were changed when canceling out of the font selection dialog has been fixed.
  5. A problem with ROLLBACK after a REMOVE on a file accessed via a Network DataServer has been fixed.
  6. A problem with XCALL crashing Basic has been fixed.
  7. A CLOSE will no longer release a LOCK if the file is open on another channel.