*COMDECK GETSET 
          CONTROL NOLIST;    #GETSET# 
          CONTROL EJECT;
  # ****************************************************************** #
  # *                                                                * #
  # * THESE ARE THE DEFINITIONS OF GETFIELD, SETFIELD, GETPLST       * #
  # * SETPLST, GETQUICK, AND CREATE$ENTRY.                           * #
  # * SPECIAL RULES:                                                 * #
  # *   1. GETFIELD MUST NOT BE USED AS A PARAMETER IN EITHER        * #
  # *      GETFIELD OR SETFIELD.  INSTEAD, ASSIGN THE INNER          * #
  # *      GETFIELD TO A TEMP AND THEN USE THE TEMP AS A PARAMETER   * #
  # *      IN THE OUTER CALL.                                        * #
  # *                                                                * #
  # *   2. BETTER CODE CAN BE GENERATED FOR A STATEMENT WHICH HAS    * #
  # *      ONLY ONE CALL TO GETFIELD IF THE GETFIELD IS CHANGED TO   * #
  # *      GETQUICK. THE FORMAT OF A CALL TO GETQUICK IS IDENTICAL TO* #
  # *      THE FORMAT OF A CALL TO GETFIELD.                         * #
  # *   3. GETPLST AND SETPLST REFERENCE THE PLSTRING TABLE.         * #
  # *      THEY ARE CALLED WITH TWO PARAMETERS:                      * #
  # *      A.  THE INDEX OF THE PLTATTRIBUTE TABLE ENTRY THAT IS     * #
  # *          ASSOCIATED WITH THE STRING, AND                       * #
  # *      B.  THE ADDRESS OF AN AREA IN WHICH THE STRING IS TO BE   * #
  # *          PLACED(GETPLST) OR FROM WHICH THE STRING IS TO BE     * #
  # *          OBTAINED(SETPLST).  NOTE THAT IF THIS AREA IS         * #
  # *          CALLED X, THEN LOC(X) IS PASSED AS THE PARAMETER.     * #
  # *          ALSO NOTE THAT GETPLST WILL WRITE INTO THIS AREA      * #
  # *          SO IT SHOULD BE LARGE ENOUGH TO HOLD THE LARGEST      * #
  # *          PLTSTRING (255 CHARACTERS).                           * #
  # *   4. THERE SEEMS TO BE NO NEED FOR CREATE$ENTRY SO IT WILL     * #
  # *      BE A DUMMY STATEMENT. IT HAS TO BE A STATEMENT OR SYMPL   * #
  # *      WILL DIAGNOSE THE FOLLOWING SEMI-COLON.                   * #
  # *                                                                * #
  # ****************************************************************** #
  
  
         DEF  CREATE$ENTRY($P1,$P2)     #$$ZZ$$ = 0#; 
         DEF  GETFIELD($P1,$P2,$P3)     #VV($P1[VIRTUAL($P2,$P3)])#;
         DEF  SETFIELD($P1,$P2,$P3,$P4) #$P1[VIRTUAL($P2,$P3)] = $P4#;
         DEF  GETQUICK($P1,$P2,$P3)     #$P1[VIRTUAL($P2,$P3)]#;
  
  
          ITEM   $$ZZ$$   I;
          XREF   PROC     GETPLST;
          XREF   PROC     SETPLST;
          XREF   FUNC     VV       I; 
          XREF   FUNC     VIRTUAL  U; 
          CONTROL LIST;      #GETSET# 
