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)