VX/FMS

Register to Download a Free 30-day trial for Unix

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:

VX/FMS supports all VT-terminals (VT100 or higher) and DECwindow’s 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 — Sector7’s 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:

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:

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:

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.

List of Supported FMS Service Calls

(Click here for a list of supported FDV$ calls)