cdc:nos2.source:opl.opl871:deck:ssmove
Deck SSMOVE
Library Member Format: MODIFY
Listing Sections
- Deck SSMOVE Start
- Deck SSMOVE Part 1 (Line 2256)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.ssmove +++|PRGM SSMOVE; 00002 M00S00002.ssmove +++|# TITLE SSMOVE - INITIALIZES *SSMOVE* UTILITY. # 00003 M00S00003.ssmove +++| 00004 M00S00004.ssmove +++| BEGIN # SSMOVE # 00005 M00S00005.ssmove +++| 00006 M00S00006.ssmove +++|# 00007 M00S00007.ssmove +++|*** SSMOVE - INITIALIZES *SSMOVE* UTILITY. 00008 M00S00008.ssmove +++|* 00009 M00S00009.ssmove +++|* THIS PRGM INITIALIZES THE *SSMOVE* UTILITY BY CRACKING 00010 M00S00010.ssmove +++|* THE CONTROL CARD AND SYNTAX CHECKING THE PARAMETERS. 00011 M00S00011.ssmove +++|* 00012 M00S00012.ssmove +++|* SSMOVE,I,L,FM,LO,DN,NW,UI,PX,SB. 00013 M00S00013.ssmove +++|* 00014 M00S00014.ssmove +++|* PRGM SSMOVE. 00015 M00S00015.ssmove +++|* 00016 M00S00016.ssmove +++|* ENTRY. INPUTS TO *SSMOVE* ARE 00017 M00S00017.ssmove +++|* 00018 M00S00018.ssmove +++|* I INPUT DIRECTIVES ON FILE *INPUT*. 00019 M00S00019.ssmove +++|* I = FLNM INPUT DIRECTIVES ON FILE *FLNM*. 00020 M00S00020.ssmove +++|* I = 0 NO INPUT DIRECTIVES. DEFAULT PARAMETERS 00021 M00S00021.ssmove +++|* WILL BE USED. 00022 M00S00022.ssmove +++|* I OMITTED SAME AS *I*. 00023 M00S00023.ssmove +++|* 00024 M00S00024.ssmove +++|* L LISTABLE OUTPUT IS ON FILE *OUTPUT*. 00025 M00S00025.ssmove +++|* L = LFN LISTABLE OUTPUT IS ON FILE *LFN*. 00026 M00S00026.ssmove +++|* L = 0 NO OUTPUT FILE GENERATED. 00027 M00S00027.ssmove +++|* L OMITTED SAME AS *L*. 00028 M00S00028.ssmove +++|* 00029 M00S00029.ssmove +++|* 00030 M00S00030.ssmove +++|* NW NO WAIT - DO NOT WAIT FOR EXEC TO PROCESS 00031 M00S00031.ssmove +++|* THE *SSMOVE* REQUEST FILE. 00032 M00S00032.ssmove +++|* NW OMITTED WAIT FOR COMPLETION OF *SSMOVE* REQUEST 00033 M00S00033.ssmove +++|* PROCESSING BY EXEC. 00034 M00S00034.ssmove +++|* 00035 M00S00035.ssmove +++|* FM USE DEFAULT FAMILY. 00036 M00S00036.ssmove +++|* FM = FAMILY FAMILY TO BE PROCESSED. 00037 M00S00037.ssmove +++|* FM OMITTED SAME AS *FM*. 00038 M00S00038.ssmove +++|* 00039 M00S00039.ssmove +++|* LO INDIVIDUAL FILES ARE NOT TO BE LISTED IN 00040 M00S00040.ssmove +++|* THE REPORT FILE. 00041 M00S00041.ssmove +++|* LO = F ALL FILES SELECTED FOR STAGING, DESTAGING, 00042 M00S00042.ssmove +++|* OR RELEASING ARE LISTED IN THE REPORT FILE. 00043 M00S00043.ssmove +++|* LO = P LIST ONLY FILES ACTUALLY PROCESSED IN 00044 M00S00044.ssmove +++|* REPORT FILE (PER *PX* PARAMETER). 00045 M00S00045.ssmove +++|* LO OMITTED SAME AS *LO*. 00046 M00S00046.ssmove +++|* 00047 M00S00047.ssmove +++|* DN FILES FROM ALL DEVICES IN A SPECIFIED 00048 M00S00048.ssmove +++|* FAMILY ARE ELIGIBLE FOR DESTAGE AND 00049 M00S00049.ssmove +++|* RELEASE. 00050 M00S00050.ssmove +++|* DN = DEVICE DEVICE NUMBER OF THE ONLY DISK FROM 00051 M00S00051.ssmove +++|* WHICH FILES ARE ELIGIBLE FOR DESTAGE AND 00052 M00S00052.ssmove +++|* RELEASE. 00053 M00S00053.ssmove +++|* DN OMITTED SAME AS *DN*. 00054 M00S00054.ssmove +++|* 00055 M00S00055.ssmove +++|* LB = N LARGE FILE BOUNDARY, USED WHEN 00056 M00S00056.ssmove +++|* SORTING FILES FOR DESTAGING. ALL FILES 00057 M00S00057.ssmove +++|* SMALLER THAN *N* PRU-S ARE CONSIDERED 00058 M00S00058.ssmove +++|* SMALL FILES. 00059 M00S00059.ssmove +++|* LB DEFAULT LARGE FILE BOUNDARY IS USED. 00060 M00S00060.ssmove +++|* LB OMITTED SAME AS *LB*. 00061 M00S00061.ssmove +++|* 00062 M00S00062.ssmove +++|* UI ALL USER INDICES ARE PROCESSED. 00063 M00S00063.ssmove +++|* UI = N RESTRICT PROCESSING TO FILES HAVING 00064 M00S00064.ssmove +++|* USER INDEX *N*. 00065 M00S00065.ssmove +++|* UI OMITTED SAME AS *UI*. 00066 M00S00066.ssmove +++|* 00067 M00S00067.ssmove +++|* PX ALL SELECTED PROCESSING WILL BE DONE. 00068 M00S00068.ssmove +++|* PX = XXX *XXX* IS A CHARACTER STRING IDENTIFYING 00069 M00S00069.ssmove +++|* WHICH TYPES OF PROCESSING ARE TO BE 00070 M00S00070.ssmove +++|* EXCLUDED. EACH CHARACTER OF *XXX* CAN BE 00071 M00S00071.ssmove +++|* ONE OF THE LETTERS *ABDFIS*. 00072 M00S00072.ssmove +++|* *I* INHIBITS PROCESSING OF INDIRECT ACCESS 00073 M00S00073.ssmove +++|* FILES. 00074 M00S00074.ssmove +++|* *D* INHIBITS PROCESSING OF DIRECT ACCESS 00075 M00S00075.ssmove +++|* FILES. 00076 M00S00076.ssmove +++|* *A* CONTROLS RELEASING OF DISK SPACE 00077 M00S00077.ssmove +++|* (ARCHIVING). 00078 M00S00078.ssmove +++|* *B* CONTROLS DESTAGING A FILE FROM DISK TO 00079 M00S00079.ssmove +++|* M860 (BACK-UP). 00080 M00S00080.ssmove +++|* *S* CONTROLS STAGING A FILE TO DISK. 00081 M00S00081.ssmove +++|* *F* CONTROLS FREEING A FILE FROM M860 BY 00082 M00S00082.ssmove +++|* CLEARING ITS ASA VALUE FROM THE FILES 00083 M00S00083.ssmove +++|* *PFC* ENTRY. 00084 M00S00084.ssmove +++|* (E.G. PX = ABFS REPORTS THE RESULTS OF A 00085 M00S00085.ssmove +++|* *SSMOVE* RUN WITHOUT ACTUALLY PERFORMING 00086 M00S00086.ssmove +++|* THE SELECTED ACTIONS.) 00087 M00S00087.ssmove +++|* PX OMITTED SAME AS *PX*. 00088 M00S00088.ssmove +++|* 00089 M00S00089.ssmove +++|* EXIT. *SSMOVE* PROCESSED OR AN ERROR CONDITION 00090 M00S00090.ssmove +++|* ENCOUNTERED. 00091 M00S00091.ssmove +++|* 00092 M00S00092.ssmove +++|* MESSAGES. SSMOVE - MUST BE SYSTEM ORIGIN. 00093 M00S00093.ssmove +++|* SSMOVE COMPLETE. 00094 M00S00094.ssmove +++|* SSMOVE ABNORMAL, SSMOVE. 00095 M00S00095.ssmove +++|* UNABLE TO CONNECT WITH EXEC. 00096 M00S00096.ssmove +++|* 00097 M00S00097.ssmove +++|* NOTES. PRGM *SSMOVE* INITIALIZES *SSMOVE* UTILITY BY 00098 M00S00098.ssmove +++|* CRACKING AND SYNTAX CHECKING THE CONTROL CARD 00099 M00S00099.ssmove +++|* PARAMETERS. ANY ERROR IN THE CONTROL CARD OR 00100 M00S00100.ssmove +++|* IN *SSMOVE* PROCESSING CAUSES THE UTILITY TO 00101 M00S00101.ssmove +++|* ABORT. PRGM *SSMOVE* IS THE MAIN MODULE FROM 00102 M00S00102.ssmove +++|* WHICH ALL THE OTHER ROUTINES ARE CALLED. THE LIVE 00103 M00S00103.ssmove +++|* PFC IS READ AND THE ENTRIES FOR THE FILES CANDIDATE 00104 M00S00104.ssmove +++|* FOR *DESTAGE AND RELEASE* OR *DESTAGE ONLY* ARE 00105 M00S00105.ssmove +++|* WRITTEN TO TEMPORARY FILES. THE FILES CANDIDATE 00106 M00S00106.ssmove +++|* FOR *RELEASE ONLY* ARE RELEASED DIRECTLY. THE 00107 M00S00107.ssmove +++|* TEMPORARY FILES ARE THEN USED TO GENERATE THE 00108 M00S00108.ssmove +++|* COMMUNICATION FILE FOR EXEC. IF THE *REPORT 00109 M00S00109.ssmove +++|* ONLY* OPTION HAS NOT BEEN SELECTED, THE COMM- 00110 M00S00110.ssmove +++|* UNICATION FILE IS SENT TO EXEC VIA A UCP TYPE 2 00111 M00S00111.ssmove +++|* REQUEST. A SUMMARY OF ALL THE FILES SELECTED 00112 M00S00112.ssmove +++|* FOR *RELEASE ONLY*, *DESTAGE AND RELEASE* AND 00113 M00S00113.ssmove +++|* FOR *DESTAGE ONLY* IS WRITTEN TO THE REPORT FILE. 00114 M00S00114.ssmove +++|*
Line S00115 Modification History | |
---|---|
M01 (Removed by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00115 M01S00115.281l803 ---|* COPYRIGHT CONTROL DATA CORP., 1983.
Line S00001 Modification History | |
---|---|
M01 (Added by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00116 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00117 M00S00116.ssmove +++|# 00118 M00S00117.ssmove +++| 00119 M00S00118.ssmove +++|# 00120 M00S00119.ssmove +++|**** PRGM SSMOVE - XREF LIST BEGIN. 00121 M00S00120.ssmove +++|# 00122 M00S00121.ssmove +++| 00123 M00S00122.ssmove +++| XREF 00124 M00S00123.ssmove +++| BEGIN 00125 M00S00124.ssmove +++| PROC ABORT; # CALLS *ABORT* MACRO # 00126 M00S00125.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 00127 M00S00126.ssmove +++| PROC GETSPS; # GET SYSTEM ORIGIN STATUS # 00128 M00S00127.ssmove +++| PROC MESSAGE; # DISPLAYS A MESSAGE IN DAYFILE # 00129 M00S00128.ssmove +++| PROC MVABDS; # PROCESS DESTAGE ABANDONMENT # 00130 M00S00129.ssmove +++| PROC MVCALL; # ISSUES TYPE 1, 2 UCP REQUEST # 00131 M00S00130.ssmove +++| PROC MVINIT; # DECODES *SSMOVE* CONTROL 00132 M00S00131.ssmove +++| STATEMENT # 00133 M00S00132.ssmove +++| PROC MVPASS3; # SETS UP "DESTAGE AND RELEASE" 00134 M00S00133.ssmove +++| AND "DESTAGE" TEMP FILES # 00135 M00S00134.ssmove +++| PROC MVPASS4; # SETS UP COMMUNICATION FILE # 00136 M00S00135.ssmove +++| PROC MVPFRD; # READS PFC # 00137 M00S00136.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00138 M00S00137.ssmove +++| OR RETURN # 00139 M00S00138.ssmove +++| PROC RETERN; # RETURN A FILE # 00140 M00S00139.ssmove +++| PROC RPCLOSE; # CLOSE REPORT FILE # 00141 M00S00140.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 00142 M00S00141.ssmove +++| END 00143 M00S00142.ssmove +++| 00144 M00S00143.ssmove +++|# 00145 M00S00144.ssmove +++|**** PRGM SSMOVE - XREF LIST END. 00146 M00S00145.ssmove +++|# 00147 M00S00146.ssmove +++| 00148 M00S00147.ssmove +++|# 00149 M00S00148.ssmove +++|* DAYFILE MESSAGES. 00150 M00S00149.ssmove +++|# 00151 M00S00150.ssmove +++| 00152 M00S00151.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00153 M00S00152.ssmove +++| DEF RSLEN #1#; # RETURN STATUS WORD LENGTH L # 00154 M00S00153.ssmove +++| DEF MSG1 #" SSMOVE - MUST BE SYSTEM ORIGIN."#; 00155 M00S00154.ssmove +++| DEF MSG2 #" SSMOVE COMPLETE."#; 00156 M00S00155.ssmove +++| DEF MSG3 #" UNABLE TO CONNECT WITH EXEC."#; 00157 M00S00156.ssmove +++| DEF PROCNAME #"SSMOVE"#; # PROC NAME # 00158 M00S00157.ssmove +++| 00159 M00S00158.ssmove +++| CONTROL PRESET; 00160 M00S00159.ssmove +++|*CALL,COMBFAS 00161 M00S00160.ssmove +++|*CALL,COMBBZF 00162 M00S00161.ssmove +++|*CALL,COMBCPR 00163 M00S00162.ssmove +++|*CALL,COMBUCR 00164 M00S00163.ssmove +++|*CALL,COMTMOV 00165 M00S00164.ssmove +++|*CALL,COMTMVP 00166 M00S00165.ssmove +++|*CALL,COMTOUT 00167 M00S00166.ssmove +++| 00168 M00S00167.ssmove +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 00169 M00S00168.ssmove +++| 00170 M00S00169.ssmove +++| ARRAY CALL$SS [0:0] P(CPRLEN);; # CALLSS PARAMETER BLOCK # 00171 M00S00170.ssmove +++| 00172 M00S00171.ssmove +++| ARRAY SPSSTAT[0:0] S(RSLEN); 00173 M00S00172.ssmove +++| BEGIN 00174 M00S00173.ssmove +++| ITEM SPS$STATUS U(00,48,12); # RETURN STATUS # 00175 M00S00174.ssmove +++| END 00176 M00S00175.ssmove +++| 00177 M00S00176.ssmove +++| CONTROL EJECT; 00178 M00S00177.ssmove +++| 00179 M00S00178.ssmove +++| REQID$MV = REQNAME"RQIMOVE"; # SET UP REQUESTOR ID # 00180 M00S00179.ssmove +++| 00181 M00S00180.ssmove +++|# 00182 M00S00181.ssmove +++|* CHECK FOR SYSTEM ORIGIN PRIVILEGES. 00183 M00S00182.ssmove +++|# 00184 M00S00183.ssmove +++| 00185 M00S00184.ssmove +++| GETSPS(SPSSTAT); # GET SYSTEM ORIGIN STATUS # 00186 M00S00185.ssmove +++| IF SPS$STATUS NQ 0 00187 M00S00186.ssmove +++| THEN 00188 M00S00187.ssmove +++| BEGIN 00189 M00S00188.ssmove +++| MVMSG$LN[0] = MSG1; 00190 M00S00189.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00191 M00S00190.ssmove +++| ABORT; 00192 M00S00191.ssmove +++| END 00193 M00S00192.ssmove +++| 00194 M00S00193.ssmove +++|# 00195 M00S00194.ssmove +++|* INITIALIZE *SSMOVE* BY DECODING RUN-TIME PARAMETERS AND 00196 M00S00195.ssmove +++|* BY DECODING RUN-TIME DIRECTIVES. 00197 M00S00196.ssmove +++|* 00198 M00S00197.ssmove +++|* WRITE THE FIRST TWO SECTIONS OF THE *SSMOVE* REPORT 00199 M00S00198.ssmove +++|* TO THE REPORT FILE - DIRECTIVES, AND RUN-TIME WEIGHTS. 00200 M00S00199.ssmove +++|# 00201 M00S00200.ssmove +++| 00202 M00S00201.ssmove +++| MVINIT; 00203 M00S00202.ssmove +++| 00204 M00S00203.ssmove +++|# 00205 M00S00204.ssmove +++|* READ THE PFC AND GENERATE TEMPORARY DECISION FILE. 00206 M00S00205.ssmove +++|# 00207 M00S00206.ssmove +++| 00208 M00S00207.ssmove +++| MVPFRD; 00209 M00S00208.ssmove +++| 00210 M00S00209.ssmove +++|# 00211 M00S00210.ssmove +++|* GENERATE *DESTAGE AND RELEASE* AND *DESTAGE* TEMP FILES 00212 M00S00211.ssmove +++|* AND RELEASE THE FILES CANDIDATE FOR RELEASE ONLY. 00213 M00S00212.ssmove +++|# 00214 M00S00213.ssmove +++| 00215 M00S00214.ssmove +++| MVPASS3; 00216 M00S00215.ssmove +++| 00217 M00S00216.ssmove +++|# 00218 M00S00217.ssmove +++|* GENERATE COMMUNICATION FILE. 00219 M00S00218.ssmove +++|* THE REPORT PRODUCED BY THIS STEP IS A LISTING OF THE FILES 00220 M00S00219.ssmove +++|* SELECTED FOR PROCESSING AND THE EXPECTED STATUS OF EACH 00221 M00S00220.ssmove +++|* DEVICE AND SUBFAMILY UPON COMPLETION OF THE SELECTED. 00222 M00S00221.ssmove +++|* PROCESSING. 00223 M00S00222.ssmove +++|# 00224 M00S00223.ssmove +++| 00225 M00S00224.ssmove +++| MVPASS4; 00226 M00S00225.ssmove +++| 00227 M00S00226.ssmove +++|# 00228 M00S00227.ssmove +++|* IF *REPORT ONLY* OPTION IS NOT SELECTED- 00229 M00S00228.ssmove +++|* AND COMMUNICATION FILE NOT EMPTY- 00230 M00S00229.ssmove +++|* 1. CONNECT WITH EXEC. 00231 M00S00230.ssmove +++|* 2. INFORM EXEC THAT COMMUNICATION FILE IS READY. 00232 M00S00231.ssmove +++|* 3. DISCONNECT. 00233 M00S00232.ssmove +++|# 00234 M00S00233.ssmove +++| 00235 M00S00234.ssmove +++| IF NOT (PX$A[0] AND PX$B[0] AND PX$S[0] AND PX$F[0]) ## 00236 M00S00235.ssmove +++| AND NFILES NQ 0 00237 M00S00236.ssmove +++| THEN 00238 M00S00237.ssmove +++| BEGIN # SEND COMMUNICATION FILE TO EXEC # 00239 M00S00238.ssmove +++| P<CPR> = LOC(CALL$SS[0]); 00240 M00S00239.ssmove +++| MVCALL(TYP"TYP1",REQTYP1"CONNECT",RESPCODE); 00241 M00S00240.ssmove +++| IF RESPCODE NQ RESPTYP1"OK1" 00242 M00S00241.ssmove +++| THEN # CONNECT NOT DONE # 00243 M00S00242.ssmove +++| BEGIN 00244 M00S00243.ssmove +++| MVMSG$LN[0] = MSG3; 00245 M00S00244.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00246 M00S00245.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00247 M00S00246.ssmove +++| END 00248 M00S00247.ssmove +++| 00249 M00S00248.ssmove +++| MVCALL(TYP"TYP2",REQTYP2"FILE$READY",RESPCODE); 00250 M00S00249.ssmove +++| 00251 M00S00250.ssmove +++| IF RESPCODE NQ RESPTYP2"OK2" 00252 M00S00251.ssmove +++| THEN # ABNORMAL TERMINATION # 00253 M00S00252.ssmove +++| BEGIN 00254 M00S00253.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00255 M00S00254.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00256 M00S00255.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00257 M00S00256.ssmove +++| END 00258 M00S00257.ssmove +++| 00259 M00S00258.ssmove +++| MVCALL(TYP"TYP1",REQTYP1"DISCONNECT",RESPCODE); 00260 M00S00259.ssmove +++| IF RESPCODE NQ RESPTYP1"OK1" 00261 M00S00260.ssmove +++| THEN # ABNORMAL TERMINATION # 00262 M00S00261.ssmove +++| BEGIN 00263 M00S00262.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00264 M00S00263.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00265 M00S00264.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00266 M00S00265.ssmove +++| END 00267 M00S00266.ssmove +++| 00268 M00S00267.ssmove +++|# 00269 M00S00268.ssmove +++|* PRODUCE REPORT OF ANY DESTAGES WHICH WERE ABANDONED. 00270 M00S00269.ssmove +++|# 00271 M00S00270.ssmove +++| 00272 M00S00271.ssmove +++| IF NOT MVARG$NW[0] 00273 M00S00272.ssmove +++| THEN 00274 M00S00273.ssmove +++| BEGIN 00275 M00S00274.ssmove +++| MVABDS; 00276 M00S00275.ssmove +++| END 00277 M00S00276.ssmove +++| 00278 M00S00277.ssmove +++| END # SEND COMMUNICATION FILE TO EXEC # 00279 M00S00278.ssmove +++| 00280 M00S00279.ssmove +++|# 00281 M00S00280.ssmove +++|* CLOSE REPORT FILE. 00282 M00S00281.ssmove +++|# 00283 M00S00282.ssmove +++| 00284 M00S00283.ssmove +++| RPCLOSE(OUT$FETP); 00285 M00S00284.ssmove +++| 00286 M00S00285.ssmove +++|# 00287 M00S00286.ssmove +++|* RETURN *MVOCOM* FILE AND *CATS* FILE. 00288 M00S00287.ssmove +++|# 00289 M00S00288.ssmove +++| 00290 M00S00289.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 00291 M00S00290.ssmove +++| FETP = LOC(MV$FET[FILEMO]); 00292 M00S00291.ssmove +++| BUFP = LOC(MV$BUF[FILEMO]); 00293 M00S00292.ssmove +++| COMNAME = CATS; 00294 M00S00293.ssmove +++| BZFILL(COMNAME,TYPFILL"ZFILL",7); 00295 M00S00294.ssmove +++| ZSETFET(FETP,COMNAME,BUFP,MVBUFL,SFETL); 00296 M00S00295.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 00297 M00S00296.ssmove +++| 00298 M00S00297.ssmove +++|# 00299 M00S00298.ssmove +++|* ISSUE FINAL DAYFILE MESSAGE. 00300 M00S00299.ssmove +++|# 00301 M00S00300.ssmove +++| 00302 M00S00301.ssmove +++| MVMSG$LN[0] = MSG2; # STOP WITH DAYFILE MESSAGE # 00303 M00S00302.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00304 M00S00303.ssmove +++| RESTPFP(PFP$END); # RESTORE USER-S *PFP* # 00305 M00S00304.ssmove +++| 00306 M00S00305.ssmove +++| END # SSMOVE # 00307 M00S00306.ssmove +++| 00308 M00S00307.ssmove +++| TERM 00309 M00S00308.ssmove +++|PROC GETPFC(PEO,FLAG); 00310 M00S00309.ssmove +++|# TITLE GETPFC - GET NEXT PFC ENTRY. # 00311 M00S00310.ssmove +++| 00312 M00S00311.ssmove +++| BEGIN # GETPFC # 00313 M00S00312.ssmove +++| 00314 M00S00313.ssmove +++|# 00315 M00S00314.ssmove +++|** GETPFC - GET NEXT PFC ENTRY. 00316 M00S00315.ssmove +++|* 00317 M00S00316.ssmove +++|* PROC GETPFC(PEO,FLAG). 00318 M00S00317.ssmove +++|* 00319 M00S00318.ssmove +++|* ENTRY. (PEO) = ORDINAL OF PREVIOUS PFC ENTRY. 00320 M00S00319.ssmove +++|* 00321 M00S00320.ssmove +++|* EXIT. (PEO) = ORDINAL OF CURRENT PFC ENTRY. 00322 M00S00321.ssmove +++|* P<CNTRWORD> = FWA OF CONTROL WORD. 00323 M00S00322.ssmove +++|* P<PFC> = FWA OF CURRENT PFC ENTRY. 00324 M00S00323.ssmove +++|* (FLAG) = ERROR STATUS. 00325 M00S00324.ssmove +++|* 0, MORE PFC ENTRIES TO GO. 00326 M00S00325.ssmove +++|* 1, END OF PFC. 00327 M00S00326.ssmove +++|* 00328 M00S00327.ssmove +++|* MESSAGES. NO DEVICES IN THE FAMILY. 00329 M00S00328.ssmove +++|* SSMOVE ABNORMAL, GETPFC. 00330 M00S00329.ssmove +++|* 00331 M00S00330.ssmove +++|* NOTES. A CATALOG SECTOR IS READ IN ALONG WITH THE CONTROL 00332 M00S00331.ssmove +++|* WORD. THE ORDINAL OF THE NON ZERO PFC ENTRY IN THE 00333 M00S00332.ssmove +++|* SECTOR IS RETURNED TO THE CALLING PROCEDURE. 00334 M00S00333.ssmove +++|# 00335 M00S00334.ssmove +++| 00336 M00S00335.ssmove +++| ITEM PEO I; # PFC ENTRY ORDINAL # 00337 M00S00336.ssmove +++| ITEM FLAG I; # ERROR STATUS # 00338 M00S00337.ssmove +++| 00339 M00S00338.ssmove +++|# 00340 M00S00339.ssmove +++|**** PROC GETPFC - XREF LIST BEGIN. 00341 M00S00340.ssmove +++|# 00342 M00S00341.ssmove +++| 00343 M00S00342.ssmove +++| XREF 00344 M00S00343.ssmove +++| BEGIN 00345 M00S00344.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 00346 M00S00345.ssmove +++| PROC RDPFC; # READ *PFC* ENTRY # 00347 M00S00346.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00348 M00S00347.ssmove +++| OR RETURN # 00349 M00S00348.ssmove +++| END 00350 M00S00349.ssmove +++| 00351 M00S00350.ssmove +++|# 00352 M00S00351.ssmove +++|**** PROC GETPFC - XREF LIST END. 00353 M00S00352.ssmove +++|# 00354 M00S00353.ssmove +++| 00355 M00S00354.ssmove +++| DEF MSF$NODEV #"NO DEVICES IN THE FAMILY."#; # MESSAGE TEST # 00356 M00S00355.ssmove +++| DEF PROCNAME #"GETPFC."#; # PROC NAME # 00357 M00S00356.ssmove +++| 00358 M00S00357.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00359 M00S00358.ssmove +++|*CALL,COMBFAS 00360 M00S00359.ssmove +++|*CALL COMBSIT 00361 M00S00360.ssmove +++|*CALL,COMTCTW 00362 M00S00361.ssmove +++|*CALL,COMSPFM 00363 M00S00362.ssmove +++|*CALL,COMTMOV 00364 M00S00363.ssmove +++|*CALL,COMTMVP 00365 M00S00364.ssmove +++| 00366 M00S00365.ssmove +++| ITEM FIRST B = TRUE; # FIRST CALL TO PROCEDURE # 00367 M00S00366.ssmove +++| ITEM I I; # LOOP INDUCTION VARIABLE # 00368 M00S00367.ssmove +++| ITEM LIMIT I; # LIMIT ON PFC ORDINAL # 00369 M00S00368.ssmove +++| ITEM WRDCNT I; # WORD COUNT # 00370 M00S00369.ssmove +++| 00371 M00S00370.ssmove +++| CONTROL EJECT; 00372 M00S00371.ssmove +++| 00373 M00S00372.ssmove +++| SLOWFOR DUMMY = DUMMY 00374 M00S00373.ssmove +++| DO 00375 M00S00374.ssmove +++| BEGIN # GET NON ZERO PFC ENTRY # 00376 M00S00375.ssmove +++| IF PEO GQ LIMIT OR FIRST 00377 M00S00376.ssmove +++| THEN 00378 M00S00377.ssmove +++| BEGIN # READ NEXT SECTOR # 00379 M00S00378.ssmove +++| RDPFC(MVARG$FM[0],0,PFC$SEC[0],WRDCNT,FLAG); 00380 M00S00379.ssmove +++| IF FLAG NQ OK 00381 M00S00380.ssmove +++| THEN 00382 M00S00381.ssmove +++| BEGIN # PROCESS ERROR STATUS # 00383 M00S00382.ssmove +++| IF FLAG EQ 1 00384 M00S00383.ssmove +++| THEN # END OF PFC # 00385 M00S00384.ssmove +++| BEGIN 00386 M00S00385.ssmove +++| RETURN; 00387 M00S00386.ssmove +++| END 00388 M00S00387.ssmove +++| 00389 M00S00388.ssmove +++| IF FLAG EQ 2 00390 M00S00389.ssmove +++| THEN # NO DEVICES IN THE FAMILY # 00391 M00S00390.ssmove +++| BEGIN 00392 M00S00391.ssmove +++| MVMSG$LN[0] = MSF$NODEV; 00393 M00S00392.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00394 M00S00393.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00395 M00S00394.ssmove +++| END 00396 M00S00395.ssmove +++| 00397 M00S00396.ssmove +++| IF FLAG EQ 3 OR FLAG EQ 4 00398 M00S00397.ssmove +++| THEN # IGNORE BAD SECTOR OR ERROR IDLE 00399 M00S00398.ssmove +++| OR PF UTILITY ACTIVE ON DEVICE # 00400 M00S00399.ssmove +++| BEGIN 00401 M00S00400.ssmove +++| TEST DUMMY; 00402 M00S00401.ssmove +++| END 00403 M00S00402.ssmove +++| 00404 M00S00403.ssmove +++| MVMSG$PROC[0] = PROCNAME; # ABNORMAL TERMINATION # 00405 M00S00404.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00406 M00S00405.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00407 M00S00406.ssmove +++| END # PROCESS ERROR STATUS # 00408 M00S00407.ssmove +++| 00409 M00S00408.ssmove +++| IF FIRST 00410 M00S00409.ssmove +++| THEN 00411 M00S00410.ssmove +++| BEGIN 00412 M00S00411.ssmove +++| FIRST = FALSE; 00413 M00S00412.ssmove +++| END 00414 M00S00413.ssmove +++| 00415 M00S00414.ssmove +++| P<CNTRWORD> = LOC(PFC$SEC[0]) + WRDCNT; 00416 M00S00415.ssmove +++| 00417 M00S00416.ssmove +++|# 00418 M00S00417.ssmove +++|* CALCULATE LIMIT ON PFC ENTRY ORDINAL. 00419 M00S00418.ssmove +++|# 00420 M00S00419.ssmove +++| 00421 M00S00420.ssmove +++| LIMIT = WRDCNT/PFCENTL; 00422 M00S00421.ssmove +++| LIMIT = LIMIT - 1; 00423 M00S00422.ssmove +++| PEO = -1; 00424 M00S00423.ssmove +++| END # READ NEXT SECTOR # 00425 M00S00424.ssmove +++| 00426 M00S00425.ssmove +++|# 00427 M00S00426.ssmove +++|* SEARCH FOR NON ZERO PFC ENTRY. 00428 M00S00427.ssmove +++|# 00429 M00S00428.ssmove +++| 00430 M00S00429.ssmove +++| PEO = PEO + 1; 00431 M00S00430.ssmove +++| SLOWFOR I = PEO STEP 1 WHILE I LQ LIMIT 00432 M00S00431.ssmove +++| DO 00433 M00S00432.ssmove +++| BEGIN 00434 M00S00433.ssmove +++| PEO = I; 00435 M00S00434.ssmove +++| P<PFC> = LOC(PFC$SEC[0]) + PEO*PFCENTL; 00436 M00S00435.ssmove +++| IF PFC$UI[0] NQ 0 00437 M00S00436.ssmove +++| THEN 00438 M00S00437.ssmove +++| BEGIN 00439 M00S00438.ssmove +++| RETURN; 00440 M00S00439.ssmove +++| END 00441 M00S00440.ssmove +++| 00442 M00S00441.ssmove +++| END 00443 M00S00442.ssmove +++| 00444 M00S00443.ssmove +++| END # GET NON ZERO PFC ENTRY # 00445 M00S00444.ssmove +++| 00446 M00S00445.ssmove +++| END # GETPFC # 00447 M00S00446.ssmove +++| 00448 M00S00447.ssmove +++| TERM 00449 M00S00448.ssmove +++|PROC MVABDS; 00450 M00S00449.ssmove +++|# TITLE MVABDS - PROCESS DESTAGE ABANDONMENT. # 00451 M00S00450.ssmove +++| 00452 M00S00451.ssmove +++| BEGIN # MVABDS # 00453 M00S00452.ssmove +++| 00454 M00S00453.ssmove +++|# 00455 M00S00454.ssmove +++|** MVABDS - PROCESS DESTAGE ABANDONMENT INFORMATION. 00456 M00S00455.ssmove +++|* 00457 M00S00456.ssmove +++|* PROC MVABDS. 00458 M00S00457.ssmove +++|* 00459 M00S00458.ssmove +++|* MESSAGES 1) UNABLE TO ATTACH COMMUNICATION FILE. 00460 M00S00459.ssmove +++|* 2) UNABLE TO READ COMMUNICATION FILE. 00461 M00S00460.ssmove +++|* 00462 M00S00461.ssmove +++|* NOTES PROC *MVABDS* PRODUCES A REPORT PAGE LISTING EACH 00463 M00S00462.ssmove +++|* DESTAGE ABANDONMENT CODE, THE REASON FOR ABANDONMENT, 00464 M00S00463.ssmove +++|* AND THE NUMBER OF FILES ABANDONED FOR THAT REASON. 00465 M00S00464.ssmove +++|* IF *LO=F* IS SPECIFIED EACH ABANDONED FILE AND THE 00466 M00S00465.ssmove +++|* CORRESPONDING ABANDONMENT CODE IS LISTED. *MVRPTDS* 00467 M00S00466.ssmove +++|* IS CALLED TO REPRODUCE THE DEVICE STATUS REPORT AND 00468 M00S00467.ssmove +++|* THE SUBFAMILY REPORT REFLECTING ONLY THE DESTAGES 00469 M00S00468.ssmove +++|* WHICH ACTUALLY OCCURRED. 00470 M00S00469.ssmove +++|# 00471 M00S00470.ssmove +++| 00472 M00S00471.ssmove +++|# 00473 M00S00472.ssmove +++|**** PROC MVABDS - XREF LIST BEGIN. 00474 M00S00473.ssmove +++|# 00475 M00S00474.ssmove +++| 00476 M00S00475.ssmove +++| XREF 00477 M00S00476.ssmove +++| BEGIN 00478 M00S00477.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 00479 M00S00478.ssmove +++| PROC MESSAGE; # ISSUE MESSAGE TO DAYFILE # 00480 M00S00479.ssmove +++| PROC MVRPTDS; # REPORT DEVICE STATUS # 00481 M00S00480.ssmove +++| PROC PF; # *PFM* REQUEST INTERFACE # 00482 M00S00481.ssmove +++| PROC READ; # INITIATE INPUT TO A BUFFER # 00483 M00S00482.ssmove +++| PROC READW; # READ DATA TO WORKING BUFFER # 00484 M00S00483.ssmove +++| PROC RESTPFP; # RESTORE USER-S FAMILY AND UI. # 00485 M00S00484.ssmove +++| PROC RPEJECT; # PAGE EJECTS REPORT FILE # 00486 M00S00485.ssmove +++| PROC RPLINE; # WRITE LINE TO REPORT FILE # 00487 M00S00486.ssmove +++| PROC RPSPACE; # PUTS BLANK LINE ON REPORT FILE # 00488 M00S00487.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 00489 M00S00488.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 00490 M00S00489.ssmove +++| FUNC XCDD C(10); # CONVERT DECIMAL TO DISPLAY # 00491 M00S00490.ssmove +++| FUNC XCOD C(10); # BINARY TO DECIMAL DISPLAY # 00492 M00S00491.ssmove +++| END 00493 M00S00492.ssmove +++| 00494 M00S00493.ssmove +++|# 00495 M00S00494.ssmove +++|**** PROC MVABDS - XREF LIST END. 00496 M00S00495.ssmove +++|# 00497 M00S00496.ssmove +++| 00498 M00S00497.ssmove +++| DEF MSG1 #" UNABLE TO ATTACH COMMUNICATION FILE."#; 00499 M00S00498.ssmove +++| DEF MSG2 #" UNABLE TO READ COMMUNICATION FILE."#; 00500 M00S00499.ssmove +++| DEF MSG3 #"NO SPACE"#; 00501 M00S00500.ssmove +++| DEF MSG4 #"NO STORAGE MODULE AVAILABLE"#; 00502 M00S00501.ssmove +++| DEF MSG5 #"NO CARTRIDGE OR GROUP AVAILABLE"#; 00503 M00S00502.ssmove +++| DEF MSG6 #"FILE ALREADY DESTAGED"#; 00504 M00S00503.ssmove +++| DEF MSG7 #"FILE BUSY / PFM PROBLEM"#; 00505 M00S00504.ssmove +++| DEF MSG8 #"CATALOG ACCESS ERROR"#; 00506 M00S00505.ssmove +++| DEF MSG9 #"OVERFLOW NOT LEGAL"#; 00507 M00S00506.ssmove +++| DEF MSG10 #"GROUP FULL"#; 00508 M00S00507.ssmove +++| DEF MSG11 #"DISK READ ERROR"#; 00509 M00S00508.ssmove +++| DEF MSG12 #"CARTRIDGE LOST"#; 00510 M00S00509.ssmove +++| DEF MS613 #"CLOSED DESTAGE"#; 00511 M00S00510.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00512 M00S00511.ssmove +++|*CALL COMBFAS 00513 M00S00512.ssmove +++|*CALL COMBBZF 00514 M00S00513.ssmove +++|*CALL COMBFET 00515 M00S00514.ssmove +++|*CALL COMBTDM 00516 M00S00515.ssmove +++|*CALL COMTMOV 00517 M00S00516.ssmove +++|*CALL COMTOUT 00518 M00S00517.ssmove +++|*CALL COMXMFD 00519 M00S00518.ssmove +++| 00520 M00S00519.ssmove +++| ITEM ABR S:ABANDON; # ABANDONMENT CODE # 00521 M00S00520.ssmove +++| ITEM ABNDN B=TRUE; # PRODUCE ABANDONMENT REPORT # 00522 M00S00521.ssmove +++| ITEM IX I; # FILE TYPE INDEX # 00523 M00S00522.ssmove +++| ITEM J I; # FET ADDRESS # 00524 M00S00523.ssmove +++| ITEM STAT I; # STATUS # 00525 M00S00524.ssmove +++| ITEM SUBFAM I; # SUBFAMILY INDEX # 00526 M00S00525.ssmove +++| ITEM TMPC C(10); # TEMPORARY CHARACTER # 00527 M00S00526.ssmove +++| 00528 M00S00527.ssmove +++| ARRAY ABNDNF [1:11] S(1); 00529 M00S00528.ssmove +++| BEGIN 00530 M00S00529.ssmove +++| ITEM ABND$NF I(00,00,60); # FILE COUNT # 00531 M00S00530.ssmove +++| END 00532 M00S00531.ssmove +++| 00533 M00S00532.ssmove +++| CONTROL EJECT; 00534 M00S00533.ssmove +++| 00535 M00S00534.ssmove +++|# 00536 M00S00535.ssmove +++|* ATTACH COMMUNICATION FILE. 00537 M00S00536.ssmove +++|# 00538 M00S00537.ssmove +++| 00539 M00S00538.ssmove +++| COMNAME = MVOCOM; 00540 M00S00539.ssmove +++| BZFILL(COMNAME,TYPFILL"ZFILL",7); 00541 M00S00540.ssmove +++| 00542 M00S00541.ssmove +++| PF("ATTACH",COMNAME,0,"M","W","RC",STAT,"NA",0,0); 00543 M00S00542.ssmove +++| 00544 M00S00543.ssmove +++| IF STAT NQ OK 00545 M00S00544.ssmove +++| THEN 00546 M00S00545.ssmove +++| BEGIN 00547 M00S00546.ssmove +++| MVMSG$LN[0] = MSG1; 00548 M00S00547.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00549 M00S00548.ssmove +++| RESTPFP(PFP$ABORT); 00550 M00S00549.ssmove +++| END 00551 M00S00550.ssmove +++| 00552 M00S00551.ssmove +++|# 00553 M00S00552.ssmove +++|* DETERMINE WHETHER TO LIST EACH FILE. 00554 M00S00553.ssmove +++|# 00555 M00S00554.ssmove +++| 00556 M00S00555.ssmove +++| IF LO$F[0] OR LO$P[0] 00557 M00S00556.ssmove +++| THEN 00558 M00S00557.ssmove +++| BEGIN 00559 M00S00558.ssmove +++| LISTFETP = OUT$FETP; 00560 M00S00559.ssmove +++| END 00561 M00S00560.ssmove +++| 00562 M00S00561.ssmove +++|# 00563 M00S00562.ssmove +++|* CLEAR DESTAGE INFORMATION FROM SUBFAMILY STATUS ARRAY. 00564 M00S00563.ssmove +++|# 00565 M00S00564.ssmove +++| 00566 M00S00565.ssmove +++| SLOWFOR IX = IXDA STEP 1 UNTIL IXIA 00567 M00S00566.ssmove +++| DO 00568 M00S00567.ssmove +++| BEGIN 00569 M00S00568.ssmove +++| SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF 00570 M00S00569.ssmove +++| DO 00571 M00S00570.ssmove +++| BEGIN 00572 M00S00571.ssmove +++| SFDS$NF[IX,SUBFAM] = 0; 00573 M00S00572.ssmove +++| SFDS$PRU[IX,SUBFAM] = 0; 00574 M00S00573.ssmove +++| END 00575 M00S00574.ssmove +++| 00576 M00S00575.ssmove +++| END 00577 M00S00576.ssmove +++| 00578 M00S00577.ssmove +++|# 00579 M00S00578.ssmove +++|* READ PREAMBLE OF COMMUNICATION FILE. 00580 M00S00579.ssmove +++|# 00581 M00S00580.ssmove +++| 00582 M00S00581.ssmove +++| J = LOC(MCF$FET[0]); 00583 M00S00582.ssmove +++| ZSETFET(J,COMNAME,LOC(MCF$BUF[0]),MCFBUFL,SFETL); 00584 M00S00583.ssmove +++| FET$EP[0] = TRUE; 00585 M00S00584.ssmove +++| 00586 M00S00585.ssmove +++| READ(MCF$FET[0],NRCL); 00587 M00S00586.ssmove +++| READW(MCF$FET[0],MCF$PRM[0],MVPRML,STAT); 00588 M00S00587.ssmove +++| 00589 M00S00588.ssmove +++| IF STAT NQ OK 00590 M00S00589.ssmove +++| THEN 00591 M00S00590.ssmove +++| BEGIN 00592 M00S00591.ssmove +++| MVMSG$LN[0] = MSG2; 00593 M00S00592.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00594 M00S00593.ssmove +++| RESTPFP(PFP$ABORT); 00595 M00S00594.ssmove +++| END 00596 M00S00595.ssmove +++| 00597 M00S00596.ssmove +++| CONTROL EJECT; 00598 M00S00597.ssmove +++| 00599 M00S00598.ssmove +++|# 00600 M00S00599.ssmove +++|* WRITE HEADER TO REPORT FILE. 00601 M00S00600.ssmove +++|# 00602 M00S00601.ssmove +++| 00603 M00S00602.ssmove +++| RPEJECT(OUT$FETP); 00604 M00S00603.ssmove +++| RPLINE(OUT$FETP,"DESTAGE ABANDONMENT REPORT",5,26,0); 00605 M00S00604.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 00606 M00S00605.ssmove +++| RPLINE(LISTFETP,"FILENAME UI CODE",9,30,0); 00607 M00S00606.ssmove +++| RPSPACE(LISTFETP,SP"SPACE",1); 00608 M00S00607.ssmove +++| 00609 M00S00608.ssmove +++|# 00610 M00S00609.ssmove +++|* PROCESS EACH *TDAM* ENTRY. 00611 M00S00610.ssmove +++|# 00612 M00S00611.ssmove +++| 00613 M00S00612.ssmove +++| REPEAT WHILE STAT EQ 0 00614 M00S00613.ssmove +++| DO 00615 M00S00614.ssmove +++| BEGIN # PROCESS EACH *TDAM* # 00616 M00S00615.ssmove +++| 00617 M00S00616.ssmove +++| READW(MCF$FET[0],MCF$REQ[0],TDAMLEN,STAT); 00618 M00S00617.ssmove +++| 00619 M00S00618.ssmove +++| IF STAT EQ CIOERR 00620 M00S00619.ssmove +++| THEN 00621 M00S00620.ssmove +++| BEGIN 00622 M00S00621.ssmove +++| MVMSG$LN[0] = MSG2; 00623 M00S00622.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00624 M00S00623.ssmove +++| RESTPFP(PFP$ABORT); 00625 M00S00624.ssmove +++| END 00626 M00S00625.ssmove +++| 00627 M00S00626.ssmove +++| IF STAT NQ OK 00628 M00S00627.ssmove +++| THEN 00629 M00S00628.ssmove +++| BEGIN 00630 M00S00629.ssmove +++| TEST DUMMY; 00631 M00S00630.ssmove +++| END 00632 M00S00631.ssmove +++| 00633 M00S00632.ssmove +++| P<TDAM> = LOC(MCF$REQ[0]); 00634 M00S00633.ssmove +++| DNX = DN$TO$DNX[TDAMDN[0]]; 00635 M00S00634.ssmove +++| SFX = TDAMSBF[0]; 00636 M00S00635.ssmove +++| 00637 M00S00636.ssmove +++|# 00638 M00S00637.ssmove +++|* CHECK FOR VALID ABANDONMENT CODE. 00639 M00S00638.ssmove +++|# 00640 M00S00639.ssmove +++| 00641 M00S00640.ssmove +++| IF TDAMABR[0] LQ ABANDON"OK" ## 00642 M00S00641.ssmove +++| OR TDAMABR[0] GQ ABANDON"ENDAB" 00643 M00S00642.ssmove +++| THEN # INVALID ABANDON CODE # 00644 M00S00643.ssmove +++| BEGIN 00645 M00S00644.ssmove +++| TEST DUMMY; 00646 M00S00645.ssmove +++| END 00647 M00S00646.ssmove +++| 00648 M00S00647.ssmove +++|# 00649 M00S00648.ssmove +++|* DETERMINE FILE TYPE. 00650 M00S00649.ssmove +++|# 00651 M00S00650.ssmove +++| 00652 M00S00651.ssmove +++| IF TDAMIA[0] 00653 M00S00652.ssmove +++| THEN 00654 M00S00653.ssmove +++| BEGIN 00655 M00S00654.ssmove +++| FTYPE = IXIA; 00656 M00S00655.ssmove +++| END 00657 M00S00656.ssmove +++| 00658 M00S00657.ssmove +++| ELSE 00659 M00S00658.ssmove +++| BEGIN 00660 M00S00659.ssmove +++| FTYPE = IXDA; 00661 M00S00660.ssmove +++| END 00662 M00S00661.ssmove +++| 00663 M00S00662.ssmove +++|# 00664 M00S00663.ssmove +++|* UPDATE COUNTS FOR *MVRPTDS* REPORT. 00665 M00S00664.ssmove +++|# 00666 M00S00665.ssmove +++| 00667 M00S00666.ssmove +++| IF TDAMFC[0] EQ TDAMFCODE"DESTRLS" 00668 M00S00667.ssmove +++| THEN # FILE WAS NOT RELEASED # 00669 M00S00668.ssmove +++| BEGIN 00670 M00S00669.ssmove +++| DEV$RELF[FTYPE,DNX] = DEV$RELF[FTYPE,DNX] - 1; 00671 M00S00670.ssmove +++| DEV$TRPRU[FTYPE,DNX] = DEV$TRPRU[FTYPE,DNX] + TDAMFLN[0]; 00672 M00S00671.ssmove +++| IF FTYPE EQ IXIA 00673 M00S00672.ssmove +++| THEN 00674 M00S00673.ssmove +++| BEGIN 00675 M00S00674.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] - TDAMFLN[0]; 00676 M00S00675.ssmove +++| END 00677 M00S00676.ssmove +++| 00678 M00S00677.ssmove +++| ELSE 00679 M00S00678.ssmove +++| BEGIN 00680 M00S00679.ssmove +++| PRUTRK = DEV$SECTR[IXDA,DNX]; 00681 M00S00680.ssmove +++| TRUPRU = (((TDAMFLN[0]+1) / PRUTRK) + 1) * PRUTRK; 00682 M00S00681.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] - TRUPRU; 00683 M00S00682.ssmove +++| END 00684 M00S00683.ssmove +++| 00685 M00S00684.ssmove +++| END 00686 M00S00685.ssmove +++| 00687 M00S00686.ssmove +++| SFDS$NF[FTYPE,SFX] = SFDS$NF[FTYPE,SFX] + 1; 00688 M00S00687.ssmove +++| SFDS$PRU[FTYPE,SFX] = SFDS$PRU[FTYPE,SFX] + TDAMFLN[0]; 00689 M00S00688.ssmove +++| SFRL$NF[FTYPE,SFX] = SFRL$NF[FTYPE,SFX] - 1; 00690 M00S00689.ssmove +++| SFRL$PRU[FTYPE,SFX] = SFRL$PRU[FTYPE,SFX] - TDAMFLN[0]; 00691 M00S00690.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] - 1; 00692 M00S00691.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] - TDAMFLN[0]; 00693 M00S00692.ssmove +++| 00694 M00S00693.ssmove +++|# 00695 M00S00694.ssmove +++|* INCREMENT FILE COUNT. 00696 M00S00695.ssmove +++|# 00697 M00S00696.ssmove +++| 00698 M00S00697.ssmove +++| ABR = TDAMABR[0]; 00699 M00S00698.ssmove +++| ABND$NF[ABR] = ABND$NF[ABR] + 1; 00700 M00S00699.ssmove +++| 00701 M00S00700.ssmove +++|# 00702 M00S00701.ssmove +++|* WRITE EACH FILE TO REPORT FILE. 00703 M00S00702.ssmove +++|# 00704 M00S00703.ssmove +++| 00705 M00S00704.ssmove +++| TMPC = TDAMPFN[0]; 00706 M00S00705.ssmove +++| BZFILL(TMPC,TYPFILL"BFILL",7); 00707 M00S00706.ssmove +++| RPLINE(LISTFETP,TMPC,10,7,1); 00708 M00S00707.ssmove +++| TMPC = XCOD(TDAMUI[0]); 00709 M00S00708.ssmove +++| RPLINE(LISTFETP,TMPC,20,10,1); 00710 M00S00709.ssmove +++| CHR$10[0] = XCDD(TDAMABR[0]); 00711 M00S00710.ssmove +++| RPLINE(LISTFETP,CHR$R2[0],37,2,0); 00712 M00S00711.ssmove +++| 00713 M00S00712.ssmove +++| END # PROCESS EACH *TDAM* # 00714 M00S00713.ssmove +++| 00715 M00S00714.ssmove +++|# 00716 M00S00715.ssmove +++|* LIST CODE, NUMBER OF FILES, AND EXPLANATION. 00717 M00S00716.ssmove +++|# 00718 M00S00717.ssmove +++| 00719 M00S00718.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 00720 M00S00719.ssmove +++| RPLINE(OUT$FETP,"CODE FILES REASON",9,29,0); 00721 M00S00720.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 00722 M00S00721.ssmove +++| 00723 M00S00722.ssmove +++| ABR = ABANDON"NOSPACE"; 00724 M00S00723.ssmove +++| CHR$10[0] = XCDD(ABR); 00725 M00S00724.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00726 M00S00725.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00727 M00S00726.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00728 M00S00727.ssmove +++| RPLINE(OUT$FETP,MSG3,30,8,0); 00729 M00S00728.ssmove +++| 00730 M00S00729.ssmove +++| ABR = ABANDON"NOSM"; 00731 M00S00730.ssmove +++| CHR$10[0] = XCDD(ABR); 00732 M00S00731.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00733 M00S00732.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00734 M00S00733.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00735 M00S00734.ssmove +++| RPLINE(OUT$FETP,MSG4,30,27,0); 00736 M00S00735.ssmove +++| 00737 M00S00736.ssmove +++| ABR = ABANDON"NOCARGP"; 00738 M00S00737.ssmove +++| CHR$10[0] = XCDD(ABR); 00739 M00S00738.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00740 M00S00739.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00741 M00S00740.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00742 M00S00741.ssmove +++| RPLINE(OUT$FETP,MSG5,30,31,0); 00743 M00S00742.ssmove +++| 00744 M00S00743.ssmove +++| ABR = ABANDON"NEWASA"; 00745 M00S00744.ssmove +++| CHR$10[0] = XCDD(ABR); 00746 M00S00745.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00747 M00S00746.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00748 M00S00747.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00749 M00S00748.ssmove +++| RPLINE(OUT$FETP,MSG6,30,21,0); 00750 M00S00749.ssmove +++| 00751 M00S00750.ssmove +++| ABR = ABANDON"PFMERR"; 00752 M00S00751.ssmove +++| CHR$10[0] = XCDD(ABR); 00753 M00S00752.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00754 M00S00753.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00755 M00S00754.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00756 M00S00755.ssmove +++| RPLINE(OUT$FETP,MSG7,30,23,0); 00757 M00S00756.ssmove +++| 00758 M00S00757.ssmove +++| ABR = ABANDON"CATIOERR"; 00759 M00S00758.ssmove +++| CHR$10[0] = XCDD(ABR); 00760 M00S00759.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00761 M00S00760.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00762 M00S00761.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00763 M00S00762.ssmove +++| RPLINE(OUT$FETP,MSG8,30,20,0); 00764 M00S00763.ssmove +++| 00765 M00S00764.ssmove +++| ABR = ABANDON"NOOVERF"; 00766 M00S00765.ssmove +++| CHR$10[0] = XCDD(ABR); 00767 M00S00766.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00768 M00S00767.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00769 M00S00768.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00770 M00S00769.ssmove +++| RPLINE(OUT$FETP,MSG9,30,18,0); 00771 M00S00770.ssmove +++| 00772 M00S00771.ssmove +++| ABR = ABANDON"GRFULL"; 00773 M00S00772.ssmove +++| CHR$10[0] = XCDD(ABR); 00774 M00S00773.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00775 M00S00774.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00776 M00S00775.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00777 M00S00776.ssmove +++| RPLINE(OUT$FETP,MSG10,30,10,0); 00778 M00S00777.ssmove +++| 00779 M00S00778.ssmove +++| ABR = ABANDON"DSKRDERR"; 00780 M00S00779.ssmove +++| CHR$10[0] = XCDD(ABR); 00781 M00S00780.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00782 M00S00781.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00783 M00S00782.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00784 M00S00783.ssmove +++| RPLINE(OUT$FETP,MSG11,30,15,0); 00785 M00S00784.ssmove +++| 00786 M00S00785.ssmove +++| ABR = ABANDON"LOST"; 00787 M00S00786.ssmove +++| CHR$10[0] = XCDD(ABR); 00788 M00S00787.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00789 M00S00788.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00790 M00S00789.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00791 M00S00790.ssmove +++| RPLINE(OUT$FETP,MSG12,30,14,0); 00792 M00S00791.ssmove +++| 00793 M00S00792.ssmove +++| ABR = ABANDON"CLOSEDS"; 00794 M00S00793.ssmove +++| CHR$10[0] = XCDD(ABR); 00795 M00S00794.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00796 M00S00795.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00797 M00S00796.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00798 M00S00797.ssmove +++| RPLINE(OUT$FETP,MS613,30,14,0); 00799 M00S00798.ssmove +++| 00800 M00S00799.ssmove +++|# 00801 M00S00800.ssmove +++|* GENERATE AN UPDATED *DEVICE REPORT* AND *SUBFAMILY REPORT*. 00802 M00S00801.ssmove +++|# 00803 M00S00802.ssmove +++| 00804 M00S00803.ssmove +++| MVRPTDS(ABNDN); 00805 M00S00804.ssmove +++| 00806 M00S00805.ssmove +++| 00807 M00S00806.ssmove +++| END # MVABDS # 00808 M00S00807.ssmove +++| 00809 M00S00808.ssmove +++| TERM 00810 M00S00809.ssmove +++|PROC MVALCS(CS,VCS,NBS,KEY,FLAG); 00811 M00S00810.ssmove +++|# TITLE MVALCS - ANALYZES CHARACTER STRING. # 00812 M00S00811.ssmove +++| 00813 M00S00812.ssmove +++| BEGIN # MVALCS # 00814 M00S00813.ssmove +++| 00815 M00S00814.ssmove +++|# 00816 M00S00815.ssmove +++|** MVALCS - ANALYZES CHARACTER STRING. 00817 M00S00816.ssmove +++|* 00818 M00S00817.ssmove +++|* THIS PROCEDURE ANALYZES AN INPUT CHARACTER STRING (CS) 00819 M00S00818.ssmove +++|* TO VERIFY THAT EACH CHARACTER IS IN THE STRING 00820 M00S00819.ssmove +++|* SPECIFIED BY *VCS*. EACH VALID CHARACTER RESULTS IN THE 00821 M00S00820.ssmove +++|* CORRESPONDING BIT IN *NBS* BEING SET TO 1 (TRUE). THESE BITS 00822 M00S00821.ssmove +++|* IN *NBS* MAY THEN BE TESTED AS BOOLEAN ITEMS TO DETERMINE 00823 M00S00822.ssmove +++|* IF THE ASSOCIATED CHARACTER WAS SUPPLIED OR NOT. 00824 M00S00823.ssmove +++|* 00825 M00S00824.ssmove +++|* PROC MVALCS(CS,VCS,NBS,KEY,FLAG). 00826 M00S00825.ssmove +++|* 00827 M00S00826.ssmove +++|# 00828 M00S00827.ssmove +++| 00829 M00S00828.ssmove +++| ITEM CS C(10); # INPUT CHARACTER STRING # 00830 M00S00829.ssmove +++| ITEM VCS C(10); # VALID CHARACTERS # 00831 M00S00830.ssmove +++| ITEM NBS I; # OUTPUT BIT STRING # 00832 M00S00831.ssmove +++| ITEM KEY C(2); # OPTION BEING TESTED # 00833 M00S00832.ssmove +++| ITEM FLAG I; # NON-ZERO FOR ERRORS # 00834 M00S00833.ssmove +++| 00835 M00S00834.ssmove +++| 00836 M00S00835.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00837 M00S00836.ssmove +++| 00838 M00S00837.ssmove +++|*CALL,COMBFAS 00839 M00S00838.ssmove +++|*CALL COMBSIT 00840 M00S00839.ssmove +++| 00841 M00S00840.ssmove +++| 00842 M00S00841.ssmove +++| ITEM C C(1); # CHARACTER BEING ANALYZED # 00843 M00S00842.ssmove +++| ITEM I I; # LOOP INDEX # 00844 M00S00843.ssmove +++| ITEM J I; # LOOP INDEX # 00845 M00S00844.ssmove +++| 00846 M00S00845.ssmove +++| CONTROL EJECT; 00847 M00S00846.ssmove +++| 00848 M00S00847.ssmove +++| NBS = 0; 00849 M00S00848.ssmove +++| FLAG = 0; 00850 M00S00849.ssmove +++| SLOWFOR I = 0 STEP 1 UNTIL 9 00851 M00S00850.ssmove +++| DO 00852 M00S00851.ssmove +++| BEGIN # CS LOOP # 00853 M00S00852.ssmove +++| C = C<I,1>CS; 00854 M00S00853.ssmove +++| IF C EQ " " OR C EQ 0 00855 M00S00854.ssmove +++| THEN 00856 M00S00855.ssmove +++| RETURN; 00857 M00S00856.ssmove +++| SLOWFOR J = 0 STEP 1 UNTIL 9 00858 M00S00857.ssmove +++| DO 00859 M00S00858.ssmove +++| BEGIN # SEARCH FOR MATCH # 00860 M00S00859.ssmove +++| IF C<J,1>VCS EQ C 00861 M00S00860.ssmove +++| THEN 00862 M00S00861.ssmove +++| BEGIN 00863 M00S00862.ssmove +++| B<J,1>NBS = 1; 00864 M00S00863.ssmove +++| TEST I; 00865 M00S00864.ssmove +++| END 00866 M00S00865.ssmove +++| 00867 M00S00866.ssmove +++| END # SEARCH FOR MATCH # 00868 M00S00867.ssmove +++| 00869 M00S00868.ssmove +++| FLAG = I+1; 00870 M00S00869.ssmove +++| RETURN; 00871 M00S00870.ssmove +++| END # CS LOOP # 00872 M00S00871.ssmove +++| 00873 M00S00872.ssmove +++| END # MVALCS # 00874 M00S00873.ssmove +++| 00875 M00S00874.ssmove +++| TERM 00876 M00S00875.ssmove +++|PROC MVCALL((REQTYPE),(REQCODE),RESPCODE); 00877 M00S00876.ssmove +++|# TITLE MVCALL - ISSUES TYPE 1 OR 2 UCP REQUEST TO EXEC. # 00878 M00S00877.ssmove +++| 00879 M00S00878.ssmove +++| BEGIN # MVCALL # 00880 M00S00879.ssmove +++| 00881 M00S00880.ssmove +++|# 00882 M00S00881.ssmove +++|** MVCALL - ISSUES A TYPE 1 OR 2 UCP REQUEST TO EXEC. 00883 M00S00882.ssmove +++|* 00884 M00S00883.ssmove +++|* PROC MVCALL((REQTYPE),(REQCODE),RESPCODE). 00885 M00S00884.ssmove +++|* 00886 M00S00885.ssmove +++|* ENTRY. (REQTYPE) = REQUEST TYPE. 00887 M00S00886.ssmove +++|* (REQCODE) = REQUEST CODE. 00888 M00S00887.ssmove +++|* (MVARG$FM) = FAMILY NAME. 00889 M00S00888.ssmove +++|* (REQID$MV) = REQUESTOR ID. 00890 M00S00889.ssmove +++|* (SSID$MV) = SUBSYSTEM ID. 00891 M00S00890.ssmove +++|* P<CPR> = FWA OF CALLSS PARAMETER BLOCK. 00892 M00S00891.ssmove +++|* 00893 M00S00892.ssmove +++|* EXIT. (RESPCODE) = RESPONSE FROM EXEC. 00894 M00S00893.ssmove +++|* 00895 M00S00894.ssmove +++|* MESSAGES. SSMOVE ABNORMAL, MVCALL. 00896 M00S00895.ssmove +++|* 00897 M00S00896.ssmove +++|* NOTES. THE CALLSS PARAMETER REQUEST BLOCK IS SET 00898 M00S00897.ssmove +++|* UP FOR A TYPE 1 OR TYPE 2 UCP REQUEST AND 00899 M00S00898.ssmove +++|* THE REQUEST IS ISSUED TO EXEC. 00900 M00S00899.ssmove +++|# 00901 M00S00900.ssmove +++| 00902 M00S00901.ssmove +++| ITEM REQTYPE I; # REQUEST TYPE # 00903 M00S00902.ssmove +++| ITEM REQCODE I; # REQUEST CODE # 00904 M00S00903.ssmove +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 00905 M00S00904.ssmove +++| 00906 M00S00905.ssmove +++|# 00907 M00S00906.ssmove +++|**** PROC MVCALL - XREF LIST BEGIN. 00908 M00S00907.ssmove +++|# 00909 M00S00908.ssmove +++| 00910 M00S00909.ssmove +++| XREF 00911 M00S00910.ssmove +++| BEGIN 00912 M00S00911.ssmove +++| PROC ABORT; # STOPS PROCESSING # 00913 M00S00912.ssmove +++| PROC CALLSS; # ISSUES A UCP/SCP REQUEST # 00914 M00S00913.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 00915 M00S00914.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00916 M00S00915.ssmove +++| OR RETURN # 00917 M00S00916.ssmove +++| END 00918 M00S00917.ssmove +++| 00919 M00S00918.ssmove +++|# 00920 M00S00919.ssmove +++|**** PROC MVCALL - XREF LIST END. 00921 M00S00920.ssmove +++|# 00922 M00S00921.ssmove +++| 00923 M00S00922.ssmove +++| DEF PROCNAME #"MVCALL."#; # PROC NAME # 00924 M00S00923.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00925 M00S00924.ssmove +++|*CALL,COMBFAS 00926 M00S00925.ssmove +++|*CALL,COMBCPR 00927 M00S00926.ssmove +++|*CALL,COMTMOV 00928 M00S00927.ssmove +++|*CALL,COMTMVP 00929 M00S00928.ssmove +++| 00930 M00S00929.ssmove +++| ITEM I I; # LOOP INDUCTION VARIABLE # 00931 M00S00930.ssmove +++| 00932 M00S00931.ssmove +++| CONTROL EJECT; 00933 M00S00932.ssmove +++| 00934 M00S00933.ssmove +++|# 00935 M00S00934.ssmove +++|* ZERO FILL CALLSS PARAMETER BLOCK. 00936 M00S00935.ssmove +++|# 00937 M00S00936.ssmove +++| 00938 M00S00937.ssmove +++| FASTFOR I = 0 STEP 1 UNTIL CPRLEN-1 00939 M00S00938.ssmove +++| DO 00940 M00S00939.ssmove +++| BEGIN 00941 M00S00940.ssmove +++| CPR1[I] = 0; 00942 M00S00941.ssmove +++| END 00943 M00S00942.ssmove +++| 00944 M00S00943.ssmove +++| CPR$RQT[0] = REQTYPE; # SET UP PARAMETER BLOCK # 00945 M00S00944.ssmove +++| CPR$RQC[0] = REQCODE; 00946 M00S00945.ssmove +++| CPR$RQI[0] = REQID$MV; 00947 M00S00946.ssmove +++| CPR$SSPFLG[0] = TRUE; 00948 M00S00947.ssmove +++| CPR$FAM[0] = MVARG$FM[0]; 00949 M00S00948.ssmove +++| 00950 M00S00949.ssmove +++| IF REQTYPE EQ TYP"TYP1" 00951 M00S00950.ssmove +++| THEN # TYPE 1 REQUEST # 00952 M00S00951.ssmove +++| BEGIN 00953 M00S00952.ssmove +++| CPR$WC[0] = TYP1$WC; 00954 M00S00953.ssmove +++| END 00955 M00S00954.ssmove +++| 00956 M00S00955.ssmove +++| ELSE 00957 M00S00956.ssmove +++| BEGIN # TYPE 2 OR ILLEGAL REQUEST # 00958 M00S00957.ssmove +++| IF REQTYPE EQ TYP"TYP2" 00959 M00S00958.ssmove +++| THEN # TYPE 2 REQUEST # 00960 M00S00959.ssmove +++| BEGIN 00961 M00S00960.ssmove +++| CPR$WC[0] = TYP2$WC; 00962 M00S00961.ssmove +++| CPR$NW[0] = MVARG$NW[0]; 00963 M00S00962.ssmove +++| END 00964 M00S00963.ssmove +++| 00965 M00S00964.ssmove +++| ELSE # ILLEGAL REQUEST TYPE # 00966 M00S00965.ssmove +++| BEGIN 00967 M00S00966.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00968 M00S00967.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00969 M00S00968.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00970 M00S00969.ssmove +++| END 00971 M00S00970.ssmove +++| 00972 M00S00971.ssmove +++| END # TYPE 2 OR ILLEGAL REQUEST # 00973 M00S00972.ssmove +++| 00974 M00S00973.ssmove +++| CALLSS(SSID$MV,CPR[0],RCL); 00975 M00S00974.ssmove +++| IF REQTYPE EQ TYP"TYP2" 00976 M00S00975.ssmove +++| THEN 00977 M00S00976.ssmove +++| BEGIN 00978 M00S00977.ssmove +++| RESPCODE = CPR$RQR[0]; # RETURN RESPONSE FROM EXEC # 00979 M00S00978.ssmove +++| END 00980 M00S00979.ssmove +++| 00981 M00S00980.ssmove +++| ELSE 00982 M00S00981.ssmove +++| BEGIN 00983 M00S00982.ssmove +++| RESPCODE = CPR$ES[0]; # RETURN RESPONSE FROM SYSTEM # 00984 M00S00983.ssmove +++| END 00985 M00S00984.ssmove +++| 00986 M00S00985.ssmove +++| RETURN; 00987 M00S00986.ssmove +++| 00988 M00S00987.ssmove +++| END # MVCALL # 00989 M00S00988.ssmove +++| 00990 M00S00989.ssmove +++| TERM 00991 M00S00990.ssmove +++|PROC MVCKSF((FN),(UI),PO); 00992 M00S00991.ssmove +++|# TITLE MVCKSF - CHECK IF SPECIAL FILE. # 00993 M00S00992.ssmove +++| 00994 M00S00993.ssmove +++| BEGIN # MVCKSF # 00995 M00S00994.ssmove +++| 00996 M00S00995.ssmove +++|# 00997 M00S00996.ssmove +++|** MVCKSF - CHECK IF SPECIAL FILE. 00998 M00S00997.ssmove +++|* 00999 M00S00998.ssmove +++|* THIS PROCEDURE DETERMINES WHETHER THE FILE SPECIFIED BY 01000 M00S00999.ssmove +++|* THE *FN* AND *UI* PARAMETERS WAS SPECIFIED VIA THE 01001 M00S01000.ssmove +++|* *SF,FN=...* DIRECTIVE. 01002 M00S01001.ssmove +++|* 01003 M00S01002.ssmove +++|* PROC MVCKSF( (FN), (UI), PO). 01004 M00S01003.ssmove +++|* 01005 M00S01004.ssmove +++|* ENTRY. (FN) = NAME OF A PERMANENT FILE 01006 M00S01005.ssmove +++|* (UI) = USER INDEX OF THIS FILE 01007 M00S01006.ssmove +++|* 01008 M00S01007.ssmove +++|* EXIT. (PO) = 0, IF THE FILE WAS NOT SPECIFIED BY A 01009 M00S01008.ssmove +++|* *SF,FN=...* DIRECTIVE. 01010 M00S01009.ssmove +++|* = Q, IF IT WAS SPECIFIED BY THE DIRECTIVE 01011 M00S01010.ssmove +++|* *SF,FN,...PO=Q.*. 01012 M00S01011.ssmove +++|# 01013 M00S01012.ssmove +++| 01014 M00S01013.ssmove +++| ITEM FN C(7); # FILE NAME # 01015 M00S01014.ssmove +++| ITEM UI I; # USER INDEX # 01016 M00S01015.ssmove +++| ITEM PO C(1); # PROCESSING OPTION # 01017 M00S01016.ssmove +++| 01018 M00S01017.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01019 M00S01018.ssmove +++|*CALL,COMBFAS 01020 M00S01019.ssmove +++|*CALL,COMTMOV 01021 M00S01020.ssmove +++| 01022 M00S01021.ssmove +++| ITEM I I; # LOOP INDEX # 01023 M00S01022.ssmove +++| 01024 M00S01023.ssmove +++| ARRAY CKSFILES [0:0] S(3); # CHECK FOR SPECIAL FILES # 01025 M00S01024.ssmove +++| BEGIN 01026 M00S01025.ssmove +++| ITEM CK$WRD1 U(00,00,60); # WORD 1 # 01027 M00S01026.ssmove +++| ITEM CK$FN C(00,00,07); # FILE NAME # 01028 M00S01027.ssmove +++| ITEM CK$WRD2 U(01,00,60); # WORD 2 # 01029 M00S01028.ssmove +++| ITEM CK$FNC C(01,00,07); # SELECTED FILE NAME # 01030 M00S01029.ssmove +++| ITEM CK$WRD3 U(02,00,60); # WORD 3 # 01031 M00S01030.ssmove +++| ITEM CK$MASK U(02,00,42); # MASK FOR FILE NAME # 01032 M00S01031.ssmove +++| END 01033 M00S01032.ssmove +++| 01034 M00S01033.ssmove +++| CONTROL EJECT; 01035 M00S01034.ssmove +++| PO = 0; 01036 M00S01035.ssmove +++| 01037 M00S01036.ssmove +++| SLOWFOR I = 1 STEP 1 UNTIL IDXFN 01038 M00S01037.ssmove +++| DO 01039 M00S01038.ssmove +++| BEGIN # SEARCH FOR FILE MATCH # 01040 M00S01039.ssmove +++| IF UI LS SF$UI[I] 01041 M00S01040.ssmove +++| THEN # NO MATCH # 01042 M00S01041.ssmove +++| BEGIN 01043 M00S01042.ssmove +++| RETURN; 01044 M00S01043.ssmove +++| END 01045 M00S01044.ssmove +++| 01046 M00S01045.ssmove +++| IF UI GR SF$UI[I] 01047 M00S01046.ssmove +++| THEN 01048 M00S01047.ssmove +++| BEGIN 01049 M00S01048.ssmove +++| TEST I; 01050 M00S01049.ssmove +++| END 01051 M00S01050.ssmove +++| 01052 M00S01051.ssmove +++| CK$FN[0] = FN; 01053 M00S01052.ssmove +++| CK$FNC[0] = SF$FNC[I]; 01054 M00S01053.ssmove +++| CK$MASK[0] = SF$MASK[I]; 01055 M00S01054.ssmove +++| IF ( (CK$FN[0] LXR CK$FNC[0]) # COMPARE FILE NAMES # 01056 M00S01055.ssmove +++| LAN CK$WRD3[0] ) # EXCLUDE WILD-CARD CHARACTERS # 01057 M00S01056.ssmove +++| EQ 0 01058 M00S01057.ssmove +++| THEN # FOUND A MATCH # 01059 M00S01058.ssmove +++| BEGIN 01060 M00S01059.ssmove +++| PO = SF$PO[I]; 01061 M00S01060.ssmove +++| RETURN; 01062 M00S01061.ssmove +++| END 01063 M00S01062.ssmove +++| 01064 M00S01063.ssmove +++| END # SEARCH FOR FILE MATCH # 01065 M00S01064.ssmove +++| 01066 M00S01065.ssmove +++| END # MVCKSF # 01067 M00S01066.ssmove +++| 01068 M00S01067.ssmove +++| TERM 01069 M00S01068.ssmove +++|PROC MVDIR; 01070 M00S01069.ssmove +++|# TITLE MVDIR - PROCESS DIRECTIVES . # 01071 M00S01070.ssmove +++| 01072 M00S01071.ssmove +++| BEGIN # MVDIR # 01073 M00S01072.ssmove +++| 01074 M00S01073.ssmove +++|# 01075 M00S01074.ssmove +++|** THIS PROCEDURE PROCESSES THE DIRECTIVES. 01076 M00S01075.ssmove +++|* 01077 M00S01076.ssmove +++|* PROC MVDIR. 01078 M00S01077.ssmove +++|* 01079 M00S01078.ssmove +++|* MESSAGES. DIRECTIVE ERROR - REPORT ONLY. 01080 M00S01079.ssmove +++|* 01081 M00S01080.ssmove +++|* NOTES. THIS PROCEDURE READS EACH DIRECTIVE AND CHECKS 01082 M00S01081.ssmove +++|* THAT IT IS VALID. IF IT IS NOT A VALID DIRECTIVE 01083 M00S01082.ssmove +++|* A MESSAGE IS ISSUED TO THE DAYFILE AND THE REPORT 01084 M00S01083.ssmove +++|* FILE. *SSMOVE* THEN CONTINUES IN REPORT ONLY 01085 M00S01084.ssmove +++|* MODE. FOR THE *FR*,*WM*,*WA*,*PR*,*BR*, 01086 M00S01085.ssmove +++|* AND *SM* DIRECTIVES THE DEFAULT VALUES ARE REPLACED 01087 M00S01086.ssmove +++|* WITH THE SPECIFIED VALUES. THE DIRECTIVES AND 01088 M00S01087.ssmove +++|* RUN-TIME PARAMETER VALUES ARE WRITTEN TO THE REPORT 01089 M00S01088.ssmove +++|* FILE. 01090 M00S01089.ssmove +++|# 01091 M00S01090.ssmove +++| 01092 M00S01091.ssmove +++|# 01093 M00S01092.ssmove +++|**** PROC MVDIR - XREF LIST BEGIN. 01094 M00S01093.ssmove +++|# 01095 M00S01094.ssmove +++| 01096 M00S01095.ssmove +++| XREF 01097 M00S01096.ssmove +++| BEGIN 01098 M00S01097.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 01099 M00S01098.ssmove +++| PROC MESSAGE; # DISPLAYS A MESSAGE IN DAYFILE # 01100 M00S01099.ssmove +++| PROC READ; # INITIATE INPUT TO A BUFFER # 01101 M00S01100.ssmove +++| PROC READC; # COPY LINE TO WORKING BUFFER # 01102 M00S01101.ssmove +++| PROC RPEJECT; # PAGE EJECT # 01103 M00S01102.ssmove +++| PROC RPLINE; # WRITE LINE TO REPORT FILE # 01104 M00S01103.ssmove +++| PROC RPSPACE; # WRITE BLANK LINE TO REPORT FILE 01105 M00S01104.ssmove +++| # 01106 M00S01105.ssmove +++| PROC XARG; # DECODE PARAMETERS PER *ARG* 01107 M00S01106.ssmove +++| TABLE # 01108 M00S01107.ssmove +++| PROC ZFILL; # ZERO OUT AN ARRAY # 01109 M00S01108.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 01110 M00S01109.ssmove +++| FUNC XCDD C(10); # CONVERT BINARY TO DECIMAL # 01111 M00S01110.ssmove +++| FUNC XDXB I; # CONVERT DISPLAY TO BINARY # 01112 M00S01111.ssmove +++| END 01113 M00S01112.ssmove +++| 01114 M00S01113.ssmove +++|# 01115 M00S01114.ssmove +++|**** PROC MVDIR - XREF LIST END. 01116 M00S01115.ssmove +++|# 01117 M00S01116.ssmove +++| 01118 M00S01117.ssmove +++| DEF MSK77 #O"77"#; # MASK # 01119 M00S01118.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01120 M00S01119.ssmove +++| 01121 M00S01120.ssmove +++| CONTROL PRESET; 01122 M00S01121.ssmove +++|*CALL,COMBFAS 01123 M00S01122.ssmove +++|*CALL COMBSIT 01124 M00S01123.ssmove +++|*CALL,COMBBZF 01125 M00S01124.ssmove +++|*CALL,COMSPFM 01126 M00S01125.ssmove +++|*CALL,COMTMOV 01127 M00S01126.ssmove +++|*CALL,COMTMVD 01128 M00S01127.ssmove +++|*CALL,COMTMVP 01129 M00S01128.ssmove +++|*CALL,COMTOUT 01130 M00S01129.ssmove +++| 01131 M00S01130.ssmove +++| ITEM ARGLIST I; # ARGUMENT LIST ADDRESS # 01132 M00S01131.ssmove +++| ITEM COL I; # COLUMN NUMBER # 01133 M00S01132.ssmove +++| ITEM DIRLINE C(90); # DIRECTIVE TEXT LINE # 01134 M00S01133.ssmove +++| ITEM DIRNUM I; # DIRECTIVE NUMBER # 01135 M00S01134.ssmove +++| ITEM EOR B; # END-OF-RECORD FLAG # 01136 M00S01135.ssmove +++| ITEM FATALERR B; # FATAL ERROR, IF TRUE # 01137 M00S01136.ssmove +++| ITEM FOUND B; # LOOP EXIT CONTROL # 01138 M00S01137.ssmove +++| ITEM I I; # LOOP INDEX # 01139 M00S01138.ssmove +++| ITEM J I; # LOOP INDEX # 01140 M00S01139.ssmove +++| ITEM K I; # LOOP INDEX # 01141 M00S01140.ssmove +++| ITEM KEY C(2); # DIRECTIVE KEYWORD # 01142 M00S01141.ssmove +++| ITEM KEYOK B; # CONTROL VARIABLE # 01143 M00S01142.ssmove +++| ITEM L I; # LOOP INDEX # 01144 M00S01143.ssmove +++| ITEM LFN C(7); # FILE NAME # 01145 M00S01144.ssmove +++| ITEM MASK I; # MASK FOR SPECIAL FILE NAMES # 01146 M00S01145.ssmove +++| ITEM MAXARG I; # MAXIMUM NUMBER OF ARGUMENTS # 01147 M00S01146.ssmove +++| ITEM STAT I; # STATUS OF PROCEDURE CALL # 01148 M00S01147.ssmove +++| ITEM TMPI I; # TEMPORARY INTEGER # 01149 M00S01148.ssmove +++| 01150 M00S01149.ssmove +++| 01151 M00S01150.ssmove +++| ARRAY SFDEF [1:SFMX] S(1); 01152 M00S01151.ssmove +++| BEGIN 01153 M00S01152.ssmove +++| ITEM SFD$I I(00,00,60); # DEFAULT VALUES FOR *SF* 01154 M00S01153.ssmove +++| DIRECTIVE # 01155 M00S01154.ssmove +++| END 01156 M00S01155.ssmove +++| 01157 M00S01156.ssmove +++| BASED 01158 M00S01157.ssmove +++| ARRAY PARM [1:2,1:2,1:1] S(1); 01159 M00S01158.ssmove +++| BEGIN 01160 M00S01159.ssmove +++| ITEM PARM$V U(00,00,60); # PARAMETER VALUE # 01161 M00S01160.ssmove +++| END 01162 M00S01161.ssmove +++| 01163 M00S01162.ssmove +++| BASED 01164 M00S01163.ssmove +++| ARRAY XXARG[1:1] S(1); 01165 M00S01164.ssmove +++| BEGIN 01166 M00S01165.ssmove +++| ITEM XX$KEY C(00,00,02); # PARAMETER KEY # 01167 M00S01166.ssmove +++| ITEM XX$C2 C(00,06,01); # SECOND CHARACTER OF KEY # 01168 M00S01167.ssmove +++| END 01169 M00S01168.ssmove +++| 01170 M00S01169.ssmove +++| BASED 01171 M00S01170.ssmove +++| ARRAY SFPARM [1:1] S(1); 01172 M00S01171.ssmove +++| BEGIN 01173 M00S01172.ssmove +++| ITEM SF$C C(00,00,10); # *SF* PARAMETER (CHARACTER) # 01174 M00S01173.ssmove +++| ITEM SF$I I(00,00,60); # *SF* PARAMETER (INTEGER) # 01175 M00S01174.ssmove +++| END 01176 M00S01175.ssmove +++| 01177 M00S01176.ssmove +++| ARRAY SFTMP [0:0] S(1); 01178 M00S01177.ssmove +++| BEGIN 01179 M00S01178.ssmove +++| ITEM SFT$VAL U(00,00,60); # ENTIRE WORD # 01180 M00S01179.ssmove +++| ITEM SFT$UI U(00,00,18); # USER INDEX # 01181 M00S01180.ssmove +++| ITEM SFT$FNC C(00,18,07); # FILE NAME # 01182 M00S01181.ssmove +++| ITEM SFT$FNI I(00,18,42); # FILE NAME # 01183 M00S01182.ssmove +++| END 01184 M00S01183.ssmove +++| 01185 M00S01184.ssmove +++| BASED 01186 M00S01185.ssmove +++| ARRAY ZR [0:0];; # ARRAY TO BE ZEROED # 01187 M00S01186.ssmove +++| 01188 M00S01187.ssmove +++| 01189 M00S01188.ssmove +++| ITEM ADDR U; # PARAMETER LIST ADDRESS # 01190 M00S01189.ssmove +++| 01191 M00S01190.ssmove +++| 01192 M00S01191.ssmove +++| ARRAY LU [1:2] P(2); 01193 M00S01192.ssmove +++| BEGIN 01194 M00S01193.ssmove +++| ITEM LL I(00,00,60); # LOWER LIMIT # 01195 M00S01194.ssmove +++| ITEM UL I(01,00,60); # UPPER LIMIT # 01196 M00S01195.ssmove +++| END 01197 M00S01196.ssmove +++| 01198 M00S01197.ssmove +++| BASED 01199 M00S01198.ssmove +++| ARRAY TQ[1:1] S(1); 01200 M00S01199.ssmove +++| BEGIN 01201 M00S01200.ssmove +++| ITEM TQ$VAL I(00,00,60); # DIRECTIVE PARAMETERS # 01202 M00S01201.ssmove +++| END 01203 M00S01202.ssmove +++| 01204 M00S01203.ssmove +++| BASED 01205 M00S01204.ssmove +++| ARRAY KWTEXT[1:1] S(2); 01206 M00S01205.ssmove +++| BEGIN 01207 M00S01206.ssmove +++| ITEM KW$TEXT C(00,00,20); # TEXT FOR DIRECTIVE KEYWORD # 01208 M00S01207.ssmove +++| END 01209 M00S01208.ssmove +++| 01210 M00S01209.ssmove +++| 01211 M00S01210.ssmove +++| 01212 M00S01211.ssmove +++| CONTROL EJECT; 01213 M00S01212.ssmove +++| P<TQ> = ARG$TAB[0]; 01214 M00S01213.ssmove +++| 01215 M00S01214.ssmove +++|# 01216 M00S01215.ssmove +++|* INITIALIZE TO READ THE DIRECTIVE FILE. 01217 M00S01216.ssmove +++|# 01218 M00S01217.ssmove +++| 01219 M00S01218.ssmove +++| IF MVARG$I[0] NQ 0 01220 M00S01219.ssmove +++| THEN 01221 M00S01220.ssmove +++| BEGIN 01222 M00S01221.ssmove +++| IDXFN = 0; 01223 M00S01222.ssmove +++| LFN = MVARG$I[0]; 01224 M00S01223.ssmove +++| FETP = LOC(MV$FET[FILEMI]); 01225 M00S01224.ssmove +++| BUFP = LOC(MV$BUF[FILEMI]); 01226 M00S01225.ssmove +++| ZSETFET(FETP,LFN,BUFP,MVBUFL,SFETL); 01227 M00S01226.ssmove +++| READ(MV$FET[FILEMI],NRCL); 01228 M00S01227.ssmove +++| EOR = FALSE; 01229 M00S01228.ssmove +++| END 01230 M00S01229.ssmove +++| 01231 M00S01230.ssmove +++| ELSE # NO DIRECTIVE FILE # 01232 M00S01231.ssmove +++| BEGIN 01233 M00S01232.ssmove +++| EOR = TRUE; 01234 M00S01233.ssmove +++| END 01235 M00S01234.ssmove +++| 01236 M00S01235.ssmove +++|# 01237 M00S01236.ssmove +++|* READ AND PROCESS EACH DIRECTIVE. ISSUE A NON-FATAL 01238 M00S01237.ssmove +++|* ERROR MESSAGE FOR ANY DIRECTIVE ERRORS. 01239 M00S01238.ssmove +++|# 01240 M00S01239.ssmove +++| 01241 M00S01240.ssmove +++| FOR DIRNUM = 1 STEP 1 WHILE NOT EOR 01242 M00S01241.ssmove +++| DO 01243 M00S01242.ssmove +++| BEGIN # PROCESS NEXT DIRECTIVE # 01244 M00S01243.ssmove +++| DIRLINE = " "; # ERASE PREVIOUS DIRECTIVE # 01245 M00S01244.ssmove +++| READC(MV$FET[FILEMI],DIRLINE,9,STAT); 01246 M00S01245.ssmove +++| BZFILL(DIRLINE,TYPFILL"BFILL",90); 01247 M00S01246.ssmove +++| C<89,1>DIRLINE = "."; # FORCE DIRECTIVE TERMINATOR # 01248 M00S01247.ssmove +++| IF STAT NQ 0 01249 M00S01248.ssmove +++| THEN 01250 M00S01249.ssmove +++| BEGIN 01251 M00S01250.ssmove +++| EOR = TRUE; 01252 M00S01251.ssmove +++| TEST DIRNUM; 01253 M00S01252.ssmove +++| END 01254 M00S01253.ssmove +++| 01255 M00S01254.ssmove +++| CHR$10[0] = XCDD(DIRNUM); 01256 M00S01255.ssmove +++| RPLINE(OUT$FETP,CHR$R3[0],3,3,1); # PRINT DIRECTIVE NUMBER # 01257 M00S01256.ssmove +++| RPLINE(OUT$FETP,DIRLINE,8,80,0); # PRINT DIRECTIVE # 01258 M00S01257.ssmove +++| 01259 M00S01258.ssmove +++| IF C<0,1>DIRLINE EQ "*" 01260 M00S01259.ssmove +++| THEN # FOUND COMMENT # 01261 M00S01260.ssmove +++| BEGIN 01262 M00S01261.ssmove +++| TEST DIRNUM; 01263 M00S01262.ssmove +++| END 01264 M00S01263.ssmove +++| 01265 M00S01264.ssmove +++| 01266 M00S01265.ssmove +++|# 01267 M00S01266.ssmove +++|* VERIFY DIRECTIVE KEYWORD IS OK. 01268 M00S01267.ssmove +++|* LOCATE *ARGLIST* FOR THIS DIRECTIVE. 01269 M00S01268.ssmove +++|# 01270 M00S01269.ssmove +++| 01271 M00S01270.ssmove +++| KEY = C<0,2>DIRLINE; 01272 M00S01271.ssmove +++| KEYOK = FALSE; 01273 M00S01272.ssmove +++| FOR I = 1 STEP 1 WHILE (NOT KEYOK) AND (I LQ NUMDIR) 01274 M00S01273.ssmove +++| DO 01275 M00S01274.ssmove +++| BEGIN 01276 M00S01275.ssmove +++| IF ARG$KEY[I] NQ KEY 01277 M00S01276.ssmove +++| THEN 01278 M00S01277.ssmove +++| BEGIN 01279 M00S01278.ssmove +++| TEST I; 01280 M00S01279.ssmove +++| END 01281 M00S01280.ssmove +++| 01282 M00S01281.ssmove +++| KEYOK = TRUE; 01283 M00S01282.ssmove +++| MAXARG = ARG$MX[I]; 01284 M00S01283.ssmove +++| ADDR = ARG$VAL[I]; 01285 M00S01284.ssmove +++| ARGLIST = ARG$TAB[I]; 01286 M00S01285.ssmove +++| END 01287 M00S01286.ssmove +++| 01288 M00S01287.ssmove +++|# 01289 M00S01288.ssmove +++|* IF A DIRECTIVE ERROR OR DIRECTIVE PARAMETER ERROR EXISTS 01290 M00S01289.ssmove +++|* IGNORE THIS DIRECTIVE. 01291 M00S01290.ssmove +++|# 01292 M00S01291.ssmove +++| 01293 M00S01292.ssmove +++| IF NOT KEYOK 01294 M00S01293.ssmove +++| THEN # DIRECTIVE ERROR # 01295 M00S01294.ssmove +++| BEGIN 01296 M00S01295.ssmove +++| RPLINE(OUT$FETP,"** UNRECOGNIZED DIRECTIVE - IGNORED.",8,36 01297 M00S01296.ssmove +++| ,0); 01298 M00S01297.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01299 M00S01298.ssmove +++| FATALERR = TRUE; 01300 M00S01299.ssmove +++| TEST DIRNUM; 01301 M00S01300.ssmove +++| END 01302 M00S01301.ssmove +++| 01303 M00S01302.ssmove +++|# 01304 M00S01303.ssmove +++|* CRACK PARAMETERS FOR THE DIRECTIVE AND SAVE THEM APPROPRIATELY. 01305 M00S01304.ssmove +++|# 01306 M00S01305.ssmove +++| 01307 M00S01306.ssmove +++| P<ZR> = ARG$TAB[0]; 01308 M00S01307.ssmove +++| ZFILL(ZR[0],ARG$MX[0]); 01309 M00S01308.ssmove +++| XARG(ARGLIST,DIRLINE,STAT); 01310 M00S01309.ssmove +++| IF STAT NQ 0 01311 M00S01310.ssmove +++| THEN # DIRECTIVE PARAMETER ERROR # 01312 M00S01311.ssmove +++| BEGIN 01313 M00S01312.ssmove +++| RPLINE(OUT$FETP,"PARAM ERROR - DIRECTIVE IGNORED",12,31,0); 01314 M00S01313.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01315 M00S01314.ssmove +++| FATALERR = TRUE; 01316 M00S01315.ssmove +++| TEST DIRNUM; 01317 M00S01316.ssmove +++| END 01318 M00S01317.ssmove +++| 01319 M00S01318.ssmove +++| CONTROL EJECT; 01320 M00S01319.ssmove +++| 01321 M00S01320.ssmove +++|# 01322 M00S01321.ssmove +++|** PROCESS THE *PR*, *BR*, *FR*, *WA*, *WM*, *SM* DIRECTIVES 01323 M00S01322.ssmove +++|* BY REPLACING DEFAULT VALUES WITH SPECIFIED VALUES. 01324 M00S01323.ssmove +++|# 01325 M00S01324.ssmove +++| 01326 M00S01325.ssmove +++| IF KEY NQ "SF" 01327 M00S01326.ssmove +++| THEN 01328 M00S01327.ssmove +++| BEGIN 01329 M00S01328.ssmove +++| FOR I = 1 STEP 1 UNTIL 2 01330 M00S01329.ssmove +++| DO 01331 M00S01330.ssmove +++| BEGIN # ESTABLISH LIMITS PER *TQ* # 01332 M00S01331.ssmove +++| LL[I] = 1; 01333 M00S01332.ssmove +++| UL[I] = 2; 01334 M00S01333.ssmove +++| IF TQ$VAL[2*I-1] NQ TQ$VAL[2*I] 01335 M00S01334.ssmove +++| THEN 01336 M00S01335.ssmove +++| BEGIN # NOT 1,2 # 01337 M00S01336.ssmove +++| IF TQ$VAL[2*I-1] NQ 0 01338 M00S01337.ssmove +++| THEN 01339 M00S01338.ssmove +++| BEGIN 01340 M00S01339.ssmove +++| LL[I] = 2; 01341 M00S01340.ssmove +++| END 01342 M00S01341.ssmove +++| 01343 M00S01342.ssmove +++| ELSE 01344 M00S01343.ssmove +++| BEGIN 01345 M00S01344.ssmove +++| UL[I] = 1; 01346 M00S01345.ssmove +++| END 01347 M00S01346.ssmove +++| 01348 M00S01347.ssmove +++| END # NOT 1,2 # 01349 M00S01348.ssmove +++| 01350 M00S01349.ssmove +++| END # ESTABLISH LIMITS PER *TQ* # 01351 M00S01350.ssmove +++| 01352 M00S01351.ssmove +++| STAT = 0; 01353 M00S01352.ssmove +++| P<PARM> = ADDR; 01354 M00S01353.ssmove +++| FOR I = 1 STEP 1 UNTIL MAXARG 01355 M00S01354.ssmove +++| DO 01356 M00S01355.ssmove +++| BEGIN 01357 M00S01356.ssmove +++| IF TQ$VAL[I+5] EQ 0 01358 M00S01357.ssmove +++| THEN 01359 M00S01358.ssmove +++| BEGIN 01360 M00S01359.ssmove +++| TEST I; 01361 M00S01360.ssmove +++| END 01362 M00S01361.ssmove +++| 01363 M00S01362.ssmove +++| STAT = XDXB(TQ$VAL[I+5],1,TMPI); 01364 M00S01363.ssmove +++| IF STAT NQ 0 01365 M00S01364.ssmove +++| THEN 01366 M00S01365.ssmove +++| BEGIN 01367 M00S01366.ssmove +++| RPLINE(OUT$FETP,"INCORRECT VALUE - DIRECTIVE IGNORED." 01368 M00S01367.ssmove +++| ,8,35,0); 01369 M00S01368.ssmove +++| FATALERR = TRUE; 01370 M00S01369.ssmove +++| TEST I; 01371 M00S01370.ssmove +++| END 01372 M00S01371.ssmove +++| 01373 M00S01372.ssmove +++| FOR J = LL[1] STEP 1 UNTIL UL[1] 01374 M00S01373.ssmove +++| DO 01375 M00S01374.ssmove +++| BEGIN # J # 01376 M00S01375.ssmove +++| FOR K = LL[2] STEP 1 UNTIL UL[2] 01377 M00S01376.ssmove +++| DO 01378 M00S01377.ssmove +++| BEGIN # K # 01379 M00S01378.ssmove +++| PARM$V[J,K,I] = TMPI; 01380 M00S01379.ssmove +++| END 01381 M00S01380.ssmove +++| 01382 M00S01381.ssmove +++| END # J # 01383 M00S01382.ssmove +++| 01384 M00S01383.ssmove +++| END # I # 01385 M00S01384.ssmove +++| 01386 M00S01385.ssmove +++| TEST DIRNUM; 01387 M00S01386.ssmove +++| END 01388 M00S01387.ssmove +++| 01389 M00S01388.ssmove +++|# 01390 M00S01389.ssmove +++|** PROCESS THE *SF* DIRECTIVE WITHOUT THE *FN* PARAMETER 01391 M00S01390.ssmove +++|* BY SAVING THE OTHER PARAMETERS AS DEFAULTS FOR USE WHEN 01392 M00S01391.ssmove +++|* THE *FN* PARAMETER IS PROVIDED. 01393 M00S01392.ssmove +++|# 01394 M00S01393.ssmove +++| 01395 M00S01394.ssmove +++| P<SFPARM> = ARG$VAL[0]; 01396 M00S01395.ssmove +++| IF SF$I[SFFN] EQ 0 01397 M00S01396.ssmove +++| THEN 01398 M00S01397.ssmove +++| BEGIN # ESTABLISH *SF* DEFAULTS # 01399 M00S01398.ssmove +++| FOR I = 1 STEP 1 UNTIL SFMX 01400 M00S01399.ssmove +++| DO 01401 M00S01400.ssmove +++| BEGIN 01402 M00S01401.ssmove +++| IF SF$I[I] NQ 0 01403 M00S01402.ssmove +++| THEN 01404 M00S01403.ssmove +++| BEGIN 01405 M00S01404.ssmove +++| SFD$I[I] = SF$I[I]; 01406 M00S01405.ssmove +++| END 01407 M00S01406.ssmove +++| 01408 M00S01407.ssmove +++| END 01409 M00S01408.ssmove +++| 01410 M00S01409.ssmove +++| TEST DIRNUM; 01411 M00S01410.ssmove +++| END # ESTABLISH *SF* DEFAULTS # 01412 M00S01411.ssmove +++| 01413 M00S01412.ssmove +++|# 01414 M00S01413.ssmove +++|** PROCESS THE *SF* DIRECTIVE HAVING THE *FN* PARAMETER AS FOLLOWS.. 01415 M00S01414.ssmove +++|* 1) SUBSTITUTE THE DEFAULT PARAMETERS FOR ANY MISSING 01416 M00S01415.ssmove +++|* PARAMETER. DECLARE AN ERROR IF EITHER THE *UI* OR 01417 M00S01416.ssmove +++|* *PO* PARAMETER IS MISSING. 01418 M00S01417.ssmove +++|* 01419 M00S01418.ssmove +++|* 2) IGNORE DIRECTIVE IF THE *UI* OR *PO* PARAMETER IS INVALID. 01420 M00S01419.ssmove +++|* 01421 M00S01420.ssmove +++|* 3) SAVE THE *FN*, *UI*, *PO* VALUES AND THE FILE MASK IN THE 01422 M00S01421.ssmove +++|* ARRAY OF SELECTED FILES. 01423 M00S01422.ssmove +++|# 01424 M00S01423.ssmove +++| 01425 M00S01424.ssmove +++| KEYOK = TRUE; 01426 M00S01425.ssmove +++| FOR I = SFUI STEP 1 UNTIL SFPO 01427 M00S01426.ssmove +++| DO 01428 M00S01427.ssmove +++| BEGIN # STEP 1 # 01429 M00S01428.ssmove +++| IF SF$I[I] EQ 0 01430 M00S01429.ssmove +++| THEN 01431 M00S01430.ssmove +++| BEGIN 01432 M00S01431.ssmove +++| SF$I[I] = SFD$I[I]; 01433 M00S01432.ssmove +++| END 01434 M00S01433.ssmove +++| 01435 M00S01434.ssmove +++| IF SF$I[I] EQ 0 01436 M00S01435.ssmove +++| THEN 01437 M00S01436.ssmove +++| BEGIN 01438 M00S01437.ssmove +++| KEYOK = FALSE; 01439 M00S01438.ssmove +++| END 01440 M00S01439.ssmove +++| 01441 M00S01440.ssmove +++| END # STEP 1 # 01442 M00S01441.ssmove +++| 01443 M00S01442.ssmove +++| STAT = XDXB(SF$C[SFUI],0,TMPI); 01444 M00S01443.ssmove +++| KEYOK = KEYOK AND (STAT EQ 0) AND ## 01445 M00S01444.ssmove +++| (TMPI GR 0) AND (TMPI LQ SYS$UI); 01446 M00S01445.ssmove +++| SFT$UI[0] = TMPI; 01447 M00S01446.ssmove +++| KEY = C<0,1>SF$C[SFPO]; 01448 M00S01447.ssmove +++| IF KEY NQ "A" AND KEY NQ "B" AND KEY NQ "S" ## 01449 M00S01448.ssmove +++| AND KEY NQ "F" AND KEY NQ "X" 01450 M00S01449.ssmove +++| THEN 01451 M00S01450.ssmove +++| BEGIN 01452 M00S01451.ssmove +++| KEYOK = FALSE; 01453 M00S01452.ssmove +++| END 01454 M00S01453.ssmove +++| 01455 M00S01454.ssmove +++| IF NOT KEYOK 01456 M00S01455.ssmove +++| THEN 01457 M00S01456.ssmove +++| BEGIN 01458 M00S01457.ssmove +++| RPLINE(OUT$FETP,"*PO* OR *UI* PARAMETER MISSING OR INVALID" 01459 M00S01458.ssmove +++| ,8,41,0); 01460 M00S01459.ssmove +++| FATALERR = TRUE; 01461 M00S01460.ssmove +++| TEST DIRNUM; 01462 M00S01461.ssmove +++| END 01463 M00S01462.ssmove +++| 01464 M00S01463.ssmove +++| IF IDXFN EQ MXSPF 01465 M00S01464.ssmove +++| THEN 01466 M00S01465.ssmove +++| BEGIN 01467 M00S01466.ssmove +++| RPLINE(OUT$FETP,"TOO MANY FILES SPECIFIED - EXCESS IGNORED." 01468 M00S01467.ssmove +++| ,8,42,0); 01469 M00S01468.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01470 M00S01469.ssmove +++| END 01471 M00S01470.ssmove +++| 01472 M00S01471.ssmove +++| IDXFN = IDXFN+1; 01473 M00S01472.ssmove +++| IF IDXFN GR MXSPF 01474 M00S01473.ssmove +++| THEN 01475 M00S01474.ssmove +++| BEGIN 01476 M00S01475.ssmove +++| TEST DIRNUM; 01477 M00S01476.ssmove +++| END 01478 M00S01477.ssmove +++| 01479 M00S01478.ssmove +++| SFT$FNC[0] = SF$C[SFFN]; 01480 M00S01479.ssmove +++| MASK = -1; 01481 M00S01480.ssmove +++| FOR I = 0 STEP 1 UNTIL 6 01482 M00S01481.ssmove +++| DO 01483 M00S01482.ssmove +++| BEGIN # FIND ASTERISKS IN FILE NAME # 01484 M00S01483.ssmove +++| IF C<I,1>SFT$FNC[0] NQ "*" 01485 M00S01484.ssmove +++| THEN 01486 M00S01485.ssmove +++| BEGIN 01487 M00S01486.ssmove +++| TEST I; 01488 M00S01487.ssmove +++| END 01489 M00S01488.ssmove +++| 01490 M00S01489.ssmove +++| C<I,1>SFT$FNC[0] = MSK77; 01491 M00S01490.ssmove +++| C<I,1>MASK = 0; 01492 M00S01491.ssmove +++| END # FIND ASTERISKS # 01493 M00S01492.ssmove +++| 01494 M00S01493.ssmove +++|# 01495 M00S01494.ssmove +++|* INSERT THE FILE PARAMETERS AND MASK INTO THE ARRAY 01496 M00S01495.ssmove +++|* SUCH THAT THE USER INDEX AND FILE NAME ARE IN ASCENDING ORDER. 01497 M00S01496.ssmove +++|# 01498 M00S01497.ssmove +++| 01499 M00S01498.ssmove +++| FOUND = FALSE; 01500 M00S01499.ssmove +++| SLOWFOR I = IDXFN STEP -1 WHILE (NOT FOUND) 01501 M00S01500.ssmove +++| DO 01502 M00S01501.ssmove +++| BEGIN 01503 M00S01502.ssmove +++| IF (SFT$VAL[0] LS SF$W1[I-1]) AND (I GR 1) 01504 M00S01503.ssmove +++| THEN 01505 M00S01504.ssmove +++| BEGIN 01506 M00S01505.ssmove +++| SF$W1[I] = SF$W1[I-1]; 01507 M00S01506.ssmove +++| SF$W2[I] = SF$W2[I-1]; 01508 M00S01507.ssmove +++| TEST I; 01509 M00S01508.ssmove +++| END 01510 M00S01509.ssmove +++| 01511 M00S01510.ssmove +++| ELSE 01512 M00S01511.ssmove +++| BEGIN 01513 M00S01512.ssmove +++| FOUND = TRUE; 01514 M00S01513.ssmove +++| SF$W1[I] = SFT$VAL[0]; 01515 M00S01514.ssmove +++| SF$PO[I] = KEY; 01516 M00S01515.ssmove +++| SF$MASK[I] = B<0,42>MASK; 01517 M00S01516.ssmove +++| END 01518 M00S01517.ssmove +++| 01519 M00S01518.ssmove +++| END 01520 M00S01519.ssmove +++| 01521 M00S01520.ssmove +++| TEST DIRNUM; 01522 M00S01521.ssmove +++| END # DIRECTIVE PROCESSING # 01523 M00S01522.ssmove +++| 01524 M00S01523.ssmove +++|# 01525 M00S01524.ssmove +++|* IF A FATAL DIRECTIVE ERROR OR DIRECTIVE PARAMETER ERROR 01526 M00S01525.ssmove +++|* HAS OCCURRED THEN ISSUE A DAYFILE MESSAGE AND CONTINUE 01527 M00S01526.ssmove +++|* IN REPORT ONLY MODE. 01528 M00S01527.ssmove +++|# 01529 M00S01528.ssmove +++| 01530 M00S01529.ssmove +++| IF FATALERR 01531 M00S01530.ssmove +++| THEN 01532 M00S01531.ssmove +++| BEGIN 01533 M00S01532.ssmove +++| MVMSG$LN[0] = " DIRECTIVE ERROR - REPORT ONLY."; 01534 M00S01533.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 01535 M00S01534.ssmove +++| PX$A[0] = TRUE; 01536 M00S01535.ssmove +++| PX$B[0] = TRUE; 01537 M00S01536.ssmove +++| PX$F[0] = TRUE; 01538 M00S01537.ssmove +++| PX$S[0] = TRUE; 01539 M00S01538.ssmove +++| END 01540 M00S01539.ssmove +++| 01541 M00S01540.ssmove +++|# 01542 M00S01541.ssmove +++|* WRITE RESULTANT VALUES OF RUN-TIME PARAMETERS. 01543 M00S01542.ssmove +++|# 01544 M00S01543.ssmove +++| 01545 M00S01544.ssmove +++| 01546 M00S01545.ssmove +++|# 01547 M00S01546.ssmove +++|* WRITE HEADER. 01548 M00S01547.ssmove +++|# 01549 M00S01548.ssmove +++| 01550 M00S01549.ssmove +++| RPEJECT(OUT$FETP); 01551 M00S01550.ssmove +++| 01552 M00S01551.ssmove +++| RPLINE(OUT$FETP, ## 01553 M00S01552.ssmove +++| "RUN-TIME PARAMETER VALUES ", ## 01554 M00S01553.ssmove +++| 17,27,0); 01555 M00S01554.ssmove +++| 01556 M00S01555.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01557 M00S01556.ssmove +++| 01558 M00S01557.ssmove +++| RPLINE(OUT$FETP, ## 01559 M00S01558.ssmove +++| " * D E S T A G E * * R E L E A S E *", ## 01560 M00S01559.ssmove +++| 15,42,0); 01561 M00S01560.ssmove +++| 01562 M00S01561.ssmove +++| RPLINE(OUT$FETP, ## 01563 M00S01562.ssmove +++| " DIRECT INDIRECT DIRECT INDIRECT", ## 01564 M00S01563.ssmove +++| 15,42,0); 01565 M00S01564.ssmove +++| 01566 M00S01565.ssmove +++| 01567 M00S01566.ssmove +++|# 01568 M00S01567.ssmove +++|* WRITE PARAMETER VALUES 01569 M00S01568.ssmove +++|# 01570 M00S01569.ssmove +++| 01571 M00S01570.ssmove +++| FOR I = 2 STEP 1 UNTIL NUMDIR 01572 M00S01571.ssmove +++| DO 01573 M00S01572.ssmove +++| BEGIN # I # 01574 M00S01573.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 01575 M00S01574.ssmove +++| P<KWTEXT> = ARG$TEXT[I]; 01576 M00S01575.ssmove +++| RPLINE(OUT$FETP,KWTEXT[1],3,20,0); 01577 M00S01576.ssmove +++| 01578 M00S01577.ssmove +++| KEY = ARG$KEY[I]; 01579 M00S01578.ssmove +++| P<XXARG> = ARG$TAB[I]+5; 01580 M00S01579.ssmove +++| P<PARM> = ARG$VAL[I]; 01581 M00S01580.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01582 M00S01581.ssmove +++| RPLINE(OUT$FETP,KEY,8,2,1); # PRINT DIRECTIVE KEY # 01583 M00S01582.ssmove +++| 01584 M00S01583.ssmove +++| FOR J = 1 STEP 1 UNTIL ARG$MX[I] 01585 M00S01584.ssmove +++| DO 01586 M00S01585.ssmove +++| BEGIN # J # 01587 M00S01586.ssmove +++| KEY = XX$KEY[J]; 01588 M00S01587.ssmove +++| IF XX$C2[J] EQ 0 01589 M00S01588.ssmove +++| THEN # SPACE FILL KEY # 01590 M00S01589.ssmove +++| BEGIN 01591 M00S01590.ssmove +++| C<1,1>KEY = " "; 01592 M00S01591.ssmove +++| END 01593 M00S01592.ssmove +++| 01594 M00S01593.ssmove +++| COL = 16; # STARTING COLUMN FOR PARAMETER 01595 M00S01594.ssmove +++| VALUES # 01596 M00S01595.ssmove +++| FOR K = 1 STEP 1 UNTIL 2 01597 M00S01596.ssmove +++| DO 01598 M00S01597.ssmove +++| BEGIN # K # 01599 M00S01598.ssmove +++| FOR L = 1 STEP 1 UNTIL 2 01600 M00S01599.ssmove +++| DO 01601 M00S01600.ssmove +++| BEGIN # L # 01602 M00S01601.ssmove +++| TMPI = PARM$V[L,K,J]; 01603 M00S01602.ssmove +++| CHR$10[0] = XCDD(TMPI); # CONVERT VALUE TO DECIMAL # 01604 M00S01603.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],COL,8,1); # PRINT VALUE # 01605 M00S01604.ssmove +++| COL = COL + 11; # MOVE TO NEXT COLUMN # 01606 M00S01605.ssmove +++| END # L # 01607 M00S01606.ssmove +++| 01608 M00S01607.ssmove +++| END # K # 01609 M00S01608.ssmove +++| 01610 M00S01609.ssmove +++| RPLINE(OUT$FETP,KEY,12,2,0); # PRINT PARAM KEY AND VALUES # 01611 M00S01610.ssmove +++| END # J # 01612 M00S01611.ssmove +++| 01613 M00S01612.ssmove +++| END # I # 01614 M00S01613.ssmove +++| 01615 M00S01614.ssmove +++| END # MVDIR # 01616 M00S01615.ssmove +++| 01617 M00S01616.ssmove +++| TERM 01618 M00S01617.ssmove +++|PROC MVDOIT; 01619 M00S01618.ssmove +++|# TITLE MVDOIT - PERFORM SELECTED PROCESSING. # 01620 M00S01619.ssmove +++| 01621 M00S01620.ssmove +++| BEGIN # MVDOIT # 01622 M00S01621.ssmove +++| 01623 M00S01622.ssmove +++|# 01624 M00S01623.ssmove +++|** MVDOIT - PERFORM SELECTED PROCESSING. 01625 M00S01624.ssmove +++|* 01626 M00S01625.ssmove +++|* THIS PROCEDURE ISSUES THE CALLS TO STAGE A FILE, CLEAR 01627 M00S01626.ssmove +++|* AN *ASA*, AND DROP DISK SPACE. 01628 M00S01627.ssmove +++|* 01629 M00S01628.ssmove +++|* PROC MVDOIT. 01630 M00S01629.ssmove +++|* 01631 M00S01630.ssmove +++|* ENTRY. PROCESSING ACTION FLAGS ARE SET IN ARRAY 01632 M00S01631.ssmove +++|* *EXT$TDAM*. 01633 M00S01632.ssmove +++|* 01634 M00S01633.ssmove +++|* EXIT. SELECTED PROCESSING OCCURS OR ERRORS ARE 01635 M00S01634.ssmove +++|* PROCESSED. 01636 M00S01635.ssmove +++|* 01637 M00S01636.ssmove +++|* NOTES. 1) IF THE FILE IS TO BE STAGED, A CALL IS MADE TO 01638 M00S01637.ssmove +++|* *CALPFU* TO STAGE THE FILE. 01639 M00S01638.ssmove +++|* 01640 M00S01639.ssmove +++|* 2) IF THE FILE-S *ASA* IS TO BE CLEARED, A CALL IS 01641 M00S01640.ssmove +++|* MADE TO *SETAF* TO CLEAR THE *ASA* IN THE FILE-S 01642 M00S01641.ssmove +++|* *PFC* ENTRY. 01643 M00S01642.ssmove +++|* 01644 M00S01643.ssmove +++|* 3) IF THE FILE IS TO BE RELEASED *DROPDS* (FOR 01645 M00S01644.ssmove +++|* DIRECT ACCESS FILES) OR *DROPIDS* ( FOR 01646 M00S01645.ssmove +++|* INDIRECT ACCESS FILES) IS CALLED TO RELEASE 01647 M00S01646.ssmove +++|* THE DISK SPACE FOR THE FILE. 01648 M00S01647.ssmove +++|# 01649 M00S01648.ssmove +++| 01650 M00S01649.ssmove +++|# 01651 M00S01650.ssmove +++|**** PROC MVDOIT - XREF LIST BEGIN. 01652 M00S01651.ssmove +++|# 01653 M00S01652.ssmove +++| 01654 M00S01653.ssmove +++| XREF 01655 M00S01654.ssmove +++| BEGIN 01656 M00S01655.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 01657 M00S01656.ssmove +++| PROC CALPFU; # CALL *PFU* TO STAGE FILE # 01658 M00S01657.ssmove +++| PROC DROPDS; # DROP DIRECT FILE DISK SPACE # 01659 M00S01658.ssmove +++| PROC DROPIDS; # DROP INDIRECT FILE DISK SPACE # 01660 M00S01659.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 01661 M00S01660.ssmove +++| PROC MVERRP; # PROCESS *SSMOVE* ERRORS # 01662 M00S01661.ssmove +++| PROC RECALL; # RECALL # 01663 M00S01662.ssmove +++| PROC RETERN; # RETURN FILE # 01664 M00S01663.ssmove +++| PROC SETAF; # SET ALTERNATE STORAGE ADDRESS # 01665 M00S01664.ssmove +++| PROC UATTACH; # UTILITY ATTACH # 01666 M00S01665.ssmove +++| PROC UGET; # UTILITY GET # 01667 M00S01666.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 01668 M00S01667.ssmove +++| END 01669 M00S01668.ssmove +++| 01670 M00S01669.ssmove +++|# 01671 M00S01670.ssmove +++|**** PROC MVDOIT - XREF LIST END. 01672 M00S01671.ssmove +++|# 01673 M00S01672.ssmove +++| 01674 M00S01673.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01675 M00S01674.ssmove +++| 01676 M00S01675.ssmove +++|*CALL COMBFAS 01677 M00S01676.ssmove +++|*CALL COMBBZF 01678 M00S01677.ssmove +++|*CALL COMBTDM 01679 M00S01678.ssmove +++|*CALL COMSPFM 01680 M00S01679.ssmove +++|*CALL COMTMOV 01681 M00S01680.ssmove +++| 01682 M00S01681.ssmove +++| DEF ZEROASA #0#; # ZERO *ASA* # 01683 M00S01682.ssmove +++| 01684 M00S01683.ssmove +++| ITEM CTSR U; # STAGE REQUEST # 01685 M00S01684.ssmove +++| ITEM FAMILY C(10); # FAMILY NAME # 01686 M00S01685.ssmove +++| ITEM FILENAME C(10); # FILE NAME # 01687 M00S01686.ssmove +++| ITEM FLAG I; # ERROR FLAG # 01688 M00S01687.ssmove +++| ITEM I I; # LOOP VARIABLE # 01689 M00S01688.ssmove +++| ITEM J I; # LOOP VARIABLE # 01690 M00S01689.ssmove +++| ITEM LFN C(10); # LOCAL FILE NAME # 01691 M00S01690.ssmove +++| ITEM MORE B; # ISSUE STAGE REQUEST AGAIN # 01692 M00S01691.ssmove +++| ITEM UFLAG I; # UTILITY ERROR FLAG # 01693 M00S01692.ssmove +++| 01694 M00S01693.ssmove +++| ARRAY DOIT$PFC[0:0]S(PFCENTL);; # PFC INFORMATION FOR *PFU* # 01695 M00S01694.ssmove +++| 01696 M00S01695.ssmove +++| ARRAY STG$REQ [0:0] S(5); # STAGE REQUEST INFORMATION # 01697 M00S01696.ssmove +++| BEGIN 01698 M00S01697.ssmove +++| ITEM STG$FAM C(00,00,07); # FAMILY NAME # 01699 M00S01698.ssmove +++| ITEM STG$DN U(01,54,06); # DEVICE NUMBER # 01700 M00S01699.ssmove +++| ITEM STG$TN U(02,48,12); # TRACK NUMBER # 01701 M00S01700.ssmove +++| ITEM STG$SN U(03,48,12); # SECTOR NUMBER # 01702 M00S01701.ssmove +++| ITEM STG$PEO U(04,58,02); # PFC ENTRY ORDINAL # 01703 M00S01702.ssmove +++| END 01704 M00S01703.ssmove +++| 01705 M00S01704.ssmove +++| ARRAY SG$CW [0:0] S(1); # STAGE REQUEST CONTROL WORD # 01706 M00S01705.ssmove +++| BEGIN 01707 M00S01706.ssmove +++| ITEM SG$WORD U(00,00,60); # STAGE CONTROL WORD # 01708 M00S01707.ssmove +++| ITEM SG$PE U(00,00,18); # PFC ENTRY IMAGE # 01709 M00S01708.ssmove +++| ITEM SG$REQ U(00,18,18); # INFORMATION LIST # 01710 M00S01709.ssmove +++| ITEM SG$STAT U(00,36,24); # STATUS # 01711 M00S01710.ssmove +++| ITEM SG$ERR U(00,36,12); # ERROR STATUS # 01712 M00S01711.ssmove +++| ITEM SG$COMP U(00,59,01); # REQUEST COMPLETE # 01713 M00S01712.ssmove +++| END 01714 M00S01713.ssmove +++| 01715 M00S01714.ssmove +++| ARRAY ERRMSG [0:0] P(3);; # *PFM* ERROR MESSAGE # 01716 M00S01715.ssmove +++| 01717 M00S01716.ssmove +++| CONTROL EJECT; 01718 M00S01717.ssmove +++| 01719 M00S01718.ssmove +++|# 01720 M00S01719.ssmove +++|* IF THE FILE IS TO BE STAGED, SET UP THE STAGE REQUEST 01721 M00S01720.ssmove +++|* ARRAYS. CALL *CALPFU* TO STAGE THE FILE. 01722 M00S01721.ssmove +++|# 01723 M00S01722.ssmove +++| 01724 M00S01723.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 01725 M00S01724.ssmove +++| P<PFC> = LOC(DOIT$PFC[0]); 01726 M00S01725.ssmove +++| ZFILL(SG$CW,1); 01727 M00S01726.ssmove +++| MORE = TRUE; 01728 M00S01727.ssmove +++| 01729 M00S01728.ssmove +++| IF EXT$STG[0] 01730 M00S01729.ssmove +++| THEN 01731 M00S01730.ssmove +++| BEGIN # STAGE FILE # 01732 M00S01731.ssmove +++| IF EXT$CLR[0] 01733 M00S01732.ssmove +++| THEN # HAVE *STAGER* CLEAR *ASA* # 01734 M00S01733.ssmove +++| BEGIN 01735 M00S01734.ssmove +++| TDAMFFF[0] = TRUE; 01736 M00S01735.ssmove +++| END 01737 M00S01736.ssmove +++| 01738 M00S01737.ssmove +++| STG$FAM[0] = TDAMFAM[0]; 01739 M00S01738.ssmove +++| STG$DN[0] = TDAMDN[0]; 01740 M00S01739.ssmove +++| STG$TN[0] = TDAMTRACK[0]; 01741 M00S01740.ssmove +++| STG$SN[0] = TDAMSECTOR[0]; 01742 M00S01741.ssmove +++| STG$PEO[0] = TDAMPEO[0]; 01743 M00S01742.ssmove +++| SG$WORD = 1; 01744 M00S01743.ssmove +++| PFC$AFFRE[0] = TDAMFFF[0]; 01745 M00S01744.ssmove +++| PFC$AA[0] = TDAMASA[0]; 01746 M00S01745.ssmove +++| PFC$AT[0] = TDAMAT[0]; 01747 M00S01746.ssmove +++| PFC$FN[0] = TDAMPFN[0]; 01748 M00S01747.ssmove +++| PFC$UI[0] = TDAMUI[0]; 01749 M00S01748.ssmove +++| PFC$CD[0] = TDAMCDT[0]; 01750 M00S01749.ssmove +++| PFC$DA[0] = NOT TDAMIA[0]; 01751 M00S01750.ssmove +++| 01752 M00S01751.ssmove +++| IF PFC$DA[0] 01753 M00S01752.ssmove +++| THEN 01754 M00S01753.ssmove +++| BEGIN 01755 M00S01754.ssmove +++| PFC$LF[0] = TDAMFLN[0] + 1; 01756 M00S01755.ssmove +++| END 01757 M00S01756.ssmove +++| 01758 M00S01757.ssmove +++| ELSE 01759 M00S01758.ssmove +++| BEGIN 01760 M00S01759.ssmove +++| PFC$LF[0] = TDAMFLN[0]; 01761 M00S01760.ssmove +++| END 01762 M00S01761.ssmove +++| 01763 M00S01762.ssmove +++| SG$PE[0] = LOC(PFC[0]); 01764 M00S01763.ssmove +++| SG$REQ[0] = LOC(STG$REQ[0]); 01765 M00S01764.ssmove +++|MVDOIT1: 01766 M00S01765.ssmove +++| 01767 M00S01766.ssmove +++| REPEAT WHILE SG$COMP EQ 0 01768 M00S01767.ssmove +++| DO 01769 M00S01768.ssmove +++| BEGIN 01770 M00S01769.ssmove +++| RECALL; # WAIT FOR REQUEST TO COMPLETE # 01771 M00S01770.ssmove +++| END 01772 M00S01771.ssmove +++| 01773 M00S01772.ssmove +++| CALPFU(SG$CW,CTSR); 01774 M00S01773.ssmove +++| IF SG$ERR[0] EQ 0 01775 M00S01774.ssmove +++| THEN 01776 M00S01775.ssmove +++| BEGIN 01777 M00S01776.ssmove +++| GOTO MVDOIT2; 01778 M00S01777.ssmove +++| END 01779 M00S01778.ssmove +++| 01780 M00S01779.ssmove +++| ELSE 01781 M00S01780.ssmove +++| BEGIN 01782 M00S01781.ssmove +++| SG$STAT[0] = 1; 01783 M00S01782.ssmove +++| GOTO MVDOIT1; 01784 M00S01783.ssmove +++| END 01785 M00S01784.ssmove +++| 01786 M00S01785.ssmove +++| END # STAGE FILE # 01787 M00S01786.ssmove +++| 01788 M00S01787.ssmove +++|MVDOIT2: 01789 M00S01788.ssmove +++| 01790 M00S01789.ssmove +++|# 01791 M00S01790.ssmove +++|* CLEAR THE *ASA* BY "SETTING" THE *AFOBS* FLAG. 01792 M00S01791.ssmove +++|# 01793 M00S01792.ssmove +++| 01794 M00S01793.ssmove +++| IF EXT$CLR[0] AND NOT EXT$STG[0] 01795 M00S01794.ssmove +++| THEN 01796 M00S01795.ssmove +++| BEGIN 01797 M00S01796.ssmove +++| FILENAME = TDAMPFN[0]; 01798 M00S01797.ssmove +++| BZFILL(FILENAME,TYPFILL"ZFILL",10); 01799 M00S01798.ssmove +++| 01800 M00S01799.ssmove +++| LFN = MVULFN; 01801 M00S01800.ssmove +++| BZFILL(LFN,TYPFILL"ZFILL",10); 01802 M00S01801.ssmove +++| 01803 M00S01802.ssmove +++| FAMILY = TDAMFAM[0]; 01804 M00S01803.ssmove +++| BZFILL(FAMILY,TYPFILL"ZFILL",10); 01805 M00S01804.ssmove +++| 01806 M00S01805.ssmove +++| SETAF(LFN,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], 01807 M00S01806.ssmove +++| TDAMASI[0],TDAMCDT[0],AFOBS,LOC(ERRMSG)); 01808 M00S01807.ssmove +++| 01809 M00S01808.ssmove +++| RETERN(MVULFN,RCL); 01810 M00S01809.ssmove +++| END # CLEAR ASA # 01811 M00S01810.ssmove +++| 01812 M00S01811.ssmove +++|# 01813 M00S01812.ssmove +++|* IF THE FILE IS TO BE RELEASED FROM DISK, 01814 M00S01813.ssmove +++|* CALL *DROPDS* FOR DIRECT ACCESS FILES OR *DROPIDS* FOR 01815 M00S01814.ssmove +++|* INDIRECT ACCESS FILES TO RELEASE THE DISK SPACE FOR THE FILE. 01816 M00S01815.ssmove +++|# 01817 M00S01816.ssmove +++| 01818 M00S01817.ssmove +++| IF EXT$REL[0] 01819 M00S01818.ssmove +++| THEN 01820 M00S01819.ssmove +++| BEGIN # RELEASE DISK SPACE # 01821 M00S01820.ssmove +++| FILENAME = TDAMPFN[0]; 01822 M00S01821.ssmove +++| BZFILL(FILENAME,TYPFILL"ZFILL",10); 01823 M00S01822.ssmove +++| FAMILY = TDAMFAM[0]; 01824 M00S01823.ssmove +++| BZFILL(FAMILY,TYPFILL"ZFILL",10); 01825 M00S01824.ssmove +++| 01826 M00S01825.ssmove +++| IF NOT TDAMIA[0] 01827 M00S01826.ssmove +++| THEN # RELEASE DIRECT FILE DISK SPACE # 01828 M00S01827.ssmove +++| BEGIN 01829 M00S01828.ssmove +++| DROPDS(FILENAME,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], ## 01830 M00S01829.ssmove +++| TDAMASI[0],TDAMCDT[0],LOC(ERRMSG)); 01831 M00S01830.ssmove +++| END 01832 M00S01831.ssmove +++| 01833 M00S01832.ssmove +++| ELSE # RELEASE INDIRECT FILE DISK SPACE 01834 M00S01833.ssmove +++| # 01835 M00S01834.ssmove +++| BEGIN 01836 M00S01835.ssmove +++| DROPIDS(FILENAME,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], 01837 M00S01836.ssmove +++| TDAMASI[0],TDAMCDT[0],LOC(ERRMSG)); 01838 M00S01837.ssmove +++| END 01839 M00S01838.ssmove +++| 01840 M00S01839.ssmove +++| END # RELEASE DISK SPACE # 01841 M00S01840.ssmove +++| 01842 M00S01841.ssmove +++|# 01843 M00S01842.ssmove +++|* IF *SETAF*, *DROPDS*, OR *DROPIDS* RETURNED A NON-ZERO 01844 M00S01843.ssmove +++|* STATUS, CALL PROCEDURE *MVERRP* TO WRITE THE TDAM TO THE 01845 M00S01844.ssmove +++|* LOCAL PROBLEM FILE. 01846 M00S01845.ssmove +++|# 01847 M00S01846.ssmove +++| 01848 M00S01847.ssmove +++| IF FLAG NQ 0 01849 M00S01848.ssmove +++| THEN 01850 M00S01849.ssmove +++| BEGIN 01851 M00S01850.ssmove +++| MVERRP; 01852 M00S01851.ssmove +++| END 01853 M00S01852.ssmove +++| 01854 M00S01853.ssmove +++| END # MVDOIT # 01855 M00S01854.ssmove +++| 01856 M00S01855.ssmove +++| TERM 01857 M00S01856.ssmove +++|PROC MVERRP; 01858 M00S01857.ssmove +++|# TITLE MVERRP - PROCESS ERRORS. # 01859 M00S01858.ssmove +++| 01860 M00S01859.ssmove +++| BEGIN # MVERRP # 01861 M00S01860.ssmove +++| 01862 M00S01861.ssmove +++|# 01863 M00S01862.ssmove +++|** MVERRP - *SSMOVE* ERROR PROCESSOR. 01864 M00S01863.ssmove +++|* 01865 M00S01864.ssmove +++|* THIS PROCEDURE PROCESSES ANY ERRORS RESULTING FROM A 01866 M00S01865.ssmove +++|* CLEAR ASA, OR RELEASE REQUEST BY WRITING THE TDAM TO A FILE 01867 M00S01866.ssmove +++|* OF PROBLEMS. 01868 M00S01867.ssmove +++|* 01869 M00S01868.ssmove +++|* PROC MVERRP. 01870 M00S01869.ssmove +++|# 01871 M00S01870.ssmove +++| 01872 M00S01871.ssmove +++|# 01873 M00S01872.ssmove +++|**** PROC MVERRP - XREF LIST BEGIN. 01874 M00S01873.ssmove +++|# 01875 M00S01874.ssmove +++| 01876 M00S01875.ssmove +++| XREF 01877 M00S01876.ssmove +++| BEGIN 01878 M00S01877.ssmove +++| PROC WRITEW; # WRITE RECORD TO FILE BUFFER # 01879 M00S01878.ssmove +++| END 01880 M00S01879.ssmove +++| 01881 M00S01880.ssmove +++|# 01882 M00S01881.ssmove +++|**** PROC MVERRP - XREF LIST END. 01883 M00S01882.ssmove +++|# 01884 M00S01883.ssmove +++| 01885 M00S01884.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01886 M00S01885.ssmove +++| 01887 M00S01886.ssmove +++|*CALL COMBFAS 01888 M00S01887.ssmove +++|*CALL COMBTDM 01889 M00S01888.ssmove +++|*CALL COMTMOV 01890 M00S01889.ssmove +++| 01891 M00S01890.ssmove +++| ITEM FLAG I; # ERROR FLAG # 01892 M00S01891.ssmove +++| 01893 M00S01892.ssmove +++| CONTROL EJECT; 01894 M00S01893.ssmove +++| 01895 M00S01894.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 01896 M00S01895.ssmove +++| WRITEW(MV$FET[FILEAUX],MV$WBUF[0],TDAMLEN,FLAG); 01897 M00S01896.ssmove +++| 01898 M00S01897.ssmove +++| RETURN; 01899 M00S01898.ssmove +++| 01900 M00S01899.ssmove +++| END # MVERRP # 01901 M00S01900.ssmove +++| 01902 M00S01901.ssmove +++| TERM 01903 M00S01902.ssmove +++|PROC MVHEAD((FETP)); 01904 M00S01903.ssmove +++|# TITLE MVHEAD - PRINTS HEADER ON *SSMOVE* REPORT FILE. # 01905 M00S01904.ssmove +++| 01906 M00S01905.ssmove +++| BEGIN # MVHEAD # 01907 M00S01906.ssmove +++| 01908 M00S01907.ssmove +++|# 01909 M00S01908.ssmove +++|** MVHEAD - PRINTS HEADER ON *SSMOVE* REPORT FILE. 01910 M00S01909.ssmove +++|* 01911 M00S01910.ssmove +++|* PROC MVHEAD((FETP)). 01912 M00S01911.ssmove +++|* 01913 M00S01912.ssmove +++|* ENTRY. (FETP) = FWA OF FET. 01914 M00S01913.ssmove +++|* 01915 M00S01914.ssmove +++|* EXIT. HEADER PRINTED. 01916 M00S01915.ssmove +++|* 01917 M00S01916.ssmove +++|* NOTES. REPORT FORMATTER IS USED TO PRINT THE HEADER LINE. 01918 M00S01917.ssmove +++|* THE CONTROL CARD IMAGE IS WRITTEN TO THE 01919 M00S01918.ssmove +++|* REPORT FILE ON THE FIRST EXECUTION OF THE PROC. 01920 M00S01919.ssmove +++|# 01921 M00S01920.ssmove +++| 01922 M00S01921.ssmove +++| ITEM FETP I; # FWA OF FET # 01923 M00S01922.ssmove +++| 01924 M00S01923.ssmove +++|# 01925 M00S01924.ssmove +++|**** PROC MVHEAD - XREF LIST BEGIN. 01926 M00S01925.ssmove +++|# 01927 M00S01926.ssmove +++| 01928 M00S01927.ssmove +++| XREF 01929 M00S01928.ssmove +++| BEGIN 01930 M00S01929.ssmove +++| PROC BZFILL; # BLANK OR ZERO FILLS A BUFFER # 01931 M00S01930.ssmove +++| PROC RPLINEX; # WRITES A REPORT LINE # 01932 M00S01931.ssmove +++| END 01933 M00S01932.ssmove +++| 01934 M00S01933.ssmove +++|# 01935 M00S01934.ssmove +++|**** PROC MVHEAD - XREF LIST END. 01936 M00S01935.ssmove +++|# 01937 M00S01936.ssmove +++| 01938 M00S01937.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01939 M00S01938.ssmove +++|*CALL,COMBFAS 01940 M00S01939.ssmove +++|*CALL COMBSIT 01941 M00S01940.ssmove +++|*CALL,COMBBZF 01942 M00S01941.ssmove +++| 01943 M00S01942.ssmove +++| ITEM FIRST B = TRUE; # FIRST EXECUTION OF PROC # 01944 M00S01943.ssmove +++| 01945 M00S01944.ssmove +++| BASED 01946 M00S01945.ssmove +++| ARRAY RA [0:0];; # TO ACCESS RA AREA # 01947 M00S01946.ssmove +++| 01948 M00S01947.ssmove +++| CONTROL EJECT; 01949 M00S01948.ssmove +++| 01950 M00S01949.ssmove +++|# 01951 M00S01950.ssmove +++|* PRINT THE HEADER. 01952 M00S01951.ssmove +++|# 01953 M00S01952.ssmove +++| 01954 M00S01953.ssmove +++| RPLINEX(FETP,"SSMOVE REPORT.",2,14,0); 01955 M00S01954.ssmove +++| RPLINEX(FETP," ",1,1,0); 01956 M00S01955.ssmove +++| 01957 M00S01956.ssmove +++| IF FIRST 01958 M00S01957.ssmove +++| THEN # WRITE CONTROL CARD IMAGE # 01959 M00S01958.ssmove +++| BEGIN 01960 M00S01959.ssmove +++| FIRST = FALSE; 01961 M00S01960.ssmove +++| P<RA> = 0; 01962 M00S01961.ssmove +++| BZFILL(RA[O"70"],TYPFILL"BFILL",80); 01963 M00S01962.ssmove +++| RPLINEX(FETP,RA[O"70"],2,80,0); 01964 M00S01963.ssmove +++| RPLINEX(FETP," ",1,1,0); 01965 M00S01964.ssmove +++| END 01966 M00S01965.ssmove +++| 01967 M00S01966.ssmove +++| RETURN; 01968 M00S01967.ssmove +++| 01969 M00S01968.ssmove +++| END # MVHEAD # 01970 M00S01969.ssmove +++| 01971 M00S01970.ssmove +++| TERM 01972 M00S01971.ssmove +++|PROC MVINDEV; 01973 M00S01972.ssmove +++|# TITLE MVINDEV - INITIALIZE *DEVSTAT* ARRAY. # 01974 M00S01973.ssmove +++| BEGIN # MVINDEV # 01975 M00S01974.ssmove +++| 01976 M00S01975.ssmove +++|# 01977 M00S01976.ssmove +++|** MVINDEV - INITIALIZE *DEVSTAT* ARRAY. 01978 M00S01977.ssmove +++|* 01979 M00S01978.ssmove +++|* *MVINDEV* INITIALIZES TABLE ENTRIES FOR EACH PERMANENT FILE 01980 M00S01979.ssmove +++|* DEVICE BELONGING TO THE FAMILY BEING ANALYZED. 01981 M00S01980.ssmove +++|* 01982 M00S01981.ssmove +++|* ARRAYS *DNTODNX*, *SFSTAT* AND *DEVSTAT* ARE ALL ZEROED. 01983 M00S01982.ssmove +++|* 01984 M00S01983.ssmove +++|* ARRAY *DNTODNX* IS INITIALIZED SO THAT *DNX = DN$TO$DNX[DN]* 01985 M00S01984.ssmove +++|* CAN BE USED TO DETERMINE THE INDEX FOR A DEVICE GIVEN ITS 01986 M00S01985.ssmove +++|* DEVICE NUMBER. 01987 M00S01986.ssmove +++|* 01988 M00S01987.ssmove +++|* ARRAY *DEVSTAT* IS INITIALIZED TO CONTAIN INFORMATION 01989 M00S01988.ssmove +++|* OBTAINED FROM THE *EST* AND *MST* ENTRIES FOR EACH DEVICE. 01990 M00S01989.ssmove +++|* 01991 M00S01990.ssmove +++|* PROC MVINDEV. 01992 M00S01991.ssmove +++|* 01993 M00S01992.ssmove +++|* ENTRY. MVARG$FM[0] IDENTIFIES THE FAMILY TO BE ANALYZED 01994 M00S01993.ssmove +++|* BY THIS *SSMOVE* RUN. 01995 M00S01994.ssmove +++|* 01996 M00S01995.ssmove +++|* EXIT. ARRAYS *DNTODNX, *SFSTAT* AND *DEVSTAT* ARE 01997 M00S01996.ssmove +++|* INITIALIZED. 01998 M00S01997.ssmove +++|* 01999 M00S01998.ssmove +++|* MESSAGES. *MAXDEV* TOO SMALL. 02000 M00S01999.ssmove +++|# 02001 M00S02000.ssmove +++| 02002 M00S02001.ssmove +++|# 02003 M00S02002.ssmove +++|**** PROC MVINDEV - XREF LIST BEGIN. 02004 M00S02003.ssmove +++|# 02005 M00S02004.ssmove +++| 02006 M00S02005.ssmove +++| XREF 02007 M00S02006.ssmove +++| BEGIN 02008 M00S02007.ssmove +++| PROC GETMST; # GETS DATA FROM *EST* AND *MST* 02009 M00S02008.ssmove +++| ENTRIES # 02010 M00S02009.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 02011 M00S02010.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 02012 M00S02011.ssmove +++| OR RETURN # 02013 M00S02012.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 02014 M00S02013.ssmove +++| END 02015 M00S02014.ssmove +++| 02016 M00S02015.ssmove +++|# 02017 M00S02016.ssmove +++|**** PROC MVINDEV - XREF LIST END. 02018 M00S02017.ssmove +++|# 02019 M00S02018.ssmove +++| 02020 M00S02019.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02021 M00S02020.ssmove +++|*CALL,COMBFAS 02022 M00S02021.ssmove +++|*CALL,COMTMOV 02023 M00S02022.ssmove +++|*CALL,COMTMVP 02024 M00S02023.ssmove +++| 02025 M00S02024.ssmove +++| ITEM DEVERR B; # INVALID DEVICE SPECIFIED # 02026 M00S02025.ssmove +++| ITEM DN I; # DEVICE NUMBER # 02027 M00S02026.ssmove +++| ITEM ESTX I; # INDEX TO NEXT *EST* ENTRY # 02028 M00S02027.ssmove +++| ITEM FAM C(7); # FAMILY FROM *MST* # 02029 M00S02028.ssmove +++| ITEM MASKP I; # PRIMARY MASK FROM *MST* # 02030 M00S02029.ssmove +++| ITEM MASKS I; # SECONDARY MASK FROM *MST* # 02031 M00S02030.ssmove +++| ITEM NUM I; # NUMBER OF DRIVES FOR THIS DEVICE 02032 M00S02031.ssmove +++| # 02033 M00S02032.ssmove +++| ITEM SECT I; # PRUS PER TRACK # 02034 M00S02033.ssmove +++| ITEM STAT I; # STATUS FROM *GETMST* # 02035 M00S02034.ssmove +++| ITEM TPRU I; # TOTAL PRU FOR A DEVICE # 02036 M00S02035.ssmove +++| ITEM TYPE C(2); # DEVICE TYPE # 02037 M00S02036.ssmove +++| 02038 M00S02037.ssmove +++| CONTROL EJECT; 02039 M00S02038.ssmove +++| 02040 M00S02039.ssmove +++|# 02041 M00S02040.ssmove +++|* INITIALIZE THE VARIOUS ARRAYS TO ZERO. 02042 M00S02041.ssmove +++|# 02043 M00S02042.ssmove +++| 02044 M00S02043.ssmove +++| ZFILL(DEVSTAT,8*MAXDEV); 02045 M00S02044.ssmove +++| ZFILL(SF$STAT,10*MAXSF); 02046 M00S02045.ssmove +++| ZFILL(DNTODNX,64); 02047 M00S02046.ssmove +++| 02048 M00S02047.ssmove +++| DNX = 1; 02049 M00S02048.ssmove +++| DEVERR = TRUE; 02050 M00S02049.ssmove +++| 02051 M00S02050.ssmove +++|# 02052 M00S02051.ssmove +++|* LOOK AT EACH *EST* AND CORRESPONDING *MST* ENTRY TO 02053 M00S02052.ssmove +++|* FIND DEVICES BELONGING TO THE FAMILY BEING ANALYZED. 02054 M00S02053.ssmove +++|# 02055 M00S02054.ssmove +++| 02056 M00S02055.ssmove +++| SLOWFOR ESTX = 1 STEP 1 WHILE STAT GQ 0 02057 M00S02056.ssmove +++| DO 02058 M00S02057.ssmove +++| BEGIN # ANALYZE EACH *EST* AND *MST* ENTRY # 02059 M00S02058.ssmove +++| GETMST(ESTX,STAT,TYPE,FAM,DN,NUM,TPRU,SECT,MASKP,MASKS); 02060 M00S02059.ssmove +++| 02061 M00S02060.ssmove +++| IF STAT NQ 0 OR ## 02062 M00S02061.ssmove +++| FAM NQ MVARG$FM[0] 02063 M00S02062.ssmove +++| THEN 02064 M00S02063.ssmove +++| BEGIN 02065 M00S02064.ssmove +++| TEST ESTX; 02066 M00S02065.ssmove +++| END 02067 M00S02066.ssmove +++| 02068 M00S02067.ssmove +++| IF DNX GR MAXDEV 02069 M00S02068.ssmove +++| THEN 02070 M00S02069.ssmove +++| BEGIN 02071 M00S02070.ssmove +++| MESSAGE(" *MAXDEV* TOO SMALL "); 02072 M00S02071.ssmove +++| TEST ESTX; 02073 M00S02072.ssmove +++| END 02074 M00S02073.ssmove +++| 02075 M00S02074.ssmove +++| IF MVARG$DN[0] NQ 0 ## 02076 M00S02075.ssmove +++| AND MVARG$DN[0] EQ DN 02077 M00S02076.ssmove +++| THEN # SPECIFIED DEVICE FOUND # 02078 M00S02077.ssmove +++| BEGIN 02079 M00S02078.ssmove +++| DEVERR = FALSE; 02080 M00S02079.ssmove +++| END 02081 M00S02080.ssmove +++| 02082 M00S02081.ssmove +++|# 02083 M00S02082.ssmove +++|* FOR EACH DEVICE, ESTABLISH THE INDEX (*DN$TO$DNX[DN]*) FOR 02084 M00S02083.ssmove +++|* THE DISKS DEVICE NUMBER FIELD IN THE CORRESPONDING *DEVSTAT* 02085 M00S02084.ssmove +++|* ENTRY. 02086 M00S02085.ssmove +++|# 02087 M00S02086.ssmove +++| 02088 M00S02087.ssmove +++| DN$TO$DNX[DN] = DNX; 02089 M00S02088.ssmove +++| DEV$EO[IXIA,DNX] = ESTX; 02090 M00S02089.ssmove +++| DEV$TPRU[IXIA,DNX] = TPRU; 02091 M00S02090.ssmove +++| DEV$TYPE[IXIA,DNX] = TYPE; 02092 M00S02091.ssmove +++| DEV$NUM[IXIA,DNX] = NUM; 02093 M00S02092.ssmove +++| DEV$MAST[IXIA,DNX] = MASKP NQ 0; 02094 M00S02093.ssmove +++| DEV$SEC[IXIA,DNX] = MASKS NQ 0; 02095 M00S02094.ssmove +++| DEV$DN[IXIA,DNX] = DN; 02096 M00S02095.ssmove +++| DEV$SECTR[IXDA,DNX] = SECT; 02097 M00S02096.ssmove +++| DEV$EXIST[IXIA,DNX] = TRUE; 02098 M00S02097.ssmove +++| DNX = DNX+1; 02099 M00S02098.ssmove +++| TEST ESTX; 02100 M00S02099.ssmove +++| END # ANALYZE EACH *EST* AND *MST* ENTRY # 02101 M00S02100.ssmove +++| 02102 M00S02101.ssmove +++|# 02103 M00S02102.ssmove +++|* ABORT WITH MESSAGE IF INVALID DEVICE SPECIFIED. 02104 M00S02103.ssmove +++|# 02105 M00S02104.ssmove +++| 02106 M00S02105.ssmove +++| IF MVARG$DN[0] NQ 0 ## 02107 M00S02106.ssmove +++| AND DEVERR 02108 M00S02107.ssmove +++| THEN 02109 M00S02108.ssmove +++| BEGIN 02110 M00S02109.ssmove +++| MVMSG$LN[0] = " INVALID DEVICE SPECIFIED."; 02111 M00S02110.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02112 M00S02111.ssmove +++| RESTPFP(PFP$ABORT); 02113 M00S02112.ssmove +++| END 02114 M00S02113.ssmove +++| 02115 M00S02114.ssmove +++| END # MVINDEV # 02116 M00S02115.ssmove +++| 02117 M00S02116.ssmove +++| TERM 02118 M00S02117.ssmove +++|PROC MVINIT; 02119 M00S02118.ssmove +++|# TITLE MVINIT - DECODES *SSMOVE* CONTROL STATEMENT. # 02120 M00S02119.ssmove +++| 02121 M00S02120.ssmove +++| BEGIN # MVINIT # 02122 M00S02121.ssmove +++| 02123 M00S02122.ssmove +++|# 02124 M00S02123.ssmove +++|** MVINIT - DECODES *SSMOVE* CONTROL STATEMENT. 02125 M00S02124.ssmove +++|* 02126 M00S02125.ssmove +++|* *MVINIT* DECODES THE PARAMETERS ON THE *SSMOVE* CONTROL 02127 M00S02126.ssmove +++|* STATEMENT. INVALID PARAMETERS ARE REPORTED VIA DAYFILE MESSAGES. 02128 M00S02127.ssmove +++|* PROCEDURE *MVDIR* IS CALLED TO PROCESS THE DIRECTIVE FILE. 02129 M00S02128.ssmove +++|* 02130 M00S02129.ssmove +++|* PROC MVINIT. 02131 M00S02130.ssmove +++|* 02132 M00S02131.ssmove +++|* ENTRY. CONTROL CARD IMAGE IN RA+70B. 02133 M00S02132.ssmove +++|* 02134 M00S02133.ssmove +++|* EXIT. PARAMETERS IN THE *MVARG* ARRAY. 02135 M00S02134.ssmove +++|* THE *OPTLO* AND *OPTPX* ARRAYS ARE UPDATED 02136 M00S02135.ssmove +++|* TO REFLECT ANY RUN-TIME PARAMETERS. 02137 M00S02136.ssmove +++|* 02138 M00S02137.ssmove +++|* MESSAGES. 1) SSMOVE - PARAMETER ERROR. 02139 M00S02138.ssmove +++|* 2) COMMUNICATION FILE BUSY. 02140 M00S02139.ssmove +++|* 3) UNABLE TO DEFINE COMMUNICATION FILE. 02141 M00S02140.ssmove +++|* 4) FAMILY NOT FOUND. 02142 M00S02141.ssmove +++|# 02143 M00S02142.ssmove +++| 02144 M00S02143.ssmove +++|# 02145 M00S02144.ssmove +++|**** PROC MVINIT - XREF LIST BEGIN. 02146 M00S02145.ssmove +++|# 02147 M00S02146.ssmove +++| 02148 M00S02147.ssmove +++| XREF 02149 M00S02148.ssmove +++| BEGIN 02150 M00S02149.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 02151 M00S02150.ssmove +++| PROC GETFAM; # GET DEFAULT FAMILY # 02152 M00S02151.ssmove +++| PROC GETPFP; # GET USER-S FAMILY AND UI. # 02153 M00S02152.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 02154 M00S02153.ssmove +++| PROC MVALCS; # ANALYZE CHARACTER STRING # 02155 M00S02154.ssmove +++| PROC MVDIR; # PROCESS DIRECTIVES # 02156 M00S02155.ssmove +++| PROC MVHEAD; # WRITES HEADER ON OUTPUT FILE # 02157 M00S02156.ssmove +++| PROC MVINDEV; # INITIALIZE DEVICE STATUS ARRAYS 02158 M00S02157.ssmove +++| # 02159 M00S02158.ssmove +++| PROC MVTAB; # PROVIDES ADDRESS OF PARAMETER 02160 M00S02159.ssmove +++| DECODING TABLE # 02161 M00S02160.ssmove +++| PROC PDATE; # GET CURRENT DATE/TIME # 02162 M00S02161.ssmove +++| PROC PF; # *PFM* REQUEST INTERFACE # 02163 M00S02162.ssmove +++| PROC RESTPFP; # RESTORE USER-S FAMILY AND UI. # 02164 M00S02163.ssmove +++| PROC RPOPEN; # OPENS OUTPUT FILE # 02165 M00S02164.ssmove +++| PROC SETPFP; # SET FAMILY/USER INDEX # 02166 M00S02165.ssmove +++| PROC XARG; # DECODES PARAMETERS PER DECODING 02167 M00S02166.ssmove +++| TABLE # 02168 M00S02167.ssmove +++| FUNC MVRELAG U; # CALCULATE RELATIVE AGE # 02169 M00S02168.ssmove +++| FUNC XDXB I; # CONVERTS DISPLAY TO BINARY # 02170 M00S02169.ssmove +++| END 02171 M00S02170.ssmove +++| 02172 M00S02171.ssmove +++|# 02173 M00S02172.ssmove +++|**** PROC MVINIT - XREF LIST END. 02174 M00S02173.ssmove +++|# 02175 M00S02174.ssmove +++| 02176 M00S02175.ssmove +++| DEF MSG1 #" SSMOVE - PARAMETER ERROR."#; 02177 M00S02176.ssmove +++| DEF MSG2 #" COMMUNICATION FILE BUSY."#; 02178 M00S02177.ssmove +++| DEF MSG3 #" UNABLE TO DEFINE COMMUNICATION FILE."#; 02179 M00S02178.ssmove +++| DEF MSG4 #" FAMILY NOT FOUND."#; 02180 M00S02179.ssmove +++| 02181 M00S02180.ssmove +++| DEF PROCNAME #"SSMOVE."#; # PROCEDURE NAME # 02182 M00S02181.ssmove +++| 02183 M00S02182.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02184 M00S02183.ssmove +++|*CALL,COMBFAS 02185 M00S02184.ssmove +++|*CALL COMBSIT 02186 M00S02185.ssmove +++|*CALL,COMBBZF 02187 M00S02186.ssmove +++|*CALL,COMBPFP 02188 M00S02187.ssmove +++|*CALL,COMBTDM 02189 M00S02188.ssmove +++|*CALL,COMSPFM 02190 M00S02189.ssmove +++|*CALL,COMTMOV 02191 M00S02190.ssmove +++|*CALL,COMTMVP 02192 M00S02191.ssmove +++|*CALL,COMTOUT 02193 M00S02192.ssmove +++| 02194 M00S02193.ssmove +++| 02195 M00S02194.ssmove +++| ITEM ARGLIST I; # ADDRESS OF ARGUMENT TABLE # 02196 M00S02195.ssmove +++| ITEM CCOK B=TRUE; # CONTROL CARD STATUS # 02197 M00S02196.ssmove +++| ITEM DEFORD I; # ORDINAL OF DEFAULT FAMILY # 02198 M00S02197.ssmove +++| ITEM LINK I; # ORDINAL OF LINK DEVICE # 02199 M00S02198.ssmove +++| ITEM NUM I; # NUMBER OF FAMILIES # 02200 M00S02199.ssmove +++| ITEM STAT I; # ERROR STATUS # 02201 M00S02200.ssmove +++| ITEM TMPI I; # TEMPORARY INTEGER # 02202 M00S02201.ssmove +++| CONTROL EJECT; 02203 M00S02202.ssmove +++| 02204 M00S02203.ssmove +++|# 02205 M00S02204.ssmove +++|* SAVE ORIGINAL FAMILY AND USER INDEX FOR RESTORING. 02206 M00S02205.ssmove +++|# 02207 M00S02206.ssmove +++| 02208 M00S02207.ssmove +++| GETPFP(PFP[0]); 02209 M00S02208.ssmove +++| USER$FAM[0] = PFP$FAM[0]; 02210 M00S02209.ssmove +++| USER$UI[0] = PFP$UI[0]; 02211 M00S02210.ssmove +++| 02212 M00S02211.ssmove +++|# 02213 M00S02212.ssmove +++|* CRACK PARAMETERS ON *SSMOVE* PROGRAM CALL. 02214 M00S02213.ssmove +++|# 02215 M00S02214.ssmove +++| 02216 M00S02215.ssmove +++| MVTAB(ARGLIST); 02217 M00S02216.ssmove +++| XARG(ARGLIST,0,STAT); 02218 M00S02217.ssmove +++| CCOK = STAT EQ 0; 02219 M00S02218.ssmove +++| 02220 M00S02219.ssmove +++| MVALCS(MVARG$LO[0],VCSLO,LOOPT[0],"LO",STAT); 02221 M00S02220.ssmove +++| CCOK = CCOK AND (STAT EQ 0); 02222 M00S02221.ssmove +++| 02223 M00S02222.ssmove +++| MVALCS(MVARG$PX[0],VCSPX,PXOPT[0],"PX",STAT); 02224 M00S02223.ssmove +++| CCOK = CCOK AND (STAT EQ 0); 02225 M00S02224.ssmove +++| 02226 M00S02225.ssmove +++|# 02227 M00S02226.ssmove +++|* CRACK NW, UI, DN, LB AND SET UP REPORT FILE. 02228 M00S02227.ssmove +++|# 02229 M00S02228.ssmove +++| 02230 M00S02229.ssmove +++| IF MVARG$ZNW[0] NQ 0 02231 M00S02230.ssmove +++| THEN 02232 M00S02231.ssmove +++| BEGIN 02233 M00S02232.ssmove +++| MVARG$ZNW[0] = 0; 02234 M00S02233.ssmove +++| MVARG$NW[0] = TRUE; 02235 M00S02234.ssmove +++| END 02236 M00S02235.ssmove +++| 02237 M00S02236.ssmove +++| ELSE 02238 M00S02237.ssmove +++| BEGIN 02239 M00S02238.ssmove +++| MVARG$NW[0] = FALSE; 02240 M00S02239.ssmove +++| END 02241 M00S02240.ssmove +++| 02242 M00S02241.ssmove +++| IF MVARG$ZUI[0] NQ 0 02243 M00S02242.ssmove +++| THEN 02244 M00S02243.ssmove +++| BEGIN 02245 M00S02244.ssmove +++| STAT = XDXB(MVARG$UI[0],0,TMPI); 02246 M00S02245.ssmove +++| MVARG$ZUI[0] = TMPI; 02247 M00S02246.ssmove +++| CCOK = CCOK AND (STAT EQ 0) ## 02248 M00S02247.ssmove +++| AND (TMPI GR 0) AND (TMPI LQ SYS$UI); 02249 M00S02248.ssmove +++| END 02250 M00S02249.ssmove +++| 02251 M00S02250.ssmove +++| IF MVARG$DN[0] NQ 0 02252 M00S02251.ssmove +++| THEN 02253 M00S02252.ssmove +++| BEGIN 02254 M00S02253.ssmove +++| STAT = XDXB(MVARG$DN[0],0,TMPI); 02255 M00S02254.ssmove +++| MVARG$DN[0] = TMPI;
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssmove.txt ยท Last modified: by 127.0.0.1