User Tools

Site Tools


cdc:nos2.source:opl.opl871:deck:ssdebug

Deck SSDEBUG

2 Modifications

Listing Sections

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.ssdebug +++|PRGM SSDEBUG;
00002  M01S00002.ssdebug +++|# TITLE SSDEBUG - INITIALIZES *SSDEBUG* UTILITY.                      #
00003  M01S00003.ssdebug +++|
00004  M01S00004.ssdebug +++|      BEGIN  # SSDEBUG #
00005  M01S00005.ssdebug +++|
00006  M01S00006.ssdebug +++|#
00007  M01S00007.ssdebug +++|***   SSDEBUG - INITIALIZES *SSDEBUG* UTILITY.
00008  M01S00008.ssdebug +++|*
00009  M01S00009.ssdebug +++|*     THIS PRGM INITIALIZES *SSDEBUG* UTILITY BY
00010  M01S00010.ssdebug +++|*     CRACKING THE CONTROL CARD AND CHECKING THE
00011  M01S00011.ssdebug +++|*     SYNTAX OF THE PARAMETERS.
00012  M01S00012.ssdebug +++|*
00013  M01S00013.ssdebug +++|*     SSDEBUG,I,L=REPORT.
00014  M01S00014.ssdebug +++|*
00015  M01S00015.ssdebug +++|*     PRGM SSDEBUG.
00016  M01S00016.ssdebug +++|*
00017  M01S00017.ssdebug +++|*     ENTRY.     INPUTS TO SSDEBUG ARE -
00018  M01S00018.ssdebug +++|*
00019  M01S00019.ssdebug +++|*               CM         CARTRIDGE MANUFACTURER CODE IS *A *,
00020  M01S00020.ssdebug +++|*                          INDICATING *IBM *.
00021  M01S00021.ssdebug +++|*
00022  M01S00022.ssdebug +++|*               CM = A     CARTRIDGE MANUFACTURE CODE IS *A *,
00023  M01S00023.ssdebug +++|*                          INDICATING *IBM *.
00024  M01S00024.ssdebug +++|*
00025  M01S00025.ssdebug +++|*               CM OMITTED CARTRIDGE MANUFACTURER CODE IS *A *,
00026  M01S00026.ssdebug +++|*                          INDICATING *IBM *.
00027  M01S00027.ssdebug +++|*
00028  M01S00028.ssdebug +++|*               CM = ANYTHING ELSE IS CURRENTLY ILLEGAL.
00029  M01S00029.ssdebug +++|*
00030  M01S00030.ssdebug +++|*               CN         NOT PERMITTED.
00031  M01S00031.ssdebug +++|*
00032  M01S00032.ssdebug +++|*               CN = CSN   DIGIT PORTION OF CARTRIDGE SERIAL NUMBER
00033  M01S00033.ssdebug +++|*                          IS *CSN*.
00034  M01S00034.ssdebug +++|*
00035  M01S00035.ssdebug +++|*               CN OMITTED FOR OP=RS, ONE AND ONE OF THE FOLLOWING
00036  M01S00036.ssdebug +++|*                          MUST BE SPECIFIED: *YI* OR *CN*.
00037  M01S00037.ssdebug +++|*                          FOR OP=CF, ONE AND ONLY ONE OF THE FOLLOWING
00038  M01S00038.ssdebug +++|*                          MUST BE SPECIFIED: *FO*, *YI*, OR *CN*.
00039  M01S00039.ssdebug +++|*
00040  M01S00040.ssdebug +++|*               I          SOURCE OF DIRECTIVES IS ON FILE
00041  M01S00041.ssdebug +++|*                          *INPUT*.
00042  M01S00042.ssdebug +++|*               I = LFN    SOURCE OF DIRECTIVES IS ON FILE
00043  M01S00043.ssdebug +++|*                          *LFN*.
00044  M01S00044.ssdebug +++|*               I OMITTED  SOURCE OF DIRECTIVES IS ON FILE
00045  M01S00045.ssdebug +++|*                          *INPUT*.
00046  M01S00046.ssdebug +++|*
00047  M01S00047.ssdebug +++|*               Z          SOURCE OF DIRECTIVES IS ON THE
00048  M01S00048.ssdebug +++|*                          CONTROL CARD.
00049  M01S00049.ssdebug +++|*
00050  M01S00050.ssdebug +++|*               L          LISTABLE OUTPUT ON FILE *OUTPUT*.
00051  M01S00051.ssdebug +++|*               L = LFN    LISTABLE OUTPUT ON FILE *LFN*.
00052  M01S00052.ssdebug +++|*               L = 0      NO OUTPUT FILE GENERATED.
00053  M01S00053.ssdebug +++|*               L OMITTED  SAME AS *L*.
00054  M01S00054.ssdebug +++|*
00055  M01S00055.ssdebug +++|*               *SSDEBUG* DIRECTIVE OPTIONS ARE-
00056  M01S00056.ssdebug +++|*               OP         NOT PERMITTED.
00057  M01S00057.ssdebug +++|*               OP = XX    WHERE *XX* IS THE DIRECTIVE TO BE PROCESSED.
00058  M01S00058.ssdebug +++|*                          *XX* MAY BE ONE OF THE FOLLOWING.
00059  M01S00059.ssdebug +++|*                          *RS*--READ SELECTED RAW AU.
00060  M01S00060.ssdebug +++|*                          *RF*--READ SELECTED RAW FILES.
00061  M01S00061.ssdebug +++|*                          *RP*--RELEASE SPACE FOR PROBLEM CHAINS.
00062  M01S00062.ssdebug +++|*                          *RL*--REMOVE FCT ENTRY NOT LINKED PROPERLY
00063  M01S00063.ssdebug +++|*                                TO THE SMMAP.
00064  M01S00064.ssdebug +++|*                          *RC*--REMOVE SMMAP ENTRY WHERE THERE IS NO
00065  M01S00065.ssdebug +++|*                                CORRESPONDING FCT ENTRY.
00066  M01S00066.ssdebug +++|*                          *CF*--CHANGE FLAG IN SFMCAT OR SMMAP.
00067  M01S00067.ssdebug +++|*               OP OMITTED NOT PERMITTED.
00068  M01S00068.ssdebug +++|*
00069  M01S00069.ssdebug +++|*               PF         USE PERMANENT FILE NAME *MMMMBUG* FOR
00070  M01S00070.ssdebug +++|*                          RAW MSF IMAGE.
00071  M01S00071.ssdebug +++|*               PF = PFN   USE PERMANENT FILE NAME *PFN* FOR RAW
00072  M01S00072.ssdebug +++|*                          MSF IMAGE.
00073  M01S00073.ssdebug +++|*               PF OMITTED SAME AS *PF*.
00074  M01S00074.ssdebug +++|*                          *NOTE* - *PF* IS ONLY USED WITH OP=RS
00075  M01S00075.ssdebug +++|*                          OR OP=RF.  THE PERMANENT FILE-S FAMILY
00076  M01S00076.ssdebug +++|*                          AND USER INDEX WILL BE TAKEN FROM THE
00077  M01S00077.ssdebug +++|*                          USER-S CURRENT PERMANENT FILE PARAMETERS.
00078  M01S00078.ssdebug +++|*
00079  M01S00079.ssdebug +++|*               FO         NOT PERMITTED.
00080  M01S00080.ssdebug +++|*               FO = N     *FCT* ORDINAL.
00081  M01S00081.ssdebug +++|*               FO OMITTED MUST BE SPECIFIED FOR OP=RF, OP=RP, AND
00082  M01S00082.ssdebug +++|*                          OP=RL.
00083  M01S00083.ssdebug +++|*                          FOR OP=CF, ONE AND ONLY ONE OF THE FOLLOWING
00084  M01S00084.ssdebug +++|*                          MUST BE SPECIFIED: *FO* , *YI* , OR *CN*.
00085  M01S00085.ssdebug +++|*
00086  M01S00086.ssdebug +++|*               ST         NOT PERMITTED.
00087  M01S00087.ssdebug +++|*               ST = N     AU NUMBER.  FOR OP=RF AND OP=RP, *N* IS
00088  M01S00088.ssdebug +++|*                          THE STARTING AU OF A FILE OR FRAGMENT.
00089  M01S00089.ssdebug +++|*                          FOR OP=CF, *N* IS THE AU NUMBER OF AN
00090  M01S00090.ssdebug +++|*                          *FCT* FLAG TO BE CHANGED, AND TAKES PRIORITY
00091  M01S00091.ssdebug +++|*                          OVER THE RANGE OF AU INDICATED BY THE
00092  M01S00092.ssdebug +++|*                          *SL* AND *SU* PARAMETERS.  AU NUMBERS
00093  M01S00093.ssdebug +++|*                          ARE MEANINGFUL WITH OP=CF ONLY FOR AU
00094  M01S00094.ssdebug +++|*                          DETAIL FLAGS (FL=SF, FL=FC, OR FL=SC).
00095  M01S00095.ssdebug +++|*               ST OMITTED MUST BE SPECIFIED FOR OP=RF AND OP=RP.
00096  M01S00096.ssdebug +++|*                          FOR OP=CF, VALUES OF *SL* AND *SU* ARE USED.
00097  M01S00097.ssdebug +++|*
00098  M01S00098.ssdebug +++|*               FM         USE DEFAULT FAMILY.
00099  M01S00099.ssdebug +++|*               FM = FAM   PROCESS THE FAMILY *FAM*.
00100  M01S00100.ssdebug +++|*               FM OMITTED SAME AS *FM*.
00101  M01S00101.ssdebug +++|*
Line S00102 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
00102  M02S00102.msea014 ---|*               SB         SELECT SUBFAMILY 0.
00103  M01S00001.msea014 +++|*               SB         NOT PERMITTED.
00104  M01S00103.ssdebug +++|*               SB = SUB   SELECT A SUBFAMILY *SUB*.
Line S00104 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
00105  M02S00104.msea014 ---|*               SB OMITTED SAME AS *SB*.
00106  M01S00002.msea014 +++|*               SB OMITTED NOT PERMITTED.
00107  M01S00105.ssdebug +++|*
00108  M01S00106.ssdebug +++|*               SM         USE  A
00109  M01S00107.ssdebug +++|*               SM = N     USE SM *N* WHERE *N* IS A LETTER FROM
00110  M01S00108.ssdebug +++|*                          A TO H.
00111  M01S00109.ssdebug +++|*               SM OMITTED SAME AS *SM*.
00112  M01S00110.ssdebug +++|*
00113  M01S00111.ssdebug +++|*               SL         COPY, OR CHANGE FLAGS FOR, AU 1
00114  M01S00112.ssdebug +++|*                          THROUGH *SU* (FROM THE *SU* PARAMETER).
00115  M01S00113.ssdebug +++|*               SL = Z     COPY, OR CHANGE FLAGS FOR, AU *Z*
00116  M01S00114.ssdebug +++|*                          THROUGH *SU* (FROM THE *SU* PARAMETER).
00117  M01S00115.ssdebug +++|*               SL OMITTED SAME AS *SL*.
00118  M01S00116.ssdebug +++|*
00119  M01S00117.ssdebug +++|*               SU         COPY, OR CHANGE FLAGS FOR, AU *SL*
00120  M01S00118.ssdebug +++|*                          (FROM THE *SL* PARAMETER) THROUGH 1.
00121  M01S00119.ssdebug +++|*               SU = J     COPY, OR CHANGE FLAGS FOR, AU *SL*
00122  M01S00120.ssdebug +++|*                          (FROM THE *SL* PARAMETER) THROUGH *J*.
00123  M01S00121.ssdebug +++|*               SU OMITTED SAME AS *SU*.
00124  M01S00122.ssdebug +++|*                          *NOTE* - *SL* AND *SU* MUST BE IN
00125  M01S00123.ssdebug +++|*                          THE RANGE 1 THROUGH 1931.  *SL* MUST BE
00126  M01S00124.ssdebug +++|*                          LESS THAN OR EQUAL TO *SU*.
00127  M01S00125.ssdebug +++|*                          FOR OP=CF, IF *ST* IS SPECIFIED, THEN
00128  M01S00126.ssdebug +++|*                          *SL* AND *SU* ARE NOT USED.
00129  M01S00127.ssdebug +++|*
00130  M01S00128.ssdebug +++|*               FL         NOT PERMITTED.
00131  M01S00129.ssdebug +++|*               FL = XX    SET OR CLEAR FLAG *XX* IN SMMAP OR MSF
00132  M01S00130.ssdebug +++|*                          CATALOG (VALID ONLY FOR OP=CF).  *XX* MUST
00133  M01S00131.ssdebug +++|*                          BE ONE OF THE FOLLOWING -
00134  M01S00132.ssdebug +++|*                          *ME* - LINKAGE ERROR FLAG (IN SMMAP).
00135  M01S00133.ssdebug +++|*                          *FE* - LINKAGE ERROR FLAG (IN MSF CATALOG
00136  M01S00134.ssdebug +++|*                                 *FCT*).
00137  M01S00135.ssdebug +++|*                          *IB* - INHIBIT ALLOCATION FLAG.
00138  M01S00136.ssdebug +++|*                          *LC* - LOST CARTRIDGE FLAG.
00139  M01S00137.ssdebug +++|*                          *EW* - EXCESSIVE WRITE PARITY ERROR FLAG.
00140  M01S00138.ssdebug +++|*                          *SF* - START OF FRAGMENT FLAG.
00141  M01S00139.ssdebug +++|*                          *FC* - FROZEN CHAIN FLAG.
00142  M01S00140.ssdebug +++|*                          *AC* - AU CONFLICT FLAG.
00143  M01S00141.ssdebug +++|*               FL OMITTED *FL* MUST BE SPECIFIED FOR OP=CF.
00144  M01S00142.ssdebug +++|*
00145  M01S00143.ssdebug +++|*               ON         FLAG SPECIFIED BY *FL* IS TO BE SET
00146  M01S00144.ssdebug +++|*                          (VALID ONLY FOR OP=CF).
00147  M01S00145.ssdebug +++|*               OF         FLAG SPECIFIED BY *FL* IS TO BE CLEARED
00148  M01S00146.ssdebug +++|*                          (VALID ONLY FOR OP=CF).
00149  M01S00147.ssdebug +++|*
00150  M01S00148.ssdebug +++|*               YI         NOT PERMITTED.
00151  M01S00149.ssdebug +++|*               YI = N     USE *N* AS THE Y COORDINATE WHERE
00152  M01S00150.ssdebug +++|*                          *N* IS FROM 0 TO 21.
00153  M01S00151.ssdebug +++|*                          *NOTE* - THERE ARE NO CUBES ON THE
00154  M01S00152.ssdebug +++|*                          COLUMN Z=6.
00155  M01S00153.ssdebug +++|*                          *ZI* MUST BE SPECIFIED WHEN *YI*=N
00156  M01S00154.ssdebug +++|*                          IS USED.
00157  M01S00155.ssdebug +++|*               YI OMITTED FOR OP=RS, ONE AND ONLY ONE OF THE FOLLOWING
00158  M01S00156.ssdebug +++|*                          MUST BE SPECIFIED: *YI* OR *CN*.
00159  M01S00157.ssdebug +++|*                          FOR OP=CF, ONE AND ONLY ONE OF THE FOLLOWING
00160  M01S00158.ssdebug +++|*                          MUST BE SPECIFIED: *FO*, *YI*, OR *CN*.
00161  M01S00159.ssdebug +++|*                          *YI* AND *ZI* ARE REQUIRED FOR OP=RC.
00162  M01S00160.ssdebug +++|*
00163  M01S00161.ssdebug +++|*               ZI         NOT PERMITTED.
00164  M01S00162.ssdebug +++|*               ZI = N     USE *N* AS THE ZI COORDINATE WHERE
00165  M01S00163.ssdebug +++|*                          *N* IS FROM 0 TO 15.
00166  M01S00164.ssdebug +++|*                          *YI* MUST BE SPECIFIED WHEN *ZI*=N
00167  M01S00165.ssdebug +++|*                          IS USED.
00168  M01S00166.ssdebug +++|*               ZI OMITTED *ZI* MUST BE SPECIFIED IF *YI* IS USED.
00169  M01S00167.ssdebug +++|*                          *YI* AND *ZI* ARE REQUIRED FOR OP=RC.
00170  M01S00168.ssdebug +++|*
00171  M01S00169.ssdebug +++|*     EXIT.     *SSDEBUG* DIRECTIVES WERE PROCESSED OR AN
00172  M01S00170.ssdebug +++|*               ERROR CONDITION WAS ENCOUNTERED.
00173  M01S00171.ssdebug +++|*
00174  M01S00172.ssdebug +++|*     MESSAGES. SSDEBUG COMPLETE.
00175  M01S00173.ssdebug +++|*               SSDEBUG - MUST BE SYSTEM ORIGIN.
00176  M01S00174.ssdebug +++|*               UNABLE TO CONNECT WITH EXEC.
00177  M01S00175.ssdebug +++|*
00178  M01S00176.ssdebug +++|*     NOTES.    PRGM *SSDEBUG* INITIALIZES THE *SSDEBUG*
00179  M01S00177.ssdebug +++|*               UTILITY.  *SSDEBUG* IS A DIRECTIVE
00180  M01S00178.ssdebug +++|*               ORIENTED UTILITY.  THE DIRECTIVES CAN
00181  M01S00179.ssdebug +++|*               BE SPECIFIED ON THE CONTROL CARD OR VIA
00182  M01S00180.ssdebug +++|*               A FILE.  THE CONTROL CARD IS CRACKED AND
00183  M01S00181.ssdebug +++|*               THE DIRECTIVES ARE READ INTO A BUFFER.
00184  M01S00182.ssdebug +++|*               PROC *DBLOOP* IS CALLED TO CRACK AND
00185  M01S00183.ssdebug +++|*               SYNTAX CHECK EACH DIRECTIVE.  THE CRACKED
00186  M01S00184.ssdebug +++|*               DIRECTIVES ARE WRITTEN TO A SCRATCH FILE.
00187  M01S00185.ssdebug +++|*               ANY ERROR IN THE DIRECTIVES CAUSES *SSDEBUG*
00188  M01S00186.ssdebug +++|*               TO ABORT.  IF THERE ARE NO ERRORS IN THE
00189  M01S00187.ssdebug +++|*               DIRECTIVES, A CONNECT IS SET UP WITH EXEC.
00190  M01S00188.ssdebug +++|*               PROC *DBMAIN* IS CALLED TO PROCESS EACH
00191  M01S00189.ssdebug +++|*               DIRECTIVE.  A DISCONNECT IS DONE WITH EXEC
00192  M01S00190.ssdebug +++|*               AFTER ALL THE DIRECTIVES HAVE BEEN PROCESSED
00193  M01S00191.ssdebug +++|*               SUCCESSFULLY.
00194  M01S00192.ssdebug +++|#
00195  M01S00193.ssdebug +++|
00196  M01S00194.ssdebug +++|#
00197  M01S00195.ssdebug +++|****  PRGM SSDEBUG - XREF LIST BEGIN.
00198  M01S00196.ssdebug +++|#
00199  M01S00197.ssdebug +++|
00200  M01S00198.ssdebug +++|      XREF
00201  M01S00199.ssdebug +++|        BEGIN
00202  M01S00200.ssdebug +++|        PROC ABORT;                  # CALLS *ABORT* MACRO #
00203  M01S00201.ssdebug +++|        PROC BZFILL;                 # BLANK/ZERO FILLS A BUFFER #
00204  M01S00202.ssdebug +++|        PROC DBCALL1;                # ISSUES TYPE 1 REQUESTS TO EXEC #
00205  M01S00203.ssdebug +++|        PROC DBERR;                  # ERROR PROCESSOR #
00206  M01S00204.ssdebug +++|        PROC DBHEAD;                 # WRITES HEADER LINE #
00207  M01S00205.ssdebug +++|        PROC DBLOOP;                 # CRACKS AND SYNTAX CHECKS
00208  M01S00206.ssdebug +++|                                       DIRECTIVES #
00209  M01S00207.ssdebug +++|        PROC DBMAIN;                 # PROCESSES EACH DIRECTIVE #
00210  M01S00208.ssdebug +++|        PROC DBTAB;                  # SETS UP ARGUMENT LIST #
00211  M01S00209.ssdebug +++|        PROC GETFAM;                 # GETS DEFAULT FAMILY AND SUB
00212  M01S00210.ssdebug +++|                                       SYSTEM ID #
00213  M01S00211.ssdebug +++|        PROC GETPFP;                 # GET USER-S FAMILY AND UI #
00214  M01S00212.ssdebug +++|        PROC GETSPS;                 # GET SYSTEM ORIGIN STATUS #
00215  M01S00213.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
00216  M01S00214.ssdebug +++|        PROC READ;                   # READS A FILE #
00217  M01S00215.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00218  M01S00216.ssdebug +++|                                       OR RETURN #
00219  M01S00217.ssdebug +++|        PROC RPCLOSE;                # CLOSES REPORT FILE #
00220  M01S00218.ssdebug +++|        PROC RPLINE;                 # WRITES A REPORT LINE #
00221  M01S00219.ssdebug +++|        PROC RPOPEN;                 # OPENS REPORT FILE #
00222  M01S00220.ssdebug +++|        PROC RPSPACE;                # WRITES A BLANK LINE #
00223  M01S00221.ssdebug +++|        PROC XARG;                   # CRACK PARAMETER LIST #
00224  M01S00222.ssdebug +++|        PROC XZAP;                   # *Z* ARGUMENT PROCESSOR #
00225  M01S00223.ssdebug +++|        PROC ZSETFET;                # INITIALIZES A FET #
00226  M01S00224.ssdebug +++|        END
00227  M01S00225.ssdebug +++|
00228  M01S00226.ssdebug +++|#
00229  M01S00227.ssdebug +++|****  PRGM SSDEBUG - XREF LIST END.
00230  M01S00228.ssdebug +++|#
00231  M01S00229.ssdebug +++|
00232  M01S00230.ssdebug +++|      DEF RSLEN     #1#;             # RETURN STATUS WORD LENGTH #
00233  M01S00231.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
00234  M01S00232.ssdebug +++|
00235  M01S00233.ssdebug +++|                                               CONTROL PRESET;
00236  M01S00234.ssdebug +++|*CALL COMBFAS
00237  M01S00235.ssdebug +++|*CALL COMBBZF
00238  M01S00236.ssdebug +++|*CALL COMBCMD
00239  M01S00237.ssdebug +++|*CALL COMBCPR
00240  M01S00238.ssdebug +++|*CALL COMBPFP
00241  M01S00239.ssdebug +++|*CALL COMBUCR
00242  M01S00240.ssdebug +++|*CALL COMSPFM
00243  M01S00241.ssdebug +++|*CALL COMTDBG
00244  M01S00242.ssdebug +++|*CALL COMTDBP
00245  M01S00243.ssdebug +++|*CALL COMTDER
00246  M01S00244.ssdebug +++|*CALL COMTFMT
00247  M01S00245.ssdebug +++|*CALL COMTOUT
00248  M01S00246.ssdebug +++|
00249  M01S00247.ssdebug +++|      ITEM ARGLIST    U;             # FWA OF ARGUMENT TABLE #
00250  M01S00248.ssdebug +++|      ITEM BUFP       U;             # FWA OF *CIO* BUFFER #
00251  M01S00249.ssdebug +++|      ITEM DEFORD     I;             # DEFAULT FAMILY ORDINAL #
00252  M01S00250.ssdebug +++|      ITEM ERRFLAG    B;             # ERROR FLAG #
00253  M01S00251.ssdebug +++|      ITEM FETP       U;             # FWA OF FET #
00254  M01S00252.ssdebug +++|      ITEM FLAG       I;             # ERROR FLAG #
00255  M01S00253.ssdebug +++|      ITEM LFN        C(7);          # FILE NAME #
00256  M01S00254.ssdebug +++|      ITEM LNKORD     I;             # LINKED FAMILY ORDINAL #
00257  M01S00255.ssdebug +++|      ITEM NUM        I;             # NUMBER OF FAMILIES #
00258  M01S00256.ssdebug +++|      ITEM RESPCODE   U;             # RESPONSE CODE FROM EXEC #
00259  M01S00257.ssdebug +++|
00260  M01S00258.ssdebug +++|      ARRAY CALL$SS [0:0] P(CPRLEN);;  # CALLSS REQUEST BLOCK #
00261  M01S00259.ssdebug +++|      ARRAY OUTFET [0:0] S(SFETL);;  # FET FOR OUTPUT FILE #
00262  M01S00260.ssdebug +++|      BASED
00263  M01S00261.ssdebug +++|      ARRAY RA [0:0];;               # TO ACCESS CONTROL CARD AREA #
00264  M01S00262.ssdebug +++|      ARRAY SPSSTAT [0:0] S(RSLEN);
00265  M01S00263.ssdebug +++|        BEGIN
00266  M01S00264.ssdebug +++|        ITEM SPS$STATUS U(00,48,12);  # RETURN STATUS #
00267  M01S00265.ssdebug +++|        END
00268  M01S00266.ssdebug +++|
00269  M01S00267.ssdebug +++|CONTROL EJECT;
00270  M01S00268.ssdebug +++|
00271  M01S00269.ssdebug +++|      GETSPS(SPSSTAT);               # GET SYSTEM ORIGIN STATUS #
00272  M01S00270.ssdebug +++|      IF SPS$STATUS NQ 0
00273  M01S00271.ssdebug +++|      THEN
00274  M01S00272.ssdebug +++|        BEGIN
00275  M01S00273.ssdebug +++|        DBMSG$LN[0] = " SSDEBUG - MUST BE SYSTEM ORIGIN.";
00276  M01S00274.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
00277  M01S00275.ssdebug +++|        ABORT;
00278  M01S00276.ssdebug +++|        END
00279  M01S00277.ssdebug +++|
00280  M01S00278.ssdebug +++|      DBREQID = REQNAME"RQIDBUG";    # SET REQUESTOR ID #
00281  M01S00279.ssdebug +++|
00282  M01S00280.ssdebug +++|#
00283  M01S00281.ssdebug +++|*     SAVE THE USER-S PERMANENT FILE PARAMETERS.
00284  M01S00282.ssdebug +++|#
00285  M01S00283.ssdebug +++|
00286  M01S00284.ssdebug +++|      GETPFP(PFP[0]);
00287  M01S00285.ssdebug +++|      USER$FAM[0] = PFP$FAM[0];
00288  M01S00286.ssdebug +++|      USER$UI[0] = PFP$UI[0];
00289  M01S00287.ssdebug +++|      USER$PACK[0] = PFP$PACK[0];
00290  M01S00288.ssdebug +++|
00291  M01S00289.ssdebug +++|#
00292  M01S00290.ssdebug +++|*     CRACK THE CONTROL CARD.
00293  M01S00291.ssdebug +++|#
00294  M01S00292.ssdebug +++|
00295  M01S00293.ssdebug +++|      DBTAB(ARGLIST);                # SET UP ARGUMENT TABLE #
00296  M01S00294.ssdebug +++|      XARG(ARGLIST,0,FLAG);
00297  M01S00295.ssdebug +++|      IF FLAG NQ OK
00298  M01S00296.ssdebug +++|      THEN                           # PROCESS SYNTAX ERROR #
00299  M01S00297.ssdebug +++|        BEGIN
00300  M01S00298.ssdebug +++|        DBERRCODE = S"DSYNT$CRD";
00301  M01S00299.ssdebug +++|        OUT$FETP = 0;
00302  M01S00300.ssdebug +++|        DBERR(DBERRCODE);
00303  M01S00301.ssdebug +++|        END
00304  M01S00302.ssdebug +++|
00305  M01S00303.ssdebug +++|#
00306  M01S00304.ssdebug +++|*     READ THE DIRECTIVES.
00307  M01S00305.ssdebug +++|#
00308  M01S00306.ssdebug +++|
00309  M01S00307.ssdebug +++|      FETP = LOC(DB$FET[0]);
00310  M01S00308.ssdebug +++|      BUFP = LOC(DB$CBUF[0]);
00311  M01S00309.ssdebug +++|      LFN = DBARG$I[0];
00312  M01S00310.ssdebug +++|      ZSETFET(FETP,LFN,BUFP,DBUFL,SFETL);
00313  M01S00311.ssdebug +++|
00314  M01S00312.ssdebug +++|      IF DBARG$Z[0] NQ 0
00315  M01S00313.ssdebug +++|      THEN                           # *Z* OPTION SPECIFIED #
00316  M01S00314.ssdebug +++|        BEGIN
00317  M01S00315.ssdebug +++|        XZAP(DB$FET[0]);
00318  M01S00316.ssdebug +++|        END
00319  M01S00317.ssdebug +++|
00320  M01S00318.ssdebug +++|      ELSE
00321  M01S00319.ssdebug +++|        BEGIN
00322  M01S00320.ssdebug +++|        READ(DB$FET[0],RCL);         # READ DIRECTIVE FILE #
00323  M01S00321.ssdebug +++|        END
00324  M01S00322.ssdebug +++|
00325  M01S00323.ssdebug +++|#
00326  M01S00324.ssdebug +++|*     SET UP THE OUTPUT FILE.
00327  M01S00325.ssdebug +++|#
00328  M01S00326.ssdebug +++|
00329  M01S00327.ssdebug +++|      IF DBARG$WL[0] EQ 0
00330  M01S00328.ssdebug +++|      THEN                           # NO OUTPUT FILE SPECIFIED #
00331  M01S00329.ssdebug +++|        BEGIN
00332  M01S00330.ssdebug +++|        OUT$FETP = 0;
00333  M01S00331.ssdebug +++|        END
00334  M01S00332.ssdebug +++|
00335  M01S00333.ssdebug +++|      ELSE                           # OUTPUT FILE IS SPECIFIED #
00336  M01S00334.ssdebug +++|        BEGIN
00337  M01S00335.ssdebug +++|        OUT$FETP = LOC(OUTFET[0]);
00338  M01S00336.ssdebug +++|        END
00339  M01S00337.ssdebug +++|
00340  M01S00338.ssdebug +++|      RPOPEN(DBARG$L[0],OUT$FETP,DBHEAD);  # OPEN OUTPUT FILE #
00341  M01S00339.ssdebug +++|
00342  M01S00340.ssdebug +++|#
00343  M01S00341.ssdebug +++|*     WRITE THE CONTROL CARD IMAGE TO THE OUTPUT FILE.
00344  M01S00342.ssdebug +++|#
00345  M01S00343.ssdebug +++|
00346  M01S00344.ssdebug +++|      P<RA>= 0;
00347  M01S00345.ssdebug +++|      BZFILL(RA[O"70"],TYPFILL"BFILL",80);
00348  M01S00346.ssdebug +++|      RPLINE(OUT$FETP,RA[O"70"],2,80,0);
00349  M01S00347.ssdebug +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
00350  M01S00348.ssdebug +++|
00351  M01S00349.ssdebug +++|#
00352  M01S00350.ssdebug +++|*     CRACK AND SYNTAX CHECK THE DIRECTIVES.
00353  M01S00351.ssdebug +++|#
00354  M01S00352.ssdebug +++|
00355  M01S00353.ssdebug +++|      DBLOOP(ARGLIST,ERRFLAG);
00356  M01S00354.ssdebug +++|      IF ERRFLAG
00357  M01S00355.ssdebug +++|      THEN                           # SYNTAX ERROR IN DIRECTIVES #
00358  M01S00356.ssdebug +++|        BEGIN
00359  M01S00357.ssdebug +++|        DBERRCODE = S"DSYNT$CRD";
00360  M01S00358.ssdebug +++|        DBERR(DBERRCODE);
00361  M01S00359.ssdebug +++|        END
00362  M01S00360.ssdebug +++|
00363  M01S00361.ssdebug +++|#
00364  M01S00362.ssdebug +++|*     GET THE DEFAULT FAMILY AND SUBSYSTEM ID.
00365  M01S00363.ssdebug +++|#
00366  M01S00364.ssdebug +++|
00367  M01S00365.ssdebug +++|      DBSSID = ATAS;
00368  M01S00366.ssdebug +++|      GETFAM(FAMT,NUM,LNKORD,DEFORD,DBSSID);
00369  M01S00367.ssdebug +++|      DEF$FAM = FAM$NAME[DEFORD];
00370  M01S00368.ssdebug +++|
00371  M01S00369.ssdebug +++|#
00372  M01S00370.ssdebug +++|*     CONNECT TO EXEC.
00373  M01S00371.ssdebug +++|#
00374  M01S00372.ssdebug +++|
00375  M01S00373.ssdebug +++|      P<CPR> = LOC(CALL$SS[0]);
00376  M01S00374.ssdebug +++|      DBCALL1(REQTYP1"CONNECT",RESPCODE);
00377  M01S00375.ssdebug +++|      IF RESPCODE NQ OK
00378  M01S00376.ssdebug +++|      THEN
00379  M01S00377.ssdebug +++|        BEGIN
00380  M01S00378.ssdebug +++|        DBMSG$LN[0] = " UNABLE TO CONNECT WITH EXEC.";
00381  M01S00379.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
00382  M01S00380.ssdebug +++|        RPCLOSE(OUT$FETP);           # CLOSE OUTPUT FILE #
00383  M01S00381.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00384  M01S00382.ssdebug +++|        END
00385  M01S00383.ssdebug +++|
00386  M01S00384.ssdebug +++|#
00387  M01S00385.ssdebug +++|*     PROCESS EACH DIRECTIVE.
00388  M01S00386.ssdebug +++|#
00389  M01S00387.ssdebug +++|
00390  M01S00388.ssdebug +++|      DBMAIN;
00391  M01S00389.ssdebug +++|
00392  M01S00390.ssdebug +++|#
00393  M01S00391.ssdebug +++|*     DISCONNECT FROM EXEC.
00394  M01S00392.ssdebug +++|#
00395  M01S00393.ssdebug +++|
00396  M01S00394.ssdebug +++|      DBCALL1(REQTYP1"DISCONNECT",RESPCODE);
00397  M01S00395.ssdebug +++|
00398  M01S00396.ssdebug +++|      RPCLOSE(OUT$FETP);
00399  M01S00397.ssdebug +++|      DBMSG$LN[0] = " SSDEBUG COMPLETE.";  # END WITH DAYFILE MESSAGE #
00400  M01S00398.ssdebug +++|      MESSAGE(DBMSG[0],UDFL1);
00401  M01S00399.ssdebug +++|      RESTPFP(PFP$END);              # RESTORE USER-S *PFP* #
00402  M01S00400.ssdebug +++|
00403  M01S00401.ssdebug +++|      END  # SSDEBUG #
00404  M01S00402.ssdebug +++|
00405  M01S00403.ssdebug +++|    TERM
00406  M01S00404.ssdebug +++|PROC DBCALL1((REQCODE),RESPCODE);
00407  M01S00405.ssdebug +++|# TITLE DBCALL1 - ISSUES A TYPE 1 UCP CALL TO EXEC.                   #
00408  M01S00406.ssdebug +++|
00409  M01S00407.ssdebug +++|      BEGIN  # DBCALL1 #
00410  M01S00408.ssdebug +++|
00411  M01S00409.ssdebug +++|#
00412  M01S00410.ssdebug +++|**    DBCALL1 - ISSUES A TYPE 1 UCP CALL TO EXEC.
00413  M01S00411.ssdebug +++|*
00414  M01S00412.ssdebug +++|*     PROC DBCALL1((REQCODE),RESPCODE)
00415  M01S00413.ssdebug +++|*
00416  M01S00414.ssdebug +++|*     ENTRY     (REQCODE) = REQUEST CODE.
00417  M01S00415.ssdebug +++|*               (DBREQID) = REQUESTOR ID.
00418  M01S00416.ssdebug +++|*               (DBSSID)  = SUBSYSTEM ID.
00419  M01S00417.ssdebug +++|*               P<CPR>    = FWA OF CALLSS PARAMETER BLOCK.
00420  M01S00418.ssdebug +++|*
00421  M01S00419.ssdebug +++|*     EXIT      (RESPCODE) = RESPONSE FROM EXEC.
00422  M01S00420.ssdebug +++|*
00423  M01S00421.ssdebug +++|*     NOTES     THE CALLSS PARAMETER BLOCK IS SET UP FOR
00424  M01S00422.ssdebug +++|*               A TYPE 1 REQUEST AND THE REQUEST IS ISSUED
00425  M01S00423.ssdebug +++|*               TO EXEC.  TYPE 1 REQUESTS ARE THE UCP
00426  M01S00424.ssdebug +++|*               LINKAGE REQUESTS, CONNECT AND DISCONNECT.
00427  M01S00425.ssdebug +++|#
00428  M01S00426.ssdebug +++|
00429  M01S00427.ssdebug +++|      ITEM REQCODE    I;             # REQUEST CODE #
00430  M01S00428.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE FROM EXEC #
00431  M01S00429.ssdebug +++|
00432  M01S00430.ssdebug +++|#
00433  M01S00431.ssdebug +++|****  PROC DBCALL1 - XREF LIST BEGIN.
00434  M01S00432.ssdebug +++|#
00435  M01S00433.ssdebug +++|
00436  M01S00434.ssdebug +++|      XREF
00437  M01S00435.ssdebug +++|        BEGIN
00438  M01S00436.ssdebug +++|        PROC CALLSS;                 # ISSUES A UCP/SCP REQUEST #
00439  M01S00437.ssdebug +++|        END
00440  M01S00438.ssdebug +++|
00441  M01S00439.ssdebug +++|#
00442  M01S00440.ssdebug +++|****  PRDC DBCALL1 - XREF LIST END.
00443  M01S00441.ssdebug +++|#
00444  M01S00442.ssdebug +++|
00445  M01S00443.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
00446  M01S00444.ssdebug +++|*CALL COMBFAS
00447  M01S00445.ssdebug +++|*CALL COMBCPR
00448  M01S00446.ssdebug +++|*CALL COMTDBG
00449  M01S00447.ssdebug +++|
00450  M01S00448.ssdebug +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00451  M01S00449.ssdebug +++|
00452  M01S00450.ssdebug +++|CONTROL EJECT;
00453  M01S00451.ssdebug +++|
00454  M01S00452.ssdebug +++|#
00455  M01S00453.ssdebug +++|*     SET UP THE PARAMETER BLOCK.
00456  M01S00454.ssdebug +++|#
00457  M01S00455.ssdebug +++|
00458  M01S00456.ssdebug +++|      FASTFOR I = 0 STEP 1 UNTIL CPRLEN-1
00459  M01S00457.ssdebug +++|      DO
00460  M01S00458.ssdebug +++|        BEGIN
00461  M01S00459.ssdebug +++|        CPR1[I] = 0;                 # ZERO FILL PARAMETER BLOCK #
00462  M01S00460.ssdebug +++|        END
00463  M01S00461.ssdebug +++|
00464  M01S00462.ssdebug +++|      CPR$RQT[0] = TYP"TYP1";
00465  M01S00463.ssdebug +++|      CPR$RQC[0] = REQCODE;
00466  M01S00464.ssdebug +++|      CPR$RQI[0] = DBREQID;
00467  M01S00465.ssdebug +++|      CPR$SSPFLG[0] = TRUE;
00468  M01S00466.ssdebug +++|      CPR$WC[0] = TYP1$WC;
00469  M01S00467.ssdebug +++|
00470  M01S00468.ssdebug +++|#
00471  M01S00469.ssdebug +++|*     ISSUE THE CALL.
00472  M01S00470.ssdebug +++|#
00473  M01S00471.ssdebug +++|
00474  M01S00472.ssdebug +++|      CALLSS(DBSSID,CPR[0],RCL);
00475  M01S00473.ssdebug +++|      RESPCODE = CPR$ES[0];
00476  M01S00474.ssdebug +++|
00477  M01S00475.ssdebug +++|      RETURN;
00478  M01S00476.ssdebug +++|
00479  M01S00477.ssdebug +++|      END  # DBCALL1 #
00480  M01S00478.ssdebug +++|
00481  M01S00479.ssdebug +++|    TERM
00482  M01S00480.ssdebug +++|PROC DBCALL3((REQCODE),MAPENT,(FCTORD),(CATFLD),(CATVALUE),RESPCODE);
00483  M01S00481.ssdebug +++|# TITLE DBCALL3 - ISSUES TYPE 3 UCP CALL TO EXEC.                     #
00484  M01S00482.ssdebug +++|
00485  M01S00483.ssdebug +++|      BEGIN  # DBCALL3 #
00486  M01S00484.ssdebug +++|
00487  M01S00485.ssdebug +++|#
00488  M01S00486.ssdebug +++|**    DBCALL3 - ISSUES TYPE 3 UCP CALL TO EXEC.
00489  M01S00487.ssdebug +++|*
00490  M01S00488.ssdebug +++|*     PROC DBCALL3((REQCODE),MAPENT,(FCTORD),(CATFLD),(CATVALUE),
00491  M01S00489.ssdebug +++|*       RESPCODE)
00492  M01S00490.ssdebug +++|*
00493  M01S00491.ssdebug +++|*     ENTRY     (REQCODE)    = REQUEST CODE.
00494  M01S00492.ssdebug +++|*               (MAPENT)     = UPDATED SMMAP ENTRY.
00495  M01S00493.ssdebug +++|*               (FCTORD)     = *FCT* ORDINAL.
00496  M01S00494.ssdebug +++|*               (CATFLD)     = CATALOG FIELD TO BE UPDATED.
00497  M01S00495.ssdebug +++|*               (CATVALUE)   = NEW VALUE FOR UPDATED CATALOG FIELD.
00498  M01S00496.ssdebug +++|*               (DBREQID)    = REQUESTOR ID.
00499  M01S00497.ssdebug +++|*               (DBSSID)     = SUBSYSTEM ID.
00500  M01S00498.ssdebug +++|*               (DBARG$FM)   = FAMILY NAME.
00501  M01S00499.ssdebug +++|*               (DBARG$SB)   = SUBFAMILY IDENTIFIER.
00502  M01S00500.ssdebug +++|*               (DBARG$SMID) = SM IDENTIFIER.
00503  M01S00501.ssdebug +++|*               (DBARG$Y)    = Y COORDINATE.
00504  M01S00502.ssdebug +++|*               (DBARG$Z)    = Z COORDINATE.
00505  M01S00503.ssdebug +++|*               (DBARG$ST)   = STARTING AU NUMBER.
00506  M01S00504.ssdebug +++|*               P<CPR>       = FWA OF CALLSS PARAMETER BLOCK.
00507  M01S00505.ssdebug +++|*
00508  M01S00506.ssdebug +++|*     EXIT      (RESPCODE)  = RESPONSE FROM EXEC.
00509  M01S00507.ssdebug +++|*
00510  M01S00508.ssdebug +++|*     MESSAGES  SSDEBUG ABNORMAL, DBCALL3.
00511  M01S00509.ssdebug +++|
00512  M01S00510.ssdebug +++|*     NOTES     THE PARAMETER BLOCK IS SET UP FOR A TYPE 3
00513  M01S00511.ssdebug +++|*               REQUEST AND THE REQUEST IS ISSUED TO EXEC.
00514  M01S00512.ssdebug +++|*               TYPE 3 REQUESTS ARE THE REQUESTS TO MODIFY
00515  M01S00513.ssdebug +++|*               MSF CATALOGS AND MAPS.  THE SPECIFIC REQUEST
00516  M01S00514.ssdebug +++|*               ISSUED DEPENDS ON THE REQUEST CODE.  PARAMETERS
00517  M01S00515.ssdebug +++|*               NOT NEEDED FOR THE REQUEST ARE IGNORED.  THE
00518  M01S00516.ssdebug +++|*               RESPONSE CODE FROM EXEC IS RETURNED TO THE
00519  M01S00517.ssdebug +++|*               CALLING PROC.
00520  M01S00518.ssdebug +++|#
00521  M01S00519.ssdebug +++|
00522  M01S00520.ssdebug +++|      ITEM REQCODE    I;             # REQUEST CODE #
00523  M01S00521.ssdebug +++|      ARRAY MAPENT [0:0] P(3);        # SMMAP ENTRY #
00524  M01S00522.ssdebug +++|        BEGIN
00525  M01S00523.ssdebug +++|        ITEM MAPENTRY  C(00,00,30);  # 3 WORD SMMAP ENTRY #
00526  M01S00524.ssdebug +++|        END
00527  M01S00525.ssdebug +++|
00528  M01S00526.ssdebug +++|      ITEM FCTORD     I;             # *FCT* ORDINAL #
00529  M01S00527.ssdebug +++|      ITEM CATFLD     I;             # CATALOG FIELD TO BE UPDATED #
00530  M01S00528.ssdebug +++|      ITEM CATVALUE   I;             # CATALOG VALUE FOR UPDATE #
00531  M01S00529.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE FROM EXEC #
00532  M01S00530.ssdebug +++|
00533  M01S00531.ssdebug +++|#
00534  M01S00532.ssdebug +++|****  PROC DBCALL3 - XREF LIST BEGIN.
00535  M01S00533.ssdebug +++|#
00536  M01S00534.ssdebug +++|
00537  M01S00535.ssdebug +++|      XREF
00538  M01S00536.ssdebug +++|        BEGIN
00539  M01S00537.ssdebug +++|        PROC CALLSS;                 # ISSUES A UCP/SCP REQUEST #
00540  M01S00538.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
00541  M01S00539.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00542  M01S00540.ssdebug +++|                                       OR RETURN #
00543  M01S00541.ssdebug +++|        END
00544  M01S00542.ssdebug +++|
00545  M01S00543.ssdebug +++|#
00546  M01S00544.ssdebug +++|****  PROC DBCALL3 - XREF LIST END.
00547  M01S00545.ssdebug +++|#
00548  M01S00546.ssdebug +++|
00549  M01S00547.ssdebug +++|      DEF PROCNAME   #"DBCALL3."#;   # PROC NAME #
00550  M01S00548.ssdebug +++|
00551  M01S00549.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
00552  M01S00550.ssdebug +++|*CALL COMBFAS
00553  M01S00551.ssdebug +++|*CALL COMBCPR
00554  M01S00552.ssdebug +++|*CALL COMTDBG
00555  M01S00553.ssdebug +++|*CALL COMTDBP
00556  M01S00554.ssdebug +++|
00557  M01S00555.ssdebug +++|      ITEM COMPLETE   B;             # COMPLETION STATUS #
00558  M01S00556.ssdebug +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00559  M01S00557.ssdebug +++|
00560  M01S00558.ssdebug +++|      SWITCH CALL3ACT: REQTYP3       # TYPE 3 REQUESTS #
00561  M01S00559.ssdebug +++|               UPDCAT: UPD$CAT,      # UPDATE CATALOG FIELD #
00562  M01S00560.ssdebug +++|               UPDMAP: UPD$MAP,      # UPDATE SMMAP ENTRY #
00563  M01S00561.ssdebug +++|             PURGFRAG: PURG$FRAG,    # PURGE FRAGMENT #
00564  M01S00562.ssdebug +++|              PURGFCT: PURG$FCT;     # PURGE *FCT* ENTRY #
00565  M01S00563.ssdebug +++|
00566  M01S00564.ssdebug +++|CONTROL EJECT;
00567  M01S00565.ssdebug +++|
00568  M01S00566.ssdebug +++|#
00569  M01S00567.ssdebug +++|*     CHECK FOR A VALID REQUEST CODE.
00570  M01S00568.ssdebug +++|#
00571  M01S00569.ssdebug +++|
00572  M01S00570.ssdebug +++|      IF REQCODE LS REQTYP3"UPD$CAT"
00573  M01S00571.ssdebug +++|        OR REQCODE GR REQTYP3"PURG$FCT"  ##
Line S00572 Modification History
M01 (Added by) ssdebug
M02 (Updated by) ssdebg1
Seq #  *Modification Id* Act 
----------------------------+
00574  M02S00572.ssdebg1 ---|        OR REQCODE EQ REQTYP3"PURG$ORPH"
00575  M01S00001.ssdebg1 +++|        OR REQCODE EQ REQTYP3"REL$SETUP"
00576  M01S00573.ssdebug +++|      THEN                           # ILLEGAL REQUEST CODE #
00577  M01S00574.ssdebug +++|        BEGIN
00578  M01S00575.ssdebug +++|        DBMSG$PROC[0] = PROCNAME;
00579  M01S00576.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
00580  M01S00577.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00581  M01S00578.ssdebug +++|        END
00582  M01S00579.ssdebug +++|
00583  M01S00580.ssdebug +++|#
00584  M01S00581.ssdebug +++|*     SET UP THE FIELDS COMMON TO ALL THE REQUESTS.
00585  M01S00582.ssdebug +++|#
00586  M01S00583.ssdebug +++|
00587  M01S00584.ssdebug +++|      FASTFOR I  = 0 STEP 1 UNTIL CPRLEN-1
00588  M01S00585.ssdebug +++|      DO
00589  M01S00586.ssdebug +++|        BEGIN
00590  M01S00587.ssdebug +++|        CPR1[I]  = 0;                # ZERO FILL PARAMETER BLOCK #
00591  M01S00588.ssdebug +++|        END
00592  M01S00589.ssdebug +++|
00593  M01S00590.ssdebug +++|      CPR$RQT[0]  = TYP"TYP3";
00594  M01S00591.ssdebug +++|      CPR$RQC[0]  = REQCODE;
00595  M01S00592.ssdebug +++|      CPR$RQI[0] = DBREQID;
00596  M01S00593.ssdebug +++|      CPR$FAM[0] = DBARG$FM[0];
00597  M01S00594.ssdebug +++|      CPR$SUB[0] = DBARG$SB[0];
00598  M01S00595.ssdebug +++|      CPR$CSU[0] = DBARG$SMID[0];
00599  M01S00596.ssdebug +++|      CPR$WC[0] = TYP3$WC;
00600  M01S00597.ssdebug +++|
00601  M01S00598.ssdebug +++|#
00602  M01S00599.ssdebug +++|*     SET UP THE FIELDS NEEDED FOR SPECIFIC REQUESTS.
00603  M01S00600.ssdebug +++|#
00604  M01S00601.ssdebug +++|
00605  M01S00602.ssdebug +++|      GOTO CALL3ACT[REQCODE];
00606  M01S00603.ssdebug +++|
00607  M01S00604.ssdebug +++|UPDCAT:                              # UPDATE CATALOG ENTRY #
00608  M01S00605.ssdebug +++|      CPR$FCT[0] = FCTORD;
00609  M01S00606.ssdebug +++|      CPR$AU[0] = DBARG$ST[0];
00610  M01S00607.ssdebug +++|      CPR$FLD[0] = CATFLD;
00611  M01S00608.ssdebug +++|      CPR$VAL[0] = CATVALUE;
00612  M01S00609.ssdebug +++|      GOTO ISSUECALL;
00613  M01S00610.ssdebug +++|
00614  M01S00611.ssdebug +++|UPDMAP:                              # UPDATE SMMAP ENTRY #
00615  M01S00612.ssdebug +++|      CPR$Y[0] = DBARG$YI[0];
00616  M01S00613.ssdebug +++|      CPR$Z[0] = DBARG$ZI[0];
00617  M01S00614.ssdebug +++|      CPR$MAPENT[0] = MAPENTRY[0];
00618  M01S00615.ssdebug +++|      GOTO ISSUECALL;
00619  M01S00616.ssdebug +++|
00620  M01S00617.ssdebug +++|PURGFRAG:                            # PURGE FRAGMENT #
00621  M01S00618.ssdebug +++|      CPR$FCT[0] = FCTORD;
00622  M01S00619.ssdebug +++|      CPR$AU[0] = DBARG$ST[0];
00623  M01S00620.ssdebug +++|      GOTO ISSUECALL;
00624  M01S00621.ssdebug +++|
00625  M01S00622.ssdebug +++|PURGFCT:                             # PURGE *FCT* ENTRY #
00626  M01S00623.ssdebug +++|      CPR$FCT[0] = FCTORD;
00627  M01S00624.ssdebug +++|      GOTO ISSUECALL;
00628  M01S00625.ssdebug +++|
00629  M01S00626.ssdebug +++|ISSUECALL:                           # ISSUE REQUEST TO EXEC #
00630  M01S00627.ssdebug +++|      COMPLETE = FALSE;
00631  M01S00628.ssdebug +++|      REPEAT WHILE NOT COMPLETE
00632  M01S00629.ssdebug +++|      DO
00633  M01S00630.ssdebug +++|        BEGIN
00634  M01S00631.ssdebug +++|        CALLSS(DBSSID,CPR[0],RCL);
00635  M01S00632.ssdebug +++|        IF CPR$RQR[0] NQ RESPTYP3"RESUB$REQ"
00636  M01S00633.ssdebug +++|        THEN                         # REQUEST COMPLETE #
00637  M01S00634.ssdebug +++|          BEGIN
00638  M01S00635.ssdebug +++|          COMPLETE = TRUE;
00639  M01S00636.ssdebug +++|          TEST DUMMY;
00640  M01S00637.ssdebug +++|          END
00641  M01S00638.ssdebug +++|
00642  M01S00639.ssdebug +++|        CPR$RQR[0] = 0;              # RESUBMIT THE REQUEST #
00643  M01S00640.ssdebug +++|        CPR$C[0] = FALSE;
00644  M01S00641.ssdebug +++|        END
00645  M01S00642.ssdebug +++|
00646  M01S00643.ssdebug +++|      RESPCODE = CPR$RQR[0];
00647  M01S00644.ssdebug +++|      RETURN;
00648  M01S00645.ssdebug +++|
00649  M01S00646.ssdebug +++|      END  # DBCALL3 #
00650  M01S00647.ssdebug +++|
00651  M01S00648.ssdebug +++|    TERM
00652  M01S00649.ssdebug +++|PROC DBCALL4((REQCODE),(Y),(Z),(SL),(SH),(FAMLY),(UI),RESPCODE);
00653  M01S00650.ssdebug +++|# TITLE DBCALL4 - ISSUES A TYPE 4 UCP REQUEST TO EXEC.                #
00654  M01S00651.ssdebug +++|
00655  M01S00652.ssdebug +++|      BEGIN  # DBCALL4 #
00656  M01S00653.ssdebug +++|
00657  M01S00654.ssdebug +++|#
00658  M01S00655.ssdebug +++|**    DBCALL4 - ISSUES A TYPE 4 UCP REQUEST TO EXEC.
00659  M01S00656.ssdebug +++|*
00660  M01S00657.ssdebug +++|*     PROC DBCALL4((REQCODE),(Y),(Z),(STRM),(FAMLY),(UI),RESPCODE)
00661  M01S00658.ssdebug +++|*
00662  M01S00659.ssdebug +++|*     ENTRY     (REQCODE)    = REQUEST CODE.
00663  M01S00660.ssdebug +++|*               (Y)          = Y COORDINATE.
00664  M01S00661.ssdebug +++|*               (Z)          = Z COORDINATE.
00665  M01S00662.ssdebug +++|*               (SL)         = STRIPE LOW.
00666  M01S00663.ssdebug +++|*               (SH)         = STRIPE HIGH.
00667  M01S00664.ssdebug +++|*               (FAMLY)      = USER-S FAMILY NAME.
00668  M01S00665.ssdebug +++|*               (UI)         = USER INDEX.
00669  M01S00666.ssdebug +++|*               (DBREQID)    = REQUESTOR ID.
00670  M01S00667.ssdebug +++|*               (TRNSPORT)   = TRANSPORT ID.
00671  M01S00668.ssdebug +++|*               (ADDRSENSE)  = FWA OF BUFFER TO HOLD SENSE BYTES.
00672  M01S00669.ssdebug +++|*               (DBARG$SMID) = SM ID.
00673  M01S00670.ssdebug +++|*               (DBARG$PF)   = FILE NAME TO WHICH DATA IS WRITTEN.
00674  M01S00671.ssdebug +++|*               P<CPR>       = FWA OF PARAMETER BLOCK.
00675  M01S00672.ssdebug +++|*
00676  M01S00673.ssdebug +++|*     EXIT      (RESPCODE)  = RESPONSE FROM EXEC.
00677  M01S00674.ssdebug +++|*               (CPR$DRD)   = TRANSPORT ID (ONLY FOR LOAD CARTRIDGE
00678  M01S00675.ssdebug +++|*                             REQUEST).
00679  M01S00676.ssdebug +++|*               (ADDRSENSE) = FWA OF BUFFER CONTAINING SENSE BYTES
00680  M01S00677.ssdebug +++|*                             (ONLY FOR GET DRAWER STATUS REQUEST).
00681  M01S00678.ssdebug +++|*
00682  M01S00679.ssdebug +++|*     MESSAGES  SSDEBUG ABNORMAL, DBCALL4.
00683  M01S00680.ssdebug +++|*
00684  M01S00681.ssdebug +++|*     NOTES     THE PARAMETER BLOCK IS SET UP FOR A TYPE 4
00685  M01S00682.ssdebug +++|*               UCP REQUEST AND THE REQUEST IS ISSUED TO EXEC.
00686  M01S00683.ssdebug +++|*               TYPE 4 REQUESTS ARE THE REQUESTS THAT REQUIRE
00687  M01S00684.ssdebug +++|*               SM OR MST ACTIONS PERFORMED.  PARAMETERS NOT
00688  M01S00685.ssdebug +++|*               NEEDED FOR THE REQUEST ARE IGNORED.  THE RESPONSE
00689  M01S00686.ssdebug +++|*               CODE FROM EXEC IS RETURNED TO THE CALLING PROC.
00690  M01S00687.ssdebug +++|#
00691  M01S00688.ssdebug +++|
00692  M01S00689.ssdebug +++|      ITEM REQCODE    I;             # REQUEST CODE #
00693  M01S00690.ssdebug +++|      ITEM Y          I;             # Y COORDINATE #
00694  M01S00691.ssdebug +++|      ITEM Z          I;             # Z COORDINATE #
00695  M01S00692.ssdebug +++|      ITEM SL         I;             # STRIPE LOW #
00696  M01S00693.ssdebug +++|      ITEM SH         I;             # STRIPE HIGH #
00697  M01S00694.ssdebug +++|      ITEM FAMLY      C(7);          # USER-S FAMILY NAME #
00698  M01S00695.ssdebug +++|      ITEM UI         U;             # USER INDEX #
00699  M01S00696.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE CODE FROM EXEC #
00700  M01S00697.ssdebug +++|
00701  M01S00698.ssdebug +++|#
00702  M01S00699.ssdebug +++|****  PROC DBCALL4 - XREF LIST BEGIN.
00703  M01S00700.ssdebug +++|#
00704  M01S00701.ssdebug +++|
00705  M01S00702.ssdebug +++|      XREF
00706  M01S00703.ssdebug +++|        BEGIN
00707  M01S00704.ssdebug +++|        PROC CALLSS;                 # ISSUES A UCP/SCP REQUEST #
00708  M01S00705.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
00709  M01S00706.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00710  M01S00707.ssdebug +++|                                       OR RETURN #
00711  M01S00708.ssdebug +++|        END
00712  M01S00709.ssdebug +++|
00713  M01S00710.ssdebug +++|#
00714  M01S00711.ssdebug +++|****  PROC DBCALL4 - XREF LIST END.
00715  M01S00712.ssdebug +++|#
00716  M01S00713.ssdebug +++|
00717  M01S00714.ssdebug +++|      DEF PROCNAME   #"DBCALL4."#;   # PROC NAME #
00718  M01S00715.ssdebug +++|
00719  M01S00716.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
00720  M01S00717.ssdebug +++|*CALL COMBFAS
00721  M01S00718.ssdebug +++|*CALL COMBCPR
00722  M01S00719.ssdebug +++|*CALL,COMBLBL
00723  M01S00720.ssdebug +++|*CALL COMTDBG
00724  M01S00721.ssdebug +++|*CALL COMTDBP
00725  M01S00722.ssdebug +++|*CALL,COMTLAB
00726  M01S00723.ssdebug +++|
00727  M01S00724.ssdebug +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00728  M01S00725.ssdebug +++|
00729  M01S00726.ssdebug +++|#
00730  M01S00727.ssdebug +++|*     ARRAY TO HOLD CARTRIDGE LABEL.
00731  M01S00728.ssdebug +++|#
00732  M01S00729.ssdebug +++|
00733  M01S00730.ssdebug +++|      ARRAY CARTLABEL[0:0]S(LABLEN);;
00734  M01S00731.ssdebug +++|
00735  M01S00732.ssdebug +++|      SWITCH CALL4ACT: REQTYP4       # TYPE 4 REQUESTS #
00736  M01S00733.ssdebug +++|             LOADCART: LOAD$CART,    # LOAD CARTRIDGE #
00737  M01S00734.ssdebug +++|             UNLDCART: UNLD$CART,    # UNLOAD CARTRIDGE #
00738  M01S00735.ssdebug +++|             WRITELAB: WRT$LAB,      # WRITE CARTRIDGE LABEL #
00739  M01S00736.ssdebug +++|             CPRAWSTR: CP$RAW$AU;    # COPY RAW AU #
00740  M01S00737.ssdebug +++|
00741  M01S00738.ssdebug +++|CONTROL EJECT;
00742  M01S00739.ssdebug +++|
00743  M01S00740.ssdebug +++|#
00744  M01S00741.ssdebug +++|*     CHECK FOR A VALID REQUEST CODE.
00745  M01S00742.ssdebug +++|#
00746  M01S00743.ssdebug +++|
00747  M01S00744.ssdebug +++|      IF REQCODE NQ REQTYP4"LOAD$CART"  ##
00748  M01S00745.ssdebug +++|        AND REQCODE NQ REQTYP4"UNLD$CART"  ##
00749  M01S00746.ssdebug +++|        AND REQCODE NQ REQTYP4"CP$RAW$AU"  ##
00750  M01S00747.ssdebug +++|        AND REQCODE NQ REQTYP4"WRT$LAB"
00751  M01S00748.ssdebug +++|      THEN                           # ILLEGAL REQUEST CODE #
00752  M01S00749.ssdebug +++|        BEGIN
00753  M01S00750.ssdebug +++|        DBMSG$PROC[0] = PROCNAME;
00754  M01S00751.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
00755  M01S00752.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00756  M01S00753.ssdebug +++|        END
00757  M01S00754.ssdebug +++|
00758  M01S00755.ssdebug +++|#
00759  M01S00756.ssdebug +++|*     SET UP THE FIELDS COMMON TO ALL REQUESTS.
00760  M01S00757.ssdebug +++|#
00761  M01S00758.ssdebug +++|
00762  M01S00759.ssdebug +++|      FASTFOR I = 0 STEP 1 UNTIL CPRLEN-1
00763  M01S00760.ssdebug +++|      DO
00764  M01S00761.ssdebug +++|        BEGIN
00765  M01S00762.ssdebug +++|        CPR1[I] = 0;                 # ZERO FILL PARAMETER BLOCK #
00766  M01S00763.ssdebug +++|        END
00767  M01S00764.ssdebug +++|
00768  M01S00765.ssdebug +++|      CPR$RQT[0] = TYP"TYP4";
00769  M01S00766.ssdebug +++|      CPR$RQC[0] = REQCODE;
00770  M01S00767.ssdebug +++|      CPR$RQI[0] = DBREQID;
00771  M01S00768.ssdebug +++|      CPR$CSU[0] = DBARG$SMID[0];
00772  M01S00769.ssdebug +++|      CPR$WC[0] = TYP4$WC;
00773  M01S00770.ssdebug +++|
00774  M01S00771.ssdebug +++|#
00775  M01S00772.ssdebug +++|*     SET UP THE FIELDS FOR SPECIFIC REQUESTS.
00776  M01S00773.ssdebug +++|#
00777  M01S00774.ssdebug +++|
00778  M01S00775.ssdebug +++|      GOTO CALL4ACT[REQCODE];
00779  M01S00776.ssdebug +++|
00780  M01S00777.ssdebug +++|LOADCART:                            # LOAD CARTRIDGE FROM Y,Z #
00781  M01S00778.ssdebug +++|      CPR$Y[0] = Y;
00782  M01S00779.ssdebug +++|      CPR$Z[0] = Z;
00783  M01S00780.ssdebug +++|      CPR$ADDR2[0] = LOC(CARTLABEL[0]);
00784  M01S00781.ssdebug +++|      GOTO ISSUECALL;
00785  M01S00782.ssdebug +++|
00786  M01S00783.ssdebug +++|UNLDCART:                            # UNLOAD CARTRIDGE TO Y,Z #
00787  M01S00784.ssdebug +++|      CPR$Y[0] = Y;
00788  M01S00785.ssdebug +++|      CPR$Z[0] = Z;
00789  M01S00786.ssdebug +++|      CPR$DRD[0] = TRNSPORT;
00790  M01S00787.ssdebug +++|      GOTO ISSUECALL;
00791  M01S00788.ssdebug +++|
00792  M01S00789.ssdebug +++|CPRAWSTR:                            # COPY RAW AU #
00793  M01S00790.ssdebug +++|      CPR$Y[0] = Y;
00794  M01S00791.ssdebug +++|      CPR$Z[0] = Z;
00795  M01S00792.ssdebug +++|      CPR$DRD[0] = TRNSPORT;
00796  M01S00793.ssdebug +++|      CPR$ST$LW = SL;
00797  M01S00794.ssdebug +++|      CPR$ST$HI = SH;
00798  M01S00795.ssdebug +++|      CPR$FAM[0] = FAMLY;
00799  M01S00796.ssdebug +++|      CPR$PFN[0] = DBARG$PF[0];
00800  M01S00797.ssdebug +++|      CPR$UI[0] = UI;
00801  M01S00798.ssdebug +++|      GOTO ISSUECALL;
00802  M01S00799.ssdebug +++|
00803  M01S00800.ssdebug +++|WRITELAB:
00804  M01S00801.ssdebug +++|      CPR$Y[0] = Y;
00805  M01S00802.ssdebug +++|      CPR$Z[0] = Z;
00806  M01S00803.ssdebug +++|      CPR$ADDR2[0] = LOC(CARTLABEL[0]);
00807  M01S00804.ssdebug +++|      P<LABEL$CART> = LOC(CARTLABEL[0]);
00808  M01S00805.ssdebug +++|      LAB$CARTTP[0] = LABTYPE"SCR$LAB";
00809  M01S00806.ssdebug +++|      LAB$SMID[0] = " ";
00810  M01S00807.ssdebug +++|      LAB$FMLY[0] = " ";
00811  M01S00808.ssdebug +++|      GOTO ISSUECALL;
00812  M01S00809.ssdebug +++|ISSUECALL:                           # ISSUE REQUEST TO EXEC #
00813  M01S00810.ssdebug +++|      CALLSS(DBSSID,CPR[0],RCL);
00814  M01S00811.ssdebug +++|      RESPCODE = CPR$RQR[0];
00815  M01S00812.ssdebug +++|      RETURN;
00816  M01S00813.ssdebug +++|
00817  M01S00814.ssdebug +++|      END  # DBCALL4 #
00818  M01S00815.ssdebug +++|
00819  M01S00816.ssdebug +++|    TERM
00820  M01S00817.ssdebug +++|PROC DBCMAP;
00821  M01S00818.ssdebug +++|# TITLE DBCMAP - REMOVE SMMAP ENTRY.                                 #
00822  M01S00819.ssdebug +++|
00823  M01S00820.ssdebug +++|      BEGIN  # DBCMAP #
00824  M01S00821.ssdebug +++|
00825  M01S00822.ssdebug +++|#
00826  M01S00823.ssdebug +++|**    DBCMAP - REMOVE SMMAP ENTRY.
00827  M01S00824.ssdebug +++|*
00828  M01S00825.ssdebug +++|*     PROC DBCMAP.
00829  M01S00826.ssdebug +++|*
00830  M01S00827.ssdebug +++|*     ENTRY    THE CRACKED AND SYNTAX CHECKED DIRECTIVE PARAMETERS
00831  M01S00828.ssdebug +++|*              ARE SET UP IN THE COMMON AREA DEFINED IN *COMTDBP*.
00832  M01S00829.ssdebug +++|*              THE SMMAP IS OPEN FOR THE SPECIFIED SM.
00833  M01S00830.ssdebug +++|*              P<CPR> = FWA OF CALLSS PARAMETER BLOCK.
00834  M01S00831.ssdebug +++|*
00835  M01S00832.ssdebug +++|*     EXIT     THE DIRECTIVE WAS PROCESSED AND MAP WAS
00836  M01S00833.ssdebug +++|*              CLOSED OR AN ERROR CONDITION WAS DETECTED.
00837  M01S00834.ssdebug +++|*
00838  M01S00835.ssdebug +++|*     MESSAGES SSDEBUG ABNORMAL, DBCMAP.
00839  M01S00836.ssdebug +++|*
00840  M01S00837.ssdebug +++|*     NOTES    THE SELECTED SMMAP ENTRY IS CHECKED FOR THE
00841  M01S00838.ssdebug +++|*              ERROR FLAG.  IF SET, THE CARTRIDGE FROM THAT
00842  M01S00839.ssdebug +++|*              LOCATION IS MOVED TO THE OUTPUT DRAWER AND THE
00843  M01S00840.ssdebug +++|*              SMMAP ENTRY IS UPDATED TO BE EMPTY AND UNASSIGNED.
00844  M01S00841.ssdebug +++|#
00845  M01S00842.ssdebug +++|
00846  M01S00843.ssdebug +++|#
00847  M01S00844.ssdebug +++|****  PROC DBCMAP - XREF LIST BEGIN.
00848  M01S00845.ssdebug +++|#
00849  M01S00846.ssdebug +++|
00850  M01S00847.ssdebug +++|      XREF
00851  M01S00848.ssdebug +++|        BEGIN
00852  M01S00849.ssdebug +++|        PROC DBCALL3;                # ISSUES A TYPE 3 UCP REQUEST #
00853  M01S00850.ssdebug +++|        PROC DBCALL4;                # ISSUES A TYPE 4 UCP REQUEST #
00854  M01S00851.ssdebug +++|        PROC DBERR;                  # ERROR PROCESSOR #
00855  M01S00852.ssdebug +++|        PROC DBRESP;                 # PROCESS RESPONSE FROM EXEC #
00856  M01S00853.ssdebug +++|        PROC MCLOSE;                 # CLOSES SMMAP #
00857  M01S00854.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
00858  M01S00855.ssdebug +++|        PROC MGETENT;                # GET SMMAP ENTRY #
00859  M01S00856.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
00860  M01S00857.ssdebug +++|                                       OR RETURN #
00861  M01S00858.ssdebug +++|        END
00862  M01S00859.ssdebug +++|
00863  M01S00860.ssdebug +++|#
00864  M01S00861.ssdebug +++|****  PROC DBCMAP - XREF LIST END.
00865  M01S00862.ssdebug +++|#
00866  M01S00863.ssdebug +++|
00867  M01S00864.ssdebug +++|      DEF PROCNAME  #"DBCMAP."#;     # PROC NAME #
00868  M01S00865.ssdebug +++|
00869  M01S00866.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
00870  M01S00867.ssdebug +++|*CALL COMBFAS
00871  M01S00868.ssdebug +++|*CALL COMBCPR
00872  M01S00869.ssdebug +++|*CALL COMBCMS
00873  M01S00870.ssdebug +++|*CALL COMBMAP
00874  M01S00871.ssdebug +++|*CALL COMTDBG
00875  M01S00872.ssdebug +++|*CALL COMTDBP
00876  M01S00873.ssdebug +++|*CALL COMTDER
00877  M01S00874.ssdebug +++|*CALL COMTLAB
00878  M01S00875.ssdebug +++|
00879  M01S00876.ssdebug +++|      ITEM CMAPADR    I;             # FWA OF MAP ENTRY #
00880  M01S00877.ssdebug +++|      ITEM FLAG       I;             # ERROR STATUS #
00881  M01S00878.ssdebug +++|      ITEM ORD        I;             # SMMAP ENTRY ORDINAL #
00882  M01S00879.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE FROM EXEC #
00883  M01S00880.ssdebug +++|      ITEM UNLOAD     B;             # UNLOAD REQUIRED FLAG #
00884  M01S00881.ssdebug +++|      ITEM Y          I;             # Y COORDINATE #
00885  M01S00882.ssdebug +++|      ITEM Z          I;             # Z COORDINATE #
00886  M01S00883.ssdebug +++|
00887  M01S00884.ssdebug +++|      ARRAY CMAPENT [0:0] P(MAPENTL);;  # SMMAP ENTRY #
00888  M01S00885.ssdebug +++|
00889  M01S00886.ssdebug +++|CONTROL EJECT;
00890  M01S00887.ssdebug +++|
00891  M01S00888.ssdebug +++|#
00892  M01S00889.ssdebug +++|*     CHECK THE SMMAP ENTRY FOR THE ERROR FLAG.
00893  M01S00890.ssdebug +++|#
00894  M01S00891.ssdebug +++|
00895  M01S00892.ssdebug +++|      CMAPADR = LOC(CMAPENT[0]);
00896  M01S00893.ssdebug +++|      ORD = MAXORD - DBARG$ZI[0] - ( DBARG$YI[0]*16 );
00897  M01S00894.ssdebug +++|      MGETENT(DBARG$SMID[0],ORD,CMAPADR,FLAG);
00898  M01S00895.ssdebug +++|      IF FLAG NQ CMASTAT"NOERR"
00899  M01S00896.ssdebug +++|      THEN                           # ABNORMAL TERMINATION #
00900  M01S00897.ssdebug +++|        BEGIN
00901  M01S00898.ssdebug +++|        DBMSG$PROC[0] = PROCNAME;
00902  M01S00899.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
00903  M01S00900.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
00904  M01S00901.ssdebug +++|        END
00905  M01S00902.ssdebug +++|
00906  M01S00903.ssdebug +++|      P<SMUMAP> = CMAPADR;
00907  M01S00904.ssdebug +++|      IF NOT CM$FLAG1[0]
00908  M01S00905.ssdebug +++|      THEN                           # SMMAP ERROR FLAG NOT SET #
00909  M01S00906.ssdebug +++|        BEGIN
00910  M01S00907.ssdebug +++|        DBERRCODE = S"DMAP$NSET";
00911  M01S00908.ssdebug +++|        DBERR(DBERRCODE);
00912  M01S00909.ssdebug +++|        RETURN;
00913  M01S00910.ssdebug +++|        END
00914  M01S00911.ssdebug +++|
00915  M01S00912.ssdebug +++|#
00916  M01S00913.ssdebug +++|*     UPDATE THE SMMAP ENTRY TO BE EMPTY AND UNASSIGNED.
00917  M01S00914.ssdebug +++|#
00918  M01S00915.ssdebug +++|
00919  M01S00916.ssdebug +++|      UNLOAD = CM$CSND[0] NQ "";      # SET FLAG IF UNLOAD REQUIRED #
00920  M01S00917.ssdebug +++|      CM$CODE[0] = CUBSTAT"UNASGN";
00921  M01S00918.ssdebug +++|      CM$TCSN[0] = "          ";
00922  M01S00919.ssdebug +++|      CM$FMLYNM[0] = "       ";
00923  M01S00920.ssdebug +++|      CM$SUB[0] = 0;
00924  M01S00921.ssdebug +++|      CM$FCTORD[0] = 0;
00925  M01S00922.ssdebug +++|      CM$FLAG1[0] = FALSE;
00926  M01S00923.ssdebug +++|      DBCALL3(REQTYP3"UPD$MAP",CMAPENT[0],0,0,0,RESPCODE);
00927  M01S00924.ssdebug +++|      IF RESPCODE NQ RESPTYP3"OK3"
00928  M01S00925.ssdebug +++|      THEN                           # UNABLE TO UPDATE ENTRY #
00929  M01S00926.ssdebug +++|        BEGIN
00930  M01S00927.ssdebug +++|        DBRESP(RESPCODE,TYP"TYP3");
00931  M01S00928.ssdebug +++|        RETURN;
00932  M01S00929.ssdebug +++|        END
00933  M01S00930.ssdebug +++|
00934  M01S00931.ssdebug +++|      MCLOSE(DBARG$SMID[0],FLAG);
00935  M01S00932.ssdebug +++|      IF FLAG NQ CMASTAT"NOERR"
00936  M01S00933.ssdebug +++|      THEN                           # UNABLE TO CLOSE MAP #
00937  M01S00934.ssdebug +++|        BEGIN
00938  M01S00935.ssdebug +++|        DBRESP(FLAG,0);
00939  M01S00936.ssdebug +++|        END
00940  M01S00937.ssdebug +++|
00941  M01S00938.ssdebug +++|#
00942  M01S00939.ssdebug +++|*     MOVE THE CARTRIDGE TO THE OUTPUT DRAWER.
00943  M01S00940.ssdebug +++|#
00944  M01S00941.ssdebug +++|
00945  M01S00942.ssdebug +++|      IF UNLOAD
00946  M01S00943.ssdebug +++|      THEN
00947  M01S00944.ssdebug +++|        BEGIN  # MOVE CARTRIDGE TO OUTPUT DRAWER #
00948  M01S00945.ssdebug +++|        DBCALL4(REQTYP4"LOAD$CART",DBARG$YI[0],DBARG$ZI[0],0,0,0,0,
00949  M01S00946.ssdebug +++|          RESPCODE);
00950  M01S00947.ssdebug +++|        IF RESPCODE EQ RESPTYP4"CELL$EMP"
00951  M01S00948.ssdebug +++|        THEN                         # EMPTY CUBE #
00952  M01S00949.ssdebug +++|          BEGIN
00953  M01S00950.ssdebug +++|          DBERRCODE = S"DEMPTYCUBE";
00954  M01S00951.ssdebug +++|          DBERR(DBERRCODE);          # ISSUE INFORMATIVE MESSAGE #
00955  M01S00952.ssdebug +++|          RETURN;
00956  M01S00953.ssdebug +++|          END
00957  M01S00954.ssdebug +++|
00958  M01S00955.ssdebug +++|        IF RESPCODE NQ RESPTYP4"OK4"
00959  M01S00956.ssdebug +++|        THEN                         # OTHER ERROR ON LOAD #
00960  M01S00957.ssdebug +++|          BEGIN
00961  M01S00958.ssdebug +++|          DBRESP(RESPCODE,TYP"TYP4");
00962  M01S00959.ssdebug +++|          RETURN;
00963  M01S00960.ssdebug +++|          END
00964  M01S00961.ssdebug +++|
00965  M01S00962.ssdebug +++|        TRNSPORT = CPR$DRD[0];       # SET UP TRANSPORT ID #
00966  M01S00963.ssdebug +++|        Z = 0;
00967  M01S00964.ssdebug +++|        Y = SM$EXIT$TY;              # SET EXIT TRAY #
00968  M01S00965.ssdebug +++|        DBCALL4(REQTYP4"WRT$LAB",Y,Z,0,0,0,0,RESPCODE);
00969  M01S00966.ssdebug +++|        IF RESPCODE NQ RESPTYP4"OK4"
00970  M01S00967.ssdebug +++|        THEN                         # *CHANGE* FAILS #
00971  M01S00968.ssdebug +++|          BEGIN
00972  M01S00969.ssdebug +++|          DBRESP(RESPCODE,TYP"TYP4");
00973  M01S00970.ssdebug +++|          RETURN;
00974  M01S00971.ssdebug +++|          END
00975  M01S00972.ssdebug +++|
00976  M01S00973.ssdebug +++|        END  # MOVE CARTRIDGE TO OUTPUT DRAWER #
00977  M01S00974.ssdebug +++|
00978  M01S00975.ssdebug +++|      RETURN;
00979  M01S00976.ssdebug +++|
00980  M01S00977.ssdebug +++|      END  # DBCMAP #
00981  M01S00978.ssdebug +++|
00982  M01S00979.ssdebug +++|    TERM
00983  M01S00980.ssdebug +++|PROC DBCONV(FLAG);
00984  M01S00981.ssdebug +++|# TITLE DBCONV - CONVERTS CRACKED PARAMETERS TO INTEGERS.             #
00985  M01S00982.ssdebug +++|
00986  M01S00983.ssdebug +++|      BEGIN  # DBCONV #
00987  M01S00984.ssdebug +++|
00988  M01S00985.ssdebug +++|#
00989  M01S00986.ssdebug +++|**    DBCONV - CONVERTS CRACKED PARAMETERS TO INTEGERS.
00990  M01S00987.ssdebug +++|*
00991  M01S00988.ssdebug +++|*     PROC DBCONV(FLAG)
00992  M01S00989.ssdebug +++|*
00993  M01S00990.ssdebug +++|*     ENTRY    THE CRACKED PARAMETERS ARE SET UP IN THE COMMON AREA
00994  M01S00991.ssdebug +++|*              DEFINED IN *COMTDBP*.
00995  M01S00992.ssdebug +++|*
00996  M01S00993.ssdebug +++|*     EXIT     THE CRACKED PARAMETERS ARE CONVERTED OR REPLACED
00997  M01S00994.ssdebug +++|*              BY DEFAULT VALUES AND PLACED BACK IN THE SAME
00998  M01S00995.ssdebug +++|*              COMMON AREA.
00999  M01S00996.ssdebug +++|*              (FLAG) = 0, NO ERROR.
01000  M01S00997.ssdebug +++|*                       1, CONVERSION ERROR.
01001  M01S00998.ssdebug +++|*
01002  M01S00999.ssdebug +++|*     NOTES    THE PARAMETERS ARE CONVERTED FROM DISPLAY
01003  M01S01000.ssdebug +++|*              CODE TO INTEGER VALUES OR ARE REPLACED BY
01004  M01S01001.ssdebug +++|*              DEFAULT VALUES.  THE CONVERTED PARAMETERS
01005  M01S01002.ssdebug +++|*              ARE PLACED BACK IN THEIR ORIGINAL LOCATIONS.
01006  M01S01003.ssdebug +++|#
01007  M01S01004.ssdebug +++|
01008  M01S01005.ssdebug +++|      ITEM FLAG       I;             # ERROR FLAG #
01009  M01S01006.ssdebug +++|
01010  M01S01007.ssdebug +++|#
01011  M01S01008.ssdebug +++|****  PROC DBCONV - XREF LIST BEGIN.
01012  M01S01009.ssdebug +++|#
01013  M01S01010.ssdebug +++|
01014  M01S01011.ssdebug +++|      XREF
01015  M01S01012.ssdebug +++|        BEGIN
01016  M01S01013.ssdebug +++|        FUNC XDXB   I;               # DISPLAY TO INTEGER CONVERSION #
01017  M01S01014.ssdebug +++|        END
01018  M01S01015.ssdebug +++|
01019  M01S01016.ssdebug +++|#
01020  M01S01017.ssdebug +++|****  PROC DBCONV - XREF LIST END.
01021  M01S01018.ssdebug +++|#
01022  M01S01019.ssdebug +++|
01023  M01S01020.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
01024  M01S01021.ssdebug +++|*CALL COMBFAS
01025  M01S01022.ssdebug +++|*CALL COMBCPR
01026  M01S01023.ssdebug +++|*CALL COMTDBG
01027  M01S01024.ssdebug +++|*CALL COMTDBP
01028  M01S01025.ssdebug +++|
01029  M01S01026.ssdebug +++|      ITEM TEMP       I;             # TEMPORARY ITEM #
01030  M01S01027.ssdebug +++|
01031  M01S01028.ssdebug +++|CONTROL EJECT;
01032  M01S01029.ssdebug +++|
01033  M01S01030.ssdebug +++|      FLAG = 0;                      # INITIALIZE #
01034  M01S01031.ssdebug +++|
01035  M01S01032.ssdebug +++|#
01036  M01S01033.ssdebug +++|*     CHECK THE VALUE OF *SB*.
01037  M01S01034.ssdebug +++|#
01038  M01S01035.ssdebug +++|
Line S01036 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01039  M02S01036.msea014 ---|      IF DBARG$SB[0] NQ 0
Line S01037 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01040  M02S01037.msea014 ---|      THEN
Line S01038 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01041  M02S01038.msea014 ---|        BEGIN  # CONVERT *SB* #
Line S01039 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01042  M02S01039.msea014 ---|        FLAG = XDXB(DBARG$SB[0],1,TEMP);
Line S01040 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01043  M02S01040.msea014 ---|        IF FLAG NQ OK
Line S01041 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01044  M02S01041.msea014 ---|        THEN                         # CONVERSION ERROR #
Line S01042 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01045  M02S01042.msea014 ---|          BEGIN
Line S01043 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01046  M02S01043.msea014 ---|          RETURN;
Line S01044 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01047  M02S01044.msea014 ---|          END
Line S01045 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01048  M02S01045.msea014 ---|
Line S01046 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01049  M02S01046.msea014 ---|        DBARG$SB[0] = TEMP;
Line S01047 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01050  M02S01047.msea014 ---|        END  # CONVERT *SB* #
01051  M01S00003.msea014 +++|      IF DBARG$SB[0] EQ 0
01052  M01S00004.msea014 +++|      THEN                           # *SB* OMITTED #
01053  M01S00005.msea014 +++|        BEGIN
01054  M01S00006.msea014 +++|        DBARG$SB[0] = -2;
01055  M01S00007.msea014 +++|        END
01056  M01S00008.msea014 +++|
01057  M01S00009.msea014 +++|      ELSE
01058  M01S00010.msea014 +++|        BEGIN
01059  M01S00011.msea014 +++|        IF DBARG$SB[0] NQ -1
01060  M01S00012.msea014 +++|        THEN
01061  M01S00013.msea014 +++|          BEGIN  # CONVERT *SB* #
01062  M01S00014.msea014 +++|          FLAG = XDXB(DBARG$SB[0],1,TEMP);
01063  M01S00015.msea014 +++|          IF FLAG NQ OK
01064  M01S00016.msea014 +++|          THEN                       # CONVERSION ERROR #
01065  M01S00017.msea014 +++|            BEGIN
01066  M01S00018.msea014 +++|            RETURN;
01067  M01S00019.msea014 +++|            END
01068  M01S00020.msea014 +++|
01069  M01S00021.msea014 +++|          DBARG$SB[0] = TEMP;
01070  M01S00022.msea014 +++|          END  # CONVERT *SB* #
01071  M01S00023.msea014 +++|
01072  M01S00024.msea014 +++|        END
01073  M01S01048.ssdebug +++|
01074  M01S01049.ssdebug +++|#
01075  M01S01050.ssdebug +++|*     CHECK THE VALUE OF *SM*.
01076  M01S01051.ssdebug +++|#
01077  M01S01052.ssdebug +++|
01078  M01S01053.ssdebug +++|      IF DBARG$SM[0] EQ 0
01079  M01S01054.ssdebug +++|      THEN
01080  M01S01055.ssdebug +++|        BEGIN
01081  M01S01056.ssdebug +++|        DBARG$SM[0] = "A";           # USE DEFAULT VALUE #
01082  M01S01057.ssdebug +++|        END
01083  M01S01058.ssdebug +++|
01084  M01S01059.ssdebug +++|#
01085  M01S01060.ssdebug +++|*     CHECK THE VALUE OF *SL*.
01086  M01S01061.ssdebug +++|#
01087  M01S01062.ssdebug +++|
01088  M01S01063.ssdebug +++|      IF DBARG$SL[0] NQ 0
01089  M01S01064.ssdebug +++|      THEN
01090  M01S01065.ssdebug +++|        BEGIN  # CONVERT *SL* #
01091  M01S01066.ssdebug +++|        FLAG = XDXB(DBARG$SL[0],1,TEMP);
01092  M01S01067.ssdebug +++|        IF FLAG NQ OK
01093  M01S01068.ssdebug +++|        THEN                         # CONVERSION ERROR #
01094  M01S01069.ssdebug +++|          BEGIN
01095  M01S01070.ssdebug +++|          RETURN;
01096  M01S01071.ssdebug +++|          END
01097  M01S01072.ssdebug +++|
01098  M01S01073.ssdebug +++|        DBARG$SL[0] = TEMP;
01099  M01S01074.ssdebug +++|        END  # CONVERT *SL* #
01100  M01S01075.ssdebug +++|
01101  M01S01076.ssdebug +++|      ELSE                           # USE DEFAULT VALUE #
01102  M01S01077.ssdebug +++|        BEGIN
01103  M01S01078.ssdebug +++|        DBARG$SL[0] = 1;
01104  M01S01079.ssdebug +++|        END
01105  M01S01080.ssdebug +++|
01106  M01S01081.ssdebug +++|#
01107  M01S01082.ssdebug +++|*     CHECK THE VALUE OF *SU*.
01108  M01S01083.ssdebug +++|#
01109  M01S01084.ssdebug +++|
01110  M01S01085.ssdebug +++|      IF DBARG$SU[0] NQ 0
01111  M01S01086.ssdebug +++|      THEN
01112  M01S01087.ssdebug +++|        BEGIN  # CONVERT *SU* #
01113  M01S01088.ssdebug +++|        FLAG = XDXB(DBARG$SU[0],1,TEMP);
01114  M01S01089.ssdebug +++|        IF FLAG NQ OK
01115  M01S01090.ssdebug +++|        THEN                         # CONVERSION ERROR #
01116  M01S01091.ssdebug +++|          BEGIN
01117  M01S01092.ssdebug +++|          RETURN;
01118  M01S01093.ssdebug +++|          END
01119  M01S01094.ssdebug +++|
01120  M01S01095.ssdebug +++|        DBARG$SU[0] = TEMP;
01121  M01S01096.ssdebug +++|        END  # CONVERT *SU* #
01122  M01S01097.ssdebug +++|
01123  M01S01098.ssdebug +++|      ELSE                           # USE DEFAULT VALUE #
01124  M01S01099.ssdebug +++|        BEGIN
01125  M01S01100.ssdebug +++|        DBARG$SU[0] = 1;
01126  M01S01101.ssdebug +++|        END
01127  M01S01102.ssdebug +++|
01128  M01S01103.ssdebug +++|#
01129  M01S01104.ssdebug +++|*     CHECK THE VALUE OF *D*.
01130  M01S01105.ssdebug +++|#
01131  M01S01106.ssdebug +++|
01132  M01S01107.ssdebug +++|      IF DBARG$D[0] EQ 0
01133  M01S01108.ssdebug +++|      THEN                           # *D* OMITTED #
01134  M01S01109.ssdebug +++|        BEGIN
01135  M01S01110.ssdebug +++|        DBARG$D[0] = -2;
01136  M01S01111.ssdebug +++|        END
01137  M01S01112.ssdebug +++|
01138  M01S01113.ssdebug +++|      ELSE
01139  M01S01114.ssdebug +++|        BEGIN
01140  M01S01115.ssdebug +++|        IF DBARG$D[0] NQ -1
01141  M01S01116.ssdebug +++|        THEN
01142  M01S01117.ssdebug +++|          BEGIN  # CONVERT *D* #
01143  M01S01118.ssdebug +++|          FLAG = XDXB(DBARG$D[0],1,TEMP);
01144  M01S01119.ssdebug +++|          IF FLAG NQ OK
01145  M01S01120.ssdebug +++|          THEN                       # CONVERSION ERROR #
01146  M01S01121.ssdebug +++|            BEGIN
01147  M01S01122.ssdebug +++|            RETURN;
01148  M01S01123.ssdebug +++|            END
01149  M01S01124.ssdebug +++|
01150  M01S01125.ssdebug +++|          DBARG$D[0] = TEMP;
01151  M01S01126.ssdebug +++|          END  # CONVERT *D* #
01152  M01S01127.ssdebug +++|
01153  M01S01128.ssdebug +++|        END
01154  M01S01129.ssdebug +++|
01155  M01S01130.ssdebug +++|#
01156  M01S01131.ssdebug +++|*     CHECK THE VALUE OF *YI*.
01157  M01S01132.ssdebug +++|#
01158  M01S01133.ssdebug +++|
01159  M01S01134.ssdebug +++|      IF DBARG$YI[0] EQ 0
01160  M01S01135.ssdebug +++|      THEN                           # *YI* OMITTED #
01161  M01S01136.ssdebug +++|        BEGIN
01162  M01S01137.ssdebug +++|        DBARG$YI[0] = -1;
01163  M01S01138.ssdebug +++|        END
01164  M01S01139.ssdebug +++|
01165  M01S01140.ssdebug +++|      ELSE                           # *YI* SPECIFIED #
01166  M01S01141.ssdebug +++|        BEGIN
01167  M01S01142.ssdebug +++|        IF DBARG$YI[0] NQ O"7777"
01168  M01S01143.ssdebug +++|        THEN
01169  M01S01144.ssdebug +++|          BEGIN  # CONVERT *YI* #
01170  M01S01145.ssdebug +++|          FLAG = XDXB(DBARG$YI[0],1,TEMP);
01171  M01S01146.ssdebug +++|          IF FLAG NQ OK
01172  M01S01147.ssdebug +++|          THEN                       # CONVERSION ERROR #
01173  M01S01148.ssdebug +++|            BEGIN
01174  M01S01149.ssdebug +++|            RETURN;
01175  M01S01150.ssdebug +++|            END
01176  M01S01151.ssdebug +++|
01177  M01S01152.ssdebug +++|          DBARG$YI[0] = TEMP;
01178  M01S01153.ssdebug +++|          END  # CONVERT *YI* #
01179  M01S01154.ssdebug +++|
01180  M01S01155.ssdebug +++|        END
01181  M01S01156.ssdebug +++|
01182  M01S01157.ssdebug +++|#
01183  M01S01158.ssdebug +++|*     CHECK THE VALUE OF *ZI*.
01184  M01S01159.ssdebug +++|#
01185  M01S01160.ssdebug +++|
01186  M01S01161.ssdebug +++|      IF DBARG$ZI[0] EQ 0
01187  M01S01162.ssdebug +++|      THEN                           # *ZI* OMITTED #
01188  M01S01163.ssdebug +++|        BEGIN
01189  M01S01164.ssdebug +++|        DBARG$ZI[0] = -1;
01190  M01S01165.ssdebug +++|        END
01191  M01S01166.ssdebug +++|
01192  M01S01167.ssdebug +++|      ELSE                           # *ZI* SPECIFIED #
01193  M01S01168.ssdebug +++|        BEGIN
01194  M01S01169.ssdebug +++|        IF DBARG$ZI[0] NQ O"7777"
01195  M01S01170.ssdebug +++|        THEN
01196  M01S01171.ssdebug +++|          BEGIN  # CONVERT *ZI* #
01197  M01S01172.ssdebug +++|          FLAG = XDXB(DBARG$ZI[0],1,TEMP);
01198  M01S01173.ssdebug +++|          IF FLAG NQ OK
01199  M01S01174.ssdebug +++|          THEN
01200  M01S01175.ssdebug +++|            BEGIN
01201  M01S01176.ssdebug +++|            RETURN;
01202  M01S01177.ssdebug +++|            END
01203  M01S01178.ssdebug +++|
01204  M01S01179.ssdebug +++|          DBARG$ZI[0] = TEMP;
01205  M01S01180.ssdebug +++|          END  # CONVERT *ZI* #
01206  M01S01181.ssdebug +++|
01207  M01S01182.ssdebug +++|        END
01208  M01S01183.ssdebug +++|
01209  M01S01184.ssdebug +++|#
01210  M01S01185.ssdebug +++|*     CHECK THE VALUE OF *PF*.
01211  M01S01186.ssdebug +++|#
01212  M01S01187.ssdebug +++|
01213  M01S01188.ssdebug +++|      IF DBARG$WPF[0] EQ 0
01214  M01S01189.ssdebug +++|      THEN
01215  M01S01190.ssdebug +++|        BEGIN
01216  M01S01191.ssdebug +++|        DBARG$PF[0] = "MMMMBUG";     # USE DEFAULT VALUE #
01217  M01S01192.ssdebug +++|        END
01218  M01S01193.ssdebug +++|
01219  M01S01194.ssdebug +++|#
01220  M01S01195.ssdebug +++|*     CHECK THE VALUE OF *FO*.
01221  M01S01196.ssdebug +++|#
01222  M01S01197.ssdebug +++|
01223  M01S01198.ssdebug +++|      IF DBARG$FO[0] EQ 0
01224  M01S01199.ssdebug +++|      THEN                           # *FO* OMITTED #
01225  M01S01200.ssdebug +++|        BEGIN
01226  M01S01201.ssdebug +++|        DBARG$FO[0] = -2;
01227  M01S01202.ssdebug +++|        END
01228  M01S01203.ssdebug +++|
01229  M01S01204.ssdebug +++|      ELSE                           # *FO* SPECIFIED #
01230  M01S01205.ssdebug +++|        BEGIN
01231  M01S01206.ssdebug +++|        IF DBARG$FO[0] NQ -1
01232  M01S01207.ssdebug +++|        THEN
01233  M01S01208.ssdebug +++|          BEGIN  # CONVERT *FO* #
01234  M01S01209.ssdebug +++|          FLAG = XDXB(DBARG$FO[0],1,TEMP);
01235  M01S01210.ssdebug +++|          IF FLAG NQ OK
01236  M01S01211.ssdebug +++|          THEN                       # CONVERSION ERROR #
01237  M01S01212.ssdebug +++|            BEGIN
01238  M01S01213.ssdebug +++|            RETURN;
01239  M01S01214.ssdebug +++|            END
01240  M01S01215.ssdebug +++|
01241  M01S01216.ssdebug +++|          DBARG$FO[0] = TEMP;
01242  M01S01217.ssdebug +++|          END  # CONVERT *FO* #
01243  M01S01218.ssdebug +++|
01244  M01S01219.ssdebug +++|        END
01245  M01S01220.ssdebug +++|
01246  M01S01221.ssdebug +++|#
01247  M01S01222.ssdebug +++|*     CHECK THE VALUE OF *ST*.
01248  M01S01223.ssdebug +++|#
01249  M01S01224.ssdebug +++|
01250  M01S01225.ssdebug +++|      IF DBARG$ST[0] EQ 0
01251  M01S01226.ssdebug +++|      THEN                           # *ST* OMITTED #
01252  M01S01227.ssdebug +++|        BEGIN
01253  M01S01228.ssdebug +++|        DBARG$ST[0] = -2;
01254  M01S01229.ssdebug +++|        END
01255  M01S01230.ssdebug +++|
01256  M01S01231.ssdebug +++|      ELSE                           # *ST* SPECIFIED #
01257  M01S01232.ssdebug +++|        BEGIN
01258  M01S01233.ssdebug +++|        IF DBARG$ST[0] NQ -1
01259  M01S01234.ssdebug +++|        THEN
01260  M01S01235.ssdebug +++|          BEGIN  # CONVERT *ST* #
01261  M01S01236.ssdebug +++|          FLAG = XDXB(DBARG$ST[0],1,TEMP);
01262  M01S01237.ssdebug +++|          IF FLAG NQ OK
01263  M01S01238.ssdebug +++|          THEN                       # CONVERSION ERROR #
01264  M01S01239.ssdebug +++|            BEGIN
01265  M01S01240.ssdebug +++|            RETURN;
01266  M01S01241.ssdebug +++|            END
01267  M01S01242.ssdebug +++|
01268  M01S01243.ssdebug +++|          DBARG$ST[0] = TEMP;
01269  M01S01244.ssdebug +++|          END  # CONVERT *ST* #
01270  M01S01245.ssdebug +++|
01271  M01S01246.ssdebug +++|        END
01272  M01S01247.ssdebug +++|
01273  M01S01248.ssdebug +++|      RETURN;
01274  M01S01249.ssdebug +++|
01275  M01S01250.ssdebug +++|      END  # DBCONV #
01276  M01S01251.ssdebug +++|
01277  M01S01252.ssdebug +++|    TERM
01278  M01S01253.ssdebug +++|
01279  M01S01254.ssdebug +++|PROC DBERR(ERRCODE);
01280  M01S01255.ssdebug +++|# TITLE DBERR - ERROR PROCESSOR.                                      #
01281  M01S01256.ssdebug +++|
01282  M01S01257.ssdebug +++|      BEGIN  # DBERR #
01283  M01S01258.ssdebug +++|
01284  M01S01259.ssdebug +++|#
01285  M01S01260.ssdebug +++|**    DBERR - ERROR PROCESSOR.
01286  M01S01261.ssdebug +++|*
01287  M01S01262.ssdebug +++|*     PROC DBERR(ERRCODE)
01288  M01S01263.ssdebug +++|*
01289  M01S01264.ssdebug +++|*     ENTRY   (ERRCODE)    = ERROR CODE.
01290  M01S01265.ssdebug +++|*             (OUT$FETP)   = FWA OF FET FOR OUTPUT FILE.
01291  M01S01266.ssdebug +++|*             (DBARG$PF)   = PERMANENT FILE NAME.
01292  M01S01267.ssdebug +++|*             (DBARG$DIRN) = DIRECTIVE NUMBER IN DISPLAY CODE.
01293  M01S01268.ssdebug +++|*
01294  M01S01269.ssdebug +++|*     EXIT    ERROR PROCESSING DONE.  DEPENDING ON THE
01295  M01S01270.ssdebug +++|*             ERROR CODE EITHER *SSDEBUG* IS TERMINATED
01296  M01S01271.ssdebug +++|*             OR CONTROL IS RETURNED BACK TO THE CALLING
01297  M01S01272.ssdebug +++|*             PROC.
01298  M01S01273.ssdebug +++|*
01299  M01S01274.ssdebug +++|*     MESSAGES SSDEBUG ABNORMAL, DBERR.
01300  M01S01275.ssdebug +++|*              SEE ARRAY *ERRMSG* FOR THE DAYFILE MESSAGES
01301  M01S01276.ssdebug +++|*              PRINTED OUT.
01302  M01S01277.ssdebug +++|*
01303  M01S01278.ssdebug +++|*     NOTES   *DBERR* IS A TABLE DRIVEN ERROR PROCESSOR.  A
01304  M01S01279.ssdebug +++|*             TABLE HAS BEEN PRESET WITH THE ERROR MESSAGES
01305  M01S01280.ssdebug +++|*             WHICH CORRESPOND TO THE ERROR STATUS LIST SET
01306  M01S01281.ssdebug +++|*             UP IN *COMTDER*.  THE ERROR CODE CORRESPONDS
01307  M01S01282.ssdebug +++|*             TO THE ORDINAL OF THE CORRESPONDING ENTRY IN
01308  M01S01283.ssdebug +++|*             THE TABLE.  THE ACTION TO BE TAKEN FOR THE
01309  M01S01284.ssdebug +++|*             ERROR CODE HAS BEEN PRESET AS STATUS VALUES
01310  M01S01285.ssdebug +++|*             IN THE CORRESPONDING ENTRY IN THE TABLE.  THE
01311  M01S01286.ssdebug +++|*             ERROR MESSAGE IS PRINTED OUT IN THE DAYFILE
01312  M01S01287.ssdebug +++|*             AND THE REPORT FILE.
01313  M01S01288.ssdebug +++|#
01314  M01S01289.ssdebug +++|
01315  M01S01290.ssdebug +++|      ITEM ERRCODE    I;             # ERROR CODE #
01316  M01S01291.ssdebug +++|
01317  M01S01292.ssdebug +++|#
01318  M01S01293.ssdebug +++|****  PROC DBERR - XREF LIST BEGIN.
01319  M01S01294.ssdebug +++|#
01320  M01S01295.ssdebug +++|
01321  M01S01296.ssdebug +++|      XREF
01322  M01S01297.ssdebug +++|        BEGIN
01323  M01S01298.ssdebug +++|        PROC BZFILL;                 # BLANK/ZERO FILL A BUFFER #
01324  M01S01299.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGE #
01325  M01S01300.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01326  M01S01301.ssdebug +++|                                       OR RETURN #
01327  M01S01302.ssdebug +++|        PROC RPCLOSE;                # CLOSE OUTPUT FILE #
01328  M01S01303.ssdebug +++|        PROC RPLINE;                 # PRINTS A REPORT LINE #
01329  M01S01304.ssdebug +++|        PROC RPSPACE;                # PRINTS A BLANK LINE #
01330  M01S01305.ssdebug +++|        FUNC XCDD C(10);             # CONVERTS TO DISPLAY CODE #
01331  M01S01306.ssdebug +++|        END
01332  M01S01307.ssdebug +++|
01333  M01S01308.ssdebug +++|#
01334  M01S01309.ssdebug +++|****  PROC DBERR - XREF LIST END.
01335  M01S01310.ssdebug +++|#
01336  M01S01311.ssdebug +++|
01337  M01S01312.ssdebug +++|      DEF PROCNAME  #"DBERR."#;      # PROC NAME #
01338  M01S01313.ssdebug +++|
01339  M01S01314.ssdebug +++|      STATUS ACTION                  # ACTION TO BE TAKEN #
01340  M01S01315.ssdebug +++|        MSG,                         # DISPLAY DAYFILE/REPORT MESSAGE #
01341  M01S01316.ssdebug +++|        MSGDTL,                      # DISPLAY DETAILED MESSAGE #
01342  M01S01317.ssdebug +++|        RETRN,                       # RETURN TO CALLING PROC #
01343  M01S01318.ssdebug +++|        ABRT,                        # ABORT PROCESSING #
01344  M01S01319.ssdebug +++|        LSTACT;                      # END OF STATUS LIST #
01345  M01S01320.ssdebug +++|
01346  M01S01321.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
01347  M01S01322.ssdebug +++|*CALL COMBFAS
01348  M01S01323.ssdebug +++|*CALL COMBBZF
01349  M01S01324.ssdebug +++|*CALL COMBCPR
01350  M01S01325.ssdebug +++|*CALL COMTDBG
01351  M01S01326.ssdebug +++|*CALL COMTDBP
01352  M01S01327.ssdebug +++|*CALL COMTDER
01353  M01S01328.ssdebug +++|*CALL COMTOUT
01354  M01S01329.ssdebug +++|
01355  M01S01330.ssdebug +++|      ITEM DIS$ERR    C(20);         # ERROR CODE IN DISPLAY #
01356  M01S01331.ssdebug +++|      ITEM FNAME      C(7);          # FILE NAME #
01357  M01S01332.ssdebug +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
01358  M01S01333.ssdebug +++|      ITEM STAT       I;             # STATUS VALUE #
01359  M01S01334.ssdebug +++|
01360  M01S01335.ssdebug +++|#
01361  M01S01336.ssdebug +++|*     ARRAYS FOR DISPLAZING DAYFILE MESSAGES.
01362  M01S01337.ssdebug +++|#
01363  M01S01338.ssdebug +++|
01364  M01S01339.ssdebug +++|      ARRAY DAYMSG [0:0] P(5);       # ERROR MESSAGE #
01365  M01S01340.ssdebug +++|        BEGIN
01366  M01S01341.ssdebug +++|        ITEM DAY$MSGTXT C(00,00,40);  # MESSAGE TEXT #
01367  M01S01342.ssdebug +++|        ITEM DAY$MSGFIL C(01,48,07);  # FILE NAME #
01368  M01S01343.ssdebug +++|        ITEM DAY$MSGTRM U(04,00,60) = [0];  # ZERO BYTE TERMINATOR #
01369  M01S01344.ssdebug +++|        END
01370  M01S01345.ssdebug +++|
01371  M01S01346.ssdebug +++|      ARRAY DIRNUM [0:0] P(2);       # DIRECTIVE NUMBER #
01372  M01S01347.ssdebug +++|        BEGIN
01373  M01S01348.ssdebug +++|        ITEM DIR$MSG    C(00,00,11) = [" DIRECTIVE "];
01374  M01S01349.ssdebug +++|        ITEM DIR$NO     C(01,06,03);  # DIRECTIVE NUMBER #
01375  M01S01350.ssdebug +++|        ITEM DIR$PRD    C(01,24,01) = ["."];  # ENDING PERIOD #
01376  M01S01351.ssdebug +++|        ITEM DIR$TRM    U(01,30,30) = [0];  # ZERO BYTE TERMINATOR #
01377  M01S01352.ssdebug +++|        END
01378  M01S01353.ssdebug +++|
01379  M01S01354.ssdebug +++|      ARRAY ERRNUM [0:0] P(3);       # ERROR NUMBER #
01380  M01S01355.ssdebug +++|        BEGIN
01381  M01S01356.ssdebug +++|        ITEM ERR$TXT    C(00,00,15) = [" SSDEBUG ERROR "];
01382  M01S01357.ssdebug +++|        ITEM ERR$NUM    C(01,30,03);  # ERROR NUMBER #
01383  M01S01358.ssdebug +++|        ITEM ERR$PRD    C(01,48,02) = [". "];  # ENDING PERIOD #
01384  M01S01359.ssdebug +++|        ITEM ERR$TRM    U(02,00,60) = [0];  # ZERO BYTE TERMINATOR #
01385  M01S01360.ssdebug +++|        END
01386  M01S01361.ssdebug +++|
01387  M01S01362.ssdebug +++|#
01388  M01S01363.ssdebug +++|*     ARRAY PRESET WITH THE ERROR MESSAGES AND THE STATUS
01389  M01S01364.ssdebug +++|*     VALUES REPRESENTING THE ACTION TO BE TAKEN ON AN ERROR
01390  M01S01365.ssdebug +++|*     CODE.
01391  M01S01366.ssdebug +++|#
01392  M01S01367.ssdebug +++|
01393  M01S01368.ssdebug +++|      ARRAY ERRMSG [0:DBCODEMAX] S(5);
01394  M01S01369.ssdebug +++|        BEGIN
01395  M01S01370.ssdebug +++|        ITEM ERR$MSG    C(00,00,38) = [
01396  M01S01371.ssdebug +++|        " SYNTAX ERROR, SSDEBUG ABORT.",
01397  M01S01372.ssdebug +++|        " SYNTAX ERROR IN DIRECTIVE.",
01398  M01S01373.ssdebug +++|        " ILLEGAL DIRECTIVE.",
01399  M01S01374.ssdebug +++|        " FO NOT SPECIFIED CORRECTLY.",
01400  M01S01375.ssdebug +++|        " ST NOT SPECIFIED CORRECTLY.",
01401  M01S01376.ssdebug +++|        " ILLEGAL SUBFAMILY.",
01402  M01S01377.ssdebug +++|        " ILLEGAL SM.",
01403  M01S01378.ssdebug +++|        " ILLEGAL SL.",
01404  M01S01379.ssdebug +++|        " ILLEGAL SU.",
01405  M01S01380.ssdebug +++|        # CSN OPTION VIOLATED.#,
01406  M01S01381.ssdebug +++|        # CN OR YI OPTION VIOLATED.#,
01407  M01S01382.ssdebug +++|        # CN, FO, OR YI OPTION VIOLATED.#,
01408  M01S01383.ssdebug +++|        " FL OPTION VIOLATED.",
01409  M01S01384.ssdebug +++|        " ON,OF OPTION VIOLATED.",
01410  M01S01385.ssdebug +++|        " ILLEGAL D.",
01411  M01S01386.ssdebug +++|        " YI,ZI OPTION VIOLATED.",
01412  M01S01387.ssdebug +++|        " CUBE EMPTY - SMMAP ENTRY REMOVED.",
01413  M01S01388.ssdebug +++|        " UNABLE TO DEFINE        .",
01414  M01S01389.ssdebug +++|        " ATTACH ERROR ON         .",
01415  M01S01390.ssdebug +++|        # CSN NOT FOUND.#,
01416  M01S01391.ssdebug +++|        # CSN OR Y-Z NOT IN SUBFAMILY.#,
01417  M01S01392.ssdebug +++|        " NON FROZEN FRAGMENT.",
01418  M01S01393.ssdebug +++|        " FROZEN CHAIN.",
01419  M01S01394.ssdebug +++|        " SMMAP ERROR FLAG NOT SET IN FCT.",
01420  M01S01395.ssdebug +++|        " ERROR FLAG NOT SET IN SMMAP.",
01421  M01S01396.ssdebug +++|        " CATALOG/MAP INTERLOCKED.",
01422  M01S01397.ssdebug +++|        " PERMANENT FILE PROBLEM.",
01423  M01S01398.ssdebug +++|        " NO SUCH SUBCATALOG.",
01424  M01S01399.ssdebug +++|        " FCT ORDINAL OUT OF RANGE.",
01425  M01S01400.ssdebug +++|        " CATALOG/MAP NOT OPEN.",
01426  M01S01401.ssdebug +++|        " CARTRIDGE NOT FOUND.",
01427  M01S01402.ssdebug +++|        " MSF SYSTEM ERROR.",
01428  M01S01403.ssdebug +++|        " MSF HARDWARE PROBLEM.",
01429  M01S01404.ssdebug +++|        " DISK FILE ERROR.",
01430  M01S01405.ssdebug +++|        " ONLY PART OF CARTRIDGE LABEL MATCHED.",
01431  M01S01406.ssdebug +++|        " CARTRIDGE IN USE.",
01432  M01S01407.ssdebug +++|        " SPECIFIED CELL EMPTY.",
01433  M01S01408.ssdebug +++|        " NO CARTRIDGE LABEL MATCH.",
01434  M01S01409.ssdebug +++|        " UNRECOVERABLE READ ERROR.",
01435  M01S01410.ssdebug +++|        " VOLUME HEADER ERROR.",
01436  M01S01411.ssdebug +++|        " DISK FULL.",
01437  M01S01412.ssdebug +++|        " STORAGE MODULE OFF."] ;
01438  M01S01413.ssdebug +++|        ITEM ERR$MTRM   U(03,48,12) = [0,DBCODEMAX(0)];
01439  M01S01414.ssdebug +++|                                     # ZERO BYTE TERMINATOR #
01440  M01S01415.ssdebug +++|        ITEM ERR$STATW  U(04,00,60);  # ACTION TO BE TAKEN #
01441  M01S01416.ssdebug +++|
01442  M01S01417.ssdebug +++|#
01443  M01S01418.ssdebug +++|*     STATUS VALUES REPRESENTING TYPE OF MESSAGE TO
01444  M01S01419.ssdebug +++|*     BE PRINTED.
01445  M01S01420.ssdebug +++|#
01446  M01S01421.ssdebug +++|
01447  M01S01422.ssdebug +++|        ITEM ERR$STAT1  S: ACTION (04,00,06) = [ 17(S"MSG"),
01448  M01S01423.ssdebug +++|                                                  2(S"MSGDTL"),
01449  M01S01424.ssdebug +++|                                                23(S"MSG")];
01450  M01S01425.ssdebug +++|
01451  M01S01426.ssdebug +++|#
01452  M01S01427.ssdebug +++|*     STATUS VALUES REPRESENTING TYPE OF ACTION TO BE
01453  M01S01428.ssdebug +++|*     TAKEN AFTER PRINTING THE MESSAGE.
01454  M01S01429.ssdebug +++|#
01455  M01S01430.ssdebug +++|
01456  M01S01431.ssdebug +++|        ITEM ERR$STAT2  S: ACTION (04,06,06) =  [    S"ABRT",
01457  M01S01432.ssdebug +++|                                                 16(S"RETRN"),
01458  M01S01433.ssdebug +++|                                                 25(S"ABRT")];
01459  M01S01434.ssdebug +++|        END
01460  M01S01435.ssdebug +++|
01461  M01S01436.ssdebug +++|CONTROL EJECT;
01462  M01S01437.ssdebug +++|
01463  M01S01438.ssdebug +++|#
01464  M01S01439.ssdebug +++|*     CHECK FOR A LEGAL ERRCODE.
01465  M01S01440.ssdebug +++|#
01466  M01S01441.ssdebug +++|
01467  M01S01442.ssdebug +++|      IF ERRCODE LS 0 OR ERRCODE GR DBCODEMAX
01468  M01S01443.ssdebug +++|      THEN                           # ILLEGAL ERROR CODE #
01469  M01S01444.ssdebug +++|        BEGIN
01470  M01S01445.ssdebug +++|        DBMSG$PROC[0] = PROCNAME;
01471  M01S01446.ssdebug +++|        MESSAGE(DBMSG[0],SYSUDF1);
01472  M01S01447.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
01473  M01S01448.ssdebug +++|        END
01474  M01S01449.ssdebug +++|
01475  M01S01450.ssdebug +++|#
01476  M01S01451.ssdebug +++|*     SET UP THE DIRECTIVE NUMBER AND ERROR CODE
01477  M01S01452.ssdebug +++|*     FOR DISPLAY.
01478  M01S01453.ssdebug +++|#
01479  M01S01454.ssdebug +++|
01480  M01S01455.ssdebug +++|      DIR$NO[0] = DBARG$DIRN[0];
01481  M01S01456.ssdebug +++|      DIS$ERR = XCDD(ERRCODE);
01482  M01S01457.ssdebug +++|      ERR$NUM = C<7,3>DIS$ERR;
01483  M01S01458.ssdebug +++|
01484  M01S01459.ssdebug +++|#
01485  M01S01460.ssdebug +++|*     DO THE CORRESPONDING PROCESSING FOR THE
01486  M01S01461.ssdebug +++|*     ERROR CODE.
01487  M01S01462.ssdebug +++|#
01488  M01S01463.ssdebug +++|
01489  M01S01464.ssdebug +++|      IF ERRCODE NQ DERRLIST"DSYNT$CRD"
01490  M01S01465.ssdebug +++|      THEN
01491  M01S01466.ssdebug +++|        BEGIN  # DISPLAY MESSAGE HEADER #
01492  M01S01467.ssdebug +++|        IF ERR$STAT2[ERRCODE] EQ S"ABRT"
01493  M01S01468.ssdebug +++|        THEN                         # SEND MESSAGE TO SYSTEM DAYFILE #
01494  M01S01469.ssdebug +++|          BEGIN
01495  M01S01470.ssdebug +++|          MESSAGE(ERRNUM[0],SYSUDF1);
01496  M01S01471.ssdebug +++|          MESSAGE(DIRNUM[0],SYSUDF1);
01497  M01S01472.ssdebug +++|          END
01498  M01S01473.ssdebug +++|
01499  M01S01474.ssdebug +++|        ELSE                         # SEND MESSAGE TO USER DAYFILE #
01500  M01S01475.ssdebug +++|          BEGIN
01501  M01S01476.ssdebug +++|          MESSAGE(ERRNUM[0],UDFL1);
01502  M01S01477.ssdebug +++|          MESSAGE(DIRNUM[0],UDFL1);
01503  M01S01478.ssdebug +++|          END
01504  M01S01479.ssdebug +++|
01505  M01S01480.ssdebug +++|        RPLINE(OUT$FETP,"*** ERROR",4,9,1);
01506  M01S01481.ssdebug +++|        RPLINE(OUT$FETP,ERR$NUM[0],14,3,0);
01507  M01S01482.ssdebug +++|        RPLINE(OUT$FETP,"DIRECTIVE",8,9,1);
01508  M01S01483.ssdebug +++|        RPLINE(OUT$FETP,DIR$NO[0],18,3,0);
01509  M01S01484.ssdebug +++|        END  # DISPLAY MESSAGE HEADER #
01510  M01S01485.ssdebug +++|
01511  M01S01486.ssdebug +++|#
01512  M01S01487.ssdebug +++|*     DISPLAY ERROR MESSAGE.
01513  M01S01488.ssdebug +++|#
01514  M01S01489.ssdebug +++|
01515  M01S01490.ssdebug +++|      IF ERR$STAT1[ERRCODE] EQ S"MSG"
01516  M01S01491.ssdebug +++|      THEN
01517  M01S01492.ssdebug +++|        BEGIN  # DISPLAY ERROR MESSAGE #
01518  M01S01493.ssdebug +++|        IF ERR$STAT2[ERRCODE] EQ S"ABRT"
01519  M01S01494.ssdebug +++|        THEN                         # SEND MESSAGE TO SYSTEM DAYFILE #
01520  M01S01495.ssdebug +++|          BEGIN
01521  M01S01496.ssdebug +++|          MESSAGE(ERRMSG[ERRCODE],SYSUDF1);
01522  M01S01497.ssdebug +++|          END
01523  M01S01498.ssdebug +++|
01524  M01S01499.ssdebug +++|        ELSE                         # SEND MESSAGE TO USER DAYFILE #
01525  M01S01500.ssdebug +++|          BEGIN
01526  M01S01501.ssdebug +++|          MESSAGE(ERRMSG[ERRCODE],UDFL1);
01527  M01S01502.ssdebug +++|          END
01528  M01S01503.ssdebug +++|
01529  M01S01504.ssdebug +++|        RPLINE(OUT$FETP,ERR$MSG[ERRCODE],7,38,0);
01530  M01S01505.ssdebug +++|        END
01531  M01S01506.ssdebug +++|
01532  M01S01507.ssdebug +++|      ELSE
01533  M01S01508.ssdebug +++|        BEGIN  # DISPLAY DETAILED MESSAGE #
01534  M01S01509.ssdebug +++|        DAY$MSGTXT[0] = ERR$MSG[ERRCODE];
01535  M01S01510.ssdebug +++|        FNAME = DBARG$PF[0];
01536  M01S01511.ssdebug +++|        BZFILL(FNAME,TYPFILL"BFILL",7);
01537  M01S01512.ssdebug +++|        DAY$MSGFIL[0] = FNAME;
01538  M01S01513.ssdebug +++|        IF ERR$STAT2[ERRCODE] EQ S"ABRT"
01539  M01S01514.ssdebug +++|        THEN                         # SEND MESSAGE TO SYSTEM DAYFILE #
01540  M01S01515.ssdebug +++|          BEGIN
01541  M01S01516.ssdebug +++|          MESSAGE(DAYMSG[0],SYSUDF1);
01542  M01S01517.ssdebug +++|          END
01543  M01S01518.ssdebug +++|
01544  M01S01519.ssdebug +++|        ELSE                         # SEND MESSAGE TO USER DAYFILE #
01545  M01S01520.ssdebug +++|          BEGIN
01546  M01S01521.ssdebug +++|          MESSAGE(DAYMSG[0],UDFL1);
01547  M01S01522.ssdebug +++|          END
01548  M01S01523.ssdebug +++|
01549  M01S01524.ssdebug +++|        RPLINE(OUT$FETP,DAY$MSGTXT[0],7,40,0);
01550  M01S01525.ssdebug +++|        END  # DISPLAY DETAILED MESSAGE #
01551  M01S01526.ssdebug +++|
01552  M01S01527.ssdebug +++|      RPSPACE(OUT$FETP,SP"SPACE",1);
01553  M01S01528.ssdebug +++|
01554  M01S01529.ssdebug +++|#
01555  M01S01530.ssdebug +++|*     ABORT OR RETURN.
01556  M01S01531.ssdebug +++|#
01557  M01S01532.ssdebug +++|
01558  M01S01533.ssdebug +++|      IF ERR$STAT2[ERRCODE] EQ S"ABRT"
01559  M01S01534.ssdebug +++|      THEN
01560  M01S01535.ssdebug +++|        BEGIN
01561  M01S01536.ssdebug +++|        RPCLOSE(OUT$FETP);
01562  M01S01537.ssdebug +++|        RESTPFP(PFP$ABORT);          # RESTORE USER-S *PFP* AND ABORT #
01563  M01S01538.ssdebug +++|        END
01564  M01S01539.ssdebug +++|
01565  M01S01540.ssdebug +++|      RETURN;
01566  M01S01541.ssdebug +++|
01567  M01S01542.ssdebug +++|      END  # DBERR #
01568  M01S01543.ssdebug +++|
01569  M01S01544.ssdebug +++|    TERM
01570  M01S01545.ssdebug +++|PROC DBFLAG;
01571  M01S01546.ssdebug +++|# TITLE DBFLAG - SET OR CLEAR SPECIFIED FLAGS.                        #
01572  M01S01547.ssdebug +++|
01573  M01S01548.ssdebug +++|      BEGIN  # DBFLAG #
01574  M01S01549.ssdebug +++|
01575  M01S01550.ssdebug +++|#
01576  M01S01551.ssdebug +++|**    DBFLAG - SET OR CLEAR SPECIFIED FLAGS.
01577  M01S01552.ssdebug +++|*
01578  M01S01553.ssdebug +++|*     *DBFLAG* CHANGES SPECIFIED FLAGS IN SMMAPS OR CATALOGS.
01579  M01S01554.ssdebug +++|*
01580  M01S01555.ssdebug +++|*     PROC DBFLAG
01581  M01S01556.ssdebug +++|*
01582  M01S01557.ssdebug +++|*     ENTRY    THE CRACKED AND SYNTAX CHECKED DIRECTIVE PARAMETERS
01583  M01S01558.ssdebug +++|*              ARE SET UP IN THE COMMON AREA DEFINED IN *COMTDBP*.
01584  M01S01559.ssdebug +++|*              THE APPROPRIATE SMMAP AND CATALOG, IF ANY, HAVE
01585  M01S01560.ssdebug +++|*              BEEN OPENED.
01586  M01S01561.ssdebug +++|*              P<CPR> = FWA OF *CALLSS* PARAMETER BLOCK.
01587  M01S01562.ssdebug +++|*
01588  M01S01563.ssdebug +++|*     EXIT     THE DIRECTIVE WAS PROCESSED AND THE MAP AND
01589  M01S01564.ssdebug +++|*              CATALOG WERE CLOSED, OR AN ERROR CONDITION
01590  M01S01565.ssdebug +++|*              WAS DETECTED.
01591  M01S01566.ssdebug +++|*
01592  M01S01567.ssdebug +++|*     MESSAGES * SSDEBUG ABNORMAL, DBFLAG.*
01593  M01S01568.ssdebug +++|#
01594  M01S01569.ssdebug +++|
01595  M01S01570.ssdebug +++|#
01596  M01S01571.ssdebug +++|****  PROC DBFLAG - XREF LIST BEGIN.
01597  M01S01572.ssdebug +++|#
01598  M01S01573.ssdebug +++|
01599  M01S01574.ssdebug +++|      XREF
01600  M01S01575.ssdebug +++|        BEGIN
01601  M01S01576.ssdebug +++|        PROC CCLOSE;                 # CLOSE MSF CATALOG #
01602  M01S01577.ssdebug +++|        PROC CGETFCT;                # GET *FCT* ENTRY #
01603  M01S01578.ssdebug +++|        PROC DBCALL3;                # ISSUE TYPE 3 *CALLSS* #
01604  M01S01579.ssdebug +++|        PROC DBERR;                  # *SSDEBUG* ERROR PROCESSOR #
01605  M01S01580.ssdebug +++|        PROC DBRESP;                 # RESPOND TO ERROR CONDITION #
01606  M01S01581.ssdebug +++|        PROC DBVSN;                  # SEARCH SMMAP FOR A VSN #
01607  M01S01582.ssdebug +++|        PROC MCLOSE;                 # CLOSE SMMAP #
01608  M01S01583.ssdebug +++|        PROC MGETENT;                # GET A SMMAP ENTRY #
01609  M01S01584.ssdebug +++|        PROC MESSAGE;                # ISSUE MESSAGE #
01610  M01S01585.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
01611  M01S01586.ssdebug +++|                                       OR RETURN #
01612  M01S01587.ssdebug +++|        END
01613  M01S01588.ssdebug +++|
01614  M01S01589.ssdebug +++|#
01615  M01S01590.ssdebug +++|****  PROC DBFLAG - XREF LIST END.
01616  M01S01591.ssdebug +++|#
01617  M01S01592.ssdebug +++|
01618  M01S01593.ssdebug +++|
01619  M01S01594.ssdebug +++|      DEF PROCNAME   #"DBFLAG"#;     # PROCEDURE NAME #
01620  M01S01595.ssdebug +++|
01621  M01S01596.ssdebug +++|      DEF LISTCON    #0#;            # DO NOT LIST COMMON DECKS #
01622  M01S01597.ssdebug +++|*CALL COMBFAS
01623  M01S01598.ssdebug +++|*CALL COMBCMS
01624  M01S01599.ssdebug +++|*CALL COMBCPR
01625  M01S01600.ssdebug +++|*CALL COMBMAP
01626  M01S01601.ssdebug +++|*CALL COMBMCT
01627  M01S01602.ssdebug +++|*CALL COMTDBG
01628  M01S01603.ssdebug +++|*CALL COMTDBP
01629  M01S01604.ssdebug +++|*CALL COMTDER
01630  M01S01605.ssdebug +++|
01631  M01S01606.ssdebug +++|      ITEM CONTINUE   B;             # LOOP CONTROL FLAG #
01632  M01S01607.ssdebug +++|      ITEM I          I;             # INDUCTION VARIABLE #
01633  M01S01608.ssdebug +++|      ITEM ORD        I;             # SMMAP ORDINAL #
01634  M01S01609.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE CODE #
01635  M01S01610.ssdebug +++|      ITEM Y          I;             # SM *Y* COORDINATE #
01636  M01S01611.ssdebug +++|      ITEM Z          I;             # SM *Z* COORDINATE #
01637  M01S01612.ssdebug +++|
01638  M01S01613.ssdebug +++|      ARRAY FCTENT [0:0] P(FCTENTL); ;  # *FCT* ENTRY #
01639  M01S01614.ssdebug +++|      ARRAY MAPENT [0:0] P(MAPENTL); ;  # SMMAP ENTRY #
01640  M01S01615.ssdebug +++|
01641  M01S01616.ssdebug +++|                                               CONTROL EJECT;
01642  M01S01617.ssdebug +++|
01643  M01S01618.ssdebug +++|#
01644  M01S01619.ssdebug +++|*     IF THE *ST* PARAMETER WAS SPECIFIED, USE THIS VALUE IN PLACE
01645  M01S01620.ssdebug +++|*     OF THE *SL* AND *SU* AU NUMBERS.
01646  M01S01621.ssdebug +++|#
01647  M01S01622.ssdebug +++|
01648  M01S01623.ssdebug +++|      IF DBARG$ST[0] NQ -2
01649  M01S01624.ssdebug +++|      THEN                           # *ST* SPECIFIED #
01650  M01S01625.ssdebug +++|        BEGIN
01651  M01S01626.ssdebug +++|        DBARG$SL[0] = DBARG$ST[0];
01652  M01S01627.ssdebug +++|        DBARG$SU[0] = DBARG$ST[0];
01653  M01S01628.ssdebug +++|        END
01654  M01S01629.ssdebug +++|
01655  M01S01630.ssdebug +++|#
01656  M01S01631.ssdebug +++|*     GET THE APPROPRIATE SMMAP OR CATALOG ENTRY.
01657  M01S01632.ssdebug +++|#
01658  M01S01633.ssdebug +++|
01659  M01S01634.ssdebug +++|      IF DBARG$FL[0] EQ "ME" AND DBARG$FO[0] GR 0
01660  M01S01635.ssdebug +++|      THEN                           # *FCT* ENTRY REQUIRED #
01661  M01S01636.ssdebug +++|        BEGIN  # GET *FCT* #
01662  M01S01637.ssdebug +++|        CGETFCT(DBARG$FM[0],DBARG$SB[0],DBARG$SMID[0],DBARG$FO[0],
01663  M01S01638.ssdebug +++|          LOC(FCTENT[0]),0,RESPCODE);
01664  M01S01639.ssdebug +++|        IF RESPCODE NQ CMASTAT"NOERR"
01665  M01S01640.ssdebug +++|        THEN                         # UNABLE TO GET *FCT* #
01666  M01S01641.ssdebug +++|          BEGIN
01667  M01S01642.ssdebug +++|          DBRESP(RESPCODE,0);
01668  M01S01643.ssdebug +++|          END
01669  M01S01644.ssdebug +++|
01670  M01S01645.ssdebug +++|        P<FCT> = LOC(FCTENT[0]);
01671  M01S01646.ssdebug +++|        IF FCT$Y[0] EQ 0 AND FCT$Z[0] EQ 0
01672  M01S01647.ssdebug +++|        THEN                        # NO CARTRIDGE FOR THIS *FO* #
01673  M01S01648.ssdebug +++|          BEGIN
01674  M01S01649.ssdebug +++|          RESPCODE = CMASTAT"ORDERR";
01675  M01S01650.ssdebug +++|          DBRESP(RESPCODE,0);
01676  M01S01651.ssdebug +++|          END
01677  M01S01652.ssdebug +++|
01678  M01S01653.ssdebug +++|        DBARG$YI[0] = FCT$Y[0];
01679  M01S01654.ssdebug +++|        DBARG$ZI[0] = FCT$Z[0];
01680  M01S01655.ssdebug +++|        CCLOSE(DBARG$FM[0],DBARG$SB[0],0,RESPCODE);
01681  M01S01656.ssdebug +++|        IF RESPCODE NQ CMASTAT"NOERR"
01682  M01S01657.ssdebug +++|        THEN                         # UNABLE TO CLOSE CATALOG #
01683  M01S01658.ssdebug +++|          BEGIN
01684  M01S01659.ssdebug +++|          DBRESP(RESPCODE,0);
01685  M01S01660.ssdebug +++|          END
01686  M01S01661.ssdebug +++|
01687  M01S01662.ssdebug +++|        END  # GET *FCT* #
01688  M01S01663.ssdebug +++|
01689  M01S01664.ssdebug +++|      IF DBARG$WCN[0] NQ 0
01690  M01S01665.ssdebug +++|      THEN                           # CSN SPECIFIED #
01691  M01S01666.ssdebug +++|        BEGIN  # *CN* SPECIFIED #
01692  M01S01667.ssdebug +++|        DBVSN(Y,Z,MAPENT[0],RESPCODE);
01693  M01S01668.ssdebug +++|        IF RESPCODE NQ OK
01694  M01S01669.ssdebug +++|        THEN                         # CSN NOT FOUND #
01695  M01S01670.ssdebug +++|          BEGIN
01696  M01S01671.ssdebug +++|          DBERRCODE = S"DVSN$NFND";
01697  M01S01672.ssdebug +++|          DBERR(DBERRCODE);
01698  M01S01673.ssdebug +++|          RETURN;
01699  M01S01674.ssdebug +++|          END
01700  M01S01675.ssdebug +++|
01701  M01S01676.ssdebug +++|        DBARG$YI[0] = Y;
01702  M01S01677.ssdebug +++|        DBARG$ZI[0] = Z;
01703  M01S01678.ssdebug +++|        END  # *CN* SPECIFIED #
01704  M01S01679.ssdebug +++|
01705  M01S01680.ssdebug +++|      IF DBARG$YI[0] GQ 0
01706  M01S01681.ssdebug +++|        AND DBARG$WCN[0] EQ 0
01707  M01S01682.ssdebug +++|      THEN
01708  M01S01683.ssdebug +++|        BEGIN  # *YI* SPECIFIED #
01709  M01S01684.ssdebug +++|        ORD = MAXORD -DBARG$ZI[0] - ( DBARG$YI[0]*16 );
01710  M01S01685.ssdebug +++|        MGETENT(DBARG$SMID[0],ORD,LOC(MAPENT[0]),RESPCODE);
01711  M01S01686.ssdebug +++|        IF RESPCODE NQ CMASTAT"NOERR"
01712  M01S01687.ssdebug +++|        THEN                         # UNABLE TO GET MAP ENTRY #
01713  M01S01688.ssdebug +++|          BEGIN
01714  M01S01689.ssdebug +++|          DBMSG$PROC[0] = PROCNAME;
01715  M01S01690.ssdebug +++|          MESSAGE(DBMSG[0],SYSUDF1);
01716  M01S01691.ssdebug +++|          RESTPFP(PFP$ABORT);
01717  M01S01692.ssdebug +++|          END
01718  M01S01693.ssdebug +++|
01719  M01S01694.ssdebug +++|        END  # *YI* SPECIFIED #
01720  M01S01695.ssdebug +++|
01721  M01S01696.ssdebug +++|#
01722  M01S01697.ssdebug +++|*     UPDATE THE CATALOG OR SMMAP AS REQUESTED.
01723  M01S01698.ssdebug +++|#
01724  M01S01699.ssdebug +++|
01725  M01S01700.ssdebug +++|      P<SMUMAP> = LOC(MAPENT[0]);
01726  M01S01701.ssdebug +++|      IF DBARG$FL[0] EQ "ME"
01727  M01S01702.ssdebug +++|      THEN                           # UPDATE SMMAP #
01728  M01S01703.ssdebug +++|        BEGIN  # *FL* .EQ. *ME* #
01729  M01S01704.ssdebug +++|        CM$FLAG1[0] = DBARG$ON[0] NQ 0;
01730  M01S01705.ssdebug +++|        DBCALL3(REQTYP3"UPD$MAP",MAPENT[0],0,0,0,RESPCODE);
01731  M01S01706.ssdebug +++|        IF RESPCODE NQ RESPTYP3"OK3"
01732  M01S01707.ssdebug +++|        THEN                         # UNABLE TO UPDATE MAP #
01733  M01S01708.ssdebug +++|          BEGIN
01734  M01S01709.ssdebug +++|          DBRESP(RESPCODE,TYP"TYP3");
01735  M01S01710.ssdebug +++|          RETURN;
01736  M01S01711.ssdebug +++|          END
01737  M01S01712.ssdebug +++|
01738  M01S01713.ssdebug +++|        END  # *FL* .EQ. *ME* #
01739  M01S01714.ssdebug +++|
01740  M01S01715.ssdebug +++|      ELSE                           # UPDATE CATALOG #
01741  M01S01716.ssdebug +++|        BEGIN  # *FL* .NE. *ME* #
Line S01717 Modification History
M01 (Added by) ssdebug
M02 (Updated by) msea014
Seq #  *Modification Id* Act 
----------------------------+
01742  M02S01717.msea014 ---|        IF DBARG$FO[0] EQ 0
01743  M01S00025.msea014 +++|        IF DBARG$FO[0] EQ 0 OR DBARG$FO[0] EQ -2
01744  M01S01718.ssdebug +++|        THEN
01745  M01S01719.ssdebug +++|          BEGIN  # *FO* NOT SPECIFIED #
01746  M01S01720.ssdebug +++|          IF CM$CODE[0] NQ CUBSTAT"SUBFAM"
01747  M01S01721.ssdebug +++|          THEN                       # VSN OR Y-Z NOT IN SUBFAMILY #
01748  M01S01722.ssdebug +++|            BEGIN
01749  M01S01723.ssdebug +++|            DBERRCODE = S"DNOTIN$SB";
01750  M01S01724.ssdebug +++|            DBERR(DBERRCODE);
01751  M01S01725.ssdebug +++|            RETURN;
01752  M01S01726.ssdebug +++|            END
01753  M01S01727.ssdebug +++|
01754  M01S01728.ssdebug +++|          DBARG$FO[0] = CM$FCTORD[0];
01755  M01S01729.ssdebug +++|          DBARG$FM[0] = CM$FMLYNM[0];
01756  M01S01730.ssdebug +++|          DBARG$SB[0] = CM$SUB[0];
01757  M01S01731.ssdebug +++|          END  # *FO* NOT SPECIFIED #
01758  M01S01732.ssdebug +++|
01759  M01S01733.ssdebug +++|        CONTINUE = TRUE;
01760  M01S01734.ssdebug +++|        SLOWFOR I = DBARG$SL[0] STEP 1
01761  M01S01735.ssdebug +++|          WHILE CONTINUE
01762  M01S01736.ssdebug +++|          AND I LQ DBARG$SU[0]
01763  M01S01737.ssdebug +++|        DO
01764  M01S01738.ssdebug +++|          BEGIN
01765  M01S01739.ssdebug +++|          CONTINUE = DBARG$FLSD[0];  # TRUE FOR AU DETAIL FLAGS #
01766  M01S01740.ssdebug +++|          DBARG$ST[0] = I;
01767  M01S01741.ssdebug +++|          DBCALL3(REQTYP3"UPD$CAT",0,DBARG$FO[0],DBARG$FLCD[0],
01768  M01S01742.ssdebug +++|            DBARG$ON[0],RESPCODE);
01769  M01S01743.ssdebug +++|          IF RESPCODE NQ RESPTYP3"OK3"
01770  M01S01744.ssdebug +++|          THEN                       # UNABLE TO UPDATE CATALOG #
01771  M01S01745.ssdebug +++|            BEGIN
01772  M01S01746.ssdebug +++|            DBRESP(RESPCODE,TYP"TYP3");
01773  M01S01747.ssdebug +++|            RETURN;
01774  M01S01748.ssdebug +++|            END
01775  M01S01749.ssdebug +++|
01776  M01S01750.ssdebug +++|          END
01777  M01S01751.ssdebug +++|
01778  M01S01752.ssdebug +++|        END  # *FL* .NE. *ME* #
01779  M01S01753.ssdebug +++|
01780  M01S01754.ssdebug +++|      IF DBARG$FL[0] EQ "ME" OR DBARG$FO[0] EQ 0
01781  M01S01755.ssdebug +++|      THEN                           # MAP OPENED #
01782  M01S01756.ssdebug +++|        BEGIN
01783  M01S01757.ssdebug +++|        MCLOSE(DBARG$SMID[0],RESPCODE);
01784  M01S01758.ssdebug +++|        IF RESPCODE NQ CMASTAT"NOERR"
01785  M01S01759.ssdebug +++|        THEN                         # UNABLE TO CLOSE MAP #
01786  M01S01760.ssdebug +++|          BEGIN
01787  M01S01761.ssdebug +++|          DBRESP(RESPCODE,0);
01788  M01S01762.ssdebug +++|          END
01789  M01S01763.ssdebug +++|
01790  M01S01764.ssdebug +++|        END
01791  M01S01765.ssdebug +++|
01792  M01S01766.ssdebug +++|      END  # DBFLAG #
01793  M01S01767.ssdebug +++|
01794  M01S01768.ssdebug +++|    TERM
01795  M01S01769.ssdebug +++|PROC DBFMAP;
01796  M01S01770.ssdebug +++|# TITLE DBFMAP - REMOVE *FCT* ENTRY.                                  #
01797  M01S01771.ssdebug +++|
01798  M01S01772.ssdebug +++|      BEGIN  # DBFMAP #
01799  M01S01773.ssdebug +++|
01800  M01S01774.ssdebug +++|#
01801  M01S01775.ssdebug +++|**    DBFMAP - REMOVE *FCT* ENTRY.
01802  M01S01776.ssdebug +++|*
01803  M01S01777.ssdebug +++|*     PROC DBFMAP.
01804  M01S01778.ssdebug +++|*
01805  M01S01779.ssdebug +++|*     ENTRY    THE CRACKED AND SYNTAX CHECKED DIRECTIVE PARAMETERS
01806  M01S01780.ssdebug +++|*              ARE SET UP IN THE COMMON AREA DEFINED IN *COMTDBP*.
01807  M01S01781.ssdebug +++|*              THE CATALOG IS OPEN FOR THE SPECIFIED FAMILY AND
01808  M01S01782.ssdebug +++|*              SUBFAMILY.
01809  M01S01783.ssdebug +++|*              P<CPR> = FWA OF CALLSS PARAMETER BLOCK.
01810  M01S01784.ssdebug +++|*
01811  M01S01785.ssdebug +++|*     EXIT     THE DIRECTIVE HAS BEEN PROCESSED AND CATALOG
01812  M01S01786.ssdebug +++|*              HAS BEEN CLOSED OR AN ERROR CONDITION HAS
01813  M01S01787.ssdebug +++|*              BEEN DETECTED.
01814  M01S01788.ssdebug +++|*
01815  M01S01789.ssdebug +++|*     NOTES    THE SELECTED *FCT* ENTRY IS CHECKED FOR THE
01816  M01S01790.ssdebug +++|*              SMMAP ERROR FLAG AND IF SET, A REQUEST IS
01817  M01S01791.ssdebug +++|*              SENT TO EXEC TO PURGE THE *FCT* ENTRY.
01818  M01S01792.ssdebug +++|#
01819  M01S01793.ssdebug +++|
01820  M01S01794.ssdebug +++|#
01821  M01S01795.ssdebug +++|****  PROC DBFMAP - XREF LIST BEGIN.
01822  M01S01796.ssdebug +++|#
01823  M01S01797.ssdebug +++|
01824  M01S01798.ssdebug +++|      XREF
01825  M01S01799.ssdebug +++|        BEGIN
01826  M01S01800.ssdebug +++|        PROC CCLOSE;                 # CLOSES THE CATALOG #
01827  M01S01801.ssdebug +++|        PROC CGETFCT;                # GET *FCT* ENTRY #
01828  M01S01802.ssdebug +++|        PROC DBCALL3;                # ISSUES A TYPE 3 UCP REQUEST #
01829  M01S01803.ssdebug +++|        PROC DBERR;                  # ERROR PROCESSOR #
01830  M01S01804.ssdebug +++|        PROC DBRESP;                 # PROCESS RESPONSE FROM EXEC #
01831  M01S01805.ssdebug +++|        END
01832  M01S01806.ssdebug +++|
01833  M01S01807.ssdebug +++|#
01834  M01S01808.ssdebug +++|****  PROC DBFMAP - XREF LIST END.
01835  M01S01809.ssdebug +++|#
01836  M01S01810.ssdebug +++|
01837  M01S01811.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
01838  M01S01812.ssdebug +++|*CALL COMBFAS
01839  M01S01813.ssdebug +++|*CALL COMBCMS
01840  M01S01814.ssdebug +++|*CALL COMBCPR
01841  M01S01815.ssdebug +++|*CALL COMBMCT
01842  M01S01816.ssdebug +++|*CALL COMTDBG
01843  M01S01817.ssdebug +++|*CALL COMTDBP
01844  M01S01818.ssdebug +++|*CALL COMTDER
01845  M01S01819.ssdebug +++|
01846  M01S01820.ssdebug +++|      ITEM FCTBADR    I;             # FWA OF BUFFER FOR *FCT* #
01847  M01S01821.ssdebug +++|      ITEM FLAG       I;             # ERROR STATUS #
01848  M01S01822.ssdebug +++|      ITEM RESPCODE   I;             # RESPONSE FROM EXEC #
01849  M01S01823.ssdebug +++|
01850  M01S01824.ssdebug +++|      ARRAY FCTENT [0:0] P(FCTENTL);;  # *FCT* ENTRY #
01851  M01S01825.ssdebug +++|
01852  M01S01826.ssdebug +++|CONTROL EJECT;
01853  M01S01827.ssdebug +++|
01854  M01S01828.ssdebug +++|#
01855  M01S01829.ssdebug +++|*     CHECK THE SMMAP ERROR FLAG IN THE *FCT* ENTRY.
01856  M01S01830.ssdebug +++|#
01857  M01S01831.ssdebug +++|
01858  M01S01832.ssdebug +++|      FCTBADR = LOC(FCTENT[0]);
01859  M01S01833.ssdebug +++|      CGETFCT(DBARG$FM[0],DBARG$SB[0],DBARG$SMID[0],DBARG$FO[0],
01860  M01S01834.ssdebug +++|        FCTBADR,0,FLAG);
01861  M01S01835.ssdebug +++|      IF FLAG NQ CMASTAT"NOERR"
01862  M01S01836.ssdebug +++|      THEN                           # UNABLE TO GET *FCT* ENTRY #
01863  M01S01837.ssdebug +++|        BEGIN
01864  M01S01838.ssdebug +++|        DBRESP(FLAG,0);
01865  M01S01839.ssdebug +++|        RETURN;
01866  M01S01840.ssdebug +++|        END
01867  M01S01841.ssdebug +++|
01868  M01S01842.ssdebug +++|      P<FCT> = FCTBADR;
01869  M01S01843.ssdebug +++|      IF NOT FCT$SEF[0]
01870  M01S01844.ssdebug +++|      THEN                           # SMMAP ERROR FLAG NOT SET #
01871  M01S01845.ssdebug +++|        BEGIN
01872  M01S01846.ssdebug +++|        DBERRCODE = S"DCME$NSET";
01873  M01S01847.ssdebug +++|        DBERR(DBERRCODE);
01874  M01S01848.ssdebug +++|        RETURN;
01875  M01S01849.ssdebug +++|        END
01876  M01S01850.ssdebug +++|
01877  M01S01851.ssdebug +++|#
01878  M01S01852.ssdebug +++|*     PURGE THE *FCT* ENTRY.
01879  M01S01853.ssdebug +++|#
01880  M01S01854.ssdebug +++|
01881  M01S01855.ssdebug +++|      DBCALL3(REQTYP3"PURG$FCT",0,DBARG$FO[0],0,0,RESPCODE);
01882  M01S01856.ssdebug +++|      IF RESPCODE NQ RESPTYP3"OK3"
01883  M01S01857.ssdebug +++|      THEN                           # UNABLE TO PURGE *FCT* ENTRY #
01884  M01S01858.ssdebug +++|        BEGIN
01885  M01S01859.ssdebug +++|        DBRESP(RESPCODE,TYP"TYP3");
01886  M01S01860.ssdebug +++|        RETURN;
01887  M01S01861.ssdebug +++|        END
01888  M01S01862.ssdebug +++|
01889  M01S01863.ssdebug +++|      CCLOSE(DBARG$FM[0],DBARG$SB[0],0,FLAG);
01890  M01S01864.ssdebug +++|      IF FLAG NQ CMASTAT"NOERR"
01891  M01S01865.ssdebug +++|      THEN                           # UNABLE TO CLOSE CATALOG #
01892  M01S01866.ssdebug +++|        BEGIN
01893  M01S01867.ssdebug +++|        DBRESP(FLAG,0);
01894  M01S01868.ssdebug +++|        END
01895  M01S01869.ssdebug +++|
01896  M01S01870.ssdebug +++|      RETURN;
01897  M01S01871.ssdebug +++|
01898  M01S01872.ssdebug +++|      END  # DBFMAP #
01899  M01S01873.ssdebug +++|
01900  M01S01874.ssdebug +++|    TERM
01901  M01S01875.ssdebug +++|PROC DBHEAD((FETP));
01902  M01S01876.ssdebug +++|# TITLE DBHEAD - PRINT HEADER LINE ON THE REPORT.  #
01903  M01S01877.ssdebug +++|
01904  M01S01878.ssdebug +++|      BEGIN  # DBHEAD #
01905  M01S01879.ssdebug +++|
01906  M01S01880.ssdebug +++|#
01907  M01S01881.ssdebug +++|**    DBHEAD - PRINT HEADER LINE ON THE REPORT.
01908  M01S01882.ssdebug +++|*
01909  M01S01883.ssdebug +++|*     PROC DBHEAD((FETP))
01910  M01S01884.ssdebug +++|*
01911  M01S01885.ssdebug +++|*     ENTRY    (FETP) = FWA OF FET FOR REPORT FILE.
01912  M01S01886.ssdebug +++|*
01913  M01S01887.ssdebug +++|*     EXIT     HEADER LINE HAS BEEN WRITTEN.
01914  M01S01888.ssdebug +++|*
01915  M01S01889.ssdebug +++|*     NOTES    THE REPORT FORMATTER IS USED TO PRINT
01916  M01S01890.ssdebug +++|*              THE HEADER LINE.
01917  M01S01891.ssdebug +++|#
01918  M01S01892.ssdebug +++|
01919  M01S01893.ssdebug +++|      ITEM FETP       I;             # FWA OF FET #
01920  M01S01894.ssdebug +++|
01921  M01S01895.ssdebug +++|#
01922  M01S01896.ssdebug +++|****  PROC DBHEAD - XREF LIST BEGIN.
01923  M01S01897.ssdebug +++|#
01924  M01S01898.ssdebug +++|
01925  M01S01899.ssdebug +++|      XREF
01926  M01S01900.ssdebug +++|        BEGIN
01927  M01S01901.ssdebug +++|        PROC RPLINEX;                # PRINT A REPORT LINE #
01928  M01S01902.ssdebug +++|        END
01929  M01S01903.ssdebug +++|
01930  M01S01904.ssdebug +++|#
01931  M01S01905.ssdebug +++|****  PROC DBHEAD - XREF LIST END.
01932  M01S01906.ssdebug +++|#
01933  M01S01907.ssdebug +++|
01934  M01S01908.ssdebug +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
01935  M01S01909.ssdebug +++|*CALL COMBFAS
01936  M01S01910.ssdebug +++|
01937  M01S01911.ssdebug +++|CONTROL EJECT;
01938  M01S01912.ssdebug +++|
01939  M01S01913.ssdebug +++|#
01940  M01S01914.ssdebug +++|*     PRINT HEADER LINE.
01941  M01S01915.ssdebug +++|#
01942  M01S01916.ssdebug +++|
01943  M01S01917.ssdebug +++|      RPLINEX(FETP,"SSDEBUG REPORT FILE",2,19,0);
01944  M01S01918.ssdebug +++|      RPLINEX(FETP," ",2,1,0);
01945  M01S01919.ssdebug +++|      RPLINEX(FETP," ",2,1,0);
01946  M01S01920.ssdebug +++|      RETURN;
01947  M01S01921.ssdebug +++|
01948  M01S01922.ssdebug +++|      END  # DBHEAD #
01949  M01S01923.ssdebug +++|
01950  M01S01924.ssdebug +++|    TERM
01951  M01S01925.ssdebug +++|PROC DBLOOP((ARGLIST),ERRFLAG);
01952  M01S01926.ssdebug +++|# TITLE DBLOOP - CRACK AND SYNTAX CHECK *SSDEBUG* DIRECTIVES.         #
01953  M01S01927.ssdebug +++|
01954  M01S01928.ssdebug +++|      BEGIN  # DBLOOP #
01955  M01S01929.ssdebug +++|
01956  M01S01930.ssdebug +++|#
01957  M01S01931.ssdebug +++|**    DBLOOP - CRACK AND SYNTAX CHECK *SSDEBUG* DIRECTIVES.
01958  M01S01932.ssdebug +++|*
01959  M01S01933.ssdebug +++|*     PROC DBLOOP((ARGLIST),ERRFLAG)
01960  M01S01934.ssdebug +++|*
01961  M01S01935.ssdebug +++|*     ENTRY    (ARGLIST) = FWA OF ARGUMENT LIST.
01962  M01S01936.ssdebug +++|*              (DB$CBUF) = *SSDEBUG* DIRECTIVES.
01963  M01S01937.ssdebug +++|*              (DB$FET)  = FET FOR READING DIRECTIVES.
01964  M01S01938.ssdebug +++|*
01965  M01S01939.ssdebug +++|*     EXIT     ALL THE DIRECTIVES HAVE BEEN CRACKED, SYNTAX CHECKED
01966  M01S01940.ssdebug +++|*              AND WRITTEN TO A SCRATCH FILE.
01967  M01S01941.ssdebug +++|*              (DSCR$FET) = FET FOR READING THE SCRATCH FILE.
01968  M01S01942.ssdebug +++|*              (ERRFLAG)  = FALSE, NO ERROR.
01969  M01S01943.ssdebug +++|*                           TRUE, ERROR IN ONE OR MORE DIRECTIVES.
01970  M01S01944.ssdebug +++|*
01971  M01S01945.ssdebug +++|*     MESSAGES SSDEBUG, NO DIRECTIVES.
01972  M01S01946.ssdebug +++|*
01973  M01S01947.ssdebug +++|*     NOTES    A LOOP IS SET UP TO READ EACH DIRECTIVE.
01974  M01S01948.ssdebug +++|*              THE DIRECTIVE IS CRACKED AND THE CRACKED
01975  M01S01949.ssdebug +++|*              PARAMETERS ARE CONVERTED FROM DISPLAY
01976  M01S01950.ssdebug +++|*              CODE TO INTEGER VALUES.  THE CONVERTED PARAMETERS
01977  M01S01951.ssdebug +++|*              ARE PLACED BACK INTO THE SAME LOCATIONS (DEFINED
01978  M01S01952.ssdebug +++|*              IN *COMTDBP*).  THE DIRECTIVE IS THEN CHECKED FOR
01979  M01S01953.ssdebug +++|*              ALL THE VALID OPTIONS.  ANY ERROR IN THE DIRECTIVE
01980  M01S01954.ssdebug +++|*              CAUSES A DIRECTIVE ERROR FLAG TO BE SET UP.  THE
01981  M01S01955.ssdebug +++|*              CRACKED DIRECTIVE ALONG WITH THE DIRECTIVE
01982  M01S01956.ssdebug +++|*              FLAG, NUMBER AND IMAGE IS WRITTEN TO A SCRATCH
01983  M01S01957.ssdebug +++|*              FILE.  THE SCRATCH FILE HAS ONE RECORD WITH
01984  M01S01958.ssdebug +++|*              AN EOR.  AN ERROR IN ANY DIRECTIVE CAUSES AN
01985  M01S01959.ssdebug +++|*              ERROR FLAG TO BE RETURNED TO THE CALLING PROC.
01986  M01S01960.ssdebug +++|#
01987  M01S01961.ssdebug +++|
01988  M01S01962.ssdebug +++|      ITEM ARGLIST    I;             # FWA OF ARGUMENT LIST #
01989  M01S01963.ssdebug +++|      ITEM ERRFLAG    B;             # ERROR FLAG #
01990  M01S01964.ssdebug +++|
01991  M01S01965.ssdebug +++|#
01992  M01S01966.ssdebug +++|****  PROC DBLOOP - XREF LIST BEGIN.
01993  M01S01967.ssdebug +++|#
01994  M01S01968.ssdebug +++|
01995  M01S01969.ssdebug +++|      XREF
01996  M01S01970.ssdebug +++|        BEGIN
01997  M01S01971.ssdebug +++|        PROC BZFILL;                 # BLANK/ZERO FILLS A BUFFER #
01998  M01S01972.ssdebug +++|        PROC DBCONV;                 # CONVERT PARAMETERS TO INTEGERS #
01999  M01S01973.ssdebug +++|        PROC DBERR;                  # ERROR PROCESSOR #
02000  M01S01974.ssdebug +++|        PROC DBOPT;                  # CHECKS FOR VALID OPTIONS #
02001  M01S01975.ssdebug +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
02002  M01S01976.ssdebug +++|        PROC MESSAGE;                # DISPLAYS MESSAGES #
02003  M01S01977.ssdebug +++|        PROC READC;                  # READS A CODED LINE #
02004  M01S01978.ssdebug +++|        PROC RESTPFP;                # RESTORE USER-S *PFP* AND ABORT
02005  M01S01979.ssdebug +++|                                       OR RETURN #
02006  M01S01980.ssdebug +++|        PROC RETERN;                 # RETURNS A FILE #
02007  M01S01981.ssdebug +++|        PROC REWIND;                 # REWINDS A FILE #
02008  M01S01982.ssdebug +++|        PROC RPLINE;                 # WRITES A REPORT LINE #
02009  M01S01983.ssdebug +++|        PROC RPSPACE;                # WRITES A BLANK LINE #
02010  M01S01984.ssdebug +++|        PROC WRITER;                 # WRITES EOR ON A FILE #
02011  M01S01985.ssdebug +++|        PROC WRITEW;                 # DATA TRANSFER ROUTINE #
02012  M01S01986.ssdebug +++|        PROC XARG;                   # CRACK PARAMETER LIST #
02013  M01S01987.ssdebug +++|        FUNC XCDD C(10);             # CONVERTS TO DISPLAY CODE #
02014  M01S01988.ssdebug +++|        PROC ZFILL;                  # ZERO FILLS A BUFFER #
02015  M01S01989.ssdebug +++|        PROC ZSETFET;                # INITIALIZES A FET #
02016  M01S01990.ssdebug +++|        END
02017  M01S01991.ssdebug +++|
02018  M01S01992.ssdebug +++|#
02019  M01S01993.ssdebug +++|****  PROC DBLOOP - XREF LIST END.
02020  M01S01994.ssdebug +++|#
02021  M01S01995.ssdebug +++|
02022  M01S01996.ssdebug +++|      DEF WBUFL     #8#;             # LENGTH OF WORKING BUFFER #
02023  M01S01997.ssdebug +++|
02024  M01S01998.ssdebug +++|      DEF LISTCON   #0#;             # DO NOT LIST COMDECKS #
02025  M01S01999.ssdebug +++|*CALL COMBFAS
02026  M01S02000.ssdebug +++|*CALL COMBBZF
02027  M01S02001.ssdebug +++|*CALL COMBCPR
02028  M01S02002.ssdebug +++|*CALL COMTDBG
02029  M01S02003.ssdebug +++|*CALL COMTDBP
02030  M01S02004.ssdebug +++|*CALL COMTDER
02031  M01S02005.ssdebug +++|*CALL COMTOUT
02032  M01S02006.ssdebug +++|
02033  M01S02007.ssdebug +++|      ITEM BUFP       I;             # FWA OF *CIO* BUFFER #
02034  M01S02008.ssdebug +++|      ITEM COMMENT    B;             # COMMENT INDICATOR #
02035  M01S02009.ssdebug +++|      ITEM DIRNUM     I;             # DIRECTIVE NUMBER #
02036  M01S02010.ssdebug +++|      ITEM EOR        B;             # EOR STATUS ON A FILE #
02037  M01S02011.ssdebug +++|      ITEM FETP       I;             # FWA OF FET #
02038  M01S02012.ssdebug +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
02039  M01S02013.ssdebug +++|      ITEM FLAG       I;             # ERROR STATUS #
02040  M01S02014.ssdebug +++|      ITEM TEMP       C(10);         # TEMPORARY ITEM #
02041  M01S02015.ssdebug +++|
02042  M01S02016.ssdebug +++|      ARRAY DB$WBUF [0:0] S(WBUFL);  # WORKING BUFFER #
02043  M01S02017.ssdebug +++|        BEGIN
02044  M01S02018.ssdebug +++|        ITEM DB$DIRIMG  C(00,00,80);  # DIRECTIVE IMAGE #
02045  M01S02019.ssdebug +++|        END
02046  M01S02020.ssdebug +++|
02047  M01S02021.ssdebug +++|CONTROL EJECT;
02048  M01S02022.ssdebug +++|
02049  M01S02023.ssdebug +++|      COMMENT = FALSE;               # INITIALIZE #
02050  M01S02024.ssdebug +++|      EOR = FALSE;
02051  M01S02025.ssdebug +++|      DIRNUM = 0;
02052  M01S02026.ssdebug +++|      ERRFLAG = FALSE;
02053  M01S02027.ssdebug +++|
02054  M01S02028.ssdebug +++|#
02055  M01S02029.ssdebug +++|*     SET UP FET FOR SCRATCH FILE.
02056  M01S02030.ssdebug +++|#
02057  M01S02031.ssdebug +++|
02058  M01S02032.ssdebug +++|      FETP = LOC(DSCR$FET[0]);
02059  M01S02033.ssdebug +++|      BUFP = LOC(DSCR$BUF[0]);
02060  M01S02034.ssdebug +++|      ZSETFET(FETP,DBSCR,BUFP,DBUFL,SFETL);
02061  M01S02035.ssdebug +++|      RETERN(DSCR$FET[0],RCL);       # RETURN THE SCRATCH FILE #
02062  M01S02036.ssdebug +++|      LOFPROC(DBSCR);                # ADD LFN TO LIST OF FILES #
02063  M01S02037.ssdebug +++|
02064  M01S02038.ssdebug +++|#
02065  M01S02039.ssdebug +++|*     SET UP A LOOP TO
02066  M01S02040.ssdebug +++|*     1. READ A DIRECTIVE.
02067  M01S02041.ssdebug +++|*     2. CRACK THE DIRECTIVE.
02068  M01S02042.ssdebug +++|*     3. CONVERT THE PARAMETERS.
02069  M01S02043.ssdebug +++|*     4. CHECK FOR VALID OPTIONS.
02070  M01S02044.ssdebug +++|*     5. WRITE THE DIRECTIVE TO THE SCRATCH FILE.
02071  M01S02045.ssdebug +++|#
02072  M01S02046.ssdebug +++|
02073  M01S02047.ssdebug +++|      FASTFOR I = 0 STEP 1 WHILE NOT EOR
02074  M01S02048.ssdebug +++|      DO
02075  M01S02049.ssdebug +++|        BEGIN  # CRACK AND SYNTAX CHECK DIRECTIVES #
02076  M01S02050.ssdebug +++|
02077  M01S02051.ssdebug +++|#
02078  M01S02052.ssdebug +++|*     READ THE DIRECTIVE.
02079  M01S02053.ssdebug +++|#
02080  M01S02054.ssdebug +++|
02081  M01S02055.ssdebug +++|        ZFILL(DB$WBUF[0],WBUFL);
02082  M01S02056.ssdebug +++|        READC(DB$FET[0],DB$WBUF[0],WBUFL,FLAG);
02083  M01S02057.ssdebug +++|        IF FLAG NQ OK
02084  M01S02058.ssdebug +++|        THEN                         # NO MORE DIRECTIVES #
02085  M01S02059.ssdebug +++|          BEGIN
02086  M01S02060.ssdebug +++|          EOR = TRUE;
02087  M01S02061.ssdebug +++|          TEST I;
02088  M01S02062.ssdebug +++|          END
02089  M01S02063.ssdebug +++|
02090  M01S02064.ssdebug +++|#
02091  M01S02065.ssdebug +++|*     CHECK FOR A COMMENT.
02092  M01S02066.ssdebug +++|#
02093  M01S02067.ssdebug +++|
02094  M01S02068.ssdebug +++|        IF C<0,1>DB$DIRIMG[0] EQ "*"
02095  M01S02069.ssdebug +++|        THEN                         # A COMMENT #
02096  M01S02070.ssdebug +++|          BEGIN
02097  M01S02071.ssdebug +++|          COMMENT = TRUE;
02098  M01S02072.ssdebug +++|          TEMP = " ";
02099  M01S02073.ssdebug +++|          END
02100  M01S02074.ssdebug +++|
02101  M01S02075.ssdebug +++|        ELSE                         # A DIRECTIVE #
02102  M01S02076.ssdebug +++|          BEGIN
02103  M01S02077.ssdebug +++|          COMMENT = FALSE;
02104  M01S02078.ssdebug +++|          DIRNUM = DIRNUM + 1;
02105  M01S02079.ssdebug +++|          TEMP = XCDD(DIRNUM);       # SET UP DIRECTIVE NUMBER #
02106  M01S02080.ssdebug +++|          TEMP = C<7,3>TEMP;
02107  M01S02081.ssdebug +++|          END
02108  M01S02082.ssdebug +++|
02109  M01S02083.ssdebug +++|#
02110  M01S02084.ssdebug +++|*     WRITE THE DIRECTIVE IMAGE ALONG WITH THE DIRECTIVE
02111  M01S02085.ssdebug +++|*     NUMBER TO THE OUTPUT FILE.
02112  M01S02086.ssdebug +++|#
02113  M01S02087.ssdebug +++|
02114  M01S02088.ssdebug +++|        BZFILL(DB$WBUF[0],TYPFILL"BFILL",80);
02115  M01S02089.ssdebug +++|        RPLINE(OUT$FETP,TEMP,2,5,1);
02116  M01S02090.ssdebug +++|        RPLINE(OUT$FETP,DB$DIRIMG[0],8,80,0);
02117  M01S02091.ssdebug +++|        RPSPACE(OUT$FETP,SP"SPACE",1);
02118  M01S02092.ssdebug +++|
02119  M01S02093.ssdebug +++|        IF COMMENT
02120  M01S02094.ssdebug +++|        THEN
02121  M01S02095.ssdebug +++|          BEGIN
02122  M01S02096.ssdebug +++|          TEST I;                    # READ NEXT DIRECTIVE #
02123  M01S02097.ssdebug +++|          END
02124  M01S02098.ssdebug +++|
02125  M01S02099.ssdebug +++|#
02126  M01S02100.ssdebug +++|*     SET UP THE AREA TO BE WRITTEN TO THE
02127  M01S02101.ssdebug +++|*     SCRATCH FILE.
02128  M01S02102.ssdebug +++|#
02129  M01S02103.ssdebug +++|
02130  M01S02104.ssdebug +++|        ZFILL(DBARG[0],DBDIRPRML);
02131  M01S02105.ssdebug +++|        DBARG$DIRN[0] = TEMP;
02132  M01S02106.ssdebug +++|        DBARG$DIRI[0] = DB$DIRIMG[0];
02133  M01S02107.ssdebug +++|
02134  M01S02108.ssdebug +++|#
02135  M01S02109.ssdebug +++|*     CRACK THE DIRECTIVE.
02136  M01S02110.ssdebug +++|#
02137  M01S02111.ssdebug +++|
02138  M01S02112.ssdebug +++|        XARG(ARGLIST,DB$WBUF[0],FLAG);
02139  M01S02113.ssdebug +++|        IF FLAG NQ OK
02140  M01S02114.ssdebug +++|        THEN                         # SYNTAX ERROR IN DIRECTIVE #
02141  M01S02115.ssdebug +++|          BEGIN
02142  M01S02116.ssdebug +++|          DBARG$DIRF[0] = TRUE;
02143  M01S02117.ssdebug +++|          ERRFLAG = TRUE;
02144  M01S02118.ssdebug +++|          END
02145  M01S02119.ssdebug +++|
02146  M01S02120.ssdebug +++|
02147  M01S02121.ssdebug +++|#
02148  M01S02122.ssdebug +++|*     ADJUST FOR MANUFACTURERS CODE.
02149  M01S02123.ssdebug +++|#
02150  M01S02124.ssdebug +++|
02151  M01S02125.ssdebug +++|        IF C<1,1>DBARG$CM[0] NQ "-"
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssdebug.txt ยท Last modified: by 127.0.0.1