cdc:nos2.source:opl.opl871:deck:ssmove
Deck SSMOVE
4 Modifications
Listing Sections
- Deck SSMOVE Start
- Deck SSMOVE Part 1 (Line 2259)
- Deck SSMOVE Part 2 (Line 4317)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M01S00001.ssmove +++|PRGM SSMOVE; 00002 M01S00002.ssmove +++|# TITLE SSMOVE - INITIALIZES *SSMOVE* UTILITY. # 00003 M01S00003.ssmove +++| 00004 M01S00004.ssmove +++| BEGIN # SSMOVE # 00005 M01S00005.ssmove +++| 00006 M01S00006.ssmove +++|# 00007 M01S00007.ssmove +++|*** SSMOVE - INITIALIZES *SSMOVE* UTILITY. 00008 M01S00008.ssmove +++|* 00009 M01S00009.ssmove +++|* THIS PRGM INITIALIZES THE *SSMOVE* UTILITY BY CRACKING 00010 M01S00010.ssmove +++|* THE CONTROL CARD AND SYNTAX CHECKING THE PARAMETERS. 00011 M01S00011.ssmove +++|* 00012 M01S00012.ssmove +++|* SSMOVE,I,L,FM,LO,DN,NW,UI,PX,SB. 00013 M01S00013.ssmove +++|* 00014 M01S00014.ssmove +++|* PRGM SSMOVE. 00015 M01S00015.ssmove +++|* 00016 M01S00016.ssmove +++|* ENTRY. INPUTS TO *SSMOVE* ARE 00017 M01S00017.ssmove +++|* 00018 M01S00018.ssmove +++|* I INPUT DIRECTIVES ON FILE *INPUT*. 00019 M01S00019.ssmove +++|* I = FLNM INPUT DIRECTIVES ON FILE *FLNM*. 00020 M01S00020.ssmove +++|* I = 0 NO INPUT DIRECTIVES. DEFAULT PARAMETERS 00021 M01S00021.ssmove +++|* WILL BE USED. 00022 M01S00022.ssmove +++|* I OMITTED SAME AS *I*. 00023 M01S00023.ssmove +++|* 00024 M01S00024.ssmove +++|* L LISTABLE OUTPUT IS ON FILE *OUTPUT*. 00025 M01S00025.ssmove +++|* L = LFN LISTABLE OUTPUT IS ON FILE *LFN*. 00026 M01S00026.ssmove +++|* L = 0 NO OUTPUT FILE GENERATED. 00027 M01S00027.ssmove +++|* L OMITTED SAME AS *L*. 00028 M01S00028.ssmove +++|* 00029 M01S00029.ssmove +++|* 00030 M01S00030.ssmove +++|* NW NO WAIT - DO NOT WAIT FOR EXEC TO PROCESS 00031 M01S00031.ssmove +++|* THE *SSMOVE* REQUEST FILE. 00032 M01S00032.ssmove +++|* NW OMITTED WAIT FOR COMPLETION OF *SSMOVE* REQUEST 00033 M01S00033.ssmove +++|* PROCESSING BY EXEC. 00034 M01S00034.ssmove +++|* 00035 M01S00035.ssmove +++|* FM USE DEFAULT FAMILY. 00036 M01S00036.ssmove +++|* FM = FAMILY FAMILY TO BE PROCESSED. 00037 M01S00037.ssmove +++|* FM OMITTED SAME AS *FM*. 00038 M01S00038.ssmove +++|* 00039 M01S00039.ssmove +++|* LO INDIVIDUAL FILES ARE NOT TO BE LISTED IN 00040 M01S00040.ssmove +++|* THE REPORT FILE. 00041 M01S00041.ssmove +++|* LO = F ALL FILES SELECTED FOR STAGING, DESTAGING, 00042 M01S00042.ssmove +++|* OR RELEASING ARE LISTED IN THE REPORT FILE. 00043 M01S00043.ssmove +++|* LO = P LIST ONLY FILES ACTUALLY PROCESSED IN 00044 M01S00044.ssmove +++|* REPORT FILE (PER *PX* PARAMETER). 00045 M01S00045.ssmove +++|* LO OMITTED SAME AS *LO*. 00046 M01S00046.ssmove +++|* 00047 M01S00047.ssmove +++|* DN FILES FROM ALL DEVICES IN A SPECIFIED 00048 M01S00048.ssmove +++|* FAMILY ARE ELIGIBLE FOR DESTAGE AND 00049 M01S00049.ssmove +++|* RELEASE. 00050 M01S00050.ssmove +++|* DN = DEVICE DEVICE NUMBER OF THE ONLY DISK FROM 00051 M01S00051.ssmove +++|* WHICH FILES ARE ELIGIBLE FOR DESTAGE AND 00052 M01S00052.ssmove +++|* RELEASE. 00053 M01S00053.ssmove +++|* DN OMITTED SAME AS *DN*. 00054 M01S00054.ssmove +++|* 00055 M01S00055.ssmove +++|* LB = N LARGE FILE BOUNDARY, USED WHEN 00056 M01S00056.ssmove +++|* SORTING FILES FOR DESTAGING. ALL FILES 00057 M01S00057.ssmove +++|* SMALLER THAN *N* PRU-S ARE CONSIDERED 00058 M01S00058.ssmove +++|* SMALL FILES. 00059 M01S00059.ssmove +++|* LB DEFAULT LARGE FILE BOUNDARY IS USED. 00060 M01S00060.ssmove +++|* LB OMITTED SAME AS *LB*. 00061 M01S00061.ssmove +++|* 00062 M01S00062.ssmove +++|* UI ALL USER INDICES ARE PROCESSED. 00063 M01S00063.ssmove +++|* UI = N RESTRICT PROCESSING TO FILES HAVING 00064 M01S00064.ssmove +++|* USER INDEX *N*. 00065 M01S00065.ssmove +++|* UI OMITTED SAME AS *UI*. 00066 M01S00066.ssmove +++|* 00067 M01S00067.ssmove +++|* PX ALL SELECTED PROCESSING WILL BE DONE. 00068 M01S00068.ssmove +++|* PX = XXX *XXX* IS A CHARACTER STRING IDENTIFYING 00069 M01S00069.ssmove +++|* WHICH TYPES OF PROCESSING ARE TO BE 00070 M01S00070.ssmove +++|* EXCLUDED. EACH CHARACTER OF *XXX* CAN BE 00071 M01S00071.ssmove +++|* ONE OF THE LETTERS *ABDFIS*. 00072 M01S00072.ssmove +++|* *I* INHIBITS PROCESSING OF INDIRECT ACCESS 00073 M01S00073.ssmove +++|* FILES. 00074 M01S00074.ssmove +++|* *D* INHIBITS PROCESSING OF DIRECT ACCESS 00075 M01S00075.ssmove +++|* FILES. 00076 M01S00076.ssmove +++|* *A* CONTROLS RELEASING OF DISK SPACE 00077 M01S00077.ssmove +++|* (ARCHIVING). 00078 M01S00078.ssmove +++|* *B* CONTROLS DESTAGING A FILE FROM DISK TO 00079 M01S00079.ssmove +++|* M860 (BACK-UP). 00080 M01S00080.ssmove +++|* *S* CONTROLS STAGING A FILE TO DISK. 00081 M01S00081.ssmove +++|* *F* CONTROLS FREEING A FILE FROM M860 BY 00082 M01S00082.ssmove +++|* CLEARING ITS ASA VALUE FROM THE FILES 00083 M01S00083.ssmove +++|* *PFC* ENTRY. 00084 M01S00084.ssmove +++|* (E.G. PX = ABFS REPORTS THE RESULTS OF A 00085 M01S00085.ssmove +++|* *SSMOVE* RUN WITHOUT ACTUALLY PERFORMING 00086 M01S00086.ssmove +++|* THE SELECTED ACTIONS.) 00087 M01S00087.ssmove +++|* PX OMITTED SAME AS *PX*. 00088 M01S00088.ssmove +++|* 00089 M01S00089.ssmove +++|* EXIT. *SSMOVE* PROCESSED OR AN ERROR CONDITION 00090 M01S00090.ssmove +++|* ENCOUNTERED. 00091 M01S00091.ssmove +++|* 00092 M01S00092.ssmove +++|* MESSAGES. SSMOVE - MUST BE SYSTEM ORIGIN. 00093 M01S00093.ssmove +++|* SSMOVE COMPLETE. 00094 M01S00094.ssmove +++|* SSMOVE ABNORMAL, SSMOVE. 00095 M01S00095.ssmove +++|* UNABLE TO CONNECT WITH EXEC. 00096 M01S00096.ssmove +++|* 00097 M01S00097.ssmove +++|* NOTES. PRGM *SSMOVE* INITIALIZES *SSMOVE* UTILITY BY 00098 M01S00098.ssmove +++|* CRACKING AND SYNTAX CHECKING THE CONTROL CARD 00099 M01S00099.ssmove +++|* PARAMETERS. ANY ERROR IN THE CONTROL CARD OR 00100 M01S00100.ssmove +++|* IN *SSMOVE* PROCESSING CAUSES THE UTILITY TO 00101 M01S00101.ssmove +++|* ABORT. PRGM *SSMOVE* IS THE MAIN MODULE FROM 00102 M01S00102.ssmove +++|* WHICH ALL THE OTHER ROUTINES ARE CALLED. THE LIVE 00103 M01S00103.ssmove +++|* PFC IS READ AND THE ENTRIES FOR THE FILES CANDIDATE 00104 M01S00104.ssmove +++|* FOR *DESTAGE AND RELEASE* OR *DESTAGE ONLY* ARE 00105 M01S00105.ssmove +++|* WRITTEN TO TEMPORARY FILES. THE FILES CANDIDATE 00106 M01S00106.ssmove +++|* FOR *RELEASE ONLY* ARE RELEASED DIRECTLY. THE 00107 M01S00107.ssmove +++|* TEMPORARY FILES ARE THEN USED TO GENERATE THE 00108 M01S00108.ssmove +++|* COMMUNICATION FILE FOR EXEC. IF THE *REPORT 00109 M01S00109.ssmove +++|* ONLY* OPTION HAS NOT BEEN SELECTED, THE COMM- 00110 M01S00110.ssmove +++|* UNICATION FILE IS SENT TO EXEC VIA A UCP TYPE 2 00111 M01S00111.ssmove +++|* REQUEST. A SUMMARY OF ALL THE FILES SELECTED 00112 M01S00112.ssmove +++|* FOR *RELEASE ONLY*, *DESTAGE AND RELEASE* AND 00113 M01S00113.ssmove +++|* FOR *DESTAGE ONLY* IS WRITTEN TO THE REPORT FILE. 00114 M01S00114.ssmove +++|*
Line S00115 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | 281l803 |
Seq # *Modification Id* Act ----------------------------+ 00115 M02S00115.281l803 ---|* COPYRIGHT CONTROL DATA CORP., 1983. 00116 M01S00001.281l803 +++|* COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. 00117 M01S00116.ssmove +++|# 00118 M01S00117.ssmove +++| 00119 M01S00118.ssmove +++|# 00120 M01S00119.ssmove +++|**** PRGM SSMOVE - XREF LIST BEGIN. 00121 M01S00120.ssmove +++|# 00122 M01S00121.ssmove +++| 00123 M01S00122.ssmove +++| XREF 00124 M01S00123.ssmove +++| BEGIN 00125 M01S00124.ssmove +++| PROC ABORT; # CALLS *ABORT* MACRO # 00126 M01S00125.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 00127 M01S00126.ssmove +++| PROC GETSPS; # GET SYSTEM ORIGIN STATUS # 00128 M01S00127.ssmove +++| PROC MESSAGE; # DISPLAYS A MESSAGE IN DAYFILE # 00129 M01S00128.ssmove +++| PROC MVABDS; # PROCESS DESTAGE ABANDONMENT # 00130 M01S00129.ssmove +++| PROC MVCALL; # ISSUES TYPE 1, 2 UCP REQUEST # 00131 M01S00130.ssmove +++| PROC MVINIT; # DECODES *SSMOVE* CONTROL 00132 M01S00131.ssmove +++| STATEMENT # 00133 M01S00132.ssmove +++| PROC MVPASS3; # SETS UP "DESTAGE AND RELEASE" 00134 M01S00133.ssmove +++| AND "DESTAGE" TEMP FILES # 00135 M01S00134.ssmove +++| PROC MVPASS4; # SETS UP COMMUNICATION FILE # 00136 M01S00135.ssmove +++| PROC MVPFRD; # READS PFC # 00137 M01S00136.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00138 M01S00137.ssmove +++| OR RETURN # 00139 M01S00138.ssmove +++| PROC RETERN; # RETURN A FILE # 00140 M01S00139.ssmove +++| PROC RPCLOSE; # CLOSE REPORT FILE # 00141 M01S00140.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 00142 M01S00141.ssmove +++| END 00143 M01S00142.ssmove +++| 00144 M01S00143.ssmove +++|# 00145 M01S00144.ssmove +++|**** PRGM SSMOVE - XREF LIST END. 00146 M01S00145.ssmove +++|# 00147 M01S00146.ssmove +++| 00148 M01S00147.ssmove +++|# 00149 M01S00148.ssmove +++|* DAYFILE MESSAGES. 00150 M01S00149.ssmove +++|# 00151 M01S00150.ssmove +++| 00152 M01S00151.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00153 M01S00152.ssmove +++| DEF RSLEN #1#; # RETURN STATUS WORD LENGTH L # 00154 M01S00153.ssmove +++| DEF MSG1 #" SSMOVE - MUST BE SYSTEM ORIGIN."#; 00155 M01S00154.ssmove +++| DEF MSG2 #" SSMOVE COMPLETE."#; 00156 M01S00155.ssmove +++| DEF MSG3 #" UNABLE TO CONNECT WITH EXEC."#; 00157 M01S00156.ssmove +++| DEF PROCNAME #"SSMOVE"#; # PROC NAME # 00158 M01S00157.ssmove +++| 00159 M01S00158.ssmove +++| CONTROL PRESET; 00160 M01S00159.ssmove +++|*CALL,COMBFAS 00161 M01S00160.ssmove +++|*CALL,COMBBZF 00162 M01S00161.ssmove +++|*CALL,COMBCPR 00163 M01S00162.ssmove +++|*CALL,COMBUCR 00164 M01S00163.ssmove +++|*CALL,COMTMOV 00165 M01S00164.ssmove +++|*CALL,COMTMVP 00166 M01S00165.ssmove +++|*CALL,COMTOUT 00167 M01S00166.ssmove +++| 00168 M01S00167.ssmove +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 00169 M01S00168.ssmove +++| 00170 M01S00169.ssmove +++| ARRAY CALL$SS [0:0] P(CPRLEN);; # CALLSS PARAMETER BLOCK # 00171 M01S00170.ssmove +++| 00172 M01S00171.ssmove +++| ARRAY SPSSTAT[0:0] S(RSLEN); 00173 M01S00172.ssmove +++| BEGIN 00174 M01S00173.ssmove +++| ITEM SPS$STATUS U(00,48,12); # RETURN STATUS # 00175 M01S00174.ssmove +++| END 00176 M01S00175.ssmove +++| 00177 M01S00176.ssmove +++| CONTROL EJECT; 00178 M01S00177.ssmove +++| 00179 M01S00178.ssmove +++| REQID$MV = REQNAME"RQIMOVE"; # SET UP REQUESTOR ID # 00180 M01S00179.ssmove +++| 00181 M01S00180.ssmove +++|# 00182 M01S00181.ssmove +++|* CHECK FOR SYSTEM ORIGIN PRIVILEGES. 00183 M01S00182.ssmove +++|# 00184 M01S00183.ssmove +++| 00185 M01S00184.ssmove +++| GETSPS(SPSSTAT); # GET SYSTEM ORIGIN STATUS # 00186 M01S00185.ssmove +++| IF SPS$STATUS NQ 0 00187 M01S00186.ssmove +++| THEN 00188 M01S00187.ssmove +++| BEGIN 00189 M01S00188.ssmove +++| MVMSG$LN[0] = MSG1; 00190 M01S00189.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00191 M01S00190.ssmove +++| ABORT; 00192 M01S00191.ssmove +++| END 00193 M01S00192.ssmove +++| 00194 M01S00193.ssmove +++|# 00195 M01S00194.ssmove +++|* INITIALIZE *SSMOVE* BY DECODING RUN-TIME PARAMETERS AND 00196 M01S00195.ssmove +++|* BY DECODING RUN-TIME DIRECTIVES. 00197 M01S00196.ssmove +++|* 00198 M01S00197.ssmove +++|* WRITE THE FIRST TWO SECTIONS OF THE *SSMOVE* REPORT 00199 M01S00198.ssmove +++|* TO THE REPORT FILE - DIRECTIVES, AND RUN-TIME WEIGHTS. 00200 M01S00199.ssmove +++|# 00201 M01S00200.ssmove +++| 00202 M01S00201.ssmove +++| MVINIT; 00203 M01S00202.ssmove +++| 00204 M01S00203.ssmove +++|# 00205 M01S00204.ssmove +++|* READ THE PFC AND GENERATE TEMPORARY DECISION FILE. 00206 M01S00205.ssmove +++|# 00207 M01S00206.ssmove +++| 00208 M01S00207.ssmove +++| MVPFRD; 00209 M01S00208.ssmove +++| 00210 M01S00209.ssmove +++|# 00211 M01S00210.ssmove +++|* GENERATE *DESTAGE AND RELEASE* AND *DESTAGE* TEMP FILES 00212 M01S00211.ssmove +++|* AND RELEASE THE FILES CANDIDATE FOR RELEASE ONLY. 00213 M01S00212.ssmove +++|# 00214 M01S00213.ssmove +++| 00215 M01S00214.ssmove +++| MVPASS3; 00216 M01S00215.ssmove +++| 00217 M01S00216.ssmove +++|# 00218 M01S00217.ssmove +++|* GENERATE COMMUNICATION FILE. 00219 M01S00218.ssmove +++|* THE REPORT PRODUCED BY THIS STEP IS A LISTING OF THE FILES 00220 M01S00219.ssmove +++|* SELECTED FOR PROCESSING AND THE EXPECTED STATUS OF EACH 00221 M01S00220.ssmove +++|* DEVICE AND SUBFAMILY UPON COMPLETION OF THE SELECTED. 00222 M01S00221.ssmove +++|* PROCESSING. 00223 M01S00222.ssmove +++|# 00224 M01S00223.ssmove +++| 00225 M01S00224.ssmove +++| MVPASS4; 00226 M01S00225.ssmove +++| 00227 M01S00226.ssmove +++|# 00228 M01S00227.ssmove +++|* IF *REPORT ONLY* OPTION IS NOT SELECTED- 00229 M01S00228.ssmove +++|* AND COMMUNICATION FILE NOT EMPTY- 00230 M01S00229.ssmove +++|* 1. CONNECT WITH EXEC. 00231 M01S00230.ssmove +++|* 2. INFORM EXEC THAT COMMUNICATION FILE IS READY. 00232 M01S00231.ssmove +++|* 3. DISCONNECT. 00233 M01S00232.ssmove +++|# 00234 M01S00233.ssmove +++| 00235 M01S00234.ssmove +++| IF NOT (PX$A[0] AND PX$B[0] AND PX$S[0] AND PX$F[0]) ## 00236 M01S00235.ssmove +++| AND NFILES NQ 0 00237 M01S00236.ssmove +++| THEN 00238 M01S00237.ssmove +++| BEGIN # SEND COMMUNICATION FILE TO EXEC # 00239 M01S00238.ssmove +++| P<CPR> = LOC(CALL$SS[0]); 00240 M01S00239.ssmove +++| MVCALL(TYP"TYP1",REQTYP1"CONNECT",RESPCODE); 00241 M01S00240.ssmove +++| IF RESPCODE NQ RESPTYP1"OK1" 00242 M01S00241.ssmove +++| THEN # CONNECT NOT DONE # 00243 M01S00242.ssmove +++| BEGIN 00244 M01S00243.ssmove +++| MVMSG$LN[0] = MSG3; 00245 M01S00244.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00246 M01S00245.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00247 M01S00246.ssmove +++| END 00248 M01S00247.ssmove +++| 00249 M01S00248.ssmove +++| MVCALL(TYP"TYP2",REQTYP2"FILE$READY",RESPCODE); 00250 M01S00249.ssmove +++| 00251 M01S00250.ssmove +++| IF RESPCODE NQ RESPTYP2"OK2" 00252 M01S00251.ssmove +++| THEN # ABNORMAL TERMINATION # 00253 M01S00252.ssmove +++| BEGIN 00254 M01S00253.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00255 M01S00254.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00256 M01S00255.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00257 M01S00256.ssmove +++| END 00258 M01S00257.ssmove +++| 00259 M01S00258.ssmove +++| MVCALL(TYP"TYP1",REQTYP1"DISCONNECT",RESPCODE); 00260 M01S00259.ssmove +++| IF RESPCODE NQ RESPTYP1"OK1" 00261 M01S00260.ssmove +++| THEN # ABNORMAL TERMINATION # 00262 M01S00261.ssmove +++| BEGIN 00263 M01S00262.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00264 M01S00263.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00265 M01S00264.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00266 M01S00265.ssmove +++| END 00267 M01S00266.ssmove +++| 00268 M01S00267.ssmove +++|# 00269 M01S00268.ssmove +++|* PRODUCE REPORT OF ANY DESTAGES WHICH WERE ABANDONED. 00270 M01S00269.ssmove +++|# 00271 M01S00270.ssmove +++| 00272 M01S00271.ssmove +++| IF NOT MVARG$NW[0] 00273 M01S00272.ssmove +++| THEN 00274 M01S00273.ssmove +++| BEGIN 00275 M01S00274.ssmove +++| MVABDS; 00276 M01S00275.ssmove +++| END 00277 M01S00276.ssmove +++| 00278 M01S00277.ssmove +++| END # SEND COMMUNICATION FILE TO EXEC # 00279 M01S00278.ssmove +++| 00280 M01S00279.ssmove +++|# 00281 M01S00280.ssmove +++|* CLOSE REPORT FILE. 00282 M01S00281.ssmove +++|# 00283 M01S00282.ssmove +++| 00284 M01S00283.ssmove +++| RPCLOSE(OUT$FETP); 00285 M01S00284.ssmove +++| 00286 M01S00285.ssmove +++|# 00287 M01S00286.ssmove +++|* RETURN *MVOCOM* FILE AND *CATS* FILE. 00288 M01S00287.ssmove +++|# 00289 M01S00288.ssmove +++| 00290 M01S00289.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 00291 M01S00290.ssmove +++| FETP = LOC(MV$FET[FILEMO]); 00292 M01S00291.ssmove +++| BUFP = LOC(MV$BUF[FILEMO]); 00293 M01S00292.ssmove +++| COMNAME = CATS; 00294 M01S00293.ssmove +++| BZFILL(COMNAME,TYPFILL"ZFILL",7); 00295 M01S00294.ssmove +++| ZSETFET(FETP,COMNAME,BUFP,MVBUFL,SFETL); 00296 M01S00295.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 00297 M01S00296.ssmove +++| 00298 M01S00297.ssmove +++|# 00299 M01S00298.ssmove +++|* ISSUE FINAL DAYFILE MESSAGE. 00300 M01S00299.ssmove +++|# 00301 M01S00300.ssmove +++| 00302 M01S00301.ssmove +++| MVMSG$LN[0] = MSG2; # STOP WITH DAYFILE MESSAGE # 00303 M01S00302.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00304 M01S00303.ssmove +++| RESTPFP(PFP$END); # RESTORE USER-S *PFP* # 00305 M01S00304.ssmove +++| 00306 M01S00305.ssmove +++| END # SSMOVE # 00307 M01S00306.ssmove +++| 00308 M01S00307.ssmove +++| TERM 00309 M01S00308.ssmove +++|PROC GETPFC(PEO,FLAG); 00310 M01S00309.ssmove +++|# TITLE GETPFC - GET NEXT PFC ENTRY. # 00311 M01S00310.ssmove +++| 00312 M01S00311.ssmove +++| BEGIN # GETPFC # 00313 M01S00312.ssmove +++| 00314 M01S00313.ssmove +++|# 00315 M01S00314.ssmove +++|** GETPFC - GET NEXT PFC ENTRY. 00316 M01S00315.ssmove +++|* 00317 M01S00316.ssmove +++|* PROC GETPFC(PEO,FLAG). 00318 M01S00317.ssmove +++|* 00319 M01S00318.ssmove +++|* ENTRY. (PEO) = ORDINAL OF PREVIOUS PFC ENTRY. 00320 M01S00319.ssmove +++|* 00321 M01S00320.ssmove +++|* EXIT. (PEO) = ORDINAL OF CURRENT PFC ENTRY. 00322 M01S00321.ssmove +++|* P<CNTRWORD> = FWA OF CONTROL WORD. 00323 M01S00322.ssmove +++|* P<PFC> = FWA OF CURRENT PFC ENTRY. 00324 M01S00323.ssmove +++|* (FLAG) = ERROR STATUS. 00325 M01S00324.ssmove +++|* 0, MORE PFC ENTRIES TO GO. 00326 M01S00325.ssmove +++|* 1, END OF PFC. 00327 M01S00326.ssmove +++|* 00328 M01S00327.ssmove +++|* MESSAGES. NO DEVICES IN THE FAMILY. 00329 M01S00328.ssmove +++|* SSMOVE ABNORMAL, GETPFC. 00330 M01S00329.ssmove +++|* 00331 M01S00330.ssmove +++|* NOTES. A CATALOG SECTOR IS READ IN ALONG WITH THE CONTROL 00332 M01S00331.ssmove +++|* WORD. THE ORDINAL OF THE NON ZERO PFC ENTRY IN THE 00333 M01S00332.ssmove +++|* SECTOR IS RETURNED TO THE CALLING PROCEDURE. 00334 M01S00333.ssmove +++|# 00335 M01S00334.ssmove +++| 00336 M01S00335.ssmove +++| ITEM PEO I; # PFC ENTRY ORDINAL # 00337 M01S00336.ssmove +++| ITEM FLAG I; # ERROR STATUS # 00338 M01S00337.ssmove +++| 00339 M01S00338.ssmove +++|# 00340 M01S00339.ssmove +++|**** PROC GETPFC - XREF LIST BEGIN. 00341 M01S00340.ssmove +++|# 00342 M01S00341.ssmove +++| 00343 M01S00342.ssmove +++| XREF 00344 M01S00343.ssmove +++| BEGIN 00345 M01S00344.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 00346 M01S00345.ssmove +++| PROC RDPFC; # READ *PFC* ENTRY # 00347 M01S00346.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00348 M01S00347.ssmove +++| OR RETURN # 00349 M01S00348.ssmove +++| END 00350 M01S00349.ssmove +++| 00351 M01S00350.ssmove +++|# 00352 M01S00351.ssmove +++|**** PROC GETPFC - XREF LIST END. 00353 M01S00352.ssmove +++|# 00354 M01S00353.ssmove +++| 00355 M01S00354.ssmove +++| DEF MSF$NODEV #"NO DEVICES IN THE FAMILY."#; # MESSAGE TEST # 00356 M01S00355.ssmove +++| DEF PROCNAME #"GETPFC."#; # PROC NAME # 00357 M01S00356.ssmove +++| 00358 M01S00357.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00359 M01S00358.ssmove +++|*CALL,COMBFAS 00360 M01S00359.ssmove +++|*CALL COMBSIT 00361 M01S00360.ssmove +++|*CALL,COMTCTW 00362 M01S00361.ssmove +++|*CALL,COMSPFM 00363 M01S00362.ssmove +++|*CALL,COMTMOV 00364 M01S00363.ssmove +++|*CALL,COMTMVP 00365 M01S00364.ssmove +++| 00366 M01S00365.ssmove +++| ITEM FIRST B = TRUE; # FIRST CALL TO PROCEDURE # 00367 M01S00366.ssmove +++| ITEM I I; # LOOP INDUCTION VARIABLE # 00368 M01S00367.ssmove +++| ITEM LIMIT I; # LIMIT ON PFC ORDINAL # 00369 M01S00368.ssmove +++| ITEM WRDCNT I; # WORD COUNT # 00370 M01S00369.ssmove +++| 00371 M01S00370.ssmove +++| CONTROL EJECT; 00372 M01S00371.ssmove +++| 00373 M01S00372.ssmove +++| SLOWFOR DUMMY = DUMMY 00374 M01S00373.ssmove +++| DO 00375 M01S00374.ssmove +++| BEGIN # GET NON ZERO PFC ENTRY # 00376 M01S00375.ssmove +++| IF PEO GQ LIMIT OR FIRST 00377 M01S00376.ssmove +++| THEN 00378 M01S00377.ssmove +++| BEGIN # READ NEXT SECTOR # 00379 M01S00378.ssmove +++| RDPFC(MVARG$FM[0],0,PFC$SEC[0],WRDCNT,FLAG); 00380 M01S00379.ssmove +++| IF FLAG NQ OK 00381 M01S00380.ssmove +++| THEN 00382 M01S00381.ssmove +++| BEGIN # PROCESS ERROR STATUS # 00383 M01S00382.ssmove +++| IF FLAG EQ 1 00384 M01S00383.ssmove +++| THEN # END OF PFC # 00385 M01S00384.ssmove +++| BEGIN 00386 M01S00385.ssmove +++| RETURN; 00387 M01S00386.ssmove +++| END 00388 M01S00387.ssmove +++| 00389 M01S00388.ssmove +++| IF FLAG EQ 2 00390 M01S00389.ssmove +++| THEN # NO DEVICES IN THE FAMILY # 00391 M01S00390.ssmove +++| BEGIN 00392 M01S00391.ssmove +++| MVMSG$LN[0] = MSF$NODEV; 00393 M01S00392.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00394 M01S00393.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00395 M01S00394.ssmove +++| END 00396 M01S00395.ssmove +++| 00397 M01S00396.ssmove +++| IF FLAG EQ 3 OR FLAG EQ 4 00398 M01S00397.ssmove +++| THEN # IGNORE BAD SECTOR OR ERROR IDLE 00399 M01S00398.ssmove +++| OR PF UTILITY ACTIVE ON DEVICE # 00400 M01S00399.ssmove +++| BEGIN 00401 M01S00400.ssmove +++| TEST DUMMY; 00402 M01S00401.ssmove +++| END 00403 M01S00402.ssmove +++| 00404 M01S00403.ssmove +++| MVMSG$PROC[0] = PROCNAME; # ABNORMAL TERMINATION # 00405 M01S00404.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00406 M01S00405.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00407 M01S00406.ssmove +++| END # PROCESS ERROR STATUS # 00408 M01S00407.ssmove +++| 00409 M01S00408.ssmove +++| IF FIRST 00410 M01S00409.ssmove +++| THEN 00411 M01S00410.ssmove +++| BEGIN 00412 M01S00411.ssmove +++| FIRST = FALSE; 00413 M01S00412.ssmove +++| END 00414 M01S00413.ssmove +++| 00415 M01S00414.ssmove +++| P<CNTRWORD> = LOC(PFC$SEC[0]) + WRDCNT; 00416 M01S00415.ssmove +++| 00417 M01S00416.ssmove +++|# 00418 M01S00417.ssmove +++|* CALCULATE LIMIT ON PFC ENTRY ORDINAL. 00419 M01S00418.ssmove +++|# 00420 M01S00419.ssmove +++| 00421 M01S00420.ssmove +++| LIMIT = WRDCNT/PFCENTL; 00422 M01S00421.ssmove +++| LIMIT = LIMIT - 1; 00423 M01S00422.ssmove +++| PEO = -1; 00424 M01S00423.ssmove +++| END # READ NEXT SECTOR # 00425 M01S00424.ssmove +++| 00426 M01S00425.ssmove +++|# 00427 M01S00426.ssmove +++|* SEARCH FOR NON ZERO PFC ENTRY. 00428 M01S00427.ssmove +++|# 00429 M01S00428.ssmove +++| 00430 M01S00429.ssmove +++| PEO = PEO + 1; 00431 M01S00430.ssmove +++| SLOWFOR I = PEO STEP 1 WHILE I LQ LIMIT 00432 M01S00431.ssmove +++| DO 00433 M01S00432.ssmove +++| BEGIN 00434 M01S00433.ssmove +++| PEO = I; 00435 M01S00434.ssmove +++| P<PFC> = LOC(PFC$SEC[0]) + PEO*PFCENTL; 00436 M01S00435.ssmove +++| IF PFC$UI[0] NQ 0 00437 M01S00436.ssmove +++| THEN 00438 M01S00437.ssmove +++| BEGIN 00439 M01S00438.ssmove +++| RETURN; 00440 M01S00439.ssmove +++| END 00441 M01S00440.ssmove +++| 00442 M01S00441.ssmove +++| END 00443 M01S00442.ssmove +++| 00444 M01S00443.ssmove +++| END # GET NON ZERO PFC ENTRY # 00445 M01S00444.ssmove +++| 00446 M01S00445.ssmove +++| END # GETPFC # 00447 M01S00446.ssmove +++| 00448 M01S00447.ssmove +++| TERM 00449 M01S00448.ssmove +++|PROC MVABDS; 00450 M01S00449.ssmove +++|# TITLE MVABDS - PROCESS DESTAGE ABANDONMENT. # 00451 M01S00450.ssmove +++| 00452 M01S00451.ssmove +++| BEGIN # MVABDS # 00453 M01S00452.ssmove +++| 00454 M01S00453.ssmove +++|# 00455 M01S00454.ssmove +++|** MVABDS - PROCESS DESTAGE ABANDONMENT INFORMATION. 00456 M01S00455.ssmove +++|* 00457 M01S00456.ssmove +++|* PROC MVABDS. 00458 M01S00457.ssmove +++|* 00459 M01S00458.ssmove +++|* MESSAGES 1) UNABLE TO ATTACH COMMUNICATION FILE. 00460 M01S00459.ssmove +++|* 2) UNABLE TO READ COMMUNICATION FILE. 00461 M01S00460.ssmove +++|* 00462 M01S00461.ssmove +++|* NOTES PROC *MVABDS* PRODUCES A REPORT PAGE LISTING EACH 00463 M01S00462.ssmove +++|* DESTAGE ABANDONMENT CODE, THE REASON FOR ABANDONMENT, 00464 M01S00463.ssmove +++|* AND THE NUMBER OF FILES ABANDONED FOR THAT REASON. 00465 M01S00464.ssmove +++|* IF *LO=F* IS SPECIFIED EACH ABANDONED FILE AND THE 00466 M01S00465.ssmove +++|* CORRESPONDING ABANDONMENT CODE IS LISTED. *MVRPTDS* 00467 M01S00466.ssmove +++|* IS CALLED TO REPRODUCE THE DEVICE STATUS REPORT AND 00468 M01S00467.ssmove +++|* THE SUBFAMILY REPORT REFLECTING ONLY THE DESTAGES 00469 M01S00468.ssmove +++|* WHICH ACTUALLY OCCURRED. 00470 M01S00469.ssmove +++|# 00471 M01S00470.ssmove +++| 00472 M01S00471.ssmove +++|# 00473 M01S00472.ssmove +++|**** PROC MVABDS - XREF LIST BEGIN. 00474 M01S00473.ssmove +++|# 00475 M01S00474.ssmove +++| 00476 M01S00475.ssmove +++| XREF 00477 M01S00476.ssmove +++| BEGIN 00478 M01S00477.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 00479 M01S00478.ssmove +++| PROC MESSAGE; # ISSUE MESSAGE TO DAYFILE # 00480 M01S00479.ssmove +++| PROC MVRPTDS; # REPORT DEVICE STATUS # 00481 M01S00480.ssmove +++| PROC PF; # *PFM* REQUEST INTERFACE # 00482 M01S00481.ssmove +++| PROC READ; # INITIATE INPUT TO A BUFFER # 00483 M01S00482.ssmove +++| PROC READW; # READ DATA TO WORKING BUFFER # 00484 M01S00483.ssmove +++| PROC RESTPFP; # RESTORE USER-S FAMILY AND UI. # 00485 M01S00484.ssmove +++| PROC RPEJECT; # PAGE EJECTS REPORT FILE # 00486 M01S00485.ssmove +++| PROC RPLINE; # WRITE LINE TO REPORT FILE # 00487 M01S00486.ssmove +++| PROC RPSPACE; # PUTS BLANK LINE ON REPORT FILE # 00488 M01S00487.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 00489 M01S00488.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 00490 M01S00489.ssmove +++| FUNC XCDD C(10); # CONVERT DECIMAL TO DISPLAY # 00491 M01S00490.ssmove +++| FUNC XCOD C(10); # BINARY TO DECIMAL DISPLAY # 00492 M01S00491.ssmove +++| END 00493 M01S00492.ssmove +++| 00494 M01S00493.ssmove +++|# 00495 M01S00494.ssmove +++|**** PROC MVABDS - XREF LIST END. 00496 M01S00495.ssmove +++|# 00497 M01S00496.ssmove +++| 00498 M01S00497.ssmove +++| DEF MSG1 #" UNABLE TO ATTACH COMMUNICATION FILE."#; 00499 M01S00498.ssmove +++| DEF MSG2 #" UNABLE TO READ COMMUNICATION FILE."#; 00500 M01S00499.ssmove +++| DEF MSG3 #"NO SPACE"#; 00501 M01S00500.ssmove +++| DEF MSG4 #"NO STORAGE MODULE AVAILABLE"#; 00502 M01S00501.ssmove +++| DEF MSG5 #"NO CARTRIDGE OR GROUP AVAILABLE"#; 00503 M01S00502.ssmove +++| DEF MSG6 #"FILE ALREADY DESTAGED"#; 00504 M01S00503.ssmove +++| DEF MSG7 #"FILE BUSY / PFM PROBLEM"#; 00505 M01S00504.ssmove +++| DEF MSG8 #"CATALOG ACCESS ERROR"#; 00506 M01S00505.ssmove +++| DEF MSG9 #"OVERFLOW NOT LEGAL"#; 00507 M01S00506.ssmove +++| DEF MSG10 #"GROUP FULL"#; 00508 M01S00507.ssmove +++| DEF MSG11 #"DISK READ ERROR"#; 00509 M01S00508.ssmove +++| DEF MSG12 #"CARTRIDGE LOST"#; 00510 M01S00509.ssmove +++| DEF MS613 #"CLOSED DESTAGE"#; 00511 M01S00510.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00512 M01S00511.ssmove +++|*CALL COMBFAS 00513 M01S00512.ssmove +++|*CALL COMBBZF 00514 M01S00513.ssmove +++|*CALL COMBFET 00515 M01S00514.ssmove +++|*CALL COMBTDM 00516 M01S00515.ssmove +++|*CALL COMTMOV 00517 M01S00516.ssmove +++|*CALL COMTOUT 00518 M01S00517.ssmove +++|*CALL COMXMFD 00519 M01S00518.ssmove +++| 00520 M01S00519.ssmove +++| ITEM ABR S:ABANDON; # ABANDONMENT CODE # 00521 M01S00520.ssmove +++| ITEM ABNDN B=TRUE; # PRODUCE ABANDONMENT REPORT # 00522 M01S00521.ssmove +++| ITEM IX I; # FILE TYPE INDEX # 00523 M01S00522.ssmove +++| ITEM J I; # FET ADDRESS # 00524 M01S00523.ssmove +++| ITEM STAT I; # STATUS # 00525 M01S00524.ssmove +++| ITEM SUBFAM I; # SUBFAMILY INDEX # 00526 M01S00525.ssmove +++| ITEM TMPC C(10); # TEMPORARY CHARACTER # 00527 M01S00526.ssmove +++| 00528 M01S00527.ssmove +++| ARRAY ABNDNF [1:11] S(1); 00529 M01S00528.ssmove +++| BEGIN 00530 M01S00529.ssmove +++| ITEM ABND$NF I(00,00,60); # FILE COUNT # 00531 M01S00530.ssmove +++| END 00532 M01S00531.ssmove +++| 00533 M01S00532.ssmove +++| CONTROL EJECT; 00534 M01S00533.ssmove +++| 00535 M01S00534.ssmove +++|# 00536 M01S00535.ssmove +++|* ATTACH COMMUNICATION FILE. 00537 M01S00536.ssmove +++|# 00538 M01S00537.ssmove +++| 00539 M01S00538.ssmove +++| COMNAME = MVOCOM; 00540 M01S00539.ssmove +++| BZFILL(COMNAME,TYPFILL"ZFILL",7); 00541 M01S00540.ssmove +++| 00542 M01S00541.ssmove +++| PF("ATTACH",COMNAME,0,"M","W","RC",STAT,"NA",0,0); 00543 M01S00542.ssmove +++| 00544 M01S00543.ssmove +++| IF STAT NQ OK 00545 M01S00544.ssmove +++| THEN 00546 M01S00545.ssmove +++| BEGIN 00547 M01S00546.ssmove +++| MVMSG$LN[0] = MSG1; 00548 M01S00547.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00549 M01S00548.ssmove +++| RESTPFP(PFP$ABORT); 00550 M01S00549.ssmove +++| END 00551 M01S00550.ssmove +++| 00552 M01S00551.ssmove +++|# 00553 M01S00552.ssmove +++|* DETERMINE WHETHER TO LIST EACH FILE. 00554 M01S00553.ssmove +++|# 00555 M01S00554.ssmove +++| 00556 M01S00555.ssmove +++| IF LO$F[0] OR LO$P[0] 00557 M01S00556.ssmove +++| THEN 00558 M01S00557.ssmove +++| BEGIN 00559 M01S00558.ssmove +++| LISTFETP = OUT$FETP; 00560 M01S00559.ssmove +++| END 00561 M01S00560.ssmove +++| 00562 M01S00561.ssmove +++|# 00563 M01S00562.ssmove +++|* CLEAR DESTAGE INFORMATION FROM SUBFAMILY STATUS ARRAY. 00564 M01S00563.ssmove +++|# 00565 M01S00564.ssmove +++| 00566 M01S00565.ssmove +++| SLOWFOR IX = IXDA STEP 1 UNTIL IXIA 00567 M01S00566.ssmove +++| DO 00568 M01S00567.ssmove +++| BEGIN 00569 M01S00568.ssmove +++| SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF 00570 M01S00569.ssmove +++| DO 00571 M01S00570.ssmove +++| BEGIN 00572 M01S00571.ssmove +++| SFDS$NF[IX,SUBFAM] = 0; 00573 M01S00572.ssmove +++| SFDS$PRU[IX,SUBFAM] = 0; 00574 M01S00573.ssmove +++| END 00575 M01S00574.ssmove +++| 00576 M01S00575.ssmove +++| END 00577 M01S00576.ssmove +++| 00578 M01S00577.ssmove +++|# 00579 M01S00578.ssmove +++|* READ PREAMBLE OF COMMUNICATION FILE. 00580 M01S00579.ssmove +++|# 00581 M01S00580.ssmove +++| 00582 M01S00581.ssmove +++| J = LOC(MCF$FET[0]); 00583 M01S00582.ssmove +++| ZSETFET(J,COMNAME,LOC(MCF$BUF[0]),MCFBUFL,SFETL); 00584 M01S00583.ssmove +++| FET$EP[0] = TRUE; 00585 M01S00584.ssmove +++| 00586 M01S00585.ssmove +++| READ(MCF$FET[0],NRCL); 00587 M01S00586.ssmove +++| READW(MCF$FET[0],MCF$PRM[0],MVPRML,STAT); 00588 M01S00587.ssmove +++| 00589 M01S00588.ssmove +++| IF STAT NQ OK 00590 M01S00589.ssmove +++| THEN 00591 M01S00590.ssmove +++| BEGIN 00592 M01S00591.ssmove +++| MVMSG$LN[0] = MSG2; 00593 M01S00592.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00594 M01S00593.ssmove +++| RESTPFP(PFP$ABORT); 00595 M01S00594.ssmove +++| END 00596 M01S00595.ssmove +++| 00597 M01S00596.ssmove +++| CONTROL EJECT; 00598 M01S00597.ssmove +++| 00599 M01S00598.ssmove +++|# 00600 M01S00599.ssmove +++|* WRITE HEADER TO REPORT FILE. 00601 M01S00600.ssmove +++|# 00602 M01S00601.ssmove +++| 00603 M01S00602.ssmove +++| RPEJECT(OUT$FETP); 00604 M01S00603.ssmove +++| RPLINE(OUT$FETP,"DESTAGE ABANDONMENT REPORT",5,26,0); 00605 M01S00604.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 00606 M01S00605.ssmove +++| RPLINE(LISTFETP,"FILENAME UI CODE",9,30,0); 00607 M01S00606.ssmove +++| RPSPACE(LISTFETP,SP"SPACE",1); 00608 M01S00607.ssmove +++| 00609 M01S00608.ssmove +++|# 00610 M01S00609.ssmove +++|* PROCESS EACH *TDAM* ENTRY. 00611 M01S00610.ssmove +++|# 00612 M01S00611.ssmove +++| 00613 M01S00612.ssmove +++| REPEAT WHILE STAT EQ 0 00614 M01S00613.ssmove +++| DO 00615 M01S00614.ssmove +++| BEGIN # PROCESS EACH *TDAM* # 00616 M01S00615.ssmove +++| 00617 M01S00616.ssmove +++| READW(MCF$FET[0],MCF$REQ[0],TDAMLEN,STAT); 00618 M01S00617.ssmove +++| 00619 M01S00618.ssmove +++| IF STAT EQ CIOERR 00620 M01S00619.ssmove +++| THEN 00621 M01S00620.ssmove +++| BEGIN 00622 M01S00621.ssmove +++| MVMSG$LN[0] = MSG2; 00623 M01S00622.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 00624 M01S00623.ssmove +++| RESTPFP(PFP$ABORT); 00625 M01S00624.ssmove +++| END 00626 M01S00625.ssmove +++| 00627 M01S00626.ssmove +++| IF STAT NQ OK 00628 M01S00627.ssmove +++| THEN 00629 M01S00628.ssmove +++| BEGIN 00630 M01S00629.ssmove +++| TEST DUMMY; 00631 M01S00630.ssmove +++| END 00632 M01S00631.ssmove +++| 00633 M01S00632.ssmove +++| P<TDAM> = LOC(MCF$REQ[0]); 00634 M01S00633.ssmove +++| DNX = DN$TO$DNX[TDAMDN[0]]; 00635 M01S00634.ssmove +++| SFX = TDAMSBF[0]; 00636 M01S00635.ssmove +++| 00637 M01S00636.ssmove +++|# 00638 M01S00637.ssmove +++|* CHECK FOR VALID ABANDONMENT CODE. 00639 M01S00638.ssmove +++|# 00640 M01S00639.ssmove +++| 00641 M01S00640.ssmove +++| IF TDAMABR[0] LQ ABANDON"OK" ## 00642 M01S00641.ssmove +++| OR TDAMABR[0] GQ ABANDON"ENDAB" 00643 M01S00642.ssmove +++| THEN # INVALID ABANDON CODE # 00644 M01S00643.ssmove +++| BEGIN 00645 M01S00644.ssmove +++| TEST DUMMY; 00646 M01S00645.ssmove +++| END 00647 M01S00646.ssmove +++| 00648 M01S00647.ssmove +++|# 00649 M01S00648.ssmove +++|* DETERMINE FILE TYPE. 00650 M01S00649.ssmove +++|# 00651 M01S00650.ssmove +++| 00652 M01S00651.ssmove +++| IF TDAMIA[0] 00653 M01S00652.ssmove +++| THEN 00654 M01S00653.ssmove +++| BEGIN 00655 M01S00654.ssmove +++| FTYPE = IXIA; 00656 M01S00655.ssmove +++| END 00657 M01S00656.ssmove +++| 00658 M01S00657.ssmove +++| ELSE 00659 M01S00658.ssmove +++| BEGIN 00660 M01S00659.ssmove +++| FTYPE = IXDA; 00661 M01S00660.ssmove +++| END 00662 M01S00661.ssmove +++| 00663 M01S00662.ssmove +++|# 00664 M01S00663.ssmove +++|* UPDATE COUNTS FOR *MVRPTDS* REPORT. 00665 M01S00664.ssmove +++|# 00666 M01S00665.ssmove +++| 00667 M01S00666.ssmove +++| IF TDAMFC[0] EQ TDAMFCODE"DESTRLS" 00668 M01S00667.ssmove +++| THEN # FILE WAS NOT RELEASED # 00669 M01S00668.ssmove +++| BEGIN 00670 M01S00669.ssmove +++| DEV$RELF[FTYPE,DNX] = DEV$RELF[FTYPE,DNX] - 1; 00671 M01S00670.ssmove +++| DEV$TRPRU[FTYPE,DNX] = DEV$TRPRU[FTYPE,DNX] + TDAMFLN[0]; 00672 M01S00671.ssmove +++| IF FTYPE EQ IXIA 00673 M01S00672.ssmove +++| THEN 00674 M01S00673.ssmove +++| BEGIN 00675 M01S00674.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] - TDAMFLN[0]; 00676 M01S00675.ssmove +++| END 00677 M01S00676.ssmove +++| 00678 M01S00677.ssmove +++| ELSE 00679 M01S00678.ssmove +++| BEGIN 00680 M01S00679.ssmove +++| PRUTRK = DEV$SECTR[IXDA,DNX]; 00681 M01S00680.ssmove +++| TRUPRU = (((TDAMFLN[0]+1) / PRUTRK) + 1) * PRUTRK; 00682 M01S00681.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] - TRUPRU; 00683 M01S00682.ssmove +++| END 00684 M01S00683.ssmove +++| 00685 M01S00684.ssmove +++| END 00686 M01S00685.ssmove +++| 00687 M01S00686.ssmove +++| SFDS$NF[FTYPE,SFX] = SFDS$NF[FTYPE,SFX] + 1; 00688 M01S00687.ssmove +++| SFDS$PRU[FTYPE,SFX] = SFDS$PRU[FTYPE,SFX] + TDAMFLN[0]; 00689 M01S00688.ssmove +++| SFRL$NF[FTYPE,SFX] = SFRL$NF[FTYPE,SFX] - 1; 00690 M01S00689.ssmove +++| SFRL$PRU[FTYPE,SFX] = SFRL$PRU[FTYPE,SFX] - TDAMFLN[0]; 00691 M01S00690.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] - 1; 00692 M01S00691.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] - TDAMFLN[0]; 00693 M01S00692.ssmove +++| 00694 M01S00693.ssmove +++|# 00695 M01S00694.ssmove +++|* INCREMENT FILE COUNT. 00696 M01S00695.ssmove +++|# 00697 M01S00696.ssmove +++| 00698 M01S00697.ssmove +++| ABR = TDAMABR[0]; 00699 M01S00698.ssmove +++| ABND$NF[ABR] = ABND$NF[ABR] + 1; 00700 M01S00699.ssmove +++| 00701 M01S00700.ssmove +++|# 00702 M01S00701.ssmove +++|* WRITE EACH FILE TO REPORT FILE. 00703 M01S00702.ssmove +++|# 00704 M01S00703.ssmove +++| 00705 M01S00704.ssmove +++| TMPC = TDAMPFN[0]; 00706 M01S00705.ssmove +++| BZFILL(TMPC,TYPFILL"BFILL",7); 00707 M01S00706.ssmove +++| RPLINE(LISTFETP,TMPC,10,7,1); 00708 M01S00707.ssmove +++| TMPC = XCOD(TDAMUI[0]); 00709 M01S00708.ssmove +++| RPLINE(LISTFETP,TMPC,20,10,1); 00710 M01S00709.ssmove +++| CHR$10[0] = XCDD(TDAMABR[0]); 00711 M01S00710.ssmove +++| RPLINE(LISTFETP,CHR$R2[0],37,2,0); 00712 M01S00711.ssmove +++| 00713 M01S00712.ssmove +++| END # PROCESS EACH *TDAM* # 00714 M01S00713.ssmove +++| 00715 M01S00714.ssmove +++|# 00716 M01S00715.ssmove +++|* LIST CODE, NUMBER OF FILES, AND EXPLANATION. 00717 M01S00716.ssmove +++|# 00718 M01S00717.ssmove +++| 00719 M01S00718.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 00720 M01S00719.ssmove +++| RPLINE(OUT$FETP,"CODE FILES REASON",9,29,0); 00721 M01S00720.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 00722 M01S00721.ssmove +++| 00723 M01S00722.ssmove +++| ABR = ABANDON"NOSPACE"; 00724 M01S00723.ssmove +++| CHR$10[0] = XCDD(ABR); 00725 M01S00724.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00726 M01S00725.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00727 M01S00726.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00728 M01S00727.ssmove +++| RPLINE(OUT$FETP,MSG3,30,8,0); 00729 M01S00728.ssmove +++| 00730 M01S00729.ssmove +++| ABR = ABANDON"NOSM"; 00731 M01S00730.ssmove +++| CHR$10[0] = XCDD(ABR); 00732 M01S00731.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00733 M01S00732.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00734 M01S00733.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00735 M01S00734.ssmove +++| RPLINE(OUT$FETP,MSG4,30,27,0); 00736 M01S00735.ssmove +++| 00737 M01S00736.ssmove +++| ABR = ABANDON"NOCARGP"; 00738 M01S00737.ssmove +++| CHR$10[0] = XCDD(ABR); 00739 M01S00738.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00740 M01S00739.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00741 M01S00740.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00742 M01S00741.ssmove +++| RPLINE(OUT$FETP,MSG5,30,31,0); 00743 M01S00742.ssmove +++| 00744 M01S00743.ssmove +++| ABR = ABANDON"NEWASA"; 00745 M01S00744.ssmove +++| CHR$10[0] = XCDD(ABR); 00746 M01S00745.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00747 M01S00746.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00748 M01S00747.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00749 M01S00748.ssmove +++| RPLINE(OUT$FETP,MSG6,30,21,0); 00750 M01S00749.ssmove +++| 00751 M01S00750.ssmove +++| ABR = ABANDON"PFMERR"; 00752 M01S00751.ssmove +++| CHR$10[0] = XCDD(ABR); 00753 M01S00752.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00754 M01S00753.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00755 M01S00754.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00756 M01S00755.ssmove +++| RPLINE(OUT$FETP,MSG7,30,23,0); 00757 M01S00756.ssmove +++| 00758 M01S00757.ssmove +++| ABR = ABANDON"CATIOERR"; 00759 M01S00758.ssmove +++| CHR$10[0] = XCDD(ABR); 00760 M01S00759.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00761 M01S00760.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00762 M01S00761.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00763 M01S00762.ssmove +++| RPLINE(OUT$FETP,MSG8,30,20,0); 00764 M01S00763.ssmove +++| 00765 M01S00764.ssmove +++| ABR = ABANDON"NOOVERF"; 00766 M01S00765.ssmove +++| CHR$10[0] = XCDD(ABR); 00767 M01S00766.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00768 M01S00767.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00769 M01S00768.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00770 M01S00769.ssmove +++| RPLINE(OUT$FETP,MSG9,30,18,0); 00771 M01S00770.ssmove +++| 00772 M01S00771.ssmove +++| ABR = ABANDON"GRFULL"; 00773 M01S00772.ssmove +++| CHR$10[0] = XCDD(ABR); 00774 M01S00773.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00775 M01S00774.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00776 M01S00775.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00777 M01S00776.ssmove +++| RPLINE(OUT$FETP,MSG10,30,10,0); 00778 M01S00777.ssmove +++| 00779 M01S00778.ssmove +++| ABR = ABANDON"DSKRDERR"; 00780 M01S00779.ssmove +++| CHR$10[0] = XCDD(ABR); 00781 M01S00780.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00782 M01S00781.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00783 M01S00782.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00784 M01S00783.ssmove +++| RPLINE(OUT$FETP,MSG11,30,15,0); 00785 M01S00784.ssmove +++| 00786 M01S00785.ssmove +++| ABR = ABANDON"LOST"; 00787 M01S00786.ssmove +++| CHR$10[0] = XCDD(ABR); 00788 M01S00787.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00789 M01S00788.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00790 M01S00789.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00791 M01S00790.ssmove +++| RPLINE(OUT$FETP,MSG12,30,14,0); 00792 M01S00791.ssmove +++| 00793 M01S00792.ssmove +++| ABR = ABANDON"CLOSEDS"; 00794 M01S00793.ssmove +++| CHR$10[0] = XCDD(ABR); 00795 M01S00794.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],11,2,1); 00796 M01S00795.ssmove +++| CHR$10[0] = XCDD(ABND$NF[ABR]); 00797 M01S00796.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],17,8,1); 00798 M01S00797.ssmove +++| RPLINE(OUT$FETP,MS613,30,14,0); 00799 M01S00798.ssmove +++| 00800 M01S00799.ssmove +++|# 00801 M01S00800.ssmove +++|* GENERATE AN UPDATED *DEVICE REPORT* AND *SUBFAMILY REPORT*. 00802 M01S00801.ssmove +++|# 00803 M01S00802.ssmove +++| 00804 M01S00803.ssmove +++| MVRPTDS(ABNDN); 00805 M01S00804.ssmove +++| 00806 M01S00805.ssmove +++| 00807 M01S00806.ssmove +++| END # MVABDS # 00808 M01S00807.ssmove +++| 00809 M01S00808.ssmove +++| TERM 00810 M01S00809.ssmove +++|PROC MVALCS(CS,VCS,NBS,KEY,FLAG); 00811 M01S00810.ssmove +++|# TITLE MVALCS - ANALYZES CHARACTER STRING. # 00812 M01S00811.ssmove +++| 00813 M01S00812.ssmove +++| BEGIN # MVALCS # 00814 M01S00813.ssmove +++| 00815 M01S00814.ssmove +++|# 00816 M01S00815.ssmove +++|** MVALCS - ANALYZES CHARACTER STRING. 00817 M01S00816.ssmove +++|* 00818 M01S00817.ssmove +++|* THIS PROCEDURE ANALYZES AN INPUT CHARACTER STRING (CS) 00819 M01S00818.ssmove +++|* TO VERIFY THAT EACH CHARACTER IS IN THE STRING 00820 M01S00819.ssmove +++|* SPECIFIED BY *VCS*. EACH VALID CHARACTER RESULTS IN THE 00821 M01S00820.ssmove +++|* CORRESPONDING BIT IN *NBS* BEING SET TO 1 (TRUE). THESE BITS 00822 M01S00821.ssmove +++|* IN *NBS* MAY THEN BE TESTED AS BOOLEAN ITEMS TO DETERMINE 00823 M01S00822.ssmove +++|* IF THE ASSOCIATED CHARACTER WAS SUPPLIED OR NOT. 00824 M01S00823.ssmove +++|* 00825 M01S00824.ssmove +++|* PROC MVALCS(CS,VCS,NBS,KEY,FLAG). 00826 M01S00825.ssmove +++|* 00827 M01S00826.ssmove +++|# 00828 M01S00827.ssmove +++| 00829 M01S00828.ssmove +++| ITEM CS C(10); # INPUT CHARACTER STRING # 00830 M01S00829.ssmove +++| ITEM VCS C(10); # VALID CHARACTERS # 00831 M01S00830.ssmove +++| ITEM NBS I; # OUTPUT BIT STRING # 00832 M01S00831.ssmove +++| ITEM KEY C(2); # OPTION BEING TESTED # 00833 M01S00832.ssmove +++| ITEM FLAG I; # NON-ZERO FOR ERRORS # 00834 M01S00833.ssmove +++| 00835 M01S00834.ssmove +++| 00836 M01S00835.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 00837 M01S00836.ssmove +++| 00838 M01S00837.ssmove +++|*CALL,COMBFAS 00839 M01S00838.ssmove +++|*CALL COMBSIT 00840 M01S00839.ssmove +++| 00841 M01S00840.ssmove +++| 00842 M01S00841.ssmove +++| ITEM C C(1); # CHARACTER BEING ANALYZED # 00843 M01S00842.ssmove +++| ITEM I I; # LOOP INDEX # 00844 M01S00843.ssmove +++| ITEM J I; # LOOP INDEX # 00845 M01S00844.ssmove +++| 00846 M01S00845.ssmove +++| CONTROL EJECT; 00847 M01S00846.ssmove +++| 00848 M01S00847.ssmove +++| NBS = 0; 00849 M01S00848.ssmove +++| FLAG = 0; 00850 M01S00849.ssmove +++| SLOWFOR I = 0 STEP 1 UNTIL 9 00851 M01S00850.ssmove +++| DO 00852 M01S00851.ssmove +++| BEGIN # CS LOOP # 00853 M01S00852.ssmove +++| C = C<I,1>CS; 00854 M01S00853.ssmove +++| IF C EQ " " OR C EQ 0 00855 M01S00854.ssmove +++| THEN 00856 M01S00855.ssmove +++| RETURN; 00857 M01S00856.ssmove +++| SLOWFOR J = 0 STEP 1 UNTIL 9 00858 M01S00857.ssmove +++| DO 00859 M01S00858.ssmove +++| BEGIN # SEARCH FOR MATCH # 00860 M01S00859.ssmove +++| IF C<J,1>VCS EQ C 00861 M01S00860.ssmove +++| THEN 00862 M01S00861.ssmove +++| BEGIN 00863 M01S00862.ssmove +++| B<J,1>NBS = 1; 00864 M01S00863.ssmove +++| TEST I; 00865 M01S00864.ssmove +++| END 00866 M01S00865.ssmove +++| 00867 M01S00866.ssmove +++| END # SEARCH FOR MATCH # 00868 M01S00867.ssmove +++| 00869 M01S00868.ssmove +++| FLAG = I+1; 00870 M01S00869.ssmove +++| RETURN; 00871 M01S00870.ssmove +++| END # CS LOOP # 00872 M01S00871.ssmove +++| 00873 M01S00872.ssmove +++| END # MVALCS # 00874 M01S00873.ssmove +++| 00875 M01S00874.ssmove +++| TERM 00876 M01S00875.ssmove +++|PROC MVCALL((REQTYPE),(REQCODE),RESPCODE); 00877 M01S00876.ssmove +++|# TITLE MVCALL - ISSUES TYPE 1 OR 2 UCP REQUEST TO EXEC. # 00878 M01S00877.ssmove +++| 00879 M01S00878.ssmove +++| BEGIN # MVCALL # 00880 M01S00879.ssmove +++| 00881 M01S00880.ssmove +++|# 00882 M01S00881.ssmove +++|** MVCALL - ISSUES A TYPE 1 OR 2 UCP REQUEST TO EXEC. 00883 M01S00882.ssmove +++|* 00884 M01S00883.ssmove +++|* PROC MVCALL((REQTYPE),(REQCODE),RESPCODE). 00885 M01S00884.ssmove +++|* 00886 M01S00885.ssmove +++|* ENTRY. (REQTYPE) = REQUEST TYPE. 00887 M01S00886.ssmove +++|* (REQCODE) = REQUEST CODE. 00888 M01S00887.ssmove +++|* (MVARG$FM) = FAMILY NAME. 00889 M01S00888.ssmove +++|* (REQID$MV) = REQUESTOR ID. 00890 M01S00889.ssmove +++|* (SSID$MV) = SUBSYSTEM ID. 00891 M01S00890.ssmove +++|* P<CPR> = FWA OF CALLSS PARAMETER BLOCK. 00892 M01S00891.ssmove +++|* 00893 M01S00892.ssmove +++|* EXIT. (RESPCODE) = RESPONSE FROM EXEC. 00894 M01S00893.ssmove +++|* 00895 M01S00894.ssmove +++|* MESSAGES. SSMOVE ABNORMAL, MVCALL. 00896 M01S00895.ssmove +++|* 00897 M01S00896.ssmove +++|* NOTES. THE CALLSS PARAMETER REQUEST BLOCK IS SET 00898 M01S00897.ssmove +++|* UP FOR A TYPE 1 OR TYPE 2 UCP REQUEST AND 00899 M01S00898.ssmove +++|* THE REQUEST IS ISSUED TO EXEC. 00900 M01S00899.ssmove +++|# 00901 M01S00900.ssmove +++| 00902 M01S00901.ssmove +++| ITEM REQTYPE I; # REQUEST TYPE # 00903 M01S00902.ssmove +++| ITEM REQCODE I; # REQUEST CODE # 00904 M01S00903.ssmove +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 00905 M01S00904.ssmove +++| 00906 M01S00905.ssmove +++|# 00907 M01S00906.ssmove +++|**** PROC MVCALL - XREF LIST BEGIN. 00908 M01S00907.ssmove +++|# 00909 M01S00908.ssmove +++| 00910 M01S00909.ssmove +++| XREF 00911 M01S00910.ssmove +++| BEGIN 00912 M01S00911.ssmove +++| PROC ABORT; # STOPS PROCESSING # 00913 M01S00912.ssmove +++| PROC CALLSS; # ISSUES A UCP/SCP REQUEST # 00914 M01S00913.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 00915 M01S00914.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00916 M01S00915.ssmove +++| OR RETURN # 00917 M01S00916.ssmove +++| END 00918 M01S00917.ssmove +++| 00919 M01S00918.ssmove +++|# 00920 M01S00919.ssmove +++|**** PROC MVCALL - XREF LIST END. 00921 M01S00920.ssmove +++|# 00922 M01S00921.ssmove +++| 00923 M01S00922.ssmove +++| DEF PROCNAME #"MVCALL."#; # PROC NAME # 00924 M01S00923.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 00925 M01S00924.ssmove +++|*CALL,COMBFAS 00926 M01S00925.ssmove +++|*CALL,COMBCPR 00927 M01S00926.ssmove +++|*CALL,COMTMOV 00928 M01S00927.ssmove +++|*CALL,COMTMVP 00929 M01S00928.ssmove +++| 00930 M01S00929.ssmove +++| ITEM I I; # LOOP INDUCTION VARIABLE # 00931 M01S00930.ssmove +++| 00932 M01S00931.ssmove +++| CONTROL EJECT; 00933 M01S00932.ssmove +++| 00934 M01S00933.ssmove +++|# 00935 M01S00934.ssmove +++|* ZERO FILL CALLSS PARAMETER BLOCK. 00936 M01S00935.ssmove +++|# 00937 M01S00936.ssmove +++| 00938 M01S00937.ssmove +++| FASTFOR I = 0 STEP 1 UNTIL CPRLEN-1 00939 M01S00938.ssmove +++| DO 00940 M01S00939.ssmove +++| BEGIN 00941 M01S00940.ssmove +++| CPR1[I] = 0; 00942 M01S00941.ssmove +++| END 00943 M01S00942.ssmove +++| 00944 M01S00943.ssmove +++| CPR$RQT[0] = REQTYPE; # SET UP PARAMETER BLOCK # 00945 M01S00944.ssmove +++| CPR$RQC[0] = REQCODE; 00946 M01S00945.ssmove +++| CPR$RQI[0] = REQID$MV; 00947 M01S00946.ssmove +++| CPR$SSPFLG[0] = TRUE; 00948 M01S00947.ssmove +++| CPR$FAM[0] = MVARG$FM[0]; 00949 M01S00948.ssmove +++| 00950 M01S00949.ssmove +++| IF REQTYPE EQ TYP"TYP1" 00951 M01S00950.ssmove +++| THEN # TYPE 1 REQUEST # 00952 M01S00951.ssmove +++| BEGIN 00953 M01S00952.ssmove +++| CPR$WC[0] = TYP1$WC; 00954 M01S00953.ssmove +++| END 00955 M01S00954.ssmove +++| 00956 M01S00955.ssmove +++| ELSE 00957 M01S00956.ssmove +++| BEGIN # TYPE 2 OR ILLEGAL REQUEST # 00958 M01S00957.ssmove +++| IF REQTYPE EQ TYP"TYP2" 00959 M01S00958.ssmove +++| THEN # TYPE 2 REQUEST # 00960 M01S00959.ssmove +++| BEGIN 00961 M01S00960.ssmove +++| CPR$WC[0] = TYP2$WC; 00962 M01S00961.ssmove +++| CPR$NW[0] = MVARG$NW[0]; 00963 M01S00962.ssmove +++| END 00964 M01S00963.ssmove +++| 00965 M01S00964.ssmove +++| ELSE # ILLEGAL REQUEST TYPE # 00966 M01S00965.ssmove +++| BEGIN 00967 M01S00966.ssmove +++| MVMSG$PROC[0] = PROCNAME; 00968 M01S00967.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 00969 M01S00968.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 00970 M01S00969.ssmove +++| END 00971 M01S00970.ssmove +++| 00972 M01S00971.ssmove +++| END # TYPE 2 OR ILLEGAL REQUEST # 00973 M01S00972.ssmove +++| 00974 M01S00973.ssmove +++| CALLSS(SSID$MV,CPR[0],RCL); 00975 M01S00974.ssmove +++| IF REQTYPE EQ TYP"TYP2" 00976 M01S00975.ssmove +++| THEN 00977 M01S00976.ssmove +++| BEGIN 00978 M01S00977.ssmove +++| RESPCODE = CPR$RQR[0]; # RETURN RESPONSE FROM EXEC # 00979 M01S00978.ssmove +++| END 00980 M01S00979.ssmove +++| 00981 M01S00980.ssmove +++| ELSE 00982 M01S00981.ssmove +++| BEGIN 00983 M01S00982.ssmove +++| RESPCODE = CPR$ES[0]; # RETURN RESPONSE FROM SYSTEM # 00984 M01S00983.ssmove +++| END 00985 M01S00984.ssmove +++| 00986 M01S00985.ssmove +++| RETURN; 00987 M01S00986.ssmove +++| 00988 M01S00987.ssmove +++| END # MVCALL # 00989 M01S00988.ssmove +++| 00990 M01S00989.ssmove +++| TERM 00991 M01S00990.ssmove +++|PROC MVCKSF((FN),(UI),PO); 00992 M01S00991.ssmove +++|# TITLE MVCKSF - CHECK IF SPECIAL FILE. # 00993 M01S00992.ssmove +++| 00994 M01S00993.ssmove +++| BEGIN # MVCKSF # 00995 M01S00994.ssmove +++| 00996 M01S00995.ssmove +++|# 00997 M01S00996.ssmove +++|** MVCKSF - CHECK IF SPECIAL FILE. 00998 M01S00997.ssmove +++|* 00999 M01S00998.ssmove +++|* THIS PROCEDURE DETERMINES WHETHER THE FILE SPECIFIED BY 01000 M01S00999.ssmove +++|* THE *FN* AND *UI* PARAMETERS WAS SPECIFIED VIA THE 01001 M01S01000.ssmove +++|* *SF,FN=...* DIRECTIVE. 01002 M01S01001.ssmove +++|* 01003 M01S01002.ssmove +++|* PROC MVCKSF( (FN), (UI), PO). 01004 M01S01003.ssmove +++|* 01005 M01S01004.ssmove +++|* ENTRY. (FN) = NAME OF A PERMANENT FILE 01006 M01S01005.ssmove +++|* (UI) = USER INDEX OF THIS FILE 01007 M01S01006.ssmove +++|* 01008 M01S01007.ssmove +++|* EXIT. (PO) = 0, IF THE FILE WAS NOT SPECIFIED BY A 01009 M01S01008.ssmove +++|* *SF,FN=...* DIRECTIVE. 01010 M01S01009.ssmove +++|* = Q, IF IT WAS SPECIFIED BY THE DIRECTIVE 01011 M01S01010.ssmove +++|* *SF,FN,...PO=Q.*. 01012 M01S01011.ssmove +++|# 01013 M01S01012.ssmove +++| 01014 M01S01013.ssmove +++| ITEM FN C(7); # FILE NAME # 01015 M01S01014.ssmove +++| ITEM UI I; # USER INDEX # 01016 M01S01015.ssmove +++| ITEM PO C(1); # PROCESSING OPTION # 01017 M01S01016.ssmove +++| 01018 M01S01017.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01019 M01S01018.ssmove +++|*CALL,COMBFAS 01020 M01S01019.ssmove +++|*CALL,COMTMOV 01021 M01S01020.ssmove +++| 01022 M01S01021.ssmove +++| ITEM I I; # LOOP INDEX # 01023 M01S01022.ssmove +++| 01024 M01S01023.ssmove +++| ARRAY CKSFILES [0:0] S(3); # CHECK FOR SPECIAL FILES # 01025 M01S01024.ssmove +++| BEGIN 01026 M01S01025.ssmove +++| ITEM CK$WRD1 U(00,00,60); # WORD 1 # 01027 M01S01026.ssmove +++| ITEM CK$FN C(00,00,07); # FILE NAME # 01028 M01S01027.ssmove +++| ITEM CK$WRD2 U(01,00,60); # WORD 2 # 01029 M01S01028.ssmove +++| ITEM CK$FNC C(01,00,07); # SELECTED FILE NAME # 01030 M01S01029.ssmove +++| ITEM CK$WRD3 U(02,00,60); # WORD 3 # 01031 M01S01030.ssmove +++| ITEM CK$MASK U(02,00,42); # MASK FOR FILE NAME # 01032 M01S01031.ssmove +++| END 01033 M01S01032.ssmove +++| 01034 M01S01033.ssmove +++| CONTROL EJECT; 01035 M01S01034.ssmove +++| PO = 0; 01036 M01S01035.ssmove +++| 01037 M01S01036.ssmove +++| SLOWFOR I = 1 STEP 1 UNTIL IDXFN 01038 M01S01037.ssmove +++| DO 01039 M01S01038.ssmove +++| BEGIN # SEARCH FOR FILE MATCH # 01040 M01S01039.ssmove +++| IF UI LS SF$UI[I] 01041 M01S01040.ssmove +++| THEN # NO MATCH # 01042 M01S01041.ssmove +++| BEGIN 01043 M01S01042.ssmove +++| RETURN; 01044 M01S01043.ssmove +++| END 01045 M01S01044.ssmove +++| 01046 M01S01045.ssmove +++| IF UI GR SF$UI[I] 01047 M01S01046.ssmove +++| THEN 01048 M01S01047.ssmove +++| BEGIN 01049 M01S01048.ssmove +++| TEST I; 01050 M01S01049.ssmove +++| END 01051 M01S01050.ssmove +++| 01052 M01S01051.ssmove +++| CK$FN[0] = FN; 01053 M01S01052.ssmove +++| CK$FNC[0] = SF$FNC[I]; 01054 M01S01053.ssmove +++| CK$MASK[0] = SF$MASK[I]; 01055 M01S01054.ssmove +++| IF ( (CK$FN[0] LXR CK$FNC[0]) # COMPARE FILE NAMES # 01056 M01S01055.ssmove +++| LAN CK$WRD3[0] ) # EXCLUDE WILD-CARD CHARACTERS # 01057 M01S01056.ssmove +++| EQ 0 01058 M01S01057.ssmove +++| THEN # FOUND A MATCH # 01059 M01S01058.ssmove +++| BEGIN 01060 M01S01059.ssmove +++| PO = SF$PO[I]; 01061 M01S01060.ssmove +++| RETURN; 01062 M01S01061.ssmove +++| END 01063 M01S01062.ssmove +++| 01064 M01S01063.ssmove +++| END # SEARCH FOR FILE MATCH # 01065 M01S01064.ssmove +++| 01066 M01S01065.ssmove +++| END # MVCKSF # 01067 M01S01066.ssmove +++| 01068 M01S01067.ssmove +++| TERM 01069 M01S01068.ssmove +++|PROC MVDIR; 01070 M01S01069.ssmove +++|# TITLE MVDIR - PROCESS DIRECTIVES . # 01071 M01S01070.ssmove +++| 01072 M01S01071.ssmove +++| BEGIN # MVDIR # 01073 M01S01072.ssmove +++| 01074 M01S01073.ssmove +++|# 01075 M01S01074.ssmove +++|** THIS PROCEDURE PROCESSES THE DIRECTIVES. 01076 M01S01075.ssmove +++|* 01077 M01S01076.ssmove +++|* PROC MVDIR. 01078 M01S01077.ssmove +++|* 01079 M01S01078.ssmove +++|* MESSAGES. DIRECTIVE ERROR - REPORT ONLY. 01080 M01S01079.ssmove +++|* 01081 M01S01080.ssmove +++|* NOTES. THIS PROCEDURE READS EACH DIRECTIVE AND CHECKS 01082 M01S01081.ssmove +++|* THAT IT IS VALID. IF IT IS NOT A VALID DIRECTIVE 01083 M01S01082.ssmove +++|* A MESSAGE IS ISSUED TO THE DAYFILE AND THE REPORT 01084 M01S01083.ssmove +++|* FILE. *SSMOVE* THEN CONTINUES IN REPORT ONLY 01085 M01S01084.ssmove +++|* MODE. FOR THE *FR*,*WM*,*WA*,*PR*,*BR*, 01086 M01S01085.ssmove +++|* AND *SM* DIRECTIVES THE DEFAULT VALUES ARE REPLACED 01087 M01S01086.ssmove +++|* WITH THE SPECIFIED VALUES. THE DIRECTIVES AND 01088 M01S01087.ssmove +++|* RUN-TIME PARAMETER VALUES ARE WRITTEN TO THE REPORT 01089 M01S01088.ssmove +++|* FILE. 01090 M01S01089.ssmove +++|# 01091 M01S01090.ssmove +++| 01092 M01S01091.ssmove +++|# 01093 M01S01092.ssmove +++|**** PROC MVDIR - XREF LIST BEGIN. 01094 M01S01093.ssmove +++|# 01095 M01S01094.ssmove +++| 01096 M01S01095.ssmove +++| XREF 01097 M01S01096.ssmove +++| BEGIN 01098 M01S01097.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 01099 M01S01098.ssmove +++| PROC MESSAGE; # DISPLAYS A MESSAGE IN DAYFILE # 01100 M01S01099.ssmove +++| PROC READ; # INITIATE INPUT TO A BUFFER # 01101 M01S01100.ssmove +++| PROC READC; # COPY LINE TO WORKING BUFFER # 01102 M01S01101.ssmove +++| PROC RPEJECT; # PAGE EJECT # 01103 M01S01102.ssmove +++| PROC RPLINE; # WRITE LINE TO REPORT FILE # 01104 M01S01103.ssmove +++| PROC RPSPACE; # WRITE BLANK LINE TO REPORT FILE 01105 M01S01104.ssmove +++| # 01106 M01S01105.ssmove +++| PROC XARG; # DECODE PARAMETERS PER *ARG* 01107 M01S01106.ssmove +++| TABLE # 01108 M01S01107.ssmove +++| PROC ZFILL; # ZERO OUT AN ARRAY # 01109 M01S01108.ssmove +++| PROC ZSETFET; # INITIALIZE A FET # 01110 M01S01109.ssmove +++| FUNC XCDD C(10); # CONVERT BINARY TO DECIMAL # 01111 M01S01110.ssmove +++| FUNC XDXB I; # CONVERT DISPLAY TO BINARY # 01112 M01S01111.ssmove +++| END 01113 M01S01112.ssmove +++| 01114 M01S01113.ssmove +++|# 01115 M01S01114.ssmove +++|**** PROC MVDIR - XREF LIST END. 01116 M01S01115.ssmove +++|# 01117 M01S01116.ssmove +++| 01118 M01S01117.ssmove +++| DEF MSK77 #O"77"#; # MASK # 01119 M01S01118.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 01120 M01S01119.ssmove +++| 01121 M01S01120.ssmove +++| CONTROL PRESET; 01122 M01S01121.ssmove +++|*CALL,COMBFAS 01123 M01S01122.ssmove +++|*CALL COMBSIT 01124 M01S01123.ssmove +++|*CALL,COMBBZF 01125 M01S01124.ssmove +++|*CALL,COMSPFM 01126 M01S01125.ssmove +++|*CALL,COMTMOV 01127 M01S01126.ssmove +++|*CALL,COMTMVD 01128 M01S01127.ssmove +++|*CALL,COMTMVP 01129 M01S01128.ssmove +++|*CALL,COMTOUT 01130 M01S01129.ssmove +++| 01131 M01S01130.ssmove +++| ITEM ARGLIST I; # ARGUMENT LIST ADDRESS # 01132 M01S01131.ssmove +++| ITEM COL I; # COLUMN NUMBER # 01133 M01S01132.ssmove +++| ITEM DIRLINE C(90); # DIRECTIVE TEXT LINE # 01134 M01S01133.ssmove +++| ITEM DIRNUM I; # DIRECTIVE NUMBER # 01135 M01S01134.ssmove +++| ITEM EOR B; # END-OF-RECORD FLAG # 01136 M01S01135.ssmove +++| ITEM FATALERR B; # FATAL ERROR, IF TRUE # 01137 M01S01136.ssmove +++| ITEM FOUND B; # LOOP EXIT CONTROL # 01138 M01S01137.ssmove +++| ITEM I I; # LOOP INDEX # 01139 M01S01138.ssmove +++| ITEM J I; # LOOP INDEX # 01140 M01S01139.ssmove +++| ITEM K I; # LOOP INDEX # 01141 M01S01140.ssmove +++| ITEM KEY C(2); # DIRECTIVE KEYWORD # 01142 M01S01141.ssmove +++| ITEM KEYOK B; # CONTROL VARIABLE # 01143 M01S01142.ssmove +++| ITEM L I; # LOOP INDEX # 01144 M01S01143.ssmove +++| ITEM LFN C(7); # FILE NAME # 01145 M01S01144.ssmove +++| ITEM MASK I; # MASK FOR SPECIAL FILE NAMES # 01146 M01S01145.ssmove +++| ITEM MAXARG I; # MAXIMUM NUMBER OF ARGUMENTS # 01147 M01S01146.ssmove +++| ITEM STAT I; # STATUS OF PROCEDURE CALL # 01148 M01S01147.ssmove +++| ITEM TMPI I; # TEMPORARY INTEGER # 01149 M01S01148.ssmove +++| 01150 M01S01149.ssmove +++| 01151 M01S01150.ssmove +++| ARRAY SFDEF [1:SFMX] S(1); 01152 M01S01151.ssmove +++| BEGIN 01153 M01S01152.ssmove +++| ITEM SFD$I I(00,00,60); # DEFAULT VALUES FOR *SF* 01154 M01S01153.ssmove +++| DIRECTIVE # 01155 M01S01154.ssmove +++| END 01156 M01S01155.ssmove +++| 01157 M01S01156.ssmove +++| BASED 01158 M01S01157.ssmove +++| ARRAY PARM [1:2,1:2,1:1] S(1); 01159 M01S01158.ssmove +++| BEGIN 01160 M01S01159.ssmove +++| ITEM PARM$V U(00,00,60); # PARAMETER VALUE # 01161 M01S01160.ssmove +++| END 01162 M01S01161.ssmove +++| 01163 M01S01162.ssmove +++| BASED 01164 M01S01163.ssmove +++| ARRAY XXARG[1:1] S(1); 01165 M01S01164.ssmove +++| BEGIN 01166 M01S01165.ssmove +++| ITEM XX$KEY C(00,00,02); # PARAMETER KEY # 01167 M01S01166.ssmove +++| ITEM XX$C2 C(00,06,01); # SECOND CHARACTER OF KEY # 01168 M01S01167.ssmove +++| END 01169 M01S01168.ssmove +++| 01170 M01S01169.ssmove +++| BASED 01171 M01S01170.ssmove +++| ARRAY SFPARM [1:1] S(1); 01172 M01S01171.ssmove +++| BEGIN 01173 M01S01172.ssmove +++| ITEM SF$C C(00,00,10); # *SF* PARAMETER (CHARACTER) # 01174 M01S01173.ssmove +++| ITEM SF$I I(00,00,60); # *SF* PARAMETER (INTEGER) # 01175 M01S01174.ssmove +++| END 01176 M01S01175.ssmove +++| 01177 M01S01176.ssmove +++| ARRAY SFTMP [0:0] S(1); 01178 M01S01177.ssmove +++| BEGIN 01179 M01S01178.ssmove +++| ITEM SFT$VAL U(00,00,60); # ENTIRE WORD # 01180 M01S01179.ssmove +++| ITEM SFT$UI U(00,00,18); # USER INDEX # 01181 M01S01180.ssmove +++| ITEM SFT$FNC C(00,18,07); # FILE NAME # 01182 M01S01181.ssmove +++| ITEM SFT$FNI I(00,18,42); # FILE NAME # 01183 M01S01182.ssmove +++| END 01184 M01S01183.ssmove +++| 01185 M01S01184.ssmove +++| BASED 01186 M01S01185.ssmove +++| ARRAY ZR [0:0];; # ARRAY TO BE ZEROED # 01187 M01S01186.ssmove +++| 01188 M01S01187.ssmove +++| 01189 M01S01188.ssmove +++| ITEM ADDR U; # PARAMETER LIST ADDRESS # 01190 M01S01189.ssmove +++| 01191 M01S01190.ssmove +++| 01192 M01S01191.ssmove +++| ARRAY LU [1:2] P(2); 01193 M01S01192.ssmove +++| BEGIN 01194 M01S01193.ssmove +++| ITEM LL I(00,00,60); # LOWER LIMIT # 01195 M01S01194.ssmove +++| ITEM UL I(01,00,60); # UPPER LIMIT # 01196 M01S01195.ssmove +++| END 01197 M01S01196.ssmove +++| 01198 M01S01197.ssmove +++| BASED 01199 M01S01198.ssmove +++| ARRAY TQ[1:1] S(1); 01200 M01S01199.ssmove +++| BEGIN 01201 M01S01200.ssmove +++| ITEM TQ$VAL I(00,00,60); # DIRECTIVE PARAMETERS # 01202 M01S01201.ssmove +++| END 01203 M01S01202.ssmove +++| 01204 M01S01203.ssmove +++| BASED 01205 M01S01204.ssmove +++| ARRAY KWTEXT[1:1] S(2); 01206 M01S01205.ssmove +++| BEGIN 01207 M01S01206.ssmove +++| ITEM KW$TEXT C(00,00,20); # TEXT FOR DIRECTIVE KEYWORD # 01208 M01S01207.ssmove +++| END 01209 M01S01208.ssmove +++| 01210 M01S01209.ssmove +++| 01211 M01S01210.ssmove +++| 01212 M01S01211.ssmove +++| CONTROL EJECT; 01213 M01S01212.ssmove +++| P<TQ> = ARG$TAB[0]; 01214 M01S01213.ssmove +++| 01215 M01S01214.ssmove +++|# 01216 M01S01215.ssmove +++|* INITIALIZE TO READ THE DIRECTIVE FILE. 01217 M01S01216.ssmove +++|# 01218 M01S01217.ssmove +++| 01219 M01S01218.ssmove +++| IF MVARG$I[0] NQ 0 01220 M01S01219.ssmove +++| THEN 01221 M01S01220.ssmove +++| BEGIN 01222 M01S01221.ssmove +++| IDXFN = 0; 01223 M01S01222.ssmove +++| LFN = MVARG$I[0]; 01224 M01S01223.ssmove +++| FETP = LOC(MV$FET[FILEMI]); 01225 M01S01224.ssmove +++| BUFP = LOC(MV$BUF[FILEMI]); 01226 M01S01225.ssmove +++| ZSETFET(FETP,LFN,BUFP,MVBUFL,SFETL); 01227 M01S01226.ssmove +++| READ(MV$FET[FILEMI],NRCL); 01228 M01S01227.ssmove +++| EOR = FALSE; 01229 M01S01228.ssmove +++| END 01230 M01S01229.ssmove +++| 01231 M01S01230.ssmove +++| ELSE # NO DIRECTIVE FILE # 01232 M01S01231.ssmove +++| BEGIN 01233 M01S01232.ssmove +++| EOR = TRUE; 01234 M01S01233.ssmove +++| END 01235 M01S01234.ssmove +++| 01236 M01S01235.ssmove +++|# 01237 M01S01236.ssmove +++|* READ AND PROCESS EACH DIRECTIVE. ISSUE A NON-FATAL 01238 M01S01237.ssmove +++|* ERROR MESSAGE FOR ANY DIRECTIVE ERRORS. 01239 M01S01238.ssmove +++|# 01240 M01S01239.ssmove +++| 01241 M01S01240.ssmove +++| FOR DIRNUM = 1 STEP 1 WHILE NOT EOR 01242 M01S01241.ssmove +++| DO 01243 M01S01242.ssmove +++| BEGIN # PROCESS NEXT DIRECTIVE # 01244 M01S01243.ssmove +++| DIRLINE = " "; # ERASE PREVIOUS DIRECTIVE # 01245 M01S01244.ssmove +++| READC(MV$FET[FILEMI],DIRLINE,9,STAT); 01246 M01S01245.ssmove +++| BZFILL(DIRLINE,TYPFILL"BFILL",90); 01247 M01S01246.ssmove +++| C<89,1>DIRLINE = "."; # FORCE DIRECTIVE TERMINATOR # 01248 M01S01247.ssmove +++| IF STAT NQ 0 01249 M01S01248.ssmove +++| THEN 01250 M01S01249.ssmove +++| BEGIN 01251 M01S01250.ssmove +++| EOR = TRUE; 01252 M01S01251.ssmove +++| TEST DIRNUM; 01253 M01S01252.ssmove +++| END 01254 M01S01253.ssmove +++| 01255 M01S01254.ssmove +++| CHR$10[0] = XCDD(DIRNUM); 01256 M01S01255.ssmove +++| RPLINE(OUT$FETP,CHR$R3[0],3,3,1); # PRINT DIRECTIVE NUMBER # 01257 M01S01256.ssmove +++| RPLINE(OUT$FETP,DIRLINE,8,80,0); # PRINT DIRECTIVE # 01258 M01S01257.ssmove +++| 01259 M01S01258.ssmove +++| IF C<0,1>DIRLINE EQ "*" 01260 M01S01259.ssmove +++| THEN # FOUND COMMENT # 01261 M01S01260.ssmove +++| BEGIN 01262 M01S01261.ssmove +++| TEST DIRNUM; 01263 M01S01262.ssmove +++| END 01264 M01S01263.ssmove +++| 01265 M01S01264.ssmove +++| 01266 M01S01265.ssmove +++|# 01267 M01S01266.ssmove +++|* VERIFY DIRECTIVE KEYWORD IS OK. 01268 M01S01267.ssmove +++|* LOCATE *ARGLIST* FOR THIS DIRECTIVE. 01269 M01S01268.ssmove +++|# 01270 M01S01269.ssmove +++| 01271 M01S01270.ssmove +++| KEY = C<0,2>DIRLINE; 01272 M01S01271.ssmove +++| KEYOK = FALSE; 01273 M01S01272.ssmove +++| FOR I = 1 STEP 1 WHILE (NOT KEYOK) AND (I LQ NUMDIR) 01274 M01S01273.ssmove +++| DO 01275 M01S01274.ssmove +++| BEGIN 01276 M01S01275.ssmove +++| IF ARG$KEY[I] NQ KEY 01277 M01S01276.ssmove +++| THEN 01278 M01S01277.ssmove +++| BEGIN 01279 M01S01278.ssmove +++| TEST I; 01280 M01S01279.ssmove +++| END 01281 M01S01280.ssmove +++| 01282 M01S01281.ssmove +++| KEYOK = TRUE; 01283 M01S01282.ssmove +++| MAXARG = ARG$MX[I]; 01284 M01S01283.ssmove +++| ADDR = ARG$VAL[I]; 01285 M01S01284.ssmove +++| ARGLIST = ARG$TAB[I]; 01286 M01S01285.ssmove +++| END 01287 M01S01286.ssmove +++| 01288 M01S01287.ssmove +++|# 01289 M01S01288.ssmove +++|* IF A DIRECTIVE ERROR OR DIRECTIVE PARAMETER ERROR EXISTS 01290 M01S01289.ssmove +++|* IGNORE THIS DIRECTIVE. 01291 M01S01290.ssmove +++|# 01292 M01S01291.ssmove +++| 01293 M01S01292.ssmove +++| IF NOT KEYOK 01294 M01S01293.ssmove +++| THEN # DIRECTIVE ERROR # 01295 M01S01294.ssmove +++| BEGIN 01296 M01S01295.ssmove +++| RPLINE(OUT$FETP,"** UNRECOGNIZED DIRECTIVE - IGNORED.",8,36 01297 M01S01296.ssmove +++| ,0); 01298 M01S01297.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01299 M01S01298.ssmove +++| FATALERR = TRUE; 01300 M01S01299.ssmove +++| TEST DIRNUM; 01301 M01S01300.ssmove +++| END 01302 M01S01301.ssmove +++| 01303 M01S01302.ssmove +++|# 01304 M01S01303.ssmove +++|* CRACK PARAMETERS FOR THE DIRECTIVE AND SAVE THEM APPROPRIATELY. 01305 M01S01304.ssmove +++|# 01306 M01S01305.ssmove +++| 01307 M01S01306.ssmove +++| P<ZR> = ARG$TAB[0]; 01308 M01S01307.ssmove +++| ZFILL(ZR[0],ARG$MX[0]); 01309 M01S01308.ssmove +++| XARG(ARGLIST,DIRLINE,STAT); 01310 M01S01309.ssmove +++| IF STAT NQ 0 01311 M01S01310.ssmove +++| THEN # DIRECTIVE PARAMETER ERROR # 01312 M01S01311.ssmove +++| BEGIN 01313 M01S01312.ssmove +++| RPLINE(OUT$FETP,"PARAM ERROR - DIRECTIVE IGNORED",12,31,0); 01314 M01S01313.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01315 M01S01314.ssmove +++| FATALERR = TRUE; 01316 M01S01315.ssmove +++| TEST DIRNUM; 01317 M01S01316.ssmove +++| END 01318 M01S01317.ssmove +++| 01319 M01S01318.ssmove +++| CONTROL EJECT; 01320 M01S01319.ssmove +++| 01321 M01S01320.ssmove +++|# 01322 M01S01321.ssmove +++|** PROCESS THE *PR*, *BR*, *FR*, *WA*, *WM*, *SM* DIRECTIVES 01323 M01S01322.ssmove +++|* BY REPLACING DEFAULT VALUES WITH SPECIFIED VALUES. 01324 M01S01323.ssmove +++|# 01325 M01S01324.ssmove +++| 01326 M01S01325.ssmove +++| IF KEY NQ "SF" 01327 M01S01326.ssmove +++| THEN 01328 M01S01327.ssmove +++| BEGIN 01329 M01S01328.ssmove +++| FOR I = 1 STEP 1 UNTIL 2 01330 M01S01329.ssmove +++| DO 01331 M01S01330.ssmove +++| BEGIN # ESTABLISH LIMITS PER *TQ* # 01332 M01S01331.ssmove +++| LL[I] = 1; 01333 M01S01332.ssmove +++| UL[I] = 2; 01334 M01S01333.ssmove +++| IF TQ$VAL[2*I-1] NQ TQ$VAL[2*I] 01335 M01S01334.ssmove +++| THEN 01336 M01S01335.ssmove +++| BEGIN # NOT 1,2 # 01337 M01S01336.ssmove +++| IF TQ$VAL[2*I-1] NQ 0 01338 M01S01337.ssmove +++| THEN 01339 M01S01338.ssmove +++| BEGIN 01340 M01S01339.ssmove +++| LL[I] = 2; 01341 M01S01340.ssmove +++| END 01342 M01S01341.ssmove +++| 01343 M01S01342.ssmove +++| ELSE 01344 M01S01343.ssmove +++| BEGIN 01345 M01S01344.ssmove +++| UL[I] = 1; 01346 M01S01345.ssmove +++| END 01347 M01S01346.ssmove +++| 01348 M01S01347.ssmove +++| END # NOT 1,2 # 01349 M01S01348.ssmove +++| 01350 M01S01349.ssmove +++| END # ESTABLISH LIMITS PER *TQ* # 01351 M01S01350.ssmove +++| 01352 M01S01351.ssmove +++| STAT = 0; 01353 M01S01352.ssmove +++| P<PARM> = ADDR; 01354 M01S01353.ssmove +++| FOR I = 1 STEP 1 UNTIL MAXARG 01355 M01S01354.ssmove +++| DO 01356 M01S01355.ssmove +++| BEGIN 01357 M01S01356.ssmove +++| IF TQ$VAL[I+5] EQ 0 01358 M01S01357.ssmove +++| THEN 01359 M01S01358.ssmove +++| BEGIN 01360 M01S01359.ssmove +++| TEST I; 01361 M01S01360.ssmove +++| END 01362 M01S01361.ssmove +++| 01363 M01S01362.ssmove +++| STAT = XDXB(TQ$VAL[I+5],1,TMPI); 01364 M01S01363.ssmove +++| IF STAT NQ 0 01365 M01S01364.ssmove +++| THEN 01366 M01S01365.ssmove +++| BEGIN 01367 M01S01366.ssmove +++| RPLINE(OUT$FETP,"INCORRECT VALUE - DIRECTIVE IGNORED." 01368 M01S01367.ssmove +++| ,8,35,0); 01369 M01S01368.ssmove +++| FATALERR = TRUE; 01370 M01S01369.ssmove +++| TEST I; 01371 M01S01370.ssmove +++| END 01372 M01S01371.ssmove +++| 01373 M01S01372.ssmove +++| FOR J = LL[1] STEP 1 UNTIL UL[1] 01374 M01S01373.ssmove +++| DO 01375 M01S01374.ssmove +++| BEGIN # J # 01376 M01S01375.ssmove +++| FOR K = LL[2] STEP 1 UNTIL UL[2] 01377 M01S01376.ssmove +++| DO 01378 M01S01377.ssmove +++| BEGIN # K # 01379 M01S01378.ssmove +++| PARM$V[J,K,I] = TMPI; 01380 M01S01379.ssmove +++| END 01381 M01S01380.ssmove +++| 01382 M01S01381.ssmove +++| END # J # 01383 M01S01382.ssmove +++| 01384 M01S01383.ssmove +++| END # I # 01385 M01S01384.ssmove +++| 01386 M01S01385.ssmove +++| TEST DIRNUM; 01387 M01S01386.ssmove +++| END 01388 M01S01387.ssmove +++| 01389 M01S01388.ssmove +++|# 01390 M01S01389.ssmove +++|** PROCESS THE *SF* DIRECTIVE WITHOUT THE *FN* PARAMETER 01391 M01S01390.ssmove +++|* BY SAVING THE OTHER PARAMETERS AS DEFAULTS FOR USE WHEN 01392 M01S01391.ssmove +++|* THE *FN* PARAMETER IS PROVIDED. 01393 M01S01392.ssmove +++|# 01394 M01S01393.ssmove +++| 01395 M01S01394.ssmove +++| P<SFPARM> = ARG$VAL[0]; 01396 M01S01395.ssmove +++| IF SF$I[SFFN] EQ 0 01397 M01S01396.ssmove +++| THEN 01398 M01S01397.ssmove +++| BEGIN # ESTABLISH *SF* DEFAULTS # 01399 M01S01398.ssmove +++| FOR I = 1 STEP 1 UNTIL SFMX 01400 M01S01399.ssmove +++| DO 01401 M01S01400.ssmove +++| BEGIN 01402 M01S01401.ssmove +++| IF SF$I[I] NQ 0 01403 M01S01402.ssmove +++| THEN 01404 M01S01403.ssmove +++| BEGIN 01405 M01S01404.ssmove +++| SFD$I[I] = SF$I[I]; 01406 M01S01405.ssmove +++| END 01407 M01S01406.ssmove +++| 01408 M01S01407.ssmove +++| END 01409 M01S01408.ssmove +++| 01410 M01S01409.ssmove +++| TEST DIRNUM; 01411 M01S01410.ssmove +++| END # ESTABLISH *SF* DEFAULTS # 01412 M01S01411.ssmove +++| 01413 M01S01412.ssmove +++|# 01414 M01S01413.ssmove +++|** PROCESS THE *SF* DIRECTIVE HAVING THE *FN* PARAMETER AS FOLLOWS.. 01415 M01S01414.ssmove +++|* 1) SUBSTITUTE THE DEFAULT PARAMETERS FOR ANY MISSING 01416 M01S01415.ssmove +++|* PARAMETER. DECLARE AN ERROR IF EITHER THE *UI* OR 01417 M01S01416.ssmove +++|* *PO* PARAMETER IS MISSING. 01418 M01S01417.ssmove +++|* 01419 M01S01418.ssmove +++|* 2) IGNORE DIRECTIVE IF THE *UI* OR *PO* PARAMETER IS INVALID. 01420 M01S01419.ssmove +++|* 01421 M01S01420.ssmove +++|* 3) SAVE THE *FN*, *UI*, *PO* VALUES AND THE FILE MASK IN THE 01422 M01S01421.ssmove +++|* ARRAY OF SELECTED FILES. 01423 M01S01422.ssmove +++|# 01424 M01S01423.ssmove +++| 01425 M01S01424.ssmove +++| KEYOK = TRUE; 01426 M01S01425.ssmove +++| FOR I = SFUI STEP 1 UNTIL SFPO 01427 M01S01426.ssmove +++| DO 01428 M01S01427.ssmove +++| BEGIN # STEP 1 # 01429 M01S01428.ssmove +++| IF SF$I[I] EQ 0 01430 M01S01429.ssmove +++| THEN 01431 M01S01430.ssmove +++| BEGIN 01432 M01S01431.ssmove +++| SF$I[I] = SFD$I[I]; 01433 M01S01432.ssmove +++| END 01434 M01S01433.ssmove +++| 01435 M01S01434.ssmove +++| IF SF$I[I] EQ 0 01436 M01S01435.ssmove +++| THEN 01437 M01S01436.ssmove +++| BEGIN 01438 M01S01437.ssmove +++| KEYOK = FALSE; 01439 M01S01438.ssmove +++| END 01440 M01S01439.ssmove +++| 01441 M01S01440.ssmove +++| END # STEP 1 # 01442 M01S01441.ssmove +++| 01443 M01S01442.ssmove +++| STAT = XDXB(SF$C[SFUI],0,TMPI); 01444 M01S01443.ssmove +++| KEYOK = KEYOK AND (STAT EQ 0) AND ## 01445 M01S01444.ssmove +++| (TMPI GR 0) AND (TMPI LQ SYS$UI); 01446 M01S01445.ssmove +++| SFT$UI[0] = TMPI; 01447 M01S01446.ssmove +++| KEY = C<0,1>SF$C[SFPO]; 01448 M01S01447.ssmove +++| IF KEY NQ "A" AND KEY NQ "B" AND KEY NQ "S" ## 01449 M01S01448.ssmove +++| AND KEY NQ "F" AND KEY NQ "X" 01450 M01S01449.ssmove +++| THEN 01451 M01S01450.ssmove +++| BEGIN 01452 M01S01451.ssmove +++| KEYOK = FALSE; 01453 M01S01452.ssmove +++| END 01454 M01S01453.ssmove +++| 01455 M01S01454.ssmove +++| IF NOT KEYOK 01456 M01S01455.ssmove +++| THEN 01457 M01S01456.ssmove +++| BEGIN 01458 M01S01457.ssmove +++| RPLINE(OUT$FETP,"*PO* OR *UI* PARAMETER MISSING OR INVALID" 01459 M01S01458.ssmove +++| ,8,41,0); 01460 M01S01459.ssmove +++| FATALERR = TRUE; 01461 M01S01460.ssmove +++| TEST DIRNUM; 01462 M01S01461.ssmove +++| END 01463 M01S01462.ssmove +++| 01464 M01S01463.ssmove +++| IF IDXFN EQ MXSPF 01465 M01S01464.ssmove +++| THEN 01466 M01S01465.ssmove +++| BEGIN 01467 M01S01466.ssmove +++| RPLINE(OUT$FETP,"TOO MANY FILES SPECIFIED - EXCESS IGNORED." 01468 M01S01467.ssmove +++| ,8,42,0); 01469 M01S01468.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01470 M01S01469.ssmove +++| END 01471 M01S01470.ssmove +++| 01472 M01S01471.ssmove +++| IDXFN = IDXFN+1; 01473 M01S01472.ssmove +++| IF IDXFN GR MXSPF 01474 M01S01473.ssmove +++| THEN 01475 M01S01474.ssmove +++| BEGIN 01476 M01S01475.ssmove +++| TEST DIRNUM; 01477 M01S01476.ssmove +++| END 01478 M01S01477.ssmove +++| 01479 M01S01478.ssmove +++| SFT$FNC[0] = SF$C[SFFN]; 01480 M01S01479.ssmove +++| MASK = -1; 01481 M01S01480.ssmove +++| FOR I = 0 STEP 1 UNTIL 6 01482 M01S01481.ssmove +++| DO 01483 M01S01482.ssmove +++| BEGIN # FIND ASTERISKS IN FILE NAME # 01484 M01S01483.ssmove +++| IF C<I,1>SFT$FNC[0] NQ "*" 01485 M01S01484.ssmove +++| THEN 01486 M01S01485.ssmove +++| BEGIN 01487 M01S01486.ssmove +++| TEST I; 01488 M01S01487.ssmove +++| END 01489 M01S01488.ssmove +++| 01490 M01S01489.ssmove +++| C<I,1>SFT$FNC[0] = MSK77; 01491 M01S01490.ssmove +++| C<I,1>MASK = 0; 01492 M01S01491.ssmove +++| END # FIND ASTERISKS # 01493 M01S01492.ssmove +++| 01494 M01S01493.ssmove +++|# 01495 M01S01494.ssmove +++|* INSERT THE FILE PARAMETERS AND MASK INTO THE ARRAY 01496 M01S01495.ssmove +++|* SUCH THAT THE USER INDEX AND FILE NAME ARE IN ASCENDING ORDER. 01497 M01S01496.ssmove +++|# 01498 M01S01497.ssmove +++| 01499 M01S01498.ssmove +++| FOUND = FALSE; 01500 M01S01499.ssmove +++| SLOWFOR I = IDXFN STEP -1 WHILE (NOT FOUND) 01501 M01S01500.ssmove +++| DO 01502 M01S01501.ssmove +++| BEGIN 01503 M01S01502.ssmove +++| IF (SFT$VAL[0] LS SF$W1[I-1]) AND (I GR 1) 01504 M01S01503.ssmove +++| THEN 01505 M01S01504.ssmove +++| BEGIN 01506 M01S01505.ssmove +++| SF$W1[I] = SF$W1[I-1]; 01507 M01S01506.ssmove +++| SF$W2[I] = SF$W2[I-1]; 01508 M01S01507.ssmove +++| TEST I; 01509 M01S01508.ssmove +++| END 01510 M01S01509.ssmove +++| 01511 M01S01510.ssmove +++| ELSE 01512 M01S01511.ssmove +++| BEGIN 01513 M01S01512.ssmove +++| FOUND = TRUE; 01514 M01S01513.ssmove +++| SF$W1[I] = SFT$VAL[0]; 01515 M01S01514.ssmove +++| SF$PO[I] = KEY; 01516 M01S01515.ssmove +++| SF$MASK[I] = B<0,42>MASK; 01517 M01S01516.ssmove +++| END 01518 M01S01517.ssmove +++| 01519 M01S01518.ssmove +++| END 01520 M01S01519.ssmove +++| 01521 M01S01520.ssmove +++| TEST DIRNUM; 01522 M01S01521.ssmove +++| END # DIRECTIVE PROCESSING # 01523 M01S01522.ssmove +++| 01524 M01S01523.ssmove +++|# 01525 M01S01524.ssmove +++|* IF A FATAL DIRECTIVE ERROR OR DIRECTIVE PARAMETER ERROR 01526 M01S01525.ssmove +++|* HAS OCCURRED THEN ISSUE A DAYFILE MESSAGE AND CONTINUE 01527 M01S01526.ssmove +++|* IN REPORT ONLY MODE. 01528 M01S01527.ssmove +++|# 01529 M01S01528.ssmove +++| 01530 M01S01529.ssmove +++| IF FATALERR 01531 M01S01530.ssmove +++| THEN 01532 M01S01531.ssmove +++| BEGIN 01533 M01S01532.ssmove +++| MVMSG$LN[0] = " DIRECTIVE ERROR - REPORT ONLY."; 01534 M01S01533.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 01535 M01S01534.ssmove +++| PX$A[0] = TRUE; 01536 M01S01535.ssmove +++| PX$B[0] = TRUE; 01537 M01S01536.ssmove +++| PX$F[0] = TRUE; 01538 M01S01537.ssmove +++| PX$S[0] = TRUE; 01539 M01S01538.ssmove +++| END 01540 M01S01539.ssmove +++| 01541 M01S01540.ssmove +++|# 01542 M01S01541.ssmove +++|* WRITE RESULTANT VALUES OF RUN-TIME PARAMETERS. 01543 M01S01542.ssmove +++|# 01544 M01S01543.ssmove +++| 01545 M01S01544.ssmove +++| 01546 M01S01545.ssmove +++|# 01547 M01S01546.ssmove +++|* WRITE HEADER. 01548 M01S01547.ssmove +++|# 01549 M01S01548.ssmove +++| 01550 M01S01549.ssmove +++| RPEJECT(OUT$FETP); 01551 M01S01550.ssmove +++| 01552 M01S01551.ssmove +++| RPLINE(OUT$FETP, ## 01553 M01S01552.ssmove +++| "RUN-TIME PARAMETER VALUES ", ## 01554 M01S01553.ssmove +++| 17,27,0); 01555 M01S01554.ssmove +++| 01556 M01S01555.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01557 M01S01556.ssmove +++| 01558 M01S01557.ssmove +++| RPLINE(OUT$FETP, ## 01559 M01S01558.ssmove +++| " * D E S T A G E * * R E L E A S E *", ## 01560 M01S01559.ssmove +++| 15,42,0); 01561 M01S01560.ssmove +++| 01562 M01S01561.ssmove +++| RPLINE(OUT$FETP, ## 01563 M01S01562.ssmove +++| " DIRECT INDIRECT DIRECT INDIRECT", ## 01564 M01S01563.ssmove +++| 15,42,0); 01565 M01S01564.ssmove +++| 01566 M01S01565.ssmove +++| 01567 M01S01566.ssmove +++|# 01568 M01S01567.ssmove +++|* WRITE PARAMETER VALUES 01569 M01S01568.ssmove +++|# 01570 M01S01569.ssmove +++| 01571 M01S01570.ssmove +++| FOR I = 2 STEP 1 UNTIL NUMDIR 01572 M01S01571.ssmove +++| DO 01573 M01S01572.ssmove +++| BEGIN # I # 01574 M01S01573.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 01575 M01S01574.ssmove +++| P<KWTEXT> = ARG$TEXT[I]; 01576 M01S01575.ssmove +++| RPLINE(OUT$FETP,KWTEXT[1],3,20,0); 01577 M01S01576.ssmove +++| 01578 M01S01577.ssmove +++| KEY = ARG$KEY[I]; 01579 M01S01578.ssmove +++| P<XXARG> = ARG$TAB[I]+5; 01580 M01S01579.ssmove +++| P<PARM> = ARG$VAL[I]; 01581 M01S01580.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 01582 M01S01581.ssmove +++| RPLINE(OUT$FETP,KEY,8,2,1); # PRINT DIRECTIVE KEY # 01583 M01S01582.ssmove +++| 01584 M01S01583.ssmove +++| FOR J = 1 STEP 1 UNTIL ARG$MX[I] 01585 M01S01584.ssmove +++| DO 01586 M01S01585.ssmove +++| BEGIN # J # 01587 M01S01586.ssmove +++| KEY = XX$KEY[J]; 01588 M01S01587.ssmove +++| IF XX$C2[J] EQ 0 01589 M01S01588.ssmove +++| THEN # SPACE FILL KEY # 01590 M01S01589.ssmove +++| BEGIN 01591 M01S01590.ssmove +++| C<1,1>KEY = " "; 01592 M01S01591.ssmove +++| END 01593 M01S01592.ssmove +++| 01594 M01S01593.ssmove +++| COL = 16; # STARTING COLUMN FOR PARAMETER 01595 M01S01594.ssmove +++| VALUES # 01596 M01S01595.ssmove +++| FOR K = 1 STEP 1 UNTIL 2 01597 M01S01596.ssmove +++| DO 01598 M01S01597.ssmove +++| BEGIN # K # 01599 M01S01598.ssmove +++| FOR L = 1 STEP 1 UNTIL 2 01600 M01S01599.ssmove +++| DO 01601 M01S01600.ssmove +++| BEGIN # L # 01602 M01S01601.ssmove +++| TMPI = PARM$V[L,K,J]; 01603 M01S01602.ssmove +++| CHR$10[0] = XCDD(TMPI); # CONVERT VALUE TO DECIMAL # 01604 M01S01603.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],COL,8,1); # PRINT VALUE # 01605 M01S01604.ssmove +++| COL = COL + 11; # MOVE TO NEXT COLUMN # 01606 M01S01605.ssmove +++| END # L # 01607 M01S01606.ssmove +++| 01608 M01S01607.ssmove +++| END # K # 01609 M01S01608.ssmove +++| 01610 M01S01609.ssmove +++| RPLINE(OUT$FETP,KEY,12,2,0); # PRINT PARAM KEY AND VALUES # 01611 M01S01610.ssmove +++| END # J # 01612 M01S01611.ssmove +++| 01613 M01S01612.ssmove +++| END # I # 01614 M01S01613.ssmove +++| 01615 M01S01614.ssmove +++| END # MVDIR # 01616 M01S01615.ssmove +++| 01617 M01S01616.ssmove +++| TERM 01618 M01S01617.ssmove +++|PROC MVDOIT; 01619 M01S01618.ssmove +++|# TITLE MVDOIT - PERFORM SELECTED PROCESSING. # 01620 M01S01619.ssmove +++| 01621 M01S01620.ssmove +++| BEGIN # MVDOIT # 01622 M01S01621.ssmove +++| 01623 M01S01622.ssmove +++|# 01624 M01S01623.ssmove +++|** MVDOIT - PERFORM SELECTED PROCESSING. 01625 M01S01624.ssmove +++|* 01626 M01S01625.ssmove +++|* THIS PROCEDURE ISSUES THE CALLS TO STAGE A FILE, CLEAR 01627 M01S01626.ssmove +++|* AN *ASA*, AND DROP DISK SPACE. 01628 M01S01627.ssmove +++|* 01629 M01S01628.ssmove +++|* PROC MVDOIT. 01630 M01S01629.ssmove +++|* 01631 M01S01630.ssmove +++|* ENTRY. PROCESSING ACTION FLAGS ARE SET IN ARRAY 01632 M01S01631.ssmove +++|* *EXT$TDAM*. 01633 M01S01632.ssmove +++|* 01634 M01S01633.ssmove +++|* EXIT. SELECTED PROCESSING OCCURS OR ERRORS ARE 01635 M01S01634.ssmove +++|* PROCESSED. 01636 M01S01635.ssmove +++|* 01637 M01S01636.ssmove +++|* NOTES. 1) IF THE FILE IS TO BE STAGED, A CALL IS MADE TO 01638 M01S01637.ssmove +++|* *CALPFU* TO STAGE THE FILE. 01639 M01S01638.ssmove +++|* 01640 M01S01639.ssmove +++|* 2) IF THE FILE-S *ASA* IS TO BE CLEARED, A CALL IS 01641 M01S01640.ssmove +++|* MADE TO *SETAF* TO CLEAR THE *ASA* IN THE FILE-S 01642 M01S01641.ssmove +++|* *PFC* ENTRY. 01643 M01S01642.ssmove +++|* 01644 M01S01643.ssmove +++|* 3) IF THE FILE IS TO BE RELEASED *DROPDS* (FOR 01645 M01S01644.ssmove +++|* DIRECT ACCESS FILES) OR *DROPIDS* ( FOR 01646 M01S01645.ssmove +++|* INDIRECT ACCESS FILES) IS CALLED TO RELEASE 01647 M01S01646.ssmove +++|* THE DISK SPACE FOR THE FILE. 01648 M01S01647.ssmove +++|# 01649 M01S01648.ssmove +++| 01650 M01S01649.ssmove +++|# 01651 M01S01650.ssmove +++|**** PROC MVDOIT - XREF LIST BEGIN. 01652 M01S01651.ssmove +++|# 01653 M01S01652.ssmove +++| 01654 M01S01653.ssmove +++| XREF 01655 M01S01654.ssmove +++| BEGIN 01656 M01S01655.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 01657 M01S01656.ssmove +++| PROC CALPFU; # CALL *PFU* TO STAGE FILE # 01658 M01S01657.ssmove +++| PROC DROPDS; # DROP DIRECT FILE DISK SPACE # 01659 M01S01658.ssmove +++| PROC DROPIDS; # DROP INDIRECT FILE DISK SPACE # 01660 M01S01659.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 01661 M01S01660.ssmove +++| PROC MVERRP; # PROCESS *SSMOVE* ERRORS # 01662 M01S01661.ssmove +++| PROC RECALL; # RECALL # 01663 M01S01662.ssmove +++| PROC RETERN; # RETURN FILE # 01664 M01S01663.ssmove +++| PROC SETAF; # SET ALTERNATE STORAGE ADDRESS # 01665 M01S01664.ssmove +++| PROC UATTACH; # UTILITY ATTACH # 01666 M01S01665.ssmove +++| PROC UGET; # UTILITY GET # 01667 M01S01666.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 01668 M01S01667.ssmove +++| END 01669 M01S01668.ssmove +++| 01670 M01S01669.ssmove +++|# 01671 M01S01670.ssmove +++|**** PROC MVDOIT - XREF LIST END. 01672 M01S01671.ssmove +++|# 01673 M01S01672.ssmove +++| 01674 M01S01673.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01675 M01S01674.ssmove +++| 01676 M01S01675.ssmove +++|*CALL COMBFAS 01677 M01S01676.ssmove +++|*CALL COMBBZF 01678 M01S01677.ssmove +++|*CALL COMBTDM 01679 M01S01678.ssmove +++|*CALL COMSPFM 01680 M01S01679.ssmove +++|*CALL COMTMOV 01681 M01S01680.ssmove +++| 01682 M01S01681.ssmove +++| DEF ZEROASA #0#; # ZERO *ASA* # 01683 M01S01682.ssmove +++| 01684 M01S01683.ssmove +++| ITEM CTSR U; # STAGE REQUEST # 01685 M01S01684.ssmove +++| ITEM FAMILY C(10); # FAMILY NAME # 01686 M01S01685.ssmove +++| ITEM FILENAME C(10); # FILE NAME # 01687 M01S01686.ssmove +++| ITEM FLAG I; # ERROR FLAG # 01688 M01S01687.ssmove +++| ITEM I I; # LOOP VARIABLE # 01689 M01S01688.ssmove +++| ITEM J I; # LOOP VARIABLE # 01690 M01S01689.ssmove +++| ITEM LFN C(10); # LOCAL FILE NAME # 01691 M01S01690.ssmove +++| ITEM MORE B; # ISSUE STAGE REQUEST AGAIN # 01692 M01S01691.ssmove +++| ITEM UFLAG I; # UTILITY ERROR FLAG # 01693 M01S01692.ssmove +++| 01694 M01S01693.ssmove +++| ARRAY DOIT$PFC[0:0]S(PFCENTL);; # PFC INFORMATION FOR *PFU* # 01695 M01S01694.ssmove +++| 01696 M01S01695.ssmove +++| ARRAY STG$REQ [0:0] S(5); # STAGE REQUEST INFORMATION # 01697 M01S01696.ssmove +++| BEGIN 01698 M01S01697.ssmove +++| ITEM STG$FAM C(00,00,07); # FAMILY NAME # 01699 M01S01698.ssmove +++| ITEM STG$DN U(01,54,06); # DEVICE NUMBER # 01700 M01S01699.ssmove +++| ITEM STG$TN U(02,48,12); # TRACK NUMBER # 01701 M01S01700.ssmove +++| ITEM STG$SN U(03,48,12); # SECTOR NUMBER # 01702 M01S01701.ssmove +++| ITEM STG$PEO U(04,58,02); # PFC ENTRY ORDINAL # 01703 M01S01702.ssmove +++| END 01704 M01S01703.ssmove +++| 01705 M01S01704.ssmove +++| ARRAY SG$CW [0:0] S(1); # STAGE REQUEST CONTROL WORD # 01706 M01S01705.ssmove +++| BEGIN 01707 M01S01706.ssmove +++| ITEM SG$WORD U(00,00,60); # STAGE CONTROL WORD # 01708 M01S01707.ssmove +++| ITEM SG$PE U(00,00,18); # PFC ENTRY IMAGE # 01709 M01S01708.ssmove +++| ITEM SG$REQ U(00,18,18); # INFORMATION LIST # 01710 M01S01709.ssmove +++| ITEM SG$STAT U(00,36,24); # STATUS # 01711 M01S01710.ssmove +++| ITEM SG$ERR U(00,36,12); # ERROR STATUS # 01712 M01S01711.ssmove +++| ITEM SG$COMP U(00,59,01); # REQUEST COMPLETE # 01713 M01S01712.ssmove +++| END 01714 M01S01713.ssmove +++| 01715 M01S01714.ssmove +++| ARRAY ERRMSG [0:0] P(3);; # *PFM* ERROR MESSAGE # 01716 M01S01715.ssmove +++| 01717 M01S01716.ssmove +++| CONTROL EJECT; 01718 M01S01717.ssmove +++| 01719 M01S01718.ssmove +++|# 01720 M01S01719.ssmove +++|* IF THE FILE IS TO BE STAGED, SET UP THE STAGE REQUEST 01721 M01S01720.ssmove +++|* ARRAYS. CALL *CALPFU* TO STAGE THE FILE. 01722 M01S01721.ssmove +++|# 01723 M01S01722.ssmove +++| 01724 M01S01723.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 01725 M01S01724.ssmove +++| P<PFC> = LOC(DOIT$PFC[0]); 01726 M01S01725.ssmove +++| ZFILL(SG$CW,1); 01727 M01S01726.ssmove +++| MORE = TRUE; 01728 M01S01727.ssmove +++| 01729 M01S01728.ssmove +++| IF EXT$STG[0] 01730 M01S01729.ssmove +++| THEN 01731 M01S01730.ssmove +++| BEGIN # STAGE FILE # 01732 M01S01731.ssmove +++| IF EXT$CLR[0] 01733 M01S01732.ssmove +++| THEN # HAVE *STAGER* CLEAR *ASA* # 01734 M01S01733.ssmove +++| BEGIN 01735 M01S01734.ssmove +++| TDAMFFF[0] = TRUE; 01736 M01S01735.ssmove +++| END 01737 M01S01736.ssmove +++| 01738 M01S01737.ssmove +++| STG$FAM[0] = TDAMFAM[0]; 01739 M01S01738.ssmove +++| STG$DN[0] = TDAMDN[0]; 01740 M01S01739.ssmove +++| STG$TN[0] = TDAMTRACK[0]; 01741 M01S01740.ssmove +++| STG$SN[0] = TDAMSECTOR[0]; 01742 M01S01741.ssmove +++| STG$PEO[0] = TDAMPEO[0]; 01743 M01S01742.ssmove +++| SG$WORD = 1; 01744 M01S01743.ssmove +++| PFC$AFFRE[0] = TDAMFFF[0]; 01745 M01S01744.ssmove +++| PFC$AA[0] = TDAMASA[0]; 01746 M01S01745.ssmove +++| PFC$AT[0] = TDAMAT[0]; 01747 M01S01746.ssmove +++| PFC$FN[0] = TDAMPFN[0]; 01748 M01S01747.ssmove +++| PFC$UI[0] = TDAMUI[0]; 01749 M01S01748.ssmove +++| PFC$CD[0] = TDAMCDT[0]; 01750 M01S01749.ssmove +++| PFC$DA[0] = NOT TDAMIA[0]; 01751 M01S01750.ssmove +++| 01752 M01S01751.ssmove +++| IF PFC$DA[0] 01753 M01S01752.ssmove +++| THEN 01754 M01S01753.ssmove +++| BEGIN 01755 M01S01754.ssmove +++| PFC$LF[0] = TDAMFLN[0] + 1; 01756 M01S01755.ssmove +++| END 01757 M01S01756.ssmove +++| 01758 M01S01757.ssmove +++| ELSE 01759 M01S01758.ssmove +++| BEGIN 01760 M01S01759.ssmove +++| PFC$LF[0] = TDAMFLN[0]; 01761 M01S01760.ssmove +++| END 01762 M01S01761.ssmove +++| 01763 M01S01762.ssmove +++| SG$PE[0] = LOC(PFC[0]); 01764 M01S01763.ssmove +++| SG$REQ[0] = LOC(STG$REQ[0]); 01765 M01S01764.ssmove +++|MVDOIT1: 01766 M01S01765.ssmove +++| 01767 M01S01766.ssmove +++| REPEAT WHILE SG$COMP EQ 0 01768 M01S01767.ssmove +++| DO 01769 M01S01768.ssmove +++| BEGIN 01770 M01S01769.ssmove +++| RECALL; # WAIT FOR REQUEST TO COMPLETE # 01771 M01S01770.ssmove +++| END 01772 M01S01771.ssmove +++| 01773 M01S01772.ssmove +++| CALPFU(SG$CW,CTSR); 01774 M01S01773.ssmove +++| IF SG$ERR[0] EQ 0 01775 M01S01774.ssmove +++| THEN 01776 M01S01775.ssmove +++| BEGIN 01777 M01S01776.ssmove +++| GOTO MVDOIT2; 01778 M01S01777.ssmove +++| END 01779 M01S01778.ssmove +++| 01780 M01S01779.ssmove +++| ELSE 01781 M01S01780.ssmove +++| BEGIN 01782 M01S01781.ssmove +++| SG$STAT[0] = 1; 01783 M01S01782.ssmove +++| GOTO MVDOIT1; 01784 M01S01783.ssmove +++| END 01785 M01S01784.ssmove +++| 01786 M01S01785.ssmove +++| END # STAGE FILE # 01787 M01S01786.ssmove +++| 01788 M01S01787.ssmove +++|MVDOIT2: 01789 M01S01788.ssmove +++| 01790 M01S01789.ssmove +++|# 01791 M01S01790.ssmove +++|* CLEAR THE *ASA* BY "SETTING" THE *AFOBS* FLAG. 01792 M01S01791.ssmove +++|# 01793 M01S01792.ssmove +++| 01794 M01S01793.ssmove +++| IF EXT$CLR[0] AND NOT EXT$STG[0] 01795 M01S01794.ssmove +++| THEN 01796 M01S01795.ssmove +++| BEGIN 01797 M01S01796.ssmove +++| FILENAME = TDAMPFN[0]; 01798 M01S01797.ssmove +++| BZFILL(FILENAME,TYPFILL"ZFILL",10); 01799 M01S01798.ssmove +++| 01800 M01S01799.ssmove +++| LFN = MVULFN; 01801 M01S01800.ssmove +++| BZFILL(LFN,TYPFILL"ZFILL",10); 01802 M01S01801.ssmove +++| 01803 M01S01802.ssmove +++| FAMILY = TDAMFAM[0]; 01804 M01S01803.ssmove +++| BZFILL(FAMILY,TYPFILL"ZFILL",10); 01805 M01S01804.ssmove +++| 01806 M01S01805.ssmove +++| SETAF(LFN,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], 01807 M01S01806.ssmove +++| TDAMASI[0],TDAMCDT[0],AFOBS,LOC(ERRMSG)); 01808 M01S01807.ssmove +++| 01809 M01S01808.ssmove +++| RETERN(MVULFN,RCL); 01810 M01S01809.ssmove +++| END # CLEAR ASA # 01811 M01S01810.ssmove +++| 01812 M01S01811.ssmove +++|# 01813 M01S01812.ssmove +++|* IF THE FILE IS TO BE RELEASED FROM DISK, 01814 M01S01813.ssmove +++|* CALL *DROPDS* FOR DIRECT ACCESS FILES OR *DROPIDS* FOR 01815 M01S01814.ssmove +++|* INDIRECT ACCESS FILES TO RELEASE THE DISK SPACE FOR THE FILE. 01816 M01S01815.ssmove +++|# 01817 M01S01816.ssmove +++| 01818 M01S01817.ssmove +++| IF EXT$REL[0] 01819 M01S01818.ssmove +++| THEN 01820 M01S01819.ssmove +++| BEGIN # RELEASE DISK SPACE # 01821 M01S01820.ssmove +++| FILENAME = TDAMPFN[0]; 01822 M01S01821.ssmove +++| BZFILL(FILENAME,TYPFILL"ZFILL",10); 01823 M01S01822.ssmove +++| FAMILY = TDAMFAM[0]; 01824 M01S01823.ssmove +++| BZFILL(FAMILY,TYPFILL"ZFILL",10); 01825 M01S01824.ssmove +++| 01826 M01S01825.ssmove +++| IF NOT TDAMIA[0] 01827 M01S01826.ssmove +++| THEN # RELEASE DIRECT FILE DISK SPACE # 01828 M01S01827.ssmove +++| BEGIN 01829 M01S01828.ssmove +++| DROPDS(FILENAME,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], ## 01830 M01S01829.ssmove +++| TDAMASI[0],TDAMCDT[0],LOC(ERRMSG)); 01831 M01S01830.ssmove +++| END 01832 M01S01831.ssmove +++| 01833 M01S01832.ssmove +++| ELSE # RELEASE INDIRECT FILE DISK SPACE 01834 M01S01833.ssmove +++| # 01835 M01S01834.ssmove +++| BEGIN 01836 M01S01835.ssmove +++| DROPIDS(FILENAME,FLAG,6,TDAMUI[0],FAMILY,TDAMPFID[0], 01837 M01S01836.ssmove +++| TDAMASI[0],TDAMCDT[0],LOC(ERRMSG)); 01838 M01S01837.ssmove +++| END 01839 M01S01838.ssmove +++| 01840 M01S01839.ssmove +++| END # RELEASE DISK SPACE # 01841 M01S01840.ssmove +++| 01842 M01S01841.ssmove +++|# 01843 M01S01842.ssmove +++|* IF *SETAF*, *DROPDS*, OR *DROPIDS* RETURNED A NON-ZERO 01844 M01S01843.ssmove +++|* STATUS, CALL PROCEDURE *MVERRP* TO WRITE THE TDAM TO THE 01845 M01S01844.ssmove +++|* LOCAL PROBLEM FILE. 01846 M01S01845.ssmove +++|# 01847 M01S01846.ssmove +++| 01848 M01S01847.ssmove +++| IF FLAG NQ 0 01849 M01S01848.ssmove +++| THEN 01850 M01S01849.ssmove +++| BEGIN 01851 M01S01850.ssmove +++| MVERRP; 01852 M01S01851.ssmove +++| END 01853 M01S01852.ssmove +++| 01854 M01S01853.ssmove +++| END # MVDOIT # 01855 M01S01854.ssmove +++| 01856 M01S01855.ssmove +++| TERM 01857 M01S01856.ssmove +++|PROC MVERRP; 01858 M01S01857.ssmove +++|# TITLE MVERRP - PROCESS ERRORS. # 01859 M01S01858.ssmove +++| 01860 M01S01859.ssmove +++| BEGIN # MVERRP # 01861 M01S01860.ssmove +++| 01862 M01S01861.ssmove +++|# 01863 M01S01862.ssmove +++|** MVERRP - *SSMOVE* ERROR PROCESSOR. 01864 M01S01863.ssmove +++|* 01865 M01S01864.ssmove +++|* THIS PROCEDURE PROCESSES ANY ERRORS RESULTING FROM A 01866 M01S01865.ssmove +++|* CLEAR ASA, OR RELEASE REQUEST BY WRITING THE TDAM TO A FILE 01867 M01S01866.ssmove +++|* OF PROBLEMS. 01868 M01S01867.ssmove +++|* 01869 M01S01868.ssmove +++|* PROC MVERRP. 01870 M01S01869.ssmove +++|# 01871 M01S01870.ssmove +++| 01872 M01S01871.ssmove +++|# 01873 M01S01872.ssmove +++|**** PROC MVERRP - XREF LIST BEGIN. 01874 M01S01873.ssmove +++|# 01875 M01S01874.ssmove +++| 01876 M01S01875.ssmove +++| XREF 01877 M01S01876.ssmove +++| BEGIN 01878 M01S01877.ssmove +++| PROC WRITEW; # WRITE RECORD TO FILE BUFFER # 01879 M01S01878.ssmove +++| END 01880 M01S01879.ssmove +++| 01881 M01S01880.ssmove +++|# 01882 M01S01881.ssmove +++|**** PROC MVERRP - XREF LIST END. 01883 M01S01882.ssmove +++|# 01884 M01S01883.ssmove +++| 01885 M01S01884.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01886 M01S01885.ssmove +++| 01887 M01S01886.ssmove +++|*CALL COMBFAS 01888 M01S01887.ssmove +++|*CALL COMBTDM 01889 M01S01888.ssmove +++|*CALL COMTMOV 01890 M01S01889.ssmove +++| 01891 M01S01890.ssmove +++| ITEM FLAG I; # ERROR FLAG # 01892 M01S01891.ssmove +++| 01893 M01S01892.ssmove +++| CONTROL EJECT; 01894 M01S01893.ssmove +++| 01895 M01S01894.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 01896 M01S01895.ssmove +++| WRITEW(MV$FET[FILEAUX],MV$WBUF[0],TDAMLEN,FLAG); 01897 M01S01896.ssmove +++| 01898 M01S01897.ssmove +++| RETURN; 01899 M01S01898.ssmove +++| 01900 M01S01899.ssmove +++| END # MVERRP # 01901 M01S01900.ssmove +++| 01902 M01S01901.ssmove +++| TERM 01903 M01S01902.ssmove +++|PROC MVHEAD((FETP)); 01904 M01S01903.ssmove +++|# TITLE MVHEAD - PRINTS HEADER ON *SSMOVE* REPORT FILE. # 01905 M01S01904.ssmove +++| 01906 M01S01905.ssmove +++| BEGIN # MVHEAD # 01907 M01S01906.ssmove +++| 01908 M01S01907.ssmove +++|# 01909 M01S01908.ssmove +++|** MVHEAD - PRINTS HEADER ON *SSMOVE* REPORT FILE. 01910 M01S01909.ssmove +++|* 01911 M01S01910.ssmove +++|* PROC MVHEAD((FETP)). 01912 M01S01911.ssmove +++|* 01913 M01S01912.ssmove +++|* ENTRY. (FETP) = FWA OF FET. 01914 M01S01913.ssmove +++|* 01915 M01S01914.ssmove +++|* EXIT. HEADER PRINTED. 01916 M01S01915.ssmove +++|* 01917 M01S01916.ssmove +++|* NOTES. REPORT FORMATTER IS USED TO PRINT THE HEADER LINE. 01918 M01S01917.ssmove +++|* THE CONTROL CARD IMAGE IS WRITTEN TO THE 01919 M01S01918.ssmove +++|* REPORT FILE ON THE FIRST EXECUTION OF THE PROC. 01920 M01S01919.ssmove +++|# 01921 M01S01920.ssmove +++| 01922 M01S01921.ssmove +++| ITEM FETP I; # FWA OF FET # 01923 M01S01922.ssmove +++| 01924 M01S01923.ssmove +++|# 01925 M01S01924.ssmove +++|**** PROC MVHEAD - XREF LIST BEGIN. 01926 M01S01925.ssmove +++|# 01927 M01S01926.ssmove +++| 01928 M01S01927.ssmove +++| XREF 01929 M01S01928.ssmove +++| BEGIN 01930 M01S01929.ssmove +++| PROC BZFILL; # BLANK OR ZERO FILLS A BUFFER # 01931 M01S01930.ssmove +++| PROC RPLINEX; # WRITES A REPORT LINE # 01932 M01S01931.ssmove +++| END 01933 M01S01932.ssmove +++| 01934 M01S01933.ssmove +++|# 01935 M01S01934.ssmove +++|**** PROC MVHEAD - XREF LIST END. 01936 M01S01935.ssmove +++|# 01937 M01S01936.ssmove +++| 01938 M01S01937.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 01939 M01S01938.ssmove +++|*CALL,COMBFAS 01940 M01S01939.ssmove +++|*CALL COMBSIT 01941 M01S01940.ssmove +++|*CALL,COMBBZF 01942 M01S01941.ssmove +++| 01943 M01S01942.ssmove +++| ITEM FIRST B = TRUE; # FIRST EXECUTION OF PROC # 01944 M01S01943.ssmove +++| 01945 M01S01944.ssmove +++| BASED 01946 M01S01945.ssmove +++| ARRAY RA [0:0];; # TO ACCESS RA AREA # 01947 M01S01946.ssmove +++| 01948 M01S01947.ssmove +++| CONTROL EJECT; 01949 M01S01948.ssmove +++| 01950 M01S01949.ssmove +++|# 01951 M01S01950.ssmove +++|* PRINT THE HEADER. 01952 M01S01951.ssmove +++|# 01953 M01S01952.ssmove +++| 01954 M01S01953.ssmove +++| RPLINEX(FETP,"SSMOVE REPORT.",2,14,0); 01955 M01S01954.ssmove +++| RPLINEX(FETP," ",1,1,0); 01956 M01S01955.ssmove +++| 01957 M01S01956.ssmove +++| IF FIRST 01958 M01S01957.ssmove +++| THEN # WRITE CONTROL CARD IMAGE # 01959 M01S01958.ssmove +++| BEGIN 01960 M01S01959.ssmove +++| FIRST = FALSE; 01961 M01S01960.ssmove +++| P<RA> = 0; 01962 M01S01961.ssmove +++| BZFILL(RA[O"70"],TYPFILL"BFILL",80); 01963 M01S01962.ssmove +++| RPLINEX(FETP,RA[O"70"],2,80,0); 01964 M01S01963.ssmove +++| RPLINEX(FETP," ",1,1,0); 01965 M01S01964.ssmove +++| END 01966 M01S01965.ssmove +++| 01967 M01S01966.ssmove +++| RETURN; 01968 M01S01967.ssmove +++| 01969 M01S01968.ssmove +++| END # MVHEAD # 01970 M01S01969.ssmove +++| 01971 M01S01970.ssmove +++| TERM 01972 M01S01971.ssmove +++|PROC MVINDEV; 01973 M01S01972.ssmove +++|# TITLE MVINDEV - INITIALIZE *DEVSTAT* ARRAY. # 01974 M01S01973.ssmove +++| BEGIN # MVINDEV # 01975 M01S01974.ssmove +++| 01976 M01S01975.ssmove +++|# 01977 M01S01976.ssmove +++|** MVINDEV - INITIALIZE *DEVSTAT* ARRAY. 01978 M01S01977.ssmove +++|* 01979 M01S01978.ssmove +++|* *MVINDEV* INITIALIZES TABLE ENTRIES FOR EACH PERMANENT FILE 01980 M01S01979.ssmove +++|* DEVICE BELONGING TO THE FAMILY BEING ANALYZED. 01981 M01S01980.ssmove +++|* 01982 M01S01981.ssmove +++|* ARRAYS *DNTODNX*, *SFSTAT* AND *DEVSTAT* ARE ALL ZEROED. 01983 M01S01982.ssmove +++|* 01984 M01S01983.ssmove +++|* ARRAY *DNTODNX* IS INITIALIZED SO THAT *DNX = DN$TO$DNX[DN]* 01985 M01S01984.ssmove +++|* CAN BE USED TO DETERMINE THE INDEX FOR A DEVICE GIVEN ITS 01986 M01S01985.ssmove +++|* DEVICE NUMBER. 01987 M01S01986.ssmove +++|* 01988 M01S01987.ssmove +++|* ARRAY *DEVSTAT* IS INITIALIZED TO CONTAIN INFORMATION 01989 M01S01988.ssmove +++|* OBTAINED FROM THE *EST* AND *MST* ENTRIES FOR EACH DEVICE. 01990 M01S01989.ssmove +++|* 01991 M01S01990.ssmove +++|* PROC MVINDEV. 01992 M01S01991.ssmove +++|* 01993 M01S01992.ssmove +++|* ENTRY. MVARG$FM[0] IDENTIFIES THE FAMILY TO BE ANALYZED 01994 M01S01993.ssmove +++|* BY THIS *SSMOVE* RUN. 01995 M01S01994.ssmove +++|* 01996 M01S01995.ssmove +++|* EXIT. ARRAYS *DNTODNX, *SFSTAT* AND *DEVSTAT* ARE 01997 M01S01996.ssmove +++|* INITIALIZED. 01998 M01S01997.ssmove +++|* 01999 M01S01998.ssmove +++|* MESSAGES. *MAXDEV* TOO SMALL. 02000 M01S01999.ssmove +++|# 02001 M01S02000.ssmove +++| 02002 M01S02001.ssmove +++|# 02003 M01S02002.ssmove +++|**** PROC MVINDEV - XREF LIST BEGIN. 02004 M01S02003.ssmove +++|# 02005 M01S02004.ssmove +++| 02006 M01S02005.ssmove +++| XREF 02007 M01S02006.ssmove +++| BEGIN 02008 M01S02007.ssmove +++| PROC GETMST; # GETS DATA FROM *EST* AND *MST* 02009 M01S02008.ssmove +++| ENTRIES # 02010 M01S02009.ssmove +++| PROC MESSAGE; # DISPLAYS MESSAGE IN DAYFILE # 02011 M01S02010.ssmove +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 02012 M01S02011.ssmove +++| OR RETURN # 02013 M01S02012.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 02014 M01S02013.ssmove +++| END 02015 M01S02014.ssmove +++| 02016 M01S02015.ssmove +++|# 02017 M01S02016.ssmove +++|**** PROC MVINDEV - XREF LIST END. 02018 M01S02017.ssmove +++|# 02019 M01S02018.ssmove +++| 02020 M01S02019.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02021 M01S02020.ssmove +++|*CALL,COMBFAS 02022 M01S02021.ssmove +++|*CALL,COMTMOV 02023 M01S02022.ssmove +++|*CALL,COMTMVP 02024 M01S02023.ssmove +++| 02025 M01S02024.ssmove +++| ITEM DEVERR B; # INVALID DEVICE SPECIFIED # 02026 M01S02025.ssmove +++| ITEM DN I; # DEVICE NUMBER # 02027 M01S02026.ssmove +++| ITEM ESTX I; # INDEX TO NEXT *EST* ENTRY # 02028 M01S02027.ssmove +++| ITEM FAM C(7); # FAMILY FROM *MST* # 02029 M01S02028.ssmove +++| ITEM MASKP I; # PRIMARY MASK FROM *MST* # 02030 M01S02029.ssmove +++| ITEM MASKS I; # SECONDARY MASK FROM *MST* # 02031 M01S02030.ssmove +++| ITEM NUM I; # NUMBER OF DRIVES FOR THIS DEVICE 02032 M01S02031.ssmove +++| # 02033 M01S02032.ssmove +++| ITEM SECT I; # PRUS PER TRACK # 02034 M01S02033.ssmove +++| ITEM STAT I; # STATUS FROM *GETMST* # 02035 M01S02034.ssmove +++| ITEM TPRU I; # TOTAL PRU FOR A DEVICE # 02036 M01S02035.ssmove +++| ITEM TYPE C(2); # DEVICE TYPE # 02037 M01S02036.ssmove +++| 02038 M01S02037.ssmove +++| CONTROL EJECT; 02039 M01S02038.ssmove +++| 02040 M01S02039.ssmove +++|# 02041 M01S02040.ssmove +++|* INITIALIZE THE VARIOUS ARRAYS TO ZERO. 02042 M01S02041.ssmove +++|# 02043 M01S02042.ssmove +++| 02044 M01S02043.ssmove +++| ZFILL(DEVSTAT,8*MAXDEV); 02045 M01S02044.ssmove +++| ZFILL(SF$STAT,10*MAXSF); 02046 M01S02045.ssmove +++| ZFILL(DNTODNX,64); 02047 M01S02046.ssmove +++| 02048 M01S02047.ssmove +++| DNX = 1; 02049 M01S02048.ssmove +++| DEVERR = TRUE; 02050 M01S02049.ssmove +++| 02051 M01S02050.ssmove +++|# 02052 M01S02051.ssmove +++|* LOOK AT EACH *EST* AND CORRESPONDING *MST* ENTRY TO 02053 M01S02052.ssmove +++|* FIND DEVICES BELONGING TO THE FAMILY BEING ANALYZED. 02054 M01S02053.ssmove +++|# 02055 M01S02054.ssmove +++| 02056 M01S02055.ssmove +++| SLOWFOR ESTX = 1 STEP 1 WHILE STAT GQ 0 02057 M01S02056.ssmove +++| DO 02058 M01S02057.ssmove +++| BEGIN # ANALYZE EACH *EST* AND *MST* ENTRY # 02059 M01S02058.ssmove +++| GETMST(ESTX,STAT,TYPE,FAM,DN,NUM,TPRU,SECT,MASKP,MASKS); 02060 M01S02059.ssmove +++| 02061 M01S02060.ssmove +++| IF STAT NQ 0 OR ## 02062 M01S02061.ssmove +++| FAM NQ MVARG$FM[0] 02063 M01S02062.ssmove +++| THEN 02064 M01S02063.ssmove +++| BEGIN 02065 M01S02064.ssmove +++| TEST ESTX; 02066 M01S02065.ssmove +++| END 02067 M01S02066.ssmove +++| 02068 M01S02067.ssmove +++| IF DNX GR MAXDEV 02069 M01S02068.ssmove +++| THEN 02070 M01S02069.ssmove +++| BEGIN 02071 M01S02070.ssmove +++| MESSAGE(" *MAXDEV* TOO SMALL "); 02072 M01S02071.ssmove +++| TEST ESTX; 02073 M01S02072.ssmove +++| END 02074 M01S02073.ssmove +++| 02075 M01S02074.ssmove +++| IF MVARG$DN[0] NQ 0 ## 02076 M01S02075.ssmove +++| AND MVARG$DN[0] EQ DN 02077 M01S02076.ssmove +++| THEN # SPECIFIED DEVICE FOUND # 02078 M01S02077.ssmove +++| BEGIN 02079 M01S02078.ssmove +++| DEVERR = FALSE; 02080 M01S02079.ssmove +++| END 02081 M01S02080.ssmove +++| 02082 M01S02081.ssmove +++|# 02083 M01S02082.ssmove +++|* FOR EACH DEVICE, ESTABLISH THE INDEX (*DN$TO$DNX[DN]*) FOR 02084 M01S02083.ssmove +++|* THE DISKS DEVICE NUMBER FIELD IN THE CORRESPONDING *DEVSTAT* 02085 M01S02084.ssmove +++|* ENTRY. 02086 M01S02085.ssmove +++|# 02087 M01S02086.ssmove +++| 02088 M01S02087.ssmove +++| DN$TO$DNX[DN] = DNX; 02089 M01S02088.ssmove +++| DEV$EO[IXIA,DNX] = ESTX; 02090 M01S02089.ssmove +++| DEV$TPRU[IXIA,DNX] = TPRU; 02091 M01S02090.ssmove +++| DEV$TYPE[IXIA,DNX] = TYPE; 02092 M01S02091.ssmove +++| DEV$NUM[IXIA,DNX] = NUM; 02093 M01S02092.ssmove +++| DEV$MAST[IXIA,DNX] = MASKP NQ 0; 02094 M01S02093.ssmove +++| DEV$SEC[IXIA,DNX] = MASKS NQ 0; 02095 M01S02094.ssmove +++| DEV$DN[IXIA,DNX] = DN; 02096 M01S02095.ssmove +++| DEV$SECTR[IXDA,DNX] = SECT; 02097 M01S02096.ssmove +++| DEV$EXIST[IXIA,DNX] = TRUE; 02098 M01S02097.ssmove +++| DNX = DNX+1; 02099 M01S02098.ssmove +++| TEST ESTX; 02100 M01S02099.ssmove +++| END # ANALYZE EACH *EST* AND *MST* ENTRY # 02101 M01S02100.ssmove +++| 02102 M01S02101.ssmove +++|# 02103 M01S02102.ssmove +++|* ABORT WITH MESSAGE IF INVALID DEVICE SPECIFIED. 02104 M01S02103.ssmove +++|# 02105 M01S02104.ssmove +++| 02106 M01S02105.ssmove +++| IF MVARG$DN[0] NQ 0 ## 02107 M01S02106.ssmove +++| AND DEVERR 02108 M01S02107.ssmove +++| THEN 02109 M01S02108.ssmove +++| BEGIN 02110 M01S02109.ssmove +++| MVMSG$LN[0] = " INVALID DEVICE SPECIFIED."; 02111 M01S02110.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02112 M01S02111.ssmove +++| RESTPFP(PFP$ABORT); 02113 M01S02112.ssmove +++| END 02114 M01S02113.ssmove +++| 02115 M01S02114.ssmove +++| END # MVINDEV # 02116 M01S02115.ssmove +++| 02117 M01S02116.ssmove +++| TERM 02118 M01S02117.ssmove +++|PROC MVINIT; 02119 M01S02118.ssmove +++|# TITLE MVINIT - DECODES *SSMOVE* CONTROL STATEMENT. # 02120 M01S02119.ssmove +++| 02121 M01S02120.ssmove +++| BEGIN # MVINIT # 02122 M01S02121.ssmove +++| 02123 M01S02122.ssmove +++|# 02124 M01S02123.ssmove +++|** MVINIT - DECODES *SSMOVE* CONTROL STATEMENT. 02125 M01S02124.ssmove +++|* 02126 M01S02125.ssmove +++|* *MVINIT* DECODES THE PARAMETERS ON THE *SSMOVE* CONTROL 02127 M01S02126.ssmove +++|* STATEMENT. INVALID PARAMETERS ARE REPORTED VIA DAYFILE MESSAGES. 02128 M01S02127.ssmove +++|* PROCEDURE *MVDIR* IS CALLED TO PROCESS THE DIRECTIVE FILE. 02129 M01S02128.ssmove +++|* 02130 M01S02129.ssmove +++|* PROC MVINIT. 02131 M01S02130.ssmove +++|* 02132 M01S02131.ssmove +++|* ENTRY. CONTROL CARD IMAGE IN RA+70B. 02133 M01S02132.ssmove +++|* 02134 M01S02133.ssmove +++|* EXIT. PARAMETERS IN THE *MVARG* ARRAY. 02135 M01S02134.ssmove +++|* THE *OPTLO* AND *OPTPX* ARRAYS ARE UPDATED 02136 M01S02135.ssmove +++|* TO REFLECT ANY RUN-TIME PARAMETERS. 02137 M01S02136.ssmove +++|* 02138 M01S02137.ssmove +++|* MESSAGES. 1) SSMOVE - PARAMETER ERROR. 02139 M01S02138.ssmove +++|* 2) COMMUNICATION FILE BUSY. 02140 M01S02139.ssmove +++|* 3) UNABLE TO DEFINE COMMUNICATION FILE. 02141 M01S02140.ssmove +++|* 4) FAMILY NOT FOUND. 02142 M01S02141.ssmove +++|# 02143 M01S02142.ssmove +++| 02144 M01S02143.ssmove +++|# 02145 M01S02144.ssmove +++|**** PROC MVINIT - XREF LIST BEGIN. 02146 M01S02145.ssmove +++|# 02147 M01S02146.ssmove +++| 02148 M01S02147.ssmove +++| XREF 02149 M01S02148.ssmove +++| BEGIN 02150 M01S02149.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 02151 M01S02150.ssmove +++| PROC GETFAM; # GET DEFAULT FAMILY # 02152 M01S02151.ssmove +++| PROC GETPFP; # GET USER-S FAMILY AND UI. # 02153 M01S02152.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 02154 M01S02153.ssmove +++| PROC MVALCS; # ANALYZE CHARACTER STRING # 02155 M01S02154.ssmove +++| PROC MVDIR; # PROCESS DIRECTIVES # 02156 M01S02155.ssmove +++| PROC MVHEAD; # WRITES HEADER ON OUTPUT FILE # 02157 M01S02156.ssmove +++| PROC MVINDEV; # INITIALIZE DEVICE STATUS ARRAYS 02158 M01S02157.ssmove +++| # 02159 M01S02158.ssmove +++| PROC MVTAB; # PROVIDES ADDRESS OF PARAMETER 02160 M01S02159.ssmove +++| DECODING TABLE # 02161 M01S02160.ssmove +++| PROC PDATE; # GET CURRENT DATE/TIME # 02162 M01S02161.ssmove +++| PROC PF; # *PFM* REQUEST INTERFACE # 02163 M01S02162.ssmove +++| PROC RESTPFP; # RESTORE USER-S FAMILY AND UI. # 02164 M01S02163.ssmove +++| PROC RPOPEN; # OPENS OUTPUT FILE # 02165 M01S02164.ssmove +++| PROC SETPFP; # SET FAMILY/USER INDEX # 02166 M01S02165.ssmove +++| PROC XARG; # DECODES PARAMETERS PER DECODING 02167 M01S02166.ssmove +++| TABLE # 02168 M01S02167.ssmove +++| FUNC MVRELAG U; # CALCULATE RELATIVE AGE # 02169 M01S02168.ssmove +++| FUNC XDXB I; # CONVERTS DISPLAY TO BINARY # 02170 M01S02169.ssmove +++| END 02171 M01S02170.ssmove +++| 02172 M01S02171.ssmove +++|# 02173 M01S02172.ssmove +++|**** PROC MVINIT - XREF LIST END. 02174 M01S02173.ssmove +++|# 02175 M01S02174.ssmove +++| 02176 M01S02175.ssmove +++| DEF MSG1 #" SSMOVE - PARAMETER ERROR."#; 02177 M01S02176.ssmove +++| DEF MSG2 #" COMMUNICATION FILE BUSY."#; 02178 M01S02177.ssmove +++| DEF MSG3 #" UNABLE TO DEFINE COMMUNICATION FILE."#; 02179 M01S02178.ssmove +++| DEF MSG4 #" FAMILY NOT FOUND."#; 02180 M01S02179.ssmove +++| 02181 M01S02180.ssmove +++| DEF PROCNAME #"SSMOVE."#; # PROCEDURE NAME # 02182 M01S02181.ssmove +++| 02183 M01S02182.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02184 M01S02183.ssmove +++|*CALL,COMBFAS 02185 M01S02184.ssmove +++|*CALL COMBSIT 02186 M01S02185.ssmove +++|*CALL,COMBBZF 02187 M01S02186.ssmove +++|*CALL,COMBPFP 02188 M01S02187.ssmove +++|*CALL,COMBTDM 02189 M01S02188.ssmove +++|*CALL,COMSPFM 02190 M01S02189.ssmove +++|*CALL,COMTMOV 02191 M01S02190.ssmove +++|*CALL,COMTMVP 02192 M01S02191.ssmove +++|*CALL,COMTOUT 02193 M01S02192.ssmove +++| 02194 M01S02193.ssmove +++| 02195 M01S02194.ssmove +++| ITEM ARGLIST I; # ADDRESS OF ARGUMENT TABLE # 02196 M01S02195.ssmove +++| ITEM CCOK B=TRUE; # CONTROL CARD STATUS # 02197 M01S02196.ssmove +++| ITEM DEFORD I; # ORDINAL OF DEFAULT FAMILY # 02198 M01S02197.ssmove +++| ITEM LINK I; # ORDINAL OF LINK DEVICE # 02199 M01S02198.ssmove +++| ITEM NUM I; # NUMBER OF FAMILIES # 02200 M01S02199.ssmove +++| ITEM STAT I; # ERROR STATUS # 02201 M01S02200.ssmove +++| ITEM TMPI I; # TEMPORARY INTEGER # 02202 M01S02201.ssmove +++| CONTROL EJECT; 02203 M01S02202.ssmove +++| 02204 M01S02203.ssmove +++|# 02205 M01S02204.ssmove +++|* SAVE ORIGINAL FAMILY AND USER INDEX FOR RESTORING. 02206 M01S02205.ssmove +++|# 02207 M01S02206.ssmove +++| 02208 M01S02207.ssmove +++| GETPFP(PFP[0]); 02209 M01S02208.ssmove +++| USER$FAM[0] = PFP$FAM[0]; 02210 M01S02209.ssmove +++| USER$UI[0] = PFP$UI[0]; 02211 M01S02210.ssmove +++| 02212 M01S02211.ssmove +++|# 02213 M01S02212.ssmove +++|* CRACK PARAMETERS ON *SSMOVE* PROGRAM CALL. 02214 M01S02213.ssmove +++|# 02215 M01S02214.ssmove +++| 02216 M01S02215.ssmove +++| MVTAB(ARGLIST); 02217 M01S02216.ssmove +++| XARG(ARGLIST,0,STAT); 02218 M01S02217.ssmove +++| CCOK = STAT EQ 0; 02219 M01S02218.ssmove +++| 02220 M01S02219.ssmove +++| MVALCS(MVARG$LO[0],VCSLO,LOOPT[0],"LO",STAT); 02221 M01S02220.ssmove +++| CCOK = CCOK AND (STAT EQ 0); 02222 M01S02221.ssmove +++| 02223 M01S02222.ssmove +++| MVALCS(MVARG$PX[0],VCSPX,PXOPT[0],"PX",STAT); 02224 M01S02223.ssmove +++| CCOK = CCOK AND (STAT EQ 0); 02225 M01S02224.ssmove +++| 02226 M01S02225.ssmove +++|# 02227 M01S02226.ssmove +++|* CRACK NW, UI, DN, LB AND SET UP REPORT FILE. 02228 M01S02227.ssmove +++|# 02229 M01S02228.ssmove +++| 02230 M01S02229.ssmove +++| IF MVARG$ZNW[0] NQ 0 02231 M01S02230.ssmove +++| THEN 02232 M01S02231.ssmove +++| BEGIN 02233 M01S02232.ssmove +++| MVARG$ZNW[0] = 0; 02234 M01S02233.ssmove +++| MVARG$NW[0] = TRUE; 02235 M01S02234.ssmove +++| END 02236 M01S02235.ssmove +++| 02237 M01S02236.ssmove +++| ELSE 02238 M01S02237.ssmove +++| BEGIN 02239 M01S02238.ssmove +++| MVARG$NW[0] = FALSE; 02240 M01S02239.ssmove +++| END 02241 M01S02240.ssmove +++| 02242 M01S02241.ssmove +++| IF MVARG$ZUI[0] NQ 0 02243 M01S02242.ssmove +++| THEN 02244 M01S02243.ssmove +++| BEGIN 02245 M01S02244.ssmove +++| STAT = XDXB(MVARG$UI[0],0,TMPI); 02246 M01S02245.ssmove +++| MVARG$ZUI[0] = TMPI; 02247 M01S02246.ssmove +++| CCOK = CCOK AND (STAT EQ 0) ## 02248 M01S02247.ssmove +++| AND (TMPI GR 0) AND (TMPI LQ SYS$UI); 02249 M01S02248.ssmove +++| END 02250 M01S02249.ssmove +++| 02251 M01S02250.ssmove +++| IF MVARG$DN[0] NQ 0 02252 M01S02251.ssmove +++| THEN 02253 M01S02252.ssmove +++| BEGIN 02254 M01S02253.ssmove +++| STAT = XDXB(MVARG$DN[0],0,TMPI); 02255 M01S02254.ssmove +++| MVARG$DN[0] = TMPI; 02256 M01S02255.ssmove +++| CCOK = CCOK AND (STAT EQ 0); 02257 M01S02256.ssmove +++| END 02258 M01S02257.ssmove +++|
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssmove.txt · Last modified: by 127.0.0.1