SMFSUBS 
          IDENT  SFDQUE 
          ENTRY  SFDQUE 
          SYSCOM B1 
          TITLE  SFDQUE - DEQUEUE DATA FROM SPECIFIED QUEUE.
*COMMENT  SFDQUE - DEQUEUE DATA.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SDQ      SPACE  4,10 
***       SFDQUE - DEQUEUE DATA FROM SPECIFIED QUEUE. 
* 
*         M. L. SWANSON.     85/05/16.
 SDQ      SPACE  4,10 
***       *SFDQUE* PROVIDES AN INTERFACE TO *SFDQUE$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SDQ      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFDQUE(QNAME, BUFFER, RC, LENGTH)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFDQUE USING QNAME, BUFFER, RC, LENGTH. 
* 
*                QNAME     = NAME OF THE QUEUE FROM WHICH TO
*                            RETRIEVE DATA ( GET OR PUT ).
*                BUFFER    = ADDRESS OF BUFFER INTO WHICH TO
*                            RETURN THE DATA. 
*                RC        = RETURN CODE ( 0 = DATA DEQUEUED, 
*                            1 = MORE DATA AVAILABLE, 2 = NO
*                            MESSAGES IN QUEUE. 
*                LENGTH    = SIZE OF BUFFER IN 12-BIT CHARACTERS. 
 SDQ      SPACE  4,10 
**        SFDQUE - DEQUEUE DATA FROM SPECIFIED QUEUE. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFDQUE$. 
  
  
 SFDQUE   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SDQA        FWA OF PARAMETER LIST
          SB3    SDQB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY QNAME 
          RJ     =XSFCNP$    COPY BUFFER ADDRESS
          RJ     =XSFCNP$    COPY RETURN CODE 
          RJ     =XSFCNP$    COPY SIZE OF BUFFER
          SA1    SDQA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFDQUE$   DEQUEUE DATA FROM SPECIFIED QUEUE
          EQ     SFDQUEX     EXIT 
  
 SDQA     BSSZ   7           NEW PARAMETER LIST 
 SDQB     BSSZ   2           LENGTH AND OFFSET FOR QUEUE NAME 
  
          END 
  
          IDENT  SFMODE 
          ENTRY  SFMODE 
          SYSCOM B1 
          TITLE  SFMODE - SWITCH TERMINAL BETWEEN SCREEN/LINE MODE. 
*COMMENT  SFMODE - SET TERMINAL MODE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SMD      SPACE  4,10 
***       SFMODE - SWITCH TERMINAL BETWEEN SCREEN/LINE MODE.
* 
*         M. L. SWANSON.     85/05/16.
 SMD      SPACE  4,10 
***       *SFMODE* PROVIDES AN INTERFACE TO *SFMODE$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SMD      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFMODE(MODE, MODEL)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFMODE USING MODE, MODEL. 
* 
*                MODE      = TERMINAL MODE (0 = SCREEN, 1 = LINE) 
*                MODEL     = DISPLAY CODE MODEL NAME
 SMD      SPACE  4,10 
**        SFMODE - SWITCH TERMINAL BETWEEN SCREEN/LINE MODE.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFMODE$. 
  
  
 SFMODE   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SMDA        FWA OF PARAMETER LIST
          RJ     =XSFCNP$    COPY MODE
          SB3    SMDB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY MODEL 
          SA1    SMDA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFMODE$   SET SCREEN/LINE MODE 
          EQ     SFMODEX     EXIT 
  
 SMDA     BSSZ   5           NEW PARAMETER LIST 
 SMDB     BSSZ   2           LENGTH AND OFFSET FOR MODEL NAME 
  
          END 
  
          IDENT  SFNQUE 
          ENTRY  SFNQUE 
          SYSCOM B1 
          TITLE  SFNQUE - ENQUEUE DATA INTO SPECIFIED QUEUE.
*COMMENT  SFNQUE - ENQUEUE DATA.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SNQ      SPACE  4,10 
***       SFNQUE - ENQUEUE DATA INTO SPECIFIED QUEUE. 
* 
*         M. L. SWANSON.     85/05/16.
 SNQ      SPACE  4,10 
***       *SFNQUE* PROVIDES AN INTERFACE TO *SFNQUE$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SNQ      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFNQUE(QNAME, BUFFER, RC)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFNQUE USING QNAME, BUFFER, RC. 
* 
*                QNAME     = NAME OF DESTINATION QUEUE (PUT OR GET).
*                BUFFER    = ADDRESS OF DATA TO BE ADDED TO QUEUE.
*                RC        = RETURN CODE ( 0 = DATA ENQUEUED, 
*                            1 = NOT ENQUEUED ).
 SNQ      SPACE  4,10 
**        SFNQUE - ENQUEUE DATA INTO SPECIFIED QUEUE. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFNQUE$. 
  
  
 SFNQUE   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SNQA        FWA OF PARAMETER LIST
          SB3    SNQB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY QNAME 
          RJ     =XSFCNP$    COPY BUFFER
          RJ     =XSFCNP$    COPY RETURN CODE 
          SA1    SNQA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFNQUE$   ENQUEUE DATA INTO SPECIFIED QUEUE
          EQ     SFNQUEX     EXIT 
  
 SNQA     BSSZ   6           NEW PARAMETER LIST 
 SNQB     BSSZ   2           LENGTH AND OFFSET FOR QUEUE NAME 
  
          END 
  
          IDENT  SFQTRM 
          ENTRY  SFQTRM 
          SYSCOM B1 
          TITLE  SFQTRM - IDENTIFY QTRM USER TO SFORM.
*COMMENT  SFQTRM - IDENTIFY QTRM USER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SQT      SPACE  4,10 
***       SFQTRM - IDENTIFY QTRM USER TO SFORM. 
* 
*         M. L. SWANSON.     85/05/16.
 SQT      SPACE  4,10 
***       *SFQTRM* PROVIDES AN INTERFACE TO *SFQTRM$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SQT      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFQTRM(NITADDR, BUFFER)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFQTRM USING NITADDR, BUFFER. 
* 
*                NITADDR   = ADDRESS OF THE NETWORK INFORMATION TABLE.
*                BUFFER    = BUFFER ADDRESS.
 SQT      SPACE  4,10 
**        SFQTRM - IDENTIFY QTRM USER TO SFORM. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFQTRM$. 
  
  
 SFQTRM   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SQTA        FWA OF PARAMETER LIST
          RJ     =XSFCNP$    COPY NIT ADDRESS 
          RJ     =XSFCNP$    COPY BUFFER ADDRESS
          SA1    SQTA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFQTRM$   IDENTIFY QTRM USER TO SFORM
          EQ     SFQTRMX     EXIT 
  
 SQTA     BSSZ   3           NEW PARAMETER LIST 
  
          END 
  
          IDENT  SFATTR 
          ENTRY  SFATTR 
          SYSCOM B1 
          TITLE  SFATTR - SET FIELD ATTRIBUTES. 
*COMMENT  SFATTR - SET FIELD ATTRIBUTES.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SFA      SPACE  4,10 
***       SFATTR - SET FIELD ATTRIBUTES.
* 
*         S.D. PAINTER.      85/10/01.
 SFA      SPACE  4,10 
***       *SFATTR* PROVIDES AN INTERFACE TO *SFATTR$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SFA      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFATTR(VARNAME,NEW,OLD)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFATTR USING VARNAME, NEW, OLD. 
* 
*                VARNAME   = NAME OF VARIABLE.
*                NEW       = NEW FIELD ATTRIBUTES.
*                OLD       = OLD FIELD ATTRIBUTES.
 SFA      SPACE  4,10 
**        SFATTR - SET FIELD ATTRIBUTES.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFATTR$. 
  
  
 SFATTR   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SFAA        FWA OF PARAMETER LIST
          SB3    SFAB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCNP$    COPY NEW 
          RJ     =XSFCNP$    COPY OLD 
          SA1    SFAA        GET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFATTR$   SET FIELD ATTRIBUTES 
          EQ     SFATTRX     EXIT 
  
 SFAA     BSSZ   6           NEW PARAMETER LIST 
 SFAB     BSSZ   2           LENGTH AND OFFSET FOR PARAMETERS 
  
          END 
  
          IDENT  SFGETF 
          ENTRY  SFGETF 
          SYSCOM B1 
          TITLE  SFGETF - GET CHARACTER FIELD.
*COMMENT  SMFSUBS - GET CHARACTER FIELD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SGF      SPACE  4,10 
***       SFGETF - GET CHARACTER FIELD. 
* 
*         A. PILEBRO.        84/12/03.
*         R. E. DUNBAR.      88/02/10.
 SGF      SPACE  4,10 
***       *SFGETF* PROVIDES AN INTERFACE TO *SFGETF$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SGF      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMCMAC 
 SGF      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFGETF(VARNAME,INSTRING,CSET,STATUS) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFGETF USING VARNAME, INSTRING, CSET, STATUS. 
* 
*         ENTRY  VARNAME   = NAME OF VARIABLE.
*                INSTRING  = NAME OF RECEIVING FILED. 
*                CSET      = CHARACTER SET. 
*                            *       * DEFAULT (SET BY *SFCSET*). 
*                            *ASCII  * 6/12 ASCII.
*                            *ASCII8 * 8-BIT ASCII IN 12-BIT BYTES. 
*                            *DISPLAY* 6-BIT DISPLAY CODE.
*                            ( OTHER ) 6-BIT DISPLAY CODE.
* 
*         EXIT   STATUS .GE. 0,  NUMBER OF 6 BIT BYTES TRANSFERRED. 
*                       .LT. 1,  VARIABLE NOT IN ACTIVE PANELS. 
 SGF      SPACE  4,10 
**        SFGETF - GET CHARACTER FIELD. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFGETF$. 
  
  
 SFGETF   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SGFA        FWA OF PARAMETER LIST
          SB3    SGFB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCSP$    COPY INSTRING
          RJ     =XSFCSP$    COPY CSET
          RJ     =XSFCNP$    COPY VALUE / STAT
          SA1    SGFA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFGETF$   GET INTEGER VALUE
          EQ     SFGETFX     EXIT 
  
  
 SGFA     BSSZ   11          NEW PARAMETER LIST 
 SGFB     BSSZ   6           LENGTHS AND OFFSETS
  
          END 
  
          IDENT  SFGETI 
          ENTRY  SFGETI 
          SYSCOM B1 
          TITLE  SFGETI - GET INTEGER VALUE.
*COMMENT  SFGETI - GET INTEGER VALUE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SGI      SPACE  4,10 
***       SFGETI - GET INTEGER VALUE. 
* 
*         J.T. LITTLE.       83/05/23.
 SGI      SPACE  4,10 
***       *SFGETI* PROVIDES AN INTERFACE TO *SFGETI$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SGI      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFGETI(VARNAME,VALUE)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFGETI USING VARNAME, VALUE.
* 
*                VARNAME   = NAME OF VARIABLE.
*                VALUE     = INTEGER VALUE OF FIELD.
 SGI      SPACE  4,10 
**        SFGETI - GET INTEGER VALUE. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFGETI$. 
  
  
 SFGETI   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SGIA        FWA OF PARAMETER LIST
          SB3    SGIB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCNP$    COPY VALUE 
          SA1    SGIA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFGETI$   GET INTEGER VALUE
          EQ     SFGETIX     EXIT 
  
 SGIA     BSSZ   5           NEW PARAMETER LIST 
 SGIB     BSSZ   2           LENGTH AND OFFSET FOR VARIABLE NAME
  
          END 
  
          IDENT  SFGETN 
          ENTRY  SFGETN 
          SYSCOM B1 
          TITLE  SFGETN - GET TERMINAL MODEL NAME.
*COMMENT  SFGETN - GET TERMINAL MODEL NAME. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SGN      SPACE  4,10 
***       SFGETN - GET TERMINAL MODEL NAME. 
* 
*         M. L. SWANSON.     84/10/25.
 SGN      SPACE  4,10 
***       *SFGETN* PROVIDES AN INTERFACE TO *SFGETN$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SGN      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFGETN(MODEL)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFGETN USING MODEL. 
* 
*                MODEL     = TERMINAL MODEL NAME. 
 SGN      SPACE  4,10 
**        SFGETN - GET TERMINAL MODEL NAME. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF MODEL PARAMETER. 
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCSP$, SFGETN$. 
  
  
 SFGETN   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SGNA        FWA OF PARAMETER LIST
          SB3    SGNB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY MODEL NAME ADDRESS
          SA1    SGNA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFGETN$   GET INTEGER VALUE
          EQ     SFGETNX     EXIT 
  
 SGNA     BSSZ   4           NEW PARAMETER LIST 
 SGNB     BSSZ   2           LENGTH AND OFFSET FOR VARIABLE NAME
  
          END 
  
          IDENT  SFGETR 
          ENTRY  SFGETR 
          SYSCOM B1 
          TITLE  SFGETR - GET REAL VALUE. 
*COMMENT  SFGETR - GET REAL VALUE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SGR      SPACE  4,10 
***       SFGETR - GET REAL VALUE.
* 
*         J.T. LITTLE.       83/05/23.
 SGR      SPACE  4,10 
***       *SFGETR* PROVIDES AN INTERFACE TO *SFGETR$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SGR      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFGETR(VARNAME,VALUE)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFGETR USING VARNAME, VALUE.
* 
*                VARNAME   = NAME OF VARIABLE.
*                VALUE     = REAL VALUE OF FIELD. 
 SGR      SPACE  4,10 
**        SFGETR - GET REAL VALUE.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFGETR$. 
  
  
 SFGETR   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SGRA        FWA OF PARAMETER LIST
          SB3    SGRB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCNP$    COPY VALUE 
          SA1    SGRA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFGETR$   GET REAL VALUE 
          EQ     SFGETRX     EXIT 
  
 SGRA     BSSZ   5           NEW PARAMETER LIST 
 SGRB     BSSZ   2           LENGTH AND OFFSET FOR VARIABLE NAME
  
          END 
  
          IDENT  SFLUSH 
          ENTRY  SFLUSH 
          SYSCOM B1 
          TITLE  SFLUSH - FLUSH OUTPUT TO SCREEN. 
*COMMENT  SMFSUBS - FLUSH OUTPUT TO SCREEN. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SFL      SPACE  4,10 
***       SFLUSH - FLUSH OUTPUT TO SCREEN.
* 
*         R.E. DUNBAR.       88/04/05.
 SFL      SPACE  4,10 
***       *SFLUSH* PROVIDES AN INTERFACE TO *SFLUSH$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SFL      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFLUSH 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFLUSH
* 
 SFL      SPACE  4,10 
**        SFLUSH - FLUSH OUTPUT TO SCREEN.
* 
*         USES   B - 1. 
* 
*         CALLS  SFLUSH$. 
  
  
 SFLUSH   SUBR               ENTRY/EXIT 
          SB1    1
          RJ     =XSFLUSH$   FLUSH OUTPUT TO SCREEN 
          EQ     SFLUSHX     EXIT 
  
          END 
          IDENT  SFPOSR 
          ENTRY  SFPOSR 
          SYSCOM B1 
          TITLE  SFPOSR - POSITION TABLE ROW. 
*COMMENT  SFPOSR - POSITION TABLE ROW.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SGD      SPACE  4,10 
***       SFPOSR - POSITION TABLE ROW.
* 
*         J.T. LITTLE.       83/05/23.
 SGD      SPACE  4,10 
***       *SFPOSR* PROVIDES AN INTERFACE TO *SFPOSR$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SGD      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFPOSR(TABNAME,VALUE)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFPOSR USING TABNAME, VALUE.
* 
*                TABNAME   = NAME OF TABLE. 
*                VALUE     = DATE VALUE OF FIELD. 
 SGD      SPACE  4,10 
**        SFPOSR - GET DATE VALUE.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFPOSR$. 
  
  
 SFPOSR   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SGDA        FWA OF PARAMETER LIST
          SB3    SGDB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY TABNAME 
          RJ     =XSFCNP$    COPY VALUE 
          SA1    SGDA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFPOSR$   GET DATE VALUE 
          EQ     SFPOSRX     EXIT 
  
 SGDA     BSSZ   5           NEW PARAMETER LIST 
 SGDB     BSSZ   2           LENGTH AND OFFSET FOR TABLE NAME 
  
          END 
  
          IDENT  SFSETF 
          ENTRY  SFSETF 
          SYSCOM B1 
          TITLE  SFSETF - SET CHARACTER FIELD.
*COMMENT  SMFSUBS - SET CHARACTER FIELD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SSF      SPACE  4,10 
***       SFSETF - SET CHARACTER FIELD. 
* 
*         A. PILEBRO.        84/12/03.
*         R. E. DUNBAR.      88/02/10.
 SSF      SPACE  4,10 
***       *SFSETF* PROVIDES AN INTERFACE TO *SFSETF$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SSF      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMCMAC 
 SSF      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSETF(VARNAME,OUTSTRING,CSET,STATUS)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSETF USING VARNAME, OUTSTRING, CSET, STATUS.
* 
*         ENTRY  VARNAME   = NAME OF VARIABLE.
*                OUTSTRING = NAME OF RECIEVING FILED. 
*                CSET      = CHARACTER SET. 
*                            *       * DEFAULT (SET BY *SFCSET*). 
*                            *ASCII  * 6/12 ASCII.
*                            *ASCII8 * 8-BIT ASCII IN 12-BIT BYTES. 
*                            *DISPLAY* 6-BIT DISPLAY CODE.
*                            ( OTHER ) 6-BIT DISPLAY CODE.
* 
*         EXIT   STATUS .GE. 0,  NUMBER OF 6 BIT BYTES TRANSFERRED. 
*                       .LT. 1,  VARIABLE NOT IN ACTIVE PANELS. 
 SSF      SPACE  4,10 
**        SFSETF - SET CHARACTER FIELD. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFSETF$. 
  
  
 SFSETF   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SSFA        FWA OF PARAMETER LIST
          SB3    SSFB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCSP$    COPY INSTRING
          RJ     =XSFCSP$    COPY CSET
          RJ     =XSFCNP$    COPY VALUE / STAT
          SA1    SSFA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFSETF$   GET INTEGER VALUE
          EQ     SFSETFX     EXIT 
  
  
 SSFA     BSSZ   11          NEW PARAMETER LIST 
 SSFB     BSSZ   6           LENGTHS AND OFFSETS
  
          END 
          IDENT  SFSETP 
          ENTRY  SFSETP 
          SYSCOM B1 
          TITLE  SFSETP - SET CURSOR POSITION.
*COMMENT  SFSETP - SET CURSOR POSITION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 STP      SPACE  4,10 
***       SFSETP - SET CURSOR POSITION. 
* 
*         J.T. LITTLE.       83/04/25.
 STP      SPACE  4,10 
***       *SFSETP* PROVIDES AN INTERFACE TO *SFSETP$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 STP      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSETP(VARNAME,OFFSET,ROW) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSETP USING VARNAME, OFFSET, ROW.
* 
*                VARNAME   = NAME OF VARIABLE.
*                OFFSET    = OFFSET IN FIELD. 
 STP      SPACE  4,10 
**        SFSETP - SET CURSOR POSITION. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFSETP$. 
  
  
 SFSETP   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    STPA        FWA OF PARAMETER LIST
          SB3    STPB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCNP$    COPY OFFSET
          RJ     =XSFCNP$    COPY ROW 
          SA1    STPA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFSETP$   SET CURSOR POSITION
          EQ     SFSETPX     EXIT 
  
 STPA     BSSZ   6           NEW PARAMETER LIST 
 STPB     BSSZ   2           LENGTH AND OFFSET FOR PANEL NAME 
  
          END 
  
          IDENT  SFSREA 
          ENTRY  SFSREA 
          SYSCOM B1 
          TITLE  SFSREA - READ FORMATTED SCREEN.
*COMMENT  SFSREA - READ FORMATTED SCREEN. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SRE      SPACE  4,10 
***       SFSREA - READ FORMATTED SCREEN. 
* 
*         J.T. LITTLE.       83/04/25.
 SRE      SPACE  4,10 
***       *SFSREA* PROVIDES AN INTERFACE TO *SFSREA$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SRE      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSREA(PANELNAME,INSTRING) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSREA USING PANELNAME INSTRING.
* 
*                PANELNAME = PANEL TO BE READ.
*                INSTRING  = RECEIVES TERMINAL INPUT. 
 SRE      SPACE  4,10 
**        SFSREA - READ PANEL.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFSREA$. 
  
  
 SFSREA   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SREA        FWA OF PARAMETER LIST
          SB3    SREB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY PANELNAME 
          RJ     =XSFCSP$    COPY INSTRING
          SA1    SREA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFSREA$   READ FORMATTED SCREEN
          EQ     SFSREAX     EXIT 
  
 SREA     BSSZ   7           NEW PARAMETER LIST 
 SREB     BSSZ   4           LENGTH AND OFFSET FOR PANEL NAME 
          END 
  
          IDENT  SFSWRI 
          ENTRY  SFSWRI 
          SYSCOM B1 
          TITLE  SFSWRI - WRITE FORMATTED SCREEN. 
*COMMENT  SFSWRI - WRITE FORMATTED SCREEN.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SWR      SPACE  4,10 
***       SFSWRI - WRITE FORMATTED SCREEN.
* 
*         J.T. LITTLE.       83/04/25.
 SWR      SPACE  4,10 
***       *SFSWRI* PROVIDES AN INTERFACE TO *SFSWRI$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SWR      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSWRI(PANELNAME,OUTSTRING)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSWRI USING PANELNAME OUTSTRING. 
* 
*                PANELNAME = PANEL TO BE READ.
*                OUTSTRING = DATA TO BE DISPLAYED.
 SWR      SPACE  4,10 
**        SFSWRI - WRITE PANEL. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFSWRI$. 
  
  
 SFSWRI   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SWRA        FWA OF PARAMETER LIST
          SB3    SWRB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY PANELNAME 
          RJ     =XSFCSP$    COPY OUTSTRING 
          SA1    SWRA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFSWRI$   READ FORMATTED SCREEN
          EQ     SFSWRIX     EXIT 
  
 SWRA     BSSZ   7           NEW PARAMETER LIST 
 SWRB     BSSZ   4           LENGTHS AND OFFSETS FOR PARAMETERS 
          END 
  
          IDENT  SFSSHO 
          ENTRY  SFSSHO 
          SYSCOM B1 
          TITLE  SFSSHO - SHOW FORMATTED SCREEN.
*COMMENT  SFSSHO - SHOW FORMATTED SCREEN. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SSH      SPACE  4,10 
***       SFSSHO - SHOW FORMATTED SCREEN. 
* 
*         J.T. LITTLE.       83/04/25.
 SSH      SPACE  4,10 
***       *SFSSHO* PROVIDES AN INTERFACE TO *SFSSHO$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SSH      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSSHO(PANELNAME,INSTRING,OUTSTRING) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSSHO USING PANELNAME INSTRING,OUTSTRING.
* 
*                PANELNAME = PANEL TO BE READ.
*                OUTSTRING = DATA TO BE DISPLAYED.
*                INSTRING  = INPUT FROM TERMINAL. 
 SSH      SPACE  4,10 
**        SFSSHO - SHOW PANEL.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADRESS OF FIRST PARAMETER.
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFSSHO$. 
  
  
 SFSSHO   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SSHA        FWA OF PARAMETER LIST
          SB3    SSHB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY PANELNAME 
          RJ     =XSFCSP$    COPY OUTSTRING 
          RJ     =XSFCSP$    COPY INSTRING
          SA1    SSHA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFSSHO$   READ FORMATTED SCREEN
          EQ     SFSSHOX     EXIT 
  
 SSHA     BSSZ   10          NEW PARAMETER LIST 
 SSHB     BSSZ   6           LENGTHS AND OFFSETS FOR PARAMETERS 
          END 
  
          IDENT  SFCSET 
          ENTRY  SFCSET 
          SYSCOM B1 
          TITLE  SFCSET - SPECIFY CHARACTER SET.
*COMMENT  SFCSET - SPECIFY CHARACTER SET. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CST      SPACE  4,10 
***       SFCSET - SPECIFY CHARACTER SET. 
* 
*         J.T. LITTLE.       83/04/25.
 CST      SPACE  4,10 
***       *SFCSET* PROVIDES AN INTERFACE TO *SFCSET$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 CST      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFCSET(CHARSET)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFCSET USING CHARSET. 
* 
*                CHARSET   = CHARACTER SET. 
 CST      SPACE  4,10 
**        SFCSET - SPECIFY CHARACTER SET. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADRESS OF FIRST PARAMETER.
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFCSET$. 
  
  
 SFCSET   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    CSTA        FWA OF PARAMETER LIST
          SB3    CSTB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY CHARSET 
          SA1    CSTA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFCSET$   SET CHARACTER SET
          EQ     SFCSETX     EXIT 
  
 CSTA     BSSZ   4           NEW PARAMETER LIST 
 CSTB     BSSZ   2           LENGTH AND OFFSET FOR PARAMETER
  
          END 
  
          IDENT  SFGETP 
          ENTRY  SFGETP 
          SYSCOM B1 
          TITLE  SFGETP - GET CURSOR POSITION.
*COMMENT  SFGETP - GET CURSOR POSITION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 STP      SPACE  4,10 
***       SFGETP - GET CURSOR POSITION. 
* 
*         J.T. LITTLE.       83/04/25.
 STP      SPACE  4,10 
***       *SFGETP* PROVIDES AN INTERFACE TO *SFGETP$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 STP      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFGETP(VARNAME,OFFSET,ROW) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFGETP USING VARNAME, OFFSET, ROW.
* 
*                VARNAME   = NAME OF VARIABLE.
*                OFFSET    = OFFSET IN FIELD. 
 STP      SPACE  4,10 
**        SFGETP - GET CURSOR POSITION. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADRESS OF FIRST PARAMETER.
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFGETP$. 
  
  
 SFGETP   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    STPA        FWA OF PARAMETER LIST
          SB3    STPB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY VARNAME 
          RJ     =XSFCNP$    COPY OFFSET
          RJ     =XSFCNP$    COPY ROW 
          SA1    STPA        GET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFGETP$   GET CURSOR POSITION
          EQ     SFGETPX     EXIT 
  
 STPA     BSSZ   6           NEW PARAMETER LIST 
 STPB     BSSZ   2           LENGTH AND OFFSET FOR PARAMETERS 
  
          END 
  
          IDENT  SFOPEN 
          ENTRY  SFOPEN 
          SYSCOM B1 
          TITLE  SFOPEN - OPEN PANEL. 
*COMMENT  SFOPEN - OPEN PANEL.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SOP      SPACE  4,10 
***       SFOPEN - OPEN PANEL.
* 
*         J.T. LITTLE.       83/04/25.
 SOP      SPACE  4,10 
***       *SFOPEN* PROVIDES AN INTERFACE TO *SFOPEN$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SOP      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFOPEN(PANELNAME,STATUS) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFOPEN USING PANELNAME STATUS.
* 
*                PANELNAME = PANEL TO BE OPENED.
*                STATUS    = RETURNS OPEN STATUS. 
 SOP      SPACE  4,10 
**        SFOPEN - OPEN PANEL.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADRESS OF FIRST PARAMETER.
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFOPEN$. 
  
  
 SFOPEN   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SOPA        FWA OF PARAMETER LIST
          SB3    SOPB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY PANELNAME 
          RJ     =XSFCNP$    COPY STATUS
          SA1    SOPA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFOPEN$   OPEN PANEL 
          EQ     SFOPENX     EXIT 
  
 SOPA     BSSZ   5           NEW PARAMETER LIST 
 SOPB     BSSZ   2           LENGTH AND OFFSET FOR PARAMETERS 
          END 
  
          IDENT  SFCLOS 
          ENTRY  SFCLOS 
          SYSCOM B1 
          TITLE  SFCLOS - CLOSE PANEL.
*COMMENT  SFCLOS - CLOSE PANEL. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SCL      SPACE  4,10 
***       SFCLOS - CLOSE PANEL. 
* 
*         J.T. LITTLE.       83/04/25.
 SCL      SPACE  4,10 
***       *SFCLOS* PROVIDES AN INTERFACE TO *SFCLOS$* FOR PROGRAMS
*         WRITTEN IN HIGHER LEVEL LANGUAGES.
 SCL      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFCLOS(PANELNAME,STATUS) 
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFCLOS USING PANELNAME STATUS.
* 
*                PANELNAME = PANEL TO BE CLOSED.
*                STATUS    = RETURNS CLOSE STATUS.
 SCL      SPACE  4,10 
**        SFCLOS - CLOSE PANEL. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1. 
*                B - 1, 2, 3. 
* 
*         CALLS  SFCNP$, SFCSP$, SFCLOS$. 
  
  
 SFCLOS   SUBR               ENTRY/EXIT 
          SB1    1
          SB2    SCLA        FWA OF PARAMETER LIST
          SB3    SCLB        LENGTH AND OFFSET
          RJ     =XSFCSP$    COPY PANELNAME 
          RJ     =XSFCNP$    COPY STATUS
          SA1    SCLA        SET NEW PARAMETER LIST ADDRESS 
          RJ     =XSFCLOS$   CLOSE PANEL
          EQ     SFCLOSX     EXIT 
  
 SCLA     BSSZ   5           NEW PARAMETER LIST 
 SCLB     BSSZ   2           LENGTH AND OFFSET FOR PARAMETERS 
          END 
          IDENT  CSFCLOS
          ENTRY  CSFCLOS
          SYSCOM B1 
          TITLE  CSFCLOS - *CYBIL* INTERFACE TO *SFCLOS$*.
*COMMENT  CSFCLOS - *CYBIL* INTERFACE TO *SFCLOS$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CLO      SPACE  4,10 
***       CSFCLOS - *CYBIL* INTERFACE TO *SFCLOS$*. 
* 
*         M. L. SWANSON.     84/05/16.
 CLO      SPACE  4,10 
***       *CSFCLOS* PROVIDES AN INTERFACE TO *SFCLOS$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFCLOS$*. 
 CLO      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 CLO      SPACE  4,10 
***       CSFCLOS - *CYBIL* INTERFACE TO *SFCLOS$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFCLOS(PANELNAME, MODE); 
* 
*                PANELNAME = NAME OF PANEL TO BE CLOSED.
*                MODE = MODE TO REVERT TO AFTER PANEL CLOSED. 
 CLO      SPACE  4,10 
**        CSFCLOS - *COMPASS* INTERFACE TO *SFCLOS$* CALL.
* 
*         ENTRY CONDITIONS
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *PANELNAME*
*                X2   POINTER TO *MODE* 
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFCLOS$. 
  
  
 CSFCLOS  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    CLOA        SAVE POINTER TO STACK FRAME
          SA7    CLOB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    CLOC        SAVE STATIC LINK 
          BX6    X1 
  
*         *PANELNAME* PARAMETER IS PASSED CALL-BY-ADDRESS.
  
          SA6    CLOD        SAVE POINTER TO *PANELNAME*
          BX6    X2 
          SA6    CLOJ        SAVE *MODE*
          SA1    CLOD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFCLOS$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    CLOA        GET POINTER TO STACK FRAME 
          SA3    CLOB        GET STACK LIMIT
          SA4    CLOC        GET STATIC LINK
          SB2    X2          RETURN TO B2 
          SB3    X3          RETURN TO B3 
          SB4    X4          RETURN TO B2 
          DONE               RETURN 
  
 CLOA     VFD    60/0        POINTER TO STACK FRAME 
 CLOB     VFD    60/0        STACK LIMIT
 CLOC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR SYMPL PROCEDURE CALL. 
  
 CLOD     VFD    60/0        ADDRESS OF *PANELNAME* PARAMETER 
 CLOE     VFD    60/CLOH     ADDRESS OF *NLENGTH* PARAMETER 
 CLOF     VFD    60/CLOI     ADDRESS OF *NOFFSET* PARAMETER 
 CLOG     VFD    60/CLOJ     ADDRESS OF *MODE* PARAMETER
  
 CLOH     VFD    60/7        *NLENGTH*
 CLOI     VFD    60/0        *NOFFSET*
 CLOJ     VFD    60/0        *MODE* 
  
          END 
          IDENT  CSFGETI
          ENTRY  CSFGETI
          SYSCOM B1 
          TITLE  CSFGETI - *CYBIL* INTERFACE TO *SFGETI$*.
*COMMENT  CSFGETI - *CYBIL* INTERFACE TO *SFGETI$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GTI      SPACE  4,10 
***       CSFGETI - *COMPASS* INTERFACE TO *SFGETI$* CALL.
* 
*         M. L. SWANSON.     84/05/16.
 GTI      SPACE  4,10 
***       *CSFGETI* PROVIDES AN INTERFACE TO *SFGETI$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFGETI$*. 
 GTI      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 GTI      SPACE  4,10 
***       CSFGETI - *CYBIL* INTERFACE TO *SFGETI$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFGETI(VARNAME, VALUE);
* 
*                VARNAME = FIELD NAME OF THE PANEL VARIABLE.
*                VALUE = INTEGER VALUE TO BE RETURNED.
 GTI      SPACE  4,10 
**        CSFGETI - *COMPASS* INTERFACE TO *SFGETI$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *VARNAME*
*                X2   POINTER TO *VALUE*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFGETI$. 
  
  
 CSFGETI  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    GTIA        SAVE POINTER TO STACK FRAME
          SA7    GTIB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    GTIC        SAVE STATIC LINK 
          BX6    X1 
          SA6    GTID        SAVE POINTER TO *VARNAME*
          BX6    X2 
          SA6    GTIG        SAVE POINTER TO *VALUE*
          SA1    GTID        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFGETI$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    GTIA        GET POINTER TO STACK FRAME 
          SA3    GTIB        GET STACK LIMIT
          SA4    GTIC        GET STATIC LINK
          SB2    X2          RETURN TO B2 
          SB3    X3          RETURN TO B3 
          SB4    X4          RETURN TO B4 
          DONE               RETURN 
  
 GTIA     VFD    60/0        POINTER TO STACK FRAME 
 GTIB     VFD    60/0        STACK LIMIT
 GTIC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 GTID     VFD    60/0        ADDRESS OF *VARNAME* PARAMETER 
 GTIE     VFD    60/GTIH     ADDRESS OF *VLEN* PARAMETER
 GTIF     VFD    60/GTII     ADDRESS OF *VOFF* PARAMETER
 GTIG     VFD    60/0        ADDRESS OF *VALUE* PARAMETER 
  
 GTIH     VFD    60/7        *VLEN* 
 GTII     VFD    60/0        *VOFF* 
  
          END 
          IDENT  CSFGETK
          ENTRY  CSFGETK
          SYSCOM B1 
          TITLE  CSFGETK - *CYBIL* INTERFACE TO *SFGETK$*.
*COMMENT  CSFGETI - *CYBIL* INTERFACE TO *SFGETK$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GTK      SPACE  4,10 
***       CSFGETK - *COMPASS* INTERFACE TO *SFGETK$* CALL.
* 
*         M. L. SWANSON.     84/05/16.
 GTK      SPACE  4,10 
***       *CSFGETK* PROVIDES AN INTERFACE TO *SFGETK$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFGETK$*. 
 GTK      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 GTK      SPACE  4,10 
***       CSFGETK - *CYBIL* INTERFACE TO *SFGETK$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFGETK(TYPE, VALUE); 
* 
*                TYPE = FUNCTION KEY TYPE.
*                VALUE = INTEGER FUNCTION KEY NUMBER. 
 GTK      SPACE  4,10 
**        CSFGETK - *COMPASS* INTERFACE TO  *SFGETK$* CALL. 
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   FUNCTION KEY TYPE 
*                X2   POINTER TO *VALUE*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFGETK.
  
  
 CSFGETK  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    GTKA        SAVE POINTER TO STACK FRAME
          SA7    GTKB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    GTKC        SAVE STATIC LINK 
          BX6    X1 
          SA6    GTKD        SAVE POINTER TO *TYPE* 
          BX6    X2 
          SA6    GTKE        SAVE POINTER TO *VALUE*
          SA1    GTKD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFGETK 
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    GTKA        GET POINTER TO STACK FRAME 
          SA3    GTKB        GET STACK LIMIT
          SA4    GTKC        GET STACK LINK 
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 GTKA     VFD    60/0        POINTER TO STACK FRAME 
 GTKB     VFD    60/0        STACK LIMIT
 GTKC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 GTKD     VFD    60/0        ADDRESS OF *TYPE*
 GTKE     VFD    60/0        ADDRESS OF *VALUE* 
  
          END 
          IDENT  CSFGETP
          ENTRY  CSFGETP
          SYSCOM B1 
          TITLE  CSFGETP - *CYBIL* INTERFACE TO *SFGETP$*.
*COMMENT  CSFGETP - *CYBIL* INTERFACE TO *SFGETP$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GTP      SPACE  4,10 
***       CSFGETP - *COMPASS* INTERFACE TO *SFGETP$* CALL.
* 
*         M. L. SWANSON.     84/05/29.
 GTP      SPACE  4,10 
***       *CSFGETP* PROVIDES AN INTERFACE TO *SFGETP$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFGETP$*. 
 GTP      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 GTP      SPACE  4,10 
***       CSFGETP - *CYBIL* INTERFACE TO *SFGETP$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFGETP(FIELDNAME,INDEX, ROW);
* 
*                FIELDNAME = NAME OF FIELD. 
*                INDEX = CHARACTER POSITION WITHIN THE VARIABLE FIELD.
*                ROW = THE ROW NUMBER OF THE VARIABLE FIELD.
 GTP      SPACE  4,10 
**        CSFGETP - *COMPASS* INTERFACE TO *SFGETP$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *FIELDNAME*
*                X2   POINTER TO *INDEX*
*                X3   POINTER TO *ROW*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFGETP$. 
  
  
 CSFGETP  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    GTPA        SAVE POINTER TO STACK FRAME
          SA7    GTPB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    GTPC        SAVE STATIC LINK 
          BX6    X1 
          SA6    GTPD        SAVE POINTER TO *VARNAME*
          BX6    X2 
          SA6    GTPG        SAVE POINTER TO *OFFSET* 
          BX6    X3 
          SA6    GTPH        SAVE POINTER TO *ROW*
          SA1    GTPD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFGETP$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    GTPA        GET POINTER TO STACK FRAME 
          SA3    GTPB        GET STACK LIMIT
          SA4    GTPC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 GTPA     VFD    60/0        POINTER TO STACK FRAME 
 GTPB     VFD    60/0        STACK LIMIT
 GTPC     VFD    60/0        STATIC LIMIT 
  
*         PARAMETER BLOCK FOR SYMPL PROCEDURE CALL. 
  
 GTPD     VFD    60/0        ADDRESS OF *VARNAME* 
 GTPE     VFD    60/GTPI
 GTPF     VFD    60/GTPJ
 GTPG     VFD    60/0        ADDRESS OF *OFFSET*
 GTPH     VFD    60/0        ADDRESS OF *ROW* 
  
 GTPI     VFD    60/7        *VLEN* 
 GTPJ     VFD    60/0        *VOFF* 
  
          END 
          IDENT  CSFGETR
          ENTRY  CSFGETR
          SYSCOM B1 
          TITLE  CSFGETR - *CYBIL* INTERFACE TO *SFGETR$*.
*COMMENT  CSFGETR - *CYBIL* INTERFACE TO *SFGETR$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GTR      SPACE  4,10 
***       CSFGETR - *COMPASS* INTERFACE TO *SFGETR$* CALL.
* 
*         M. L. SWANSON.     84/05/16.
 GTR      SPACE  4,10 
***       *CSFGETR* PROVIDES AN INTERFACE TO *SFGETR$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFGETR$*. 
 GTR      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 GTR      SPACE  4,10 
***       CSFGETR - *CYBIL* INTERFACE TO *SFGETR$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFGETR(FIELDNAME,VALUE); 
* 
*                FIELDNAME = FIELD NAME OF THE PANEL VARIABLE.
*                VALUE = REAL VALUE TO BE RETURNED. 
 GTR      SPACE  4,10 
**        CSFGETR - *COMPASS* INTERFACE TO *SFGETR$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *FIELDNAME*
*                X2   POINTER TO *VALUE*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFGETR$. 
  
  
 CSFGETR  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    GTRA        SAVE POINTER TO STACK FRAME
          SA7    GTRB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    GTRC        SAVE STATIC LINK 
  
*         THIS IS IF FIELDNAME IS PASSED CALL-BY-ADDRESS. 
  
          BX6    X1 
          SA6    GTRD        SAVE *VARNAME* 
          BX6    X2 
          SA6    GTRG        SAVE *VALUE* 
          SA1    GTRD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFGETR$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    GTRA        GET POINTER TO STACK FRAME 
          SA3    GTRB        GET STACK LIMIT
          SA4    GTRC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
GTRA      VFD    60/0        POINTER TO STACK FRAME 
GTRB      VFD    60/0        STACK LIMIT
GTRC      VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
GTRD      VFD    60/0        ADDRESS OF *VARNAME* 
GTRE      VFD    60/GTRH
GTRF      VFD    60/GTRI
GTRG      VFD    60/0        ADDRESS OF *VALUE* 
  
GTRH      VFD    60/7        *VLEN* 
GTRI      VFD    60/0        *VOFF* 
  
          END 
          IDENT  CSFOPEN
          ENTRY  CSFOPEN
          SYSCOM B1 
          TITLE  CSFOPEN - *CYBIL* INTERFACE TO *SFOPEN$*.
*COMMENT  CSFOPEN - *CYBIL* INTERFACE TO *SFOPEN$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 OPN      SPACE  4,10 
***       CSFOPEN - *COMPASS* INTERFACE TO *SFOPEN$* CALL.
* 
*         M. L. SWANSON.     84/04/17.
 OPN      SPACE  4,10 
***       *CSFOPEN* PROVIDES AN INTERFACE TO *SFOPEN$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFOPEN$*. 
 OPN      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 OPN      SPACE  4,10 
***       CSFOPEN - *CYBIL* INTERFACE TO *SFOPEN$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFOPEN(PANELNAME, STATUS); 
* 
*                PANELNAME = NAME OF PANEL TO BE OPENED.
*                STATUS = VARIABLE INDICATING RESULTS OF ATTEMPT
*                         TO OPEN A PANEL.  NON-ZERO STATUS 
*                         INDICATES PANEL COULD NOT BE OPENED.
 OPN      SPACE  4,10 
**        CSFOPEN - *COMPASS* INTERFACE TO *SFOPEN$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *PANELNAME*
*                X2   POINTER TO *STATUS* 
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFOPEN$. 
  
  
 CSFOPEN  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    OPNA        SAVE POINTER TO STACK FRAME
          SA7    OPNB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    OPNC        SAVE STATIC LINK 
          BX6    X1 
  
*         *PANELNAME* IS PASSED CALL-BY-ADDRESS.
  
          SA6    OPND        SAVE *PANELNAME* 
          BX6    X2 
          SA6    OPNG        SAVE *STATUS*
  
*         SET TO ASCII8 CHARACTER SET.
  
          SA1    OPNJ        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFCSET$
  
          SA1    OPND        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFOPEN$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    OPNA        GET POINTER TO STACK FRAME 
          SA3    OPNB        GET STACK LIMIT
          SA4    OPNC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 OPNA     VFD    60/0        POINTER TO STACK FRAME 
 OPNB     VFD    60/0        STACK LIMIT
 OPNC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 OPND     VFD    60/0        ADDRESS OF *PANELNAME* PARAMETER 
 OPNE     VFD    60/OPNH     ADDRESS OF *NLENGTH* PARAMETER 
 OPNF     VFD    60/OPNI     ADDRESS OF *NOFFSET* PARAMETER 
 OPNG     VFD    60/0        ADDRESS OF *STATUS* PARAMETER
  
 OPNH     VFD    60/7        *NLENGTH*
 OPNI     VFD    60/0        *NOFFSET*
  
*         HARD CODE CHARACTER SET FOR *CYBIL*.
  
 OPNJ     VFD    60/OPNM     FWA OF PARAMETER LIST
 OPNK     VFD    60/OPNN
 OPNL     VFD    60/OPNO
  
 OPNM     VFD    60/6HASCII8  CHARACTER SET BLANK FILLED
 OPNN     VFD    60/6        *CLENGTH*
 OPNO     VFD    60/0        *COFFSET*
  
          END 
          IDENT  CSFPOSR
          ENTRY  CSFPOSR
          SYSCOM B1 
          TITLE  CSFPOSR - *CYBIL* INTERFACE TO *SFPOSR$*.
*COMMENT  CSFPOSR - *CYBIL* INTERFACE TO *SFPOSR$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 PSR      SPACE  4,10 
***       CSFPOSR - COMPASS INTERFACE TO *SFPOSR$* CALL.
* 
*         M. L. SWANSON.     84/05/30.
 PSR      SPACE  4,10 
***       *CSFPOSR* PROVIDES AN INTERFACE TO *SFPOSR$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFPOSR$*. 
 PSR      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 PSR      SPACE  4,10 
***       CSFPOSR - *CYBIL* INTERFACE TO *SFPOSR$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFPOSR(TABLENAME,ROW); 
* 
*                TABLENAME = ACTIVE PANEL TABLE NAME. 
*                ROW = THE ROW NUMBER OF THE VARIABLE FIELD.
 PSR      SPACE  4,10 
**        CSFPOSR - COMPASS INTERFACE TO *SFPOSR$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *TABLENAME*
*                X2   POINTER TO *ROW*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFPOSR$. 
  
  
 CSFPOSR  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    PSRA        SAVE POINTER TO STACK FRAME
          SA7    PSRB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    PSRC        SAVE STATIC LINK 
          BX6    X1 
          SA6    PSRD        SAVE FIRST PARAMETER 
          BX6    X2 
          SA6    PSRJ        SAVE SECOND PARAMETER
          SA1    PSRD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFPOSR$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    PSRA        GET POINTER TO STACK FRAME 
          SA3    PSRB        GET STACK LIMIT
          SA4    PSRC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
PSRA      VFD    60/0        POINTER TO CALLER'S STACK FRAME
PSRB      VFD    60/0        STACK LIMIT
PSRC      VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR SYMPL PROCEDURE CALL. 
  
PSRD      VFD    60/0        ADDRESS OF *TABLENAME* 
PSRE      VFD    60/PSRH     ADDRESS OF *TLEN*
PSRF      VFD    60/PSRI     ADDRESS OF *TOFF*
PSRG      VFD    60/PSRJ     ADDRESS OF *ROWNUMBER* 
  
PSRH      VFD    60/7        *TLEN* 
PSRI      VFD    60/0        *TOFF* 
PSRJ      VFD    60/0        *ROWNUMBER*
  
          END 
          IDENT  CSFSETP
          ENTRY  CSFSETP
          SYSCOM B1 
          TITLE  CSFSETP - *CYBIL* INTERFACE TO *SFSETP$*.
*COMMENT  CSFSETP - *CYBIL* INTERFACE TO *SFSETP$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 STP      SPACE  4,10 
***       CSFSETP - *COMPASS* INTERFACE TO *SFSETP$* CALL.
* 
*         M. L. SWANSON.     84/05/30.
 STP      SPACE  4,10 
***       *CSFSETP* PROVIDES AN INTERFACE TO *SFSETP$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFSETP$*. 
 STP      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 STP      SPACE  4,10 
***       CSFSETP - *CYBIL* INTERFACE TO *SFSETP$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFSETP(FIELDNAME,INDEX,ROW); 
* 
*                FIELDNAME = NAME OF FIELD. 
*                INDEX = CHARACTER POSITION WITHIN THE VARIABLE FIELD.
*                ROW = THE ROW NUMBER OF THE VARIABLE FIELD.
 STP      SPACE  4,10 
**        CSFSETP - *COMPASS* INTERFACE TO *SFSETP$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *FIELDNAME*
*                X2   POINTER TO *INDEX*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4.
* 
*         CALLS  SFSETP$. 
  
  
 CSFSETP  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    STPA        SAVE POINTER TO STACK FRAME
          SA7    STPB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    STPC        SAVE STATIC LINK 
          BX6    X1 
          SA6    STPD        SAVE *FIELDNAME* 
          BX6    X2 
          SA6    STPK        SAVE *INDEX* 
          BX6    X3 
          SA6    STPL        SAVE *ROW* 
          SA1    STPD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFSETP$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    STPA        GET POINTER TO STACK FRAME 
          SA3    STPB        GET STACK LIMIT
          SA4    STPC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 STPA     VFD    60/0        POINTER TO STACK FRAME 
 STPB     VFD    60/0        STACK LIMIT
 STPC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR SYMPL PROCEDURE CALL. 
  
 STPD     VFD    60/0        ADDRESS OF *VARNAME* 
 STPE     VFD    60/STPI     ADDRESS OF *VLEN*
 STPF     VFD    60/STPJ     ADDRESS OF *VOFF*
 STPG     VFD    60/STPK     ADDRESS OF *OFFSET*
 STPH     VFD    60/STPL     ADDRESS OF *ROW* 
  
 STPI     VFD    60/7        *VLEN* PARAMETER 
 STPJ     VFD    60/0        *VOFF* PARAMETER 
 STPK     VFD    60/0        *OFFSET* PARAMETER 
 STPL     VFD    60/0        *ROW* PARAMETER
  
          END 
          IDENT  CSFSREA
          ENTRY  CSFSREA
          SYSCOM B1 
          TITLE  CSFSREA - *CYBIL* INTERFACE TO *SFSREA$*.
*COMMENT  CSFSREA - *CYBIL* INTERFACE TO *SFSREA$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REA      SPACE  4,10 
***       CSFSREA - *COMPASS* INTERFACE TO *SFSREA$* CALL.
* 
*         M. L. SWANSON.     84/05/30.
 REA      SPACE  4,10 
***       *CSFSREA* PROVIDES AN INTERFACE TO *SFSREA$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFSREA$*. 
 REA      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 REA      SPACE  4,10 
***       CSFSREA - *CYBIL* INTERFACE TO *SFSREA$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFSREA(PANELNAME,INSTRING);
* 
*                PANELNAME = PANEL TO BE USED FOR INPUT.
*                INSTRING = VARIABLE TO WHICH DATA IS RETURNED. 
 REA      SPACE  4,10 
**        CSFSREA - *COMPASS* INTERFACE TO *SFSREA$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *PANELNAME*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4, 5. 
* 
*         CALLS  SFSREA$. 
  
  
 CSFSREA  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    REAA        SAVE POINTER TO STACK FRAME
          SA7    REAB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    REAC        SAVE STATIC LINK 
          BX6    X1 
          SA6    READ        SAVE POINTER TO *PANELNAME*
          SA2    B5 
          SX6    X2 
          SA6    REAG        SAVE POINTER TO *INSTRING* 
          MX4    56          SET UP MASK FOR OFFSET 
          LX4    18          POSITION MASK
          BX6    -X4*X2 
          LX6    -18
          SA6    REAL        SAVE OFFSET IN *INSOFF*
          SX6    B5+B1
          SA6    REAH        SAVE ADDRESS OF *INSLEN* 
          SA1    READ        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFSREA$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    REAA        GET POINTER TO STACK FRAME 
          SA3    REAB        GET STACK LIMIT
          SA4    REAC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 REAA     VFD    60/0        POINTER TO STACK FRAME 
 REAB     VFD    60/0        STACK LIMIT
 REAC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 READ     VFD    60/0        ADDRESS OF *PANELNAME* 
 REAE     VFD    60/REAJ     ADDRESS OF *PANLEN*
 REAF     VFD    60/REAK     ADDRESS OF *PANOFF*
 REAG     VFD    60/0        ADDRESS OF *INSTRING*
 REAH     VFD    60/0        ADDRESS OF *INSLEN*
 REAI     VFD    60/REAL     ADDRESS OF *INSOFF*
  
 REAJ     VFD    60/7        *PANLEN* 
 REAK     VFD    60/0        *PANOFF* 
 REAL     VFD    60/0        *INSOFF* 
  
          END 
          IDENT  CSFSSHO
          ENTRY  CSFSSHO
          SYSCOM B1 
          TITLE  CSFSSHO - *CYBIL* INTERFACE TO *SFSSHO$*.
*COMMENT  CSFSSHO - *CYBIL* INTERFACE TO *SFSSHO$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SHO      SPACE  4,10 
***       CSFSSHO - *COMPASS* INTERFACE TO *SFSSHO$* CALL.
* 
*         M. L. SWANSON.     84/05/16.
 SHO      SPACE  4,10 
***       *CSFSSHO* PROVIDES AN INTERFACE TO *SFSSHO$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFSSHO$*. 
 SHO      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 SHO      SPACE  4,10 
***       CSFSSHO - *CYBIL* INTERFACE TO *SFSSHO$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFSSHO(PANELNAME,OUTSTRING,INSTRING);
* 
*                PANELNAME = NAME OF THE PANEL. 
*                OUTSTRING = HOLDS VARIABLE FIELD CONTENTS
*                            PRIOR TO MODIFICATION BY USER. 
*                INSTRING = HOLDS VARIABLE FIELD CONTENTS 
*                           AFTER MODIFICATION BY USER. 
 SHO      SPACE  4,10 
**        CSFSSHO - *COMPASS* INTERFACE TO *SFSSHO$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *PANELNAME*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4, 5. 
* 
*         CALLS  SFSSHO$. 
  
  
 CSFSSHO  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    SHOA        SAVE POINTER TO STACK FRAME
          SA7    SHOB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    SHOC        SAVE STATIC LINK 
          BX6    X1 
          SA6    SHOD        SAVE POINTER TO *PANELNAME*
          SA2    B5 
          SX6    X2 
          SA6    SHOG        SAVE POINTER TO *OUTSTRING*
          MX4    56          SET UP MASK FOR OFFSET 
          LX4    18          POSITION MASK
          BX6    -X4*X2 
          LX6    -18
          SA6    SHOO        SAVE OFFSET IN *OOFF*
          SX6    B5+B1
          SA6    SHOH        SAVE ADDRESS OF *OLEN* 
          SA2    X6+B1
          SX6    X2 
          SA6    SHOJ        SAVE POINTER TO *INSTRING* 
          MX4    56          SET UP MASK FOR OFFSET 
          LX4    18          POSITION MASK
          BX6    -X4*X2 
          LX6    -18
          SA6    SHOP        SAVE OFFSET IN *INSOFF*
          SX6    A2+B1
          SA6    SHOK        SAVE ADDRESS OF *INSLEN* 
          SA1    SHOD        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFSSHO$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    SHOA        GET POINTER TO STACK FRAME 
          SA3    SHOB        GET STACK LIMIT
          SA4    SHOC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 SHOA     VFD    60/0        POINTER TO STACK FRAME 
 SHOB     VFD    60/0        STACK LIMIT
 SHOC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 SHOD     VFD    60/0        ADDRESS OF *PANELNAME* 
 SHOE     VFD    60/SHOM     ADDRESS OF *PANLEN*
 SHOF     VFD    60/SHON     ADDRESS OF *PANOFF*
 SHOG     VFD    60/0        ADDRESS OF *OUTSTRING* 
 SHOH     VFD    60/0        ADDRESS OF *OLEN*
 SHOI     VFD    60/SHOO     ADDRESS OF *OOFF*
 SHOJ     VFD    60/0        ADDRESS OF *INSTRING*
 SHOK     VFD    60/0        ADDRESS OF *INSLEN*
 SHOL     VFD    60/SHOP     ADDRESS OF *INSOFF*
  
 SHOM     VFD    60/7        *PANLEN* 
 SHON     VFD    60/0        *PANOFF* 
 SHOO     VFD    60/0        *OOFF* 
 SHOP     VFD    60/0        *INSOFF* 
  
          END 
          IDENT  CSFSWRI
          ENTRY  CSFSWRI
          SYSCOM B1 
          TITLE  CSFSWRI - *CYBIL* INTERFACE TO *SFSWRI$*.
*COMMENT  CSFSWRI - *CYBIL* INTERFACE TO *SFSWRI$*
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRI      SPACE  4,10 
***       CSFSWRI - *COMPASS* INTERFACE TO *SFSWRI$* CALL.
* 
*         M. L. SWANSON.     84/05/30.
 WRI      SPACE  4,10 
***       *CSFSWRI* PROVIDES AN INTERFACE TO *SFSWRI$* BY 
*         SAVING THE *CYBIL* STACK DISCIPLINE VARIABLES AND 
*         REFORMATTING THE PARAMETER LIST FOR THE CALL TO THE 
*         SYMPL ROUTINE, *SFSWRI$*. 
 WRI      SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMFCID 
 WRI      SPACE  4,10 
***       CSFSWRI - *CYBIL* INTERFACE TO *SFSWRI$*. 
* 
*         CALLING SEQUENCE. 
*         *CYBIL* CALL -
* 
*         CSFSWRI(PANELNAME,OUTSTRING); 
* 
*                PANELNAME = PANEL TO BE USED FOR INPUT.
*                OUTSTRING = VARIABLE TO WHICH DATA IS RETURNED.
 WRI      SPACE  4,10 
**        CSFSWRI - *COMPASS* INTERFACE TO *SFSWRI$* CALL.
* 
*         ENTRY  CONDITIONS 
*                B1   1 
*                B2   POINTER TO CALLER'S STACK FRAME 
*                B3   STACK LIMIT 
*                B4   STATIC LINK 
*                X1   POINTER TO *PANELNAME*
*                B5   POINTER TO ARGUMENT EXTENSION LIST
*                X7   PROCEDURE LINKAGE WORD (RETURN ADDRESS) 
* 
*         EXIT CONDITIONS 
*                B1   1 
*                B2   AS ON ENTRY 
*                B3   AS ON ENTRY 
*                B4   AS ON ENTRY 
*                X1   AS X7 ON ENTRY
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 3, 4, 6, 7.
*                B - 1, 2, 3, 4, 5. 
* 
*         CALLS  SFSWRI$. 
  
  
 CSFSWRI  ENTR               ENTRY/EXIT 
          SB1    1
          SX6    B2 
          SX7    B3 
          SA6    WRIA        SAVE POINTER TO STACK FRAME
          SA7    WRIB        SAVE STACK LIMIT 
          SX6    B4 
          SA6    WRIC        SAVE STATIC LINK 
          BX6    X1 
          SA6    WRID        SAVE POINTER TO *PANELNAME*
          SA2    B5 
          SX6    X2 
          SA6    WRIG        SAVE POINTER TO *OUTSTRING*
          MX4    56          SET UP MASK FOR OFFSET 
          LX4    18          POSITION MASK
          BX6    -X4*X2 
          LX6    -18
          SA6    WRIL        SAVE OFFSET IN *SOFFSET* 
          SX6    B5+B1
          SA6    WRIH        SAVE POINTER TO *SLENGTH*
  
          SA1    WRID        GET FIRST WORD ADDRESS OF PARAMETER LIST 
          RJ     =XSFSWRI$
  
*         RESTORE REGISTERS.
  
          SB1    1           RESTORE B1 AFTER *SYMPL* ERROR 
          SA2    WRIA        GET POINTER TO STACK FRAME 
          SA3    WRIB        GET STACK LIMIT
          SA4    WRIC        GET STATIC LINK
          SB2    X2          RETURN IN B2 
          SB3    X3          RETURN IN B3 
          SB4    X4          RETURN IN B4 
          DONE               RETURN 
  
 WRIA     VFD    60/0        POINTER TO STACK FRAME 
 WRIB     VFD    60/0        STACK LIMIT
 WRIC     VFD    60/0        STATIC LINK
  
*         PARAMETER BLOCK FOR *SYMPL* PROCEDURE CALL. 
  
 WRID     VFD    60/0        ADDRESS OF *PANELNAME* 
 WRIE     VFD    60/WRIJ     ADDRESS OF *PANLEN*
 WRIF     VFD    60/WRIK     ADDRESS OF *PANOFF*
 WRIG     VFD    60/0        ADDRESS OF *OUTSTRING* 
 WRIH     VFD    60/0        ADDRESS OF *SLENGTH* 
 WRII     VFD    60/WRIL     ADDRESS OF *SOFFSET* 
  
 WRIJ     VFD    60/7        *PANLEN* 
 WRIK     VFD    60/0        *PANOFF* 
 WRIL     VFD    60/0        *SOFFSET*
  
          END 
  
          IDENT  LCP
          ENTRY  LCP
          ENTRY  SFSLIB 
          ENTRY  UCP
          SYSCOM B1 
          TITLE  LCP - LOAD CAPSULE.
*COMMENT  LCP - LOAD CAPSULE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 LCP      SPACE  4,10 
***       LCP - LOAD CAPSULE. 
* 
*         S.D. PAINTER       83/04/25.
 LCP      SPACE  4,10 
***       *LCP* INTERFACES BETWEEN THE FAST DYNAMIC LOADER AND
*         THE SCREEN FORMATTING OBJECT ROUTINES TO LOAD PANELS
*         STORED AS CAPSULES. 
 LCP      SPACE  4,10 
***       CALLING SEQUENCE. 
* 
*         *SYMPL* CALL -
* 
*         LCP(PANELNAME,PANELADDR,STATUS) 
* 
*                PANELNAME = PANEL TO BE LOADED.
*                PANELADDR = RETURNS ADDRESS WHERE LOADED.
*                STATUS    = RETURNS STATUS.
 LCP      SPACE  4,10 
**        LCP - LOAD CAPSULE. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADDRESS OF FIRST PARAMETER. 
* 
*         USES   A - 1, 2, 3, 4, 6, 7.
*                X - 0, 1, 2, 3, 4, 7.
* 
*         CALLS  =XFDL.LDC, ZFN.
  
  
LCP       SUBR               ENTRY/EXIT 
          RJ     ZFN         ZERO FILL NAME PARAMETER 
          SA6    LCPC        PUT NAME INTO LIST FOR FDL CALL
          SA6    LCPG        PUT NAME INTO ENTRY POINT LIST 
          SA1    LCPB        SET PARMETERS FOR FDL CALL 
          SA2    A1+B1       SET CAPSULE NAME 
          SA3    A2+B1       SET LIBRARY LIST ADDRESS 
          SA4    A3+B1       SET ENTRY POINT LIST ADDRESS 
          RJ     =XFDL.LDC   LOAD CAPSULE 
          SA1    LCPA        GET ADDRESS OF SYMPL PARAMTERS 
          SA1    X1+B1       GET ADDRESS OF VARIABLE PANELADDR
          SA2    A1+B1       GET ADDRESS OF VARIABLE LOADSTAT 
          SA3    LCPG        MASK ENTRY POINT ADDRESS OUT OF LIST 
          MX0    -18
          BX7    -X0*X3 
          SA7    X1          PUT ENTRY POINT ADDRESS INTO PANELADDR 
          SA6    X2          PUT LOAD STATUS INTO LOADSTAT
          EQ     LCPX        RETURN 
  
  
LCPA      VFD    60/0          ADDRESS OF LIST OF SYMPL PARAM. ADDR.
LCPB      VFD    60/0LSFPANEL  GROUPNAME
LCPC      VFD    60/0          CAPSULE (PANEL) NAME 
          VFD    42/0,18/LCPD  ADDRESS OF LIBRARY LIST
          VFD    42/0,18/LCPE  ADDRESS OF LIST OF ENTRY POINT ADDR. 
  
LCPD      VFD    60/0LPANELIB  LIST OF LIBRARIES
          VFD    60/0          END OF LIST
  
LCPE      VFD    42/0,18/LCPF  LIST OF ADDRESSES OF ENTRY POINT LISTS 
          VFD    60/0          END OF LIST
  
LCPF      VFD    24/00210001B  HEADER WORD OF ENTRY POINT LIST
          VFD    36/0 
LCPG      VFD    60/0          ENTRY POINT NAME AND ADDRESS 
  
  
          TITLE  SFSLIB - SPECIFY LIBRARY FOR PANEL CAPSULES. 
***       SFSLIB - SPECIFY LIBRARY FOR PANEL CAPSULES.
* 
*         R.E. DUNBAR.       88/04/06.
 SLI      SPACE  4,10 
***       *SFSLIB* PROVIDES A MEANS TO CHANGE THE PANEL LIBRARY FOR 
*         PROGRAMS WRITTEN IN HIGHER LEVEL LANGUAGES. 
 SLI      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL SFSLIB(LIBNAME)
* 
*         *COBOL5* CALL - 
* 
*         ENTER SFSLIB USING LIBNAME. 
* 
*                LIBNAME   = LFN OF PANEL LIBRARY.
 SLI      SPACE  4,10 
**        SFSLIB - SPECIFY LIBRARY FOR PANEL CAPSULES.
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*                (X1) = ADRESS OF FIRST PARAMETER.
* 
*         EXIT   NEW LIBRARY NAME SAVED IN *LCPD*.
* 
*         USES   A - 6. 
* 
*         CALLS  ZFN. 
  
  
 SFSLIB   SUBR               ENTRY/EXIT 
          RJ     ZFN         ZERO FILL NAME PARAMETER 
          SA6    LCPD        SAVE NEW LIBRARY NAME
          EQ     SFSLIBX     EXIT 
  
          TITLE  UCP - UNLOAD CAPSULE.
***       UCP - UNLOAD CAPSULE. 
* 
*         S.D. PAINTER       83/04/25.
 UCP      SPACE  4,10 
***       *UCP* INTERFACES BETWEEN THE FAST DYNAMIC UNLOADER AND
*         THE SCREEN FORMATTING OBJECT ROUTINES TO UNLOAD PANELS
*         STORED AS CAPSULES. 
 UCP      SPACE  4,10 
***       CALLING SEQUENCE. 
* 
*         *SYMPL* CALL -
* 
*         UCP(PANELNAME,PANELADDR,STATUS) 
* 
*                PANELNAME = PANEL TO BE UNLOADED.
*                PANELADDR = ADDRESS OF PANEL.
*                STATUS    = RETURNS STATUS.
 UCP      SPACE  4,10 
**        UCP - UNLOAD CAPSULE. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST. 
*             Y  (X1) = ADRESS OF FIRST PARAMETER.
* 
*         USES   A - 1, 2, 4, 6.
*                B - 1, 2.
*                X - 0, 1, 2, 4, 6. 
* 
*         CALLS  =XFDL.ULC, ZFN.
  
  
UCP       SUBR
          SA4    A1+B1       GET ADDRESS OF PANEL ADDRESS 
          SA4    X4          GET PANEL ADDRESS
          MX0    42          MASK OUT SEVEN CHARACTER NAME
          BX4    -X0*X4      MASK OUT EIGHTEEN BIT ADDRESS
          RJ     ZFN         ZERO FILL NAME PARAMETER 
          SA6    LCPC        PUT NAME INTO LIST FOR FDL CALL
          BX6    X6+X4       PUT NAME/ADDRESS INTO ENTRY POINT LIST 
          SA6    LCPG 
          SA1    LCPB        SET PARMETERS FOR FDL CALL 
          SA2    A1+B1       SET CAPSULE NAME 
          SA4    A2+2        SET ENTRY POINT LIST ADDRESS 
          RJ     =XFDL.ULC   UNLOAD CAPSULE 
          SA1    LCPA        GET ADDRESS OF SYMPL PARAMTERS 
          SA1    X1+2        GET ADDRESS OF VARIABLE UNLOADSTAT 
          SA6    X1          PUT UNLOAD STATUS INTO UNLOADSTAT
          EQ     UCPX        RETURN 
          TITLE  ZFN - ZERO FILL NAME PARAMETER.
***       ZFN - ZERO FILL NAME PARAMETER. 
* 
*         R.E. DUNBAR.       88/04/06.
 ZFN      SPACE  4,10 
**        *ZFN* ZERO FILLS A PANEL OR LIBRARY NAME PARAMETER. 
* 
*         ENTRY  (A1) = FWA OF FORMAL PARAMETER LIST OF CALLER. 
*                (X1) = ADDRESS OF PARAMETER TO BE ZERO FILLED. 
* 
*         USES   A - 1, 6.
*                B - 1, 2.
*                X - 0, 1, 2, 3, 6. 
  
  
 ZFN      SUBR               ENTRY/EXIT 
          SB1    1
          SX6    A1          SAVE ADDRESS OF PARAMETERS 
          SA6    LCPA 
          SA1    X1          GET NAME PARAMATER 
          MX0    42          MASK OUT SEVEN CHARACTER NAME
          BX6    X0*X1
          MX0    -6          MASK OFF BLANK FILL
          SB2    6           AT LEAST ONE NON-BLANK CHARACTER 
          LX6    6           START AT SECOND CHARACTER
ZFN1      LX6    6           PROCESS NEXT CHARACTER 
          BX2    -X0*X6      CHECK FOR BLANK CHARACTER
          SX3    X2-1R
          NZ     X3,ZFN2     IF NOT BLANK 
          BX6    X0*X6       MASK OFF BLANK CHARACTER 
ZFN2      SB2    B2-B1
          NZ     B2,ZFN1     IF NOT DONE
          LX6    18          REPOSITION NAME
          EQ     ZFNX        RETURN 
  
          END 
  
          IDENT  ABORT
          ENTRY  ABORT
          SYSCOM B1 
          TITLE  ABORT - ABORT JOB. 
*COMMENT  ABORT - ABORT JOB.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ABORT    SPACE  4,10 
***       ABORT - ABORT JOB.
* 
*         R.E. DUNBAR        89/06/07.
 ABORT    SPACE  4,10 
***       *ABORT* PROVIDES *SFLIB* WITH A MEANS TO ABORT THE JOB
*         FOR PROGRAMS WRITTEN IN HIGHER LEVEL LANGUAGES. 
 ABORT    SPACE  4,10 
***       CALLING SEQUENCE. 
* 
*         *FORTRAN5* CALL - 
* 
*         CALL ABORT
* 
*         *COBOL5* CALL - 
* 
*         ENTER ABORT.
* 
*         *SYMPL* CALL -
* 
*         ABORT;
* 
 ABORT    SPACE  4,10 
**        ABORT - ABORT JOB.
* 
*         USES   B - 1. 
* 
*         MACROS ABORT. 
  
  
 ABORT    SUBR               ENTRY/EXIT 
          SB1    1
          ABORT 
  
          END 
  
          IDENT  PLT
          ENTRY  PLT
          SYSCOM B1 
          TITLE  PLT - PANEL LOAD TABLE.
*COMMENT  PLT - PANEL LOAD TABLE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 PLT      SPACE  4,10 
***       PLT - PANEL LOAD TABLE. 
* 
*         S.D. PAINTER       83/04/25.
 PLT      SPACE  4,10 
***       *PLT* IS THE STORAGE AREA FOR THE PANEL LOAD TABLE
*         USED BY THE SCREEN FORMATTING OBJECT ROUTINES TO
*         STORE NAMES AND ADDRESSES OF PANELS.
 PLT      SPACE  4,15 
***       CALLING SEQUENCE. 
* 
*         NONE. 
 PLT      SPACE  4,10 
**        PLT - PANEL LOAD TABLE. 
* 
  
PLT       VFD    48/0        RESERVED 
          VFD    12/10       MAXIMUM NUMBER OF CAPSULES 
          VFD    48/0        RESERVED 
          VFD    12/0        NUMBER OF CAPSULES PRESENT 
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          VFD    60/0        CAPSULE NAME 
          VFD    60/0        CAPSULE ADDRESS
          END 
          IDENT  GFP
          ENTRY  GFP
          SYSCOM B1 
          TITLE  GFP - GENERATE FLOATING POINT VALUE. 
*COMMENT  GFP - GENERATE FLOATING POINT VALUE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GFP      SPACE  4,10 
***       GFP - GENERATE FLOATING POINT VALUE.
* 
*         J. R. WARHOL.      84/01/03.
 GFP      SPACE  4,10 
***       *GFP* GENERATES A FLOATING POINT VALUE GIVEN AN INTEGER 
*         AND A SCALE FACTOR (EXPONENT).
 DATA     SPACE  4,10 
**        DATA DEFINITIONS. 
  
  
 VALADDR  BSS    1           ADDRESS TO RECEIVE FLOATING POINT VALUE
 SFCT     SPACE  4,10 
**        SFCT - SCALE FACTOR CONSTANT TABLE. 
  
  
 SFCT     BSS    0
          CON    03355134732416677076B   5**-325  UPPER 
          CON    01756003050311261572B  10**-256  UPPER 
          CON    05224437760335652043B  10**-192  UPPER 
          CON    10466735010637062274B  10**-128  UPPER 
          CON    13735207775211722471B  10** -64  UPPER 
          CON    0
          CON    22456047403722377717B  10**  64  UPPER 
          CON    25724473510762300351B  10** 128  UPPER 
          CON    31167007036743234447B  10** 192  UPPER 
          CON    30435247735376716771B   5** 256  UPPER 
  
          CON    02554430410147521675B   5**-325  LOWER 
          CON    01150623477244210525B  10**-256  LOWER 
          CON    04426300317330603243B  10**-192  LOWER 
          CON    07667112025437131766B  10**-128  LOWER 
          CON    13137232247710714327B  10** -64  LOWER 
          CON    0
          CON    21655155247457665561B  10**  64  LOWER 
          CON    25124315770633631554B  10** 128  LOWER 
          CON    30362526520556761123B  10** 192  LOWER 
          CON    27636750673556710033B   5** 256  LOWER 
          TITLE  MAIN SUBROUTINE. 
 GFP      SPACE  4,10 
***       CALLING SEQUENCE. 
* 
*         *SYMPL* CALL -
* 
*         CONVSTATUS = GFP(ASSEMBLY,SCALE,RESULT) 
* 
*                ASSEMBLY   = INTEGER ASSEMBLY. 
*                SCALE      = SCALE FACTOR OF 10 FOR VALUE. 
*                RESULT     = REAL VARIABLE TO RECEIVE RESULT.
*                CONVSTATUS = CONVERSION STATUS - 0 IF NO ERRORS. 
 GFP      SPACE  4,15 
**        GFP - GENERATE FLOATING POINT VALUE.
* 
*         ENTRY  (A1) = FWA OF PARAMETER BLOCK. 
*                (X1) = ADDRESS OF POSITIVE INTEGER ASSEMBLY. 
*                ((A1)+1) = ADDRESS OF SCALE FACTOR.
*                ((A1)+2) = ADDRESS TO RECEIVE FLOATING POINT VALUE.
* 
*         EXIT   (X6) = 0 IF NO CONVERSION ERRORS.
*                     .NE. 0 IF CONVERSION ERRORS.
* 
*         USES   X - 1, 3, 4, 6, 7. 
*                A - 1, 3, 4, 7.
*                B - 2, 3.
* 
*         CALLS  ACR, CID, FSV, GSC, M1D, M2D, PGF. 
  
  
 GFP      SUBR               ENTRY/EXIT 
          SB1    1
          RJ     PGF         PRESET *GFP* 
          RJ     CID         CONVERT INTEGER TO DOUBLE PRECISION
          RJ     GSC         GET SCALING CONSTANT 
          SX7    B0          IN CASE OF UNDERFLOW 
          NG     X6,GFP6     IF UNDERFLOW 
          NZ     X6,GFP7     IF OVERFLOW
          ZR     X4,GFP2     IF NO LARGE SCALING CONSTANT NEEDED
 GFP1     SA3    A4+10       LEAST SIGNIFICANT BITS OF SCALING CONSTANT 
          RJ     M2D         PERFORM DOUBLE PRECISION MULTIPLY
 GFP2     SB2    20 
          LT     B3,B2,GFP4  IF NO NEED TO MULTIPLY BY 1E20 
          SA4    GFPA+20     1E20 
  
*         MULTIPLY BY SINGLE PRECISION SCALE CONSTANT.
  
 GFP3     RJ     M1D         PERFORM SINGLE PRECISION MULTIPLY
          SB3    B3-B2
          GE     B3,B2,GFP3  IF STILL NEED TO MULTIPLY BY 1E20
 GFP4     ZR     B3,GFP5     IF NO MORE SCALING NEEDED
          SA4    GFPA+B3     GET SMALLER SCALING CONSTANT 
          RJ     M1D         FINAL SCALING
  
*         CONVERT REAL VALUE TO SINGLE PRECISION. 
  
 GFP5     RJ     FSV         FORM SINGLE PRECISION VALUE
          RJ     ACR         ADJUST VALUE AND CHECK FOR RANGE ERROR 
          NZ     X6,GFP7     IF OVERFLOW
  
*         EXIT WITHOUT ERRORS.  (X7) = VALUE. 
  
 GFP6     SA1    VALADDR     SAVE VALUE 
          SA7    X1 
          SX6    B0          EXIT STATUS
          EQ     GFP         RETURN 
  
*         EXIT HERE WITH ERRORS.
  
 GFP7     SX6    B1          ERROR STATUS 
          EQ     GFPX        RETURN 
  
  
 GFPA     BSS    0           POSITIVE POWERS OF 10
          CON    1.0E0
          CON    1.0E1
          CON    1.0E2
          CON    1.0E3
          CON    1.0E4
          CON    1.0E5
          CON    1.0E6
          CON    1.0E7
          CON    1.0E8
          CON    1.0E9
          CON    1.0E10 
          CON    1.0E11 
          CON    1.0E12 
          CON    1.0E13 
          CON    1.0E14 
          CON    1.0E15 
          CON    1.0E16 
          CON    1.0E17 
          CON    1.0E18 
          CON    1.0E19 
          CON    1.0E20 
          TITLE  SECONDARY SUBROUTINES. 
 ACR      SPACE  4,15 
**        ACR - ADJUST VALUE AND CHECK FOR RANGE ERROR. 
* 
*         ENTRY  (B7) = EXPONENT OFFSET.
*                (X7) = UNADJUSTED FLOATING POINT VALUE.
* 
*         EXIT   (X6) = 0 IF NO OVERFLOW. 
*                (X7) = ADJUSTED FLOATING POINT VALUE.
* 
*         USES   X - 6, 7.
*                A - NONE.
*                B - 2, 3.
  
  
 ACR      SUBR               ENTRY/EXIT 
          ZR     B7,ACR4     IF NO RANGE CHECK NEEDED 
          UX7,B2 X7 
          SB2    B2+B7       ADJUST EXPONENT UP OR DOWN 
          PL     B7,ACR2     IF CHANCE OF OVERFLOW
          SB3    -1777B 
          GE     B2,B3,ACR3  IF EXPONENT IS NOT TOO SMALL 
          SX7    B0          UNDERFLOW
          EQ     ACR4        EXIT 
  
 ACR2     SB3    1777B       ADJUST EXPONENT UPWARD 
          GT     B2,B3,ACR5  IF OVERFLOW
  
*         PACK CORRECT EXPONENT.
  
 ACR3     PX7    B2          PACK ADJUSTED EXPONENT 
  
*         NORMAL EXIT - NO OVERFLOW.
  
 ACR4     SX6    B0          EXIT STATUS
          EQ     ACRX        RETURN 
  
*         OVERFLOW HAS OCCURRED.
  
 ACR5     SX6    B1          ERROR STATUS 
          EQ     ACRX        RETURN 
 CBE      SPACE  4,15 
**        CBE - CHECK FOR BIG EXPONENT. 
* 
*         ENTRY  (B3) = ORIGINAL SCALE FACTOR.
* 
*         EXIT   (X6) = 0 IF NO ERRORS. 
*                     .GT. 0 IF OVERFLOW. 
*                (X4) = SCALING CONSTANT, MOST SIGNIFICANT BITS.
*                (A4) = ADDRESS OF SCALING CONSTANT.
*                (B3) = ADJUSTED SCALE FACTOR.
*                (B7) = SCALE OFFSET. 
* 
*         USES   X - 4, 6.
*                A - 4. 
*                B - 2, 3, 7. 
  
  
 CBE      SUBR               ENTRY/EXIT 
          SB2    256
          LT     B3,B2,CBE1  IF SCALE FACTOR .LT. 1E256 (NOT BIG) 
          SB2    324
          GE     B3,B2,CBE2  IF OVERFLOW
          SA4    SFCT+9      MULTIPLY BY 5E256
          SB7    256         SCALE OFFSET 
          SB3    B3-B7       ADJUSTED SCALE FACTOR
 CBE1     SX6    B0          EXIT STATUS
          EQ     CBEX        RETURN 
  
*         OVERFLOW HAS OCCURRED.
  
 CBE2     SX6    B1          OVERFLOW STATUS
          EQ     CBEX        RETURN 
 CID      SPACE  4,10 
**        CID - CONVERT LONG INTEGER TO DOUBLE PRECISION VALUE. 
* 
*         ENTRY  (X1) = INTEGER ASSEMBLY.  (UP TO 59 BITS). 
* 
*         EXIT   (X0) = DP REAL, MOST SIGNIFICANT BITS. 
*                (X1) = DP REAL, LEAST SIGNIFICANT BITS.
* 
*         USES   X - 0, 1, 4, 7.
*                A - NONE.
*                B - 2. 
  
  
 CID      SUBR               ENTRY/EXIT 
          MX7    -18
          BX4    -X7*X1      LOW 18 BITS
          BX0    X1 
          AX0    60-18       SIGN EXTEND UPPER 42 BITS
          BX0    X7*X0       EXTRACT SIGN EXTENDED UPPER 42 BITS
          BX4    X4+X0       MERGE SIGN EXTENSION BITS WITH FIELD 
          SB2    18 
          PX4 
          AX1    18          LOW MIDDLE 37 BITS 
          PX1    B2 
          NX4 
          NX1 
          FX0    X1+X4       UPPER HALF 
          DX1    X1+X4       LOWER HALF 
          EQ     CIDX        RETURN 
 CSC      SPACE  4,15 
**        CSC - COMPUTE SCALING CONSTANT. 
* 
*         ENTRY  (B3) = SCALE FACTOR. 
* 
*         EXIT   (B3) = ADJUSTED SCALE FACTOR.
*                (X4) = SCALING CONSTANT, MOST SIGNIFICANT BITS.
*                (X4) = 0 IF NO LARGE SCALING CONSTANT IS TO BE USED. 
*                (A4) = ADDRESS OF SCALING CONSTANT.
* 
*         USES   X - 3, 4.
*                A - 4. 
*                B - 3. 
  
  
 CSC      SUBR               ENTRY/EXIT 
          SX3    B3+320 
          AX3    6           EXP/64+4 
          SA4    SFCT+X3
          ZR     X4,CSCX     IF EXPONENT IS 0 TO 64 
          BX3    -X3
          SB3    B3+320 
          LX3    6
          SB3    B3+X3
          EQ     CSCX        RETURN 
 CSE      SPACE  4,15 
**        CSE - CHECK FOR SMALL EXPONENT. 
* 
*         ENTRY  (B3) = ORIGINAL SCALE FACTOR.
* 
*         EXIT   (X6) = 0 IF NO ERRORS. 
*                (X6) .LT. 0 IF UNDERFLOW.
*                (X4) = SCALING CONSTANT, MOST SIGNIFICANT BITS.
*                (A4) = ADDRESS OF SCALING CONSTANT.
*                (B3) = ADJUSTED SCALE FACTOR.
*                (B7) = SCALE OFFSET. 
* 
*         USES   X - 4, 6.
*                A - 4. 
*                B - 2, 3, 7. 
  
  
 CSE      SUBR               ENTRY/EXIT 
          SB2    -256 
          GT     B3,B2,CSE1  IF SCALE FACTOR .GT. 1E-256 (NOT SMALL)
          SB2    -325 
          LT     B3,B2,CSE2  IF UNDERFLOW 
          SA4    SFCT        MULTIPLY BY 5E-325 
          SB7    -325        SCALE OFFSET 
          SB3    B3-B7       ADJUSTED SCALE FACTOR
 CSE1     SX6    B0          EXIT STATUS
          EQ     CSEX        RETURN 
  
*         UNDERFLOW HAS OCCURRED. 
  
 CSE2     SX6    -1          UNDERFLOW STATUS 
          EQ     CSEX        RETURN 
 FSV      SPACE  4,10 
**        FSV - FORM SINGLE PRECISION VALUE.
* 
*         ENTRY  (X0) = DP REAL, MOST SIGNIFICANT BITS. 
*                (X1) = DP REAL, LEAST SIGNIFICANT BITS.
* 
*         EXIT   (X7) = SINGLE PRECISION REAL VALUE.
* 
*         USES   X - 0, 4, 7. 
*                A - NONE.
*                B - NONE.
  
  
 FSV      SUBR               ENTRY/EXIT 
          DX4    X0+X1
          FX0    X0+X1
          RX7    X0+X4
          EQ     FSVX        RETURN 
 GSC      SPACE  4,15 
**        GSC - GET SCALING CONSTANT. 
* 
*         ENTRY  (B3) = ORIGINAL SCALE FACTOR.
* 
*         EXIT   (X6) = 0 IF NO ERRORS. 
*                (X6) .GT. 0 IF OVERFLOW. 
*                (X6) .LT. 0 IF UNDERFLOW.
*                (X4) = SCALING CONSTANT, MOST SIGNIFICANT BITS.
*                (X4) = 0 IF NO LARGE SCALING CONSTANT IS TO BE USED. 
*                (A4) = ADDRESS OF SCALING CONSTANT.
*                (B3) = ADJUSTED SCALE FACTOR.
*                (B7) = SCALE OFFSET OR 0 IF NONE.
* 
*         USES   X - 6. 
*                A - NONE.
*                B - 7. 
* 
*         CALLS  CBE, CSC, CSE. 
  
  
 GSC      SUBR               ENTRY/EXIT 
          SB7    B0          DEFAULT OFFSET 
          RJ     CBE         CHECK FOR BIG EXPONENT 
          NZ     X6,GSCX     IF OVERFLOW
          RJ     CSE         CHECK FOR SMALL EXPONENT 
          NZ     X6,GSCX     IF UNDERFLOW 
          NZ     B7,GSCX     IF BIG OR SMALL EXPONENT 
          RJ     CSC         COMPUTE SCALING CONSTANT 
          SX6    B0          EXIT STATUS
          EQ     GSCX        RETURN 
 M1D      SPACE  4,10 
**        M1D - MULTIPLY SINGLE PRECISION BY DOUBLE PRECISION NUMBER. 
* 
*         ENTRY  (X4) = SINGLE PRECISION VALUE. 
*                (X0) = DP NUMBER, MOST SIGNIFICANT BITS. 
*                (X1) = DP NUMBER, LEAST SIGNIFICANT BITS.
* 
*         USES   X - 0, 1, 2, 3.
*                A - NONE.
*                B - NONE.
  
  
 M1D      SUBR               ENTRY/EXIT 
          FX3    X1*X4       (AL*B)U
          FX1    X0*X4       (AU*B)U
          DX0    X0*X4       (AU*B)L
          FX3    X3+X0       ((AL*B)U+(AU*B)L)U 
          FX0    X3+X1       ((AL*B)U+(AU*B)L+(AU*B)U)U 
          DX1    X3+X1       ((AL*B)U+(AU*B)L+(AU*B)U)L 
          EQ     M1DX        RETURN 
 M2D      SPACE  4,15 
**        M2D - MULTIPLY TWO DOUBLE PRECISION NUMBERS.
* 
*         ENTRY  (X4) = FIRST NUMBER, MOST SIGNIFICANT BITS.
*                (X3) = FIRST NUMBER, LEAST SIGNIFICANT BITS. 
*                (X0) = SECOND NUMBER, MOST SIGNIFICANT BITS. 
*                (X1) = SECOND NUMBER, LEAST SIGNIFICANT BITS.
* 
*         EXIT   (X0) = RESULT, MOST SIGNIFICANT BITS.
*                (X1) = RESULT, MOST SIGNIFICANT BITS.
* 
*         USES   X - 0, 1, 2, 3, 4, 6.
*                A - NONE.
*                B - NONE.
  
  
 M2D      SUBR               ENTRY/EXIT 
          FX2    X3*X0       (AL*BU)U 
          FX1    X4*X1       (AU*BL)U 
          FX3    X4*X0       (AU*BU)U 
          FX2    X2+X1       ((AL*BU)U+(AU*BL)U)U 
          DX0    X4*X0       (AU*BU)L 
          FX1    X2+X0       (((AL*BU)+(AU*BL))U+(AU*BU)L)U 
          FX0    X1+X3       (((AL*BU)+(AU*BL))U+(AU*BU)L+(AU*BU)U)U
          DX1    X1+X3       (((AL*BU)+(AU*BL))U+(AU*BU)L+(AU*BU)U)L
          EQ     M2DX        RETURN 
 PGF      SPACE  4,15 
**        PGF - PRESET *GFP*. 
* 
*         ENTRY  (A1) = FWA OF PARAMETER BLOCK. 
*                (X1) = ADDRESS OF INTEGER ASSEMBLY.
*                ((A1)+1) = ADDRESS OF SCALE FACTOR.
*                ((A1)+2) = ADDRESS TO RECEIVE FLOATING POINT VALUE.
* 
*         EXIT   (B3) = SCALE FACTOR. 
*                (X1) = INTEGER ASSEMBLY. 
*                (VALADDR) = ADDRESS FOR FLOATING POINT VALUE.
* 
*         USES   X - 1, 2, 3, 6.
*                A - 1, 2, 3, 6.
*                B - 3. 
  
  
 PGF      SUBR               ENTRY/EXIT 
          SA2    A1+B1       SAVE SCALE FACTOR
          SA3    X2 
          SB3    X3 
          SA2    A2+B1       SAVE ADDRESS FOR FLOATING POINT VALUE
          BX6    X2 
          SA6    VALADDR
          SA1    X1          INTEGER ASSEMBLY 
          EQ     PGFX        RETURN 
          END 
