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)
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
librarystatement, 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
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