home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-10-02 | 40.5 KB | 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
-
-
-