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