FORMAT*PROG AM*US S*GUIDE* RMAT RAM* RS* IDE*FORMAT * OGR USER E*FO AT OG M SE S* U A E ORMAT*PR RAM SE *GUI *F AT PR A *U S*GUID FORM D FORMAT* OGRAM S S*GUI * AT* RAM S S*GUI * I *FORMAT ROGRA U RS*G DE O A P GR *US S*GU E U RMA PROGR * GUID FO T* O AM*US S*G D G DE*FORM *PROG M SE *GUI *FO MAT R RAM*U RS* I * IDE*FOR T*PRO A USE *GU E*FORMA P ERS U S UIDE*FOR T*P GR *USE *G DE*FORM * OGRAM SER G R GUIDE*FORM PROG M*USE * IDE*FOR T ROGRA USE * RAM*USERS*GUIDE*FORMAT*PROGRAM*USERS*GUIDE*FORMAT*PROGRAM*USERS* E*FO G ERS* FORMAT* GRAM*US I MAT*PROG AM*US S* ID F O AM*U RS UIDE ORM *PR RAM SERS*GU E*FO AT*PR AM*U S*GU * R RAM*U R GUIDE O AT*PR R *USERS*G DE*FO AT* O AM* S* E P GRAM SE *GUI *F MAT*P G M*USERS* IDE* RMA PRO AM S G D * M*US IDE* RMAT* O AM* S *FOR T*PRO A US S* I T ROGRAM*U RS UIDE ORMAT R RAM*U R GU E*FO AT*PR R *USERS U A PROGRAM* ERS UID FORMA P GRAM* E *GU E*F G M*USER G M *PROGRAM SERS UID FOR T*P GRAM S S*GU E* RMAT* O AM*USE * R T*PROGRA USERS UIDE RMAT*PR U RS*GU E ORMAT R RAM*US S ORMAT*PROGRAM*USERS*GUIDE*FORMAT*PROGRAM*USERS*GUIDE*FORMAT*PROGRAM*USER R RAM*US S*GU M * UIDE*FO O P GRAM*U RS UIDE*FOR T*PROGRAM SERS* IDE ORMAT*PR * OGRAM* E *GUIDE*FO AT*PROGRA USERS* I *F T ROGRAM SE *GUIDE*F MAT*PROGR *USER GUI *FORM A PROGRA USER IDE* PROG RS*GUID RMA M *PROGR *USERS*G DE ORMAT*PRO AM* ERS*GUIDE*F MA R T*PROG M*USERS*G D FORMAT*PR RAM* ERS*GUIDE*F M OR T*PR RAM*USERS UI *FORMAT*P GRAM* ERS*GUIDE OR ORM ROGR S*GU * OGRAM* E E*F RMAT*PROGRAM*USERS*GUIDE*FORMAT*PROGRAM*USERS*GUIDE ORM R *USERS U R GRAM D *F MAT*PROG M*USER GUI *FO AT*PR RA USERS*GUI E ORMAT*PRO AM*USE *GU E*F MAT*PR R * D FORMAT*PR RAM*US S*G DE* RMAT*P G M*USER I *FO P GRAM*U RS* IDE ORMAT* O E U E*FORM * OGRAM* ERS UID FORMAT R RAM*US G DE*FOR T ROGRAM SER GUI *FORMA P G *G DE*FO AT ROGR *USE *GU E*FOR T* OGRAM*USE *GU MAT* RAM* G RMAT S GUIDE*FORMAT*PROGRAM*USERS*GUIDE*FORMAT*PROGRAM*U FORTRAN FORMAT Statement Generator Program User's Guide Donald E. Barth 1 December 1983 FFFFFFFFF OOO RRRRRR MM MM A TTTTTTTT FF OO OO RR RR MMM MMM AAA TT FF OO OO RR RR MMMM MMMM AA AA TT FF OO OO RR RR MM MM MM MM AA AA TT FFFFFF OO OO RRRRRR MM MMM MM AA AA TT FF OO OO RR RR MM M MM AA AA TT FF OO OO RR RR MM MM AAAAAAAAA TT FF OO OO RR RR MM MM AA AA TT FF OOO RR RR MM MM AA AA TT PPPPPP RRRRRR OOO GGGGGG RRRRRR A MM MM PP PP RR RR OO OO GG RR RR AAA MMM MMM PP PP RR RR OO OO GG RR RR AA AA MMMM MMMM PP PP RR RR OO OO GG RR RR AA AA MM MMMM MM PPPPPP RRRRRR OO OO GG GGGG RRRRRR AA AA MM MM MM PP RR RR OO OO GG GG RR RR AA AA MM MM PP RR RR OO OO GG GG RR RR AAAAAAAAA MM MM PP RR RR OO OO GG GG RR RR AA AA MM MM PP RR RR OOO GGGGGG RR RR AA AA MM MM UU UU SSSSSSS EEEEEEEEEE RRRRRRR SSSSSSS UU UU SS EE RR RR SS UU UU SS EE RR RR SS UU UU SS EE RR RR SS UU UU SSSS EEEEEEE RRRRRRR SSSS UU UU SS EE RR RR SS UU UU SS EE RR RR SS UU UU SS EE RR RR SS UUUU SSSSSSS EEEEEEEEEE RR RR SSSSSSS GGGGGGG UU UU IIIIII DDDDDDD EEEEEEEEEE GG UU UU II DD DD EE GG UU UU II DD DD EE GG UU UU II DD DD EE GG GGGGG UU UU II DD DD EEEEEEE GG GG UU UU II DD DD EE GG GG UU UU II DD DD EE GG GG UU UU II DD DD EE GGGGGGG UUUU IIIIII DDDDDDD EEEEEEEEEE FORTRAN FORMAT Statement Generator Program User's Guide Donald E. Barth 1 December 1983 TABLE OF CONTENTS ----- -- -------- Chapter 1: General Instructions Introduction . . . . . . . . . . . . . . 1 Command Structure . . . . . . . . . . . . 2 Case Notation for Alphabetic Letters . . . . . . 3 Chapter 2: Short Descriptions of the Commands The Commands listed in Alphabetical Order . . . . 5 Table of Command Argument Types . . . . . . . . 15 Chapter 3: Complete Descriptions of the Commands The Commands listed in Alphabetical Order . . . . 17 Chapter 4: Commands Needed for Paging on Video Terminals Introduction . . . . . . . . . . . . . . 95 Example of FORTRAN Code Containing Several Messages . 98 Short Descriptions of the Paging Commands . . . . 101 Table of Command Argument Types . . . . . . . . 105 Complete Descriptions of the Paging Commands . . . 106 Appendix A FORMAT Program Development History . . . . . . . 139 Appendix B List of Files Included in this Package . . . . . 141 Chapter 1 GENERAL INSTRUCTIONS Introduction ------------ The FORMAT program reads a sample form or a rough version of messages, and generates FORTRAN FORMAT statements which can be used by a FORTRAN program to reproduce the form complete with embedded variables, or to generate the messages with lines of uniform length. The case conventions, the structure of the commands, and the meanings of many of the commands which are recognized by the FORMAT program are identical to those accepted by the DECsystem-10 text processing program RUNOFF. When text containing only those commands which are recognized by both the FORMAT and RUNOFF programs is processed by the FORMAT program, then the use of the resulting FORMAT statements generates the text which would have been produced directly by RUNOFF. Although the FORMAT program provides many of the same capabilities as RUNOFF, the FORMAT program is itself written in a system independent subset of FORTRAN and is not an extended version of RUNOFF. If a RUNOFF capability is not described in this documentation, then this capability is not provided by the FORMAT program. In particular, the FORMAT program does not provide any footnoting, indexing or underlining capabilities. For sections of text which are too long to be represented in a single FORMAT statement, the FORMAT program can generate FORTRAN WRITE statements which reference each of the resulting FORMAT statements. The statement numbers of the FORMAT statements and the references to them are incremented as necessary. For very long messages, the text on each page can be broken into separate FORMAT statements and sections of predefined FORTRAN code can be inserted automatically at the tops and bottoms of the pages. The lines of text which are represented in the FORMAT statements can include output field descriptions which are kept separate from the text which is represented in H, apostrophe or asterisk notation. A fixed line of text can be superimposed upon each line of text which is represented in the resulting FORMAT statements to rule vertical lines of characters. If identical parallel forms are being generated, then the input file only needs to specify the text for the left form and this can be copied to the right as many times as are desired. The FORMAT program produces 2 output files, a FORTRAN language file and a proof file. The FORTRAN language file must be merged into an existing program or else the input file must have specified the rest of the FORTRAN statements, which, together with the newly constructed FORMAT statements, make up the program. The proof file contains the text which would be generated when the resulting FORMAT statements are used. The locations at which output field specifications are inserted are indicated by dollar signs in this text. The actual output field specifications are indicated in separate lines in the proof file before the lines into which these output field specifications are inserted. The proof file also contains an indication of the location at which each FORMAT statement begins, a copy of each of the commands in the input 2 FORMAT Program User's Guide file, and a copy of each of the FORTRAN statements which were specified directly by the input file. Command Structure ------- --------- Each line of the input file which does not start with a period in the left column contains text which is to be represented in the FORMAT statements or contains a FORTRAN statement or a FORTRAN comment which is to be copied into the output file unchanged except for possible case conversion of the alphabetic letters. Each line which starts with a period in the left column is interpreted as a command. A command consists of the leading period followed either by a word or by a phrase which identifies the command, followed for some commands by 1 or 2 numbers, by 1 or 2 characters, or by the text which extends through the rightmost printing character on the line. The alphabetic letters which form the word or phrase can be supplied in lower case, in upper case, or in a mixture of upper and lower cases. The word, or each of the words in a phrase, can be abbreviated by truncation leaving at least the left letter in each word if additional words or their abbreviations appear to the right. Spaces are allowed before, between and after the words in a phrase but are not required. Only enough letters must be typed to unambiguously identify the word or phrase from all others. The numbers, characters or line of text which follows the word or phrase are referred to as the arguments of the command. The pairs of numbers or pairs of characters which are arguments of some commands can be separated by spaces and/or by a single comma, but the comma is not required unless only the second number or second character of the pair is supplied. For example, a few of the many ways in which the command .FLAGS SPACE * could be specified are .FS* or .F S * or .FLS* or .FSP* or .FLSP* or .FL SP * Except for those commands in which the word or phrase can be followed by the text which extends through the rightmost printing character on the line, any command can be followed on the same line by another command or by a semicolon which can be followed in turn by whatever would have otherwise have appeared on the next line. If 2 commands are separated by a semicolon, then spaces can appear to the left of the semicolon and to the right of the second period, but cannot appear between the semicolon and the second period. If 2 commands appear on the same line but are not separated by a semicolon, then spaces can appear between the first command and the second period. A leading period or a command can be followed by an exclamation point and then by a comment which extends through the next semicolon on the same line or through the end of the line if a semicolon does not appear on the same line to the right of the exclamation point. A comment is not terminated by the appearance of a period. General Instructions 3 For example, the text .SKIP 2 .CENTER This is a Title could also be specified by any of the following single lines .SKIP 2.CENTER;This is a Title .SKIP 2;.CENTER;This is a Title or .SKIP 2!comment;.CENTER!comment;This is a Title An underscore character can appear before any character, such as a leading period in a noncommand line, or a semicolon, exclamation point, comma or another underscore in a command line, which is to be treated as an ordinary printing character. Case Notation for Alphabetic Letters ---- -------- --- ---------- ------- This program can process text in which the letters A through Z are already in the desired mixture of upper and lower cases (capital letters and small letters, respectively), or in which the alphabetic letters A through Z are all in one case with shift indications for the other case. An .UPPER CASE command or 2 consecutive circumflexes anywhere in the source text indicates that the cases of all subsequent alphabetic letters which are not otherwise marked are to be retained. An .UPPER CASE command is considered to be in effect when this program is started. A .LOWER CASE command or 2 consecutive back slashes anywhere in the source text indicates that all subsequent alphabetic letters which are not otherwise marked are to be converted to their lower case forms. Regardless of the overall case setting, any single letter which is to be converted to its upper case form can be preceded by a single circumflex, and any single letter which is to be converted to its lower case form can be preceded by a single back slash. If a .FLAGS CAPITALIZE command has been issued, then a less than sign can be used at the start of a word to indicate that all of the following alphabetic letters are to be converted to their upper case forms in the word which extends either through the last character on the line, or up to the next space, or up to the next less than sign, whichever comes first. A single underscore can precede any character, such as a circumflex or a back slash or even another underscore, which is to be treated as a nonalphabetic printing character. A space which is to be treated as a nonalphabetic printing character can be indicated either by a number sign or by a space which is preceded by an underscore. A number sign which is to be kept as a number sign must be preceded by a single underscore. Any of these flag characters can be changed or temporarily disabled by commands in the source text. If the source file contains only lower case letters, but both cases are desired and can be processed by the FORTRAN compiler and operating system, then, without any special action, all letters will remain in their lower case forms except for those letters which immediately follow a single circumflex or which are in words which are preceded by a less 4 FORMAT Program User's Guide than sign if a .FLAGS CAPITALIZE command has been issued. If the source file contains only upper case letters, but both cases are desired and can be processed by the FORTRAN compiler and operating system, then the input file should contain a .LOWER CASE command or 2 consecutive back slashes so that subsequent letters will be translated to their lower case forms except for those letters which immediately follow a single circumflex or which follow a single underscore or which are in words which are preceded by a less than sign if a .FLAGS CAPITALIZE command has been issued. If there are sections of the source text which are to be kept primarily in their original upper case forms, then these sections can be preceded by an .UPPER CASE command or by 2 consecutive circumflexes, and then any individual letters which need to be converted to their lower case forms can be preceded by single back slashes. For example, the source text .preface WRITE(1,$) .nofill.flags capitalize.output width 60.offset 0 \\^ONLY THE FIRST LETTER IN THIS LINE REMAINS UPPER CASE.