🚨 Oracle not porting Rdb to x86 and EOL on Itanium 12/2027 🚨
FAQs

OpenVMS Screen & Forms Modernization (ACMS, DECForms, FMS, SMG)

Sector7's VX/ACMS, VX/DECFORMS, VX/FMS, and VX/SMG tools migrate your OpenVMS user interfaces and transaction processing applications to Linux while preserving functionality.

Identical User Experience

VX/DECFORMS and VX/FMS provide complete emulation of your OpenVMS forms, ensuring users cannot distinguish migrated screens from the originals.

How does VX/FMS support existing FMS applications?
VX/FMS translates FMS mask description language into binary runtime files, allowing applications to retain their original behavior, formatting, and user interactions on modern Linux platforms.
What are the key features of VX/FMS?
Key features of VX/FMS include:
  • 100% compatible FDV$ API implementation
  • Support for VT terminals and DECterm
  • User Action Routines (UARs) for interactive events
  • Full form compilation to binary runtime
How does VX/FMS integrate with other Sector7 tools?
VX/FMS works seamlessly with VX/RT APIs and other Sector7 migration tools to provide comprehensive OpenVMS compatibility on Linux platforms.
How does VX/FMS handle User Action Routines?
VX/FMS fully supports all UAR scenarios including field completion events, help requests, function key interactions, and screen refresh operations, maintaining original VMS FMS behavior.
What migration benefits does VX/FMS provide?
VX/FMS enables organizations to modernize their form-based applications while preserving existing user interfaces and workflows. This approach eliminates the need for costly UI rewrites and maintains user productivity during migration.
How can I get started with VX/FMS migration?
To learn more about VX/FMS and how it can streamline your OpenVMS forms migration to Linux, contact us for a detailed assessment and migration roadmap.
How does SMG$ handle terminal compatibility across different Linux distributions?

SMG$ provides comprehensive terminal compatibility across all major Linux distributions through its OpenVMS-compatible screen management implementation. It automatically detects and adapts to different terminal types, from modern GUI terminals to traditional console interfaces, ensuring consistent behavior across Ubuntu, CentOS, RHEL, and other distributions. The SMG$ terminal abstraction layer handles terminal capability detection and adaptation, while SMG$INIT_TERM_TABLE and SMG$INIT_TERM_TABLE_BY_TYPE routines configure appropriate terminal characteristics for optimal display control and user interaction.

Can SMG$ applications integrate with modern Linux desktop environments?

Yes, SMG$ applications integrate seamlessly with modern Linux desktop environments while maintaining their OpenVMS terminal-based interface design. Applications run in standard terminal emulators like GNOME Terminal, KDE Konsole, or xterm, providing familiar keyboard shortcuts and copy/paste functionality. SMG$ handles terminal capability detection automatically, ensuring proper display rendering across different terminal types. For organizations requiring enhanced integration, contact our technical team at contact us to discuss custom desktop integration solutions and user interface modernization options.

How does SMG$ handle international character sets and localization?

SMG$ provides extensive international character set support through its wide character display functions including SMG$PUT_CHARS_WIDE, SMG$PUT_CHARS_HIGHWIDE, and SMG$PUT_LINE_WIDE. These routines handle Unicode characters, multi-byte character sets, and various international encoding schemes while preserving OpenVMS application logic. SMG$ automatically adapts to Linux locale settings and terminal encoding configurations, ensuring proper display of international text without requiring application modifications. This makes SMG$ ideal for global organizations migrating OpenVMS applications that serve international users or process multilingual data.

What keyboard input and interaction capabilities does SMG$ support?

SMG$ delivers comprehensive keyboard input and interaction capabilities through virtual keyboard management and input processing routines. It supports function key handling, special key sequences, and programmable key definitions via SMG$NAME_TO_KEYCODE and SMG$KEYCODE_TO_NAME. The system provides both immediate keystroke reading with SMG$READ_KEYSTROKE and full line input with SMG$READ_STRING and SMG$READ_COMPOSED_LINE. SMG$ also handles input cancellation, type-ahead buffering, and out-of-band processing, ensuring complete compatibility with OpenVMS keyboard interaction patterns across all supported Linux platforms.

How does SMG$ integrate with other VX components for complete application migration?

SMG$ integrates seamlessly with the complete VX/RT ecosystem to provide comprehensive OpenVMS application migration capabilities. It works closely with VX/DCL for command line interfaces, RMS$ for record management, and SYS$ services for system integration. SMG$ applications can utilize QIO$ for device I/O operations while maintaining their screen management functionality. This integration ensures that complex OpenVMS applications with mixed terminal interfaces, file processing, and system calls can be migrated as complete solutions. Learn more about VX component integration with our VX/DCL technical documentation.

What is VX/DECFORMS and how does it help with DECforms migration?

VX/DECFORMS provides a comprehensive implementation of DEC's OpenVMS DECforms, offering exact emulation that preserves form management and functionality across platforms. The solution compiles IFDL (Interactive Forms Definition Language) into C++ logic subroutines that mirror the original IFDL flow, ensuring 100% functional emulation where users cannot distinguish between migrated screens and original OpenVMS DECforms.

This breakthrough technology eliminates the barriers that previously made DECforms migration impractical, enabling organizations to modernize their legacy applications while maintaining complete compatibility. To explore how VX/DECFORMS can transform your migration project, contact our experts.

How does the IFDL compiler work in VX/DECFORMS?

The IFDL compiler translates Interactive Forms Definition Language files into C++ subroutines, converting IFDL verbs into C++ classes that retain the same names and attributes as the original.

What is the migration workflow for DECforms applications?

The migration process requires no changes to application programs - once form descriptions are updated, applications automatically utilize the new forms through the runtime system.

Does VX/DECFORMS support customization with programming languages?

VX/DECFORMS utilities support multiple programming languages including Fortran, C, COBOL, and VX/BASIC, providing the necessary procedures to adapt VMS descriptors for modern platform integration.

What are User Escapes (PUEs) and how do they work in VX/DECFORMS?

User Escapes (PUEs) are custom routines written in any DEC-supported programming language that are tied to forms and fields during creation. The Form Driver automatically triggers these procedures in several scenarios: after field processing, before and after help requests, when function keys are pressed, and during screen refresh operations.

PUEs in VX/DECFORMS behave identically to those in original OpenVMS DECForms, with added flexibility. The IFDL compiler converts the IFDL into maintainable C++ code, allowing direct linking of external routines into the compiled IFDL for greater control over form interactions.

What is VX/ACMS and how does it help modernize OpenVMS ACMS applications?

VX/ACMS is a comprehensive migration tool that translates OpenVMS ACMS applications (ADF, MDF, GDF, and TDF files) into C++ while maintaining a runtime environment that mirrors the original VMS/OpenVMS ACMS functionality. This enables seamless execution of ACMS applications on Linux without requiring a transaction monitor.

The tool preserves legacy workflows while ensuring compatibility with modern environments, making it ideal for organizations looking to modernize their ACMS applications. To discuss your ACMS migration requirements, contact us.

Which ACMS file types does VX/ACMS support for migration?

VX/ACMS supports all core ACMS file types including ADF (Application Definition Files), MDF (Menu Definition Files), GDF (Group Definition Files), and TDF (Task Definition Files) for translation to C++.

How does the ACMS to C++ translation process work?

VX/ACMS translates ACMS files into C++ while preserving the original logic and structure. The process can be used as a one-time conversion or integrated into continuous integration workflows for automated builds.

Does VX/ACMS maintain the original ACMS step-based processing model?

Yes, VX/ACMS preserves the step-based processing approach that many users value, ensuring execution flow remains within a single compiled executable while maintaining the integrity of ACMS workflows.

How does VX/ACMS handle menu definition files and user interfaces?

VX/ACMS converts MDF (Menu Definition Files) into C-style menu structures that closely mimic MENU/TASK definitions. These menus can be displayed in VX/DECFORMS or processed into standard console-based menu systems, ensuring legacy ACMS menus function identically within the Linux runtime.

What TDF control structures are supported in the C++ translation?

VX/ACMS supports all TDF control statements including IF THEN ELSE, WHILE DO, SELECT FIRST TRUE, CONTROL FIELD, and GOTO, maintaining nearly identical structure to the original TDF logic.

How does VX/ACMS handle transaction management and Oracle integration?

VX/ACMS preserves the original ACMS commit/rollback structure but delegates actual transaction management to Oracle or other modern transaction managers. The tool supports dynamic linking for procedure servers using Linux equivalents (dlopen and dlsym), ensuring compiled ACMS procedures behave identically to their VMS counterparts.

This approach maintains familiar ACMS commands while leveraging modern database transaction capabilities for improved reliability and performance.

What is VX/FMS and how does it help with OpenVMS migration?

VX/FMS provides a native call-compatible implementation of OpenVMS Forms Management System for Linux platforms. It enables OpenVMS applications to define, generate, and manage native FMS Forms on both x86 and ARM Linux systems.

This solution allows organizations to preserve their existing OpenVMS forms-based applications while migrating to modern Linux infrastructure. To discuss how VX/FMS can support your specific migration requirements, contact our team.

What key features does VX/FMS provide for forms management?

VX/FMS offers full compatibility with OpenVMS FDL$ APIs, supports file structure definition and parsing, and maintains OpenVMS file structure semantics on Linux.

Does VX/FMS support all OpenVMS FDV$ API functions?

Yes, VX/FMS provides comprehensive support for FDV$ APIs including display operations, terminal handling, file management, and workspace allocation functions.

What are the main benefits of migrating forms with VX/FMS?

VX/FMS preserves OpenVMS capability while enabling direct porting of applications without major modifications, minimizing development costs and preserving productivity.

How does VX/FMS handle OpenVMS forms processing workflows?

VX/FMS maintains the complete OpenVMS forms workflow including structure generation, parsing, display operations, and user interaction handling. The solution preserves terminal management functions, screen operations, and file channel management exactly as they work in OpenVMS.

This comprehensive approach ensures that complex forms-based applications continue to operate with identical behavior on Linux platforms.

What results can organizations expect from VX/FMS implementation?

VX/FMS delivers seamless migration of forms-based applications with preserved functionality and consistent behavior. Organizations eliminate vendor lock-in while modernizing their infrastructure to Linux platforms.

The solution reduces development costs by avoiding application rewrites and maintains productivity through familiar forms management capabilities. Companies like Shaw Industries have successfully modernized their manufacturing systems using similar migration strategies.

Ready to explore how VX/FMS can modernize your forms-based applications? Contact us to discuss your specific requirements.

What is VX/ACMS and how does it help modernize OpenVMS ACMS applications?

VX/ACMS is a native C++20 reimplementation of HP/VSI ACMS for Linux. It delivers source-compatible task execution for migrated OpenVMS applications: your existing TDF, GDF, and ADF sources compile through the ADU, existing COBOL and C step procedures run unchanged, and calls to ACMS$ services resolve against the same signatures and status codes as on VMS. VX/ACMS targets the single-server deployment model used by most production ACMS estates.

Does VX/ACMS maintain the original ACMS step-based processing model?

Yes. VX/ACMS preserves the ACMS component model and step-driven task interpretation verbatim. The EXC task interpreter drives the same step types you already use — PROCESSING CALL, EXCHANGE, ATOMIC, IF, WHILE, REPEAT, GOTO, MOVE, and EXCEPTION HANDLER — and workspaces still flow between submitters, EXC, and procedure servers through the familiar TASK, USER, GROUP, and SYSTEM lifetimes.

Which TDL file types does VX/ACMS support for migration?

The ADU compiler processes all four standard TDL file types: TDF for tasks, GDF for server groups and procedure definitions, ADF for applications, and MDF for menus. Existing TDF, GDF, ADF, and MDF sources compile unchanged through VX/ACMS. CDD record definitions that describe workspace layouts are compiled separately via vxcdd and consumed by both the ADU and your COBOL or C compilers.

Does VX/ACMS require rewriting existing COBOL and C step procedures?

No. VX/ACMS preserves the VMS server module ABI so that existing procedure source compiles and runs without modification. COBOL step procedures keep their VMS-shape BY REFERENCE workspace signatures with status returned through RETURN-CODE, and C or C++ procedures export the same acms_server_module_v1 struct expected by the SP procedure server. Server group .so files are loaded by dlopen at runtime, matching the GDF definitions you already maintain.

Which ACMS$ services does VX/ACMS implement?

VX/ACMS implements the 12 ACMS$ services used across production estates, including ACMS$SIGN_IN, ACMS$SIGN_OUT, ACMS$CALL, ACMS$START_CALL, ACMS$WAIT_CALL, ACMS$CANCEL_CALL, and ACMS$RAISE_STEP_EXCEPTION. Submitter programs link against libacms_si.so and call these services with the same VMS-compatible signatures and 32-bit status codes — ACMS_NORMAL, ACMS$_NOSUCHAPP, ACMS$_STEP_ERR, and the rest of the standard set.

How does the VX/ACMS migration build pipeline work at a high level?

Migration follows a four-step pipeline exposed through adu_compile and acmsctl. First, vxcdd builds your CDD database from .cdo record definitions. Next, GDF sources compile to server group .so files, then TDF sources compile to task .so files that reference the GDF. Finally, acmsctl install application registers the ADF and compiled .so files in the control database, with layout_hash checks catching any workspace mismatch before tasks can run.

What is VX/FMS$?

VX/FMS$ is a native reimplementation of the OpenVMS Forms Management System (FMS) for x86 and ARM Linux. It exports the FDV$ Forms Driver callable interface, so OpenVMS applications can define, display, and manage FMS forms on Linux without changing their forms logic.

Which CPU architectures and platforms does VX/FMS$ run on?

VX/FMS$ runs on both x86 and ARM Linux. It is delivered as part of the VX/RT runtime that brings OpenVMS compatibility to those platforms.

Do I have to rewrite my application to use VX/FMS$?

No. Applications that call the OpenVMS FDV$ Forms Driver routines link and run without major modifications, which preserves productivity and minimizes development cost.

Which FDV$ routines does VX/FMS$ provide?

VX/FMS$ provides the full set of 66 FDV$ callable routines. They span form loading and display (FDV$LOAD, FDV$DISP, FDV$DISPW), field input and output (FDV$GET, FDV$GETSC, FDV$PFT, FDV$PUT), terminal and screen management (FDV$STERM, FDV$SCR_WIDTH, FDV$SCR_LENGTH), workspace handling (FDV$AWKSP, FDV$SWKSP, FDV$DWKSP), and library and channel control (FDV$LOPEN, FDV$LCHAN, FDV$TCHAN). The full routine table is on the page.

How does VX/FMS$ handle terminal display and user interaction?

Through its FDV$ routines. For example FDV$DISP and FDV$DISPW display data, FDV$READ and FDV$GET handle input, FDV$BELL sounds the terminal alert, FDV$LEDON and FDV$LEDOF control terminal LEDs, and FDV$STERM sets terminal characteristics. Behaviour matches OpenVMS FMS, and forms are rendered to VT, ANSI, and xterm terminals using escape sequences.

How does VX/FMS$ fit with the rest of the Sector7 migration stack?

VX/FMS$ integrates into the VX/RT ecosystem, which provides OpenVMS compatibility on x86 and ARM Linux. FMS forms handling is delivered as part of that broader OpenVMS-on-Linux runtime rather than as a standalone island.

Does VX/FMS$ preserve the same forms workflows as OpenVMS?

Yes. VX/FMS$ preserves OpenVMS FMS capability and supports the same forms workflows: loading and displaying compiled forms, reading and transmitting fields, and managing the terminal, so forms-based applications can be ported directly.

How is an FMS form defined and displayed?

A form is authored in the FMS form language as a .flg source file with statements such as FORM, TEXT, and FIELD, then compiled to a binary .fbn form. At run time an application selects a workspace with FDV$SWKSP, loads the form with FDV$LOAD, displays it with FDV$DISPW, and reads user input with FDV$GET or FDV$GETSC.

Does VX/ACMS require an ACMS transaction monitor to run migrated applications?

No. VX/ACMS bundles the TDF, MDF, and procedures (as dynamic libraries) into a single compiled executable and integrates them directly into the C++ runtime, so migrated applications run on Linux and Windows without a transaction monitor.

Can I run the ACMS to C++ translation as part of an automated build?

Yes. The translation can be a one-time conversion, where you convert the definitions to C++ and maintain the C++ from then on, or part of a continuous-integration workflow that recompiles and relinks the ACMS system on each build. Adding the --compile flag makes the adu translator invoke the C++ compiler after translating the ACMS definition files.

How does VX/ACMS handle transaction commit and rollback?

VX/ACMS does not execute commit or rollback itself. It assumes Oracle or another modern transaction manager owns that. The original ACMS commit and rollback structure is preserved in the translated code, but the database layer is now responsible for executing it.

What happens to ACMS menus (MDF) after migration?

MDF (Menu Definition Files) are translated into a C-style menu structure that closely mimics MENU and TASK definitions. The menus can be displayed in VX/DECFORMS or processed into standard console-based menu systems, so legacy menus behave the same way in the Linux and Windows runtime.

How are ACMS procedure servers called at runtime?

Procedure servers use dynamic linking. VX/ACMS maps ACMS dynamic calls onto the Linux equivalents dlopen and dlsym, so compiled ACMS procedures behave like their VMS counterparts. This also lets ACMS tasks call VX/DCL when the TDF permits it.

Does VX/ACMS preserve the step-based processing model of ACMS?

Yes. VX/ACMS keeps ACMS step-based processing, but the execution flow stays inside a single compiled executable. This removes the external transaction monitor while maintaining the integrity of the ACMS workflow.

How are CDD workspace definitions translated?

CDD workspace definitions become packed C structures with fixed-width, space-padded text fields, pinned to the original byte layout with static_assert. This keeps the code compatible even on platforms that have no common data dictionary, so the ACMS logic stays readable and maintainable in C++.

Is RMS recovery supported?

VX/ACMS supports the RMS Recovery syntax, so tasks that use it still translate and run. Recovery logic itself is not yet implemented in VX/RMS; RMS support is planned to extend in future updates based on client needs.

What is VX/DECFORMS and how does it help migrate DECforms?

VX/DECFORMS is Sector7's reimplementation of OpenVMS DECforms for Linux and Windows. It compiles your existing IFDL form definitions to C++ and provides the FORMS$ Form Driver runtime, so DECforms applications keep running with the same screens and behaviour after migrating off OpenVMS.

Does VX/DECFORMS require rewriting our application code?

No. The migration process does not require changes to application programs. Existing FORMS$ calls link and run unchanged, and once the form descriptions are recompiled the application automatically uses the new forms through the runtime system.

What is FORMS$ and does VX/DECFORMS keep that API?

FORMS$ is the DECforms Form Driver callable interface. VX/DECFORMS provides a library of FORMS$ APIs that mirror the original DECforms API, including ENABLE, DISABLE, SEND, RECEIVE, TRANSCEIVE, and CANCEL, so it stays compatible with the way OpenVMS applications call DECforms.

How does the IFDL compiler work in VX/DECFORMS?

The vxforms compiler parses IFDL source and lowers it to C++ subroutines that call the forms_ runtime library. The generated code preserves the original IFDL identifiers, is compiled with a standard C++ toolchain, and links into the application alongside the Form Driver.

Which DECforms features does VX/DECFORMS preserve?

It retains the full original feature set, including scrolled areas, named data, overlapping forms, 132-character mode, help forms, and user-defined routines, plus character, line, and screen-width display attributes and VT100 special graphics. The aim is a functional emulation rather than an altered feature set.

Which terminals does VX/DECFORMS support?

It supports all VT terminals from VT100 upward, including DECterm under DECwindows, and can be extended for non-VTxxx terminals. Its built-in C-based terminal drivers work across Linux and Windows without curses, termcap, or external terminal configuration files.

Are there any DECforms features VX/DECFORMS does not support?

It supports nearly all DECforms syntax. The one current limitation is right-to-left text formatting, which is not supported at this time. Everything else in the original feature set is preserved.

Can migrated DECforms be shown in a web browser?

Yes. Alongside VT-terminal output, VX/DECFORMS can present forms in modern HTML5 browsers, broadening access to legacy applications without changing the underlying form logic.

Which platforms does VX/FMS run on?

VX/FMS is a native reimplementation of DEC's OpenVMS Forms Management System for Linux. It reproduces the original FMS behaviour, formatting, and user interactions so migrated applications run without functional changes, and the same sources also build for other Unix platforms through build-time configuration.

Does my application code have to change to use VX/FMS?

No. VX/FMS implements the FDV$ APIs with the same arguments and status conventions as OpenVMS FMS, so existing applications that call the FDV$ interface keep their calling sequence unchanged. Migration is a relink rather than a rewrite.

What does the VX/FMS compiler do?

It translates the FMS mask description language (.flg source) into binary runtime form files (.fbn), the same compiled form output FMS produced on OpenVMS, so form logic, attributes, and layout are preserved and execute identically after migration.

Which terminals and emulators does VX/FMS support?

VX/FMS supports VT100, VT220, and all compatible VT-series terminals, DECterm under DECwindows, and ANSI-compatible terminal emulators on Linux, giving identical character-cell user interaction across platforms.

Does VX/FMS depend on curses, termcap, or terminfo?

No. The Form Driver renders FMS screens directly with VT and ANSI escape sequences and does not rely on curses, termcap, or terminfo. That is how it keeps exact compatibility with original VMS FMS display behaviour rather than approximating it through a Unix TUI layer.

What FMS features are preserved during migration?

Scrolled areas, named data, overlapping forms, 132-character wide-screen mode, VMS HELP forms, and User Action Routines are all supported, so the migrated environment retains the core capabilities of OpenVMS FMS.

What are User Action Routines (UARs) and how are they supported?

UARs are user-defined callback procedures triggered by form events. A form binds a UAR by name in the .flg source, and the Form Driver dispatches it at run time. VX/FMS supports all UAR scenarios, including field completion, operator help requests, function-key interactions, and screen refresh, and it also allows dynamic linking of external C++ functions for extra flexibility.

How does VX/FMS fit with the rest of the Sector7 toolset?

VX/FMS can run as a standalone product or integrate with VX/RT, Sector7's OpenVMS runtime environment on Linux, and it works alongside VX/RMS and other Sector7 migration tools so an entire OpenVMS forms application can move together.

Message Us
Email us with your queries and a team member will get back to you ASAP.
Call Us
Want to chat? Give us a call and we’ll answer all your questions.
Location
Prefer to visit? Sector7 is based in Austin, Texas.

Transform Your Legacy Software Today!

Get In Touch
Unlock the potential of your legacy software with our expert migration services.