Skip to content

FDO Overview

FDO is the language used to control America Online clients. FDO is an acronym that originally stood for Form Definition Opcode. However it has also been called Form Definition Operator. As the name suggests, FDO is used to define many of the forms (windows) displayed by the client. Though FDO provides additional capabilities to manipulate the client.

There are two dialects of FDO: FDO88 (FDO Version 1988), and FDO91 (FDO Version 1991). The FDO88 dialect is supported by the MagicCap, GEOS, and Macintosh (2.7 and earlier) clients. The FDO91 dialect is used by all of the Windows clients, and Macintosh 3.0 and later clients.

Note

Throughout this site, any references to FDO are assumed to be the FDO91 dialect unless specified otherwise.

Atoms

The fundamental unit of FDO is the atom. An atom is simply an FDO command. Unlike many programming languages, FDO only contains commands. That is, it does not have keywords like def, else, while, (Python), const, void, virtual (C++), or ElseIf, For Each, Let (Visual Basic). Despite only providing commands, FDO does have capabilities (by way of specific atoms) for common programming constructs such as looping, subroutines, and comments. FDO also includes atoms that are specific to client interaction and manipulation.

Here is the equivalent of a Hello World program in FDO:

HelloWorld in FDO91
1
2
3
    uni_start_stream <>
        async_alert <info, "Hello World">
    uni_end_stream <>

Protocols

Atoms are grouped by client functionality into protocols. (1) The first part of the atom name describes the protocol the atom belongs to. For example, atoms that start with uni_ belong to the UNI (universal) protocol.

  1. The word protocol is used in the general sense, as in set of conventions. Do not confuse an FDO protocol for a network protocol (such as TCP or IP).

Compiling FDO

Before FDO can be used by the client, it must first be compiled into a binary format. Here is a hex dump of the Hello World program after compiling:

00000000: 00 01 00 0D 07 0C 01 48 65 6C 6C 6F 20 57 6F 72  .......Hello Wor
00000010: 6C 64 00 02 00                                   ld...