UX-BASIC™ Overview
UX-Basic™, a structured BASIC for UNIX® and DOS, is a powerful multi-user programming language available on a wide range of computers. Specifically designed to take advantage of the UNIX system, it meets the needs of OEM's, VAR's, dealers and programming professionals. It provides all the standard BASIC features plus many extensions. Software developers world-wide have chosen UX-Basic to develop their applications, and leading manufacturers have offered it as a standard programming language. UX-Basic is the choice for portability, productivity and power in UNIX. The value of your investment in software development is protected as applications may be run on a full range of computers, terminals and versions of UNIX and DOS.
UX - Basic

UX-Basic Info

Date Enhancement Notice

UX-Basic was designed for business and scientific applications in UNIX and DOS. It is a feature packed development tool giving professional programmers the ability to quickly create highly readable modular code.

Features include:
  • Full Featured, Syntax-Checking line editor;
  • On-Line help;
  • Industry Standard ISAM indexed files;
  • Structured Programming Extensions;
  • Meaningful Error Messages;
  • Record and File Locking;
  • Interactive debugging tools;
  • Extensive Business Formatted Output;
  • Powerful Screen Handing Commands;
  • Date and Time functions;
  • 13 Digit Precision BCD Arithmetic;
  • Three Level Sub-fielded strings;
  • High-level scientific and mathematical functions;
  • Bit Manipulation;
  • Sixteen Dimension Arrays;
  • Expanded Matrix operations;
  • One-step Array Assignment;

...and much, much more.

Version 2.54a is currently available for the following operating systems:
  • AIX
  • SCO Openserver
  • Solaris 7 for Intel
  • Solaris 7 for SPARC
Version 2.55a is currently available for DOS.

G & Z Systems is a source code licensee and Worldwide Provider of UX-Basic. Please call for current pricing, platforms supported, and maintenance and support policies and options.

UX-BASIC Date Processing Enhancement Notice
The primary goal of this enhancement to UX-BASIC is to repair an issue that occurs when the system date is in the 21st (and beyond) century. The issue manifests as the system year being reported as "100" instead of "00". Thus, 01/01/2000 will be displayed as 01/01/100, 2001 as 101, and on. The intention of the enhancement is to make it work as documented in the UX-BASIC manual:

    "If the year is in the same century as the system date, DATE$ [or DTE$] returns only the last 2 digits of the year. If the year is not in the same century as the system date, DATE$ returns the full year number"

However, there may be code which relies on the old implementation that 19nn years are always two-digit, while all others are four-digit. Some programs may benefit by being re-coded to always expect four-digit years. Some programs did not anticipate the need for four digit years in their input fields but did utilize the DAY and DTE functions for manipulating, storing and restoring dates. Provided that such programs manipulate only a narrow band of dates they would benefit from a solution commonly called a sliding frame century. The sliding frame century allows for the setting of an environment variable that sets a range of 100 years that will be considered the current century such that all dates that fall within that band will be handled as two digit years while all others would be four. The user relies on his/her knowledge of the application to determine which actual century a two digit year belongs. A new environment variable has been introduced for UX-Basic to facilitate a sliding frame century. The following is the name and settings:


This will determine what is meant by "current century" for the purpose of determining whether DATE$ and DTE$ set a two- or four-digit year. The default is ACTUAL which will rely on the system time to determine the current century which is the intention of the documentation. Coding NONE will cause the DATE$ and DTE$ functions to always return a four-digit year. Coding the 19nn setting will permit the user to determine an arbitrary end point for the current century. E.g. the user might code 1900 in which case DATE$ and DTE$ will work as they would today and into the 21st century if UX-BASIC were unchanged. Coding 1950 would mean that the "current century" begins in 1950, so the following occur:
Possible Testing Methodology A typical user might perform the following tests after installing this new version of UX-BASIC into a test area of his/her machine and to be applied against test data prior to production use:
  1. Set the date on the machine to 01/01/2000, or any date after 1999.
  2. Run suspect programs to note any date problems.
  3. If problems are detected, set UXB_CURR_CENT to 1900.
  4. Re-run suspect programs and see if date errors persist.
  5. If so, examine BASIC code to see where two-digit dates are being assumed or referenced.
  6. If problems are localized, try to convert code to deal with four-digit years, and set UXB_CURR_CENT=NONE.
  7. Otherwise, if the application deals with a narrow range of years, set UXB_CURR_CENT to a year where the programs can deal only with two-digit years. E.g. if your application only has records starting in 1980, set UXB_CURR_CENT to 1980.

No HOME button on the left side of your page?
Click here for Our
Home Page