User Tools

Site Tools


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

Deck M86SERV

Library Member Format: MODIFY

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M00S00001.m86serv +++|PROC BZFILL(CHAR,(TYP),(NUM));
00002  M00S00002.m86serv +++|# TITLE BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.                #
00003  M00S00003.m86serv +++|
00004  M00S00004.m86serv +++|      BEGIN  # BZFILL #
00005  M00S00005.m86serv +++|
00006  M00S00006.m86serv +++|#
00007  M00S00007.m86serv +++|**    BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.
00008  M00S00008.m86serv +++|*
00009  M00S00009.m86serv +++|*     PROC BZFILL(CHAR,(TYP),(NUM))
00010  M00S00010.m86serv +++|*
00011  M00S00011.m86serv +++|*     ENTRY   (TYP)  = TYPE OF FILLING REQUIRED.
00012  M00S00012.m86serv +++|*                    = S"BFILL", BLANK FILLING.
00013  M00S00013.m86serv +++|*                    = S"ZFILL", ZERO FILLING.
00014  M00S00014.m86serv +++|*             (NUM)  = LENGTH OF CHARACTER ITEM IN NUMBER
00015  M00S00015.m86serv +++|*                      OF CHARACTERS.
00016  M00S00016.m86serv +++|*
00017  M00S00017.m86serv +++|*     EXIT    (CHAR) = BLANK OR ZERO FILLED CHARACTER.
00018  M00S00018.m86serv +++|*
00019  M00S00019.m86serv +++|*     NOTES   DEPENDING ON THE TYPE OF CONVERSION, ZEROES
00020  M00S00020.m86serv +++|*             ARE REPLACED BY BLANKS OR BLANKS BY ZEROES.
00021  M00S00021.m86serv +++|#
00022  M00S00022.m86serv +++|
00023  M00S00023.m86serv +++|      ITEM CHAR       C(240);        # ITEM TO BE BLANK/ZERO FILLED #
00024  M00S00024.m86serv +++|      ITEM TYP        U;             # TYPE OF FILLING REQUIRED #
00025  M00S00025.m86serv +++|      ITEM NUM        I;             # LENGTH OF *CHAR* IN NUMBER OF
00026  M00S00026.m86serv +++|                                       CHARACTERS #
00027  M00S00027.m86serv +++|
00028  M00S00028.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00029  M00S00029.m86serv +++|*CALL COMBFAS
00030  M00S00030.m86serv +++|*CALL COMBBZF
00031  M00S00031.m86serv +++|
00032  M00S00032.m86serv +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00033  M00S00033.m86serv +++|
00034  M00S00034.m86serv +++|CONTROL EJECT;
00035  M00S00035.m86serv +++|
00036  M00S00036.m86serv +++|#
00037  M00S00037.m86serv +++|*     START OF EXECUTABLE CODE.
00038  M00S00038.m86serv +++|#
00039  M00S00039.m86serv +++|
00040  M00S00040.m86serv +++|      IF TYP EQ TYPFILL"BFILL"
00041  M00S00041.m86serv +++|      THEN
00042  M00S00042.m86serv +++|        BEGIN  # BLANK FILL #
00043  M00S00043.m86serv +++|        FASTFOR I = 0 STEP 1 UNTIL NUM-1
00044  M00S00044.m86serv +++|        DO
00045  M00S00045.m86serv +++|          BEGIN
00046  M00S00046.m86serv +++|          IF C<I,1>CHAR EQ 0         # REPLACE ZEROES BY BLANKS #
00047  M00S00047.m86serv +++|          THEN
00048  M00S00048.m86serv +++|            BEGIN
00049  M00S00049.m86serv +++|            C<I,1>CHAR = " ";
00050  M00S00050.m86serv +++|            END
00051  M00S00051.m86serv +++|
00052  M00S00052.m86serv +++|          END
00053  M00S00053.m86serv +++|
00054  M00S00054.m86serv +++|        RETURN;
00055  M00S00055.m86serv +++|        END  # BLANK FILL #
00056  M00S00056.m86serv +++|
00057  M00S00057.m86serv +++|      IF TYP EQ TYPFILL"ZFILL"
00058  M00S00058.m86serv +++|      THEN
00059  M00S00059.m86serv +++|        BEGIN  # ZERO FILL #
00060  M00S00060.m86serv +++|        FASTFOR I = 0 STEP 1 UNTIL NUM-1
00061  M00S00061.m86serv +++|        DO
00062  M00S00062.m86serv +++|          BEGIN
00063  M00S00063.m86serv +++|          IF B<I*6,6>CHAR EQ O"55"   # REPLACE BLANKS BY ZEROES #
00064  M00S00064.m86serv +++|          THEN
00065  M00S00065.m86serv +++|            BEGIN
00066  M00S00066.m86serv +++|            B<I*6,6>CHAR = 0;
00067  M00S00067.m86serv +++|            END
00068  M00S00068.m86serv +++|
00069  M00S00069.m86serv +++|          END
00070  M00S00070.m86serv +++|
00071  M00S00071.m86serv +++|        RETURN;
00072  M00S00072.m86serv +++|
00073  M00S00073.m86serv +++|        END  # ZERO FILL #
00074  M00S00074.m86serv +++|
00075  M00S00075.m86serv +++|      END  # BZFILL #
00076  M00S00076.m86serv +++|
00077  M00S00077.m86serv +++|    TERM
00078  M00S00078.m86serv +++|PROC LOFPROC((LFN));
00079  M00S00079.m86serv +++|# TITLE LOFPROC - LIST OF FILES PROCESSOR.                            #
00080  M00S00080.m86serv +++|
00081  M00S00081.m86serv +++|      BEGIN  # LOFPROC #
00082  M00S00082.m86serv +++|
00083  M00S00083.m86serv +++|#
00084  M00S00084.m86serv +++|**    LOFPROC - LIST OF FILES PROCESSOR.
00085  M00S00085.m86serv +++|*
00086  M00S00086.m86serv +++|*     *LOFPROC* IS USED TO CREATE A LIST OF LOCAL FILE NAMES, AND ALSO
00087  M00S00087.m86serv +++|*     TO RETURN THE FILES NAMED IN THIS LIST.
00088  M00S00088.m86serv +++|*
00089  M00S00089.m86serv +++|*     PROC LOFPROC((LFN))
00090  M00S00090.m86serv +++|*
00091  M00S00091.m86serv +++|*     ENTRY    (LFN) = NONZERO, LOCAL FILE NAME TO BE ADDED TO THE
00092  M00S00092.m86serv +++|*                      LIST OF FILES.
00093  M00S00093.m86serv +++|*                    = 0, ALL FILES IN THE LIST ARE TO BE RETURNED.
00094  M00S00094.m86serv +++|*
00095  M00S00095.m86serv +++|*     EXIT     THE SPECIFIED FILE HAS BEEN ADDED TO THE LIST, OR ALL
00096  M00S00096.m86serv +++|*              FILES IN THE LIST HAVE BEEN RETURNED.
00097  M00S00097.m86serv +++|#
00098  M00S00098.m86serv +++|
00099  M00S00099.m86serv +++|      ITEM LFN       I;              # FILE NAME TO BE ADDED TO LIST #
00100  M00S00100.m86serv +++|
00101  M00S00101.m86serv +++|#
00102  M00S00102.m86serv +++|****  PROC LOFPROC - XREF LIST BEGIN.
00103  M00S00103.m86serv +++|#
00104  M00S00104.m86serv +++|
00105  M00S00105.m86serv +++|      XREF
00106  M00S00106.m86serv +++|        BEGIN
00107  M00S00107.m86serv +++|        PROC BZFILL;                 # BLANK OR ZERO FILL ITEM #
00108  M00S00108.m86serv +++|        PROC RETERN;                 # RETURN FILE #
00109  M00S00109.m86serv +++|        PROC ZSETFET;                # INITIALIZE FET #
00110  M00S00110.m86serv +++|        END
00111  M00S00111.m86serv +++|
00112  M00S00112.m86serv +++|#
00113  M00S00113.m86serv +++|****  PROC LOFPROC - XREF LIST END.
00114  M00S00114.m86serv +++|#
00115  M00S00115.m86serv +++|
00116  M00S00116.m86serv +++|      DEF LOFMAX     #15#;           # MAXIMUM LENGTH OF FILE LIST #
00117  M00S00117.m86serv +++|
00118  M00S00118.m86serv +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00119  M00S00119.m86serv +++|*CALL COMBFAS
00120  M00S00120.m86serv +++|*CALL COMBFET
00121  M00S00121.m86serv +++|
00122  M00S00122.m86serv +++|      ITEM I          I;             # INDUCTION VARIABLE #
00123  M00S00123.m86serv +++|      ITEM ORD        U = 0;         # CURRENT TABLE ORDINAL #
00124  M00S00124.m86serv +++|
00125  M00S00125.m86serv +++|      ARRAY LFET [0:0] S(SFETL); ;   # FET USED FOR *RETURN* REQUEST #
00126  M00S00126.m86serv +++|      ARRAY LOF [0:LOFMAX] S(1);     # LIST OF FILES TABLE #
00127  M00S00127.m86serv +++|        BEGIN
00128  M00S00128.m86serv +++|        ITEM LOF$WRD    U(00,00,60);  # FULL WORD DEFINITION #
00129  M00S00129.m86serv +++|        ITEM LOF$LFN    C(00,00,07);  # LOCAL FILE NAME #
00130  M00S00130.m86serv +++|        END
00131  M00S00131.m86serv +++|
00132  M00S00132.m86serv +++|                                               CONTROL EJECT;
00133  M00S00133.m86serv +++|
00134  M00S00134.m86serv +++|      IF LFN NQ 0 AND ORD LQ LOFMAX
00135  M00S00135.m86serv +++|      THEN                           # ADD LFN TO LIST OF FILES #
00136  M00S00136.m86serv +++|        BEGIN
00137  M00S00137.m86serv +++|        BZFILL(LFN,1,7);
00138  M00S00138.m86serv +++|        LOF$WRD[ORD] = LFN;
00139  M00S00139.m86serv +++|        ORD = ORD + 1;
00140  M00S00140.m86serv +++|        RETURN;
00141  M00S00141.m86serv +++|        END
00142  M00S00142.m86serv +++|
00143  M00S00143.m86serv +++|      IF LFN EQ 0
00144  M00S00144.m86serv +++|      THEN                           # RETURN ALL FILES LISTED #
00145  M00S00145.m86serv +++|        BEGIN  # RETURN FILES #
00146  M00S00146.m86serv +++|        ZSETFET(LOC(LFET[0]),"",0,0,SFETL);
00147  M00S00147.m86serv +++|
00148  M00S00148.m86serv +++|        SLOWFOR I = 0 STEP 1 WHILE I LS ORD
00149  M00S00149.m86serv +++|        DO
00150  M00S00150.m86serv +++|          BEGIN
00151  M00S00151.m86serv +++|          FET$LFN[0] = LOF$LFN[I];
00152  M00S00152.m86serv +++|          RETERN(LFET[0],RCL);
00153  M00S00153.m86serv +++|          END
00154  M00S00154.m86serv +++|
00155  M00S00155.m86serv +++|        END  # RETURN FILES #
00156  M00S00156.m86serv +++|
00157  M00S00157.m86serv +++|      RETURN;
00158  M00S00158.m86serv +++|      END  # LOFPROC #
00159  M00S00159.m86serv +++|
00160  M00S00160.m86serv +++|    TERM
00161  M00S00161.m86serv +++|PROC MSG((DFMSG),(OP));
00162  M00S00162.m86serv +++|# TITLE MSG - DISPLAY DAYFILE MESSAGE.                                #
00163  M00S00163.m86serv +++|
00164  M00S00164.m86serv +++|      BEGIN  # MSG #
00165  M00S00165.m86serv +++|
00166  M00S00166.m86serv +++|#
00167  M00S00167.m86serv +++|**    MSG - DISPLAY DAYFILE MESSAGE.
00168  M00S00168.m86serv +++|*
00169  M00S00169.m86serv +++|*     *MSG* SEARCHES A MESSAGE FOR A TERMINATING CHARACTER AND
00170  M00S00170.m86serv +++|*     ZERO FILLS THE MESSAGE FROM THE TERMINATOR TO THE END
00171  M00S00171.m86serv +++|*     OF THE MESSAGE.
00172  M00S00172.m86serv +++|*
00173  M00S00173.m86serv +++|*     PROC MSG((DFMSG),(OP))
00174  M00S00174.m86serv +++|*
00175  M00S00175.m86serv +++|*     ENTRY      (DFMSG) - MESSAGE TO BE DISPLAYED, 80 CHARACTER
00176  M00S00176.m86serv +++|*                          MAXIMUM.
00177  M00S00177.m86serv +++|*                (OP)    - MESSAGE ROUTING OPTION.
00178  M00S00178.m86serv +++|*                          (VALUES DEFINED IN *COMBFAS*)
00179  M00S00179.m86serv +++|*
00180  M00S00180.m86serv +++|*     EXIT       THE MESSAGE HAS BEEN DISPLAYED AT THE LOCATION
00181  M00S00181.m86serv +++|*                SPECIFIED BY (OP).
00182  M00S00182.m86serv +++|#
00183  M00S00183.m86serv +++|
00184  M00S00184.m86serv +++|      ITEM DFMSG      C(80);         # MESSAGE TEXT #
00185  M00S00185.m86serv +++|      ITEM OP         I;             # MESSAGE ROUTING OPTION #
00186  M00S00186.m86serv +++|
00187  M00S00187.m86serv +++|#
00188  M00S00188.m86serv +++|****  PROC MSG - XREF LIST BEGIN.
00189  M00S00189.m86serv +++|#
00190  M00S00190.m86serv +++|
00191  M00S00191.m86serv +++|      XREF
00192  M00S00192.m86serv +++|        BEGIN
00193  M00S00193.m86serv +++|        PROC MESSAGE;                # ISSUE MESSAGE #
00194  M00S00194.m86serv +++|        END
00195  M00S00195.m86serv +++|
00196  M00S00196.m86serv +++|#
00197  M00S00197.m86serv +++|****  PROC MSG - XREF LIST END.
00198  M00S00198.m86serv +++|#
00199  M00S00199.m86serv +++|
00200  M00S00200.m86serv +++|      DEF BLANK #" "#;               # BLANK CHARACTER #
00201  M00S00201.m86serv +++|      DEF TERMCHAR #";"#;            # TERMINATOR CHARACTER #
00202  M00S00202.m86serv +++|
00203  M00S00203.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00204  M00S00204.m86serv +++|*CALL COMBFAS
00205  M00S00205.m86serv +++|
00206  M00S00206.m86serv +++|      ITEM I          I;             # LOOP COUNTER #
00207  M00S00207.m86serv +++|      ITEM CP         I;             # CHARACTER POSITION #
00208  M00S00208.m86serv +++|
00209  M00S00209.m86serv +++|CONTROL EJECT;
00210  M00S00210.m86serv +++|
00211  M00S00211.m86serv +++|      CP = 0;
00212  M00S00212.m86serv +++|      FASTFOR I = 0 STEP 1 WHILE I LS 80 AND CP EQ 0
00213  M00S00213.m86serv +++|      DO                             # FIND TERMINATOR #
00214  M00S00214.m86serv +++|        BEGIN
00215  M00S00215.m86serv +++|        IF C<I,1>DFMSG EQ TERMCHAR
00216  M00S00216.m86serv +++|        THEN
00217  M00S00217.m86serv +++|          BEGIN
00218  M00S00218.m86serv +++|          CP = I;
00219  M00S00219.m86serv +++|          END
00220  M00S00220.m86serv +++|
00221  M00S00221.m86serv +++|        END
00222  M00S00222.m86serv +++|
00223  M00S00223.m86serv +++|      IF CP NQ 0
00224  M00S00224.m86serv +++|      THEN                           # ZERO FILL END OF MESSAGE #
00225  M00S00225.m86serv +++|        BEGIN
00226  M00S00226.m86serv +++|        B<CP*6,(80-CP)*6>DFMSG = 0;
00227  M00S00227.m86serv +++|        END
00228  M00S00228.m86serv +++|
00229  M00S00229.m86serv +++|      MESSAGE(DFMSG,OP);             # ISSUE MESSAGE #
00230  M00S00230.m86serv +++|      RETURN;
00231  M00S00231.m86serv +++|      END  # MSG #
00232  M00S00232.m86serv +++|
00233  M00S00233.m86serv +++|    TERM
00234  M00S00234.m86serv +++|PROC RESTPFP((OPTION));
00235  M00S00235.m86serv +++|# TITLE RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.             #
00236  M00S00236.m86serv +++|
00237  M00S00237.m86serv +++|      BEGIN  # RESTPFP #
00238  M00S00238.m86serv +++|
00239  M00S00239.m86serv +++|#
00240  M00S00240.m86serv +++|**    RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
00241  M00S00241.m86serv +++|*
00242  M00S00242.m86serv +++|*     *RESTPFP* RESTORES THE USER-S FAMILY AND USER INDEX, AND
00243  M00S00243.m86serv +++|*     OPTIONALLY CALLS *LOFPROC* TO RETURN ANY LISTED FILES.
00244  M00S00244.m86serv +++|*
00245  M00S00245.m86serv +++|*     PROC RESTPFP((OPTION))
00246  M00S00246.m86serv +++|*
00247  M00S00247.m86serv +++|*     ENTRY     (OPTION) - PROCESSING OPTION (VALUES DEFINED IN
00248  M00S00248.m86serv +++|*                          *COMBFAS*).
00249  M00S00249.m86serv +++|*                        = *PFP$ABORT*, RESTORE *PFP*, RETURN ANY
00250  M00S00250.m86serv +++|*                          LISTED FILES, AND ABORT PROCESSING.
00251  M00S00251.m86serv +++|*                        = *PFP$END*, RESTORE *PFP*, RETURN ANY LISTED
00252  M00S00252.m86serv +++|*                          FILES, AND RETURN TO CALLING PROGRAM.
00253  M00S00253.m86serv +++|*                        = *PFP$RESUME*, RESTORE *PFP* AND RETURN TO
00254  M00S00254.m86serv +++|*                          CALLING PROGRAM (NO FILES RETURNED).
00255  M00S00255.m86serv +++|*               (USER$FAM) = USER-S CURRENT FAMILY (IN *APFPCOM*).
00256  M00S00256.m86serv +++|*               (USER$UI)  = USER-S CURRENT USER INDEX (IN *APFPCOM*).
00257  M00S00257.m86serv +++|*
00258  M00S00258.m86serv +++|*     EXIT      THE USER INDEX AND FAMILY OF THE USER HAVE BEEN
00259  M00S00259.m86serv +++|*               RESTORED.  DEPENDING ON THE VALUE OF *OPTION*,
00260  M00S00260.m86serv +++|*               LISTED FILES MAY HAVE BEEN RETURNED, AND/OR
00261  M00S00261.m86serv +++|*               PROCESSING MAY HAVE BEEN ABORTED.
00262  M00S00262.m86serv +++|*
00263  M00S00263.m86serv +++|*     MESSAGE   * PROGRAM ABNORMAL, RESTPFP.*.
00264  M00S00264.m86serv +++|#
00265  M00S00265.m86serv +++|
00266  M00S00266.m86serv +++|      ITEM OPTION     I;             # PROCESSING OPTION #
00267  M00S00267.m86serv +++|
00268  M00S00268.m86serv +++|#
00269  M00S00269.m86serv +++|****  PROC RESTPFP - XREF LIST BEGIN.
00270  M00S00270.m86serv +++|#
00271  M00S00271.m86serv +++|
00272  M00S00272.m86serv +++|      XREF
00273  M00S00273.m86serv +++|        BEGIN
00274  M00S00274.m86serv +++|        PROC ABORT;                  # ISSUE ABORT #
00275  M00S00275.m86serv +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
00276  M00S00276.m86serv +++|        PROC MESSAGE;                # ISSUE MESSAGE #
00277  M00S00277.m86serv +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
00278  M00S00278.m86serv +++|        END
00279  M00S00279.m86serv +++|
00280  M00S00280.m86serv +++|#
00281  M00S00281.m86serv +++|****  PROC RESTPFP - XREF LIST BEGIN.
00282  M00S00282.m86serv +++|#
00283  M00S00283.m86serv +++|
00284  M00S00284.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00285  M00S00285.m86serv +++|
00286  M00S00286.m86serv +++|*CALL COMBFAS
00287  M00S00287.m86serv +++|*CALL COMBPFP
00288  M00S00288.m86serv +++|
00289  M00S00289.m86serv +++|      ARRAY PFPMSG [0:0] S(3);       # ABNORMAL CONDITION MESSAGE #
00290  M00S00290.m86serv +++|        BEGIN
00291  M00S00291.m86serv +++|        ITEM PFPLINE    C(00,00,28) =[  # MESSAGE LINE #
00292  M00S00292.m86serv +++|        " PROGRAM ABNORMAL, RESTPFP."];
00293  M00S00293.m86serv +++|        ITEM PFPZERO    U(02,48,12)=[0];  # ZERO BYTE TERMINATOR #
00294  M00S00294.m86serv +++|        END
00295  M00S00295.m86serv +++|
00296  M00S00296.m86serv +++|                                               CONTROL EJECT;
00297  M00S00297.m86serv +++|
00298  M00S00298.m86serv +++|#
00299  M00S00299.m86serv +++|*    RESTORE FAMILY AND USER INDEX TO USER VALUES.
00300  M00S00300.m86serv +++|#
00301  M00S00301.m86serv +++|
00302  M00S00302.m86serv +++|      PFP$WRD0[0] = 0;
00303  M00S00303.m86serv +++|      PFP$FAM[0] = USER$FAM[0];
00304  M00S00304.m86serv +++|      PFP$UI[0] = USER$UI[0];
00305  M00S00305.m86serv +++|      PFP$FG1[0] = TRUE;
00306  M00S00306.m86serv +++|      PFP$FG4[0] = TRUE;
00307  M00S00307.m86serv +++|      SETPFP(PFP[0]);
00308  M00S00308.m86serv +++|      IF PFP$STAT[0] NQ OK
00309  M00S00309.m86serv +++|      THEN
00310  M00S00310.m86serv +++|        BEGIN
00311  M00S00311.m86serv +++|        MESSAGE(PFPMSG[0],UDFL1);
00312  M00S00312.m86serv +++|        ABORT;
00313  M00S00313.m86serv +++|        END
00314  M00S00314.m86serv +++|
00315  M00S00315.m86serv +++|#
00316  M00S00316.m86serv +++|*     OPTIONALLY RETURN LISTED FILES.
00317  M00S00317.m86serv +++|#
00318  M00S00318.m86serv +++|
00319  M00S00319.m86serv +++|      IF OPTION NQ PFP$RESUME
00320  M00S00320.m86serv +++|      THEN
00321  M00S00321.m86serv +++|        BEGIN
00322  M00S00322.m86serv +++|        LOFPROC(0);
00323  M00S00323.m86serv +++|        END
00324  M00S00324.m86serv +++|
00325  M00S00325.m86serv +++|#
00326  M00S00326.m86serv +++|*     OPTIONALLY ABORT PROCESSING.
00327  M00S00327.m86serv +++|#
00328  M00S00328.m86serv +++|
00329  M00S00329.m86serv +++|      IF OPTION EQ PFP$ABORT
00330  M00S00330.m86serv +++|      THEN                           # ABORT REQUESTED #
00331  M00S00331.m86serv +++|        BEGIN
00332  M00S00332.m86serv +++|        ABORT;
00333  M00S00333.m86serv +++|        END
00334  M00S00334.m86serv +++|
00335  M00S00335.m86serv +++|      RETURN;
00336  M00S00336.m86serv +++|      END  # RESTPFP #
00337  M00S00337.m86serv +++|
00338  M00S00338.m86serv +++|    TERM
00339  M00S00339.m86serv +++|PROC ZFILL(ZBUF,(WDLEN));
00340  M00S00340.m86serv +++|# TITLE ZFILL - ZERO FILLS A BUFFER.                                  #
00341  M00S00341.m86serv +++|
00342  M00S00342.m86serv +++|      BEGIN  # ZFILL #
00343  M00S00343.m86serv +++|
00344  M00S00344.m86serv +++|#
00345  M00S00345.m86serv +++|**    ZFILL - ZERO FILLS A BUFFER.
00346  M00S00346.m86serv +++|*
00347  M00S00347.m86serv +++|*     PROC ZFILL(ZBUF,(WDLEN))
00348  M00S00348.m86serv +++|*
00349  M00S00349.m86serv +++|*     ENTRY   (WDLEN) = NUMBER OF WORDS TO BE ZERO FILLED.
00350  M00S00350.m86serv +++|*
00351  M00S00351.m86serv +++|*     EXIT    (ZBUF)  = ZERO FILLED BUFFER.
00352  M00S00352.m86serv +++|#
00353  M00S00353.m86serv +++|
00354  M00S00354.m86serv +++|      ARRAY ZBUF [0:0] ;             # ARRAY TO BE ZERO FILLED #
00355  M00S00355.m86serv +++|        BEGIN
00356  M00S00356.m86serv +++|        ITEM ZWORD      U(00,00,60);
00357  M00S00357.m86serv +++|        END
00358  M00S00358.m86serv +++|
00359  M00S00359.m86serv +++|      ITEM WDLEN      I;             # NUMBER OF WORDS TO BE ZEROED #
00360  M00S00360.m86serv +++|
00361  M00S00361.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00362  M00S00362.m86serv +++|*CALL COMBFAS
00363  M00S00363.m86serv +++|
00364  M00S00364.m86serv +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00365  M00S00365.m86serv +++|
00366  M00S00366.m86serv +++|CONTROL EJECT;
00367  M00S00367.m86serv +++|
00368  M00S00368.m86serv +++|#
00369  M00S00369.m86serv +++|*     ZERO FILL THE SPECIFIED NUMBER OF
00370  M00S00370.m86serv +++|*     WORDS IN THE BUFFER.
00371  M00S00371.m86serv +++|#
00372  M00S00372.m86serv +++|
00373  M00S00373.m86serv +++|      FASTFOR I = 0 STEP 1 UNTIL WDLEN-1
00374  M00S00374.m86serv +++|      DO
00375  M00S00375.m86serv +++|        BEGIN
00376  M00S00376.m86serv +++|        ZWORD[I] = 0;
00377  M00S00377.m86serv +++|        END
00378  M00S00378.m86serv +++|
00379  M00S00379.m86serv +++|      END  # ZFILL #
00380  M00S00380.m86serv +++|
00381  M00S00381.m86serv +++|      TERM
00382  M00S00382.m86serv +++|PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL));
00383  M00S00383.m86serv +++|# TITLE ZSETFET - INITIALIZES A *FET*.                                #
00384  M00S00384.m86serv +++|
00385  M00S00385.m86serv +++|      BEGIN  # ZSETFET #
00386  M00S00386.m86serv +++|
00387  M00S00387.m86serv +++|#
00388  M00S00388.m86serv +++|**    ZSETFET - INITIALIZES A FILE ENVIRONMENT TABLE.
00389  M00S00389.m86serv +++|*
00390  M00S00390.m86serv +++|*     THIS PROCEDURE CREATES A *FET* AT THE SPECIFIED
00391  M00S00391.m86serv +++|*     ADDRESS AND SETS STANDARD FIELDS.  OTHER FIELDS MUST BE SET
00392  M00S00392.m86serv +++|*     BY THE USER.
00393  M00S00393.m86serv +++|*
00394  M00S00394.m86serv +++|*     PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL)).
00395  M00S00395.m86serv +++|*
00396  M00S00396.m86serv +++|*     ENTRY   (ADDR) - ADDRESS *FET* IS TO START AT.
00397  M00S00397.m86serv +++|*             (LFN)  - NAME OF FILE TO BE ACCESSED.
00398  M00S00398.m86serv +++|*             (FWA)  - FIRST WORD ADDRESS OF *CIO* BUFFER.
00399  M00S00399.m86serv +++|*             (LEN)  - LENGTH OF THE *CIO* BUFFER.
00400  M00S00400.m86serv +++|*             (FETL) - LENGTH OF THE *FET*.
00401  M00S00401.m86serv +++|*
00402  M00S00402.m86serv +++|*     EXIT    *FET* IS INITIALIZED (I.E. *FIRST*, *IN*, *OUT*, AND
00403  M00S00403.m86serv +++|*             *LIMIT* POINTERS , AND *FET* LENGTH FIELDS ARE SET
00404  M00S00404.m86serv +++|*             AND THE *LFN* FIELD IS ZERO FILLED).
00405  M00S00405.m86serv +++|*
00406  M00S00406.m86serv +++|*     NOTES   VALUES SPECIFIED BY PARAMETERS ARE PLACED IN THE
00407  M00S00407.m86serv +++|*             APPROPRIATE ARRAY FIELDS, AND THE POINTER OF BASED
00408  M00S00408.m86serv +++|*             ARRAY *FETSET* IS SET TO *ADDR*.
00409  M00S00409.m86serv +++|#
00410  M00S00410.m86serv +++|
00411  M00S00411.m86serv +++|
00412  M00S00412.m86serv +++|      ITEM ADDR       U;             # ADDRESS OF *FET* #
00413  M00S00413.m86serv +++|      ITEM LFN        C(7);          # FILE NAME #
00414  M00S00414.m86serv +++|      ITEM FWA        U;             # *FWA* OF *CIO* BUFFER #
00415  M00S00415.m86serv +++|      ITEM LEN        U;             # LENGTH OF *CIO* BUFFER #
00416  M00S00416.m86serv +++|      ITEM FETL       U;             # LENGTH OF *FET* #
00417  M00S00417.m86serv +++|
00418  M00S00418.m86serv +++|#
00419  M00S00419.m86serv +++|****  PROC ZSETFET - XREF LIST BEGIN.
00420  M00S00420.m86serv +++|#
00421  M00S00421.m86serv +++|
00422  M00S00422.m86serv +++|      XREF
00423  M00S00423.m86serv +++|        BEGIN
00424  M00S00424.m86serv +++|        PROC BZFILL;                 # ZERO OR BLANK FILLS ITEM #
00425  M00S00425.m86serv +++|        PROC ZFILL;                  # ZERO FILLS AN ARRAY #
00426  M00S00426.m86serv +++|        END
00427  M00S00427.m86serv +++|
00428  M00S00428.m86serv +++|#
00429  M00S00429.m86serv +++|****  PROC ZSETFET - XREF LIST END.
00430  M00S00430.m86serv +++|#
00431  M00S00431.m86serv +++|
00432  M00S00432.m86serv +++|      DEF MINFETL   #5#;             # MINIMUM *FET* LENGTH #
00433  M00S00433.m86serv +++|
00434  M00S00434.m86serv +++|      DEF LISTCON   #0#;             # CONTROLS LISTING OF COMDECKS #
00435  M00S00435.m86serv +++|
00436  M00S00436.m86serv +++|*CALL COMBFAS
00437  M00S00437.m86serv +++|*CALL COMBBZF
00438  M00S00438.m86serv +++|*CALL COMBFET
00439  M00S00439.m86serv +++|CONTROL EJECT;
00440  M00S00440.m86serv +++|
00441  M00S00441.m86serv +++|#
00442  M00S00442.m86serv +++|*     ZERO FILL *FET* AND SET STANDARD FIELDS.
00443  M00S00443.m86serv +++|#
00444  M00S00444.m86serv +++|
00445  M00S00445.m86serv +++|      P<FETSET> = ADDR;
00446  M00S00446.m86serv +++|      ZFILL(FETSET[0],FETL);
00447  M00S00447.m86serv +++|      BZFILL(LFN,TYPFILL"ZFILL",7);  # ZERO-FILL FILE NAME #
00448  M00S00448.m86serv +++|      FET$LFN[0] = LFN;
00449  M00S00449.m86serv +++|      FET$LOCK[0] = TRUE;
00450  M00S00450.m86serv +++|      FET$FRST[0] = FWA;
00451  M00S00451.m86serv +++|      FET$IN[0] = FWA;
00452  M00S00452.m86serv +++|      FET$OUT[0] = FWA;
00453  M00S00453.m86serv +++|      FET$LIM[0] = FWA + LEN;
00454  M00S00454.m86serv +++|      FET$L[0] = FETL - MINFETL;     # SET LENGTH OF *FET* #
00455  M00S00455.m86serv +++|      RETURN;
00456  M00S00456.m86serv +++|      END  # ZSETFET #
00457  M00S00457.m86serv +++|
00458  M00S00458.m86serv +++|    TERM
cdc/nos2.source/opl.opl871/deck/m86serv.txt ยท Last modified: (external edit)