home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Share Gallery 1
/
share_gal_1.zip
/
share_gal_1
/
GE
/
GE003C.ZIP
/
SECTION3.DOC
< prev
next >
Wrap
Text File
|
1990-07-08
|
32KB
|
611 lines
III. Family History System design
In developing the programs in this system, a number of decisions were
made which influenced the appearance and character of the final
product. The following paragraphs provide descriptions of some of the
features of the system which resulted from those decisions. I hope
that this will increase your understanding of how the system works and
will make you feel more comfortable with its operation.
A. Fixed Formatted Displays
One of the first decisions made concerning the design of the system
was for the use of `static' formatted screen displays instead of the
`scrolling' mode of operation found in many early programs written for
personal computers. Because the programs were written in `inter-
preted' BASIC, a notoriously slow language, the use of formatted
displays made the execution of some parts of the system seem a bit
ponderous. I believe that the benefits derived from the use of the
formatted screens outweigh the occasional `performance' problem. (The
compiled version of the programs performs much more satisfactorily in
this area.)
B. Modular program design
It was impossible to include all functions of the system within a
single program, however I decided that each system function should be
completely contained within one program. As a result, it is only
necessary for a program diskette to be placed in the system's default
drive while changing system functions. At other times it may be
replaced with a separate diskette containing data files. This should
be especially appreciated by those who have PC's with a single disk
drive. If the program diskette is replaced by a data diskette
however, you must wait until prompted to restore the program diskette
to the drive when you are returning to the Main Menu display. This is
especially important when using the file maintenance program.
C. System Messages
The bottom line on the screen is reserved for displaying messages. In
some cases, these messages ask for a response from the operator (such
as `Y' or `N'); if a `single-key' response is expected, you do not
have to use the ENTER or RETURN key to indicate the end of your
response. Some messages are merely informational; these will be
terminated by an ellipsis (...) which indicates that the program is
waiting for you to press any key on the keyboard to show that you have
received the message so that the program may continue. I haven't
included a list of messages in this document. I trust that they will
be self-explanatory as they appear. Please let me know of any prob-
lems you have interpreting them.
D. Use of Function keys
The system has been designed to take full advantage of the PC's
function keys for simplifying the selection of program options.
Allowable function keys are indicated on the currently displayed
17
panel. Pressing an `illegal' key will result in the sounding of a
soft tone without any further action.
E. Use of the ESCAPE key
The ESCAPE key, labeled `Esc' on most keyboards, is used almost
uniformly as a request to terminate an operation without further
action. It only has effect, however, at those times that the program
is looking for input from the keyboard. It cannot be used to
interrupt the adding of a record to the files after you have requested
that the information be written to disk, and it usually cannot be used
to interrupt the creation of a work file.
One extended operation which may be interrupted is the printing of
reports. After each line of a report is written to the output device,
the report program looks for input from the keyboard. If some key has
been pressed, the printing is interrupted and a message such as:
`Waiting...'
is displayed on the bottom line of the screen. If the ESCape key is
then pressed, the report is terminated; pressing any other key causes
the program to continue the printing of the report. The SPACE BAR is
a convenient key for pausing and continuing a scrolling report.
The ESCape key is the standard means for returning from one `viewing
area' of the segmented display used in the file maintenance program to
the previous `viewing area' from which control was passed as a result
of some operator request. The one exception is the viewing area for
comments in which the ESCape key acts as the `undo' key to restore the
line on which the cursor is located to its contents at the time the
cursor was moved to the line. Return to the viewing area from which
the comments display was requested is accomplished by pressing the F1
key.
F. Full Screen Mode of Data Update
Part of the decision to use static formatted screen displays in which
data is shown in fixed labeled areas of the screen called `fields' was
the plan to permit operator update of the displayed information
directly on the screen within the limits of the field containing the
data. This has the advantage that the operator may make changes to
any of the fields without prompting from the program. You may return
to previous fields to correct errors and may view all changes made
before submitting the changes to the program for processing.
Certain conventions have been established to make use of many of the
PC's special function keys to simplify the updating of information on
the screen. Actually two sets of conventions were established, one
for the update of text stored as comments, and the other for the
update of information displayed in discrete fields on the screen.
These sets of conventions will be described separately in the
following paragraphs.
18
1. Updating screen displays (other than comments)
a. The "cursor control keys" can only be used to move the cursor
within the area permitted for a single labeled field (the field
containing the blinking cursor);
b. The "TAB" key (just to the left of the "Q" key on the keyboard)
may be used to move the cursor to the first position of the next
`updatable' field on the screen (if there is no next field, the
cursor goes to the first updatable field on the display);
c. The "SHIFT+TAB" keys (press the SHIFT and TAB keys simulta-
neously) may be used to move the cursor to the last previous
updatable field on the screen (if there is no prior field, the
cursor goes to the beginning of the last updatable field on the
screen);
d. The "HOME" key moves the cursor to the first updatable field on
the screen;
e. The "END" key moves the cursor to the last updatable field on
the screen;
f. The Enter or Return Key moves the cursor to the first updatable
field of the next line (when updating 2 or more lines of data on
the screen);
g. The "CTRL+END" keys erase (replaces with blanks) all characters
from the cursor position to the end of the field containing
the cursor;
h. The "DEL" key removes the character at the cursor position and
moves all trailing characters (in the field) one position to
the left;
i. When a character is entered in the last position of an
updatable field, the cursor is automatically `tabbed' to the
next updatable field;
j. For some fields (e.g. Record ID, DATES) you will only be
permitted to enter numeric digits; a tone is sounded if other
characters are entered;
k. For some fields (e.g. SEX, File names) entered alphabetic
characters will automatically be changed to upper case.
l. When entering NAME record information in the file update program
the F3 key is used to simplify the repetitive entry of
information such as surname or birth/death places. Pressing the
F3 key will restore the cursor field with the last displayed
contents.
Entered updates are committed by pressing a function key designated by
the program (usually F1) or by pressing the ENTER or RETURN key if no
function key is designated. Pressing the ESC key terminates the
update request without any changes being made.
2. Updating Comment displays
a. Cursor control keys:
Right arrow - moves the cursor right one position; at the end
of a line the cursor goes to the beginning of
the next line; a tone is sounded at the end of
the last displayed text line.
Left arrow - moves the cursor left one position; at the
beginning of a line the cursor goes to the end
19
of the previous line; a tone is sounded at the
beginning of the top displayed text line.
Up arrow - moves the cursor to the next line up, same
column; a tone is sounded if the cursor is on
the top line.
Down arrow - moves the cursor to the next line down, same
column; a tone is sounded if the cursor is on
the bottom line.
HOME key - moves the cursor to the first position of the
current line
END key - moves the cursor to the last non-blank character
of the current line after the current cursor
position.
ENTER key - moves the cursor to the first position of the
next line; a tone is sounded if the cursor is
on the bottom line.
b. Special Update keys:
DEL key - erases character at cursor position and moves
characters following it to the left one position.
Ctrl END - Erases current character and all characters
following it on the line.
INS key - toggles a "character insert" mode. When this
mode is in effect a "^" character appears on the
last line of the viewing area. Characters
entered at the cursor location will cause the
current character at that location, and all
subsequent characters on the line to be moved
right one position. The last character on the
line will be truncated.
BKSP key - same as Left arrow key;
ESCape key - removes all updates made to the current line since
moving the cursor to the line.
c. Special function keys:
PGDN key - moves the current line to the top of the screen
and displays the succeeding lines. If the current
line is at the top of the page, the next full page
of text is displayed. Changes which have been
made to the displayed text lines will be
written to the file.
PGUP key - returns to the first line of text for the
comments. Changes made to the current page of
text are written to the text file.
F2 key - `toggles' between INSERT and EDIT modes.
If not in insert mode, then the text lines after
the current line are replaced by blank lines
for new text to be entered.
If already in insert mode, then non-updated blank
lines are replaced by existing lines in the file
beginning with the line which originally followed
the text line after which the insertions were
made.
The current mode of operation is shown as a
`reverse-video' literal in the lower left corner
20
of the area.
F3 key - deletes the current line of text.
The numbers shown in the lower right corner of the viewing area
are the number of the text line containing the cursor, and the
total number of text lines for the comments. The first number may
be greater than the second in the case that it is a new line
which no operator action has yet caused to be added to the text
of the comments.
Pressing the F1 key causes all unrecorded updates on the current
display to be written to the file and then returns you to the view
from which the comments display was requested.
NOTE CONCERNING THE FORMATTING OF COMMENTS IN REPORTS:
When entering comment information you should take into considera-
tion the following conventions for joining comment lines together
to form blocks of text when comments are included in reports
produced by the system:
1. Three successive blanks at the beginning or in the middle of
a comment line will cause all text on that line to the right
of the blanks to be ignored.
2. A blank character is placed between two successive comment
lines only if the last character of the first, or the first
character of the second one is a space. (This permits a word
which has been typed across a line break to be joined back
together properly.) Additional blank characters at the end
of a comment line are dropped.
3. The backslash "\" character is recognised as a request to
begin a new line of text in the formatted output. Two
successive backslash characters result in a blank line being
inserted between the preceding and following blocks of text
when the comments are formatted for reports.
4. You may enclose parts of your comments in "curly brackets" or
"braces", that is "{" and "}", and the report programs may be
instructed to omit that text from the comments that are
printed. This allows you to remove sensitive or conjectural
remarks from reports that are distributed to others.
G. Segmented Screen in the File Maintenance Program
Because of the complex nature of the Family History System files and
the variety of information that can be stored in them, I decided to
use a `segmented' screen in the program that is used to display and
update information in these files (MainMenu option F1). Within this
program the standard 24x80 screen area is divided into 4 `viewing
areas': upper left, upper right, lower left and lower right. (A 5th
viewing area occupies the lower half of the screen.)
Different information is displayed in the various viewing areas so
that up to 4 types of information may be viewed at one time without
interferance. Of the several viewing areas that may appear at one
time on the screen, one will be designated the `current viewing area'
and will be distinguishable by its being enclosed by a `hilited'
21
border. The hilited border is moved from one viewing area to another
by selecting options (or terminating requests using the ESCape key).
While viewing information for one of the record types that may occur
multiple times, ordered by some date, you will be prompted by the
message: `Press PGUP key for earlier record'
if there is some record of that type which precedes the one currently
being viewed. (The PGDN key can not be used to return to later
occurrences of the record type however.)
The lower half of the screen is used as a fifth viewing area for
displaying lists of individuals resulting from a `search' of the
system files or a request to list the children of an individual or of
a marriage. Individuals may be selected from these lists for display
of related information by following the instructions in the `view'.
Others in the list may be selected for display at a later time by
returning to the list (after pressing the ESCape key in the `view' of
Name record information). Alternatively, one may go up (or down) an
active SEARCH list by pressing PGUP (or PGDN) key in the view of name
record information. (Similarly one may go up or down an active CHILD
list by pressing the CTRL+PGUP or CTRL+PGDN keys in the view of name
record information.)
In the upper right corner of most viewing areas is the "relative
generation level" of the individual(s) whose information is displayed.
This level is adjusted whenever a parent/child relationship is crossed
and is set to 0 whenever an individual is selected for display based
upon something other than a parent/child or spouse relationship
(spouses are assumed to be in the same generation level).
H. Changing the Screen Attribute Table and Error Tone
It was a suggestion of a member of our local PC user's group that
prompted me to implement a `screen attribute table' to provide a
common base for the use of color in the different programs in this
system. Although my own PC used the IBM monochrome board & display,
my friend's remarks that `any program which didn't permit him to take
advantage of his color monitor would receive little use on his system'
resulted in the program described in this section.
If you select MAIN MENU option F3-B, you are presented with a display
which lists 11 different types of information that may be used in
building the screens used by programs in the Family History System.
These types are:
Non-displayable data (such as passwords)...not used in the system
Standard literals or labels
Hilited literals, labels or messages
Numeric text
Upper Case text
REVERSE video text
Updatable Alphanumeric text
Updatable Numeric text
Updatable Upper Case text
22
Lowlite borders
Hilited borders
Different color attributes may be assigned to each of these types of
information resulting in much more pleasant displays for those who
have color monitors at their disposal. The only restriction in
assignment of colors is that each of the three types of `updatable'
information must have attributes which are distinct from all others in
the table. If you attempt to return to the MainMenu with an "illegal"
combination of attributes, a message will be displayed and the problem
entries will be marked.
A `screen attribute' consists of a foreground/background color
combination together with a `blink' option. Each position of the
display screen has an associated `screen attribute' that describes the
appearance of any character that is placed at that screen location.
To the left of each described type of information is a character
displayed with the screen attribute currently being used for that type
of information.
A small `arrow' on the left side of the screen points to the informa-
tion type whose screen attribute is currently being examined. The UP
and DOWN cursor controls may be used to move this `selection' arrow to
different information types.
The foreground/background/blink components of the `selected' informa-
tion type are shown on the bottom portion of the screen. Small
`arrows' point to the foreground and background component colors in
`pallettes' of 16 and 8 colors respectively. (These pallettes are
really not very interesting for PC's using IBM's monochrome board and
monitor, the only really distinguishing combinations in this case
being ones which produce reverse-video, underscore or hilite effects.)
The blink component is shown by a hilited `Y' or `N'.
The screen attributes for a selected information type may be changed
using the function keys and the horizontal cursor control keys. Func-
tion key F3 toggles the blink attribute on and off. The horizontal
cursor control keys are used to move the indicator arrow for the
foreground and background color pallettes. Function key F1 is used to
select which of the pallettes is being controlled by the cursor keys.
Function keys F5 & F6 may be used to load the screen attribute table
with previously prepared versions `suitable' for use on IBM's mono-
chrome or color monitors respectively. If you have a color monitor
and would like to try a color table which uses a light colored
background, press ALT+F6 to load a table which I have found pleasing
on an IBM Enhanced Color Monitor. Function key F7 may be used to
restore the screen attribute table with the last saved values.
Function key F9 is used to return to the MAIN MENU display. You will
be asked whether you wish to save the screen attribute table which
exists at that time. Actually you will be asked:
1)Temporary or 2)Permanent
A response of `2' will result in the attribute table's being written
to the program diskette (in dataset FAMILY.DAT) for use in later
23
Family system work sessions. Any other response will result in a
return to the MAIN MENU panel without saving the table although it
will continue in use until you leave the system or return to this
program to change the table again.
CHANGING THE ERROR TONE FREQUENCY & DURATION
Option F8 of the program that maintains the Screen Attribute Table
allows you to change the frequency and duration of the tone that is
used to inform you of error conditions. During this option, you can
press the F1 and F2 keys to decrease or increase the tone frequency,
or press F3 or F4 to decrease or increase the duration of the tone.
The tone may be sampled by pressing the space bar. Pressing the F9
key terminates the routine. The changes will be saved for later use
if you request that all entered changes be made permanent when you
return to the MainMenu. (Note: setting the frequency to a very large
value reduces the error signal to a barely audible click.)
I. Use of PRINTER SETUP Table
The Family History System makes use of a printer table which contains
control sequences and special characters used when printing the
system's reports. A program is also provided to permit you to custom-
ize this table for your printer. The current printer setup table is
displayed by selecting MAIN MENU option F3-C.
Upon entry to the Printer Control Setup program, you will see
displayed in a reverse video array of boxes, the decimal numbers for
the ASCII values of characters in the printer control sequences and
for certain `chart building' symbols. The printer control sequences
identified are for:
Resetting the printer at the beginning of a report;
Selecting the type size at the beginning of a report;
Causing a carriage return and line feed at the end of a
print line;
Requesting an advance to top of next page at the end of a
page or a report.
The chart symbols are those used for the `ancestor tree' lines when
printing an ancestor chart. The Gemini 15 and IBM Graphics printers
produce symbols similar to those which are used on the screen. The
Epson FX-100 has no such symbols in its character set and so the +,-,!
symbols are used. Examination of your printer's manual should provide
you with the information required for setting up these tables for it.
You should be aware that some printers will print more slowly when
graphic characters, such as the chart building symbols, are included
in a print line. If yours is one such printer, you may consider using
a printer setup which uses the +,-,! symbols for producing "draft"
copies of ancestor charts and use the more pleasing graphic symbols
for final copies.
(If you have a printer for which none of the supplied tables work, I
would be interested in receiving a set of the control sequences and
24
symbols that do work, along with the name of your printer, so that I
can add it to the list of `supported' printers whose control sequences
may be selected under this program's `F3' option.).
The Form Size is used to describe the limitation of the output page
size in characters/line and lines/page based upon both the font and
printer initialization parameters specified as well as the physical
size of the paper being used.
Up to 9 different tables may be saved. Table number 1 is the
default table that will be loaded upon entry to the Family system.
(Some notes concerning the printer control sequences:
a. The first two entries in the table are sent together to the
printer before printing each report. If necessary, they may be
treated as a single 16 character initialization sequence.
b. the decimal number `255' may be used to mark the end of a
short control sequence to prevent sending extraneous trailing
zeroes.
c. If your printer doesn't recognise a `form feed' control sequence
you can put a decimal `255' in the first character of the table
entry and the report programs will use multiple line-feeds to
advance to the top of a page.
d. If you are using a printer which requires you to manually feed
individual sheets of paper for a report, you can force the
report programs to stop at the top of each page by putting a
decimal '254' as the last character (before the '255') in the
table entry for 'Advance to top of Form'
e. The table for the HP LaserJet+ is intended to make use of the
resident compressed LINE PRINTER font of that printer and may
not work correctly if a font cartridge is installed.
f. The table for "Dataset" is intended for routing reports to disk
files. This has been used by some to print reports with a
SIDEWAYS printing utility.
J. System "File" Name Table
The File Name Table (or more consistently, the Dataset Name Table)
describes the default values to be used for family dataset, work
dataset and printer output file specifications. Included in the "file
specification" is the designated drive which is to contain the file
disk (that's the character preceding the ":"). Default values for
file name table entries are:
x:FAMILY .NAM Name dataset
x:FAMILY .ADR Address dataset
x:FAMILY .OTH Miscellaneous information dataset
x:ANCESTOR.WRK Ancestor work file
x:DESCNDNT.WRK Descendant work file
LPT1: Printer output destination
where x: is
A: for systems installed on a diskette
C: for systems installed on a hard disk.
Individual entries in the table may be changed temporarily within each
program that uses it. Permanent changes may be made using MAIN MENU
option F3-A.
25
Some reasons for making changes to the table might be:
a. use of a RAM disk (usually designated as C: drive on non-XT
systems) to hold data and/or work files. This can greatly
improve the performance of the system in creating work files
and producing reports. It also reduces considerably the `wear
and tear' of mechanical disk drives.
b. You may wish to maintain multiple family files using the
primary surname as a prefix for each set of files. The file
name table default values would be the set of values upon
which your work is concentrated.
c. If you have two drives on your system, you may wish to assign
some of the files to each of the drives. This may require
removing the program diskette from drive A at times. Read the
cautions in sections II.B.4 and III.B concerning this.
d. If your system has no printer, a printer designation of SCRN:
will result in all printer output automatically going to the
screen without the program's asking whether to send the output
to the printer or screen.
Users of the extended system should note the following conventions for
default names for datasets used only in that set of programs:
a. The prefix for the default index file name is taken from the
default name for the NAME dataset. To this the suffix `.NDX' is
added.
b. The first character of the default ancestor work area name is
used for the drive designator for the SELECT, TRANSFER and
MAILMERG datasets, as well as the RELATIVE.WRK dataset.
26