VMS / OpenVMS DECForms (FORMS$) API's for x86 Linux and Windows


VX/DECForms is an implementation of DEC's VMS / OpenVMS Forms Management System for Linux/Windows. VX/DECForms provides identical form management on Linux and Windows as the original DECForms on VMS / OpenVMS. VX/DECForms is a library of FORMS$ API's which take identical arguments compared to DECFor,s on VMS / OpenVMS.

VX/DECForms compiles the IFDL into a C++ logic subroutine which follows the flow of the IFDL, however, the IFDL verbs are turned into C++ classes that keep the same names and the same 'Attributes' as the IFDL.

The C++ Classes emit ANSI codes just like DECForms. DECForms is so complicated that we do not try to enhance its functionality, our goal is a 100% functional emulation. We have succeed when a user sits at a Sector7 DECForms migrated screen and cannot tell the difference.

VX/DECFORMS Compiler will compile (*almost) all DECFORMS syntax and in addition compiles in the processed CDO defintions.

** currently right to left is not supported.

vx/decforms can also display your decform in an HˇML5 browser window.

Learn More

FEATURES

VX/DECForms supplies all features of the original VMS / OpenVMS 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/DECForms supports all VT-terminals (VT100 or higher) and DECwindow’s DECterm. VX/DECForms is a fully functional implementation of VMS / OpenVMS FMS and can be run as a stand-alone product. For programs that take full advantage of VMS, VX/DECForms is designed to be fully integrated with VX/RT — Sector7’s VMS run-time support libraries for Linux/Windows.

INTRODUCTION

Forms developed with VXDECForms were intended to run only on the VMS operating system. The complexity of DECForms, together with VMS / OpenVMS, specific run-time dependencies and platform-specific programming language interface constructions, effectively prohibited (until now) the porting of DECForms created forms. VX/DECForms includes a complete set of language interface utilities, which facilitate the changes necessary to complete the linking process. VX/DECForms interface utilities are available for the following programming environments: Fortran (several dialects) VMS / OpenVMS C and Standard C COBOL (several dialects) VX/BASIC (VAX BASIC) procedures provide system-independent routines that complete (as required) include statement changes, integration of Open VMS descriptors, call name changes and argument list completion.

FUNCTIONALITY

Forms using VX/DECForms 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 (FLEX files) are translated by the VX/DECForms 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/DECForms 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/DECForms. 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. VX/DECForms does not use curses, termcap or terminfo. All terminal drivers are C-based routines that have been built into the VX/DECForms system to provide efficient portability. VX/DECForms can not define any terminal capabilities by external file. VX/DECForms 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/DECForms uses ANSI-capabilities connected with a console terminal for Linux environments, and HFT-commands for other RISC-based systems. Some restrictions may apply.


USER ESCAPES (PUE's)

USER ESCAPES (PUR's) 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.

 

PUE's on VX/DECForms behave identically to thse on VMS / OpenVMS PLUS some extensions. As the IFDL is converted to maintainable C++, you have the ability to link external routines directly into thE 'compiled' IFDL.

IFDL FORMS COMPILER

The IFDL language is a free-form, keyword-oriented, declarative language that provides the means to create and modify source from description with a text editor. The VX/DECForms compiler translates this IFDL file into a C++ Subroutine, which is used at run time. DECForms Call Outs are linked In the normal way. As this C++ generated from the Ifdl is linked into the application all scoping rules apply.