cdc:nos2.source:opl.opl871:deck:ssval
Deck SSVAL
Library Member Format: MODIFY
Listing Sections
- Deck SSVAL Start
- Deck SSVAL Part 1 (Line 2201)
- Deck SSVAL Part 2 (Line 4460)
- Deck SSVAL Part 3 (Line 6654)
Source
Seq # *Modification Id* Act ----------------------------+ 00001 M00S00001.ssval +++|PRGM SSVAL; 00002 M00S00002.ssval +++| 00003 M00S00003.ssval +++|# TITLE SSVAL - SFM VALIDATE PROGRAM. # 00004 M00S00004.ssval +++| 00005 M00S00005.ssval +++| BEGIN # SSVAL # 00006 M00S00006.ssval +++| 00007 M00S00007.ssval +++|# 00008 M00S00008.ssval +++|***** SSVAL - M860 CATALOG VALIDATION UTILITY. 00009 M00S00009.ssval +++|* 00010 M00S00010.ssval +++|* THE FUNCTION OF *SSVAL* IS TO EXAMINE THE SFM CATALOG AND 00011 M00S00011.ssval +++|* THE PERMANENT FILE CATALOG FOR THE SPECIFIED FAMILY, OPTIONALLY 00012 M00S00012.ssval +++|* EXAMINE SPECIFIED SMMAP FILES, AND ISSUE A REPORT DETAILING 00013 M00S00013.ssval +++|* ANY IRREGULARITIES OR DISCREPANCIES FOUND. A COUNT OF THE 00014 M00S00014.ssval +++|* NUMBER OF VALIDATION ERRORS DETECTED, IF ANY, IS PLACED IN 00015 M00S00015.ssval +++|* THE DAYFILE. IF SELECTED, *SSVAL* WILL RELEASE SFM SPACE 00016 M00S00016.ssval +++|* FOR PURGED FILES. WHEN ERROR CONDITIONS ARE FOUND, *SSVAL* 00017 M00S00017.ssval +++|* WILL OPTIONALLY SET FLAGS IN AFFECTED ENTRIES OF THESE FILES 00018 M00S00018.ssval +++|* TO PROTECT A PERMANENT FILE FROM BEING SUBJECT TO BEING 00019 M00S00019.ssval +++|* LOST AND TO PERMIT THE SITE TO RECOVER FROM THE ERROR VIA 00020 M00S00020.ssval +++|* THE *SSDEBUG* UTILITY. 00021 M00S00021.ssval +++|* 00022 M00S00022.ssval +++|* RUN TIME PARAMETERS ALLOW SELECTED SUBFAMILIES OR ALL 00023 M00S00023.ssval +++|* SUBFAMILIES AND SELECTED SUBCATALOGS OR ALL SUBCATALOGS 00024 M00S00024.ssval +++|* TO BE ANALYZED. 00025 M00S00025.ssval +++|* 00026 M00S00026.ssval +++|* THERE ARE TWO TYPES OF VALIDATION RUNS. THEY ARE - 00027 M00S00027.ssval +++|* 1) TO VALIDATE THE "LIVE" CATALOGS TO DETECT ERRORS AND 00028 M00S00028.ssval +++| ALLOW REPAIR OF THE CATALOGS. REPAIR REFERS TO THE 00029 M00S00029.ssval +++| PROCESS OF SETTING FLAGS WHICH, DEPENDING ON THE FLAG SET 00030 M00S00030.ssval +++| MAY OR MAY NOT CORRECT THE PROBLEM. 00031 M00S00031.ssval +++|* 2) TO VALIDATE THE COPIES OF THE CATALOGS FROM THE RELEASE 00032 M00S00032.ssval +++|* DATA FILE TO ALLOW RELEASE OF THE "FREE SPACE" IN THE 00033 M00S00033.ssval +++|* SFM CATALOG FOR FILES THAT WERE PURGED BY THE USER. 00034 M00S00034.ssval +++|* 00035 M00S00035.ssval +++|* THE REQUIREMENTS AND RESULTS OF THESE RUNS ARE - 00036 M00S00036.ssval +++|* 00037 M00S00037.ssval +++|* FOR TYPE 1 - 00038 M00S00038.ssval +++|* . THE SFM CATALOG PERMANENT FILE MUST BE ATTACHABLE. 00039 M00S00039.ssval +++|* . THE PERMANENT FILE CATALOG MUST BE ACCESSIBLE. 00040 M00S00040.ssval +++|* . THE SMMAP FILE MUST BE ATTACHABLE ( IF SELECTED ). 00041 M00S00041.ssval +++|* . THE CATALOGS ARE EXAMINED FOR VALIDATION ERRORS. 00042 M00S00042.ssval +++|* . THE VALIDATION REPORT IS ISSUED. 00043 M00S00043.ssval +++|* . THE CATALOGS ARE REPAIRED FOR ERRORS DETECTED TO 00044 M00S00044.ssval +++|* ALLOW CORRECTIVE ACTION. 00045 M00S00045.ssval +++|* 00046 M00S00046.ssval +++|* FOR TYPE 2 - 00047 M00S00047.ssval +++|* . NO LIVE CATALOGS ARE USED. 00048 M00S00048.ssval +++|* . NO VALIDATION OF THE SMMAP FILE OCCURS. 00049 M00S00049.ssval +++|* . COPIES OF THE SFM CATALOG AND THE *PFC* ARE 00050 M00S00050.ssval +++|* EXAMINED FOR VALIDATION ERRORS. 00051 M00S00051.ssval +++|* . THE VALIDATION REPORT IS ISSUED. 00052 M00S00052.ssval +++|* . THE "FREE SPACE" IN THE SFM CATALOG IS RELEASED. THIS 00053 M00S00053.ssval +++| CONSEQUENTLY RELEASES SPACE IN THE APPROPRIATE 00054 M00S00054.ssval +++| CARTRIDGE(S). 00055 M00S00055.ssval +++|* 00056 M00S00056.ssval +++|* THE REPAIR/RELEASE FUNCTION OF *SSVAL* CANNOT OCCUR IF THE 00057 M00S00057.ssval +++|* M860 *EXEC* SUBSYSTEM IS NOT RUNNING. 00058 M00S00058.ssval +++|* 00059 M00S00059.ssval +++| 00060 M00S00060.ssval +++| 00061 M00S00061.ssval +++| 00062 M00S00062.ssval +++| 00063 M00S00063.ssval +++|*** *SSVAL* IS THE M860 UTILITY THAT VALIDATES THE SFM CATALOG, 00064 M00S00064.ssval +++|* PERMANENT FILE CATALOG (*PFC*) AND THE SMMAP FILE, REPAIRS 00065 M00S00065.ssval +++|* THE CATALOGS AND RELEASES SPACE IN THE SFM CATALOG FOR PURGED 00066 M00S00066.ssval +++|* USER FILES. 00067 M00S00067.ssval +++|* 00068 M00S00068.ssval +++| 00069 M00S00069.ssval +++|*** INPUT DATA IS FROM THE SFM CATALOG FILE AND THE PERMANENT 00070 M00S00070.ssval +++|* FILE CATALOG FOR A SINGLE FAMILY. THESE TWO INPUT FILES MAY 00071 M00S00071.ssval +++|* EITHER BE FROM THEIR PERMANENT LOCATION ON THE FAMILY 00072 M00S00072.ssval +++|* PACKS ("LIVE") OR FROM THE RELEASE DATA FILE (*RDF*) 00073 M00S00073.ssval +++|* PRODUCED BY THE *PFDUMP* UTILITY. *SSVAL* WILL PRODUCE A *PFC 00074 M00S00074.ssval +++|* EXTRACT FILE* FROM EITHER OF THE ABOVE SOURCES. 00075 M00S00075.ssval +++|* 00076 M00S00076.ssval +++|* THE SMMAP FILE IS AN INPUT IF SPECIFIED BY AN OPTION ON 00077 M00S00077.ssval +++|* THE CONTROL CARD. IT IS ACCESSED ONLY FROM ITS PERMANENT 00078 M00S00078.ssval +++|* LOCATION ON THE SYSTEM DEFAULT FAMILY. 00079 M00S00079.ssval +++|* 00080 M00S00080.ssval +++|* SFM CATALOG FILE - CONTAINS THE CONTROL INFORMATION ABOUT 00081 M00S00081.ssval +++|* THE FILES ON THE MSF. THE FILE AND CARTRIDGE TABLE (*FCT*) 00082 M00S00082.ssval +++|* PORTION OF THE CATALOG CONTAINS THE ALLOCATION AND STATUS 00083 M00S00083.ssval +++|* INFORMATION FOR EACH CARTRIDGE. THE *FCT* 00084 M00S00084.ssval +++|* IS EXAMINED FOR IRREGULARITIES AND ERRORS. 00085 M00S00085.ssval +++|* 00086 M00S00086.ssval +++|* PERMANENT FILE CATALOG - CONTAINS CONTROL INFORMATION ABOUT 00087 M00S00087.ssval +++|* USER PERMANENT FILES RESIDING ON THE MSF. THE ALTERNATE 00088 M00S00088.ssval +++|* STORAGE ALLOCATION FIELD (*ASA*) CONTAINS THE POINTER 00089 M00S00089.ssval +++|* SPECIFIYING THE *SM* INDEX, *FCT* ORDINAL. 00090 M00S00090.ssval +++|* 00091 M00S00091.ssval +++|* SMMAP FILE - CONTAINS CONTROL INFORMATION ABOUT ALL CUBES 00092 M00S00092.ssval +++|* AND CARTRIDGES IN A GIVEN SM. 00093 M00S00093.ssval +++|* 00094 M00S00094.ssval +++|* RDF FILE - (RELEASE DATA FILE) CONTAINS A HEADER, *PFC* EXTRACT 00095 M00S00095.ssval +++|* RECORDS, AND COPIES OF SFM CATALOGS. IT IS PRODUCED BY 00096 M00S00096.ssval +++|* *PFDUMP*. THE DATE AND TIME WHEN THE FILE WAS CREATED IS 00097 M00S00097.ssval +++|* RECORDED IN THE HEADER. THE RDF FILE IS USED FOR BACKUP 00098 M00S00098.ssval +++|* PURPOSES ONLY. A DESCRIPTION OF THE FIELDS IN THE RDF FILE 00099 M00S00099.ssval +++|* MAY BE FOUND IN *COMSPFM*. 00100 M00S00100.ssval +++|* 00101 M00S00101.ssval +++|* 00102 M00S00102.ssval +++| 00103 M00S00103.ssval +++|*** CONTROL CARD CALL. 00104 M00S00104.ssval +++|* 00105 M00S00105.ssval +++|* SSVAL(P1,P2,...,PN) 00106 M00S00106.ssval +++|* 00107 M00S00107.ssval +++|* PARAMETER DESCRIPTION 00108 M00S00108.ssval +++|* --------- ----------- 00109 M00S00109.ssval +++|* 00110 M00S00110.ssval +++|* L LISTABLE OUTPUT ON FILE *OUTPUT*. 00111 M00S00111.ssval +++|* L = *LFN* LISTABLE OUTPUT ON FILE *LFN*. 00112 M00S00112.ssval +++|* L = 0 NO OUTPUT FILE GENERATED. 00113 M00S00113.ssval +++|* L OMITTED SAME AS L. 00114 M00S00114.ssval +++|* 00115 M00S00115.ssval +++|* RF RELEASE DATA FILE ON LOCAL FILE *ZZZZRDF*. 00116 M00S00116.ssval +++|* RF = *LFN* RELEASE DATA FILE ON FILE *LFN*. 00117 M00S00117.ssval +++|* RF OMITTED USE THE CURRENT VERSION OF THE SFM CATALOGS 00118 M00S00118.ssval +++|* FOR ANALYSIS. 00119 M00S00119.ssval +++|* 00120 M00S00120.ssval +++|* FM USE DEFAULT FAMILY. NOT PERMITTED IF *RF* 00121 M00S00121.ssval +++|* IS SPECIFIED. 00122 M00S00122.ssval +++|* FM=FAMILY FAMILY TO BE ANALYZED. NOT PERMITTED IF 00123 M00S00123.ssval +++|* *RF* IS SPECIFIED. 00124 M00S00124.ssval +++|* FM OMITTED SAME AS *FM* IF *RF* IS NOT SPECIFIED. USE 00125 M00S00125.ssval +++|* THE FAMILY ON THE RELEASE DATA FILE IF *RF* 00126 M00S00126.ssval +++|* IS SPECIFIED. 00127 M00S00127.ssval +++|* 00128 M00S00128.ssval +++|* SB ALL SUBFAMILIES ARE TO BE PROCESSED. 00129 M00S00129.ssval +++|* SB = CHARS SELECT UP TO EIGHT SUBFAMILIES. THERE 00130 M00S00130.ssval +++|* ARE EIGHT POSSIBLE SUBFAMILIES NUMBERED FROM 00131 M00S00131.ssval +++|* 0 THROUGH 7 (E.G. SB=723 SELECTS SUBFAMILIES 00132 M00S00132.ssval +++|* 2,3,AND 7). 00133 M00S00133.ssval +++|* SB OMITTED SAME AS *SB*. 00134 M00S00134.ssval +++|* 00135 M00S00135.ssval +++|* SM ALL *SM-S* PROCESSED. 00136 M00S00136.ssval +++|* SM = CHARS SELECT UP TO EIGHT *SM*-S INDICATED 00137 M00S00137.ssval +++|* BY THE LETTERS A-H (E.G. SM=ACHG SELECTS 00138 M00S00138.ssval +++|* *SM-S* A, C, AND H). 00139 M00S00139.ssval +++|* SM OMITTED SAME AS *SM*. 00140 M00S00140.ssval +++|* 00141 M00S00141.ssval +++|* AM ANALYZE THE SFM SMMAP. THIS OPTION MAY 00142 M00S00142.ssval +++|* ONLY BE USED IF *RF* IS NOT SPECIFIED. 00143 M00S00143.ssval +++|* *SSVAL* WILL ONLY EXAMINE A PARTICULAR 00144 M00S00144.ssval +++|* SMMAP IF THE SFM CATALOG HAS A SUBCATALOG 00145 M00S00145.ssval +++|* FOR THE CORRESPONDING *SM* AND IS THAT 00146 M00S00146.ssval +++|* *SM* WAS SELECTED BY THE *CS* PARAMETER. 00147 M00S00147.ssval +++|* AM OMITTED DO NOT ANALYZE THE SFM SMMAP. 00148 M00S00148.ssval +++|* 00149 M00S00149.ssval +++|* FX *PFC* AND SFM CATALOGS WILL NOT BE 00150 M00S00150.ssval +++|* AUTOMATICALLY FLAGGED OR FIXED AND RELEASE 00151 M00S00151.ssval +++|* PROCESSING WILL NOT BE PERFORMED IF THERE 00152 M00S00152.ssval +++|* ARE ANY ERRORS (SAME AS FX=0). 00153 M00S00153.ssval +++|* FX = N *PFC* AND SFM CATALOGS WILL ONLY BE 00154 M00S00154.ssval +++|* AUTOMATICALLY FIXED OR RELEASE PROCESSING 00155 M00S00155.ssval +++|* WILL BE PERFORMED ONLY IF THE TOTAL ERROR 00156 M00S00156.ssval +++|* COUNT IS LESS THAN OR EQUAL TO N. 00157 M00S00157.ssval +++|* FX OMITTED SAME AS *FX*. 00158 M00S00158.ssval +++|* 00159 M00S00159.ssval +++|* RL RELEASE PROCESSING IS TO BE PERFORMED. 00160 M00S00160.ssval +++|* THIS OPTION MAY ONLY BE USED IF *RF* 00161 M00S00161.ssval +++|* IS ALSO SELECTED. 00162 M00S00162.ssval +++|* RL OMITTED NO RELEASE PROCESSING WILL BE PERFORMED. 00163 M00S00163.ssval +++|* 00164 M00S00164.ssval +++|* ST FILES ARE INDICATED AS SCATTERED IF THEY 00165 M00S00165.ssval +++|* SPREAD ACROSS MORE THAN THE MINIMUM NUMBER 00166 M00S00166.ssval +++|* OF CARTRIDGES NEEDED TO CONTAIN THEM. 00167 M00S00167.ssval +++|* ST = N FILES ARE INDICATED AS SCATTERED IF THEY 00168 M00S00168.ssval +++|* SPREAD ACROSS N MORE CARTRIDGES THAN THE 00169 M00S00169.ssval +++|* MINIMUM NUMBER NEEDED TO CONTAIN THEM. 00170 M00S00170.ssval +++|* ST OMITTED SAME AS *ST*. 00171 M00S00171.ssval +++|* 00172 M00S00172.ssval +++|* 00173 M00S00173.ssval +++| 00174 M00S00174.ssval +++| 00175 M00S00175.ssval +++| 00176 M00S00176.ssval +++|*** THE VALIDATION PROCESS EXAMINES THE ALTERNATE STORAGE AND 00177 M00S00177.ssval +++|* PERMANENT FILE CATALOGS AND REPORTS VALIDATION ERRORS DETECTED. 00178 M00S00178.ssval +++|* 00179 M00S00179.ssval +++|* THE CATALOG ENTRIES ARE VALIDATED AS FOLLOWS. 00180 M00S00180.ssval +++|* . ALL *PFC* ENTRIES FOR USER FILES THAT RESIDE ON MSF. 00181 M00S00181.ssval +++|* - THE *ASA* FIELD. 00182 M00S00182.ssval +++|* * ASA NOT HEAD OF CHAIN. 00183 M00S00183.ssval +++|* * ASA OUT OF RANGE. 00184 M00S00184.ssval +++|* * INVALID *SM* IN ASA. 00185 M00S00185.ssval +++|* * MULTIPLE *PFC* ENTRIES OWN THE SFM FILE. 00186 M00S00186.ssval +++|* - THE READ DATA ERROR FLAG. 00187 M00S00187.ssval +++|* * READ ERROR FLAG SET IN *PFC* ENTRY. 00188 M00S00188.ssval +++|* . ALL *FCT* ENTRIES IN THE SFM CATALOG. 00189 M00S00189.ssval +++|* - THE CARTRIDGE STATUS (INHIBIT, LOST, EXCESSIVE 00190 M00S00190.ssval +++|* WRITE PARITY ERROR, START OF FRAGMENT, CONFLICT, SMMAP 00191 M00S00191.ssval +++|* ERROR,CSN AND Y AND Z COORDINATES). 00192 M00S00192.ssval +++|* * *FCT* ENTRIES CONTAIN THE FOLLOWING PROBLEMS - 00193 M00S00193.ssval +++|* - INHIBIT ALLOCATION FLAG SET. 00194 M00S00194.ssval +++|* - FROZEN CHAIN FLAG SET. 00195 M00S00195.ssval +++|* - EXCESSIVE WRITE PARITY ERRORS FLAG SET. 00196 M00S00196.ssval +++|* - START OF FRAGMENT FLAG SET. 00197 M00S00197.ssval +++|* - AU CONFLICT FLAG SET. 00198 M00S00198.ssval +++|* - LOST CARTRIDGE FLAG SET. 00199 M00S00199.ssval +++|* - THE AU CHAIN INFORMATION (CHAIN CONTROL, OFF CARTRIDGE 00200 M00S00200.ssval +++|* LINK FLAG, OFF CARTRIDGE LINKS). 00201 M00S00201.ssval +++|* * CHAINS INTERSECT OR ARE ILL-FORMED. 00202 M00S00202.ssval +++|* * FRAGMENTS DETECTED. 00203 M00S00203.ssval +++|* * SCATTERED FILE DETECTED. 00204 M00S00204.ssval +++|* * NO VALID SMMAP ENTRY FOR THE FCT. 00205 M00S00205.ssval +++|* 00206 M00S00206.ssval +++|* . ALL SMMAP ENTRIES ASSIGNED TO THE SUBFAMILY. 00207 M00S00207.ssval +++|* - THE VSN, FAMILY, SUBFAMILY, *FCT* ORDINAL FIELDS. 00208 M00S00208.ssval +++|* . SMMAP ENTRY ALLOCATED TO THE SUBFAMILY THAT HAS NO 00209 M00S00209.ssval +++|* VALID *FCT* ENTRY IN THE SFM CATALOG. 00210 M00S00210.ssval +++|* 00211 M00S00211.ssval +++| 00212 M00S00212.ssval +++|*** THE RESULTS OF RUNNING *SSVAL* ARE: 00213 M00S00213.ssval +++|* - THE VALIDATION REPORT. 00214 M00S00214.ssval +++|* - THE RELEASE OF FREE SFM SPACE IN THE SFM CATALOG. 00215 M00S00215.ssval +++|* - THE REPAIRS OF THE CATALOGS FOR VALIDATION ERRORS DETECTED. 00216 M00S00216.ssval +++|* 00217 M00S00217.ssval +++|* FREE SPACE IN THE SFM CATALOG IS RELEASED IF THE RF AND 00218 M00S00218.ssval +++|* RL CONTROL CARD PARAMETERS WERE SPECIFIED AND IF THE 00219 M00S00219.ssval +++|* TOTAL VALIDATION ERRORS DETECTED WERE LESS THAT THE 00220 M00S00220.ssval +++|* THRESHOLD SET BY THE FX CONTROL CARD PARAMETER. IN ADDITION, 00221 M00S00221.ssval +++|* THE RELEASE FOR A SPECIFIC SUBFAMILY AND *SM* OCCURS ONLY 00222 M00S00222.ssval +++|* IF THE RDF FILE DATE AND TIME IS MORE RECENT THAN THE 00223 M00S00223.ssval +++|* LAST PURGE DATE AND TIME RECORDED IN THE PREAMBLE OF THE 00224 M00S00224.ssval +++|* SFM CATALOG. 00225 M00S00225.ssval +++|* 00226 M00S00226.ssval +++|* REPAIRS TO THE CATALOGS OCCUR ONLY IF THE FM CONTROL CARD 00227 M00S00227.ssval +++|* PARAMETER IS ACTIVE AND THE TOTAL VALIDATION ERRORS ARE 00228 M00S00228.ssval +++|* LESS THAN THE THRESHOLD SET BY THE FX CONTROL CARD PARAMETER. 00229 M00S00229.ssval +++|* 00230 M00S00230.ssval +++|* *PFC* ENTRIES CAN ONLY BE REPAIRED IF THE FILE IS DISK RESIDENT. 00231 M00S00231.ssval +++|* - THE *ASA* IS CLEARED IN THE *PFC* ENTRY TO PREVENT THE 00232 M00S00232.ssval +++|* RELEASE OF THE DISK SPACE. 00233 M00S00233.ssval +++|* REPAIRS TO THE SFM CATALOG OCCUR IF ERRORS ARE DETECTED IN 00234 M00S00234.ssval +++|* *FCT* ENTRIES. 00235 M00S00235.ssval +++|* - THE FOLLOWING FLAGS ARE SET IN THE SFM CATALOG *FCT* ENTRY. 00236 M00S00236.ssval +++|* . THE FROZEN FLAG IS SET TO PREVENT AUTOMATIC RELEASE OF THE 00237 M00S00237.ssval +++|* SFM FILE SPACE AND ALLOW INSPECTION OF THE SFM DATA. 00238 M00S00238.ssval +++|* . THE START OF FRAGMENT FLAG IS SET IF A FRAGMENT WAS 00239 M00S00239.ssval +++|* DETECTED. 00240 M00S00240.ssval +++|* . THE SMMAP ERROR FLAG IS SET IF THE *FCT* HAS NO SMMAP 00241 M00S00241.ssval +++|* ENTRY. 00242 M00S00242.ssval +++|* . THE INHIBIT FLAG IS SET IF THE SMMAP ERROR OCCURRED. 00243 M00S00243.ssval +++|* REPAIR TO THE SMMAP FILE OCCURS FOR ERRORS DETECTED IN THE 00244 M00S00244.ssval +++|* SMMAP-*FCT* LINKAGE. 00245 M00S00245.ssval +++|* . THE ERROR FLAG IN THE SMMAP ENTRY IS SET. 00246 M00S00246.ssval +++|* 00247 M00S00247.ssval +++|* THE VALIDATION REPORT CONTAINS INFORMATIONAL AND ERROR LINES 00248 M00S00248.ssval +++|* DESCRIBING WHAT WAS VALIDATED AND WHAT WAS FOUND TO BE IN ERROR. 00249 M00S00249.ssval +++|* 00250 M00S00250.ssval +++|* COLUMN 0 IS RESERVED FOR THE CARRIAGE CONTROL CHARACTER. 00251 M00S00251.ssval +++|* 00252 M00S00252.ssval +++|* THE TITLE, INFORMATIONAL AND HEADING LINES START IN COLUMN 4. 00253 M00S00253.ssval +++|* 00254 M00S00254.ssval +++|* THE DETAIL LINES START IN COLUMN 7 OR BEYOND. 00255 M00S00255.ssval +++|* 00256 M00S00256.ssval +++|* LINE - GENERAL 00257 M00S00257.ssval +++|* TYPE - FORMAT 00258 M00S00258.ssval +++|* ---- - ------ 00259 M00S00259.ssval +++|* 00260 M00S00260.ssval +++|* TITLE - SSVAL - VALIDATION REPORT ...VER 1.0 00261 M00S00261.ssval +++|* SUB-TITLE - FAMILY = NAME 00262 M00S00262.ssval +++|* 00263 M00S00263.ssval +++|* PRESET - (CONTROL CARD IMAGE) 00264 M00S00264.ssval +++|* DETAIL - (LIST OF) KEYWORD = VALUE. 00265 M00S00265.ssval +++|* 00266 M00S00266.ssval +++|* RDF DETAIL - RDF FILE FAMILY = NAME 00267 M00S00267.ssval +++|* - RDF FILE BUDT = DATE-TIME 00268 M00S00268.ssval +++|* 00269 M00S00269.ssval +++|* PRESET - *** PF = NAME INVALID SM IN PFC 00270 M00S00270.ssval +++|* ERRORS - UI = VALUE 00271 M00S00271.ssval +++|* 00272 M00S00272.ssval +++|* SUBCATALOG - SUBFAMILY = N *SM* = X "GOOD" 00273 M00S00273.ssval +++|* HEADINGS - "INTERSECTIONS" 00274 M00S00274.ssval +++|* - "PROBLEMS" 00275 M00S00275.ssval +++|* 00276 M00S00276.ssval +++|* SUB-HEADING - -HEAD OF CHAINS- 00277 M00S00277.ssval +++|* INTERSECTIONS - FCTORD-STRM FCTORD-STRM 00278 M00S00278.ssval +++|* 00279 M00S00279.ssval +++|* INTERSECTIONS - (CHAIN-ID) (CHAIN-ID) 00280 M00S00280.ssval +++|* DETAIL - 00281 M00S00281.ssval +++|* 00282 M00S00282.ssval +++|* SUB-HEADING - ERR IDENTIFICATION -CHAIN- ERROR 00283 M00S00283.ssval +++|* PROBLEMS - TYP FCT-STM-A/U-H-E 00284 M00S00284.ssval +++|* 00285 M00S00285.ssval +++|* PROBLEM - 4 PF=NAME 00286 M00S00286.ssval +++|* DETAIL - UI=VALUE 00287 M00S00287.ssval +++|* - BU=DATE-TIME 00288 M00S00288.ssval +++|* - DI=N/Y (CHAIN-ID) TEXT 00289 M00S00289.ssval +++|* (CHAIN-ID) (TEXT) 00290 M00S00290.ssval +++|* TEXT 00291 M00S00291.ssval +++|* 00292 M00S00292.ssval +++|* SUMMARY - FREE M860 FILE = NNN 00293 M00S00293.ssval +++|* - FREE M860 AU-S = NNNN 00294 M00S00294.ssval +++|* - TOTAL VALIDATION ERRORS = NNN 00295 M00S00295.ssval +++|* 00296 M00S00296.ssval +++|* MISCELLANEOUS - ***CONNECT TO EXEC FAILED 00297 M00S00297.ssval +++|* - CATALOGS NOT MODIFIED 00298 M00S00298.ssval +++|* - CATALOGS MODIFIED 00299 M00S00299.ssval +++|* - FREE FILES RELEASED 00300 M00S00300.ssval +++|* 00301 M00S00301.ssval +++|* 00302 M00S00302.ssval +++|* THE INTERSECTIONS REPORT SECTION IS ISSUED FOR THE SUBCATALOG 00303 M00S00303.ssval +++|* WHEN INTERSECTIONS ARE DETECTED. 00304 M00S00304.ssval +++|* 00305 M00S00305.ssval +++|* THE PROBLEM REPORT SECTION IS ISSUED AT THE END OF EACH 00306 M00S00306.ssval +++|* SUBCATALOG-S VALIDATION. 00307 M00S00307.ssval +++|* 00308 M00S00308.ssval +++|* ENOUGH IDENTIFICATION IS GIVEN TO ALLOW THE ANALYST TO LOCATE THE 00309 M00S00309.ssval +++|* ENTRY(S) RELATING TO THE PROBLEM IN THE CATALOGS: SFM CATALOG, 00310 M00S00310.ssval +++|* *PFC* OR SMMAP. 00311 M00S00311.ssval +++|* 00312 M00S00312.ssval +++|* ERROR TYPE VALUES IN THE PROBLEM REPORT SECTION ARE - 00313 M00S00313.ssval +++|* 1 - *FCT* ENTRY WITH NO VALID SMMAP ENTRY. 00314 M00S00314.ssval +++|* 2 - SMMAP ENTRY WITH NO VALID *FCT* ENTRY. 00315 M00S00315.ssval +++|* 3 - *PFC* ENTRY WITH INVALID ASA. 00316 M00S00316.ssval +++|* 4 - *PFC* ENTRY WITH PROBLEMS. 00317 M00S00317.ssval +++|* 5 - ORPHANS WITH PROBLEMS. 00318 M00S00318.ssval +++|* 6 - CHAIN FRAGMENTS. 00319 M00S00319.ssval +++|* 7 - UNALLOCATED SFM ENTRIES WITH PROBLEMS. 00320 M00S00320.ssval +++|* 00321 M00S00321.ssval +++| 00322 M00S00322.ssval +++| 00323 M00S00323.ssval +++|*** DAYFILE MESSAGES. 00324 M00S00324.ssval +++|* 00325 M00S00325.ssval +++|* * SSVAL COMPLETED.* 00326 M00S00326.ssval +++|* * SSVAL ABORTED.* 00327 M00S00327.ssval +++|* * FREE FILES RELEASED.* 00328 M00S00328.ssval +++|* * CATALOGS MODIFIED.* 00329 M00S00329.ssval +++|* * CATALOGS NOT MODIFIED.* 00330 M00S00330.ssval +++|* * TOTAL VALIDATION ERRORS = NN.* 00331 M00S00331.ssval +++|* * VALIDATING SB=N SM=X.* 00332 M00S00332.ssval +++|* * CONTROL CARD SYNTAX ERROR.* 00333 M00S00333.ssval +++|* * INVALID CS PARAMETER.* 00334 M00S00334.ssval +++|* * INVALID FX PARAMETER.* 00335 M00S00335.ssval +++|* * INVALID SB PARAMETER.* 00336 M00S00336.ssval +++|* * INVALID ST PARAMETER.* 00337 M00S00337.ssval +++|* * ILLEGAL - L AND RF PARAMETER.* 00338 M00S00338.ssval +++|* * ILLEGAL - RL AND NO RF PARAMETER.* 00339 M00S00339.ssval +++|* * ILLEGAL - RF AND FM PARAMETER.* 00340 M00S00340.ssval +++|* * ILLEGAL - RF AND AM PARAMETER.* 00341 M00S00341.ssval +++|* * SSVAL - MUST BE SYSTEM ORIGIN.* 00342 M00S00342.ssval +++|* * RDF FILE ERROR - MISSING HEADER.* 00343 M00S00343.ssval +++|* * RDF FILE ERROR - BAD RECORD LENGTH.* 00344 M00S00344.ssval +++|* * RDF FILE ERROR - UNIDENTIFIED DATA.* 00345 M00S00345.ssval +++|* * SFM CATALOG OPEN ERROR.* 00346 M00S00346.ssval +++|* * SFM CATALOG READ ERROR.* 00347 M00S00347.ssval +++|* * SMMAP OPEN ERROR.* 00348 M00S00348.ssval +++|* * SMMAP READ ERROR.* 00349 M00S00349.ssval +++|* * REQUIRED FL EXCEEDS JOB MAX.* 00350 M00S00350.ssval +++|* * CONNECT TO EXEC FAILED.* 00351 M00S00351.ssval +++|* * UCP CALL ERROR.* 00352 M00S00352.ssval +++|* * FAMILY NOT FOUND IN SYSTEM.* 00353 M00S00353.ssval +++|* * ERROR READING *PFC*.* 00354 M00S00354.ssval +++|* * SSVAL ABNORMAL* NAME.* 00355 M00S00355.ssval +++|* 00356 M00S00356.ssval +++| 00357 M00S00357.ssval +++| 00358 M00S00358.ssval +++|*** OPERATOR MESSAGES. 00359 M00S00359.ssval +++|* 00360 M00S00360.ssval +++|* * WAITING FOR FILE FILENAME.* 00361 M00S00361.ssval +++|* * WAITING FOR EXEC.* 00362 M00S00362.ssval +++|* * VALIDATING SB=N SM=X.* 00363 M00S00363.ssval +++|* 00364 M00S00364.ssval +++| 00365 M00S00365.ssval +++|*** SSVAL. 00366 M00S00366.ssval +++|* 00367 M00S00367.ssval +++|* *SSVAL* IS THE M860 UTILITY PROGRAM THAT VALIDATES DATA IN THE 00368 M00S00368.ssval +++|* SFM CATALOG, THE PERMANENT FILE CATALOG (PFC) AND THE SMMAP 00369 M00S00369.ssval +++|* FILE. IT CAN ALSO REPAIR THE CATALOGS FOR VALIDATION 00370 M00S00370.ssval +++|* ERRORS DETECTED AND RELEASE FREE SPACE IN THE SFM CATALOG FOR 00371 M00S00371.ssval +++|* PURGED USER FILES. 00372 M00S00372.ssval +++|* 00373 M00S00373.ssval +++|* SSVAL(P1,P2,...,PN) 00374 M00S00374.ssval +++|* 00375 M00S00375.ssval +++|* PRGM SSVAL 00376 M00S00376.ssval +++|* 00377 M00S00377.ssval +++|* MESSAGES * CONNECT TO EXEC FAILED.* 00378 M00S00378.ssval +++|* * SSVAL COMPLETED.* 00379 M00S00379.ssval +++|* 00380 M00S00380.ssval +++|* NOTES *SSVAL* - 00381 M00S00381.ssval +++|* . CALLS VLPRSET TO INITIALIZE FILES AND PARAMETERS. 00382 M00S00382.ssval +++|* . CONNECTS TO M860 *EXEC*. 00383 M00S00383.ssval +++|* . CALLS VLSUBFM FOR EACH SUBFAMILY TO VALIDATE. 00384 M00S00384.ssval +++|* . CALLS VLFIX TO PERFORM REPAIR/RELEASE PROCESSING 00385 M00S00385.ssval +++|* ON THE CATALOGS. 00386 M00S00386.ssval +++|* . DISCONNECTS AND CLOSES. 00387 M00S00387.ssval +++|* 00388 M00S00388.ssval +++| 00389 M00S00389.ssval +++|********** 00390 M00S00390.ssval +++| 00391 M00S00391.ssval +++|** METHOD. OR METHODS.... 00392 M00S00392.ssval +++|* 00393 M00S00393.ssval +++|* A NUMBER OF LOCAL FILES ARE USED TO RETAIN INFORMATION 00394 M00S00394.ssval +++|* THROUGHOUT THE VALIDATION PROCESS - 00395 M00S00395.ssval +++|* 00396 M00S00396.ssval +++|* . *PFC* EXTRACT FILES - CONTAIN EXTRACTS FROM THE LIVE 00397 M00S00397.ssval +++|* *PFC* OR FROM THE RDF FILE. THERE IS A SEPARATE 00398 M00S00398.ssval +++|* FILE FOR EACH SUBFAMILY. 00399 M00S00399.ssval +++|* 00400 M00S00400.ssval +++|* . PROBLEM FILE - CONTAINS ENTRIES FOR VALIDATION 00401 M00S00401.ssval +++|* ERRORS DETECTED. 00402 M00S00402.ssval +++|* 00403 M00S00403.ssval +++|* . FIXIT FILE - CONTAINS ENTRIES FOR ALL REPAIRS AND 00404 M00S00404.ssval +++|* RELEASES THAT MAY BE PERFORMED. 00405 M00S00405.ssval +++|* 00406 M00S00406.ssval +++|* . ZZZVALX FILES - CONTAIN COPIES OF THE SFM CATALOGS, 00407 M00S00407.ssval +++|* FROM THE RDF FILE. THERE IS A SEPARATE FILE 00408 M00S00408.ssval +++|* FOR EACH SUBFAMILY. 00409 M00S00409.ssval +++|* 00410 M00S00410.ssval +++|* A VALIDATION TABLE (*VT*) IS USED TO CONTAIN AND EXAMINE 00411 M00S00411.ssval +++|* THE *FCT* DATA FOR A SUBCATALOG IN THE SFM CATALOG. THE 00412 M00S00412.ssval +++|* *VT* HAS A 1 WORD ENTRY. 00413 M00S00413.ssval +++|* 00414 M00S00414.ssval +++|* EACH WORD (REPRESENTING ONE AU IN THE *FCT*) CONTAINS 00415 M00S00415.ssval +++|* STATUS AND LINKAGE INFORMATION ABOUT THE AU - 00416 M00S00416.ssval +++|* . ALLOCATED OR NOT. 00417 M00S00417.ssval +++|* . HEAD OF CHAIN AND/OR END OF CHAIN 00418 M00S00418.ssval +++|* . *PFC* OWNER FLAG 00419 M00S00419.ssval +++|* . VALIDATION ERROR FLAGS. 00420 M00S00420.ssval +++|* . A LINK TO THE NEXT AU IN THE CHAIN. 00421 M00S00421.ssval +++|* 00422 M00S00422.ssval +++|* VALIDATION ERROR FLAGS ARE ASSIGNED PROBLEM TYPES (1,2, OR 4) 00423 M00S00423.ssval +++|* THAT REFLECT THE SUBSEQUENT REPORT AND REPAIR PROCESSING 00424 M00S00424.ssval +++|* THAT SHOULD OCCUR - 00425 M00S00425.ssval +++|* TYPE 1 - REPORT THE PROBLEM AND DO NOT REPAIR. 00426 M00S00426.ssval +++|* TYPE 2 - REPORT THE PROBLEM. REPAIR ONLY IF THERE 00427 M00S00427.ssval +++|* IS AN ASSOCIATED *PFC* ENTRY. 00428 M00S00428.ssval +++|* TYPE 4 - REPORT THE PROBLEM AND REPAIR THE CATALOG(S). 00429 M00S00429.ssval +++|* 00430 M00S00430.ssval +++|* THE *VT* IS USED AS A FAST METHOD TO FOLLOW CHAINS TO 00431 M00S00431.ssval +++|* ENSURE THAT THEY ARE VALID. ERRORS ARE- 00432 M00S00432.ssval +++|* . INTERSECTING CHAINS. 00433 M00S00433.ssval +++|* . ILL-FORMED CHAINS. 00434 M00S00434.ssval +++|* 00435 M00S00435.ssval +++|* AS THE CHAIN IS FOLLOWED, EACH ENTRY IS MARKED BY SETTING 00436 M00S00436.ssval +++|* THE POINTER FIELD TO THE HEAD OF CHAIN ENTRY. 00437 M00S00437.ssval +++|* 00438 M00S00438.ssval +++|** GENERAL RULES. 00439 M00S00439.ssval +++|* 00440 M00S00440.ssval +++|* *SSVAL* ALWAYS ISSUES A SUBSYSTEM REQUEST USING THE 00441 M00S00441.ssval +++|* SUBSYSTEM ID FOR THE M860 EXEC AND PARAMETERS FOR A 00442 M00S00442.ssval +++|* "CONNECT". IF THE M860 EXEC IS NOT PRESENT OR IF THE 00443 M00S00443.ssval +++|* M860 EXEC RETURNS AN ERROR STATUS, *SSVAL* ISSUES A 00444 M00S00444.ssval +++|* MESSAGE "CONNECT TO EXEC FAILED" AND CONTINUES. BUT 00445 M00S00445.ssval +++|* NO FURTHER SUBSYSTEM REQUESTS ARE MADE. THEREFORE, NO 00446 M00S00446.ssval +++|* REPAIR/RELEASE PROCESSING CAN OCCUR. SSVAL CONTINUES 00447 M00S00447.ssval +++|* IN THIS "LIMITED" MODE TO PRODUCE THE VALIDATION REPORT. 00448 M00S00448.ssval +++|* 00449 M00S00449.ssval +++|* THE CATALOGS ARE ATTACHED IN READ MODE. THIS PROVIDES AN 00450 M00S00450.ssval +++|* INTERLOCK TO ENSURE THAT NO ONE IS MODIFIYING THE DATA 00451 M00S00451.ssval +++|* DURING VALIDATION. 00452 M00S00452.ssval +++|* 00453 M00S00453.ssval +++|* I/O ERRORS WILL BE DETECTED AND PROCESSED BY *CIO*. 00454 M00S00454.ssval +++|* 00455 M00S00455.ssval +++|** HEIRARCHY. 00456 M00S00456.ssval +++|* 00457 M00S00457.ssval +++|* 3 MAJOR STEPS - 00458 M00S00458.ssval +++|* 00459 M00S00459.ssval +++|* . PRESET - PROCESS THE CONTROL CARD PARAMETERS INTO 00460 M00S00460.ssval +++|* RUN TIME PARAMETERS. 00461 M00S00461.ssval +++|* - PROCESS INPUT FILES TO GENERATE WORKING FILES. 00462 M00S00462.ssval +++|* 00463 M00S00463.ssval +++|* . VALIDATE (THIS STEP REPEATS FOR ALL SELECTED 00464 M00S00464.ssval +++|* SUBCATALOGS WITHIN SELECTED SUBFAMILIES). 00465 M00S00465.ssval +++|* - ANALYZES ALL CATALOG DATA AND GENERATES THE 00466 M00S00466.ssval +++|* PROBLEM FILE. 00467 M00S00467.ssval +++|* - EXAMINES ALL PROBLEM FILE ENTRIES AND GENERATES 00468 M00S00468.ssval +++|* THE VALIDATION REPORT AND THE FIXIT FILE. 00469 M00S00469.ssval +++|* 00470 M00S00470.ssval +++|* . FIX - EXAMINES THE FIXIT FILE ENTRIES AND RELEASES FREE 00471 M00S00471.ssval +++|* SPACE IF THIS MODE IS SELECTED. 00472 M00S00472.ssval +++|* - EXAMINES THE FIXIT FILE ENTRIES AND REPAIRS CATALOG 00473 M00S00473.ssval +++|* ENTRIES IF THIS OPTION IS SELECTED. 00474 M00S00474.ssval +++|* 00475 M00S00475.ssval +++|* 00476 M00S00476.ssval +++|* *SSVAL* MAJOR ROUTINES. 00477 M00S00477.ssval +++|* 1.0 VLPRSET - PRESET PARAMETERS AND FILES. 00478 M00S00478.ssval +++|* 1.1 VLTAB - 00479 M00S00479.ssval +++|* 1.2 VLPFC - READ THE PFC. 00480 M00S00480.ssval +++|* 1.3 VLRDF - READ THE RDF FILE. 00481 M00S00481.ssval +++|* 1.3.1 VLRDF2 - PROCESS THE RDF RECORD. 00482 M00S00482.ssval +++|* 00483 M00S00483.ssval +++|* 2.0 VLSUBFM - SUBFAMILY VALIDATION. 00484 M00S00484.ssval +++|* 2.1 VLBLDVT - BUILD VALIDATION TABLE. 00485 M00S00485.ssval +++|* 2.1.1 VLCMAP - SMMAP LOOKUP. 00486 M00S00486.ssval +++|* 2.2 VLASFM - ANALYZE THE SFM CATALOG. 00487 M00S00487.ssval +++|* 2.2.1 VLNCS - NORMAL CHAIN SCAN. 00488 M00S00488.ssval +++|* 2.2.2 VLCFS - CHAIN FRAGMENT SCAN. 00489 M00S00489.ssval +++|* 2.2.3 VLSMSC - SMMAP SCAN. 00490 M00S00490.ssval +++|* 2.3 VLAPFC - ANALYZE THE *PFC* CATALOG. 00491 M00S00491.ssval +++|* 2.3.1 VLAPFC2 - ANALYZE *PFC* PASS 2. 00492 M00S00492.ssval +++|* 2.4 VLRPT - VALIDATION REPORT. 00493 M00S00493.ssval +++|* 2.4.1 VLRPTL - ISSUE REPORT LINE. 00494 M00S00494.ssval +++|* 2.4.2 VLSCH - SCAN CHAIN FOR REPORT. 00495 M00S00495.ssval +++|* 00496 M00S00496.ssval +++|* 3.0 VLFIX - FIX CATALOGS. 00497 M00S00497.ssval +++|* 3.1 VLFIXP - FIX PFC. 00498 M00S00498.ssval +++|* 00499 M00S00499.ssval +++| 00500 M00S00500.ssval +++|** EXTERNAL INTERFACE ROUTINES. 00501 M00S00501.ssval +++|* 00502 M00S00502.ssval +++|* CATALOG/MAP ACCESS ROUTINES. 00503 M00S00503.ssval +++|* M860 REPORT FORMATTER. 00504 M00S00504.ssval +++|* NOS MACROS USING THE SYMPL INTERFACES ON MAC1. 00505 M00S00505.ssval +++|* SPECIAL ROUTINES ON MAC2. 00506 M00S00506.ssval +++|* - XARG 00507 M00S00507.ssval +++|* - CALLSS 00508 M00S00508.ssval +++|* - CINTLK 00509 M00S00509.ssval +++|* - GETFAM 00510 M00S00510.ssval +++|* - RDPFC 00511 M00S00511.ssval +++|* - SETASA 00512 M00S00512.ssval +++|* - SETPFP 00513 M00S00513.ssval +++|* - UATTACH 00514 M00S00514.ssval +++|# 00515 M00S00515.ssval +++| 00516 M00S00516.ssval +++| CONTROL PRESET; 00517 M00S00517.ssval +++| 00518 M00S00518.ssval +++|# 00519 M00S00519.ssval +++|**** PROC SSVAL - XREF LIST BEGIN. 00520 M00S00520.ssval +++|# 00521 M00S00521.ssval +++| 00522 M00S00522.ssval +++| XREF 00523 M00S00523.ssval +++| BEGIN 00524 M00S00524.ssval +++| PROC ABORT; # CALLS *ABORT* MACRO # 00525 M00S00525.ssval +++| PROC GETPFP; # GET USER INDEX AND FAMILY # 00526 M00S00526.ssval +++| PROC GETSPS; # GET SYSTEM ORIGIN STATUS # 00527 M00S00527.ssval +++| PROC MEMORY; # INTERFACE TO *MEMORY* MACRO # 00528 M00S00528.ssval +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 00529 M00S00529.ssval +++| OR RETURN # 00530 M00S00530.ssval +++| PROC RPCLOSE; # CLOSES A PRINT FILE # 00531 M00S00531.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 00532 M00S00532.ssval +++| PROC VLFIX; # FIX CATALOGS # 00533 M00S00533.ssval +++| PROC VLMSG; # ISSUE INFORMATIONAL MESSAGE # 00534 M00S00534.ssval +++| PROC VLPRSET; # PRESET PARAMETERS AND FILES # 00535 M00S00535.ssval +++| PROC VLREQEX; # REQUEST TO EXEC # 00536 M00S00536.ssval +++| PROC VLSUBFM; # SUBFAMILY VALIDATION # 00537 M00S00537.ssval +++| END 00538 M00S00538.ssval +++| 00539 M00S00539.ssval +++|# 00540 M00S00540.ssval +++|**** PROC SSVAL - XREF LIST END. 00541 M00S00541.ssval +++|# 00542 M00S00542.ssval +++| 00543 M00S00543.ssval +++| DEF RSLEN #1#; # RETURN STATUS WORD LENGTH # 00544 M00S00544.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTINGS # 00545 M00S00545.ssval +++| 00546 M00S00546.ssval +++|*CALL COMBFAS 00547 M00S00547.ssval +++|*CALL COMBCMD 00548 M00S00548.ssval +++|*CALL COMBCPR 00549 M00S00549.ssval +++|*CALL COMBMAP 00550 M00S00550.ssval +++|*CALL COMBMCT 00551 M00S00551.ssval +++|*CALL COMBPFP 00552 M00S00552.ssval +++|*CALL COMTFMT 00553 M00S00553.ssval +++|*CALL COMTVLD 00554 M00S00554.ssval +++|*CALL COMTVLF 00555 M00S00555.ssval +++|*CALL COMTVLM 00556 M00S00556.ssval +++|*CALL COMTVLV 00557 M00S00557.ssval +++|*CALL COMTVLX 00558 M00S00558.ssval +++| 00559 M00S00559.ssval +++| 00560 M00S00560.ssval +++| ARRAY SCR$FET [0:0] S(SFETL);; # SCRATCH FET # 00561 M00S00561.ssval +++| ARRAY SPSSTAT [0:0] S(RSLEN); 00562 M00S00562.ssval +++| BEGIN 00563 M00S00563.ssval +++| ITEM SPS$STATUS U(00,48,12); # RETURN STATUS # 00564 M00S00564.ssval +++| END 00565 M00S00565.ssval +++| CONTROL EJECT; 00566 M00S00566.ssval +++| 00567 M00S00567.ssval +++| GETSPS(SPSSTAT); # GET SYSTEM ORIGIN STATUS # 00568 M00S00568.ssval +++| IF SPS$STATUS NQ 0 00569 M00S00569.ssval +++| THEN 00570 M00S00570.ssval +++| BEGIN 00571 M00S00571.ssval +++| VLMSG(VM"NEEDSYOT"); # MUST HAVE SYSTEM PRIVILEGES # 00572 M00S00572.ssval +++| ABORT; 00573 M00S00573.ssval +++| END 00574 M00S00574.ssval +++| 00575 M00S00575.ssval +++|# 00576 M00S00576.ssval +++|* SAVE THE USER-S CURRENT FAMILY AND USER INDEX IN COMMON. 00577 M00S00577.ssval +++|# 00578 M00S00578.ssval +++| 00579 M00S00579.ssval +++| GETPFP(PFP[0]); 00580 M00S00580.ssval +++| USER$FAM[0] = PFP$FAM[0]; 00581 M00S00581.ssval +++| USER$UI[0] = PFP$UI[0]; 00582 M00S00582.ssval +++| 00583 M00S00583.ssval +++|# 00584 M00S00584.ssval +++|* GET CURRENT JOB FIELD LENGTH. 00585 M00S00585.ssval +++|# 00586 M00S00586.ssval +++| 00587 M00S00587.ssval +++| MEM$MIN = O"50000"; # SAVE PROGRAM SIZE # 00588 M00S00588.ssval +++| MEM$WDS[0] = MEM$MIN; 00589 M00S00589.ssval +++| MEMORY("CM",MEMRQST,RCL,NA); # SET MEMORY # 00590 M00S00590.ssval +++| 00591 M00S00591.ssval +++|# 00592 M00S00592.ssval +++|* GET MAXIMUM JOB FIELD LENGTH. 00593 M00S00593.ssval +++|# 00594 M00S00594.ssval +++| 00595 M00S00595.ssval +++| MEM$WDS[0] = REQMAXFL; 00596 M00S00596.ssval +++| MEMORY("CM",MEMRQST,RCL,NA); 00597 M00S00597.ssval +++| MEM$MAX = MEM$WDS[0]; # SAVE MAXIMUM MEMORY ALLOWED # 00598 M00S00598.ssval +++| 00599 M00S00599.ssval +++|# 00600 M00S00600.ssval +++|* PRESET - PROCESS CONTROL CARD AND INITIALIZE FILES. 00601 M00S00601.ssval +++|# 00602 M00S00602.ssval +++| 00603 M00S00603.ssval +++| VLPRSET; 00604 M00S00604.ssval +++| 00605 M00S00605.ssval +++|# 00606 M00S00606.ssval +++|* CONNECT TO SUBSYSTEM. 00607 M00S00607.ssval +++|# 00608 M00S00608.ssval +++| 00609 M00S00609.ssval +++| CONNECTED = TRUE; # INITIALIZE FOR VLREQEX CALL # 00610 M00S00610.ssval +++| VLREQEX(TYP"TYP1",REQTYP1"CONNECT"); 00611 M00S00611.ssval +++| IF STAT NQ 0 00612 M00S00612.ssval +++| THEN # CONNECT REQUEST FAILED # 00613 M00S00613.ssval +++| BEGIN 00614 M00S00614.ssval +++| VLERROR(VE"NCONNECT",NOABT); # ISSUE ERROR MESSAGE # 00615 M00S00615.ssval +++| CONNECTED = FALSE; # NOT CONNECTED # 00616 M00S00616.ssval +++| END 00617 M00S00617.ssval +++| 00618 M00S00618.ssval +++|# 00619 M00S00619.ssval +++|* VALIDATE ALL SELECTED SUBFAMILIES. ONLY THOSE SUBFAMILIES 00620 M00S00620.ssval +++|* SELECTED BY THE CONTROL CARD AND WHO HAVE THE SFM CATALOG FILE 00621 M00S00621.ssval +++|* AVAILABLE IN THIS RUN ARE VALIDATED. 00622 M00S00622.ssval +++|# 00623 M00S00623.ssval +++| 00624 M00S00624.ssval +++| SLOWFOR SBINDX = 0 STEP 1 UNTIL MAXSF 00625 M00S00625.ssval +++| DO 00626 M00S00626.ssval +++| BEGIN 00627 M00S00627.ssval +++| IF (B<SBINDX,1>PAR$SB EQ 1) AND (B<SBINDX,1>SFMCATDEF EQ 1) 00628 M00S00628.ssval +++| THEN 00629 M00S00629.ssval +++| BEGIN 00630 M00S00630.ssval +++| VLSUBFM; # VALIDATE SUBFAMILY # 00631 M00S00631.ssval +++| END 00632 M00S00632.ssval +++| 00633 M00S00633.ssval +++| END 00634 M00S00634.ssval +++| 00635 M00S00635.ssval +++|# 00636 M00S00636.ssval +++|* RETURN MEMORY USED IN VALIDATION. 00637 M00S00637.ssval +++|# 00638 M00S00638.ssval +++| 00639 M00S00639.ssval +++| MEM$WDS[0] = MEM$MIN; 00640 M00S00640.ssval +++| MEMORY("CM",MEMRQST,RCL,NA); # REDUCE FL # 00641 M00S00641.ssval +++| 00642 M00S00642.ssval +++| 00643 M00S00643.ssval +++| 00644 M00S00644.ssval +++|# 00645 M00S00645.ssval +++|* FIX CATALOGS PROCESSING. 00646 M00S00646.ssval +++|# 00647 M00S00647.ssval +++| 00648 M00S00648.ssval +++| VLFIX; 00649 M00S00649.ssval +++| 00650 M00S00650.ssval +++|# 00651 M00S00651.ssval +++|* CLOSE THE REPORT FILE AND DISCONNECT. 00652 M00S00652.ssval +++|# 00653 M00S00653.ssval +++| 00654 M00S00654.ssval +++| RPCLOSE(RPTFADR); 00655 M00S00655.ssval +++| 00656 M00S00656.ssval +++| VLREQEX(TYP"TYP1",REQTYP1"DISCONNECT"); # DISCONNECT FROM EXEC # 00657 M00S00657.ssval +++| 00658 M00S00658.ssval +++| VLMSG(VM"VLDONE"); # SSVAL COMPLETED # 00659 M00S00659.ssval +++| IF TOTALERRS - PAR$FX LQ 0 00660 M00S00660.ssval +++| THEN 00661 M00S00661.ssval +++| BEGIN 00662 M00S00662.ssval +++| RESTPFP(PFP$END); 00663 M00S00663.ssval +++| END 00664 M00S00664.ssval +++| 00665 M00S00665.ssval +++| ELSE 00666 M00S00666.ssval +++| BEGIN 00667 M00S00667.ssval +++| RESTPFP(PFP$ABORT); 00668 M00S00668.ssval +++| END 00669 M00S00669.ssval +++| 00670 M00S00670.ssval +++| 00671 M00S00671.ssval +++| STOP; 00672 M00S00672.ssval +++| 00673 M00S00673.ssval +++| END # SSVAL # 00674 M00S00674.ssval +++| 00675 M00S00675.ssval +++| TERM 00676 M00S00676.ssval +++|PROC VLAMSF; 00677 M00S00677.ssval +++|# TITLE VLASFM - ANALYZE THE SFM CATALOG. # 00678 M00S00678.ssval +++| 00679 M00S00679.ssval +++| 00680 M00S00680.ssval +++| BEGIN # VLASFM # 00681 M00S00681.ssval +++| 00682 M00S00682.ssval +++|# 00683 M00S00683.ssval +++|** VLASFM - ANALYZE THE SFM CATALOG. 00684 M00S00684.ssval +++|* 00685 M00S00685.ssval +++|* *VLAMSF* CONTROLS THE VALIDATION PROCESS THAT EXAMINES 00686 M00S00686.ssval +++|* THE SFM CATALOG DATA IN THE *VT* TABLE. 00687 M00S00687.ssval +++|* 00688 M00S00688.ssval +++|* PROC VLASFM 00689 M00S00689.ssval +++|* 00690 M00S00690.ssval +++|* ENTRY (PAR$AM) - AM CONTROL CARD PARAMETER. 00691 M00S00691.ssval +++|* (ARRAY VTTABLE) - VALIDATION TABLE ENTRIES. 00692 M00S00692.ssval +++|* 00693 M00S00693.ssval +++|* EXIT (VTEN$PROB) - THIS FIELD IN EACH VALIDATION TABLE ENTRY 00694 M00S00694.ssval +++|* IS UPDATED TO REFLECT THE TYPE OF 00695 M00S00695.ssval +++|* VALIDATION PROBLEMS ENCOUNTERED SO FAR. 00696 M00S00696.ssval +++|* 00697 M00S00697.ssval +++|* NOTES *VLAMSF* PROCESSES BY - 00698 M00S00698.ssval +++|* . CALLING *VLNCS* TO PERFORM THE NORMAL CHAIN SCAN. 00699 M00S00699.ssval +++|* . CALLING *VLCFS* TO PERFORM THE CHAIN FRAGMENT SCAN. 00700 M00S00700.ssval +++|* . CALLING *VLSMSC* TO SCAN THE SMMAP. 00701 M00S00701.ssval +++|* . SCANNING ALL ENTRIES IN THE *VT* TABLE TO UPDATE THE 00702 M00S00702.ssval +++|* PROBLEM FIELD IN THE ENTRY AND IN ITS ASSOCIATED HEAD 00703 M00S00703.ssval +++|* OF CHAIN ENTRY. 00704 M00S00704.ssval +++|# 00705 M00S00705.ssval +++| 00706 M00S00706.ssval +++|# 00707 M00S00707.ssval +++|**** PROC VLASFM - XREF LIST BEGIN. 00708 M00S00708.ssval +++|# 00709 M00S00709.ssval +++| 00710 M00S00710.ssval +++| XREF 00711 M00S00711.ssval +++| BEGIN 00712 M00S00712.ssval +++| PROC VLCFS; # CHAIN FRAGMENT SCAN # 00713 M00S00713.ssval +++| PROC VLSMSC; # *SM* MAP SCAN # 00714 M00S00714.ssval +++| PROC VLNCS; # NORMAL CHAIN SCAN # 00715 M00S00715.ssval +++| END 00716 M00S00716.ssval +++| 00717 M00S00717.ssval +++|# 00718 M00S00718.ssval +++|**** PROC VLASFM - XREF LIST END. 00719 M00S00719.ssval +++|# 00720 M00S00720.ssval +++| 00721 M00S00721.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 00722 M00S00722.ssval +++| 00723 M00S00723.ssval +++|*CALL COMBFAS 00724 M00S00724.ssval +++|*CALL COMTVLD 00725 M00S00725.ssval +++|*CALL COMTVLV 00726 M00S00726.ssval +++| 00727 M00S00727.ssval +++| 00728 M00S00728.ssval +++| 00729 M00S00729.ssval +++| 00730 M00S00730.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 00731 M00S00731.ssval +++| ITEM K I; # TEMPORARY VARIABLE # 00732 M00S00732.ssval +++| ITEM PT U; # PROBLEM TYPE # 00733 M00S00733.ssval +++| 00734 M00S00734.ssval +++| CONTROL EJECT; 00735 M00S00735.ssval +++| 00736 M00S00736.ssval +++|# 00737 M00S00737.ssval +++|* PERFORM NORMAL CHAIN SCAN. 00738 M00S00738.ssval +++|# 00739 M00S00739.ssval +++| 00740 M00S00740.ssval +++| VLNCS; 00741 M00S00741.ssval +++| 00742 M00S00742.ssval +++|# 00743 M00S00743.ssval +++|* PERFORM CHAIN FRAGMENT SCAN. 00744 M00S00744.ssval +++|# 00745 M00S00745.ssval +++| 00746 M00S00746.ssval +++| VLCFS; 00747 M00S00747.ssval +++| 00748 M00S00748.ssval +++|# 00749 M00S00749.ssval +++|* PERFORM SMMAP SCAN IF THE *AM* PARAMETER WAS SPECIFIED. 00750 M00S00750.ssval +++|# 00751 M00S00751.ssval +++| 00752 M00S00752.ssval +++| 00753 M00S00753.ssval +++|# 00754 M00S00754.ssval +++|* SCAN ALL *VT* ENTRIES TO UPDATE THE *VT* PROBLEM FIELD IN THE 00755 M00S00755.ssval +++|* ENTRY AND IN THE CORRESPONDING HEAD OF CHAIN ENTRY. THE PROBLEM 00756 M00S00756.ssval +++|* FIELD IS DEFINED TO BE THE LOGICAL SUM OF ALL THE PROBLEM TYPES 00757 M00S00757.ssval +++|* FOR ALL THE VALIDATION ERRORS DETECTED FOR THAT ENTRY. PROBLEM 00758 M00S00758.ssval +++|* TYPES FOR EACH VALIDATION ERROR ARE DEFINED IN THE *VTPTYPES* 00759 M00S00759.ssval +++|* ARRAY IN COMTVLV. 00760 M00S00760.ssval +++|# 00761 M00S00761.ssval +++| 00762 M00S00762.ssval +++| SLOWFOR I = VTFIRST STEP 1 UNTIL VTLAST 00763 M00S00763.ssval +++| DO 00764 M00S00764.ssval +++| BEGIN # SCAN OF *VT* ENTRIES # 00765 M00S00765.ssval +++| VTEN$WORD[0] = VT$ITEM[I]; # GET *VT* ENTRY # 00766 M00S00766.ssval +++| 00767 M00S00767.ssval +++|# 00768 M00S00768.ssval +++|* SCAN THE ERROR FLAGS IN THE *VT* ENTRY (BITS *VPS* THRU *VPX*). 00769 M00S00769.ssval +++|* ADD THE PROBLEM TYPE FOR EVERY ACTIVE ERROR FLAG TO THE LOGICAL 00770 M00S00770.ssval +++|* SUM. 00771 M00S00771.ssval +++|# 00772 M00S00772.ssval +++| 00773 M00S00773.ssval +++| PT = 0; 00774 M00S00774.ssval +++| SLOWFOR K = VPS STEP 1 UNTIL VPX 00775 M00S00775.ssval +++| DO 00776 M00S00776.ssval +++| BEGIN 00777 M00S00777.ssval +++| IF B<K,1>VTEN$WORD[0] EQ 1 00778 M00S00778.ssval +++| THEN 00779 M00S00779.ssval +++| BEGIN 00780 M00S00780.ssval +++| PT = PT LOR VTP$TYP[K]; # OR LOGICAL SUM TOGETHER # 00781 M00S00781.ssval +++| END 00782 M00S00782.ssval +++| 00783 M00S00783.ssval +++| END 00784 M00S00784.ssval +++| 00785 M00S00785.ssval +++|# 00786 M00S00786.ssval +++|* LOGICALLY ADD THE COMPUTED PROBLEM TYPES TO THE PROBLEM FIELD IN 00787 M00S00787.ssval +++|* IN THE *VT* ENTRY. 00788 M00S00788.ssval +++|# 00789 M00S00789.ssval +++| 00790 M00S00790.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR PT; 00791 M00S00791.ssval +++| VT$ITEM[I] = VTEN$WORD[0]; # STORE *VT* ENTRY # 00792 M00S00792.ssval +++| 00793 M00S00793.ssval +++|# 00794 M00S00794.ssval +++|* UPDATE *HOC* ENTRY PROBLEM FIELD ( LOGICAL SUM OF MEMBERS ). 00795 M00S00795.ssval +++|# 00796 M00S00796.ssval +++| 00797 M00S00797.ssval +++| VTEN$WORD[0] = VT$ITEM[VTEN$POINT[0]]; # GET *HOC* ENTRY # 00798 M00S00798.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR PT; # ADD VALUE OF MEMBER # 00799 M00S00799.ssval +++| VT$ITEM[VTEN$POINT[0]] = VTEN$WORD[0]; # UPDATE *HOC* ENTRY # 00800 M00S00800.ssval +++| END # SCAN OF *VT* ENTRIES # 00801 M00S00801.ssval +++| 00802 M00S00802.ssval +++| END # VLASFM # 00803 M00S00803.ssval +++| 00804 M00S00804.ssval +++| TERM 00805 M00S00805.ssval +++|PROC VLAPFC(GROUP); 00806 M00S00806.ssval +++|# TITLE VLAPFC - ANALYZE THE *PFC* CATALOG. # 00807 M00S00807.ssval +++| 00808 M00S00808.ssval +++| 00809 M00S00809.ssval +++| BEGIN # VLAPFC # 00810 M00S00810.ssval +++| 00811 M00S00811.ssval +++|# 00812 M00S00812.ssval +++|** VLAPFC - ANALYZE THE *PFC* CATALOG DATA. 00813 M00S00813.ssval +++|* 00814 M00S00814.ssval +++|* *VLAPFC* READ THE *PFC* EXTRACT FILE FOR THE SUBFAMILY 00815 M00S00815.ssval +++|* AND VALIDATES EACH *PFC* ENTRY FOR THE SELECTED *SM*. 00816 M00S00816.ssval +++|* 00817 M00S00817.ssval +++|* PROC VLAPFC 00818 M00S00818.ssval +++|* 00819 M00S00819.ssval +++|* ENTRY (SMINDX) - *SM* NUMBER. 00820 M00S00820.ssval +++|* (PRM$ENTRC) - COUNT OF *FCT* ENTRIES IN PREAMBLE. 00821 M00S00821.ssval +++|* (SBINDX) - SUBFAMILY NUMBER. 00822 M00S00822.ssval +++|* (ARRAY VTTABLE) - VALIDATION TABLE ENTRIES. 00823 M00S00823.ssval +++|* 00824 M00S00824.ssval +++|* EXIT FOR DETECTED ERRORS - 00825 M00S00825.ssval +++|* . SET *VT* ENTRY ERROR FLAGS AND UPDATE THE 00826 M00S00826.ssval +++|* *VTEN$PROB* FIELD. 00827 M00S00827.ssval +++|* . A PROBLEM FILE RECORD IS WRITTEN (RECORD TYPE 00828 M00S00828.ssval +++|* REC"ASA" OR REC"OTHR"). 00829 M00S00829.ssval +++|* 00830 M00S00830.ssval +++|* MESSAGES * SSVAL ABNORMAL, VLAPFC.*. 00831 M00S00831.ssval +++|* 00832 M00S00832.ssval +++|* NOTES *VLAPFC* WILL DETECT THE FOLLOWING ERRORS - 00833 M00S00833.ssval +++|* . ILLEGAL *ASA* IN THE *PFC* (NO SFM CATALOG ENTRY 00834 M00S00834.ssval +++|* FOR THE *ASA* IN THE *VT*). 00835 M00S00835.ssval +++|* . MULTIPLE OWNERS. 00836 M00S00836.ssval +++|* . NOT HEAD OF CHAIN. 00837 M00S00837.ssval +++|* . DATA ERROR FLAG ON IN THE *PFC*. 00838 M00S00838.ssval +++|* . *PFC* POINTS TO A CHAIN WITH PROBLEMS. 00839 M00S00839.ssval +++|* 00840 M00S00840.ssval +++|* IF THE MULTIPLE OWNERS COUNTER IS NOT ZERO, *VLAPFC2* 00841 M00S00841.ssval +++|* IS CALLED TO FIND THE FIRST OWNER. 00842 M00S00842.ssval +++|# 00843 M00S00843.ssval +++| 00844 M00S00844.ssval +++|# 00845 M00S00845.ssval +++|**** PROC VLAPFC - XREF LIST BEGIN. 00846 M00S00846.ssval +++|# 00847 M00S00847.ssval +++| 00848 M00S00848.ssval +++| XREF 00849 M00S00849.ssval +++| BEGIN 00850 M00S00850.ssval +++| PROC MESSAGE; # MESSAGE TO DAYFILE # 00851 M00S00851.ssval +++| PROC VLWFIX; # WRITE FIXIT FILE RECORD # 00852 M00S00852.ssval +++| PROC READ; # INTERFACE TO *READ* MACRO # 00853 M00S00853.ssval +++| PROC READW; # INTERFACE TO *READW* MACRO # 00854 M00S00854.ssval +++| PROC REWIND; # INTERFACE TO *REWIND* MACRO # 00855 M00S00855.ssval +++| PROC VLAPFC2; # ANALYZE *PFC* PASS 2 # 00856 M00S00856.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 00857 M00S00857.ssval +++| PROC VLWPROB; # WRITE PROBLEM FILE RECORD # 00858 M00S00858.ssval +++| FUNC XCOD C(10); # BINARY TO DISPLAY # 00859 M00S00859.ssval +++| PROC ZSETFET; # INITIALIZES A *FET* FOR *I/O* # 00860 M00S00860.ssval +++| END 00861 M00S00861.ssval +++| 00862 M00S00862.ssval +++|# 00863 M00S00863.ssval +++|**** PROC VLAPFC - XREF LIST END. 00864 M00S00864.ssval +++|# 00865 M00S00865.ssval +++| 00866 M00S00866.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 00867 M00S00867.ssval +++|*CALL COMBFAS 00868 M00S00868.ssval +++|*CALL COMBCMD 00869 M00S00869.ssval +++|*CALL COMBMCT 00870 M00S00870.ssval +++|*CALL COMTVLD 00871 M00S00871.ssval +++|*CALL COMTVLF 00872 M00S00872.ssval +++|*CALL COMTVLV 00873 M00S00873.ssval +++| 00874 M00S00874.ssval +++| 00875 M00S00875.ssval +++| ITEM GROUP I; # GROUP BEING PROCESSED # 00876 M00S00876.ssval +++| ITEM GMO I; # GLOBAL MULTIPLE OWNERS # 00877 M00S00877.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 00878 M00S00878.ssval +++| 00879 M00S00879.ssval +++| ARRAY BLDLFN [0:0] S(1); # BUILD *LFN* # 00880 M00S00880.ssval +++| BEGIN 00881 M00S00881.ssval +++| ITEM BLDNAME C(00,00,07) = [ EXTLFN ]; # NAME OF FILE # 00882 M00S00882.ssval +++| ITEM BLDLFNX U(00,36,06); # SUBFAMILY NUMBER # 00883 M00S00883.ssval +++| END 00884 M00S00884.ssval +++| 00885 M00S00885.ssval +++|# 00886 M00S00886.ssval +++|* THIS ARRAY FOR LINK MESSAGE. 00887 M00S00887.ssval +++|# 00888 M00S00888.ssval +++| 00889 M00S00889.ssval +++| ARRAY LINK [0:0] P(3); 00890 M00S00890.ssval +++| BEGIN # LINK MESSAGE # 00891 M00S00891.ssval +++| ITEM LINK$MG C(00,00,10) = [" UI = "]; 00892 M00S00892.ssval +++| ITEM LINK$NO C(01,00,10); 00893 M00S00893.ssval +++| ITEM LINK$Z U(02,00,60) = [0]; # ZERO BYTE # 00894 M00S00894.ssval +++| END 00895 M00S00895.ssval +++| 00896 M00S00896.ssval +++| 00897 M00S00897.ssval +++| CONTROL EJECT; 00898 M00S00898.ssval +++| 00899 M00S00899.ssval +++| P<PREAMBLE> = PRMBADR; 00900 M00S00900.ssval +++| 00901 M00S00901.ssval +++| GMO = 0; # INITIALIZE MULTIPLE OWNERS 00902 M00S00902.ssval +++| COUNTER # 00903 M00S00903.ssval +++| 00904 M00S00904.ssval +++|# 00905 M00S00905.ssval +++|* INITIALIZE THE *PFC* EXTRACT FILE FOR READING. 00906 M00S00906.ssval +++|# 00907 M00S00907.ssval +++| 00908 M00S00908.ssval +++| EXTFADR = LOC(EXTRACTFIL); # FET ADDRESS # 00909 M00S00909.ssval +++| EXTBADR = LOC(EXTRACBUF); # BUFFER ADDRESS # 00910 M00S00910.ssval +++| BLDLFNX = SBINDX + "0"; # APPEND SUBFAMILY TO *LFN* # 00911 M00S00911.ssval +++| ZSETFET(EXTFADR,BLDLFN,EXTBADR,LEXTBUF,SFETL); 00912 M00S00912.ssval +++| 00913 M00S00913.ssval +++| REWIND(EXTRACTFIL,RCL); 00914 M00S00914.ssval +++| READ(EXTRACTFIL,NRCL); 00915 M00S00915.ssval +++| 00916 M00S00916.ssval +++|# 00917 M00S00917.ssval +++|* PROCESS EACH RECORD IN THE *PFC* EXTRACT FILE FOR THE SUBFAMILY. 00918 M00S00918.ssval +++|# 00919 M00S00919.ssval +++| 00920 M00S00920.ssval +++| STAT = OK; 00921 M00S00921.ssval +++| REPEAT WHILE STAT EQ OK 00922 M00S00922.ssval +++| DO 00923 M00S00923.ssval +++| BEGIN # SCAN SUBFAMILY *PFC* ENTRIES # 00924 M00S00924.ssval +++| READW(EXTRACTFIL,EXTRECORD,RLEXTR,STAT); 00925 M00S00925.ssval +++| 00926 M00S00926.ssval +++| IF STAT NQ OK 00927 M00S00927.ssval +++| THEN # DETECTED EOR, EOF, EOI OR 00928 M00S00928.ssval +++| ERROR # 00929 M00S00929.ssval +++| BEGIN 00930 M00S00930.ssval +++| TEST DUMMY; # SKIP, NO RECORD READ # 00931 M00S00931.ssval +++| END 00932 M00S00932.ssval +++| 00933 M00S00933.ssval +++| 00934 M00S00934.ssval +++|# 00935 M00S00935.ssval +++|* SKIP THIS RECORD IF THE *SM* IN THE *PFC* IS NOT THE ONE BEING 00936 M00S00936.ssval +++|* PROCESSED. 00937 M00S00937.ssval +++|# 00938 M00S00938.ssval +++| 00939 M00S00939.ssval +++| IF EXTR$SM[0] NQ SMINDX 00940 M00S00940.ssval +++| THEN 00941 M00S00941.ssval +++| BEGIN 00942 M00S00942.ssval +++| TEST DUMMY; 00943 M00S00943.ssval +++| END 00944 M00S00944.ssval +++|# 00945 M00S00945.ssval +++|* SKIP THIS RECORD IF THE GROUP IN THE *PFC* IS NOT THE ONE 00946 M00S00946.ssval +++|* BEING PROCESSED. 00947 M00S00947.ssval +++|# 00948 M00S00948.ssval +++| 00949 M00S00949.ssval +++| IF EXTR$GP[0] NQ GROUP 00950 M00S00950.ssval +++| THEN 00951 M00S00951.ssval +++| BEGIN 00952 M00S00952.ssval +++| TEST DUMMY; 00953 M00S00953.ssval +++| END 00954 M00S00954.ssval +++| 00955 M00S00955.ssval +++| 00956 M00S00956.ssval +++|# 00957 M00S00957.ssval +++|* CHECK FOR VALID *ASA* IN THE *PFC*. 00958 M00S00958.ssval +++|# 00959 M00S00959.ssval +++| 00960 M00S00960.ssval +++| IF EXTR$GP[0] GR MAXGP 00961 M00S00961.ssval +++| OR EXTR$GPT[0] GR MAXGRT 00962 M00S00962.ssval +++| OR EXTR$AU[0] GR INAVOT 00963 M00S00963.ssval +++| THEN # *ASA* OUT OF RANGE # 00964 M00S00964.ssval +++| BEGIN 00965 M00S00965.ssval +++| VLWPROB(REC"ASA"); # BUILD PROBLEM ENTRY # 00966 M00S00966.ssval +++| TEST DUMMY; 00967 M00S00967.ssval +++| END 00968 M00S00968.ssval +++| 00969 M00S00969.ssval +++|# 00970 M00S00970.ssval +++|* DO NOT CHECK THE PFC AGAINST THE SFM CATALOG 00971 M00S00971.ssval +++|* IF THE CATALOG IS EMPTY. 00972 M00S00972.ssval +++|# 00973 M00S00973.ssval +++| 00974 M00S00974.ssval +++| IF VTLAST LS VTFIRST 00975 M00S00975.ssval +++| THEN 00976 M00S00976.ssval +++| BEGIN 00977 M00S00977.ssval +++| TEST DUMMY; 00978 M00S00978.ssval +++| END 00979 M00S00979.ssval +++| 00980 M00S00980.ssval +++|# 00981 M00S00981.ssval +++|* USING THE *ASA*, LOCATE AND EDIT THE *VT* ENTRY FOR THIS RECORD. 00982 M00S00982.ssval +++|# 00983 M00S00983.ssval +++| 00984 M00S00984.ssval +++| P<VTLINK> = LOC(VTPTR); # BUILD LINK TO *VT* ENTRY # 00985 M00S00985.ssval +++| VTL$GRT[0] = EXTR$GPT[0]; 00986 M00S00986.ssval +++| VTL$AU[0] = EXTR$AU[0]; 00987 M00S00987.ssval +++| IF (VTL$WORD[0] LS VTFIRST) OR (VTL$WORD[0] GR VTLAST) 00988 M00S00988.ssval +++| THEN # INVALID LINK # 00989 M00S00989.ssval +++| BEGIN 00990 M00S00990.ssval +++| LINK$NO = XCOD(EXTR$UI[0]); 00991 M00S00991.ssval +++| MESSAGE(LINK,SYSUDF1); 00992 M00S00992.ssval +++| MP$WD[1] = " VLAPFC INVALID LINK "; 00993 M00S00993.ssval +++| VLERROR(VE"SYSERR",ABRT); # ABORT WITH MESSAGE # 00994 M00S00994.ssval +++| END 00995 M00S00995.ssval +++| 00996 M00S00996.ssval +++| VTEN$WORD[0] = VT$ITEM[VTPTR]; # GET ENTRY # 00997 M00S00997.ssval +++| 00998 M00S00998.ssval +++|# 00999 M00S00999.ssval +++|* IF *VT* ENTRY IS ALREADY OWNED AND THE MULTIPLE OWNER FLAG 01000 M00S01000.ssval +++|* IS NOT SET, 1) SET IT, 2) UPDATE THE PROBLEM TYPE FIELD, 01001 M00S01001.ssval +++|* AND 3) INCREMENT THE MULTIPLE OWNERS COUNTER. THIS COUNTER 01002 M00S01002.ssval +++|* WILL BE USED IN VLAPFC2 TO LOCATE THE FIRST OWNER(S). 01003 M00S01003.ssval +++|# 01004 M00S01004.ssval +++| 01005 M00S01005.ssval +++| IF VTEN$OWN AND NOT VTEN$MULT 01006 M00S01006.ssval +++| THEN # MULTIPLE OWNER DETECTED # 01007 M00S01007.ssval +++| BEGIN 01008 M00S01008.ssval +++| VTEN$MULT = TRUE; # SET MULTIPLE OWNER FLAG # 01009 M00S01009.ssval +++| VTEN$PROB = VTEN$PROB LOR VTP$TYP[BMUL]; # SET PROBLEM 01010 M00S01010.ssval +++| TYPE # 01011 M00S01011.ssval +++| GMO = GMO + 1; # INCREMENT OWNERS # 01012 M00S01012.ssval +++| END 01013 M00S01013.ssval +++| 01014 M00S01014.ssval +++| VTEN$OWN = TRUE; # SET OWNER FLAG # 01015 M00S01015.ssval +++| 01016 M00S01016.ssval +++|# 01017 M00S01017.ssval +++|* IF THE DATA ERROR FLAG IS SET IN THE *PFC*, SET THE ERROR FLAG 01018 M00S01018.ssval +++|* IN THE *VT* AND UPDATE THE PROBLEM FIELD. 01019 M00S01019.ssval +++|# 01020 M00S01020.ssval +++| 01021 M00S01021.ssval +++| IF EXTR$DERR[0] 01022 M00S01022.ssval +++| THEN 01023 M00S01023.ssval +++| BEGIN 01024 M00S01024.ssval +++| VTEN$RERR[0] = TRUE; 01025 M00S01025.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR VTP$TYP[BRER];
Line S00001 Modification History | |
---|---|
M01 (Added by) | msea011 |
Seq # *Modification Id* Act ----------------------------+ 01026 M01S00001.msea011 +++| TPFCERRS = TPFCERRS + 1; 01027 M00S01026.ssval +++| END 01028 M00S01027.ssval +++| 01029 M00S01028.ssval +++|# 01030 M00S01029.ssval +++|* IF THE SYSTEM ERROR FLAG IS SET IN THE *PFC*, SET THE ERROR FLAG 01031 M00S01030.ssval +++|* IN THE *VT* AND UPDATE THE PROBLEM FIELD. 01032 M00S01031.ssval +++|# 01033 M00S01032.ssval +++| 01034 M00S01033.ssval +++| IF EXTR$SYS[0] 01035 M00S01034.ssval +++| THEN 01036 M00S01035.ssval +++| BEGIN 01037 M00S01036.ssval +++| VTEN$SYS[0] = TRUE; 01038 M00S01037.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR VTP$TYP[BSYS];
Line S00002 Modification History | |
---|---|
M01 (Added by) | msea011 |
Seq # *Modification Id* Act ----------------------------+ 01039 M01S00002.msea011 +++| TPFCERRS = TPFCERRS + 1; 01040 M00S01038.ssval +++| END 01041 M00S01039.ssval +++| 01042 M00S01040.ssval +++|# 01043 M00S01041.ssval +++|* IF THE *PFC* DOES NOT POINT TO THE HEAD OF CHAIN, SET THE ERROR 01044 M00S01042.ssval +++|* FLAG AND UPDATE THE PROBLEM TYPE FIELD. 01045 M00S01043.ssval +++|# 01046 M00S01044.ssval +++| 01047 M00S01045.ssval +++| IF NOT VTEN$HOC[0] 01048 M00S01046.ssval +++| THEN 01049 M00S01047.ssval +++| BEGIN 01050 M00S01048.ssval +++| VTEN$MSH[0] = TRUE; 01051 M00S01049.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR VTP$TYP[BMSH]; 01052 M00S01050.ssval +++| END 01053 M00S01051.ssval +++| 01054 M00S01052.ssval +++|# 01055 M00S01053.ssval +++|* IF THE FREE CARTRIDGE FLAG IS SET ON CARTRIDE THEN ADD 01056 M00S01054.ssval +++|* A RECORD TO THE FIXIT FILE. 01057 M00S01055.ssval +++|# 01058 M00S01056.ssval +++| 01059 M00S01057.ssval +++| IF VTEN$FCF[0] AND NOT EXTR$FF[0] 01060 M00S01058.ssval +++| THEN # BUILD FICIT FILE ENTRY # 01061 M00S01059.ssval +++| BEGIN 01062 M00S01060.ssval +++| VLWFIX(REC"FCF"); 01063 M00S01061.ssval +++| END 01064 M00S01062.ssval +++| 01065 M00S01063.ssval +++|# 01066 M00S01064.ssval +++|* IF THE *PFC* POINTS TO A CHAIN WITH PROBLEMS, ADD THIS 01067 M00S01065.ssval +++|* ENTRY TO THE PROBLEM FILE. 01068 M00S01066.ssval +++|# 01069 M00S01067.ssval +++| 01070 M00S01068.ssval +++| IF VTEN$PROB[0] NQ 0 01071 M00S01069.ssval +++| THEN 01072 M00S01070.ssval +++| BEGIN 01073 M00S01071.ssval +++| VLWPROB(REC"OTHR"); # BUILD PROBLEM ENTRY # 01074 M00S01072.ssval +++| END 01075 M00S01073.ssval +++| 01076 M00S01074.ssval +++| VT$ITEM[VTPTR] = VTEN$WORD[0]; # STORE THE *VT* ENTRY # 01077 M00S01075.ssval +++| 01078 M00S01076.ssval +++|# 01079 M00S01077.ssval +++|* IF THE *VT* ENTRY WAS NOT THE HEAD OF CHAIN, UPDATE THE *HOC*. 01080 M00S01078.ssval +++|# 01081 M00S01079.ssval +++| 01082 M00S01080.ssval +++| IF VTEN$POINT[0] NQ VTPTR 01083 M00S01081.ssval +++| THEN 01084 M00S01082.ssval +++| BEGIN # UPDATE *HOC* ENTRY # 01085 M00S01083.ssval +++| I = VTEN$PROB[0]; # SAVE PROBLEM OF MEMBER # 01086 M00S01084.ssval +++| VTEN$WORD[0] = VT$ITEM[VTEN$POINT[0]]; # GET *HOC* ENTRY # 01087 M00S01085.ssval +++| IF VTEN$OWN[0] 01088 M00S01086.ssval +++| THEN 01089 M00S01087.ssval +++| BEGIN 01090 M00S01088.ssval +++| VTEN$MULT[0] = TRUE; 01091 M00S01089.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR VTP$TYP[BMUL]; 01092 M00S01090.ssval +++| GMO = GMO + 1; 01093 M00S01091.ssval +++| END 01094 M00S01092.ssval +++| 01095 M00S01093.ssval +++| VTEN$OWN[0] = TRUE; 01096 M00S01094.ssval +++| VTEN$PROB[0] = VTEN$PROB[0] LOR I; # PROBLEM OF MEMBER # 01097 M00S01095.ssval +++| VT$ITEM[VTEN$POINT[0]] = VTEN$WORD[0]; 01098 M00S01096.ssval +++| END # UPDATE *HOC* ENTRY # 01099 M00S01097.ssval +++| 01100 M00S01098.ssval +++| END # SCAN SUBFAMILY *PFC* ENTRIES # 01101 M00S01099.ssval +++| 01102 M00S01100.ssval +++|# 01103 M00S01101.ssval +++|* IF AN UNEXPECTED *CIO* ERROR OCCURRED, ABORT. 01104 M00S01102.ssval +++|# 01105 M00S01103.ssval +++| 01106 M00S01104.ssval +++| IF STAT EQ CIOERR 01107 M00S01105.ssval +++| THEN 01108 M00S01106.ssval +++| BEGIN 01109 M00S01107.ssval +++| MP$WD[1] = "VLAPFC"; # NAME FOR MESSAGE # 01110 M00S01108.ssval +++| VLERROR(VE"SYSERR",ABRT); # ABORT WITH MESSAGE # 01111 M00S01109.ssval +++| END 01112 M00S01110.ssval +++| 01113 M00S01111.ssval +++|# 01114 M00S01112.ssval +++|* IF THERE ARE GLOBAL MULTIPLE OWNERS, PERFORM VLAPFC2 TO FIND 01115 M00S01113.ssval +++|* THE FIRST OWNER OF THE FILE. 01116 M00S01114.ssval +++|# 01117 M00S01115.ssval +++| 01118 M00S01116.ssval +++| IF GMO GR 0 01119 M00S01117.ssval +++| THEN 01120 M00S01118.ssval +++| BEGIN 01121 M00S01119.ssval +++| VLAPFC2(GMO,GROUP); 01122 M00S01120.ssval +++| END 01123 M00S01121.ssval +++| 01124 M00S01122.ssval +++| END # VLAPFC # 01125 M00S01123.ssval +++| 01126 M00S01124.ssval +++| TERM 01127 M00S01125.ssval +++|PROC VLAPFC2(CNT,GROUP); 01128 M00S01126.ssval +++|# TITLE VLAPFC2 - ANALYZE *PFC* PASS 2. # 01129 M00S01127.ssval +++| 01130 M00S01128.ssval +++| 01131 M00S01129.ssval +++| BEGIN # VLAPFC2 # 01132 M00S01130.ssval +++| 01133 M00S01131.ssval +++|# 01134 M00S01132.ssval +++|** VLAPFC2 - ANALYZE THE *PFC* PASS 2. 01135 M00S01133.ssval +++|* 01136 M00S01134.ssval +++|* *VLAPFC2* READS THE *PFC* EXTRACT FILE TO FIND THE FIRST OWNER 01137 M00S01135.ssval +++|* SINCE MULTIPLE OWNERS WERE FOUND IN *VLAPFC*. ALL OTHER 01138 M00S01136.ssval +++|* INTERSECTIONS WITH THIS PARTICULAR CHAIN ARE MARKED IN *VLAPFC*. 01139 M00S01137.ssval +++|* 01140 M00S01138.ssval +++|* PROC VLAPFC2(CNT) 01141 M00S01139.ssval +++|* 01142 M00S01140.ssval +++|* ENTRY (CNT) - COUNT OF MULTIPLE OWNERS. 01143 M00S01141.ssval +++|* (SMINDX) - *SM* NUMBER BEING PROCESSED. 01144 M00S01142.ssval +++|* ARRAY VTTABLE - VALIDATION TABLE ENTRIES. 01145 M00S01143.ssval +++|* ARRAY EXTRACTFIL - *PFC* EXTRACT FILE *FET*. 01146 M00S01144.ssval +++|* 01147 M00S01145.ssval +++|* EXIT FOR THE *PFC* ENTRY THAT IS THE "FIRST" OWNER - 01148 M00S01146.ssval +++|* . *VT* ENTRY *VTEN$1ST* FLAG IS SET. 01149 M00S01147.ssval +++|* . A PROBLEM FILE RECORD IS WRITTEN AS "OTHR" RECORD 01150 M00S01148.ssval +++|* TYPE. 01151 M00S01149.ssval +++|# 01152 M00S01150.ssval +++| 01153 M00S01151.ssval +++| ITEM GROUP I; # GROUP BEING PROCESSED # 01154 M00S01152.ssval +++| ITEM CNT I; # COUNT OF MULTIPLE *PFC* OWNERS # 01155 M00S01153.ssval +++| 01156 M00S01154.ssval +++|# 01157 M00S01155.ssval +++|**** PROC VLAPFC2 - XREF LIST BEGIN. 01158 M00S01156.ssval +++|# 01159 M00S01157.ssval +++| 01160 M00S01158.ssval +++| XREF 01161 M00S01159.ssval +++| BEGIN 01162 M00S01160.ssval +++| PROC READ; # INTERFACE TO *READ* MACRO # 01163 M00S01161.ssval +++| PROC READW; # INTERFACE TO *READW* MACRO # 01164 M00S01162.ssval +++| PROC REWIND; # INTERFACE TO *REWIND* MACRO # 01165 M00S01163.ssval +++| PROC VLWPROB; # WRITE PROBLEM FILE RECORD # 01166 M00S01164.ssval +++| END 01167 M00S01165.ssval +++| 01168 M00S01166.ssval +++|# 01169 M00S01167.ssval +++|**** PROC VLAPFC2 - XREF LIST END. 01170 M00S01168.ssval +++|# 01171 M00S01169.ssval +++| 01172 M00S01170.ssval +++| DEF LISTCON #0#; # TURN OFF LISTING # 01173 M00S01171.ssval +++| 01174 M00S01172.ssval +++|*CALL COMBFAS 01175 M00S01173.ssval +++|*CALL COMTVLD 01176 M00S01174.ssval +++|*CALL COMTVLF 01177 M00S01175.ssval +++|*CALL COMTVLV 01178 M00S01176.ssval +++| 01179 M00S01177.ssval +++| CONTROL EJECT; 01180 M00S01178.ssval +++| 01181 M00S01179.ssval +++|# 01182 M00S01180.ssval +++|* READ THE *PFC* EXTRACT FILE. 01183 M00S01181.ssval +++|# 01184 M00S01182.ssval +++| 01185 M00S01183.ssval +++| REWIND(EXTRACTFIL,RCL); 01186 M00S01184.ssval +++| READ(EXTRACTFIL,NRCL); 01187 M00S01185.ssval +++| 01188 M00S01186.ssval +++|# 01189 M00S01187.ssval +++|* READ THE EXTRACT FILE UNTIL, 1) THE FILE STATUS IS NOT OK, 01190 M00S01188.ssval +++|* OR 2) THERE ARE NO MORE MULTIPLE OWNERS. 01191 M00S01189.ssval +++|# 01192 M00S01190.ssval +++| 01193 M00S01191.ssval +++| STAT = 0; 01194 M00S01192.ssval +++| REPEAT WHILE STAT EQ OK AND (CNT GR 0) 01195 M00S01193.ssval +++| DO # PROCESS THE EXTRACT RECORD # 01196 M00S01194.ssval +++| BEGIN # READING EXTRACT FILE # 01197 M00S01195.ssval +++| READW(EXTRACTFIL,EXTRECORD,RLEXTR,STAT); # GET THE EXTRACT 01198 M00S01196.ssval +++| RECORD # 01199 M00S01197.ssval +++| IF STAT NQ OK 01200 M00S01198.ssval +++| THEN 01201 M00S01199.ssval +++| BEGIN 01202 M00S01200.ssval +++| TEST DUMMY; # DETECTED EOR, EOF, EOI OR ERROR 01203 M00S01201.ssval +++| # 01204 M00S01202.ssval +++| END 01205 M00S01203.ssval +++| 01206 M00S01204.ssval +++| 01207 M00S01205.ssval +++|# 01208 M00S01206.ssval +++|* PROCESS ONLY THE RECORDS FOR THE GIVEN SM. 01209 M00S01207.ssval +++|# 01210 M00S01208.ssval +++| 01211 M00S01209.ssval +++| IF EXTR$SM[0] NQ SMINDX 01212 M00S01210.ssval +++| THEN # NOT SELECTED # 01213 M00S01211.ssval +++| BEGIN 01214 M00S01212.ssval +++| TEST DUMMY; 01215 M00S01213.ssval +++| END 01216 M00S01214.ssval +++| 01217 M00S01215.ssval +++| IF EXTR$GP[0] NQ GROUP 01218 M00S01216.ssval +++| THEN 01219 M00S01217.ssval +++| BEGIN 01220 M00S01218.ssval +++| TEST DUMMY; 01221 M00S01219.ssval +++| END 01222 M00S01220.ssval +++| 01223 M00S01221.ssval +++|# 01224 M00S01222.ssval +++|* USING THE *ASA* IN THE EXTRACT RECORD, DEVELOP THE INDEX TO 01225 M00S01223.ssval +++|* THE *VT* ARRAY FOR THIS RECORD. 01226 M00S01224.ssval +++|# 01227 M00S01225.ssval +++| 01228 M00S01226.ssval +++| P<VTLINK> = LOC(VTPTR); # BUILD LINK TO *VT* ENTRY # 01229 M00S01227.ssval +++| VTL$GRT[0] = EXTR$GPT[0]; 01230 M00S01228.ssval +++| VTL$AU[0] = EXTR$AU[0]; 01231 M00S01229.ssval +++| 01232 M00S01230.ssval +++| IF (VTL$WORD[0] LS VTFIRST) OR (VTL$WORD[0] GR VTLAST) 01233 M00S01231.ssval +++| THEN 01234 M00S01232.ssval +++| BEGIN 01235 M00S01233.ssval +++| TEST DUMMY; # SKIP IF THE INDEX IS BAD # 01236 M00S01234.ssval +++| END 01237 M00S01235.ssval +++| 01238 M00S01236.ssval +++|# 01239 M00S01237.ssval +++|* GET THE *VT* ENTRY FOR THIS *PFC* EXTRACT RECORD. 01240 M00S01238.ssval +++|# 01241 M00S01239.ssval +++| 01242 M00S01240.ssval +++| VTEN$WORD[0] = VT$ITEM[VTPTR]; # GET *VT* ENTRY # 01243 M00S01241.ssval +++| 01244 M00S01242.ssval +++|# 01245 M00S01243.ssval +++|* DETERMINE IF THIS IS THE 1ST OWNER OF MULTIPLY-OWNED FILE. 01246 M00S01244.ssval +++|# 01247 M00S01245.ssval +++| 01248 M00S01246.ssval +++| IF VTEN$MULT[0] AND (NOT VTEN$1ST[0]) 01249 M00S01247.ssval +++| THEN 01250 M00S01248.ssval +++| BEGIN 01251 M00S01249.ssval +++| VTEN$1ST[0] = TRUE; 01252 M00S01250.ssval +++| VT$ITEM[VTPTR] = VTEN$WORD[0]; # UPDATE ENTRY # 01253 M00S01251.ssval +++| VLWPROB(REC"OTHR"); # BUILD PROBLEM ENTRY # 01254 M00S01252.ssval +++| CNT = CNT - 1; 01255 M00S01253.ssval +++| END 01256 M00S01254.ssval +++| 01257 M00S01255.ssval +++| END # READING EXTRACT FILE # 01258 M00S01256.ssval +++| 01259 M00S01257.ssval +++| END # VLAPFC2 # 01260 M00S01258.ssval +++| 01261 M00S01259.ssval +++| TERM 01262 M00S01260.ssval +++|PROC VLBFILL(FLD,NWDS); 01263 M00S01261.ssval +++|# TITLE VLBFILL - BLANK FILL. # 01264 M00S01262.ssval +++| 01265 M00S01263.ssval +++| BEGIN # VLBFILL # 01266 M00S01264.ssval +++| 01267 M00S01265.ssval +++|# 01268 M00S01266.ssval +++|** VLBFILL - BLANK FILL. 01269 M00S01267.ssval +++|* 01270 M00S01268.ssval +++|* *VLBFILL* CHANGES ALL BINARY ZERO CHARACTERS STARTING IN *FLD* 01271 M00S01269.ssval +++|* TO DISPLAY CODE BLANKS FOR A LENGTH OF *NWDS*. 01272 M00S01270.ssval +++|* 01273 M00S01271.ssval +++|* PROC VLBFILL 01274 M00S01272.ssval +++|* 01275 M00S01273.ssval +++|* ENTRY (FLD) - THE FIELD TO SCAN. 01276 M00S01274.ssval +++|* (WDS) - NUMBER OF WORDS TO SCAN. 01277 M00S01275.ssval +++|* 01278 M00S01276.ssval +++|* EXIT (FLD) - CONTAINS THE BLANK FILLED FIELD. 01279 M00S01277.ssval +++|# 01280 M00S01278.ssval +++| 01281 M00S01279.ssval +++| ITEM FLD I; # FIELD TO SCAN # 01282 M00S01280.ssval +++| ITEM NWDS I; # NUMBER OF WORDS TO SCAN # 01283 M00S01281.ssval +++| 01284 M00S01282.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 01285 M00S01283.ssval +++| 01286 M00S01284.ssval +++|*CALL COMBFAS 01287 M00S01285.ssval +++| 01288 M00S01286.ssval +++| ITEM CHARINDX I; # INDEX FOR CHARACTERS SCANNED # 01289 M00S01287.ssval +++| ITEM NCHAR I; # NUMBER OF CHARACTERS TO SCAN # 01290 M00S01288.ssval +++| 01291 M00S01289.ssval +++| BASED 01292 M00S01290.ssval +++| ARRAY SCAN [0:0] S(200); # TO SCAN FIELD # 01293 M00S01291.ssval +++| ITEM SCAN$WD C(00,00,200); 01294 M00S01292.ssval +++| 01295 M00S01293.ssval +++| CONTROL EJECT; 01296 M00S01294.ssval +++| 01297 M00S01295.ssval +++|# 01298 M00S01296.ssval +++|* LOOK FOR A BINARY ZERO CHARACTER IN THE SPECIFIED FIELD AND 01299 M00S01297.ssval +++|* CHANGE IT TO A BLANK. 01300 M00S01298.ssval +++|# 01301 M00S01299.ssval +++| 01302 M00S01300.ssval +++| 01303 M00S01301.ssval +++| P<SCAN> = LOC(FLD); 01304 M00S01302.ssval +++| 01305 M00S01303.ssval +++| NCHAR = NWDS * 10; # NUMBER OF CHARACTERS TO SCAN # 01306 M00S01304.ssval +++| SLOWFOR CHARINDX = 0 STEP 1 UNTIL NCHAR - 1 01307 M00S01305.ssval +++| DO 01308 M00S01306.ssval +++| BEGIN # CHARINDX # 01309 M00S01307.ssval +++| IF C<CHARINDX,1>SCAN$WD[0] EQ 00 01310 M00S01308.ssval +++| THEN # FOUND A BINARY ZERO # 01311 M00S01309.ssval +++| BEGIN 01312 M00S01310.ssval +++| C<CHARINDX,1>SCAN$WD[0] = " "; # REPLACE WITH A BLANK # 01313 M00S01311.ssval +++| END 01314 M00S01312.ssval +++| 01315 M00S01313.ssval +++| END # CHARINDX # 01316 M00S01314.ssval +++| 01317 M00S01315.ssval +++| END # VLBFILL # 01318 M00S01316.ssval +++| 01319 M00S01317.ssval +++| TERM 01320 M00S01318.ssval +++|PROC VLBICT(E1,E2); 01321 M00S01319.ssval +++|# TITLE VLBICT - INTERSECTING CHAIN REPORT. # 01322 M00S01320.ssval +++| 01323 M00S01321.ssval +++|# 01324 M00S01322.ssval +++|*** 01325 M00S01323.ssval +++|# 01326 M00S01324.ssval +++| 01327 M00S01325.ssval +++| BEGIN # VLBICT # 01328 M00S01326.ssval +++| 01329 M00S01327.ssval +++|# 01330 M00S01328.ssval +++|** VLBICT - INTERSECTING CHAIN REPORT. 01331 M00S01329.ssval +++|* 01332 M00S01330.ssval +++|* *VLBICT* ISSUES THE INTERSECTING CHAIN DETAIL LINE TO THE 01333 M00S01331.ssval +++|* REPORT FILE AND ALSO ISSUES THE SUBCATALOG HEADING LINE 01334 M00S01332.ssval +++|* WHEN CALLED THE FIRST TIME FOR THE SUBCATALOG. 01335 M00S01333.ssval +++|* 01336 M00S01334.ssval +++|* PROC VLBICT(E1,E2) 01337 M00S01335.ssval +++|* 01338 M00S01336.ssval +++|* ENTRY (E1) - *VT* ENTRY INDEX (*FCT* ORDINAL, AU) 01339 M00S01337.ssval +++|* FOR ENTRY 1. 01340 M00S01338.ssval +++|* (E2) - *VT* ENTRY INDEX (*FCT* ORDINAL, AU) 01341 M00S01339.ssval +++|* FOR ENTRY 2. 01342 M00S01340.ssval +++|* (RPTFADR) - ADDRESS OF THE REPORT FILE *FET*. 01343 M00S01341.ssval +++|* (SCDTLH) - SUBCATALOG DETAIL HEADING FLAG. 01344 M00S01342.ssval +++|* 01345 M00S01343.ssval +++|* EXIT INTERSECTING CHAIN DETAIL LINE WRITTEN TO THE REPORT 01346 M00S01344.ssval +++|* FILE. 01347 M00S01345.ssval +++|* (SCRPTED) - SUBCATALOG REPORTED FLAG. 01348 M00S01346.ssval +++|* (SCDTLH) - SUBCATALOG DETAIL HEADING FLAG. 01349 M00S01347.ssval +++|* 01350 M00S01348.ssval +++|* NOTES TO FORCE LEADING ZEROS ON THE *FCT* NUMBER AND 01351 M00S01349.ssval +++|* THE AU NUMBER THE *ZFD* VALUE IS ADDED BEFORE 01352 M00S01350.ssval +++|* CONVERSION. 01353 M00S01351.ssval +++|* 01354 M00S01352.ssval +++|# 01355 M00S01353.ssval +++| 01356 M00S01354.ssval +++| ITEM E1 I; # CHAIN ENTRY 1 # 01357 M00S01355.ssval +++| ITEM E2 I; # CHAIN ENTRY 2 # 01358 M00S01356.ssval +++| 01359 M00S01357.ssval +++|# 01360 M00S01358.ssval +++|**** PROC VLBICT - XREF LIST BEGIN. 01361 M00S01359.ssval +++|# 01362 M00S01360.ssval +++| 01363 M00S01361.ssval +++| XREF 01364 M00S01362.ssval +++| BEGIN 01365 M00S01363.ssval +++| PROC RPLINE; # CALLS *RPLINEX* TO PRINT A 01366 M00S01364.ssval +++| LINE # 01367 M00S01365.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 01368 M00S01366.ssval +++| FUNC VLNTC C(10); # NUMERIC TO CHARACTER 01369 M00S01367.ssval +++| CONVERSION # 01370 M00S01368.ssval +++| PROC VLSUBHD; # ISSUE REPORT SUBHEADING # 01371 M00S01369.ssval +++| END 01372 M00S01370.ssval +++| 01373 M00S01371.ssval +++|# 01374 M00S01372.ssval +++|**** PROC VLBICT - XREF LIST END. 01375 M00S01373.ssval +++|# 01376 M00S01374.ssval +++| 01377 M00S01375.ssval +++| 01378 M00S01376.ssval +++| 01379 M00S01377.ssval +++| DEF LISTCON #0#; # TURN OFF LISTING # 01380 M00S01378.ssval +++| 01381 M00S01379.ssval +++|*CALL COMBFAS 01382 M00S01380.ssval +++|*CALL COMTVLD 01383 M00S01381.ssval +++|*CALL COMTVLF 01384 M00S01382.ssval +++|*CALL COMTVLV 01385 M00S01383.ssval +++| 01386 M00S01384.ssval +++|# 01387 M00S01385.ssval +++|* INTERSECTING CHAIN DETAIL LINE FOR THE REPORT FILE. 01388 M00S01386.ssval +++|# 01389 M00S01387.ssval +++| 01390 M00S01388.ssval +++| ARRAY ICLINE [0:0] S(3); # INTERSECTING CHAIN REPORT LINE 01391 M00S01389.ssval +++| # 01392 M00S01390.ssval +++| BEGIN 01393 M00S01391.ssval +++| ITEM ICL$DEF C(00,00,30) = ["000-0000 000-0000"]; 01394 M00S01392.ssval +++| ITEM ICL$FCT1 C(00,00,03); # *FCT* OF ENTRY ONE # 01395 M00S01393.ssval +++| ITEM ICL$AU1 C(00,24,04); # *AU* OF ENTRY ONE # 01396 M00S01394.ssval +++| ITEM ICL$FCT2 C(01,30,03); # *FCT* OF ENTRY TWO # 01397 M00S01395.ssval +++| ITEM ICL$AU2 C(01,54,04); # *AU* OF ENTRY TWO # 01398 M00S01396.ssval +++| END 01399 M00S01397.ssval +++| 01400 M00S01398.ssval +++| CONTROL EJECT; 01401 M00S01399.ssval +++| 01402 M00S01400.ssval +++|# 01403 M00S01401.ssval +++|* IF THE DETAIL HEADING HAS NOT BEEN PRINTED, PRINT IT. 01404 M00S01402.ssval +++|# 01405 M00S01403.ssval +++| 01406 M00S01404.ssval +++| 01407 M00S01405.ssval +++| IF NOT SCDTLH 01408 M00S01406.ssval +++| THEN 01409 M00S01407.ssval +++| BEGIN 01410 M00S01408.ssval +++| VLSUBHD(SHTYP"ICT"); # PRINT DETAIL HEADING # 01411 M00S01409.ssval +++| SCRPTED = TRUE; # SUBCATALOG REPORTED FLAG # 01412 M00S01410.ssval +++| SCDTLH = TRUE; # SET SUBCATALOG DETAIL HEADING 01413 M00S01411.ssval +++| FLAG # 01414 M00S01412.ssval +++| END 01415 M00S01413.ssval +++| 01416 M00S01414.ssval +++|# 01417 M00S01415.ssval +++|* FORMAT AND PRINT THE INTERSECTING REPORT LINE. 01418 M00S01416.ssval +++|# 01419 M00S01417.ssval +++| 01420 M00S01418.ssval +++| P<VTLINK> = LOC(E1); # *VT* LINK FOR ENTRY 1 # 01421 M00S01419.ssval +++| ICL$FCT1[0] = VLNTC(GROUPX*16+VTL$GRT[0] 01422 M00S01420.ssval +++| +ZFD,"XCDD",3); 01423 M00S01421.ssval +++| ICL$AU1[0] = VLNTC(VTL$AU[0] # GET AU # 01424 M00S01422.ssval +++| +ZFD,"XCDD",4); 01425 M00S01423.ssval +++| P<VTLINK> = LOC(E2); # *VT* LINK FOR ENTRY 2 # 01426 M00S01424.ssval +++| ICL$FCT2[0] = VLNTC(GROUPX*16+VTL$GRT[0] 01427 M00S01425.ssval +++| +ZFD,"XCDD",3); 01428 M00S01426.ssval +++| ICL$AU2[0] = VLNTC(VTL$AU[0] # GET AU # 01429 M00S01427.ssval +++| +ZFD,"XCDD",4); 01430 M00S01428.ssval +++| 01431 M00S01429.ssval +++| RPLINE(RPTFADR,ICLINE,24,30,EOPL); # ISSUE LINE TO REPORT # 01432 M00S01430.ssval +++| 01433 M00S01431.ssval +++| 01434 M00S01432.ssval +++| RETURN; 01435 M00S01433.ssval +++| END # VLBICT # 01436 M00S01434.ssval +++| 01437 M00S01435.ssval +++| TERM 01438 M00S01436.ssval +++|PROC VLBLDVT(GROUP); 01439 M00S01437.ssval +++| 01440 M00S01438.ssval +++|# TITLE VLBLDVT - BUILD VALIDATION TABLE. # 01441 M00S01439.ssval +++| 01442 M00S01440.ssval +++| BEGIN # VLBLDVT # 01443 M00S01441.ssval +++| 01444 M00S01442.ssval +++|# 01445 M00S01443.ssval +++|** VLBLDVT - BUILD THE VALIDATION TABLE. 01446 M00S01444.ssval +++|* 01447 M00S01445.ssval +++|* *VLBLDVT* READS THE *FCT* IN THE SELECTED SUBCATALOG (SM) 01448 M00S01446.ssval +++|* OF THE SFM CATALOG BEING PROCESSED AND BUILDS A *VT* 01449 M00S01447.ssval +++|* TABLE ENTRY FOR EACH AU OF EACH *FCT* ENTRY. 01450 M00S01448.ssval +++|* 01451 M00S01449.ssval +++|* PROC VLBLDVT 01452 M00S01450.ssval +++|* 01453 M00S01451.ssval +++|* ENTRY (SMINDX) - *SM* INDEX CURRENTLY PROCESSING. 01454 M00S01452.ssval +++|* (PAR$AM) - AM PARAMETER FROM CONTROL CARD. 01455 M00S01453.ssval +++|* (PAR$FM) - FM PARAMETER FROM CONTROL CARD. 01456 M00S01454.ssval +++|* (SBINDX) - SUBFAMILY CURRENTLY PROCESSING. 01457 M00S01455.ssval +++|* P<VTTABLE> - START OF *VT* TABLE IN MEMORY. 01458 M00S01456.ssval +++|* (GROUP) - GROUP THAT WILL BE PROCESSED. 01459 M00S01457.ssval +++|* 01460 M00S01458.ssval +++|* EXIT (VTFIRST) - INDEX OF FIRST ENTRY IN THE TABLE. 01461 M00S01459.ssval +++|* (VTLAST) - INDEX OF LAST ENTRY IN THE TABLE. 01462 M00S01460.ssval +++|* (ARRAY VTTABLE) - CONTAINS ENTRIES FOR EACH AU IN 01463 M00S01461.ssval +++|* THE SUBCATALOG. 01464 M00S01462.ssval +++|* 01465 M00S01463.ssval +++|* MESSAGES *SFM CATALOG READ ERROR.* 01466 M00S01464.ssval +++|* 01467 M00S01465.ssval +++|* NOTES IF THE AM PARAMETER WAS SELECTED, THE *VLCMAP* 01468 M00S01466.ssval +++|* ROUTINE IS CALLED TO CHECK THE SMMAP ENTRY FOR EACH 01469 M00S01467.ssval +++|* *FCT* READ. 01470 M00S01468.ssval +++|* 01471 M00S01469.ssval +++|* THESE *VT* ENTRY FIELDS ARE SET DEPENDING ON THE 01472 M00S01470.ssval +++|* *FCT* ENTRY - 01473 M00S01471.ssval +++|* . VTEN$NONE - NO CARTRIDGE ( *VSN* = BLANKS ). 01474 M00S01472.ssval +++|* . VTEN$SM - SMMAP ENTRY ERROR. 01475 M00S01473.ssval +++|* . VTEN$INHB - INHIBIT FLAG SET. 01476 M00S01474.ssval +++|* . VTEN$LOST - LOST CARTRIDGE FLAG SET. 01477 M00S01475.ssval +++|* . VTEN$EWPE - EXCESSIVE WRITE PARITY ERRORS. 01478 M00S01476.ssval +++|* . VTEN$CONF - AU CONFLICT FLAG SET. 01479 M00S01477.ssval +++|* . VTEN$FROZ - FROZEN FLAG SET. 01480 M00S01478.ssval +++|* . VTEN$SOF - START OF FRAGMENT SET. 01481 M00S01479.ssval +++|* . VTEN$ALOC - AU ALLOCATED. 01482 M00S01480.ssval +++|* . VTEN$HOC - AU IS HEAD OF CHAIN. 01483 M00S01481.ssval +++|* . VTEN$EOC - AU IS END OF CHAIN. 01484 M00S01482.ssval +++|* . VTEN$LINK - INDEX TO NEXT AU IN CHAIN. 01485 M00S01483.ssval +++|* 01486 M00S01484.ssval +++|# 01487 M00S01485.ssval +++| 01488 M00S01486.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTINGS # 01489 M00S01487.ssval +++| 01490 M00S01488.ssval +++|# 01491 M00S01489.ssval +++|**** PROC VLBLDVT - XREF LIST BEGIN. 01492 M00S01490.ssval +++|# 01493 M00S01491.ssval +++| 01494 M00S01492.ssval +++| XREF 01495 M00S01493.ssval +++| BEGIN 01496 M00S01494.ssval +++| PROC CGETFCT; # GET AN *FCT* ENTRY # 01497 M00S01495.ssval +++| PROC VLCMAP; # *SM* MAP LOOKUP # 01498 M00S01496.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 01499 M00S01497.ssval +++| END 01500 M00S01498.ssval +++| 01501 M00S01499.ssval +++|# 01502 M00S01500.ssval +++|**** PROC VLBLDVT - XREF LIST END. 01503 M00S01501.ssval +++|# 01504 M00S01502.ssval +++| 01505 M00S01503.ssval +++| 01506 M00S01504.ssval +++| 01507 M00S01505.ssval +++| 01508 M00S01506.ssval +++|*CALL COMBFAS 01509 M00S01507.ssval +++|*CALL COMBCMD 01510 M00S01508.ssval +++|*CALL COMBCMS 01511 M00S01509.ssval +++|*CALL COMBMAP 01512 M00S01510.ssval +++|*CALL COMBMCT 01513 M00S01511.ssval +++|*CALL COMTVLD 01514 M00S01512.ssval +++|*CALL COMTVLM 01515 M00S01513.ssval +++|*CALL COMTVLV 01516 M00S01514.ssval +++| 01517 M00S01515.ssval +++| ITEM EOCS B; # SAVE END OF CHAIN BIT # 01518 M00S01516.ssval +++| ITEM GROUP U; # GROUP TO BE PROCESSED # 01519 M00S01517.ssval +++| ITEM LINKHS I; # SAVE LINK POINTER HEADER # 01520 M00S01518.ssval +++| ITEM NEXT I; # INDEX TO *FCT* ORD TABLE # 01521 M00S01519.ssval +++| ITEM SMERR B; # FLAG RESULTS OF VLCMAP PROCESS # 01522 M00S01520.ssval +++| ITEM SW U; # AU WORD OFFSET # 01523 M00S01521.ssval +++| ITEM SP U; # AU POSITION IN WORD # 01524 M00S01522.ssval +++| ITEM START I; # START OF PROCESSING # 01525 M00S01523.ssval +++| ITEM TERMX I; # TERMINATION ORDINAL # 01526 M00S01524.ssval +++| ITEM ITEMP I; # TEMPORARY # 01527 M00S01525.ssval +++| ITEM I I; # INDUCTION VARIABLE # 01528 M00S01526.ssval +++| ITEM VPOINT U; # VOLUME HEAD POINTER # 01529 M00S01527.ssval +++| 01530 M00S01528.ssval +++| CONTROL EJECT; 01531 M00S01529.ssval +++| 01532 M00S01530.ssval +++|# 01533 M00S01531.ssval +++|* INITIALIZE *VT* POINTERS. 01534 M00S01532.ssval +++|# 01535 M00S01533.ssval +++| 01536 M00S01534.ssval +++| P<VTLINK> = LOC(VTFIRST); # BUILD STARTING LINK ADDRESS # 01537 M00S01535.ssval +++| VTL$GRT[0] = 0; 01538 M00S01536.ssval +++| VTL$AU[0] = 1; 01539 M00S01537.ssval +++| VTPTR = VTL$WORD[0] - 1; # INITIALIZE ENTRY POINTER # 01540 M00S01538.ssval +++| GRTX = -1; 01541 M00S01539.ssval +++| EOCS = FALSE; 01542 M00S01540.ssval +++| 01543 M00S01541.ssval +++|# 01544 M00S01542.ssval +++|* PROCESS FOR EACH *FCT* RECORD. 01545 M00S01543.ssval +++|# 01546 M00S01544.ssval +++| 01547 M00S01545.ssval +++| START = GROUP * 16; 01548 M00S01546.ssval +++| TERMX = START + 15; 01549 M00S01547.ssval +++| SLOWFOR FCTORD = START STEP 1 01550 M00S01548.ssval +++| WHILE FCTORD LQ TERMX 01551 M00S01549.ssval +++| AND FCTORD LQ (PRM$ENTRC[SMINDX] + 15) 01552 M00S01550.ssval +++| DO 01553 M00S01551.ssval +++| BEGIN # *FCT* PROCESSING # 01554 M00S01552.ssval +++| GRTX = GRTX + 1; 01555 M00S01553.ssval +++| 01556 M00S01554.ssval +++|# 01557 M00S01555.ssval +++|* READ THE *FCT* RECORD. 01558 M00S01556.ssval +++|# 01559 M00S01557.ssval +++| 01560 M00S01558.ssval +++| STAT = 0; 01561 M00S01559.ssval +++| FB$CWRD[0] = 0; 01562 M00S01560.ssval +++| CGETFCT(PAR$FM,SBINDX,SMINDX,FCTORD,LOC(VLFCTAREA),0,STAT); 01563 M00S01561.ssval +++| IF STAT NQ CMASTAT"NOERR" 01564 M00S01562.ssval +++| THEN 01565 M00S01563.ssval +++| BEGIN 01566 M00S01564.ssval +++| VLERROR(VE"CATR",ABRT); # ABORT WITH MESSAGE # 01567 M00S01565.ssval +++| END 01568 M00S01566.ssval +++| 01569 M00S01567.ssval +++| P<FCT> = LOC(VLFCTAREA); 01570 M00S01568.ssval +++| SMERR = FALSE; # INITIALIZE TO NO *SM* ERROR # 01571 M00S01569.ssval +++| 01572 M00S01570.ssval +++|# 01573 M00S01571.ssval +++|* IF THE *AM* OPTION WAS SELECTED, PERFORM A SMMAP CHECK. 01574 M00S01572.ssval +++|# 01575 M00S01573.ssval +++| 01576 M00S01574.ssval +++| IF PAR$AM NQ 0 01577 M00S01575.ssval +++| THEN 01578 M00S01576.ssval +++| BEGIN 01579 M00S01577.ssval +++| VLCMAP(SMERR); 01580 M00S01578.ssval +++| END 01581 M00S01579.ssval +++| 01582 M00S01580.ssval +++|# 01583 M00S01581.ssval +++|* PROCESS FOR EACH AU OF THE *FCT* RECORD. 01584 M00S01582.ssval +++|# 01585 M00S01583.ssval +++| 01586 M00S01584.ssval +++| SLOWFOR AUINDX = 1 STEP 1 UNTIL INAVOT 01587 M00S01585.ssval +++| DO 01588 M00S01586.ssval +++| BEGIN # AU PROCESSING # 01589 M00S01587.ssval +++| 01590 M00S01588.ssval +++|# 01591 M00S01589.ssval +++|* CALCULATE AU WORD AND OFFSET INTO *FCT* AREA. 01592 M00S01590.ssval +++|# 01593 M00S01591.ssval +++| 01594 M00S01592.ssval +++| SW = FCT$WD(AUINDX); 01595 M00S01593.ssval +++| SP = FCT$WP(AUINDX); 01596 M00S01594.ssval +++| 01597 M00S01595.ssval +++| IF FCT$CAUF(SW,SP) EQ 0 01598 M00S01596.ssval +++| THEN # SAVE POINTER AT VOLUME START # 01599 M00S01597.ssval +++| BEGIN 01600 M00S01598.ssval +++| VPOINT = FCT$LINK(SW,SP); 01601 M00S01599.ssval +++| END 01602 M00S01600.ssval +++| 01603 M00S01601.ssval +++|# 01604 M00S01602.ssval +++|* BUILD *VT* ENTRY FOR THE AU. 01605 M00S01603.ssval +++|# 01606 M00S01604.ssval +++| 01607 M00S01605.ssval +++| VTEN$WORD[0] = 0; 01608 M00S01606.ssval +++| IF FCT$CSND[0] EQ " " 01609 M00S01607.ssval +++| OR FCT$1ST[0] EQ 0 01610 M00S01608.ssval +++| THEN 01611 M00S01609.ssval +++| 01612 M00S01610.ssval +++|# 01613 M00S01611.ssval +++|* BUILD *VT* ENTRY WHEN NO CARTRIDGE. 01614 M00S01612.ssval +++|# 01615 M00S01613.ssval +++| 01616 M00S01614.ssval +++| BEGIN 01617 M00S01615.ssval +++| VTEN$NONE[0] = TRUE; 01618 M00S01616.ssval +++| EOCS = FALSE; 01619 M00S01617.ssval +++| VPOINT = 0; 01620 M00S01618.ssval +++| END 01621 M00S01619.ssval +++| 01622 M00S01620.ssval +++| ELSE 01623 M00S01621.ssval +++| 01624 M00S01622.ssval +++|# 01625 M00S01623.ssval +++|* BUILD *VT* ENTRY WHEN CARTRIDGE EXISTS. 01626 M00S01624.ssval +++|# 01627 M00S01625.ssval +++| 01628 M00S01626.ssval +++| BEGIN # CARTRIDGE EXISTS # 01629 M00S01627.ssval +++| VTEN$SME[0] = SMERR; 01630 M00S01628.ssval +++| VTEN$INHB[0] = FCT$IAF[0]; 01631 M00S01629.ssval +++| VTEN$LOST[0] = FCT$LCF[0]; 01632 M00S01630.ssval +++| VTEN$EWPE[0] = FCT$EEF[0]; 01633 M00S01631.ssval +++| VTEN$CONR[0] = FCT$AUCF(SW,SP); 01634 M00S01632.ssval +++| VTEN$FROZR[0] = FCT$FRCF(SW,SP); 01635 M00S01633.ssval +++| VTEN$SOFR[0] = FCT$SFF(SW,SP); 01636 M00S01634.ssval +++| VTEN$ALOCR[0] = FCT$FBF(SW,SP); 01637 M00S01635.ssval +++| VTEN$FCF[0] = FCT$FCF[0]; 01638 M00S01636.ssval +++| 01639 M00S01637.ssval +++|# 01640 M00S01638.ssval +++|* PROCESS AN ALLOCATED HEAD OF VOLUME *AU*. 01641 M00S01639.ssval +++|# 01642 M00S01640.ssval +++| 01643 M00S01641.ssval +++| IF VTEN$ALOC[0] AND FCT$CAUF(SW,SP) EQ 0 01644 M00S01642.ssval +++| THEN 01645 M00S01643.ssval +++| BEGIN # AU ALLOCATED # 01646 M00S01644.ssval +++| ITEMP = FCT$CC(SW,SP); 01647 M00S01645.ssval +++| IF ITEMP EQ CHAINCON"FIRST" 01648 M00S01646.ssval +++| THEN 01649 M00S01647.ssval +++| BEGIN 01650 M00S01648.ssval +++| VTEN$HOC[0] = TRUE; # HEAD OF CHAIN # 01651 M00S01649.ssval +++| END 01652 M00S01650.ssval +++| 01653 M00S01651.ssval +++| IF ITEMP EQ CHAINCON"LAST" 01654 M00S01652.ssval +++| THEN 01655 M00S01653.ssval +++| BEGIN 01656 M00S01654.ssval +++| EOCS = TRUE; 01657 M00S01655.ssval +++| END 01658 M00S01656.ssval +++| 01659 M00S01657.ssval +++| IF ITEMP EQ CHAINCON"ONLY" 01660 M00S01658.ssval +++| THEN 01661 M00S01659.ssval +++| BEGIN 01662 M00S01660.ssval +++| VTEN$HOC[0] = TRUE; # SET BOTH HEAD AND # 01663 M00S01661.ssval +++| EOCS = TRUE; 01664 M00S01662.ssval +++| END 01665 M00S01663.ssval +++| 01666 M00S01664.ssval +++|# 01667 M00S01665.ssval +++|* IF NOT THE END OF THE CHAIN, SET LINK TO NEXT IN CHAIN. 01668 M00S01666.ssval +++|# 01669 M00S01667.ssval +++| 01670 M00S01668.ssval +++| IF NOT EOCS 01671 M00S01669.ssval +++| THEN 01672 M00S01670.ssval +++| BEGIN # LINK TO THE NEXT AU # 01673 M00S01671.ssval +++| ITEMP = FCT$CLKOCL(SW,SP); 01674 M00S01672.ssval +++| LINKHS = GRTX; 01675 M00S01673.ssval +++| IF ITEMP NQ 0 01676 M00S01674.ssval +++| THEN 01677 M00S01675.ssval +++| BEGIN 01678 M00S01676.ssval +++| VTEN$OCL[0] = ITEMP; 01679 M00S01677.ssval +++| LINKHS = FCT$OCL[0]; 01680 M00S01678.ssval +++| IF ITEMP EQ 2 01681 M00S01679.ssval +++| THEN 01682 M00S01680.ssval +++| BEGIN 01683 M00S01681.ssval +++| LINKHS = FCT$OCL1[0]; 01684 M00S01682.ssval +++| END 01685 M00S01683.ssval +++| 01686 M00S01684.ssval +++| ELSE 01687 M00S01685.ssval +++| BEGIN 01688 M00S01686.ssval +++| IF ITEMP EQ 3 01689 M00S01687.ssval +++| THEN 01690 M00S01688.ssval +++| BEGIN 01691 M00S01689.ssval +++| LINKHS = FCT$OCL2[0]; 01692 M00S01690.ssval +++| END 01693 M00S01691.ssval +++| 01694 M00S01692.ssval +++| END 01695 M00S01693.ssval +++| 01696 M00S01694.ssval +++| END 01697 M00S01695.ssval +++| 01698 M00S01696.ssval +++| END # LINK TO THE NEXT AU # 01699 M00S01697.ssval +++| 01700 M00S01698.ssval +++| END # AU ALLOCATED # 01701 M00S01699.ssval +++| 01702 M00S01700.ssval +++| IF VTEN$ALOC[0] AND FCT$LEN(SW,SP) NQ 0 01703 M00S01701.ssval +++| THEN # *AU*-S REMAIN IN VOLUME # 01704 M00S01702.ssval +++| BEGIN 01705 M00S01703.ssval +++| VTEN$LINKL[0] = AUINDX + 1; 01706 M00S01704.ssval +++| VTEN$LINKH[0] = GRTX; 01707 M00S01705.ssval +++| END 01708 M00S01706.ssval +++| 01709 M00S01707.ssval +++| IF VTEN$ALOC[0] AND FCT$LEN(SW,SP) EQ 0 01710 M00S01708.ssval +++| THEN 01711 M00S01709.ssval +++| BEGIN 01712 M00S01710.ssval +++| VTEN$LINKL[0] = VPOINT; 01713 M00S01711.ssval +++| VTEN$LINKH[0] = GRTX; 01714 M00S01712.ssval +++| VTEN$EOC[0] = EOCS; 01715 M00S01713.ssval +++| IF EOCS 01716 M00S01714.ssval +++| THEN 01717 M00S01715.ssval +++| BEGIN 01718 M00S01716.ssval +++| VTEN$LINKH[0] = 0; 01719 M00S01717.ssval +++| END 01720 M00S01718.ssval +++| 01721 M00S01719.ssval +++| IF NOT EOCS 01722 M00S01720.ssval +++| THEN 01723 M00S01721.ssval +++| BEGIN 01724 M00S01722.ssval +++| VTEN$LINKH[0] = LINKHS; 01725 M00S01723.ssval +++| END 01726 M00S01724.ssval +++| 01727 M00S01725.ssval +++| EOCS = FALSE; 01728 M00S01726.ssval +++| END 01729 M00S01727.ssval +++| 01730 M00S01728.ssval +++| END # CARTRIDGE EXISTS # 01731 M00S01729.ssval +++| 01732 M00S01730.ssval +++|# 01733 M00S01731.ssval +++|* PUT *VT* ENTRY INTO TABLE IN MEMORY. 01734 M00S01732.ssval +++|# 01735 M00S01733.ssval +++| 01736 M00S01734.ssval +++| VTPTR = VTPTR + 1; # ADDRESS FOR NEXT ENTRY # 01737 M00S01735.ssval +++| 01738 M00S01736.ssval +++| VT$ITEM[VTPTR] = VTEN$WORD[0]; # PUT ENTRY IN TABLE # 01739 M00S01737.ssval +++| 01740 M00S01738.ssval +++| END # AU PROCESSING # 01741 M00S01739.ssval +++| 01742 M00S01740.ssval +++| VTPTR = VTPTR + 2048 - INAVOT; 01743 M00S01741.ssval +++| END # *FCT* PROCESSING # 01744 M00S01742.ssval +++| 01745 M00S01743.ssval +++|# 01746 M00S01744.ssval +++|* MARK END OF ENTRIES IN *VT* TABLE. 01747 M00S01745.ssval +++|# 01748 M00S01746.ssval +++| 01749 M00S01747.ssval +++| VTLAST = VTPTR; # SAVE END OF *VT* TABLE # 01750 M00S01748.ssval +++| 01751 M00S01749.ssval +++| RETURN; 01752 M00S01750.ssval +++| 01753 M00S01751.ssval +++| END # VLBLDVT # 01754 M00S01752.ssval +++| 01755 M00S01753.ssval +++| TERM 01756 M00S01754.ssval +++|PROC VLCFS; 01757 M00S01755.ssval +++|# TITLE VLCFS - CHAIN FRAGMENT SCAN. # 01758 M00S01756.ssval +++| 01759 M00S01757.ssval +++| 01760 M00S01758.ssval +++| BEGIN # VLCFS # 01761 M00S01759.ssval +++| 01762 M00S01760.ssval +++|# 01763 M00S01761.ssval +++|** VLCFS - CHAIN FRAGMENT SCAN. 01764 M00S01762.ssval +++|* 01765 M00S01763.ssval +++|* *VLCFS* SCANS ALL ENTRIES IN THE *VT* TABLE TO DETECT CHAIN 01766 M00S01764.ssval +++|* FRAGMENTS. CHAIN FRAGMENTS ARE *VT* ENTRIES THAT ARE ALLOCATED 01767 M00S01765.ssval +++|* BUT ARE NOT MARKED AS MEMBERS OF NORMAL CHAINS (SEE *VLNCS*). 01768 M00S01766.ssval +++|* 01769 M00S01767.ssval +++|* PROC VLCFS 01770 M00S01768.ssval +++|* 01771 M00S01769.ssval +++|* ENTRY (VTFIRST) - INDEX TO FIRST ENTRY IN *VT*. 01772 M00S01770.ssval +++|* (VTLAST) - INDEX TO LAST ENTRY IN *VT*. 01773 M00S01771.ssval +++|* ARRAY VTTABLE - VALIDATION TABLE ENTRIES. 01774 M00S01772.ssval +++|* 01775 M00S01773.ssval +++|* EXIT THE FOLLOWING FIELDS IN THE *VT* ENTRIES MAY BE 01776 M00S01774.ssval +++|* UPDATED IF FRAGMENTS ARE DETECTED. 01777 M00S01775.ssval +++|* . VTEN$POINT - INDEX TO HEAD OF CHAIN. 01778 M00S01776.ssval +++|* . VTEN$SOF - START OF FRAGMENT FLAG SET. 01779 M00S01777.ssval +++|* . VTEN$ILL - SET IF CHAIN IS ILL-FORMED. 01780 M00S01778.ssval +++|* . VTEN$INTC - SET IF CHAIN IS INTERSECTING. 01781 M00S01779.ssval +++|* 01782 M00S01780.ssval +++|* THE INTERSECTING CHAIN DETAIL LINES ARE ISSUED 01783 M00S01781.ssval +++|* TO THE REPORT FILE IF INTERSECTIONS ARE DETECTED. 01784 M00S01782.ssval +++|* 01785 M00S01783.ssval +++|* NOTES AN ENTRY IS MARKED AS BEING ON A CHAIN BY 01786 M00S01784.ssval +++|* SETTING THE VTEN$POINT FIELD EQUAL TO *HOC* INDEX. 01787 M00S01785.ssval +++|* 01788 M00S01786.ssval +++|* THE CHAIN IS FOLLOWED UNTIL - 01789 M00S01787.ssval +++|* . AN END-OF-CHAIN ENTRY IS DETECTED. 01790 M00S01788.ssval +++|* . AN ILL-FORMED CHAIN IS DETECTED. 01791 M00S01789.ssval +++|* . AN INTERSECTING CHAIN IS DETECTED. 01792 M00S01790.ssval +++|* 01793 M00S01791.ssval +++|* AN ILL-FORMED CHAIN HAS AN ENTRY THAT LINKS TO ANOTHER 01794 M00S01792.ssval +++|* ENTRY ALREADY ON THE CHAIN OR LINKS TO AN ENTRY 01795 M00S01793.ssval +++|* THAT IS NOT ALLOCATED OR HAS A LINK THAT IS NOT ZERO 01796 M00S01794.ssval +++|* WHEN THE *EOC* IS SET. 01797 M00S01795.ssval +++|* 01798 M00S01796.ssval +++|* AN INTERSECTING CHAIN IS ONE WHOSE ENTRY LINKS TO AN 01799 M00S01797.ssval +++|* ENTRY ALREADY ON A DIFFERENT CHAIN. 01800 M00S01798.ssval +++|* 01801 M00S01799.ssval +++|* IF A FRAGMENT CHAIN RUNS INTO ANOTHER FRAGMENT CHAIN, 01802 M00S01800.ssval +++|* THE SECOND FRAGMENT IS CONSIDERED A TAIL OF THE 01803 M00S01801.ssval +++|* FIRST. IT IS FOLLOWED AND RE-MARKED SO THAT ITS 01804 M00S01802.ssval +++|* POINTER FIELD *VTEN$POINT* CONTAINS THE INDEX OF THE 01805 M00S01803.ssval +++|* FIRST START OF FRAGMENT ENTRY. 01806 M00S01804.ssval +++|* 01807 M00S01805.ssval +++|# 01808 M00S01806.ssval +++| 01809 M00S01807.ssval +++|# 01810 M00S01808.ssval +++|**** PROC VLCFS - XREF LIST BEGIN. 01811 M00S01809.ssval +++|# 01812 M00S01810.ssval +++| 01813 M00S01811.ssval +++| XREF 01814 M00S01812.ssval +++| BEGIN 01815 M00S01813.ssval +++| PROC VLBICT; # INTERSECTING CHAIN REPORT # 01816 M00S01814.ssval +++| END 01817 M00S01815.ssval +++| 01818 M00S01816.ssval +++|# 01819 M00S01817.ssval +++|**** PROC VLCFS - XREF LIST END. 01820 M00S01818.ssval +++|# 01821 M00S01819.ssval +++| 01822 M00S01820.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 01823 M00S01821.ssval +++| 01824 M00S01822.ssval +++|*CALL COMBFAS 01825 M00S01823.ssval +++|*CALL COMTVLD 01826 M00S01824.ssval +++|*CALL COMTVLV 01827 M00S01825.ssval +++| 01828 M00S01826.ssval +++| 01829 M00S01827.ssval +++| STATUS CHAIN # CHAIN STATUS # 01830 M00S01828.ssval +++| OK, # GOOD CHAIN # 01831 M00S01829.ssval +++| ILL, # ILL-FORMED CHAIN # 01832 M00S01830.ssval +++| INTC; # INTERSECTING CHAIN # 01833 M00S01831.ssval +++| 01834 M00S01832.ssval +++| ITEM ENDCHAIN B; # END OF CHAIN FLAG # 01835 M00S01833.ssval +++| ITEM HOCSTAT S : CHAIN; # CHAIN STATUS # 01836 M00S01834.ssval +++| ITEM I I; # TEMPORARY VARIABLE # 01837 M00S01835.ssval +++| ITEM TAIL B; # TAIL FLAG # 01838 M00S01836.ssval +++| ITEM TAILPTR I; # *VT* INDEX OF A TAIL # 01839 M00S01837.ssval +++| 01840 M00S01838.ssval +++| CONTROL EJECT; 01841 M00S01839.ssval +++| 01842 M00S01840.ssval +++|# 01843 M00S01841.ssval +++|* SCAN *VT* FOR ALLOCATED ENTRIES NOT ON CHAINS. THIS VALIDATION 01844 M00S01842.ssval +++|* STEP IS TO IDENTIFY PROBLEMS WITH AU-S THAT ARE NOT ON VALID 01845 M00S01843.ssval +++|* CHAINS. 01846 M00S01844.ssval +++|# 01847 M00S01845.ssval +++| 01848 M00S01846.ssval +++| SLOWFOR I = VTFIRST STEP 1 UNTIL VTLAST 01849 M00S01847.ssval +++| DO 01850 M00S01848.ssval +++| BEGIN # *VT* ENTRY # 01851 M00S01849.ssval +++| VTEN$WORD[0] = VT$ITEM[I]; # GET *VT* ENTRY # 01852 M00S01850.ssval +++| 01853 M00S01851.ssval +++|# 01854 M00S01852.ssval +++|* FIND AN ALLOCATED AU THAT IS NOT ON A CHAIN. 01855 M00S01853.ssval +++|* IT IS DEFINED AS A FRAGMENT CHAIN. IF THE ENTRY IS ALREADY 01856 M00S01854.ssval +++|* ASSIGNED TO A CHAIN, THE VTEN$POINT IS SET. 01857 M00S01855.ssval +++|# 01858 M00S01856.ssval +++| 01859 M00S01857.ssval +++| IF NOT VTEN$ALOC[0] OR VTEN$POINT[0] NQ 0 01860 M00S01858.ssval +++| THEN 01861 M00S01859.ssval +++| BEGIN 01862 M00S01860.ssval +++| TEST I; # SKIP, NOT A FRAGMENT # 01863 M00S01861.ssval +++| END 01864 M00S01862.ssval +++| 01865 M00S01863.ssval +++| 01866 M00S01864.ssval +++| VTEN$SOF[0] = TRUE; # SET START OF FRAGMENT FLAG # 01867 M00S01865.ssval +++| 01868 M00S01866.ssval +++|# 01869 M00S01867.ssval +++|* INITIALIZE FIELDS USED TO FOLLOW THE FRAGMENT CHAIN. 01870 M00S01868.ssval +++|* THE VARIABLE I = INDEX OF FRAGMENT *HOC*. 01871 M00S01869.ssval +++|# 01872 M00S01870.ssval +++| 01873 M00S01871.ssval +++| VTPTR = I; # START AT THIS *HOC* # 01874 M00S01872.ssval +++| ENDCHAIN = FALSE; 01875 M00S01873.ssval +++| HOCSTAT = S"OK"; 01876 M00S01874.ssval +++| TAIL = FALSE; 01877 M00S01875.ssval +++| TAILPTR = 0; 01878 M00S01876.ssval +++| 01879 M00S01877.ssval +++|# 01880 M00S01878.ssval +++|* PROCESS EACH ENTRY IN FRAGMENT STARTING WITH *HOC* ENTRY. 01881 M00S01879.ssval +++|# 01882 M00S01880.ssval +++| 01883 M00S01881.ssval +++| REPEAT WHILE NOT ENDCHAIN 01884 M00S01882.ssval +++| DO # SCAN FRAGMENT CHAIN # 01885 M00S01883.ssval +++| BEGIN # FRAGMENT PROCESSING # 01886 M00S01884.ssval +++| 01887 M00S01885.ssval +++| IF (VTEN$POINT[0] EQ 0) OR (VTEN$POINT[0] EQ TAILPTR) 01888 M00S01886.ssval +++| THEN 01889 M00S01887.ssval +++| 01890 M00S01888.ssval +++|# 01891 M00S01889.ssval +++|* ENTRY BELONGS TO THIS CHAIN (EITHER A NEW ENTRY OR A TAIL ENTRY). 01892 M00S01890.ssval +++|# 01893 M00S01891.ssval +++| 01894 M00S01892.ssval +++| BEGIN # ADD ENTRY TO THE FRAGMENT CHAIN # 01895 M00S01893.ssval +++| VTEN$POINT[0] = I; 01896 M00S01894.ssval +++| IF NOT VTEN$ALOC[0] 01897 M00S01895.ssval +++| THEN 01898 M00S01896.ssval +++| BEGIN 01899 M00S01897.ssval +++| VTEN$SOF[0] = TRUE; 01900 M00S01898.ssval +++| END 01901 M00S01899.ssval +++| 01902 M00S01900.ssval +++| IF NOT VTEN$ALOC[0] OR VTEN$EOC[0] AND VTEN$LINK[0] NQ 0 01903 M00S01901.ssval +++| THEN 01904 M00S01902.ssval +++| BEGIN 01905 M00S01903.ssval +++| HOCSTAT = S"ILL"; # ILL-FORMED CHAIN # 01906 M00S01904.ssval +++| END 01907 M00S01905.ssval +++| 01908 M00S01906.ssval +++| END # ADD ENTRY TO THE FRAGMENT CHAIN # 01909 M00S01907.ssval +++| 01910 M00S01908.ssval +++| ELSE 01911 M00S01909.ssval +++| 01912 M00S01910.ssval +++|# 01913 M00S01911.ssval +++|* ENTRY ALREADY ON SOME OTHER CHAIN. 01914 M00S01912.ssval +++|# 01915 M00S01913.ssval +++| 01916 M00S01914.ssval +++| BEGIN # ENTRY ON A CHAIN # 01917 M00S01915.ssval +++| IF VTEN$SOF[0] AND (VTPTR NQ I) # NOT LOOPING # 01918 M00S01916.ssval +++| AND VTEN$ALOC[0] AND VTPTR EQ VTEN$POINT[0] 01919 M00S01917.ssval +++| THEN 01920 M00S01918.ssval +++| 01921 M00S01919.ssval +++|# 01922 M00S01920.ssval +++|* THE OTHER CHAIN IS A TAIL. THE CHAIN BEING FOLLOWED POINTS TO 01923 M00S01921.ssval +++|* THE BEGINNING OF A FRAGMENT CHAIN. MAKE THE TWO CHAINS INTO ONE 01924 M00S01922.ssval +++|* FRAGMENT CHAIN BY FOLLOWING THIS TAIL AND UPDATING THE 01925 M00S01923.ssval +++|* VTEN$POINT. 01926 M00S01924.ssval +++|# 01927 M00S01925.ssval +++| 01928 M00S01926.ssval +++| BEGIN # START TAIL # 01929 M00S01927.ssval +++| TAIL = TRUE; 01930 M00S01928.ssval +++| VTEN$SOF[0] = FALSE; 01931 M00S01929.ssval +++| VTEN$INTC[0] = FALSE; 01932 M00S01930.ssval +++| VTEN$ILL[0] = FALSE; 01933 M00S01931.ssval +++| TAILPTR = VTEN$POINT[0]; # MARK THIS ONE, MARK REST IN 01934 M00S01932.ssval +++| MAIN LOOP # 01935 M00S01933.ssval +++| VTEN$POINT[0] = I; 01936 M00S01934.ssval +++| END # START TAIL # 01937 M00S01935.ssval +++| 01938 M00S01936.ssval +++| ELSE 01939 M00S01937.ssval +++| 01940 M00S01938.ssval +++|# 01941 M00S01939.ssval +++|* CHAIN INTERSECTS OR IS ILL-FORMED. 01942 M00S01940.ssval +++|# 01943 M00S01941.ssval +++| 01944 M00S01942.ssval +++| BEGIN # PROBLEM CHAIN # 01945 M00S01943.ssval +++| VTEN$INTS[0] = TRUE; 01946 M00S01944.ssval +++| IF VTEN$POINT[0] EQ I 01947 M00S01945.ssval +++| THEN # THE CHAIN IS ILL-FORMED # 01948 M00S01946.ssval +++| BEGIN 01949 M00S01947.ssval +++| HOCSTAT = S"ILL"; 01950 M00S01948.ssval +++| VTEN$LOOP[0] = TRUE; 01951 M00S01949.ssval +++| END 01952 M00S01950.ssval +++| 01953 M00S01951.ssval +++| ELSE # THE CHAIN INTERSECTS # 01954 M00S01952.ssval +++| BEGIN 01955 M00S01953.ssval +++| HOCSTAT = S"INTC"; 01956 M00S01954.ssval +++| VLBICT(I,VTEN$POINT[0]); # REPORT CHAINS # 01957 M00S01955.ssval +++| END 01958 M00S01956.ssval +++| 01959 M00S01957.ssval +++| END # PROBLEM CHAIN # 01960 M00S01958.ssval +++| 01961 M00S01959.ssval +++| END # ENTRY ON A CHAIN # 01962 M00S01960.ssval +++| 01963 M00S01961.ssval +++| 01964 M00S01962.ssval +++| 01965 M00S01963.ssval +++|# 01966 M00S01964.ssval +++|* UPDATE THE AU ENTRY. 01967 M00S01965.ssval +++|# 01968 M00S01966.ssval +++| 01969 M00S01967.ssval +++| VT$ITEM[VTPTR] = VTEN$WORD[0]; # UPDATE ENTRY # 01970 M00S01968.ssval +++| 01971 M00S01969.ssval +++|# 01972 M00S01970.ssval +++|* AN END OF CHAIN CONDITION IS SET HERE IF: 01973 M00S01971.ssval +++|* 1) *EOC* FLAG IS SET, OR 01974 M00S01972.ssval +++|* 2) A LINKAGE PROBLEM HAS BEEN DETECTED. 01975 M00S01973.ssval +++|# 01976 M00S01974.ssval +++| 01977 M00S01975.ssval +++| ENDCHAIN = VTEN$EOC[0] OR HOCSTAT NQ S"OK"; # BAD CHAIN # 01978 M00S01976.ssval +++| 01979 M00S01977.ssval +++|# 01980 M00S01978.ssval +++|* GET LINK TO NEXT AU IF NOT AT END OF CHAIN. 01981 M00S01979.ssval +++|# 01982 M00S01980.ssval +++| 01983 M00S01981.ssval +++| IF NOT ENDCHAIN 01984 M00S01982.ssval +++| THEN 01985 M00S01983.ssval +++| BEGIN # GET NEXT LINK # 01986 M00S01984.ssval +++| VTPTR = VTEN$LINK[0]; 01987 M00S01985.ssval +++| 01988 M00S01986.ssval +++| IF VTPTR LS VTFIRST OR VTPTR GR VTLAST 01989 M00S01987.ssval +++| THEN # LINK IS BAD # 01990 M00S01988.ssval +++| BEGIN 01991 M00S01989.ssval +++| HOCSTAT = S"ILL"; # ILL-FORMED CHAIN # 01992 M00S01990.ssval +++| ENDCHAIN = TRUE; 01993 M00S01991.ssval +++| END 01994 M00S01992.ssval +++| 01995 M00S01993.ssval +++| END # GET NEXT LINK # 01996 M00S01994.ssval +++| 01997 M00S01995.ssval +++|# 01998 M00S01996.ssval +++|* GET NEXT AU IN CHAIN. 01999 M00S01997.ssval +++|# 02000 M00S01998.ssval +++| 02001 M00S01999.ssval +++| IF NOT ENDCHAIN 02002 M00S02000.ssval +++| THEN 02003 M00S02001.ssval +++| BEGIN 02004 M00S02002.ssval +++| VTEN$WORD[0] = VT$ITEM[VTPTR]; # NEXT IN CHAIN # 02005 M00S02003.ssval +++| END 02006 M00S02004.ssval +++| 02007 M00S02005.ssval +++| END # FRAGMENT PROCESSING # 02008 M00S02006.ssval +++| 02009 M00S02007.ssval +++|# 02010 M00S02008.ssval +++|* UPDATE OTHER HEAD OF CHAIN IF INTERSECTING. 02011 M00S02009.ssval +++|# 02012 M00S02010.ssval +++| 02013 M00S02011.ssval +++| IF HOCSTAT EQ S"INTC" 02014 M00S02012.ssval +++| THEN 02015 M00S02013.ssval +++| BEGIN 02016 M00S02014.ssval +++| VTEN$WORD[0] = VT$ITEM[VTEN$POINT[0]]; # GET *HOC* ENTRY # 02017 M00S02015.ssval +++| VTEN$INTC[0] = TRUE; # SET INTERSECTING FLAG # 02018 M00S02016.ssval +++| VT$ITEM[VTEN$POINT[0]] = VTEN$WORD[0]; # STORE *HOC* ENTRY # 02019 M00S02017.ssval +++| END 02020 M00S02018.ssval +++| 02021 M00S02019.ssval +++|# 02022 M00S02020.ssval +++|* UPDATE HEAD OF CHAIN ENTRY. 02023 M00S02021.ssval +++|# 02024 M00S02022.ssval +++| 02025 M00S02023.ssval +++| VTEN$WORD[0] = VT$ITEM[I]; # GET *HOC* ENTRY # 02026 M00S02024.ssval +++| IF HOCSTAT EQ S"ILL" 02027 M00S02025.ssval +++| THEN 02028 M00S02026.ssval +++| BEGIN 02029 M00S02027.ssval +++| VTEN$ILL[0] = TRUE; # SET ILL-FORMED FLAG # 02030 M00S02028.ssval +++| END 02031 M00S02029.ssval +++| 02032 M00S02030.ssval +++| IF HOCSTAT EQ S"INTC" 02033 M00S02031.ssval +++| THEN 02034 M00S02032.ssval +++| BEGIN 02035 M00S02033.ssval +++| VTEN$INTC[0] = TRUE; # SET INTERSECTING FLAG # 02036 M00S02034.ssval +++| END 02037 M00S02035.ssval +++| 02038 M00S02036.ssval +++| VT$ITEM[I] = VTEN$WORD[0]; # STORE *HOC* ENTRY # 02039 M00S02037.ssval +++| 02040 M00S02038.ssval +++| END # *VT* ENTRY # 02041 M00S02039.ssval +++| 02042 M00S02040.ssval +++| END # VLCFS # 02043 M00S02041.ssval +++| 02044 M00S02042.ssval +++| TERM 02045 M00S02043.ssval +++|PROC VLCMAP(CMERR); 02046 M00S02044.ssval +++|# TITLE VLCMAP - *SM* MAP LOOKUP. # 02047 M00S02045.ssval +++| 02048 M00S02046.ssval +++| 02049 M00S02047.ssval +++| BEGIN # VLCMAP # 02050 M00S02048.ssval +++| 02051 M00S02049.ssval +++|# 02052 M00S02050.ssval +++|** VLCMAP - SMMAP LOOKUP. 02053 M00S02051.ssval +++|* 02054 M00S02052.ssval +++|* *VLCMAP* READS THE SMMAP ENTRY FOR THE GIVEN Y,Z COORDINATES 02055 M00S02053.ssval +++|* IN THE *FCT* RECORD AND VERIFIES THAT THE ENTRY IS VALID. 02056 M00S02054.ssval +++|* 02057 M00S02055.ssval +++|* PROC VLCMAP(CMERR) 02058 M00S02056.ssval +++|* 02059 M00S02057.ssval +++|* ENTRY (SMINDX) - *SM* INDEX. 02060 M00S02058.ssval +++|* (FCTORD) - *FCT* ORDINAL. 02061 M00S02059.ssval +++|* (PAR$FM) - FAMILY. 02062 M00S02060.ssval +++|* (SBINDX) - SUBFAMILY INDEX. 02063 M00S02061.ssval +++|* (ARRAY VLFCTAREA) - CONTAINS *FCT* RECORD. 02064 M00S02062.ssval +++|* 02065 M00S02063.ssval +++|* EXIT (CMERR) = TRUE IF ERROR DETECTED. 02066 M00S02064.ssval +++|* = FALSE IF NO ERROR. 02067 M00S02065.ssval +++|* (ARRAY VLCMAP) - BIT SET FOR GIVEN Y, Z IF THE 02068 M00S02066.ssval +++|* SMMAP/FCT ENTRIES POINT TO EACH 02069 M00S02067.ssval +++|* OTHER. 02070 M00S02068.ssval +++|* 02071 M00S02069.ssval +++|* IF AN ERROR IS DETECTED, A PROBLEM FILE 02072 M00S02070.ssval +++|* RECORD (RT"FCT") IS WRITTEN. 02073 M00S02071.ssval +++|* 02074 M00S02072.ssval +++|* MESSAGES * SMMAP READ ERROR.* 02075 M00S02073.ssval +++|* 02076 M00S02074.ssval +++|* NOTES AN ERROR IN THE ENTRY IS DETECTED IF - 02077 M00S02075.ssval +++|* . IT IS NOT ASSIGNED TO THE SUBFAMILY. 02078 M00S02076.ssval +++|* . FAMILY IN ENTRY IS WRONG. 02079 M00S02077.ssval +++|* . SUBFAMILY IS WRONG. 02080 M00S02078.ssval +++|* . *FCT* ORDINAL IS WRONG. 02081 M00S02079.ssval +++|* . *CSN* IS WRONG. 02082 M00S02080.ssval +++|* 02083 M00S02081.ssval +++|# 02084 M00S02082.ssval +++| 02085 M00S02083.ssval +++| ITEM CMERR B; # INDICATES *SM* MAP ERROR # 02086 M00S02084.ssval +++| 02087 M00S02085.ssval +++|# 02088 M00S02086.ssval +++|**** PROC VLCMAP - XREF LIST BEGIN. 02089 M00S02087.ssval +++|# 02090 M00S02088.ssval +++| 02091 M00S02089.ssval +++| XREF 02092 M00S02090.ssval +++| BEGIN 02093 M00S02091.ssval +++| PROC MGETENT; # RETURN THE MAP ENTRY TO THE 02094 M00S02092.ssval +++| CALLER # 02095 M00S02093.ssval +++| PROC VLERROR; # ISSUE ERROR MESSAGE # 02096 M00S02094.ssval +++| PROC VLWPROB; # WRITE PROBLEM FILE RECORD # 02097 M00S02095.ssval +++| PROC ZFILL; # ZERO FILLS A CHARACTER ITEM # 02098 M00S02096.ssval +++| END 02099 M00S02097.ssval +++| 02100 M00S02098.ssval +++|# 02101 M00S02099.ssval +++|**** PROC VLCMAP - XREF LIST END. 02102 M00S02100.ssval +++|# 02103 M00S02101.ssval +++| 02104 M00S02102.ssval +++| DEF LISTCON #0#; # TURN OFF COMMON DECK LISTING # 02105 M00S02103.ssval +++| 02106 M00S02104.ssval +++|*CALL COMBFAS 02107 M00S02105.ssval +++|*CALL COMBCMD 02108 M00S02106.ssval +++|*CALL COMBCMS 02109 M00S02107.ssval +++|*CALL COMBMAP 02110 M00S02108.ssval +++|*CALL COMBMCT 02111 M00S02109.ssval +++|*CALL COMTVLD 02112 M00S02110.ssval +++|*CALL COMTVLF 02113 M00S02111.ssval +++|*CALL COMTVLM 02114 M00S02112.ssval +++| 02115 M00S02113.ssval +++| 02116 M00S02114.ssval +++| ITEM ORD U; # TO CALCULATE *SM* MAP ORDINAL # 02117 M00S02115.ssval +++| 02118 M00S02116.ssval +++| CONTROL EJECT; 02119 M00S02117.ssval +++| 02120 M00S02118.ssval +++| 02121 M00S02119.ssval +++| P<FCT> = LOC(VLFCTAREA); 02122 M00S02120.ssval +++| 02123 M00S02121.ssval +++|# 02124 M00S02122.ssval +++|* SAVE Y AND Z COORDINATES. 02125 M00S02123.ssval +++|# 02126 M00S02124.ssval +++| 02127 M00S02125.ssval +++| Y = FCT$Y[0]; 02128 M00S02126.ssval +++| Z = FCT$Z[0]; 02129 M00S02127.ssval +++| 02130 M00S02128.ssval +++| CMERR = FALSE; # ASSUME NO ERROR # 02131 M00S02129.ssval +++| 02132 M00S02130.ssval +++|# 02133 M00S02131.ssval +++|* IF *FCT* DOES NOT POINT TO A SMMAP ENTRY, RETURN. 02134 M00S02132.ssval +++|# 02135 M00S02133.ssval +++| 02136 M00S02134.ssval +++| IF Y EQ 0 AND Z EQ 0 02137 M00S02135.ssval +++| THEN 02138 M00S02136.ssval +++| BEGIN 02139 M00S02137.ssval +++| RETURN; 02140 M00S02138.ssval +++| END 02141 M00S02139.ssval +++| 02142 M00S02140.ssval +++| ZFILL(VLMAPAREA,MAPENTL); # CLEAR MAP ENTRY AREA # 02143 M00S02141.ssval +++| 02144 M00S02142.ssval +++| 02145 M00S02143.ssval +++|# 02146 M00S02144.ssval +++|* READ *SM* MAP ENTRY. 02147 M00S02145.ssval +++|# 02148 M00S02146.ssval +++| 02149 M00S02147.ssval +++| ORD = MAXORD - Z - (Y * (MAX$Z+1)); 02150 M00S02148.ssval +++| MGETENT(SMINDX,ORD,LOC(VLMAPAREA),STAT); # GET *SM* ENTRY # 02151 M00S02149.ssval +++| 02152 M00S02150.ssval +++|# 02153 M00S02151.ssval +++|* IF ERROR WHEN READING THE SMMAP, ISSUE MESSAGE AND ABORT. 02154 M00S02152.ssval +++|# 02155 M00S02153.ssval +++| 02156 M00S02154.ssval +++| IF (STAT NQ CMASTAT"NOERR") AND (STAT NQ CMASTAT"ORDERR") 02157 M00S02155.ssval +++| THEN 02158 M00S02156.ssval +++| BEGIN 02159 M00S02157.ssval +++| VLERROR(VE"MAPR",ABRT); # ABORT WITH MESSAGE # 02160 M00S02158.ssval +++| END 02161 M00S02159.ssval +++| 02162 M00S02160.ssval +++| 02163 M00S02161.ssval +++| P<SMUMAP> = LOC(VLMAPAREA); 02164 M00S02162.ssval +++|# 02165 M00S02163.ssval +++|* IF MAP ENTRY IS FOR ANOTHER SUBFAMILY, RETURN. 02166 M00S02164.ssval +++|# 02167 M00S02165.ssval +++| 02168 M00S02166.ssval +++| IF SBINDX NQ CM$SUB[0] 02169 M00S02167.ssval +++| THEN ## 02170 M00S02168.ssval +++| BEGIN 02171 M00S02169.ssval +++| RETURN; 02172 M00S02170.ssval +++| END 02173 M00S02171.ssval +++| 02174 M00S02172.ssval +++| 02175 M00S02173.ssval +++|# 02176 M00S02174.ssval +++|* IF THE *FCT* POINTS TO AN INCORRECT SMMAP ENTRY, WRITE THE 02177 M00S02175.ssval +++|* ENTRY TO THE PROBLEM FILE. 02178 M00S02176.ssval +++|# 02179 M00S02177.ssval +++| 02180 M00S02178.ssval +++| IF CM$CODE[0] NQ CUBSTAT"SUBFAM" ## 02181 M00S02179.ssval +++| OR PAR$FM NQ CM$FMLYNM[0] ## 02182 M00S02180.ssval +++| OR SBINDX NQ CM$SUB[0] ## 02183 M00S02181.ssval +++| OR FCTORD NQ CM$FCTORD[0] ## 02184 M00S02182.ssval +++| OR FCT$CSND[0] NQ CM$CSND[0] # # 02185 M00S02183.ssval +++| THEN 02186 M00S02184.ssval +++| BEGIN 02187 M00S02185.ssval +++| CMERR = TRUE; 02188 M00S02186.ssval +++| CSN = FCT$CSND[0]; 02189 M00S02187.ssval +++| VLWPROB(REC"FCT"); # WRITE PROBLEM ENTRY # 02190 M00S02188.ssval +++| END 02191 M00S02189.ssval +++| 02192 M00S02190.ssval +++|# 02193 M00S02191.ssval +++|* IF *FCT* AND *SM* POINT TO EACH OTHER, SET THE BIT IN CMAP 02194 M00S02192.ssval +++|* ARRAY TO INDICATE THAT A *FCT* ENTRY EXISTS FOR THIS SMMAP 02195 M00S02193.ssval +++|* ENTRY. 02196 M00S02194.ssval +++|# 02197 M00S02195.ssval +++| 02198 M00S02196.ssval +++| IF PAR$FM EQ CM$FMLYNM[0] AND SBINDX EQ CM$SUB[0] ## 02199 M00S02197.ssval +++| AND FCTORD EQ CM$FCTORD[0] 02200 M00S02198.ssval +++| THEN
Proceed to Part 1
cdc/nos2.source/opl.opl871/deck/ssval.txt ยท Last modified: by 127.0.0.1