home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
EDITOR
/
SFGR.ARK
/
SFGR.DOC
< prev
next >
Wrap
Text File
|
1986-10-02
|
41KB
|
1,123 lines
**************************************************
* *
* S F G R *
* ------- *
* *
* SCREEN FORMAT GENERATOR PROGRAM *
* FOR CP/M-80 *
* *
* VERSION 1.00 *
* *
* Copyright (c) 1986 Harris Landsberg *
* *
* Harris Landsberg *
* 1350 East 5th Street *
* Suite 1-J *
* Brooklyn, New York 11230 *
* *
* 1-718-951-7075 *
* *
**************************************************
COPYRIGHT
=========
No part of this documentation, software system, source code or
technical information used in this system may be sold, either stand
alone or as part of another package, without the written permission of
the author. Object produced through the program source code written by
the user may be distributed as the writer pleases, but the author
requests a copy as a thankful gesture for program use.
It is presently intended that software may be shared freely, but
the author requests a modest donation of $10.00 if you find it useful
in any way. Those who make a contribution will be entitled to support
and software updates if any should arise.
The author reserves the right to later repackage this software
system for sale with other software. Any alterations made to the
software, source code or documentation should be sent to the author
for final approval. This is done to keep the integrity and quality of
the software at the standard the author deems fit.
LIMITED WARRANTY
================
The author warrants this product to run under CP/M 2.2 on an
Epson QX-10/16 with Televideo 920 terminal emulation. Every attempt
will be made to isolate terminal specific instruction, and provide
either an installation program or patch instructions. See applicable
documentation and technical information for further reference.
No other warranties are expressed or implied including warranties
of merchantibility, fitness for a particular purpose. Nothing in this
statement shall be construed as a written statement guarantee. You
have specific legal rights, but that is only if you make the requested
contribution of $10.00. All rights reserved.
Table of Contents Page
1. Introduction . . . . . . . . . . . . . . . . . . . . . 3
2. Screen Specifications. . . . . . . . . . . . . . . . . 4
3. Display Specifications . . . . . . . . . . . . . . . . 6
4. Running SFGR from CP/M-80. . . . . . . . . . . . . . . 11
5. Error Messages . . . . . . . . . . . . . . . . . . . . 12
6. Technical Information. . . . . . . . . . . . . . . . . 14
7. The User Support Concept . . . . . . . . . . . . . . . 16
8. Registration Form. . . . . . . . . . . . . . . . . . . 17
2
Introduction
------------
The SFGR Compiler is intended to process user-generated screen
format specifications and produce a display screen format object file
that can be loaded at run-time by a program. SFGR is a utlity on the
IBM System 34/36 mini-computer systems and used primarily with the RPG
language. It is also interfaced with Cobol and Basic on those systems
running under SSP, System Support Program.
This version is intended to run under CP/M-80 version 2.2 or
higher. It can be interfaced with any language to drive the screen
displays, user response, and input/output. This implimentaion is
System 34/36 compatible, with all examples provided tested under the
System 36 environment. Some restriction apply and not all attributes
have been implimented. This document will point out such discrepencies
where it is deemed appropiate.
In addition to generating a screen object format, SFGR can
generate a listing, either to the screen, printer or file, listing the
source specifications and diagnostic or informational messages for use
with implimenting the screen format. These are:
a) Output buffer description.
b) Input buffer description.
c) Indicators used.
A utility program is provided called FVIEW that will page through
a screen format file and display output constants with output variable
as "*". The proper syntax is FVIEW [d:]filename, with file-extension
assumed as ".FMT".
3
Screen Specifications
----------------------
The first record in a display format specification is a screen
format specification statement. This control statement provides the
necessary information to the support program that is relavent to the
entire display screen. It sets up where the display screen will start
and for how may lines should be cleared prior to its display. Also it
identifies the allowable command key response allowed by the user, and
the name to call this format screen.
The following are the valid screen specification fields that are
implimented and their meaning.
Sequence Number (Columns 1-5)
Columns 1 through 5 may contain record sequence information. It
is ignored by the SFGR Compiler, but is listed when listing has been
requested. This field is not required.
Form Type (Column 6)
Column 6 must contain the character "S" to identify that this is
a screen specification. This is required field.
Format Name (Coumns 7-14)
This entry gives a unique name to the screen format that is being
defined. Duplicate names in the same source program are invalid and
will be flagged by the SFGR Compiler. The first character must not be
blank, and blanks cannot be embedded within the name. The format name
can be a combination of any character except "," (comma) and "'"
(quote). The format name must be 8 characters or less. If there is an
"*" in column 7 then that record is considered a comment.
Start Line Number (Columns 17-18)
The start line number where the display will begin. The actual
start line number on which a field begins is calcuated through the
following equation:
Actual Line # = Start Line # + Display Row # -1
Entried allowed for start line number:
Blank Line 1 of the display screen is assumed as start.
1-24 Specifies the line where the display is to begin.
V Variable start line defined by within program.
Lines to Clear (Columns 19-20)
Specifies the number of lines to clear prior to displaying the
screen format. Valid entries are between 0 and 24, with blank assumed
as entire screen (24 lines)
4
Lowercase (Column 21)
Specifies whether all alphabetic characters will be displayed and
sent to the user program in lowercase or uppercase. Allowable entries
are N (or blank) for all alphabetic characters are uppercase, and Y
for alphabetic letters can be sent in lowercase.
Sound Alarm (Columns 25-26)
Allow the bell to sound prior to screen display. Valid entries
are N (or blank) for the bell not to sound and Y for the bell cast its
lovely sound. Also allowed are indicators (an internal switch that can
be turned on or off by the user program) 01 through 99. If a valid
indicator is on, the the bell will sound.
Enable Function Keys (Column 28)
Allow operator to use command keys to control program operation.
You use enable function keys to allow command keys to be allowed. If
functions are not enabled then all function keys are disabled. The
specific command keys to be enabled are defined in the key mask.
Valid entries for enable function keys:
Blank All command keys are disabled. Key mask is ignored.
Y Command keys identified in key mask are enabled.
N Same as blank.
R Retain previous mask. Not implimented.
Key Mask (Columns 64-79)
The key mask is a string of letters that identify the command
keys that are enabled for this screen. The key mask must begin in
column 64 and cannot contain embedded blanks. Letters may be put in
any order, though alphabetically would be easier to read.
This SFGR Compiler has only implimented 10 command keys. A
command key is the ESC character followed by a number from 1 through
10. On System 34/36 machines there are 24 allowable indicators. An
implimentation of SFGR in MS-DOS by Lattice impliments only 10. This
version impliments only 10, because in most applications written on
System 34/36 only use the first 10 indicators.
The alphabetic letters A through J correspond to command keys 1
through 10, respectively.
Note: No provision has been made to impliment blink cursor
function, return input, erase input fields and function keys. These
were either deemed inappropriate for CP/M-80 or lack of use by users
of the System 34/36 environment.
5
Display Specifications
----------------------
The records that follow the screen specification are known as the
display specifications. They define a field on the display, and each
field must have its own record. A field can be either constant output
or variable input/output depending on how it is defined.
Sequence Number (Columns 1-5)
Columns 1 through 5 may contain record sequence information. It
is ignored by the SFGR Compiler, but is listed when listing has been
requested. This field is not required.
Form Type (Column 6)
Column 6 must contain the character "D" to identify that this is
a display specification. This is required field.
Field Name (Columns 7-14)
This entry specifies the name of the field being defined and can
have a maximum of 8 characters. It is used for reference only and not
included in the screen object format. There need not be any match
between the name given and the actual name used in your program, but
it is suggested, for debugging purposes, that they are identical.
An asterisk in column 7 identified this record as comment record,
except when this is a continuation record. If the previous record is
an output constant and requires a continuation, and has the letter "X"
in column 80, then the continuation line starts in column 7.
Field Length (Column 15-18)
Specifies the length of the field. The field number may be any
number from 1 to 1840. The value must be right-justified with leading
zeros allowed, but not required.
This implimentation limits the length for output variables to 250
positions. For input fields the maximum is 80 and cannot cross screen
line boundries. For output constant the maximum is 96 characters, with
only one continuation line allowed per field. This is sufficient for
most applications. Also a maximum of 250 variable input fields are
allowed per screen format.
Line Number (Column 19-20)
Specifies the number of the line relative to the start line as
defined in the screen specification statement. The actual calculation
was given by the start line definition. The actual line number cannot
exceed the maximum lines for the entire screen. The value must be
right-justified with leading zeros allowed, but not required.
6
Column Position (Column 21-22)
Specifies the column number of the first position in the field.
Valid numbers are between 1 through 80. It must be right-justified
with leading zeros allowed, but not required.
Output Data (Columns 23-24)
If a "Y" is specified in column 23 and a "C" appears in column 56
then the data specified in columns 57 through 79, and continuation
line if it applies, is displayed. If a "C" does not appear in column
56 then the data to be displayed is taken from the output buffer.
If a "N" is specified in column 23 then no output is performed
for this specification statement.
If an indicator (from 01 through 99) is specified, then when that
indicator is set on, then information from the output buffer is
displayed. If the indicator has not been set on, then the data within
the buffer for the field length of position is not displayed but the
buffer pointer is advanced.
If an output field is also defined as an input field, then the
data is moved into the input buffer and displayed and can be changed
by the program user.
Input Allowed (Column 26)
This allowes whether this field is an input field. The allowable
type of data is defined in the data type entry. Valid entries are "Y"
or "N". The input buffer is allocated only for "Y" entries.
Data Type (Column 27)
This entry defines the type of data that can be entered for an
input field. This SFGR Compiler limits it to the following:
B (or blank) Can contain any valid typing character.
N Numeric data only. (0-9,.,-)
All other types are not implimented and will be flagged by the
SFGR Compiler. We hope in the future to impliment more data types if
there is a request for them. Here is a quick list of extra data types
available on a System 36: A - alphabetic only. S - signed numerical
data. R - data from magnetic tape reader. Z - cursor moves from right
to left. D - decimal data. K - Katakana characters. E - mixture of
different characters.
Adjust Fill (Column 31)
If Z is specified then information entered into this field will
be right-justified and unused positions will be filled with zeros
before exiting field. If B is specified then information entered into
this field will be right-justified and unused positions will be filled
with blanks before exiting field. A field exit key must be pressed to
exit the field for it to take affect.
7
Position Cursor (Columns 32-33)
This field is used to explicitly position the cursor. Usually the
cursor is positioned at the first input field defined after the screen
specifications, but with this entry you can change all that. If there
is more than one position cursor enabled at time of display, then the
cursor is positioned at the first field that has enable indicator.
If a "Y" is specified in column 32, the cursor appears will start
at this filed, unless other fields have prior have cursor positioning
enabled. A "N" (or blank), the cursor is not positioned in this field,
unless it is the first input field defined after the "S" specification
and no other fields have cursor positioning enabled.
If an indicator (from 01 through 99) is specified, then when that
indicator is set on, then the cursor will be positioned unless a prior
field has cursor positioning enabled. If the indicator has not been
set on, then the cursor won't be positioned unless this is the first
input field specified for that screen format.
Controlled Field Exit (Column 35)
If you specify "Y" for this field, then a field exit key must be
pressed to exit field. A "+" will be used for delete-to-end-of-field
and justifying. TAB will be used for simple exit of field. The regular
cursor keys will not be allowed, and once you come to the end of this
field, the cursor will not advance to the next field. A "N" (or blank)
means a field exit can be used (should be used when you want to
justify input, especially numeric data) but is not required. Also, the
cursor will advance to next field when the position of the previous
field has been entered.
Auto Record Advance (Column 36)
If you specify "Y" for this field, the entire screen of input
will be returned when the operator has either: a) completed the last
position of the field that does not require a field exit. b) has
pressed the "+" key as field exit whether field requires field exit or
not. A "N" (or blank) means after entering field the cursor will then
go to next field. Normally, a program requires the ENTER key key to be
depressed for input data to be returned to a program. With auto
advance enabled the screen will be returned without the need for the
ENTER key. Note: you can bypass field with TAB to exit field and not
return input to program. The cursor keys can be used too if the field
is not control field exit enabled.
Protect field (Column 37-38)
If you specify "Y" in column 37, this field will be bypassed
whenever input is requested. If "N" (or blank) then normal processing
will take place for this field, meaning input allowed.
If an indicator (from 01 through 99) is specified, then when that
indicator is set on, then the cursor bypass this field for input. If
the indicator has not been set on, then the field will not be bypassed
when input is requsted for display format.
8
High Intensity (Columns 39-40)
If you specify "Y" in column 39, this field will be displayed in
high intensity. If "N" (or blank) then this field will be displayed
with normal intensity. If an indicator (from 01 through 99) is
specified, then when that indicator is set on, then the field will be
displayed in high intensity. Otherwise, if the indicator has not been
set, then the field will be displayed in normal intensity.
Blink Field (Columns 41-42)
If you specify "Y" in column 41, this field will be displayed
with blink attributes. If "N" (or blank) the field will be displayed
in normal non-blink attributes. When an indicator (from 01 through 99)
is specified, then when that indicator is set on, then the field will
be displayed blinking. Otherwise, if the indicator has not been set,
then the field will not be blinking.
Nondisplay Field (Columns 43-44)
If you specify "Y" in column 43, this field will not be displayed
on the screen. If an input field, characters will not echo. If "N" or
blank the field will be displayed in normal non-blink attributes. When
an indicator (from 01 through 99) is specified, then when that
indicator is set on, then the field will be displayed blinking.
Otherwise, if the indicator has not been set, then the field will not
be blinking.
A note on mixing screen attributes: If nondisplay is specified
together with high intensity, reverse image, or underline, then the
field will be assumed as nondisplay.
Reverse Image (Colum 45-46)
If you specify "Y" in column 45, this field will be displayed in
reverse image. If "N" (or blank) the field will be displayed in normal
attributes. When an indicator (from 01 through 99) is specified, then
when that indicator is set on, then the field will be displayed in
reverse image. Otherwise, if the indicator has not been set, then the
field will not be in reverse image.
Underline (Columns 47-48)
If you specify "Y" in column 47, this field will be displayed
with the underline atttribute. If "N" (or blank) then this field will
be displayed without underline. When an indicator (from 01 through 99)
is specified, then when that indicator is set on, then the field will
be underlined. Otherwise, if the indicator has not been set, then the
field will not be without an underline.
Column Separator (Column 49)
Most computers cannot display column separators, so an underline
is usually substituted. If "Y" is specified then the column separator
attribute is used. If "N" (or blank) then it is not used.
9
Constant Type (Column 56)
This field specifies whether constant information is output or
data is to be taken from the output buffer. If "C" is specified, then
constant data is assumed. An indicator cannot be used for output data
field if constant data is used. (Nondisplay field should be used if
you do not want to display on an indicator.)
If column 56 is blank, the display record is an output variable,
even if constant data is specified in columns 57 through 79. This last
statement makes this SFGR not entirely in conformity with SFGR on the
System 34/36. In most situations, you specify a "C" for constant data
even if columns 57-79 are not blank.
Constant Data (Columns 57-79)
This specifies the data constant that is to be displayed in an
output or input/output field. This is the actual constant data and if
longer than 23 characters it is continued on the next record starting
in column 7 and continues until column 79 of that record. If the field
consists of all blanks, then all blanks should be typed in, especially
when a continuation record is needed.
Continuation (Column 80)
If more than 23 characters of constant data is needed, an "X" is
placed in column 80 to indicate that the record is continued. Only one
continuation record per field is allowed in this version. Positions 7
through 79 of the next record contain the continuation data. And to be
compatible with System 4/36 SFGR, comments should not follow a record
with an "X" in column 80.
General Note:
Unused columns within a record should be left blank, but will not
be flagged by this SFGR Compiler. Also, try to limit all types of
lines to 80 characters. (132 character lines can be used safely, but
is not recommended.) For all comments, please use an "*" in column 7
for any record type except a continuation record. The SFGR Compiler
ignores such lines. Also, put comments after the screen specification
that are relevant to the screen format.
10
Running SFGR from CP/M-80
-------------------------
Running the SFGR from command line is easy. All that is needed is
compiler (SFGR.COM) and error message file (SFGR.ERR). If the error
message file is not on the current disk, then errors will be flagged
without a display message. No space is saved in not having the error
message file. There are three options that can be used for listing the
source member. The listing includes the source with error flagging at
the line, output buffer description, input buffer description, and the
indicators used. The switches are:
no switch no listing except for error to console.
/S listing to screen with everything.
/P same as above, but to the printer.
/F listing to file with ".LST" extension.
The file extension of a screen format source is ".SCR". The SFGR
Compiler requires this extension and cannot be changed. The output
format object file has a ".FMT" extension. The temporary file has the
standard ".$$$" extension, and will be renamed ".FMT" if no errors are
found in the source member. If an unsuccessful compile occured, the
previous format object file is not deleted or changed in any way. This
is nice when you blunder something so bad, and forgot to make a backup
of the original source.
Input source member, Output object file, and listing file are
placed or found on the same drive. Current drive will be used, unless
you specify a diffent drive. User areas are not directly supported in
this compiler. Here is the proper syntax:
SFGR [d:]filename [/x]
Where d: is the drive where the source is found and object will
be created. It is optional, defaulting to current drive. For filename
is a valid CP/M filename with an extension of ".EXT" (Must be left off
or switches will be ignored.). The /x is a valid switch as pictured
above. Must be uppercase (CP/M changes it to uppercase) and if it is
not valid it will be ignored. Usually use /S.
After the compilation, a message of how many format screens that
are within the compiled member are displayed. A maximum of 250 screens
are allowed for each source member. Also, the exact count of how many
bytes generated is displayed. On disk, it will be written in records
of 128 bytes, the CP/M standard.
The ".FMT" object file can be quickly viewed, paged by screen, to
find it compiled normally by using the FVIEW utility. It is a simple
program that will display constant output without extra attributes and
variable output as a series of "*". To run type: FVIEW [d:]filename,
and press ENTER to view next screen and ESC to end program.
11
SFGR Error Messages
-------------------
The following are the 15 error message that are used for the SFGR
Compiler Version 1.00. These may be edited to your taste with the
provided utility EDITERR. To run this program type: EDITERR [d:]SFGR
where d: is optional drive. Format of each record is 64 byte random
record with zero hex fill at end. This error message editor is the
same one provided with the SPL compiler package. If the file SFGR.ERR
is not found it will be created on the specified or current drive.
This program can edit any other file with ".ERR" extension with
the substitution of SFGR for a different file name. Entering 9999 will
exit from this program. See technical section for possible terminal
specific code such as clear screen and cursor positioning.
1) NO S SPECIFICATION PRIOR TO D SPECIFICATIONS
You have forgotten to specify a screen specification record prior
to the display specification. The SFGR Compiler must know what screen
format will receive the display. The screen specification names the
screen format, so it can be called by a program.
2) INVALID SPECIFICATION, MUST BE EITHER S OR D
You have specified in column 7 something other than a "S" for a
screen specification or "D" for a display specification. It must also
be in uppercase. Help specifications are not supported in this release
of the SFGR Compiler.
3) MUST SPECIFY INPUT/OUTPUT IN D SPECIFICATION
You forgot to put a "Y" for input/output data or did not specify
an indicator for output. It must be uppercase. How is SFGR suppose to
know what you want to do if you don't tell it?
4) FIELD OVERLAPS WITH A PREVIOUSLY DEFINED FIELD
The current field overlaps with another field that was previously
defined for the same screen format. You may have expanded the field
and did not realise it overlapped or you forgot to place the screen
specification statement properly.
5) INVALID LINE NUMBER SPECIFIED IN COLUMN 19-20
There are a maximum of 24 lines on the entire screen. You must
take into account the starting line number. So if you display on line
18 when starting line number is 10, then it will be invalid.
6) INVALID COLUMN NUMBER SPECIFIED IN COLUMN 21-22
Only supports columns 1 through 80. If columns 21-22 are blank,
then this error will occur. If greater than 80, too. Terminal that can
display 132 characters are only supported to 80 column width.
12
7) INVALID FIELD LENGTH SPECIFIED IN COLUMN 15-18
The usual cause is when columns 15 through 18 are left blank. The
other cause if you have an input field that crosses from one screen
line to another. The final cause is if you specified a number greater
than 250 for output field.
8) INVALID KEY MASK STRING SPECIFIED IN COLUMN 64-79
Letters greater than "J" (command key 10) are not supported. Also
they must be in uppercase. Numbers 1 through 5 are function keys and
are not implimented in this version.
9) EMBEDDED BLANKS OR BLANK FORMAT NAME IN COLUMN 7-14
The format name must be one word without any blank preceeding it.
If all blank or blanks embedded then you will see this nasty. Name
must be blank padded on the right if less than 8 letters.
10) INVALID START LINE NUMBER SPECIFIED IN COLUMN 17-18
Either 0 entered, number greater than 24, or invalid letter.
11) INVALID LINES TO CLEAR SPECIFIED IN COLUMN 19-20
Can only clear up to: (24 - start line + 1). Probable cause was
clearing of more than available lines.
12) DUPLICATE FORMAT NAME SPECIFIED IN COLUMN 7-14
The format name has appeared in a screen specification of a prior
record. The format name must be unique within a member.
13) UNIMPLIMENTED DATA TYPE, MUST BE EITHER N OR BLANK
This version of SFGR limits you to only two types of data. You've
specified a data type which was not implimented or is invalid. Also
the "N" or "B" must be in uppercase if specified.
14) EXCEEDED THE MAXIMUM OF 250 INPUT FIELDS PER SCREEN
SFGR cannot handle more than this without overflow. Also the
driver program is index with a maximum of 250 input field. This is
only per format screen not per format member. A theorectical maximum
of 62,500 input fields are allowed per format member. There is no
limit for output specifications, however.
15) INDICATOR CANNOT CONDITION OUTPUT FOR A CONSTANT
Provided to keep System 34/36 compabibility.
13
Technical Information
---------------------
The following information is provided for users to impliment SFGR
format object code in any language. It is preferable to impliment it
for RPG II (Report Program Generator), but I am not about to write one
on the spur of the moment. An implimentation of the driver will soon
be written in SPL (one of my other lanaguages) and Modula-2. They may
provided an easy way to modify for your own type of screen. My screen
responds to something close to Televideo 920. This is for Epson QX-10
and QX-16 machines and very close to a Kaypro.
There are two commercially known SFGR Compilers for the IBM PC
family. One by Lattice, and is packaged with their RPG II Compiler.
The other is by California Software, which is packaged with their
development system of Baby/36. Both generate SFGR code that appears
quite different and are more System 34/36 compatible. Baby/36 will run
nearly everything that runs on an IBM System 34/36 (in color if you
have a color monitor, of course). Lattice to a lesser degree.
For the FVIEW and EDITERR utilities the following is the possible
terminal specific instructions: Clear screen puts a 1AH character to
the screen. Cursor positioning puts an ESC "=" row+31 col+31. There is
little or no space for patch, since data area begins right after the
code area after loaded. Check with DDT.
Some sample screen members are provided to provide a means of
simple understanding the capabilities of SFGR. Using FVIEW, you will
be able to see what these screens would look like in a program. All
will compile on a System 36 (some were downloaded) and, of course, can
be compiled with the SFGR Compiler.
The Object specification records may change with version, so if
you write a driver, make it easily fixable to include the changes. It
will usually be additional bytes in the screen and/or display records,
and possibly an attribute attatched to a pre-existing attribute byte.
It may seem hard to write a driver, but once written display screen
can be created by just calling an object file.
If you are really interested in SFGR, then I must refer you to
the IBM manuals for the System 36 such as Screen Display Manual using
Screen Design Aid. There may be other books on the market that deal
with RPG II that also deal with the workstation file definitions. Such
a book may presumably be more readable.
14
Screen Specification Object Record
Bytes Description of object byte
----- -------------------------------------------------------
1 Always 0FFH to signify start of format record
2-9 Format Screen Name, left justified blank-fill
If byte = 0FFH then no more screen formats.
10 Start Line Number (00 = Variable Start Line)
11 Lines to Clear (0-24 valid entry)
12 Most Significant Bit - Lowercase (1=yes,0=no)
Others - Alarm (01-99 indic) (0=no,100=yes)
13 Command keys 1-5 in the 5 Least Signif. Bits
14 Command keys 6-10 in the 5 Least Signif. Bits
Display Specification Object Record
Bytes Description of object byte
----- -------------------------------------------------------
1 Type (bit 0=output var,bit 1=input var,bit 2=constant)
2 Row, actual row except if variable start line.
3 Column on the Screen Line to start field.
4 Length of field.
5 Output indicator (0=no,01-99=indicator,1=yes)
6 If alphabetic - (bit 0=0,bit 1=lowercase)
If numeric - (bit 0=1,bit 1=fill type)
(bit 2=control exit,bit 3=auto advance)
7 High intensity (0=no,01-99=indicator,1=yes)
8 Blink field (0=no,01-99=indicator,1=yes)
9 Reverse image (0=no,01-99=indicator,1=yes)
10 Most Significant Bit - Underline (1=yes,0=no)
Others - Column separators (01-99 indic) (0=no,100=yes)
11 Nondisplay (0=no,01-99=indicator,1=yes)
12 Position cursor (0=no,01-99=indicator,1=yes)
13 Protect field (0=no,01-99=indicator,1=yes)
14+ Data if output constant (upto 96 characters)
15
A word about user supported software:
The user supported software concept (sometimes referred to as
cheapware or freeware or shareware) is an attempt to provide software
at low cost. The cost of offering a new product by conventional means
is quite staggering, and hence dissuades many new sotware authors from
developing and promoting their ideas and products. The User supported
software is an attempt to develop a somewhat new marketing channel and
technique, where products can be introduced at low cost.
If user supported software works, then everyone who is part of
it will benefit from it. The user will benefit by receiving a quality
product at low cost, and by being able to "see what it really does"
before purchasing it. The author benefits by being able to enter the
commercial software market without first needing large sum of cash to
pay all the overhead that is involved otherwise.
But it can only work with your "USER" support. It is not just
program package, but about all user supported software. If you are
still using a program after a couple of weeks, then it is means it is
worth something to you, and you should send in a contribution. A mere
$10.00 is requested for this programs use. If you register, you will
be entitled to "USER" support from the author.
16
ORDER FORM
Check which items you wish to support:
(_) Noncommercial license for the use of SFGR.
(_) Payment of $_____ is enclosed (checks please)
_______________________________________________
Name
_______________________________________________
_______________________________________________
Address
______________________ ________ ____________
City State Zip
Telephone Number
Send this completed form to:
Harris Landsberg
1350 East 5th Street
Suite 1-J
Brooklyn, New York 11230
For a commercial site license, please write to the author for
further arrangements.
17