User Tools

Site Tools


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

Deck ACCMAP

1 Modification

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.accmap  +++|PROC MBUFMAN ((SM$ID),(ORDINAL),OFFSET,RSTATUS);
00002  M01S00002.accmap  +++|# TITLE MBUFMAN - RETURNS MAP ENTRY OFFSET.                           #
00003  M01S00003.accmap  +++|
00004  M01S00004.accmap  +++|      BEGIN  # MBUFMAN  #
00005  M01S00005.accmap  +++|
00006  M01S00006.accmap  +++|#
00007  M01S00007.accmap  +++|**    MBUFMAN - ENSURES THAT THE DESIRED MAP ENTRY IS IN THE BUFFER
00008  M01S00008.accmap  +++|*               AND RETURNS THE WORD OFFSET OF THE ENTRY WITHIN
00009  M01S00009.accmap  +++|*               THE BUFFER.
00010  M01S00010.accmap  +++|*
00011  M01S00011.accmap  +++|*     MBUFMAN - IS CALLED BY MGETENT AND MPUTENT.
00012  M01S00012.accmap  +++|*
00013  M01S00013.accmap  +++|*     PROC MBUFMAN (SM$ID,ORDINAL,OFFSET,RSTATUS)
00014  M01S00014.accmap  +++|*
00015  M01S00015.accmap  +++|*     ENTRY     SM$ID   - *SM* NUMBER.
00016  M01S00016.accmap  +++|*               ORDINAL  - *XY* COORDINATE ORDINAL.
00017  M01S00017.accmap  +++|*
00018  M01S00018.accmap  +++|*     EXIT      OFFSET   - OFFSET OF ENTRY.
00019  M01S00019.accmap  +++|*               RSTATUS  - ERROR STATUS.
00020  M01S00020.accmap  +++|*                          (VALUES DEFINED IN *COMBCMS*)
00021  M01S00021.accmap  +++|*                          = NO ERRORS.
00022  M01S00022.accmap  +++|*                          = *CIO* ERROR.
00023  M01S00023.accmap  +++|*                          = MAP ORDINAL OUT OF RANGE.
00024  M01S00024.accmap  +++|#
00025  M01S00025.accmap  +++|
00026  M01S00026.accmap  +++|      ITEM SM$ID      U;             # *SM* NUMBER  #
00027  M01S00027.accmap  +++|      ITEM ORDINAL    U;             # *XY* COORDINATE ORDINAL  #
00028  M01S00028.accmap  +++|      ITEM OFFSET     U;             # ENTRY OFFSET  #
00029  M01S00029.accmap  +++|      ITEM RSTATUS    U;             # STATUS RETURNED TO CALLER  #
00030  M01S00030.accmap  +++|
00031  M01S00031.accmap  +++|#
00032  M01S00032.accmap  +++|****  PROC MBUFMAN - XREF LIST BEGIN.
00033  M01S00033.accmap  +++|#
00034  M01S00034.accmap  +++|
00035  M01S00035.accmap  +++|      XREF
00036  M01S00036.accmap  +++|        BEGIN
00037  M01S00037.accmap  +++|        PROC MCLOSE;                 # CLOSE MAP  #
00038  M01S00038.accmap  +++|        PROC MFLUSH;                 # FLUSH MAP TO FILE  #
00039  M01S00039.accmap  +++|        PROC READ;                   # INTERFACE TO *READ* MACRO #
00040  M01S00040.accmap  +++|        PROC ZSETFET;                # INITIALIZES A *FET* FOR *I/O* #
00041  M01S00041.accmap  +++|        END
00042  M01S00042.accmap  +++|
00043  M01S00043.accmap  +++|#
00044  M01S00044.accmap  +++|****  PROC MBUFMAN - EXREF LIST END.
00045  M01S00045.accmap  +++|#
00046  M01S00046.accmap  +++|
00047  M01S00047.accmap  +++|      DEF  LISTCON   #0#;      # DO NOT LIST COMMON DECKS #
00048  M01S00048.accmap  +++|*CALL COMBFAS
00049  M01S00049.accmap  +++|*CALL COMBCMD
00050  M01S00050.accmap  +++|*CALL COMBCMS
00051  M01S00051.accmap  +++|*CALL COMBFET
00052  M01S00052.accmap  +++|*CALL COMBMAP
00053  M01S00053.accmap  +++|*CALL COMBMCT
00054  M01S00054.accmap  +++|*CALL COMXMSC
00055  M01S00055.accmap  +++|*CALL COMSPFM
00056  M01S00056.accmap  +++|
00057  M01S00057.accmap  +++|      ITEM BFWA       U;             # WORD ADDRESS OF FIRST ENTRY
00058  M01S00058.accmap  +++|                                       IN BUFFER  #
00059  M01S00059.accmap  +++|      ITEM DWA        U;             # WORD ADDRESS OF DESIRED ENTRY #
00060  M01S00060.accmap  +++|      ITEM PRUNUM     U;             # *PRU* NUMBER WHERE *XY* ENTRY
00061  M01S00061.accmap  +++|                                       RESIDES  #
00062  M01S00062.accmap  +++|
00063  M01S00063.accmap  +++|
00064  M01S00064.accmap  +++|
00065  M01S00065.accmap  +++|
00066  M01S00066.accmap  +++|
00067  M01S00067.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00068  M01S00068.accmap  +++|
00069  M01S00069.accmap  +++|#
00070  M01S00070.accmap  +++|*     *XY* COORDINATE HAS TO BE 1 -  352.
00071  M01S00071.accmap  +++|#
00072  M01S00072.accmap  +++|
00073  M01S00073.accmap  +++|      IF ORDINAL LQ 0 OR ORDINAL GR MAXORD
00074  M01S00074.accmap  +++|      THEN
00075  M01S00075.accmap  +++|        BEGIN
00076  M01S00076.accmap  +++|        RSTATUS = CMASTAT"ORDERR";
00077  M01S00077.accmap  +++|        RETURN;
00078  M01S00078.accmap  +++|        END
00079  M01S00079.accmap  +++|
00080  M01S00080.accmap  +++|#
00081  M01S00081.accmap  +++|*     COMPUTE
00082  M01S00082.accmap  +++|*       DWA - WORD ADDRESS IN MAP OF DESIRED MAP ENTRY.
00083  M01S00083.accmap  +++|*       BFWA - WORD ADDRESS OF FIRST ENTRY IN BUFFER.
00084  M01S00084.accmap  +++|#
00085  M01S00085.accmap  +++|
00086  M01S00086.accmap  +++|      DWA = ORDINAL * MAPENTL;
00087  M01S00087.accmap  +++|      BFWA = (MB$PRUNUM[0] - 1) * PRULEN;
00088  M01S00088.accmap  +++|
00089  M01S00089.accmap  +++|#
00090  M01S00090.accmap  +++|*     ENSURE DESIRED ENTRY IS IN THE BUFFER.
00091  M01S00091.accmap  +++|#
00092  M01S00092.accmap  +++|
00093  M01S00093.accmap  +++|      IF MB$SMID[0] NQ SM$ID  OR MB$PRUNUM[0] EQ 0 # #
00094  M01S00094.accmap  +++|        OR BFWA GR DWA OR DWA GR (BFWA + MAPBUFL - MAPENTL)
00095  M01S00095.accmap  +++|      THEN
00096  M01S00096.accmap  +++|        BEGIN  # ENTRY NOT IN BUFFER #
00097  M01S00097.accmap  +++|        IF MB$BMF[0]
00098  M01S00098.accmap  +++|        THEN
00099  M01S00099.accmap  +++|          BEGIN
00100  M01S00100.accmap  +++|          MFLUSH;
00101  M01S00101.accmap  +++|          END
00102  M01S00102.accmap  +++|
00103  M01S00103.accmap  +++|        PRUNUM = (DWA/PRULEN) + 1;
00104  M01S00104.accmap  +++|        ZSETFET(MAPFADR,OMT$LFN[SM$ID],MAPBADR,MAPBUFL,RFETL);
00105  M01S00105.accmap  +++|        FET$R[0] = TRUE;
00106  M01S00106.accmap  +++|        FET$RR[0] = PRUNUM;
00107  M01S00107.accmap  +++|        FET$EP[0] = TRUE;
00108  M01S00108.accmap  +++|        READ(MAPFET,RCL);
00109  M01S00109.accmap  +++|        IF FET$AT[0] NQ 0
00110  M01S00110.accmap  +++|        THEN
00111  M01S00111.accmap  +++|          BEGIN
00112  M01S00112.accmap  +++|          MCLOSE(ORDINAL);
00113  M01S00113.accmap  +++|          RSTATUS = CMASTAT"CIOERR";
00114  M01S00114.accmap  +++|          RETURN;
00115  M01S00115.accmap  +++|          END
00116  M01S00116.accmap  +++|
00117  M01S00117.accmap  +++|        MB$PRUNUM[0] = PRUNUM;
00118  M01S00118.accmap  +++|        MB$SMID[0] = SM$ID;
00119  M01S00119.accmap  +++|        MB$LFN[0] = OMT$LFN[SM$ID];
00120  M01S00120.accmap  +++|        BFWA = (PRUNUM - 1) * PRULEN;
00121  M01S00121.accmap  +++|        END  # ENTRY NOT IN BUFFER #
00122  M01S00122.accmap  +++|
00123  M01S00123.accmap  +++|      OFFSET = (DWA - BFWA);
00124  M01S00124.accmap  +++|      RETURN;
00125  M01S00125.accmap  +++|      END  # MBUFMAN #
00126  M01S00126.accmap  +++|
00127  M01S00127.accmap  +++|    TERM
00128  M01S00128.accmap  +++|PROC MCLOSE((SM$ID),RSTATUS);
00129  M01S00129.accmap  +++|# TITLE MCLOSE - TERMINATE MAP REFERENCE BY CALLER.                   #
00130  M01S00130.accmap  +++|      BEGIN  # MCLOSE  #
00131  M01S00131.accmap  +++|
00132  M01S00132.accmap  +++|#
00133  M01S00133.accmap  +++|**    MCLOSE - INDICATES TERMINATION OF MAP REFERENCES BY CALLER.
00134  M01S00134.accmap  +++|*
00135  M01S00135.accmap  +++|*     MCLOSE - IS CALLED BY  DBCMAP,DBFLAG,DBRDSTM,MBUFMAN,MOPEN,
00136  M01S00136.accmap  +++|*              TERMCAT,USRPC,VLSUBFM.
00137  M01S00137.accmap  +++|*
00138  M01S00138.accmap  +++|*     PROC MCLOSE (SM$ID,RSTATUS)
00139  M01S00139.accmap  +++|*
00140  M01S00140.accmap  +++|*     ENTRY     SM$ID  - *SM* NUMBER FROM CALLER.
00141  M01S00141.accmap  +++|*
00142  M01S00142.accmap  +++|*     EXIT      RSTATUS - ERROR STATUS.
00143  M01S00143.accmap  +++|*                         (VALUES DEFINED IN *COMBCMS*)
00144  M01S00144.accmap  +++|*                         = NO ERRORS.
00145  M01S00145.accmap  +++|*                         = MAP NOT OPEN.
00146  M01S00146.accmap  +++|*
00147  M01S00147.accmap  +++|#
00148  M01S00148.accmap  +++|
00149  M01S00149.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER FROM CALLER  #
00150  M01S00150.accmap  +++|      ITEM RSTATUS    U;             # ERROR STATUS RETURNED  #
00151  M01S00151.accmap  +++|
00152  M01S00152.accmap  +++|#
00153  M01S00153.accmap  +++|****  PROC MCLOSE - XREF LIST BEGIN.
00154  M01S00154.accmap  +++|#
00155  M01S00155.accmap  +++|
00156  M01S00156.accmap  +++|      XREF
00157  M01S00157.accmap  +++|        BEGIN
00158  M01S00158.accmap  +++|        PROC MFLUSH;                 # FLUSH MAP TO FILE  #
00159  M01S00159.accmap  +++|        PROC RETERN;                 # INTERFACE TO *RETURN* MACRO  #
00160  M01S00160.accmap  +++|        PROC ZSETFET;                # INITIALIZES A *FET* FOR *I/O* #
00161  M01S00161.accmap  +++|        END
00162  M01S00162.accmap  +++|
00163  M01S00163.accmap  +++|#
00164  M01S00164.accmap  +++|****  PROC MCLOSE - EXREF LIST END.
00165  M01S00165.accmap  +++|#
00166  M01S00166.accmap  +++|
00167  M01S00167.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING #
00168  M01S00168.accmap  +++|*CALL COMBFAS
00169  M01S00169.accmap  +++|*CALL COMBCMD
00170  M01S00170.accmap  +++|*CALL COMBCMS
00171  M01S00171.accmap  +++|*CALL COMBFET
00172  M01S00172.accmap  +++|*CALL COMBMCT
00173  M01S00173.accmap  +++|*CALL COMXMSC
00174  M01S00174.accmap  +++|*CALL COMSPFM
00175  M01S00175.accmap  +++|
00176  M01S00176.accmap  +++|
00177  M01S00177.accmap  +++|
00178  M01S00178.accmap  +++|
00179  M01S00179.accmap  +++|
00180  M01S00180.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00181  M01S00181.accmap  +++|
00182  M01S00182.accmap  +++|#
00183  M01S00183.accmap  +++|*     MAP HAS TO BE OPEN.
00184  M01S00184.accmap  +++|#
00185  M01S00185.accmap  +++|
00186  M01S00186.accmap  +++|      IF NOT OMT$OPEN[SM$ID]
00187  M01S00187.accmap  +++|      THEN
00188  M01S00188.accmap  +++|        BEGIN
00189  M01S00189.accmap  +++|        RSTATUS = CMASTAT"NOTOPEN";
00190  M01S00190.accmap  +++|        RETURN;
00191  M01S00191.accmap  +++|        END
00192  M01S00192.accmap  +++|
00193  M01S00193.accmap  +++|#
00194  M01S00194.accmap  +++|*     CLEAR *OMT* ENTRY IF INTERLOCKED.
00195  M01S00195.accmap  +++|#
00196  M01S00196.accmap  +++|
00197  M01S00197.accmap  +++|      IF OMT$INTLK[SM$ID]
00198  M01S00198.accmap  +++|      THEN
00199  M01S00199.accmap  +++|        BEGIN
00200  M01S00200.accmap  +++|        OMT$OPEN[SM$ID] = FALSE;
00201  M01S00201.accmap  +++|        OMT$INTLK[SM$ID] = FALSE;
00202  M01S00202.accmap  +++|        RETURN;
00203  M01S00203.accmap  +++|        END
00204  M01S00204.accmap  +++|
00205  M01S00205.accmap  +++|
00206  M01S00206.accmap  +++|#
00207  M01S00207.accmap  +++|*     FLUSH BUFFER IF *MODIFY* MODE.
00208  M01S00208.accmap  +++|#
00209  M01S00209.accmap  +++|
00210  M01S00210.accmap  +++|      IF MB$SMID[0] EQ SM$ID AND OMT$ATTM[SM$ID] EQ "M"
00211  M01S00211.accmap  +++|      THEN
00212  M01S00212.accmap  +++|        BEGIN
00213  M01S00213.accmap  +++|        MFLUSH;
00214  M01S00214.accmap  +++|        END
00215  M01S00215.accmap  +++|
00216  M01S00216.accmap  +++|#
00217  M01S00217.accmap  +++|*     SET UP *FET* AND RETURN THE FILE.
00218  M01S00218.accmap  +++|#
00219  M01S00219.accmap  +++|
00220  M01S00220.accmap  +++|      ZSETFET(MAPFADR,OMT$LFN[SM$ID],MAPBADR,MAPBUFL,RFETL);
00221  M01S00221.accmap  +++|      RETERN(MAPFET,RCL);
00222  M01S00222.accmap  +++|      OMT$OPEN[SM$ID] = FALSE;
00223  M01S00223.accmap  +++|      RETURN;
00224  M01S00224.accmap  +++|      END  # MCLOSE  #
00225  M01S00225.accmap  +++|
00226  M01S00226.accmap  +++|    TERM
00227  M01S00227.accmap  +++|PROC MFLUSH;
00228  M01S00228.accmap  +++|# TITLE MFLUSH - FLUSH MAP TO FILE.                                   #
00229  M01S00229.accmap  +++|      BEGIN  # MFLUSH  #
00230  M01S00230.accmap  +++|
00231  M01S00231.accmap  +++|#
00232  M01S00232.accmap  +++|**    MFLUSH - ENSURES THAT THE RESULTS OF ANY PREVIOUS *MPUTENT*
00233  M01S00233.accmap  +++|*              REQUESTS ARE WRITTEN TO THE MAP FILE.
00234  M01S00234.accmap  +++|*
00235  M01S00235.accmap  +++|*
00236  M01S00236.accmap  +++|*     MFLUSH - IS CALLED BY ADDCAR,ADDCUBE,MBUFMAN,MCLOSE,MRELSLK,
00237  M01S00237.accmap  +++|*              RVMCAR,RVMCUBE.
00238  M01S00238.accmap  +++|*
00239  M01S00239.accmap  +++|*     PROC MFLUSH
00240  M01S00240.accmap  +++|*
00241  M01S00241.accmap  +++|#
00242  M01S00242.accmap  +++|
00243  M01S00243.accmap  +++|#
00244  M01S00244.accmap  +++|****  PROC MFLUSH - XREF LIST BEGIN.
00245  M01S00245.accmap  +++|#
00246  M01S00246.accmap  +++|
00247  M01S00247.accmap  +++|      XREF
00248  M01S00248.accmap  +++|        BEGIN
00249  M01S00249.accmap  +++|        PROC REWRITE;                # INTERFACE TO *REWRITE* MACRO  #
00250  M01S00250.accmap  +++|        PROC REWRITR;             # INTERFACE #
00251  M01S00251.accmap  +++|        END
00252  M01S00252.accmap  +++|
00253  M01S00253.accmap  +++|#
00254  M01S00254.accmap  +++|****  PROC MFLUSH - EXREF LIST END.
00255  M01S00255.accmap  +++|#
00256  M01S00256.accmap  +++|
00257  M01S00257.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING  #
00258  M01S00258.accmap  +++|*CALL COMBFAS
00259  M01S00259.accmap  +++|*CALL COMBCMD
00260  M01S00260.accmap  +++|*CALL COMBCMS
00261  M01S00261.accmap  +++|*CALL COMBFET
00262  M01S00262.accmap  +++|*CALL COMBMAP
00263  M01S00263.accmap  +++|*CALL COMBMCT
00264  M01S00264.accmap  +++|*CALL COMXMSC
00265  M01S00265.accmap  +++|*CALL COMSPFM
00266  M01S00266.accmap  +++|
00267  M01S00267.accmap  +++|
00268  M01S00268.accmap  +++|
00269  M01S00269.accmap  +++|
00270  M01S00270.accmap  +++|
00271  M01S00271.accmap  +++|#
00272  M01S00272.accmap  +++|*     IF BUFFER NOT MODIFIED, EXIT.
00273  M01S00273.accmap  +++|#
00274  M01S00274.accmap  +++|
00275  M01S00275.accmap  +++|      IF NOT MB$BMF[0]
00276  M01S00276.accmap  +++|      THEN
00277  M01S00277.accmap  +++|        BEGIN
00278  M01S00278.accmap  +++|        IF OMT$ATTM[MB$SMID[0]] NQ "M"
00279  M01S00279.accmap  +++|        THEN
00280  M01S00280.accmap  +++|          BEGIN
00281  M01S00281.accmap  +++|          MB$CWRD[0] = 0;
00282  M01S00282.accmap  +++|          END
00283  M01S00283.accmap  +++|
00284  M01S00284.accmap  +++|        RETURN;
00285  M01S00285.accmap  +++|        END
00286  M01S00286.accmap  +++|
00287  M01S00287.accmap  +++|#
00288  M01S00288.accmap  +++|*     REWRITE MAP BUFFER TO THE FILE.
00289  M01S00289.accmap  +++|#
00290  M01S00290.accmap  +++|
00291  M01S00291.accmap  +++|      P<FETSET> = MAPFADR;
00292  M01S00292.accmap  +++|      FET$R[0] = TRUE;
00293  M01S00293.accmap  +++|      FET$RR[0] = MB$PRUNUM[0];
00294  M01S00294.accmap  +++|      FET$EP[0] = TRUE;
00295  M01S00295.accmap  +++|      FET$LFN[0] = MB$LFN[0];
00296  M01S00296.accmap  +++|      IF MB$PRUNUM[0] EQ 17
00297  M01S00297.accmap  +++|      THEN                         # PARTIAL PRU #
00298  M01S00298.accmap  +++|        BEGIN
00299  M01S00299.accmap  +++|        REWRITR(MAPFET,RCL);
00300  M01S00300.accmap  +++|        END
00301  M01S00301.accmap  +++|
00302  M01S00302.accmap  +++|      ELSE
00303  M01S00303.accmap  +++|        BEGIN
00304  M01S00304.accmap  +++|        IF MB$PRUNUM[0] EQ 16
00305  M01S00305.accmap  +++|        THEN                         # PARTIAL PRU STILL REMAINS #
00306  M01S00306.accmap  +++|          BEGIN
00307  M01S00307.accmap  +++|          REWRITE(MAPFET,RCL);
00308  M01S00308.accmap  +++|          FET$RR[0] = 17;
00309  M01S00309.accmap  +++|          REWRITR(MAPFET,RCL);
00310  M01S00310.accmap  +++|          END
00311  M01S00311.accmap  +++|
00312  M01S00312.accmap  +++|        ELSE
00313  M01S00313.accmap  +++|          BEGIN
00314  M01S00314.accmap  +++|          REWRITE(MAPFET,RCL);
00315  M01S00315.accmap  +++|          END
00316  M01S00316.accmap  +++|        END
00317  M01S00317.accmap  +++|
00318  M01S00318.accmap  +++|      P<FETSET> = TFETADR;
00319  M01S00319.accmap  +++|      MB$CWRD[0] = 0;
00320  M01S00320.accmap  +++|      RETURN;
00321  M01S00321.accmap  +++|      END  # MFLUSH  #
00322  M01S00322.accmap  +++|
00323  M01S00323.accmap  +++|    TERM
00324  M01S00324.accmap  +++|PROC MGETENT ((SM$ID),(ORDINAL),(MAPADR),RSTATUS);
00325  M01S00325.accmap  +++|# TITLE MGETENT - RETURN THE MAP ENTRY TO THE CALLER.                 #
00326  M01S00326.accmap  +++|      BEGIN  # MGETENT  #
00327  M01S00327.accmap  +++|
00328  M01S00328.accmap  +++|#
00329  M01S00329.accmap  +++|**    MGETENT - RETURNS THE REQUESTED MAP ENTRY TO THE CALLERS
00330  M01S00330.accmap  +++|*               MEMORY SPACE.
00331  M01S00331.accmap  +++|*
00332  M01S00332.accmap  +++|*     MGETENT - IS CALLED BY ADDCAR,ADDCUBE,DBCMAP,DBFLAG,
00333  M01S00333.accmap  +++|*               DBVSN,MSFINIT,RMVCAR,RMVCUBE,SERCSU,USRPG,VLCMAP,
00334  M01S00334.accmap  +++|*               VLCSUSC.
00335  M01S00335.accmap  +++|*
00336  M01S00336.accmap  +++|*
00337  M01S00337.accmap  +++|*     PROC MGETENT (SM$ID,ORDINAL,MAPADR,RSTATUS)
00338  M01S00338.accmap  +++|*
00339  M01S00339.accmap  +++|*     ENTRY     SM$ID   - *SM* NUMBER.
00340  M01S00340.accmap  +++|*               ORDINAL  - *XY* COORDINATE ORDINAL.
00341  M01S00341.accmap  +++|*               MAPADR   - ADDRESS OF ENTRY DESTINATION.
00342  M01S00342.accmap  +++|*
00343  M01S00343.accmap  +++|*     EXIT      (MAPADR) - MAP ENTRY.
00344  M01S00344.accmap  +++|*               RSTATUS  - ERROR STATUS.
00345  M01S00345.accmap  +++|*                          (VALUES DEFINED IN *COMBCMS*)
00346  M01S00346.accmap  +++|*                          = NO ERRORS.
00347  M01S00347.accmap  +++|*                          = MAP INTERLOCKED.
00348  M01S00348.accmap  +++|*                          = MAP NOT OPEN.
00349  M01S00349.accmap  +++|*                          = *CIO* ERROR.
00350  M01S00350.accmap  +++|*                          = MAP ORDINAL OUT OF RANGE.
00351  M01S00351.accmap  +++|#
00352  M01S00352.accmap  +++|
00353  M01S00353.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER  #
00354  M01S00354.accmap  +++|      ITEM ORDINAL    U;             # *XY* COORDINATE ORDINAL  #
00355  M01S00355.accmap  +++|      ITEM MAPADR     U;             # ENTRY DESTINATION  #
00356  M01S00356.accmap  +++|      ITEM RSTATUS    U;             # STATUS RETURNED TO CALLER  #
00357  M01S00357.accmap  +++|
00358  M01S00358.accmap  +++|#
00359  M01S00359.accmap  +++|****  PROC MGETENT - XREF LIST BEGIN.
00360  M01S00360.accmap  +++|#
00361  M01S00361.accmap  +++|
00362  M01S00362.accmap  +++|      XREF
00363  M01S00363.accmap  +++|        BEGIN
00364  M01S00364.accmap  +++|        PROC MBUFMAN;                # GET ENTRY OFFSET  #
00365  M01S00365.accmap  +++|        END
00366  M01S00366.accmap  +++|
00367  M01S00367.accmap  +++|#
00368  M01S00368.accmap  +++|****  PROC MGETENT - EXREF LIST END.
00369  M01S00369.accmap  +++|#
00370  M01S00370.accmap  +++|
00371  M01S00371.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING  #
00372  M01S00372.accmap  +++|*CALL COMBFAS
00373  M01S00373.accmap  +++|*CALL COMBCMD
00374  M01S00374.accmap  +++|*CALL COMBCMS
00375  M01S00375.accmap  +++|*CALL COMBMAP
00376  M01S00376.accmap  +++|
00377  M01S00377.accmap  +++|      ITEM I          I;             # INDUCTION VARIABLE  #
00378  M01S00378.accmap  +++|      ITEM OFFSET     U;             # RELATIVE LOCATION OF *XY* IN
00379  M01S00379.accmap  +++|                                       BUFFER  #
00380  M01S00380.accmap  +++|
00381  M01S00381.accmap  +++|      BASED
00382  M01S00382.accmap  +++|      ARRAY MENTRY [0:0] P(1);
00383  M01S00383.accmap  +++|        BEGIN
00384  M01S00384.accmap  +++|        ITEM ENT$WRD    U(00,00,60);  # ENTRY WORD  #
00385  M01S00385.accmap  +++|        END
00386  M01S00386.accmap  +++|
00387  M01S00387.accmap  +++|
00388  M01S00388.accmap  +++|
00389  M01S00389.accmap  +++|
00390  M01S00390.accmap  +++|
00391  M01S00391.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00392  M01S00392.accmap  +++|
00393  M01S00393.accmap  +++|#
00394  M01S00394.accmap  +++|*     RETURN ERROR IF FILE INTERLOCKED.
00395  M01S00395.accmap  +++|#
00396  M01S00396.accmap  +++|
00397  M01S00397.accmap  +++|      IF OMT$INTLK[SM$ID]
00398  M01S00398.accmap  +++|      THEN
00399  M01S00399.accmap  +++|        BEGIN
00400  M01S00400.accmap  +++|        RSTATUS = CMASTAT"INTLK";
00401  M01S00401.accmap  +++|        RETURN;
00402  M01S00402.accmap  +++|        END
00403  M01S00403.accmap  +++|
00404  M01S00404.accmap  +++|#
00405  M01S00405.accmap  +++|*     MAP FILE HAS TO BE OPEN.
00406  M01S00406.accmap  +++|#
00407  M01S00407.accmap  +++|
00408  M01S00408.accmap  +++|      IF NOT OMT$OPEN[SM$ID]
00409  M01S00409.accmap  +++|      THEN
00410  M01S00410.accmap  +++|        BEGIN
00411  M01S00411.accmap  +++|        RSTATUS = CMASTAT"NOTOPEN";
00412  M01S00412.accmap  +++|        RETURN;
00413  M01S00413.accmap  +++|        END
00414  M01S00414.accmap  +++|
00415  M01S00415.accmap  +++|#
00416  M01S00416.accmap  +++|*     GET OFFSET OF ENTRY IN BUFFER.
00417  M01S00417.accmap  +++|#
00418  M01S00418.accmap  +++|
00419  M01S00419.accmap  +++|      MBUFMAN(SM$ID,ORDINAL,OFFSET,RSTATUS);
00420  M01S00420.accmap  +++|      IF RSTATUS NQ 0
00421  M01S00421.accmap  +++|      THEN
00422  M01S00422.accmap  +++|        BEGIN
00423  M01S00423.accmap  +++|        RETURN;
00424  M01S00424.accmap  +++|        END
00425  M01S00425.accmap  +++|
00426  M01S00426.accmap  +++|#
00427  M01S00427.accmap  +++|*     TRANSFER ENTRY TO CALLER.
00428  M01S00428.accmap  +++|#
00429  M01S00429.accmap  +++|
00430  M01S00430.accmap  +++|      P<MENTRY> = MAPADR;
00431  M01S00431.accmap  +++|      P<MAPBUF> = MAPBADR;
00432  M01S00432.accmap  +++|      FASTFOR I = 1 STEP 1 UNTIL MAPENTL
00433  M01S00433.accmap  +++|      DO
00434  M01S00434.accmap  +++|        BEGIN
00435  M01S00435.accmap  +++|        ENT$WRD[I - 1] = MAPB$W[OFFSET + I];
00436  M01S00436.accmap  +++|        END
00437  M01S00437.accmap  +++|
00438  M01S00438.accmap  +++|      RETURN;
00439  M01S00439.accmap  +++|      END  # MGETENT #
00440  M01S00440.accmap  +++|
00441  M01S00441.accmap  +++|    TERM
00442  M01S00442.accmap  +++|PROC MINIT ((LFN),(SM$ID),RSTATUS);
00443  M01S00443.accmap  +++|# TITLE MINIT - INITIALIZE A *SMU* MAP.                               #
00444  M01S00444.accmap  +++|      BEGIN  # MINIT #
00445  M01S00445.accmap  +++|
00446  M01S00446.accmap  +++|#
00447  M01S00447.accmap  +++|**    MINIT - INITIALIZE A *SMMAP* TO INDICATE CARTRIDGES ARE
00448  M01S00448.accmap  +++|*             EITHER:
00449  M01S00449.accmap  +++|*                  1. NON EXISTENT (NO CUBES)
00450  M01S00450.accmap  +++|*                  2. RESERVED FOR CE USE OR
00451  M01S00451.accmap  +++|*                  3. UNASSIGNED
00452  M01S00452.accmap  +++|*                  4. RESERVED FOR SYSTEM USE
00453  M01S00453.accmap  +++|*
00454  M01S00454.accmap  +++|*              THE PREAMBLE OF THE FILE WHICH CONTAINS THE MAP AND
00455  M01S00455.accmap  +++|*              OTHER FIELDS IN THE MAP ARE APPROPRIATELY FILLED IN
00456  M01S00456.accmap  +++|*              WITH ZEROES OR SPACES.
00457  M01S00457.accmap  +++|*
00458  M01S00458.accmap  +++|*
00459  M01S00459.accmap  +++|*     MINIT - IS CALLED BY SSDEF FOR EACH SM THAT SSDF CREATES.
00460  M01S00460.accmap  +++|*
00461  M01S00461.accmap  +++|*     PROC MINIT(LFN,RSTATUS)
00462  M01S00462.accmap  +++|*
00463  M01S00463.accmap  +++|*     ENTRY     LFN     - MAP FILE NAME.
00464  M01S00464.accmap  +++|*
00465  M01S00465.accmap  +++|*     EXIT      RSTATUS - ERROR STATUS.
00466  M01S00466.accmap  +++|*                         (VALUES DEFINED IN *COMBCMS*)
00467  M01S00467.accmap  +++|*                         = NO ERRORS.
00468  M01S00468.accmap  +++|*                         = MAP ALREADY EXISTS.
00469  M01S00469.accmap  +++|*                         = *CIO* ERROR.
00470  M01S00470.accmap  +++|*                         = MAP DEFINE ERROR.
00471  M01S00471.accmap  +++|#
00472  M01S00472.accmap  +++|
00473  M01S00473.accmap  +++|      ITEM LFN        C(6);         # NAME OF MAP FILE #
00474  M01S00474.accmap  +++|      ITEM SM$ID      U;             # *SM* NUMBER #
00475  M01S00475.accmap  +++|      ITEM RSTATUS    I;             # ERROR STATUS #
00476  M01S00476.accmap  +++|
00477  M01S00477.accmap  +++|#
00478  M01S00478.accmap  +++|****  PROC MINIT - XREF LIST BEGIN.
00479  M01S00479.accmap  +++|#
00480  M01S00480.accmap  +++|
00481  M01S00481.accmap  +++|      XREF
00482  M01S00482.accmap  +++|        BEGIN
00483  M01S00483.accmap  +++|        PROC PFD;                    # PERMANENT FILE REQUEST DELAYS #
00484  M01S00484.accmap  +++|        PROC RETERN;                 # INTERFACE TO *RETURN* MACRO  #
00485  M01S00485.accmap  +++|        PROC WRITER;                 # INTERFACE TO *WRITER* MACRO  #
00486  M01S00486.accmap  +++|        PROC WRITEW;                 # INTERFACE TO *WRITEW* MACRO  #
00487  M01S00487.accmap  +++|        PROC ZSETFET;                # INITIALIZES A *FET* FOR *I/O* #
00488  M01S00488.accmap  +++|        END
00489  M01S00489.accmap  +++|
00490  M01S00490.accmap  +++|#
00491  M01S00491.accmap  +++|****  PROC MINIT - EXREF LIST END.
00492  M01S00492.accmap  +++|#
00493  M01S00493.accmap  +++|
00494  M01S00494.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING  #
00495  M01S00495.accmap  +++|*CALL COMBFAS
00496  M01S00496.accmap  +++|*CALL COMBCMD
00497  M01S00497.accmap  +++|*CALL COMBCMS
00498  M01S00498.accmap  +++|*CALL COMBFET
00499  M01S00499.accmap  +++|*CALL COMBMAP
00500  M01S00500.accmap  +++|*CALL COMBMCT
00501  M01S00501.accmap  +++|*CALL COMBPFS
00502  M01S00502.accmap  +++|*CALL COMXMSC
00503  M01S00503.accmap  +++|*CALL COMSPFM
00504  M01S00504.accmap  +++|
00505  M01S00505.accmap  +++|
00506  M01S00506.accmap  +++|      ITEM ZI         U;             # *Z* COUNTER FOR ORDINAL
00507  M01S00507.accmap  +++|                                       CALCULATION  #
00508  M01S00508.accmap  +++|      ITEM YI         U;             # *Y* COUNTER FOR ORDINAL
00509  M01S00509.accmap  +++|                                       CALCULATION  #
00510  M01S00510.accmap  +++|      ITEM MAPORD     U;             # ORDINAL OF CARTRIDGE IN MAP  #
00511  M01S00511.accmap  +++|      ITEM WRITESTAT  U;             # STATUS FROM *WRITEW* MACRO  #
00512  M01S00512.accmap  +++|
00513  M01S00513.accmap  +++|#
00514  M01S00514.accmap  +++|*     DEFINITION OF A MAP ENTRY WHICH IS USED
00515  M01S00515.accmap  +++|*     TO INITIALIZE A MAP FILE.
00516  M01S00516.accmap  +++|#
00517  M01S00517.accmap  +++|
00518  M01S00518.accmap  +++|      ARRAY SMUENTRY [0:0] P(MAPENTL); # CHANGE LINES 2032,2035,2099 #
00519  M01S00519.accmap  +++|        BEGIN
00520  M01S00520.accmap  +++|        ITEM FILLWRD1   U(00,00,60) = [O"0000 0055 5555 5555 5555"];
00521  M01S00521.accmap  +++|        ITEM FILLWRD2  U(01,00,60);
00522  M01S00522.accmap  +++|        ITEM FILLWRD3  U(02,00,60) = [O"0000 5555 5555 5555 5555"];
00523  M01S00523.accmap  +++|        END
00524  M01S00524.accmap  +++|
00525  M01S00525.accmap  +++|
00526  M01S00526.accmap  +++|
00527  M01S00527.accmap  +++|
00528  M01S00528.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00529  M01S00529.accmap  +++|#
00530  M01S00530.accmap  +++|*     DEFINE A PERMANENT FILE FOR THE MAP.
00531  M01S00531.accmap  +++|#
00532  M01S00532.accmap  +++|
00533  M01S00533.accmap  +++|      PFD("DEFINE",LFN,0,"BR","Y","RC",PFSTAT,"UP",0,0);
00534  M01S00534.accmap  +++|      IF PFSTAT NQ 0
00535  M01S00535.accmap  +++|      THEN
00536  M01S00536.accmap  +++|        BEGIN
00537  M01S00537.accmap  +++|        IF PFSTAT EQ FAP
00538  M01S00538.accmap  +++|        THEN
00539  M01S00539.accmap  +++|          BEGIN
00540  M01S00540.accmap  +++|          RSTATUS = CMASTAT"INTLZD";
00541  M01S00541.accmap  +++|          END
00542  M01S00542.accmap  +++|
00543  M01S00543.accmap  +++|        ELSE
00544  M01S00544.accmap  +++|          BEGIN
00545  M01S00545.accmap  +++|          RSTATUS = CMASTAT"DEFERR";
00546  M01S00546.accmap  +++|          END
00547  M01S00547.accmap  +++|
00548  M01S00548.accmap  +++|        RETURN;
00549  M01S00549.accmap  +++|        END
00550  M01S00550.accmap  +++|
00551  M01S00551.accmap  +++|#
00552  M01S00552.accmap  +++|*     INITIALIZE A *SMUMAP* FET.
00553  M01S00553.accmap  +++|#
00554  M01S00554.accmap  +++|
00555  M01S00555.accmap  +++|      ZSETFET (MAPFADR,LFN,MAPBADR,MAPBUFL,RFETL);
00556  M01S00556.accmap  +++|      FET$EP[0] =TRUE;
00557  M01S00557.accmap  +++|
00558  M01S00558.accmap  +++|#
00559  M01S00559.accmap  +++|*     INITIALIZE THE PREAMBLE FOR THE MAP FILE.
00560  M01S00560.accmap  +++|#
00561  M01S00561.accmap  +++|
00562  M01S00562.accmap  +++|      P<SMUMAP> = LOC(SMUENTRY); # CHANGE CSUMAP TO SMUMAP #
00563  M01S00563.accmap  +++|      CM$CODE[0] = CUBSTAT"NOCUBE";
00564  M01S00564.accmap  +++|      CM$SMID = SM$ID;
00565  M01S00565.accmap  +++|      WRITEW(MAPFET,SMUENTRY,MAPENTL,WRITESTAT);
00566  M01S00566.accmap  +++|      IF FET$AT[0] NQ 0
00567  M01S00567.accmap  +++|      THEN
00568  M01S00568.accmap  +++|        BEGIN
00569  M01S00569.accmap  +++|        RSTATUS = CMASTAT"CIOERR";
00570  M01S00570.accmap  +++|        RETERN(MAPFET);
00571  M01S00571.accmap  +++|        RETURN;
00572  M01S00572.accmap  +++|        END
00573  M01S00573.accmap  +++|
00574  M01S00574.accmap  +++|
00575  M01S00575.accmap  +++|#
00576  M01S00576.accmap  +++|*     PREPARE A BUFFER FOR THE FILE.
00577  M01S00577.accmap  +++|*     DATA IS MOVED INTO THE CIRCULAR BUFFER IN ORDINAL FASHION BY
00578  M01S00578.accmap  +++|*     EXECUTING A DRECEMENTING * DO*  LOOP FOR * Z*  INSIDE A
00579  M01S00579.accmap  +++|*     *DO* LOOP FOR *Y*.  THIS IS EQUIVALENT TO THE ORDINAL
00580  M01S00580.accmap  +++|*     CALCULATION DESCRIBED BY NOCUBES-Z-(Y-MAX$Z).
00581  M01S00581.accmap  +++|#
00582  M01S00582.accmap  +++|
00583  M01S00583.accmap  +++|
00584  M01S00584.accmap  +++|# CHANGE LINES 2054 THROUGH 2110 #
00585  M01S00585.accmap  +++|      FASTFOR YI = MAX$Y STEP -1 UNTIL 0
00586  M01S00586.accmap  +++|      DO
00587  M01S00587.accmap  +++|        BEGIN  # YI DO #
00588  M01S00588.accmap  +++|        FASTFOR ZI = MAX$Z STEP -1 UNTIL 0
00589  M01S00589.accmap  +++|        DO
00590  M01S00590.accmap  +++|          BEGIN  # ZI DO #
00591  M01S00591.accmap  +++|          CM$CODE[0] = CUBSTAT"UNASGN";
00592  M01S00592.accmap  +++|
00593  M01S00593.accmap  +++|#
00594  M01S00594.accmap  +++|*      THERE ARE NO CUBICLES FOR CARTRIDGES AT *Z* = 6 BECAUSE
00595  M01S00595.accmap  +++|*      THE DRDS RESIDE IN THIS AREA. THERE ARE NO CUBICLES
00596  M01S00596.accmap  +++|*      AT THE FOLLOWING COORDINATES: *Z* = 0 *Y* = 15,
00597  M01S00597.accmap  +++|*      *Z* = 1  *Y* = 15, *Z* = 0 *Y* = 14, *Z* = 1 *Y* = 14,
00598  M01S00598.accmap  +++|*      *Z* = 0  *Y* = 13, *Z* = 1 *Y* = 13, *Z* = 0 *Y* = 12,
00599  M01S00599.accmap  +++|*      *Z* = 1  *Y* = 12, *Z* = 0 *Y* = 11, *Z* = 1 *Y* = 11.
00600  M01S00600.accmap  +++|*      THERE ARE NO CUBLICLES IN  THE PREVIOUSLY LISTED COORDINATES
00601  M01S00601.accmap  +++|*      BECAUSE THE ENTRY TRAY IS PHYSICALLY LOCATED AT THESE LOCATIONS.
00602  M01S00602.accmap  +++|#
00603  M01S00603.accmap  +++|
00604  M01S00604.accmap  +++|          IF ZI EQ 6 OR (( YI LQ 15 AND YI GQ 11)
00605  M01S00605.accmap  +++|             AND (ZI EQ 0 OR ZI EQ 1))
00606  M01S00606.accmap  +++|          THEN
00607  M01S00607.accmap  +++|            BEGIN
00608  M01S00608.accmap  +++|            CM$CODE[0] = CUBSTAT"NOCUBE";
00609  M01S00609.accmap  +++|            END
00610  M01S00610.accmap  +++|
00611  M01S00611.accmap  +++|#
00612  M01S00612.accmap  +++|*     RESERVE *CE* CUBICLES.
00613  M01S00613.accmap  +++|#
00614  M01S00614.accmap  +++|
00615  M01S00615.accmap  +++|          IF ((YI EQ 0) AND ( ZI EQ 0 OR   ZI EQ 15))
00616  M01S00616.accmap  +++|             OR (( ZI EQ 15) AND ( YI EQ 11 OR YI EQ 21))
00617  M01S00617.accmap  +++|          THEN
00618  M01S00618.accmap  +++|            BEGIN
00619  M01S00619.accmap  +++|            CM$CODE[0] = CUBSTAT"CEUSE";
00620  M01S00620.accmap  +++|            END
00621  M01S00621.accmap  +++|
Line S00622 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00622  M02S00622.msea013 ---|
Line S00623 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00623  M02S00623.msea013 ---|#
Line S00624 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00624  M02S00624.msea013 ---|*     RESERVE SYSTEM CARTRIDGES.
Line S00625 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00625  M02S00625.msea013 ---|#
Line S00626 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00626  M02S00626.msea013 ---|
Line S00627 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00627  M02S00627.msea013 ---|          IF (( YI EQ 0) AND ( ZI EQ 1 OR ZI EQ 14 ))
Line S00628 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00628  M02S00628.msea013 ---|             OR (( YI EQ 21)  AND ( ZI EQ 0 OR ZI EQ 14))
Line S00629 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00629  M02S00629.msea013 ---|          THEN
Line S00630 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00630  M02S00630.msea013 ---|            BEGIN
Line S00631 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00631  M02S00631.msea013 ---|            CM$CODE[0] = CUBSTAT"SYSUSE";
Line S00632 Modification History
M01 (Added by) accmap
M02 (Updated by) msea013
Seq #  *Modification Id* Act 
----------------------------+
00632  M02S00632.msea013 ---|            END
00633  M01S00633.accmap  +++|
00634  M01S00634.accmap  +++|          WRITEW(MAPFET,SMUENTRY,MAPENTL,WRITESTAT);
00635  M01S00635.accmap  +++|          IF FET$AT[0] NQ 0
00636  M01S00636.accmap  +++|          THEN
00637  M01S00637.accmap  +++|            BEGIN
00638  M01S00638.accmap  +++|            RSTATUS = CMASTAT"CIOERR";
00639  M01S00639.accmap  +++|            RETERN(MAPFET);
00640  M01S00640.accmap  +++|            RETURN;
00641  M01S00641.accmap  +++|            END
00642  M01S00642.accmap  +++|
00643  M01S00643.accmap  +++|          END  # ZI DO  #
00644  M01S00644.accmap  +++|
00645  M01S00645.accmap  +++|        END  # YI DO  #
00646  M01S00646.accmap  +++|
00647  M01S00647.accmap  +++|#
00648  M01S00648.accmap  +++|*     FLUSH THE CIRCULAR BUFFER TO DISK.
00649  M01S00649.accmap  +++|#
00650  M01S00650.accmap  +++|
00651  M01S00651.accmap  +++|      WRITER(MAPFET,RCL);
00652  M01S00652.accmap  +++|      IF FET$AT[0] NQ 0
00653  M01S00653.accmap  +++|      THEN
00654  M01S00654.accmap  +++|        BEGIN
00655  M01S00655.accmap  +++|        RSTATUS = CMASTAT"CIOERR";
00656  M01S00656.accmap  +++|        END
00657  M01S00657.accmap  +++|
00658  M01S00658.accmap  +++|      RETERN(MAPFET);
00659  M01S00659.accmap  +++|      RETURN;
00660  M01S00660.accmap  +++|      END  # MINIT #
00661  M01S00661.accmap  +++|
00662  M01S00662.accmap  +++|    TERM
00663  M01S00663.accmap  +++|PROC MOPEN ((SM$ID),(LFN),(MODE),RSTATUS);
00664  M01S00664.accmap  +++|# TITLE MOPEN - ESTABLISH CALLER ACCESS TO MAP FILE.                  #
00665  M01S00665.accmap  +++|      BEGIN  # MOPEN  #
00666  M01S00666.accmap  +++|
00667  M01S00667.accmap  +++|#
00668  M01S00668.accmap  +++|**    MOPEN - PREPARES THE MAP FILE FOR SUBSEQUENT REFERENCES BY THE
00669  M01S00669.accmap  +++|*             CALLER.
00670  M01S00670.accmap  +++|*
00671  M01S00671.accmap  +++|*     MOPEN - IS CALLED BY USRPC,VLSUBSM.
00672  M01S00672.accmap  +++|*
00673  M01S00673.accmap  +++|*     PROC MOPEN (SM$ID,LFN,MODE,RSTATUS)
00674  M01S00674.accmap  +++|*
00675  M01S00675.accmap  +++|*     ENTRY     SM$ID   - *SM* NUMBER FOR THE MAP.
00676  M01S00676.accmap  +++|*               LFN     - NAME OF MAP FILE.
00677  M01S00677.accmap  +++|*               MODE    - FILE ATTACH MODE IN DISPLAY CODE.
00678  M01S00678.accmap  +++|*                         = *M*, MODIFY MODE.
00679  M01S00679.accmap  +++|*                         = *RM*, READ/ALLOW MODIFY MODE.
00680  M01S00680.accmap  +++|*
00681  M01S00681.accmap  +++|*     EXIT      RSTATUS - ERROR STATUS.
00682  M01S00682.accmap  +++|*                         (VALUES DEFINED IN *COMBCMS*)
00683  M01S00683.accmap  +++|*                         = NO ERRORS.
00684  M01S00684.accmap  +++|*                         = MAP INTERLOCKED.
00685  M01S00685.accmap  +++|*                         = MAP ALREADY OPEN.
00686  M01S00686.accmap  +++|*                         = *CIO* ERROR.
00687  M01S00687.accmap  +++|*                         = MAP ATTACH ERROR.
00688  M01S00688.accmap  +++|#
00689  M01S00689.accmap  +++|
00690  M01S00690.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER FOR MAP  #
00691  M01S00691.accmap  +++|      ITEM LFN        C(6);         # NAME OF MAP FILE #
00692  M01S00692.accmap  +++|      ITEM MODE       C(2);          # FILE ATTACH MODE #
00693  M01S00693.accmap  +++|      ITEM RSTATUS    U;             # ERROR STATUS RETURNED  #
00694  M01S00694.accmap  +++|
00695  M01S00695.accmap  +++|#
00696  M01S00696.accmap  +++|****  PROC MOPEN - XREF LIST BEGIN.
00697  M01S00697.accmap  +++|#
00698  M01S00698.accmap  +++|
00699  M01S00699.accmap  +++|
00700  M01S00700.accmap  +++|      XREF
00701  M01S00701.accmap  +++|        BEGIN
00702  M01S00702.accmap  +++|        PROC MCLOSE;                 # CLOSE MAP #
00703  M01S00703.accmap  +++|        PROC MFLUSH;                 # FLUSH MAP TO FILE  #
00704  M01S00704.accmap  +++|        PROC PFD;                    # PERMANENT FILE REQUEST DELAYS #
00705  M01S00705.accmap  +++|        PROC READ;                   # INTERFACE TO *READ* MACRO #
00706  M01S00706.accmap  +++|        PROC ZSETFET;                # INITIALIZES A *FET* FOR *I/O* #
00707  M01S00707.accmap  +++|        END
00708  M01S00708.accmap  +++|
00709  M01S00709.accmap  +++|#
00710  M01S00710.accmap  +++|****  PROC MOPEN - EXREF LIST END.
00711  M01S00711.accmap  +++|#
00712  M01S00712.accmap  +++|
00713  M01S00713.accmap  +++|
00714  M01S00714.accmap  +++|      DEF LISTCON #0#;               # NO LISTING OF COMMON DECKS  #
00715  M01S00715.accmap  +++|*CALL COMBFAS
00716  M01S00716.accmap  +++|*CALL COMBCMD
00717  M01S00717.accmap  +++|*CALL COMBCMS
00718  M01S00718.accmap  +++|*CALL COMBFET
00719  M01S00719.accmap  +++|*CALL COMBMAP
00720  M01S00720.accmap  +++|*CALL COMBMCT
00721  M01S00721.accmap  +++|*CALL COMBPFS
00722  M01S00722.accmap  +++|*CALL COMXCTF
00723  M01S00723.accmap  +++|*CALL COMXMSC
00724  M01S00724.accmap  +++|*CALL COMSPFM
00725  M01S00725.accmap  +++|
00726  M01S00726.accmap  +++|
00727  M01S00727.accmap  +++|      ITEM ZERO       U = 0;         # WORD OF ZERO  #
00728  M01S00728.accmap  +++|
00729  M01S00729.accmap  +++|
00730  M01S00730.accmap  +++|
00731  M01S00731.accmap  +++|
00732  M01S00732.accmap  +++|
00733  M01S00733.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00734  M01S00734.accmap  +++|      P<OMT> = OMTADR;
00735  M01S00735.accmap  +++|
00736  M01S00736.accmap  +++|#
00737  M01S00737.accmap  +++|*     RETURN ERROR IF FILE OPEN.
00738  M01S00738.accmap  +++|#
00739  M01S00739.accmap  +++|
00740  M01S00740.accmap  +++|      IF OMT$OPEN [SM$ID]
00741  M01S00741.accmap  +++|      THEN
00742  M01S00742.accmap  +++|        BEGIN
00743  M01S00743.accmap  +++|        RSTATUS = CMASTAT"FOPEN";
00744  M01S00744.accmap  +++|        RETURN;
00745  M01S00745.accmap  +++|        END
00746  M01S00746.accmap  +++|
00747  M01S00747.accmap  +++|      PFD("ATTACH",LFN,0,"M",MODE,"RC",PFSTAT,"NA",0,"UP",0,0);
00748  M01S00748.accmap  +++|
00749  M01S00749.accmap  +++|#
00750  M01S00750.accmap  +++|*     RETURN ATTACH ERROR IF NOT BUSY.
00751  M01S00751.accmap  +++|#
00752  M01S00752.accmap  +++|
00753  M01S00753.accmap  +++|      IF PFSTAT NQ 0 AND PFSTAT NQ FBS
00754  M01S00754.accmap  +++|      THEN
00755  M01S00755.accmap  +++|        BEGIN
00756  M01S00756.accmap  +++|        RSTATUS = CMASTAT"ATTERR";
00757  M01S00757.accmap  +++|        RETURN;
00758  M01S00758.accmap  +++|        END
00759  M01S00759.accmap  +++|
00760  M01S00760.accmap  +++|#
00761  M01S00761.accmap  +++|*     CREATE AN OPEN MAP TABLE ENTRY FOR AN EXISTING FILE.
00762  M01S00762.accmap  +++|#
00763  M01S00763.accmap  +++|
00764  M01S00764.accmap  +++|      OMT$ATTM[SM$ID] = MODE;
00765  M01S00765.accmap  +++|      OMT$LFN[SM$ID] = LFN;
00766  M01S00766.accmap  +++|      OMT$ZER[SM$ID] = 0;
00767  M01S00767.accmap  +++|
00768  M01S00768.accmap  +++|#
00769  M01S00769.accmap  +++|*     INTERLOCK THE FILE IF BUSY.
00770  M01S00770.accmap  +++|#
00771  M01S00771.accmap  +++|
00772  M01S00772.accmap  +++|      IF PFSTAT EQ FBS
00773  M01S00773.accmap  +++|      THEN
00774  M01S00774.accmap  +++|        BEGIN
00775  M01S00775.accmap  +++|        OMT$INTLK[SM$ID] = TRUE;
00776  M01S00776.accmap  +++|        MAPINTLK = TRUE;
00777  M01S00777.accmap  +++|        RSTATUS = CMASTAT"INTLK";
00778  M01S00778.accmap  +++|        RETURN;
00779  M01S00779.accmap  +++|        END
00780  M01S00780.accmap  +++|
00781  M01S00781.accmap  +++|#
00782  M01S00782.accmap  +++|*     SET FILE OPEN AND AVAILABLE.
00783  M01S00783.accmap  +++|#
00784  M01S00784.accmap  +++|
00785  M01S00785.accmap  +++|      OMT$INTLK[SM$ID] = FALSE;
00786  M01S00786.accmap  +++|      OMT$OPEN[SM$ID] = TRUE;
00787  M01S00787.accmap  +++|      MFLUSH;
00788  M01S00788.accmap  +++|      ZSETFET (MAPFADR,LFN,MAPBADR,MAPBUFL,RFETL);
00789  M01S00789.accmap  +++|      P<MAPFET> = MAPFADR;
00790  M01S00790.accmap  +++|      FET$EP[0] = TRUE;
00791  M01S00791.accmap  +++|      FET$R[0] = TRUE;
00792  M01S00792.accmap  +++|      FET$RR[0] = 1;
00793  M01S00793.accmap  +++|      READ(MAPFET,RCL);
00794  M01S00794.accmap  +++|      IF FET$AT[0] NQ 0
00795  M01S00795.accmap  +++|      THEN
00796  M01S00796.accmap  +++|        BEGIN
00797  M01S00797.accmap  +++|        MCLOSE(SM$ID);
00798  M01S00798.accmap  +++|        RSTATUS = CMASTAT"CIOERR";
00799  M01S00799.accmap  +++|        RETURN;
00800  M01S00800.accmap  +++|        END
00801  M01S00801.accmap  +++|
00802  M01S00802.accmap  +++|#
00803  M01S00803.accmap  +++|*     UPDATE MAP BUFFER CONTROL WORD TO REFLECT CURRENT CONTENTS.
00804  M01S00804.accmap  +++|#
00805  M01S00805.accmap  +++|
00806  M01S00806.accmap  +++|      P<SMUMAP> = MAPBADR;
00807  M01S00807.accmap  +++|      MB$PRUNUM[0] = 1;
00808  M01S00808.accmap  +++|      MB$SMID[0] = CM$SMID[0];
00809  M01S00809.accmap  +++|      MB$LFN[0] = OMT$LFN[SM$ID];
00810  M01S00810.accmap  +++|
00811  M01S00811.accmap  +++|#
00812  M01S00812.accmap  +++|*     VERIFY THAT THE RIGHT FILE HAS BEEN ATTACHED.
00813  M01S00813.accmap  +++|#
00814  M01S00814.accmap  +++|
00815  M01S00815.accmap  +++|      IF CM$SMID[0] NQ SM$ID
00816  M01S00816.accmap  +++|      THEN
00817  M01S00817.accmap  +++|        BEGIN
00818  M01S00818.accmap  +++|        MCLOSE(SM$ID,RSTATUS);
00819  M01S00819.accmap  +++|        RSTATUS = CMASTAT"ATTERR";
00820  M01S00820.accmap  +++|        END
00821  M01S00821.accmap  +++|
00822  M01S00822.accmap  +++|      RETURN;
00823  M01S00823.accmap  +++|      END  # MOPEN  #
00824  M01S00824.accmap  +++|
00825  M01S00825.accmap  +++|    TERM
00826  M01S00826.accmap  +++|PROC MPUTENT ((SM$ID),(ORDINAL),(MAPADR),RSTATUS);
00827  M01S00827.accmap  +++|# TITLE MPUTENT - MAP ENTRY TO THE MAP FILE BUFFER.                   #
00828  M01S00828.accmap  +++|      BEGIN  # MPUTENT  #
00829  M01S00829.accmap  +++|
00830  M01S00830.accmap  +++|#
00831  M01S00831.accmap  +++|**    MPUTENT - MOVES THE REQUESTED MAP ENTRY FROM THE CALLERS
00832  M01S00832.accmap  +++|*               MEMORY SPACE TO THE MAP *I/O* BUFFER.
00833  M01S00833.accmap  +++|*
00834  M01S00834.accmap  +++|*               THE BUFFER IS NOT WRITTEN TO THE FILE AT THIS TIME
00835  M01S00835.accmap  +++|*               BUT THE BUFFER MODIFIED FLAG IS SET.
00836  M01S00836.accmap  +++|*               THE CALLER IS RESPONSIBLE FOR CALLING *MFLUSH* AT THE
00837  M01S00837.accmap  +++|*               TIME THE BUFFER SHOULD BE WRITTEN TO THE FILE.
00838  M01S00838.accmap  +++|*
00839  M01S00839.accmap  +++|*     MPUTENT - IS CALLED BY ADDCAR,ADDCUBE,RMVCAR,RMVCUBE,
00840  M01S00840.accmap  +++|*               UPDMAP.
00841  M01S00841.accmap  +++|*
00842  M01S00842.accmap  +++|*     PROC MPUTENT (SM$ID,ORDINAL,MAPADR,RSTATUS)
00843  M01S00843.accmap  +++|*
00844  M01S00844.accmap  +++|*     ENTRY     SM$ID   - *SM* NUMBER OF MAP FILE.
00845  M01S00845.accmap  +++|*               ORDINAL - *XY* COORDINATE ORDINAL FOR THE ENTRY.
00846  M01S00846.accmap  +++|*               MAPADR  - ADDRESS OF MAP ENTRY WITHIN CALLER AREA.
00847  M01S00847.accmap  +++|*
00848  M01S00848.accmap  +++|*     EXIT      RSTATUS - ERROR STATUS.
00849  M01S00849.accmap  +++|*                         (VALUES DEFINED IN *COMBCMS*)
00850  M01S00850.accmap  +++|*                         = NO ERRORS.
00851  M01S00851.accmap  +++|*                         = MAP INTERLOCKED.
00852  M01S00852.accmap  +++|*                         = MAP NOT OPEN.
00853  M01S00853.accmap  +++|*                         = MAP NOT OPEN IN MODIFY MODE.
00854  M01S00854.accmap  +++|*                         = *CIO* ERROR.
00855  M01S00855.accmap  +++|*                         = MAP ORDINAL OUT OF RANGE.
00856  M01S00856.accmap  +++|#
00857  M01S00857.accmap  +++|
00858  M01S00858.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER  #
00859  M01S00859.accmap  +++|      ITEM ORDINAL    U;             # *XY* COORDINATE ORDINAL  #
00860  M01S00860.accmap  +++|      ITEM MAPADR     U;             # SOURCE OF CATALOG ENTRY  #
00861  M01S00861.accmap  +++|      ITEM RSTATUS    U;             # STATUS RETURNED TO THE CALLER  #
00862  M01S00862.accmap  +++|
00863  M01S00863.accmap  +++|#
00864  M01S00864.accmap  +++|****  PROC MPUTENT - XREF LIST BEGIN.
00865  M01S00865.accmap  +++|#
00866  M01S00866.accmap  +++|
00867  M01S00867.accmap  +++|      XREF
00868  M01S00868.accmap  +++|        BEGIN
00869  M01S00869.accmap  +++|        PROC MBUFMAN;                # GET ENTRY INTO BUFFER #
00870  M01S00870.accmap  +++|        END
00871  M01S00871.accmap  +++|
00872  M01S00872.accmap  +++|#
00873  M01S00873.accmap  +++|****  PROC MPUTENT - EXREF LIST END.
00874  M01S00874.accmap  +++|#
00875  M01S00875.accmap  +++|
00876  M01S00876.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING  #
00877  M01S00877.accmap  +++|*CALL COMBFAS
00878  M01S00878.accmap  +++|*CALL COMBCMD
00879  M01S00879.accmap  +++|*CALL COMBCMS
00880  M01S00880.accmap  +++|*CALL COMBMAP
00881  M01S00881.accmap  +++|*CALL COMSPFM
00882  M01S00882.accmap  +++|
00883  M01S00883.accmap  +++|      ITEM I          I;             # INDUCTION VARIABLE  #
00884  M01S00884.accmap  +++|      ITEM OFFSET     U;             # RELATIVE LOCATION OF *XY* IN
00885  M01S00885.accmap  +++|                                       BUFFER  #
00886  M01S00886.accmap  +++|
00887  M01S00887.accmap  +++|      BASED
00888  M01S00888.accmap  +++|      ARRAY MENTRY [0:0] P(1);
00889  M01S00889.accmap  +++|        BEGIN
00890  M01S00890.accmap  +++|        ITEM ENT$WRD     U(00,00,60);  # ENTRY WORD  #
00891  M01S00891.accmap  +++|        END
00892  M01S00892.accmap  +++|
00893  M01S00893.accmap  +++|
00894  M01S00894.accmap  +++|
00895  M01S00895.accmap  +++|
00896  M01S00896.accmap  +++|
00897  M01S00897.accmap  +++|      RSTATUS = CMASTAT"NOERR";
00898  M01S00898.accmap  +++|
00899  M01S00899.accmap  +++|#
00900  M01S00900.accmap  +++|*     RETURN ERROR IF FILE INTERLOCKED.
00901  M01S00901.accmap  +++|#
00902  M01S00902.accmap  +++|
00903  M01S00903.accmap  +++|      IF OMT$INTLK[SM$ID]
00904  M01S00904.accmap  +++|      THEN
00905  M01S00905.accmap  +++|        BEGIN
00906  M01S00906.accmap  +++|        RSTATUS = CMASTAT"INTLK";
00907  M01S00907.accmap  +++|        RETURN;
00908  M01S00908.accmap  +++|        END
00909  M01S00909.accmap  +++|
00910  M01S00910.accmap  +++|#
00911  M01S00911.accmap  +++|*
00912  M01S00912.accmap  +++|*     MAP FILE HAS TO BE OPENED IN *MODIFY* MODE.
00913  M01S00913.accmap  +++|#
00914  M01S00914.accmap  +++|
00915  M01S00915.accmap  +++|      IF NOT OMT$OPEN[SM$ID]
00916  M01S00916.accmap  +++|      THEN
00917  M01S00917.accmap  +++|        BEGIN
00918  M01S00918.accmap  +++|        RSTATUS = CMASTAT"NOTOPEN";
00919  M01S00919.accmap  +++|        RETURN;
00920  M01S00920.accmap  +++|        END
00921  M01S00921.accmap  +++|
00922  M01S00922.accmap  +++|      IF OMT$ATTM[SM$ID] EQ "RM"
00923  M01S00923.accmap  +++|      THEN
00924  M01S00924.accmap  +++|        BEGIN
00925  M01S00925.accmap  +++|        RSTATUS = CMASTAT"MODERR";
00926  M01S00926.accmap  +++|        RETURN;
00927  M01S00927.accmap  +++|        END
00928  M01S00928.accmap  +++|
00929  M01S00929.accmap  +++|#
00930  M01S00930.accmap  +++|*     GET OFFSET OF ENTRY IN BUFFER.
00931  M01S00931.accmap  +++|#
00932  M01S00932.accmap  +++|
00933  M01S00933.accmap  +++|      MBUFMAN(SM$ID,ORDINAL,OFFSET,RSTATUS);
00934  M01S00934.accmap  +++|      IF RSTATUS NQ 0
00935  M01S00935.accmap  +++|      THEN
00936  M01S00936.accmap  +++|        BEGIN
00937  M01S00937.accmap  +++|        RETURN;
00938  M01S00938.accmap  +++|        END
00939  M01S00939.accmap  +++|
00940  M01S00940.accmap  +++|#
00941  M01S00941.accmap  +++|*     TRANSFER ENTRY TO BUFFER.
00942  M01S00942.accmap  +++|#
00943  M01S00943.accmap  +++|
00944  M01S00944.accmap  +++|      P<MENTRY> = MAPADR;
00945  M01S00945.accmap  +++|      P<MAPBUF> = MAPBADR;
00946  M01S00946.accmap  +++|      FASTFOR I = 1 STEP 1 UNTIL MAPENTL
00947  M01S00947.accmap  +++|      DO
00948  M01S00948.accmap  +++|        BEGIN
00949  M01S00949.accmap  +++|        MAPB$W[OFFSET + I] = ENT$WRD[I - 1];
00950  M01S00950.accmap  +++|        END
00951  M01S00951.accmap  +++|
00952  M01S00952.accmap  +++|      MB$BMF[0] = TRUE;
00953  M01S00953.accmap  +++|      RETURN;
00954  M01S00954.accmap  +++|      END  # MPUTENT #
00955  M01S00955.accmap  +++|
00956  M01S00956.accmap  +++|    TERM
00957  M01S00957.accmap  +++|PROC MRCLMLK((SM$ID),RSTATUS);
00958  M01S00958.accmap  +++|# TITLE MRCLMLK - RECLAIM MAP INTERLOCK.                              #
00959  M01S00959.accmap  +++|      BEGIN  # MRCLMLK  #
00960  M01S00960.accmap  +++|
00961  M01S00961.accmap  +++|#
00962  M01S00962.accmap  +++|**    MRCLMLK - TRIES TO RECLAIM THE MAP FILE FOR THE SPECIFIED *SM*.
00963  M01S00963.accmap  +++|*               IT IS ASSUMED THAT THE CALLER IS RUNNING UNDER THE
00964  M01S00964.accmap  +++|*               DEFAULT FAMILY AND USER INDEX OF 377760B.
00965  M01S00965.accmap  +++|*
00966  M01S00966.accmap  +++|*     MRCLMLK - IS CALLED BY RCLMLK AND MAPRCLM.
00967  M01S00967.accmap  +++|*
00968  M01S00968.accmap  +++|*     PROC MRCLMLK(SM$ID,RSTATUS)
00969  M01S00969.accmap  +++|*
00970  M01S00970.accmap  +++|*     ENTRY     SM$ID  - *SM* NUMBER OF THE MAP.
00971  M01S00971.accmap  +++|*
00972  M01S00972.accmap  +++|*     EXIT      RSTATUS - ERROR STATUS.
00973  M01S00973.accmap  +++|*                         (VALUES DEFINED IN *COMBCMS*)
00974  M01S00974.accmap  +++|*                         = NO ERRORS.
00975  M01S00975.accmap  +++|*                         = MAP INTERLOCKED.
00976  M01S00976.accmap  +++|*                         = MAP ATTACH ERROR.
00977  M01S00977.accmap  +++|*
00978  M01S00978.accmap  +++|*
00979  M01S00979.accmap  +++|*     MESSAGES   * UNABLE TO REATTACH SMUMAP.
00980  M01S00980.accmap  +++|*                  CSMAPX CLOSED.*
00981  M01S00981.accmap  +++|#
00982  M01S00982.accmap  +++|
00983  M01S00983.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER  #
00984  M01S00984.accmap  +++|      ITEM RSTATUS    U;             # ERROR STATUS RETURNED  #
00985  M01S00985.accmap  +++|
00986  M01S00986.accmap  +++|#
00987  M01S00987.accmap  +++|****  PROC MRCLMLK - XREF LIST BEGIN.
00988  M01S00988.accmap  +++|#
00989  M01S00989.accmap  +++|
00990  M01S00990.accmap  +++|      XREF
00991  M01S00991.accmap  +++|        BEGIN
00992  M01S00992.accmap  +++|        PROC MESSAGE;                # ISSUE MESSAGE #
00993  M01S00993.accmap  +++|        PROC MOPEN;                  # OPEN MAP #
00994  M01S00994.accmap  +++|        PROC PF;                     # *PFM* REQUEST INTERFACE #
00995  M01S00995.accmap  +++|        END
00996  M01S00996.accmap  +++|
00997  M01S00997.accmap  +++|#
00998  M01S00998.accmap  +++|****  PROC MRCLMLK - EXREF LIST END.
00999  M01S00999.accmap  +++|#
01000  M01S01000.accmap  +++|
01001  M01S01001.accmap  +++|      DEF LISTCON #0#;               # DO NOT LIST COMMON DECKS  #
01002  M01S01002.accmap  +++|*CALL COMBFAS
01003  M01S01003.accmap  +++|*CALL COMBCMD
01004  M01S01004.accmap  +++|*CALL COMBCMS
01005  M01S01005.accmap  +++|*CALL COMBMCT
01006  M01S01006.accmap  +++|*CALL COMXMSC
01007  M01S01007.accmap  +++|*CALL COMSPFM
01008  M01S01008.accmap  +++|
01009  M01S01009.accmap  +++|      ITEM ATCH$STAT  U;             # STATUS FROM *ATTACH* REQUEST #
01010  M01S01010.accmap  +++|
01011  M01S01011.accmap  +++|      RSTATUS = CMASTAT"NOERR";
01012  M01S01012.accmap  +++|      P<OMT> = OMTADR;
01013  M01S01013.accmap  +++|
01014  M01S01014.accmap  +++|#
01015  M01S01015.accmap  +++|*     EXIT IF MAP NOT INTERLOCKED.
01016  M01S01016.accmap  +++|#
01017  M01S01017.accmap  +++|
01018  M01S01018.accmap  +++|      IF NOT OMT$INTLK[SM$ID]
01019  M01S01019.accmap  +++|      THEN
01020  M01S01020.accmap  +++|        BEGIN
01021  M01S01021.accmap  +++|        RETURN;
01022  M01S01022.accmap  +++|        END
01023  M01S01023.accmap  +++|
01024  M01S01024.accmap  +++|#
01025  M01S01025.accmap  +++|*     IF THE FILE IS OPEN, ATTACH IT.
01026  M01S01026.accmap  +++|*     IF THE FILE IS NOT OPEN, OPEN IT.
01027  M01S01027.accmap  +++|#
01028  M01S01028.accmap  +++|
01029  M01S01029.accmap  +++|      IF NOT OMT$OPEN[SM$ID]
01030  M01S01030.accmap  +++|      THEN
01031  M01S01031.accmap  +++|        BEGIN
01032  M01S01032.accmap  +++|        MOPEN(SM$ID,OMT$LFN[SM$ID],OMT$ATTM[SM$ID],RSTATUS);
01033  M01S01033.accmap  +++|        RETURN;
01034  M01S01034.accmap  +++|        END
01035  M01S01035.accmap  +++|
01036  M01S01036.accmap  +++|      PF("ATTACH",OMT$LFN[SM$ID],0,"M",OMT$ATTM[SM$ID],
01037  M01S01037.accmap  +++|        "RC",ATCH$STAT,"NA",0,"UP",0,0);
01038  M01S01038.accmap  +++|      IF ATCH$STAT NQ 0
01039  M01S01039.accmap  +++|      THEN
01040  M01S01040.accmap  +++|        BEGIN          # INTERLOCK NOT RECLAIMED #
01041  M01S01041.accmap  +++|        IF ATCH$STAT EQ FBS OR ATCH$STAT EQ PFA  ##
01042  M01S01042.accmap  +++|          OR ATCH$STAT EQ INA OR ATCH$STAT EQ FTF  ##
01043  M01S01043.accmap  +++|          OR ATCH$STAT EQ PEA
01044  M01S01044.accmap  +++|        THEN                         # MAP BUSY OR TEMPORARY ERROR #
01045  M01S01045.accmap  +++|          BEGIN
01046  M01S01046.accmap  +++|          RSTATUS = CMASTAT"INTLK";
01047  M01S01047.accmap  +++|          END
01048  M01S01048.accmap  +++|
01049  M01S01049.accmap  +++|        ELSE
01050  M01S01050.accmap  +++|          BEGIN
01051  M01S01051.accmap  +++|          RSTATUS = CMASTAT"ATTERR";
01052  M01S01052.accmap  +++|          OMT$OPEN[SM$ID] = FALSE;
01053  M01S01053.accmap  +++|          OMT$INTLK[SM$ID] = FALSE;
01054  M01S01054.accmap  +++|          CMSGLINE[0] = MMSG1;       # ISSUE ERROR MESSAGE #
01055  M01S01055.accmap  +++|          MESSAGE(CMSGAREA,UDFL1);
01056  M01S01056.accmap  +++|          CMSGLINE[0] = MMSGCLOSE;
01057  M01S01057.accmap  +++|          CMSGMAPID[0] = SM$ID;
01058  M01S01058.accmap  +++|          MESSAGE(CMSGAREA,UDFL1);
01059  M01S01059.accmap  +++|          END
01060  M01S01060.accmap  +++|
01061  M01S01061.accmap  +++|        END            # INTERLOCK NOT RECLAIMED #
01062  M01S01062.accmap  +++|
01063  M01S01063.accmap  +++|      ELSE                         # INTERLOCK RECLAIMED #
01064  M01S01064.accmap  +++|        BEGIN
01065  M01S01065.accmap  +++|        OMT$INTLK[SM$ID] = FALSE;
01066  M01S01066.accmap  +++|        END
01067  M01S01067.accmap  +++|
01068  M01S01068.accmap  +++|
01069  M01S01069.accmap  +++|      RETURN;
01070  M01S01070.accmap  +++|
01071  M01S01071.accmap  +++|      END  # MRCLMLK  #
01072  M01S01072.accmap  +++|
01073  M01S01073.accmap  +++|    TERM
01074  M01S01074.accmap  +++|PROC MRELSLK ((SM$ID));
01075  M01S01075.accmap  +++|# TITLE MRELSLK - RETURN A MAP FILE.                                  #
01076  M01S01076.accmap  +++|      BEGIN  # MRELSLK  #
01077  M01S01077.accmap  +++|
01078  M01S01078.accmap  +++|#
01079  M01S01079.accmap  +++|**    MRELSLK - RETURNS A *SMMAP* FILE FOR A *SMID* WHICH HAS BEEN
01080  M01S01080.accmap  +++|*               PREVIOUSLY OPENED IN *MODIFY* MODE.
01081  M01S01081.accmap  +++|*
01082  M01S01082.accmap  +++|*     MRELSLK - IS CALLED BY MAPRELS.
01083  M01S01083.accmap  +++|*
01084  M01S01084.accmap  +++|*     PROC MRELSLK (SM$ID)
01085  M01S01085.accmap  +++|*
01086  M01S01086.accmap  +++|*     ENTRY     SM$ID  - *SM* NUMBER OF MAP FILE.
01087  M01S01087.accmap  +++|#
01088  M01S01088.accmap  +++|
01089  M01S01089.accmap  +++|      ITEM SM$ID     U;             # *SM* NUMBER FROM CALLER  #
01090  M01S01090.accmap  +++|
01091  M01S01091.accmap  +++|#
01092  M01S01092.accmap  +++|****  PROC MRELSLK - XREF LIST BEGIN.
01093  M01S01093.accmap  +++|#
01094  M01S01094.accmap  +++|
01095  M01S01095.accmap  +++|      XREF
01096  M01S01096.accmap  +++|        BEGIN
01097  M01S01097.accmap  +++|        PROC MFLUSH;                 # FLUSH MAP TO FILE  #
01098  M01S01098.accmap  +++|        PROC RETERN;                 # INTERFACE TO *RETURN* MACRO  #
01099  M01S01099.accmap  +++|        PROC RTIME;                  # GET CURRENT TIME #
01100  M01S01100.accmap  +++|        PROC ZSETFET;                # INITIALIZES A *FET* FOR *I/O* #
01101  M01S01101.accmap  +++|        END
01102  M01S01102.accmap  +++|
01103  M01S01103.accmap  +++|#
01104  M01S01104.accmap  +++|****  PROC MRELSLK - EXREF LIST END.
01105  M01S01105.accmap  +++|#
01106  M01S01106.accmap  +++|
01107  M01S01107.accmap  +++|      DEF LISTCON #0#;               # CONTROLS COMDECK LISTING  #
01108  M01S01108.accmap  +++|*CALL COMBFAS
01109  M01S01109.accmap  +++|*CALL COMBCMD
01110  M01S01110.accmap  +++|*CALL COMBCMS
01111  M01S01111.accmap  +++|*CALL COMBFET
01112  M01S01112.accmap  +++|*CALL COMBMCT
01113  M01S01113.accmap  +++|*CALL COMXCTF
01114  M01S01114.accmap  +++|*CALL COMXIPR
01115  M01S01115.accmap  +++|*CALL COMXMSC
01116  M01S01116.accmap  +++|*CALL COMSPFM
01117  M01S01117.accmap  +++|
01118  M01S01118.accmap  +++|
01119  M01S01119.accmap  +++|
01120  M01S01120.accmap  +++|
01121  M01S01121.accmap  +++|
01122  M01S01122.accmap  +++|#
01123  M01S01123.accmap  +++|*     MAP FILE HAS TO BE OPEN AND IN *MODIFY* MODE.
01124  M01S01124.accmap  +++|#
01125  M01S01125.accmap  +++|
01126  M01S01126.accmap  +++|      IF OMT$OPEN[SM$ID]                    # #
01127  M01S01127.accmap  +++|        AND OMT$ATTM[SM$ID] EQ "M"           # #
01128  M01S01128.accmap  +++|        AND NOT OMT$INTLK[SM$ID]
01129  M01S01129.accmap  +++|      THEN
01130  M01S01130.accmap  +++|        BEGIN
01131  M01S01131.accmap  +++|        MFLUSH;
01132  M01S01132.accmap  +++|        P<FETSET> = MAPFADR;
01133  M01S01133.accmap  +++|        FET$LFN[0] = OMT$LFN[SM$ID];
01134  M01S01134.accmap  +++|        RETERN(MAPFET,RCL);
01135  M01S01135.accmap  +++|        OMT$INTLK[SM$ID] = TRUE;
01136  M01S01136.accmap  +++|        MAPINTLK = TRUE;
01137  M01S01137.accmap  +++|        RTIME(RTIMESTAT[0]);
01138  M01S01138.accmap  +++|        MAP$EXPIR = RTIMSECS[0] + MAP$INTV;
01139  M01S01139.accmap  +++|        END
01140  M01S01140.accmap  +++|
01141  M01S01141.accmap  +++|      RETURN;
01142  M01S01142.accmap  +++|      END  # MRELSLK  #
01143  M01S01143.accmap  +++|
01144  M01S01144.accmap  +++|    TERM
cdc/nos2.source/opl.opl871/deck/accmap.txt ยท Last modified: by 127.0.0.1