MAC1
          IDENT  MACREL 
          SYSCOM B1 
          ENTRY  MACREL.
          ENTRY  MACREL=
          TITLE  MACREL - SYSTEM MACRO INTERFACE ROUTINES.
*COMMENT  SYSTEM MACRO INTERFACE ROUTINES.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MACREL   SPACE  4,10 
**        MACREL - SYSTEM MACRO INTERFACE ROUTINES. 
* 
*         T. R. RAMSEY.      76/08/08.
*         M. D. PICKARD      77/03/14.
*         J. D. BRANHAM.     78/09/12.
* 
 MACREL   SPACE  4,10 
**               *MACREL* IS A COLLECTION OF RELOCATABLE MODULES THAT 
*         PROVIDE THE INTERFACE BETWEEN HIGHER LEVEL LANGUAGE MODULES 
*         AND THE SYSTEM MACROS.
* 
*         *FORTRAN* CALLING SEQUENCES ARE SHOWN IN EACH MODULE ALONG
*         WITH OTHER PERTINENT INFORMATION, E.G., ENTRY, EXIT.
* 
*         ALSO *SYMPL* CALLING SEQUENCES ARE SHOWN IN EACH MODULE 
*         ALONG WITH THE APPROPRIATE *SYMPL* DATA TYPES NEEDED
*         FOR ENTRY/EXIT. 
          TITLE  MACREL - SYSTEM MACRO INTERFACE ROUTINES.
 MACREL   SPACE  4,10 
**               *MACREL* MODULES TRANSLATE PARAMETERS IN HIGHER LEVEL
*         LANGUAGE CALLING SEQUENCES INTO MACRO CALLING SEQUENCES.
*         *FORTRAN* CALLING SEQUENCES MENTIONED ARE EQUIVALENT TO 
*         COBOL (ENTER USING), *SYMPL*, ETC.
* 
*         ENTRY  *FORTRAN* CALL AND FUNCTION REFERENCE CALLING
*                SEQUENCES USE THE ACTUAL PARAMETER LIST, CALL BY 
*                REFERENCE CALLING SEQUENCE WHERE - 
*                 (A1)      = FWA OF PARAMETER ADDRESS LIST.
*                ((A1))     = FIRST PARAMETER 
*                ((A1+1))   = SECOND PARAMETER
*                  .          . 
*                  .          . 
*                  .          . 
*                ((A1+N))   = N-TH PARAMETER
*                ((A1+N+1)) = 0 (ZERO)  (NOMINALLY) 
*                 (X1)      = FIRST PARAMETER 
* 
*         EXIT   (X6) = FUNCTION RESULT.
*                (X7) = SECOND WORD OF TWO WORD RESULT, E.G., COMPLEX.
* 
*         NEEDS  EACH MODULE CONTAINS A CALL TO A MACRO WHOSE NAME IS 
*                THE SAME AS THE MODULE (EXCEPT WHERE NOTED).  THESE
*                MACROS ARE DEFINED IN *PSSTEXT* AND *NOSTEXT*. 
* 
*         NOTE   B1 IS SET TO ONE UPON ENTRY TO EACH MODULE 
* 
*         OTHER  *MACREL* IS A COLLECTION OF RELOCATABLE MODULES
*                COMBINED INTO ONE *MODIFY* DECK ENTITY NAMED *LIB*.
 MACREL.  SPACE  4,10 
**        MACREL. - UNDEFINED MACRO PROCESSOR.
* 
*         ENTRY  (X1) = MACRO NAME IN 0L FORMAT.
* 
*         USES   X - 6. 
*                A - 6. 
*                B - 1. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 MACREL.  SUBR               ENTRY/EXIT 
          SB1    1
          BX6    X1 
          SA6    MACA+3 
          MESSAGE  MACA,LOCAL,R 
          ABORT 
  
 MACA     DATA   C* MACREL - UNDEFINED MACRO -   FILL-IN.*
 MACREL=  SPACE  4,10 
**        MACREL= - ILLEGAL ARGUMENT PROCESSOR. 
* 
*         ENTRY  (X1) = MACRO NAME IN 0L FORMAT.
*                (X2) = THE ILLEGAL ARGUMENT. 
* 
*         USES   X - 0, 1, 2, 6.
*                A - 6. 
*                B - 1. 
* 
*         CALLS  SFW. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 MACREL=  SUBR               ENTRY/EXIT 
          SB1    1
          BX0    X2          SAVE SECOND ARGUMENT 
          LX1    -6 
          SX2    1R-
          BX1    X1+X2
          RJ     =XSFW
          BX1    X0 
          SA6    MACB 
          RJ     =XSFW
          SA6    MACB+3 
          MESSAGE  MACB,LOCAL,R 
          ABORT 
  
 MACB     DATA   C* FILL-IN - ILLEGAL ARGUMENT  >FILL-IT-IN<.*
  
          END 
          IDENT  ABEND
          ENTRY  ABORT
          ENTRY  ENDRUN 
          SYSCOM B1 
          TITLE  ABORT - ABORT JOB  /  ENDRUN - END CENTRAL PROGRAM.
*COMMENT   ABORT/ENDRUN.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ABORT    SPACE  4,10 
***       ABORT - ABORT JOB.
* 
*         CALL ABORT
* 
*         ABORT;  (*SYMPL* CALL)
* 
*         USES   B - 1. 
* 
*         MACROS ABORT. 
  
  
 ABORT    SUBR               ENTRY/EXIT 
          SB1    1
          ABORT 
 ENDRUN   SPACE  4,10 
***       ENDRUN - END CENTRAL PROGRAM. 
* 
*         CALL ENDRUN.
* 
*         ENDRUN;            (*SYMPL* CALL) 
* 
*         USES   B - 1. 
* 
*         NOTE - A *STOP;* IN *SYMPL* DOES THE SAME THING.
  
  
 ENDRUN   SUBR               ENTRY/EXIT 
          SB1    1
          ENDRUN
  
          END 
          IDENT  BKSP 
          ENTRY  BKSP 
          SYSCOM B1 
          TITLE  BKSP - BACKSPACE 1 LOGICAL RECORD. 
*COMMENT   BACKSPACE 1 LOGICAL RECORD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 BKSP     SPACE  4,10 
***       BKSP - BACKSPACE 1 LOGICAL RECORD.
* 
*         CALL BKSP (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         BKSP(FILE,R);      ( *SYMPL* CALL ) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS BKSP.
  
  
 BKSP     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF RECALL
          SA2    X2          RECALL VALUE 
          NZ     X2,BKS1     IF RECALL
          BKSP   X1 
          EQ     BKSPX
  
 BKS1     BKSP   X1,R 
          EQ     BKSPX
  
          END 
          IDENT  BKSPRU 
          ENTRY  BKSPRU 
          SYSCOM B1 
          TITLE  BKSPRU - BACKSPACE PHYSICAL RECORDS. 
*COMMENT   BACKSPACE PHYSICAL RECORDS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 BKSPRU   SPACE  4,10 
***       BKSPRU - BACKSPACE PHYSICAL RECORDS.
* 
*         CALL BKSPRU (FILE,N,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (N) = NUMBER OF RECORDS. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         BKSPRU(FILE,N,R);  (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (N) = AN ITEM CONTAINING THE NUMBER OF PRU*S TO
*                      BACKSPACE
*                (R) = RECALL,IF .NE. 0, RECALL IS REQUESTED. 
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS BKSPRU.
* 
  
  
 BKSPRU   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF N 
          SA2    A3+B1       GET RECALL PARAMETER 
          SA3    X3          N
          SA2    X2 
          NZ     X2,BKP1     IF RECALL REQUESTED
          BKSPRU X1,X3
          EQ     BKSPRUX
  
 BKP1     BKSPRU X1,X3,R
          EQ     BKSPRUX
  
          END 
          IDENT  CHECKPT
          ENTRY  CHECKPT
          SYSCOM B1 
          TITLE  CHECKPT - TAKE CHECKPOINT DUMP.
*COMMENT   TAKE CHECKPOINT DUMP.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CHECKPT  SPACE  4,10 
***       CHECKPT - TAKE CHECKPOINT DUMP. 
* 
*         CALL CHECKPT (LIST,OPTION)
* 
*         ENTRY  (LIST) = LIST OF FILE PROCESSING SPECIFICATIONS. 
*                (OPTION) = 0, PROCESS ALL FILES. 
*                         = OTHER, PROCESS ONLY THE SPECIFIED FILES.
* 
*         CHECKPT(LIST,OPTION);   (*SYMPL* CALL)
* 
*         ENTRY   LIST, AN ARRAY THAT CONTAINS A LIST OF FILE 
*                 PROCESSING SPECIFICATIONS.
*                 OPTION, AN ITEM THAT CONTAINS THE OPTION. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS CHECKPT. 
  
  
 CHECKPT  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA2    X2          OPTION 
          ZR     X2,CHE1     IF ALL FILES TO BE PROCESSED 
          CHECKPT X1,OPTION 
          EQ     CHECKPTX 
  
 CHE1     CHECKPT X1
          EQ     CHECKPTX 
  
          END 
          IDENT  CLOCK
          ENTRY  CLOCK
          SYSCOM B1 
          TITLE  CLOCK - OBTAIN TIME OF DAY.
*COMMENT   OBTAIN TIME OF DAY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CLOCK    SPACE  4,10 
***       CLOCK - OBTAIN TIME OF DAY. 
* 
*         CALL CLOCK (STATUS) 
* 
*         EXIT   (STATUS) = TIME OF DAY.
*T        60/ * HH.MM.SS.*
* 
*         CLOCK(STATUS);  (*SYMPL* CALL)
* 
*         EXIT   STATUS, A CHARACTER ITEM THAT WILL CONTAIN THE 
*                CLOCK READING. 
* 
*         USES   X - 1, 5, 6. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS CLOCK. 
  
  
 CLOCK    SUBR               ENTRY/EXIT 
          SB1    1
          BX5    X1 
          CLOCK  X1 
          SA1    X5 
          BX6    X1          RETURN TIME OF DAY AS FUNCTION RESULT
          EQ     CLOCKX 
  
          END 
          IDENT  CLOSE
          ENTRY  CLOSE
          SYSCOM B1 
          TITLE  CLOSE - CLOSE FILE.
*COMMENT   CLOSE FILE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CLOSE    SPACE  4,10 
***       CLOSE - CLOSE FILE. 
* 
*         CALL CLOSE (FILE,OPTION,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (OPTION) = 0, CLOSE WITH REWIND. 
*                         = 2HNR, CLOSE WITHOUT REWIND. 
*                         = 6HRETURN, CLOSE WITH REWIND, RETURN.
*                         = 6HREWIND, CLOSE WITH REWIND.
*                         = 6HUNLOAD, CLOSE WITH REWIND, UNLOAD.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         CLOSE(FILE,OPTION,R); (*SYMPL* CALL)
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
*                 OPTION, AN ITEM CONTAINING ONE OF THE FOLLOWING 
*                         CHARACTER STRINGS, LEFT JUSTIFIED, BLANK
*                         FILL, OR A BINARY 0.
*                            NR  (NO REWIND). 
*                            RETURN.
*                            REWIND (SAME AS 0).
*                            UNLOAD.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EXIT   TO ARGUMENT-ERROR PROCESSOR IF OPTION IS UNRECOGNIZED. 
* 
*         USES   X - 2, 3, 4. 
*                A - 2, 3, 4. 
*                B - 1. 
* 
*         CALLS MACREL. 
* 
*         MACROS CLOSE. 
  
  
 CLOSE    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA3    A2+B1       GET ADDRESS OF RECALL PARAMETER
          SA2    X2          OPTION 
          SA3    X3          RECALL OPTION
          ZR     X2,CLO1     IF REWIND
          NO
          SA4    =0HNR
          BX4    X2-X4
          ZR     X4,CLO2     IF NR
          SA4    =0HRETURN
          BX4    X2-X4
          ZR     X4,CLO6     IF RETURN
          SA4    =0HREWIND
          BX4    X2-X4
          ZR     X4,CLO1     IF REWIND
          SA4    =0HUNLOAD
          BX4    X2-X4
          ZR     X4,CLO8     IF UNLOAD
          SA1    =0LCLOSE 
          RJ     =XMACREL=   DIAGNOSE ILLEGAL ARGUMENT
          EQ     CLOSEX 
  
 CLO1     NZ     X3,CLO5     IF RECALL
          CLOSE  X1 
          EQ     CLOSEX 
  
 CLO2     NZ     X3,CLO6     IF RECALL
          CLOSE  X1,NR
          EQ     CLOSEX 
  
 CLO3     NZ     X3,CLO7     IF RECALL
          CLOSE  X1,RETURN
          EQ     CLOSEX 
  
 CLO4     NZ     X3,CLO8     IF RECALL
          CLOSE  X1,UNLOAD
          EQ     CLOSEX 
  
 CLO5     CLOSE  X1,,R
          EQ     CLOSEX 
  
 CLO6     CLOSE  X1,NR,R
          EQ     CLOSEX 
  
 CLO7     CLOSE  X1,RETURN,R
          EQ     CLOSEX 
  
 CLO8     CLOSE  X1,UNLOAD,R
          EQ     CLOSEX 
  
          END 
          IDENT  CLOSER 
          ENTRY  CLOSER 
          SYSCOM B1 
          TITLE  CLOSER - CLOSE REEL. 
*COMMENT   CLOSE REEL.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CLOSER   SPACE  4,10 
***       CLOSER - CLOSER REEL. 
* 
*         CALL CLOSER (FILE,OPTION,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (OPTION) = 0, CLOSE WITH REWIND. 
*                         = 2HNR, CLOSE WITHOUT REWIND. 
*                         = 6HREWIND, CLOSE WITH REWIND.
*                         = 6HUNLOAD, CLOSE WITH REWIND, UNLOAD.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         CLOSER(FILE,OPTION,R); (*SYMPL* CALL) 
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
*                 OPTION, AN ITEM THE CONTAINS ONE OF THE FOLLOWING 
*                         CHARACTER STRINGS, LEFT JUSTIFIED, BLANK
*                         FILL, OR A BINARY 0.
*                            NR  (NO REWIND). 
*                            REWIND (SAME AS 0).
*                            UNLOAD.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EXIT   TO ARGUMENT ERROR PROCESSOR IF OPTION IS UNRECOGNIZED. 
* 
*         USES   X - 1, 2, 3, 4.
*                A - 1, 2, 3, 4.
*                B - 1. 
* 
*         CALLS MACREL. 
* 
*         MACROS CLOSER.
  
  
  
 CLOSER   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA3    A2+B1       GET RECALL PARAMETER ADDRESS 
          SA2    X2          OPTION 
          SA3    X3          GET RECALL VALUE 
          ZR     X2,CLO1     IF REWIND
          NO
          SA4    =0HNR
          BX4    X2-X4
          ZR     X4,CLO2     IF NR
          SA4    =0HREWIND
          BX4    X2-X4
          ZR     X4,CLO1     IF REWIND
          SA4    =0HUNLOAD
          BX4    X2-X4
          ZR     X4,CLO3     IF UNLOAD
          SA1    =0LCLOSER
          RJ     =XMACREL=   DIAGNOSE ILLEGAL ARGUMENT
          EQ     CLOSERX
  
 CLO1     NZ     X3,CLO4     IF RECALL
          CLOSER X1 
          EQ     CLOSERX
  
 CLO2     NZ     X3,CLO5     IF RECALL
          CLOSER X1,NR
          EQ     CLOSERX
  
 CLO3     NZ     X3,CLO6     IF RECALL
          CLOSER X1,UNLOAD
          EQ     CLOSERX
  
 CLO4     CLOSER X1,,R
          EQ     CLOSERX
  
 CLO5     CLOSER X1,NR,R
          EQ     CLOSERX
  
 CLO6     CLOSER X1,UNLOAD,R
          EQ     CLOSERX
  
          END 
          IDENT  CONSOLE
          ENTRY  CONSOLE
          SYSCOM B1 
          TITLE  CONSOLE - COMMUNICATE WITH THE *K* AND *L* DISPLAY.
*COMMENT COMMUNICATE WITH THE *K* AND *L* DISPLAY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 CONSOLE  SPACE  4,10 
***       CONSOLE - COMMUNICATE WITH THE *K* AND *L* DISPLAY. 
* 
*         CALL CONSOLE (ADDR) 
* 
*         CONSOLE(ADDR);   (*SYMPL* CALL) 
* 
*         ENTRY  (ADDR) = ADDRESS OF CONSOLE PARAMETER WORD.
*                IF (ADDR) = 0, CONSOLE OPERATIONS ARE TERMINATED.
*T,       6/0,18/IB,18/RB,18/LB 
*                IB = KEYBOARD BUFFER ADDRESS.
*                RB = ADDRESS OF FORMATTED BUFFER FOR RIGHT SCREEN. 
*                LB = ADDRESS OF FORMATTED BUFFER FOR LEFT SCREEN.
* 
*         USES   B - 1. 
* 
*         MACROS CONSOLE. 
  
  
 CONSOLE  BSS    0
 CONSL    SUBR               ENTRY/EXIT 
          SB1    1
          CONSOLE  X1 
          EQ     CONSLX      EXIT 
  
          END 
          IDENT  DATE 
          ENTRY  DATE 
          SYSCOM B1 
          TITLE  DATE - OBTAIN DATE.
*COMMENT   OBTAIN DATE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 DATE     SPACE  4,10 
***       DATE - OBTAIN DATE. 
* 
*         CALL DATE (STATUS)
* 
*         EXIT   (STATUS) = DATE. 
*T        60/ * YY/MM/DD.*
* 
*         DATE(STATUS);  (*SYMPL* CALL) 
* 
*         EXIT   (STATUS), A CHARACTER ITEM CONTAINING THE TIME.
* 
*         USES   X - 1, 5, 6. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS DATE.
  
  
 DATE     SUBR               ENTRY/EXIT 
          SB1    1
          BX5    X1 
          DATE   X1 
          SA1    X5 
          BX6    X1          RETURN DATE AS FUNCTION RESULT 
          EQ     DATEX
  
          END 
          IDENT  EDATE
          ENTRY  EDATE
          SYSCOM B1 
          TITLE  EDATE - EDIT DATE FROM PACKED FORMAT.
*COMMENT   EDIT DATE FROM PACKED FORMAT.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 EDATE    SPACE  4,15 
***       EDATE - EDIT DATE FROM PACKED FORMAT. 
* 
*         STAT = EDATE(PKDT)
* 
*         STAT = EDATE(PKDT);   (*SYMPL* CALL)
* 
*         ENTRY  (PKDT) = PACKED DATE IN LOWER 18 BITS. 
* 
*         EXIT   (X6) = A 10 CHARACTER, DECIMAL DISPLAY,
*                       EDITED DATE IN THE FOLLOWING
*                       FORMAT -
*                                * YY/MM/DD.*.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS EDATE. 
  
  
 EDATE    SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1          GET PACKED DATE
          EDATE  X1 
          EQ     EDATEX      RETURN 
  
*CALL COMCCDD 
*CALL COMCEDT 
  
          END 
          IDENT  ETIME
          ENTRY  ETIME
          SYSCOM B1 
          TITLE  ETIME - EDIT TIME FROM PACKED FORMAT.
*COMMENT   EDIT TIME FROM PACKED FORMAT.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ETIME    SPACE  4,15 
***       ETIME - EDIT TIME FROM PACKED FORMAT. 
* 
*         STAT = ETIME(PKTM)
* 
*         STAT = ETIME(PKTM);   (*SYMPL* CALL)
* 
*         ENTRY  (PKTM) = PACKED TIME IN LOWER 18 BITS. 
* 
*         EXIT   (X6) = A 10 CHARACTER, DECIMAL DISPLAY,
*                       EDITED TIME IN THE FOLLOWING
*                       FORMAT -
*                                * HH.MM.SS.*.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS ETIME. 
  
  
 ETIME    SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1          GET PACKED TIME
          ETIME  X1 
          EQ     ETIMEX      RETURN 
  
*CALL COMCCDD 
*CALL COMCEDT 
  
          END 
          IDENT  EVICT
          ENTRY  EVICT
          SYSCOM B1 
          TITLE  EVICT - RELEASE FILE SPACE.
*COMMENT   RELEASE FILE SPACE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 EVICT    SPACE  4,10 
***       EVICT - RELEASE FILE SPACE. 
* 
*         CALL EVICT (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EVICT(FILE,R);     (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R)=RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS EVICT. 
  
  
 EVICT    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1
          SA2    X2          RECALL VALUE 
          NZ     X2,EVT1     IF RECALL ON 
          EVICT  X1 
          EQ     EVICTX 
  
 EVT1     EVICT  X1,R 
          EQ     EVICTX 
  
          END 
          IDENT  FILINFO
          ENTRY  FILINFO
          SYSCOM B1 
          TITLE  FILINFO - FILE INFORMATION.
  COMMENT 82/11/15.          FILE INFORMATION.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       FILINFO - FILE INFORMATION. 
* 
*         CALL FILINFO(PAR)      *FORTRAN*
* 
*         FILINFO(PAR);          *SYMPL*
* 
*         ENTRY  (PAR) = FIVE WORD PARAMETER BLOCK. 
*                        THE FIRST WORD MUST HAVE THE 
*                        FOLLOWING FORMAT : 
* 
*                        VFD    42/LFN, 6/LEN, 11/0, 1/1
* 
*                        WHERE
* 
*                        LFN   FILE NAME, LEFT JUSTIFIED, 0 FILLED. 
*                        LEN   MUST BE AT LEAST 5 WORDS.
* 
*         EXIT   INFORMATION ABOUT THE FILE IS RETURNED IN THE
*                PARAMETER BLOCK (SEE NOS VERS. 2, VOL. 4). 
* 
*         USE    B - 1. 
* 
*         MACRO  FILINFO. 
  
  
 FILINFO  SUBR               ENTRY/EXIT 
          SB1    1
          FILINFO X1
          EQ     FILINFOX    RETURN 
          END 
          IDENT  GETJN
          ENTRY  GETJN
          SYSCOM 1
          TITLE  GETJN - GET JOB SEQUENCE NUMBER. 
*COMMENT GET JOB SEQUENCE NUMBER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 GETJN    SPACE  4,10 
***       GETJN - GET JOB SEQUENCE NUMBER.
* 
*         CALL GETJN(ADDR)
* 
*         GETJN(ADDR) 
* 
*         ENTRY  (ADDR) = ADDRESS TO RECIEVE JOB SEQUENCE NUMBER. 
* 
*         EXIT   ((ADDR)) = JOB SEQUENCE NUMBER.
* 
*         USES   B - 1. 
* 
*         MACROS GETJN. 
  
  
 GETJN    SUBR               ENTRY/EXIT 
          SB1    1
          GETJN  X1 
          EQ     GETJNX      EXIT 
  
          END 
          IDENT  JDATE
          ENTRY  JDATE
          SYSCOM B1 
          TITLE  JDATE - OBTAIN JULIAN DATE.
*COMMENT   OBTAIN JULIAN DATE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 JDATE    SPACE  4,10 
***       JDATE - OBTAIN JULIAN DATE. 
* 
*         CALL JDATE (STATUS) 
* 
*         EXIT   (STATUS) = JULIAN DATE.
*T        30/ 0,  30/ *YYDDD* 
* 
*         JDATE(STATUS);  (*SYMPL* CALL)
* 
*         EXIT   STATUS, A CHARACTER ITEM TO CONTAIN JULIAN 
*                        DATE ON EXIT.
* 
*         USES   X - 1, 5, 6. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS JDATE. 
  
  
 JDATE    SUBR               ENTRY/EXIT 
          SB1    1
          BX5    X1 
          JDATE  X1 
          SA1    X5 
          BX6    X1          RETURN JULIAN DATE AS FUNCTION RESULT
          EQ     JDATEX 
  
          END 
          IDENT  MACHID 
          ENTRY  MACHID 
          SYSCOM 1
          TITLE  MACHID - GET TWO CHARACTER MACHINE *ID*. 
*COMMENT GET TWO CHARACTER MACHINE *ID*.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MACHID   SPACE  4,10 
***       MACHID - GET TWO CHARACTER MACHINE *ID*.
* 
*         CALL MACHID (ADDR)
* 
*         MACHID(ADDR);   (*SYMPL* CALL)
* 
*         ENTRY  (ADDR) = ADDRESS TO RECEIVE MACHINE *ID*.
* 
*         EXIT   ((ADDR)) = MACHINE *ID*. 
* 
*         USES   B - 1. 
* 
*         MACROS MACHID.
  
  
 MACHID   SUBR               ENTRY/EXIT 
          SB1    1
          MACHID X1 
          EQ     MACHIDX     EXIT 
  
  
          END 
          IDENT  MEMORY 
          ENTRY  MEMORY 
          SYSCOM B1 
          TITLE  MEMORY - REQUEST MEMORY. 
*COMMENT   REQUEST MEMORY.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MEMORY   SPACE  4,10 
***       MEMORY - REQUEST MEMORY.
* 
*         CALL MEMORY(TYPE,STATUS,R,NA) 
* 
*         ENTRY  (TYPE) = 2HCM OR 3HSCM  OR  3HECS OR 3HLCM.
*                (STATUS) = 30/N,30/0  N=AMOUNT REQUESTED.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
*                (NA) = BLANK IF THE PROGRAM IS TO BE ABORTED 
*                       IF THE REQUESTED MEMORY IS NOT AVAILABLE. 
*                       IF NON BLANK AND THE MEMORY IS UNAVAILABLE, 
*                       THE CURRENT FIELD LENGTH IS RETURNED IN 
*                       BITS 59-30 OF *STATUS*. 
* 
*         MEMORY(TYPE,STATUS,R,NA);   (*SYMPL* CALL)
* 
*         ENTRY  TYPE, AN ITEM CONTAINING A *CM* OR *SCM*, LEFT 
*                      JUSTIFIED, BLANK FILLED. 
*                STATUS, AN ITEM CONTAINING THE MEMORY REQUEST
*                        STATUS WORD. 
*                THE FORMAT OF MEMORY REQUEST STATUS WORD IS
*T               30/VALUE, 26/0, 3/RESERVED, 1/COMPLETE BIT.
*                (R)=RECALL, IF .NE. 0, RECALL IS REQUESTED.
*                (NA) = BLANK IF THE PROGRAM IS TO BE ABORTED 
*                       IF THE REQUESTED MEMORY IS NOT AVAILABLE. 
*                       IF NON BLANK AND THE MEMORY IS UNAVAILABLE, 
*                       THE CURRENT FIELD LENGTH IS RETURNED IN 
*                       BITS 59-30 OF *STATUS*. 
* 
*         EXIT   TO ARGUMENT-ERROR PROCESSOR IF OPTION IS UNRECOGNIZED. 
*                IF N = 0, CURRENT AMOUNT ASSIGNED IS RETURNED IN 
*                          BITS 59-30 OF STATUS WORD. 
* 
*         USES   X - 1, 2, 3, 4, 5. 
*                A - 1, 2, 3, 4, 5. 
*                B - 1, 2.
* 
*         CALLS  MACREL.
* 
*         MACROS MEMORY.
  
  
 MEMORY   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    X1          TYPE 
          SA1    A1+B1       ADDRESS OF STATUS WORD 
          SA3    A1+B1       GET RECALL PARAMETER 
          SA5    X3 
          SB2    X5 
          SA5    A3+B1       GET NO ABORT OPTION
          SA3    =0HCM
          SA4    =0HSCM 
          BX3    X2-X3
          BX4    X2-X4
          SA5    X5 
          BX4    X3*X4
          ZR     X4,MEM1     IF CM OR SCM 
          SA3    =0HECS 
          SA4    =0HLCM 
          BX3    X2-X3
          BX4    X2-X4
          BX4    X3*X4
          ZR     X4,MEM2     IF ECS OR LCM
          BX2    X1 
          SA1    =0LMEMORY
          RJ     =XMACREL=   DIAGNOSE ILLEGAL ARGUMENT
          EQ     MEMORYX
  
 MEM1     ZR     B2,MEM3     IF NO RECALL 
          MEMORY CM,X1,R,,X5
          EQ     MEMORYX
  
 MEM2     ZR     B2,MEM4     IF NO RECALL 
          MEMORY ECS,X1,R,,X5 
          EQ     MEMORYX
  
 MEM3     MEMORY CM,X1,,,X5 
          EQ     MEMORYX
  
 MEM4     MEMORY ECS,X1,,,X5
          EQ     MEMORYX
  
          END 
          IDENT  MESSAGE
          ENTRY  MESSAGE
          SYSCOM B1 
          TITLE  MESSAGE - SEND MESSAGE.
*COMMENT   SEND MESSAGE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MESSAGE  SPACE  4,10 
***       MESSAGE - SEND MESSAGE. 
* 
*         CALL MESSAGE (TEXT,OPTION,R)
* 
*         ENTRY  (TEXT) = MESSAGE ARRAY, TERMINATED BY ZERO BYTE
*                (OPTION) = 0, SEND MESSAGE TO SYSTEM DAYFILE,
*                              LOCAL JOB DAYFILE, AND A AND B DISPLAYS. 
*                         = 1, SEND MESSAGE TO LINE 1 OF CONTROL POINT. 
*                         = 2, SEND MESSAGE TO LINE 2 OF CONTROL POINT. 
*                         = 3, SEND MESSAGE TO USER DAYFILE AND LINE
*                              1 OF CONTROL POINT.
*                         = 4, SEND MESSAGE TO ERROR LOG DAYFILE. 
*                         = 5, SEND MESSAGE TO ACCOUNT DAYFILE. 
*                         = 6, SAME AS 0. 
*                         = 7, SAME AS 3. 
*                         = 9, SEND MESSAGE TO BINARY MAINTENANCE LOG.
*                         = 5HLOCAL, SEND MESSAGE TO LOCAL JOB DAYFILE. 
* 
*         MESSAGE(TEXT,OPTION);  (*SYMPL* CALL) 
* 
*         ENTRY   TEXT, AN ARRAY WITH THE TEXT IN IT, OR AN ITEM
*                       WITH TEXT IN IT.
*                 OPTION, AN ITEM CONTAINING ONE OF THE OPTIONS.
* 
*         USES   X - 2, 3, 4. 
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS MESSAGE. 
  
  
 MESSAGE  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA2    X2          OPTION 
          SA3    =0HLOCAL 
          BX4    X2-X3
          ZR     X4,MES1     IF LOCAL 
          MESSAGE  X1,X2,R
          EQ     MESSAGEX 
  
  
 MES1     MESSAGE X1,LOCAL,R
          EQ     MESSAGEX 
  
          END 
          IDENT  MOVE 
          ENTRY  MOVE 
          SYSCOM B1 
          TITLE  MOVE - MOVE BLOCK OF CENTRAL MEMORY WORDS. 
*COMMENT  MOVE BLOCK OF CENTRAL MEMORY WORDS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MOVE     SPACE  4,10 
***       MOVE - MOVE BLOCK OF CENTRAL MEMORY WORDS, DIRECT ADDRESSING. 
* 
*         CALL MOVE (COUNT,FROM,TO) 
* 
*         ENTRY  (COUNT) = COUNT OF WORDS TO MOVE.
*                (FROM) = FIRST WORD OF THE *FROM* BLOCK. 
*                (TO) = FIRST WORD OF THE *TO* BLOCK. 
* 
*         MOVE(COUNT,FROM,TO);  (*SYMPL* CALL)
* 
*         ENTRY  COUNT, AN ITEM THAT CONTAINS THE NUMBER OF WORDS TO
*                       MOVE. 
*                FROM, AN ARRAY TO MOVE FROM. 
*                TO, AN ARRAY TO MOVE TO. 
* 
*         USES   X - 1, 2, 3. 
*                A - 1, 2, 3. 
*                B - 1. 
* 
*         MACROS MOVE.
  
  
 MOVE     SUBR               ENTRY/EXIT 
          SB1    1           (B1) = 1 
          SA2    A1+B1       (X2) = FROM FWA
          SA3    A2+B1       (X3) = TO FWA
          SA1    X1          (X1) = COUNT 
          SX2    X2 
          SX3    X3          CLEAR UPPER BITS 
          SX1    X1 
          MOVE   X1,X2,X3    MOVE DATA
          EQ     MOVEX       RETURN 
  
          END 
          IDENT  MOVEI
          ENTRY  MOVEI
          SYSCOM B1 
          TITLE  MOVEI - MOVE A BLOCK OF CM WORDS.
*COMMENT  MOVE A BLOCK OF CM WORDS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 MOVEI    SPACE  4,10 
***       MOVEI - MOVE BLOCK OF CENTRAL MEMORY WORDS, INDIRECT ADDRESS. 
* 
*         CALL MOVEI (COUNT,LOC(FROM),LOC(TO))
* 
*         ENTRY  (COUNT) = COUNT OF WORDS TO MOVE.
*                (FROM) = FIRST WORD OF THE *FROM* BLOCK. 
*                (TO) = FIRST WORD OF THE *TO* BLOCK. 
*                LOC = LOCATION OF. 
* 
*         MOVEI(COUNT,FROM,TO);  (*SYMPL* CALL) 
* 
*         ENTRY   COUNT, AN ITEM THAT CONTAINS THE NUMBER OF WORDS TO 
*                        MOVE.
*                 FROM, AN ITEM THAT CONTAINS THE ADDRESS OF WHERE TO 
*                       MOVE FROM, OR A LOC OF AN ARRAY.
*                 TO, AN ITEM THAT CONTAINS THE ADDRESS OF WHERE TO 
*                     MOVE TO, OR A LOC OF AN ARRAY.
* 
*         USES   X - 1, 2, 3. 
*                A - 1, 2, 3. 
*                B - 1. 
* 
*         MACROS MOVE.
  
  
 MOVEI    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       (X2) = LOC (FROM FWA)
          SA3    A2+B1       (X3) = LOC (TO FWA)
          SA1    X1          (X1) = COUNT 
          SA2    X2          (X2) = FROM FWA
          SA3    X3          (X3) = TO FWA
          SX1    X1 
          SX2    X2          CLEAR UPPER BITS 
          SX3    X3 
          MOVE   X1,X2,X3    MOVE DATA
          EQ     MOVEIX      RETURN 
  
          END 
          IDENT  OPEN 
          ENTRY  OPEN 
          SYSCOM B1 
          TITLE  OPEN - OPEN FILE FOR PROCESSING. 
*COMMENT   OPEN FILE FOR PROCESSING.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 OPEN     SPACE  4,10 
***       OPEN - OPEN FILE FOR PROCESSING.
* 
*         CALL OPEN (FILE,OPTION,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (OPTION) = 0, SAME AS ALTER. 
*                         = 5HALTER.
*                         = 7HALTERNR.
*                         = 2HNR. 
*                         = 4HREAD. 
*                         = 6HREADNR. 
*                         = 4HREEL. 
*                         = 6HREELNR. 
*                         = 5HWRITE.
*                         = 7HWRITENR.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         OPEN(FILE,OPTION,R);     (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                OPTION, AN ITEM CONTAINING ONE OF THE FOLLOWING
*                        CHARACTER STRINGS, LEFT JUSTIFIED, BLANK 
*                        FILL WITH BINARY 0.
*                            ALTER. 
*                            ALTERNR  (ALTER, NO REWIND). 
*                            NR  (NO REWIND). 
*                            READ.
*                            READNR  (READ, NO REWIND). 
*                            REEL.
*                            REELNR  (REEL, NO REWIND). 
*                            WRITE. 
*                            WRITENR  (WRITE, NO REWIND). 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EXIT   TO ARGUMENT-ERROR PROCESSOR IF OPTION IS UNRECOGNIZED. 
* 
*         USES   X - 1, 2, 3, 4, 5, 6.
*                A - 1, 2, 3, 4, 5. 
*                B - 1. 
* 
*         CALLS  MACREL.
* 
*         MACROS OPEN.
  
  
 OPEN     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       ADDRESS OF OPTION
          SA3    A2+B1       GET ADDRESS OF RECALL PARAMETER
          SA2    X2+         OPTION 
          SA3    X3 
          BX6    X3 
          ZR     X2,OPE1     IF NO OPTION 
          SA3    =0HALTER 
          SA4    =0HALTERNR 
          SA5    =0HNR
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE2     IF ALTER 
          BX5    X2-X5
          ZR     X4,OPE3     IF ALTERNR 
          ZR     X5,OPE4     IF NR
          SA3    =0HREAD
          SA4    =0HREADNR
          SA5    =0HREEL
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE5     IF READ
          BX5    X2-X5
          ZR     X4,OPE6     IF READNR
          ZR     X5,OPE7     IF REEL
          SA3    =0HREELNR
          SA4    =0HWRITE 
          SA5    =0HWRITENR 
          BX3    X2-X3
          BX4    X2-X4
          ZR     X3,OPE8     IF REELNR
          BX5    X2-X5
          ZR     X4,OPE9     IF WRITE 
          ZR     X5,OPE10    IF WRITENR 
          SA1    =0LOPEN
          RJ     =XMACREL=   DIAGNOSE ILLEGAL ARGUMENT
          EQ     OPENX
  
 OPE1     NZ     X6,OPE11    IF RECALL
          OPEN   X1 
          EQ     OPENX
  
 OPE2     NZ     X6,OPE12    IF RECALL
          OPEN   X1,ALTER 
          EQ     OPENX
  
 OPE3     NZ     X6,OPE13    IF RECALL
          OPEN   X1,ALTERNR 
          EQ     OPENX
  
 OPE4     NZ     X6,OPE14    IF RECALL
          OPEN   X1,NR
          EQ     OPENX
  
 OPE5     NZ     X6,OPE15    IF RECALL
          OPEN   X1,READ
          EQ     OPENX
  
 OPE6     NZ     X6,OPE16    IF RECALL
          OPEN   X1,READNR
          EQ     OPENX
  
 OPE7     NZ     X6,OPE17    IF RECALL
          OPEN   X1,REEL
          EQ     OPENX
  
 OPE8     NZ     X6,OPE18    IF RECALL
          OPEN   X1,REELNR
          EQ     OPENX
  
 OPE9     NZ     X6,OPE19    IF RECALL
          OPEN   X1,WRITE 
          EQ     OPENX
  
 OPE10    NZ     X6,OPE20    IF RECALL
          OPEN   X1,WRITENR 
          EQ     OPENX
  
 OPE11    OPEN   X1,,R
          EQ     OPENX
  
 OPE12    OPEN   X1,ALTER,R 
          EQ     OPENX
  
 OPE13    OPEN   X1,ALTERNR,R 
          EQ     OPENX
  
 OPE14    OPEN   X1,NR,R
          EQ     OPENX
  
 OPE15    OPEN   X1,READ,R
          EQ     OPENX
  
 OPE16    OPEN   X1,READNR,R
          EQ     OPENX
  
 OPE17    OPEN   X1,REEL,R
          EQ     OPENX
  
 OPE18    OPEN   X1,REELNR,R
          EQ     OPENX
  
 OPE19    OPEN   X1,WRITE,R 
          EQ     OPENX
  
 OPE20    OPEN   X1,WRITENR,R 
          EQ     OPENX
  
          END 
          IDENT  PDATE
          ENTRY  PDATE
          SYSCOM B1 
          TITLE  PDATE - RETURN PACK DATE AND TIME. 
*COMMENT RETURN PACK DATE AND TIME. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 PDATE    SPACE  4,10 
***       PDATE - RETURN PACK DATE AND TIME.
* 
*         CALL PDATE (STAT) 
* 
*         PDATE(STAT);   (*SYMPL* CALL) 
* 
*         ENTRY  (STAT) = ADDRESS TO RECEIVE THE PACK DATE. 
* 
*         EXIT   (STAT) = 
*T,       24/0,6/YY, 6/MO, 6/DD, 6/HH, 6/MM, 6/SS   (YY = YEAR - 1970)
* 
*         USES   B - 1. 
* 
*         MACROS PDATE. 
  
  
 PDATE    SUBR               ENTRY/EXIT 
          SB1    1
          PDATE  X1 
          EQ     PDATEX      EXIT 
  
          END 
          IDENT  PFD
          ENTRY  PFD
          SYSCOM B1 
          TITLE  PFD - PERMANENT FILE REQUEST DELAYS. 
*COMMENT  MAC1 - PERMANENT FILE REQUEST DELAYS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
  
*CALL COMCMAC 
*CALL COMAPFS 
*CALL COMSPFM 
 PFD      SPACE  4,30 
***       PFD - PERMANENT FILE REQUEST DELAYS.
* 
*         *PFD* IS AN INTERFACE TO THE *PF* ROUTINES IN *CPUREL*. 
*         WHEN THE *PF* ROUTINES ARE CALLED WITH THE USER PROCESSING
*         OPTION SELECTED, SEVERAL ERROR CODES MAY BE RETURNED BY 
*         *PFM* WHICH ARE TEMPORARY CONDITIONS.  *PFD* WILL REISSUE 
*         THE *PF* CALL FOLLOWING A DELAY UNTIL THE REQUEST IS COMPLETE 
*         OR SOME OTHER RESPONSE IS RETURNED FOR THE FOLLOWING ERRORS.
* 
*           * PF UTILITY ACTIVE.* 
*           * INTERLOCK NOT AVAILABLE.* 
*           * FNT FULL.*
*           * PFM EXCESS ACTIVITY.* 
* 
*         *SYMPL* CALL -
* 
*           PFD(REQ,LFN,PFN,KEY(1),OPT(1),...,KEY(N),OPT(N),0); 
* 
*         REFER TO THE *PF* ROUTINE DOCUMENTATION FOR A DESCRIPTION 
*         OF THE PARAMETERS (SEE FTN 5 REFERENCE MANUAL, 60481300). 
* 
*         NOTE - THE STATUS WORD *PFSTAT* DEFINED IN *COMAPFS*
*         MUST BE USED WITH THE *RC* KEYWORD AS THE RETURN CODE 
*         PARAMETER.
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2, 6. 
*                B - 2. 
* 
*         CALLS  PF.
* 
*         MACROS RECALL.
  
  
 PFD      SUBR               ENTRY/EXIT 
          SX6    A1          SAVE PARAMETER LIST ADDRESS
          SA6    PFDA 
          BX6    X6-X6       CLEAR *PF* RETURN CODE 
          SA6    PFSTAT 
 PFD1     RJ     =XPF 
          SA2    PFSTAT      CHECK *PF* RETURN CODE 
          ZR     X2,PFDX     IF NO ERROR
          SB2    X2-/ERRMSG/PFA 
          ZR     B2,PFD2     IF DELAY REQUIRED
          SB2    X2-/ERRMSG/INA 
          ZR     B2,PFD2     IF DELAY REQUIRED
          SB2    X2-/ERRMSG/FTF 
          ZR     B2,PFD2     IF DELAY REQUIRED
          SB2    X2-/ERRMSG/PEA 
          ZR     B2,PFD2     IF DELAY REQUIRED
          EQ     PFDX        RETURN 
  
 PFD2     RECALL
          SA1    PFDA 
          SA1    X1+
          EQ     PFD1        REISSUE *PF* CALL
  
 PFDA     BSS    1           PARAMETER LIST ADDRESS 
  
          END 
          IDENT  POSMF
          ENTRY  POSMF
          SYSCOM B1 
          TITLE  POSMF - POSITION MULTI-FILE SET. 
*COMMENT   POSITION MULTI-FILE SET. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 POSMF    SPACE  4,10 
***       POSMF - POSITION MULTI-FILE SET.
*         LABELED MULTI-FILE MAGNETIC TAPE ONLY.
* 
*         CALL POSMF (MFILNAM,R)
* 
*         ENTRY  (MFILNAM) = FIRST WORD OF THE FET. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         POSMF(MFILNAM,R);     (*SYMPL* CALL)
* 
*         ENTRY   MFILNAM, AN ARRAY THAT CONTAINS THE FET.
*                 (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS POSMF. 
  
  
 POSMF    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,POF1     IF RECALL
          POSMF  X1 
          EQ     POSMFX 
  
 POF1     POSMF  X1,R 
          EQ     POSMFX 
  
          END 
          IDENT  READ 
          ENTRY  READ 
          SYSCOM B1 
          TITLE  READ - READ FILE TO *CIO* BUFFER.
*COMMENT   READ FILE TO *CIO* BUFFER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READ     SPACE  4,10 
***       READ - READ FILE TO *CIO* BUFFER. 
* 
*         CALL READ (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READ(FILE);                 (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL IF .NE. 0, RECALL IS REQUESTED. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS READ.
  
  
 READ     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RED1     IF RECALL
          READ   X1 
          EQ     READX
  
 RED1     READ   X1,R 
          EQ     READX
  
          END 
          IDENT  READC
          ENTRY  READC
          SYSCOM B1 
          TITLE  READC - READ CODED LINE IN *C* FORMAT. 
*COMMENT   READ CODED LINE IN *C* FORMAT. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READC    SPACE  4,10 
***       READC - READ CODED LINE IN *C* FORMAT.
* 
*         CALL READC (FILE,BUF,N,STATUS)
* 
*         TRANSFERS DATA UNTIL THE END OF LINE BYTE (0000) IS SENSED. 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         READC(FILE,BUF,N,STATUS);       (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                BUF, AN ARRAY TO BE USED AS READ BUFFER. 
*                N, AN ITEM THAT CONTAINS THE NUMBER OF WORDS 
*                   IN *BUF*. 
* 
*         EXIT   (STATUS) = 0, TRANSFER COMPLETE. 
*                         = -1, END-OF-FILE DETECTED ON FILE. 
*                         = -2, END-OF-INFORMATION DETECTED ON FILE.
*                         = LWA, END-OF-RECORD DETECTED ON FILE BEFORE
*                                TRANSFER WAS COMPLETE. 
*                     LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO 
*                           WORKING BUFFER. 
* 
*         USES   X - 3, 4, 5, 6.
*                A - 3, 4, 5, 6.
*                B - 1. 
* 
*         MACROS READC. 
  
  
  
 READC    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA5    A4+B1       (X5) = ADDRESS OF STATUS WORD
          SA4    X4          WORD COUNT 
          READC  X1,X3,X4 
          BX6    X1 
          SA6    X5 
          EQ     READCX 
  
          END 
          IDENT  READCW 
          ENTRY  READCW 
          SYSCOM B1 
          TITLE  READCW - READ FILE NON-STOP WITH CONTROL WORDS.
*COMMENT   READ FILE NON-STOP WITH CONTROL WORDS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READCW   SPACE  4,10 
***       READCW - READ FILE NON-STOP WITH CONTROL WORDS. 
* 
*         CALL READCW (FILE,LEVEL,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (LEVEL) = RECORD LEVEL.
*                        = 0, STOP AT END OF INFORMATION. 
*                        = 17B, STOP AT END OF FILE.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READCW(FILE,LEVEL,R);          (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                LEVEL, AN ITEM CONTAINING ONE OF THE FOLLOWING 
*                       VALUES. 
*                            0, STOP AT EOI.
*                            17B, STOP AT EOF.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS READCW.
  
 READCW   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF LEVEL 
          SA2    A3+B1       GET ADDRESS OF RECALL PARAMETER
          SA3    X3          LEVEL
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READCW X1,X3
          EQ     READCWX
  
 RED1     READCW X1,X3,R
          EQ     READCWX     EXIT 
  
          END 
          IDENT  READEI 
          ENTRY  READEI 
          SYSCOM B1 
          TITLE  READEI - READ FILE TO END OF INFORMATION.
*COMMENT   READ FILE TO END OF INFORMATION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READEI   SPACE  4,10 
***       READEI - READ FILE TO END OF INFORMATION. 
* 
*         CALL READEI (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READEI(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS READEI.
  
  
 READEI   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READEI X1 
          EQ     READEIX
  
 RED1     READEI X1,R 
          EQ     READEIX
  
          END 
          IDENT  READH
          ENTRY  READH
          SYSCOM B1 
          TITLE  READH - READ CODED LINE IN *H* FORMAT. 
*COMMENT   READ CODED LINE IN *H* FORMAT. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READH    SPACE  4,10 
***       READH - READ CODED LINE IN *H* FORMAT.
* 
*         CALL READH (FILE,BUF,N,STATUS)
* 
*         TRANSFERS DATA UNTIL THE END OF LINE BYTE (0000) IS SENSED. 
*         FILLS TRAILING SPACES INTO THE WORKING BUFFER.
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         READH(FILE,BUF,N,STATUS);      (*SYMPL* CALL) 
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
*                 BUF, AN ARRAY TO BE USED AS READ BUFFER.
*                 N, AN ITEM THAT CONTAINS THE NUMBER OF WORDS IN BUF.
* 
*         EXIT   (STATUS) = 0, TRANSFER COMPLETE
*                         = -1, END-OF-FILE DETECTED ON FILE. 
*                         = -2, END-OF-INFORMATION DETECTED ON FILE.
*                         = LWA, END-OF-RECORD DETECTED ON FILE BEFORE
*                                TRANSFER WAS COMPLETE. 
*                     LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO 
*                           WORKING BUFFER. 
* 
*         USES   X - 3, 4, 5, 6.
*                A - 3, 4, 5, 6.
*                B - 1. 
* 
*         MACROS READH. 
  
  
 READH    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA5    A4+B1       (X5) = ADDRESS OF STATUS WORD
          SA4    X4          WORD COUNT 
          READH  X1,X3,X4 
          BX6    X1 
          SA6    X5 
          EQ     READHX 
  
          END 
          IDENT  READLS 
          ENTRY  READLS 
          SYSCOM B1 
          TITLE  READLS - READ FILE WITH LIST.
*COMMENT   READ FILE WITH LIST. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READLS   SPACE  4,10 
***       READLS - READ FILE WITH LIST. 
*         MASS STORAGE FILES ONLY.
* 
*         CALL READLS (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READS(FILE,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS READLS.
  
  
 READLS   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READLS X1 
          EQ     READLSX
  
 RED1     READLS X1,R 
          EQ     READLSX
  
          END 
          IDENT  READN
          ENTRY  READN
          TITLE  READN - READ FILE NON-STOP FOR TAPES.
*COMMENT   READ FILE NON-STOP FOR TAPES.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READN    SPACE  4,10 
***       READN - READ FILE NON-STOP FOR TAPES. 
*         MAGNETIC TAPES IN S OR L FORMAT ONLY. 
* 
*         CALL READN (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
* 
*         READN(FILE,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS READN. 
  
  
 READN    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READN  X1 
          EQ     READNX 
  
 RED1     READN  X1,R 
          EQ     READNX 
  
          END 
          IDENT  READNS 
          ENTRY  READNS 
          SYSCOM B1 
          TITLE  READNS - READ FILE NON-STOP (READ TO EOF). 
*COMMENT   READ FILE NON-STOP (READ TO EOF).
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READNS   SPACE  4,10 
***       READNS - READ FILE NON-STOP (READ TO EOF).
* 
*         CALL READNS (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READNS(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL REQUESTED. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS READNS.
  
  
 READNS   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READNS X1 
          EQ     READNSX
  
 RED1     READNS X1,R 
          EQ     READNSX     EXIT 
  
          END 
          IDENT  READO
          ENTRY  READO
          SYSCOM B1 
          TITLE  READO - READ ONE WORD. 
*COMMENT   READ ONE WORD. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READO    SPACE  4,10 
***       READO - READ ONE WORD.
* 
*         CALL READO (FILE,WORD,STATUS) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
* 
*         READO(FILE,WORD,STATUS);        (*SYMPL* CALL)
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
* 
*         EXIT   (WORD) = WORD READ IF (STATUS) = 0.
*                (STATUS) = 0, TRANSFER COMPLETE. 
*                         = -1, END-OF-FILE DETECTED ON FILE. 
*                         = -2, END-OF-INFORMATION DETECTED ON FILE.
*                         = LWA, END-OF-RECORD DETECTED ON FILE BEFORE
*                                TRANSFER WAS COMPLETE. 
*                     LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO 
*                           WORKING BUFFER. 
* 
*         USES   X - 3, 5, 6, 7.
*                A - 3, 5, 6, 7.
*                B - 1. 
* 
*         MACROS READO. 
  
  
 READO    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF WORD
          SA5    A3+B1       (X5) = ADDRESS OF STATUS WORD
          BX0    X3 
          READO  X1 
          SA6    X0          WORD READ
          BX7    X1          STATUS 
          SA7    X5 
          EQ     READOX 
  
          END 
          IDENT  READS
          ENTRY  READS
          SYSCOM B1 
          TITLE  READS - READ CODED LINE TO CHARACTER BUFFER. 
*COMMENT   READ CODED LINE TO CHARACTER BUFFER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READS    SPACE  4,10 
***       READS - READ CODED LINE TO CHARACTER BUFFER.
* 
*         CALL READS (FILE,BUF,N,STATUS)
* 
*         UNPACKS WORDS AND STORES THEM IN THE WORKING BUFFER, ONE
*         CHARACTER/WORD, UNTIL THE END OF LINE BYTE (0000) IS SENSED.
*         FILLS THE WORKING BUFFER WITH SPACE CODES IF THE CODED LINE 
*         TERMINATES BEFORE *N* CHARACTERS ARE STORED.
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         READS(FILE,BUF,N,STATUS);       (*SYMPL* CALL)
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
*                 BUF, AN ARRAY TO BE USED AS READ BUFFER.
*                 N, AN ITEM THAT CONTAINS THE NUMBER OF WORD IN BUF. 
* 
*         EXIT   (STATUS) = 0, TRANSFER COMPLETE
*                         = -1, END-OF-FILE DETECTED ON FILE. 
*                         = -2, END-OF-INFORMATION DETECTED ON FILE.
*                         = LWA, END-OF-RECORD DETECTED ON FILE BEFORE
*                                TRANSFER WAS COMPLETE. 
*                     LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO 
*                           WORKING BUFFER. 
* 
*         USES   X - 3, 4, 5, 6.
*                A - 3, 4, 5, 6.
*                B - 1. 
* 
*         MACROS READS. 
  
  
 READS    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA5    A4+B1       (X5) = ADDRESS OF STATUS WORD
          SA4    X4          WORD COUNT 
          READS  X1,X3,X4 
          BX6    X1 
          SA6    X5 
          EQ     READSX 
  
          END 
          IDENT  READSKP
          ENTRY  READSKP
          SYSCOM B1 
          TITLE  READSKP - READ FILE AND SKIP.
*COMMENT   READ FILE AND SKIP.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READSKP  SPACE  4,10 
***       READSKP - READ FILE AND SKIP. 
* 
*         CALL READSKP (FILE,LEVEL,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (LEVEL) = RECORD LEVEL.
*                        = 0, SKIP TO END OF RECORD.
*                        = 17B, SKIP TO END OF FILE.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         READSKP(FILE,LEVEL,R);         (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                LEVEL, AN ITEM THAT CONTAINS ONE OF THE FOLLOWING
*                       VALUES. 
*                           0, SKIP TO EOR. 
*                           17B, SKIP TO EOF. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS READSKP. 
  
  
  
  
 READSKP  SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF LEVEL 
          SA2    A3+B1       GET ADDRESS OF RECALL PARAMETER
          SA3    X3          LEVEL
          SA2    X2 
          NZ     X2,RED1     IF RECALL REQUESTED
          READSKP  X1,X3
          EQ     READSKPX 
  
 RED1     READSKP  X1,X3,R
          EQ     READSKPX 
  
          END 
          IDENT  READW
          ENTRY  READW
          SYSCOM B1 
          TITLE  READW - READ DATA TO WORKING BUFFER. 
*COMMENT   READ DATA TO WORKING BUFFER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 READW    SPACE  4,10 
***       READW - READ DATA TO WORKING BUFFER.
* 
*         CALL READW (FILE,BUF,N,STATUS)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         EXIT   (STATUS) = 0, TRANSFER COMPLETE. 
*                         = -1, END-OF-FILE DETECTED ON FILE. 
*                         = -2, END-OF-INFORMATION DETECTED ON FILE.
*                         = LWA, END-OF-RECORD DETECTED ON FILE BEFORE
*                                TRANSFER WAS COMPLETE. 
*                     LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO 
*                           WORKING BUFFER. 
* 
*         READW(FILE,BUF,N,STATUS);       (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                BUF, AN ARRAY TO BE USED AS READ BUFFER. 
*                N, AN ITEM THAT CONTAINS THE NUMBER OF WORD IN BUF.
* 
*         EXIT   STATUS, AN ITEM THAT WILL HAVE THE RESPONSE VALUE
*                        PUT IN IT. 
* 
*         USES   X - 3, 4, 5, 6.
*                A - 3, 4, 5, 6.
*                B - 1. 
* 
*         MACROS READW. 
  
  
 READW    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA5    A4+B1       (X5) = ADDRESS OF STATUS WORD
          SA4    X4          WORD COUNT 
          READW  X1,X3,X4 
          BX6    X1 
          SA6    X5 
          EQ     READWX 
  
          END 
          IDENT  RECALL 
          ENTRY  RECALL 
          SYSCOM B1 
          TITLE  RECALL - PLACE PROGRAM IN RECALL STATUS. 
*COMMENT   PLACE PROGRAM IN RECALL STATUS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RECALL   SPACE  4,10 
***       RECALL - PLACE PROGRAM IN RECALL STATUS.
* 
*         CALL RECALL (STATUS)
* 
*         ENTRY  (STATUS) = 0, ONE SYSTEM PERIODIC RECALL IS ISSUED.
*                         = OTHER, PROGRAM IS RECALLED WHEN 
*                                  BIT 0 IS SET.
* 
*         RECALL(STATUS);       (*SYMPL* CALL)
* 
*         ENTRY  STATUS, AN ITEM CONTAINING 0 OR THE ADDRESS
*                OF THE WORD CONTAINING THE COMPLETION BIT. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS RECALL.
  
  
 RECALL   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    X1          STATUS WORD
          ZR     X2,REC1     IF SINGLE RECALL 
          RECALL X1          AUTO-RECALL
          EQ     RECALLX
  
 REC1     RECALL
          EQ     RECALLX
  
          END 
          IDENT  RENAME 
          ENTRY  RENAME 
          SYSCOM B1 
          TITLE  RENAME - RENAME ASSIGNED FILE. 
*COMMENT   RENAME ASSIGNED FILE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RENAME   SPACE  4,10 
***       RENAME - RENAME ASSIGNED FILE.
* 
*         CALL RENAME (FILE,NFN)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (NFN)  = NEW FILE NAME, LEFT JUSTIFIED, ZERO FILLED, 
*                         SEVEN CHARACTER MAXIMUM.
* 
*         RENAME(FILE,NFN);  (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (NFN) = NEW FILE NAME, LEFT JUSTIFIED, ZERO FILLED,
*                        SEVEN CHARACTER MAXIMUM. 
* 
*         USES   X - 2, 6.
*                A - 2, 6.
*                B - 1. 
* 
*         MACROS RENAME.
  
  
 RENAME   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET NEW FILE NAME
          SA2    X2 
          BX6    X2 
          SA6    X1+6        STORE NEW FILE NAME IN FET 
          RENAME X1 
          EQ     RENAMEX     RETURN 
  
          END 
          IDENT  REQUEST
          ENTRY  REQUEST
          SYSCOM B1 
          TITLE  REQUEST - REQUEST ASSIGNMENT OF EQUIPMENT TO FILE. 
*COMMENT   REQUEST ASSIGNMENT OF EQUIPMENT TO FILE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REQUEST  SPACE  4,10 
***       REQUEST - REQUEST ASSIGNMENT OF EQUIPMENT TO FILE.
* 
*         CALL REQUEST (LIST) 
* 
*         ENTRY  SEE *NOS SYSTEM REFERENCE MANUAL*. 
* 
*         REQUEST(LIST);        (*SYMPL* CALL)
* 
*         ENTRY   AN ARRAY CONTAINING A REQUEST LIST, SEE *NOS
*                 REFERENCE MANUAL*.
* 
*         USES   B - 1. 
* 
*         MACROS REQUEST. 
  
  
 REQUEST  SUBR               ENTRY/EXIT 
          SB1    1
          REQUEST X1
          EQ     REQUESTX 
  
          END 
          IDENT  REQWEST
          ENTRY  REQWEST
          SYSCOM B1 
          TITLE  REQWEST - REQUEST AUTO ASSIGNMENT OF EQUIPMENT.
*COMMENT  MAC1 - REQUEST AUTO ASSIGNMENT OF EQUIPMENT.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       REQWEST - REQUEST (015) AUTO ASSIGNMENT OF EQUIPMENT TO FILE. 
* 
*         NOTE - *REQWEST* (*LFM* FUNCTION 015) IS SPELLED WITH A *W* 
*                TO DISTINGUISH IT FROM *REQUEST* (*LFM* FUNCTION 014). 
* 
*         *SYMPL* CALL -
*         REQWEST(FILE,M);
* 
*         ENTRY  (FILE) = FET, (FET+1 BITS 59-48 CONTAIN DEVICE TYPE).
*                (M)    = IF NON ZERO, DAYFILE MESSAGE INDICATING 
*                         DEVICE TO WHICH THE FILE IS ASSIGNED WILL BE
*                         ISSUED BY *LFM*.
*                         IF ZERO, NO DAYFILE MESSAGE WILL BE ISSUED. 
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS REQUEST. 
  
  
 REQWEST  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1
          SA2    X2 
          ZR     X2,REQW1    IF NO DAYFILE MESSAGE
          REQUEST  X1,U 
          EQ     REQWESTX    RETURN 
  
 REQW1    REQUEST  X1,U,N 
          EQ     REQWESTX    RETURN 
  
          END 
          IDENT  RETURN 
          ENTRY  RETURN 
          ENTRY  RETERN 
          SYSCOM B1 
          TITLE  RETURN - RETURN FILE TO SYSTEM.
*COMMENT   RETURN FILE TO SYSTEM. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RETURN   SPACE  4,10 
***       RETURN - RETURN FILE TO SYSTEM. 
* 
*         CALL RETURN (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         RETERN(FILE,R);         (*SYMPL* CALL)
* 
*         NOTE    RETURN IS A RESERVED WORD IN *SYMPL*, A CALL TO 
*                 THE RETURN MACRO IN *SYMPL* MUST SPELL RETURN WITH
*                 AN *E* INSTEAD OF A *U*.
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS RETURN.
  
  
  
 RETERN   BSS  0             ENTRY FOR *SYMPL* ROUTINES 
 RETURN   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RET1     IF RECALL REQUESTED
          RETURN X1 
          EQ     RETURNX
  
 RET1     RETURN X1,R 
          EQ     RETURNX
  
          END 
          IDENT  REWIND 
          ENTRY  REWIND 
          SYSCOM B1 
          TITLE  REWIND - REWIND FILE.
*COMMENT   REWIND FILE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REWIND   SPACE  4,10 
***       REWIND - REWIND FILE. 
* 
*         CALL REWIND (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         REWIND(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS REWIND.
  
  
 REWIND   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,REW1     IF RECALL REQUESTED
          REWIND X1 
          EQ     REWINDX
  
 REW1     REWIND X1,R 
          EQ     REWINDX
  
          END 
          IDENT  REWRITE
          ENTRY  REWRITE
          SYSCOM B1 
          TITLE  REWRITE - REWRITE DATA FROM *CIO* BUFFER.
*COMMENT   REWRITE DATA FROM *CIO* BUFFER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REWRITE  SPACE  4,10 
***       REWRITE - REWITE DATA FROM *CIO* BUFFER.
*         MASS STORAGE FILES ONLY.
* 
*         CALL REWRITE (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         REWRITE(FILE,R);       (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS REWRITE. 
  
  
 REWRITE  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,REW1     IF RECALL REQUESTED
          REWRITE X1
          EQ     REWRITEX 
  
 REW1     REWRITE X1,R
          EQ     REWRITEX 
  
          END 
          IDENT  REWRITF
          ENTRY  REWRITF
          SYSCOM B1 
          TITLE  REWRITF - REWRITE END OF FILE. 
*COMMENT   REWRITE END OF FILE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REWRITF  SPACE  4,10 
***       REWRITF - REWRITE END OF FILE.
*         MASS STORAGE FILES ONLY.
* 
*         CALL REWRITF (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         REWRITE(FILE,R);       (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS REWRITEF.
  
  
 REWRITF  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,REW1     IF RECALL REQUESTED
          REWRITEF  X1
          EQ     REWRITFX 
  
 REW1     REWRITEF  X1,R
          EQ     REWRITFX 
  
          END 
          IDENT  REWRITR
          ENTRY  REWRITR
          SYSCOM B1 
          TITLE  REWRITR - REWRITE END OF RECORD. 
*COMMENT   REWRITE END OF RECORD. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 REWRITR  SPACE  4,10 
***       REWRITR - REWRITE END OF RECORD.
*         MASS STORAGE FILES ONLY.
* 
*         CALL REWRITR (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         REWRITR(FILE,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS REWRITER.
  
  
 REWRITR  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET ADDRESS OF RECALL PARAMETER
          SA2    X2 
          NZ     X2,REW1     IF RECALL PARAMETER REQUESTED
          REWRITER  X1
          EQ     REWRITRX 
  
 REW1     REWRITER  X1,R
          EQ     REWRITRX 
  
          END 
          IDENT  ROLLOUT
          ENTRY  ROLLOUT
          SYSCOM B1 
          TITLE  ROLLOUT - ROLLOUT THE JOB. 
*COMMENT ROLLOUT THE JOB. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ROLLOUT  SPACE  4,10 
***       ROLLOUT - ROLLOUT THE JOB.
* 
*         CALL ROLLOUT (ADDR) 
* 
*         ROLLOUT(ADDR);   (*SYMPL* CALL) 
* 
*         ENTRY  (ADDR) = ADDRESS OF EVENT DEPENDENCIES.
*T,       30/0,18/EVD,12/RTP
*                EVD = EVENT VALUE. 
*                RTP = ROLLOUT TIME PERIOD. 
* 
*         USES   B - 1. 
* 
*         MACROS ROLLOUT. 
  
  
 ROLLOUT  BSS    0
 ROLLT    SUBR               ENTRY/EXIT 
          SB1    1
          ROLLOUT  X1 
          EQ     ROLLTX      EXIT 
  
          END 
          IDENT  ROUTE
          ENTRY  ROUTE
          SYSCOM B1 
          TITLE ROUTE - ROUTE A FILE TO A SPECIFIC DISPOSITION. 
*COMMENT  ROUTE A FILE TO A SPECIFIC DISPOSITION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       ROUTE - ROUTE A FILE TO A SPECIFIC DISPOSITION. 
* 
*         CALL ROUTE(ADDR,R)
* 
*         ENTRY  (ADDR) = ADDRESS OF PARAMETER BLOCK. 
*                (R)    = RECALL, IF .NE. 0, RECALL IS REQUESTED. 
* 
*         ROUTE(ADDR,R);            (*SYMPL* CALL)
* 
*         ENTRY  (ADDR) = ADDRESS OF PARAMETER BLOCK. 
*                (R)    = RECALL, IF .NE. 0, RECALL IS REQUESTED. 
* 
*         USES   X - 1, 2.
*                A - 1, 2.
*                B - 1. 
* 
*         MACROS ROUTE. 
  
  
 ROUTE    SUBR   ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,ROU1     IF RECALL PARAMETER
          ROUTE  X1 
          EQ     ROUTEX      EXIT 
  
 ROU1     ROUTE  X1,R 
          EQ     ROUTEX      EXIT 
  
          END 
          IDENT  RPHR 
          ENTRY  RPHR 
          SYSCOM B1 
          TITLE  RPHR - READ PHYSICAL RECORD TO *CIO* BUFFER. 
*COMMENT   READ PHYSICAL RECORD TO *CIO* BUFFER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RPHR     SPACE  4,10 
***       RPHR - READ PHYSICAL RECORD TO *CIO* BUFFER.
* 
*         CALL RPHR (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         RPHR(FILE,R);             (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS RPHR.
  
  
 RPHR     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RPH1     IF RECALL REQUESTED
          RPHR   X1 
          EQ     RPHRX
  
 RPH1     RPHR   X1,R 
          EQ     RPHRX
  
          END 
          IDENT  RPHRLS 
          ENTRY  RPHRLS 
          SYSCOM B1 
          TITLE  RPHRLS - READ PRUS WITH LIST.
*COMMENT   READ PRUS WITH LIST. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RPHRLS   SPACE  4,10 
***       RPHRLS - READ PRUS WITH LIST. 
* 
*         CALL RPHRLS (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         RPHRLS(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS RPHRLS.
  
  
 RPHRLS   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,RPH1     IF RECALL REQUESTED
          RPHRLS X1 
          EQ     RPHRLSX
  
 RPH1     RPHRLS X1,R 
          EQ     RPHRLSX
  
          END 
          IDENT  RTIME
          ENTRY  RTIME
          SYSCOM B1 
          TITLE  RTIME - OBTAIN REAL TIME CLOCK READING.
*COMMENT   OBTAIN REAL TIME CLOCK READING.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RTIME    SPACE  4,10 
***       RTIME - OBTAIN REAL TIME CLOCK READING. 
* 
*         CALL RTIME (STATUS) 
* 
*         EXIT   (STATUS) = RESPONSE. 
*                RESPONSE = 
*T        24/ SECONDS,36/ MILLISECONDS
*         TIME IS SYSTEM SOFTWARE CLOCK TIME SINCE DEADSTART. 
* 
*         RTIME(STATUS);        (*SYMPL* CALL)
* 
*         EXIT   STATUS, AN ITEM THAT WILL CONTAIN THE RTIME
*                        STATUS WORD ON EXIT. 
* 
*         USES   X - 1, 6.
*                A - 1. 
*                B - 1. 
* 
*         MACROS RTIME. 
  
  
 RTIME    SUBR               ENTRY/EXIT 
          SB1    1
          BX5    X1 
          RTIME  X1 
          SA1    X5 
          BX6    X1          RETURN RESPONSE AS FUNCTION RESULT 
          EQ     RTIMEX 
  
          END 
          IDENT  SETJCI 
          ENTRY  SETJCI 
          SYSCOM B1 
          TITLE  SETJCI - SET JOB CONTROL INFORMATION.
*COMMENT   SET JOB CONTROL INFORMATION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SETJCI   SPACE  4,25 
***       SETJCI - SET JOB CONTROL INFORMATION. 
* 
*         CALL SETJCI(ADDR) 
* 
*         ENTRY  (ADDR) = A TWO WORD ARRAY SPECIFYING JOB 
*                         CONTROL INFORMATION.
* 
*         EXIT   JOB CONTROL INFORMATION SET IN USER,S
*                CONTROL POINT AREA.
* 
*         SETJCI(ADDR);   (*SYMPL* CALL)
* 
*         ENTRY  (ADDR) = A TWO WORD ARRAY SPECIFYING 
*                         JOB CONTROL INFORMATION.
*                         THE FORMAT OF THE ARRAY IS- 
*T ADDR   6/EFG,18/REG,12/CCL,12/EM,6/SSW,6/0 
*T,       6/EF,18/R3,18/R2,18/R1
*         EFG = GLOBAL ERROR FLAG.
*         REG = GLOBAL REGISTER.
*         CCL = RESERVED FOR CCL USE. 
*         EM  = EXIT MODE (REFER TO *NOS* REFERENCE VOL. 2).
*         SSW = SENSE SWITCHES. 
*         EF  = LAST ERROR FLAG ENCOUNTERED.
*         R3  = JOB CONTROL REGISTER 3. 
*         R2  = JOB CONTROL REGISTER 2. 
*         R1  = JOB CONTROL REGISTER 1. 
* 
*         EXIT   JOB CONTROL INFORMATION SET IN USER,S
*                CONTROL POINT AREA.
* 
*         USES   B - 1. 
* 
*         MACROS SETJCI.
  
  
 SETJCI   SUBR               ENTRY/EXIT 
          SB1    1
          SETJCI X1 
          EQ     SETJCIX     RETURN 
  
          END 
          IDENT  SKIPB
          ENTRY  SKIPB
          SYSCOM B1 
          TITLE  SKIPB - SKIP RECORDS BACKWARDS.
*COMMENT   SKIP RECORDS BACKWARDS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SKIPB    SPACE  4,10 
***       SKIPB - SKIP RECORDS BACKWARDS. 
* 
*         CALL SKIPB (FILE,N,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (N) = NUMBER OF RECORDS. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SKIPB(FILE,N,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                N, AN ITEM CONTAINING THE NUMBER OF RECORDS TO SKIP. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS SKIPB. 
  
 SKIPB    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF N 
          SA2    A3+B1       GET ADDRESS OF RECALL PARAMETER
          SA3    X3          N
          SA2    X2 
          NZ     X2,SKI1     IF RECALL REQUESTED
          SKIPB  X1,X3
          EQ     SKIPBX 
  
 SKI1     SKIPB  X1,X3,R
          EQ     SKIPBX 
  
          END 
          IDENT  SKIPEI 
          ENTRY  SKIPEI 
          SYSCOM B1 
          TITLE  SKIPEI - SKIP TO END OF INFORMATION. 
*COMMENT   SKIP TO END OF INFORMATION.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SKIPEI   SPACE  4,10 
***       SKIPEI - SKIP TO END OF INFORMATION.
* 
*         CALL SKIPEI (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SKIPEI(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS SKIPEI.
  
  
 SKIPEI   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,SKI1     IF RECALL REQUESTED
          SKIPEI X1 
          EQ     SKIPEIX
  
 SKI1     SKIPEI X1,R 
          EQ     SKIPEIX
  
          END 
          IDENT  SKIPF
          ENTRY  SKIPF
          SYSCOM B1 
          TITLE  SKIPF - SKIP RECORDS FORWARD.
*COMMENT   SKIP RECORDS FORWARD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SKIPF    SPACE  4,10 
***       SKIPF - SKIP RECORDS FORWARD. 
* 
*         CALL SKIPF (FILE,N,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (N) = NUMBER OF RECORDS. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SKIPF(FILE,N,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                N, AN ITEM CONTAINING THE NUMBER OF RECORDS TO SKIP. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS SKIPF. 
  
  
 SKIPF    SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF N 
          SA2    A3+B1       GET RECALL PARAMETER 
          SA2    X2 
          SA3    X3          N
          NZ     X2,SKI1     IF RECALL REQUESTED
          SKIPF  X1,X3
          EQ     SKIPFX 
  
 SKI1     SKIPF  X1,X3,R
          EQ     SKIPFX 
  
          END 
          IDENT  SKIPFB 
          ENTRY  SKIPFB 
          SYSCOM B1 
          TITLE  SKIPFB - SKIP FILES BACKWARD.
*COMMENT   SKIP FILES BACKWARD. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SKIPFB   SPACE  4,10 
***       SKIPFB - SKIP FILES BACKWARD. 
* 
*         CALL SKIPFB (FILE,N,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (N) = NUMBER OF FILES. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SKIPFB(FILE,N,R);     (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                N, AN ITEM CONTAING THE NUMBER OF FILES TO SKIP. 
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS SKIPFB.
  
  
  
 SKIPFB   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF N 
          SA2    A3+B1       GET ADDRESS OF RECALL PARAMETER
          SA3    X3          N
          SA2    X2 
          NZ     X2,SKI1     IF RECALL REQUESTED
          SKIPFB X1,X3
          EQ     SKIPFBX
  
 SKI1     SKIPFB X1,X3,R
          EQ     SKIPFBX
  
          END 
          IDENT  SKIPFF 
          ENTRY  SKIPFF 
          SYSCOM B1 
          TITLE  SKIPFF - SKIP FILES FORWARD. 
*COMMENT   SKIP FILES FORWARD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SKIPFF   SPACE  4,10 
***       SKIPFF - SKIP FILES FORWARD.
* 
*         CALL SKIPFF (FILE,N,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (N) = NUMBER OF FILES
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SKIPFF(FILE,N,R);     (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                N, AN ITEM THAT CONTAINS THE NUMBER OF FILES TO SKIP.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2, 3.
*                A - 2, 3.
*                B - 1. 
* 
*         MACROS SKIPFF.
  
  
 SKIPFF   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF N 
          SA2    A3+B1       ADDRESS OF RECALL PARAMETER
          SA3    X3          N
          SA2    X2 
          NZ     X2,SKI1     IF RECALL REQUESTED
          SKIPFF X1,X3
          EQ     SKIPFFX
  
 SKI1     SKIPFF X1,X3,R
          EQ     SKIPFFX
  
          END 
          IDENT  SYSTEM 
          ENTRY  SYSTEM 
          SYSCOM B1 
          TITLE  SYSTEM - REQUEST SYSTEM FUNCTION.
*COMMENT   REQUEST SYSTEM FUNCTION. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SYSTEM   SPACE  4,10 
***       SYSTEM - REQUEST SYSTEM FUNCTION. 
* 
*         CALL SYSTEM(ARGUMENT,R) 
* 
*         ENTRY  (ARGUMENT) = 3 CHARACTER SYSTEM REQUEST NAME,
*                             INCLUDING OPTIONAL PARAMETERS.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         SYSTEM(ARGUMENTS,R);  (*SYMPL* CALL)
* 
*         ENTRY  ARGUMENTS, AN ITEM CONTAINING THE REQUEST ARGUMENT.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         EXIT   DEPENDS ON CALL, SEE *NOS REFERENCE MANUAL*. 
* 
*         USES   X - 1, 2, 6. 
*                A - 1, 2.
*                B - 1. 
* 
*         MACROS SYSTEM.
  
  
 SYSTEM   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA1    X1 
          BX6    X1          SYSTEM REQUEST 
          SA2    X2 
          ZR     X2,SYS1     IF RECALL NOT REQUESTED
          MX2    1
          LX2    41 
          BX6    X6+X2
 SYS1     BSS    0
          SYSTEM
          EQ     SYSTEMX
  
          END 
          IDENT  TIME 
          ENTRY  TIME 
          SYSCOM B1 
          TITLE  TIME - OBTAIN ACCUMULATED CPU TIME.
*COMMENT   OBTAIN ACCUMULATED CPU TIME. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 TIME     SPACE  4,10 
***       TIME - OBTAIN ACCUMULATED CPU TIME. 
* 
*         CALL TIME (STATUS)
* 
*         EXIT   (STATUS) = RESPONSE
*         RESPONSE =
*T        12/ 2000B,12/0,24/ SECONDS,12/ MILLISECONDS 
* 
*         TIME(STATUS);         (*SYMPL* CALL)
* 
*         EXIT   (STATUS) =  TIME STATUS WORD.
* 
*         USES   X - 1, 5, 6. 
*                A - 1. 
*                B - 1. 
* 
*         MACROS TIME.
  
  
 TIME     SUBR               ENTRY/EXIT 
          SB1    1
          BX5    X1 
          TIME   X1 
          SA1    X5 
          BX6    X1          RETURN RESPONSE AS FUNCTION RESULT 
          EQ     TIMEX
  
          END 
          IDENT  UNLOAD 
          ENTRY  UNLOAD 
          TITLE  UNLOAD - UNLOAD FILE.
*COMMENT   UNLOAD FILE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 UNLOAD   SPACE  4,10 
***       UNLOAD - UNLOAD FILE. 
* 
*         CALL UNLOAD (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         UNLOAD(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS UNLOAD.
  
  
 UNLOAD   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,UNL1     IF RECALL REQUESTED
          UNLOAD X1 
          EQ     UNLOADX
  
 UNL1     UNLOAD X1,R 
          EQ     UNLOADX
  
          END 
          IDENT  VERSION
          ENTRY  VERSION
          SYSCOM B1 
          TITLE  VERSION - RETURN THE OPERATING SYSTEM VERSION NAME.
*COMMENT   RETURN VERSION NAME. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 VERSION  SPACE  4,10 
***       VERSION - RETURN THE VERSION NAME OF THE OPERATING SYSTEM.
* 
*         CALL VERSION (ADDR) 
* 
*         VERSION(ADDR);   (*SYMPL* CALL) 
* 
*         ENTRY  (ADDR) = ADDRESS TO RECEIVE VERSION NAME.
* 
*         EXIT   (ADDR) = VERSION NAME. 
* 
*         USES   X - 2, 3, 6. 
*                A - 2, 6.
* 
*         MACROS VERSION. 
  
  
 VERSION  BSS    0
 VERSIN   SUBR               ENTRY/EXIT 
          MX3    42 
          SA2    ADDR 
          BX2    X3*X2
          BX6    X1+X2
          SA6    A2 
          VERSION  A2 
          EQ     VERSINX     EXIT 
  
 ADDR     VFD    12/10,12/0,12/0,6/0,18/0 
  
          END 
          IDENT  WPHR 
          ENTRY  WPHR 
          SYSCOM B1 
          TITLE  WPHR - WRITE 1 PHYSICAL RECORD FROM *CIO* BUFFER.
*COMMENT   WRITE 1 PHYSICAL RECORD FROM *CIO* BUFFER. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WPHR     SPACE  4,10 
***       WPHR - WRITE 1 PHYSICAL RECORD FROM *CIO* BUFFER. 
* 
*         CALL WPHR (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WPHR(FILE,R);             (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS WPHR.
  
  
 WPHR     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WPH1     IF RECALL REQUESTED
          WPHR   X1 
          EQ     WPHRX
  
 WPH1     WPHR   X1,R 
          EQ     WPHRX
  
          END 
          IDENT  WRITE
          ENTRY  WRITE
          SYSCOM B1 
          TITLE  WRITE - WRITE DATA FROM *CIO* BUFFER.
*COMMENT   WRITE DATA FROM *CIO* BUFFER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITE    SPACE  4,10 
***       WRITE - WRITE DATA FROM *CIO* BUFFER. 
* 
*         CALL WRITE (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WRITE(FILE,R);           (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS WRITE. 
  
  
 WRITE    SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WRT1     IF RECALL PARAMETER REQUESTED
          WRITE  X1 
          EQ     WRITEX 
  
 WRT1     WRITE  X1,R 
          EQ     WRITEX 
  
          END 
          IDENT  WRITEC 
          ENTRY  WRITEC 
          SYSCOM B1 
          TITLE  WRITEC - WRITE CODED LINE IN *C* FORMAT. 
*COMMENT   WRITE CODED LINE IN *C* FORMAT.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEC   SPACE  4,10 
***       WRITEC - WRITE CODED LINE IN *C* FORMAT.
* 
*         CALL WRITEC (FILE,BUF)
* 
*         TRANSFERS DATA UNTIL THE END OF LINE BYTE (0000) IS SENSED. 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
* 
*         WRITEC(FILE,BUF);     (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                BUF, AN ARRAY TO BE USED AS READ BUFFER. 
* 
*         USES   X - 3. 
*                A - 3. 
*                B - 1. 
* 
*         MACROS WRITEC.
  
  
 WRITEC   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          WRITEC X1,X3
          EQ     WRITECX
  
          END 
          IDENT  WRITECW
          ENTRY  WRITECW
          SYSCOM B1 
          TITLE  WRITECW - WRITE FILE NON-STOP WITH CONTROL WORDS.
*COMMENT   WRITE FILE NON-STOP WITH CONTROL WORDS.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITECW  SPACE  4,10 
***       WRITECW - WRITE FILE NON-STOP WITH CONTROL WORDS. 
* 
*         CALL WRITECW (FILE,R) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WRITECW(FILE,R);       (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
* 
*         MACROS WRITECW. 
  
  
 WRITECW  SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WCW1     IF RECALL
          WRITECW  X1 
          EQ     WRITECWX 
  
 WCW1     WRITECW  X1,R 
          EQ     WRITECWX    EXIT 
  
          END 
          IDENT  WRITEF 
          ENTRY  WRITEF 
          SYSCOM B1 
          TITLE  WRITEF - WRITE END OF FILE.
*COMMENT   WRITE END OF FILE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEF   SPACE  4,10 
***       WRITEF - WRITE END OF FILE. 
* 
*         CALL WRITEF (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WRITEF(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS WRITEF.
  
  
 WRITEF   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WRT1     IF RECALL REQUESTED
          WRITEF X1 
          EQ     WRITEFX
  
 WRT1     WRITEF X1,R 
          EQ     WRITEFX
  
          END 
          IDENT  WRITEH 
          ENTRY  WRITEH 
          SYSCOM B1 
          TITLE  WRITEH - WRITE CODED LINE IN *H* FORMAT. 
*COMMENT   WRITE CODED LINE IN *H* FORMAT.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEH   SPACE  4,10 
***       WRITEH - WRITE CODED LINE IN *H* FORMAT.
* 
*         CALL WRITEH (FILE,BUF,N)
* 
*         TRANSFERS ONE LINE OF DATA. DELETES TRAILING SPACES.
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         WRITEH(FILE,BUF,N);   (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                BUF, AN ARRAY TO BE USED AS READ BUFFER. 
*                N, AN ITEM THAT CONTAINS THE NUMBER OF WORDS 
*                   IN *BUF*. 
* 
*         USES   X - 3, 4.
*                A - 3, 4.
*                B - 1. 
* 
*         MACROS WRITEH.
  
  
 WRITEH   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA4    X4          WORD COUNT 
          WRITEH X1,X3,X4 
          EQ     WRITEHX
  
          END 
          IDENT  WRITEN 
          ENTRY  WRITEN 
          SYSCOM B1 
          TITLE  WRITEN - WRITE FILE NON-STOP FOR TAPES.
*COMMENT   WRITE FILE NON-STOP FOR TAPES. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEN   SPACE  4,10 
***       WRITEN - WRITE FILE NON-STOP FOR TAPES. 
*         MAGNETIC TAPES IN S OR L FORMAT ONLY. 
* 
*         CALL WRITEN (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WRITEN(FILE,R);         (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ENTRY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS WRITEN.
  
  
 WRITEN   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WRT1     IF RECALL REQUESTED
          WRITEN X1 
          EQ     WRITENX
  
 WRT1     WRITEN X1,R 
          EQ     WRITENX
  
          END 
          IDENT  WRITEO 
          ENTRY  WRITEO 
          SYSCOM B1 
          TITLE  WRITEO - WRITE ONE WORD. 
*COMMENT   WRITE ONE WORD.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEO   SPACE  4,10 
***       WRITEO - WRITE ONE WORD.
* 
*         CALL WRITEO (FILE,WORD) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (WORD) = WORD TO BE TRANSFERRED. 
* 
*         WRITEO(FILE,WORD);    (*SYMPL* CALL)
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                WORD, ITEM TO BE TRANSFERRED.
* 
*         USES   X - 3, 6.
*                A - 3. 
*                B - 1. 
* 
*         MACROS WRITEO.
  
  
 WRITEO   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF WORD
          SA3    X3          WORD 
          BX6    X3 
          WRITEO X1 
          EQ     WRITEOX
  
          END 
          IDENT  WRITER 
          ENTRY  WRITER 
          SYSCOM B1 
          TITLE  WRITER - WRITE END OF RECORD.
*COMMENT   WRITE END OF RECORD. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITER   SPACE  4,10 
***       WRITER - WRITE END OF RECORD. 
* 
*         CALL WRITER (FILE,R)
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         WRITER(FILE,R);      (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED.
* 
*         USES   X - 2. 
*                A - 2. 
*                B - 1. 
* 
*         MACROS WRITER.
  
  
 WRITER   SUBR               ENTRY/EXIT 
          SB1    1
          SA2    A1+B1       GET RECALL PARAMETER 
          SA2    X2 
          NZ     X2,WRT1     IF RECALL REQUESTED
          WRITER X1 
          EQ     WRITERX
  
 WRT1     WRITER X1,R 
          EQ     WRITERX
  
          END 
          IDENT  WRITES 
          ENTRY  WRITES 
          SYSCOM B1 
          TITLE  WRITES - WRITE CODED LINE FROM CHARACTER BUFFER. 
*COMMENT   WRITE CODED LINE FROM CHARACTER BUFFER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITES   SPACE  4,10 
***       WRITES - WRITE CODED LINE FROM CHARACTER BUFFER.
* 
*         CALL WRITES (FILE,BUF,N)
* 
*         PACKS CHARACTERS FROM THE WORKING BUFFER TEN CHARACTERS/WORD. 
*         DELETES TRAILING SPACE CODES BEFORE PACKING CHARACTERS. 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
* 
*         WRITES(FILE,BUF,N);   (*SYMPL* CALL)
* 
*         ENTRY   FILE, AN ARRAY THAT CONTAINS THE FET. 
*                 BUF, AN ARRAY TO BE USED AS READ BUFFER.
*                 N, AN ITEM THAT CONTAINS THE NUMBER OF WORD IN BUF. 
* 
*         USES   X - 3, 4.
*                A - 3, 4.
*                B - 1. 
* 
*         MACROS WRITES.
  
  
 WRITES   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA4    X4          WORD COUNT 
          WRITES X1,X3,X4 
          EQ     WRITESX
  
          END 
          IDENT  WRITEW 
          ENTRY  WRITEW 
          SYSCOM B1 
          TITLE  WRITEW - WRITE DATA FROM WORKING BUFFER. 
*COMMENT   WRITE DATA FROM WORKING BUFFER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 WRITEW   SPACE  4,10 
***       WRITEW - WRITE DATA FROM WORKING BUFFER.
* 
*         CALL WRITEW (FILE,BUF,N,STATUS) 
* 
*         ENTRY  (FILE) = FIRST WORD OF THE FET.
*                (BUF) = FIRST WORD OF THE WORKING BUFFER.
*                (N) = WORD COUNT OF THE WORKING BUFFER.
*                (STATUS) = RETURN STATUS, NE. 0 INDICATES AN ERROR.
* 
*         WRITEW(FILE,BUF,N,STATUS);   (*SYMPL* CALL) 
* 
*         ENTRY  FILE, AN ARRAY THAT CONTAINS THE FET.
*                BUF, AN ARRAY TO BE USED AS READ BUFFER. 
*                N, AN ITEM THAT CONTAINS THE NUMBER OF WORDS IN BUF. 
*                STATUS, .NE. 0 INDICATES AN ERROR. 
* 
*         USES   X - 3, 4, 5, 6, 7. 
*                A - 3, 4, 5, 6, 7. 
*                B - 1. 
* 
*         MACROS WRITEW.
  
  
 WRITEW   SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       FWA OF WORKING BUFFER
          SA4    A3+B1       ADDRESS OF WORD COUNT
          SA5    A4+B1       STATUS RESULT ADDRESS
          SA4    X4          WORD COUNT 
          WRITEW X1,X3,X4 
          NZ     B7,WRITEW1  IF AN ERROR
          BX7    X7-X7       CLEAR ERROR STATUS 
 WRITEW1  SA7    X5          RETURN ERROR STATUS
          EQ     WRITEWX
  
          END 
          IDENT  XARG 
          LDSET  PRESET=ZERO
          ENTRY  XARG 
          ENTRY  SSJ= 
          SYSCOM B1 
          TITLE  XARG - CRACK CONTROL STATEMENT PARAMETERS. 
*COMMENT  CRACK CONTROL STATEMENT PARAMETERS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
  
*CALL     COMCMAC 
  
 SSJ=     EQU    0
 XARG     SPACE  4,25 
***       XARG - CRACK CONTROL STATEMENT PARAMETERS.
* 
*         XARG(ARGLIST,OPTION,FLAG);  (*SYMPL* CALL)
* 
*         ENTRY  (ARGLIST) = ADDRESS OF ARGUMENT LIST.
*                (OPTION)  = OPTION FOR SKIPING OVER PROGRAM NAME.
*                            0, SKIP OVER PROGRAM NAME. 
*                            ADDR, DO NOT SKIP OVER PROGRAM NAME. 
*                                  *ADDR* IS THE FWA OF THE CONTROL 
*                                  CARD BUFFER. 
* 
*         EXIT   CONTROL STATEMENT CRACKED. 
*                (FLAG) = ERROR STATUS. 
*                          0, NO ERROR. 
*                         -1, ARGUMENT ERROR. 
* 
*         USES   A - 1, 3, 4, 5, 6. 
*                B - 1, 2, 3. 
*                X - 1, 3, 4, 5, 6. 
* 
*         CALLS  ARM, POP, USB. 
  
  
 XARG     SUBR               ENTRY/EXIT 
          SB1    1
          SA3    A1+B1       ADDRESS OF *OPTION*
          SA5    A3+B1       SAVE ADDRESS OF *FLAG* 
          SB2    X3          SET ADDRESS OF *OPTION*
          SA3    X3 
          NZ     X3,ARG1     IF OPTION IS *NO SKIP OVER PROGRAM NAME* 
          SB2    CCDR        SET ADDRESS OF CONTROL STATEMENT BUFFER
 ARG1     SA4    X1          ADDRESS OF ARGUMENT LIST 
          RJ     USB         UNPACK CONTROL STATEMENT 
          SA1    A6          ASSURE TERMINATION 
          SX6    1R.
          SA6    X1+B1
          NZ     X3,ARG2     IF *DO NOT SKIP OVER PROGRAM NAME* 
          RJ     POP         SKIP OVER PROGRAM NAME 
 ARG2     SB3    X4          CRACK THE PARAMETERS 
          RJ     ARM
          LX6    X1          SET UP ERROR STATUS IN *FLAG*
          SA6    X5 
          EQ     XARGX      RETURN
  
*CALL     COMCARM 
*CALL     COMCPOP 
*CALL     COMCUSB 
  
          END 
          IDENT  XCDD 
          ENTRY  XCDD 
          SYSCOM B1 
          TITLE  XCDD - CONVERT INTEGER TO DECIMAL DISPLAY CODE.
*COMMENT   CONVERT INTEGER TO DECIMAL DISPLAY CODE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XCDD     SPACE  4,10 
***       XCDD - CONVERT INTEGER TO DECIMAL DISPLAY CODE. 
* 
*         HOLLERITH = XCDD (INTEGER)
* 
*         XX = XCDD(YY);           (*SYMPL* CALL) 
* 
*         ENTRY  (YY) =  THE INTEGER TO BE CONVERTED. 
* 
*         EXIT   XX, A CHARACTER ITEM TO CONTAIN DISPLAY CODE ON EXIT.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         CALLS  COD. 
  
  
 XCDD     SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1+
          RJ     CDD
          EQ     XCDDX       RETURN, RESULT IN X6 
  
*CALL     COMCCDD            CONVERT INTEGER TO DECIMAL DISPLAY CODE. 
  
          END 
          IDENT  XCFD 
          ENTRY  XCFD 
          ENTRY  CFD
          SYSCOM B1 
          TITLE  XCFD - CONVERT INTEGER TO F10.3 FORMAT.
*COMMENT   CONVERT INTEGER TO F10.3 FORMAT. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XCFD     SPACE  4,10 
***       XVFD - CONVERT INTEGER TO F10.3 FORMAT. 
* 
*         HOLLERITH = XCFD (INTEGER). 
* 
*         XX = XCFD(YY);           (*SYMPL* CALL) 
* 
*         ENTRY  (YY) = THE INTEGER TO BE CONVERTED.
* 
*         EXIT   XX, A CHARACTER ITEM TO CONTAIN DISPLAY CODE ON EXIT.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         CALLS  CFD
  
  
 XCFD     SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1+
          RJ     =XCFD       CONVERT
          EQ     XCFDX       RETURN, RESULT IN X6 
  
*CALL     COMCCFD            CONVERT INTEGER TO F10.3 FORMAT. 
  
          END 
          IDENT  XCHD 
          ENTRY  XCHD 
          SYSCOM B1 
          TITLE  XCHD - CONVERT HEXIDECIMAL INTEGER TO DISPLAY CODE.
*COMMENT  CONVERT HEXIDECIMAL INTEGER TO DISPLAY CODE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       XCHD - CONVERT HEXIDECIMAL INTEGER TO DISPLAY CODE. 
* 
*         CONVERT RIGHT MOST 40 BITS OF A BINARY WORD (10/4 BIT 
*         HEX DIGITS) TO 10 HEXIDECIMAL DISPLAY CODE CHARACTERS 
*         (LEFT ZEROES SUPPRESSED). 
* 
*         XX = XCHD(YY);           (*SYMPL* CALL) 
* 
*         ENTRY  XY, AN ITEM CONTAINING THE WORD TO BE CONVERTED. 
* 
*         EXIT   XX, HEX DISPLAY CODE EQUIVILENCE OF THE RIGHT MOST 
*                    10 HEX DIGIT IN YY.
* 
*         USES   X - 1, 2, 3, 4, 5, 6, 7. 
*                A - 1, 4.
*                B - 1, 2, 3, 4, 5, 6, 7. 
  
  
 XCHD     SUBR               ENTRY/EXIT 
          SB1    1           SYSCOM B1
          SA4    XCHDA       =1H
          SA1    X1          (X1) = HEXIDECIMAL INTEGER IN BINARY 
          SB7    1R0         (B7) = CHARACTER ZERO
          MX2    -4          (X2) = DIGIT MASK
          SB3    6           (B3) = SHIFT COUNT FOR EACH CHARACTER
          SB6    1R          (B6) = CHARACTER BLANK 
          SB5    1R9         (B5) = CHARACTER 9 
          SB2    -B3         INITIALIZE SHIFT COUNT 
          SB4    B7-B6       (B4) = CONVERSION VALUE FOR NUMERIC
 XCHD1    BX7    -X2*X1      EXTRACT DIGIT
          SX5    X7+B7       ADD CHARACTER ZERO TO DIGIT
          SB2    B2+B3
          LX4    -6 
          SX3    X7+B4       CONVERT DIGIT (W/BLANK BIAS) 
          AX1    4           SHIFT OFF DIGIT FROM INPUT WORD
          SX5    X5-1R9      SEE IF CHARACTER GREATER THAT NINE 
          NG     X5,XCHD2    IF LESS THAN NINE
          ZR     X5,XCHD2    IF EQUAL TO NINE 
          SX3    X5-1R       BIAS DIGIT BY CHARACTER BLANK INVERSE
 XCHD2    IX4    X4+X3       ADD DIGIT TO ASSEMBLY
          NZ     X1,XCHD1    IF NOT A ZERO DIGIT
          LX6    X4,B2
          EQ     XCHDX
  
 XCHDA    CON    1H          BLANK FILLED WORD
  
          END 
          IDENT  XCOD 
          ENTRY  XCOD 
          SYSCOM B1 
          TITLE  XCOD - CONVERT INTEGER TO OCTAL DISPLAY CODE.
*COMMENT   CONVERT INTEGER TO OCTAL DISPLAY CODE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XCOD     SPACE  4,10 
***       XCOD - CONVERT INTEGER TO OCTAL DISPLAY CODE. 
* 
*         HOLLERITH = XCOD (INTEGER)
* 
*         XX = XCOD(YY);           (*SYMPL* CALL) 
* 
*         ENTRY  (YY) = THE INTEGER TO BE CONVERTED.
* 
*         EXIT   XX, A CHAR. ITEM TO CONTAIN DISPLAY CODE ON EXIT.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         CALLS  COD. 
  
  
 XCOD     SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1+
          RJ     COD
          EQ     XCODX       RETURN, RESULT IN X6 
  
*CALL     COMCCOD            CONVERT INTEGER TO OCTAL DISPLAY CODE. 
  
          END 
          IDENT  XDXB 
          ENTRY  XDXB 
          SYSCOM B1 
          TITLE  XDXB - CONVERT WORD OF DISPLAY CODE DIGITS TO BINARY.
*COMMENT CONVERT WORD OF DISPLAY CODE DIGITS TO BINARY. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       XDXB - CONVERT WORD OF DISPLAY CODE DIGITS TO BINARY. 
* 
*         *SYMPL* CALLABLE ROUTINE TO CONVERT ONE 60 BIT WORD 
*         OF DISPLAY CODE DIGITS INTO BINARY. 
* 
*         STAT = XDXB(OWORD,TYPE,NWORD);    (*SYMPL* CALL)
* 
*                OWORD - AN ITEM THAT CONTAINS THE WORD 
*                        BE CONVERTED.
*                TYPE  - CONVERSION TYPE. 
*                      - .GT. 0, CONVERSION IN DECIMAL. 
*                      - = 0, CONVERSION IN OCTAL.
*                NWORD - AN ITEM TO CONTAIN THE CONVERTED DIGITS. 
*                STAT  - = 0, NO ERROR. 
*                      - NON ZERO, ERROR IN ASSEMBLY. 
* 
*         USES   X - 2, 3, 5, 6.
*                A - 2, 3, 5, 6.
*                B - 1, 2, 7. 
* 
*         CALLS  DXB. 
  
  
 XDXB     SUBR               ENTRY/EXIT 
          SB1    1
          SA5    X1          (X5) = WORD
          SA2    A1+B1       ADDRESS OF TYPE IN X2
          SA3    X2 
          SB7    X3          (B7) = TYPE
          SB2    10D         DO TEN CHARACTERS
          MX6    -6 
 DXB1     LX5    6
          BX2    -X6*X5 
          SX2    X2-1R
          SB2    B2-B1
          NZ     X2,DXB2     IF NOT A SPACE CHARACTER 
          MX3    54 
          BX5    X3*X5
 DXB2     NZ     B2,DXB1     IF MORE CHARACTERS 
          RJ     =XDXB
          SA3    A2+B1
          SA6    X3          STORE CONVERTED DIGITS 
          BX6    X4          PUT STATUS IN (X6) 
          EQ     XDXBX
  
*CALL COMCDXB 
  
          END 
          IDENT  XPRC 
          ENTRY  XPRC 
          TITLE  XPRC - CALL USER SPECIFIED *SYMPL* PROCEDURE.
*COMMENT CALL USER SPECIFIED *SYMPL* PROCEDURE. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          SPACE  4,10 
***       XPRC - INTERFACE ROUTINE USED TO CALL A *SYMPL* 
*         PROCEDURE, GIVEN THE ADDRESS OF THE PROCEDURE.
* 
*         XPRC(PADDR,P1,P2,...,PN);    (*SYMPL* CALL) 
* 
*         PADDR - ADDRESS OF PROCEDURE. 
*         P1    - FIRST PARAMETER TO BE PASSED TO PROCEDURE.
*         ... 
*         PN    - N-TH PARAMETER TO BE PASSED TO PROCEDURE. 
* 
*         USES   X - 1, 2, 3, 4, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 1, 2.
  
 XPRC     SUBR               ENTRY/EXIT 
          SB1    1
          SA2    X1 
          BX7    X2 
          SA7    PRADR       STORE PROCEDURE ADDRESS
          SA1    A1+B1
          MX3    1
          LX3    57 
          SA2    PRADR
          SX4    PRC1 
          SB2    X2 
          LX4    30 
          BX6    X3+X4
          SA6    X2 
          JP     B2+1 
 PRC1     EQ     XPRCX
  
 PRADR    BSSZ   1           ADDRESS OF PROCEDURE TO CALL 
  
          END 
          IDENT  XREL 
          ENTRY  XREL=
          ENTRY  XREL.
          SYSCOM B1 
          TITLE  XREL - COMMON DECK INTERFACE ROUTINES. 
*COMMENT  COMMON DECK INTERFACE ROUTINES. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XREL     SPACE  4,10 
**        XREL - COMMON DECK INTERFACE ROUTINES.
* 
*                XREL IS A COLLECTION OF RELOCATABLE MODULES THAT 
*         PROVIDE THE INTERFACE BETWEEN HIGHER LEVEL LANGUAGE MODULES 
*         AND THE STANDARD COMMON DECK ROUTINES THAT ARE NOT CALLED 
*         BY SYSTEM MACROS. 
 XREL     SPACE  4,10 
 LOCAL    EQU    3
 XREL.    SPACE  4,10 
**        XREL. - UNDEFINED COMMON DECK PROCESSOR.
* 
*         ENTRY  (X1) = LAST 3 CHARACTERS OF COMMON DECK NAME,
*                       LEFT JUSTIFIED. 
* 
*         USES   X - 6. 
*                A - 6. 
*                B - 1. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 XREL.    SUBR               ENTRY/EXIT 
          SB1    1
          BX6    X1 
          SA6    XREA+3 
          MESSAGE  XREA,LOCAL,R 
          ABORT 
  
 XREA     DATA   C* XREL - UNDEFINED ROUTINE -   FILL-IN.*
 XREL=    SPACE  4,10 
**        XREL= - ILLEGAL ARGUMENT PROCESSOR. 
* 
*         ENTRY  (X1) = LAST 3 CHARACTERS OF COMMON DECK NAME,
*                       LEFT JUSTIFIED. 
*                (X2) = ILLEGAL ARGUMENT. 
* 
*         USES   X - 0, 1, 2, 6.
*                A - 6. 
*                B - 1. 
* 
*         CALLS  SFW. 
* 
*         MACROS ABORT, MESSAGE.
  
  
 XREL=    SUBR               ENTRY/EXIT 
          SB1    1
          BX0    X2          SAVE SECOND ARGUMENT 
          LX1    -6 
          SX2    1R-
          BX1    X1+X2
          RJ     =XSFW
          BX1    X0 
          SA6    XREB 
          RJ     =XSFW
          SA6    XREB+3 
          MESSAGE  XREB,LOCAL,R 
          ABORT 
  
 XREB     DATA   C* FILL-IN - ILLEGAL ARGUMENT  .GT.FILL-IT-IN.LT..*
  
          END 
          IDENT  XSFN 
          ENTRY  XSFN 
          SYSCOM B1 
          TITLE  XSFN - SPACE FILL NAME.
*COMMENT   SPACE FILL NAME. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XSFN     SPACE  4,10 
***       XSFN - SPACE FILL NAME. 
* 
*         HOLLERITH = XSFN (NAME) 
* 
*         XX = XSFN(NAME);       (*SYMPL* CALL) 
* 
*         ENTRY  NAME, AN ITEM CONTAINING THE NAME, LEFT JUSTIFIED, 
*                      ZERO FILLED. 
* 
*         EXIT   XX, A CHAR. ITEM TO CONTAIN DISPLAY CODE ON EXIT.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         CALLS  SFN. 
  
  
 XSFN     SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1+
          RJ     =XSFN       SPACE FILL NAME
          EQ     XSFNX       RETURN, RESULT IN X6 
  
          ENTRY  SFN
*CALL     COMCSFN            SPACE FILL NAME. 
  
          END 
          IDENT  XSFW 
          ENTRY  XSFW 
          SYSCOM B1 
          ENTRY  SFW
          TITLE  XSFW - SPACE FILL WORD.
*COMMENT   SPACE FILL WORD. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XSFW     SPACE  4,10 
***       XSFW - SPACE FILL WORD. 
* 
*         HOLLERITH = XSFW (WORD) 
* 
*         XX = XSFW(WORD);    (*SYMPL* CALL)
* 
*         ENTRY  WORD, AN ITEM CONTAINING THE WORD TO CHANGE ZEROES TO
*                      BLANKS.
* 
*         EXIT   XX, A CHAR. ITEM TO CONTAIN DISPLAY CODE ON EXIT.
* 
*         USES   X - 1. 
*                A - 1. 
*                B - 1. 
* 
*         CALLS  SFW. 
  
  
 XSFW     SUBR               ENTRY/EXIT 
          SB1    1
          SA1    X1+
          RJ     =XSFW       SPACE FILL WORD
          EQ     XSFWX       RETURN, RESULT IN X6 
 SFW      SPACE  4,10 
          IF     -DEF,QUAL$,1 
          QUAL   COMCSFW
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 SFW      SPACE  4,10 
***       SFW - SPACE FILL WORD.
* 
*         SFW REPLACES ALL 00 CODES WITH 55 CODES IN A WORD.
* 
*         ENTRY  (X1) = WORD WITH 00 CODES. 
*                (B1) = 1.
* 
*         EXIT   (X6) = WORD SPACE FILLED.
*                (X7) = FINAL CHARACTER MASK. 
* 
*         USES   X - 3, 6, 7. 
*                A - 3. 
  
  
 SFW      SUBR               ENTRY/EXIT 
          SA3    SFWA        =37373737373737373737B 
          BX6    X3*X1       EXTRACT UPPER BIT FROM EACH CHARACTER
          BX7    -X3*X1      EXTRACT LOWER 5 BITS FROM EACH CHARACTER 
          IX6    X6+X3       EACH NON-00 CHARACTER GIVES CARRY
          BX6    X6+X7
          BX7    -X3*X6      EACH NON-00 CHARACTER = 40B
          SA3    A3+B1       =10H 
          BX6    X7 
          LX7    -5          GENERATE SPACE MASK
          IX7    X6-X7
          BX7    X6+X7
          BX3    -X7*X3      SELECT SPACE CODES 
          IX6    X1+X3       MERGE SPACES 
          EQ     SFWX        EXIT 
  
 SFWA     CON    37373737373737373737B  MASK
          CON    10H
 SFW      SPACE  4,10 
          BASE   *
 QUAL$    IF     -DEF,QUAL$ 
          QUAL   *
 SFW      EQU    /COMCSFW/SFW 
 QUAL$    ENDIF 
          ENDX
  
          END 
          IDENT  XWOD 
          ENTRY  XWOD 
          SYSCOM B1 
          TITLE  XWOD - CONVERT WORD TO OCTAL DISPLAY CODE. 
*COMMENT CONVERT WORD TO OCTAL DISPLAY CODE.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 XWOD     SPACE  4,8
***       XWOD - CONVERT WORD TO OCTAL DISPLAY CODE.
* 
*         *SYMPL* CALLABLE ROUTINE TO CONVERT ONE 60 BIT WORD INTO
*         TWO 60 BIT WORDS CONTAINING THE THE OCTAL REPRESENTATION
*         OF THE INPUT WORD.
* 
*         XWOD(W,A);                   (*SYMPL* CALL) 
* 
*         ENTRY  W, AN ITEM THAT CONTAINS THE WORD TO BE CONVERTED. 
*                A, A 20 CHARACTER BUFFER FWA.
*                    (AN ARRAY OR ITEM 20 CHARACTERS LONG)
* 
*         EXIT   A AND A+1, CONTAIN CONVERTED WORD. 
* 
*         USES   X - 1, 2, 6, 7.
*                A - 1, 2, 6, 7.
*                B - 1, 7.
* 
*         CALLS  WOD. 
  
  
 XWOD     SUBR               ENTRY/EXIT 
          SB1    1           (B1) = 1 
          SB7    A1          SAVE (A1)
          SA1    X1          FETCH W
          RJ     WOD
          SA2    B7+B1       FETCH LOCATION (A) 
          SA6    X2          STORE UPPER 10 CHARACTERS
          SA7    X2+B1       STORE LOWER 10 CHARACTERS
          EQ     XWODX       RETURN 
  
*CALL     COMCWOD            CONVERT WORD TO OCTAL DISPLAY CODE.
  
          END 
          IDENT  XZAP 
          ENTRY  XZAP 
          SYSCOM B1 
          TITLE  XZAP - *Z* ARGUMENT PROCESSOR. 
*COMMENT  *Z* ARGUMENT PROCESSOR. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
  
*CALL     COMCMAC 
 XZAP     SPACE  4,15 
***       XZAP - *Z* ARGUMENT PROCESSOR.
* 
*         XZAP(FADDR);   (*SYMPL* CALL) 
* 
*         ENTRY  FADDR = FWA OF FET.
* 
*         EXIT   DIRECTIVES ENTERED INTO THE BUFFER 
*                SPECIFIED IN THE FET.
* 
*         USES   B - 1. 
*                X - 2. 
* 
*         CALLS  ZAP. 
  
  
 XZAP     SUBR               ENTRY/EXIT 
          SB1    1
          BX2    X1          SET ADDRESS OF FET 
          RJ     ZAP         PROCESS *Z* ARGUMENT 
          EQ     XZAPX      RETURN
  
*CALL     COMCUSB 
*CALL     COMCZAP 
  
          END 
