VX/FMS
VX/FMS is an implementation of DEC's VMS Forms Management System for Linux/UNIX.
Features
Introduction
Functionality
Form Driver
User Action Routines (UAR)
VX/FMS Compiler
Terminal Support
Supported FMS Service Calls
Features
VX/FMS supplies all features of the original VAX/VMS system. Supported features include, but are not limited to:
- Scrolled areas
- Named data
- Overlapping forms
- Double-wide, double-high characters
- 132-character mode
- Help forms
- UAR-routines
VX/FMS supports all VT-terminals (VT100 or higher) and DECwindows DECterm. VX/FMS is a fully functional implementation of VAX/FMS and can be run as a stand-alone product. For programs that take full advantage of VMS, VX/FMS is designed to be fully integrated with VX/RT Sector7s VMS run-time support libraries for Linux/UNIX.
Introduction
Forms developed with FMS were intended to run only on VAX computers with the VMS operating system. The complexity of FMS, together with VAX/VMS, specific run-time dependencies and platform-specific programming language interface constructions, effectively prohibited (until now) the porting of FMS-created forms. VX/FMS includes a complete set of language interface utilities, which facilitate the changes necessary to complete the linking process. VX/FMS interface utilities are available for the following programming environments:
- FORTRAN (several dialects)
- VAX C and Standard C
- COBOL (several dialects)
- VX/BASIC (VAX BASIC)
- B-Tran/B2 (PDP-11 BASIC)
Utility procedures provide system-independent routines that complete (as required) include statement changes, integration of VAX-descriptors, call name changes and argument list completion.
Functionality
Forms using VX/FMS allow the programmer to use the following features of DEC's VT family:
- Individual character attributes (reverse video, bold, blinking, underline)
- Line attributes (double-width, double-height, scrolled)
- Screen-width attributes (80 and 132 column lines, reverse video)
- Alternative character sets (also vt100 special graphics characters sets for line drawing)
The ASCII-form description (FLG-files) are translated by the VX/FMS compiler into an internal format binary file. These binary files are used to display forms and validate user input at run-time. It is not necessary to modify the application program after modifying of the form description.
VX/FMS applications are using the run-time system to display forms and their associated data fields and to control the I/O stream. The entire terminal I/O is passed through ASCII strings.
Form Driver
The Form Driver is the run-time component of VX/FMS. The Form Driver's subroutine set provides tools for terminal input and output, display of forms, manipulation of the screen, basic input validation and formatting, calling UARs and responding to the terminal operators, requests for help. Input and output can be specified one field at a time or on a whole-form basis.
User Action Routines (UAR)
User Action Routines (UARs) are procedures written by the user in any DEC-supported programming language. UARs are associated with forms and fields during the creation of form data structures and are automatically called by the Form Driver under the following conditions:
- When processing for a field is finished
- Before and after processing the terminal operator's help request
- When the terminal operator presses a function key
- When a screen refresh operation is requested
The Form Driver transfers program control to the UAR under the circumstances defined. The UAR has a parameter string of 80 characters (defined as part of the form) to get processing information and the current Form Driver context.
VX/FMS Compiler
The FMS mask description language is a free-form, keyword-oriented, declarative language that provides the means to create and modify source from description with a text editor or FMS/Edit (VMS). The VX/FMS compiler translates this text file into a binary file, which is used at run-time. VX/FMS Vector is used to generate an object module containing a vector table of addresses that point to the UARs linked with the application program.
Terminal Support
VX/FMS does not use curses, termcap or terminfo. All terminal drivers are C-based routines that have been built into the VX/FMS system to provide efficient portability. VX/FMS can not define any terminal capabilities by external file.
VX/FMS supports VT100 and upward compatible VTxxx terminals. DECterm under DECwindows on Digital workstations is also supported. Support for non-VTxxx terminals is provided on an as-needed basis. VX/FMS uses ANSI-capabilities connected with a console terminal for SCO environments, and HFT-commands for other RISC-based systems. Some restrictions may apply.


