User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:sxinit.001

Deck SXINIT Part 001

3 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
02047  M00S01981.sxinit  +++|      FASTFOR DUMMY = 1 STEP 1 UNTIL MAXSLV + 1
02048  M00S01982.sxinit  +++|      DO
02049  M00S01983.sxinit  +++|        BEGIN  # INITIALIZE EACH SLAVE #
02050  M00S01984.sxinit  +++|        IF DUMMY EQ MIDX OR          ##
02051  M00S01985.sxinit  +++|          SINDX GR NUMSLV
02052  M00S01986.sxinit  +++|        THEN                         # BYPASS THIS *MF* #
02053  M00S01987.sxinit  +++|          BEGIN
02054  M00S01988.sxinit  +++|          TEST DUMMY;
02055  M00S01989.sxinit  +++|          END
02056  M00S01990.sxinit  +++|
02057  M00S01991.sxinit  +++|        P<MTOSREPBLK> = LOC(MTOSHEAD) + L$MTOSH + (SINDX-1)*NUMRB;
02058  M00S01992.sxinit  +++|        PFNAME = STOMPFN;
02059  M00S01993.sxinit  +++|        CHAR10 = XCOD(DUMMY);
02060  M00S01994.sxinit  +++|        CHAR1 = C<9,1>CHAR10;
02061  M00S01995.sxinit  +++|        B<36,6>PFNAME = CHAR1;
02062  M00S01996.sxinit  +++|        SLVN$INDX[0] = CHAR1;
02063  M00S01997.sxinit  +++|        MSH$PFNS[SINDX] = PFNAME;
02064  M00S01998.sxinit  +++|
02065  M00S01999.sxinit  +++|#
02066  M00S02000.sxinit  +++|*     ATTACH AND READ THE *STOM* FILE FOR THIS SLAVE
02067  M00S02001.sxinit  +++|#
02068  M00S02002.sxinit  +++|
02069  M00S02003.sxinit  +++|        PFD("ATTACH",PFNAME,0,"PW",STOMPW,"M","RM","RC",PFSTAT, "NA",0
02070  M00S02004.sxinit  +++|          ,"UP",0,0);
02071  M00S02005.sxinit  +++|        IF PFSTAT NQ OK
02072  M00S02006.sxinit  +++|        THEN                         # REJECT SLAVE #
02073  M00S02007.sxinit  +++|          BEGIN
02074  M00S02008.sxinit  +++|          STATS = S"OMIT";
02075  M00S02009.sxinit  +++|          MMFD$PROB[0] = "NO *STOM* FILE.";
02076  M00S02010.sxinit  +++|          GOTO INITSLAVE;
02077  M00S02011.sxinit  +++|          END
02078  M00S02012.sxinit  +++|
02079  M00S02013.sxinit  +++|        ZSETFET(LOC(STOMM),PFNAME,LOC(STOMMBUF),STOMBUFL,SFETL);
02080  M00S02014.sxinit  +++|        READ(STOMM,NRCL);
02081  M00S02015.sxinit  +++|        READW(STOMM,RBBUF,RBSIZE,STAT);
02082  M00S02016.sxinit  +++|        MMFD$PROB[0] = "STOM FILE LENGTH PROB.";
02083  M00S02017.sxinit  +++|        IF STAT NQ OK
02084  M00S02018.sxinit  +++|        THEN                         # REJECT SLAVE #
02085  M00S02019.sxinit  +++|          BEGIN
02086  M00S02020.sxinit  +++|          STATS = S"OMIT";
02087  M00S02021.sxinit  +++|          GOTO INITSLAVE;
02088  M00S02022.sxinit  +++|          END
02089  M00S02023.sxinit  +++|
02090  M00S02024.sxinit  +++|        PDATE(PDATESTAT[0]);
02091  M00S02025.sxinit  +++|        RTIME(RTIMESTAT[0]);
02092  M00S02026.sxinit  +++|
02093  M00S02027.sxinit  +++|#
02094  M00S02028.sxinit  +++|*     INITIALIZE THE *MTOS* FILE HEADER
02095  M00S02029.sxinit  +++|*     TO INDICATE THE SLAVE EXEC STATUS.
02096  M00S02030.sxinit  +++|#
02097  M00S02031.sxinit  +++|
02098  M00S02032.sxinit  +++|        MSH$SSW[SINDX] = SM$SSW[0];
02099  M00S02033.sxinit  +++|        MSH$MIDS[SINDX] = SM$MIDS[0];
02100  M00S02034.sxinit  +++|
02101  M00S02035.sxinit  +++|        IF SM$IDLE[0]
02102  M00S02036.sxinit  +++|        THEN
02103  M00S02037.sxinit  +++|          BEGIN
02104  M00S02038.sxinit  +++|          STATS = S"IDLE";
02105  M00S02039.sxinit  +++|          SLVN$STAT[0] = "IDLE.";
02106  M00S02040.sxinit  +++|          MSH$TIMOUT[SINDX] = MAXSECS;
02107  M00S02041.sxinit  +++|          END
02108  M00S02042.sxinit  +++|
02109  M00S02043.sxinit  +++|        ELSE
02110  M00S02044.sxinit  +++|          BEGIN
02111  M00S02045.sxinit  +++|          STATS = S"ACTIVE";
02112  M00S02046.sxinit  +++|          SLVN$STAT[0] = "ACTIVE.";
02113  M00S02047.sxinit  +++|          MSH$TIMOUT[SINDX] = RTIMSECS[0] + SLAV$INTV;
02114  M00S02048.sxinit  +++|          END
02115  M00S02049.sxinit  +++|
02116  M00S02050.sxinit  +++|#
02117  M00S02051.sxinit  +++|*     CHECK THE LENGTH OF THE *STOM* FILE AND
02118  M00S02052.sxinit  +++|*     INITIALIZE THE MASTER REPLY CODE FIELDS.
02119  M00S02053.sxinit  +++|#
02120  M00S02054.sxinit  +++|
02121  M00S02055.sxinit  +++|        FASTFOR RB = 1 STEP 1 UNTIL NUMRB
02122  M00S02056.sxinit  +++|        DO
02123  M00S02057.sxinit  +++|          BEGIN  # CHECK LENGTH OF THE *STOM* FILE #
02124  M00S02058.sxinit  +++|          READW(STOMM,RBBUF,RBSIZE,STAT);
02125  M00S02059.sxinit  +++|          IF STAT NQ OK
02126  M00S02060.sxinit  +++|          THEN
02127  M00S02061.sxinit  +++|            BEGIN
02128  M00S02062.sxinit  +++|            STATS = S"OMIT";
02129  M00S02063.sxinit  +++|            GOTO INITSLAVE;
02130  M00S02064.sxinit  +++|            END
02131  M00S02065.sxinit  +++|
02132  M00S02066.sxinit  +++|          IF MSR$MRC[RB] EQ S"ACCEPTED"
02133  M00S02067.sxinit  +++|          THEN                       # INITIALIZE REPLY CODE AND STATUS
02134  M00S02068.sxinit  +++|                                       FIELDS #
02135  M00S02069.sxinit  +++|            BEGIN
02136  M00S02070.sxinit  +++|            MSR$MRC[RB] = S"FINISHED";
02137  M00S02071.sxinit  +++|            MSR$REPLY[RB] = S"ABANDONED";
02138  M00S02072.sxinit  +++|            MSR$PDATE[RB] = PDATEV[0];
02139  M00S02073.sxinit  +++|            END
02140  M00S02074.sxinit  +++|
02141  M00S02075.sxinit  +++|          END  # CHECK LENGTH OF THE *STOM* FILE #
02142  M00S02076.sxinit  +++|
02143  M00S02077.sxinit  +++|INITSLAVE:
02144  M00S02078.sxinit  +++|
02145  M00S02079.sxinit  +++|        MSH$STATS[SINDX] = STATS;
02146  M00S02080.sxinit  +++|        IF STATS EQ S"ACTIVE" OR STATS EQ S"IDLE"
02147  M00S02081.sxinit  +++|        THEN                         # SLAVE IS DEFINED #
02148  M00S02082.sxinit  +++|          BEGIN
02149  M00S02083.sxinit  +++|          MSH$DEFD[SINDX] = TRUE;
02150  M00S02084.sxinit  +++|          SLAVECTR = SLAVECTR + 1;
02151  M00S02085.sxinit  +++|          MESSAGE(SLVNSTAT,SYSUDF1);
02152  M00S02086.sxinit  +++|          SINDX = SINDX + 1;
02153  M00S02087.sxinit  +++|          END
02154  M00S02088.sxinit  +++|
02155  M00S02089.sxinit  +++|        ELSE                         # SLAVE IS NOT DEFINED #
02156  M00S02090.sxinit  +++|          BEGIN
02157  M00S02091.sxinit  +++|          MSH$DEFD[SINDX] = FALSE;
02158  M00S02092.sxinit  +++|          SLVN$STAT[0] = "OMITTED - ";
02159  M00S02093.sxinit  +++|          MESSAGE(SLVNSTAT,SYSUDF1);
02160  M00S02094.sxinit  +++|          MESSAGE(MMFDETAIL,SYSUDF1);
02161  M00S02095.sxinit  +++|          END
02162  M00S02096.sxinit  +++|
02163  M00S02097.sxinit  +++|        END  # INITIALIZE EACH SLAVE #
02164  M00S02098.sxinit  +++|
02165  M00S02099.sxinit  +++|
02166  M00S02100.sxinit  +++|
02167  M00S02101.sxinit  +++|INITMASTER:
02168  M00S02102.sxinit  +++|
02169  M00S02103.sxinit  +++|#
02170  M00S02104.sxinit  +++|*     ESTABLISH THE NEXT TIME TO CALL THE SLAVE
02171  M00S02105.sxinit  +++|*     REQUEST PROCESSOR AND TO FLUSH THE *MTOS* BUFFERS.
02172  M00S02106.sxinit  +++|*     ISSUE A MESSAGE WITH THE FINAL INITIALIZATION STATUS.
02173  M00S02107.sxinit  +++|#
02174  M00S02108.sxinit  +++|
02175  M00S02109.sxinit  +++|      MTOS$EXPIR = MAXSECS;
02176  M00S02110.sxinit  +++|      STOM$EXPIR = MAXSECS;
02177  M00S02111.sxinit  +++|      IF STATM EQ S"SMF"
02178  M00S02112.sxinit  +++|      THEN
02179  M00S02113.sxinit  +++|        BEGIN
02180  M00S02114.sxinit  +++|        MMF$TEXT[0] = " EXEC IN SINGLE MAINFRAME MODE.";
02181  M00S02115.sxinit  +++|        MESSAGE(MMFSTAT,SYSUDF1);
02182  M00S02116.sxinit  +++|        RETURN;
02183  M00S02117.sxinit  +++|        END
02184  M00S02118.sxinit  +++|
02185  M00S02119.sxinit  +++|      IF STATM EQ S"ACTIVE"
02186  M00S02120.sxinit  +++|      THEN                           # TEST IF ALL SLAVES OMITTED #
02187  M00S02121.sxinit  +++|        BEGIN  # CHECK SLAVE STATUS #
02188  M00S02122.sxinit  +++|        IF SLAVECTR NQ 0
02189  M00S02123.sxinit  +++|        THEN
02190  M00S02124.sxinit  +++|          BEGIN
02191  M00S02125.sxinit  +++|          MTOS$EXPIR = 0;
02192  M00S02126.sxinit  +++|          STOM$EXPIR = 0;
02193  M00S02127.sxinit  +++|          MMF$STAT[0] = "OK.";
02194  M00S02128.sxinit  +++|          MESSAGE(MMFSTAT,SYSUDF1);
02195  M00S02129.sxinit  +++|          RETURN;
02196  M00S02130.sxinit  +++|          END
02197  M00S02131.sxinit  +++|
02198  M00S02132.sxinit  +++|        ELSE
02199  M00S02133.sxinit  +++|          BEGIN
02200  M00S02134.sxinit  +++|          MMFD$PROB[0] = "ALL SLAVES OMITTED.";
02201  M00S02135.sxinit  +++|          END
02202  M00S02136.sxinit  +++|
02203  M00S02137.sxinit  +++|        END  # CHECK SLAVE STATUS #
02204  M00S02138.sxinit  +++|
02205  M00S02139.sxinit  +++|      MMF$STAT[0] = "FAILED - ";
02206  M00S02140.sxinit  +++|      MESSAGE(MMFSTAT,SYSUDF1);
02207  M00S02141.sxinit  +++|      MESSAGE(MMFDETAIL,SYSUDF1);
02208  M00S02142.sxinit  +++|      RETERN(MTOSM,RCL);
02209  M00S02143.sxinit  +++|      RETURN;
02210  M00S02144.sxinit  +++|      END  # INITSRP #
02211  M00S02145.sxinit  +++|
02212  M00S02146.sxinit  +++|    TERM
02213  M00S02147.sxinit  +++|PROC INITTAB;
02214  M00S02148.sxinit  +++|# TITLE INITTAB - INITIALIZES ASSORTED TABLES.                        #
02215  M00S02149.sxinit  +++|      BEGIN  # INITTAB #
02216  M00S02150.sxinit  +++|
02217  M00S02151.sxinit  +++|#
02218  M00S02152.sxinit  +++|**    INITTAB - INITIALIZES ASSORTED TABLES.
02219  M00S02153.sxinit  +++|*
02220  M00S02154.sxinit  +++|*     THIS ROUTINE WILL INITIALIZE TABLES USED BY *SSEXEC* AND CREATE
02221  M00S02155.sxinit  +++|*     THE MEMORY ALLOCATION TABLE (*MAT*) WHICH DESCRIBES THE *FWA* OF
02222  M00S02156.sxinit  +++|*     EACH TABLE, THE ENTRY COUNT AND THE SPACE ALLOCATED FOR EACH
02223  M00S02157.sxinit  +++|*     TABLE.
02224  M00S02158.sxinit  +++|*
02225  M00S02159.sxinit  +++|*     EXIT      TABLES DEFINED IN THE *MAT* HAVE BEEN INITIALIZED.
02226  M00S02160.sxinit  +++|*
02227  M00S02161.sxinit  +++|*     MESSAGES  SSEXEC SEEKING FL INCREASE.
02228  M00S02162.sxinit  +++|*               SSEXEC ACTIVE.
02229  M00S02163.sxinit  +++|*               EXEC ABNORMAL - INITTAB.
02230  M00S02164.sxinit  +++|#
02231  M00S02165.sxinit  +++|
02232  M00S02166.sxinit  +++|#
02233  M00S02167.sxinit  +++|****  PROC INITTAB - XREF LIST BEGIN.
02234  M00S02168.sxinit  +++|#
02235  M00S02169.sxinit  +++|
02236  M00S02170.sxinit  +++|      XREF
02237  M00S02171.sxinit  +++|        BEGIN
02238  M00S02172.sxinit  +++|        PROC ABORT;                  # CALLS ABORT MACRO #
02239  M00S02173.sxinit  +++|        PROC CALCTS;                 # CALCULATES TABLE SPACE #
02240  M00S02174.sxinit  +++|        PROC INITTS;                 # INITIALIZES TABLES #
02241  M00S02175.sxinit  +++|        PROC MEMORY;                 # CALLS MESSAGE MACRO #
02242  M00S02176.sxinit  +++|        PROC MESSAGE;                # CALLS *MESSAGE* MACRO #
02243  M00S02177.sxinit  +++|        PROC MNGMEM;                 # CHANGES FIELD LENGTH #
02244  M00S02178.sxinit  +++|        PROC MSG;                    # CALLS *MESSAGE* MACRO #
02245  M00S02179.sxinit  +++|        PROC RECALL;                 # CALLS RECALL MACRO #
02246  M00S02180.sxinit  +++|        FUNC XCDD C(10);             # INTEGER TO DECIMAL DISPLAY #
02247  M00S02181.sxinit  +++|        PROC ZFILL;                  # ZEROES BUFFER SPACE #
02248  M00S02182.sxinit  +++|        END
02249  M00S02183.sxinit  +++|
02250  M00S02184.sxinit  +++|#
02251  M00S02185.sxinit  +++|****  PROC INITTAB - XREF LIST END.
02252  M00S02186.sxinit  +++|#
02253  M00S02187.sxinit  +++|
02254  M00S02188.sxinit  +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
02255  M00S02189.sxinit  +++|*CALL COMBFAS
02256  M00S02190.sxinit  +++|*CALL COMBMAT
02257  M00S02191.sxinit  +++|*CALL COMXACM
02258  M00S02192.sxinit  +++|*CALL COMXCTF
02259  M00S02193.sxinit  +++|*CALL COMXMSC
02260  M00S02194.sxinit  +++|*CALL COMXINT
02261  M00S02195.sxinit  +++|*CALL,COMXJCA
02262  M00S02196.sxinit  +++|
02263  M00S02197.sxinit  +++|      ITEM DC$FL      C(10);         # CHARACTER FIELD FOR *XCDD* #
02264  M00S02198.sxinit  +++|      ITEM FLCHNG     I;             # FIELD LENGTH CHANGE AMOUNT #
02265  M00S02199.sxinit  +++|      ITEM I          U;             # INDEX #
02266  M00S02200.sxinit  +++|      ITEM RCLFLAG    B;             # *FL* ACCESS DELAY FLAG #
02267  M00S02201.sxinit  +++|      ITEM RESP       U;             # RESPONSE FROM *MNGMEM* #
02268  M00S02202.sxinit  +++|      ITEM TLAST      U;             # LAST TABLE WORD #
02269  M00S02203.sxinit  +++|      ITEM TLEN       U;             # TABLE LENGTH #
02270  M00S02204.sxinit  +++|      ITEM TSTART     U;             # FIRST TABLE WORD #
02271  M00S02205.sxinit  +++|
02272  M00S02206.sxinit  +++|#
02273  M00S02207.sxinit  +++|*     ARRAY FOR *ZFILL* PROCEDURE.
02274  M00S02208.sxinit  +++|#
02275  M00S02209.sxinit  +++|
02276  M00S02210.sxinit  +++|      BASED
02277  M00S02211.sxinit  +++|      ARRAY DUMAR[0:0] P(1);
02278  M00S02212.sxinit  +++|      ;
02279  M00S02213.sxinit  +++|
02280  M00S02214.sxinit  +++|
02281  M00S02215.sxinit  +++|#
02282  M00S02216.sxinit  +++|*     MESSAGE BUFFER.
02283  M00S02217.sxinit  +++|#
02284  M00S02218.sxinit  +++|
02285  M00S02219.sxinit  +++|      ARRAY MSGBUF[0:0] P(5);
02286  M00S02220.sxinit  +++|        BEGIN  # ARRAY MSGBUF #
02287  M00S02221.sxinit  +++|        ITEM MSG$LINE   C(00,00,40);  # MESSAGE LINE #
02288  M00S02222.sxinit  +++|        ITEM MSG$RZRO   C(04,00,12);  # ZERO BYE TERMINATOR #
02289  M00S02223.sxinit  +++|        END  # ARRAY MSGBUF #
02290  M00S02224.sxinit  +++|
02291  M00S02225.sxinit  +++|      ARRAY STATARY[0:0] P(1);       # STATUS FOR MEMORY MACRO #
02292  M00S02226.sxinit  +++|        BEGIN  # STATARY #
02293  M00S02227.sxinit  +++|        ITEM STAT       U(00,00,30);  # STATUS #
02294  M00S02228.sxinit  +++|        ITEM ZEROFL     U(00,30,30);  # ZERO FILL REST OF WORD #
02295  M00S02229.sxinit  +++|        END  # STATARY #
02296  M00S02230.sxinit  +++|
02297  M00S02231.sxinit  +++|                                               CONTROL EJECT;
02298  M00S02232.sxinit  +++|
02299  M00S02233.sxinit  +++|#
02300  M00S02234.sxinit  +++|*     CALL *CALCTS* TO CALCULATE THE ENTRY COUNTS AND THE TABLE SPACE
02301  M00S02235.sxinit  +++|*     REQUIRED.
02302  M00S02236.sxinit  +++|#
02303  M00S02237.sxinit  +++|
02304  M00S02238.sxinit  +++|      CALCTS;
02305  M00S02239.sxinit  +++|
02306  M00S02240.sxinit  +++|      P<RA$AREA> = 0;                # POINTER TO *RA* AREA #
02307  M00S02241.sxinit  +++|
02308  M00S02242.sxinit  +++|#
02309  M00S02243.sxinit  +++|*     CYCLE THROUGH ARRAY *MAT* CALCULATING THE *FWA* OF EACH ENTRY
02310  M00S02244.sxinit  +++|*     BASED ON THE *FWA* AND SPACE REQUIRED OF THE PREVIOUS ENTRY.
02311  M00S02245.sxinit  +++|#
02312  M00S02246.sxinit  +++|
02313  M00S02247.sxinit  +++|      NEXTADR = RA$HHA;              # FOR *MNGMEM* OPERATIONS #
02314  M00S02248.sxinit  +++|      MAT$FWA[0] = RA$HHA;           # USE NEXT AVAILABLE FOR FIRST #
02315  M00S02249.sxinit  +++|
02316  M00S02250.sxinit  +++|      SLOWFOR I = 1 STEP 1           ##
02317  M00S02251.sxinit  +++|        WHILE I LS MAT$ENTRY"MAT$LAST"
02318  M00S02252.sxinit  +++|      DO
02319  M00S02253.sxinit  +++|        BEGIN
02320  M00S02254.sxinit  +++|        MAT$FWA[I] = MAT$FWA[I-1] + MAT$SPACE[I-1];
02321  M00S02255.sxinit  +++|        END
02322  M00S02256.sxinit  +++|
02323  M00S02257.sxinit  +++|#
02324  M00S02258.sxinit  +++|*     GET THE MEMORY REQUIRED FOR THE VARIABLE TABLES.
02325  M00S02259.sxinit  +++|#
02326  M00S02260.sxinit  +++|
02327  M00S02261.sxinit  +++|      STAT = 0;                      # REQUEST CURRENT *FL* #
02328  M00S02262.sxinit  +++|      MEMORY("CM",STATARY,RCL,NA);
02329  M00S02263.sxinit  +++|
02330  M00S02264.sxinit  +++|      IF STAT EQ 0
02331  M00S02265.sxinit  +++|      THEN
02332  M00S02266.sxinit  +++|        BEGIN  # IF CURRENT *FL* NOT RETURNED #
02333  M00S02267.sxinit  +++|        FE$RTN[0] = "INITTAB.";      # SET ROUTINE INTO ERROR MESSAGE #
02334  M00S02268.sxinit  +++|        MESSAGE(FEMSG[0],UDFL1);
02335  M00S02269.sxinit  +++|        ABORT;
02336  M00S02270.sxinit  +++|        END  # IF CURRENT *FL* NOT RETURNED #
02337  M00S02271.sxinit  +++|
02338  M00S02272.sxinit  +++|      CUR$FL = STAT;                 # USED BY *MNGMEM* #
02339  M00S02273.sxinit  +++|      MAX$FL = CUR$FL;               # SET MAXIMUM *FL* #
02340  M00S02274.sxinit  +++|      UNU$FL = CUR$FL - NEXTADR;
02341  M00S02275.sxinit  +++|      FLCHNG = MAT$FWA[MAT$ENTRY"MAT$LAST" - 1] +  ##
02342  M00S02276.sxinit  +++|        MAT$SPACE[MAT$ENTRY"MAT$LAST" - 1] - NEXTADR;
02343  M00S02277.sxinit  +++|      RCLFLAG = FALSE;               # DELAY FLAG #
02344  M00S02278.sxinit  +++|
02345  M00S02279.sxinit  +++|      SLOWFOR I = 0 WHILE RESP EQ 0
02346  M00S02280.sxinit  +++|      DO
02347  M00S02281.sxinit  +++|        BEGIN  # LOOP UNTIL *FL* INCREASE SATISFIED #
02348  M00S02282.sxinit  +++|        MNGMEM(FLCHNG,RESP);         # REQUEST *FL* INCREASE #
02349  M00S02283.sxinit  +++|        IF RESP EQ 0
02350  M00S02284.sxinit  +++|        THEN
02351  M00S02285.sxinit  +++|          BEGIN  # IF ATTEMPT UNSUCCESSFUL #
02352  M00S02286.sxinit  +++|          MSG$LINE[0] = "$SSEXEC SEEKING FL INCREASE.";
02353  M00S02287.sxinit  +++|          MESSAGE(MSGBUF[0],LINE1);
02354  M00S02288.sxinit  +++|          RECALL;
02355  M00S02289.sxinit  +++|          RCLFLAG = TRUE;
02356  M00S02290.sxinit  +++|          END  # IF ATTEMPT UNSUCCESSFUL #
02357  M00S02291.sxinit  +++|
02358  M00S02292.sxinit  +++|        END  # LOOP UNTIL *FL* INCREASE SATISFIED #
02359  M00S02293.sxinit  +++|
02360  M00S02294.sxinit  +++|      IF RCLFLAG
02361  M00S02295.sxinit  +++|      THEN
02362  M00S02296.sxinit  +++|        BEGIN  # IF *FL* ACCESS DELAYED #
02363  M00S02297.sxinit  +++|        MSG$LINE[0] = " FL OBTAINED.";
02364  M00S02298.sxinit  +++|        MESSAGE(MSG$LINE[0],LINE1);
02365  M00S02299.sxinit  +++|        END  # IF *FL* ACCESS DELAYED #
02366  M00S02300.sxinit  +++|
02367  M00S02301.sxinit  +++|        MSG("       ",SYSUDF1);
02368  M00S02302.sxinit  +++|
02369  M00S02303.sxinit  +++|#
02370  M00S02304.sxinit  +++|*     CALL *INITTS* TO PRESET INITIAL VALUES IN THE VARIABLE AND FIXED
02371  M00S02305.sxinit  +++|*     TABLES.
02372  M00S02306.sxinit  +++|#
02373  M00S02307.sxinit  +++|
02374  M00S02308.sxinit  +++|
02375  M00S02309.sxinit  +++|      TSTART = MAT$FWA[MAT$ENTRY"HLRQ"];
02376  M00S02310.sxinit  +++|      TLAST = MAT$FWA[MAT$ENTRY"MAT$LAST" -1] +  ##
02377  M00S02311.sxinit  +++|        MAT$SPACE[MAT$ENTRY"MAT$LAST" -1];
02378  M00S02312.sxinit  +++|      TLEN = TLAST - TSTART;
02379  M00S02313.sxinit  +++|      P<DUMAR> = TSTART;
02380  M00S02314.sxinit  +++|      ZFILL(DUMAR,TLEN);
02381  M00S02315.sxinit  +++|
02382  M00S02316.sxinit  +++|      INITTS;
02383  M00S02317.sxinit  +++|      END  # INITTAB #
02384  M00S02318.sxinit  +++|
02385  M00S02319.sxinit  +++|    TERM
02386  M00S02320.sxinit  +++|PROC INITTS;
02387  M00S02321.sxinit  +++|# TITLE INITTS - PRESET ASSORTED TABLES.                              #
02388  M00S02322.sxinit  +++|
02389  M00S02323.sxinit  +++|      BEGIN  # INITTS #
02390  M00S02324.sxinit  +++|
02391  M00S02325.sxinit  +++|#
02392  M00S02326.sxinit  +++|**    INITTS - PRESET ASSORTED TABLES.
02393  M00S02327.sxinit  +++|*
02394  M00S02328.sxinit  +++|*     THIS PROCEDURE WILL LINK TOGETHER ENTRIES TO FORM FREE SPACE
02395  M00S02329.sxinit  +++|*     CHAINS AND PRESET VALUES IN TABLES USED BY *SSEXEC*.
02396  M00S02330.sxinit  +++|*
02397  M00S02331.sxinit  +++|*     EXIT      TABLE VALUES HAVE BEEN PRESET.
02398  M00S02332.sxinit  +++|#
02399  M00S02333.sxinit  +++|
02400  M00S02334.sxinit  +++|#
02401  M00S02335.sxinit  +++|****  PROC INITTS - XREF LIST BEGIN.
02402  M00S02336.sxinit  +++|#
02403  M00S02337.sxinit  +++|
02404  M00S02338.sxinit  +++|      XREF
02405  M00S02339.sxinit  +++|        BEGIN
02406  M00S02340.sxinit  +++|        PROC BZFILL;                 # ZERO FILLS WORD #
02407  M00S02341.sxinit  +++|        PROC MESSAGE;                # ISSUE MESSAGE #
02408  M00S02342.sxinit  +++|        FUNC XCOD C(10);             # CHANGES INTEGER TO DISPLAY #
02409  M00S02343.sxinit  +++|        PROC ZFILL;                  # ZERO FILL BUFFER #
02410  M00S02344.sxinit  +++|        END
02411  M00S02345.sxinit  +++|
02412  M00S02346.sxinit  +++|#
02413  M00S02347.sxinit  +++|****  PROC INITTS - XREF LIST END.
02414  M00S02348.sxinit  +++|#
02415  M00S02349.sxinit  +++|
02416  M00S02350.sxinit  +++|      DEF FILLSIZE   #7#;            # FILL SIZE FOR *BZFILL* #
02417  M00S02351.sxinit  +++|
02418  M00S02352.sxinit  +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
02419  M00S02353.sxinit  +++|*CALL COMBFAS
02420  M00S02354.sxinit  +++|*CALL COMBBZF
02421  M00S02355.sxinit  +++|*CALL COMBCHN
02422  M00S02356.sxinit  +++|*CALL COMBCMD
02423  M00S02357.sxinit  +++|*CALL COMBFET
02424  M00S02358.sxinit  +++|*CALL,COMBLBL
02425  M00S02359.sxinit  +++|*CALL COMBLRQ
02426  M00S02360.sxinit  +++|*CALL COMBMAT
02427  M00S02361.sxinit  +++|*CALL COMBMCT
02428  M00S02362.sxinit  +++|*CALL COMBTDM
02429  M00S02363.sxinit  +++|*CALL COMBUDT
02430  M00S02364.sxinit  +++|*CALL COMXBST
02431  M00S02365.sxinit  +++|*CALL COMXCTF
02432  M00S02366.sxinit  +++|*CALL COMXFCQ
02433  M00S02367.sxinit  +++|*CALL COMXHLR
02434  M00S02368.sxinit  +++|*CALL COMXINT
02435  M00S02369.sxinit  +++|*CALL COMXLTC
02436  M00S02370.sxinit  +++|*CALL COMXMSC
02437  M00S02371.sxinit  +++|
02438  M00S02372.sxinit  +++|      ITEM FIRST      U;             # POINTER TO FIRST BUFFER WORD #
02439  M00S02373.sxinit  +++|      ITEM I          U;             # INDEX #
02440  M00S02374.sxinit  +++|      ITEM J          U;             # INDEX #
02441  M00S02375.sxinit  +++|      ITEM MSGTEMP    C(7);          # TEMPORARY CHARACTER ITEM #
02442  M00S02376.sxinit  +++|      ITEM ZEROFILL   S:TYPFILL = S"ZFILL";  # ZERO BUFFER FILL #
02443  M00S02377.sxinit  +++|
02444  M00S02378.sxinit  +++|
02445  M00S02379.sxinit  +++|#
02446  M00S02380.sxinit  +++|*     SMALL BUFFERS AND *FETS*.
02447  M00S02381.sxinit  +++|#
02448  M00S02382.sxinit  +++|
02449  M00S02383.sxinit  +++|      ARRAY CHARARY[0:0] P(1);
02450  M00S02384.sxinit  +++|        BEGIN
02451  M00S02385.sxinit  +++|        ITEM CHARTEMP   C(00,00,10);  # CHARACTER BUFFER #
02452  M00S02386.sxinit  +++|        ITEM CHARID     C(00,42,03);  # CHARACTER *ID* #
02453  M00S02387.sxinit  +++|        END
02454  M00S02388.sxinit  +++|
02455  M00S02389.sxinit  +++|      ARRAY NAMEFILE[0:0] P(1);
02456  M00S02390.sxinit  +++|        BEGIN  # NAMFILE #
02457  M00S02391.sxinit  +++|        ITEM NAME$HDR   C(00,00,07) = ["FILE"];  # NAME HEADER #
02458  M00S02392.sxinit  +++|        ITEM NAME$UNID  C(00,24,03);  # UNIQUE ID #
02459  M00S02393.sxinit  +++|        END  # NAMFILE #
02460  M00S02394.sxinit  +++|
02461  M00S02395.sxinit  +++|                                               CONTROL EJECT;
02462  M00S02396.sxinit  +++|
02463  M00S02397.sxinit  +++|#
02464  M00S02398.sxinit  +++|*     CHAIN ALL *HLRQ* ENTRIES TOGETHER AND PLACE A UNIQUE FILE NAME
02465  M00S02399.sxinit  +++|*     INTO EACH ENTRY.  ALSO SET THE *CHN$BOC* AND *CHN$EOC* FIELDS
02466  M00S02400.sxinit  +++|*     IN *COMBCHN* TO POINT TO THE BEGINNING AND END OF THE *HLRQ* FREE
02467  M00S02401.sxinit  +++|*     SPACE CHAIN.
02468  M00S02402.sxinit  +++|*
02469  M00S02403.sxinit  +++|*     THE UNIQUE FILE NAMES ARE OBTAINED BY PLACING A NUMERIC
02470  M00S02404.sxinit  +++|*     IDENTIFIER AT THE END OF THE WORD "FILE".  THE NUMERIC IDENTIFIER
02471  M00S02405.sxinit  +++|*     IS INCREMENTED BY ONE FOR EACH NEW FILE NAME.
02472  M00S02406.sxinit  +++|#
02473  M00S02407.sxinit  +++|
02474  M00S02408.sxinit  +++|      P<HLRQ> = MAT$FWA[MAT$ENTRY"HLRQ"];  # POINT TO FIRST ENTRY #
02475  M00S02409.sxinit  +++|      CHN$BOC[LCHN"HL$FRSPC"] = P<HLRQ>;  # BEGINNING OF CHAIN #
02476  M00S02410.sxinit  +++|
02477  M00S02411.sxinit  +++|      SLOWFOR I = 1 STEP 1           ##
02478  M00S02412.sxinit  +++|        WHILE I LQ MAT$COUNT[MAT$ENTRY"HLRQ"]
02479  M00S02413.sxinit  +++|      DO
02480  M00S02414.sxinit  +++|        BEGIN  # FOR ALL *HLRQ* ENTRIES #
02481  M00S02415.sxinit  +++|        CHN$EOC[LCHN"HL$FRSPC"] = P<HLRQ>;  # END OF CHAIN POINTER #
02482  M00S02416.sxinit  +++|
02483  M00S02417.sxinit  +++|        J = I + 100;
02484  M00S02418.sxinit  +++|        CHARTEMP[0] = XCOD(J);       # CHANGE INDEX TO DISPLAY CODE #
02485  M00S02419.sxinit  +++|        NAME$UNID[0] = CHARID[0];
02486  M00S02420.sxinit  +++|        HLR$FLNM[0] = NAME$HDR[0];   # PLACE FILE NAME INTO ENTRY #
02487  M00S02421.sxinit  +++|
02488  M00S02422.sxinit  +++|        HLR$LNK1[0] = P<HLRQ> + HLRQLEN;  # LINK TO NEXT ENTRY #
02489  M00S02423.sxinit  +++|        P<HLRQ> = HLR$LNK1[0];       # POINT TO THE NEXT ENTRY #
02490  M00S02424.sxinit  +++|        END  # FOR ALL *HLRQ* ENTRIES #
02491  M00S02425.sxinit  +++|
02492  M00S02426.sxinit  +++|      P<HLRQ> = P<HLRQ> - HLRQLEN;   # POINT TO LAST ENTRY OF CHAIN #
02493  M00S02427.sxinit  +++|      HLR$LNK1[0] = 0;               # CLEAR LAST POINTER #
02494  M00S02428.sxinit  +++|
02495  M00S02429.sxinit  +++|
02496  M00S02430.sxinit  +++|#
02497  M00S02431.sxinit  +++|*     CHAIN ALL *LLRQ* ENTRIES TOGETHER INTO A FREE SPACE CHAIN.
02498  M00S02432.sxinit  +++|#
02499  M00S02433.sxinit  +++|
02500  M00S02434.sxinit  +++|      P<LLRQ> = MAT$FWA[MAT$ENTRY"LLRQ"];  # POINT TO FIRST ENTRY #
02501  M00S02435.sxinit  +++|      CHN$BOC[LCHN"LL$FRSPC"] = P<LLRQ>;  # BEGINNING OF CHAIN #
02502  M00S02436.sxinit  +++|
02503  M00S02437.sxinit  +++|      SLOWFOR I = 1 STEP 1           ##
02504  M00S02438.sxinit  +++|        WHILE I LQ MAT$COUNT[MAT$ENTRY"LLRQ"]
02505  M00S02439.sxinit  +++|      DO
02506  M00S02440.sxinit  +++|        BEGIN  # FOR ALL *LLRQ* ENTRIES #
02507  M00S02441.sxinit  +++|        CHN$EOC[LCHN"LL$FRSPC"] = P<LLRQ>;  # END OF CHAIN POINTER #
02508  M00S02442.sxinit  +++|        LLR$LINK1[0] = P<LLRQ> + LLRQENTL;  # LINK TO NEXT ENTRY #
02509  M00S02443.sxinit  +++|        P<LLRQ> = LLR$LINK1[0];      # POINT TO NEXT ENTRY #
02510  M00S02444.sxinit  +++|        END  # FOR ALL *LLRQ* ENTRIES #
02511  M00S02445.sxinit  +++|
02512  M00S02446.sxinit  +++|      P<LLRQ> = P<LLRQ> - LLRQENTL;  # POINT TO LAST ENTRY OF CHAIN #
02513  M00S02447.sxinit  +++|      LLR$LINK1[0] = 0;              # CLEAR LAST POINTER #
02514  M00S02448.sxinit  +++|
02515  M00S02449.sxinit  +++|
02516  M00S02450.sxinit  +++|#
02517  M00S02451.sxinit  +++|*     CHAIN ALL *RTRQ* ENTRIES TOGETHER INTO A FREE SPACE CHAIN.
02518  M00S02452.sxinit  +++|#
02519  M00S02453.sxinit  +++|
02520  M00S02454.sxinit  +++|      P<LINKWRD> = MAT$FWA[MAT$ENTRY"RTRQ"];  # POINT TO FIRST ENTRY #
02521  M00S02455.sxinit  +++|      CHN$BOC[LCHN"RTD$FRSPC"] = P<LINKWRD>;  # BEGINNING OF CHAIN #
02522  M00S02456.sxinit  +++|
02523  M00S02457.sxinit  +++|      SLOWFOR I = 1 STEP 1           ##
02524  M00S02458.sxinit  +++|        WHILE I LQ MAT$COUNT[MAT$ENTRY"RTRQ"]
02525  M00S02459.sxinit  +++|      DO
02526  M00S02460.sxinit  +++|        BEGIN  # FOR ALL *RTRQ* ENTRIES #
02527  M00S02461.sxinit  +++|        CHN$EOC[LCHN"RTD$FRSPC"] = P<LINKWRD>;  # END OF CHAIN #
02528  M00S02462.sxinit  +++|        LINK$ADR[0] = P<LINKWRD> + TDAMLEN + 1;  # LINK TO NEXT ENTRY #
02529  M00S02463.sxinit  +++|        P<LINKWRD> = LINK$ADR[0];    # POINT TO NEXT ENTRY #
02530  M00S02464.sxinit  +++|        END  # FOR ALL *RTRQ* ENTRIES #
02531  M00S02465.sxinit  +++|
02532  M00S02466.sxinit  +++|      P<LINKWRD> = P<LINKWRD> - TDAMLEN - 1;  # POINT TO LAST ENTRY #
02533  M00S02467.sxinit  +++|      LINK$ADR[0] = 0;               # CLEAR LAST POINTER #
02534  M00S02468.sxinit  +++|
02535  M00S02469.sxinit  +++|
02536  M00S02470.sxinit  +++|#
02537  M00S02471.sxinit  +++|*     CHAIN ALL *FCTQ* ENTRIES TOGETHER INTO A FREE SPACE CHAIN.
02538  M00S02472.sxinit  +++|#
02539  M00S02473.sxinit  +++|
02540  M00S02474.sxinit  +++|      P<FCTQ> = MAT$FWA[MAT$ENTRY"FCTQ"];  # POINT TO FIRST ENTRY #
02541  M00S02475.sxinit  +++|      CHN$BOC[LCHN"FCT$FRSPC"] = P<FCTQ>;  # BEGINNING OF CHAIN #
02542  M00S02476.sxinit  +++|
02543  M00S02477.sxinit  +++|      SLOWFOR I = 1 STEP 1           ##
02544  M00S02478.sxinit  +++|        WHILE I LQ MAT$COUNT[MAT$ENTRY"FCTQ"]
02545  M00S02479.sxinit  +++|      DO
02546  M00S02480.sxinit  +++|        BEGIN  # FOR ALL *FCTQ* ENTRIES #
02547  M00S02481.sxinit  +++|        CHN$EOC[LCHN"FCT$FRSPC"] = P<FCTQ>;  # END OF CHAIN POINTER #
02548  M00S02482.sxinit  +++|        FCTQLINK1[0] = P<FCTQ> + FCTQHL + FCTENTL;  # LINK TO NEXT #
02549  M00S02483.sxinit  +++|        P<FCTQ> = FCTQLINK1[0];      # POINT TO NEXT ENTRY #
02550  M00S02484.sxinit  +++|        END  # FOR ALL *FCTQ* ENTRIES #
02551  M00S02485.sxinit  +++|
02552  M00S02486.sxinit  +++|      P<FCTQ> = P<FCTQ> - FCTQHL - FCTENTL;  # POINT TO LAST ENTRY #
02553  M00S02487.sxinit  +++|      FCTQLINK1[0] = 0;              # CLEAR LAST POINTER #
02554  M00S02488.sxinit  +++|
02555  M00S02489.sxinit  +++|
02556  M00S02490.sxinit  +++|#
02557  M00S02491.sxinit  +++|*     SET THE AUTHORIZED FLAG IN THE FIRST *BST* ENTRY.
02558  M00S02492.sxinit  +++|#
02559  M00S02493.sxinit  +++|
02560  M00S02494.sxinit  +++|      P<BST> = MAT$FWA[MAT$ENTRY"BST"];  # POINT TO FIRST ENTRY #
02561  M00S02495.sxinit  +++|      BST$AUTH[1] = TRUE;            # SET AUTHORIZED FLAG #
02562  M00S02496.sxinit  +++|
02563  M00S02497.sxinit  +++|
02564  M00S02498.sxinit  +++|#
02565  M00S02499.sxinit  +++|*     INITIALIZE THE CATALOG *FET*.
02566  M00S02500.sxinit  +++|#
02567  M00S02501.sxinit  +++|
02568  M00S02502.sxinit  +++|      P<FETSET> = MAT$FWA[MAT$ENTRY"CAT$FET"];  # POINT TO *FCT* FET #
02569  M00S02503.sxinit  +++|
02570  M00S02504.sxinit  +++|      FIRST = MAT$FWA[MAT$ENTRY"CAT$BUF"];  # FIRST LOCATION POINTER #
02571  M00S02505.sxinit  +++|      FET$IN[0] = FIRST;             # IN POINTER #
02572  M00S02506.sxinit  +++|      FET$OUT[0] = FIRST;            # OUT POINTER #
02573  M00S02507.sxinit  +++|      FET$LIM[0] = FIRST + SEQBL;    # LIMIT #
02574  M00S02508.sxinit  +++|
02575  M00S02509.sxinit  +++|      FCTFADR = MAT$FWA[MAT$ENTRY"CAT$FET"];
02576  M00S02510.sxinit  +++|      P<FCTFET> = FCTFADR;
02577  M00S02511.sxinit  +++|
02578  M00S02512.sxinit  +++|
02579  M00S02513.sxinit  +++|#
02580  M00S02514.sxinit  +++|*     INITIALIZE THE MAP *FET*.
02581  M00S02515.sxinit  +++|#
02582  M00S02516.sxinit  +++|
02583  M00S02517.sxinit  +++|      P<FETSET> = MAT$FWA[MAT$ENTRY"MAP$FET"];  # POINT TO *MAP* FET #
02584  M00S02518.sxinit  +++|
02585  M00S02519.sxinit  +++|      FIRST = MAT$FWA[MAT$ENTRY"MAP$BUF"];  # FIRST LOCATION POINTER #
02586  M00S02520.sxinit  +++|      FET$IN[0] = FIRST;             # IN POINTER #
02587  M00S02521.sxinit  +++|      FET$OUT[0] = FIRST;            # OUT POINTER #
02588  M00S02522.sxinit  +++|      FET$LIM[0] = FIRST + MAPBUFL;  # LIMIT #
02589  M00S02523.sxinit  +++|
02590  M00S02524.sxinit  +++|      MAPFADR = MAT$FWA[MAT$ENTRY"MAP$FET"];
02591  M00S02525.sxinit  +++|      P<MAPFET> = MAPFADR;
02592  M00S02526.sxinit  +++|
02593  M00S02527.sxinit  +++|#
02594  M00S02528.sxinit  +++|*     INITIALIZE THE TEMPORARY *FET*.
02595  M00S02529.sxinit  +++|#
02596  M00S02530.sxinit  +++|
02597  M00S02531.sxinit  +++|      P<FETSET> = MAT$FWA[MAT$ENTRY"TEMP$FET"];
02598  M00S02532.sxinit  +++|
02599  M00S02533.sxinit  +++|      FIRST = MAT$FWA[MAT$ENTRY"TEMP$BUF"];  # FIRST LOCATION POINTER #
02600  M00S02534.sxinit  +++|      FET$IN[0] = FIRST;             # IN POINTER #
02601  M00S02535.sxinit  +++|      FET$OUT[0] = FIRST;            # OUT POINTER #
02602  M00S02536.sxinit  +++|      FET$LIM[0] = FIRST + TBUFL;    # LIMIT #
02603  M00S02537.sxinit  +++|
02604  M00S02538.sxinit  +++|      TFETADR = MAT$FWA[MAT$ENTRY"TEMP$FET"];
02605  M00S02539.sxinit  +++|      P<TFET> = TFETADR;
02606  M00S02540.sxinit  +++|
02607  M00S02541.sxinit  +++|#
02608  M00S02542.sxinit  +++|*     INITIALIZE THE POINTERS TO THE BASED ARRAYS.
02609  M00S02543.sxinit  +++|#
02610  M00S02544.sxinit  +++|
02611  M00S02545.sxinit  +++|      ASTBADR = MAT$FWA[MAT$ENTRY"AST$BUF"];
02612  M00S02546.sxinit  +++|
02613  M00S02547.sxinit  +++|      FCTBADR = MAT$FWA[MAT$ENTRY"CAT$BUF"];
02614  M00S02548.sxinit  +++|      P<FCTBUF> = FCTBADR;
02615  M00S02549.sxinit  +++|
02616  M00S02550.sxinit  +++|      MAPBADR = MAT$FWA[MAT$ENTRY"MAP$BUF"];
02617  M00S02551.sxinit  +++|      P<MAPBUF> = MAPBADR;
02618  M00S02552.sxinit  +++|
02619  M00S02553.sxinit  +++|      TBUFADR = MAT$FWA[MAT$ENTRY"TEMP$BUF"];
02620  M00S02554.sxinit  +++|      P<TBUF> = TBUFADR;
02621  M00S02555.sxinit  +++|
02622  M00S02556.sxinit  +++|      WBUFADR = MAT$FWA[MAT$ENTRY"TEMP$WB"];
02623  M00S02557.sxinit  +++|      P<WBUF> = WBUFADR;
02624  M00S02558.sxinit  +++|
02625  M00S02559.sxinit  +++|      OCTLEN = MAT$COUNT[MAT$ENTRY"OCT"];
02626  M00S02560.sxinit  +++|      OCTADR = MAT$FWA[MAT$ENTRY"OCT"];
02627  M00S02561.sxinit  +++|      P<OCT> = OCTADR;
02628  M00S02562.sxinit  +++|
02629  M00S02563.sxinit  +++|      OMTADR = MAT$FWA[MAT$ENTRY"OMT"];
02630  M00S02564.sxinit  +++|      P<OMT> = OMTADR;
02631  M00S02565.sxinit  +++|
02632  M00S02566.sxinit  +++|      PRMBADR = MAT$FWA[MAT$ENTRY"PREAMBLE"];
02633  M00S02567.sxinit  +++|      P<PRMBUF> = PRMBADR;
02634  M00S02568.sxinit  +++|
02635  M00S02569.sxinit  +++|      LTCTPTR = MAT$FWA[MAT$ENTRY"LTCT"];
02636  M00S02570.sxinit  +++|      P<LTCT> = LTCTPTR;
02637  M00S02571.sxinit  +++|
02638  M00S02572.sxinit  +++|      UDTCADR = MAT$FWA[MAT$ENTRY"UDT$CONT"];
02639  M00S02573.sxinit  +++|      P<UDT$CN> = UDTCADR + 1;       # HEADER NOT INCLUDED #
02640  M00S02574.sxinit  +++|
02641  M00S02575.sxinit  +++|      UDTSADR = MAT$FWA[MAT$ENTRY"UDT$SM"];
02642  M00S02576.sxinit  +++|      P<UDT$SMA> = UDTSADR;
02643  M00S02577.sxinit  +++|
02644  M00S02578.sxinit  +++|      P<LABEL$CART> = MAT$FWA[MAT$ENTRY"LABBUF"];
02645  M00S02579.sxinit  +++|
02646  M00S02580.sxinit  +++|      MWRBADR = MAT$FWA[MAT$ENTRY"MW$BUFS"];
02647  M00S02581.sxinit  +++|
02648  M00S02582.sxinit  +++|      MRDBADR = MAT$FWA[MAT$ENTRY"MR$BUFS"];
02649  M00S02583.sxinit  +++|
02650  M00S02584.sxinit  +++|      SBTADR = MAT$FWA[MAT$ENTRY"SBT"];
02651  M00S02585.sxinit  +++|
02652  M00S02586.sxinit  +++|#
02653  M00S02587.sxinit  +++|*     PUT THE FAMILY NAMES INTO THE *MRFT* TABLE.
02654  M00S02588.sxinit  +++|#
02655  M00S02589.sxinit  +++|
02656  M00S02590.sxinit  +++|      P<MRFT> = MAT$FWA[MAT$ENTRY"MRFT"];  # POINT TO FIRST ENTRY #
02657  M00S02591.sxinit  +++|
02658  M00S02592.sxinit  +++|      SLOWFOR I = 1 STEP 1 WHILE I LQ FAMCNT
02659  M00S02593.sxinit  +++|      DO
02660  M00S02594.sxinit  +++|        BEGIN  # FOR ALL *MRFT* ENTRIES #
02661  M00S02595.sxinit  +++|        MSGTEMP = NAMEFAM[I];
02662  M00S02596.sxinit  +++|        BZFILL(MSGTEMP,ZEROFILL,FILLSIZE);
02663  M00S02597.sxinit  +++|        MRFTFAM[(I-1)] = MSGTEMP;    # MOVE FAMILY NAME #
02664  M00S02598.sxinit  +++|        END  # FOR ALL *MRFT* ENTRIES #
02665  M00S02599.sxinit  +++|
02666  M00S02600.sxinit  +++|
02667  M00S02601.sxinit  +++|      END  # INITTS #
02668  M00S02602.sxinit  +++|
02669  M00S02603.sxinit  +++|    TERM
02670  M00S02604.sxinit  +++|PROC OPENCAT;
02671  M00S02605.sxinit  +++|
02672  M00S02606.sxinit  +++|# TITLE OPENCAT - OPENS THE MAP AND CATALOG FILES.                    #
02673  M00S02607.sxinit  +++|
02674  M00S02608.sxinit  +++|      BEGIN  # OPENCAT #
02675  M00S02609.sxinit  +++|
02676  M00S02610.sxinit  +++|#
02677  M00S02611.sxinit  +++|**    OPENCAT - OPENS MAP AND CATALOG FILES.
02678  M00S02612.sxinit  +++|*
02679  M00S02613.sxinit  +++|*     THIS ROUTINE CALLS *MOPEN* AND *COPEN* TO OPEN THE *SM* MAPS
02680  M00S02614.sxinit  +++|*     AND THE *SFM* CATALOGS.  IT ALSO REBUILDS THE FREE AU
02681  M00S02615.sxinit  +++|*     COUNTS IN THE *AST* TABLES AND UPDATES THE PREAMBLES.
02682  M00S02616.sxinit  +++|*
02683  M00S02617.sxinit  +++|*     PROC      OPENCAT.
02684  M00S02618.sxinit  +++|*
02685  M00S02619.sxinit  +++|*     ENTRY     USES THE LIST OF LOGICAL *SM* NUMBERS, THE LIST
02686  M00S02620.sxinit  +++|*               OF FAMILIES WITH 8 *SFM* CATALOGS, AND THE CATALOGS
02687  M00S02621.sxinit  +++|*               OF THE FAMILIES WITH 8 *SFM* CATALOGS.
02688  M00S02622.sxinit  +++|*
02689  M00S02623.sxinit  +++|*     EXIT      MAP AND CATALOG FILES HAVE BEEN OPENED AND ALL *AST*
02690  M00S02624.sxinit  +++|*               TABLES HAVE BEEN UPDATED.
02691  M00S02625.sxinit  +++|*
02692  M00S02626.sxinit  +++|*     MESSAGES  1) AST UPDATED.
02693  M00S02627.sxinit  +++|*                  PFN=PFN, FAMILY=FAMILY, UI=UI.
02694  M00S02628.sxinit  +++|*                  SUBCATALOG SM ID=ID.
02695  M00S02629.sxinit  +++|*
02696  M00S02630.sxinit  +++|*               2) ATTACH ERROR ON SFM SMMAP.
02697  M00S02631.sxinit  +++|*                  PFN=PFN, FAMILY=FAMILY, UI=UI.
02698  M00S02632.sxinit  +++|*
02699  M00S02633.sxinit  +++|*               3) ATTACH ERROR ON SFM SUBFAMILY CATALOG.
02700  M00S02634.sxinit  +++|*                  PFN=PFN, FAMILY=FAMILY, UI=UI.
02701  M00S02635.sxinit  +++|*
02702  M00S02636.sxinit  +++|*               4) CIO ERROR ON SFM SMMAP.
02703  M00S02637.sxinit  +++|*                  PFN=PFN, FAMILY=FAMILY, UI=UI.
02704  M00S02638.sxinit  +++|*
02705  M00S02639.sxinit  +++|*               5) CIO ERROR ON SFM SUBFAMILY CATALOG.
02706  M00S02640.sxinit  +++|*                  PFN=PFN, FAMILY=FAMILY, UI=UI.
02707  M00S02641.sxinit  +++|*
02708  M00S02642.sxinit  +++|*               6) EXEC ABNORMAL, OPENCAT.
02709  M00S02643.sxinit  +++|*
02710  M00S02644.sxinit  +++|*               7) INITIALIZATION PROBLEMS -
02711  M00S02645.sxinit  +++|*                  NO SMMAP FOUND.
02712  M00S02646.sxinit  +++|#
02713  M00S02647.sxinit  +++|
02714  M00S02648.sxinit  +++|#
02715  M00S02649.sxinit  +++|****  PROC OPENCAT - XREF LIST BEGIN.
02716  M00S02650.sxinit  +++|#
02717  M00S02651.sxinit  +++|
02718  M00S02652.sxinit  +++|      XREF
02719  M00S02653.sxinit  +++|        BEGIN
02720  M00S02654.sxinit  +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
02721  M00S02655.sxinit  +++|        PROC ACQ$FCT;                # ACQUIRES AN *FCTQ* ENTRY #
02722  M00S02656.sxinit  +++|        PROC BZFILL;                 # BLANKS OR ZERO FILLS WORD #
02723  M00S02657.sxinit  +++|        PROC COPEN;                  # OPENS AN *MSG* CATALOG #
02724  M00S02658.sxinit  +++|        PROC CRAST;                  # CREATES AN *AST* ENTRY #
02725  M00S02659.sxinit  +++|        PROC CRDAST;                 # READS THE *AST* TABLE #
02726  M00S02660.sxinit  +++|        PROC MESSAGE;                # CALLS *MESSAGE* MACRO #
02727  M00S02661.sxinit  +++|        PROC MOPEN;                  # OPEN A *SM* MAP #
02728  M00S02662.sxinit  +++|        PROC RMVBLNK;                # REMOVE MULTIPLE BLANKS #
02729  M00S02663.sxinit  +++|        PROC RLS$FCT;                # RELEASE AN *FCTQ* ENTRY #
02730  M00S02664.sxinit  +++|        PROC SETPFP;                 # SETS USER INDEX AND FAMILY #
02731  M00S02665.sxinit  +++|        PROC UASTPRM;                # UPDATE *AST* AND PREAMBLE #
02732  M00S02666.sxinit  +++|        FUNC XCDD C(3);              # INTEGER TO DECIMAL DISPLAY #
02733  M00S02667.sxinit  +++|        FUNC XCOD;                   # CHANGE OCTAL TO DISPLAY CODE #
02734  M00S02668.sxinit  +++|        PROC XWOD;                   # CHANGE INTEGER TO OCTAL #
02735  M00S02669.sxinit  +++|        END
02736  M00S02670.sxinit  +++|
02737  M00S02671.sxinit  +++|#
02738  M00S02672.sxinit  +++|****  PROC OPENCAT - XREF LIST END.
02739  M00S02673.sxinit  +++|#
02740  M00S02674.sxinit  +++|
02741  M00S02675.sxinit  +++|      DEF QRADDR     #0#;            # ADDRESS OF *HLRQ* ENTRY #
02742  M00S02676.sxinit  +++|
02743  M00S02677.sxinit  +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
02744  M00S02678.sxinit  +++|
02745  M00S02679.sxinit  +++|*CALL COMBFAS
02746  M00S02680.sxinit  +++|*CALL COMBBZF
02747  M00S02681.sxinit  +++|*CALL COMBCMS
02748  M00S02682.sxinit  +++|*CALL COMBCMD
02749  M00S02683.sxinit  +++|*CALL COMBMCT
02750  M00S02684.sxinit  +++|*CALL COMBPFP
02751  M00S02685.sxinit  +++|*CALL COMBUDT
02752  M00S02686.sxinit  +++|*CALL COMXCTF
02753  M00S02687.sxinit  +++|*CALL COMXINT
02754  M00S02688.sxinit  +++|*CALL COMXMSC
02755  M00S02689.sxinit  +++|*CALL COMSPFM
02756  M00S02690.sxinit  +++|
02757  M00S02691.sxinit  +++|      ITEM ACCM       B;             # FILE ACCESS MODE FLAG #
02758  M00S02692.sxinit  +++|      ITEM CER        U;             # *ACQ$FCT* RETURN CODE #
02759  M00S02693.sxinit  +++|      ITEM CR         U;             # *CRDAST* RETURN STATUS #
02760  M00S02694.sxinit  +++|      ITEM CSNOTFD    B;             # *SMMAP* NOT FOUND FLAG #
02761  M00S02695.sxinit  +++|      ITEM FCTX       U;             # LOOP INDEX - FCT ORDINAL #
02762  M00S02696.sxinit  +++|      ITEM FMX        U;             # LOOP INDEX - FAMILY #
02763  M00S02697.sxinit  +++|      ITEM FOUND      B;             # ITEM FOUND FLAG #
02764  M00S02698.sxinit  +++|      ITEM MMM        U;             # INDEX #
02765  M00S02699.sxinit  +++|      ITEM MOPENCALL  B;             # *MOPEN* CALL FLAG #
02766  M00S02700.sxinit  +++|      ITEM MSGTEMP    C(8);          # ITEM FOR *BZFILL* #
02767  M00S02701.sxinit  +++|      ITEM QADDR      U;             # ADDRESS OF *FCTQ* ENTRY #
02768  M00S02702.sxinit  +++|      ITEM RSTATUS    U;             # ERROR STATUS FROM *MOPEN* #
02769  M00S02703.sxinit  +++|      ITEM SFX        U;             # LOOP INDEX - SUBFAMILY #
02770  M00S02704.sxinit  +++|      ITEM SMX        U;             # LOOP INDEX - STORAGE MODULE #
02771  M00S02705.sxinit  +++|      ITEM STAT       U;             # RETURN STATUS #
02772  M00S02706.sxinit  +++|      ITEM UI         U;             # USER INDEX #
02773  M00S02707.sxinit  +++|
02774  M00S02708.sxinit  +++|#
02775  M00S02709.sxinit  +++|*     ARRAY TO HOLD DATA FROM *XCDD*.
02776  M00S02710.sxinit  +++|#
02777  M00S02711.sxinit  +++|
02778  M00S02712.sxinit  +++|      ARRAY ARTEMP[0:0] S(1);
02779  M00S02713.sxinit  +++|        BEGIN
02780  M00S02714.sxinit  +++|        ITEM TEMPCHAR   C(00,00,10);  # TEMPORARY CHARACTER ITEM #
02781  M00S02715.sxinit  +++|        ITEM CHARSUB    C(00,00,01);  # SUBCATALOG *SM* *ID* #
02782  M00S02716.sxinit  +++|        END
02783  M00S02717.sxinit  +++|
02784  M00S02718.sxinit  +++|      ARRAY BADDR[0:0] P(FCTENTL);   # *FCT* BUFFER ADDRESS #
02785  M00S02719.sxinit  +++|      ;
02786  M00S02720.sxinit  +++|
02787  M00S02721.sxinit  +++|      ARRAY BADSUB[0:0] P(3);
02788  M00S02722.sxinit  +++|        BEGIN
02789  M00S02723.sxinit  +++|        ITEM BAD$ID     C(00,00,20) = [" SUBCATALOG SM ID="];  # ID #
02790  M00S02724.sxinit  +++|        ITEM BAD$SUB    C(02,00,01);  # BAD *SM* NUMBER #
02791  M00S02725.sxinit  +++|        ITEM BAD$ZRO    U(02,18,12) = [0];  # ZERO TERMINATOR #
02792  M00S02726.sxinit  +++|        END
02793  M00S02727.sxinit  +++|
02794  M00S02728.sxinit  +++|      ARRAY CAT[0:0] P(1);           # CATALOG FILE NAME #
02795  M00S02729.sxinit  +++|        BEGIN  # CAT #
02796  M00S02730.sxinit  +++|        ITEM CAT$PFN    C(00,00,07) = ["SFMCAT "];  # SFMCAT #
02797  M00S02731.sxinit  +++|        ITEM CAT$UNID   C(00,36,01);  # UNIQUE IDENTIFIER #
02798  M00S02732.sxinit  +++|        END  # CAT #
02799  M00S02733.sxinit  +++|
02800  M00S02734.sxinit  +++|      ARRAY DIS[0:0] P(2);
02801  M00S02735.sxinit  +++|        BEGIN
02802  M00S02736.sxinit  +++|        ITEM DIS$UI     C(01,24,06);  # USER INDEX IN DISPLAY CODE #
02803  M00S02737.sxinit  +++|        END
02804  M00S02738.sxinit  +++|
02805  M00S02739.sxinit  +++|      ARRAY MAP[0:0] P(1);
02806  M00S02740.sxinit  +++|        BEGIN  # MAP #
02807  M00S02741.sxinit  +++|        ITEM MAP$PFN    C(00,00,06) = ["SMMAP "];  # SMMAP #
02808  M00S02742.sxinit  +++|        ITEM MAP$UNID   C(00,30,01);  # UNIQUE IDENTIFIER #
02809  M00S02743.sxinit  +++|        END  # MAP #
02810  M00S02744.sxinit  +++|
02811  M00S02745.sxinit  +++|
02812  M00S02746.sxinit  +++|#
02813  M00S02747.sxinit  +++|*     MESSAGE BUFFER.
02814  M00S02748.sxinit  +++|#
02815  M00S02749.sxinit  +++|
02816  M00S02750.sxinit  +++|      ARRAY MSGBUF[0:0] P(5);
02817  M00S02751.sxinit  +++|        BEGIN  # ARRAY MSGBUF #
02818  M00S02752.sxinit  +++|        ITEM MSG$LINE   C(00,00,40);  # MESSAGE LINE #
02819  M00S02753.sxinit  +++|        ITEM MSG$RZRO   C(04,00,12);  # ZERO BYE TERMINATOR #
02820  M00S02754.sxinit  +++|        END  # ARRAY MSGBUF #
02821  M00S02755.sxinit  +++|
02822  M00S02756.sxinit  +++|      ARRAY REAL$AST[1:ASTENTL] S(ASTENTW);;  # BUFFER FOR *AST* TABLE
02823  M00S02757.sxinit  +++|                                              #
02824  M00S02758.sxinit  +++|
02825  M00S02759.sxinit  +++|      SWITCH CERJMP:CMASTAT
02826  M00S02760.sxinit  +++|            CNOERRJ:NOERR,           # NO ERRORS #
02827  M00S02761.sxinit  +++|            CINTLKJ:INTLK,           # CATALOG/MAP FILE INTERLOCKED #
02828  M00S02762.sxinit  +++|            CFOPENJ:FOPEN,           # CATALOG/MAP FILE ALREADY OPEN #
02829  M00S02763.sxinit  +++|           CCIOERRJ:CIOERR,          # CIO ERROR #
02830  M00S02764.sxinit  +++|           CATTERRJ:ATTERR,          # CATALOG/MAP ATTACH ERROR #
02831  M00S02765.sxinit  +++|          COCTFULLJ:OCTFULL;         # OPEN CATALOG TABLE FULL #
02832  M00S02766.sxinit  +++|
02833  M00S02767.sxinit  +++|      SWITCH CGERJMP:CMASTAT
02834  M00S02768.sxinit  +++|            CGNOERRJ:NOERR,          # NO ERRORS #
02835  M00S02769.sxinit  +++|            CGINTLKJ:INTLK,          # CATALOG/MAP FILE INTERLOCKED #
02836  M00S02770.sxinit  +++|          CGNOTOPENJ:NOTOPEN,        # CATALOG/MAP FILE NOT OPEN #
02837  M00S02771.sxinit  +++|         CGNOSUBCATJ:NOSUBCAT,       # NO SUCH SUBCATALOG #
02838  M00S02772.sxinit  +++|           CGCIOERRJ:CIOERR,         # *CIO* ERROR #
02839  M00S02773.sxinit  +++|           CGORDERRJ:ORDERR;         # ORDINAL OUT OF RANGE #
02840  M00S02774.sxinit  +++|
02841  M00S02775.sxinit  +++|      SWITCH CRERJMP:CMASTAT
02842  M00S02776.sxinit  +++|            CRNOERRJ:NOERR,          # NO ERRORS #
02843  M00S02777.sxinit  +++|            CRINTLKJ:INTLK,          # CATALOG/MAP FILE INTERLOCKED #
02844  M00S02778.sxinit  +++|          CRNOTOPENJ:NOTOPEN,        # CATALOG/MAP FILE NOT OPEN #
02845  M00S02779.sxinit  +++|         CRNOSUBCATJ:NOSUBCAT,       # NO SUCH SUBCATALOG #
02846  M00S02780.sxinit  +++|           CRCIOERRJ:CIOERR;         # *CIO* ERROR #
02847  M00S02781.sxinit  +++|
02848  M00S02782.sxinit  +++|      SWITCH MERJMP:CMASTAT
02849  M00S02783.sxinit  +++|            MNOERRJ:NOERR,           # NO ERRORS #
02850  M00S02784.sxinit  +++|            MINTLKJ:INTLK,           # CATALOG/MAP FILE INTERLOCKED #
02851  M00S02785.sxinit  +++|            MFOPENJ:FOPEN,           # CATALOG/MAP FILE ALREADY OPEN #
02852  M00S02786.sxinit  +++|           MCIOERRJ:CIOERR,          # *CIO* ERROR #
02853  M00S02787.sxinit  +++|           MATTERRJ:ATTERR,          # CATALOG/MAP ATTACH ERROR #
02854  M00S02788.sxinit  +++|          MOCTFULLJ:OCTFULL;         # OPEN CATALOG TABLE FULL #
02855  M00S02789.sxinit  +++|                                               CONTROL EJECT;
02856  M00S02790.sxinit  +++|
02857  M00S02791.sxinit  +++|#
02858  M00S02792.sxinit  +++|*     CONSTRUCT THE MAP FILE NAME AND CALL *MOPEN* TO OPEN EACH *SM*
02859  M00S02793.sxinit  +++|*     MAP.
02860  M00S02794.sxinit  +++|#
02861  M00S02795.sxinit  +++|
02862  M00S02796.sxinit  +++|
02863  M00S02797.sxinit  +++|      MSGTEMP = FAM$NAME[DEFAULTORD];
02864  M00S02798.sxinit  +++|      BZFILL(MSGTEMP,TYPFILL"BFILL",7);
02865  M00S02799.sxinit  +++|      MSGFAM[0] = MSGTEMP;           # FAMILY NAME TO MESSAGE #
02866  M00S02800.sxinit  +++|
02867  M00S02801.sxinit  +++|#
02868  M00S02802.sxinit  +++|*     ISSUE A *SETPFP* SO THE MAP FILE CAN BE ATTACHED.
02869  M00S02803.sxinit  +++|#
02870  M00S02804.sxinit  +++|
02871  M00S02805.sxinit  +++|      PFP$UI = DEF$UI;               # SET USER INDEX FOR *SETPFP* #
02872  M00S02806.sxinit  +++|      PFP$FAM = FAM$NAME[DEFAULTORD];  # SET FAMILY NAME FOR *SETPFP* #
02873  M00S02807.sxinit  +++|      PFP$FG1 = TRUE;                # SET FAMILY BIT FOR *SETPFP* #
02874  M00S02808.sxinit  +++|      PFP$FG4 = TRUE;                # SET INDEX BIT FOR *SETPFP* #
02875  M00S02809.sxinit  +++|      SETPFP(PFP);                   # SET USER INDEX AND FAMILY #
02876  M00S02810.sxinit  +++|
02877  M00S02811.sxinit  +++|      XWOD(DEF$UI,DIS);              # CHANGE OCTAL TO DISPLAY CODE #
02878  M00S02812.sxinit  +++|      MSGUI[0] = DIS$UI[0];          # SET USER INDEX AND FAMILY #
02879  M00S02813.sxinit  +++|
02880  M00S02814.sxinit  +++|      P<UDT$SMA> = UDTSADR;
02881  M00S02815.sxinit  +++|      SLOWFOR SMX = 1 STEP 1 UNTIL UDT$LINE$SMN[0]
02882  M00S02816.sxinit  +++|      DO
02883  M00S02817.sxinit  +++|        BEGIN  # PROCESS FOR EACH LOGICAL *SM* NUMBER #
02884  M00S02818.sxinit  +++|        MMM = SM$ID[1];
02885  M00S02819.sxinit  +++|        MAP$UNID[0] = SM$ID[1];
02886  M00S02820.sxinit  +++|        MSGTEMP = MAP$PFN[0];
02887  M00S02821.sxinit  +++|        BZFILL(MSGTEMP,TYPFILL"BFILL",7);
02888  M00S02822.sxinit  +++|        MSGPFN[0] = MSGTEMP;         # PLACE FILE NAME INTO MESSAGE #
02889  M00S02823.sxinit  +++|        BZFILL(MAP,TYPFILL"ZFILL",7);  # TYPFILL"ZFILL" FILE NAME #
02890  M00S02824.sxinit  +++|
02891  M00S02825.sxinit  +++|        RSTATUS = 0;
02892  M00S02826.sxinit  +++|        MOPEN(MMM,MAP$PFN[0],"M",RSTATUS);
02893  M00S02827.sxinit  +++|
02894  M00S02828.sxinit  +++|#
02895  M00S02829.sxinit  +++|*     SIMULATED CASE STATEMENT FOR *MOPEN* PROCESSING.
02896  M00S02830.sxinit  +++|#
02897  M00S02831.sxinit  +++|
02898  M00S02832.sxinit  +++|        GOTO MERJMP[RSTATUS];
02899  M00S02833.sxinit  +++|
02900  M00S02834.sxinit  +++|MCIOERRJ:
02901  M00S02835.sxinit  +++|        MSG$LINE[0] = " CIO ERROR ON SFM SMMAP.";
02902  M00S02836.sxinit  +++|        MESSAGE(MSGBUF,UDFL1);       # MESSAGE TO DAYFILE #
02903  M00S02837.sxinit  +++|        MSG$LINE[0] = MSG$TEXT[0];
02904  M00S02838.sxinit  +++|        RMVBLNK(MSGBUF[0],40);
02905  M00S02839.sxinit  +++|        MESSAGE(MSGBUF,UDFL1);       # MESSAGE TO DAYFILE #
02906  M00S02840.sxinit  +++|        CSNOTFD = TRUE;
02907  M00S02841.sxinit  +++|        GOTO ENDCASE0;               # COMMON EXIT #
02908  M00S02842.sxinit  +++|
02909  M00S02843.sxinit  +++|MATTERRJ:
02910  M00S02844.sxinit  +++|        MSG$LINE[0] = " ATTACH ERROR ON SFM SMMAP.";
02911  M00S02845.sxinit  +++|        MESSAGE(MSGBUF,UDFL1);
02912  M00S02846.sxinit  +++|
02913  M00S02847.sxinit  +++|        MSG$LINE[0] = MSG$TEXT[0];
02914  M00S02848.sxinit  +++|        RMVBLNK(MSGBUF[0],40);
02915  M00S02849.sxinit  +++|        MESSAGE(MSGBUF,UDFL1);
02916  M00S02850.sxinit  +++|        CSNOTFD = TRUE;
02917  M00S02851.sxinit  +++|        GOTO ENDCASE0;               # COMMON EXIT #
02918  M00S02852.sxinit  +++|
02919  M00S02853.sxinit  +++|MNOERRJ:
02920  M00S02854.sxinit  +++|MINTLKJ:
02921  M00S02855.sxinit  +++|ENDCASE0:
02922  M00S02856.sxinit  +++|      P<UDT$SMA> = P<UDT$SMA> + SMALT;
02923  M00S02857.sxinit  +++|
02924  M00S02858.sxinit  +++|#
02925  M00S02859.sxinit  +++|*     END OF CASE STATEMENT FOR *MOPEN* ERROR RESPONSE.
02926  M00S02860.sxinit  +++|#
02927  M00S02861.sxinit  +++|
02928  M00S02862.sxinit  +++|        END  # PROCESS FOR EACH LOGICAL *SM* NUMBER #
02929  M00S02863.sxinit  +++|
02930  M00S02864.sxinit  +++|      P<UDT$SMA> = UDTSADR;          # RESET SMA ADDRESS #
02931  M00S02865.sxinit  +++|
02932  M00S02866.sxinit  +++|      IF CSNOTFD
02933  M00S02867.sxinit  +++|      THEN
02934  M00S02868.sxinit  +++|        BEGIN  # NO SMMAP FOUND #
02935  M00S02869.sxinit  +++|        FATALERR = TRUE;
02936  M00S02870.sxinit  +++|
02937  M00S02871.sxinit  +++|        MSG$LINE[0] = " INITIALIZATION PROBLEMS -";
02938  M00S02872.sxinit  +++|        MESSAGE(MSGBUF[0],UDFL1);
02939  M00S02873.sxinit  +++|
02940  M00S02874.sxinit  +++|        MSG$LINE[0] = " NO SMMAP FOUND ";
02941  M00S02875.sxinit  +++|        MESSAGE(MSGBUF[0],UDFL1);
02942  M00S02876.sxinit  +++|        END  # NO SMMAP FOUND #
02943  M00S02877.sxinit  +++|
02944  M00S02878.sxinit  +++|                                               CONTROL EJECT;
02945  M00S02879.sxinit  +++|
02946  M00S02880.sxinit  +++|#
02947  M00S02881.sxinit  +++|*     CONSTRUCT THE *SFM* CATALOG FILE NAME FROM THE FAMILY NAME LIST.
02948  M00S02882.sxinit  +++|*     CALL *COPEN* TO OPEN THE *SFM* CATALOG.  SCAN THE *FCT* TO
02949  M00S02883.sxinit  +++|*     RECONSTRUCT THE FREE VOLUME CHAIN AND COUNT THE
02950  M00S02884.sxinit  +++|*     AU AVAIABLE FOR ALLOCATION.
02951  M00S02885.sxinit  +++|#
02952  M00S02886.sxinit  +++|
02953  M00S02887.sxinit  +++|      SLOWFOR FMX = 1 STEP 1 UNTIL FAMCNT
02954  M00S02888.sxinit  +++|      DO
02955  M00S02889.sxinit  +++|        BEGIN  # FOR EACH FAMILY WITH EIGHT SUBFAMILY CATALOGS #
02956  M00S02890.sxinit  +++|
02957  M00S02891.sxinit  +++|        MSGTEMP = NAMEFAM[FMX];
02958  M00S02892.sxinit  +++|        BZFILL(MSGTEMP,TYPFILL"BFILL",7);
02959  M00S02893.sxinit  +++|        MSGFAM[0] = MSGTEMP;
02960  M00S02894.sxinit  +++|
02961  M00S02895.sxinit  +++|        SLOWFOR SFX = 0 STEP 1 UNTIL MAXSF
02962  M00S02896.sxinit  +++|        DO
02963  M00S02897.sxinit  +++|          BEGIN  # FOR EACH SUBFAMILY #
02964  M00S02898.sxinit  +++|
02965  M00S02899.sxinit  +++|          UI = DEF$UI + SFX;         # CALCULATE USER INDEX #
02966  M00S02900.sxinit  +++|          XWOD(UI,DIS);
02967  M00S02901.sxinit  +++|          MSGUI[0] = DIS$UI[0];
02968  M00S02902.sxinit  +++|
02969  M00S02903.sxinit  +++|#
02970  M00S02904.sxinit  +++|*     ISSUE A *SETPFP* SO THE SFMCAT FILE CAN BE ATTACHED.
02971  M00S02905.sxinit  +++|#
02972  M00S02906.sxinit  +++|
02973  M00S02907.sxinit  +++|          PFP$UI = DEF$UI + SFX;     # SET USER INDEX FOR *SETPFP* #
02974  M00S02908.sxinit  +++|          PFP$FAM = NAMEFAM[FMX];    # SET FAMILY NAME FOR *SETPFP* #
02975  M00S02909.sxinit  +++|          PFP$FG1 = TRUE;            # SET FAMILY BIT FOR *SETPFP* #
02976  M00S02910.sxinit  +++|          PFP$FG4 = TRUE;            # SET INDEX BIT FOR *SETPFP* #
02977  M00S02911.sxinit  +++|          SETPFP(PFP);               # SET USER INDEX AND FAMILY #
02978  M00S02912.sxinit  +++|
02979  M00S02913.sxinit  +++|          CAT$UNID[0] = XCOD(SFX);   # CHANGE INDEX TO DISPLAY CODE #
02980  M00S02914.sxinit  +++|
02981  M00S02915.sxinit  +++|          MSGPFN[0] = CAT$PFN[0];    # PLACE FILE NAME INTO MESSAGE #
02982  M00S02916.sxinit  +++|
02983  M00S02917.sxinit  +++|          ACCM = FALSE;              # RANDOM ACCESS MODE #
02984  M00S02918.sxinit  +++|          STAT = 0;
02985  M00S02919.sxinit  +++|          COPEN(NAMEFAM[FMX],SFX,CAT,"M",ACCM,STAT);
02986  M00S02920.sxinit  +++|
02987  M00S02921.sxinit  +++|#
02988  M00S02922.sxinit  +++|*     SIMULATED CASE STATEMENT FOR *COPEN* ERROR RESPONSE.
02989  M00S02923.sxinit  +++|#
02990  M00S02924.sxinit  +++|
02991  M00S02925.sxinit  +++|          GOTO CERJMP[STAT];
02992  M00S02926.sxinit  +++|
02993  M00S02927.sxinit  +++|CCIOERRJ:
02994  M00S02928.sxinit  +++|CINTLKJ:
02995  M00S02929.sxinit  +++|
02996  M00S02930.sxinit  +++|          TEST SFX;                  # NEXT CATALOG #
02997  M00S02931.sxinit  +++|
02998  M00S02932.sxinit  +++|CATTERRJ:
02999  M00S02933.sxinit  +++|          MSG$LINE[0] = "ATTACH ERROR ON SFM SUBFAMILY CATALOG.";
03000  M00S02934.sxinit  +++|          MESSAGE(MSGBUF[0],UDFL1);
03001  M00S02935.sxinit  +++|
03002  M00S02936.sxinit  +++|          MSG$LINE[0] = MSG$TEXT[0];
03003  M00S02937.sxinit  +++|          RMVBLNK(MSGBUF[0],40);
03004  M00S02938.sxinit  +++|          MESSAGE(MSGBUF[0],UDFL1);
03005  M00S02939.sxinit  +++|          TEST SFX;                  # NEXT CATALOG #
03006  M00S02940.sxinit  +++|
03007  M00S02941.sxinit  +++|CNOERRJ:
03008  M00S02942.sxinit  +++|
03009  M00S02943.sxinit  +++|#
03010  M00S02944.sxinit  +++|*     END OF CASE STATEMENT FOR *COPEN* ERROR RESPONSE.
03011  M00S02945.sxinit  +++|#
03012  M00S02946.sxinit  +++|
03013  M00S02947.sxinit  +++|#
03014  M00S02948.sxinit  +++|*     THE FIRST WORD OF THE SUBCATALOG PREAMBLES
03015  M00S02949.sxinit  +++|*     ARE SCANNED TO DETERMINE WHICH SUBCATALOGS EXIST.
03016  M00S02950.sxinit  +++|*     FOR EACH EXISTING SUBCATALOG, THE NUMBER OF *FCT* ENTRIES
03017  M00S02951.sxinit  +++|*     TO SCAN IS OBTAINED FROM THE FIRST WORD OF THE SUBCATALOG
03018  M00S02952.sxinit  +++|*     PREAMBLE.
03019  M00S02953.sxinit  +++|#
03020  M00S02954.sxinit  +++|
03021  M00S02955.sxinit  +++|          SLOWFOR SMX = 1 STEP 1 UNTIL MAXSM
03022  M00S02956.sxinit  +++|          DO
03023  M00S02957.sxinit  +++|            BEGIN  # FOR EACH SUBCATALOG #
03024  M00S02958.sxinit  +++|            IF PRM$SCW1[SMX] EQ 0
03025  M00S02959.sxinit  +++|            THEN
03026  M00S02960.sxinit  +++|              BEGIN
03027  M00S02961.sxinit  +++|              TEST SMX;
03028  M00S02962.sxinit  +++|              END
03029  M00S02963.sxinit  +++|
03030  M00S02964.sxinit  +++|#
03031  M00S02965.sxinit  +++|*     READ THE CATALOG *AST* AND UPDATE IT BASED ON THE
03032  M00S02966.sxinit  +++|*     ANALYSIS OF EACH *FCT* ENTRY IN THE SUBCATALOG.
03033  M00S02967.sxinit  +++|#
03034  M00S02968.sxinit  +++|
03035  M00S02969.sxinit  +++|            CRDAST(NAMEFAM[FMX],SFX,PRM$SMID[SMX],  ##
03036  M00S02970.sxinit  +++|              ASTBADR,QRADDR,CR);
03037  M00S02971.sxinit  +++|
03038  M00S02972.sxinit  +++|#
03039  M00S02973.sxinit  +++|*     SIMULATED CASE STATEMENT FOR *CRDAST* ERROR PROCESSING.
03040  M00S02974.sxinit  +++|#
03041  M00S02975.sxinit  +++|
03042  M00S02976.sxinit  +++|            GOTO CRERJMP[CR];
03043  M00S02977.sxinit  +++|
03044  M00S02978.sxinit  +++|CRINTLKJ:
03045  M00S02979.sxinit  +++|CRCIOERRJ:
03046  M00S02980.sxinit  +++|            TEST SFX;
03047  M00S02981.sxinit  +++|
03048  M00S02982.sxinit  +++|CRNOERRJ:
03049  M00S02983.sxinit  +++|
03050  M00S02984.sxinit  +++|#
03051  M00S02985.sxinit  +++|*     END OF SIMULATED CASE STATEMENT FOR *CRDAST* ERROR PROCESSING.
03052  M00S02986.sxinit  +++|#
03053  M00S02987.sxinit  +++|
03054  M00S02988.sxinit  +++|            SLOWFOR FCTX = MAXGRT STEP 1               ##
03055  M00S02989.sxinit  +++|              WHILE FCTX LQ (PRM$ENTRC[SMX] + 15)      ##
03056  M00S02990.sxinit  +++|                AND PRM$ENTRC[SMX] GR 0
03057  M00S02991.sxinit  +++|            DO
03058  M00S02992.sxinit  +++|              BEGIN  # FOR ALL *FCT* ENTRIES FOR THIS SUBCATALOG #
03059  M00S02993.sxinit  +++|
03060  M00S02994.sxinit  +++|              ACQ$FCT(NAMEFAM[FMX],SFX,PRM$SMID[SMX],FCTX,  ##
03061  M00S02995.sxinit  +++|                QADDR,QRADDR,CER );
03062  M00S02996.sxinit  +++|
03063  M00S02997.sxinit  +++|#
03064  M00S02998.sxinit  +++|*     SIMULATED CASE STATEMENT FOR *ACQ$FCT* ERROR PROCESSING.
03065  M00S02999.sxinit  +++|#
03066  M00S03000.sxinit  +++|
03067  M00S03001.sxinit  +++|              GOTO CGERJMP[CER];
03068  M00S03002.sxinit  +++|
03069  M00S03003.sxinit  +++|CGCIOERRJ:
03070  M00S03004.sxinit  +++|CGINTLKJ:
03071  M00S03005.sxinit  +++|              TEST SFX;
03072  M00S03006.sxinit  +++|
03073  M00S03007.sxinit  +++|CGNOERRJ:
03074  M00S03008.sxinit  +++|
03075  M00S03009.sxinit  +++|              CRAST(FCTX,QADDR,ASTBADR);
03076  M00S03010.sxinit  +++|              UASTPRM(NAMEFAM[FMX],SFX,SMX,QADDR,STAT);
03077  M00S03011.sxinit  +++|              RLS$FCT(QADDR,0,CER);
03078  M00S03012.sxinit  +++|              IF CER NQ CMASTAT"NOERR"
03079  M00S03013.sxinit  +++|              THEN
03080  M00S03014.sxinit  +++|                BEGIN
03081  M00S03015.sxinit  +++|                GOTO RLSERR;
03082  M00S03016.sxinit  +++|                END
03083  M00S03017.sxinit  +++|
03084  M00S03018.sxinit  +++|              END  # FOR ALL *FCT* ENTRIES FOR THIS SUBCATALOG #
03085  M00S03019.sxinit  +++|
03086  M00S03020.sxinit  +++|#
03087  M00S03021.sxinit  +++|*     END OF SIMULATED CASE STATEMENT FOR *ACQ$FCT* PROCESSING.
03088  M00S03022.sxinit  +++|#
03089  M00S03023.sxinit  +++|
03090  M00S03024.sxinit  +++|            TEMPCHAR[0] = PRM$SMID[SMX];
03091  M00S03025.sxinit  +++|            BAD$SUB[0] = CHARSUB[0];
03092  M00S03026.sxinit  +++|
03093  M00S03027.sxinit  +++|            MSG$LINE[0] = " AST UPDATED.";
03094  M00S03028.sxinit  +++|            MESSAGE(MSGBUF[0],UDFL1);
03095  M00S03029.sxinit  +++|
03096  M00S03030.sxinit  +++|            MSG$LINE[0] = MSG$TEXT[0];
03097  M00S03031.sxinit  +++|            RMVBLNK(MSGBUF[0],40);
03098  M00S03032.sxinit  +++|            MESSAGE(MSGBUF[0],UDFL1);
03099  M00S03033.sxinit  +++|
03100  M00S03034.sxinit  +++|            MESSAGE(BADSUB[0],UDFL1);
03101  M00S03035.sxinit  +++|
03102  M00S03036.sxinit  +++|            END  # FOR EACH SUBCATALOG #
03103  M00S03037.sxinit  +++|
03104  M00S03038.sxinit  +++|          END  # FOR EACH SUBFAMILY #
03105  M00S03039.sxinit  +++|
03106  M00S03040.sxinit  +++|        END  # FOR EACH FAMILY WITH EIGHT SUBFAMILY CATALOGS #
03107  M00S03041.sxinit  +++|
03108  M00S03042.sxinit  +++|      RETURN;
03109  M00S03043.sxinit  +++|
03110  M00S03044.sxinit  +++|MOCTFULLJ:
03111  M00S03045.sxinit  +++|MFOPENJ:
03112  M00S03046.sxinit  +++|COCTFULLJ:
03113  M00S03047.sxinit  +++|CFOPENJ:
03114  M00S03048.sxinit  +++|CRNOTOPENJ:
03115  M00S03049.sxinit  +++|CRNOSUBCATJ:
03116  M00S03050.sxinit  +++|CGNOTOPENJ:
03117  M00S03051.sxinit  +++|CGNOSUBCATJ:
03118  M00S03052.sxinit  +++|CGORDERRJ:
03119  M00S03053.sxinit  +++|RLSERR:
03120  M00S03054.sxinit  +++|      FE$RTN[0] = "OPENCAT.";
03121  M00S03055.sxinit  +++|      MESSAGE(FEMSG,UDFL1);          # EXEC ABNORMAL, OPENCAT #
03122  M00S03056.sxinit  +++|      ABORT;
03123  M00S03057.sxinit  +++|
03124  M00S03058.sxinit  +++|
03125  M00S03059.sxinit  +++|      END  # OPENCAT #
03126  M00S03060.sxinit  +++|
03127  M00S03061.sxinit  +++|    TERM
03128  M00S03062.sxinit  +++|PROC SET0100;
03129  M00S03063.sxinit  +++|# TITLE SET0100 - PRESETS COMMON AREA(S) USED BY (1,0).               #
03130  M00S03064.sxinit  +++|
03131  M00S03065.sxinit  +++|      BEGIN  # SET0100 #
03132  M00S03066.sxinit  +++|
03133  M00S03067.sxinit  +++|#
03134  M00S03068.sxinit  +++|**    SET0100 - PRESETS COMMON AREA USED BY (1,0).
03135  M00S03069.sxinit  +++|*
03136  M00S03070.sxinit  +++|*     *SET0100* IS A NON-EXECUTABLE ROUTINE WHICH PRESETS
03137  M00S03071.sxinit  +++|*     ANY COMMON AREA(S) USED EXCLUSIVELY BY THE (1,0) OVERLAY.
03138  M00S03072.sxinit  +++|*     THIS IS DONE VIA A *CONTROL PRESET* DIRECTIVE.
03139  M00S03073.sxinit  +++|*
03140  M00S03074.sxinit  +++|#
03141  M00S03075.sxinit  +++|
03142  M00S03076.sxinit  +++|      DEF LISTCON   #0#;
03143  M00S03077.sxinit  +++|*CALL COMBFAS
03144  M00S03078.sxinit  +++|
03145  M00S03079.sxinit  +++|                                               CONTROL PRESET;
03146  M00S03080.sxinit  +++|
03147  M00S03081.sxinit  +++|*CALL COMXINT
03148  M00S03082.sxinit  +++|      END  # SET0100 #
03149  M00S03083.sxinit  +++|
03150  M00S03084.sxinit  +++|    TERM
03151  M00S03085.sxinit  +++|PROC TERMCAT;
03152  M00S03086.sxinit  +++|# TITLE TERMCAT - CLOSES THE CATALOGS AND SMMAPS.                     #
03153  M00S03087.sxinit  +++|      BEGIN  # TERMCAT #
03154  M00S03088.sxinit  +++|
03155  M00S03089.sxinit  +++|#
03156  M00S03090.sxinit  +++|**    *TERMCAT* - CLOSES THE CATALOGS AND SMAMAPS.
03157  M00S03091.sxinit  +++|*
03158  M00S03092.sxinit  +++|*     THIS PROCEDURE CLOSES THE SFM CATALOGS AND SMAMAPS.
03159  M00S03093.sxinit  +++|*
03160  M00S03094.sxinit  +++|*     PROC TERMCAT
03161  M00S03095.sxinit  +++|*
03162  M00S03096.sxinit  +++|*     EXIT      EACH SFM CATALOG AND SMMAP IS CLOSED.
03163  M00S03097.sxinit  +++|#
03164  M00S03098.sxinit  +++|
03165  M00S03099.sxinit  +++|
03166  M00S03100.sxinit  +++|#
03167  M00S03101.sxinit  +++|****  PROC TERMCAT - XREF LIST BEGIN.
03168  M00S03102.sxinit  +++|#
03169  M00S03103.sxinit  +++|
03170  M00S03104.sxinit  +++|      XREF
03171  M00S03105.sxinit  +++|        BEGIN
03172  M00S03106.sxinit  +++|        PROC CCLOSE;                 # CLOSES THE CATALOGS #
03173  M00S03107.sxinit  +++|        PROC MCLOSE;                 # CLOSES THE SMAMAPS #
03174  M00S03108.sxinit  +++|        END
03175  M00S03109.sxinit  +++|
03176  M00S03110.sxinit  +++|#
03177  M00S03111.sxinit  +++|****  PROC TERMCAT - XREF LIST END.
03178  M00S03112.sxinit  +++|#
03179  M00S03113.sxinit  +++|
03180  M00S03114.sxinit  +++|
03181  M00S03115.sxinit  +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
03182  M00S03116.sxinit  +++|*CALL COMBFAS
03183  M00S03117.sxinit  +++|*CALL COMBCMD
03184  M00S03118.sxinit  +++|
03185  M00S03119.sxinit  +++|
03186  M00S03120.sxinit  +++|      ITEM CSTAT      U;             # STATUS RETURNED FROM CCLOSE #
03187  M00S03121.sxinit  +++|      ITEM I          U;             # LOOP COUNTER #
03188  M00S03122.sxinit  +++|
03189  M00S03123.sxinit  +++|
03190  M00S03124.sxinit  +++|
03191  M00S03125.sxinit  +++|
03192  M00S03126.sxinit  +++|
03193  M00S03127.sxinit  +++|#
03194  M00S03128.sxinit  +++|*     CLOSE THE CATALOGS FOR EACH FAMILY AND SUB-FAMILY
03195  M00S03129.sxinit  +++|#
03196  M00S03130.sxinit  +++|
03197  M00S03131.sxinit  +++|      FASTFOR I = 1 STEP 1 UNTIL OCTLEN
03198  M00S03132.sxinit  +++|      DO
03199  M00S03133.sxinit  +++|        BEGIN
03200  M00S03134.sxinit  +++|        IF OCT$W1[I] NQ 0
03201  M00S03135.sxinit  +++|        THEN
03202  M00S03136.sxinit  +++|          BEGIN
03203  M00S03137.sxinit  +++|          CCLOSE(OCT$FAM[I],OCT$SUBF[I],0,CSTAT);
03204  M00S03138.sxinit  +++|          END
03205  M00S03139.sxinit  +++|
03206  M00S03140.sxinit  +++|        END
03207  M00S03141.sxinit  +++|
03208  M00S03142.sxinit  +++|#
03209  M00S03143.sxinit  +++|*     CLOSE ALL THE SMAMAPS
03210  M00S03144.sxinit  +++|#
03211  M00S03145.sxinit  +++|
03212  M00S03146.sxinit  +++|      FASTFOR I = 1 STEP 1 UNTIL MAXSM
03213  M00S03147.sxinit  +++|      DO
03214  M00S03148.sxinit  +++|        BEGIN
03215  M00S03149.sxinit  +++|        IF OMT$OPEN[I]
03216  M00S03150.sxinit  +++|        THEN
03217  M00S03151.sxinit  +++|          BEGIN
03218  M00S03152.sxinit  +++|          MCLOSE(I,CSTAT);
03219  M00S03153.sxinit  +++|          END
03220  M00S03154.sxinit  +++|
03221  M00S03155.sxinit  +++|        END
03222  M00S03156.sxinit  +++|
03223  M00S03157.sxinit  +++|      END  # TERMCAT #
03224  M00S03158.sxinit  +++|
03225  M00S03159.sxinit  +++|    TERM                             # TERMCAT #
03226  M00S03160.sxinit  +++|PROC TERMSCP;
03227  M00S03161.sxinit  +++|
03228  M00S03162.sxinit  +++|# TITLE TERMSCP - RELINQUISHES SCP STATUS.                            #
03229  M00S03163.sxinit  +++|      BEGIN  # TERMSCP #
03230  M00S03164.sxinit  +++|
03231  M00S03165.sxinit  +++|#
03232  M00S03166.sxinit  +++|**    TERMSCP - RELINQUISHES SCP STATUS.
03233  M00S03167.sxinit  +++|*
03234  M00S03168.sxinit  +++|*     THIS PROCEDURE ISSUES AN SF.EXIT.
03235  M00S03169.sxinit  +++|*
03236  M00S03170.sxinit  +++|*     PROC TERMSCP
03237  M00S03171.sxinit  +++|*
03238  M00S03172.sxinit  +++|#
03239  M00S03173.sxinit  +++|
03240  M00S03174.sxinit  +++|
03241  M00S03175.sxinit  +++|#
03242  M00S03176.sxinit  +++|****  PROC TERMSCP - XREF LIST BEGIN.
03243  M00S03177.sxinit  +++|#
03244  M00S03178.sxinit  +++|
03245  M00S03179.sxinit  +++|      XREF
03246  M00S03180.sxinit  +++|        BEGIN
03247  M00S03181.sxinit  +++|        PROC SFCALL;
03248  M00S03182.sxinit  +++|        END
03249  M00S03183.sxinit  +++|
03250  M00S03184.sxinit  +++|#
03251  M00S03185.sxinit  +++|****  PROC TERMSCP - XREF LIST END.
03252  M00S03186.sxinit  +++|#
03253  M00S03187.sxinit  +++|
03254  M00S03188.sxinit  +++|
03255  M00S03189.sxinit  +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
03256  M00S03190.sxinit  +++|*CALL COMBFAS
03257  M00S03191.sxinit  +++|*CALL COMBUCR
03258  M00S03192.sxinit  +++|
03259  M00S03193.sxinit  +++|
03260  M00S03194.sxinit  +++|
03261  M00S03195.sxinit  +++|
03262  M00S03196.sxinit  +++|#
03263  M00S03197.sxinit  +++|*     ISSUE AN SF.EXIT.
03264  M00S03198.sxinit  +++|#
03265  M00S03199.sxinit  +++|
03266  M00S03200.sxinit  +++|      SFFC = SFEXIT;
03267  M00S03201.sxinit  +++|      SFCALL(SFBLKPTR,RCL);
03268  M00S03202.sxinit  +++|      END  # TERMSCP #
03269  M00S03203.sxinit  +++|
03270  M00S03204.sxinit  +++|    TERM
03271  M00S03205.sxinit  +++|PROC WRAPUP;
03272  M00S03206.sxinit  +++|
03273  M00S03207.sxinit  +++|# TITLE WRAPUP - WRAP-UP PROCESSING PRIOR TO NORMAL TERMINATION.      #
03274  M00S03208.sxinit  +++|
03275  M00S03209.sxinit  +++|      BEGIN  # WRAPUP #
03276  M00S03210.sxinit  +++|
03277  M00S03211.sxinit  +++|#
03278  M00S03212.sxinit  +++|**    WRAPUP - WRAPUP PROCESSING PRIOR TO NORMAL TERMINATION.
03279  M00S03213.sxinit  +++|*
03280  M00S03214.sxinit  +++|*     THIS PROCEDURE DOES THE WRAP-UP PROCESSING PRIOR TO NORMAL
03281  M00S03215.sxinit  +++|*     TERMINATION.
03282  M00S03216.sxinit  +++|*
03283  M00S03217.sxinit  +++|*     PROC WRAPUP
03284  M00S03218.sxinit  +++|*
03285  M00S03219.sxinit  +++|*     MESSAGES  CPU SECONDS = XXX.
03286  M00S03220.sxinit  +++|*               CPU PERCENT = XX.X.
03287  M00S03221.sxinit  +++|*               FL CHANGES = XXX.
03288  M00S03222.sxinit  +++|*               MAXIMUM FL = XXX.
03289  M00S03223.sxinit  +++|*               OVERLAY LOADS = XXX.
03290  M00S03224.sxinit  +++|*               FILES STAGED = XXX.
03291  M00S03225.sxinit  +++|*                FILES DESTAGED = XXX.
03292  M00S03226.sxinit  +++|*
03293  M00S03227.sxinit  +++|#
03294  M00S03228.sxinit  +++|
03295  M00S03229.sxinit  +++|      XREF
03296  M00S03230.sxinit  +++|        BEGIN
03297  M00S03231.sxinit  +++|        PROC MESSAGE;                # INTERFACE TO *MESSAGE* MACRO #
03298  M00S03232.sxinit  +++|        PROC RTIME;                  # INTERFACE TO *RTIME* MACRO #
03299  M00S03233.sxinit  +++|        PROC TERMCAT;                # CLOSES THE CATALOGS AND SMAMAPS
03300  M00S03234.sxinit  +++|                                     #
03301  M00S03235.sxinit  +++|        PROC TERMSCP;                # RELINQUISHES SCP STATUS #
03302  M00S03236.sxinit  +++|        PROC TIME;                   # INTERFACE TO *TIME* MACRO #
03303  M00S03237.sxinit  +++|        FUNC XCDD C(6);              # CONVERT TO DECIMAL DISPLAY #
03304  M00S03238.sxinit  +++|        END
03305  M00S03239.sxinit  +++|
03306  M00S03240.sxinit  +++|#
03307  M00S03241.sxinit  +++|****  PROC WRAPUP - XREF LIST END.
03308  M00S03242.sxinit  +++|#
03309  M00S03243.sxinit  +++|
03310  M00S03244.sxinit  +++|
03311  M00S03245.sxinit  +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
03312  M00S03246.sxinit  +++|*CALL COMBFAS
03313  M00S03247.sxinit  +++|*CALL COMXMSC
03314  M00S03248.sxinit  +++|*CALL COMXOVL
03315  M00S03249.sxinit  +++|
03316  M00S03250.sxinit  +++|      ARRAY WRAPMESS [0:0] S(3);
03317  M00S03251.sxinit  +++|        BEGIN
03318  M00S03252.sxinit  +++|        ITEM WRAPFILL1  C(00,00,01) = [" "];  # LEADING BLANK #
03319  M00S03253.sxinit  +++|        ITEM WRAPDESC   C(00,06,14);  # MSG HEADER #
03320  M00S03254.sxinit  +++|        ITEM WRAPEQ     C(01,30,02) = ["= "];  # EQUAL SIGN #
03321  M00S03255.sxinit  +++|        ITEM WRAPQTY    C(01,42,06);  # QUANTITY #
03322  M00S03256.sxinit  +++|        ITEM WRAPPRD    C(02,18,01) = ["."];  # PERIOD #
03323  M00S03257.sxinit  +++|        ITEM WRAPTERM   U(02,24,12) = [0];  # MSG TERMINATOR #
03324  M00S03258.sxinit  +++|        END
03325  M00S03259.sxinit  +++|
03326  M00S03260.sxinit  +++|      ARRAY CTIMESTAT [0:0] S(1);    # ACCUMULATED JOB TIME #
03327  M00S03261.sxinit  +++|        BEGIN
03328  M00S03262.sxinit  +++|        ITEM CTIMSECS   U(00,24,24);  # JOB SECONDS #
03329  M00S03263.sxinit  +++|        ITEM CTIMMILS   U(00,48,12);  # JOB MILLESECONDS #
03330  M00S03264.sxinit  +++|        END
03331  M00S03265.sxinit  +++|
03332  M00S03266.sxinit  +++|      ITEM PERCENT    I;             # PERCENT OF MACHINE TIME #
03333  M00S03267.sxinit  +++|      ITEM RESULT     C(10);         # DISPLAY CODE RESULT #
03334  M00S03268.sxinit  +++|
03335  M00S03269.sxinit  +++|
03336  M00S03270.sxinit  +++|
03337  M00S03271.sxinit  +++|
03338  M00S03272.sxinit  +++|
03339  M00S03273.sxinit  +++|      TERMCAT;
03340  M00S03274.sxinit  +++|
03341  M00S03275.sxinit  +++|      TERMSCP;
03342  M00S03276.sxinit  +++|
03343  M00S03277.sxinit  +++|#
03344  M00S03278.sxinit  +++|*     WRITE SYSTEM DAYFILE MESSAGES.
03345  M00S03279.sxinit  +++|#
03346  M00S03280.sxinit  +++|
03347  M00S03281.sxinit  +++|      WRAPDESC[0] = "CPU SECONDS";
03348  M00S03282.sxinit  +++|      TIME(CTIMESTAT);
03349  M00S03283.sxinit  +++|      RESULT = XCDD(CTIMSECS[0]);
03350  M00S03284.sxinit  +++|      WRAPQTY[0] = C<4,6>RESULT;
03351  M00S03285.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03352  M00S03286.sxinit  +++|
03353  M00S03287.sxinit  +++|      WRAPDESC[0] = "CPU PERCENT";
03354  M00S03288.sxinit  +++|      RTIME(RTIMESTAT);
03355  M00S03289.sxinit  +++|      PERCENT = (CTIMSECS[0] * 10000) / (RTIMSECS[0] - FIRSTRTIME) + 5
03356  M00S03290.sxinit  +++|        ;
03357  M00S03291.sxinit  +++|      RESULT = XCDD(PERCENT);
03358  M00S03292.sxinit  +++|      C<0,4>WRAPQTY[0] = C<4,4>RESULT;
03359  M00S03293.sxinit  +++|      C<4,1>WRAPQTY[0] = ".";
03360  M00S03294.sxinit  +++|      C<5,1>WRAPQTY[0] = C<8,1>RESULT;
03361  M00S03295.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03362  M00S03296.sxinit  +++|
03363  M00S03297.sxinit  +++|      WRAPDESC[0] = "FL CHANGES";
03364  M00S03298.sxinit  +++|      RESULT = XCDD(NFLCHNG);
03365  M00S03299.sxinit  +++|      WRAPQTY[0] = C<4,6>RESULT;
03366  M00S03300.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03367  M00S03301.sxinit  +++|
03368  M00S03302.sxinit  +++|      WRAPDESC[0] = "MAXIMUM FL";
03369  M00S03303.sxinit  +++|      RESULT = XCDD(MAX$FL);
03370  M00S03304.sxinit  +++|      WRAPQTY[0] = C<4,6>RESULT;
03371  M00S03305.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03372  M00S03306.sxinit  +++|
03373  M00S03307.sxinit  +++|      WRAPDESC[0] = "OVERLAY LOADS";
03374  M00S03308.sxinit  +++|      RESULT = XCDD(OVLDCNT);
03375  M00S03309.sxinit  +++|      WRAPQTY[0] = C<4,6>RESULT;
03376  M00S03310.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03377  M00S03311.sxinit  +++|
03378  M00S03312.sxinit  +++|      WRAPDESC[0] = "FILES STAGED";
03379  M00S03313.sxinit  +++|      RESULT = XCDD(STGCNT);
03380  M00S03314.sxinit  +++|      WRAPQTY[0] = C<4,6>RESULT;
03381  M00S03315.sxinit  +++|      MESSAGE(WRAPMESS,SYSUDF1);
03382  M00S03316.sxinit  +++|
03383  M00S03317.sxinit  +++|
03384  M00S03318.sxinit  +++|      WRAPDESC[0] = "FILES DESTAGED";
03385  M00S03319.sxinit  +++|        RESULT = XCDD(DSTCNT);
03386  M00S03320.sxinit  +++|        WRAPQTY[0] = C<4,6>RESULT;
03387  M00S03321.sxinit  +++|        MESSAGE(WRAPMESS,SYSUDF1);
03388  M00S03322.sxinit  +++|      END  # WRAPUP #
03389  M00S03323.sxinit  +++|
03390  M00S03324.sxinit  +++|    TERM
cdc/nos2.source/opl.opl871/deck/sxinit.001.txt · Last modified: by 127.0.0.1