The Ann Arbor Ambassador is an advanced, user-configurable, full-featured, ANSI-standard terminal.
The Ambassador gives you a 15-inch screen with large crisp characters. If you've been working at a 12-inch, you'll appreciate the difference. You can 'zoom' up to 60 lines onto the screen whenever you want (to see what a printout will look like, or to see something that scrolled by too fast, or just for context), while working normally at whatever screen format you find most comfortable (all the way down to 18 lines). No other terminal gives you that capability.
And the Ambassador is fast. Anything that would slow down the terminal is done with hardware. (Most terminals do everything they can with firmware to save cost but, if that costs you time, it's no savings.) For example, when you insert a line into the Ambassador's display, you're not moving all the data that follows, in memory. That takes time. With the Ambassador, you're just up-dating a couple of line pointers (that control the order in which the lines are displayed).
The Ambassador does everything possible to make your life easier. It lets you set whether you want a key click, or a margin bell. Whether you want your keys to repeat, and how fast. Whether you want a block or an underline cursor, and whether you want it to blink. It gives you a PAUSE key with which you can start and stop data from the host, including stepping in a line at a time (or a window at a time).
It gives you lots of Programmable keys, and not just the ones up in the Function pad, but the whole Numeric pad, and the corner keys on the Main array. You can load them with your most-used host (or application) commands, for one keystroke execution, or with control strings that execute complex special functions you want to perform.
It gives you a Programmable Power-on string, so that if you don't like some of our design decisions (like our default key codes or tab stop positions), you can change them. The Power-on string is executed each time the terminal is powered on. Load it with the key codes, or tab stop positions, you want, and the terminal initializes to your choices.
The Ambassador can do just about everything you want a terminal to do: Move/set either of two independent cursors. Read/save/restore their position. Erase/edit/move data in every conceivable way. Set up multiple pages and windows. Create/use forms, quickly and easily, designed the way you want them. Read/send screen with complete control over the region(s) sent, and with the data compressed as much or as little as you want. Print from the screen or host or both, easily, with complete control of the content and the format of the printout. And we've tried to provide these functions in a form that is natural, logically consistent, and without exceptions.
The Ambassador is based on the ANSI standard, X3.64, which standardized the coding to be used for control of display and printer terminals. Nearly all of the significant terminal manufacturers and software houses now support the standard. This means that you can buy (or write) software without worrying about what terminal is going to be used. And it means that you're no longer tied to one terminal source. When a better terminal comes along, you can upgrade to it without obsoleting any of the software that you've done or are using.
The Ambassador provides all of the relevant ANSI controls (even some that tend to be redundant; what we consider redundant, some software writer might not, so we include them all). We've added several private-use controls, that we feel considerably extend the versatility of the ANSI set. (And we've been careful to make them useful, but not necessary. The Ambassador remains a powerful terminal, even if only pure ANSI is used.)
It provides all of the relevant ANSI modes, and a bundle of private-use modes. Some of the added modes are for tailoring the terminal to your individual preferences, some of them are for more versatility, and others are for fine-tuning the standard. (Where a difference of interpretation might result, we've tried to provide a mode to accommodate it.)
The manual is divided into 13 sections and an appendix, not all of which will be of interest to every reader. The sections are summarized below to help guide you to the sections of interest. Section 2 is for the person installing the Terminal. Sections 1, 3, 4, and the first couple of pages of 5, should be read by all users. The remaining sections are for the programmer, and the serious user who wishes to take full advantage of the Ambassador's capabilities.
1. Introduction. Contains an overview of the Manual and the Terminal.
2. Checkout & Installation. How to unpack, install, and checkout the Terminal (and Printer, if applicable)
3. Setup Mode. How to use the SETUP key to locally control the Ambassador's modes.
4. Keyboard. Describes the Ambassador's Keyboard, and how to use it.
5. Display. Describes the Ambassador's Display, how to write to it, and how to tailor it to your use.
6. Cursor Controls. How to use the Ambassador's controls to move and position the cursor.
7. Editing Controls. How to use the Ambassador's controls to erase and edit the display.
8. Send Controls. How to use the Ambassador's controls to send data from its display memory to the host.
9. Printer. How to set up and use the Printer.
10. Forms Mode. How to use Forms mode for off-line data entry.
11. Programmable Strings. How to program the Ambassador's Programmable keys and other Programmable strings.
12. Diagnostics. How to initialize the Ambassador, and use its diagnostic features.
13. ANSI Standard. A brief review of the ANSI standard as its relates to the Ambassador.
Appendix. A summary of all the Ambassador's controls and modes, arranged by code and by mnemonic, for reference.
The following forms are used to direct the reader's attention to important material.
Note: | Contains restated or supplementary information. |
Caution: | Contains information necessary to correct operation. |
Warning: | Contains information necessary to physical safety. |
The following notation is used in referring to keys and key sequences:
Keys are referred to by their legend, e.g., ESC refers to the ESC key, SETUP to the SETUP key, RESET to the RESET key, etc.
Keys that are to be depressed together are shown with a hyphen between them, e.g. CTRL-A means to type the A key with the CTRL key depressed.
Keys that are to be depressed sequentially are shown with a space between them, e.g. ESC [ Z means to type the keys ESC, [, and Z in sequence, releasing each before depressing the next.
The following notation is used in referring to codes and code sequences:
Single codes are denoted by a character followed by the character code, e.g. Z (5/10). The character code notation conforms to the ANSI standard, e.g. 5/10 is the same as 5A hex.
A Space-code (2/0) is denoted by the symbol Sp. A New-line code is denoted by the symbol NL.
Single-code controls (control codes) are denoted by the ANSI control mnemonic followed by its code, e.g. BS (0/8).
Multiple-code controls (escape and control sequences) are denoted by the
ANSI control mnemonic followed by its code sequence, e.g. CBT (ESC [ Z
).
The space between codes is for clarity only, and is not part of the sequence.
Long sequences are sometimes shown with segments of the sequence
on separate lines (for clarity and ease of notation); no NL is implied
by this separation. Spaces and New-lines are included in sequences only
if explicitly represented (by Sp and NL).
Some controls (control sequences) permit the inclusion of decimal parameters:
The notation, Pn, refers to a decimal numeric parameter, e.g. CUF (ESC
[ Pn C
). A value up to decimal 255 (i.e. the code sequence 3/2 3/5
3/5) may be included in the control at the Pn position. A parameter
values of 0, 1, or omission of the parameter are equivalent, unless
otherwise specified in the description of the control, e.g. the code
sequences ESC [ 0 C
, ESC [ 1 C
, and ESC [ C
, all move the cursor one
column forward.
The notation, Ps, refers to a decimal selective parameter, e.g. EL (ESC
[ Ps K
). A selective parameter selects from a list of functions defined
in the description of the control. The values are passed in decimal,
but valid values are limited to the defined list. A parameter
value of 0, or omission of the parameter, refer to the first function
in the list, unless otherwise specified in the description of the control,
e.g. the code sequences ESC [ 0 K
and ESC [ K
both erase from
cursor to end of line.
The notation, Pn..Pn or Ps..Ps, refers to multiple parameters. When
multiple parameters are passed, they must be separated by a ; (3/11).
In the case of numeric parameters, their position in the sequence is
important. Therefore, they are usually shown written out, e.g. CUP
(ESC [ Pn1 ; Pn2 H
). (In this instance, the value of Pn1 specifies the
Line number, and the value of Pn2 the Column number.) In the case of
selective parameters, their position in the sequence is not important.
Therefore, they are usually not written out, e.g. SGR (ESC [ Ps..Ps m
).
As many functions may be selected from the list as desired, and in any
order, e.g. the code sequences ESC [ 1 ; 5 ; 7 m
, ESC [ 7 ; 1 ; 5 m
,
and ESC [ 5 ; 7 ; 1 m
, all result in subsequent characters being written
with a bold, blinking, reversed condition.
Modes are denoted by the ANSI mode mnemonic followed by its Setup location and mode number, e.g. LNM (D,20) means that the mode LNM can be found on Setup line D, and its mode number (for use with the Set/Reset Mode controls) is 20. A dash (-) indicates that the mode is not provided on a Setup line.
A lower-case 'z' preceding any mnemonic means that the control (or mode) is 'private-use', i.e. its function was not provided for in the ANSI standard. For example, zKCM (A,26) is a private-use mode that has been added to the Ambassador to permit key click to be turned on and off.
NOTE: The ANSI standard anticipated such additions, and reserved code space for them. However, it is likely that the functions, and their codes, will differ among the various manufacturers. It is also likely that many of these functions will be incorporated into later revisions of the standard, and assigned different codes (in the code space reserved for future standardization). Ann Arbor intends to support future revisions of the standard, adding newly-assigned standard codes, and maintaining existing private-use codes, wherever possible.
A simplified block diagram of the Terminal system is shown below. The Terminal consists of a Keyboard (KYBD) and a Visual Display Unit (VDU). The Terminal communicates with a Computer (HOST), and may have a Printer (PNTR) attached.
___________________________ | ________ | | VDU | SCREEN | | | |________| | | ^ | | _________|_________ | | | DISPLAY MEMORY | | | |___________________| | | ^ v ^ | | ______|__|__|______ | ______ | | DISPLAY PROCESSOR |___|_______| PNTR | | |___________________| | -> |______| | ^ v ^ | ______ | ______ | | | ______ | ________ | KYBD |_______|_| KBUF |_| | |_| FIFO |_|_______| | |______| -> | |______| | |______| | <- | HOST | | |_____________|_______| | | | -> |________| |___________________________|
The Keyboard is used to enter data. The entries are buffered in a Keystroke Buffer (KBUF) in the VDU, and go either to the Display Processor (in Monitor SRM, see below) or to the Host (in Simultaneous SRM). Data sent, or echoed back, by the Host are buffered in a received-data FIFO (first-in, first-out buffer), and go to the Display Processor. The Display Processor acts on the data according to the codes it receives. Displayable character codes are passed on to the Display Memory (and, typically, displayed on the Screen), and/or to the Printer. Control codes (and code sequences) are acted upon, and perform their specified function according to the present settings of the Terminal's modes.
SRM Send-Receive Mode (B,12). This is a basic mode of the Terminal, as it determines the method of communication to be used with the host.
In the set state, the Terminal is said to be in Simultaneous SRM (aka conversational mode, on-line entry, etc.) Most users will use the Terminal in this mode. In Simultaneous SRM, the Keyboard is logically disconnected from the VDU. Keyboard inputs are sent to the Host as they are keyed. (In the diagram above, the output of the Keystroke Buffer goes directly to the Host. The Display Processor does nothing with the data (except to pass it on.) The host will typically echo the inputs back to the VDU, whereupon they are buffered through the FIFO, acted upon by the Display Processor, and displayed (if graphics characters) or executed (if controls).)
In the reset state, the Terminal is said to be in Monitor SRM (aka block mode, off-line entry, etc.) In Monitor SRM, the keyboard inputs are not sent to the host as they are keyed. They are, instead, displayed and executed locally, and the resultant display subsequently sent to the host as a block. In the diagram above, the keyboard inputs are acted upon by the Display Processor directly. The FIFO is not used by the operator; it may be used by the Host to buffer data to the Printer and/or to Display Memory.)
There are two other communication 'modes' in which the Terminal may be used.
zHDM Half Duplex Mode (B,40). Permits the outgoing data to be sent to the Host and wrapped back locally into the Terminal's FIFO. This mode may be used with hosts that cannot support echoback. If used with echoback, double-writing of characters results.
Local Test Mode. Permits the outgoing data to be wrapped back locally into the Terminal's FIFO, and not sent to the Host. The two-key sequence, SETUP T, puts the Terminal into Local Test; the two-key sequence, SETUP SETUP, returns it to normal operation; see Diagnostics section. During Local Test, the Host is unable to write to the terminal.
If the Host supports an Xon/Xoff protocol, the Terminal's FIFO can be made to 'handshake' with the Host by setting Auto Xon/Xoff Mode.
zAXM Auto Xon/Xoff Mode (B,37). Permits the Terminal to send Xon/Xoff codes to the Host to regulate the flow of received data. During Terminal operation, the FIFO is being filled by the Host, and emptied by the Display Processor. If the Display Processor falls behind, because of a series of slow controls or because the operator has used the PAUSE key to suspend processing, the FIFO gradually fills. When the FIFO is 'almost full', an Xoff code is sent to the Host to suspend further transmission. When the Display Processor catches up, and the FIFO becomes 'almost empty', an Xon code is sent to the Host to resume transmission. The Xon and Xoff codes used by the Host are typically the control codes DC1 (1/1) and DC3 (1/3), respectively. However, they can be set to any ASCII code required by, or convenient to, the Host by changing their values at the end of Setup line B; see Setup Mode section.
If the Host does not support an Xon/Xoff protocol, the data coming from the Host may need to be 'padded', i.e. pad characters inserted for time delay. The Ambassador does not normally provide a pad character (so that the full ASCII code set may be passed to the Printer). However, the NUL (0/0) code can be used as a pad character, if required, by setting Ignore NUL Mode.
zINM Ignore NUL Mode (B,54). Permits the NUL code (0/0) to be used as a pad character, by detecting it at the input to the FIFO and stripping it from the incoming data.