*DECK UNISEP
USETEXT TENVIRN 
USETEXT TOPTION 
USETEXT TXSTD 
      PROC UNISEP;
  
#----------------------------------------------------------------------#
#                                                                      #
#  THE FOLLOWING PROCS ARE XDEF"D WITHIN THIS DECK:                    #
#                                                                      #
#     CHKSEP                       CHECK FOR SEP = CURRENT SEPARATOR   # QU3A338
#     ITSIZ                        SETS ITEM-SIZE ON                   #
#     SEPA                         STORES NEW SEPARATOR CHARACTER      #
#     SEPONE                       TURNS OFF ITEMSIZE OPTION           #
#     UNIVERA                      STORES NEW UNIVERSAL CHARACTER      #
#     UNIVOFF                      TURNS OFF UNIVERSAL CHARACTER       #
#     UNIVSET                      SETS UP DEFAULT UNIVERSAL CHARACTER #
#     VTOSET                       HANDLES THE *VETO* DIRECTIVE        #
#                                                                      #
#----------------------------------------------------------------------#
  
      BEGIN 
  
      XREF ITEM UNIVERSAL    I;    # UNIVERSAL CHARACTER. VALUE 0-100B #
                                   # IF 100B, UNIVERSAL IS OFF         #
      XREF PROC RECNO;             # CALL STDNO IF RECORDING           #
      XREF PROC RECYES; 
  
  
  
  
#----------------------------------------------------------------------# QU3A338
#                                                                      # QU3A338
#         C H K S E P                                                  # QU3A338
#                                                                      # QU3A338
#         THIS PROC CHECKS FOR THE SYNTAX SEP = X WHERE X = CURRENT    # QU3A338
#         SEPARATOR CHARACTER.  THIS PROC WAS GENERATED TO ALLOW THE   # QU3A338
#         ABOVE SYNTAX WITHOUT THE DIAGNOSTICS 4 AND 150.              # QU3A338
#         EXIT   STDYES IF SYNTAX SEP = X PRESENT AND STDNO OTHERWISE. # QU3A338
#----------------------------------------------------------------------# QU3A338
      XDEF PROC CHKSEP;                                                  QU3A338
      PROC CHKSEP;                                                       QU3A338
      BEGIN                                                              QU3A338
      ITEM CHAR C(10);             # CURRENT CHAR FROM INPUT           # QU3A338
      ITEM I;                      # CURRENT CHARACTER NUMBER          # QU3A338
      ITEM WORD;                   # WORD POSITION IN INPUT ARRAY      # QU3A338
      ITEM ENDOT I;                # EOT MARKER                        #
                                                                         QU3A338
                                                                         QU3A338
      IF NEXTYPE NQ 100            # IF NEXWORD IS NOT A KEYWORD       # QU3A338
      THEN                                                               QU3A338
        BEGIN                                                            QU3A338
        STDNO;                     # RETURN THRU STDNO                 # QU3A338
        END                                                              QU3A338
      IF INW[0] NQ "="             # THE KEYWORD MUST BE AN =          # QU3A338
      THEN                                                               QU3A338
        BEGIN                                                            QU3A338
        STDNO;                     # RETURN THRU STDNO                 # QU3A338
        END                                                              QU3A338
  
                                   # IF SEPERATOR CAME FROM A          #
                                   # PERFORMING SESSION, STOP          #
                                   # THE SCAN 1 CHAR EARLY TO          #
                                   # COMPENSATE FOR THE EXTRA          #
                                   # SPACE AT EOT.                     #
  
      IF PERFLG 
      THEN
        BEGIN 
        ENDOT = QUIRL - 1;
        END 
      ELSE
        BEGIN 
        ENDOT = QUIRL;
        END 
  
      FOR I = CT100 + LEXPTR       # START AT CURRENT POSITION         # QU3A338
        STEP 1                                                           QU3A338
        UNTIL ENDOT                # STOP WHEN EOT ENCOUNTERED         #
      DO                                                                 QU3A338
        BEGIN                                                            QU3A338
        WORD = I / 10;             # CURRENT WORD POSITION             # QU3A338
        CHAR = C<I - 10 * WORD,1>INWORD[WORD];                           QU3A338
        IF CHAR EQ " "             # SKIP LEADING BLANKS               # QU3A338
        THEN                                                             QU3A338
          BEGIN                                                          QU3A338
          TEST I;                                                        QU3A338
          END                                                            QU3A338
        IF I EQ ENDOT              # AT LAST CHARACTER                 #
          AND CHAR EQ SEPARATOR    # CHARACTER IS CURRENT SEPARATOR    # QU3A338
        THEN                                                             QU3A338
          BEGIN                                                          QU3A338
          NEXTYPE = 12;            # SET EOT TO SKIP NEXWORD           # QU3A338
          LEXPTR = QUIRL + 1;      # CLEAR OUT REST OF TRANSMISSION    # QU3A338
          STDYES;                  # CORRECT SYNTAX IS OK              # QU3A338
          END                                                            QU3A338
        STDNO;                     # RETURN THRU STDNO                 # QU3A338
        END                                                              QU3A338
      STDNO;                       # RETURN THRU STDNO                 # QU3A338
      END                                                                QU3A338
                                                                         QU3A338
                                                                         QU3A338
#----------------------------------------------------------------------#
  
  
  
  
          XDEF PROC ITSIZ;
          PROC ITSIZ; 
             BEGIN
          RECNO;                   # CALL STDNO IF RECORDING           #
          ITEMSIZE = TRUE;
          STDNO;
             END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
          XDEF PROC SEPA; 
          PROC SEPA;
             BEGIN
             IF B<0,6>ICW[0] NQ UNIVERSAL 
             THEN 
               BEGIN
               SEPARATOR = B<0,6>ICW[0];
               STDYES;             # SUCCESSFUL RETURN                 #
               END
             ELSE 
               BEGIN
               STDNO;              # ERROR RETURN - UNI = SEP          #
               END
  
             END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
          XDEF PROC SEPONE; 
          PROC SEPONE;
             BEGIN
          RECNO;                   # CALL STDNO IF RECORDING           #
          ITEMSIZE = FALSE; 
          STDNO;
             END
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC UNIVERA;
      PROC UNIVERA; 
        BEGIN 
        RECNO;                     # CALL STDNO IF RECORDING           #
        IF ICW[0] NQ SEPARATOR THEN 
          BEGIN 
           UNIVERSAL = B<0,6>ICW[0];
          STDNO;
          END 
        ELSE STDYES;
        END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC UNIVOFF;
      PROC UNIVOFF; 
        BEGIN 
        IF RECORDFLAG              # IF RECORDING                      #
        THEN
          BEGIN 
          STDNO;
          END 
  
       UNIVERSAL = O"100";
        STDNO;
        END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
      XDEF PROC UNIVSET;
      PROC UNIVSET; 
        BEGIN 
        RECNO;                     # CALL STDNO IF RECORDING           #
        IF UNIVDEFLT NQ B<0,6>SEPARATOR 
        THEN
          BEGIN 
          UNIVERSAL = UNIVDEFLT;
          STDNO;
          END 
        ELSE STDYES;
        END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
  
  
 # THIS PROC SERVES THE VETO COMMAND, SETS VETOFLAG # 
      XDEF PROC VTOSET; 
      PROC VTOSET;  BEGIN 
      RECNO;                       # CALL STDNO IF RECORDING           #
      VETOFLAG = FALSE; 
      IF TERMINAL NQ 0  THEN
      IF ICW [0] EQ "ON"  THEN VETOFLAG = TRUE; 
      STDNO;  END 
  
  
  
  
#----------------------------------------------------------------------#
  
  
      END 
      TERM
