.
.         DYNAMIC OPTION SET / CLEAR
.
.
.         (C)  Copyright 1972-1978  John Walker
.
.         This software is in the public domain
.
          AXR$
          DEFUNCT$
          FANG
          PURE      CODE
OPTSET*   REMOVE    PARQUE              REMOVE THE PARAMETER FROM THE QUEUE
          LA        A3,PBSS,A1          LOAD THE FIRST WORD OF THE STRING
          BRELP     A1                  RELEASE THE PARAMETER BUFFER
          TNE       A3,('ON    ')       IS IT 'TURN ON' CODE ?
          J         OPTON               YES.  GO TO TURN ON CODE
          TNE       A3,('LIST  ')       IS IT LIST ?
          J         OPTLST              YES.  LIST CURRENT OPTIONS
          TNE       A3,('IMPLY ')       SET IMPLIED COMMAND OPTIONS ?
          J         OPTIMP              YES.  OR THEM IN
          TNE       A3,('REMOVE')       REMOVE IMPLIED COMMAND OPTIONS ?
          J         OPTREM              YES.  REMOVE THEM
          TE        A3,('OFF   ')       OR IS IT TURN OFF ?
          J         OPTERR              NO.  ERRONEOUS OPTION FUNCTION
          LNA       A0,CWOPTION         LOAD INVERSE OF OPTION BITS
          AND       A0,PARTBL           TURN OFF SPECIFIED BITS
PTPUT     SA        A1,PARTBL           PUT UPDATED OPTIONS IN PARTBL
          if        jwsite
          SZ        BTRACE              CLEAR BGET TRACE FLAG
          JNB       A1,$+2              SKIP IF 'Z' OPTION ISN'T ON
          SNONZ     BTRACE              SET BGET TRACE MODE FOR 'Z' OPTION
          endf
          J         ICOUT               DONE PROCESSING THIS COMMAND
.
OPTON     LA        A0,PARTBL           LOAD CURRENT OPTION BITS
          OR        A0,CWOPTION         OR IN SPECIFIED BITS
          J         PTPUT               PUT UPDATED OPTIONS IN PARTBL
.
OPTIMP    LA        A0,IMPLOPT          LOAD IMPLIED OPTIONS
          OR        A0,CWOPTION         OR IN OPTIONS SPECIFIED THIS TIME
          SA        A1,IMPLOPT          UPDATE IMPLIED OPTIONS
          J         ICOUT               RETURN TO SCANNER
.
OPTREM    LNA       A0,CWOPTION         LOAD COMPLEMENT OF SPECIFIED OPTIONS
          AND       A0,IMPLOPT          TURN OFF SPECIFIED OPTIONS
          SA        A1,IMPLOPT          UPDATE IMPLIED OPTIONS
          J         ICOUT               DONE WITH THE COMMAND
.
OPTLST    F$DT1     fll$,fl$            SET UP EDITOR
          TNZ       PARTBL              ANY OPTIONS ON ?
          J         NOOSE               NO.  EDIT SPECIAL CASE MESSAGE
          F$MSG     OLMSG               EDIT START TO HEADER
          LA        A0,PARTBL           LOAD OPTIONS
          SA        A0,CWOPTION         SET UP FOR EDITOR
          LMJ       X5,MBO              USE CSF$ OPTION EDITOR
          F$COL     0                   TA TO IMAGE START
          V$POS1    ','                 FIND THE COMMA
          F$CHAR    ' '                 ZAP IT
PROOP     TNZ       IMPLOPT             ANY IMPLIED OPTIONS ?
          J         PROOG               NO.  PRINT AS IT IS
          V$POS1    ' '                 POSITION TO END OF OPTION STRING
          F$SKIP    2                   SKIP TWO SPACES
          F$MSG     ICOX                EDIT 'IMPLIED COMMAND OPTIONS:'
          LA        A0,IMPLOPT          LOAD IMPLIED OPTIONS
          SA        A0,CWOPTION         SET UP OPTIONS
          LMJ       X5,MBO              EDIT OPTIONS
          F$COL     0                   TAB TO IMAGE START
          V$POS1    ','                 FIND THE COMMA
          F$CHAR    ' '                 OVERLAY IT
PROOG     F$PRT     1                   PRINT THE OPTIONS
          J         ICOUT               END OF COMMAND
NOOSE     F$MSG     NOSEM               EDIT 'NO OPTIONS SET'
          J         PROOP               PRINT AND EXIT
.
OPTERR    F$DT1     fll$,fl$            SET UP EDITOR
          F$MSG     OPTEM               EDIT OPTION ERROR MESSAGE
          F$FD1     A3                  EDIT ERRONEOUS PARAMETER
          F$MSGR    .                   COPY REST OF MESSAGE
          F$PRT     1                   PRINT THE LINE
          J         ICERR               GO TO ERROR RETURN
.
          PURE      DATA
OLMSG     'FANG OPTIONS:&'
ICOX      'IMPLIED COMMAND OPTIONS:&'
NOSEM     'NO FANG OPTIONS.&'
OPTEM     'ON, OFF, IMPLY, REMOVE, OR LIST.  NOT: &.&'
          END