cdc:nos2.source:opl.opl871:deck:ssval.001
Deck SSVAL Part 001
4 Modifications
Listing Sections
- Deck SSVAL Start
- Deck SSVAL Part 1 (Line 2211)
- Deck SSVAL Part 2 (Line 4501)
- Deck SSVAL Part 3 (Line 6712)
Source
Seq # *Modification Id* Act ----------------------------+ 02211 M01S02209.ssval +++| 02212 M01S02210.ssval +++| 02213 M01S02211.ssval +++| BEGIN # VLSMSC # 02214 M01S02212.ssval +++| 02215 M01S02213.ssval +++|# 02216 M01S02214.ssval +++|** VLSMSC - SMMAP SCAN. 02217 M01S02215.ssval +++|* 02218 M01S02216.ssval +++|* *VLSMSC* READS THE SMMAP FILE TO FIND ALL ENTRIES ASSIGNED 02219 M01S02217.ssval +++|* TO THE SPECIFIED SUBFAMILY WHICH HAVE NO CORRESPONDING 02220 M01S02218.ssval +++|* *FCT* ENTRY (THE BIT IN THE *VLCMAP* ARRAY IS OFF). 02221 M01S02219.ssval +++|* 02222 M01S02220.ssval +++|* PROC VLSMSC 02223 M01S02221.ssval +++|* 02224 M01S02222.ssval +++|* ENTRY (SMINDX) - *SM* INDEX. 02225 M01S02223.ssval +++|* (PAR$FM) - FAMILY. 02226 M01S02224.ssval +++|* (SBINDX) - SUBFAMILY INDEX. 02227 M01S02225.ssval +++|* (ARRAY VLCMAP) - BIT MAP FOR SMMAP ENTRIES THAT 02228 M01S02226.ssval +++|* HAVE VALID *FCT* ENTRIES. 02229 M01S02227.ssval +++|* 02230 M01S02228.ssval +++|* EXIT IF AN ERROR IS DETECTED, THEN A PROBLEM FILE 02231 M01S02229.ssval +++|* RECORD (RT"SM") IS WRITTEN. 02232 M01S02230.ssval +++|* 02233 M01S02231.ssval +++|* MESSAGES * SMMAP READ ERROR.* 02234 M01S02232.ssval +++|# 02235 M01S02233.ssval +++| 02236 M01S02234.ssval +++|# 02237 M01S02235.ssval +++|**** PROC VLSMSC - XREF LIST BEGIN. 02238 M01S02236.ssval +++|# 02239 M01S02237.ssval +++| 02240 M01S02238.ssval +++| XREF 02241 M01S02239.ssval +++| BEGIN 02242 M01S02240.ssval +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE 02243 M01S02241.ssval +++| CALLER # 02244 M01S02242.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 02245 M01S02243.ssval +++| PROC VLWPROB; # WRITE PROBLEM FILE RECORD # 02246 M01S02244.ssval +++| END 02247 M01S02245.ssval +++| 02248 M01S02246.ssval +++|# 02249 M01S02247.ssval +++|**** PROC VLSMSC - XREF LIST END. 02250 M01S02248.ssval +++|# 02251 M01S02249.ssval +++| 02252 M01S02250.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 02253 M01S02251.ssval +++| 02254 M01S02252.ssval +++|*CALL COMBFAS 02255 M01S02253.ssval +++|*CALL COMBCMD 02256 M01S02254.ssval +++|*CALL COMBCMS 02257 M01S02255.ssval +++|*CALL COMBMAP 02258 M01S02256.ssval +++|*CALL COMBMCT 02259 M01S02257.ssval +++|*CALL COMTVLD 02260 M01S02258.ssval +++|*CALL COMTVLF 02261 M01S02259.ssval +++|*CALL COMTVLM 02262 M01S02260.ssval +++| 02263 M01S02261.ssval +++| 02264 M01S02262.ssval +++| ITEM ORD I; # ORDINAL # 02265 M01S02263.ssval +++| 02266 M01S02264.ssval +++| CONTROL EJECT; 02267 M01S02265.ssval +++| 02268 M01S02266.ssval +++|# 02269 M01S02267.ssval +++|* READ THE ENTIRE SMMAP FILE. 02270 M01S02268.ssval +++|# 02271 M01S02269.ssval +++| 02272 M01S02270.ssval +++| SLOWFOR Z = 0 STEP 1 UNTIL MAX$Z 02273 M01S02271.ssval +++| DO 02274 M01S02272.ssval +++| BEGIN # Z COORDINATE SCAN # 02275 M01S02273.ssval +++| SLOWFOR Y = 0 STEP 1 UNTIL MAX$Y 02276 M01S02274.ssval +++| DO 02277 M01S02275.ssval +++| BEGIN # Y COORDINATE SCAN # 02278 M01S02276.ssval +++| ORD = MAXORD - Z - (Y * (MAX$Z+1)); 02279 M01S02277.ssval +++| MGETENT(SMINDX,ORD,LOC(VLMAPAREA),STAT); # READ ENTRY # 02280 M01S02278.ssval +++| IF STAT NQ CMASTAT"NOERR" 02281 M01S02279.ssval +++| THEN 02282 M01S02280.ssval +++| BEGIN 02283 M01S02281.ssval +++| VLERROR(VE"MAPR",ABRT); # ABORT WITH MESSAGE # 02284 M01S02282.ssval +++| END 02285 M01S02283.ssval +++| 02286 M01S02284.ssval +++| P<SMUMAP> = LOC(VLMAPAREA); 02287 M01S02285.ssval +++| 02288 M01S02286.ssval +++|# 02289 M01S02287.ssval +++|* IF THE SMMAP ENTRY IS ASSIGNED TO THE SUBFAMILY BUT THERE 02290 M01S02288.ssval +++|* WAS NO CORRESPONDING *FCT* ENTRY, WRITE AN ENTRY TO THE PROBLEM 02291 M01S02289.ssval +++|* FILE. 02292 M01S02290.ssval +++|# 02293 M01S02291.ssval +++| 02294 M01S02292.ssval +++| IF (CM$CODE[0] EQ CUBSTAT"SUBFAM") 02295 M01S02293.ssval +++| AND (CM$FMLYNM[0] EQ PAR$FM) AND (CM$SUB[0] EQ SBINDX) 02296 M01S02294.ssval +++| AND (B<Y,1>VLCM$Z[Z] EQ 0) 02297 M01S02295.ssval +++| AND CM$FCTORD[0] NQ 0 02298 M01S02296.ssval +++| AND CM$CSND[0] NQ " " 02299 M01S02297.ssval +++| THEN 02300 M01S02298.ssval +++| BEGIN 02301 M01S02299.ssval +++| CSN = CM$CSND[0]; # FIELDS FOR VLWPROB # 02302 M01S02300.ssval +++| FCTORD = CM$FCTORD[0]; 02303 M01S02301.ssval +++| VLWPROB(REC"SM"); # WRITE PROBLEM FILE ENTRY # 02304 M01S02302.ssval +++| END 02305 M01S02303.ssval +++| 02306 M01S02304.ssval +++| END # Y COORDINATE SCAN # 02307 M01S02305.ssval +++| 02308 M01S02306.ssval +++| END # Z COORDINATE SCAN # 02309 M01S02307.ssval +++| 02310 M01S02308.ssval +++| END # VLSMSC # 02311 M01S02309.ssval +++| 02312 M01S02310.ssval +++| TERM 02313 M01S02311.ssval +++|PROC VLERROR((ERNUM),(ABTFLG)); 02314 M01S02312.ssval +++|# TITLE VLERROR - ISSUE ERROR MESSAGE. # 02315 M01S02313.ssval +++| 02316 M01S02314.ssval +++| 02317 M01S02315.ssval +++| BEGIN # VLERROR # 02318 M01S02316.ssval +++| 02319 M01S02317.ssval +++|# 02320 M01S02318.ssval +++|** VLERROR - ISSUE ERROR MESSAGE. 02321 M01S02319.ssval +++|* 02322 M01S02320.ssval +++|* THE ERROR MESSAGE SPECIFIED BY *ERNUM* IS ISSUED TO THE 02323 M01S02321.ssval +++|* DAYFILE AND REPORT FILE (IF OPENED). IF SELECTED, PARAMETERS 02324 M01S02322.ssval +++|* FROM THE *MPARAM* ARRAY MAY BE INSERTED INTO THE MESSAGE TEXT 02325 M01S02323.ssval +++|* FIRST. ALSO, A DETAIL STATUS FROM *STAT* WILL BE ISSUED IF 02326 M01S02324.ssval +++|* SPECIFIED. THE OPTIONS FOR A SPECIFIC ERROR ARE DEFINED 02327 M01S02325.ssval +++|* WITH THE ERROR MESSAGE TEXT (IN COMTVLD) AND RESIDE IN A 02328 M01S02326.ssval +++|* LOCAL ARRAY. 02329 M01S02327.ssval +++|* 02330 M01S02328.ssval +++|* PROC VLERROR(ERNUM,ABTFLG) 02331 M01S02329.ssval +++|* 02332 M01S02330.ssval +++|* ENTRY (ABTFLG) - ABORT FLAG (PROGRAM ABORTED IF TRUE) 02333 M01S02331.ssval +++|* (ERNUM) - ERROR NUMBER (FROM STATUS LIST *VE* 02334 M01S02332.ssval +++|* IN COMTVLD). 02335 M01S02333.ssval +++|* (RPTFADR) - REPORT FILE *FET* ADDRESS (ZERO IF 02336 M01S02334.ssval +++|* NOT OPENED). 02337 M01S02335.ssval +++|* (STAT) - DETAIL STATUS VALUE (OPTIONAL). 02338 M01S02336.ssval +++|* (ARRAY MPARAM) - CONTAINS PARAMETERS FOR ERROR MESSAGE 02339 M01S02337.ssval +++|* TEXT (OPTIONAL). 02340 M01S02338.ssval +++|* 02341 M01S02339.ssval +++|* EXIT (CNTPROGERR) - COUNT OF ERRORS. 02342 M01S02340.ssval +++|* 02343 M01S02341.ssval +++|* THE ERROR MESSAGE IS ISSUED TO THE REPORT FILE IF THE 02344 M01S02342.ssval +++|* FILE IS OPENED. 02345 M01S02343.ssval +++|* 02346 M01S02344.ssval +++|* MESSAGES * ** ERROR MESSAGE TEXT * 02347 M01S02345.ssval +++|* * DETAIL STATUS = NNN * (OPTIONAL) 02348 M01S02346.ssval +++|* 02349 M01S02347.ssval +++|# 02350 M01S02348.ssval +++| 02351 M01S02349.ssval +++| ITEM ERNUM I; # ERROR NUMBER # 02352 M01S02350.ssval +++| ITEM ABTFLG I; # ABORT RUN FLAG # 02353 M01S02351.ssval +++| 02354 M01S02352.ssval +++|# 02355 M01S02353.ssval +++|**** PROC VLERROR - XREF LIST BEGIN. 02356 M01S02354.ssval +++|# 02357 M01S02355.ssval +++| 02358 M01S02356.ssval +++| XREF 02359 M01S02357.ssval +++| BEGIN 02360 M01S02358.ssval +++| PROC MESSAGE; # INTERFACE TO *MESSAGE* MACRO # 02361 M01S02359.ssval +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 02362 M01S02360.ssval +++| OR RETURN # 02363 M01S02361.ssval +++| PROC RPCLOSE; # CLOSES A PRINT FILE # 02364 M01S02362.ssval +++| PROC RPLINE; # CALLS *RPLINEX* TO PRINT A 02365 M01S02363.ssval +++| LINE # 02366 M01S02364.ssval +++| PROC VLMSG; # ISSUE INFORMATIONAL MESSAGE # 02367 M01S02365.ssval +++| FUNC VLNTC C(10); # NUMERIC TO CHARACTER 02368 M01S02366.ssval +++| CONVERSION # 02369 M01S02367.ssval +++| PROC VLPFILL; # FILL PARAMETER IN MESSAGE 02370 M01S02368.ssval +++| TEXT # 02371 M01S02369.ssval +++| END 02372 M01S02370.ssval +++| 02373 M01S02371.ssval +++|# 02374 M01S02372.ssval +++|**** PROC VLERROR - XREF LIST END. 02375 M01S02373.ssval +++|# 02376 M01S02374.ssval +++| 02377 M01S02375.ssval +++| DEF LISTCON #0#; 02378 M01S02376.ssval +++| 02379 M01S02377.ssval +++|*CALL COMBFAS 02380 M01S02378.ssval +++|*CALL COMTVLD 02381 M01S02379.ssval +++|*CALL COMTVLF 02382 M01S02380.ssval +++| 02383 M01S02381.ssval +++| ITEM N I; # TEMPORARY VARIABLE # 02384 M01S02382.ssval +++| ITEM NP I; # TEMPORARY VARIABLE # 02385 M01S02383.ssval +++| 02386 M01S02384.ssval +++| ARRAY TEXT [0:0] S(5); # TO FORMAT ERROR MESSAGE # 02387 M01S02385.ssval +++| BEGIN 02388 M01S02386.ssval +++| ITEM TEX$MSG C(00,00,40); # MESSAGE TEXT # 02389 M01S02387.ssval +++| ITEM TEX$LEAD C(00,00,03); # LEADING CODES # 02390 M01S02388.ssval +++| ITEM TEX$ZERO U(04,00,60) = [ 0 ]; # ZERO BYTE # 02391 M01S02389.ssval +++| END 02392 M01S02390.ssval +++| 02393 M01S02391.ssval +++| ARRAY ERRCODES [0:0] S(1); # ERROR OPTION CODES # 02394 M01S02392.ssval +++| BEGIN 02395 M01S02393.ssval +++| ITEM ERR$CODES C(00,00,03); 02396 M01S02394.ssval +++| ITEM ERR$STAT C(00,00,01); # DETAIL STATUS FLAG # 02397 M01S02395.ssval +++| ITEM ERR$PARN U(00,06,06); # NUMBER OF PARAMETERS # 02398 M01S02396.ssval +++| END 02399 M01S02397.ssval +++| 02400 M01S02398.ssval +++| 02401 M01S02399.ssval +++| ARRAY DTLSTAT [0:0] S(5); # DETAIL STATUS MESSAGE # 02402 M01S02400.ssval +++| BEGIN 02403 M01S02401.ssval +++| ITEM DTL$MSG C(00,00,40) = [" DETAIL STATUS = "]; 02404 M01S02402.ssval +++| ITEM DTL$NUM C(02,00,04); # STATUS VALUE # 02405 M01S02403.ssval +++| ITEM DTL$ZERO U(04,00,60) = [ 0 ]; 02406 M01S02404.ssval +++| END 02407 M01S02405.ssval +++| 02408 M01S02406.ssval +++|# 02409 M01S02407.ssval +++|* ARRAY OF DEFINED ERROR MESSAGE TEXTS. WARNING - THE ORDER 02410 M01S02408.ssval +++|* OF THIS LIST IS DEPENDENT ON THE STATUS LIST "VE". 02411 M01S02409.ssval +++|* THE TEXTS ARE DEFINED IN *COMTVLD*. 02412 M01S02410.ssval +++|# 02413 M01S02411.ssval +++| 02414 M01S02412.ssval +++| ARRAY ERRTEXT [0:VE"EREND"] S(4); # ERROR MESSAGES ARRAY # 02415 M01S02413.ssval +++| BEGIN 02416 M01S02414.ssval +++| ITEM ERRMSG C(00,00,40) = [ " NO ERROR ", 02417 M01S02415.ssval +++| MSYNTAX, 02418 M01S02416.ssval +++| MSMPAR, 02419 M01S02417.ssval +++| MFXPAR, 02420 M01S02418.ssval +++| MSBPAR, 02421 M01S02419.ssval +++| MSTPAR, 02422 M01S02420.ssval +++| MLFRF, 02423 M01S02421.ssval +++| MRLNRF, 02424 M01S02422.ssval +++| MRFFM, 02425 M01S02423.ssval +++| MRFAM, 02426 M01S02424.ssval +++| MRDFH, 02427 M01S02425.ssval +++| MRDFL, 02428 M01S02426.ssval +++| MRDFU, 02429 M01S02427.ssval +++| MCATO, 02430 M01S02428.ssval +++| MCATR, 02431 M01S02429.ssval +++| MMAPO, 02432 M01S02430.ssval +++| MMAPR, 02433 M01S02431.ssval +++| MNOFL, 02434 M01S02432.ssval +++| MNCONN, 02435 M01S02433.ssval +++| MUCPERR, 02436 M01S02434.ssval +++| MNOFAM, 02437 M01S02435.ssval +++| MPFCER, 02438 M01S02436.ssval +++| MDUPSM, 02439 M01S02437.ssval +++| MDUPSB, 02440 M01S02438.ssval +++| MSYSERR, 02441 M01S02439.ssval +++| MABORT, 02442 M01S02440.ssval +++| " " ]; 02443 M01S02441.ssval +++| END 02444 M01S02442.ssval +++| 02445 M01S02443.ssval +++| CONTROL EJECT; 02446 M01S02444.ssval +++| CNTPROGERR = CNTPROGERR + 1; 02447 M01S02445.ssval +++| 02448 M01S02446.ssval +++|# 02449 M01S02447.ssval +++|* SET UP THE MESSAGE TEXT BASED ON THE ERROR NUMBER. 02450 M01S02448.ssval +++|# 02451 M01S02449.ssval +++| 02452 M01S02450.ssval +++| TEX$MSG[0] = ERRMSG[ERNUM]; 02453 M01S02451.ssval +++| ERR$CODES[0] = TEX$LEAD[0]; 02454 M01S02452.ssval +++| 02455 M01S02453.ssval +++|# 02456 M01S02454.ssval +++|* INSERT PARAMETERS INTO TEXT IF SPECIFIED. 02457 M01S02455.ssval +++|# 02458 M01S02456.ssval +++| 02459 M01S02457.ssval +++| IF ERR$PARN[0] NQ " " 02460 M01S02458.ssval +++| THEN # PARAMETERS SPECIFIED # 02461 M01S02459.ssval +++| BEGIN 02462 M01S02460.ssval +++| NP = ERR$PARN[0] - "0"; # CALCULATE THE NUMBER OF 02463 M01S02461.ssval +++| PARAMETERS # 02464 M01S02462.ssval +++| SLOWFOR N = 1 STEP 1 UNTIL NP 02465 M01S02463.ssval +++| DO 02466 M01S02464.ssval +++| BEGIN # N # 02467 M01S02465.ssval +++| VLPFILL(TEXT,MPARAM[N]); # MOVE PARAMETER TO TEXT # 02468 M01S02466.ssval +++| END # N # 02469 M01S02467.ssval +++| 02470 M01S02468.ssval +++| END 02471 M01S02469.ssval +++| 02472 M01S02470.ssval +++|# 02473 M01S02471.ssval +++|* ISSUE ERROR TEXT TO DAYFILE. 02474 M01S02472.ssval +++|# 02475 M01S02473.ssval +++| 02476 M01S02474.ssval +++| TEX$LEAD[0] = " **"; # DAYFILE MSG MUST HAVE 1 BLANK # 02477 M01S02475.ssval +++| MESSAGE(TEXT,SYSUDF1); 02478 M01S02476.ssval +++| 02479 M01S02477.ssval +++|# 02480 M01S02478.ssval +++|* ISSUE ERROR TEXT TO REPORT FILE, IF IT IS OPEN. 02481 M01S02479.ssval +++|# 02482 M01S02480.ssval +++| 02483 M01S02481.ssval +++| IF RPTFADR NQ 0 02484 M01S02482.ssval +++| THEN 02485 M01S02483.ssval +++| BEGIN 02486 M01S02484.ssval +++| RPLINE(RPTFADR," ",0,1,EOPL); # BLANK LINE # 02487 M01S02485.ssval +++| TEX$LEAD[0] = "***"; # ERROR FLAG # 02488 M01S02486.ssval +++| RPLINE(RPTFADR,TEXT,4,40,EOPL); # ISSUE ERROR MESSAGE # 02489 M01S02487.ssval +++| END 02490 M01S02488.ssval +++| 02491 M01S02489.ssval +++|# 02492 M01S02490.ssval +++|* ISSUE DETAIL STATUS, IF SPECIFIED. 02493 M01S02491.ssval +++|# 02494 M01S02492.ssval +++| 02495 M01S02493.ssval +++| IF ERR$STAT[0] EQ "S" 02496 M01S02494.ssval +++| THEN 02497 M01S02495.ssval +++| BEGIN 02498 M01S02496.ssval +++| DTL$NUM[0] = VLNTC(STAT,"XCOD",4); # SET NUMBER FROM *STAT* # 02499 M01S02497.ssval +++| MESSAGE(DTLSTAT,SYSUDF1); # ISSUE DETAIL MESSAGE # 02500 M01S02498.ssval +++| IF RPTFADR NQ 0 02501 M01S02499.ssval +++| THEN 02502 M01S02500.ssval +++| BEGIN 02503 M01S02501.ssval +++| RPLINE(RPTFADR,DTLSTAT,4,40,EOPL); # ISSUE TO REPORT FILE # 02504 M01S02502.ssval +++| END 02505 M01S02503.ssval +++| 02506 M01S02504.ssval +++| END 02507 M01S02505.ssval +++| 02508 M01S02506.ssval +++|# 02509 M01S02507.ssval +++|* IF ABORT FLAG IS SET, ABORT. 02510 M01S02508.ssval +++|# 02511 M01S02509.ssval +++| 02512 M01S02510.ssval +++| IF (ABTFLG EQ ABRT) 02513 M01S02511.ssval +++| THEN 02514 M01S02512.ssval +++| BEGIN 02515 M01S02513.ssval +++| IF (RPTFADR NQ 0) # CLOSE REPORT FILE IF IT IS 02516 M01S02514.ssval +++| OPENED # 02517 M01S02515.ssval +++| THEN 02518 M01S02516.ssval +++| BEGIN 02519 M01S02517.ssval +++| RPCLOSE(RPTFADR); 02520 M01S02518.ssval +++| END 02521 M01S02519.ssval +++| 02522 M01S02520.ssval +++| VLMSG(VM"VLABT"); # ISSUE SSVAL ABORTED MESSAGE # 02523 M01S02521.ssval +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02524 M01S02522.ssval +++| END 02525 M01S02523.ssval +++| 02526 M01S02524.ssval +++| RETURN; 02527 M01S02525.ssval +++| 02528 M01S02526.ssval +++| END # VLERROR # 02529 M01S02527.ssval +++| 02530 M01S02528.ssval +++| TERM 02531 M01S02529.ssval +++|PROC VLFIX; 02532 M01S02530.ssval +++|# TITLE VLFIX - FIX CATALOGS. # 02533 M01S02531.ssval +++| 02534 M01S02532.ssval +++| 02535 M01S02533.ssval +++| BEGIN # VLFIX # 02536 M01S02534.ssval +++| 02537 M01S02535.ssval +++|# 02538 M01S02536.ssval +++|** VLFIX - FIX CATALOGS. 02539 M01S02537.ssval +++|* 02540 M01S02538.ssval +++|* *VLFIX* READS THE FIXIT FILE AND MODIFIES THE CORRESPONDING 02541 M01S02539.ssval +++|* CATALOG ENTRIES DEPENDING UPON THE MODE SPECIFIED BY THE 02542 M01S02540.ssval +++|* CONTROL CARD PARAMETERS. 02543 M01S02541.ssval +++|* 02544 M01S02542.ssval +++|* PROC VLFIX 02545 M01S02543.ssval +++|* 02546 M01S02544.ssval +++|* ENTRY (CNTORPHANS) - COUNT OF TROUBLE-FREE ORPHANS. 02547 M01S02545.ssval +++|* (CONNECTED) - CONNECTED TO *EXEC* FLAG. 02548 M01S02546.ssval +++|* (PAR$FX) - FX CONTROL CARD PARAMETER. 02549 M01S02547.ssval +++|* (PAR$RF) - RF CONTROL CARD PARAMETER. 02550 M01S02548.ssval +++|* (PAR$RL) - RL CONTROL CARD PARAMETER. 02551 M01S02549.ssval +++|* (RDFDT) - *RDF* FILE PACKED DATE AND TIME. 02552 M01S02550.ssval +++|* (RELEASABLE) - COUNT OF RELEASABLE AU-S. 02553 M01S02551.ssval +++|* (TOTALERRS) - TOTAL VALIDATION ERRORS. 02554 M01S02552.ssval +++|* (ARRAY FIXFILE) - FIXIT FILE *FET*. 02555 M01S02553.ssval +++|* 02556 M01S02554.ssval +++|* EXIT RELEASE PROCESSING OCCURRED IF MODE IS EQUAL TO 02557 M01S02555.ssval +++|* RELEASE. 02558 M01S02556.ssval +++|* REPAIR PROCESSING OCCURRED IF MODE IS EQUAL TO FIX. 02559 M01S02557.ssval +++|* INFORMATIONAL LINES WERE WRITTEN TO THE REPORT FILE. 02560 M01S02558.ssval +++|* 02561 M01S02559.ssval +++|* MESSAGES * TOTAL VALIDATION ERRORS = NNN * 02562 M01S02560.ssval +++|* * RELEASABLE M860 FILE = NNNN * 02563 M01S02561.ssval +++|* * RELEASABLE M860 AU-S = NNNN * 02564 M01S02562.ssval +++|* * CATALOGS NOT MODIFIED * 02565 M01S02563.ssval +++|* * CATALOGS MODIFIED * 02566 M01S02564.ssval +++|* * FREE FILES NOT RELEASED * 02567 M01S02565.ssval +++|* * FREE FILES RELEASED * 02568 M01S02566.ssval +++|* 02569 M01S02567.ssval +++|* NOTES THE MODES OF PROCESSING ARE - 02570 M01S02568.ssval +++|* 02571 M01S02569.ssval +++|* . RELEASE - RELEASE ORPHANS IN THE SFM CATALOG. 02572 M01S02570.ssval +++|* THIS MODE IS SET IF - 02573 M01S02571.ssval +++|* THE *RF* AND *RL* PARAMETERS WERE SPECIFIED AND 02574 M01S02572.ssval +++|* THE *TOTALERRS* IS LESS THAN THE *FX* PARAMETER. 02575 M01S02573.ssval +++|* 02576 M01S02574.ssval +++|* . FIX - SET APPROPRIATE FLAGS IN THE CATALOGS FOR 02577 M01S02575.ssval +++|* ERRORS DETECTED. 02578 M01S02576.ssval +++|* THIS MODE IS SET IF - 02579 M01S02577.ssval +++|* THE *FM* PARAMETER IS SET AND THE *TOTALERRS* 02580 M01S02578.ssval +++|* IS LESS THAN THE *FX* PARAMETER. 02581 M01S02579.ssval +++|* 02582 M01S02580.ssval +++|* . NONE - NO CATALOG MODIFICATIONS. 02583 M01S02581.ssval +++|* THIS MODE IS SET IF *SSVAL* IS NOT CONNECTED 02584 M01S02582.ssval +++|* TO *EXEC* OR NOT IN FIX OR RELEASE MODE. 02585 M01S02583.ssval +++|* 02586 M01S02584.ssval +++|* RELEASE OF FREE AU-S IN A SPECIFIC SUBCATALOG 02587 M01S02585.ssval +++|* OCCURS ONLY IF THE DATE AND TIME IN THE *RDF* FILE IS 02588 M01S02586.ssval +++|* MORE RECENT THAN THE LAST PURGE DATE AND TIME FOR THE 02589 M01S02587.ssval +++|* SUBCATALOG. 02590 M01S02588.ssval +++|* 02591 M01S02589.ssval +++|* THE REPAIRS THAT *SSVAL* CAN PERFORM ARE DEFINED IN 02592 M01S02590.ssval +++|* THE ARRAY *FIXARRAY*. THE REPAIRS TO BE TAKEN FOR 02593 M01S02591.ssval +++|* A SPECIFIC FIXIT FILE RECORD ARE DETERMINED BY THE 02594 M01S02592.ssval +++|* RECORD TYPE WHICH REFLECTS THE TYPE OF ERROR THAT 02595 M01S02593.ssval +++|* OCCURRED DURING VALIDATION. 02596 M01S02594.ssval +++|* 02597 M01S02595.ssval +++|# 02598 M01S02596.ssval +++| 02599 M01S02597.ssval +++|# 02600 M01S02598.ssval +++|**** PROC VLFIX - XREF LIST BEGIN. 02601 M01S02599.ssval +++|# 02602 M01S02600.ssval +++| 02603 M01S02601.ssval +++| XREF 02604 M01S02602.ssval +++| BEGIN 02605 M01S02603.ssval +++| PROC READ; # INTERFACE TO *READ* MACRO # 02606 M01S02604.ssval +++| PROC READW; # INTERFACE TO *READW* MACRO # 02607 M01S00001.ssval3 +++| PROC RETERN; # RETURN LOCAL FILE # 02608 M01S02605.ssval +++| PROC REWIND; # INTERFACE TO *REWIND* MACRO # 02609 M01S02606.ssval +++| PROC RPEJECT; # STARTS A NEW REPORT PAGE # 02610 M01S02607.ssval +++| PROC VLFIXP; # CONNECTS *PF* AND SETS *ASA* # 02611 M01S02608.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 02612 M01S02609.ssval +++| PROC VLLPDT; # GET LAST PURGE DATE AND TIME # 02613 M01S02610.ssval +++| PROC VLMSG; # ISSUE INFORMATIONAL MESSAGE # 02614 M01S02611.ssval +++| FUNC VLNTC C(10); # NUMERIC TO CHARACTER 02615 M01S02612.ssval +++| CONVERSION # 02616 M01S02613.ssval +++| PROC VLREQEX; # REQUEST TO EXEC # 02617 M01S00002.ssval3 +++| PROC WRITEW; # WRITE TO WORKING BUFFER # 02618 M01S02614.ssval +++| PROC WRITEF; # INTERFACE TO *WRITEF* MACRO # 02619 M01S02615.ssval +++| END 02620 M01S02616.ssval +++| 02621 M01S02617.ssval +++|# 02622 M01S02618.ssval +++|**** PROC VLFIX - XREF LIST END. 02623 M01S02619.ssval +++|# 02624 M01S02620.ssval +++| 02625 M01S02621.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 02626 M01S02622.ssval +++| 02627 M01S02623.ssval +++|*CALL COMBFAS 02628 M01S02624.ssval +++|*CALL COMBCPR 02629 M01S02625.ssval +++|*CALL COMTVLD 02630 M01S02626.ssval +++|*CALL COMTVLF 02631 M01S02627.ssval +++|*CALL COMTVLV 02632 M01S02628.ssval +++| 02633 M01S02629.ssval +++| STATUS PROCTYP # PROCESSING TYPE # 02634 M01S02630.ssval +++| NONE, 02635 M01S02631.ssval +++| FIX, # FIX CATALOGS # 02636 M01S02632.ssval +++| RELEASE, # RELEASE FILE SPACE # 02637 M01S02633.ssval +++| PTEND; 02638 M01S02634.ssval +++| 02639 M01S02635.ssval +++| DEF FREE #0#; # SET FREE FLAG IN PFC # 02640 M01S02636.ssval +++| DEF ZERO #1#; # ZERO *PFC* ASA # 02641 M01S02637.ssval +++| 02642 M01S02638.ssval +++| ITEM FREFL B; # FREE CARTRIDGE FLAG SET # 02643 M01S02639.ssval +++| ITEM MODE S : PROCTYP = S"NONE"; # MODE FOR FIX PROCESS # 02644 M01S02640.ssval +++| ITEM LPDT U; # LAST PURGE DATE-TIME # 02645 M01S02641.ssval +++| ITEM FIXACTION I; # FIX ACTIONS FOR FIXIT RECORD # 02646 M01S02642.ssval +++| ITEM RDF$BEFORE B; # RDF BEFORE PURGE DATE # 02647 M01S02643.ssval +++| ITEM RELEASED B; # FREE FILES RELEASED FLAG # 02648 M01S02644.ssval +++| 02649 M01S02645.ssval +++|# 02650 M01S02646.ssval +++|* ACTION FLAGS TO DEFINE THE CATALOG REPAIRS THAT *SSVAL* CAN 02651 M01S02647.ssval +++|* PERFORM. 02652 M01S02648.ssval +++|# 02653 M01S02649.ssval +++| 02654 M01S02650.ssval +++| DEF ACT$NONE #O"000000"#; # NO ACTION # 02655 M01S02651.ssval +++| DEF ACT$UMAP #O"000001"#; # UPDATE SMMAP # 02656 M01S02652.ssval +++| DEF ACT$UPFC #O"000010"#; # UPDATE *PFC* ENTRY # 02657 M01S02653.ssval +++| DEF ACT$USM #O"000100"#; # UPDATE *SM* FLAG IN SFM 02658 M01S02654.ssval +++| CATALOG # 02659 M01S02655.ssval +++| DEF ACT$UFROZ #O"001000"#; # UPDATE FROZEN AU FLAG # 02660 M01S02656.ssval +++| DEF ACT$USOF #O"010000"#; # UPDATE *SOF* AU FLAG # 02661 M01S02657.ssval +++| DEF ACT$INHIB #O"100000"#; # SET INHIBIT FLAG IN *FCT* # 02662 M01S02658.ssval +++| DEF ACT$P$F$S #O"011010"#; 02663 M01S02659.ssval +++| DEF ACT$F$S #O"011000"#; # MULTIPLE ACTIONS # 02664 M01S02660.ssval +++| DEF ACT$UC$INH #O"100100"#; # MULTIPLE ACTIONS # 02665 M01S02661.ssval +++| DEF ACT$UF$UI #O"101000"#; # MULTIPLE ACTIONS # 02666 M01S00003.ssval3 +++| 02667 M01S00004.ssval3 +++|# 02668 M01S00005.ssval3 +++|* *CPR* WORKING BUFFER. 02669 M01S00006.ssval3 +++|# 02670 M01S00007.ssval3 +++| 02671 M01S00008.ssval3 +++| ARRAY CPRARRAY [0:0] S(CPRLEN);; 02672 M01S00009.ssval3 +++| 02673 M01S02662.ssval +++| 02674 M01S02663.ssval +++|# 02675 M01S02664.ssval +++|* DEFINE ACTIONS TO TAKE FOR THE VARIOUS FIXIT FILE RECORD TYPES. 02676 M01S02665.ssval +++|* DURING THE VALIDATION PROCESS, RECORDS WERE WRITTEN TO THE FIXIT 02677 M01S02666.ssval +++|* FILE FOR PROBLEMS DETECTED. THE RECORD TYPE REFLECTS THE TYPE OF 02678 M01S02667.ssval +++|* REPAIR PROCESSING TO BE DONE. 02679 M01S02668.ssval +++|# 02680 M01S02669.ssval +++| 02681 M01S02670.ssval +++| ARRAY FIXARRAY [0:REC"REND"] S(1); # FIX ACTIONS FOR FIX 02682 M01S02671.ssval +++| RECORDS # 02683 M01S02672.ssval +++| BEGIN 02684 M01S02673.ssval +++| ITEM FIXA$WD U(00,00,60); 02685 M01S02674.ssval +++| ITEM FIXA$TFO U(REC"TFORPH",0,60) = [ACT$NONE]; 02686 M01S02675.ssval +++| ITEM FIXA$FCT U(REC"FCT",0,60) = [ACT$UC$INH]; 02687 M01S02676.ssval +++| ITEM FIXA$SM U(REC"SM",0,60) = [ACT$UMAP]; 02688 M01S02677.ssval +++| ITEM FIXA$ASA U(REC"ASA",0,60) = [ACT$UPFC]; 02689 M01S02678.ssval +++| ITEM FIXA$PFC U(REC"OTHR",0,60) = [ACT$P$F$S]; 02690 M01S02679.ssval +++| ITEM FIXA$ORPH U(REC"BADORPH",0,60) = [ACT$UFROZ]; 02691 M01S02680.ssval +++| ITEM FIXA$FRAG U(REC"FRAG",0,60) = [ACT$F$S]; 02692 M01S02681.ssval +++| ITEM FIXA$HOLE U(REC"BADHOLE",0,60) = [ACT$UF$UI]; 02693 M01S02682.ssval +++| END 02694 M01S02683.ssval +++| 02695 M01S02684.ssval +++| CONTROL EJECT; 02696 M01S02685.ssval +++| 02697 M01S02686.ssval +++|# 02698 M01S02687.ssval +++|* CLOSE THE FIXIT FILE. 02699 M01S02688.ssval +++|# 02700 M01S02689.ssval +++| 02701 M01S02690.ssval +++| FREFL = FALSE; 02702 M01S02691.ssval +++| WRITEF(FIXITFILE,RCL); 02703 M01S02692.ssval +++| REWIND(FIXITFILE,RCL); 02704 M01S02693.ssval +++| 02705 M01S02694.ssval +++|# 02706 M01S02695.ssval +++|* ISSUE COUNT OF ORPHANS. 02707 M01S02696.ssval +++|# 02708 M01S02697.ssval +++| 02709 M01S02698.ssval +++| MP$WD[1] = VLNTC(CNTORPHANS,"XCDD",5); 02710 M01S02699.ssval +++| VLMSG(VM"NTFO"); 02711 M01S02700.ssval +++| 02712 M01S02701.ssval +++|# 02713 M01S02702.ssval +++|* ISSUE COUNT OF RELEASABLE AU-S. 02714 M01S02703.ssval +++|# 02715 M01S02704.ssval +++| 02716 M01S02705.ssval +++| MP$WD[1] = VLNTC(RELEASABLE,"XCDD",6); 02717 M01S02706.ssval +++| VLMSG(VM"RSPACE"); 02718 M01S00003.msea011 +++| 02719 M01S00004.msea011 +++|# 02720 M01S00005.msea011 +++|* ISSUE NUMBER OF PFC SYSTEM AND DATA ERRORS. 02721 M01S00006.msea011 +++|# 02722 M01S00007.msea011 +++| 02723 M01S00008.msea011 +++| IF TPFCERRS NQ 0 02724 M01S00009.msea011 +++| THEN 02725 M01S00010.msea011 +++| BEGIN 02726 M01S00011.msea011 +++| MP$WD[1] = VLNTC(TPFCERRS,"XCDD",4); 02727 M01S00012.msea011 +++| VLMSG(VM"TPFCER"); 02728 M01S00013.msea011 +++| END 02729 M01S02707.ssval +++| 02730 M01S02708.ssval +++|# 02731 M01S02709.ssval +++|* ISSUE NUMBER OF VALIDATION ERRORS. 02732 M01S02710.ssval +++|# 02733 M01S02711.ssval +++| 02734 M01S02712.ssval +++| MP$WD[1] = VLNTC(TOTALERRS,"XCDD",4); 02735 M01S02713.ssval +++| VLMSG(VM"TOTERR"); 02736 M01S02714.ssval +++| 02737 M01S02715.ssval +++|# 02738 M01S02716.ssval +++|* IF NOT CONNECTED TO EXEC, NO FIX/RELEASE PROCESSING CAN BE DONE. 02739 M01S02717.ssval +++|# 02740 M01S02718.ssval +++| 02741 M01S02719.ssval +++| IF NOT CONNECTED 02742 M01S02720.ssval +++| THEN 02743 M01S02721.ssval +++| BEGIN 02744 M01S02722.ssval +++| VLMSG(VM"NOFIX"); # ISSUE MESSAGE # 02745 M01S02723.ssval +++| RETURN; 02746 M01S02724.ssval +++| END 02747 M01S02725.ssval +++| 02748 M01S02726.ssval +++|# 02749 M01S02727.ssval +++|* DETERMINE MODE OF FIX PROCESSING BASED ON CONTROL CARD 02750 M01S02728.ssval +++|* PARAMETERS AND VALIDATION TOTAL ERRORS. 02751 M01S02729.ssval +++|# 02752 M01S02730.ssval +++| 02753 M01S02731.ssval +++| IF (PAR$RF EQ 0) AND (TOTALERRS LQ PAR$FX) 02754 M01S02732.ssval +++| AND (TOTALERRS NQ 0) 02755 M01S02733.ssval +++| THEN 02756 M01S02734.ssval +++| BEGIN 02757 M01S02735.ssval +++| VLMSG(VM"UPDED"); # ISSUE MESSAGE # 02758 M01S02736.ssval +++| MODE = S"FIX"; # FIX CATALOG MODE # 02759 M01S02737.ssval +++| END 02760 M01S02738.ssval +++| 02761 M01S02739.ssval +++| IF (PAR$RF NQ 0) AND (PAR$RL NQ 0) AND (TOTALERRS LQ PAR$FX) 02762 M01S02740.ssval +++| THEN 02763 M01S02741.ssval +++| BEGIN 02764 M01S02742.ssval +++| RELEASED = FALSE; # INITIALIZE FILES RELEASED FLAG # 02765 M01S02743.ssval +++| RDF$BEFORE = FALSE; # INITIALIZE RDF FLAG # 02766 M01S02744.ssval +++| MODE = S"RELEASE"; # RELEASE ORPHANS MODE # 02767 M01S02745.ssval +++| END 02768 M01S02746.ssval +++| 02769 M01S02747.ssval +++| IF MODE EQ S"NONE" 02770 M01S02748.ssval +++| THEN 02771 M01S02749.ssval +++| BEGIN 02772 M01S02750.ssval +++| VLMSG(VM"NOFIX"); # ISSUE MESSAGE # 02773 M01S02751.ssval +++| END 02774 M01S02752.ssval +++| 02775 M01S02753.ssval +++| 02776 M01S02754.ssval +++|# 02777 M01S02755.ssval +++|* READ THE FIXIT FILE AND PERFORM FIX/RELEASE ACTIONS BASED ON 02778 M01S02756.ssval +++|* RECORD TYPE. 02779 M01S02757.ssval +++|# 02780 M01S02758.ssval +++| 02781 M01S02759.ssval +++| READ(FIXITFILE,NRCL); 02782 M01S02760.ssval +++| STAT = OK; 02783 M01S02761.ssval +++| REPEAT WHILE STAT EQ OK 02784 M01S02762.ssval +++| DO 02785 M01S02763.ssval +++| BEGIN # PROCESS FIXIT FILE # 02786 M01S02764.ssval +++| READW(FIXITFILE,EXTRECORD,RLFIX,STAT); 02787 M01S02765.ssval +++| IF STAT NQ 0 02788 M01S02766.ssval +++| THEN 02789 M01S02767.ssval +++| BEGIN 02790 M01S02768.ssval +++| TEST DUMMY; # EXIT, NO RECORD TO PROCESS # 02791 M01S02769.ssval +++| END 02792 M01S02770.ssval +++| 02793 M01S02771.ssval +++| SMINDX = EXTR$SM[0]; 02794 M01S02772.ssval +++| SBINDX = EXTR$SB[0]; 02795 M01S02773.ssval +++| 02796 M01S02774.ssval +++|# 02797 M01S02775.ssval +++|* FOR RELEASE MODE, PURGE TROUBLE-FREE ORPHANS. 02798 M01S02776.ssval +++|# 02799 M01S02777.ssval +++| 02800 M01S02778.ssval +++| IF (MODE EQ S"RELEASE") AND (FIX$RT[0] EQ REC"TFORPH") 02801 M01S02779.ssval +++| THEN 02802 M01S02780.ssval +++| BEGIN # RELEASE ORPHANS # 02803 M01S02781.ssval +++| VLLPDT(EXTR$SB[0],EXTR$SM[0],LPDT); # RETURNS LAST PURGE 02804 M01S02782.ssval +++| DATE/TIME # 02805 M01S02783.ssval +++| 02806 M01S02784.ssval +++|# 02807 M01S02785.ssval +++|* RELEASE ONLY IF THE SUBCATALOG LAST PURGE DATE/TIME IS LESS THAN 02808 M01S02786.ssval +++|* THE RDF FILE DATE/TIME. 02809 M01S02787.ssval +++|# 02810 M01S02788.ssval +++| 02811 M01S02789.ssval +++| IF LPDT LS RDFDT 02812 M01S02790.ssval +++| THEN 02813 M01S02791.ssval +++| BEGIN
Line S02792 Modification History | |
---|---|
M01 (Added by) | ssval |
M02 (Updated by) | ssval3 |
Seq # *Modification Id* Act ----------------------------+ 02814 M02S02792.ssval3 ---| VLREQEX(TYP"TYP3",REQTYP3"PURG$ORPH"); 02815 M01S00010.ssval3 +++|# 02816 M01S00011.ssval3 +++|* CONVERT TO *CPR* FORMAT. 02817 M01S00012.ssval3 +++|# 02818 M01S00013.ssval3 +++| 02819 M01S00014.ssval3 +++| P<CPR> = LOC(CPRARRAY); 02820 M01S00015.ssval3 +++| CPR$C[0] = FALSE; 02821 M01S00016.ssval3 +++| CPR$CSU[0] = EXTR$SM[0]; 02822 M01S00017.ssval3 +++| CPR$SUB[0] = EXTR$SB[0]; 02823 M01S00018.ssval3 +++| CPR$FAM[0] = PAR$FM; 02824 M01S00019.ssval3 +++| CPR$FCT[0] = EXTR$FCT[0]; 02825 M01S00020.ssval3 +++| CPR$AU[0] = EXTR$AU[0]; 02826 M01S00021.ssval3 +++| CPR$RQT[0] = TYP"TYP3"; 02827 M01S00022.ssval3 +++| CPR$RQC[0] = REQTYP3"REL$SETUP"; 02828 M01S00023.ssval3 +++| WRITEW(RELCFILE,CPRARRAY,CPRLEN,STAT); 02829 M01S02793.ssval +++| RELEASED = TRUE; # FREE FILES RELEASED # 02830 M01S02794.ssval +++| TEST DUMMY; 02831 M01S02795.ssval +++| END 02832 M01S02796.ssval +++| 02833 M01S02797.ssval +++| ELSE 02834 M01S02798.ssval +++| BEGIN 02835 M01S02799.ssval +++| RDF$BEFORE = TRUE; 02836 M01S02800.ssval +++| END 02837 M01S02801.ssval +++| 02838 M01S02802.ssval +++| END # RELEASE ORPHANS # 02839 M01S02803.ssval +++| 02840 M01S02804.ssval +++|# 02841 M01S02805.ssval +++|* UPDATE *PFC* IF FILE IS TO BE REMOVED FROM CARTRIDGE. 02842 M01S02806.ssval +++|# 02843 M01S02807.ssval +++| 02844 M01S02808.ssval +++| IF FIX$RT[0] EQ REC"FCF" 02845 M01S02809.ssval +++| AND PAR$RF EQ 0 02846 M01S02810.ssval +++| THEN # SET FREE CARTRIDGE FLAGS # 02847 M01S02811.ssval +++| BEGIN 02848 M01S02812.ssval +++| VLFIXP(FREE); 02849 M01S02813.ssval +++| IF STAT EQ 0 02850 M01S02814.ssval +++| THEN 02851 M01S02815.ssval +++| BEGIN 02852 M01S02816.ssval +++| FREFL = TRUE; 02853 M01S02817.ssval +++| END 02854 M01S02818.ssval +++| 02855 M01S02819.ssval +++| END 02856 M01S02820.ssval +++| 02857 M01S02821.ssval +++| 02858 M01S02822.ssval +++|# 02859 M01S02823.ssval +++|* FOR FIX MODE, GET ACTIONS BASED ON THE FIXIT RECORD TYPE. 02860 M01S02824.ssval +++|# 02861 M01S02825.ssval +++| 02862 M01S02826.ssval +++| IF MODE NQ S"FIX" 02863 M01S02827.ssval +++| THEN 02864 M01S02828.ssval +++| BEGIN 02865 M01S02829.ssval +++| TEST DUMMY; # SKIP IF NOT FIX MODE # 02866 M01S02830.ssval +++| END 02867 M01S02831.ssval +++| 02868 M01S02832.ssval +++| FIXACTION = FIXA$WD[FIX$RT[0]]; # ACTIONS FOR THIS RECORD # 02869 M01S02833.ssval +++| 02870 M01S02834.ssval +++|# 02871 M01S02835.ssval +++|* UPDATE THE SMMAP ENTRY. 02872 M01S02836.ssval +++|# 02873 M01S02837.ssval +++| 02874 M01S02838.ssval +++| IF FIXACTION LAN ACT$UMAP NQ 0 02875 M01S02839.ssval +++| THEN 02876 M01S02840.ssval +++| BEGIN 02877 M01S02841.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"UPD$MAP"); 02878 M01S02842.ssval +++| END 02879 M01S02843.ssval +++| 02880 M01S02844.ssval +++|# 02881 M01S02845.ssval +++|* UPDATE *PFC* ENTRY IF THE FILE HAS A DISK IMAGE. 02882 M01S02846.ssval +++|# 02883 M01S02847.ssval +++| 02884 M01S02848.ssval +++| IF FIXACTION LAN ACT$UPFC NQ 0 AND EXTR$D[0] NQ 0 02885 M01S02849.ssval +++| THEN 02886 M01S02850.ssval +++| BEGIN 02887 M01S02851.ssval +++| VLFIXP(ZERO); 02888 M01S02852.ssval +++| END 02889 M01S02853.ssval +++| 02890 M01S02854.ssval +++|# 02891 M01S02855.ssval +++|* UPDATE THE SFM CATALOG SMERR FLAG. 02892 M01S02856.ssval +++|# 02893 M01S02857.ssval +++| 02894 M01S02858.ssval +++| IF FIXACTION LAN ACT$USM NQ 0 02895 M01S02859.ssval +++| THEN 02896 M01S02860.ssval +++| BEGIN 02897 M01S02861.ssval +++| CFIELD = UCF"CMAP"; # CHANGE SMERR FLAG # 02898 M01S02862.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"UPD$CAT"); 02899 M01S02863.ssval +++| END 02900 M01S02864.ssval +++| 02901 M01S02865.ssval +++|# 02902 M01S02866.ssval +++|* UPDATE INHIBIT FLAG IN FCT. 02903 M01S02867.ssval +++|# 02904 M01S02868.ssval +++| 02905 M01S02869.ssval +++| IF FIXACTION LAN ACT$INHIB NQ 0 02906 M01S02870.ssval +++| OR (FIXACTION LAN ACT$UFROZ NQ 0 02907 M01S02871.ssval +++| AND NOT VTEN$ALOC[0]) 02908 M01S02872.ssval +++| THEN 02909 M01S02873.ssval +++| BEGIN 02910 M01S02874.ssval +++| CFIELD = UCF"INHIB"; # CHANGE INHIBIT FLAG # 02911 M01S02875.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"UPD$CAT"); 02912 M01S02876.ssval +++| END 02913 M01S02877.ssval +++| 02914 M01S02878.ssval +++|# 02915 M01S02879.ssval +++|* UPDATE SFM CATALOG *FCT* AU FROZ FLAG. 02916 M01S02880.ssval +++|# 02917 M01S02881.ssval +++| 02918 M01S02882.ssval +++| IF FIXACTION LAN ACT$UFROZ NQ 0 02919 M01S02883.ssval +++| THEN 02920 M01S02884.ssval +++| BEGIN 02921 M01S02885.ssval +++| CFIELD = UCF"FROZ"; # CHANGE FROZ FLAG # 02922 M01S02886.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"UPD$CAT"); 02923 M01S02887.ssval +++| END 02924 M01S02888.ssval +++| 02925 M01S02889.ssval +++|# 02926 M01S02890.ssval +++|* UPDATE SFM CATALOG *FCT* AU *SOF* FLAG IF THE ENTRY IS 02927 M01S02891.ssval +++|* A START OF FRAGMENT. 02928 M01S02892.ssval +++|# 02929 M01S02893.ssval +++| 02930 M01S02894.ssval +++| VTEN$WORD[0] = FIX$VT[0]; # GET *VT* ENTRY FROM RECORD # 02931 M01S02895.ssval +++| IF FIXACTION LAN ACT$USOF NQ 0 AND VTEN$SOF[0] 02932 M01S02896.ssval +++| THEN 02933 M01S02897.ssval +++| BEGIN 02934 M01S02898.ssval +++| CFIELD = UCF"SOF"; # CHANGE *SOF* FLAG # 02935 M01S02899.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"UPD$CAT"); 02936 M01S02900.ssval +++| END 02937 M01S02901.ssval +++| 02938 M01S02902.ssval +++| END # PROCESS FIXIT FILE # 02939 M01S02903.ssval +++| 02940 M01S02904.ssval +++| IF RELEASED AND MODE EQ S"RELEASE" 02941 M01S02905.ssval +++| THEN 02942 M01S02906.ssval +++| BEGIN
Line S02907 Modification History | |
---|---|
M01 (Added by) | ssval |
M02 (Updated by) | ssval3 |
Seq # *Modification Id* Act ----------------------------+ 02943 M02S02907.ssval3 ---| VLMSG(VM"FSREL"); # FREE FILES RELEASED MESSAGE # 02944 M01S00024.ssval3 +++| WRITEF(RELCFILE,RCL); 02945 M01S00025.ssval3 +++| RETERN(RELCFILE,RCL); 02946 M01S00026.ssval3 +++| VLMSG(VM"REL"); 02947 M01S00027.ssval3 +++| VLREQEX(TYP"TYP3",REQTYP3"REL$SETUP"); 02948 M01S00028.ssval3 +++| MP$WD[1] = VLNTC(NFILER,"XCDD",5); 02949 M01S00029.ssval3 +++| VLMSG(VM"FCREL"); 02950 M01S02908.ssval +++| END 02951 M01S02909.ssval +++| 02952 M01S02910.ssval +++| IF NOT RELEASED AND MODE EQ S"RELEASE" 02953 M01S02911.ssval +++| THEN 02954 M01S02912.ssval +++| BEGIN 02955 M01S02913.ssval +++| VLMSG(VM"FSNREL"); 02956 M01S02914.ssval +++| IF RDF$BEFORE 02957 M01S02915.ssval +++| THEN 02958 M01S02916.ssval +++| BEGIN 02959 M01S02917.ssval +++| VLMSG(VM"RDFBF"); 02960 M01S02918.ssval +++| END 02961 M01S02919.ssval +++| 02962 M01S02920.ssval +++| END 02963 M01S02921.ssval +++| 02964 M01S02922.ssval +++| IF FREFL 02965 M01S02923.ssval +++| THEN # FREE CARTRIDGE FLAG SET # 02966 M01S02924.ssval +++| BEGIN 02967 M01S02925.ssval +++| VLMSG(VM"FFSET"); 02968 M01S02926.ssval +++| END 02969 M01S02927.ssval +++| 02970 M01S02928.ssval +++| 02971 M01S02929.ssval +++| END # VLFIX # 02972 M01S02930.ssval +++| 02973 M01S02931.ssval +++| TERM 02974 M01S02932.ssval +++|PROC VLFIXP(ACTION); 02975 M01S02933.ssval +++|# TITLE VLFIXP - ATTACHES PERMANENT FILE AND RESETS THE ASA. # 02976 M01S02934.ssval +++| 02977 M01S02935.ssval +++| BEGIN # VLFIXP # 02978 M01S02936.ssval +++| 02979 M01S02937.ssval +++|# 02980 M01S02938.ssval +++|** VLFIXP - RESETS THE *ASA*. 02981 M01S02939.ssval +++|* 02982 M01S02940.ssval +++|* *VLFIXP* ATTACHES THE USER FILE SPECIFIED IN THE FIXIT 02983 M01S02941.ssval +++|* FILE ENTRY, VERIFIES THE *ASA* IS CORRECT, RESETS THE 02984 M01S02942.ssval +++|* *ASA*, THEN RETURNS THE FILE. 02985 M01S02943.ssval +++|* 02986 M01S02944.ssval +++|* PROC VLFIXP 02987 M01S02945.ssval +++|* 02988 M01S02946.ssval +++|* ENTRY (PAR$FM) - FAMILY. 02989 M01S02947.ssval +++|* (ACTION) IF ZERO THEN SET FREE FLAG IN *PFC*, ELSE 02990 M01S02948.ssval +++|* ZERO *ASA* IN *PFC*. 02991 M01S02949.ssval +++|* ARRAY EXTRECORD - FIXIT FILE RECORD. 02992 M01S02950.ssval +++|* 02993 M01S02951.ssval +++|* EXIT THE *ASA* FOR THE FIXIT FILE ENTRY IS SET TO ZERO. 02994 M01S02952.ssval +++|* THE USER FILE IS RETURNED. 02995 M01S02953.ssval +++|# 02996 M01S02954.ssval +++| 02997 M01S02955.ssval +++|# 02998 M01S02956.ssval +++|**** PROC VLFIXP - XREF LIST BEGIN. 02999 M01S02957.ssval +++|# 03000 M01S02958.ssval +++| 03001 M01S02959.ssval +++| XREF 03002 M01S02960.ssval +++| BEGIN 03003 M01S02961.ssval +++| PROC BZFILL; # ZERO FILL STORAGE # 03004 M01S02962.ssval +++| PROC MESSAGE; # SEND MESSAGE TO DAYFILE # 03005 M01S02963.ssval +++| PROC SETAF; # SET FLAG IN *PFC* # 03006 M01S02964.ssval +++| PROC RECALL; # INTERFACE TO RECALL # 03007 M01S02965.ssval +++| PROC RETERN; # RETURNS SPECIFIED FILE # 03008 M01S02966.ssval +++| PROC SETASA; # INTERFACE TO *SETASA* ROUTINE # 03009 M01S02967.ssval +++| PROC UATTACH; # INTERFACE TO *UATTACH* MACRO # 03010 M01S02968.ssval +++| PROC UGET; # UTILITY GET # 03011 M01S02969.ssval +++| END 03012 M01S02970.ssval +++| 03013 M01S02971.ssval +++|# 03014 M01S02972.ssval +++|**** PROC VLFIXP - XREF LIST END. 03015 M01S02973.ssval +++|# 03016 M01S02974.ssval +++| 03017 M01S02975.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 03018 M01S02976.ssval +++| 03019 M01S02977.ssval +++|*CALL COMBFAS 03020 M01S02978.ssval +++|*CALL COMBBZF; 03021 M01S02979.ssval +++|*CALL COMSPFM 03022 M01S02980.ssval +++|*CALL COMTVLD 03023 M01S02981.ssval +++|*CALL COMTVLF 03024 M01S02982.ssval +++| 03025 M01S02983.ssval +++| DEF ACCMD #1#; # READ MODE # 03026 M01S02984.ssval +++| DEF RP #4#; # FULL ERROR PROCESSING # 03027 M01S02985.ssval +++| DEF ZEROASA #0#; # ZERO THE *ASA* # 03028 M01S02986.ssval +++| 03029 M01S02987.ssval +++| ITEM ACTION U; # ZERO OR SET FLAG # 03030 M01S02988.ssval +++| ITEM FAMILY C(10); # FAMILY NAME # 03031 M01S02989.ssval +++| ITEM I U; # INDUCTION VARIABLE # 03032 M01S02990.ssval +++| ITEM J U; # INDUCTION # 03033 M01S02991.ssval +++| ITEM LFN C(10); # LOCAL FILE NAME # 03034 M01S02992.ssval +++| ITEM PFNM C(10); # PERMANENT FILE NAME # 03035 M01S02993.ssval +++| ITEM UFLAG U; # STATUS FLAG # 03036 M01S02994.ssval +++| 03037 M01S02995.ssval +++| ARRAY PFCCAT [0:0] S(16); # TEMPORARY ARRAY FOR *PFC* # 03038 M01S02996.ssval +++| BEGIN 03039 M01S02997.ssval +++| ITEM NOITEM U(00,00,60); # DUMMY ITEM # 03040 M01S02998.ssval +++| END 03041 M01S02999.ssval +++| 03042 M01S03000.ssval +++| ARRAY MSSGE[0:2];; # ARRAY FOR MESSAGE # 03043 M01S03001.ssval +++| 03044 M01S03002.ssval +++| ARRAY MSSG [0:0] P(2); 03045 M01S03003.ssval +++| BEGIN 03046 M01S03004.ssval +++| ITEM MSSG1 C(00,00,13); # ARRAY FOR MESSAGE # 03047 M01S03005.ssval +++| END 03048 M01S03006.ssval +++| 03049 M01S03007.ssval +++| CONTROL EJECT; 03050 M01S03008.ssval +++| 03051 M01S03009.ssval +++|# 03052 M01S03010.ssval +++|* SET ADDRESS FOR BASED ARRAY, *PFC*. 03053 M01S03011.ssval +++|# 03054 M01S03012.ssval +++| 03055 M01S03013.ssval +++| P<PFC> = LOC(PFCCAT); 03056 M01S03014.ssval +++| 03057 M01S03015.ssval +++| 03058 M01S03016.ssval +++|# 03059 M01S03017.ssval +++|* ATTACH THE PERMANENT FILE. 03060 M01S03018.ssval +++|# 03061 M01S03019.ssval +++| 03062 M01S03020.ssval +++| LFN = UTTLFN; 03063 M01S03021.ssval +++| BZFILL(LFN,TYPFILL"ZFILL",10); 03064 M01S03022.ssval +++| PFNM= EXTR$PFNC[0]; 03065 M01S03023.ssval +++| BZFILL(PFNM,TYPFILL"ZFILL",10); 03066 M01S03024.ssval +++| FAMILY = PAR$FM; 03067 M01S03025.ssval +++| BZFILL(FAMILY,TYPFILL"ZFILL",10); 03068 M01S03026.ssval +++| 03069 M01S03027.ssval +++|# 03070 M01S03028.ssval +++|* SET THE FREE FLAG IF ACTION = 0. 03071 M01S03029.ssval +++|# 03072 M01S03030.ssval +++| 03073 M01S03031.ssval +++| IF ACTION EQ 0 03074 M01S03032.ssval +++| THEN # SET *AFFRE* FLAG IN *PFC* # 03075 M01S03033.ssval +++| BEGIN 03076 M01S03034.ssval +++| SETAF(LFN,STAT,RP,EXTR$UI[0],FAMILY,EXTR$PFID[0], ## 03077 M01S03035.ssval +++| EXTR$ATASA[0],EXTR$CREA[0],AFFRE,MSSGE[0]); 03078 M01S03036.ssval +++| RETURN; 03079 M01S03037.ssval +++| END 03080 M01S03038.ssval +++| 03081 M01S03039.ssval +++|# 03082 M01S03040.ssval +++|* MAKE FILE LOCAL BEFORE SETASA. 03083 M01S03041.ssval +++|# 03084 M01S03042.ssval +++| 03085 M01S03043.ssval +++| IF EXTR$DA[0] 03086 M01S03044.ssval +++| THEN # DIRECT ACCESS FILE # 03087 M01S03045.ssval +++| BEGIN 03088 M01S03046.ssval +++| UATTACH(LFN,STAT,RP,PFNM,ACCMD,EXTR$UI[0],FAMILY, ## 03089 M01S03047.ssval +++| EXTR$PFID[0],PFCCAT[0],EXTR$CREA[0],MSSGE[0]); 03090 M01S03048.ssval +++| END 03091 M01S03049.ssval +++| 03092 M01S03050.ssval +++| ELSE # INDIRECT ACCESS FILE # 03093 M01S03051.ssval +++| BEGIN 03094 M01S03052.ssval +++| UFLAG = -1; 03095 M01S03053.ssval +++| SLOWFOR I = 0 WHILE UFLAG NQ 0 03096 M01S03054.ssval +++| DO 03097 M01S03055.ssval +++| BEGIN # WAIT FOR UGET RESPONSE # 03098 M01S03056.ssval +++| UFLAG = -1; 03099 M01S03057.ssval +++| UGET(LFN,UFLAG,6,PFNM,EXTR$UI[0],FAMILY,EXTR$PFID[0], ## 03100 M01S03058.ssval +++| PFCCAT[0],EXTR$CREA[0],MSSGE[0]); 03101 M01S03059.ssval +++| 03102 M01S03060.ssval +++| IF UFLAG EQ PEA # EXCESS ACTIVITY # 03103 M01S03061.ssval +++| OR UFLAG EQ INA # NO INTERLOCK # 03104 M01S03062.ssval +++| THEN 03105 M01S03063.ssval +++| BEGIN 03106 M01S03064.ssval +++| TEST I; 03107 M01S03065.ssval +++| END 03108 M01S03066.ssval +++| 03109 M01S03067.ssval +++| IF UFLAG NQ 0 03110 M01S03068.ssval +++| THEN 03111 M01S03069.ssval +++| BEGIN 03112 M01S03070.ssval +++| MSSG1 = " UGET FAILED."; 03113 M01S03071.ssval +++| MESSAGE(MSSG,UDFL1); 03114 M01S03072.ssval +++| UFLAG = 0; 03115 M01S03073.ssval +++| END 03116 M01S03074.ssval +++| 03117 M01S03075.ssval +++| END # WAIT FOR UGET REQUEST # 03118 M01S03076.ssval +++| 03119 M01S03077.ssval +++| END 03120 M01S03078.ssval +++| 03121 M01S03079.ssval +++| 03122 M01S03080.ssval +++|# 03123 M01S03081.ssval +++|* IF THERE WAS NO ERROR, AND IF THE CATALOG MAP *ASA* 03124 M01S03082.ssval +++|* MATCHES THE EXTRACT FILE *ASA*, 03125 M01S03083.ssval +++|* THEN - 03126 M01S03084.ssval +++|* RESET THE *ASA* TO ZERO USING THE *SETASA* MACRO. 03127 M01S03085.ssval +++|# 03128 M01S03086.ssval +++| 03129 M01S03087.ssval +++| IF (STAT EQ 0) AND (PFC$AA[0] EQ EXTR$ASA[0]) 03130 M01S03088.ssval +++| AND UFLAG EQ 0 03131 M01S03089.ssval +++| AND ACTION EQ 1 03132 M01S03090.ssval +++| THEN 03133 M01S03091.ssval +++| BEGIN 03134 M01S03092.ssval +++| SETASA(LFN,STAT,RP,EXTR$UI[0],FAMILY,EXTR$PFID[0] ## 03135 M01S03093.ssval +++| ,ZEROASA,EXTR$CREA[0],MSSGE[0]); 03136 M01S03094.ssval +++| END 03137 M01S03095.ssval +++| 03138 M01S03096.ssval +++| RETERN(UTTLFN,RCL); 03139 M01S03097.ssval +++| END # VLFIXP # 03140 M01S03098.ssval +++| 03141 M01S03099.ssval +++| TERM 03142 M01S03100.ssval +++|PROC VLLPDT(SUBPAR,SMPAR,LPDT); 03143 M01S03101.ssval +++|# TITLE VLLPDT - GET LAST PURGE DATE AND TIME. # 03144 M01S03102.ssval +++| 03145 M01S03103.ssval +++| 03146 M01S03104.ssval +++| BEGIN # VLLPDT # 03147 M01S03105.ssval +++| 03148 M01S03106.ssval +++|# 03149 M01S03107.ssval +++|** VLLPDT - GET LAST PURGE DATE AND TIME. 03150 M01S03108.ssval +++|* 03151 M01S03109.ssval +++|* *VLLPDT* ISSUES A REQUEST TO *EXEC* TO GET THE "LAST 03152 M01S03110.ssval +++|* PURGE DATE AND TIME" FOR THE SUBCATALOG FROM THE 03153 M01S03111.ssval +++|* PREAMBLE IN THE SFM CATALOG FOR THE SPECIFIED SUBFAMILY. 03154 M01S03112.ssval +++|* 03155 M01S03113.ssval +++|* PROC VLLPDT(SUBPAR,SMPAR,LPDT) 03156 M01S03114.ssval +++|* 03157 M01S03115.ssval +++|* ENTRY (SUBPAR) - SUBFAMILY. 03158 M01S03116.ssval +++|* (SMPAR) - *SM* DESIGNATOR. 03159 M01S03117.ssval +++|* 03160 M01S03118.ssval +++|* EXIT (LPDT) - PACKED DATE AND TIME RETURNED FROM *EXEC*. 03161 M01S03119.ssval +++|# 03162 M01S03120.ssval +++| 03163 M01S03121.ssval +++| ITEM SUBPAR I; # SUBFAMILY # 03164 M01S03122.ssval +++| ITEM SMPAR I; # *SM* ID # 03165 M01S03123.ssval +++| ITEM LPDT I; # LAST PURGE DATE-TIME # 03166 M01S03124.ssval +++| 03167 M01S03125.ssval +++|# 03168 M01S03126.ssval +++|**** PROC VLLPDT - XREF LIST BEGIN. 03169 M01S03127.ssval +++|# 03170 M01S03128.ssval +++| 03171 M01S03129.ssval +++| XREF 03172 M01S03130.ssval +++| BEGIN 03173 M01S03131.ssval +++| PROC VLREQEX; # REQUEST TO EXEC # 03174 M01S03132.ssval +++| END 03175 M01S03133.ssval +++| 03176 M01S03134.ssval +++|# 03177 M01S03135.ssval +++|**** PROC VLLPDT - XREF LIST END. 03178 M01S03136.ssval +++|# 03179 M01S03137.ssval +++| 03180 M01S03138.ssval +++| DEF LISTCON #0#; # TURN OFF LISTING # 03181 M01S03139.ssval +++| 03182 M01S03140.ssval +++|*CALL COMBFAS 03183 M01S03141.ssval +++|*CALL COMBCPR 03184 M01S03142.ssval +++|*CALL COMTVLD 03185 M01S03143.ssval +++|*CALL COMTVLF 03186 M01S03144.ssval +++| 03187 M01S03145.ssval +++| ITEM CURRSB I = 0; # CURRENT SUBFAMILY # 03188 M01S03146.ssval +++| ITEM CURRSM I; # CURRENT *SM* # 03189 M01S03147.ssval +++| ITEM CURRLPDT I; # CURRENT LPDT # 03190 M01S03148.ssval +++| CONTROL EJECT; 03191 M01S03149.ssval +++| 03192 M01S03150.ssval +++|# 03193 M01S03151.ssval +++|* CALL *EXEC* TO GET THE LAST PURGE DATE/TIME FOR THE SUBCATALOG, 03194 M01S03152.ssval +++|* IF IT IS NOT CURRENT. 03195 M01S03153.ssval +++|# 03196 M01S03154.ssval +++| 03197 M01S03155.ssval +++| IF (CURRSB NQ SUBPAR) OR (CURRSM NQ SMPAR) 03198 M01S03156.ssval +++| THEN 03199 M01S03157.ssval +++| BEGIN 03200 M01S03158.ssval +++| CURRSB = SUBPAR; # SAVE CURRENT SUBFAMILY # 03201 M01S03159.ssval +++| CURRSM = SMPAR; # SAVE CURRENT *SM* # 03202 M01S03160.ssval +++| VLREQEX(TYP"TYP3",REQTYP3"GT$PRGDATE"); 03203 M01S03161.ssval +++| CURRLPDT = CPR$DATE[0]; # SAVE LAST PURGE DATE/TIME # 03204 M01S03162.ssval +++| END 03205 M01S03163.ssval +++| 03206 M01S03164.ssval +++|# 03207 M01S03165.ssval +++|* RETURN THE LAST PURGE DATE/TIME FOR THE SUBCATALOG. 03208 M01S03166.ssval +++|# 03209 M01S03167.ssval +++| 03210 M01S03168.ssval +++| LPDT = CURRLPDT; 03211 M01S03169.ssval +++| 03212 M01S03170.ssval +++| END # VLLPDT # 03213 M01S03171.ssval +++| 03214 M01S03172.ssval +++| TERM 03215 M01S03173.ssval +++|PROC VLMSG(MNUM); 03216 M01S03174.ssval +++|# TITLE VLMSG - ISSUE INFORMATIONAL MESSAGE. # 03217 M01S03175.ssval +++| 03218 M01S03176.ssval +++| BEGIN # VLMSG # 03219 M01S03177.ssval +++| 03220 M01S03178.ssval +++|# 03221 M01S03179.ssval +++|** VLMSG - ISSUE INFORMATIONAL MESSAGE. 03222 M01S03180.ssval +++|* 03223 M01S03181.ssval +++|* *VLMSG* ISSUES A SPECIFIED MESSAGE TO THE DAYFILE AND/OR 03224 M01S03182.ssval +++|* TO THE REPORT FILE. 03225 M01S03183.ssval +++|* 03226 M01S03184.ssval +++|* PROC VLMSG(MNUM) 03227 M01S03185.ssval +++|* 03228 M01S03186.ssval +++|* ENTRY (MNUM) - MESSAGE NUMBER FROM STATUS LIST *VM*. 03229 M01S03187.ssval +++|* (ARRAY MPARAM) - CONTAINS PARAMETER(S) TO INSERT IN 03230 M01S03188.ssval +++|* THE MESSAGE TEXT. 03231 M01S03189.ssval +++|* 03232 M01S03190.ssval +++|* EXIT THE MESSAGE IS ISSUED. 03233 M01S03191.ssval +++|* 03234 M01S03192.ssval +++|* NOTES OPTIONS ARE SELECTED BY THE FIRST THREE 03235 M01S03193.ssval +++|* CHARACTERS OF THE MESSAGE TEXT. OPTIONS ARE - 03236 M01S03194.ssval +++|* . MSG$SYS (B) - ISSUES TO THE DAYFILE OR TO THE *B* 03237 M01S03195.ssval +++|* DISPLAY LINE 2. 03238 M01S03196.ssval +++|* . MSG$RPT (Y) - ISSUES TO THE REPORT FILE. 03239 M01S03197.ssval +++|* . NUMBER OF PARAMETERS TO FILL IN THE MESSAGE TEXT 03240 M01S03198.ssval +++|* FROM THE *MPARAM* ARRAY (NUMERIC, NOT A CHARACTER). 03241 M01S03199.ssval +++|# 03242 M01S03200.ssval +++| 03243 M01S03201.ssval +++| ITEM MNUM I; 03244 M01S03202.ssval +++| 03245 M01S03203.ssval +++|# 03246 M01S03204.ssval +++|**** PROC VLMSG - XREF LIST BEGIN. 03247 M01S03205.ssval +++|# 03248 M01S03206.ssval +++| 03249 M01S03207.ssval +++| XREF 03250 M01S03208.ssval +++| BEGIN 03251 M01S03209.ssval +++| PROC MESSAGE; # INTERFACE TO *MESSAGE* MACRO # 03252 M01S03210.ssval +++| PROC RPLINE; # CALLS *RPLINEX* TO PRINT A 03253 M01S03211.ssval +++| LINE # 03254 M01S03212.ssval +++| PROC VLPFILL; # FILL PARAMETER IN MESSAGE 03255 M01S03213.ssval +++| TEXT # 03256 M01S03214.ssval +++| END 03257 M01S03215.ssval +++| 03258 M01S03216.ssval +++|# 03259 M01S03217.ssval +++|**** PROC VLMSG - XREF LIST END. 03260 M01S03218.ssval +++|# 03261 M01S03219.ssval +++| 03262 M01S03220.ssval +++| DEF LISTCON #0#; 03263 M01S03221.ssval +++| 03264 M01S03222.ssval +++|*CALL COMBFAS 03265 M01S03223.ssval +++|*CALL COMTVLD 03266 M01S03224.ssval +++|*CALL COMTVLF 03267 M01S03225.ssval +++| 03268 M01S03226.ssval +++| ITEM NP I; # NUMBER OF PARAMETERS # 03269 M01S03227.ssval +++| ITEM N I; # TEMPORARY VARIABLE # 03270 M01S03228.ssval +++| 03271 M01S03229.ssval +++|# 03272 M01S03230.ssval +++|* ARRAY TO FORMAT THE MESSAGE TO ISSUE. 03273 M01S03231.ssval +++|# 03274 M01S03232.ssval +++| 03275 M01S03233.ssval +++| ARRAY VMTEXT [0:0] S(5); 03276 M01S03234.ssval +++| BEGIN 03277 M01S03235.ssval +++| ITEM VMT$LINE C(00,00,40); 03278 M01S03236.ssval +++| ITEM VMT$LEAD C(00,00,03); # LEADING CODE CHARACTERS # 03279 M01S03237.ssval +++| ITEM VMT$TEXT C(00,18,37); # MESSAGE TEXT # 03280 M01S03238.ssval +++| ITEM VMT$ZERO U(04,00,60); # ZERO BYTE # 03281 M01S03239.ssval +++| END 03282 M01S03240.ssval +++| 03283 M01S03241.ssval +++|# 03284 M01S03242.ssval +++|* ANALYZES ACTIONS TO DO BASED ON THE MESSAGE. 03285 M01S03243.ssval +++|# 03286 M01S03244.ssval +++| 03287 M01S03245.ssval +++| ARRAY MSGCODES [0:0] S(1); # MESSAGE CODES # 03288 M01S03246.ssval +++| BEGIN 03289 M01S03247.ssval +++| ITEM MSG$CODES C(00,00,03); 03290 M01S03248.ssval +++| ITEM MSG$SYS C(00,00,01); # ISSUE TO SYSTEM MACRO # 03291 M01S03249.ssval +++| ITEM MSG$RPT C(00,06,01); # ISSUE TO REPORT FILE # 03292 M01S03250.ssval +++| ITEM MSG$PARN U(00,12,06); # NUMBER OF PARAMETERS TO INSERT 03293 M01S03251.ssval +++| # 03294 M01S03252.ssval +++| END 03295 M01S03253.ssval +++| 03296 M01S03254.ssval +++| CONTROL EJECT; 03297 M01S03255.ssval +++| 03298 M01S03256.ssval +++|# 03299 M01S03257.ssval +++|* GET CODES FROM MESSAGE TEXT. 03300 M01S03258.ssval +++|# 03301 M01S03259.ssval +++| 03302 M01S03260.ssval +++| VMT$LINE[0] = VMESS$LINE[MNUM]; # GET MESSAGE TEXT REQUESTED # 03303 M01S03261.ssval +++| MSG$CODES[0] = VMT$LEAD[0]; # EXTRACT CODES FROM TEXT # 03304 M01S03262.ssval +++| VMT$LEAD[0] = " "; # CLEAR CODES FIELD IN TEXT # 03305 M01S03263.ssval +++| 03306 M01S03264.ssval +++|# 03307 M01S03265.ssval +++|* PUT PARAMETER(S) INTO MESSAGE IF THE NUMBER OF PARAMETERS IS 03308 M01S03266.ssval +++|* SPECIFIED IN CODES. 03309 M01S03267.ssval +++|# 03310 M01S03268.ssval +++| 03311 M01S03269.ssval +++| IF MSG$PARN[0] NQ " " 03312 M01S03270.ssval +++| THEN 03313 M01S03271.ssval +++| BEGIN 03314 M01S03272.ssval +++| NP = MSG$PARN[0] - "0"; # NUMBER CONVERTED TO BINARY # 03315 M01S03273.ssval +++| SLOWFOR N = 1 STEP 1 UNTIL NP 03316 M01S03274.ssval +++| DO 03317 M01S03275.ssval +++| BEGIN 03318 M01S03276.ssval +++| VLPFILL(VMTEXT,MPARAM[N]); # MOVE PARAMETER INTO TEXT # 03319 M01S03277.ssval +++| END 03320 M01S03278.ssval +++| 03321 M01S03279.ssval +++| END 03322 M01S03280.ssval +++| 03323 M01S03281.ssval +++|# 03324 M01S03282.ssval +++|* ISSUE MESSAGE REQUEST TO THE SYSTEM IF SPECIFIED. 03325 M01S03283.ssval +++|# 03326 M01S03284.ssval +++| 03327 M01S03285.ssval +++| IF MSG$SYS[0] NQ "N" 03328 M01S03286.ssval +++| THEN 03329 M01S03287.ssval +++| BEGIN # ISSUE TO SYSTEM # 03330 M01S03288.ssval +++| IF MSG$SYS[0] EQ "B" 03331 M01S03289.ssval +++| THEN 03332 M01S03290.ssval +++| BEGIN 03333 M01S03291.ssval +++| MESSAGE(VMT$TEXT[0],LINE2); # B ONLY # 03334 M01S03292.ssval +++| END 03335 M01S03293.ssval +++| 03336 M01S03294.ssval +++| ELSE 03337 M01S03295.ssval +++| BEGIN 03338 M01S03296.ssval +++| IF MSG$SYS[0] EQ "S" 03339 M01S03297.ssval +++| THEN 03340 M01S03298.ssval +++| BEGIN 03341 M01S03299.ssval +++| MESSAGE(VMT$TEXT[0],SYSUDF1); 03342 M01S03300.ssval +++| END 03343 M01S03301.ssval +++| 03344 M01S03302.ssval +++| ELSE 03345 M01S03303.ssval +++| BEGIN 03346 M01S03304.ssval +++| MESSAGE(VMT$TEXT[0],UDFL1); 03347 M01S03305.ssval +++| END 03348 M01S03306.ssval +++| 03349 M01S03307.ssval +++| END 03350 M01S03308.ssval +++| 03351 M01S03309.ssval +++| END # ISSUE TO SYSTEM # 03352 M01S03310.ssval +++| 03353 M01S03311.ssval +++|# 03354 M01S03312.ssval +++|* ISSUE MESSAGE TO THE REPORT FILE IF REQUESTED. 03355 M01S03313.ssval +++|# 03356 M01S03314.ssval +++| 03357 M01S03315.ssval +++| IF MSG$RPT[0] NQ "N" 03358 M01S03316.ssval +++| THEN 03359 M01S03317.ssval +++| BEGIN 03360 M01S03318.ssval +++| RPLINE(RPTFADR," ",0,1,EOPL); # BLANK LINE # 03361 M01S03319.ssval +++| RPLINE(RPTFADR,VMT$TEXT[0],3,37,EOPL); # ISSUE TO REPORT # 03362 M01S03320.ssval +++| END 03363 M01S03321.ssval +++| 03364 M01S03322.ssval +++| END # VLMSG # 03365 M01S03323.ssval +++| 03366 M01S03324.ssval +++| TERM 03367 M01S03325.ssval +++|PROC VLNCS; 03368 M01S03326.ssval +++|# TITLE VLNCS - NORMAL CHAIN SCAN. # 03369 M01S03327.ssval +++| 03370 M01S03328.ssval +++| 03371 M01S03329.ssval +++| BEGIN # VLNCS # 03372 M01S03330.ssval +++| 03373 M01S03331.ssval +++|# 03374 M01S03332.ssval +++|** VLNCS - NORMAL CHAIN SCAN. 03375 M01S03333.ssval +++|* 03376 M01S03334.ssval +++|* *VLNCS* SCANS ALL ENTRIES IN THE *VT* TABLE LOCATING 03377 M01S03335.ssval +++|* AND MARKING NORMAL CHAINS. THE CHAIN IS SEARCHED 03378 M01S03336.ssval +++|* BEGINNING WITH THE HEAD OF CHAIN ENTRY AND PROCEEDING 03379 M01S03337.ssval +++|* THROUGH THE LINKAGE UNTIL *EOC* OR AN ERROR IS DETECTED. 03380 M01S03338.ssval +++|* ALL ENTRIES ON A CHAIN ARE MARKED BY SETTING THE POINTER 03381 M01S03339.ssval +++|* FIELD TO THE INDEX OF THE HEAD OF CHAIN (*HOC*) ENTRY. 03382 M01S03340.ssval +++|* FLAGS ARE SET IN THE *VT* ENTRIES FOR ERRORS DETECTED. 03383 M01S03341.ssval +++|* 03384 M01S03342.ssval +++|* PROC VLNCS 03385 M01S03343.ssval +++|* 03386 M01S03344.ssval +++|* ENTRY (PAR$ST) - SCATTER FILE PARAMETER. 03387 M01S03345.ssval +++|* (VTFIRST) - INDEX OF FIRST ENTRY IN *VT*. 03388 M01S03346.ssval +++|* (VTLAST) - INDEX OF LAST ENTRY IN *VT*. 03389 M01S03347.ssval +++|* (ARRAY VTTAB) - VALIDATION TABLE. 03390 M01S03348.ssval +++|* 03391 M01S03349.ssval +++|* EXIT THE FOLLOWING FIELDS IN THE *VT* ENTRY MAY BE UPDATED. 03392 M01S03350.ssval +++|* (VTEN$POINT) - INDEX OF THE *HOC* ENTRY. 03393 M01S03351.ssval +++|* (VTEN$ILL) - ILL-FORMED CHAIN. 03394 M01S03352.ssval +++|* (VTEN$INTC) - INTERSECTING CHAIN. 03395 M01S03353.ssval +++|* (VTEN$INTS) - INTERSECTING AU. 03396 M01S03354.ssval +++|* (VTEN$SCAT) - SCATTERED FILE. 03397 M01S03355.ssval +++|* 03398 M01S03356.ssval +++|* INTERSECTING CHAIN DETAIL LINES ARE ISSUED TO THE 03399 M01S03357.ssval +++|* REPORT FILE IF INTERSECTIONS ARE DETECTED. 03400 M01S03358.ssval +++|* 03401 M01S03359.ssval +++|* NOTES CHAINS ARE FOLLOWED UNTIL - 03402 M01S03360.ssval +++|* . AN END OF CHAIN ENTRY IS DETECTED. 03403 M01S03361.ssval +++|* . AN ILL-FORMED CHAIN IS DETECTED. 03404 M01S03362.ssval +++|* . AN INTERSECTING CHAIN IS DETECTED. 03405 M01S03363.ssval +++|* 03406 M01S03364.ssval +++|* ILL-FORMED CHAINS ARE THOSE WHICH HAVE A MEMBER 03407 M01S03365.ssval +++|* THAT LINKS TO AN ENTRY ON THIS CHAIN (LOOPING) 03408 M01S03366.ssval +++|* OR THAT LINKS TO AN UNALLOCATED ENTRY OR HAS A 03409 M01S03367.ssval +++|* LINK THAT IS NOT ZERO WHEN THE *EOC* FLAG IS SET. 03410 M01S03368.ssval +++|* 03411 M01S03369.ssval +++|* INTERSECTING CHAINS ARE THOSE THAT HAVE A MEMBER 03412 M01S03370.ssval +++|* THAT LINKS TO AN ENTRY ON A DIFFERENT CHAIN. 03413 M01S03371.ssval +++|* 03414 M01S03372.ssval +++|* A SCATTERED FILE CHECK IS PERFORMED. THE SCATTERED 03415 M01S03373.ssval +++|* FLAG IS SET IF THE NUMBER OF CARTRIDGES FOR THE 03416 M01S03374.ssval +++|* CHAIN IS GREATER THAN THE *ST* PARAMETER. 03417 M01S03375.ssval +++|* 03418 M01S03376.ssval +++|# 03419 M01S03377.ssval +++| 03420 M01S03378.ssval +++|# 03421 M01S03379.ssval +++|**** PROC VLNCS - XREF LIST BEGIN. 03422 M01S03380.ssval +++|# 03423 M01S03381.ssval +++| 03424 M01S03382.ssval +++| XREF 03425 M01S03383.ssval +++| BEGIN 03426 M01S03384.ssval +++| PROC VLBICT; # INTERSECTING CHAIN REPORT # 03427 M01S03385.ssval +++| END 03428 M01S03386.ssval +++| 03429 M01S03387.ssval +++|# 03430 M01S03388.ssval +++|**** PROC VLNCS - XREF LIST END. 03431 M01S03389.ssval +++|# 03432 M01S03390.ssval +++| 03433 M01S03391.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 03434 M01S03392.ssval +++| 03435 M01S03393.ssval +++|*CALL COMBFAS 03436 M01S03394.ssval +++|*CALL COMTVLD 03437 M01S03395.ssval +++|*CALL COMTVLV 03438 M01S03396.ssval +++| 03439 M01S03397.ssval +++| 03440 M01S03398.ssval +++| STATUS CHAIN # CHAIN STATUS # 03441 M01S03399.ssval +++| OK, # GOOD CHAIN # 03442 M01S03400.ssval +++| ILL, # ILL-FORMED CHAIN # 03443 M01S03401.ssval +++| INTC; # INTERSECTING CHAIN # 03444 M01S03402.ssval +++| 03445 M01S03403.ssval +++| ITEM ENDCHAIN B; # END OF CHAIN FLAG # 03446 M01S03404.ssval +++| ITEM FREESTAT B; # FREE FLAG STATUS # 03447 M01S03405.ssval +++| ITEM HOCSTAT S : CHAIN; # HEAD-OF-CHAIN STATUS # 03448 M01S03406.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 03449 M01S03407.ssval +++| ITEM AUCNT I; # COUNT OF AU-S IN CHAIN # 03450 M01S03408.ssval +++| ITEM CARTCNT I; # COUNT OF CARTRIDGES IN CHAIN # 03451 M01S03409.ssval +++| 03452 M01S03410.ssval +++| CONTROL EJECT; 03453 M01S03411.ssval +++| 03454 M01S03412.ssval +++|# 03455 M01S03413.ssval +++|* SCAN *VT* FOR *HOC* ENTRIES. 03456 M01S03414.ssval +++|# 03457 M01S03415.ssval +++| 03458 M01S03416.ssval +++| SLOWFOR I = VTFIRST STEP 1 UNTIL VTLAST 03459 M01S03417.ssval +++| DO 03460 M01S03418.ssval +++| BEGIN # *VT* SCAN # 03461 M01S03419.ssval +++| VTEN$WORD[0] = VT$ITEM[I]; # GET ENTRY # 03462 M01S03420.ssval +++| 03463 M01S03421.ssval +++| IF NOT VTEN$HOC[0] # SKIP IF NOT HEAD OF CHAIN # 03464 M01S03422.ssval +++| THEN 03465 M01S03423.ssval +++| BEGIN 03466 M01S03424.ssval +++| TEST I; 03467 M01S03425.ssval +++| END 03468 M01S03426.ssval +++| 03469 M01S03427.ssval +++| 03470 M01S03428.ssval +++| VTPTR = I; # SET TO HEAD OF CHAIN # 03471 M01S03429.ssval +++| 03472 M01S03430.ssval +++| 03473 M01S03431.ssval +++|# 03474 M01S03432.ssval +++|* INITIALIZE. 03475 M01S03433.ssval +++|# 03476 M01S03434.ssval +++| 03477 M01S03435.ssval +++| AUCNT = 0; 03478 M01S03436.ssval +++| CARTCNT = 1; 03479 M01S03437.ssval +++| ENDCHAIN = FALSE; 03480 M01S03438.ssval +++| FREESTAT = FALSE; 03481 M01S03439.ssval +++| HOCSTAT = S"OK"; # ASSUME GOOD # 03482 M01S03440.ssval +++| 03483 M01S03441.ssval +++|# 03484 M01S03442.ssval +++|* PROCESS EACH ENTRY IN THE CHAIN STARTING WITH HEAD OF CHAIN. 03485 M01S03443.ssval +++|* NOTE - ENTRIES ARE PLACED ON A CHAIN BY SETTING THE VTEN$POINT 03486 M01S03444.ssval +++|* FIELD EQUAL TO THE INDEX FOR THE HEAD OF CHAIN. 03487 M01S03445.ssval +++|* I = HEAD OF CHAIN INDEX. 03488 M01S03446.ssval +++|# 03489 M01S03447.ssval +++| 03490 M01S03448.ssval +++| REPEAT WHILE NOT ENDCHAIN 03491 M01S03449.ssval +++| DO # NORMAL CHAIN PROCESS # 03492 M01S03450.ssval +++| BEGIN # NOT END OF CHAIN # 03493 M01S03451.ssval +++| IF VTEN$POINT[0] EQ 0 03494 M01S03452.ssval +++| THEN 03495 M01S03453.ssval +++| 03496 M01S03454.ssval +++|# 03497 M01S03455.ssval +++|* PUT ENTRY ON CHAIN. 03498 M01S03456.ssval +++|# 03499 M01S03457.ssval +++| 03500 M01S03458.ssval +++| BEGIN # ADD TO CHAIN # 03501 M01S03459.ssval +++| VTEN$POINT[0] = I; # MARK ENTRY ON CHAIN # 03502 M01S03460.ssval +++| IF NOT VTEN$ALOC[0] 03503 M01S03461.ssval +++| THEN 03504 M01S03462.ssval +++| BEGIN 03505 M01S03463.ssval +++| VTEN$SOF[0] = TRUE; 03506 M01S03464.ssval +++| END 03507 M01S03465.ssval +++| 03508 M01S03466.ssval +++| IF NOT VTEN$ALOC[0] OR VTEN$EOC[0] AND VTEN$LINK[0] NQ 0 03509 M01S03467.ssval +++| THEN 03510 M01S03468.ssval +++| BEGIN 03511 M01S03469.ssval +++| HOCSTAT = S"ILL"; # ILL-FORMED CHAIN # 03512 M01S03470.ssval +++| END 03513 M01S03471.ssval +++| 03514 M01S03472.ssval +++| AUCNT = AUCNT + 1; 03515 M01S03473.ssval +++| IF VTEN$OCL[0] NQ 0 03516 M01S03474.ssval +++| THEN # LINK IS OFF CARTRIDGE # 03517 M01S03475.ssval +++| BEGIN 03518 M01S03476.ssval +++| CARTCNT = CARTCNT + 1; 03519 M01S03477.ssval +++| END 03520 M01S03478.ssval +++| 03521 M01S03479.ssval +++| IF VTEN$FCF[0] 03522 M01S03480.ssval +++| THEN # FREE CARTRIDGE FLAG SET # 03523 M01S03481.ssval +++| BEGIN 03524 M01S03482.ssval +++| FREESTAT = TRUE; 03525 M01S03483.ssval +++| END 03526 M01S03484.ssval +++| 03527 M01S03485.ssval +++| END # ADD TO CHAIN # 03528 M01S03486.ssval +++| 03529 M01S03487.ssval +++| ELSE # VTEN$POINT[0] NOT EQUAL TO 0 # 03530 M01S03488.ssval +++| 03531 M01S03489.ssval +++|# 03532 M01S03490.ssval +++|* ENTRY ALREADY ASSIGNED TO A CHAIN. 03533 M01S03491.ssval +++|# 03534 M01S03492.ssval +++| 03535 M01S03493.ssval +++| BEGIN # ENTRY ON A CHAIN # 03536 M01S03494.ssval +++| VTEN$INTS[0] = TRUE; 03537 M01S03495.ssval +++| IF VTEN$POINT[0] EQ I 03538 M01S03496.ssval +++| THEN 03539 M01S03497.ssval +++| BEGIN 03540 M01S03498.ssval +++| HOCSTAT = S"ILL"; # ILL-FORMED CHAIN # 03541 M01S03499.ssval +++| VTEN$LOOP[0] = TRUE; 03542 M01S03500.ssval +++| END 03543 M01S03501.ssval +++| 03544 M01S03502.ssval +++| ELSE 03545 M01S03503.ssval +++| BEGIN 03546 M01S03504.ssval +++| HOCSTAT = S"INTC"; # INTERSECTING CHAIN # 03547 M01S03505.ssval +++| VLBICT(I,VTEN$POINT[0]); # REPORT INTERSECTIONS # 03548 M01S03506.ssval +++| END 03549 M01S03507.ssval +++| 03550 M01S03508.ssval +++| END # ENTRY ON A CHAIN # 03551 M01S03509.ssval +++| 03552 M01S03510.ssval +++|# 03553 M01S03511.ssval +++|* UPDATE AU ENTRY. 03554 M01S03512.ssval +++|# 03555 M01S03513.ssval +++| 03556 M01S03514.ssval +++| VT$ITEM[VTPTR] = VTEN$WORD[0]; # STORE ENTRY TO *VT* # 03557 M01S03515.ssval +++| 03558 M01S03516.ssval +++|# 03559 M01S03517.ssval +++|* DETERMINE IF END-OF-CHAIN. THE END IS WHEN THE END OF CHAIN 03560 M01S03518.ssval +++|* FLAG IS SET OR A CHAIN WITH LINKAGE PROBLEMS HAS BEEN DETECTED. 03561 M01S03519.ssval +++|# 03562 M01S03520.ssval +++| 03563 M01S03521.ssval +++| ENDCHAIN = VTEN$EOC[0] OR HOCSTAT NQ 0; 03564 M01S03522.ssval +++| 03565 M01S03523.ssval +++|# 03566 M01S03524.ssval +++|* GET LINK TO NEXT IF NOT AT END. 03567 M01S03525.ssval +++|# 03568 M01S03526.ssval +++| 03569 M01S03527.ssval +++| IF NOT ENDCHAIN 03570 M01S03528.ssval +++| THEN 03571 M01S03529.ssval +++| BEGIN # LINK TO NEXT # 03572 M01S03530.ssval +++| VTPTR = VTEN$LINK[0]; 03573 M01S03531.ssval +++| IF (VTPTR LS VTFIRST) OR (VTPTR GR VTLAST) 03574 M01S03532.ssval +++| THEN # BAD LINK # 03575 M01S03533.ssval +++| BEGIN 03576 M01S03534.ssval +++| HOCSTAT = S"ILL"; # ILL-FORMED CHAIN # 03577 M01S03535.ssval +++| ENDCHAIN = TRUE; 03578 M01S03536.ssval +++| END 03579 M01S03537.ssval +++| 03580 M01S03538.ssval +++| END # LINK TO NEXT # 03581 M01S03539.ssval +++| 03582 M01S03540.ssval +++| 03583 M01S03541.ssval +++|# 03584 M01S03542.ssval +++|* GET NEXT AU IN CHAIN. 03585 M01S03543.ssval +++|# 03586 M01S03544.ssval +++| 03587 M01S03545.ssval +++| IF NOT ENDCHAIN 03588 M01S03546.ssval +++| THEN 03589 M01S03547.ssval +++| BEGIN 03590 M01S03548.ssval +++| VTEN$WORD[0] = VT$ITEM[VTPTR]; # NEXT AU # 03591 M01S03549.ssval +++| END 03592 M01S03550.ssval +++| 03593 M01S03551.ssval +++| END # NOT END OF CHAIN # 03594 M01S03552.ssval +++| 03595 M01S03553.ssval +++|# 03596 M01S03554.ssval +++|* IF INTERSECTING CHAINS, UPDATE OTHER *HOC* ENTRY. 03597 M01S03555.ssval +++|# 03598 M01S03556.ssval +++| 03599 M01S03557.ssval +++| IF HOCSTAT EQ S"INTC" 03600 M01S03558.ssval +++| THEN 03601 M01S03559.ssval +++| BEGIN 03602 M01S03560.ssval +++| VTEN$WORD[0] = VT$ITEM[VTEN$POINT[0]]; # GET *HOC* ENTRY # 03603 M01S03561.ssval +++| VTEN$INTC[0] = TRUE; # SET INTERSECTING # 03604 M01S03562.ssval +++| VT$ITEM[VTEN$POINT[0]] = VTEN$WORD[0]; # STORE *HOC* ENTRY # 03605 M01S03563.ssval +++| END 03606 M01S03564.ssval +++| 03607 M01S03565.ssval +++|# 03608 M01S03566.ssval +++|* UPDATE THE *HOC* ENTRY. 03609 M01S03567.ssval +++|# 03610 M01S03568.ssval +++| 03611 M01S03569.ssval +++| VTEN$WORD[0] = VT$ITEM[I]; # GET *HOC* ENTRY # 03612 M01S03570.ssval +++| IF HOCSTAT EQ S"ILL" 03613 M01S03571.ssval +++| THEN 03614 M01S03572.ssval +++| BEGIN 03615 M01S03573.ssval +++| VTEN$ILL[0] = TRUE; # SET ILL-FORMED BIT # 03616 M01S03574.ssval +++| END 03617 M01S03575.ssval +++| 03618 M01S03576.ssval +++| IF HOCSTAT EQ S"INTC" 03619 M01S03577.ssval +++| THEN 03620 M01S03578.ssval +++| BEGIN 03621 M01S03579.ssval +++| VTEN$INTC[0] = TRUE; # SET INTERSECTING BIT # 03622 M01S03580.ssval +++| END 03623 M01S03581.ssval +++| 03624 M01S03582.ssval +++|# 03625 M01S03583.ssval +++|* DO SCATTERED FILE CHECK. 03626 M01S03584.ssval +++|# 03627 M01S03585.ssval +++| 03628 M01S03586.ssval +++| IF CARTCNT GR PAR$ST 03629 M01S03587.ssval +++| THEN 03630 M01S03588.ssval +++| BEGIN 03631 M01S03589.ssval +++| VTEN$SCAT[0] = TRUE; # SET SCATTERED BIT # 03632 M01S03590.ssval +++| END 03633 M01S03591.ssval +++| 03634 M01S03592.ssval +++| IF FREESTAT 03635 M01S03593.ssval +++| THEN # FREE CARTRIDGE FLAG WAS SET # 03636 M01S03594.ssval +++| BEGIN 03637 M01S03595.ssval +++| VTEN$FCF[0] = TRUE; 03638 M01S03596.ssval +++| END 03639 M01S03597.ssval +++| 03640 M01S03598.ssval +++| VT$ITEM[I] = VTEN$WORD[0]; # STORE *HOC* ENTRY # 03641 M01S03599.ssval +++| 03642 M01S03600.ssval +++| END # *VT* SCAN # 03643 M01S03601.ssval +++| 03644 M01S03602.ssval +++| END # VLNCS # 03645 M01S03603.ssval +++| 03646 M01S03604.ssval +++| TERM 03647 M01S03605.ssval +++|FUNC VLNTC((FLD),(CONVTYP),(SIZE)) C(10); 03648 M01S03606.ssval +++|# TITLE VLNTC - NUMERIC TO CHARACTER CONVERSION. # 03649 M01S03607.ssval +++| 03650 M01S03608.ssval +++| BEGIN # VLNTC # 03651 M01S03609.ssval +++| 03652 M01S03610.ssval +++|# 03653 M01S03611.ssval +++|** VLNTC - NUMERIC TO CHARACTER CONVERSION. 03654 M01S03612.ssval +++|* 03655 M01S03613.ssval +++|* *VLNTC* CONVERTS THE DECIMAL/OCTAL NUMERIC TYPE DATA FIELD 03656 M01S03614.ssval +++|* INTO A LEFT-JUSTIFIED CHARACTER TYPE FIELD. 03657 M01S03615.ssval +++|* 03658 M01S03616.ssval +++|* THE DATA IN *FLD* IS CONVERTED AS SPECIFIED IN *CONVTYP*. 03659 M01S03617.ssval +++|* THEN THE NUMBER (*SIZE*) OF RIGHT-JUSTIFIED CONVERTED 03660 M01S03618.ssval +++|* CHARACTERS IS LEFT-JUSTIFIED INTO THE RESULT FIELD *VLNTC*. 03661 M01S03619.ssval +++|* 03662 M01S03620.ssval +++|* FUNC VLNTC(FLD,CONVTYP,SIZE) 03663 M01S03621.ssval +++|* 03664 M01S03622.ssval +++|* ENTRY (FLD) - DATA FIELD TO CONVERT (RIGHT JUSTIFIED). 03665 M01S03623.ssval +++|* (CONVTYP) - "XCDD" FOR DECIMAL DISPLAY CONVERSION. 03666 M01S03624.ssval +++|* "XCOD" FOR OCTAL DISPLAY CONVERSION. 03667 M01S03625.ssval +++|* ANYTHING ELSE IMPLIES NO CONVERSION. 03668 M01S03626.ssval +++|* (SIZE) - NUMBER OF CHARACTERS IN CONVERTED RESULT 03669 M01S03627.ssval +++|* TO RETURN. 03670 M01S03628.ssval +++|* 03671 M01S03629.ssval +++|* EXIT (VLNTC) - CONVERTED DATA, LEFT JUSTIFIED, BLANK 03672 M01S03630.ssval +++|* FILLED. 03673 M01S03631.ssval +++|* 03674 M01S03632.ssval +++|# 03675 M01S03633.ssval +++| 03676 M01S03634.ssval +++| ITEM FLD I; # FIELD TO CONVERT # 03677 M01S03635.ssval +++| ITEM CONVTYP C(10); # TYPE OF CONVERSION # 03678 M01S03636.ssval +++| ITEM SIZE I; # SIZE OF RESULT # 03679 M01S03637.ssval +++| 03680 M01S03638.ssval +++|# 03681 M01S03639.ssval +++|**** FUNC VLNTC - XREF LIST BEGIN. 03682 M01S03640.ssval +++|# 03683 M01S03641.ssval +++| 03684 M01S03642.ssval +++| XREF 03685 M01S03643.ssval +++| BEGIN 03686 M01S03644.ssval +++| PROC VLBFILL; # BLANK FILL # 03687 M01S03645.ssval +++| FUNC XCDD; # CONVERT INTEGER TO DECIMAL 03688 M01S03646.ssval +++| DISPLAY # 03689 M01S03647.ssval +++| FUNC XCOD; # CONVERT INTEGER TO OCTAL 03690 M01S03648.ssval +++| DISPLAY # 03691 M01S03649.ssval +++| END 03692 M01S03650.ssval +++| 03693 M01S03651.ssval +++|# 03694 M01S03652.ssval +++|**** FUNC VLNTC - XREF LIST END. 03695 M01S03653.ssval +++|# 03696 M01S03654.ssval +++| 03697 M01S03655.ssval +++| ITEM NUMBER I; # TEMPORARY VARIABLE # 03698 M01S03656.ssval +++| 03699 M01S03657.ssval +++| CONTROL EJECT; 03700 M01S03658.ssval +++| 03701 M01S03659.ssval +++| 03702 M01S03660.ssval +++| NUMBER = FLD; 03703 M01S03661.ssval +++| 03704 M01S03662.ssval +++|# 03705 M01S03663.ssval +++|* CONVERT FIELD AS SPECIFIED. 03706 M01S03664.ssval +++|# 03707 M01S03665.ssval +++| 03708 M01S03666.ssval +++| IF CONVTYP EQ "XCDD" # INTEGER TO DECIMAL # 03709 M01S03667.ssval +++| THEN 03710 M01S03668.ssval +++| BEGIN 03711 M01S03669.ssval +++| NUMBER = XCDD(FLD); 03712 M01S03670.ssval +++| END 03713 M01S03671.ssval +++| 03714 M01S03672.ssval +++| IF CONVTYP EQ "XCOD" # INTEGER TO OCTAL # 03715 M01S03673.ssval +++| THEN 03716 M01S03674.ssval +++| BEGIN 03717 M01S03675.ssval +++| NUMBER = XCOD(FLD); 03718 M01S03676.ssval +++| END 03719 M01S03677.ssval +++| 03720 M01S03678.ssval +++|# 03721 M01S03679.ssval +++|* BLANK FILL. 03722 M01S03680.ssval +++|# 03723 M01S03681.ssval +++| 03724 M01S03682.ssval +++| VLBFILL(NUMBER,1); 03725 M01S03683.ssval +++| 03726 M01S03684.ssval +++|# 03727 M01S03685.ssval +++|* RETURN THE FIELD WITH THE NUMBER OF CHARACTERS SPECIFIED, 03728 M01S03686.ssval +++|* LEFT JUSTIFIED, BLANK FILLED. 03729 M01S03687.ssval +++|# 03730 M01S03688.ssval +++| 03731 M01S03689.ssval +++| VLNTC = C<10-SIZE,SIZE>NUMBER; 03732 M01S03690.ssval +++| 03733 M01S03691.ssval +++| END # VLNTC # 03734 M01S03692.ssval +++| 03735 M01S03693.ssval +++| TERM 03736 M01S03694.ssval +++|PROC VLPFC; 03737 M01S03695.ssval +++| 03738 M01S03696.ssval +++|# TITLE VLPFC - READ PFC. # 03739 M01S03697.ssval +++| 03740 M01S03698.ssval +++| BEGIN # VLPFC # 03741 M01S03699.ssval +++| 03742 M01S03700.ssval +++|# 03743 M01S03701.ssval +++|** VLPFC - READ THE *PFC*. 03744 M01S03702.ssval +++|* 03745 M01S03703.ssval +++|* *VLPFC* BUILDS THE *PFC* EXTRACT FILES FROM THE *PFC* 03746 M01S03704.ssval +++|* CATALOG ENTRIES FOR THE SELECTED SUBFAMILIES AND 03747 M01S03705.ssval +++|* SELECTED SM(S). 03748 M01S03706.ssval +++|* 03749 M01S03707.ssval +++|* PROC VLPFC 03750 M01S03708.ssval +++|* 03751 M01S03709.ssval +++|* ENTRY (DEVMASK) - SELECTED SUBFAMILY(S) DEVICE MASK. 03752 M01S03710.ssval +++|* (PAR$CS) - SELECTED *SM-S*. 03753 M01S03711.ssval +++|* (PAR$FM) - FAMILY. 03754 M01S03712.ssval +++|* (PAR$SB) - SELECTED SUBFAMILIES. 03755 M01S03713.ssval +++|* (RPTFADR) - REPORT FILE *FET* ADDRESS. 03756 M01S03714.ssval +++|* 03757 M01S03715.ssval +++|* EXIT THE *PFC* EXTRACT FILES ARE WRITTEN. 03758 M01S03716.ssval +++|* 03759 M01S03717.ssval +++|* FOR ERRORS DETECTED - 03760 M01S03718.ssval +++|* 1) (TOTALERRS) - TOTAL VALIDATION ERRORS INCREMENTED. 03761 M01S03719.ssval +++|* 2) ERROR DETAIL LINES WRITTEN TO THE REPORT FILE. 03762 M01S03720.ssval +++|* 03763 M01S03721.ssval +++|* MESSAGES * ERROR READING *PFC* * 03764 M01S03722.ssval +++|* 03765 M01S03723.ssval +++|* NOTES VALIDATION ERRORS DETECTED ARE - 03766 M01S03724.ssval +++|* . INVALID *SM* IN *ASA*. 03767 M01S03725.ssval +++|* 03768 M01S03726.ssval +++|# 03769 M01S03727.ssval +++| 03770 M01S03728.ssval +++|# 03771 M01S03729.ssval +++|**** PROC VLPFC - XREF LIST BEGIN. 03772 M01S03730.ssval +++|# 03773 M01S03731.ssval +++| 03774 M01S03732.ssval +++| XREF 03775 M01S03733.ssval +++| BEGIN 03776 M01S03734.ssval +++| PROC LOFPROC; # LIST OF FILES PROCESSOR # 03777 M01S03735.ssval +++| PROC RDPFC; # READ PERMANENT FILE CATALOG # 03778 M01S03736.ssval +++| PROC REWIND; # INTERFACE TO *REWIND* MACRO # 03779 M01S03737.ssval +++| PROC RPLINE; # CALLS *RPLINEX* TO PRINT A 03780 M01S03738.ssval +++| LINE # 03781 M01S03739.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 03782 M01S03740.ssval +++| PROC VLMSG; # ISSUE INFORMATIONAL MESSAGE # 03783 M01S03741.ssval +++| FUNC VLNTC C(10); # NUMERIC TO CHARACTER 03784 M01S03742.ssval +++| CONVERSION # 03785 M01S03743.ssval +++| PROC WRITEF; # INTERFACE TO *WRITEF* MACRO # 03786 M01S03744.ssval +++| PROC WRITEW; # INTERFACE TO *WRITEW* MACRO # 03787 M01S03745.ssval +++| PROC ZSETFET; # INITIALIZES A *FET* FOR *I/O* # 03788 M01S03746.ssval +++| END 03789 M01S03747.ssval +++| 03790 M01S03748.ssval +++|# 03791 M01S03749.ssval +++|**** PROC VLPFC - XREF LIST END. 03792 M01S03750.ssval +++|# 03793 M01S03751.ssval +++| 03794 M01S03752.ssval +++| DEF LISTCON #0#; # TURN COMMON DECK LISTING OFF # 03795 M01S03753.ssval +++|*CALL COMBFAS 03796 M01S03754.ssval +++|*CALL COMSPFM 03797 M01S03755.ssval +++|*CALL COMTCTW 03798 M01S03756.ssval +++|*CALL COMTVLD 03799 M01S03757.ssval +++|*CALL COMTVLF 03800 M01S03758.ssval +++|*CALL COMTVLX 03801 M01S03759.ssval +++| 03802 M01S03760.ssval +++| ITEM VPEO I; # *PFC* ENTRY ORDINAL # 03803 M01S03761.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 03804 M01S03762.ssval +++| ITEM IWC I; # INCREMENTED WORD COUNT # 03805 M01S03763.ssval +++| ITEM K I; # TEMPORARY VARIABLE # 03806 M01S03764.ssval +++| ITEM WDCNT I; # WORD COUNT # 03807 M01S03765.ssval +++| 03808 M01S03766.ssval +++|# 03809 M01S03767.ssval +++|* BUFFER AREA FOR *PFC* ENTRY. 03810 M01S03768.ssval +++|# 03811 M01S03769.ssval +++| 03812 M01S03770.ssval +++| ARRAY VPFCBUFFER [0:O"101"] S(1); # *PFC* BUFFER # 03813 M01S03771.ssval +++| ITEM VPFC$WD U(00,00,60); 03814 M01S03772.ssval +++| 03815 M01S03773.ssval +++|# 03816 M01S03774.ssval +++|* ERROR LINES FOR REPORT FILE. 03817 M01S03775.ssval +++|# 03818 M01S03776.ssval +++| 03819 M01S03777.ssval +++| ARRAY BADSM [0:0] S(5); # INVALID *SM* REPORT LINE # 03820 M01S03778.ssval +++| BEGIN 03821 M01S03779.ssval +++| ITEM BAD$DESC C(00,00,50) = ["***PF = XXXXXXX "]; 03822 M01S03780.ssval +++| ITEM BAD$PFN C(00,48,07); 03823 M01S03781.ssval +++| ITEM BAD$ERR C(02,00,20) = ["INVALID SM IN PFC "]; 03824 M01S03782.ssval +++| END 03825 M01S03783.ssval +++| 03826 M01S03784.ssval +++| ARRAY BADSM2 [0:0] S(5); # INVALID *SM* REPORT LINE 2 # 03827 M01S03785.ssval +++| BEGIN 03828 M01S03786.ssval +++| ITEM BAD$DESC2 C(00,00,50) = [" UI = NNNNNN "]; 03829 M01S03787.ssval +++| ITEM BAD$UI C(00,48,06); 03830 M01S03788.ssval +++| END 03831 M01S03789.ssval +++| 03832 M01S03790.ssval +++| CONTROL EJECT; 03833 M01S03791.ssval +++| 03834 M01S03792.ssval +++|# 03835 M01S03793.ssval +++|* INITIALIZE FETS. 03836 M01S03794.ssval +++|# 03837 M01S03795.ssval +++| 03838 M01S03796.ssval +++| SLOWFOR I = 0 STEP 1 UNTIL MAXSF 03839 M01S03797.ssval +++| DO # *PFC* EXTRACT FILES # 03840 M01S03798.ssval +++| BEGIN 03841 M01S03799.ssval +++| PEXTFADR = LOC(PFCE$FET[I]); 03842 M01S03800.ssval +++| PEXTBADR = LOC(PFCE$BUF[I]); 03843 M01S03801.ssval +++| PFCE$LFN[0] = EXTLFN; # *LFN* OF *PFC* EXTRACT FILES # 03844 M01S03802.ssval +++| PFCE$LFNX[0] = I + "0"; # APPEND SUBFAMILY TO *LFN* # 03845 M01S03803.ssval +++| ZSETFET(PEXTFADR,PFCENAME,PEXTBADR,LPFCEBUF,SFETL); 03846 M01S03804.ssval +++| LOFPROC(PFCENAME); # ADD LFN TO LIST OF FILES # 03847 M01S03805.ssval +++| REWIND(PFCEXTN[I],RCL); 03848 M01S03806.ssval +++| END 03849 M01S03807.ssval +++| 03850 M01S03808.ssval +++| LOFPROC("CATS"); # ADD LFN TO LIST OF FILES # 03851 M01S03809.ssval +++| 03852 M01S03810.ssval +++|# 03853 M01S03811.ssval +++|* READ THE *PFC* FOR THE SELECTED SUBFAMILIES (DEVMASK). 03854 M01S03812.ssval +++|# 03855 M01S03813.ssval +++| 03856 M01S03814.ssval +++| STAT = 0; 03857 M01S03815.ssval +++| SLOWFOR I = 0 STEP 1 WHILE STAT EQ 0 03858 M01S03816.ssval +++| DO 03859 M01S03817.ssval +++| BEGIN # READ *PFC* ENTRIES # 03860 M01S03818.ssval +++| 03861 M01S03819.ssval +++| RDPFC(PAR$FM,DEVMASK,VPFCBUFFER,WDCNT,STAT); 03862 M01S03820.ssval +++| 03863 M01S03821.ssval +++|# 03864 M01S03822.ssval +++|* EXIT IF NO SECTOR WAS RETURNED. 03865 M01S03823.ssval +++|# 03866 M01S03824.ssval +++| 03867 M01S03825.ssval +++| IF STAT NQ 0 03868 M01S03826.ssval +++| THEN 03869 M01S03827.ssval +++| BEGIN 03870 M01S03828.ssval +++| TEST I; 03871 M01S03829.ssval +++| END 03872 M01S03830.ssval +++| 03873 M01S03831.ssval +++|# 03874 M01S03832.ssval +++|* ELSE, PROCESS THE *PFC* SECTOR THAT WAS RETURNED. 03875 M01S03833.ssval +++|# 03876 M01S03834.ssval +++| 03877 M01S03835.ssval +++| P<CNTRWORD> = LOC(VPFCBUFFER) + WDCNT; # RETURN CONTROL WORD # 03878 M01S03836.ssval +++| VPEO = -1; # INITIALIZE *PFC* ENTRY ORDINAL # 03879 M01S03837.ssval +++| 03880 M01S03838.ssval +++| SLOWFOR IWC = 0 STEP PFCENTL WHILE (IWC LS WDCNT) 03881 M01S03839.ssval +++| DO 03882 M01S03840.ssval +++| BEGIN # *PFC* SELECTION # 03883 M01S03841.ssval +++| VPEO = VPEO + 1; 03884 M01S03842.ssval +++| P<PFC> = LOC(VPFC$WD[IWC]); # SET POINTER TO A *PFC* ENTRY # 03885 M01S03843.ssval +++| 03886 M01S03844.ssval +++|# 03887 M01S03845.ssval +++|* SKIP THE *PFC* ENTRY IF IT IS NOT ACTIVE. 03888 M01S03846.ssval +++|# 03889 M01S03847.ssval +++| 03890 M01S03848.ssval +++| IF PFC$UI[0] EQ 0 03891 M01S03849.ssval +++| THEN 03892 M01S03850.ssval +++| BEGIN 03893 M01S03851.ssval +++| TEST IWC; # *PFC* ENTRY IS NOT ACTIVE # 03894 M01S03852.ssval +++| END 03895 M01S03853.ssval +++| 03896 M01S03854.ssval +++|# 03897 M01S03855.ssval +++|* PERMANENT FILE DOES EXIST. 03898 M01S03856.ssval +++|# 03899 M01S03857.ssval +++| 03900 M01S03858.ssval +++| SBINDX = PFC$SF[0]; # SUBFAMILY INDEX # 03901 M01S03859.ssval +++| P<ASA> = LOC(PFC$AA); # ASA DEFINITIONS # 03902 M01S03860.ssval +++| SMINDX = ASASM[0]; # EXTRACT *SM* INDEX # 03903 M01S03861.ssval +++| 03904 M01S03862.ssval +++| 03905 M01S00001.ssval1 +++|# 03906 M01S00002.ssval1 +++|* IF NOT *MAS* *PFC*. 03907 M01S00003.ssval1 +++|# 03908 M01S00004.ssval1 +++| 03909 M01S00005.ssval1 +++| IF PFC$AT NQ ATAS 03910 M01S00006.ssval1 +++| THEN 03911 M01S00007.ssval1 +++| BEGIN 03912 M01S00008.ssval1 +++| TEST IWC; 03913 M01S00009.ssval1 +++| END 03914 M01S00010.ssval1 +++| 03915 M01S00011.ssval1 +++| 03916 M01S03863.ssval +++|# 03917 M01S03864.ssval +++|* FOR INVALID *SM*, ISSUE DIAGNOSTIC. 03918 M01S03865.ssval +++|# 03919 M01S03866.ssval +++| 03920 M01S03867.ssval +++| IF (PFC$AA[0] NQ 0) AND ((SMINDX EQ 0) OR (SMINDX GR "H")) 03921 M01S03868.ssval +++| THEN 03922 M01S03869.ssval +++| BEGIN 03923 M01S03870.ssval +++| TOTALERRS = TOTALERRS + 1; 03924 M01S03871.ssval +++| RPLINE(RPTFADR," ",0,1,EOPL); # BLANK LINE # 03925 M01S03872.ssval +++| BAD$PFN[0] = VLNTC(PFC$FN[0]," ",10); # *PFN* IN ERROR # 03926 M01S03873.ssval +++| RPLINE(RPTFADR,BADSM,4,50,EOPL); # ISSUE ERROR LINE # 03927 M01S03874.ssval +++| BAD$UI[0] = VLNTC(PFC$UI[0],"XCOD",6); # SET UI IN ERROR 03928 M01S03875.ssval +++| LINE # 03929 M01S03876.ssval +++| RPLINE(RPTFADR,BADSM2,4,50,EOPL); # ISSUE ERROR LINE # 03930 M01S03877.ssval +++| TEST IWC; 03931 M01S03878.ssval +++| END 03932 M01S03879.ssval +++| 03933 M01S03880.ssval +++|# 03934 M01S03881.ssval +++|* SKIP *PFC* ENTRIES THAT DO NOT MATCH THE SELECTED SUBFAMILY 03935 M01S03882.ssval +++|* OR *SM*. 03936 M01S03883.ssval +++|# 03937 M01S03884.ssval +++| 03938 M01S03885.ssval +++| IF (B<SBINDX,1>PAR$SB EQ 0 ) ## 03939 M01S03886.ssval +++| OR (B<SMINDX,1>PAR$SM EQ 0) ## 03940 M01S03887.ssval +++| OR (PFC$AT[0] NQ ATAS) 03941 M01S03888.ssval +++| THEN 03942 M01S03889.ssval +++| BEGIN 03943 M01S03890.ssval +++| TEST IWC; 03944 M01S03891.ssval +++| END 03945 M01S03892.ssval +++| 03946 M01S03893.ssval +++|# 03947 M01S03894.ssval +++|* BUILD THE EXTRACT RECORD. 03948 M01S03895.ssval +++|# 03949 M01S03896.ssval +++| 03950 M01S03897.ssval +++| EXTR$PEO[0] = VPEO; # *PFC* ENTRY ORDINAL # 03951 M01S03898.ssval +++| EXTR$DN[0] = CNTR$DN[0]; # DEVICE NUMBER # 03952 M01S03899.ssval +++| EXTR$TRK[0] = CNTR$TRK[0]; # TRACK # 03953 M01S03900.ssval +++| EXTR$SEC[0] = CNTR$SEC[0]; # SECTOR # 03954 M01S03901.ssval +++| EXTR$DA[0] = PFC$DA[0]; 03955 M01S03902.ssval +++| EXTR$FLG[0] = PFC$AF[0]; # *ASA* FLAGS # 03956 M01S03903.ssval +++| EXTR$D[0] = 0; # INITIALIZE DISK IMAGE FLAG # 03957 M01S03904.ssval +++| IF PFC$BT[0] NQ 0 03958 M01S03905.ssval +++| THEN # *PFC* TRACK IS NOT ZERO # 03959 M01S03906.ssval +++| BEGIN 03960 M01S03907.ssval +++| EXTR$D[0] = 1; # DISK IMAGE EXISTS # 03961 M01S03908.ssval +++| END 03962 M01S03909.ssval +++| 03963 M01S03910.ssval +++| EXTR$ASA[0] = PFC$AA[0]; # SET THE *ASA* # 03964 M01S03911.ssval +++| EXTR$AT[0] = PFC$AT[0]; 03965 M01S03912.ssval +++| EXTR$FCT[0] = EXTR$GP[0]*16 + EXTR$GPT[0]; 03966 M01S03913.ssval +++| EXTR$PFN[0] = PFC$FN[0]; # SET THE *PFN* # 03967 M01S03914.ssval +++| EXTR$UI[0] = PFC$UI[0]; # SET THE *UI* # 03968 M01S03915.ssval +++| EXTR$BKDT[0] = PFC$UD[0]; # SET THE BACKUP DATE/TIME # 03969 M01S03916.ssval +++| EXTR$CREA[0] = PFC$CD[0]; # CREATION DATE/TIME # 03970 M01S03917.ssval +++| 03971 M01S03918.ssval +++|# 03972 M01S03919.ssval +++|* SET THE BACKUP DATE/TIME TO BE THE LATEST DATE/TIME FROM 03973 M01S03920.ssval +++|* THE UTILITY CONTROL AND CONTROL MODIFICATION DATE/TIME 03974 M01S03921.ssval +++|* FIELDS. 03975 M01S03922.ssval +++|# 03976 M01S03923.ssval +++| 03977 M01S03924.ssval +++| IF PFC$UD[0] LS PFC$KD[0] 03978 M01S03925.ssval +++| THEN # CONTROL IS NEWER THAN UTILITY # 03979 M01S03926.ssval +++| BEGIN 03980 M01S03927.ssval +++| EXTR$BKDT[0] = PFC$KD[0]; # BACKUP DATE/TIME # 03981 M01S03928.ssval +++| END 03982 M01S03929.ssval +++| 03983 M01S03930.ssval +++| WRITEW(PFCEXTN[SBINDX],EXTRECORD,RLEXTR,K); 03984 M01S03931.ssval +++| END # *PFC* SELECTION # 03985 M01S03932.ssval +++| 03986 M01S03933.ssval +++| END # READ *PFC* ENTRIES # 03987 M01S03934.ssval +++| 03988 M01S03935.ssval +++|# 03989 M01S03936.ssval +++|* IF ERROR READING PFC, ISSUE MESSAGE AND ABORT. 03990 M01S03937.ssval +++|# 03991 M01S03938.ssval +++| 03992 M01S03939.ssval +++| IF STAT NQ 1 # IF NOT *EOI* # 03993 M01S03940.ssval +++| THEN # ERROR TYPE 2, 3, OR 4 # 03994 M01S03941.ssval +++| BEGIN 03995 M01S03942.ssval +++| VLERROR(VE"PFCERR",ABRT); # ISSUE MESSAGE AND ABORT # 03996 M01S03943.ssval +++| END 03997 M01S03944.ssval +++| 03998 M01S03945.ssval +++|# 03999 M01S03946.ssval +++|* WRITE EOFS ON ALL FILES. 04000 M01S03947.ssval +++|# 04001 M01S03948.ssval +++| 04002 M01S03949.ssval +++| SLOWFOR I = 0 STEP 1 UNTIL MAXSF 04003 M01S03950.ssval +++| DO 04004 M01S03951.ssval +++| BEGIN 04005 M01S03952.ssval +++| WRITEF(PFCEXTN[I],RCL); 04006 M01S03953.ssval +++| REWIND(PFCEXTN[I],RCL); 04007 M01S03954.ssval +++| END 04008 M01S03955.ssval +++| 04009 M01S03956.ssval +++|# 04010 M01S03957.ssval +++|* SET BITS TO INDICATE ALL SFM CATALOG FILES DO EXIST AND ARE 04011 M01S03958.ssval +++|* TO BE VALIDATED. 04012 M01S03959.ssval +++|# 04013 M01S03960.ssval +++| 04014 M01S03961.ssval +++| B<0,8>SFMCATDEF = O"777"; # TURN THE 8 SUBCATALOG FLAGS ON # 04015 M01S03962.ssval +++| 04016 M01S03963.ssval +++| END # VLPFC # 04017 M01S03964.ssval +++| 04018 M01S03965.ssval +++| TERM 04019 M01S03966.ssval +++|PROC VLPFILL(FLD,(PARAM)); 04020 M01S03967.ssval +++|# TITLE VLPFILL - FILL PARAMETER IN MESSAGE TEXT. # 04021 M01S03968.ssval +++| 04022 M01S03969.ssval +++| BEGIN # VLPFILL # 04023 M01S03970.ssval +++| 04024 M01S03971.ssval +++|# 04025 M01S03972.ssval +++|** VLPFILL - FILL PARAMETER INTO MESSAGE TEXT. 04026 M01S03973.ssval +++|* 04027 M01S03974.ssval +++|* *VLPFILL* LOCATES THE PARAMETER PLACE-HOLDER IN THE 04028 M01S03975.ssval +++|* TEXT AND REPLACES IT WITH THE PARAMETER CHARACTERS 04029 M01S03976.ssval +++|* IN THE *PARAM* WORD. 04030 M01S03977.ssval +++|* 04031 M01S03978.ssval +++|* A MAXIMUM OF 40 CHARACTERS IS SCANNED. 04032 M01S03979.ssval +++|* 04033 M01S03980.ssval +++|* PROC VLPFILL(FLD,PARAM) 04034 M01S03981.ssval +++|* 04035 M01S03982.ssval +++|* ENTRY (FLD) - TEXT TO SCAN. 04036 M01S03983.ssval +++|* (PARAM) - PARAMETER TO PLACE IN TEXT. 04037 M01S03984.ssval +++|* 04038 M01S03985.ssval +++|* EXIT (FLD) - TEXT WITH THE PARAMETER FROM *PARAM* INSERTED. 04039 M01S03986.ssval +++|* 04040 M01S03987.ssval +++|# 04041 M01S03988.ssval +++| 04042 M01S03989.ssval +++| 04043 M01S03990.ssval +++| ITEM FLD I; # TEXT TO SCAN # 04044 M01S03991.ssval +++| ITEM PARAM C(10); # PARAMETER TO INSERT # 04045 M01S03992.ssval +++| 04046 M01S03993.ssval +++| 04047 M01S03994.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 04048 M01S03995.ssval +++| 04049 M01S03996.ssval +++|*CALL COMBFAS 04050 M01S03997.ssval +++| 04051 M01S03998.ssval +++| 04052 M01S03999.ssval +++| 04053 M01S04000.ssval +++| ITEM PCHAR I; # PARAMETER CHARACTER INDEX # 04054 M01S04001.ssval +++| ITEM QCHAR I; # Q CHARACTER INDEX # 04055 M01S04002.ssval +++| ITEM Q I; # Q CHARACTER TEMPORARY # 04056 M01S04003.ssval +++| 04057 M01S04004.ssval +++| BASED 04058 M01S04005.ssval +++| ARRAY SCAN [0:0] S(4); # TO SCAN TEXT FIELD # 04059 M01S04006.ssval +++| ITEM SCAN$WD C(00,00,40); 04060 M01S04007.ssval +++| CONTROL EJECT; 04061 M01S04008.ssval +++| 04062 M01S04009.ssval +++| P<SCAN> = LOC(FLD); 04063 M01S04010.ssval +++| 04064 M01S04011.ssval +++| 04065 M01S04012.ssval +++| Q = 0; 04066 M01S04013.ssval +++| QCHAR = -1; # INITIALIZE # 04067 M01S04014.ssval +++| 04068 M01S04015.ssval +++|# 04069 M01S04016.ssval +++|* SCAN THE TEXT LOOKING FOR A PARAMETER PLACE-HOLDER. 04070 M01S04017.ssval +++|# 04071 M01S04018.ssval +++| 04072 M01S04019.ssval +++| REPEAT WHILE QCHAR LQ 40 AND Q NQ "Q" 04073 M01S04020.ssval +++| DO 04074 M01S04021.ssval +++| BEGIN # PLACE-HOLDER SEARCH # 04075 M01S04022.ssval +++| QCHAR = QCHAR + 1; 04076 M01S04023.ssval +++| Q = C<QCHAR,1>SCAN$WD[0]; # GET A CHARACTER # 04077 M01S04024.ssval +++| END # PLACE-HOLDER SEARCH # 04078 M01S04025.ssval +++| 04079 M01S04026.ssval +++|# 04080 M01S04027.ssval +++|* MOVE PARAMETER INTO THE PLACE-HOLDER IF THERE WAS ONE. 04081 M01S04028.ssval +++|# 04082 M01S04029.ssval +++| 04083 M01S04030.ssval +++| SLOWFOR PCHAR = 0 STEP 1 WHILE Q EQ "Q" 04084 M01S04031.ssval +++| DO 04085 M01S04032.ssval +++| BEGIN # PLACE-HOLDER INSERT # 04086 M01S04033.ssval +++| C<QCHAR,1>SCAN$WD[0] = C<PCHAR,1>PARAM; # REPLACE Q 04087 M01S04034.ssval +++| CHARACTER # 04088 M01S04035.ssval +++| QCHAR = QCHAR + 1; 04089 M01S04036.ssval +++| Q = C<QCHAR,1>SCAN$WD[0]; # GET NEXT CHARACTER # 04090 M01S04037.ssval +++| END # PLACE-HOLDER INSERT # 04091 M01S04038.ssval +++| 04092 M01S04039.ssval +++| RETURN; 04093 M01S04040.ssval +++| END # VLPFILL # 04094 M01S04041.ssval +++| 04095 M01S04042.ssval +++| TERM 04096 M01S04043.ssval +++|PROC VLPRSET; 04097 M01S04044.ssval +++|# TITLE VLPRSET - PRESET PARAMETERS AND FILES. # 04098 M01S04045.ssval +++| 04099 M01S04046.ssval +++| BEGIN # VLPRSET # 04100 M01S04047.ssval +++| 04101 M01S04048.ssval +++|# 04102 M01S04049.ssval +++|** VLPRSET - PRESET PARAMETERS AND FILES. 04103 M01S04050.ssval +++|* 04104 M01S04051.ssval +++|* *VLPRSET* INITIALIZES ALL PARAMETERS AND PERFORMS 04105 M01S04052.ssval +++|* ALL PRESET FUNCTIONS. THIS INCLUDES - 04106 M01S04053.ssval +++|* . GET DEFAULT FAMILY AND SUBSYSTEM ID. 04107 M01S04054.ssval +++|* . CRACK CONTROL CARD AND EDIT PARAMETERS. 04108 M01S04055.ssval +++|* . LIST THE CONTROL CARD PARAMETERS IN THE REPORT FILE. 04109 M01S04056.ssval +++|* . OPEN/INITIALIZE FILES. 04110 M01S04057.ssval +++|* 04111 M01S04058.ssval +++|* PROC VLPRSET 04112 M01S04059.ssval +++|* 04113 M01S04060.ssval +++|* ENTRY THE CONTROL CARD IN *RA* + 70B. 04114 M01S04061.ssval +++|* 04115 M01S04062.ssval +++|* EXIT (DEF$FAM) - DEFAULT FAMILY. 04116 M01S04063.ssval +++|* (DEVMASK) - DEVICE MASK FOR SELECTED 04117 M01S04064.ssval +++|* SUBFAMILIES. 04118 M01S04065.ssval +++|* (PAR$XX) - PARAMETER VALUES WHERE XX = 04119 M01S04066.ssval +++|* KEYWORD. 04120 M01S04067.ssval +++|* (RPTFILE) - ADDRESS OF REPORT FILE *FET*. 04121 M01S04068.ssval +++|* (SSID$VL) - SUBSYTEM IDENTIFICATION. 04122 M01S04069.ssval +++|* (ARRAY FIXITFILE) - FIXIT FILE *FET*. 04123 M01S04070.ssval +++|* (ARRAY PROBFILE) - PROBLEM FILE *FET*. 04124 M01S04071.ssval +++|* 04125 M01S04072.ssval +++|* MESSAGES * INVALID SM PARAMETER.* 04126 M01S04073.ssval +++|* * INVALID FX PARAMETER.* 04127 M01S04074.ssval +++|* * ILLEGAL - L AND RF PARAMETERS.* 04128 M01S04075.ssval +++|* * ILLEGAL - RF AND AM PARAMETERS.* 04129 M01S04076.ssval +++|* * ILLEGAL - RF AND FM PARAMETERS.* 04130 M01S04077.ssval +++|* * ILLEGAL - RL AND NO RF PARAMETERS.* 04131 M01S04078.ssval +++|* * INVALID - SB PARAMETER.* 04132 M01S04079.ssval +++|* * INVALID - ST PARAMETER.* 04133 M01S04080.ssval +++|* * CONTROL CARD SYNTAX ERROR.* 04134 M01S04081.ssval +++|* * ABORT RUN DUE TO ERRORS.* 04135 M01S04082.ssval +++|* 04136 M01S04083.ssval +++|# 04137 M01S04084.ssval +++| 04138 M01S04085.ssval +++| 04139 M01S04086.ssval +++|# 04140 M01S04087.ssval +++|**** PROC VLPRSET - XREF LIST BEGIN. 04141 M01S04088.ssval +++|# 04142 M01S04089.ssval +++| 04143 M01S04090.ssval +++| XREF 04144 M01S04091.ssval +++| BEGIN 04145 M01S00030.ssval3 +++| PROC BZFILL; # BLANK OR ZERO FILL # 04146 M01S04092.ssval +++| PROC GETFAM; # SET FAMILY TABLE # 04147 M01S04093.ssval +++| PROC LOFPROC; # LIST OF FILES PROCESSOR # 04148 M01S00031.ssval3 +++| PROC PFD; # PERMANENT FILE ACCESS # 04149 M01S00032.ssval3 +++| PROC SETPFP; # SET FILE PARAMETERS# 04150 M01S04094.ssval +++| PROC RETERN; # RETURNS SPECIFIED FILE # 04151 M01S04095.ssval +++| PROC REWIND; # INTERFACE TO *REWIND* MACRO # 04152 M01S04096.ssval +++| PROC RPLINE; # CALLS *RPLINEX* TO PRINT A 04153 M01S04097.ssval +++| LINE # 04154 M01S04098.ssval +++| PROC RPOPEN; # OPENS A PRINT FILE # 04155 M01S04099.ssval +++| PROC VLBFILL; # BLANK FILL # 04156 M01S04100.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 04157 M01S04101.ssval +++| FUNC VLNTC C(10); # NUMERIC TO CHARACTER 04158 M01S04102.ssval +++| CONVERSION # 04159 M01S04103.ssval +++| PROC VLPFC; # READ *PFC* # 04160 M01S04104.ssval +++| PROC VLRDF; # READ RDF FILE # 04161 M01S04105.ssval +++| PROC VLTAB; 04162 M01S04106.ssval +++| PROC VLTITLE; # ISSUE REPORT TITLE # 04163 M01S04107.ssval +++| PROC XARG; # CRACK PARAMETER LIST # 04164 M01S04108.ssval +++| FUNC XDXB; # CONVERT DISPLAY CODE TO BINARY # 04165 M01S04109.ssval +++| PROC ZSETFET; # INITIALIZES A *FET* FOR *I/O* # 04166 M01S04110.ssval +++| END 04167 M01S04111.ssval +++| 04168 M01S04112.ssval +++|# 04169 M01S04113.ssval +++|**** PROC VLPRSET - XREF LIST END. 04170 M01S04114.ssval +++|# 04171 M01S04115.ssval +++| 04172 M01S04116.ssval +++| 04173 M01S04117.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTINGS # 04174 M01S04118.ssval +++| 04175 M01S04119.ssval +++|*CALL COMBFAS 04176 M01S00033.ssval3 +++|*CALL COMBBZF 04177 M01S00034.ssval3 +++|*CALL COMBPFP 04178 M01S04120.ssval +++|*CALL COMSPFM 04179 M01S04121.ssval +++|*CALL COMTVLD 04180 M01S04122.ssval +++|*CALL COMTVLF 04181 M01S04123.ssval +++|*CALL COMTVLP 04182 M01S04124.ssval +++|*CALL COMTVLX 04183 M01S04125.ssval +++| 04184 M01S04126.ssval +++| 04185 M01S04127.ssval +++| ITEM ARGADDR I; # ARGUMENT TABLE ADDRESS # 04186 M01S04128.ssval +++| ITEM ARGERR I; # CTL CARD ARGUMENT ERROR # 04187 M01S04129.ssval +++| ITEM CHAR I; # SCRATCH FIELD # 04188 M01S04130.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 04189 M01S04131.ssval +++| ITEM J I; # TEMPORARY VARIABLE # 04190 M01S04132.ssval +++| ITEM K I; # TEMPORARY VARIABLE # 04191 M01S04133.ssval +++| ITEM PAR I; # SCRATCH FIELD # 04192 M01S04134.ssval +++| 04193 M01S04135.ssval +++| 04194 M01S04136.ssval +++| BASED 04195 M01S04137.ssval +++| ARRAY ARGELEMENT [0:0] S(1); # TO EXTRACT THE ARGUMENTS # 04196 M01S04138.ssval +++| BEGIN 04197 M01S04139.ssval +++| ITEM ARGITEM U(00,00,60); 04198 M01S04140.ssval +++| ITEM ARGITEMC C(00,00,10); 04199 M01S04141.ssval +++| ITEM ARGSCAN C(00,00,20); # FOR A 2 WORD PARAMETER # 04200 M01S04142.ssval +++| END 04201 M01S04143.ssval +++| 04202 M01S04144.ssval +++| 04203 M01S04145.ssval +++| ARRAY PARIDS [0:VARGL] S(1); # PARAMETER IDS FOR REPORT # 04204 M01S04146.ssval +++| BEGIN 04205 M01S04147.ssval +++| ITEM PARNME C(00,30,5); 04206 M01S04148.ssval +++| ITEM PARNME1 C(VLF,30,5) = [ "L = " ]; 04207 M01S04149.ssval +++| ITEM PARNME2 C(VRF,30,5) = [ "RF = " ]; 04208 M01S04150.ssval +++| ITEM PARNME3 C(VAM,30,5) = [ "AM = " ]; 04209 M01S04151.ssval +++| ITEM PARNME4 C(VSM,30,5) = [ "SM = " ]; 04210 M01S04152.ssval +++| ITEM PARNME6 C(VFM,30,5) = [ "FM = " ]; 04211 M01S04153.ssval +++| ITEM PARNME7 C(VFX,30,5) = [ "FX = " ]; 04212 M01S04154.ssval +++| ITEM PARNME8 C(VRL,30,5) = [ "RL = " ]; 04213 M01S04155.ssval +++| ITEM PARNME9 C(VSB,30,5) = [ "SB = " ]; 04214 M01S04156.ssval +++| ITEM PARNME10 C(VST,30,5) = [ "ST = " ]; 04215 M01S04157.ssval +++| END 04216 M01S04158.ssval +++| 04217 M01S04159.ssval +++|# 04218 M01S04160.ssval +++|* TO BUILD THE PARAMETER FOR THE REPORT FILE. 04219 M01S04161.ssval +++|# 04220 M01S04162.ssval +++| 04221 M01S04163.ssval +++| ARRAY PARVALUE [0:0] S(2); # PARAMETER DISPLAY CD VALUE # 04222 M01S04164.ssval +++| BEGIN 04223 M01S04165.ssval +++| ITEM PAR$VALUE C(00,00,20); # PARAMETER # 04224 M01S04166.ssval +++| ITEM PAR$VALEND U(00,42,18); # END OF FIRST PARAMETER # 04225 M01S04167.ssval +++| ITEM PAR$VAL2 C(01,00,10); # SECOND WORD OF PARAMETER # 04226 M01S04168.ssval +++| END 04227 M01S04169.ssval +++| CONTROL EJECT; 04228 M01S04170.ssval +++| 04229 M01S04171.ssval +++|# 04230 M01S04172.ssval +++|* GET THE SYSTEM DEFAULT FAMILY AND THE SUBSYSTEM IDENTIFICATION. 04231 M01S04173.ssval +++|# 04232 M01S04174.ssval +++| 04233 M01S04175.ssval +++| SSID$VL = ATAS; 04234 M01S04176.ssval +++| GETFAM(FAMT,I,J,K,SSID$VL); 04235 M01S04177.ssval +++| DEF$FAM = FAM$NAME[K]; 04236 M01S04178.ssval +++| 04237 M01S04179.ssval +++|# 04238 M01S04180.ssval +++|* CRACK THE CONTROL CARD. 04239 M01S04181.ssval +++|# 04240 M01S04182.ssval +++| 04241 M01S04183.ssval +++| VLTAB(ARGADDR); # GET ADDR OF ARGUMENT TABLE # 04242 M01S04184.ssval +++| XARG(ARGADDR,0,ARGERR); # CRACK PARAMETERS BASED ON 04243 M01S04185.ssval +++| TABLE # 04244 M01S04186.ssval +++| 04245 M01S04187.ssval +++| IF ARGERR NQ 0 04246 M01S04188.ssval +++| THEN # SYNTAX ERROR # 04247 M01S04189.ssval +++| BEGIN 04248 M01S04190.ssval +++| VLERROR(VE"SYNTAX",ABRT); # ABORT WITH MESSAGE # 04249 M01S04191.ssval +++| END 04250 M01S04192.ssval +++| 04251 M01S04193.ssval +++| P<ARGELEMENT> = LOC(VARGUMENTS); 04252 M01S04194.ssval +++| 04253 M01S04195.ssval +++|# 04254 M01S04196.ssval +++|* MOVE CONTROL CARD ARGUMENTS TO PARAMETERS. PARAMETERS ARE 04255 M01S04197.ssval +++|* STORED IN PAR$XX (WHERE XX IS THE KEYWORD) FOR SUBSEQUENT 04256 M01S04198.ssval +++|* PROGRAM ACCESS. 04257 M01S04199.ssval +++|# 04258 M01S04200.ssval +++| 04259 M01S04201.ssval +++| PAR$LF = VARG$LF[0]; # *L* PARAMETER VALUE # 04260 M01S04202.ssval +++| PAR$RF = VARG$RF[0]; # *RF* PARAMETER VALUE # 04261 M01S04203.ssval +++| PAR$AM = VARG$AM[0]; # *AM* PARAMETER VALUE # 04262 M01S04204.ssval +++| 04263 M01S04205.ssval +++| SLOWFOR I = 0 STEP 1 UNTIL 7 04264 M01S04206.ssval +++| DO # *SM* PARAMETER # 04265 M01S04207.ssval +++| BEGIN # MOVE ARGUMENTS # 04266 M01S04208.ssval +++| CHAR = C<I,1>ARGSCAN[VSM]; # A *SM* CHARACTER # 04267 M01S04209.ssval +++| IF CHAR EQ 0 04268 M01S04210.ssval +++| THEN # END OF *CS* PARAMETER # 04269 M01S04211.ssval +++| BEGIN 04270 M01S04212.ssval +++| TEST I; 04271 M01S04213.ssval +++| END 04272 M01S04214.ssval +++| 04273 M01S04215.ssval +++| IF CHAR GR "H" 04274 M01S04216.ssval +++| THEN # ILLEGAL CHARACTER # 04275 M01S04217.ssval +++| BEGIN 04276 M01S04218.ssval +++| VLERROR(VE"SMPAR",NOABT); # ISSUE MESSAGE # 04277 M01S04219.ssval +++| END 04278 M01S04220.ssval +++| 04279 M01S04221.ssval +++| ELSE 04280 M01S04222.ssval +++| BEGIN # SET *SM* BIT # 04281 M01S04223.ssval +++| IF B<CHAR,1>PAR$SM EQ 1 04282 M01S04224.ssval +++| THEN 04283 M01S04225.ssval +++| BEGIN 04284 M01S04226.ssval +++| VLERROR(VE"DUPCS",NOABT); 04285 M01S04227.ssval +++| END 04286 M01S04228.ssval +++| 04287 M01S04229.ssval +++| ELSE 04288 M01S04230.ssval +++| BEGIN 04289 M01S04231.ssval +++| B<CHAR,1>PAR$SM = 1; 04290 M01S04232.ssval +++| END 04291 M01S04233.ssval +++| 04292 M01S04234.ssval +++| END # SET *CS* BIT # 04293 M01S04235.ssval +++| 04294 M01S04236.ssval +++| 04295 M01S04237.ssval +++| END # MOVE ARGUMENTS # 04296 M01S04238.ssval +++| 04297 M01S04239.ssval +++| PAR$FM = VARG$FM[0]; # FM PARAMETER VALUE # 04298 M01S04240.ssval +++| 04299 M01S04241.ssval +++| STAT = XDXB(VARG$FX[0],"D",PAR$FX); # CONVERT FX VALUE # 04300 M01S04242.ssval +++| IF STAT NQ 0 04301 M01S04243.ssval +++| THEN # ILLEGAL FX VALUE # 04302 M01S04244.ssval +++| BEGIN 04303 M01S04245.ssval +++| VLERROR(VE"FXPAR",NOABT); # ISSUE MESSAGE # 04304 M01S04246.ssval +++| END 04305 M01S04247.ssval +++| 04306 M01S04248.ssval +++| PAR$RL = VARG$RL[0]; # RL PARAMETER VALUE # 04307 M01S04249.ssval +++| 04308 M01S04250.ssval +++| SLOWFOR J = 0 STEP 1 UNTIL 9 04309 M01S04251.ssval +++| DO # SB PARAMETER # 04310 M01S04252.ssval +++| BEGIN # SUBFAMILY ARGUMENTS # 04311 M01S04253.ssval +++| CHAR = C<J,1>ARGITEM[VSB]; # EXTRACT A SUBFAMILY NUMBER # 04312 M01S04254.ssval +++| IF CHAR EQ 0 04313 M01S04255.ssval +++| THEN # END OF SB VALUE # 04314 M01S04256.ssval +++| BEGIN 04315 M01S04257.ssval +++| TEST J; 04316 M01S04258.ssval +++| END 04317 M01S04259.ssval +++| 04318 M01S04260.ssval +++| IF CHAR LS "0" OR CHAR GR "7" 04319 M01S04261.ssval +++| THEN # ILLEGAL SUBFAMILY # 04320 M01S04262.ssval +++| BEGIN 04321 M01S04263.ssval +++| VLERROR(VE"SBPAR",NOABT); # ISSUE MESSAGE # 04322 M01S04264.ssval +++| END 04323 M01S04265.ssval +++| 04324 M01S04266.ssval +++| ELSE 04325 M01S04267.ssval +++| BEGIN # SET SUBFAMILY BIT # 04326 M01S04268.ssval +++| IF B<CHAR-"0",1>PAR$SB EQ 1 04327 M01S04269.ssval +++| THEN 04328 M01S04270.ssval +++| BEGIN 04329 M01S04271.ssval +++| VLERROR(VE"DUPSB",NOABT); 04330 M01S04272.ssval +++| END 04331 M01S04273.ssval +++| 04332 M01S04274.ssval +++| ELSE 04333 M01S04275.ssval +++| BEGIN 04334 M01S04276.ssval +++| B<CHAR-"0",1>PAR$SB = 1; # SET *SB* BIT # 04335 M01S04277.ssval +++| B<59-(CHAR-"0"),1>DEVMASK = 1; # RIGHT JUSTIFIED MASK # 04336 M01S04278.ssval +++| END 04337 M01S04279.ssval +++| 04338 M01S04280.ssval +++| END # SET SUBFAMILY BIT # 04339 M01S04281.ssval +++| 04340 M01S04282.ssval +++| END # SUBFAMILY ARGUMENTS # 04341 M01S04283.ssval +++| 04342 M01S04284.ssval +++| IF VARG$ST[0] EQ O"30555555555555555555" 04343 M01S04285.ssval +++| THEN # DEFAULT *ST* # 04344 M01S04286.ssval +++| BEGIN 04345 M01S04287.ssval +++| VARG$ST[0] = O"34555555555555555555"; 04346 M01S04288.ssval +++| END 04347 M01S04289.ssval +++| 04348 M01S04290.ssval +++| STAT = XDXB(VARG$ST[0],"D",PAR$ST); # CONVERT ST PARAMETER # 04349 M01S04291.ssval +++| IF STAT NQ 0 04350 M01S04292.ssval +++| THEN # ILLEGAL ST VALUE # 04351 M01S04293.ssval +++| BEGIN 04352 M01S04294.ssval +++| VLERROR(VE"STPAR",NOABT); # ISSUE MESSAGE # 04353 M01S04295.ssval +++| END 04354 M01S04296.ssval +++| 04355 M01S04297.ssval +++|# 04356 M01S04298.ssval +++|* VERIFY THAT THE PARAMETER COMBINATIONS ARE LEGAL. 04357 M01S04299.ssval +++|* ERRORS ARE - 04358 M01S04300.ssval +++|* . *RF* AND *AM* PARAMETER TOGETHER, 04359 M01S04301.ssval +++|* . *RF* AND *FM* PARAMETER TOGETHER, 04360 M01S04302.ssval +++|* . *RL* AND NO *RF* PARAMETER. 04361 M01S04303.ssval +++|# 04362 M01S04304.ssval +++| 04363 M01S04305.ssval +++|# 04364 M01S04306.ssval +++|* L PARAMETER = RF PARAMETER. 04365 M01S04307.ssval +++|# 04366 M01S04308.ssval +++| 04367 M01S04309.ssval +++| IF (PAR$LF NQ 0) AND (PAR$LF EQ PAR$RF) 04368 M01S04310.ssval +++| THEN 04369 M01S04311.ssval +++| BEGIN 04370 M01S04312.ssval +++| VLERROR(VE"LFRF",NOABT); # ISSUE MESSAGE # 04371 M01S04313.ssval +++| END 04372 M01S04314.ssval +++| 04373 M01S04315.ssval +++|# 04374 M01S04316.ssval +++|* RL PARAMETER BUT NO RF. 04375 M01S04317.ssval +++|# 04376 M01S04318.ssval +++| 04377 M01S04319.ssval +++| IF (PAR$RL NQ 0) AND (PAR$RF EQ 0) 04378 M01S04320.ssval +++| THEN 04379 M01S04321.ssval +++| BEGIN 04380 M01S04322.ssval +++| VLERROR(VE"RLNRF",NOABT); # ISSUE MESSAGE # 04381 M01S04323.ssval +++| END 04382 M01S04324.ssval +++| 04383 M01S04325.ssval +++|# 04384 M01S04326.ssval +++|* RF AND FM SPECIFIED. 04385 M01S04327.ssval +++|# 04386 M01S04328.ssval +++| 04387 M01S04329.ssval +++| IF (PAR$RF NQ 0) AND (PAR$FM NQ 0) 04388 M01S04330.ssval +++| THEN 04389 M01S04331.ssval +++| BEGIN 04390 M01S04332.ssval +++| VLERROR(VE"RFFM",NOABT); # ISSUE MESSAGE # 04391 M01S04333.ssval +++| END 04392 M01S04334.ssval +++| 04393 M01S04335.ssval +++|# 04394 M01S04336.ssval +++|* RF AND AM SPECIFIED. 04395 M01S04337.ssval +++|# 04396 M01S04338.ssval +++| 04397 M01S04339.ssval +++| IF (PAR$RF NQ 0) AND (PAR$AM NQ 0) 04398 M01S04340.ssval +++| THEN 04399 M01S04341.ssval +++| BEGIN 04400 M01S04342.ssval +++| VLERROR(VE"RFAM",NOABT); # ISSUE MESSAGE # 04401 M01S04343.ssval +++| END 04402 M01S04344.ssval +++| 04403 M01S04345.ssval +++|# 04404 M01S04346.ssval +++|* IF ANY CONTROL CARD ERRORS, ABORT. 04405 M01S04347.ssval +++|* (ERRORS ARE COUNTED IN VLERROR). 04406 M01S04348.ssval +++|# 04407 M01S04349.ssval +++| 04408 M01S04350.ssval +++| IF CNTPROGERR NQ 0 04409 M01S04351.ssval +++| THEN # SOME ERRORS OCCURRED # 04410 M01S04352.ssval +++| BEGIN 04411 M01S04353.ssval +++| VLERROR(VE"ABORT",ABRT); # ABORT WITH MESSAGE # 04412 M01S04354.ssval +++| END 04413 M01S04355.ssval +++| 04414 M01S04356.ssval +++| 04415 M01S04357.ssval +++|# 04416 M01S04358.ssval +++|* SET THE FAMILY PARAMETER TO THE DEFAULT FAMILY IF THE 04417 M01S04359.ssval +++|* FM OPTION IS ACTIVE (NO RF PARAMETER) BUT THE FAMILY WAS 04418 M01S04360.ssval +++|* NOT SPECIFIED. 04419 M01S04361.ssval +++|# 04420 M01S04362.ssval +++| 04421 M01S04363.ssval +++| IF (PAR$RF EQ 0) AND ((VARG$IFM[0] EQ -1) OR (PAR$FM EQ 0)) 04422 M01S04364.ssval +++| THEN 04423 M01S04365.ssval +++| BEGIN 04424 M01S04366.ssval +++| PAR$FM = DEF$FAM; 04425 M01S04367.ssval +++| VARG$FM[0] = PAR$FM; 04426 M01S04368.ssval +++| END 04427 M01S04369.ssval +++| 04428 M01S04370.ssval +++|# 04429 M01S04371.ssval +++|* OPEN REPORT FILE. 04430 M01S04372.ssval +++|# 04431 M01S04373.ssval +++| 04432 M01S04374.ssval +++| IF PAR$LF NQ 0 04433 M01S04375.ssval +++| THEN # L PARAMETER ACTIVE # 04434 M01S04376.ssval +++| BEGIN 04435 M01S04377.ssval +++| RPTFADR = LOC(RPTFILE); # REPORT FILE FET ADDRESS # 04436 M01S04378.ssval +++| END 04437 M01S04379.ssval +++| 04438 M01S04380.ssval +++| RPOPEN(PAR$LF,RPTFADR,VLTITLE); 04439 M01S04381.ssval +++| 04440 M01S04382.ssval +++|# 04441 M01S04383.ssval +++|* ISSUE REPORT OF SPECIFIED AND DEFAULTED PARAMETERS. 04442 M01S04384.ssval +++|# 04443 M01S04385.ssval +++| 04444 M01S04386.ssval +++|# 04445 M01S04387.ssval +++|* PRINT THE CONTROL CARD AS IT IS IN THE RA(70) AREA. 04446 M01S04388.ssval +++|# 04447 M01S04389.ssval +++| 04448 M01S04390.ssval +++| P<RACOM> = 0; 04449 M01S04391.ssval +++| 04450 M01S04392.ssval +++| VLBFILL(RACOM[CCADDR],8); # BLANK FILL # 04451 M01S04393.ssval +++| RPLINE(RPTFADR," ",0,1,EOPL); # A BLANK LINE # 04452 M01S04394.ssval +++| RPLINE(RPTFADR,RACOM[CCADDR],12,80,EOPL); # CONTROL CARD # 04453 M01S04395.ssval +++| RPLINE(RPTFADR," ",0,1,EOPL); # A BLANK LINE # 04454 M01S04396.ssval +++| 04455 M01S04397.ssval +++|# 04456 M01S04398.ssval +++|* LIST ALL PARAMETERS AND THEIR VALUES. 04457 M01S04399.ssval +++|# 04458 M01S04400.ssval +++| 04459 M01S04401.ssval +++| SLOWFOR PAR = 0 STEP 1 UNTIL VARGL - 1 04460 M01S04402.ssval +++| DO 04461 M01S04403.ssval +++| BEGIN # PARAMETER LISTING # 04462 M01S04404.ssval +++| IF PAR EQ VSM+1 # 2ND WORD OF *SM* PARAMETER # 04463 M01S04405.ssval +++| THEN 04464 M01S04406.ssval +++| BEGIN 04465 M01S04407.ssval +++| TEST PAR; 04466 M01S04408.ssval +++| END 04467 M01S04409.ssval +++| 04468 M01S04410.ssval +++| RPLINE(RPTFADR,PARNME[PAR],25,5,COPL); # KEYWORD # 04469 M01S04411.ssval +++| IF ARGITEM[PAR] EQ -1 04470 M01S04412.ssval +++| THEN 04471 M01S04413.ssval +++| BEGIN 04472 M01S04414.ssval +++| ARGITEMC[PAR] = "Y"; 04473 M01S04415.ssval +++| END 04474 M01S04416.ssval +++| 04475 M01S04417.ssval +++| IF ARGITEM[PAR] EQ 0 04476 M01S04418.ssval +++| THEN # PARAMETER NOT SPECIFIED # 04477 M01S04419.ssval +++| BEGIN 04478 M01S04420.ssval +++| ARGITEMC[PAR] = "0"; # USE A CODED ZERO # 04479 M01S04421.ssval +++| END 04480 M01S04422.ssval +++| 04481 M01S04423.ssval +++| PAR$VALUE = ARGITEMC[PAR]; # GET PARAMETER VALUE # 04482 M01S04424.ssval +++| IF PAR EQ VSM 04483 M01S04425.ssval +++| THEN # INDEX AT CS PARAMETER # 04484 M01S04426.ssval +++| BEGIN 04485 M01S04427.ssval +++| PAR$VAL2[0] = ARGITEMC[PAR+1]; # GET 2ND WORD # 04486 M01S04428.ssval +++| END 04487 M01S04429.ssval +++| 04488 M01S04430.ssval +++| IF PAR EQ VFM 04489 M01S04431.ssval +++| THEN 04490 M01S04432.ssval +++| BEGIN 04491 M01S04433.ssval +++| PAR$VALEND[0] = 0; 04492 M01S04434.ssval +++| END 04493 M01S04435.ssval +++| 04494 M01S04436.ssval +++| VLBFILL(PARVALUE,2); 04495 M01S04437.ssval +++| RPLINE(RPTFADR,PARVALUE[0],30,20,EOPL); # PARAMETER VALUE # 04496 M01S04438.ssval +++| 04497 M01S04439.ssval +++| END # PARAMETER LISTING # 04498 M01S04440.ssval +++| 04499 M01S04441.ssval +++| RPLINE(RPTFADR,"0",0,1,EOPL); # 2 BLANK LINES # 04500 M01S04442.ssval +++|
Proceed to Part 2
cdc/nos2.source/opl.opl871/deck/ssval.001.txt ยท Last modified: by 127.0.0.1