User Tools

Site Tools


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

Deck M86SERV

0 Modifications

Source

Seq #  *Modification Id* Act 
----------------------------+
00001  M01S00001.m86serv +++|PROC BZFILL(CHAR,(TYP),(NUM));
00002  M01S00002.m86serv +++|# TITLE BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.                #
00003  M01S00003.m86serv +++|
00004  M01S00004.m86serv +++|      BEGIN  # BZFILL #
00005  M01S00005.m86serv +++|
00006  M01S00006.m86serv +++|#
00007  M01S00007.m86serv +++|**    BZFILL - BLANK OR ZERO FILLS A CHARACTER ITEM.
00008  M01S00008.m86serv +++|*
00009  M01S00009.m86serv +++|*     PROC BZFILL(CHAR,(TYP),(NUM))
00010  M01S00010.m86serv +++|*
00011  M01S00011.m86serv +++|*     ENTRY   (TYP)  = TYPE OF FILLING REQUIRED.
00012  M01S00012.m86serv +++|*                    = S"BFILL", BLANK FILLING.
00013  M01S00013.m86serv +++|*                    = S"ZFILL", ZERO FILLING.
00014  M01S00014.m86serv +++|*             (NUM)  = LENGTH OF CHARACTER ITEM IN NUMBER
00015  M01S00015.m86serv +++|*                      OF CHARACTERS.
00016  M01S00016.m86serv +++|*
00017  M01S00017.m86serv +++|*     EXIT    (CHAR) = BLANK OR ZERO FILLED CHARACTER.
00018  M01S00018.m86serv +++|*
00019  M01S00019.m86serv +++|*     NOTES   DEPENDING ON THE TYPE OF CONVERSION, ZEROES
00020  M01S00020.m86serv +++|*             ARE REPLACED BY BLANKS OR BLANKS BY ZEROES.
00021  M01S00021.m86serv +++|#
00022  M01S00022.m86serv +++|
00023  M01S00023.m86serv +++|      ITEM CHAR       C(240);        # ITEM TO BE BLANK/ZERO FILLED #
00024  M01S00024.m86serv +++|      ITEM TYP        U;             # TYPE OF FILLING REQUIRED #
00025  M01S00025.m86serv +++|      ITEM NUM        I;             # LENGTH OF *CHAR* IN NUMBER OF
00026  M01S00026.m86serv +++|                                       CHARACTERS #
00027  M01S00027.m86serv +++|
00028  M01S00028.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00029  M01S00029.m86serv +++|*CALL COMBFAS
00030  M01S00030.m86serv +++|*CALL COMBBZF
00031  M01S00031.m86serv +++|
00032  M01S00032.m86serv +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00033  M01S00033.m86serv +++|
00034  M01S00034.m86serv +++|CONTROL EJECT;
00035  M01S00035.m86serv +++|
00036  M01S00036.m86serv +++|#
00037  M01S00037.m86serv +++|*     START OF EXECUTABLE CODE.
00038  M01S00038.m86serv +++|#
00039  M01S00039.m86serv +++|
00040  M01S00040.m86serv +++|      IF TYP EQ TYPFILL"BFILL"
00041  M01S00041.m86serv +++|      THEN
00042  M01S00042.m86serv +++|        BEGIN  # BLANK FILL #
00043  M01S00043.m86serv +++|        FASTFOR I = 0 STEP 1 UNTIL NUM-1
00044  M01S00044.m86serv +++|        DO
00045  M01S00045.m86serv +++|          BEGIN
00046  M01S00046.m86serv +++|          IF C<I,1>CHAR EQ 0         # REPLACE ZEROES BY BLANKS #
00047  M01S00047.m86serv +++|          THEN
00048  M01S00048.m86serv +++|            BEGIN
00049  M01S00049.m86serv +++|            C<I,1>CHAR = " ";
00050  M01S00050.m86serv +++|            END
00051  M01S00051.m86serv +++|
00052  M01S00052.m86serv +++|          END
00053  M01S00053.m86serv +++|
00054  M01S00054.m86serv +++|        RETURN;
00055  M01S00055.m86serv +++|        END  # BLANK FILL #
00056  M01S00056.m86serv +++|
00057  M01S00057.m86serv +++|      IF TYP EQ TYPFILL"ZFILL"
00058  M01S00058.m86serv +++|      THEN
00059  M01S00059.m86serv +++|        BEGIN  # ZERO FILL #
00060  M01S00060.m86serv +++|        FASTFOR I = 0 STEP 1 UNTIL NUM-1
00061  M01S00061.m86serv +++|        DO
00062  M01S00062.m86serv +++|          BEGIN
00063  M01S00063.m86serv +++|          IF B<I*6,6>CHAR EQ O"55"   # REPLACE BLANKS BY ZEROES #
00064  M01S00064.m86serv +++|          THEN
00065  M01S00065.m86serv +++|            BEGIN
00066  M01S00066.m86serv +++|            B<I*6,6>CHAR = 0;
00067  M01S00067.m86serv +++|            END
00068  M01S00068.m86serv +++|
00069  M01S00069.m86serv +++|          END
00070  M01S00070.m86serv +++|
00071  M01S00071.m86serv +++|        RETURN;
00072  M01S00072.m86serv +++|
00073  M01S00073.m86serv +++|        END  # ZERO FILL #
00074  M01S00074.m86serv +++|
00075  M01S00075.m86serv +++|      END  # BZFILL #
00076  M01S00076.m86serv +++|
00077  M01S00077.m86serv +++|    TERM
00078  M01S00078.m86serv +++|PROC LOFPROC((LFN));
00079  M01S00079.m86serv +++|# TITLE LOFPROC - LIST OF FILES PROCESSOR.                            #
00080  M01S00080.m86serv +++|
00081  M01S00081.m86serv +++|      BEGIN  # LOFPROC #
00082  M01S00082.m86serv +++|
00083  M01S00083.m86serv +++|#
00084  M01S00084.m86serv +++|**    LOFPROC - LIST OF FILES PROCESSOR.
00085  M01S00085.m86serv +++|*
00086  M01S00086.m86serv +++|*     *LOFPROC* IS USED TO CREATE A LIST OF LOCAL FILE NAMES, AND ALSO
00087  M01S00087.m86serv +++|*     TO RETURN THE FILES NAMED IN THIS LIST.
00088  M01S00088.m86serv +++|*
00089  M01S00089.m86serv +++|*     PROC LOFPROC((LFN))
00090  M01S00090.m86serv +++|*
00091  M01S00091.m86serv +++|*     ENTRY    (LFN) = NONZERO, LOCAL FILE NAME TO BE ADDED TO THE
00092  M01S00092.m86serv +++|*                      LIST OF FILES.
00093  M01S00093.m86serv +++|*                    = 0, ALL FILES IN THE LIST ARE TO BE RETURNED.
00094  M01S00094.m86serv +++|*
00095  M01S00095.m86serv +++|*     EXIT     THE SPECIFIED FILE HAS BEEN ADDED TO THE LIST, OR ALL
00096  M01S00096.m86serv +++|*              FILES IN THE LIST HAVE BEEN RETURNED.
00097  M01S00097.m86serv +++|#
00098  M01S00098.m86serv +++|
00099  M01S00099.m86serv +++|      ITEM LFN       I;              # FILE NAME TO BE ADDED TO LIST #
00100  M01S00100.m86serv +++|
00101  M01S00101.m86serv +++|#
00102  M01S00102.m86serv +++|****  PROC LOFPROC - XREF LIST BEGIN.
00103  M01S00103.m86serv +++|#
00104  M01S00104.m86serv +++|
00105  M01S00105.m86serv +++|      XREF
00106  M01S00106.m86serv +++|        BEGIN
00107  M01S00107.m86serv +++|        PROC BZFILL;                 # BLANK OR ZERO FILL ITEM #
00108  M01S00108.m86serv +++|        PROC RETERN;                 # RETURN FILE #
00109  M01S00109.m86serv +++|        PROC ZSETFET;                # INITIALIZE FET #
00110  M01S00110.m86serv +++|        END
00111  M01S00111.m86serv +++|
00112  M01S00112.m86serv +++|#
00113  M01S00113.m86serv +++|****  PROC LOFPROC - XREF LIST END.
00114  M01S00114.m86serv +++|#
00115  M01S00115.m86serv +++|
00116  M01S00116.m86serv +++|      DEF LOFMAX     #15#;           # MAXIMUM LENGTH OF FILE LIST #
00117  M01S00117.m86serv +++|
00118  M01S00118.m86serv +++|      DEF LISTCON    #0#;            # DO NOT LIST COMDECKS #
00119  M01S00119.m86serv +++|*CALL COMBFAS
00120  M01S00120.m86serv +++|*CALL COMBFET
00121  M01S00121.m86serv +++|
00122  M01S00122.m86serv +++|      ITEM I          I;             # INDUCTION VARIABLE #
00123  M01S00123.m86serv +++|      ITEM ORD        U = 0;         # CURRENT TABLE ORDINAL #
00124  M01S00124.m86serv +++|
00125  M01S00125.m86serv +++|      ARRAY LFET [0:0] S(SFETL); ;   # FET USED FOR *RETURN* REQUEST #
00126  M01S00126.m86serv +++|      ARRAY LOF [0:LOFMAX] S(1);     # LIST OF FILES TABLE #
00127  M01S00127.m86serv +++|        BEGIN
00128  M01S00128.m86serv +++|        ITEM LOF$WRD    U(00,00,60);  # FULL WORD DEFINITION #
00129  M01S00129.m86serv +++|        ITEM LOF$LFN    C(00,00,07);  # LOCAL FILE NAME #
00130  M01S00130.m86serv +++|        END
00131  M01S00131.m86serv +++|
00132  M01S00132.m86serv +++|                                               CONTROL EJECT;
00133  M01S00133.m86serv +++|
00134  M01S00134.m86serv +++|      IF LFN NQ 0 AND ORD LQ LOFMAX
00135  M01S00135.m86serv +++|      THEN                           # ADD LFN TO LIST OF FILES #
00136  M01S00136.m86serv +++|        BEGIN
00137  M01S00137.m86serv +++|        BZFILL(LFN,1,7);
00138  M01S00138.m86serv +++|        LOF$WRD[ORD] = LFN;
00139  M01S00139.m86serv +++|        ORD = ORD + 1;
00140  M01S00140.m86serv +++|        RETURN;
00141  M01S00141.m86serv +++|        END
00142  M01S00142.m86serv +++|
00143  M01S00143.m86serv +++|      IF LFN EQ 0
00144  M01S00144.m86serv +++|      THEN                           # RETURN ALL FILES LISTED #
00145  M01S00145.m86serv +++|        BEGIN  # RETURN FILES #
00146  M01S00146.m86serv +++|        ZSETFET(LOC(LFET[0]),"",0,0,SFETL);
00147  M01S00147.m86serv +++|
00148  M01S00148.m86serv +++|        SLOWFOR I = 0 STEP 1 WHILE I LS ORD
00149  M01S00149.m86serv +++|        DO
00150  M01S00150.m86serv +++|          BEGIN
00151  M01S00151.m86serv +++|          FET$LFN[0] = LOF$LFN[I];
00152  M01S00152.m86serv +++|          RETERN(LFET[0],RCL);
00153  M01S00153.m86serv +++|          END
00154  M01S00154.m86serv +++|
00155  M01S00155.m86serv +++|        END  # RETURN FILES #
00156  M01S00156.m86serv +++|
00157  M01S00157.m86serv +++|      RETURN;
00158  M01S00158.m86serv +++|      END  # LOFPROC #
00159  M01S00159.m86serv +++|
00160  M01S00160.m86serv +++|    TERM
00161  M01S00161.m86serv +++|PROC MSG((DFMSG),(OP));
00162  M01S00162.m86serv +++|# TITLE MSG - DISPLAY DAYFILE MESSAGE.                                #
00163  M01S00163.m86serv +++|
00164  M01S00164.m86serv +++|      BEGIN  # MSG #
00165  M01S00165.m86serv +++|
00166  M01S00166.m86serv +++|#
00167  M01S00167.m86serv +++|**    MSG - DISPLAY DAYFILE MESSAGE.
00168  M01S00168.m86serv +++|*
00169  M01S00169.m86serv +++|*     *MSG* SEARCHES A MESSAGE FOR A TERMINATING CHARACTER AND
00170  M01S00170.m86serv +++|*     ZERO FILLS THE MESSAGE FROM THE TERMINATOR TO THE END
00171  M01S00171.m86serv +++|*     OF THE MESSAGE.
00172  M01S00172.m86serv +++|*
00173  M01S00173.m86serv +++|*     PROC MSG((DFMSG),(OP))
00174  M01S00174.m86serv +++|*
00175  M01S00175.m86serv +++|*     ENTRY      (DFMSG) - MESSAGE TO BE DISPLAYED, 80 CHARACTER
00176  M01S00176.m86serv +++|*                          MAXIMUM.
00177  M01S00177.m86serv +++|*                (OP)    - MESSAGE ROUTING OPTION.
00178  M01S00178.m86serv +++|*                          (VALUES DEFINED IN *COMBFAS*)
00179  M01S00179.m86serv +++|*
00180  M01S00180.m86serv +++|*     EXIT       THE MESSAGE HAS BEEN DISPLAYED AT THE LOCATION
00181  M01S00181.m86serv +++|*                SPECIFIED BY (OP).
00182  M01S00182.m86serv +++|#
00183  M01S00183.m86serv +++|
00184  M01S00184.m86serv +++|      ITEM DFMSG      C(80);         # MESSAGE TEXT #
00185  M01S00185.m86serv +++|      ITEM OP         I;             # MESSAGE ROUTING OPTION #
00186  M01S00186.m86serv +++|
00187  M01S00187.m86serv +++|#
00188  M01S00188.m86serv +++|****  PROC MSG - XREF LIST BEGIN.
00189  M01S00189.m86serv +++|#
00190  M01S00190.m86serv +++|
00191  M01S00191.m86serv +++|      XREF
00192  M01S00192.m86serv +++|        BEGIN
00193  M01S00193.m86serv +++|        PROC MESSAGE;                # ISSUE MESSAGE #
00194  M01S00194.m86serv +++|        END
00195  M01S00195.m86serv +++|
00196  M01S00196.m86serv +++|#
00197  M01S00197.m86serv +++|****  PROC MSG - XREF LIST END.
00198  M01S00198.m86serv +++|#
00199  M01S00199.m86serv +++|
00200  M01S00200.m86serv +++|      DEF BLANK #" "#;               # BLANK CHARACTER #
00201  M01S00201.m86serv +++|      DEF TERMCHAR #";"#;            # TERMINATOR CHARACTER #
00202  M01S00202.m86serv +++|
00203  M01S00203.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00204  M01S00204.m86serv +++|*CALL COMBFAS
00205  M01S00205.m86serv +++|
00206  M01S00206.m86serv +++|      ITEM I          I;             # LOOP COUNTER #
00207  M01S00207.m86serv +++|      ITEM CP         I;             # CHARACTER POSITION #
00208  M01S00208.m86serv +++|
00209  M01S00209.m86serv +++|CONTROL EJECT;
00210  M01S00210.m86serv +++|
00211  M01S00211.m86serv +++|      CP = 0;
00212  M01S00212.m86serv +++|      FASTFOR I = 0 STEP 1 WHILE I LS 80 AND CP EQ 0
00213  M01S00213.m86serv +++|      DO                             # FIND TERMINATOR #
00214  M01S00214.m86serv +++|        BEGIN
00215  M01S00215.m86serv +++|        IF C<I,1>DFMSG EQ TERMCHAR
00216  M01S00216.m86serv +++|        THEN
00217  M01S00217.m86serv +++|          BEGIN
00218  M01S00218.m86serv +++|          CP = I;
00219  M01S00219.m86serv +++|          END
00220  M01S00220.m86serv +++|
00221  M01S00221.m86serv +++|        END
00222  M01S00222.m86serv +++|
00223  M01S00223.m86serv +++|      IF CP NQ 0
00224  M01S00224.m86serv +++|      THEN                           # ZERO FILL END OF MESSAGE #
00225  M01S00225.m86serv +++|        BEGIN
00226  M01S00226.m86serv +++|        B<CP*6,(80-CP)*6>DFMSG = 0;
00227  M01S00227.m86serv +++|        END
00228  M01S00228.m86serv +++|
00229  M01S00229.m86serv +++|      MESSAGE(DFMSG,OP);             # ISSUE MESSAGE #
00230  M01S00230.m86serv +++|      RETURN;
00231  M01S00231.m86serv +++|      END  # MSG #
00232  M01S00232.m86serv +++|
00233  M01S00233.m86serv +++|    TERM
00234  M01S00234.m86serv +++|PROC RESTPFP((OPTION));
00235  M01S00235.m86serv +++|# TITLE RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.             #
00236  M01S00236.m86serv +++|
00237  M01S00237.m86serv +++|      BEGIN  # RESTPFP #
00238  M01S00238.m86serv +++|
00239  M01S00239.m86serv +++|#
00240  M01S00240.m86serv +++|**    RESTPFP - RESTORE USER *PFP* AND ABORT OR RETURN.
00241  M01S00241.m86serv +++|*
00242  M01S00242.m86serv +++|*     *RESTPFP* RESTORES THE USER-S FAMILY AND USER INDEX, AND
00243  M01S00243.m86serv +++|*     OPTIONALLY CALLS *LOFPROC* TO RETURN ANY LISTED FILES.
00244  M01S00244.m86serv +++|*
00245  M01S00245.m86serv +++|*     PROC RESTPFP((OPTION))
00246  M01S00246.m86serv +++|*
00247  M01S00247.m86serv +++|*     ENTRY     (OPTION) - PROCESSING OPTION (VALUES DEFINED IN
00248  M01S00248.m86serv +++|*                          *COMBFAS*).
00249  M01S00249.m86serv +++|*                        = *PFP$ABORT*, RESTORE *PFP*, RETURN ANY
00250  M01S00250.m86serv +++|*                          LISTED FILES, AND ABORT PROCESSING.
00251  M01S00251.m86serv +++|*                        = *PFP$END*, RESTORE *PFP*, RETURN ANY LISTED
00252  M01S00252.m86serv +++|*                          FILES, AND RETURN TO CALLING PROGRAM.
00253  M01S00253.m86serv +++|*                        = *PFP$RESUME*, RESTORE *PFP* AND RETURN TO
00254  M01S00254.m86serv +++|*                          CALLING PROGRAM (NO FILES RETURNED).
00255  M01S00255.m86serv +++|*               (USER$FAM) = USER-S CURRENT FAMILY (IN *APFPCOM*).
00256  M01S00256.m86serv +++|*               (USER$UI)  = USER-S CURRENT USER INDEX (IN *APFPCOM*).
00257  M01S00257.m86serv +++|*
00258  M01S00258.m86serv +++|*     EXIT      THE USER INDEX AND FAMILY OF THE USER HAVE BEEN
00259  M01S00259.m86serv +++|*               RESTORED.  DEPENDING ON THE VALUE OF *OPTION*,
00260  M01S00260.m86serv +++|*               LISTED FILES MAY HAVE BEEN RETURNED, AND/OR
00261  M01S00261.m86serv +++|*               PROCESSING MAY HAVE BEEN ABORTED.
00262  M01S00262.m86serv +++|*
00263  M01S00263.m86serv +++|*     MESSAGE   * PROGRAM ABNORMAL, RESTPFP.*.
00264  M01S00264.m86serv +++|#
00265  M01S00265.m86serv +++|
00266  M01S00266.m86serv +++|      ITEM OPTION     I;             # PROCESSING OPTION #
00267  M01S00267.m86serv +++|
00268  M01S00268.m86serv +++|#
00269  M01S00269.m86serv +++|****  PROC RESTPFP - XREF LIST BEGIN.
00270  M01S00270.m86serv +++|#
00271  M01S00271.m86serv +++|
00272  M01S00272.m86serv +++|      XREF
00273  M01S00273.m86serv +++|        BEGIN
00274  M01S00274.m86serv +++|        PROC ABORT;                  # ISSUE ABORT #
00275  M01S00275.m86serv +++|        PROC LOFPROC;                # LIST OF FILES PROCESSOR #
00276  M01S00276.m86serv +++|        PROC MESSAGE;                # ISSUE MESSAGE #
00277  M01S00277.m86serv +++|        PROC SETPFP;                 # SET FAMILY AND USER INDEX #
00278  M01S00278.m86serv +++|        END
00279  M01S00279.m86serv +++|
00280  M01S00280.m86serv +++|#
00281  M01S00281.m86serv +++|****  PROC RESTPFP - XREF LIST BEGIN.
00282  M01S00282.m86serv +++|#
00283  M01S00283.m86serv +++|
00284  M01S00284.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00285  M01S00285.m86serv +++|
00286  M01S00286.m86serv +++|*CALL COMBFAS
00287  M01S00287.m86serv +++|*CALL COMBPFP
00288  M01S00288.m86serv +++|
00289  M01S00289.m86serv +++|      ARRAY PFPMSG [0:0] S(3);       # ABNORMAL CONDITION MESSAGE #
00290  M01S00290.m86serv +++|        BEGIN
00291  M01S00291.m86serv +++|        ITEM PFPLINE    C(00,00,28) =[  # MESSAGE LINE #
00292  M01S00292.m86serv +++|        " PROGRAM ABNORMAL, RESTPFP."];
00293  M01S00293.m86serv +++|        ITEM PFPZERO    U(02,48,12)=[0];  # ZERO BYTE TERMINATOR #
00294  M01S00294.m86serv +++|        END
00295  M01S00295.m86serv +++|
00296  M01S00296.m86serv +++|                                               CONTROL EJECT;
00297  M01S00297.m86serv +++|
00298  M01S00298.m86serv +++|#
00299  M01S00299.m86serv +++|*    RESTORE FAMILY AND USER INDEX TO USER VALUES.
00300  M01S00300.m86serv +++|#
00301  M01S00301.m86serv +++|
00302  M01S00302.m86serv +++|      PFP$WRD0[0] = 0;
00303  M01S00303.m86serv +++|      PFP$FAM[0] = USER$FAM[0];
00304  M01S00304.m86serv +++|      PFP$UI[0] = USER$UI[0];
00305  M01S00305.m86serv +++|      PFP$FG1[0] = TRUE;
00306  M01S00306.m86serv +++|      PFP$FG4[0] = TRUE;
00307  M01S00307.m86serv +++|      SETPFP(PFP[0]);
00308  M01S00308.m86serv +++|      IF PFP$STAT[0] NQ OK
00309  M01S00309.m86serv +++|      THEN
00310  M01S00310.m86serv +++|        BEGIN
00311  M01S00311.m86serv +++|        MESSAGE(PFPMSG[0],UDFL1);
00312  M01S00312.m86serv +++|        ABORT;
00313  M01S00313.m86serv +++|        END
00314  M01S00314.m86serv +++|
00315  M01S00315.m86serv +++|#
00316  M01S00316.m86serv +++|*     OPTIONALLY RETURN LISTED FILES.
00317  M01S00317.m86serv +++|#
00318  M01S00318.m86serv +++|
00319  M01S00319.m86serv +++|      IF OPTION NQ PFP$RESUME
00320  M01S00320.m86serv +++|      THEN
00321  M01S00321.m86serv +++|        BEGIN
00322  M01S00322.m86serv +++|        LOFPROC(0);
00323  M01S00323.m86serv +++|        END
00324  M01S00324.m86serv +++|
00325  M01S00325.m86serv +++|#
00326  M01S00326.m86serv +++|*     OPTIONALLY ABORT PROCESSING.
00327  M01S00327.m86serv +++|#
00328  M01S00328.m86serv +++|
00329  M01S00329.m86serv +++|      IF OPTION EQ PFP$ABORT
00330  M01S00330.m86serv +++|      THEN                           # ABORT REQUESTED #
00331  M01S00331.m86serv +++|        BEGIN
00332  M01S00332.m86serv +++|        ABORT;
00333  M01S00333.m86serv +++|        END
00334  M01S00334.m86serv +++|
00335  M01S00335.m86serv +++|      RETURN;
00336  M01S00336.m86serv +++|      END  # RESTPFP #
00337  M01S00337.m86serv +++|
00338  M01S00338.m86serv +++|    TERM
00339  M01S00339.m86serv +++|PROC ZFILL(ZBUF,(WDLEN));
00340  M01S00340.m86serv +++|# TITLE ZFILL - ZERO FILLS A BUFFER.                                  #
00341  M01S00341.m86serv +++|
00342  M01S00342.m86serv +++|      BEGIN  # ZFILL #
00343  M01S00343.m86serv +++|
00344  M01S00344.m86serv +++|#
00345  M01S00345.m86serv +++|**    ZFILL - ZERO FILLS A BUFFER.
00346  M01S00346.m86serv +++|*
00347  M01S00347.m86serv +++|*     PROC ZFILL(ZBUF,(WDLEN))
00348  M01S00348.m86serv +++|*
00349  M01S00349.m86serv +++|*     ENTRY   (WDLEN) = NUMBER OF WORDS TO BE ZERO FILLED.
00350  M01S00350.m86serv +++|*
00351  M01S00351.m86serv +++|*     EXIT    (ZBUF)  = ZERO FILLED BUFFER.
00352  M01S00352.m86serv +++|#
00353  M01S00353.m86serv +++|
00354  M01S00354.m86serv +++|      ARRAY ZBUF [0:0] ;             # ARRAY TO BE ZERO FILLED #
00355  M01S00355.m86serv +++|        BEGIN
00356  M01S00356.m86serv +++|        ITEM ZWORD      U(00,00,60);
00357  M01S00357.m86serv +++|        END
00358  M01S00358.m86serv +++|
00359  M01S00359.m86serv +++|      ITEM WDLEN      I;             # NUMBER OF WORDS TO BE ZEROED #
00360  M01S00360.m86serv +++|
00361  M01S00361.m86serv +++|      DEF LISTCON #0#;               # DO NOT LIST COMDECKS #
00362  M01S00362.m86serv +++|*CALL COMBFAS
00363  M01S00363.m86serv +++|
00364  M01S00364.m86serv +++|      ITEM I          I;             # LOOP INDUCTION VARIABLE #
00365  M01S00365.m86serv +++|
00366  M01S00366.m86serv +++|CONTROL EJECT;
00367  M01S00367.m86serv +++|
00368  M01S00368.m86serv +++|#
00369  M01S00369.m86serv +++|*     ZERO FILL THE SPECIFIED NUMBER OF
00370  M01S00370.m86serv +++|*     WORDS IN THE BUFFER.
00371  M01S00371.m86serv +++|#
00372  M01S00372.m86serv +++|
00373  M01S00373.m86serv +++|      FASTFOR I = 0 STEP 1 UNTIL WDLEN-1
00374  M01S00374.m86serv +++|      DO
00375  M01S00375.m86serv +++|        BEGIN
00376  M01S00376.m86serv +++|        ZWORD[I] = 0;
00377  M01S00377.m86serv +++|        END
00378  M01S00378.m86serv +++|
00379  M01S00379.m86serv +++|      END  # ZFILL #
00380  M01S00380.m86serv +++|
00381  M01S00381.m86serv +++|      TERM
00382  M01S00382.m86serv +++|PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL));
00383  M01S00383.m86serv +++|# TITLE ZSETFET - INITIALIZES A *FET*.                                #
00384  M01S00384.m86serv +++|
00385  M01S00385.m86serv +++|      BEGIN  # ZSETFET #
00386  M01S00386.m86serv +++|
00387  M01S00387.m86serv +++|#
00388  M01S00388.m86serv +++|**    ZSETFET - INITIALIZES A FILE ENVIRONMENT TABLE.
00389  M01S00389.m86serv +++|*
00390  M01S00390.m86serv +++|*     THIS PROCEDURE CREATES A *FET* AT THE SPECIFIED
00391  M01S00391.m86serv +++|*     ADDRESS AND SETS STANDARD FIELDS.  OTHER FIELDS MUST BE SET
00392  M01S00392.m86serv +++|*     BY THE USER.
00393  M01S00393.m86serv +++|*
00394  M01S00394.m86serv +++|*     PROC ZSETFET((ADDR),(LFN),(FWA),(LEN),(FETL)).
00395  M01S00395.m86serv +++|*
00396  M01S00396.m86serv +++|*     ENTRY   (ADDR) - ADDRESS *FET* IS TO START AT.
00397  M01S00397.m86serv +++|*             (LFN)  - NAME OF FILE TO BE ACCESSED.
00398  M01S00398.m86serv +++|*             (FWA)  - FIRST WORD ADDRESS OF *CIO* BUFFER.
00399  M01S00399.m86serv +++|*             (LEN)  - LENGTH OF THE *CIO* BUFFER.
00400  M01S00400.m86serv +++|*             (FETL) - LENGTH OF THE *FET*.
00401  M01S00401.m86serv +++|*
00402  M01S00402.m86serv +++|*     EXIT    *FET* IS INITIALIZED (I.E. *FIRST*, *IN*, *OUT*, AND
00403  M01S00403.m86serv +++|*             *LIMIT* POINTERS , AND *FET* LENGTH FIELDS ARE SET
00404  M01S00404.m86serv +++|*             AND THE *LFN* FIELD IS ZERO FILLED).
00405  M01S00405.m86serv +++|*
00406  M01S00406.m86serv +++|*     NOTES   VALUES SPECIFIED BY PARAMETERS ARE PLACED IN THE
00407  M01S00407.m86serv +++|*             APPROPRIATE ARRAY FIELDS, AND THE POINTER OF BASED
00408  M01S00408.m86serv +++|*             ARRAY *FETSET* IS SET TO *ADDR*.
00409  M01S00409.m86serv +++|#
00410  M01S00410.m86serv +++|
00411  M01S00411.m86serv +++|
00412  M01S00412.m86serv +++|      ITEM ADDR       U;             # ADDRESS OF *FET* #
00413  M01S00413.m86serv +++|      ITEM LFN        C(7);          # FILE NAME #
00414  M01S00414.m86serv +++|      ITEM FWA        U;             # *FWA* OF *CIO* BUFFER #
00415  M01S00415.m86serv +++|      ITEM LEN        U;             # LENGTH OF *CIO* BUFFER #
00416  M01S00416.m86serv +++|      ITEM FETL       U;             # LENGTH OF *FET* #
00417  M01S00417.m86serv +++|
00418  M01S00418.m86serv +++|#
00419  M01S00419.m86serv +++|****  PROC ZSETFET - XREF LIST BEGIN.
00420  M01S00420.m86serv +++|#
00421  M01S00421.m86serv +++|
00422  M01S00422.m86serv +++|      XREF
00423  M01S00423.m86serv +++|        BEGIN
00424  M01S00424.m86serv +++|        PROC BZFILL;                 # ZERO OR BLANK FILLS ITEM #
00425  M01S00425.m86serv +++|        PROC ZFILL;                  # ZERO FILLS AN ARRAY #
00426  M01S00426.m86serv +++|        END
00427  M01S00427.m86serv +++|
00428  M01S00428.m86serv +++|#
00429  M01S00429.m86serv +++|****  PROC ZSETFET - XREF LIST END.
00430  M01S00430.m86serv +++|#
00431  M01S00431.m86serv +++|
00432  M01S00432.m86serv +++|      DEF MINFETL   #5#;             # MINIMUM *FET* LENGTH #
00433  M01S00433.m86serv +++|
00434  M01S00434.m86serv +++|      DEF LISTCON   #0#;             # CONTROLS LISTING OF COMDECKS #
00435  M01S00435.m86serv +++|
00436  M01S00436.m86serv +++|*CALL COMBFAS
00437  M01S00437.m86serv +++|*CALL COMBBZF
00438  M01S00438.m86serv +++|*CALL COMBFET
00439  M01S00439.m86serv +++|CONTROL EJECT;
00440  M01S00440.m86serv +++|
00441  M01S00441.m86serv +++|#
00442  M01S00442.m86serv +++|*     ZERO FILL *FET* AND SET STANDARD FIELDS.
00443  M01S00443.m86serv +++|#
00444  M01S00444.m86serv +++|
00445  M01S00445.m86serv +++|      P<FETSET> = ADDR;
00446  M01S00446.m86serv +++|      ZFILL(FETSET[0],FETL);
00447  M01S00447.m86serv +++|      BZFILL(LFN,TYPFILL"ZFILL",7);  # ZERO-FILL FILE NAME #
00448  M01S00448.m86serv +++|      FET$LFN[0] = LFN;
00449  M01S00449.m86serv +++|      FET$LOCK[0] = TRUE;
00450  M01S00450.m86serv +++|      FET$FRST[0] = FWA;
00451  M01S00451.m86serv +++|      FET$IN[0] = FWA;
00452  M01S00452.m86serv +++|      FET$OUT[0] = FWA;
00453  M01S00453.m86serv +++|      FET$LIM[0] = FWA + LEN;
00454  M01S00454.m86serv +++|      FET$L[0] = FETL - MINFETL;     # SET LENGTH OF *FET* #
00455  M01S00455.m86serv +++|      RETURN;
00456  M01S00456.m86serv +++|      END  # ZSETFET #
00457  M01S00457.m86serv +++|
00458  M01S00458.m86serv +++|    TERM
cdc/nos2.source/opl.opl871/deck/m86serv.txt ยท Last modified: by 127.0.0.1