Est. 1985 Intermediate

OpenVMS DECTPU

DECTPU as it exists on OpenVMS: the text-processing language behind the EDIT command and the EVE editor, carried from VAX to Alpha, and on to IA-64 and x86-64 long after its last version number.

Created by Digital Equipment Corporation (individual designers not credited in the manuals)

Paradigm Procedural, block-structured, domain-specific (text editing)
Typing Dynamic — any variable can hold any data type; built-ins check their arguments at run time
First Appeared 1985
Latest Version DECTPU V3.1 (1993) is the last version number in the documentation; DECTPU still ships with VSI OpenVMS

OpenVMS DECTPU is the DEC Text Processing Utility as OpenVMS users know it: a programming language for building text editors, and the engine that usually runs when someone types EDIT at a DCL prompt. The catalog lists it separately, but it is the same language as DECTPU, which has the fuller reference to its syntax, data types and pattern system. This page follows the language through the operating system that carries it, from VAX/VMS V4.2 to OpenVMS on x86-64.

The history is unusual. The last version number in the documentation is V3.1, from 1993, yet the language has since moved with its host to two further processor architectures. It is frozen as a design but not retired as software.

History & Origins

From VMS to OpenVMS

DECTPU began as VAXTPU, the VAX Text Processing Utility. DEC’s manuals do not name its designers. The catalog gives 1984 as its first year, but no dated source from that year was found. The earliest documents are from 1985: the March pocket guide for VAX Language-Sensitive Editor V1.0, which mentions VAXTPU procedures, and the July release notes for VAX/VMS V4.2, which list VAXTPU as new. This page uses 1985. Since a layered product already referred to VAXTPU in March 1985, development must have started earlier, so 1984 may be right as a date for internal work, but that could not be confirmed.

The language appears to have taken its current name during the move from VAX to Alpha. The November 1991 VMS V5.5 release notes still say VAXTPU. The April 1993 manuals for DECTPU Version 3.1 say DEC Text Processing Utility and cover OpenVMS VAX and OpenVMS AXP. The operating system’s own rename happened in the same period. The product no longer belonged to one processor family, and neither did its editor: EVE changed from the Extensible VAX Editor to the Extensible Versatile Editor.

EVE becomes the default

For years after VAXTPU arrived, DEC’s older EDT editor stayed the default. That changed around OpenVMS VAX V6.0. In a May 1996 comp.os.vms post, Stuart Palin quoted the OpenVMS 6.0 release notes, which have a section headed “EDIT Command Default Editor is Now EVE”. The same passage warns that in the next version of OpenVMS VAX, EDT and callable EDT “will become obsolete” but “will continue to be provided without support … for upward compatibility.”

The release notes themselves were not found, but a source from the time agrees. News Bulletin #40 of the Hebrew University of Jerusalem’s Computation Center, dated 8 June 1993, told users that when VMS 6 arrived “its default editor will be TPU” and that EDT would need EDIT/EDT. It went on to list EVE equivalents for EDT users, starting with SET KEYPAD EDT. The current documentation fits too. VSI’s DCL Dictionary gives the format as EDIT[/TPU] [input-file] and says that the /EDT qualifier “is required” to start EDT. EDT did not go away, either: VSI still documents it.

Moving with the operating system

The DEC, Compaq and HP years appear to have added little to the language. Compaq’s 2001 guide states that its content had not changed since OpenVMS 7.1, and VSI’s current User Guide still shows a screen reading DECTPU V3.1 1993-08-17.

The VSI years have been about keeping it running. VMS Software, Inc. took over OpenVMS development and released V9.2, its first production release for x86-64, in 2022. The catalog’s note that DECTPU lasted only “until x86 transition” is therefore wrong. VSI’s 2025 DCL Dictionary, User’s Manual and Utility Routines Manual all cover x86-64, and the September 2026 release notes for the E9.2-4 field-test build list Guest Console corrections to screen redraw and scrolling in “full-screen applications such as TPU/EVE”.

Design Philosophy

DECTPU separates an editing engine from the interface layered on it. EVE gets no special treatment: it is a compiled section file, which DECTPU loads because the system-wide logical name TPU$SECTION points to EVE$SECTION. Point that name at a different section file and EDIT/TPU becomes a different editor.

The design also suits an operating system that keeps its behaviour stable for decades. A site’s .TPU sources and EVE initialization files depend on the language and its built-ins, not on the processor underneath.

Key Features

DECTPU is block-structured, dynamically typed and built around editing. Buffers, windows, markers, ranges, patterns and learn sequences are all native data types. It is not a general-purpose numeric language: the VSI User Guide notes that DECwindows DECTPU has no built-ins for floating-point numbers. The DECTPU page covers these in detail. The features below are the ones most tied to OpenVMS.

Writing a whole editor in a page

The User Guide’s MINI.TPU example builds a small working editor. After creating its buffers and windows, it binds a few keys, one of which reads a DECTPU statement from the prompt and executes it. It then saves itself as a section file:

! Define the minimal editing keys:
  DEFINE_KEY ("SPLIT_LINE", RET_KEY);
  DEFINE_KEY ("ERASE_CHARACTER(-1)", DEL_KEY);
  DEFINE_KEY ("EXECUTE(READ_LINE('DECTPU Statement: '))", TAB_KEY);
  DEFINE_KEY ("EXIT", Ctrl_Z_KEY);

That section file then acts as the interface to DECTPU:

$ EDIT/TPU/SECTION=SYS$LOGIN:MINI your_text.fil

The callable interface

Any language that follows the OpenVMS calling standard can embed DECTPU. VSI’s Utility Routines Manual divides the interface in two. The simplified routines are TPU$TPU and TPU$EDIT. The full interface includes TPU$INITIALIZE, TPU$EXECUTE_INIFILE, TPU$CONTROL, TPU$EXECUTE_COMMAND and TPU$CLEANUP. The manual’s C example needs only one call, with its arguments passed by descriptor:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#include descrip
int return_status;
static $DESCRIPTOR (input_file, "infile.dat");
static $DESCRIPTOR (output_file, "outfile.dat");
main (argc, argv)
    int argc;
    char *argv[];
    {
    return_status = TPU$EDIT (&input_file, &output_file);
    exit (return_status);
    }

Calls can also go the other way. A DECTPU program uses the CALL_USER built-in to reach a routine written in another language.

Extending EVE from inside EVE

A running EVE session can take on new code. Its TPU command executes DECTPU statements, EXTEND TPU compiles procedures from the current buffer, and SAVE EXTENDED EVE writes the extended editor out as a new section file. This is how many users met DECTPU: as a way to add a command to the editor they were already using.

Platforms

PlatformEvidence
VAXDEC manuals and release notes from VMS V4.2 onward
Alpha (AXP)April 1993 DECTPU V3.1 manuals; VSI manuals for V8.4-2L1 or higher
IA-64VSI DCL Dictionary, User’s Manual and Utility Routines Manual, V8.4-1H1 or higher
x86-64The same three VSI manuals, V9.2-2 or higher; E9.2-4 field-test release notes

One oddity is worth noting. The title pages of VSI’s two dedicated DECTPU manuals, both copyright 2026, name only Alpha V8.4-2L1 or higher, while the general VSI manuals above cover all three current architectures.

No open-source implementation is known, and there is no Docker image. Running DECTPU requires OpenVMS, on real hardware or in a virtual machine or emulator.

Current Relevance

DECTPU has a status that the word “historical” does not quite capture. As a language it is finished, with no new version number in over thirty years. As a component it is current: it is documented in VSI’s 2025 and 2026 manuals. VSI’s September 2026 notes for the E9.2-4 field-test build name TPU/EVE as an example of the full-screen applications that gained from its Guest Console corrections, so its display on x86-64 is still being looked after, even though the corrections are to the console and not to DECTPU.

Its users are the people who run OpenVMS: anyone who types EDIT, along with sites that keep EVE initialization files and private section files.

Why It Matters

  • It shows how long a small language can last. A design fixed by the early 1990s has followed its operating system from VAX through Alpha and IA-64 to x86-64.
  • It replaced the editor that came before it. DEC shipped an EDT keypad emulator alongside EVE, then made EVE the default and left EDT as the option that needs a qualifier.
  • It gave an operating system a programmable editor. Editor, mail client and customer programs could all share one engine, with the callable interface documented for outside programmers.

Sources and Verification Notes

  • VSI OpenVMS DEC Text Processing Utility User Guide and DEC Text Processing Utility Reference Manual (© 2026), the source of the MINI.TPU excerpt.
  • VSI DCL Dictionary: A–M, VSI OpenVMS User’s Manual (both © 2025) and VSI Utility Routines Manual, the source of the C example, shortened here by removing its comments.
  • VSI OpenVMS x86-64 E9.2-4 Release Notes (September 2026), section 2.1.2.
  • Extensible Versatile Editor Reference Manual (AA-PWCDD-TE, April 2001).
  • OpenVMS release history table on bitsavers, for the V6.0 FRS date.
  • Hebrew University of Jerusalem Computation Center, News Bulletin #40, 8 June 1993.
  • Stuart Palin, comp.os.vms post of 8 May 1996, quoting the OpenVMS 6.0 Release Notes.
  • For the VAXTPU-era sources, see the notes on the DECTPU page.

Not verified: the OpenVMS 6.0 release notes themselves (the EDIT default change is known here only through the 1996 quotation and the 1993 bulletin, and whether it applied on Alpha at the same time is unknown); the names of DECTPU’s designers; any 1984 release or announcement; and the exact release that first used the name DECTPU, or that the rename was caused by the Alpha port (the dates only coincide). The VSI manuals were read as documents. No DECTPU code on this page was run.

Timeline

1985
The March 1985 pocket guide for VAX Language-Sensitive Editor V1.0 mentions VAXTPU procedures, the earliest dated reference to the language found
1985
VAX/VMS V4.2 ships VAXTPU as part of the operating system, with EVE and an EDT keypad emulator as its two DEC-written interfaces. The July 1985 release notes call it "new"
1988
The VMS V5.1 release notes (December 1988) document a DECwindows version of VAXTPU, Version 2.2
1993
The April 1993 manuals for DECTPU Version 3.1 cover both OpenVMS VAX and OpenVMS AXP and use the DEC Text Processing Utility name, the earliest such use found
1993
OpenVMS VAX V6.0 (FRS date 21 June 1993 in DEC's release history) changes the default of the DCL EDIT command to EVE, according to a section of its release notes quoted on comp.os.vms in 1996. A Hebrew University bulletin of 8 June 1993 announces the same change as coming with VMS 6
2001
Compaq reissues the Guide to the DEC Text Processing Utility for OpenVMS 7.3, noting that its content has not changed since OpenVMS Version 7.1
2022
VMS Software, Inc. (VSI) releases OpenVMS V9.2, the first production release for x86-64
2025
VSI's DCL Dictionary, copyright 2025, documents EDIT/TPU for x86-64 V9.2-2 or higher, IA-64 V8.4-1H1 or higher and Alpha V8.4-2L1 or higher
2026
VSI publishes its DECTPU manuals with 2026 copyright dates. The September 2026 release notes for the x86-64 E9.2-4 field-test build list Guest Console corrections to screen redraw and scrolling in full-screen applications such as TPU/EVE

Notable Uses & Legacy

EVE, the default OpenVMS editor

The Extensible Versatile Editor is a DECTPU program compiled into a section file. VSI's DCL Dictionary gives the command format as EDIT[/TPU] and calls EVE the OpenVMS default editor.

EDT Keypad Emulator

VMS V4.2 shipped a DEC-written TPU interface that copied the keypad of the older EDT editor. EVE later added its own SET KEYPAD EDT command for the same purpose.

VAX Language-Sensitive Editor (LSE)

DEC's programming editor for VAXset, later DECset, used VAXTPU from its first release and exposed TPU procedures to its users.

OpenVMS Mail

The Mail utility can call an editor from inside a session. VSI's User's Manual says Mail invokes the DECTPU-based EVE editor by default, with SET EDITOR EDT and the MAIL$EDIT logical name as ways to choose another.

Callable DECTPU applications

VSI's Utility Routines Manual documents the TPU$ routines, which let programs in languages following the OpenVMS calling standard embed the DECTPU engine.

Running Today

Run examples using the official Docker image:

docker pull
Last updated: