Introduction to JYACC FORMAKER
1 About This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 JYACC FORMAKER Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
3 Getting Started with JYACC FORMAKER . . . . . . . . . . . . . . . . . . . . 1
3.1 Setting Up Your Environment . . . . . . . . . . . . . . . . . . . . . . . 2
3.2 JYACC FORMAKER Function Keys . . . . . . . . . . . . . . . . . . . . . . 3
4 A JYACC FORMAKER Glossary . . . . . . . . . . . . . . . . . . . . . . . . . 4
Appendix A Sample Key Assignments . . . . . . . . . . . . . . . . . . . . . . 7
Appendix B List of Supported Terminals and Emulators . . . . . . . . . . . . 8
1 About This Manual
Congratulations on your purchase of JYACC FORMAKER. Your documentation includes
the following chapters:
The Introduction to JYACC FORMAKER (this chapter) describes the rest
of the documentation, and tells how to get started with JYACC
The JYACC FORMAKER Author's Guide describes in detail how to create
The JYACC FORMAKER Programmer's Guide explains some of JYACC
FORMAKER's internal operation, shows how to code application routines,
and describes in detail the support functions supplied with JYACC
The JYACC FORMAKER JPL Programmer's Guide describes the JYACC
Procedural Language, a specialized interpreted programming language.
The JYACC FORMAKER Configuration Guide explains how to create and
alter configuration files for terminals and displays, and run various
2 JYACC FORMAKER Tools
This section summarizes the authoring and programming tools supplied with JYACC
The authoring utility, xform, is a screen editor which you use to create display
data, fields and their edits. It is documented in the JYACC FORMAKER Author's
The JYACC FORMAKER library is an extensive collection of functions for reading
and writing data contained in screens. There are functions for displaying
screens, getting keyboard input, moving data to and from the screen, etc. Much
more information, and a description of each entry point, are available in the
The following utility programs are described in the Configuration Guide.
All configuration files come in an ASCII format, which you can modify with a
text editor, and a binary format, which JYACC FORMAKER uses at runtime. msg2bin,
key2bin, var2bin, and vid2bin convert ASCII message, key, setup, and video files
to binary. Modkey is a specialized editor for keyboard configuration files.
There is a utility named f2r4 to convert Release 3 screens to Release 4 format.
There are also utilities for managing the configuration of JYACC FORMAKER
applications: bin2c provides for the creation of memory-resident screens and
configuration files, while f2struct creates programming language data structures
from screens. You can get listings of your screens with lstform, and create
libraries of screens with formlib.
3 Getting Started with JYACC FORMAKER
If JYACC FORMAKER has not yet been installed on your computer, please refer to
the Installation Notes for guidance, and return to this section when you are
ready to try out the newly installed software.
Sit down at your computer or terminal and invoke the JYACC FORMAKER authoring
utility by typing
at the system prompt. If all is well, the screen will clear, you will be
prompted for the name of a screen to edit, and you are ready to go. If, on the
other hand, the computer prints only a single error message, there are some
things to set up in your environment.
3.1 Setting Up Your Environment
If the message you see resembles one of the following:
Bad command or filename (MS-DOS)
jxform not found (UNIX/XENIX)
Not found. XFORM (std$cp) (PRIMOS)
then the directory where JYACC FORMAKER resides is not in your execution path,
and you must add it. Here are some examples of how to do this:
PATH=$PATH:/usr/sm/util; export PATH (UNIX, Shell)
set path=($path /usr/sm/util) (UNIX, C shell)
PATH c:\bin;c:\usr\bin;c:\usr\sm\util (MSDOS)
MS-DOS note: you must type in the old value of the path by hand; it can be
obtained by typing 'path' with no argument.
PRIMOS note: there is no environment; you must either install xform in CMDNC0,
or define an abbreviation to run it from the installation directory.
JYACC FORMAKER Configuration Variables
If the message you see is
SMMSGS not found
then you need to define JYACC FORMAKER configuration variables. (If it is
SMVIDEO not found or SMKEY not found, you probably just need to set SMTERM; but
bear with us for a moment.) Here are the variables and their meanings:
SMMSGS pathname of a file containing error message text SMKEY
pathname of a keyboard configuration file SMVIDEO
pathname of a display configuration file SMVARS
pathname of an abbreviation file containing all three
abbreviates your terminal's make and model
The first three are the ones you really need. They tell JYACC FORMAKER where to
find its configuration files: one with error message text, another that maps
your terminal's keys to JYACC FORMAKER's logical keys, and a third that tells
JYACC FORMAKER how to control your terminal's display. These files are normally
installed in a subdirectory named config of the directory where JYACC FORMAKER
was installed. The default message file is called "msgfile.bin". The video and
keyboard files come in pairs; their names consist of a prefix corresponding to
the terminal type followed by "vid.bin" and "keys.bin" respectively, as in
for the DEC VT-100. The "config" subdirectory contains files named smvars and
smvars.bin, with pathnames of all the configuration files qualified by the
terminals to which they belong.
Anyway, once you've found the files you need, the easiest thing to do is to
assign their full pathnames to the SMMSGS, SMKEY, and SMVIDEO variables. (An
alternative is to set the SMVARS variable to the pathname of the smvars.bin file
JYACC FORMAKER config directory, and your SMTERM to your terminal
abbreviation. Then, JYACC FORMAKER will find the files flagged with your
terminal type in the SMVARS file.)
PRIMOS note: the configuration files are in a top-level directory named
FORMAKER*, and there is no environment; JYACC FORMAKER will prompt for your
MSDOS/XENIX note: for consoles, the key file is "IBMkeys.bin"; the video file is
"bwvid.bin" for monochrome monitors, and "colvid.bin" for color monitors.
If Your Terminal Isn't Configured
There is a list of terminals for which JYACC distributes configuration files in
an Appendix to this chapter. If you cannot find distributed configuration files
for your specific model, check for emulations. Many popular terminals, for
instance, emulate the DEC VT-100; others may support the ANSI standard escape
sequences. If that doesn't work, you will need to create your own; the JYACC
FORMAKER Configuration Guide will help you through that process.
3.2 JYACC FORMAKER Function Keys
JYACC FORMAKER interprets a number of keys specially. Here is a list of their
names and functions. To find out how these logical functions are assigned to
your terminal's keys, examine the key translation file, or run the modkey
utility on it. That utility, described in the Configuration Guide, contains a
key translation test screen that you can use to check your key mappings. To find
the key files, see the previous section; listings for the IBM PC and WYSE-85 are
appended to this chapter as examples. There is a detailed summary of special
keys in the Author's Guide, in the section on data entry.
JYACC FORMAKER Functions
Transmit Menu selection or end of data entry Exit
Abort data entry, return to previous screen
Up Arrow Cursor up one line or field Down Arrow
Cursor down one line or field Left Arrow
Cursor left one column or field Right Arrow
Cursor right one column or field Tab
Next field Backtab
Previous field Return
Next field on following line Page Up
Scroll data up in scrolling field Page Down
Scroll data down in scrolling field
Insert Toggles insert/overwrite mode Delete
Deletes character under cursor Backspace
Deletes character to left of cursor Field Erase
Erase from cursor to end of field Clear Screen
Erase all unprotected fields
PF1-PF24 These are commonly assigned to the otherwise APP1-APP24
unnamed function keys on a terminal. SPF1-SPF24
4 A JYACC FORMAKER Glossary
array Several fields grouped together in one place, that can be
treated as a unit. The elements of an array share all
characteristics, such as scrolling, and can be referred
to as occurrences of the first field in the array.
attached function An application routine associated with a field that is
called with certain parameters whenever the cursor enters
or exits the field. Also, an application routine
associated with a screen and called upon screen entry or
border Text or highlighting used to mark the outline of a
character edits A field's character edit defines what type of character
may be entered in a field, such as digits, letters, or a
display A physical screen, such as a terminal on a multi-user
computer or the monitor on a personal computer.
display attribute Visible characteristics of data on the screen, such as
color, highlighting, underlining, or blinking.
display data The fixed part of a screen: text, borders, and graphics
that do not change. Distinct from fields, which may be
altered by the program or by data entry.
element A field that is part of an array. An array element may be
referred to either by its own field number, or by the name
of the array plus its element number. A non-array field is
considered to have a single element.
element number A field's element number is its position within the array
it belongs to. The element number of a simple field is 1.
field A variable area of a screen, used for the exchange of
data between an application and its user. A single field
occupies part or all of one line. It may be extended
horizontally through shifting, and vertically through
scrolling. Fields may have many characteristics and
actions associated with them, known variously as edits,
attachments, and validations.
field attachment An item associated with but distinct from a field.
Examples include a help screen, a prompt, an attached
function, a calculation, or a menu of possible items for
field edits Field edits either restrict the data that can be entered
into a field, or alter its appearance. Examples include a
range of permissible values, right justification,
conversion to upper case, and dollar amount format.
field number JYACC FORMAKER numbers fields according to their positions
within a screen, from left to right then top to bottom,
beginning at 1. When a field is spoken of as "next" or
"following" another field, this is the ordering that
field validation An action associated with a field that checks data entered
there for correctness.
form A screen that occupies the entire display and does not
overlay another screen, as opposed to a window. Often used
loosely as synonymous with screen.
function key A key that has some special function other than data
entry, for instance cursor motion. JYACC FORMAKER treats
such keys as logical keys, referring to what they do
rather than to their labels on the keyboard, since the
labels are different for the many keyboards it supports.
function list A list of pairs of function names and addresses, compiled
into JYACC FORMAKER applications to provide necessary
help screen A screen containing any information helpful to the user of
a JYACC FORMAKER application. Help screens may be attached
to JYACC FORMAKER screens and fields; they appear when the
HELP or FORMHELP function keys are struck.
item Data entered into a scrolling field, or into one field of
a scrolling array.
item number The position of an item within its scroll list. The item
number does not depend on the item's position on the
justification Data in JYACC FORMAKER fields may be either right- or
left-justified, that is, pushed all the way to the right-
or left-hand end of the field.
library The JYACC FORMAKER function library, which contains
routines application programmers can use to access data in
screens and the local data block.
logical key JYACC FORMAKER's interpretation of a function key, as
opposed to the physical key on a terminal. Physical keys
are mapped to logical keys by a configuration file.
menu A screen containing a list of choices, from which the user
may select one.
occurrence A general term covering simple fields, array elements, and
items of scroll lists. In a scrolling field or array,
occurrence is equivalent to item; in a non-scrolling
array, it is equivalent to element.
occurrence number A data item's element number or item number, whichever
applies. If the field is neither scrolling nor part of an
array, the occurrence number is 1.
parallel array Scrolling arrays placed next to one another will scroll in
parallel, i.e. whenever one array is scrolled with the
cursor or page keys the associated arrays scroll
prompt Text associated with a field that appears on the
terminal's status line whenever the cursor enters the
field. Also called status text.
protected field A field into which no data may be entered from the
screen Data to be displayed on a computer's terminal or display,
such as menus and data
entry forms. When the hardware
display itself is meant, the terms physical screen or
display are used.
screen editor A JYACC FORMAKER tool used to create and alter screens.
scrolling JYACC FORMAKER screens may contain data lists that are too
long to fit in available space; such lists may be
scrolled, either in a single field or in an array of
fields. The cursor motion keys cause different parts of
the list to appear on the screen.
scroll list A data list displayed through a scrolling field or array.
shifting A data item too wide to fit in a field may be shifted
horizontally; the cursor motion keys will cause different
parts of the item to appear in the field.
status line JYACC FORMAKER sets aside one line of the physical screen,
usually the bottom one, for error and status messages; it
is called the status line.
status text See prompt.
system date The current date, as stored in the computer. JYACC
FORMAKER date fields can be automatically initialized to
the system date.
system time The current time, as stored in the computer. JYACC
FORMAKER time fields can be automatically initialized to
the system time.
user date A date entered into a JYACC FORMAKER date field by the
user of an applciation.
user time A time entered into a JYACC FORMAKER time field by the
user of an application.
window A screen that normally does not cover the whole physical
screen, and overlays some other screen or screens.
word wrap Fields and scrolling arrays may have a word wrap edit,
which will cause whole words to be kept together on the
same line of text. (JYACC FORMAKER's default is to fill
the field with characters, without regard to word
zoom Shifting and scrolling fields may be viewed and edited as
a whole, in a pop-up window, using a special zoom key.
Appendix A Sample Key Assignments
You will find explanations of the key names used here in the section of the
Author's Guide entitled Data Entry.
JYACC FORMAKER key assignments for the IBM PC family:
EXIT = Esc TRANSMIT
= End HELP
= control-F1 FORM HELP
= alt-F1 LOCAL PRINT
= control-P RETURN
= Enter TAB
= Tab BACKTAB
= shift-Tab BACKSPACE
= control-H HOME
= Home PAGE UP
= Pg Up PAGE DOWN
= Pg Dn INSERT MODE
= Ins INSERT LINE
= control-K DELETE CHAR
= Del ERASE
= control-Pg Up CLEAR ALL
= control-Pg Dn ZOOM
= control-Z PF1
= F1 ... PF10
= F10 SPF1
= shift-F1 ... SPF10
JYACC FORMAKER key assignments for the Wyse 85:
EXIT = F11 TRANSMIT
= Do HELP
= Help TAB
= Tab or control-I
= F12 HOME
= F14 BACKSPACE
= control-H DELETE CHAR
= Remove INSERT MODE
= Insert Here ERASE
= Select CLEAR ALL
= control-Z PAGE DOWN
= Next Scrn PAGE UP
= Prev Scrn RESCREEN
= Find ZOOM
= control-E PF2
= F6 ... PF6
= F10 PF7
= F17 ... PF10
= F20 SPF1
= PF4 1 ... SPF9
= PF4 9
Appendix B List of Supported Terminals and Emulators
The following list is subject to constant revision, usually by having more
things added to it. The mnemonics listed can be found as prefixes to key and
video files in the config subdirectory of your JYACC FORMAKER distribution. As
distributed by JYACC, names of video files end in vid and names of key files end
in keys. You may find that you need to shorten or otherwise alter some of the
names, to suit your operating system or your own naming conventions.
Terminal mnemonic Description
5425t AT&T 4425 terminal.
7900 NCR 7900 M1+ terminal.
FT Fortune Systems terminal.
TV9220 TeleVideo 9220 terminal. Also found as NTV9220,
WTV9220 for 80- and 132-column modes
TVO TeleVideo 955 terminal with onscreen attributes.
W85 Wyse 85 terminal. Also found as NW85, WW85 for
80- and 132-column modes respectively.
a219 Ampex 219 terminal (in native mode).
ansi Color PC console for SCO XENIX.
avt HDS AVT terminal.
bw Monochrome monitor on MS-DOS system.
c108 Concept 108 terminal.
col Color monitor on MS-DOS system.
cpt200 Color PC with PCLINK emulating a PRIME PT200
d214 Data General Dasher 214 terminal (in DG mode).
f100 Freedom 100 terminal.
h0 Honeywell VIP 7300 terminal.
hds HDS model 200 terminal.
host Basic ANSI terminal or emulator, with color.
hostpc Stratus PCTERM emulator, monochrome or color.
hp Hewlett-Packard 2392a terminal.
iii TeleVideo 955 terminal, with onscreen attributes
j8, j8c Monochrome and color PC, respectively, with JYACC
jterm emulator and 8-bit control sequences.
jterm, jtermc Monochrome and color PC, respectively, with JYACC
opus220 Opus 220 terminal.
pc Either monochrome or color PC with generic VT-100
pt200, pt132 PRIME pt200 terminal, in 80- or 132-column mode;
also monochrome PC with PCLINK emulator.
pt200w PRIME pt200 in 48-line mode.
svt200 Sperry SVT1220 terminal.
ti931 Texas Instruments 931 terminal.
tvi921 TeleVideo 921 terminal with onscreen attributes.
tvi950 TeleVideo 950 terminal with area attributes.
tvi955 TeleVideo 955 terminal with area attributes.
v101 Stratus V101 terminal.
v102 Stratus V102 terminal.
vt100 DEC VT-100 terminal or emulator.
vt200 DEC VT-200 terminal or emulator.
vt220 DEC vt220 terminal or emulator.
wy30 Wyse 30 terminal, or HP 700/41 emulating the
wy50 Wyse 50 terminal.
wy75 Wyse 75 terminal.
x100, x100c Monochrome or color PC with Crosstalk emulating a
In this Index, library functions are
displayed in boldface, without the
prefixes specific to the language
interface. Video and setup file
entries appear in ELITE CAPS, while
utility programs and JPL commands
are in elite lower-case. Function
key names are in ROMAN CAPS.
A definition 1-4
array field edits
definition 1-4 definition 1-4
attached function field number
definition 1-4 definition 1-4
authoring utility field validation
1-1 definition 1-4
B definition 1-5
bin2c utility 1-1 formlib utility
definition 1-4 function key
C function library
character edits 1-1
definition 1-4 function list
configuration 1-1 definition 1-5
display help screen
definition 1-4 definition 1-5
definition 1-4 I
display data item
definition 1-4 definition 1-5
E definition 1-5
definition 1-4 J
element number justification
definition 1-4 definition 1-5
F getting started
f2r4 utility 1-1 with 1-1
field key2bin utility
definition 1-4 1-1
L variable 1-2
library SMTERM setup
definition 1-5 variable 1-2
logical key SMVARS setup
definition 1-5 variable 1-2,
lstform utility 1-3
1-1 SMVIDEO setup
M status line
menu definition 1-6
definition 1-5 status text
Modkey utility definition 1-6
1-1, 1-3 system date
O system time
occurrence definition 1-6
occurrence number U
definition 1-5 user date
P user time
parallel array definition 1-6
definition 1-5 var2bin utility
protected field 1-1
definition 1-5 vid2bin utility
definition 1-5 window
screen editor definition 1-6
definition 1-6 word wrap
scroll list definition 1-6
definition 1-6 zoom
shifting definition 1-6