cdc:nos2.source:opl.opl871:deck:ssmove.001
Deck SSMOVE Part 001
4 Modifications
Listing Sections
- Deck SSMOVE Start
- Deck SSMOVE Part 1 (Line 2259)
- Deck SSMOVE Part 2 (Line 4317)
Source
Seq # *Modification Id* Act ----------------------------+ 02259 M01S02258.ssmove +++| IF MVARG$LB[0] EQ LBNS 02260 M01S02259.ssmove +++| THEN # *LB* NOT SPECIFIED # 02261 M01S02260.ssmove +++| BEGIN 02262 M01S02261.ssmove +++| MVARG$LB[0] = DEFLB; 02263 M01S02262.ssmove +++| END 02264 M01S02263.ssmove +++| 02265 M01S02264.ssmove +++| ELSE 02266 M01S02265.ssmove +++| BEGIN 02267 M01S02266.ssmove +++| STAT = XDXB(MVARG$LB[0],1,TMPI); 02268 M01S02267.ssmove +++| MVARG$LB[0] = TMPI; 02269 M01S02268.ssmove +++| IF STAT NQ 0 02270 M01S02269.ssmove +++| THEN 02271 M01S02270.ssmove +++| BEGIN 02272 M01S02271.ssmove +++| CCOK = FALSE; 02273 M01S02272.ssmove +++| MVARG$LB[0] = DEFLB; 02274 M01S02273.ssmove +++| END 02275 M01S02274.ssmove +++| 02276 M01S02275.ssmove +++| END 02277 M01S02276.ssmove +++| 02278 M01S02277.ssmove +++| IF MVARG$L[0] EQ 0 02279 M01S02278.ssmove +++| THEN 02280 M01S02279.ssmove +++| BEGIN 02281 M01S02280.ssmove +++| OUT$FETP = 0; 02282 M01S02281.ssmove +++| END 02283 M01S02282.ssmove +++| 02284 M01S02283.ssmove +++| ELSE 02285 M01S02284.ssmove +++| BEGIN 02286 M01S02285.ssmove +++| OUT$FETP = LOC(OUT$FET[0]); 02287 M01S02286.ssmove +++| END 02288 M01S02287.ssmove +++| 02289 M01S02288.ssmove +++| IF NOT CCOK 02290 M01S02289.ssmove +++| THEN 02291 M01S02290.ssmove +++| BEGIN 02292 M01S02291.ssmove +++| MVMSG$LN[0] = MSG1; 02293 M01S02292.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02294 M01S02293.ssmove +++| RESTPFP(PFP$ABORT); 02295 M01S02294.ssmove +++| END 02296 M01S02295.ssmove +++| 02297 M01S02296.ssmove +++| RPOPEN(MVARG$L[0],OUT$FETP,MVHEAD); # OPEN REPORT FILE # 02298 M01S02297.ssmove +++| 02299 M01S02298.ssmove +++|# 02300 M01S02299.ssmove +++|* GET DEFAULT FAMILY AND SUBSYSTEM ID. 02301 M01S02300.ssmove +++|# 02302 M01S02301.ssmove +++| 02303 M01S02302.ssmove +++| SSID$MV = ATAS; 02304 M01S02303.ssmove +++| GETFAM(FAMT,NUM,LINK,DEFORD,SSID$MV); 02305 M01S02304.ssmove +++| 02306 M01S02305.ssmove +++| IF MVARG$FM[0] EQ 0 02307 M01S02306.ssmove +++| THEN # FAMILY NOT SPECIFIED # 02308 M01S02307.ssmove +++| BEGIN 02309 M01S02308.ssmove +++| MVARG$FM[0] = FAM$NAME[DEFORD]; 02310 M01S02309.ssmove +++| END 02311 M01S02310.ssmove +++| 02312 M01S02311.ssmove +++| PFP$WRD0[0] = 0; # SET FAMILY AND USER INDEX # 02313 M01S02312.ssmove +++| PFP$FAM[0] = MVARG$FM[0]; 02314 M01S02313.ssmove +++| PFP$UI[0] = DEF$UI; 02315 M01S02314.ssmove +++| PFP$FG1[0] = TRUE; 02316 M01S02315.ssmove +++| PFP$FG4[0] = TRUE; 02317 M01S02316.ssmove +++| SETPFP(PFP[0]); 02318 M01S02317.ssmove +++| IF PFP$STAT[0] NQ 0 02319 M01S02318.ssmove +++| THEN # FAMILY NOT FOUND # 02320 M01S02319.ssmove +++| BEGIN 02321 M01S02320.ssmove +++| MVMSG$LN[0] = MSG4; 02322 M01S02321.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02323 M01S02322.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02324 M01S02323.ssmove +++| END 02325 M01S02324.ssmove +++| 02326 M01S02325.ssmove +++|# 02327 M01S02326.ssmove +++|* CALL PROCEDURE *MVDIR* TO PROCESS DIRECTIVES. 02328 M01S02327.ssmove +++|# 02329 M01S02328.ssmove +++| 02330 M01S02329.ssmove +++| MVDIR; 02331 M01S02330.ssmove +++| 02332 M01S02331.ssmove +++|# 02333 M01S02332.ssmove +++|* CALL *MVINDEV* TO INITIALIZE DEVICE STATUS ARRAYS. 02334 M01S02333.ssmove +++|# 02335 M01S02334.ssmove +++| 02336 M01S02335.ssmove +++| MVINDEV; 02337 M01S02336.ssmove +++| 02338 M01S02337.ssmove +++|# 02339 M01S02338.ssmove +++|* ATTACH COMMUNICATION FILE. 02340 M01S02339.ssmove +++|# 02341 M01S02340.ssmove +++| 02342 M01S02341.ssmove +++| COMNAME = MVOCOM; # ZERO FILL FILE NAME # 02343 M01S02342.ssmove +++| NFILES = 0; 02344 M01S02343.ssmove +++| BZFILL(COMNAME,TYPFILL"ZFILL",7); 02345 M01S02344.ssmove +++| IF NOT (PX$A[0] AND PX$B[0] AND PX$S[0] AND PX$F[0]) 02346 M01S02345.ssmove +++| THEN 02347 M01S02346.ssmove +++| BEGIN 02348 M01S02347.ssmove +++| PF("ATTACH",COMNAME,0,"M","W","RC",STAT,"NA",0,0); 02349 M01S02348.ssmove +++| IF STAT NQ OK 02350 M01S02349.ssmove +++| THEN 02351 M01S02350.ssmove +++| BEGIN # PROCESS ATTACH ERROR FLAG # 02352 M01S02351.ssmove +++| IF STAT EQ FBS 02353 M01S02352.ssmove +++| THEN # COMMUNICATION FILE BUSY # 02354 M01S02353.ssmove +++| BEGIN 02355 M01S02354.ssmove +++| MVMSG$LN[0] = MSG2; # ABORT WITH DAYFILE MESSAGE # 02356 M01S02355.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02357 M01S02356.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02358 M01S02357.ssmove +++| END 02359 M01S02358.ssmove +++| 02360 M01S02359.ssmove +++| IF STAT EQ FNF 02361 M01S02360.ssmove +++| THEN # FILE DOES NOT EXIST # 02362 M01S02361.ssmove +++| BEGIN 02363 M01S02362.ssmove +++| PF("DEFINE",COMNAME,0,"BR","N","RC",STAT,0); 02364 M01S02363.ssmove +++| IF STAT NQ OK 02365 M01S02364.ssmove +++| THEN # PROCESS DEFINE ERROR # 02366 M01S02365.ssmove +++| BEGIN 02367 M01S02366.ssmove +++| MVMSG$LN[0] = MSG3; # ABORT WITH DAYFILE MESSAGE # 02368 M01S02367.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02369 M01S02368.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02370 M01S02369.ssmove +++| END 02371 M01S02370.ssmove +++| 02372 M01S02371.ssmove +++| END 02373 M01S02372.ssmove +++| 02374 M01S02373.ssmove +++| ELSE # ABNORMAL TERMINATION # 02375 M01S02374.ssmove +++| BEGIN 02376 M01S02375.ssmove +++| MVMSG$PROC[0] = PROCNAME; 02377 M01S02376.ssmove +++| MESSAGE(MVMSG[0],SYSUDF1); 02378 M01S02377.ssmove +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02379 M01S02378.ssmove +++| END 02380 M01S02379.ssmove +++| 02381 M01S02380.ssmove +++| END # PROCESS ATTACH ERROR FLAG # 02382 M01S02381.ssmove +++| 02383 M01S02382.ssmove +++| END 02384 M01S02383.ssmove +++| 02385 M01S02384.ssmove +++| PDATE(CURDT$MV); # GET CURRENT DATE AND TIME # 02386 M01S02385.ssmove +++| TMPI = B<24,18>CURDT$MV; 02387 M01S02386.ssmove +++| CURAGE = MVRELAG(TMPI); # ESTABLISH AGE OF TODAY # 02388 M01S02387.ssmove +++| CURTIME = B<42,18>CURDT$MV; # ESTABLISH CURRENT TIME # 02389 M01S02388.ssmove +++| 02390 M01S02389.ssmove +++| END # MVINIT # 02391 M01S02390.ssmove +++| 02392 M01S02391.ssmove +++| TERM 02393 M01S02392.ssmove +++|PROC MVPASS3; 02394 M01S02393.ssmove +++|# TITLE MVPASS3 - FINAL SELECTION OF FILES TO BE RELEASED. # 02395 M01S02394.ssmove +++| 02396 M01S02395.ssmove +++| BEGIN # MVPASS3 # 02397 M01S02396.ssmove +++| CONTROL FTNCALL; 02398 M01S02397.ssmove +++| 02399 M01S02398.ssmove +++|# 02400 M01S02399.ssmove +++|** MVPASS3 - FINAL SELECTION OF FILES TO BE RELEASED. 02401 M01S02400.ssmove +++|* 02402 M01S02401.ssmove +++|* THIS PROCEDURE DOES THE FINAL SELECTION OF THE FILES TO BE 02403 M01S02402.ssmove +++|* RELEASED FROM DISK AND PRODUCES A PASS 3 OUTPUT FILE FOR 02404 M01S02403.ssmove +++|* USE IN DOING OR DIRECTING *SSEXEC* TO DO THE SELECTED ACTIONS. 02405 M01S02404.ssmove +++|* THIS PASS 3 OUTPUT FILE IS SORTED SUCH THAT FILES TO BE 02406 M01S02405.ssmove +++|* DESTAGED ARE ORDERED BY SUBFAMILY AND THEN BY SIZE (SMALL, 02407 M01S02406.ssmove +++|* THEN LARGE). 02408 M01S02407.ssmove +++|* 02409 M01S02408.ssmove +++|* PROC MVPASS3. 02410 M01S02409.ssmove +++|* 02411 M01S02410.ssmove +++|* ENTRY. 1) THE PASS 1 OUTPUT FILE IS AVAILABLE ON DISK. 02412 M01S02411.ssmove +++|* 02413 M01S02412.ssmove +++|* 2) THE AMOUNT OF DISK SPACE NEEDED PER DEVICE AND 02414 M01S02413.ssmove +++|* FILE TYPE IS IN THE *DEV$NEED* FIELD OF *DEV$STAT*. 02415 M01S02414.ssmove +++|* 02416 M01S02415.ssmove +++|* EXIT. 1) THE PASS 3 OUTPUT FILE CONTAINS ALL FILES TO BE 02417 M01S02416.ssmove +++|* DESTAGED, RELEASED, STAGED, OR FREED. FILES TO BE 02418 M01S02417.ssmove +++|* DESTAGED ARE SORTED BY SUBFAMILY AND THEN FILE SIZE. 02419 M01S02418.ssmove +++|* 02420 M01S02419.ssmove +++|* 2) THE NUMBER OF FILES AND AMOUNT OF MSAS SPACE NEEDED 02421 M01S02420.ssmove +++|* IS PROVIDED IN THE *SFDS$NF* AND *SFDS$PRU* FIELDS 02422 M01S02421.ssmove +++|* OF THE ARRAY *SF$STAT*. 02423 M01S02422.ssmove +++|* 02424 M01S02423.ssmove +++|* NOTES. THE PROCESSING LOGIC FOR THIS ROUTINE IS AS FOLLOWS.. 02425 M01S02424.ssmove +++|* 02426 M01S02425.ssmove +++|* 1) SORT THE ENTRIES OF THE PASS 1 OUTPUT FILE BY 02427 M01S02426.ssmove +++|* RELEASE VALUE. 02428 M01S02427.ssmove +++|* 02429 M01S02428.ssmove +++|* 2) DETERMINE WHICH OF THE FILES CONDITIONALLY SELECTED 02430 M01S02429.ssmove +++|* TO BE RELEASED WILL ACTUALLY BE RELEASED. SELECT 02431 M01S02430.ssmove +++|* THOSE HAVING THE LARGEST RELEASE VALUE UNTIL THE 02432 M01S02431.ssmove +++|* NEEDED AMOUNT OF SPACE FOR EACH FILE TYPE ON EACH 02433 M01S02432.ssmove +++|* DEVICE IS OBTAINED. 02434 M01S02433.ssmove +++|* 02435 M01S02434.ssmove +++|* 3) WRITE THE ENTRY FOR ALL FILES THUS SELECTED TO THE 02436 M01S02435.ssmove +++|* PASS 3 OUTPUT FILE. ALSO, COPY THE ENTRIES FOR ALL 02437 M01S02436.ssmove +++|* FILES PREVIOUSLY SELECTED FOR PROCESSING. 02438 M01S02437.ssmove +++|# 02439 M01S02438.ssmove +++| 02440 M01S02439.ssmove +++|# 02441 M01S02440.ssmove +++|**** PROC MVPASS3 - XREF LIST BEGIN. 02442 M01S02441.ssmove +++|# 02443 M01S02442.ssmove +++| 02444 M01S02443.ssmove +++| XREF 02445 M01S02444.ssmove +++| BEGIN 02446 M01S02445.ssmove +++| PROC CLOSEM; # CLOSE FILE # 02447 M01S02446.ssmove +++| PROC FILESQ; # ESTABLISH SEQUENTIAL FILE 02448 M01S02447.ssmove +++| ORGANIZATION # 02449 M01S02448.ssmove +++| PROC OPENM; # OPEN FILE # 02450 M01S02449.ssmove +++| PROC READ; # INITIATE FILE INPUT # 02451 M01S02450.ssmove +++| PROC RETERN; # RETURN FILE # 02452 M01S02451.ssmove +++| PROC READW; # READ NEXT RECORD #
Line S02452 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02453 M02S02452.ssmove1 ---| PROC SMEND; # S/M TERMINATION #
Line S02453 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02454 M02S02453.ssmove1 ---| PROC SMFILE; # S/M FILE DEFINITION #
Line S02454 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02455 M02S02454.ssmove1 ---| PROC SMKEY; # S/M KEY DEFINITION #
Line S02455 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02456 M02S02455.ssmove1 ---| PROC SMSORT; # S/M INITIALIZATION # 02457 M01S00001.ssmove1 +++| PROC REWIND; # REWIND FILE # 02458 M01S00002.ssmove1 +++| PROC SM5END; # S/M TERMINATION # 02459 M01S00003.ssmove1 +++| PROC SM5FROM; # S/M INPUT FILE DEFINITION # 02460 M01S00004.ssmove1 +++| PROC SM5KEY; # S/M KEY DEFINITION # 02461 M01S00005.ssmove1 +++| PROC SM5SORT; # S/M INITIALIZATION # 02462 M01S00006.ssmove1 +++| PROC SM5TO; # S/M OUTPUT FILE DEFINITION # 02463 M01S02456.ssmove +++| PROC WRITER; # FLUSH FILE BUFFER # 02464 M01S02457.ssmove +++| PROC WRITEW; # WRITE RECORD # 02465 M01S02458.ssmove +++| PROC ZSETFET; # INITIALIZE FET # 02466 M01S02459.ssmove +++| END 02467 M01S02460.ssmove +++| 02468 M01S02461.ssmove +++|# 02469 M01S02462.ssmove +++|**** PROC MVPASS3 - XREF LIST END. 02470 M01S02463.ssmove +++|# 02471 M01S02464.ssmove +++| 02472 M01S02465.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02473 M01S02466.ssmove +++| DEF SFITL #35#; # *FIT* BUFFER SIZE # 02474 M01S02467.ssmove +++| 02475 M01S02468.ssmove +++|*CALL,COMBFAS 02476 M01S02469.ssmove +++|*CALL,COMBTDM 02477 M01S02470.ssmove +++|*CALL,COMTMOV 02478 M01S02471.ssmove +++|*CALL,COMTMVP 02479 M01S02472.ssmove +++| 02480 M01S02473.ssmove +++| ITEM EOTDAM B; # SIGNAL EOF # 02481 M01S02474.ssmove +++| ITEM FLAG I; # STATUS FROM I/O CALLS # 02482 M01S02475.ssmove +++| ITEM IXLN I; # LARGE/SMALL INDEX # 02483 M01S02476.ssmove +++| ITEM NXTDAM I; # LOOP INDEX # 02484 M01S02477.ssmove +++| 02485 M01S02478.ssmove +++| ARRAY FIT [1:2] S(SFITL);; # USED TO SORT FILES # 02486 M01S02479.ssmove +++| CONTROL EJECT;
Line S02480 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02487 M02S02480.ssmove1 ---| FILESQ(FIT[1],"LFN",SCR1,"RT","F","BT","C","FL",90); 02488 M01S00007.ssmove1 +++| FILESQ(FIT[1],"LFN","SCR1","RT","F","BT","C","FL",90); 02489 M01S02481.ssmove +++| OPENM(FIT[1],"INPUT", "R"); 02490 M01S02482.ssmove +++| 02491 M01S02483.ssmove +++| FILESQ(FIT[2],"LFN","SCR2","RT","F","BT","C","FL",90); 02492 M01S02484.ssmove +++| OPENM(FIT[2],"OUTPUT","R"); 02493 M01S02485.ssmove +++|
Line S02486 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02494 M02S02486.ssmove1 ---| SMSORT(90); # 90 = BUFFER SIZE #
Line S02487 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02495 M02S02487.ssmove1 ---|
Line S02488 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02496 M02S02488.ssmove1 ---| SMFILE("SORT",0,FIT[1]);
Line S02489 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02497 M02S02489.ssmove1 ---| SMFILE("OUTPUT",0,FIT[2]);
Line S02490 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02498 M02S02490.ssmove1 ---|
Line S02491 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02499 M02S02491.ssmove1 ---| SMKEY(61,1,10,0,"D"); # SORT BY DECREASING RELEASE VALUE
Line S02492 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02500 M02S02492.ssmove1 ---| #
Line S02493 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02501 M02S02493.ssmove1 ---|
Line S02494 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02502 M02S02494.ssmove1 ---| SMEND; # INITIATE SORT USING ONE KEY # 02503 M01S00008.ssmove1 +++| SM5SORT(0); # NO STATISTICS RETURNED # 02504 M01S00009.ssmove1 +++| 02505 M01S00010.ssmove1 +++| SM5FROM("SCR1"); # DEFINE INPUT FILE # 02506 M01S00011.ssmove1 +++| 02507 M01S00012.ssmove1 +++| SM5TO("SCR2"); # DEFINE OUTPUT FILE # 02508 M01S00013.ssmove1 +++| 02509 M01S00014.ssmove1 +++| SM5KEY(61,10,"BINARY","D"); # SORT BY DECREASING RELEASE VALUE 02510 M01S00015.ssmove1 +++| # 02511 M01S00016.ssmove1 +++| 02512 M01S00017.ssmove1 +++| SM5END; # INITIATE SORT USING ONE KEY # 02513 M01S02495.ssmove +++| 02514 M01S02496.ssmove +++| CLOSEM(FIT[1]); 02515 M01S02497.ssmove +++| CLOSEM(FIT[2]); 02516 M01S02498.ssmove +++| 02517 M01S02499.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 02518 M01S02500.ssmove +++| FETP = LOC(MV$FET[FILEMI]); 02519 M01S02501.ssmove +++| BUFP = LOC(MV$BUF[FILEMI]); 02520 M01S02502.ssmove +++| ZSETFET(FETP,"SCR2",BUFP,MVBUFL,SFETL); 02521 M01S02503.ssmove +++| 02522 M01S02504.ssmove +++| FETP = LOC(MV$FET[FILEMO]); 02523 M01S02505.ssmove +++| BUFP = LOC(MV$BUF[FILEMO]); 02524 M01S02506.ssmove +++| ZSETFET(FETP,"SCR3",BUFP,MVBUFL,SFETL); 02525 M01S00018.ssmove1 +++| REWIND(MV$FET[FILEMI],RCL); # REWIND SCR2 # 02526 M01S02507.ssmove +++| 02527 M01S02508.ssmove +++| READ(MV$FET[FILEMI],NRCL); # PREPARE TO READ SORTED PASS 1 02528 M01S02509.ssmove +++| OUTPUT FILE # 02529 M01S02510.ssmove +++| EOTDAM = FALSE; 02530 M01S02511.ssmove +++| 02531 M01S02512.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 02532 M01S02513.ssmove +++| P<EXT$TDAM> = LOC(MV$WBUF[0]) + TDAMLEN; 02533 M01S02514.ssmove +++| 02534 M01S02515.ssmove +++| SLOWFOR NXTDAM = 0 STEP 1 WHILE NOT EOTDAM 02535 M01S02516.ssmove +++| DO 02536 M01S02517.ssmove +++| BEGIN # NEXT TDAM # 02537 M01S02518.ssmove +++| READW(MV$FET[FILEMI],MV$WBUF[0],MVWBUFL,FLAG); 02538 M01S02519.ssmove +++| 02539 M01S02520.ssmove +++| IF FLAG NQ 0 02540 M01S02521.ssmove +++| THEN 02541 M01S02522.ssmove +++| BEGIN 02542 M01S02523.ssmove +++| EOTDAM = TRUE; 02543 M01S02524.ssmove +++| TEST NXTDAM; 02544 M01S02525.ssmove +++| END 02545 M01S02526.ssmove +++| 02546 M01S02527.ssmove +++|# 02547 M01S02528.ssmove +++|* INITIALIZE FILE INDICES. 02548 M01S02529.ssmove +++|# 02549 M01S02530.ssmove +++| 02550 M01S02531.ssmove +++| DNX = EXT$DNX[0]; 02551 M01S02532.ssmove +++| FTYPE = EXT$FTYPE[0]; 02552 M01S02533.ssmove +++| SFX = TDAMSBF[0]; 02553 M01S02534.ssmove +++| 02554 M01S02535.ssmove +++|# 02555 M01S02536.ssmove +++|* IF THE FILE IS TO BE RELEASED, UPDATE DEVICE STATISTICS 02556 M01S02537.ssmove +++|* AND PROCESSING ACTION FLAGS. 02557 M01S02538.ssmove +++|# 02558 M01S02539.ssmove +++| 02559 M01S02540.ssmove +++| IF ( EXT$CREL[0] # CANDIDATE TO BE RELEASED # 02560 M01S02541.ssmove +++| AND (DEV$NEED[FTYPE,DNX] GR 0) ) # AND SPACE NEEDED # 02561 M01S02542.ssmove +++| 02562 M01S02543.ssmove +++| THEN # FILE IS TO BE RELEASED # 02563 M01S02544.ssmove +++| BEGIN 02564 M01S02545.ssmove +++| EXT$REL[0] = TRUE; 02565 M01S02546.ssmove +++| DEV$NEED[FTYPE,DNX] = DEV$NEED[FTYPE,DNX] - TDAMFLN[0]; 02566 M01S02547.ssmove +++| DEV$RELF[FTYPE,DNX] = DEV$RELF[FTYPE,DNX] + 1; 02567 M01S02548.ssmove +++| DEV$TRPRU[FTYPE,DNX] = DEV$TRPRU[FTYPE,DNX] - TDAMFLN[0]; 02568 M01S02549.ssmove +++| IF FTYPE EQ IXIA 02569 M01S02550.ssmove +++| THEN 02570 M01S02551.ssmove +++| BEGIN 02571 M01S02552.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] + TDAMFLN[0]; 02572 M01S02553.ssmove +++| END 02573 M01S02554.ssmove +++| 02574 M01S02555.ssmove +++| ELSE 02575 M01S02556.ssmove +++| BEGIN 02576 M01S02557.ssmove +++| PRUTRK = DEV$SECTR[IXDA,DNX]; 02577 M01S02558.ssmove +++| TRUPRU = (((TDAMFLN[0]+1) / PRUTRK) + 1) * PRUTRK; 02578 M01S02559.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] + TRUPRU; 02579 M01S02560.ssmove +++| END 02580 M01S02561.ssmove +++| 02581 M01S02562.ssmove +++| END 02582 M01S02563.ssmove +++| 02583 M01S02564.ssmove +++|# 02584 M01S02565.ssmove +++|* FOR FILES WHICH ARE TO BE DESTAGED, COUNT THE FILES AND 02585 M01S02566.ssmove +++|* ALLOCATION UNIT REQUIREMENTS PER SUBFAMILY AND FILE SIZE. 02586 M01S02567.ssmove +++|# 02587 M01S02568.ssmove +++| 02588 M01S02569.ssmove +++| IF EXT$DES[0] # DESTAGE SELECTED UNCONDITIONALLY 02589 M01S02570.ssmove +++| # 02590 M01S02571.ssmove +++| OR (EXT$CDES[0] AND EXT$REL[0]) 02591 M01S02572.ssmove +++| 02592 M01S02573.ssmove +++| THEN # UPDATE DATA NEEDED BY *SSEXEC* 02593 M01S02574.ssmove +++| TO DESTAGE FILES # 02594 M01S02575.ssmove +++| BEGIN 02595 M01S02576.ssmove +++| IF TDAMFLN[0] LS MVARG$LB[0] 02596 M01S02577.ssmove +++| THEN # SMALL FILE # 02597 M01S02578.ssmove +++| BEGIN 02598 M01S02579.ssmove +++| IXLN = IXSM; 02599 M01S02580.ssmove +++| END 02600 M01S02581.ssmove +++| 02601 M01S02582.ssmove +++| ELSE # LARGE FILE # 02602 M01S02583.ssmove +++| BEGIN 02603 M01S02584.ssmove +++| IXLN = IXLG; 02604 M01S02585.ssmove +++| END 02605 M01S02586.ssmove +++| 02606 M01S02587.ssmove +++| EXT$DES[0] = TRUE; 02607 M01S02588.ssmove +++| EXT$IXLN[0] = IXLN; 02608 M01S02589.ssmove +++| SFDS$NF[FTYPE,SFX] = SFDS$NF[FTYPE,SFX] + 1; 02609 M01S02590.ssmove +++| SFDS$PRU[FTYPE,SFX] = SFDS$PRU[FTYPE,SFX] + TDAMFLN[0]; 02610 M01S02591.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] + 1; 02611 M01S02592.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] + TDAMFLN[0]; 02612 M01S02593.ssmove +++| END 02613 M01S02594.ssmove +++| 02614 M01S02595.ssmove +++|# 02615 M01S02596.ssmove +++|* COUNT THE NUMBER OF AND TOTAL LENGTH OF FILES TO BE STAGED. 02616 M01S02597.ssmove +++|# 02617 M01S02598.ssmove +++| 02618 M01S02599.ssmove +++| IF EXT$STG[0] 02619 M01S02600.ssmove +++| THEN 02620 M01S02601.ssmove +++| BEGIN 02621 M01S02602.ssmove +++| SFSG$NF[FTYPE,SFX] = SFSG$NF[FTYPE,SFX] + 1; 02622 M01S02603.ssmove +++| SFSG$PRU[FTYPE,SFX] = SFSG$PRU[FTYPE,SFX] + TDAMFLN[0]; 02623 M01S02604.ssmove +++| SFRL$NF[FTYPE,SFX] = SFRL$NF[FTYPE,SFX] - 1; 02624 M01S02605.ssmove +++| SFRL$PRU[FTYPE,SFX] = SFRL$PRU[FTYPE,SFX] - TDAMFLN[0]; 02625 M01S02606.ssmove +++| END 02626 M01S02607.ssmove +++| 02627 M01S02608.ssmove +++| IF EXT$CLR[0] OR TDAMFFF[0] 02628 M01S02609.ssmove +++| THEN 02629 M01S02610.ssmove +++| BEGIN 02630 M01S02611.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] - 1; 02631 M01S02612.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] - TDAMFLN[0]; 02632 M01S02613.ssmove +++| END 02633 M01S02614.ssmove +++| 02634 M01S02615.ssmove +++| ELSE 02635 M01S02616.ssmove +++| BEGIN 02636 M01S02617.ssmove +++| IF EXT$REL[0] 02637 M01S02618.ssmove +++| THEN 02638 M01S02619.ssmove +++| BEGIN 02639 M01S02620.ssmove +++| SFRL$NF[FTYPE,SFX] = SFRL$NF[FTYPE,SFX] + 1; 02640 M01S02621.ssmove +++| SFRL$PRU[FTYPE,SFX] = SFRL$PRU[FTYPE,SFX] + TDAMFLN[0]; 02641 M01S02622.ssmove +++| END 02642 M01S02623.ssmove +++| 02643 M01S02624.ssmove +++| END 02644 M01S02625.ssmove +++| 02645 M01S02626.ssmove +++|# 02646 M01S02627.ssmove +++|* FOR FILES SELECTED FOR FURTHER PROCESSING 02647 M01S02628.ssmove +++|* (EXT$STG/REL/DES/CLR BIT SET), WRITE THE FILE-S ENTRY 02648 M01S02629.ssmove +++|* TO THE PASS 3 OUTPUT FILE. 02649 M01S02630.ssmove +++|# 02650 M01S02631.ssmove +++| 02651 M01S02632.ssmove +++| IF EXT$PA3[0] NQ 0 02652 M01S02633.ssmove +++| THEN 02653 M01S02634.ssmove +++| BEGIN 02654 M01S02635.ssmove +++| WRITEW(MV$FET[FILEMO],MV$WBUF[0],MVWBUFL,FLAG); 02655 M01S02636.ssmove +++| END 02656 M01S02637.ssmove +++| 02657 M01S02638.ssmove +++| END # NEXT TDAM # 02658 M01S02639.ssmove +++| 02659 M01S02640.ssmove +++| WRITER(MV$FET[FILEMO],RCL); 02660 M01S02641.ssmove +++| 02661 M01S02642.ssmove +++|# 02662 M01S02643.ssmove +++|* SORT THE ABOVE FILE BY SUBFAMILY, FILE SIZE (SMALL/LARGE), 02663 M01S02644.ssmove +++|* AND FILE LENGTH SO IT CAN BE PROCESSED BY THE NEXT ROUTINE. 02664 M01S02645.ssmove +++|# 02665 M01S02646.ssmove +++| 02666 M01S02647.ssmove +++| FILESQ(FIT[1],"LFN","SCR3","RT","F","BT","C","FL",90); 02667 M01S02648.ssmove +++| OPENM(FIT[1],"INPUT","R"); 02668 M01S02649.ssmove +++| 02669 M01S02650.ssmove +++| FILESQ(FIT[2],"LFN","SCR4","RT","F","BT","C","FL",90); 02670 M01S02651.ssmove +++| OPENM(FIT[2],"OUTPUT","R"); 02671 M01S02652.ssmove +++|
Line S02653 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02672 M02S02653.ssmove1 ---| SMSORT(90);
Line S02654 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02673 M02S02654.ssmove1 ---|
Line S02655 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02674 M02S02655.ssmove1 ---| SMFILE("SORT",0,FIT[1]); # DEFINE INPUT FILE #
Line S02656 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02675 M02S02656.ssmove1 ---|
Line S02657 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02676 M02S02657.ssmove1 ---| SMFILE("OUTPUT",0,FIT[2]); # DEFINE OUTPUT FILE #
Line S02658 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02677 M02S02658.ssmove1 ---|
Line S02659 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02678 M02S02659.ssmove1 ---| SMKEY(30,4,0,3); # KEY1 = SUBFAMILY #
Line S02660 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02679 M02S02660.ssmove1 ---|
Line S02661 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02680 M02S02661.ssmove1 ---| SMKEY(73,1,1,0); # KEY2 = FILE SIZE *IXLN* #
Line S02662 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02681 M02S02662.ssmove1 ---|
Line S02663 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02682 M02S02663.ssmove1 ---| SMKEY(51,2,4,0,"D"); # KEY3 = FILE LENGTH #
Line S02664 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02683 M02S02664.ssmove1 ---|
Line S02665 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02684 M02S02665.ssmove1 ---| SMEND; # INITIATE SORTING ON THE THREE
Line S02666 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove1 |
Seq # *Modification Id* Act ----------------------------+ 02685 M02S02666.ssmove1 ---| KEYS # 02686 M01S00019.ssmove1 +++| SM5SORT(0); # NO STATISTICS RETURNED # 02687 M01S00020.ssmove1 +++| 02688 M01S00021.ssmove1 +++| SM5FROM("SCR3"); # DEFINE INPUT FILE # 02689 M01S00022.ssmove1 +++| 02690 M01S00023.ssmove1 +++| SM5TO("SCR4"); # DEFINE OUTPUT FILE # 02691 M01S00024.ssmove1 +++| 02692 M01S00025.ssmove1 +++| SM5KEY(178,3,"BINARY_BITS"); # KEY1 = SUBFAMILY # 02693 M01S00026.ssmove1 +++| 02694 M01S00027.ssmove1 +++| SM5KEY(73,1,"BINARY"); # KEY2 = FILE SIZE *IXLN* # 02695 M01S00028.ssmove1 +++| 02696 M01S00029.ssmove1 +++| SM5KEY(302,23,"BINARY_BITS","D"); # KEY3 = FILE LENGTH # 02697 M01S00030.ssmove1 +++| 02698 M01S00031.ssmove1 +++| SM5END; # INITIATE SORTING ON THE THREE 02699 M01S00032.ssmove1 +++| KEYS # 02700 M01S02667.ssmove +++| 02701 M01S02668.ssmove +++| CLOSEM(FIT[1]); 02702 M01S02669.ssmove +++| CLOSEM(FIT[2]); 02703 M01S02670.ssmove +++| RETERN(MV$FET[FILEMI],RCL); 02704 M01S02671.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 02705 M01S02672.ssmove +++| END # MVPASS3 # 02706 M01S02673.ssmove +++| 02707 M01S02674.ssmove +++| TERM 02708 M01S02675.ssmove +++|PROC MVPASS4; 02709 M01S02676.ssmove +++|# TITLE MVPASS4 - SETS UP THE COMMUNICATION FILE. # 02710 M01S02677.ssmove +++| 02711 M01S02678.ssmove +++| BEGIN # MVPASS4 # 02712 M01S02679.ssmove +++| 02713 M01S02680.ssmove +++|# 02714 M01S02681.ssmove +++|** MVPASS4 - SETS UP THE COMMUNICATION FILE. 02715 M01S02682.ssmove +++|* 02716 M01S02683.ssmove +++|* THIS PROCEDURE READS THE FILE CONTAINING AN ENTRY FOR 02717 M01S02684.ssmove +++|* EACH FILE SELECTED FOR PROCESSING AND EITHER DOES IT DIRECTLY, 02718 M01S02685.ssmove +++|* OR WRITES AN ENTRY ON THE *SSEXEC* COMMUNICATION FILE SO 02719 M01S02686.ssmove +++|* *SSEXEC* CAN DESTAGE THE FILE AND OPTIONALLY RELEASE IT FROM 02720 M01S02687.ssmove +++|* DISK. FILES WHICH ARE PROCESSED DIRECTLY ARE PASSED TO 02721 M01S02688.ssmove +++|* PROCEDURE *MVDOIT* WHICH CALLS *PFM* TO PERFORM THE ACTION. 02722 M01S02689.ssmove +++|* THIS PROCEDURE ALSO WRITES A LINE ON THE OUTPUT FILE FOR EACH 02723 M01S02690.ssmove +++|* FILE SELECTED FOR PROCESSING, IF THE *LO=F* OPTION IS ON. 02724 M01S02691.ssmove +++|* 02725 M01S02692.ssmove +++|* PROC MVPASS4. 02726 M01S02693.ssmove +++|* 02727 M01S02694.ssmove +++|* ENTRY. FILE *SCR4* CONTAINS ENTRIES FOR ALL FILES TO BE 02728 M01S02695.ssmove +++|* PROCESSED. IT IS SORTED BY SUBFAMILY, FILE LENGTH 02729 M01S02696.ssmove +++|* (SHORT/LONG), AND FILE SIZE (BY PRU LENGTH, LARGEST 02730 M01S02697.ssmove +++|* FIRST). 02731 M01S02698.ssmove +++|* 02732 M01S02699.ssmove +++|* EXIT. 1) CALLS TO *MVDOIT* ARE DONE TO CAUSE PROCESSING FOR 02733 M01S02700.ssmove +++|* FILES TO BE STAGED, RELEASED OR FREED FROM A 02734 M01S02701.ssmove +++|* CARTRIDGE. 02735 M01S02702.ssmove +++|* 02736 M01S02703.ssmove +++|* 2) ENTRIES FOR FILES TO BE DESTAGED OR DESTAGED AND 02737 M01S02704.ssmove +++|* RELEASED ARE WRITTEN TO THE COMMUNICATION FILE. 02738 M01S02705.ssmove +++|* 02739 M01S02706.ssmove +++|* 3) THE OUTPUT FILE CONTAINS AN ENTRY FOR EACH FILE 02740 M01S02707.ssmove +++|* SELECTED FOR PROCESSING. 02741 M01S02708.ssmove +++|# 02742 M01S02709.ssmove +++| 02743 M01S02710.ssmove +++|# 02744 M01S02711.ssmove +++|**** PROC MVPASS4 - XREF LIST BEGIN. 02745 M01S02712.ssmove +++|# 02746 M01S02713.ssmove +++| 02747 M01S02714.ssmove +++| XREF 02748 M01S02715.ssmove +++| BEGIN 02749 M01S02716.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 02750 M01S02717.ssmove +++| PROC MVDOIT; # PERFORM PROCESSING, EXCEPT 02751 M01S02718.ssmove +++| DESTAGES # 02752 M01S02719.ssmove +++| PROC MVPRNDT; # PRINT DATE AND ACCESS COUNT # 02753 M01S02720.ssmove +++| PROC MVRPTDS; # REPORT DEVICE STATUS # 02754 M01S02721.ssmove +++| PROC READ; # INITIATE DATA TRANSFER INTO A 02755 M01S02722.ssmove +++| BUFFER # 02756 M01S02723.ssmove +++| PROC READW; # READ A RECORD INTO WORKING 02757 M01S02724.ssmove +++| BUFFER # 02758 M01S02725.ssmove +++| PROC RETERN; # RETURN FILE # 02759 M01S00033.ssmove1 +++| PROC REWIND; # REWIND FILE # 02760 M01S02726.ssmove +++| PROC RPEJECT; # ISSUE PAGE EJECT # 02761 M01S02727.ssmove +++| PROC RPLINE; # WRITE LINE ON OUTPUT FILE # 02762 M01S02728.ssmove +++| PROC WRITER; # FLUSH BUFFER TO FILE # 02763 M01S02729.ssmove +++| PROC WRITEW; # WRITE RECORD TO FILE BUFFER # 02764 M01S02730.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 02765 M01S02731.ssmove +++| PROC ZSETFET; # INITIALIZE *FET* # 02766 M01S02732.ssmove +++| FUNC XCDD C(10); # CONVERT BINARY TO DECIMAL 02767 M01S02733.ssmove +++| DISPLAY # 02768 M01S02734.ssmove +++| FUNC XCOD C(10); # CONVERT BINARY TO OCTAL DISPLAY 02769 M01S02735.ssmove +++| # 02770 M01S02736.ssmove +++| END 02771 M01S02737.ssmove +++| 02772 M01S02738.ssmove +++|# 02773 M01S02739.ssmove +++|**** PROC MVPASS4 - XREF LIST END. 02774 M01S02740.ssmove +++|# 02775 M01S02741.ssmove +++| 02776 M01S02742.ssmove +++| 02777 M01S02743.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 02778 M01S02744.ssmove +++| 02779 M01S02745.ssmove +++|*CALL,COMBFAS 02780 M01S02746.ssmove +++|*CALL,COMBBZF 02781 M01S02747.ssmove +++|*CALL,COMBTDM 02782 M01S02748.ssmove +++|*CALL,COMTMOV 02783 M01S02749.ssmove +++|*CALL COMTMVP 02784 M01S02750.ssmove +++|*CALL,COMTOUT 02785 M01S02751.ssmove +++| 02786 M01S02752.ssmove +++| 02787 M01S02753.ssmove +++| DEF FILEHDR1 #"NAME TYPE UI LENGTH DATE"#; 02788 M01S02754.ssmove +++| DEF FILEHDR2 #" ACC-CT ACTION(* = NOT DONE PER *PX* OPTION)" 02789 M01S02755.ssmove +++| #; 02790 M01S02756.ssmove +++| DEF FILEHDR3 #"DES-VAL REL-VAL"#; 02791 M01S02757.ssmove +++| DEF MSGCLR #"CLEAR *ASA* FIELD. "#; 02792 M01S02758.ssmove +++| DEF MSGDES #"DESTAGE FILE. "#; 02793 M01S02759.ssmove +++| DEF MSGDSR #"DESTAGE AND RELEASE. "#; 02794 M01S02760.ssmove +++| DEF MSGREL #"RELEASE FROM DISK. "#; 02795 M01S02761.ssmove +++| DEF MSGSCLR #"STAGE, CLEAR *ASA*. "#; 02796 M01S02762.ssmove +++| DEF MSGSTG #"STAGE FILE TO DISK. "#; 02797 M01S02763.ssmove +++| 02798 M01S02764.ssmove +++| ITEM EOTDAM B; # SIGNALS END-OF-FILE # 02799 M01S02765.ssmove +++| ITEM FLAG I; # READ STATUS # 02800 M01S02766.ssmove +++| ITEM NXTDAM U; # LOOP INDEX # 02801 M01S02767.ssmove +++| ITEM PREVSF I; # PREVIOUS SUBFAMILY # 02802 M01S02768.ssmove +++| ITEM SKIP B; # CCNTROLS DOING SELECTED ACTION # 02803 M01S02769.ssmove +++| ITEM TMPC C(10); # TEMPORARY CELL # 02804 M01S02770.ssmove +++| 02805 M01S02771.ssmove +++| 02806 M01S02772.ssmove +++| ARRAY DTDAM [0:0] S(TDAMLEN);; # DESTAGE HEADER FOR A SUBFAMILY 02807 M01S02773.ssmove +++| # 02808 M01S02774.ssmove +++| CONTROL EJECT; 02809 M01S02775.ssmove +++|# 02810 M01S02776.ssmove +++|* DETERMINE WHETHER TO LIST EACH FILE FOR PROCESSING. 02811 M01S02777.ssmove +++|# 02812 M01S02778.ssmove +++| 02813 M01S02779.ssmove +++| 02814 M01S02780.ssmove +++| IF LO$F[0] 02815 M01S02781.ssmove +++| THEN # FULL LISTING # 02816 M01S02782.ssmove +++| BEGIN 02817 M01S02783.ssmove +++| LISTFETP = OUT$FETP; 02818 M01S02784.ssmove +++| PX$FETP = OUT$FETP; 02819 M01S02785.ssmove +++| END 02820 M01S02786.ssmove +++| 02821 M01S02787.ssmove +++| ELSE 02822 M01S02788.ssmove +++| BEGIN 02823 M01S02789.ssmove +++| IF LO$P[0] 02824 M01S02790.ssmove +++| THEN # PARTIAL LISTING # 02825 M01S02791.ssmove +++| BEGIN 02826 M01S02792.ssmove +++| LISTFETP = OUT$FETP; 02827 M01S02793.ssmove +++| PX$FETP = 0; 02828 M01S02794.ssmove +++| END 02829 M01S02795.ssmove +++| 02830 M01S02796.ssmove +++| ELSE 02831 M01S02797.ssmove +++| BEGIN 02832 M01S02798.ssmove +++| LISTFETP = 0; 02833 M01S02799.ssmove +++| PX$FETP = 0; 02834 M01S02800.ssmove +++| END 02835 M01S02801.ssmove +++| 02836 M01S02802.ssmove +++| END 02837 M01S02803.ssmove +++| 02838 M01S02804.ssmove +++|# 02839 M01S02805.ssmove +++|* INITIALIZE *FET* FOR THE FILES USED BY THIS PROCEDURE. 02840 M01S02806.ssmove +++|# 02841 M01S02807.ssmove +++| 02842 M01S02808.ssmove +++| FETP = LOC(MV$FET[FILEMI]); 02843 M01S02809.ssmove +++| BUFP = LOC(MV$BUF[FILEMI]); 02844 M01S02810.ssmove +++| ZSETFET(FETP,SCR4,BUFP,MVBUFL,SFETL); 02845 M01S00034.ssmove1 +++| REWIND(MV$FET[FILEMI],RCL); # REWIND SCR4 # 02846 M01S02811.ssmove +++| READ(MV$FET[FILEMI],NRCL); 02847 M01S02812.ssmove +++| 02848 M01S02813.ssmove +++| FETP = LOC(MV$FET[FILEMO]); 02849 M01S02814.ssmove +++| BUFP = LOC(MV$BUF[FILEMO]); 02850 M01S02815.ssmove +++| ZSETFET(FETP,MVOCOM,BUFP,MVBUFL,SFETL); 02851 M01S02816.ssmove +++| 02852 M01S02817.ssmove +++| FETP = LOC(MV$FET[FILEAUX]); 02853 M01S02818.ssmove +++| BUFP = LOC(MV$BUF[FILEAUX]); 02854 M01S02819.ssmove +++| ZSETFET(FETP,MVLPROB,BUFP,MVBUFL,SFETL); 02855 M01S02820.ssmove +++| 02856 M01S02821.ssmove +++|# 02857 M01S02822.ssmove +++|* WRITE HEADER TO COMMUNICATION FILE. 02858 M01S02823.ssmove +++|# 02859 M01S02824.ssmove +++| 02860 M01S02825.ssmove +++| P<MVPREAM> = LOC(MV$WBUF[0]); 02861 M01S02826.ssmove +++| ZFILL(MVPREAM,MVPRML); 02862 M01S02827.ssmove +++| MVPR$FLNM[0] = MVOCOM; 02863 M01S02828.ssmove +++| BZFILL(MVPR$FLNM[0],TYPFILL"BFILL",6); 02864 M01S02829.ssmove +++| MVPR$DT[0] = CURDT$MV; 02865 M01S02830.ssmove +++| MVPR$LB[0] = MVARG$LB[0]; 02866 M01S02831.ssmove +++| 02867 M01S02832.ssmove +++| WRITEW(MV$FET[FILEMO],MVPREAM[0],MVPRML,FLAG); 02868 M01S02833.ssmove +++| 02869 M01S02834.ssmove +++| PREVSF = 8; 02870 M01S02835.ssmove +++| EOTDAM = FALSE; 02871 M01S02836.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 02872 M01S02837.ssmove +++| 02873 M01S02838.ssmove +++| RPEJECT(LISTFETP); 02874 M01S02839.ssmove +++| RPLINE(LISTFETP,FILEHDR1,2,38,1); 02875 M01S02840.ssmove +++| RPLINE(LISTFETP,FILEHDR2,42,46,1); 02876 M01S02841.ssmove +++| RPLINE(LISTFETP,FILEHDR3,90,17,0); 02877 M01S02842.ssmove +++| RPLINE(LISTFETP," ",1,1,0); 02878 M01S02843.ssmove +++| 02879 M01S02844.ssmove +++| SLOWFOR NXTDAM = 0 STEP 1 WHILE NOT EOTDAM 02880 M01S02845.ssmove +++| DO 02881 M01S02846.ssmove +++| BEGIN # NEXT TDAM REQUEST # 02882 M01S02847.ssmove +++| READW(MV$FET[FILEMI],MV$WBUF,MVWBUFL,FLAG); 02883 M01S02848.ssmove +++| IF FLAG NQ 0 02884 M01S02849.ssmove +++| THEN 02885 M01S02850.ssmove +++| BEGIN 02886 M01S02851.ssmove +++| EOTDAM = TRUE; 02887 M01S02852.ssmove +++| TEST NXTDAM; 02888 M01S02853.ssmove +++| END 02889 M01S02854.ssmove +++|# 02890 M01S02855.ssmove +++|* SET OUTPUT FILE. 02891 M01S02856.ssmove +++|# 02892 M01S02857.ssmove +++| 02893 M01S02858.ssmove +++| IF LO$P[0] 02894 M01S02859.ssmove +++| THEN 02895 M01S02860.ssmove +++| BEGIN 02896 M01S02861.ssmove +++| LISTFETP = OUT$FETP; 02897 M01S02862.ssmove +++| END 02898 M01S02863.ssmove +++| 02899 M01S02864.ssmove +++|# 02900 M01S02865.ssmove +++|* SEND ALL REQUESTS WITH A DESTAGE TO *SSEXEC*. 02901 M01S02866.ssmove +++|* CALL *MVDOIT* TO PERFORM ALL OTHER REQUESTS. 02902 M01S02867.ssmove +++|# 02903 M01S02868.ssmove +++| 02904 M01S02869.ssmove +++| IF EXT$DES[0] 02905 M01S02870.ssmove +++| THEN # SEND TO *SSEXEC* # 02906 M01S02871.ssmove +++| BEGIN # DESTAGE FILE # 02907 M01S02872.ssmove +++| 02908 M01S02873.ssmove +++|# 02909 M01S02874.ssmove +++|* WRITE SELECTED PROCESSING MESSAGE TO OUTPUT FILE FOR 02910 M01S02875.ssmove +++|* FILES TO BE DESTAGED OR DESTAGED AND RELEASED. 02911 M01S02876.ssmove +++|# 02912 M01S02877.ssmove +++| 02913 M01S02878.ssmove +++| IF EXT$REL[0] 02914 M01S02879.ssmove +++| THEN # DESTAGE AND RELEASE # 02915 M01S02880.ssmove +++| BEGIN 02916 M01S02881.ssmove +++| TDAMFC[0] = TDAMFCODE"DESTRLS"; 02917 M01S02882.ssmove +++| SKIP = PX$A[0] OR PX$B[0]; 02918 M01S02883.ssmove +++| IF SKIP 02919 M01S02884.ssmove +++| THEN 02920 M01S02885.ssmove +++| BEGIN 02921 M01S02886.ssmove +++| LISTFETP = PX$FETP; 02922 M01S02887.ssmove +++| END 02923 M01S02888.ssmove +++| 02924 M01S02889.ssmove +++| RPLINE(LISTFETP,MSGDSR,54,20,1); 02925 M01S02890.ssmove +++| MVPRNDT(TDAMLAD[0],TDAMACC[0],EXT$DESV[0],EXT$RELV[0]); 02926 M01S02891.ssmove +++| END 02927 M01S02892.ssmove +++| 02928 M01S02893.ssmove +++| ELSE # DESTAGE ONLY # 02929 M01S02894.ssmove +++| BEGIN 02930 M01S02895.ssmove +++| TDAMFC[0] = TDAMFCODE"DESTAGE"; 02931 M01S02896.ssmove +++| SKIP = PX$B[0]; 02932 M01S02897.ssmove +++| IF SKIP 02933 M01S02898.ssmove +++| THEN 02934 M01S02899.ssmove +++| BEGIN 02935 M01S02900.ssmove +++| LISTFETP = PX$FETP; 02936 M01S02901.ssmove +++| END 02937 M01S02902.ssmove +++| 02938 M01S02903.ssmove +++| RPLINE(LISTFETP,MSGDES,54,20,1); 02939 M01S02904.ssmove +++| MVPRNDT(TDAMLMD[0],TDAMACC[0],EXT$DESV[0],EXT$RELV[0]); 02940 M01S02905.ssmove +++| END 02941 M01S02906.ssmove +++| 02942 M01S02907.ssmove +++|# 02943 M01S02908.ssmove +++|* WRITE OUTPUT LINE IDENTIFYING FILE. 02944 M01S02909.ssmove +++|# 02945 M01S02910.ssmove +++| 02946 M01S02911.ssmove +++| TMPC = TDAMPFN[0]; 02947 M01S02912.ssmove +++| BZFILL(TMPC,TYPFILL"BFILL",7); 02948 M01S02913.ssmove +++| RPLINE(LISTFETP,TMPC,2,7,1); # PFN # 02949 M01S02914.ssmove +++| 02950 M01S02915.ssmove +++| TMPC = XCOD(TDAMUI[0]); 02951 M01S02916.ssmove +++| RPLINE(LISTFETP,TMPC,11,10,1); # UI # 02952 M01S02917.ssmove +++| 02953 M01S02918.ssmove +++| TMPC = XCDD(TDAMFLN[0]); 02954 M01S02919.ssmove +++| RPLINE(LISTFETP,TMPC,21,10,1); # LENGTH IN PRU # 02955 M01S02920.ssmove +++| 02956 M01S02921.ssmove +++| IF EXT$FTYPE[0] EQ IXIA 02957 M01S02922.ssmove +++| THEN 02958 M01S02923.ssmove +++| BEGIN 02959 M01S02924.ssmove +++| TMPC = "IND."; 02960 M01S02925.ssmove +++| END 02961 M01S02926.ssmove +++| 02962 M01S02927.ssmove +++| ELSE 02963 M01S02928.ssmove +++| BEGIN 02964 M01S02929.ssmove +++| TMPC = "DIR."; 02965 M01S02930.ssmove +++| END 02966 M01S02931.ssmove +++| 02967 M01S02932.ssmove +++| RPLINE(LISTFETP,TMPC,11,4,1); 02968 M01S02933.ssmove +++| 02969 M01S02934.ssmove +++| IF SKIP 02970 M01S02935.ssmove +++| THEN 02971 M01S02936.ssmove +++| BEGIN 02972 M01S02937.ssmove +++| TMPC = "*"; 02973 M01S02938.ssmove +++| END 02974 M01S02939.ssmove +++| 02975 M01S02940.ssmove +++| ELSE 02976 M01S02941.ssmove +++| BEGIN 02977 M01S02942.ssmove +++| TMPC = " "; 02978 M01S02943.ssmove +++| WRITEW(MV$FET[FILEMO],MV$WBUF[0], TDAMLEN,FLAG); 02979 M01S02944.ssmove +++| NFILES = NFILES + 1; 02980 M01S02945.ssmove +++| END 02981 M01S02946.ssmove +++| 02982 M01S02947.ssmove +++| RPLINE(LISTFETP,TMPC,53,1,0); 02983 M01S02948.ssmove +++| TEST NXTDAM; 02984 M01S02949.ssmove +++| END # DESTAGE FILE # 02985 M01S02950.ssmove +++| 02986 M01S02951.ssmove +++|# 02987 M01S02952.ssmove +++|* ISSUE CORRECT PROCESSING ACTION TEXT TO THE REPORT LINE. 02988 M01S02953.ssmove +++|* CALL *MVDOIT* IF IT IS OK TO PERFORM THE SELECTED ACTION. 02989 M01S02954.ssmove +++|# 02990 M01S02955.ssmove +++| 02991 M01S02956.ssmove +++| IF EXT$STG[0] 02992 M01S02957.ssmove +++| THEN 02993 M01S02958.ssmove +++| BEGIN 02994 M01S02959.ssmove +++| IF EXT$CLR[0] 02995 M01S02960.ssmove +++| THEN 02996 M01S02961.ssmove +++| BEGIN 02997 M01S02962.ssmove +++| SKIP = PX$F[0] OR PX$S[0]; 02998 M01S02963.ssmove +++| IF SKIP 02999 M01S02964.ssmove +++| THEN 03000 M01S02965.ssmove +++| BEGIN 03001 M01S02966.ssmove +++| LISTFETP = PX$FETP; 03002 M01S02967.ssmove +++| END 03003 M01S02968.ssmove +++| 03004 M01S02969.ssmove +++| RPLINE(LISTFETP,MSGSCLR,54,20,1); 03005 M01S02970.ssmove +++| END 03006 M01S02971.ssmove +++| 03007 M01S02972.ssmove +++| ELSE # STAGE ONLY # 03008 M01S02973.ssmove +++| BEGIN 03009 M01S02974.ssmove +++| SKIP = PX$S[0]; 03010 M01S02975.ssmove +++| IF SKIP 03011 M01S02976.ssmove +++| THEN 03012 M01S02977.ssmove +++| BEGIN 03013 M01S02978.ssmove +++| LISTFETP = PX$FETP; 03014 M01S02979.ssmove +++| END 03015 M01S02980.ssmove +++| 03016 M01S02981.ssmove +++| RPLINE(LISTFETP,MSGSTG,54,20,1); 03017 M01S02982.ssmove +++| END 03018 M01S02983.ssmove +++| 03019 M01S02984.ssmove +++| END 03020 M01S02985.ssmove +++| 03021 M01S02986.ssmove +++| ELSE # NO STAGE INVOLVED # 03022 M01S02987.ssmove +++| BEGIN 03023 M01S02988.ssmove +++| IF EXT$CLR[0] 03024 M01S02989.ssmove +++| THEN # CLEAR ASA DIRECTLY # 03025 M01S02990.ssmove +++| BEGIN 03026 M01S02991.ssmove +++| SKIP = PX$F[0]; 03027 M01S02992.ssmove +++| IF SKIP 03028 M01S02993.ssmove +++| THEN 03029 M01S02994.ssmove +++| BEGIN 03030 M01S02995.ssmove +++| LISTFETP = PX$FETP; 03031 M01S02996.ssmove +++| END 03032 M01S02997.ssmove +++| 03033 M01S02998.ssmove +++| RPLINE(LISTFETP,MSGCLR,54,20,1); 03034 M01S02999.ssmove +++| END 03035 M01S03000.ssmove +++| 03036 M01S03001.ssmove +++| ELSE # MUST BE RELEASE # 03037 M01S03002.ssmove +++| BEGIN 03038 M01S03003.ssmove +++| SKIP = PX$A[0]; 03039 M01S03004.ssmove +++| IF SKIP 03040 M01S03005.ssmove +++| THEN 03041 M01S03006.ssmove +++| BEGIN 03042 M01S03007.ssmove +++| LISTFETP = PX$FETP; 03043 M01S03008.ssmove +++| END 03044 M01S03009.ssmove +++| 03045 M01S03010.ssmove +++| RPLINE(LISTFETP,MSGREL,54,20,1); 03046 M01S03011.ssmove +++| MVPRNDT(TDAMLAD[0],TDAMACC[0],EXT$DESV[0],EXT$RELV[0]); 03047 M01S03012.ssmove +++| END 03048 M01S03013.ssmove +++| 03049 M01S03014.ssmove +++| END 03050 M01S03015.ssmove +++| 03051 M01S03016.ssmove +++|# 03052 M01S03017.ssmove +++|* WRITE OUTPUT LINE IDENTIFYING FILE. 03053 M01S03018.ssmove +++|# 03054 M01S03019.ssmove +++| 03055 M01S03020.ssmove +++| TMPC = TDAMPFN[0]; 03056 M01S03021.ssmove +++| BZFILL(TMPC,TYPFILL"BFILL",7); 03057 M01S03022.ssmove +++| RPLINE(LISTFETP,TMPC,2,7,1); # PFN # 03058 M01S03023.ssmove +++| 03059 M01S03024.ssmove +++| TMPC = XCOD(TDAMUI[0]); 03060 M01S03025.ssmove +++| RPLINE(LISTFETP,TMPC,11,10,1); # UI # 03061 M01S03026.ssmove +++| 03062 M01S03027.ssmove +++| TMPC = XCDD(TDAMFLN[0]); 03063 M01S03028.ssmove +++| RPLINE(LISTFETP,TMPC,21,10,1); # LENGTH IN PRU # 03064 M01S03029.ssmove +++| 03065 M01S03030.ssmove +++| IF EXT$FTYPE[0] EQ IXIA 03066 M01S03031.ssmove +++| THEN 03067 M01S03032.ssmove +++| BEGIN 03068 M01S03033.ssmove +++| TMPC = "IND."; 03069 M01S03034.ssmove +++| END 03070 M01S03035.ssmove +++| 03071 M01S03036.ssmove +++| ELSE 03072 M01S03037.ssmove +++| BEGIN 03073 M01S03038.ssmove +++| TMPC = "DIR."; 03074 M01S03039.ssmove +++| END 03075 M01S03040.ssmove +++| 03076 M01S03041.ssmove +++| RPLINE(LISTFETP,TMPC,11,4,1); 03077 M01S03042.ssmove +++| 03078 M01S03043.ssmove +++| IF SKIP 03079 M01S03044.ssmove +++| THEN 03080 M01S03045.ssmove +++| BEGIN 03081 M01S03046.ssmove +++| TMPC = "*"; 03082 M01S03047.ssmove +++| END 03083 M01S03048.ssmove +++| 03084 M01S03049.ssmove +++| ELSE 03085 M01S03050.ssmove +++| BEGIN 03086 M01S03051.ssmove +++| TMPC = " "; 03087 M01S03052.ssmove +++| MVDOIT; 03088 M01S03053.ssmove +++| END 03089 M01S03054.ssmove +++| 03090 M01S03055.ssmove +++| RPLINE(LISTFETP,TMPC,53,1,0); 03091 M01S03056.ssmove +++| 03092 M01S03057.ssmove +++| TEST NXTDAM; 03093 M01S03058.ssmove +++| END # NEXT TDAM REQUEST # 03094 M01S03059.ssmove +++| 03095 M01S03060.ssmove +++| WRITER(MV$FET[FILEMO],RCL); 03096 M01S03061.ssmove +++| WRITER(MV$FET[FILEAUX],RCL); 03097 M01S03062.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 03098 M01S03063.ssmove +++| RETERN(MV$FET[FILEMI],RCL); 03099 M01S03064.ssmove +++| RETERN(MV$FET[FILEAUX],RCL); 03100 M01S03065.ssmove +++| 03101 M01S03066.ssmove +++|# 03102 M01S03067.ssmove +++|* ISSUE FIRST CALL TO *MVRPTDS* TO PRODUCE THE REPORT PAGE 03103 M01S03068.ssmove +++|* SUMMARIZING THE STATUS OF EACH DEVICE AND SUBFAMILY. 03104 M01S03069.ssmove +++|# 03105 M01S03070.ssmove +++| 03106 M01S03071.ssmove +++| MVRPTDS(0); 03107 M01S03072.ssmove +++| 03108 M01S03073.ssmove +++| END 03109 M01S03074.ssmove +++| 03110 M01S03075.ssmove +++| TERM 03111 M01S03076.ssmove +++|PROC MVPFRD; 03112 M01S03077.ssmove +++|# TITLE MVPFRD - READ PFC. # 03113 M01S03078.ssmove +++| 03114 M01S03079.ssmove +++| BEGIN # MVPFRD # 03115 M01S03080.ssmove +++| 03116 M01S03081.ssmove +++|# 03117 M01S03082.ssmove +++|** MVPFRD - READ PFC. 03118 M01S03083.ssmove +++|* 03119 M01S03084.ssmove +++|* THIS PROCEDURE READS THE PFC, CREATES THE PASS 1 OUTPUT 03120 M01S03085.ssmove +++|* FILE AND DETERMINES THE AMOUNT OF DISK SPACE TO BE 03121 M01S03086.ssmove +++|* RELEASED ON EACH DEVICE. 03122 M01S03087.ssmove +++|* 03123 M01S03088.ssmove +++|* PROC MVPFRD. 03124 M01S03089.ssmove +++|* 03125 M01S03090.ssmove +++|* EXIT. PASS 1 OUTPUT FILE SET UP. 03126 M01S03091.ssmove +++|* 03127 M01S03092.ssmove +++|* MESSAGES. INCORRECT DEVICE INDEX. 03128 M01S03093.ssmove +++|* 03129 M01S03094.ssmove +++|* NOTES. PERMANENT FILES ARE INCLUDED IN THE PASS 1 03130 M01S03095.ssmove +++|* OUTPUT FILE IF THEY MEET ANY OF THE FOLLOWING.. 03131 M01S03096.ssmove +++|* 03132 M01S03097.ssmove +++|* 1) ARE SELECTED BY THE *SF* DIRECTIVE AND 03133 M01S03098.ssmove +++|* THE SPECIFIED PROCESSING IS VALID TO DO. 03134 M01S03099.ssmove +++|* 03135 M01S03100.ssmove +++|* 2) HAVE THE FREE-FILE (AFFRE) FLAG SET IN THE 03136 M01S03101.ssmove +++|* *PFC* ENTRY FOR THE FILE WHEN THE FILE HAS 03137 M01S03102.ssmove +++|* A NON-ZERO *ASA* VALUE. 03138 M01S03103.ssmove +++|* 03139 M01S03104.ssmove +++|* 3) IF THE FILE SATISFIES THE DESTAGE CRITERIA. 03140 M01S03105.ssmove +++|* 03141 M01S03106.ssmove +++|* 4) IF THE FILE IS A CANDIDATE TO BE RELEASED. 03142 M01S03107.ssmove +++|# 03143 M01S03108.ssmove +++| 03144 M01S03109.ssmove +++|# 03145 M01S03110.ssmove +++|**** PROC MVPFRD - XREF LIST BEGIN. 03146 M01S03111.ssmove +++|# 03147 M01S03112.ssmove +++| 03148 M01S03113.ssmove +++| XREF 03149 M01S03114.ssmove +++| BEGIN 03150 M01S03115.ssmove +++| PROC BZFILL; # BLANK/ZERO FILL CHARACTER ITEM # 03151 M01S03116.ssmove +++| PROC GETDI; # GET DEVICE INHIBIT DATE/TIME # 03152 M01S03117.ssmove +++| PROC GETPFC; # GET NEXT PFC ENTRY # 03153 M01S03118.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 03154 M01S03119.ssmove +++| PROC MVCKSF; # SEARCH FOR SELECTED FILES # 03155 M01S03120.ssmove +++| PROC MVVALDS; # CALCULATE DESTAGE VALUE # 03156 M01S03121.ssmove +++| PROC MVVALRL; # CALCULATE RELEASE VALUE # 03157 M01S03122.ssmove +++| PROC RETERN; # RETURNS A FILE # 03158 M01S03123.ssmove +++| PROC REWIND; # REWINDS A FILE # 03159 M01S03124.ssmove +++| PROC UATTACH; # UTILITY ATTACH # 03160 M01S03125.ssmove +++| PROC WRITER; # WRITES EOR ON A FILE # 03161 M01S03126.ssmove +++| PROC WRITEW; # DATA TRANSFER ROUTINE # 03162 M01S03127.ssmove +++| PROC XWOD; # CONVERT OCTAL TO DISPLAY # 03163 M01S03128.ssmove +++| PROC ZFILL; # ZERO FILL ARRAY # 03164 M01S03129.ssmove +++| PROC ZSETFET; # SETS UP A FET # 03165 M01S03130.ssmove +++| END 03166 M01S03131.ssmove +++| 03167 M01S03132.ssmove +++|# 03168 M01S03133.ssmove +++|**** PROC MVPFRD - XREF LIST END. 03169 M01S03134.ssmove +++|# 03170 M01S03135.ssmove +++| 03171 M01S03136.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 03172 M01S03137.ssmove +++|*CALL,COMBFAS 03173 M01S03138.ssmove +++|*CALL COMBSIT 03174 M01S03139.ssmove +++|*CALL,COMBBZF 03175 M01S03140.ssmove +++|*CALL,COMBTDM 03176 M01S03141.ssmove +++|*CALL,COMSPFM 03177 M01S03142.ssmove +++|*CALL,COMTCTW 03178 M01S03143.ssmove +++|*CALL,COMTMOV 03179 M01S03144.ssmove +++|*CALL,COMTMVD 03180 M01S03145.ssmove +++|*CALL,COMTMVP 03181 M01S03146.ssmove +++| 03182 M01S03147.ssmove +++| ITEM DISKIMAGE B; # TRUE IF DISK IMAGE EXISTS # 03183 M01S03148.ssmove +++| ITEM EOPFC B; # END OF PFC INDICATOR # 03184 M01S03149.ssmove +++| ITEM FAM C(10); # FAMILY NAME # 03185 M01S03150.ssmove +++| ITEM FLAG I; # ERROR STATUS # 03186 M01S03151.ssmove +++| ITEM GOAL I; # DESIRED PRU ON DISK # 03187 M01S03152.ssmove +++| ITEM I I; # LOOP INDUCTION VARIABLE # 03188 M01S03153.ssmove +++| ITEM INHBDT U; # DEVICE INHIBIT DATE/TIME # 03189 M01S03154.ssmove +++| ITEM LFNAME C(10); # LOCAL FILE NAME # 03190 M01S03155.ssmove +++| ITEM MV$DNX I; # SPECIFIED DEVICE INDEX # 03191 M01S03156.ssmove +++| ITEM NOREL B; # LEGALITY OF RELEASING FILE # 03192 M01S03157.ssmove +++| ITEM NUMMSS I; # NUMBER OF MSS IMAGES # 03193 M01S03158.ssmove +++| ITEM NXTPFC I; # FILE COUNTER # 03194 M01S03159.ssmove +++| ITEM PEOCNT I; # PFC ORDINAL # 03195 M01S03160.ssmove +++| ITEM PFNAME C(10); # PERMANENT FILE NAME # 03196 M01S03161.ssmove +++| ITEM PO C(1); # PROCESSING OPTION # 03197 M01S03162.ssmove +++| ITEM RES I; # FILE RESIDENCE CODE # 03198 M01S03163.ssmove +++| ITEM TMPI I; # TEMPORARY # 03199 M01S03164.ssmove +++| 03200 M01S03165.ssmove +++| ARRAY SCR$FET [0:0] S(SFETL);; # SCRATCH FET # 03201 M01S03166.ssmove +++| 03202 M01S03167.ssmove +++| ARRAY ERRMSG [0:0] P(3); ; # *PFM* ERROR MESSAGES # 03203 M01S03168.ssmove +++| 03204 M01S03169.ssmove +++| ARRAY DISASA [0:0] S(2); 03205 M01S03170.ssmove +++| BEGIN 03206 M01S03171.ssmove +++| ITEM DIS$ASA C(00,48,12); # ASA IN DISPLAY CODE # 03207 M01S03172.ssmove +++| END 03208 M01S03173.ssmove +++| 03209 M01S03174.ssmove +++| ARRAY MSG1 [0:0] S(3); # *PFC* ERROR INFORMATION # 03210 M01S03175.ssmove +++| BEGIN 03211 M01S03176.ssmove +++| ITEM MSG1$SP C(00,00,03) = [" "]; 03212 M01S03177.ssmove +++| ITEM MSG1$FN C(00,18,07); # FILE NAME # 03213 M01S03178.ssmove +++| ITEM MSG1$TXT C(01,00,08) = [" ASA = "]; 03214 M01S03179.ssmove +++| ITEM MSG1$ASA C(01,48,12); # ALTERNATE STORAGE ADDRESS # 03215 M01S03180.ssmove +++| END 03216 M01S03181.ssmove +++| CONTROL EJECT; 03217 M01S03182.ssmove +++| 03218 M01S03183.ssmove +++|# 03219 M01S03184.ssmove +++|* SET UP FET FOR PASS 1 OUTPUT FILE. 03220 M01S03185.ssmove +++|# 03221 M01S03186.ssmove +++| 03222 M01S03187.ssmove +++| FETP = LOC(MV$FET[FILEMO]); 03223 M01S03188.ssmove +++| BUFP = LOC(MV$BUF[FILEMO]); 03224 M01S03189.ssmove +++| ZSETFET(FETP,SCR1,BUFP,MVBUFL,SFETL); 03225 M01S03190.ssmove +++| RETERN(MV$FET[FILEMO],RCL); 03226 M01S03191.ssmove +++| 03227 M01S03192.ssmove +++| FAM = MVARG$FM[0]; 03228 M01S03193.ssmove +++| LFNAME = "SCR"; # LOCAL FILE NAME # 03229 M01S03194.ssmove +++| BZFILL(LFNAME,TYPFILL"ZFILL",10); 03230 M01S03195.ssmove +++| BZFILL(FAM,TYPFILL"ZFILL",10); 03231 M01S03196.ssmove +++| 03232 M01S03197.ssmove +++|# 03233 M01S03198.ssmove +++|* READ PFC. 03234 M01S03199.ssmove +++|# 03235 M01S03200.ssmove +++| 03236 M01S03201.ssmove +++| P<TDAM> = LOC(MV$WBUF[0]); 03237 M01S03202.ssmove +++| P<EXT$TDAM> = LOC(MV$WBUF[0]) + TDAMLEN; 03238 M01S03203.ssmove +++| EOPFC = FALSE; 03239 M01S03204.ssmove +++| EXT$PAZ[0] = 0; 03240 M01S03205.ssmove +++| 03241 M01S03206.ssmove +++|# 03242 M01S03207.ssmove +++|* DETERMINE THE INDEX OF THE SPECIFIED DEVICE. 03243 M01S03208.ssmove +++|# 03244 M01S03209.ssmove +++| 03245 M01S03210.ssmove +++| IF MVARG$DN[0] EQ 0 03246 M01S03211.ssmove +++| THEN # NO DEVICE SPECIFIED # 03247 M01S03212.ssmove +++| BEGIN 03248 M01S03213.ssmove +++| MV$DNX = 0; 03249 M01S03214.ssmove +++| END 03250 M01S03215.ssmove +++| 03251 M01S03216.ssmove +++| ELSE 03252 M01S03217.ssmove +++| BEGIN 03253 M01S03218.ssmove +++| MV$DNX = DN$TO$DNX[MVARG$DN[0]]; 03254 M01S03219.ssmove +++| END 03255 M01S03220.ssmove +++| 03256 M01S03221.ssmove +++|# 03257 M01S03222.ssmove +++|* THE MAIN LOGIC OF THIS ROUTINE IS IN THE FOLLOWING LOOP. 03258 M01S03223.ssmove +++|* PROCESSING FOR EACH FILE OCCURS DURING TWO TRIPS THROUGH 03259 M01S03224.ssmove +++|* THIS LOOP. THE TOP OF THE LOOP COMPLETES PROCESSING FOR 03260 M01S03225.ssmove +++|* A FILE. THE BOTTOM OF THE LOOP INITIATES FILE PROCESSING. 03261 M01S03226.ssmove +++|* THE FOLLOWING STEPS COMPRISE THE LOGIC OF THIS MAIN LOOP. 03262 M01S03227.ssmove +++|* 03263 M01S03228.ssmove +++|* 1) (TOP OF THE LOOP).. WRITE THE FILE ENTRY TO THE PASS 1 03264 M01S03229.ssmove +++|* OUTPUT FILE IF ANY PROCESSING ACTION FLAGS WERE SET 03265 M01S03230.ssmove +++|* WHEN THE FILE WAS ANALYZED DURING THE BOTTOM PART 03266 M01S03231.ssmove +++|* OF THE PREVIOUS EXECUTION OF THIS LOOP. 03267 M01S03232.ssmove +++|* 03268 M01S03233.ssmove +++|* 2) GET THE PFC ENTRY FOR THE NEXT FILE TO BE ANALYZED BY 03269 M01S03234.ssmove +++|* THE REST OF THIS LOOP. ESTABLISH THE FILE TYPE, SUBFAMILY 03270 M01S03235.ssmove +++|* AND DEVICE NUMBER INDICES. 03271 M01S03236.ssmove +++|* 03272 M01S03237.ssmove +++|* 3) GET THE FILE LENGTH, IF NECESSARY. 03273 M01S03238.ssmove +++|* 03274 M01S03239.ssmove +++|* 4) DETERMINE THE RESIDENCE OF THE FILE AND UPDATE DEVICE 03275 M01S03240.ssmove +++|* AND SUBFAMILY STATISTICS ACCORDINGLY. 03276 M01S03241.ssmove +++|* 03277 M01S03242.ssmove +++|* 5) IGNORE THE FILE IF IT IS EXCLUDED FROM PROCESSING DUE 03278 M01S03243.ssmove +++|* TO RUN-TIME PARAMETERS OR IF IT HAS A SPECIAL USER INDEX. 03279 M01S03244.ssmove +++|* 03280 M01S03245.ssmove +++|* 6) SELECT PROCESSING ACTIONS AS CONTROLLED BY THE *SF,FN=..* 03281 M01S03246.ssmove +++|* DIRECTIVE OR THE *AFFREE* FLAG IN THE PFC ENTRY. 03282 M01S03247.ssmove +++|* 03283 M01S03248.ssmove +++|* 7) EVALUATE THE DESTAGE AND RELEASE FORMULAS AND SET 03284 M01S03249.ssmove +++|* THE APPROPRIATE PROCESSING ACTION FLAGS. 03285 M01S03250.ssmove +++|# 03286 M01S03251.ssmove +++| 03287 M01S03252.ssmove +++| SLOWFOR NXTPFC = 0 STEP 1 WHILE NOT EOPFC 03288 M01S03253.ssmove +++| DO # FINISH PROCESSING OLD PFC ENTRY, 03289 M01S03254.ssmove +++| THEN START NEW ONE # 03290 M01S03255.ssmove +++| BEGIN # NEXT PFC # 03291 M01S03256.ssmove +++| IF EXT$PA[0] NQ 0 03292 M01S03257.ssmove +++| THEN # SAVE ENTRY FOR NEXT STEP OF 03293 M01S03258.ssmove +++| ANALYSIS # 03294 M01S03259.ssmove +++| BEGIN 03295 M01S03260.ssmove +++| TDAMFLN[0] = PFC$LF[0]; 03296 M01S03261.ssmove +++| TDAMASA[0] = PFC$AA[0]; 03297 M01S03262.ssmove +++| TDAMAT[0] = PFC$AT[0]; 03298 M01S03263.ssmove +++| TDAMPFN[0] = PFC$FN[0]; 03299 M01S03264.ssmove +++| TDAMUI[0] = PFC$UI[0]; 03300 M01S03265.ssmove +++| TDAMSBF[0] = PFC$SF[0]; 03301 M01S03266.ssmove +++| TDAMFAM[0] = MVARG$FM[0]; 03302 M01S03267.ssmove +++| TDAMCDT[0] = PFC$CD[0]; 03303 M01S03268.ssmove +++| TDAMAL[0] = PFC$AL[0]; 03304 M01S03269.ssmove +++| TDAMFFF[0] = PFC$AFFRE[0]; 03305 M01S03270.ssmove +++| TDAMFFF[0] = PFC$AFFRE[0]; 03306 M01S03271.ssmove +++| EXT$AFOBS[0] = PFC$AFOBS[0]; 03307 M01S03272.ssmove +++| EXT$RES[0] = RES; 03308 M01S03273.ssmove +++| EXT$FTYPE[0] = FTYPE; 03309 M01S03274.ssmove +++| 03310 M01S03275.ssmove +++|# 03311 M01S03276.ssmove +++|* SAVE DATES AND ACCESS COUNT FOR THE REPORT FILE. 03312 M01S03277.ssmove +++|# 03313 M01S03278.ssmove +++| 03314 M01S03279.ssmove +++| TDAMLMD[0] = PFC$MDD[0]; 03315 M01S03280.ssmove +++| TDAMLAD[0] = PFC$ADD[0]; 03316 M01S03281.ssmove +++| TDAMACC[0] = PFC$AC[0]; 03317 M01S03282.ssmove +++| 03318 M01S03283.ssmove +++| WRITEW(MV$FET[FILEMO],MV$WBUF[0],MVWBUFL,FLAG); 03319 M01S03284.ssmove +++| END 03320 M01S03285.ssmove +++| 03321 M01S03286.ssmove +++| ZFILL(EXT$TDAM,3); # CLEAR FOR NEXT FILE # 03322 M01S03287.ssmove +++| FLAG = 0; 03323 M01S03288.ssmove +++| GETPFC(PEOCNT, FLAG); 03324 M01S03289.ssmove +++| IF FLAG NQ OK 03325 M01S03290.ssmove +++| THEN 03326 M01S03291.ssmove +++| BEGIN 03327 M01S03292.ssmove +++| EOPFC = TRUE; 03328 M01S03293.ssmove +++| TEST NXTPFC; 03329 M01S03294.ssmove +++| END 03330 M01S03295.ssmove +++| 03331 M01S03296.ssmove +++|# 03332 M01S03297.ssmove +++|* ESTABLISH FILE TYPE, SUBFAMILY AND DEVICE NUMBER INDICES. 03333 M01S03298.ssmove +++|# 03334 M01S03299.ssmove +++| 03335 M01S03300.ssmove +++| IF PFC$DA[0] 03336 M01S03301.ssmove +++| THEN 03337 M01S03302.ssmove +++| BEGIN 03338 M01S03303.ssmove +++| FTYPE = IXDA; 03339 M01S03304.ssmove +++| END 03340 M01S03305.ssmove +++| 03341 M01S03306.ssmove +++| ELSE 03342 M01S03307.ssmove +++| BEGIN 03343 M01S03308.ssmove +++| FTYPE = IXIA; 03344 M01S03309.ssmove +++| END 03345 M01S03310.ssmove +++| 03346 M01S03311.ssmove +++| TDAMIA[0] = NOT PFC$DA[0]; 03347 M01S03312.ssmove +++| SFX = PFC$SF[0]; 03348 M01S03313.ssmove +++| 03349 M01S03314.ssmove +++| IF PFC$EO[0] EQ 0 03350 M01S03315.ssmove +++| THEN 03351 M01S03316.ssmove +++| BEGIN 03352 M01S03317.ssmove +++| DNX = DN$TO$DNX[CNTR$DN[0]]; 03353 M01S03318.ssmove +++| END 03354 M01S03319.ssmove +++| 03355 M01S03320.ssmove +++| ELSE 03356 M01S03321.ssmove +++| BEGIN 03357 M01S03322.ssmove +++| DNX = DN$TO$DNX[PFC$EO[0]]; 03358 M01S03323.ssmove +++| END 03359 M01S03324.ssmove +++| 03360 M01S03325.ssmove +++| EXT$DNX[0] = DNX; 03361 M01S03326.ssmove +++| TDAMDN[0] = CNTR$DN[0]; 03362 M01S03327.ssmove +++| 03363 M01S03328.ssmove +++|# 03364 M01S03329.ssmove +++|* ISSUE DAYFILE MESSAGE IF ILLEGAL DEVICE INDEX. 03365 M01S03330.ssmove +++|# 03366 M01S03331.ssmove +++| 03367 M01S03332.ssmove +++| IF DNX EQ 0 03368 M01S03333.ssmove +++| THEN # IGNORE FILE # 03369 M01S03334.ssmove +++| BEGIN 03370 M01S03335.ssmove +++| MVMSG$LN[0] = " INCORRECT DEVICE INDEX."; 03371 M01S03336.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 03372 M01S03337.ssmove +++| TEST NXTPFC; 03373 M01S03338.ssmove +++| END 03374 M01S03339.ssmove +++| 03375 M01S03340.ssmove +++|# 03376 M01S03341.ssmove +++|* SET UP PFID AND GET FILE LENGTH, IF NECESSARY. 03377 M01S03342.ssmove +++|# 03378 M01S03343.ssmove +++| 03379 M01S03344.ssmove +++| TDAMPEO[0] = PEOCNT; 03380 M01S03345.ssmove +++| TDAMTRACK[0] = CNTR$TRK[0]; 03381 M01S03346.ssmove +++| TDAMSECTOR[0] = CNTR$SEC[0]; 03382 M01S03347.ssmove +++| 03383 M01S03348.ssmove +++| IF PFC$LF[0] EQ 0 AND PFC$DA[0] ## 03384 M01S03349.ssmove +++| AND(PFC$UI[0] LS DEF$UI OR PFC$UI[0] GR DEF$UI+7) 03385 M01S03350.ssmove +++| THEN # GET FILE LENGTH # 03386 M01S03351.ssmove +++| BEGIN 03387 M01S03352.ssmove +++| PFNAME = PFC$FN[0]; 03388 M01S03353.ssmove +++| BZFILL(PFNAME,TYPFILL"ZFILL",10); 03389 M01S03354.ssmove +++| UATTACH(LFNAME,FLAG,6,PFNAME,PTRD,PFC$UI[0],FAM, ## 03390 M01S03355.ssmove +++| TDAMPFID[0],PFC[0],PFC$CD[0],LOC(ERRMSG)); 03391 M01S03356.ssmove +++| FETP = LOC(SCR$FET[0]); 03392 M01S03357.ssmove +++| ZSETFET(FETP,LFNAME,0,0,SFETL); 03393 M01S03358.ssmove +++| RETERN(SCR$FET[0],RCL); # RETURN THE FILE # 03394 M01S03359.ssmove +++| END 03395 M01S03360.ssmove +++| 03396 M01S03361.ssmove +++|# 03397 M01S03362.ssmove +++|* CALCULATE RESIDENCE OF THE FILE AND UPDATE 03398 M01S03363.ssmove +++|* DEVICE OR SUBFAMILY STATISTICS ACCORDINGLY. 03399 M01S03364.ssmove +++|* 03400 M01S03365.ssmove +++|* DO NOT EXCLUDE ANY FILE HAVING *AFFRE* FLAG SET 03401 M01S03366.ssmove +++|* INCLUDING FILES LOCKED TO DISK AND FILES WITH AN 03402 M01S03367.ssmove +++|* OBSOLETE MSAS COPY. 03403 M01S03368.ssmove +++|# 03404 M01S03369.ssmove +++| 03405 M01S03370.ssmove +++| DISKIMAGE = (PFC$BT[0] NQ 0); 03406 M01S03371.ssmove +++| NUMMSS = 0; 03407 M01S03372.ssmove +++| IF PFC$AA[0] NQ 0 03408 M01S03373.ssmove +++| THEN # OBSOLETE COPY # 03409 M01S03374.ssmove +++| BEGIN 03410 M01S03375.ssmove +++| IF (PFC$AFOBS[0] AND NOT PFC$AFFRE[0]) 03411 M01S03376.ssmove +++| THEN 03412 M01S03377.ssmove +++| BEGIN 03413 M01S03378.ssmove +++| NUMMSS = 0; 03414 M01S03379.ssmove +++| END 03415 M01S03380.ssmove +++| 03416 M01S03381.ssmove +++| ELSE 03417 M01S03382.ssmove +++| BEGIN 03418 M01S03383.ssmove +++| NUMMSS = 1; 03419 M01S03384.ssmove +++| END 03420 M01S03385.ssmove +++| 03421 M01S03386.ssmove +++| END 03422 M01S03387.ssmove +++| 03423 M01S03388.ssmove +++| IF NUMMSS NQ 0 AND NOT DISKIMAGE 03424 M01S03389.ssmove +++| THEN # FILE RELEASED # 03425 M01S03390.ssmove +++| BEGIN 03426 M01S03391.ssmove +++| RES = RESIDENCE"RES$M86"; 03427 M01S03392.ssmove +++| SFRL$NF[FTYPE,SFX] = SFRL$NF[FTYPE,SFX] + 1; 03428 M01S03393.ssmove +++| SFRL$PRU[FTYPE,SFX] = SFRL$PRU[FTYPE,SFX] + PFC$LF[0]; 03429 M01S03394.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] + 1; 03430 M01S03395.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] + PFC$LF[0]; 03431 M01S03396.ssmove +++| END 03432 M01S03397.ssmove +++| 03433 M01S03398.ssmove +++| IF DISKIMAGE 03434 M01S03399.ssmove +++| THEN # FILE ON DISK # 03435 M01S03400.ssmove +++| BEGIN 03436 M01S03401.ssmove +++| RES = RESIDENCE"RES$RMS"; 03437 M01S03402.ssmove +++| DEV$NF[FTYPE,DNX] = DEV$NF[FTYPE,DNX] + 1; 03438 M01S03403.ssmove +++| DEV$TRPRU[FTYPE,DNX] = DEV$TRPRU[FTYPE,DNX] + PFC$LF[0]; 03439 M01S03404.ssmove +++| IF FTYPE EQ IXIA 03440 M01S03405.ssmove +++| THEN 03441 M01S03406.ssmove +++| BEGIN 03442 M01S03407.ssmove +++| DEV$PRU[FTYPE,DNX] = DEV$PRU[FTYPE,DNX] + PFC$LF[0]; 03443 M01S03408.ssmove +++| END 03444 M01S03409.ssmove +++| 03445 M01S03410.ssmove +++| ELSE 03446 M01S03411.ssmove +++| BEGIN 03447 M01S03412.ssmove +++| PRUTRK = DEV$SECTR[IXDA,DNX]; 03448 M01S03413.ssmove +++| TRUPRU = (((PFC$LF[0] + 1) / PRUTRK) + 1) * PRUTRK; 03449 M01S03414.ssmove +++| DEV$PRU[FTYPE,DNX] = DEV$PRU[FTYPE,DNX] + TRUPRU; 03450 M01S03415.ssmove +++| END 03451 M01S03416.ssmove +++| 03452 M01S03417.ssmove +++| IF NUMMSS NQ 0 03453 M01S03418.ssmove +++| THEN # FILE ALSO ON MSAS # 03454 M01S03419.ssmove +++| BEGIN 03455 M01S03420.ssmove +++| RES = RESIDENCE"RES$RMS$MF"; 03456 M01S03421.ssmove +++| SFDM$NF[FTYPE,SFX] = SFDM$NF[FTYPE,SFX] + 1; 03457 M01S03422.ssmove +++| SFDM$PRU[FTYPE,SFX] = SFDM$PRU[FTYPE,SFX] + PFC$LF[0]; 03458 M01S03423.ssmove +++| END 03459 M01S03424.ssmove +++| 03460 M01S03425.ssmove +++| END 03461 M01S03426.ssmove +++| 03462 M01S03427.ssmove +++| IF FTYPE EQ IXDA 03463 M01S03428.ssmove +++| AND PFC$LF[0] NQ 0 03464 M01S03429.ssmove +++| THEN # IGNORE SYSTEM SECTOR # 03465 M01S03430.ssmove +++| BEGIN 03466 M01S03431.ssmove +++| PFC$LF[0] = PFC$LF[0] - 1; 03467 M01S03432.ssmove +++| END 03468 M01S03433.ssmove +++|
Line S03434 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03469 M02S03434.ssmove2 ---|#
Line S03435 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03470 M02S03435.ssmove2 ---|* DO NOT PROCESS ZERO LENGTH FILES.
Line S03436 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03471 M02S03436.ssmove2 ---|#
Line S03437 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03472 M02S03437.ssmove2 ---|
Line S03438 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03473 M02S03438.ssmove2 ---| IF PFC$LF[0] EQ 0
Line S03439 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03474 M02S03439.ssmove2 ---| THEN
Line S03440 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03475 M02S03440.ssmove2 ---| BEGIN
Line S03441 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03476 M02S03441.ssmove2 ---| TEST NXTPFC;
Line S03442 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03477 M02S03442.ssmove2 ---| END
Line S03443 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 03478 M02S03443.ssmove2 ---| 03479 M01S03444.ssmove +++|# 03480 M01S03445.ssmove +++|* SEE IF THE FILE IS TO BE EXCLUDED DUE TO RUN-TIME PARAMETERS 03481 M01S03446.ssmove +++|* (PX, UI OPTIONS), IF THE FILE IS IN A RESERVED USER INDEX, 03482 M01S03447.ssmove +++|* OR IF IT IS LOCKED TO DISK. 03483 M01S03448.ssmove +++|# 03484 M01S03449.ssmove +++| 03485 M01S03450.ssmove +++| IF (PFC$DA[0] AND PX$D[0] ) # DIRECT ACCESS FILE # 03486 M01S03451.ssmove +++| OR ( NOT PFC$DA[0] AND PX$I[0] ) # INDIRECT ACCESS FILE # 03487 M01S03452.ssmove +++| 03488 M01S03453.ssmove +++| OR ( MVARG$UI[0] NQ 0 # NOT THE SELECTED # 03489 M01S03454.ssmove +++| AND PFC$UI[0] NQ MVARG$UI[0] ) # USER INDEX # 03490 M01S03455.ssmove +++| 03491 M01S03456.ssmove +++| OR ( PFC$UI[0] GQ DEF$UI # MSS USER INDICES # 03492 M01S03457.ssmove +++| AND PFC$UI[0] LQ DEF$UI+7 ) ## 03493 M01S03458.ssmove +++| 03494 M01S03459.ssmove +++| OR ( PFC$UI[0] EQ SYS$UI ) # SYSTEM USER INDEX # 03495 M01S00001.ssmove3 +++| 03496 M01S00002.ssmove3 +++| OR (PFC$UI[0] EQ FPF$UI) # FLAWPF USER INDEX # 03497 M01S03460.ssmove +++| 03498 M01S03461.ssmove +++| OR ( PFC$RS[0] EQ RSLK # FILE LOCKED TO DISK # 03499 M01S03462.ssmove +++| AND NOT PFC$AFFRE[0]) 03500 M01S03463.ssmove +++| 03501 M01S03464.ssmove +++| THEN # DO NOT CONSIDER THIS FILE FOR 03502 M01S03465.ssmove +++| FURTHER PROCESSING # 03503 M01S03466.ssmove +++| BEGIN 03504 M01S03467.ssmove +++| TEST NXTPFC; 03505 M01S03468.ssmove +++| END 03506 M01S03469.ssmove +++| 03507 M01S03470.ssmove +++|# 03508 M01S03471.ssmove +++|* PROCESS THE SPECIAL FLAGS (*PO* OR FREE-UP FLAG IN *PFC*) 03509 M01S03472.ssmove +++|* AS FOLLOWS.. 03510 M01S03473.ssmove +++|* 03511 M01S03474.ssmove +++|* 1) PO=F (FREE FILE FROM CARTRIDGE) 03512 M01S03475.ssmove +++|* IF THE ASA NQ 0 THEN SET *CLR*. ALLOW FILE TO 03513 M01S03476.ssmove +++|* BE SELECTED TO BE STAGED. 03514 M01S03477.ssmove +++|* 03515 M01S03478.ssmove +++|* 2) PO=A (ARCHIVE OR RELEASE FROM DISK) 03516 M01S03479.ssmove +++|* FORCE RELEASE BY SETTING *REL* UNLESS THE FILE 03517 M01S03480.ssmove +++|* IS ALREADY ARCHIVED. THE CHECK TO VERIFY THAT 03518 M01S03481.ssmove +++|* THE *BR=Y* REQUIREMENT IS MET IS MADE FURTHER ON. 03519 M01S03482.ssmove +++|* 03520 M01S03483.ssmove +++|* 3) PO=S OR *CLR* OR PFC$AFFRE SET (STAGE TO DISK) 03521 M01S03484.ssmove +++|* FORCE THE FILE TO BE STAGED TO DISK BY SETTING 03522 M01S03485.ssmove +++|* *STG* UNLESS THE FILE IS ALREADY ON DISK. SET 03523 M01S03486.ssmove +++|* *NOREL* TO PROHIBIT THE FILE FROM BEING RELEASED 03524 M01S03487.ssmove +++|* FROM DISK. IF THE FREE FILE FLAG IS SET IN THE 03525 M01S03488.ssmove +++|* *PFC* STAGER WILL CLEAR THE *ASA* AFTER STAGING 03526 M01S03489.ssmove +++|* THE FILE TO DISK. 03527 M01S03490.ssmove +++|* 03528 M01S03491.ssmove +++|* 4) PO=B (BACKUP OR DESTAGE TO MSAS) 03529 M01S03492.ssmove +++|* SET THE *DES* FLAG IF THE FILE RESIDES ON DISK ONLY. 03530 M01S03493.ssmove +++|# 03531 M01S03494.ssmove +++| 03532 M01S03495.ssmove +++| MVCKSF(PFC$FN[0],PFC$UI[0],PO); # SEE IF FILE SELECTED # 03533 M01S03496.ssmove +++| 03534 M01S03497.ssmove +++| EXT$CLR[0] = (PFC$AA[0] NQ 0) # CASE 1 # 03535 M01S03498.ssmove +++| AND ((RES EQ RESIDENCE"RES$RMS$MF" AND PFC$AFFRE[0]) 03536 M01S03499.ssmove +++| OR (PO EQ "F")); 03537 M01S03500.ssmove +++| 03538 M01S03501.ssmove +++| EXT$REL[0] = (PO EQ "A") # CASE 2 # 03539 M01S03502.ssmove +++| AND (RES NQ RESIDENCE"RES$M86"); 03540 M01S03503.ssmove +++| 03541 M01S03504.ssmove +++| EXT$STG[0] = (PO EQ "S" OR EXT$CLR[0] OR PFC$AFFRE[0]) ## 03542 M01S03505.ssmove +++| AND (RES EQ RESIDENCE"RES$M86"); 03543 M01S03506.ssmove +++| NOREL = EXT$STG[0] OR EXT$CLR[0]; 03544 M01S03507.ssmove +++| 03545 M01S03508.ssmove +++|# 03546 M01S03509.ssmove +++|* IF ERROR FLAGS ARE SET IN THE *PFC* DO NOT ALLOW THE FILE 03547 M01S03510.ssmove +++|* TO BE STAGED. 03548 M01S03511.ssmove +++|# 03549 M01S03512.ssmove +++| 03550 M01S03513.ssmove +++| IF EXT$STG[0] 03551 M01S03514.ssmove +++| THEN 03552 M01S03515.ssmove +++| BEGIN # CHECK *PFC* FOR ERRORS # 03553 M01S03516.ssmove +++| IF PFC$AFPDE[0] # DATA ERROR # 03554 M01S03517.ssmove +++| OR PFC$AFPSE[0] # SYSTEM ERROR # 03555 M01S03518.ssmove +++| OR PFC$AFTMP[0] # TEMPORARY ERROR # 03556 M01S03519.ssmove +++| THEN 03557 M01S03520.ssmove +++| BEGIN 03558 M01S03521.ssmove +++| MSG1$FN[0] = PFC$FN[0]; 03559 M01S03522.ssmove +++| XWOD(PFC$AA[0],DISASA); 03560 M01S03523.ssmove +++| MSG1$ASA[0] = DIS$ASA[0]; 03561 M01S03524.ssmove +++| MVMSG$LN[0] = " PFC ERROR FLAGS SET"; 03562 M01S03525.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 03563 M01S03526.ssmove +++| MESSAGE(MSG1[0],UDFL1); 03564 M01S03527.ssmove +++| EXT$STG[0] = FALSE; # PROHIBIT STAGING # 03565 M01S03528.ssmove +++| EXT$CLR[0] = FALSE; 03566 M01S03529.ssmove +++| TEST NXTPFC; 03567 M01S03530.ssmove +++| END 03568 M01S03531.ssmove +++| END # CHECK *PFC* FOR ERRORS # 03569 M01S03532.ssmove +++| 03570 M01S03533.ssmove +++|# 03571 M01S03534.ssmove +++|* IF THE FILE RESIDES ON DISK, SELECT IT TO BE DESTAGED IF 03572 M01S03535.ssmove +++|* SPECIFIED BY THE FILE-S *PO* ATTRIBUTE, OR IF ITS DESTAGE 03573 M01S03536.ssmove +++|* VALUE EXCEEDS THE THRESHOLD. 03574 M01S03537.ssmove +++|# 03575 M01S03538.ssmove +++| 03576 M01S03539.ssmove +++| IF RES EQ RESIDENCE"RES$RMS" 03577 M01S03540.ssmove +++| THEN # SELECT DESTAGE IF APPROPRIATE # 03578 M01S03541.ssmove +++| BEGIN 03579 M01S03542.ssmove +++| IF PO EQ "B" 03580 M01S03543.ssmove +++| THEN # CASE 4 # 03581 M01S03544.ssmove +++| BEGIN 03582 M01S03545.ssmove +++| EXT$DES[0] = TRUE; 03583 M01S03546.ssmove +++| END 03584 M01S03547.ssmove +++| 03585 M01S03548.ssmove +++| ELSE # CALCULATE DESTAGE VALUE AND 03586 M01S03549.ssmove +++| COMPARE TO THRESHOLD # 03587 M01S03550.ssmove +++| BEGIN 03588 M01S03551.ssmove +++| MVVALDS(TMPI,PO); # CALCULATE DESTAGE VALUE # 03589 M01S03552.ssmove +++| EXT$DES[0] = TMPI GQ FR$VAL[FTYPE,IXDS,FRTH]; 03590 M01S03553.ssmove +++| EXT$CDES[0] = NOT EXT$DES[0]; # IN CASE FILE IS RELEASED # 03591 M01S03554.ssmove +++| EXT$DESV[0] = TMPI; 03592 M01S03555.ssmove +++| END 03593 M01S03556.ssmove +++| 03594 M01S03557.ssmove +++| END 03595 M01S03558.ssmove +++| 03596 M01S03559.ssmove +++|# 03597 M01S03560.ssmove +++|* CHECK TO SEE IF THE FILE CAN BE RELEASED. 03598 M01S03561.ssmove +++|* - VERIFY *BR=Y* REQUIREMENT SATISFIED. 03599 M01S03562.ssmove +++|* - VERIFY *DN* PARAMETER SATISFIED. 03600 M01S03563.ssmove +++|* - VERIFY FILE NOT ALREADY SELECTED FOR RELEASE. 03601 M01S03564.ssmove +++|* - CALCULATE RELEASE VALUE AND IF GREATER THAN 03602 M01S03565.ssmove +++|* THE THRESHOLD, SAVE IT FOR FUTURE USE IN 03603 M01S03566.ssmove +++|* SELECTING AMONG THE CANDIDATE FILES. 03604 M01S03567.ssmove +++|# 03605 M01S03568.ssmove +++| 03606 M01S03569.ssmove +++|# 03607 M01S03570.ssmove +++|* IF A DUMP TAPE BACKUP IS REQUIRED, PROHIBIT 03608 M01S03571.ssmove +++|* RELEASING THE FILE. 03609 M01S03572.ssmove +++|# 03610 M01S03573.ssmove +++| 03611 M01S03574.ssmove +++| GETDI(CNTR$EQ[0],INHBDT); # GET DEVICE INHIBIT DATE/TIME # 03612 M01S03575.ssmove +++| IF PFC$BR[0] EQ BRAL AND INHBDT LQ PFC$UD[0] 03613 M01S03576.ssmove +++| THEN # PROHIBIT RELEASING THE FILE # 03614 M01S03577.ssmove +++| BEGIN 03615 M01S03578.ssmove +++| EXT$REL[0] = FALSE; 03616 M01S03579.ssmove +++| NOREL = TRUE; 03617 M01S03580.ssmove +++| END 03618 M01S03581.ssmove +++| 03619 M01S03582.ssmove +++| IF EXT$REL[0] 03620 M01S03583.ssmove +++| THEN # COUNT PRU TO BE RELEASED # 03621 M01S03584.ssmove +++| BEGIN 03622 M01S03585.ssmove +++| DEV$RELF[FTYPE,DNX] = DEV$RELF[FTYPE,DNX] + 1; 03623 M01S03586.ssmove +++| DEV$TRPRU[FTYPE,DNX] = DEV$TRPRU[FTYPE,DNX] - PFC$LF[0]; 03624 M01S03587.ssmove +++| IF FTYPE EQ IXIA 03625 M01S03588.ssmove +++| THEN 03626 M01S03589.ssmove +++| BEGIN 03627 M01S03590.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] + PFC$LF[0]; 03628 M01S03591.ssmove +++| END 03629 M01S03592.ssmove +++| 03630 M01S03593.ssmove +++| ELSE 03631 M01S03594.ssmove +++| BEGIN 03632 M01S03595.ssmove +++| PRUTRK = DEV$SECTR[IXDA,DNX]; 03633 M01S03596.ssmove +++| TRUPRU = (((PFC$LF[0]+1) / PRUTRK) + 1) * PRUTRK; 03634 M01S03597.ssmove +++| DEV$RELP[FTYPE,DNX] = DEV$RELP[FTYPE,DNX] + TRUPRU; 03635 M01S03598.ssmove +++| END 03636 M01S03599.ssmove +++| 03637 M01S03600.ssmove +++| TEST NXTPFC; 03638 M01S03601.ssmove +++| END 03639 M01S03602.ssmove +++| 03640 M01S03603.ssmove +++| IF MV$DNX NQ 0 ## 03641 M01S03604.ssmove +++| AND MV$DNX NQ DNX # FAILS *DN* PARAMETER # 03642 M01S03605.ssmove +++| THEN # DO NOT CONSIDER FILE FOR 03643 M01S03606.ssmove +++| DESTAGING OR RELEASING # 03644 M01S03607.ssmove +++| BEGIN 03645 M01S03608.ssmove +++| EXT$DES[0] = FALSE; # DO NOT DESTAGE # 03646 M01S03609.ssmove +++| TEST NXTPFC; 03647 M01S03610.ssmove +++| END 03648 M01S03611.ssmove +++| 03649 M01S03612.ssmove +++| IF NOREL 03650 M01S03613.ssmove +++| THEN # DO NOT RELEASE # 03651 M01S03614.ssmove +++| BEGIN 03652 M01S03615.ssmove +++| TEST NXTPFC; 03653 M01S03616.ssmove +++| END 03654 M01S03617.ssmove +++| 03655 M01S03618.ssmove +++| IF RES NQ RESIDENCE"RES$M86" 03656 M01S03619.ssmove +++| THEN 03657 M01S03620.ssmove +++| BEGIN 03658 M01S03621.ssmove +++| MVVALRL(TMPI,PO); # CALCULATE RELEASE VALUE # 03659 M01S03622.ssmove +++| EXT$CREL[0] = TMPI GQ FR$VAL[FTYPE,IXRL,FRTH]; 03660 M01S03623.ssmove +++| EXT$RELV[0] = TMPI; 03661 M01S03624.ssmove +++| TEST NXTPFC; 03662 M01S03625.ssmove +++| END 03663 M01S03626.ssmove +++| 03664 M01S03627.ssmove +++| END # NEXT PFC # 03665 M01S03628.ssmove +++| 03666 M01S03629.ssmove +++|# 03667 M01S03630.ssmove +++|* AFTER PROCESSING ALL FILES, 03668 M01S03631.ssmove +++|* - FLUSH THE PASS 1 OUTPUT BUFFER TO DISK. 03669 M01S03632.ssmove +++|* - CALCULATE THE AMOUNT OF DISK SPACE NEEDED 03670 M01S03633.ssmove +++|* TO BE RELEASED ON EACH DEVICE. 03671 M01S03634.ssmove +++|# 03672 M01S03635.ssmove +++| 03673 M01S03636.ssmove +++| WRITER(MV$FET[FILEMO],RCL); 03674 M01S03637.ssmove +++| REWIND(MV$FET[FILEMO],RCL); 03675 M01S03638.ssmove +++| 03676 M01S03639.ssmove +++|# 03677 M01S03640.ssmove +++|* CALCULATE THE NUMBER OF PRU TO BE RELEASED ON EACH DEVICE. 03678 M01S03641.ssmove +++|# 03679 M01S03642.ssmove +++| 03680 M01S03643.ssmove +++| SLOWFOR I = 1 STEP 1 UNTIL MAXDEV 03681 M01S03644.ssmove +++| DO 03682 M01S03645.ssmove +++| BEGIN # EACH DEVICE # 03683 M01S03646.ssmove +++| IF DEV$MAST[IXIA,I] 03684 M01S03647.ssmove +++| THEN # USE MASTER DEVICE GOALS # 03685 M01S03648.ssmove +++| BEGIN 03686 M01S03649.ssmove +++| TMPI = SMMG; 03687 M01S03650.ssmove +++| END 03688 M01S03651.ssmove +++| 03689 M01S03652.ssmove +++| ELSE # USE SECONDARY DEVICE GOALS # 03690 M01S03653.ssmove +++| BEGIN 03691 M01S03654.ssmove +++| TMPI = SMSG; 03692 M01S03655.ssmove +++| END 03693 M01S03656.ssmove +++| 03694 M01S03657.ssmove +++| SLOWFOR FTYPE = IXDA STEP IXIA-IXDA UNTIL IXIA 03695 M01S03658.ssmove +++| DO 03696 M01S03659.ssmove +++| BEGIN 03697 M01S03660.ssmove +++| 03698 M01S03661.ssmove +++| GOAL = SM$VAL[FTYPE,IXRL,TMPI]*DEV$TPRU[IXIA,I]/100; 03699 M01S03662.ssmove +++| DEV$NEED[FTYPE,I] = ## 03700 M01S03663.ssmove +++| DEV$PRU[FTYPE,I] - GOAL - DEV$RELP[FTYPE,I]; 03701 M01S03664.ssmove +++| END 03702 M01S03665.ssmove +++| 03703 M01S03666.ssmove +++| END # EACH DEVICE # 03704 M01S03667.ssmove +++| 03705 M01S03668.ssmove +++| RETURN; 03706 M01S03669.ssmove +++| 03707 M01S03670.ssmove +++| END # MVPFRD # 03708 M01S03671.ssmove +++| 03709 M01S03672.ssmove +++| TERM 03710 M01S03673.ssmove +++|PROC MVPRNDT(PDATE,ACC$CT,DVAL,RVAL); 03711 M01S03674.ssmove +++|# TITLE MVPRNDT - PRINT DATE AND ACCESS COUNTS. # 03712 M01S03675.ssmove +++| 03713 M01S03676.ssmove +++| BEGIN # MVPRNDT # 03714 M01S03677.ssmove +++| 03715 M01S03678.ssmove +++|# 03716 M01S03679.ssmove +++|** MVPRNDT - PRINT DATE AND ACCESS COUNTS. 03717 M01S03680.ssmove +++|* 03718 M01S03681.ssmove +++|* THIS PROCEDURE PRINTS THE DATE AND THE ACCESS COUNT FOR 03719 M01S03682.ssmove +++|* A FILE ON THE REPORT FILE. 03720 M01S03683.ssmove +++|* 03721 M01S03684.ssmove +++|* PROC MVPRNDT. 03722 M01S03685.ssmove +++|* 03723 M01S03686.ssmove +++|* ENTRY. PDATE = *YYMMDD*. 03724 M01S03687.ssmove +++|* ACC$CT = ACCESS COUNT. 03725 M01S03688.ssmove +++|* 03726 M01S03689.ssmove +++|* EXIT. COL. 33-40 CONTAIN *YY.MM.DD*. 03727 M01S03690.ssmove +++|* COL. 42-48 CONTAIN ACCESS COUNT. 03728 M01S03691.ssmove +++|# 03729 M01S03692.ssmove +++| 03730 M01S03693.ssmove +++| ITEM PDATE C(10); # PACKED DATE # 03731 M01S03694.ssmove +++| ITEM ACC$CT I; # ACCESS COUNT # 03732 M01S03695.ssmove +++| ITEM DVAL U; # CALCULATED DESTAGE VALUE # 03733 M01S03696.ssmove +++| ITEM RVAL U; # CALCULATED RELEASE VALUE # 03734 M01S03697.ssmove +++| 03735 M01S03698.ssmove +++|# 03736 M01S03699.ssmove +++|**** PROC MVPRNDT - XREF LIST BEGIN. 03737 M01S03700.ssmove +++|# 03738 M01S03701.ssmove +++| 03739 M01S03702.ssmove +++| XREF 03740 M01S03703.ssmove +++| BEGIN 03741 M01S03704.ssmove +++| PROC RPLINE; # WRITE LINE # 03742 M01S03705.ssmove +++| FUNC XCDD C(10); # BINARY TO DECIMAL DISPLAY # 03743 M01S03706.ssmove +++| END 03744 M01S03707.ssmove +++| 03745 M01S03708.ssmove +++|# 03746 M01S03709.ssmove +++|**** PROC MVPRNDT - XREF LIST END. 03747 M01S03710.ssmove +++|# 03748 M01S03711.ssmove +++| 03749 M01S03712.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 03750 M01S03713.ssmove +++| 03751 M01S03714.ssmove +++|*CALL,COMBFAS 03752 M01S03715.ssmove +++|*CALL,COMTMOV 03753 M01S03716.ssmove +++| 03754 M01S03717.ssmove +++| ITEM TMPC C(10); # TEMPORARY CHARACTER # 03755 M01S03718.ssmove +++| CONTROL EJECT; 03756 M01S03719.ssmove +++| TMPC = XCDD(ACC$CT); 03757 M01S03720.ssmove +++| RPLINE(LISTFETP,TMPC,40,10,1); # WRITE ACCESS COUNT # 03758 M01S03721.ssmove +++| 03759 M01S03722.ssmove +++| RPLINE(LISTFETP,"YY.MM.DD",34,8,1); 03760 M01S03723.ssmove +++| 03761 M01S03724.ssmove +++| CHR$10[0] = XCDD(70+B<42,6>PDATE); # YEAR # 03762 M01S03725.ssmove +++| RPLINE(LISTFETP,CHR$R2[0],34,2,1); 03763 M01S03726.ssmove +++| 03764 M01S03727.ssmove +++|# 03765 M01S03728.ssmove +++|* FORCE LEADING ZERO ON DAY AND MONTH BY ADDING 100. 03766 M01S03729.ssmove +++|# 03767 M01S03730.ssmove +++| 03768 M01S03731.ssmove +++| CHR$10[0] = XCDD(100+B<48,6>PDATE); # MONTH # 03769 M01S03732.ssmove +++| RPLINE(LISTFETP,CHR$R2[0],37,2,1); 03770 M01S03733.ssmove +++| 03771 M01S03734.ssmove +++| CHR$10[0] = XCDD(100+B<54,6>PDATE); # DATE # 03772 M01S03735.ssmove +++| RPLINE(LISTFETP,CHR$R2[0],40,2,1); 03773 M01S03736.ssmove +++| 03774 M01S03737.ssmove +++| IF DVAL GQ 0 03775 M01S03738.ssmove +++| THEN 03776 M01S03739.ssmove +++| BEGIN 03777 M01S03740.ssmove +++| CHR$10[0] = XCDD(DVAL); 03778 M01S03741.ssmove +++| RPLINE(LISTFETP,CHR$10[0],87,10,1); 03779 M01S03742.ssmove +++| END 03780 M01S03743.ssmove +++| 03781 M01S03744.ssmove +++| ELSE # NEGATIVE VALUE # 03782 M01S03745.ssmove +++| BEGIN 03783 M01S03746.ssmove +++| RPLINE(LISTFETP,"-1",95,2,1); 03784 M01S03747.ssmove +++| END 03785 M01S03748.ssmove +++| 03786 M01S03749.ssmove +++| IF RVAL GQ 0 03787 M01S03750.ssmove +++| THEN 03788 M01S03751.ssmove +++| BEGIN 03789 M01S03752.ssmove +++| CHR$10[0] = XCDD(RVAL); 03790 M01S03753.ssmove +++| RPLINE(LISTFETP,CHR$10[0],98,10,1); 03791 M01S03754.ssmove +++| END 03792 M01S03755.ssmove +++| 03793 M01S03756.ssmove +++| ELSE # NEGATIVE VALUE # 03794 M01S03757.ssmove +++| BEGIN 03795 M01S03758.ssmove +++| RPLINE(LISTFETP,"-1",106,2,1); 03796 M01S03759.ssmove +++| END 03797 M01S03760.ssmove +++| 03798 M01S03761.ssmove +++| 03799 M01S03762.ssmove +++| RETURN; 03800 M01S03763.ssmove +++| END # MVPRNDT # 03801 M01S03764.ssmove +++| 03802 M01S03765.ssmove +++| TERM 03803 M01S03766.ssmove +++|FUNC MVRELAG(RELDATE) U; 03804 M01S03767.ssmove +++|# TITLE MVRELAG - CALCULATE RELATIVE AGE. # 03805 M01S03768.ssmove +++| 03806 M01S03769.ssmove +++| BEGIN # MVRELAG # 03807 M01S03770.ssmove +++| 03808 M01S03771.ssmove +++|# 03809 M01S03772.ssmove +++|** MVRELAG - CALCULATE RELATIVE AGE. 03810 M01S03773.ssmove +++|* 03811 M01S03774.ssmove +++|* THIS FUNCTION CALCULATES THE RELATIVE AGE OF AN ITEM 03812 M01S03775.ssmove +++|* GIVEN A DATE IN PACKED FORMAT. THIS AGE IS THE NUMBER 03813 M01S03776.ssmove +++|* OF DAYS SINCE JAN 01, 1970. 03814 M01S03777.ssmove +++|* THE ABSOLUTE AGE OF AN ITEM IS CALCULATED BY THE CALLING 03815 M01S03778.ssmove +++|* PROGRAMS WHICH SUBTRACT THE RELATIVE AGE OF THE ITEM 03816 M01S03779.ssmove +++|* FROM THE RELATIVE AGE OF THE CURRENT DATE. 03817 M01S03780.ssmove +++|* IF THE DIFFERENCE BETWEEN THE CURRENT DATE AND THE 03818 M01S03781.ssmove +++|* LAST ACCESS DATE OR MODIFY DATE IS LESS THAN 30 DAYS, 03819 M01S03782.ssmove +++|* THEIR DIFFERENCE AS CALCULATED BY THIS FUNCTION WILL 03820 M01S03783.ssmove +++|* BE CALCULATED CORRECTLY. IF THE DIFFERENCE IS MORE 03821 M01S03784.ssmove +++|* THAN 30 DAYS, THEN A 1 DAY ERROR MAY BE INTRODUCED. 03822 M01S03785.ssmove +++|* IT IS ASSUMED THAT A 3 PERCENT ERROR IS NOT OF CONCERN 03823 M01S03786.ssmove +++|* FOR THE PURPOSES OF *SSMOVE*. 03824 M01S03787.ssmove +++|* 03825 M01S03788.ssmove +++|* FUNC MVRELAG( (RELDATE) ). 03826 M01S03789.ssmove +++|* 03827 M01S03790.ssmove +++|* ENTRY. RELDATE = *YYMMDD* OF AN OBJECT. 03828 M01S03791.ssmove +++|* 03829 M01S03792.ssmove +++|* EXIT. MVRELAG = NUMBER OF DAYS SINCE 70/01/01. 03830 M01S03793.ssmove +++|# 03831 M01S03794.ssmove +++| 03832 M01S03795.ssmove +++| ITEM RELDATE C(10); # *YYMMDD* # 03833 M01S03796.ssmove +++| 03834 M01S03797.ssmove +++| 03835 M01S03798.ssmove +++| ITEM DAY U; # *DD* FROM *RELDATE* # 03836 M01S03799.ssmove +++| ITEM MONTH U; # *MM* FROM *RELDATE* # 03837 M01S03800.ssmove +++| ITEM TMPI I; # TEMPORARY # 03838 M01S03801.ssmove +++| ITEM YEAR U; # *YY* FROM *RELDATE* # 03839 M01S03802.ssmove +++| 03840 M01S03803.ssmove +++| ARRAY MONTHS [1:12] S(1); # TOTAL DAYS IN PREVIOUS MONTHS # 03841 M01S03804.ssmove +++| BEGIN 03842 M01S03805.ssmove +++| ITEM MON$TOT I(00,00,60) = [ ## 03843 M01S03806.ssmove +++| 0, 03844 M01S03807.ssmove +++| 31, 03845 M01S03808.ssmove +++| 59, 03846 M01S03809.ssmove +++| 90, 03847 M01S03810.ssmove +++| 120, 03848 M01S03811.ssmove +++| 151, 03849 M01S03812.ssmove +++| 181, 03850 M01S03813.ssmove +++| 212, 03851 M01S03814.ssmove +++| 243, 03852 M01S03815.ssmove +++| 273, 03853 M01S03816.ssmove +++| 304, 03854 M01S03817.ssmove +++| 334]; 03855 M01S03818.ssmove +++| END 03856 M01S03819.ssmove +++| 03857 M01S03820.ssmove +++| CONTROL EJECT; 03858 M01S03821.ssmove +++| YEAR = B<42,6>RELDATE; 03859 M01S03822.ssmove +++| MONTH = B<48,6>RELDATE; 03860 M01S03823.ssmove +++| DAY = B<54,6>RELDATE; 03861 M01S03824.ssmove +++| 03862 M01S03825.ssmove +++| TMPI = YEAR*365 + MON$TOT[MONTH] + DAY; 03863 M01S03826.ssmove +++| 03864 M01S03827.ssmove +++| IF( (YEAR/4)*4 EQ YEAR) AND (MONTH EQ 3) 03865 M01S03828.ssmove +++| THEN 03866 M01S03829.ssmove +++| BEGIN 03867 M01S03830.ssmove +++| TMPI = TMPI + 1; 03868 M01S03831.ssmove +++| END 03869 M01S03832.ssmove +++| 03870 M01S03833.ssmove +++| MVRELAG = TMPI; 03871 M01S03834.ssmove +++| RETURN; 03872 M01S03835.ssmove +++| END 03873 M01S03836.ssmove +++| 03874 M01S03837.ssmove +++| TERM 03875 M01S03838.ssmove +++|PROC MVRPTDS((ABNDN)); 03876 M01S03839.ssmove +++|# TITLE MVRPTDS - REPORT DEVICE STATUS. # 03877 M01S03840.ssmove +++| 03878 M01S03841.ssmove +++| BEGIN # MVRPTDS # 03879 M01S03842.ssmove +++| 03880 M01S03843.ssmove +++|# 03881 M01S03844.ssmove +++|** MVRPTDS - REPORT DEVICE STATUS. 03882 M01S03845.ssmove +++|* 03883 M01S03846.ssmove +++|* THIS PROCEDURE PRINTS A PAGE SUMMARIZING THE SPACE 03884 M01S03847.ssmove +++|* AVAILABILITY ON EACH DEVICE. 03885 M01S03848.ssmove +++|* 03886 M01S03849.ssmove +++|* PROC MVRPTDS( (ABNDN) ). 03887 M01S03850.ssmove +++|* 03888 M01S03851.ssmove +++|* ENTRY. THE ARRAY *DEVSTAT* CONTAINS DATA TO BE PRINTED. 03889 M01S03852.ssmove +++|* 03890 M01S03853.ssmove +++|* EXIT. THE RELEVANT INFORMATION IS PRINTED ON THE OUTPUT FILE. 03891 M01S03854.ssmove +++|* 03892 M01S03855.ssmove +++|* MESSAGES. DEVICE SPACE GOAL NOT MET. 03893 M01S03856.ssmove +++|# 03894 M01S03857.ssmove +++| 03895 M01S03858.ssmove +++| ITEM ABNDN B; # PROCESS ABANDONMENT REPORT # 03896 M01S03859.ssmove +++| 03897 M01S03860.ssmove +++|# 03898 M01S03861.ssmove +++|**** PROC MVRPTDS - XREF LIST BEGIN. 03899 M01S03862.ssmove +++|# 03900 M01S03863.ssmove +++| 03901 M01S03864.ssmove +++| XREF 03902 M01S03865.ssmove +++| BEGIN 03903 M01S03866.ssmove +++| PROC MESSAGE; # ISSUE DAYFILE MESSAGE # 03904 M01S03867.ssmove +++| PROC RPEJECT; # PAGE EJECT # 03905 M01S03868.ssmove +++| PROC RPLINE; # WRITE LINE # 03906 M01S03869.ssmove +++| PROC RPSPACE; # PRINT BLANK LINES # 03907 M01S03870.ssmove +++| FUNC XCDD C(10); # BINARY TO DECIMAL DISPLAY CODE # 03908 M01S03871.ssmove +++| FUNC XCOD C(10); # BINARY TO OCTAL DISPLAY CODE # 03909 M01S03872.ssmove +++| END 03910 M01S03873.ssmove +++| 03911 M01S03874.ssmove +++|# 03912 M01S03875.ssmove +++|**** PROC MVRPTDS - XREF LIST END. 03913 M01S03876.ssmove +++|# 03914 M01S03877.ssmove +++| 03915 M01S03878.ssmove +++| 03916 M01S03879.ssmove +++| DEF HDR11 #" (BEFORE) DEVICE STATUS "#; 03917 M01S03880.ssmove +++| DEF HDR12 #" (AFTER) PERCENTS "#; 03918 M01S03881.ssmove +++| DEF HDR21 #"EO DN DT-N TYPE "#; 03919 M01S03882.ssmove +++| DEF HDR22 #" FILES / PRU "#; 03920 M01S03883.ssmove +++| DEF HDR23 #"EXP. GOAL "#; 03921 M01S03884.ssmove +++| DEF HDR24 #"FLAG."#; 03922 M01S03885.ssmove +++| 03923 M01S03886.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 03924 M01S03887.ssmove +++| 03925 M01S03888.ssmove +++|*CALL,COMBFAS 03926 M01S03889.ssmove +++|*CALL COMBSIT 03927 M01S03890.ssmove +++|*CALL,COMSPFM 03928 M01S03891.ssmove +++|*CALL,COMTMOV 03929 M01S03892.ssmove +++|*CALL,COMTMVD 03930 M01S03893.ssmove +++|*CALL,COMTOUT 03931 M01S03894.ssmove +++| 03932 M01S03895.ssmove +++| 03933 M01S03896.ssmove +++| ITEM EXP$PER I; # EXPECTED PERCENT SPACE AVAILABLE 03934 M01S03897.ssmove +++| # 03935 M01S03898.ssmove +++| ITEM EXP$PRU I; # EXPECTED PRU AVAILABLE # 03936 M01S03899.ssmove +++| ITEM GOAL I; # PERCENT DESIRED DISK SPACE # 03937 M01S03900.ssmove +++| ITEM I I; # LOOP INDEX # 03938 M01S03901.ssmove +++| ITEM IX I; # FILE TYPE INDEX # 03939 M01S03902.ssmove +++| ITEM SUBFAM I; # LOOP INDEX # 03940 M01S03903.ssmove +++| 03941 M01S03904.ssmove +++| 03942 M01S03905.ssmove +++| ARRAY FILETYPE[IXDA:IXIA] S(1); 03943 M01S03906.ssmove +++| BEGIN 03944 M01S03907.ssmove +++| ITEM FILE$TYPE C(00,00,04) = [ ## 03945 M01S03908.ssmove +++| "DIR.", 03946 M01S03909.ssmove +++| "IND."]; 03947 M01S03910.ssmove +++| END 03948 M01S03911.ssmove +++| 03949 M01S03912.ssmove +++| CONTROL EJECT; 03950 M01S03913.ssmove +++| 03951 M01S03914.ssmove +++|# 03952 M01S03915.ssmove +++|* PRINT HEADER LINES. 03953 M01S03916.ssmove +++|# 03954 M01S03917.ssmove +++| 03955 M01S03918.ssmove +++| RPEJECT(OUT$FETP); 03956 M01S03919.ssmove +++| 03957 M01S03920.ssmove +++| IF ABNDN 03958 M01S03921.ssmove +++| THEN 03959 M01S03922.ssmove +++| BEGIN 03960 M01S03923.ssmove +++| RPLINE(OUT$FETP,"DESTAGE ABANDONMENT REPORT",5,26,0); 03961 M01S03924.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 03962 M01S03925.ssmove +++| END 03963 M01S03926.ssmove +++| 03964 M01S03927.ssmove +++| RPLINE(OUT$FETP,HDR11,21,30,1); 03965 M01S03928.ssmove +++| RPLINE(OUT$FETP,HDR12,51,20,0); 03966 M01S03929.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 03967 M01S03930.ssmove +++| 03968 M01S03931.ssmove +++| RPLINE(OUT$FETP,HDR21,2,19,1); 03969 M01S03932.ssmove +++| RPLINE(OUT$FETP,HDR22,21,20,1); 03970 M01S03933.ssmove +++| RPLINE(OUT$FETP,HDR22,41,20,1); 03971 M01S03934.ssmove +++| RPLINE(OUT$FETP,HDR23,61,10,1); 03972 M01S03935.ssmove +++| RPLINE(OUT$FETP,HDR24,72,05,0); 03973 M01S03936.ssmove +++| 03974 M01S03937.ssmove +++|# 03975 M01S03938.ssmove +++|* PRINT DATA FOR DEVICES ABLE TO HOLD INDIRECT FILES (MASTER 03976 M01S03939.ssmove +++|* DEVICES), FOLLOWED BY DATA ON DEVICES ABLE TO HOLD DIRECT 03977 M01S03940.ssmove +++|* ACCESS FILES. 03978 M01S03941.ssmove +++|# 03979 M01S03942.ssmove +++| 03980 M01S03943.ssmove +++| SLOWFOR I = 1 STEP 1 UNTIL 2 03981 M01S03944.ssmove +++| DO 03982 M01S03945.ssmove +++| BEGIN # REPORT ON BOTH FILE TYPES # 03983 M01S03946.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); # 2 BLANK LINES AS A SEPARATOR 03984 M01S03947.ssmove +++| # 03985 M01S03948.ssmove +++| 03986 M01S03949.ssmove +++| SLOWFOR DNX = 1 STEP 1 UNTIL MAXDEV 03987 M01S03950.ssmove +++| DO 03988 M01S03951.ssmove +++| BEGIN # REPORT EACH DEVICE # 03989 M01S03952.ssmove +++| 03990 M01S03953.ssmove +++| IF I EQ 1 03991 M01S03954.ssmove +++| THEN # ONLY DO MASTER DEVICES # 03992 M01S03955.ssmove +++| BEGIN 03993 M01S03956.ssmove +++| IX = IXIA; 03994 M01S03957.ssmove +++| GOAL = SM$VAL[IXIA,IXRL,SMMG]; 03995 M01S03958.ssmove +++| IF NOT DEV$MAST[IXIA,DNX] 03996 M01S03959.ssmove +++| THEN # SKIP THIS DEVICE # 03997 M01S03960.ssmove +++| BEGIN 03998 M01S03961.ssmove +++| TEST DNX; 03999 M01S03962.ssmove +++| END 04000 M01S03963.ssmove +++| 04001 M01S03964.ssmove +++| END 04002 M01S03965.ssmove +++| 04003 M01S03966.ssmove +++| ELSE # ONLY DO DEVICES HOLDING DIRECT 04004 M01S03967.ssmove +++| ACCESS FILES # 04005 M01S03968.ssmove +++| BEGIN 04006 M01S03969.ssmove +++| IX = IXDA; 04007 M01S03970.ssmove +++| IF DEV$MAST[IXIA,DNX] 04008 M01S03971.ssmove +++| THEN 04009 M01S03972.ssmove +++| BEGIN 04010 M01S03973.ssmove +++| GOAL = SM$VAL[IXDA,IXRL,SMMG]; 04011 M01S03974.ssmove +++| END 04012 M01S03975.ssmove +++| 04013 M01S03976.ssmove +++| ELSE 04014 M01S03977.ssmove +++| BEGIN 04015 M01S03978.ssmove +++| GOAL = SM$VAL[IXDA,IXRL,SMSG]; 04016 M01S03979.ssmove +++| END 04017 M01S03980.ssmove +++| 04018 M01S03981.ssmove +++| IF NOT DEV$SEC[IXIA,DNX] OR ## 04019 M01S03982.ssmove +++| DEV$NF[IXDA,DNX] EQ 0 04020 M01S03983.ssmove +++| THEN # SKIP THIS DEVICE # 04021 M01S03984.ssmove +++| BEGIN 04022 M01S03985.ssmove +++| TEST DNX; 04023 M01S03986.ssmove +++| END 04024 M01S03987.ssmove +++| 04025 M01S03988.ssmove +++| END 04026 M01S03989.ssmove +++| 04027 M01S03990.ssmove +++|# 04028 M01S03991.ssmove +++|* PRINT EO, DN, DT-N, TYPE. 04029 M01S03992.ssmove +++|# 04030 M01S03993.ssmove +++| 04031 M01S03994.ssmove +++| CHR$10[0] = XCOD(DEV$EO[IXIA,DNX]); 04032 M01S03995.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],2,2,1); 04033 M01S03996.ssmove +++| 04034 M01S03997.ssmove +++| CHR$10[0] = XCOD(DEV$DN[IXIA,DNX]); 04035 M01S03998.ssmove +++| RPLINE(OUT$FETP,CHR$R2[0],6,2,1); 04036 M01S03999.ssmove +++| 04037 M01S04000.ssmove +++| CHR$10[0] = XCOD(DEV$NUM[IXIA,DNX]); 04038 M01S04001.ssmove +++| RPLINE(OUT$FETP,DEV$TYPE[IXIA,DNX],10,2,1); 04039 M01S04002.ssmove +++| RPLINE(OUT$FETP,"-",12,1,1); 04040 M01S04003.ssmove +++| RPLINE(OUT$FETP,CHR$R1[0],13,1,1); 04041 M01S04004.ssmove +++| 04042 M01S04005.ssmove +++| RPLINE(OUT$FETP,FILE$TYPE[IX],16,4,1); 04043 M01S04006.ssmove +++| 04044 M01S04007.ssmove +++|# 04045 M01S04008.ssmove +++|* ISSUE BEFORE STATISTICS - NUM. FILES, PRU. 04046 M01S04009.ssmove +++|# 04047 M01S04010.ssmove +++| 04048 M01S04011.ssmove +++| CHR$10[0] = XCDD(DEV$NF[IX,DNX]); 04049 M01S04012.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],21,8,1); 04050 M01S04013.ssmove +++| 04051 M01S04014.ssmove +++| CHR$10[0] = XCDD(DEV$PRU[IX,DNX]); 04052 M01S04015.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],31,8,1); 04053 M01S04016.ssmove +++| 04054 M01S04017.ssmove +++|# 04055 M01S04018.ssmove +++|* ISSUE AFTER STATISTICS - FILES, PRU. 04056 M01S04019.ssmove +++|# 04057 M01S04020.ssmove +++| 04058 M01S04021.ssmove +++| CHR$10[0] = XCDD(DEV$NF[IX,DNX] - DEV$RELF[IX,DNX]); 04059 M01S04022.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],41,8,1); 04060 M01S04023.ssmove +++| 04061 M01S04024.ssmove +++| EXP$PRU = DEV$PRU[IX,DNX] - DEV$RELP[IX,DNX]; 04062 M01S04025.ssmove +++| EXP$PER = (EXP$PRU*100 + DEV$TPRU[IXIA,DNX]/2) 04063 M01S04026.ssmove +++| /DEV$TPRU[IXIA,DNX]; 04064 M01S04027.ssmove +++| CHR$10[0] = XCDD(EXP$PRU); 04065 M01S04028.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],51,8,1); 04066 M01S04029.ssmove +++| 04067 M01S04030.ssmove +++|# 04068 M01S04031.ssmove +++|* ISSUE PERCENTAGES. IF SPACE GOAL NOT MET ISSUE WARNING 04069 M01S04032.ssmove +++|* FLAG AND DAYFILE MESSAGE. 04070 M01S04033.ssmove +++|# 04071 M01S04034.ssmove +++| 04072 M01S04035.ssmove +++| IF EXP$PER GR GOAL 04073 M01S04036.ssmove +++| THEN # SPACE GOAL NOT MET # 04074 M01S04037.ssmove +++| BEGIN 04075 M01S04038.ssmove +++| RPLINE(OUT$FETP,"**",72,2,1); 04076 M01S04039.ssmove +++| MVMSG$LN[0] = " DEVICE SPACE GOAL NOT MET."; 04077 M01S04040.ssmove +++| MESSAGE(MVMSG[0],UDFL1); 04078 M01S04041.ssmove +++| END 04079 M01S04042.ssmove +++| 04080 M01S04043.ssmove +++| CHR$10[0] = XCDD(EXP$PER); 04081 M01S04044.ssmove +++| RPLINE(OUT$FETP,CHR$R3[0],61,3,1); 04082 M01S04045.ssmove +++| 04083 M01S04046.ssmove +++| CHR$10[0] = XCDD(GOAL); 04084 M01S04047.ssmove +++| RPLINE(OUT$FETP,CHR$R3[0],66,3,0); # WRITE LINE # 04085 M01S04048.ssmove +++| END # REPORT EACH DEVICE # 04086 M01S04049.ssmove +++| 04087 M01S04050.ssmove +++| END # REPORT BOTH FILE TYPES # 04088 M01S04051.ssmove +++| 04089 M01S04052.ssmove +++|# 04090 M01S04053.ssmove +++|* ISSUE SUBFAMILY REPORT. PRINT HEADER TO REPORT FILE. 04091 M01S04054.ssmove +++|# 04092 M01S04055.ssmove +++| 04093 M01S04056.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 04094 M01S04057.ssmove +++| RPLINE(OUT$FETP," ** - DEVICE SPACE GOAL NOT MET",2,32,0); 04095 M01S04058.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",2); 04096 M01S04059.ssmove +++| RPLINE(OUT$FETP,"SUBFAMILY REPORT",40,16,0); 04097 M01S04060.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 04098 M01S04061.ssmove +++| 04099 M01S04062.ssmove +++| IF ABNDN 04100 M01S04063.ssmove +++| THEN 04101 M01S04064.ssmove +++| BEGIN 04102 M01S04065.ssmove +++| RPLINE(OUT$FETP,"FILES NOT DESTAGED",22,18,1); 04103 M01S04066.ssmove +++| END 04104 M01S04067.ssmove +++| 04105 M01S04068.ssmove +++| ELSE 04106 M01S04069.ssmove +++| BEGIN 04107 M01S04070.ssmove +++| RPLINE(OUT$FETP,"FILES TO DESTAGE",22,16,1); 04108 M01S04071.ssmove +++| END 04109 M01S04072.ssmove +++|
Line S04073 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 04110 M02S04073.ssmove2 ---| RPLINE(OUT$FETP,"FILES ONLY ON M860",63,18,1);
Line S04074 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 04111 M02S04074.ssmove2 ---| RPLINE(OUT$FETP,"FILES ON M860",108,13,0); 04112 M01S00001.ssmove2 +++| RPLINE(OUT$FETP,"FILES ONLY ON 7990",63,18,1); 04113 M01S00002.ssmove2 +++| RPLINE(OUT$FETP,"FILES ON 7990",108,13,0); 04114 M01S04075.ssmove +++| RPLINE(OUT$FETP,"SUB DIRECT",2,25,1); 04115 M01S04076.ssmove +++| RPLINE(OUT$FETP,"INDIRECT",37,8,1); 04116 M01S04077.ssmove +++| RPLINE(OUT$FETP,"DIRECT INDIRECT",60,27,1); 04117 M01S04078.ssmove +++| RPLINE(OUT$FETP,"DIRECT INDIRECT",102,27,0); 04118 M01S04079.ssmove +++| RPLINE(OUT$FETP,"FAMILY NUMBER",2,16,1); 04119 M01S04080.ssmove +++| RPLINE(OUT$FETP,"PRU NUMBER PRU",26,24,1); 04120 M01S04081.ssmove +++| RPLINE(OUT$FETP,"NUMBER PRU",54,17,1); 04121 M01S04082.ssmove +++| RPLINE(OUT$FETP,"NUMBER PRU",75,17,1); 04122 M01S04083.ssmove +++| RPLINE(OUT$FETP,"NUMBER PRU",96,17,1); 04123 M01S04084.ssmove +++| RPLINE(OUT$FETP,"NUMBER PRU",117,17,0); 04124 M01S04085.ssmove +++| RPSPACE(OUT$FETP,SP"SPACE",1); 04125 M01S04086.ssmove +++| 04126 M01S04087.ssmove +++|# 04127 M01S04088.ssmove +++|* PROCESS EACH SUBFAMILY. 04128 M01S04089.ssmove +++|# 04129 M01S04090.ssmove +++| 04130 M01S04091.ssmove +++| SLOWFOR SUBFAM = 0 STEP 1 UNTIL MAXSF 04131 M01S04092.ssmove +++| DO 04132 M01S04093.ssmove +++| BEGIN # FOR EACH SUBFAMILY # 04133 M01S04094.ssmove +++| SLOWFOR IX = IXDA STEP 1 UNTIL IXIA 04134 M01S04095.ssmove +++| DO 04135 M01S04096.ssmove +++| BEGIN # REPORT BOTH FILE TYPES # 04136 M01S04097.ssmove +++| CHR$10[0] = XCDD(SUBFAM); 04137 M01S04098.ssmove +++| RPLINE(OUT$FETP,CHR$R1[0],3,1,1); 04138 M01S04099.ssmove +++| IF IX EQ IXDA 04139 M01S04100.ssmove +++| THEN 04140 M01S04101.ssmove +++| BEGIN # DIRECT ACCESS # 04141 M01S04102.ssmove +++| CHR$10[0] = XCDD(SFDS$NF[IX,SUBFAM]); 04142 M01S04103.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],10,8,1); 04143 M01S04104.ssmove +++| CHR$10[0] = XCDD(SFDS$PRU[IX,SUBFAM]); 04144 M01S04105.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],21,8,1); 04145 M01S04106.ssmove +++| CHR$10[0] = XCDD(SFRL$NF[IX,SUBFAM]); 04146 M01S04107.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],52,8,1); 04147 M01S04108.ssmove +++| CHR$10[0] = XCDD(SFRL$PRU[IX,SUBFAM]); 04148 M01S04109.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],63,8,1); 04149 M01S04110.ssmove +++| CHR$10[0] = XCDD(SFDM$NF[IX,SUBFAM]); 04150 M01S04111.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],94,8,1); 04151 M01S04112.ssmove +++| CHR$10[0] = XCDD(SFDM$PRU[IX,SUBFAM]); 04152 M01S04113.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],105,8,1); 04153 M01S04114.ssmove +++| END # DIRECT ACCESS # 04154 M01S04115.ssmove +++| 04155 M01S04116.ssmove +++| ELSE 04156 M01S04117.ssmove +++| BEGIN # INDIRECT ACCESS # 04157 M01S04118.ssmove +++| CHR$10[0] = XCDD(SFDS$NF[IX,SUBFAM]); 04158 M01S04119.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],31,8,1); 04159 M01S04120.ssmove +++| CHR$10[0] = XCDD(SFDS$PRU[IX,SUBFAM]); 04160 M01S04121.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],42,8,1); 04161 M01S04122.ssmove +++| CHR$10[0] = XCDD(SFRL$NF[IX,SUBFAM]); 04162 M01S04123.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],73,8,1); 04163 M01S04124.ssmove +++| CHR$10[0] = XCDD(SFRL$PRU[IX,SUBFAM]); 04164 M01S04125.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],84,8,1); 04165 M01S04126.ssmove +++| CHR$10[0] = XCDD(SFDM$NF[IX,SUBFAM]); 04166 M01S04127.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],115,8,1); 04167 M01S04128.ssmove +++| CHR$10[0] = XCDD(SFDM$PRU[IX,SUBFAM]); 04168 M01S04129.ssmove +++| RPLINE(OUT$FETP,CHR$R8[0],126,8,0); 04169 M01S04130.ssmove +++| END # INDIRECT ACCESS # 04170 M01S04131.ssmove +++| 04171 M01S04132.ssmove +++| END # REPORT BOTH FILE TYPES # 04172 M01S04133.ssmove +++| 04173 M01S04134.ssmove +++| END # FOR EACH SUBFAMILY # 04174 M01S04135.ssmove +++| 04175 M01S04136.ssmove +++| END # MVRPTDS # 04176 M01S04137.ssmove +++| 04177 M01S04138.ssmove +++| TERM 04178 M01S04139.ssmove +++|PROC MVVALDS(DVAL,PO); 04179 M01S04140.ssmove +++|# TITLE MVVALDS - CALCULATE DESTAGE VALUE. # 04180 M01S04141.ssmove +++| 04181 M01S04142.ssmove +++| BEGIN # MVVALDS # 04182 M01S04143.ssmove +++| 04183 M01S04144.ssmove +++|# 04184 M01S04145.ssmove +++|** MVVALDS - CALCULATE DESTAGE VALUE. 04185 M01S04146.ssmove +++|* 04186 M01S04147.ssmove +++|* PROC MVVALDS(DVAL,PO). 04187 M01S04148.ssmove +++|* 04188 M01S04149.ssmove +++|* ENTRY. PO = PROCESSING OPTION FROM *SF* DIRECTIVE, OR 0. 04189 M01S04150.ssmove +++|* 04190 M01S04151.ssmove +++|* EXIT. DVAL = DESTAGE VALUE. 04191 M01S04152.ssmove +++|# 04192 M01S04153.ssmove +++| 04193 M01S04154.ssmove +++| ITEM DVAL I; # DESTAGE VALUE # 04194 M01S04155.ssmove +++| ITEM PO C(1); # PROCESSING OPTION # 04195 M01S04156.ssmove +++| 04196 M01S04157.ssmove +++|# 04197 M01S04158.ssmove +++|**** PROC MVVALDS - XREF LIST BEGIN. 04198 M01S04159.ssmove +++|# 04199 M01S04160.ssmove +++| 04200 M01S04161.ssmove +++| XREF 04201 M01S04162.ssmove +++| BEGIN 04202 M01S04163.ssmove +++| FUNC MVRELAG U; # RELATIVE AGE # 04203 M01S04164.ssmove +++| END 04204 M01S04165.ssmove +++| 04205 M01S04166.ssmove +++|# 04206 M01S04167.ssmove +++|**** PROC MVVALDS - XREF LIST END. 04207 M01S04168.ssmove +++|# 04208 M01S04169.ssmove +++| 04209 M01S04170.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 04210 M01S04171.ssmove +++|*CALL,COMBFAS 04211 M01S04172.ssmove +++|*CALL COMBSIT 04212 M01S04173.ssmove +++|*CALL,COMSPFM 04213 M01S04174.ssmove +++|*CALL,COMTMOV 04214 M01S04175.ssmove +++|*CALL,COMTMVD 04215 M01S04176.ssmove +++| 04216 M01S04177.ssmove +++| 04217 M01S04178.ssmove +++| ITEM AGE I; # DAYS SINCE LAST ACCESS # 04218 M01S04179.ssmove +++| CONTROL EJECT; 04219 M01S04180.ssmove +++| AGE = CURAGE - MVRELAG(PFC$MDD[0]); # TIME SINCE LAST ACCESS # 04220 M01S04181.ssmove +++| IF PFC$MDT[0] GR CURTIME 04221 M01S04182.ssmove +++| THEN 04222 M01S04183.ssmove +++| BEGIN 04223 M01S04184.ssmove +++| AGE = AGE - 1; 04224 M01S04185.ssmove +++| END 04225 M01S04186.ssmove +++| 04226 M01S04187.ssmove +++|# 04227 M01S04188.ssmove +++|* VERIFY FILE MEETS AGE AND SIZE REQUIREMENTS. 04228 M01S04189.ssmove +++|# 04229 M01S04190.ssmove +++| 04230 M01S04191.ssmove +++| IF (AGE LS FR$VAL[FTYPE,IXDS,FRDD]) # TEST AGE # 04231 M01S04192.ssmove +++| OR (PFC$LF[0] LS FR$VAL[FTYPE,IXDS,FRMN]) # MINIMUM SIZE # 04232 M01S04193.ssmove +++| OR (PFC$LF[0] GR FR$VAL[FTYPE,IXDS,FRMX]) # MAXIMUM SIZE # 04233 M01S04194.ssmove +++| THEN # FILE FAILS REQUIREMENTS # 04234 M01S04195.ssmove +++| BEGIN 04235 M01S04196.ssmove +++| DVAL = -1; 04236 M01S04197.ssmove +++| RETURN; 04237 M01S04198.ssmove +++| END 04238 M01S04199.ssmove +++| 04239 M01S04200.ssmove +++|# 04240 M01S04201.ssmove +++|* EVALUATE DESTAGE VALUE FORMULA. 04241 M01S04202.ssmove +++|# 04242 M01S04203.ssmove +++| 04243 M01S04204.ssmove +++| DVAL = ## 04244 M01S04205.ssmove +++| (WA$VAL[FTYPE,IXDS,WMAG]+WM$VAL[FTYPE,IXDS,WMAG]*AGE) ## 04245 M01S04206.ssmove +++| *(WA$VAL[FTYPE,IXDS,WMLN]+WM$VAL[FTYPE,IXDS,WMLN]*PFC$LF[0])## 04246 M01S04207.ssmove +++| *(PR$VAL[FTYPE,IXDS,PFC$RS[0]]) # *PR* FACTOR # 04247 M01S04208.ssmove +++| *(BR$VAL[FTYPE,IXDS,PFC$BR[0]]) # *BR* FACTOR #
Line S04209 Modification History | |
---|---|
M01 (Added by) | ssmove |
M02 (Updated by) | ssmove2 |
Seq # *Modification Id* Act ----------------------------+ 04248 M02S04209.ssmove2 ---| /(WA$VAL[FTYPE,IXDS,WAAC]+WM$VAL[FTYPE,IXDS,WMAC]*PFC$AC[0]); 04249 M01S00003.ssmove2 +++| /((WA$VAL[FTYPE,IXDS,WAAC]+WM$VAL[FTYPE,IXDS,WMAC] ## 04250 M01S00004.ssmove2 +++| *PFC$AC[0])*WA$VAL[FTYPE,IXDS,WADV]); 04251 M01S04210.ssmove +++| 04252 M01S04211.ssmove +++| 04253 M01S04212.ssmove +++| 04254 M01S04213.ssmove +++| RETURN; 04255 M01S04214.ssmove +++| END # MVVALDS # 04256 M01S04215.ssmove +++| 04257 M01S04216.ssmove +++| TERM 04258 M01S04217.ssmove +++|PROC MVVALRL(RVAL,PO); 04259 M01S04218.ssmove +++|# TITLE MVVALRL - CALCULATE RELEASE VALUE. # 04260 M01S04219.ssmove +++| BEGIN # MVVALRL # 04261 M01S04220.ssmove +++| 04262 M01S04221.ssmove +++|# 04263 M01S04222.ssmove +++|** MVVALRL - CALCULATE RELEASE VALUE. 04264 M01S04223.ssmove +++|* 04265 M01S04224.ssmove +++|* PROC MVVALRL(RVAL,PO). 04266 M01S04225.ssmove +++|* 04267 M01S04226.ssmove +++|* ENTRY. PO = PROCESSING OPTION FROM *SF* DIRECTIVE, OR 0. 04268 M01S04227.ssmove +++|* 04269 M01S04228.ssmove +++|* EXIT. RVAL = RELEASE VALUE. 04270 M01S04229.ssmove +++|# 04271 M01S04230.ssmove +++| 04272 M01S04231.ssmove +++| ITEM PO C(1); # PROCESSING OPTION # 04273 M01S04232.ssmove +++| ITEM RVAL I; # RELEASE VALUE # 04274 M01S04233.ssmove +++| 04275 M01S04234.ssmove +++|# 04276 M01S04235.ssmove +++|**** PROC MVVALRL - XREF LIST BEGIN. 04277 M01S04236.ssmove +++|# 04278 M01S04237.ssmove +++| 04279 M01S04238.ssmove +++| XREF 04280 M01S04239.ssmove +++| BEGIN 04281 M01S04240.ssmove +++| FUNC MVRELAG U; # RELATIVE AGE # 04282 M01S04241.ssmove +++| END 04283 M01S04242.ssmove +++| 04284 M01S04243.ssmove +++|# 04285 M01S04244.ssmove +++|**** PROC MVVALRL - XREF LIST END. 04286 M01S04245.ssmove +++|# 04287 M01S04246.ssmove +++| 04288 M01S04247.ssmove +++| DEF LISTCON #0#; # DO NOT LIST COMMON DECKS # 04289 M01S04248.ssmove +++|*CALL,COMBFAS 04290 M01S04249.ssmove +++|*CALL COMBSIT 04291 M01S04250.ssmove +++|*CALL,COMSPFM 04292 M01S04251.ssmove +++|*CALL,COMTMOV 04293 M01S04252.ssmove +++|*CALL,COMTMVD 04294 M01S04253.ssmove +++| 04295 M01S04254.ssmove +++| 04296 M01S04255.ssmove +++| ITEM AGE I; # DAYS SINCE LAST ACCESS # 04297 M01S04256.ssmove +++| CONTROL EJECT; 04298 M01S04257.ssmove +++| AGE = CURAGE - MVRELAG(PFC$ADD[0]); # TIME SINCE LAST ACCESS # 04299 M01S04258.ssmove +++| IF PFC$ADT[0] GR CURTIME 04300 M01S04259.ssmove +++| THEN 04301 M01S04260.ssmove +++| BEGIN 04302 M01S04261.ssmove +++| AGE = AGE - 1; 04303 M01S04262.ssmove +++| END 04304 M01S04263.ssmove +++| 04305 M01S04264.ssmove +++|# 04306 M01S04265.ssmove +++|* VERIFY FILE MEETS AGE AND SIZE REQUIREMENTS. 04307 M01S04266.ssmove +++|# 04308 M01S04267.ssmove +++| 04309 M01S04268.ssmove +++| IF (AGE LS FR$VAL[FTYPE,IXRL,FRDD]) # TEST AGE # 04310 M01S04269.ssmove +++| OR (PFC$LF[0] LS FR$VAL[FTYPE,IXRL,FRMN]) # MINIMUM SIZE # 04311 M01S04270.ssmove +++| OR (PFC$LF[0] GR FR$VAL[FTYPE,IXRL,FRMX]) # MAXIMUM SIZE # 04312 M01S04271.ssmove +++| THEN # FILE FAILS REQUIREMENTS # 04313 M01S04272.ssmove +++| BEGIN 04314 M01S04273.ssmove +++| RVAL = -1; 04315 M01S04274.ssmove +++| RETURN; 04316 M01S04275.ssmove +++| END
Proceed to Part 2
cdc/nos2.source/opl.opl871/deck/ssmove.001.txt ยท Last modified: by 127.0.0.1