home *** CD-ROM | disk | FTP | other *** search
/ Programmer's ROM - The Computer Language Library / programmersrom.iso / ada / message / gmhffd.doc < prev    next >
Encoding:
Text File  |  1988-05-03  |  34.1 KB  |  740 lines

  1. ,print 106
  2.  
  3. ,print 106
  4. type 86 86 86 86 
  5. ,end
  6.                                                        73501-85U/P7046
  7.                                                         15 April 1985
  8.  
  9.  
  10.  
  11.            Generic Message Handling Facility (GMHF)
  12.                     Functional Description
  13.  
  14. l. Introduction
  15.  
  16.        This GMHF Functional Description (FD) describes the
  17. capabilities to be presented in the GMHF upon delivery.  These
  18. capabilities are described in detail from a functional point of
  19. view.  This is the final version of this FD, and is to be used as the
  20. basis for the critical design review (CDR).  In addition, this FD will
  21. serve as an important piece of user documentation during the life cycle
  22. of the GMHF.
  23.  
  24.         In the sections which follow, we give an overview of the
  25. proposed GMHF structure.  That structure is based upon five Ada
  26. packages and a generic definition.  Each of these entities is
  27. discussed in a separate section.  The GMHF interface is also
  28. discussed in a seperate section. The use of generics is covered in the
  29. section describing the Generic Message Definition.
  30.  
  31.         The preliminary version of this FD was reviewed by several
  32. interested parties. The comments received have been incorporated into
  33. this final version.
  34.  
  35.  
  36.  
  37. 2. GMHF Overview
  38.  
  39.         The GMHF consists of five major Ada packages and an Ada generic
  40. declaration.  The packages envisioned are:
  41.  
  42.         a.    System Driver Package (SDP).
  43.  
  44.         b.    Man Machine Interface Package (MMIP).
  45.  
  46.         c.    Print Package (PP).
  47.  
  48.         d.    File Access Package (FAP).
  49.  
  50.         e.    Terminal Definition Package (TDP).
  51.  
  52.         In addition to the five major packages, there are several
  53. minor packages holding types, objects, and procedures which due to
  54. the current state of the compiler used could not be integrated into
  55. the five major packages. These packages are the Editor Types,
  56. Linked List Procedures, Classification Definition, and Typelist
  57. packages. They are discussed in detail in the User's Manual.
  58.  
  59.         The SDP is the stand-alone driver program. It calls the
  60. print package, the file access package, and the edit function package.
  61. In addition, it uses the man-machine interface package as a utility
  62. to handle its I/O. As described below, the SDP is the means whereby
  63. the user can most directly utilize the facilities in GMHF.
  64.  
  65.         The MMIP is a utility package which handles character
  66. inputs by the user. It encapsulates all GMHF special user io
  67. features, designed to provide a user friendly, command oriented
  68. interface while taling maximum advantage of existing Ada packages.
  69.  
  70.         The PP provides the GMHF access to the various
  71. hard copy output utilities. It is called by the SDP, and obtains
  72. any required printer definition data from the MMIP.
  73.  
  74.         The FAP contains the routines required to
  75. access the internal GMHF data base. In fact, that data base is part
  76. and parcel of FAP. It is called by SDP, or can be directly accessed
  77. by a software implementor. This direct access, external to GMHF,
  78. is one means of allowing implementors use of the text editor without
  79. requiring them to go through the SDP.
  80.  
  81.         The TDP holds all crt terminal dependencies. An implementor
  82. who wished to rehost this system to a non-VT100 emulator would only
  83. have to modify this package.
  84.  
  85.         The Generic Message Definition (GMD) provides the user the
  86. means to define a new message type in terms of a specific set of
  87. parameters.  Each instance of this definition generates the data
  88. definitions and procedures required to edit messages of the type
  89. specified. The result of an instantiation is referred to as an editor.
  90.  
  91.         There are two user interface models implemented in GMHF. A
  92. basic, general purpose model is implemented in those screens which
  93. support user input outside of an editor.  Within an editor, the
  94. tripartate screen definition defined in Veda's proposal is implemented.
  95. The basic user interface model is described in the MMIP discussion.  The
  96. tripartate screen definition is reviewed and amplified in the editor
  97. section.
  98.  
  99. 3. System Driver Package.
  100.  
  101.         If GMHF is to be used as a stand-alone system a system driver is
  102. needed.  SDP provides all functions necessary to utilize GMHF is such
  103. cases.  SDP's primary task is to activate functions of the various other
  104. packages of GMHF based on user inputs received through the man-machine
  105. interface (MMI) menus. Its goal is to provide an integrated, cohesive
  106. user interface to the GMHF in those cases where it is to be used as a
  107. whole.
  108.  
  109.         There are six MMI menus comprising SDP. They are:
  110.  
  111.                 1. GMHF Main Menu
  112.  
  113.                 2. Message/Edit Directory Menu
  114.  
  115.                 3. Message/Print Directory Menu
  116.  
  117.                 4. Process Edited Message Menu
  118.  
  119.                 5. Message/Delete Directory Menu
  120.  
  121.                 6. Review Message for Deletion Menu.
  122.  
  123.         The call tree of the menus is given below. Some return paths
  124. are not shown, but are described in the text which follows. In the call
  125. tree, it should be noted that the Message/Edit Directory Menu (menu 2)
  126. allows the user to call an editor. Upon exiting an editor, the user
  127. returns to the menu 2 program which automatically calls the Process
  128. Edited Message  Menu.
  129.  
  130.                             1
  131.                             !
  132.                 -------------------------
  133.                 !           !           !
  134.                 2           3           5
  135.                 !           !           !
  136.              -------       PP           6
  137.              !     !
  138.           editor   4
  139.  
  140.         SDP contains a menu handling procedure for each of the six
  141. menus. The procedures analyze the user inputs(returned from MMIP),
  142. perform any necessary data validation and then activate the functions
  143. as requested by the user.The menu handling procedures are based upon 
  144. two files for each menu.
  145.  
  146.         The first is a menu display data file for each menu. This file
  147. holds the menu display characters in ASCII form. The second file
  148. contains that data specific to the menu in question required
  149. for MMIP to control the user's interaction with that menu.
  150.  
  151.         Below, a description of each menu of SDP is provided. Included
  152. for each is the menu title, the menu purpose and the options provided:
  153.  
  154.         (1)  Title:    GMHF Main Menu
  155.  
  156.          Purpose:   This is the main menu for the system driver.
  157.                         It is the first menu to appear in the system
  158.                         and it may be recalled from any of the other
  159.                         system driver menus. It's purpose is to allow
  160.                         the user to access the various components of
  161.                         the GMHF.
  162.  
  163.          Options:   (a)     Enter Message Editing Facility - sends
  164.                                 control to Message Edit/Directory Menu
  165.  
  166.                         (b)     Enter Message Print Facility
  167.                                 - sends control to Message Print/
  168.                                 Directory Menu
  169.     
  170.                         (c)     Enter Message Delete Facility
  171.                                 - sends control to Message Delete/
  172.                                 Directory Menu
  173.  
  174.                         (d)     EXIT GMHF
  175.                                 - returns control to operating system if
  176.                                 in stand-alone mode
  177.                                 - returns control to calling procedure
  178.                                 if embedded in external system.
  179.  
  180.  
  181.  
  182.         (2)  Title:     Message Edit/Directory Menu
  183.  
  184.            Purpose:     This menu displays the current directory of       
  185.                         messages in the internal data base and
  186.                         provides options to edit a specific message.
  187.                         The directory is listed by the message types
  188.                         followed by the number of messages for each
  189.                         type.
  190.  
  191.              Options:   (a)     Edit Message #___ of Type _______
  192.                                 - sends control to editor with existing
  193.                                 message of a selected type and number.
  194.                                 Upon return from the editor, control is
  195.                                 automatically sent to the Process Edited
  196.                                 Message Menu.
  197.  
  198.                         (b)     Edit New Message of Type _________
  199.                                 - sends control to editor with new
  200.                                 message of a selected type.When editing
  201.                                 a new message,the prototype message of
  202.                                 that type is automatically provided as a
  203.                                 template for the new message.
  204.                                 Upon return from the editor, control is
  205.                                 automatically sent to the Process Edited
  206.                                 Message Menu.
  207.  
  208.                         (c)     Edit Prototype Message of Type ______
  209.                                 - sends control to editor for editing
  210.                                 the prototype message of a selected type.
  211.                                 Upon return from the editor, control is
  212.                                 automatically sent to the Process Edited
  213.                                 Message Menu.
  214.  
  215.                         (d)     Print Message Directory
  216.                                 - activates Print-Directory procedure
  217.                                 from Print Package.
  218.  
  219.                         (e)     Return to GMHF Main Menu 
  220.                 - sends control back to GMHF Main Menu.
  221.  
  222.  
  223.         (3)  Title:     Message Print/Directory Menu
  224.  
  225.              Purpose:   This Menu displays the current directory of
  226.                         messages in the internal data base and
  227.                         provides options to print various items.
  228.  
  229.              Options:   (a)     Print Message # _____ of Type ________
  230.                                 - activates Print_Message procedure from
  231.                                 Print Package.
  232.     
  233.                         (b)     Print Message # ___ through Message # __
  234.                                 of type____________.
  235.                                 - activates Print_Group_of_Messages pro-
  236.                                 cedure from Print Package.
  237.  
  238.                         (c)     Print Prototype Message of Type _____.
  239.                                 - activates Print_Message procedure from
  240.                                 Print Package.
  241.  
  242.                         (d)     Print Message Directory
  243.                                 - activates Print-Directory procedure
  244.                                 from Print Package.
  245.  
  246.                         (e)     Return to GMHF Main Menu
  247.                                - sends control back to GMHF Main Menu.
  248.  
  249.           (4)  Title:     Process Edited Message Menu
  250.  
  251.          Purpose:   This menu allows the user to specify exactly
  252.                         what should be done with a message following
  253.                         an editing session.
  254.  
  255.              Options:   (a)     Resave Edited Message
  256.                                 - replaces the original version of the
  257.                                 message with the edited version. This
  258.                                 option is not available if the user had
  259.                                 selected the edit new message option.
  260.  
  261.                         (b)     Save Edited Message as New
  262.                                 - allows user to store message as a new
  263.                                 message, consequently not affecting the
  264.                                 contents of the existing messages in
  265.                                 any way. The new message will be 
  266.                                 assigned a message number one greater
  267.                                 then the number currently stored forthat
  268.                                 particular type.
  269.  
  270.                         (c)     Re-enter Message Editor 
  271.                                 - sends control back to the message
  272.                                 editor with the same message still in
  273.                                 the editor's workspace.
  274.  
  275.                         (d)     Print Edited Message
  276.                                 -  activates Print_Message procedure
  277.                                 from the Print Package.
  278.  
  279.                         (e)     Return to Message Edit/Directory Menu 
  280.                                 - sends control back to the Message
  281.                                 Edit/Directory Menu.
  282.  
  283.                         (f)     Return to GMHF Main Menu 
  284.                                 - sends control back to the GMHF Main
  285.                                 Menu.
  286.  
  287.         (5)  Title:     Message Delete/Directory Menu
  288.  
  289.              Purpose:   This menu displays the current directory of
  290.                         messages in the internal data base and
  291.                         provides the user the option to select one for
  292.                         deletion.
  293.  
  294.              Options:   (a)     Review Message # ____ of Type _____ for
  295.                                 Deletion
  296.                                 - sends control to Message Review for
  297.                                 Deletion menu with the specified message
  298.                                 in the workspace.
  299.  
  300.                         (b)     Return to GMHF Main Menu
  301.                                  - sends control back to GMHF Main Menu.
  302.  
  303.  
  304.         (6)  Title:     Message Review for Deletion
  305.  
  306.          Purpose:   This menu displays the message text of the
  307.                         specified message and gives the user the
  308.                         ability to remove it from the data base.
  309.  
  310.              Options:   (a)     Delete this Message from Data Base 
  311.                                 - activates Delete_Message procedure
  312.                                 from FAP.
  313.  
  314.                         (b)     Return to Message Deletion/Directory
  315.                                 Menu - sends control back to the
  316.                                 Message_Deletion Directory Menu.
  317.  
  318.                         (c)     Return to GMHF Main Menu
  319.                                 - sends control back to GMHF Main Menu.
  320.  
  321. NOTE:  There is one additional menu which is not discussed in this
  322. section, rather it is discussed in the Edit Function Package
  323. (EFP).  The menu is accessed only from the EFP and it is the one
  324. from which all editing functions are performed.
  325.  
  326. 4. Man Machine Interface and Terminal Definition Packages.
  327.  
  328.         The MMIP consists of all of the procedures and data definitions
  329. which are necessary to interface the user to the system.  The
  330. procedures and data definitions of the MMIP are used to support
  331. operation of almost all other packages.  Those procedures and data
  332. definitions which rely on particular characteristics of the user
  333. terminal are contained in the Terminal Definition Package (TDP).  
  334. As the GMHF is now configured, the TDP will be set up for all VT-100
  335. series terminals or emulators. The implementor though, may edit the TDP
  336. and redefine the system to work on some other terminal. The minimal
  337. terminal characteristics assumed are: 
  338.  
  339.                 screen dimensions of at least 24 x 80
  340.  
  341.                 at least one of: reverse video, flash, bold face, or
  342.                 underscore(to 'highlight' the current line being edited)
  343.  
  344.                 ASCII standard keyset
  345.  
  346.                 some means of absolute cursor addressing (could be as
  347.                 primitive as home, followed by a sequence of LFs and
  348.                 RSs)
  349.  
  350.                 Function keys preferred but not required (can be
  351.                 replaced by CTL or ESC sequences).
  352.  
  353.         An editor requires MMIP support to determine what function keys
  354. are to be used for editing, and what codes are used for absolute
  355. cursor addressing, erase screen, erase line, and reverse video.  A
  356. detailed description of the editing functions and other elements
  357. relating to message editing is given in Section 7.
  358.  
  359.         The SDP relies heavily on the MMIP for support and control of
  360. its menus.  The MMI menus to be used by the SDP are based upon
  361. defined fields. A field is a designated area on a menu
  362. where the cursor may reside at any given time.  A menu is made up of
  363. one or more such fields and the cursor will not appear anywhere on the
  364. menu except in the defined fields.  The MMI menus for this system
  365. utilize three different types of defined fields; Command fields, Data
  366. fields and List fields.
  367.  
  368.         Command fields are designated by a one character reverse
  369. video block.  The Command field is used to tell the system that the
  370. user has specified that some function is to be performed. The software
  371. (in MMIP) will determine whether all prerequisites for the function
  372. selected have been satisfied. If so, control is returned to the calling
  373. procedure and the function is executed; if not the user is prompted.
  374.  
  375.         Data fields are designated by a one or more character
  376. underscore segment.  Data fields are provided to allow the user to
  377. enter any data which may be required by a function to be
  378. commanded.  Data fields are explicitly typed and range values may
  379. be defined for them.  For example, we may have a data field for
  380. entering a message number, the field would be of length four, it
  381. would be of the integer data type and the range of values which
  382. may be entered into it would be from one to the number of messages
  383. which exist for the particular message type in question.
  384.  
  385.         List fields are designated by a right arrow symbol followed
  386. by a one or more character underscore segment.  Associated with
  387. each List field is a finite list of possible values which may be
  388. entered into the field itself.  The list is enclosed in a box and
  389. will appear on the same menu as the list field.  A selection is
  390. automatically entered in the List field and is reverse video
  391. highlighted within the list.  The user may scroll through the list
  392. at which time the value in the field is automatically updated.
  393. List fields eliminate the possibility of spelling errors and the
  394. possibility of choosing values which are invalid.  List fields,
  395. like Data fields are used to support a function which might be
  396. commanded.  
  397.  
  398.         To support the menus, five special function keys are
  399. designated to facilitate their use.  The five function keys are
  400. termed, COMMAND key, TAB key, BACK_TAB key, UP_ARROW and
  401. DOWN_ARROW.  The COMMAND key is used on a Command field only and
  402. it signals to the system to attempt to perform the function
  403. designated by the Command field.  If a function being commanded
  404. requires support data either from a Data field, a List field, or
  405. both, the user must fill these fields with values prior to
  406. commanding the function.  An attempt to do otherwise would cause
  407. the user to be prompted "support data required for this function".
  408.  
  409.         The TAB key and BACK_TAB key are both used to move from one
  410. field to another.  Striking the TAB key will cause the cursor to
  411. move from the current active field to another in a direction which
  412. is mostly suited for that particular menu.  The BACK_TAB key
  413. causes movement exactly the reverse of the TAB key.  
  414.  
  415.         The UP_ARROW and DOWN_ARROW key are used to scroll up and
  416. down through a list of a particular list field.  The current
  417. active item within a list is reverse video highlighted and
  418. striking the UP_ARROW key causes the active item to move up one
  419. selection in the list.  Striking the DOWN_ARROW key causes the
  420. active item to move down one selection in the list.  If a top of
  421. list or bottom of list is encountered, the list is cyclic so the
  422. user may continue to scroll through.
  423.  
  424.  
  425. 5. Print Package.
  426.  
  427.         The PP provides GMHF with three basic print functions:
  428. Print Message Directory, Print Message Text, and Print Group of 
  429. Messages. The Print Message Directory function provides a hardcopy
  430. cross reference of message type versus number of messages for that 
  431. type, for all defined message types of the GMHF.
  432.  
  433.         The Print Message Text function provides a hardcopy of the
  434. message content for a specified message number of a specified
  435. message type.  The Print Group of Messages function provides the
  436. same capability but for a range of messages of a specified message
  437. type.
  438.  
  439.         All PP procedures are accessed only by the SDP. Users who wish
  440. to acquire hardcopy outputs of messages outside of the internal
  441. data base of the GMHF must generate their own procedures to do so.
  442. The PP uses the standard SYS$PRINT (VMS) attributes.
  443.  
  444. 6. File Access Package.
  445.  
  446.         FAP is made up of both private procedures and public
  447. procedures.  The private procedures are accessible only by the
  448. SDP.  The private procedures include the following:
  449.  
  450.         (a)     Get_Directory
  451.                 -  this procedure will read the directory file to obtain
  452.                 the number of messages for each type currently in the
  453.                 internal data base.  This procedure is called any time a
  454.                 directory is being displayed through the SDP.
  455.  
  456.         (b)     Get_Message_Out
  457.                 -  this procedure will retrieve a specified message from
  458.                 the internal data base and load it into the edit
  459.                 workspace.
  460.  
  461.         (c)     Put_New_Message_In
  462.                 -  this procedure will store the current message in the
  463.                 edit workspace as a new message of a specified type.
  464.  
  465.         (d)     Put_Old_Message_Back_In
  466.                 -  this procedure will resave the current message in the
  467.                 edit workspace in its original place in the data base or
  468.                 in place of some other message of the same type,
  469.                 currently in the data base.
  470.  
  471.         (e)     Delete_Message_From_Data base
  472.                 -  This procedure will remove an existing message from
  473.                 the data base.
  474.  
  475.         The procedures of the FAP which are public are to facilitate
  476. use of the EFP's capabilities on messages external to the GMHF's
  477. internal data base.  The public procedures are as follows:
  478.  
  479.         (a)     Load-External_Message_Into_Workspace
  480.                 -  this procedure will load an external message into the
  481.                 workspace for editing.
  482.  
  483.         (b)     Retrieve_Message_From_Workspace
  484.                 -  this procedure retrieves a message from the edit
  485.                 workspace and places it into a data element which is
  486.                 accessible by an external routine.
  487.         
  488.         (c)     Load_External_Message_Into_Database 
  489.                 -  this procedure will load an external message into
  490.                 the internal database. The message will be added as a 
  491.                 new message of a specified type provided the type
  492.                 is defined in the GMHF and the message meets the 
  493.                 criteria for the type.
  494.  
  495.         (d)     Retrieve_Message_From_Database
  496.                 - this procedure retrieves a message from the internal
  497.                 database and places it into a data element which is
  498.                 accessable by external routines.
  499.  
  500. 7. The Editor.
  501.  
  502.         An instance of an editor is the core of the GMHF.  It is here
  503. that the user can actually create and edit messages. There is an editor
  504. created as the result of instantiating the GMD described below. Thus for
  505. each message type defined, an EFP exists.
  506.  
  507.         The functions detailed below are provided in the context
  508. of a tripartate screen format. The screen layout has been used by
  509. Veda in three applications. In each case, users and reviewers have found
  510. it easy to use and understand.
  511.  
  512.         The user screen is partitioned into three separate areas.
  513. The top portion of the screen is called the message area (MA) and
  514. is used to hold the text lines of the message being edited.
  515. If the message being edited is too large to fit in the MA, it is
  516. automatically scrolled as the user moves from line to line.  At
  517. all times, one line of the message is designated as the current
  518. line.  It is displayed in reverse video (backlit) in the MA.  The
  519. center portion of the screen is called the work area (WA) and is
  520. used to display the line being edited and the prompts displayed to
  521. the user to support line editing.  The lower portion of the screen
  522. is called the amplification area (AA) and is used to provide user
  523. prompt amplification and to support discrete field selection.
  524.  
  525.         The three screen areas are not of fixed size.  They can be
  526. defined as part of the generic definition of a message editor.
  527. Generally speaking, an implementor would want the MA should be as large
  528. as possible, using the minimum space possible for the other two areas.
  529. In the current RAINFORM implementation, the MA includes lines 3 through
  530. 14.  The WA includes lines l6 through l8, while the AA contains
  531. lines 20 through 24.  Lines l and 2 are used for screen header
  532. data and system prompts, and are not considered a functional part
  533. of the editor, per se.
  534.  
  535.          At any given time, the user may be in either scroll mode or
  536. edit mode.  When in scroll mode, only the MA is filled.  The user
  537. can scroll up and down through the message being edited, in order
  538. to review the contents and select which line, if any, is to be
  539. edited.  When the user enters edit mode, the current line is
  540. displayed in the WA, and the field prompt for the first field in
  541. the WA (and the AA if required).  The user can then commence
  542. editing the line.  Below we discuss scroll mode functions and edit
  543. mode functions.  In cases where there is an overlap, the function
  544. is discussed in both places. It should be noted that these two
  545. modes are mutually exclusive.  Whenever one is entered, the other
  546. is exited.
  547.  
  548.  
  549. 7.l  Scroll Mode.  The functions available to the user when in
  550. scroll mode are:
  551.  
  552.         (a)     Previous line.
  553.  
  554.         (b)     Next line.
  555.  
  556.         (c)     Insert line.
  557.  
  558.         (d)     Delete line.
  559.  
  560.         (e)     Edit line.
  561.  
  562.         (f)     Classify message.
  563.  
  564.         (g)     End edit.
  565.  
  566.        When previous line is selected, the line numbered one less
  567. than the current line becomes the new current line.  The old
  568. current line is redisplayed unbacklit, and the new current line is
  569. backlit.  If the old current line was displayed at the top of the
  570. MA, a scroll down is performed and the new line displayed at the
  571. top of the MA.  If this function is selected while the first line
  572. of the message is the current line, the user is prompted.
  573.  
  574.         The next line function is implemented analogously to the
  575. previous line function.  Differences are that if the user is at
  576. the last line of message when next line is selected, the user be
  577. prompted if the message is already at maximum size.  If it is not,
  578. the user will be asked to specify the type of line which is to be
  579. added, and a blank line of that type will be displayed in the WA
  580. for editing.  At that point, the scroll mode is exited and the
  581. edit mode is entered.
  582.  
  583.          The insert line function allows the user to insert a line
  584. above the current line.  When this option is chosen (and the
  585. message is not already at maximum length) an empty line is written
  586. in the MA, and the user is asked to specify the desired line type.
  587. This specification is done by providing the user with a display of
  588. the line types available for this message type.  The display
  589. appears in the AA.  The user selects the desired line type and a
  590. blank line of that type is displayed in the MA for editing.  The
  591. edit mode is entered.
  592.  
  593.         The delete line function deletes the current line from the
  594. message.  If the message contained only a single line the user is
  595. prompted (a message may be deleted elsewhere,using the delete message
  596. function, but no message may be reduced to zero lines).  The message
  597. text in the MA is collapsed to reflect the line deletion.  The user
  598. remains in scroll mode.
  599.  
  600.         When the user selects the edit line function, the current
  601. line is displayed in the WA, the first field is displayed, and the
  602. user is placed in edit mode.
  603.  
  604.         Each message has a classification attached to it. The
  605. classification of the current message is displayed in the upper left 
  606. and lower right hand corners of the screen. The user may specify the
  607. message's classification. Upon user specification of classification, the
  608. message classification is updated.
  609.  
  610.         The end edit function is the exit point from the EFP.  Upon
  611. its selection, the user is returned to the SDP.
  612.  
  613.  
  614. 7.2 Edit Mode.  The functions available to the user in the edit
  615. mode are:
  616.  
  617.         (a)     Previous line.
  618.  
  619.         (b)     Next line.
  620.  
  621.         (c)     Classify message.
  622.  
  623.         (d)     End edit.
  624.  
  625.         (e)     Previous field.
  626.  
  627.         (f)     Next field.
  628.  
  629.         (g)     Erase field.
  630.  
  631.  
  632.         When in the edit mode, the user is provided a copy of the
  633. line under edit in the WA.  As the user edits the line, he is
  634. prompted as to required contents as appropriate.  In some cases, a
  635. field may be discrete in nature.  That is, there may be a small
  636. number of possible valid entries.  In such cases, the implementor may
  637. specify that such a field type use discrete entry.  When editing
  638. such a field, the user is offered the list of valid entries from
  639. which to choose.  He types one of the choices and it is automatically
  640. validated.  This eliminates unnoticed typing errors.  In
  641. other cases, fields may not be appropriate for such discrete
  642. entry, but may be defined in terms of the type of data which may
  643. be entered.  When such a field specification is made, the implementor
  644. may specify valid types of data, and when appropriate, a range.  As
  645. such a field is being edited, the data entry is validated
  646. automatically.  Finally, lines and fields may have characters
  647. which are "protected".  That is, characters which are required and
  648. may not be changed.  The definition of each line and field
  649. provides for the specification of such protected characters.
  650. During the edit process, the user is not allowed to modify these
  651. characters.  In one case, protected data are automatically
  652. entered. This is the case of a checksum character.  If the implementor
  653. defines a field which has a checksum character, that character is
  654. automatically entered upon leaving the field. The remainder of this 
  655. section discusses the functions available to the user while in the
  656. edit mode.
  657.  
  658.         The first four functions listed are also available in the
  659. scroll mode.  They operate in essentially the same fashion in the
  660. edit mode.  The only difference being that for previous line, next
  661. line, and end edit, the line currently being edited is formatted,
  662. saved, and displayed before the rest of the function actions are
  663. taken.
  664.  
  665.         The previous field function allows the user to leave the
  666. current field and places the cursor at the first character of the
  667. previous field, and displays the prompt for that field.  If the
  668. user is in the first field and activates the previous field
  669. function, the editor cycles around to the last field in the line.
  670.  
  671.         The next field function is essentially the same as the
  672. previous field function except that the direction is reversed.  If
  673. the user is in the last field of the line and selects next field,
  674. the editor places the cursor in the first field of the line.
  675.  
  676.         The erase field function allows the user to "blank out" the
  677. contents of a field, leaving it in its prototype (empty) state.
  678.  
  679.  
  680. 8. Generic Message Definition.
  681.  
  682.         The GMD defines a package entitled generic_message_editor.
  683. It contains the various type declarations which define the
  684. range of message structures which are implementable within the GMHF.
  685. The body of the generic_message_editor package contains all the
  686. functions needed to edit messages as defined in the
  687. generic_message_definition subpackage.
  688.  
  689.         The generic_message_editor accepts as formal parameters the
  690. implementor's specification of various message-type dependent parameters
  691. and procedures. It allows the implementor to create an instance of the
  692. message editor which is 'custom tailored' to a particular message type.
  693.  
  694.         The structure of the various entities comprising the GMD and
  695. the packages required to instantiate an editor are covered in great
  696. detail in the Users Manual (UM). It is worth noting that the UM contains
  697. explicit implementation instructions. In fact, it is as much of an
  698. implementors manual as it is a UM.
  699.  
  700.  
  701. 9. User Access.
  702.  
  703.         There are two methods of which an implementor may access the
  704. GMHF. The first is to access GMHF as a stand-alone system. When 
  705. GMHF is used as a stand-alone system, all functions provided by the
  706. SDP are available, and all messages within the internal database may 
  707. be handled. External messages may not be handled in the stand-alone
  708. mode unless moved into the internal database prior to entering the 
  709. stand-alone mode. Procedures for doing this are discussed in the latter
  710. portion of this section. Stand alone access may be accomplished by
  711. invoking SDP from the host operating system, or by calling it from
  712. an implementor developed procedure.
  713.  
  714.         For the second method of access, the implementor is provided
  715. a library of public routines. This library contains any editors which
  716. exist and the Access_For_External_Users sub-package of the FAP. This 
  717. particular sub-package contains four distinct procedures. One
  718. procedure, Load_External_Message_Into_Workspace, allows the implementor 
  719. to load any message within the defined types of GMHF, from outside the
  720. system into the workspace for editing purposes. The implementor must
  721. first place the necessary message information into an External_Message
  722. data element which the procedure may then map into the edit workspace.
  723. Once an external message has been mapped into the workspace, the
  724. implementor may then activate an editor which provides the editing 
  725. functions to the user.
  726.  
  727.         The user may obtain an edited message via the second procedure
  728. of the ACCESS_FOR_EXTERNAL_USERS sub-package,
  729. RETRIEVE_MESSAGE_FROM_WORKSPACE. This procedure re-maps the contents of
  730. the edit workspace back onto an EXTERNAL_MESSAGE data element with which
  731. the implementor may do as he pleases. The two procedures discussed do
  732. not provide access to the GMHF internal data base. The remaining two
  733. procedures do.
  734.  
  735.         LOAD_EXTERNAL_MESSAGE_INTO_DATABASE and RETRIEVE_MESSAGE_FROM_-
  736. DATABASE move external messages between the implementor's external data
  737. base and the GMHF internal data base. This is accomplished through an
  738. EXTERNAL_MESSAGE data element.
  739.  
  740.