# Screen Design Aid

Screen Design Aid (SDA) is a utility for the IBM System/34 and System/36 midrange computers. Programmers can use SDA to create menus, display formats, or WSU skeleton programs. The System/38, and IBM i platforms also have a utility Screen Design Aid, but its syntax and functionality are different.
S/34 and S/36 applications usually involve the operator to a critical degree, whether accepting the bulk of input through display stations or controlling them. Computer programs may utilize unformatted or formatted input, and this is where SDA applies.

## Creating display formats or menus from code

Like RPG II, display formats are built from column-sensitive specifications which describe fields of fixed sizes with fixed or conditioned properties.
The System/36 version of SDA gained the H specification, which describes the displays used when the operator presses the "Help" key. The "Help" key can summon one display, a series of displays, or open an online document created by DisplayWrite/36 and position it to a certain page using a "bookmark." If "Help" is program-coded, program control resumes when "Help" is pressed; in this instance, the program determines what action to take. If "Help" was not coded at all, a keyboard error occurs, stating that the Help key is not allowed now.
All display formats have exactly one coded S specification, which describes the size of the format, the keys which may be used, the lines to be cleared, special functions such as sounding the Alarm (the "raspberry" sound is the only sound a S/3X terminal can be programmed to make), and most importantly the name of the format which must be referenced by the HLL (High-Level Language) program.
Display formats may have one, many, or no D ("Detail") specifications to describe the field(s) used in the display. These fields may be constants, input, output, or input-output. Properties such as Nondisplay and Protected may seem to defeat the purpose of having the field, but there are non-intuitive uses for these fields. D specifications must state the starting line and column number used by the field; whether attributes or color are used; and, if a constant is declared, the value can also be declared. An "X" is used for continuation D specification(s) when a constant is larger than 24 characters. In order to accommodate displays created with the larger 27x132 capabilities, an odd system of hexadecimal entries is allowed for the column position.
Display formats are so attuned to the RPG II language as to require language extensions when used with other HLLs. The 99 numbered RPG indicators perfectly match the screen indicators; however, when coding display formats, it is important to reserve indicator usage to match the current conditioning of the indicator when the display is written - otherwise, a dummy indicator used for Half-Adjust may end up positioning the cursor incorrectly.

## Coding for the audience

When the IBM System/34 was sold, a common monitor would be a monochrome 12-inch IBM 5251; in the System/36 heyday, a common monitor would be the 12-inch IBM 5291 or the color 14-inch IBM 3486. Later in the S/36 life, third parties began to rise in popularity with such names as IIS, Decision Data, and Emerald. Not only do the third-party monitors cost much less, they offer multiple session capability, programmable color palettes, larger display areas, and a direct PC printer port which allows S/36 users to access inexpensive inkjet printers without a separate adapter. The "blue" or "red" field one codes may not appear blue or red on all audience equipment.
All S/34 and S/36 display stations use 5250 protocol; S/34 allows either 960-character displays or 1920-character displays; S/36 allows either 1920-character displays or (rare) 3564-character displays.
Two different display formats should be coded if it is possible that the audience might use the IBM 5252 Dual Display, which requires 960-character displays. Whether the audience will be using color or monochrome displays is a consideration - an application developed for color-only might not function well on a monochrome display.

## Comparisons to Microsoft Access

SDA is used to build display formats which are similar to the Microsoft Access convention of forms. Other similarities in nomenclature are as follows:
* Input, Output, and I/O fields are similar to text boxes.
* Constant fields are similar to labels.
* Field characteristics (non-display, highlighted, underlined, blinking, column separators) are similar to properties that would be found on an object's property sheet. Properties can be changed on-the-fly just as indicators conditioning field characteristics can be changed.
Important differences between Access forms and SDA display formats include:
* Bound and unbound fields - SDA fields are always unbound.
* SDA does not incorporate a record source, although a field can contain a Message Identifier Code of the form Mx9999 to access the Member1 or Member2 message member.
* Display formats, fields, and characteristics cannot be changed during program execution.