Est. 1993 Intermediate

Aurora Macro Language (AML)

The built-in scripting language of the Aurora DOS/Win32 text editor, used to write syntax highlighters, custom menus, and keyboard emulations for a 1990s shareware editor.

Created by Jeff Wunderlich (nText Research)

Paradigm Procedural
Typing Undocumented in surviving sources; macros manipulated strings, integers/floating-point values, and arrays
First Appeared 1993 (approximate; earliest documented copyright notices)
Latest Version Aurora/32 3.33 beta 1 (aurc33b1.exe), dated 23 December 1997 — the last known public release

Aurora Macro Language (AML) is the built-in scripting language of Aurora, a shareware, full-screen, folding text editor for DOS and later Win32 console mode, written by Jeff Wunderlich and distributed by his company, nText Research. AML was not a general-purpose programming language in its own right; it existed entirely to script the editor that shipped it; customizing menus, keyboard layouts, and — most visibly, in the surviving record — syntax highlighting for other programming and scripting languages inside Aurora’s text-mode interface.

A note on the catalogue entry. The encyclopedia’s master list dates this entry to 1991. The earliest evidence found in surviving Aurora documentation — copyright strings embedded in the editor’s own “what’s new” files — reads “Copyright 1993-1998 nText Research,” with no source located that supports an earlier date. It is possible Wunderlich began development before the software’s first public release, but that could not be independently confirmed, so this page treats 1993 as the best-supported approximate date rather than repeating the unverified 1991 figure.

History & Origins

Aurora belonged to a crowded field of DOS-era shareware text editors competing on power-user features: multi-window text-mode interfaces, mouse support, column-block editing, unlimited undo, and — the feature most relevant here — deep macro programmability. Unlike editors that bolted on a small keystroke-recording macro facility, Aurora was built around AML as a first-class scripting layer, exposed through its own statements, built-in functions, and a separate library of “library functions” that let macros reach further into the editor’s internals.

The editor shipped in parallel builds for 8086 and 80386-or-better processors, reflecting the split DOS hardware base of the early-to-mid 1990s, and, according to the editor’s own documentation, could address up to a gigabyte of file data by making use of available memory and disk-backed virtual memory — a genuinely large capacity for a DOS-era tool. AML macros were compiled to a bytecode-like executable macro file format specific to each Aurora build; a macro compiled for the DOS editor could not be run under the later Win32 version, and vice versa, because the underlying formats changed.

Development continued through the 1990s under nText Research, culminating in a 32-bit successor: a Win32 console-mode build named Aurora/32, whose 3.33 beta 1 self-extracting archive (aurc33b1.exe) is dated 23 December 1997. According to that release’s documented change list, it brought a substantially reworked AML: a new library statement allowed macros to call functions in Win32 DLLs directly, several capacity limits were lifted (maximum string length rose to 64KB and array dimensions to 8,000, and macro file size became effectively unlimited), and a number of DOS-only mouse-handling functions were dropped as unnecessary under Windows.

By the early 2000s, Aurora was no longer being sold, and in February 2003 its author confirmed he would not be releasing the source code publicly. The software persisted afterward only as freely redistributable shareware, kept alive by a small number of enthusiast archives.

Design Philosophy

AML’s guiding idea was that the editor itself should be almost entirely rewritable from within its own scripting language. Rather than exposing a fixed set of configuration options, Aurora let macro authors redefine pull-down menus, remap keys to emulate other editors’ keybinding schemes, and intercept editing operations to build new behavior — most durably demonstrated by the language-aware syntax highlighters that make up the bulk of the AML code that survives today. That emphasis on total customizability, common to power-user DOS editors of the period, meant the macro language had to expose editor internals (buffers, windows, the file manager, even mouse and keyboard state) as directly manipulable objects rather than hiding them behind a simplified API.

Key Features

  • Deep editor integration: AML statements and built-in functions operated directly on Aurora’s buffers, windows, and file manager, rather than through a restricted plugin API.
  • Syntax-highlighting objects: a defined mechanism for describing language grammars let macro authors add colorized highlighting for new languages without modifying the editor itself; community-contributed highlighters eventually covered Awk, Perl, Python, SAS, Euphoria, Clipper, HTML, Unix shell scripts, 4DOS batch files, and 80x86/NASM assembly.
  • Custom menus and key emulations: macros could redefine Aurora’s pull-down menus and reproduce the keyboard conventions of other popular editors.
  • Compiled macro files: AML source compiled to an executable macro-file format specific to each Aurora build (DOS vs. Win32), rather than being interpreted directly from source at load time.
  • Win32 DLL access (Aurora/32 only): the library statement, added with the Win32 console-mode edition, let macros call into arbitrary Win32 dynamic-link libraries, extending AML well beyond what the DOS-era language could reach.

Evolution

AML’s development tracked Aurora’s own two-era history. The DOS-era language, current through the mid-1990s across the 8086 and 80386+ builds, worked within the memory and addressing constraints of real-mode and early protected-mode DOS. The Win32 console-mode successor, Aurora/32, carried the language forward with higher internal limits (longer strings, larger arrays, unbounded macro file size) and new access to the Win32 API via DLL calls, while deliberately breaking binary compatibility with DOS-compiled macros. No further major language revision is documented after the Aurora/32 3.33 beta 1 of December 1997; nText Research’s commercial activity around the editor wound down over the following years.

Current Relevance

Aurora and AML are not in active use or development. The company behind them, nText Research, stopped selling and supporting the editor by the early 2000s, and its website has since gone offline entirely. What remains is preserved by former users: a small number of personal archive sites — most substantially one maintained by longtime contributor Kent Nassen — host the original DOS and Win32 editor binaries, its documentation, and dozens of community-written AML macros dating from the mailing list era of the late 1990s. These serve today purely as a historical record of one shareware editor’s macro ecosystem rather than as a live platform.

Why It Matters

AML is a representative example of a design pattern common to the golden age of DOS shareware text editors: rather than shipping a fixed feature set, vendors exposed the editor’s own internals through a macro language and let a community of users extend it indefinitely. The surviving AML macros — syntax highlighters for a dozen-odd programming and scripting languages, custom file managers, keyboard emulations — are less a monument to AML’s own design than to the users who kept extending an already-discontinued editor for years through nothing but its scripting language. As a historical artifact, AML documents how much functionality a determined shareware community could build on top of a macro language that its own vendor had already stopped actively developing.

Timeline

1993
Earliest surviving copyright notices for the Aurora editor and its built-in Aurora Macro Language (AML), attributed to Jeff Wunderlich and nText Research, are dated from this year
1996
By this point Aurora ships in separate DOS builds for 8086 and 80386+ processors; version 3.0 for DOS (distributed as auror30c.zip) is in circulation, with AML as its scripting layer
1996
The earliest surviving archive entries from the Aurora mailing list reportedly date to July, showing an established community of macro authors trading AML scripts
1997
The Aurora/32 3.33 beta 1 self-extracting archive (aurc33b1.exe) for Win32 console mode is dated 23 December. According to its documented change list, this version of AML adds a 'library' statement for calling Win32 DLL functions, raises the maximum string length to 64KB and array dimensions to 8,000, and removes DOS-only mouse functions; compiled macro files from the DOS editor are not compatible with the new version
1999
Community members continue publishing AML syntax-highlighting and utility macros through this year, including highlighters for Awk, Perl, Python, SAS, Euphoria, Clipper, HTML, Unix shell scripts, and 80x86 assembly, collected in Kent Nassen's Aurora macro archive
2003
With Aurora no longer sold, its author confirms in February that the editor's source code will not be released publicly; nText Research's commercial support has already ended
2025
The nText Research web presence (ntext.net) is no longer reachable; the editor, its documentation, and community AML macros survive only through third-party archive mirrors

Notable Uses & Legacy

Kent Nassen's Aurora Macro Archive

A personally maintained archive preserving dozens of community-written AML macros for the editor, spanning file management, text manipulation, and language-specific syntax highlighting

Jim Wilson's syntax-highlighting objects

AML highlighting definitions for HTML (with translation helpers), Euphoria, and Unix shell scripts, plus a collection of general-purpose 'codebits' macro utilities for the editor

Matteo Baccan's language macros

AML scripts adding syntax highlighting for 80x86/NASM assembly and 4DOS batch files, plus highlighting for the Clipper xBase dialect and dBSee templates

Aurora mailing list community (1996-1999)

An email list through which users exchanged AML macros and macro-programming help, documented in a surviving archive covering mid-1996 through the list's 1998 relocation

Running Today

Run examples using the official Docker image:

docker pull
Last updated: