cdc:nos2.source:opl.opl871:deck:ssdebug.001
Deck SSDEBUG Part 001
2 Modifications
Listing Sections
- Deck SSDEBUG Start
- Deck SSDEBUG Part 1 (Line 2152)
Source
Seq # *Modification Id* Act ----------------------------+ 02152 M01S02126.ssdebug +++| THEN # INSERT HYPHEN # 02153 M01S02127.ssdebug +++| BEGIN 02154 M01S02128.ssdebug +++| C<1,1>DBARG$CM[0] = "-"; 02155 M01S02129.ssdebug +++| END 02156 M01S02130.ssdebug +++| 02157 M01S02131.ssdebug +++|# 02158 M01S02132.ssdebug +++|* CONVERT THE PARAMETERS FROM DISPLAY CODE TO 02159 M01S02133.ssdebug +++|* INTEGER VALUES. 02160 M01S02134.ssdebug +++|# 02161 M01S02135.ssdebug +++| 02162 M01S02136.ssdebug +++| IF NOT DBARG$DIRF[0] 02163 M01S02137.ssdebug +++| THEN 02164 M01S02138.ssdebug +++| BEGIN # CONVERT PARAMETERS # 02165 M01S02139.ssdebug +++| DBCONV(FLAG); 02166 M01S02140.ssdebug +++| IF FLAG NQ OK 02167 M01S02141.ssdebug +++| THEN # CONVERSION ERROR # 02168 M01S02142.ssdebug +++| BEGIN 02169 M01S02143.ssdebug +++| DBARG$DIRF[0] = TRUE; 02170 M01S02144.ssdebug +++| ERRFLAG = TRUE; 02171 M01S02145.ssdebug +++| END 02172 M01S02146.ssdebug +++| 02173 M01S02147.ssdebug +++| 02174 M01S02148.ssdebug +++| END # CONVERT PARAMETERS # 02175 M01S02149.ssdebug +++| 02176 M01S02150.ssdebug +++| IF DBARG$DIRF[0] 02177 M01S02151.ssdebug +++| THEN 02178 M01S02152.ssdebug +++| BEGIN 02179 M01S02153.ssdebug +++| DBERRCODE = S"DSYNT$DIR"; 02180 M01S02154.ssdebug +++| DBERR(DBERRCODE); 02181 M01S02155.ssdebug +++| END 02182 M01S02156.ssdebug +++| 02183 M01S02157.ssdebug +++|# 02184 M01S02158.ssdebug +++|* CHECK THE DIRECTIVE FOR VALID OPTIONS. 02185 M01S02159.ssdebug +++|# 02186 M01S02160.ssdebug +++| 02187 M01S02161.ssdebug +++| IF NOT DBARG$DIRF[0] 02188 M01S02162.ssdebug +++| THEN 02189 M01S02163.ssdebug +++| BEGIN # CHECK VALID OPTIONS # 02190 M01S02164.ssdebug +++| DBOPT(FLAG); 02191 M01S02165.ssdebug +++| IF FLAG NQ OK 02192 M01S02166.ssdebug +++| THEN # VALID OPTIONS VIOLATED # 02193 M01S02167.ssdebug +++| BEGIN 02194 M01S02168.ssdebug +++| DBARG$DIRF[0] = TRUE; 02195 M01S02169.ssdebug +++| ERRFLAG = TRUE; 02196 M01S02170.ssdebug +++| END 02197 M01S02171.ssdebug +++| 02198 M01S02172.ssdebug +++| END # CHECK VALID OPTIONS # 02199 M01S02173.ssdebug +++| 02200 M01S02174.ssdebug +++|# 02201 M01S02175.ssdebug +++|* WRITE THE DIRECTIVE NUMBER, ERROR FLAG, 02202 M01S02176.ssdebug +++|* IMAGE AND THE CRACKED PARAMETERS TO THE 02203 M01S02177.ssdebug +++|* SCRATCH FILE. 02204 M01S02178.ssdebug +++|# 02205 M01S02179.ssdebug +++| 02206 M01S02180.ssdebug +++| WRITEW(DSCR$FET[0],DBARG[0],DBDIRPRML,FLAG); 02207 M01S02181.ssdebug +++| END # CRACK AND SYNTAX CHECK DIRECTIVES # 02208 M01S02182.ssdebug +++| 02209 M01S02183.ssdebug +++| IF DIRNUM EQ 0 02210 M01S02184.ssdebug +++| THEN # NO DIRECTIVES # 02211 M01S02185.ssdebug +++| BEGIN 02212 M01S02186.ssdebug +++| DBMSG$LN[0] = " SSDEBUG, NO DIRECTIVES."; 02213 M01S02187.ssdebug +++| MESSAGE(DBMSG[0],SYSUDF1); 02214 M01S02188.ssdebug +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02215 M01S02189.ssdebug +++| END 02216 M01S02190.ssdebug +++| 02217 M01S02191.ssdebug +++| WRITER(DSCR$FET[0],RCL); 02218 M01S02192.ssdebug +++| REWIND(DSCR$FET[0],RCL); 02219 M01S02193.ssdebug +++| RETURN; 02220 M01S02194.ssdebug +++| 02221 M01S02195.ssdebug +++| END # DBLOOP # 02222 M01S02196.ssdebug +++| 02223 M01S02197.ssdebug +++| TERM 02224 M01S02198.ssdebug +++|PROC DBMAIN; 02225 M01S02199.ssdebug +++|# TITLE DBMAIN - PROCESS *SSDEBUG* DIRECTIVES. # 02226 M01S02200.ssdebug +++| 02227 M01S02201.ssdebug +++| BEGIN # SSDEBUG # 02228 M01S02202.ssdebug +++| 02229 M01S02203.ssdebug +++|# 02230 M01S02204.ssdebug +++|** DBMAIN - PROCESS *SSDEBUG* DIRECTIVES. 02231 M01S02205.ssdebug +++|* 02232 M01S02206.ssdebug +++|* PROC DBMAIN. 02233 M01S02207.ssdebug +++|* 02234 M01S02208.ssdebug +++|* ENTRY THE CRACKED AND SYNTAX CHECKED DIRECTIVES 02235 M01S02209.ssdebug +++|* HAVE BEEN WRITTEN TO A SCRATCH FILE WHICH HAS 02236 M01S02210.ssdebug +++|* BEEN REWOUND. 02237 M01S02211.ssdebug +++|* (DSCR$FET) = FET FOR READING THE SCRATCH FILE. 02238 M01S02212.ssdebug +++|* 02239 M01S02213.ssdebug +++|* EXIT ALL DIRECTIVES HAVE BEEN PROCESSED OR AN ERROR FLAG 02240 M01S02214.ssdebug +++|* HAS BEEN SET UP. 02241 M01S02215.ssdebug +++|* 02242 M01S02216.ssdebug +++|* MESSAGES FAMILY NOT FOUND. 02243 M01S02217.ssdebug +++|* 02244 M01S02218.ssdebug +++|* NOTES A LOOP IS SET UP TO READ EACH DIRECTIVE 02245 M01S02219.ssdebug +++|* FROM THE SCRATCH FILE INTO THE COMMON AREA 02246 M01S02220.ssdebug +++|* DEFINED IN *COMTDBP*. THE CATALOG OR MAP IS 02247 M01S02221.ssdebug +++|* OPENED AND THE CORRESPONDING ROUTINE IS 02248 M01S02222.ssdebug +++|* CALLED TO PROCESS THE DIRECTIVE. ANY ERROR 02249 M01S02223.ssdebug +++|* IN DIRECTIVE PROCESSING CAUSES *SSDEBUG* 02250 M01S02224.ssdebug +++|* TO ABORT. 02251 M01S02225.ssdebug +++|# 02252 M01S02226.ssdebug +++| 02253 M01S02227.ssdebug +++|# 02254 M01S02228.ssdebug +++|**** PROC DBMAIN - XREF LIST BEGIN. 02255 M01S02229.ssdebug +++|# 02256 M01S02230.ssdebug +++| 02257 M01S02231.ssdebug +++| XREF 02258 M01S02232.ssdebug +++| BEGIN 02259 M01S02233.ssdebug +++| PROC COPEN; # OPEN CATALOG # 02260 M01S02234.ssdebug +++| PROC DBCMAP; # PROCESS REMOVE SMMAP ENTRY 02261 M01S02235.ssdebug +++| DIRECTIVE # 02262 M01S02236.ssdebug +++| PROC DBFLAG; # PROCESS CHANGE FLAG DIRECTIVE # 02263 M01S02237.ssdebug +++| PROC DBFMAP; # PROCESS REMOVE FCT ENTRY 02264 M01S02238.ssdebug +++| DIRECTIVE # 02265 M01S02239.ssdebug +++| PROC DBRDFIL; # PROCESS READ FILE DIRECTIVE # 02266 M01S02240.ssdebug +++| PROC DBRDSTM; # PROCESS READ AU DIRECTIVE # 02267 M01S02241.ssdebug +++| PROC DBREL; # PROCESS RELEASE MSF PROBLEM 02268 M01S02242.ssdebug +++| CHAIN DIRECTIVE # 02269 M01S02243.ssdebug +++| PROC DBRESP; # PROCESSES RESPONSE FROM EXEC # 02270 M01S02244.ssdebug +++| PROC LOFPROC; # LIST OF FILES PROCESSOR # 02271 M01S02245.ssdebug +++| PROC MESSAGE; # DISPLAY MESSAGES # 02272 M01S02246.ssdebug +++| PROC MOPEN; # OPEN SMMAP # 02273 M01S02247.ssdebug +++| PROC READ; # READS A FILE # 02274 M01S02248.ssdebug +++| PROC READW; # DATA TRANSFER ROUTINE # 02275 M01S02249.ssdebug +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 02276 M01S02250.ssdebug +++| OR RETURN # 02277 M01S02251.ssdebug +++| PROC RETERN; # RETURNS A FILE # 02278 M01S02252.ssdebug +++| PROC RPLINE; # WRITES A REPORT LINE # 02279 M01S02253.ssdebug +++| PROC RPSPACE; # WRITES A BLANK LINE # 02280 M01S02254.ssdebug +++| PROC SETPFP; # SET FAMILY AND USER INDEX # 02281 M01S02255.ssdebug +++| PROC SSINIT; # SETS UP TABLES AND POINETRS # 02282 M01S02256.ssdebug +++| FUNC XCOD C(10); # INTEGER TO DISPLAY CONVERSION # 02283 M01S02257.ssdebug +++| END 02284 M01S02258.ssdebug +++| 02285 M01S02259.ssdebug +++|# 02286 M01S02260.ssdebug +++|**** PROC DBMAIN - XREF LIST END. 02287 M01S02261.ssdebug +++|# 02288 M01S02262.ssdebug +++| 02289 M01S02263.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02290 M01S02264.ssdebug +++| 02291 M01S02265.ssdebug +++|*CALL COMBFAS 02292 M01S02266.ssdebug +++|*CALL COMBCMD 02293 M01S02267.ssdebug +++|*CALL COMBCMS 02294 M01S02268.ssdebug +++|*CALL COMBCPR 02295 M01S02269.ssdebug +++|*CALL COMBPFP 02296 M01S02270.ssdebug +++|*CALL COMBSNS 02297 M01S02271.ssdebug +++|*CALL COMSPFM 02298 M01S02272.ssdebug +++|*CALL COMTDBG 02299 M01S02273.ssdebug +++|*CALL COMTDBP 02300 M01S02274.ssdebug +++|*CALL COMTOUT 02301 M01S02275.ssdebug +++| 02302 M01S02276.ssdebug +++| ITEM DIS$SB C(10); # SUBFAMILY IN DISPLAY CODE # 02303 M01S02277.ssdebug +++| ITEM EOR B; # INDICATES END OF RECORD # 02304 M01S02278.ssdebug +++| ITEM I I; # LOOP INDUCTION VARIABLE # 02305 M01S02279.ssdebug +++| ITEM J I; # LOOP INDUCTION VARIABLE # 02306 M01S02280.ssdebug +++| ITEM RESPCODE I; # RESPONSE CODE # 02307 M01S02281.ssdebug +++| 02308 M01S02282.ssdebug +++| ARRAY CATNAME [0:0] P(1); # CATALOG FILE NAME # 02309 M01S02283.ssdebug +++| BEGIN 02310 M01S02284.ssdebug +++| ITEM CAT$NAM C(00,00,06); # FIRST 6 CHARACTERS # 02311 M01S02285.ssdebug +++| ITEM CAT$SB C(00,36,01); # SUBFAMILY IDENTIFIER # 02312 M01S02286.ssdebug +++| END 02313 M01S02287.ssdebug +++| 02314 M01S02288.ssdebug +++| ARRAY DRWSTAT [0:0] S(SNSLEN);; # DRAWER STATUS TABLE # 02315 M01S02289.ssdebug +++| 02316 M01S02290.ssdebug +++| ARRAY MAPNAME [0:0] P(1); # MAP FILE NAME # 02317 M01S02291.ssdebug +++| BEGIN 02318 M01S02292.ssdebug +++| ITEM MAP$NAM C(00,00,07) = ["SMMAP "]; 02319 M01S02293.ssdebug +++| ITEM MAP$SM C(00,30,01); # SM IDENTIFIER # 02320 M01S02294.ssdebug +++| ITEM MAP$ZFILL U(00,36,06) = [0]; 02321 M01S02295.ssdebug +++| END 02322 M01S02296.ssdebug +++| 02323 M01S02297.ssdebug +++|# 02324 M01S02298.ssdebug +++|* SWITCH TO PROCESS *SSDEBUG* DIRECTIVES. THE 02325 M01S02299.ssdebug +++|* ORDER OF THE SWITCH LABELS IS THE SAME AS THE 02326 M01S02300.ssdebug +++|* DIRECTIVE NAMES SET UP IN ARRAY *DB$DIR* 02327 M01S02301.ssdebug +++|* DEFINED IN *COMTDBG*. 02328 M01S02302.ssdebug +++|# 02329 M01S02303.ssdebug +++| 02330 M01S02304.ssdebug +++| SWITCH DIR$ACT # SWITCH TO PROCESS DIRECTIVES # 02331 M01S02305.ssdebug +++| CMAP, # REMOVE SMMAP ENTRY # 02332 M01S02306.ssdebug +++| FMAP, # REMOVE *FCT* ENTRY # 02333 M01S02307.ssdebug +++| REL, # RELEASE PROBLEM CHAIN # 02334 M01S02308.ssdebug +++| RDFIL, # READ FILE # 02335 M01S02309.ssdebug +++| RDSTM, # READ AU # 02336 M01S02310.ssdebug +++| FLAG; # CHANGE FLAG # 02337 M01S02311.ssdebug +++| 02338 M01S02312.ssdebug +++|CONTROL EJECT; 02339 M01S02313.ssdebug +++| 02340 M01S02314.ssdebug +++| ADDRSENSE = LOC(DRWSTAT[0]); # FWA OF DRAWER STATUS TABLE # 02341 M01S02315.ssdebug +++| P<SNS> = ADDRSENSE; 02342 M01S02316.ssdebug +++| 02343 M01S02317.ssdebug +++|# 02344 M01S02318.ssdebug +++|* INITIALIZE THE FETS, BUFFERS, TABLES AND 02345 M01S02319.ssdebug +++|* POINTERS NEEDED TO ACCESS CATALOGS AND MAPS. 02346 M01S02320.ssdebug +++|# 02347 M01S02321.ssdebug +++| 02348 M01S02322.ssdebug +++| SSINIT; 02349 M01S02323.ssdebug +++| 02350 M01S02324.ssdebug +++|# 02351 M01S02325.ssdebug +++|* READ THE DIRECTIVES. 02352 M01S02326.ssdebug +++|# 02353 M01S02327.ssdebug +++| 02354 M01S02328.ssdebug +++| READ(DSCR$FET[0],RCL); 02355 M01S02329.ssdebug +++| 02356 M01S02330.ssdebug +++| EOR = FALSE; 02357 M01S02331.ssdebug +++| FASTFOR I = 0 STEP 1 WHILE NOT EOR 02358 M01S02332.ssdebug +++| DO 02359 M01S02333.ssdebug +++| BEGIN # PROCESS EACH DIRECTIVE # 02360 M01S02334.ssdebug +++| READW(DSCR$FET[0],DBARG[0],DBDIRPRML,RESPCODE); 02361 M01S02335.ssdebug +++| IF RESPCODE NQ OK 02362 M01S02336.ssdebug +++| THEN # NO MORE DIRECTIVES # 02363 M01S02337.ssdebug +++| BEGIN 02364 M01S02338.ssdebug +++| EOR = TRUE; 02365 M01S02339.ssdebug +++| TEST I; 02366 M01S02340.ssdebug +++| END 02367 M01S02341.ssdebug +++| 02368 M01S02342.ssdebug +++|# 02369 M01S02343.ssdebug +++|* WRITE THE DIRECTIVE TO THE OUTPUT FILE. 02370 M01S02344.ssdebug +++|# 02371 M01S02345.ssdebug +++| 02372 M01S02346.ssdebug +++| RPLINE(OUT$FETP,DBARG$DIRN[0],2,5,1); 02373 M01S02347.ssdebug +++| RPLINE(OUT$FETP,DBARG$DIRI[0],8,80,0); 02374 M01S02348.ssdebug +++| RPSPACE(OUT$FETP,SP"SPACE",1); 02375 M01S02349.ssdebug +++| 02376 M01S02350.ssdebug +++| IF DBARG$DIRF[0] 02377 M01S02351.ssdebug +++| THEN # SYNTAX ERROR IN DIRECTIVE # 02378 M01S02352.ssdebug +++| BEGIN 02379 M01S02353.ssdebug +++| RPLINE(OUT$FETP,"*** SYNTAX ERROR",2,16,0); 02380 M01S02354.ssdebug +++| TEST I; # GET NEXT DIRECTIVE # 02381 M01S02355.ssdebug +++| END 02382 M01S02356.ssdebug +++| 02383 M01S02357.ssdebug +++| IF DBARG$FM[0] EQ 0 02384 M01S02358.ssdebug +++| THEN # FAMILY NOT SPECIFIED # 02385 M01S02359.ssdebug +++| BEGIN 02386 M01S02360.ssdebug +++| DBARG$FM[0] = DEF$FAM; # USE DEFAULT FAMILY # 02387 M01S02361.ssdebug +++| END 02388 M01S02362.ssdebug +++| 02389 M01S02363.ssdebug +++| PFP$WRD0[0] = 0; # SET FLAGS # 02390 M01S02364.ssdebug +++| PFP$WRD1[0] = 0; # CLEAR PACK NAME # 02391 M01S02365.ssdebug +++| PFP$FG1[0] = TRUE; 02392 M01S02366.ssdebug +++| PFP$FG2[0] = TRUE; 02393 M01S02367.ssdebug +++| PFP$FG4[0] = TRUE; 02394 M01S02368.ssdebug +++| 02395 M01S02369.ssdebug +++|# 02396 M01S02370.ssdebug +++|* OPEN THE SMMAP FOR *RS*, *RC* AND *CF* DIRECTIVES. 02397 M01S02371.ssdebug +++|# 02398 M01S02372.ssdebug +++| 02399 M01S02373.ssdebug +++| IF DBARG$OP[0] EQ "RC" 02400 M01S02374.ssdebug +++| OR ( DBARG$OP[0] EQ "RS" AND DBARG$WCN[0] NQ 0 ) 02401 M01S02375.ssdebug +++| OR (DBARG$OP[0] EQ "CF" 02402 M01S02376.ssdebug +++| AND (DBARG$FL[0] EQ "ME" OR DBARG$FO[0] LS 0)) 02403 M01S02377.ssdebug +++| THEN 02404 M01S02378.ssdebug +++| BEGIN # OPEN SMMAP # 02405 M01S02379.ssdebug +++| PFP$FAM[0] = DEF$FAM; # SET FAMILY AND USER INDEX # 02406 M01S02380.ssdebug +++| PFP$UI[0] = DEF$UI; 02407 M01S02381.ssdebug +++| SETPFP(PFP); 02408 M01S02382.ssdebug +++| IF PFP$STAT[0] NQ 0 02409 M01S02383.ssdebug +++| THEN # DEFAULT FAMILY NOT FOUND # 02410 M01S02384.ssdebug +++| BEGIN 02411 M01S02385.ssdebug +++| DBMSG$LN[0] = " FAMILY NOT FOUND."; 02412 M01S02386.ssdebug +++| MESSAGE(DBMSG[0],SYSUDF1); 02413 M01S02387.ssdebug +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02414 M01S02388.ssdebug +++| END 02415 M01S02389.ssdebug +++| 02416 M01S02390.ssdebug +++| MAP$SM[0] = DBARG$SM[0]; 02417 M01S02391.ssdebug +++| MOPEN(DBARG$SMID[0],MAP$NAM[0],"RM",RESPCODE); 02418 M01S02392.ssdebug +++| IF RESPCODE NQ CMASTAT"NOERR" 02419 M01S02393.ssdebug +++| THEN # UNABLE TO OPEN MAP # 02420 M01S02394.ssdebug +++| BEGIN 02421 M01S02395.ssdebug +++| DBRESP(RESPCODE,0); 02422 M01S02396.ssdebug +++| TEST I; 02423 M01S02397.ssdebug +++| END 02424 M01S02398.ssdebug +++| 02425 M01S02399.ssdebug +++| ELSE # MAP OPENED # 02426 M01S02400.ssdebug +++| BEGIN 02427 M01S02401.ssdebug +++| LOFPROC(MAP$NAM[0]); # ADD LFN TO LIST OF FILES # 02428 M01S02402.ssdebug +++| END 02429 M01S02403.ssdebug +++| 02430 M01S02404.ssdebug +++| END # OPEN SMMAP # 02431 M01S02405.ssdebug +++| 02432 M01S02406.ssdebug +++|# 02433 M01S02407.ssdebug +++|* OPEN THE CATALOG FOR *RF*, *RP*, *RL*, AND *CF* DIRECTIVES. 02434 M01S02408.ssdebug +++|# 02435 M01S02409.ssdebug +++| 02436 M01S02410.ssdebug +++| IF DBARG$OP[0] EQ "RF" 02437 M01S02411.ssdebug +++| OR DBARG$OP[0] EQ "RP" 02438 M01S02412.ssdebug +++| OR DBARG$OP[0] EQ "RL" 02439 M01S02413.ssdebug +++| OR (DBARG$OP[0] EQ "CF" AND DBARG$FL[0] EQ "ME" 02440 M01S02414.ssdebug +++| AND DBARG$FO[0] GR 0) 02441 M01S02415.ssdebug +++| THEN 02442 M01S02416.ssdebug +++| BEGIN # OPEN CATALOG # 02443 M01S02417.ssdebug +++| PFP$FAM[0] = DBARG$FM[0]; # SET FAMILY AND USER INDEX # 02444 M01S02418.ssdebug +++| PFP$UI[0] = DEF$UI + DBARG$SB[0]; 02445 M01S02419.ssdebug +++| SETPFP(PFP); 02446 M01S02420.ssdebug +++| IF PFP$STAT[0] NQ 0 02447 M01S02421.ssdebug +++| THEN # FAMILY NOT FOUND # 02448 M01S02422.ssdebug +++| BEGIN 02449 M01S02423.ssdebug +++| DBMSG$LN[0] = " FAMILY NOT FOUND."; 02450 M01S02424.ssdebug +++| MESSAGE(DBMSG[0],SYSUDF1); 02451 M01S02425.ssdebug +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 02452 M01S02426.ssdebug +++| END 02453 M01S02427.ssdebug +++| 02454 M01S02428.ssdebug +++| CAT$NAM[0] = SFMCAT; 02455 M01S02429.ssdebug +++| DIS$SB = XCOD(DBARG$SB[0]); 02456 M01S02430.ssdebug +++| CAT$SB[0] = C<9,1>DIS$SB; 02457 M01S02431.ssdebug +++| COPEN(DBARG$FM[0],DBARG$SB[0],CATNAME[0],"RM",TRUE,RESPCODE); 02458 M01S02432.ssdebug +++| IF RESPCODE NQ CMASTAT"NOERR" 02459 M01S02433.ssdebug +++| THEN # UNABLE TO OPEN CATALOG # 02460 M01S02434.ssdebug +++| BEGIN 02461 M01S02435.ssdebug +++| DBRESP(RESPCODE,0); 02462 M01S02436.ssdebug +++| TEST I; 02463 M01S02437.ssdebug +++| END 02464 M01S02438.ssdebug +++| 02465 M01S02439.ssdebug +++| ELSE # CATALOG OPENED # 02466 M01S02440.ssdebug +++| BEGIN 02467 M01S02441.ssdebug +++| LOFPROC(OCT$LFN[1]); # ADD LFN TO LIST OF FILES # 02468 M01S02442.ssdebug +++| END 02469 M01S02443.ssdebug +++| 02470 M01S02444.ssdebug +++| END # OPEN CATALOG # 02471 M01S02445.ssdebug +++| 02472 M01S02446.ssdebug +++|# 02473 M01S02447.ssdebug +++|* PROCESS THE DIRECTIVE. 02474 M01S02448.ssdebug +++|# 02475 M01S02449.ssdebug +++| 02476 M01S02450.ssdebug +++| SLOWFOR J = 0 STEP 1 UNTIL DBDIRNM 02477 M01S02451.ssdebug +++| DO 02478 M01S02452.ssdebug +++| BEGIN # FIND MATCHING DIRECTIVE # 02479 M01S02453.ssdebug +++| IF DB$DIRNM[J] EQ DBARG$OP[0] 02480 M01S02454.ssdebug +++| THEN 02481 M01S02455.ssdebug +++| BEGIN 02482 M01S02456.ssdebug +++| GOTO DIR$ACT[J]; 02483 M01S02457.ssdebug +++|CMAP: # REMOVE SMMAP ENTRY # 02484 M01S02458.ssdebug +++| DBCMAP; 02485 M01S02459.ssdebug +++| TEST I; 02486 M01S02460.ssdebug +++| 02487 M01S02461.ssdebug +++|FMAP: # REMOVE *FCT* ENTRY # 02488 M01S02462.ssdebug +++| DBFMAP; 02489 M01S02463.ssdebug +++| TEST I; 02490 M01S02464.ssdebug +++| 02491 M01S02465.ssdebug +++|REL: # RELEASE PROBLEM CHAINS # 02492 M01S02466.ssdebug +++| DBREL; 02493 M01S02467.ssdebug +++| TEST I; 02494 M01S02468.ssdebug +++| 02495 M01S02469.ssdebug +++|RDFIL: # READ FILE # 02496 M01S02470.ssdebug +++| DBRDFIL; 02497 M01S02471.ssdebug +++| TEST I; 02498 M01S02472.ssdebug +++| 02499 M01S02473.ssdebug +++|RDSTM: 02500 M01S02474.ssdebug +++| DBRDSTM; # READ AU # 02501 M01S02475.ssdebug +++| TEST I; 02502 M01S02476.ssdebug +++| 02503 M01S02477.ssdebug +++|FLAG: 02504 M01S02478.ssdebug +++| DBFLAG; # CHANGE FLAG # 02505 M01S02479.ssdebug +++| TEST I; 02506 M01S02480.ssdebug +++| 02507 M01S02481.ssdebug +++| END 02508 M01S02482.ssdebug +++| 02509 M01S02483.ssdebug +++| END # FIND MATCHING DIRECTIVE # 02510 M01S02484.ssdebug +++| 02511 M01S02485.ssdebug +++| END # PROCESS EACH DIRECTIVE # 02512 M01S02486.ssdebug +++| 02513 M01S02487.ssdebug +++| RETURN; 02514 M01S02488.ssdebug +++| 02515 M01S02489.ssdebug +++| END # DBMAIN # 02516 M01S02490.ssdebug +++| 02517 M01S02491.ssdebug +++| TERM 02518 M01S02492.ssdebug +++|PROC DBOPT(FLAG); 02519 M01S02493.ssdebug +++|# TITLE DBOPT - CHECKS CRACKED PARAMETERS FOR VALID OPTIONS. # 02520 M01S02494.ssdebug +++| 02521 M01S02495.ssdebug +++| BEGIN # DBOPT # 02522 M01S02496.ssdebug +++| 02523 M01S02497.ssdebug +++|# 02524 M01S02498.ssdebug +++|** DBOPT - CHECKS CRACKED PARAMETERS FOR VALID OPTIONS. 02525 M01S02499.ssdebug +++|* 02526 M01S02500.ssdebug +++|* PROC DBOPT(FLAG) 02527 M01S02501.ssdebug +++|* 02528 M01S02502.ssdebug +++|* ENTRY THE CRACKED AND CONVERTED PARAMETERS ARE SET UP 02529 M01S02503.ssdebug +++|* IN THE COMMON AREA DEFINED IN *COMTDBP*. 02530 M01S02504.ssdebug +++|* 02531 M01S02505.ssdebug +++|* EXIT ALL OPTIONS HAVE BEEN CHECKED FOR VALIDITY. 02532 M01S02506.ssdebug +++|* (FLAG) = 0, NO ERROR. 02533 M01S02507.ssdebug +++|* 1, VALID OPTION VIOLATED. 02534 M01S02508.ssdebug +++|* 02535 M01S02509.ssdebug +++|* NOTES ALL THE DIRECTIVES ARE CHECKED FOR VALID 02536 M01S02510.ssdebug +++|* OPTIONS. THE VALID OPTIONS ARE 02537 M01S02511.ssdebug +++|* 1. *OP* MUST BE A VALID DIRECTIVE NAME. 02538 M01S02512.ssdebug +++|* 2. *FO* MUST BE SPECIFIED FOR OP=RF, RP AND RL, 02539 M01S02513.ssdebug +++|* AND *ST* MUST BE SPECIFIED FOR OP=RF AND RP. 02540 M01S02514.ssdebug +++|* 3. *SB* MUST BE FROM 0 TO 7. 02541 M01S02515.ssdebug +++|* 4. *CS* MUST BE FROM A THROUGH H. 02542 M01S02516.ssdebug +++|* 5. *SL* AND *SU* MUST BE FROM 1 TO 1931. 02543 M01S02517.ssdebug +++|* 5. *SL* AND *SU* MUST BE FROM 1 TO 1931. 02544 M01S02518.ssdebug +++|* 6. *SL* MUST BE LESS THAN OR EQUAL TO *SU*. 02545 M01S02519.ssdebug +++|* 7. FOR OP=RS, ONE AND ONLY ONE OF THE FOLLOWING 02546 M01S02520.ssdebug +++|* PARAMETERS MUST BE SPECIFIED: *V*, *YI*, OR *D*. 02547 M01S02521.ssdebug +++|* 8. FOR OP=CF, ONE AND ONLY ONE OF THE FOLLOWING 02548 M01S02522.ssdebug +++|* PARAMETERS MUST BE SPECIFIED: *V*, *YI*, OR *FO*. 02549 M01S02523.ssdebug +++|* 9. *FL*, *ON*, AND *OF* ARE VALID ONLY FOR OP=CF. 02550 M01S02524.ssdebug +++|* 10. FOR OP=CF, *FL* MUST BE A VALID FLAG NAME AND 02551 M01S02525.ssdebug +++|* EITHER *ON* OR *OF* MUST BE SPECIFIED. 02552 M01S02526.ssdebug +++|* 11. *YI* AND *ZI* MUST BE SPECIFIED TOGETHER. 02553 M01S02527.ssdebug +++|* 12. *YI* MUST BE FROM 0 TO 21. 02554 M01S02528.ssdebug +++|* 13. *ZI* MUST BE FROM 0 TO 15. 02555 M01S02529.ssdebug +++|* 14. *YI*, *ZI* MUST BE SPECIFIED FOR OP=RC. 02556 M01S02530.ssdebug +++|* 02557 M01S02531.ssdebug +++|* ANY VIOLATION OF THE VALID OPTIONS CAUSES A 02558 M01S02532.ssdebug +++|* MESSAGE TO BE PRINTED IN THE DAYFILE AND THE 02559 M01S02533.ssdebug +++|* REPORT FILE, AND AN ERROR FLAG TO BE RETURNED 02560 M01S02534.ssdebug +++|* TO THE CALLING ROUTINE. 02561 M01S02535.ssdebug +++|# 02562 M01S02536.ssdebug +++| 02563 M01S02537.ssdebug +++| ITEM FLAG I; # ERROR STATUS # 02564 M01S02538.ssdebug +++| 02565 M01S02539.ssdebug +++|# 02566 M01S02540.ssdebug +++|**** PROC DBOPT - XREF LIST BEGIN. 02567 M01S02541.ssdebug +++|# 02568 M01S02542.ssdebug +++| 02569 M01S02543.ssdebug +++| XREF 02570 M01S02544.ssdebug +++| BEGIN 02571 M01S02545.ssdebug +++| PROC DBERR; # ERROR PROCESSOR # 02572 M01S02546.ssdebug +++| END 02573 M01S02547.ssdebug +++| 02574 M01S02548.ssdebug +++|# 02575 M01S02549.ssdebug +++|**** PROC DBOPT - XREF LIST END. 02576 M01S02550.ssdebug +++|# 02577 M01S02551.ssdebug +++| 02578 M01S02552.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02579 M01S02553.ssdebug +++|*CALL COMBFAS 02580 M01S02554.ssdebug +++|*CALL COMBCPR 02581 M01S02555.ssdebug +++|*CALL COMTDBP 02582 M01S02556.ssdebug +++|*CALL COMTDBG 02583 M01S02557.ssdebug +++|*CALL COMTDER 02584 M01S02558.ssdebug +++|*CALL COMTLAB 02585 M01S02559.ssdebug +++| 02586 M01S02560.ssdebug +++| ITEM FOUND B; # SEARCH FLAG # 02587 M01S02561.ssdebug +++| ITEM I I; # LOOP INDUCTION VARIABLE # 02588 M01S02562.ssdebug +++| ITEM OPTCOUNT I; # OPTION COUNT # 02589 M01S02563.ssdebug +++| 02590 M01S02564.ssdebug +++|CONTROL EJECT; 02591 M01S02565.ssdebug +++| 02592 M01S02566.ssdebug +++| FLAG = 1; # INITIALIZE # 02593 M01S02567.ssdebug +++| 02594 M01S02568.ssdebug +++|# 02595 M01S02569.ssdebug +++|* CHECK FOR A LEGAL DIRECTIVE NAME. 02596 M01S02570.ssdebug +++|# 02597 M01S02571.ssdebug +++| 02598 M01S02572.ssdebug +++| FOUND = FALSE; 02599 M01S02573.ssdebug +++| FASTFOR I = 0 STEP 1 UNTIL DBDIRNM 02600 M01S02574.ssdebug +++| DO 02601 M01S02575.ssdebug +++| BEGIN # SEARCH FOR MATCHING DIRECTIVE NAME # 02602 M01S02576.ssdebug +++| IF DBARG$OP[0] EQ DB$DIRNM[I] 02603 M01S02577.ssdebug +++| THEN 02604 M01S02578.ssdebug +++| BEGIN 02605 M01S02579.ssdebug +++| FOUND = TRUE; 02606 M01S02580.ssdebug +++| END 02607 M01S02581.ssdebug +++| 02608 M01S02582.ssdebug +++| END # SEARCH FOR MATCHING DIRECTIVE NAME # 02609 M01S02583.ssdebug +++| 02610 M01S02584.ssdebug +++| IF NOT FOUND 02611 M01S02585.ssdebug +++| THEN # ILLEGAL DIRECTIVE # 02612 M01S02586.ssdebug +++| BEGIN 02613 M01S02587.ssdebug +++| DBERRCODE = S"DILLEG$DIR"; 02614 M01S02588.ssdebug +++| DBERR(DBERRCODE); 02615 M01S02589.ssdebug +++| RETURN; 02616 M01S02590.ssdebug +++| END 02617 M01S02591.ssdebug +++| 02618 M01S02592.ssdebug +++|# 02619 M01S02593.ssdebug +++|* CHECK IF *FO* SPECIFIED CORRECTLY. 02620 M01S02594.ssdebug +++|# 02621 M01S02595.ssdebug +++| 02622 M01S02596.ssdebug +++| IF DBARG$FO[0] EQ -1 ## 02623 M01S02597.ssdebug +++| OR (DBARG$FO[0] EQ -2 ## 02624 M01S02598.ssdebug +++| AND (DBARG$OP[0] EQ "RF" ## 02625 M01S02599.ssdebug +++| OR DBARG$OP[0] EQ "RP" ## 02626 M01S02600.ssdebug +++| OR DBARG$OP[0] EQ "RL")) 02627 M01S02601.ssdebug +++| OR ( DBARG$FO[0] GQ 0 AND DBARG$FO[0] LS MINFO ) 02628 M01S02602.ssdebug +++| OR ( DBARG$FO[0] GR MAXFO ) 02629 M01S02603.ssdebug +++| THEN # *FO* OPTION VIOLATED # 02630 M01S02604.ssdebug +++| BEGIN 02631 M01S02605.ssdebug +++| DBERRCODE = S"DVIOL$FO"; 02632 M01S02606.ssdebug +++| DBERR(DBERRCODE); 02633 M01S02607.ssdebug +++| RETURN; 02634 M01S02608.ssdebug +++| END 02635 M01S02609.ssdebug +++| 02636 M01S02610.ssdebug +++|# 02637 M01S02611.ssdebug +++|* CHECK IF *ST* IS SPECIFIED CORRECTLY. 02638 M01S02612.ssdebug +++|# 02639 M01S02613.ssdebug +++| 02640 M01S02614.ssdebug +++| IF DBARG$ST[0] EQ -1 ## 02641 M01S02615.ssdebug +++| OR ( ( DBARG$ST[0] EQ -2 ## 02642 M01S02616.ssdebug +++| OR DBARG$ST[0] EQ 0 ) ## 02643 M01S02617.ssdebug +++| AND (DBARG$OP[0] EQ "RF" ## 02644 M01S02618.ssdebug +++| OR DBARG$OP[0] EQ "RP")) 02645 M01S02619.ssdebug +++| THEN # *ST* OPTION VIOLATED # 02646 M01S02620.ssdebug +++| BEGIN 02647 M01S02621.ssdebug +++| DBERRCODE = S"DVIOL$ST"; 02648 M01S02622.ssdebug +++| DBERR(DBERRCODE); 02649 M01S02623.ssdebug +++| RETURN; 02650 M01S02624.ssdebug +++| END 02651 M01S02625.ssdebug +++| 02652 M01S02626.ssdebug +++|# 02653 M01S02627.ssdebug +++|* CHECK THE VALUE OF *SB*. 02654 M01S02628.ssdebug +++|# 02655 M01S02629.ssdebug +++| 02656 M01S02630.ssdebug +++| IF DBARG$SB[0] LS 0 ## 02657 M01S02631.ssdebug +++| OR DBARG$SB[0] GR 7 02658 M01S02632.ssdebug +++| THEN # *SB* OPTION VIOLATED # 02659 M01S02633.ssdebug +++| BEGIN 02660 M01S02634.ssdebug +++| DBERRCODE = S"DVIOL$SB"; 02661 M01S02635.ssdebug +++| DBERR(DBERRCODE); 02662 M01S02636.ssdebug +++| RETURN; 02663 M01S02637.ssdebug +++| END 02664 M01S02638.ssdebug +++| 02665 M01S02639.ssdebug +++|# 02666 M01S02640.ssdebug +++|* CHECK THE VALUE OF *SM*. 02667 M01S02641.ssdebug +++|# 02668 M01S02642.ssdebug +++| 02669 M01S02643.ssdebug +++| IF DBARG$SM[0] LS "A" ## 02670 M01S02644.ssdebug +++| OR DBARG$SM[0] GR "H" ## 02671 M01S02645.ssdebug +++| OR DBARG$WSM[0] NQ 0 ## 02672 M01S02646.ssdebug +++| THEN # *SM* OPTION VIOLATED # 02673 M01S02647.ssdebug +++| BEGIN 02674 M01S02648.ssdebug +++| DBERRCODE = S"DVIOL$SM"; 02675 M01S02649.ssdebug +++| DBERR(DBERRCODE); 02676 M01S02650.ssdebug +++| RETURN; 02677 M01S02651.ssdebug +++| END 02678 M01S02652.ssdebug +++| 02679 M01S02653.ssdebug +++|# 02680 M01S02654.ssdebug +++|* CHECK THE VALUE OF *SL*. 02681 M01S02655.ssdebug +++|# 02682 M01S02656.ssdebug +++| 02683 M01S02657.ssdebug +++| IF ( DBARG$SL[0] LS 0 ## 02684 M01S02658.ssdebug +++| OR DBARG$SL[0] GR INAVOT ) # MAXIMUM AU PER CARTRIDGE # 02685 M01S02659.ssdebug +++| OR ( DBARG$OP[0] EQ "RS" ## 02686 M01S02660.ssdebug +++| AND DBARG$SL[0] EQ 0 ) ## 02687 M01S02661.ssdebug +++| THEN # *SL* OPTION VIOLATED # 02688 M01S02662.ssdebug +++| BEGIN 02689 M01S02663.ssdebug +++| DBERRCODE = S"DVIOL$SL"; 02690 M01S02664.ssdebug +++| DBERR(DBERRCODE); 02691 M01S02665.ssdebug +++| RETURN; 02692 M01S02666.ssdebug +++| END 02693 M01S02667.ssdebug +++| 02694 M01S02668.ssdebug +++|# 02695 M01S02669.ssdebug +++|* CHECK THE VALUE OF *SU*. 02696 M01S02670.ssdebug +++|# 02697 M01S02671.ssdebug +++| 02698 M01S02672.ssdebug +++| IF ( DBARG$SU[0] LS 0 ## 02699 M01S02673.ssdebug +++| OR DBARG$SU[0] GR INAVOT ) # MAXIMUM AU PER CARTRIDGE # 02700 M01S02674.ssdebug +++| OR ( DBARG$OP[0] EQ "RS" ## 02701 M01S02675.ssdebug +++| AND DBARG$SU[0] EQ 0 ) ## 02702 M01S02676.ssdebug +++| OR DBARG$SU[0] LS DBARG$SL[0] 02703 M01S02677.ssdebug +++| THEN # *SU* OPTION VIOLATED # 02704 M01S02678.ssdebug +++| BEGIN 02705 M01S02679.ssdebug +++| DBERRCODE = S"DVIOL$SU"; 02706 M01S02680.ssdebug +++| DBERR(DBERRCODE); 02707 M01S02681.ssdebug +++| RETURN; 02708 M01S02682.ssdebug +++| END 02709 M01S02683.ssdebug +++| 02710 M01S02684.ssdebug +++|# 02711 M01S02685.ssdebug +++|* CHECK THE VALUE OF *CN* 02712 M01S02686.ssdebug +++|# 02713 M01S02687.ssdebug +++| 02714 M01S02688.ssdebug +++| IF DBARG$WCN[0] EQ -1 02715 M01S02689.ssdebug +++| THEN # *CN* OPTION VIOLATED # 02716 M01S02690.ssdebug +++| BEGIN 02717 M01S02691.ssdebug +++| DBERRCODE = S"DVIOL$V"; 02718 M01S02692.ssdebug +++| DBERR(DBERRCODE); 02719 M01S02693.ssdebug +++| RETURN; 02720 M01S02694.ssdebug +++| END 02721 M01S02695.ssdebug +++| 02722 M01S02696.ssdebug +++| 02723 M01S02697.ssdebug +++|# 02724 M01S02698.ssdebug +++|* CHECK THE VALUE OF *YI* AND *ZI*. 02725 M01S02699.ssdebug +++|# 02726 M01S02700.ssdebug +++| 02727 M01S02701.ssdebug +++| IF DBARG$YI[0] LS -1 ## 02728 M01S02702.ssdebug +++| OR DBARG$ZI[0] LS -1 ## 02729 M01S02703.ssdebug +++| OR DBARG$YI[0] GR MAX$Y ## 02730 M01S02704.ssdebug +++| OR DBARG$ZI[0] GR MAX$Z ## 02731 M01S02705.ssdebug +++| OR DBARG$ZI[0] EQ Z$NO$CUBE 02732 M01S02706.ssdebug +++| THEN # *YI*, *ZI* OPTION VIOLATED # 02733 M01S02707.ssdebug +++| BEGIN 02734 M01S02708.ssdebug +++| DBERRCODE = S"DVIOL$YZ"; 02735 M01S02709.ssdebug +++| DBERR(DBERRCODE); 02736 M01S02710.ssdebug +++| RETURN; 02737 M01S02711.ssdebug +++| END 02738 M01S02712.ssdebug +++| 02739 M01S02713.ssdebug +++|# 02740 M01S02714.ssdebug +++|* CHECK IF *YI* AND *ZI* ARE SPECIFIED TOGETHER. 02741 M01S02715.ssdebug +++|# 02742 M01S02716.ssdebug +++| 02743 M01S02717.ssdebug +++| IF (DBARG$YI[0] EQ -1 ## 02744 M01S02718.ssdebug +++| AND DBARG$ZI[0] GQ 0) ## 02745 M01S02719.ssdebug +++| OR (DBARG$YI[0] GQ 0 ## 02746 M01S02720.ssdebug +++| AND DBARG$ZI[0] EQ -1) 02747 M01S02721.ssdebug +++| THEN # *YI*, *ZI* OPTION VIOLATED # 02748 M01S02722.ssdebug +++| BEGIN 02749 M01S02723.ssdebug +++| DBERRCODE = S"DVIOL$YZ"; 02750 M01S02724.ssdebug +++| DBERR(DBERRCODE); 02751 M01S02725.ssdebug +++| RETURN; 02752 M01S02726.ssdebug +++| END 02753 M01S02727.ssdebug +++| 02754 M01S02728.ssdebug +++|# 02755 M01S02729.ssdebug +++|* *YI*, *ZI* MUST BE SPECIFIED FOR OP=RC. 02756 M01S02730.ssdebug +++|# 02757 M01S02731.ssdebug +++| 02758 M01S02732.ssdebug +++| IF DBARG$OP[0] EQ "RC" ## 02759 M01S02733.ssdebug +++| AND DBARG$YI[0] EQ -1 02760 M01S02734.ssdebug +++| THEN # *YI*, *ZI* OPTION VIOLATED # 02761 M01S02735.ssdebug +++| BEGIN 02762 M01S02736.ssdebug +++| DBERRCODE = S"DVIOL$YZ"; 02763 M01S02737.ssdebug +++| DBERR(DBERRCODE); 02764 M01S02738.ssdebug +++| RETURN; 02765 M01S02739.ssdebug +++| END 02766 M01S02740.ssdebug +++| 02767 M01S02741.ssdebug +++|# 02768 M01S02742.ssdebug +++|* FOR OP=RS, ONE AND ONLY ONE OF THE FOLLOWING MUST BE 02769 M01S02743.ssdebug +++|* SPECIFIED: *CN*, OR *YI*. FOR OP=CF, ONE AND ONLY 02770 M01S02744.ssdebug +++|* ONE OF THE FOLLOWING MUST BE SPECIFIED: *CN*, *YI*, OR *FO*. 02771 M01S02745.ssdebug +++|# 02772 M01S02746.ssdebug +++| 02773 M01S02747.ssdebug +++| IF DBARG$OP[0] EQ "RS" OR DBARG$OP[0] EQ "CF" 02774 M01S02748.ssdebug +++| THEN 02775 M01S02749.ssdebug +++| BEGIN # CHECK *CN*, *YI*, AND *FO* # 02776 M01S02750.ssdebug +++| OPTCOUNT = 0; 02777 M01S02751.ssdebug +++| IF DBARG$WCN[0] NQ 0 02778 M01S02752.ssdebug +++| THEN # *CN* SPECIFIED # 02779 M01S02753.ssdebug +++| BEGIN 02780 M01S02754.ssdebug +++| OPTCOUNT = OPTCOUNT + 1; 02781 M01S02755.ssdebug +++| END 02782 M01S02756.ssdebug +++| 02783 M01S02757.ssdebug +++| IF DBARG$YI[0] GQ 0 02784 M01S02758.ssdebug +++| THEN # *YI* SPECIFIED # 02785 M01S02759.ssdebug +++| BEGIN 02786 M01S02760.ssdebug +++| OPTCOUNT = OPTCOUNT + 1; 02787 M01S02761.ssdebug +++| END 02788 M01S02762.ssdebug +++| 02789 M01S02763.ssdebug +++| IF DBARG$OP[0] EQ "CF" ## 02790 M01S02764.ssdebug +++| AND DBARG$FO[0] GR 0 02791 M01S02765.ssdebug +++| THEN # *FO* SPECIFIED AND OP=CF # 02792 M01S02766.ssdebug +++| BEGIN 02793 M01S02767.ssdebug +++| OPTCOUNT = OPTCOUNT + 1; 02794 M01S02768.ssdebug +++| DBERRCODE = S"DVIOL$VFOX"; 02795 M01S02769.ssdebug +++| END 02796 M01S02770.ssdebug +++| 02797 M01S02771.ssdebug +++| IF OPTCOUNT NQ 1 02798 M01S02772.ssdebug +++| THEN # OPTION VIOLATED # 02799 M01S02773.ssdebug +++| BEGIN 02800 M01S02774.ssdebug +++| DBERR(DBERRCODE); 02801 M01S02775.ssdebug +++| RETURN; 02802 M01S02776.ssdebug +++| END 02803 M01S02777.ssdebug +++| 02804 M01S02778.ssdebug +++| END # CHECK *CN*, *YI*, AND *FO* # 02805 M01S02779.ssdebug +++| 02806 M01S02780.ssdebug +++| 02807 M01S02781.ssdebug +++|# 02808 M01S02782.ssdebug +++|* *FL* IS REQUIRED FOR OP=CF, AND NOT ALLOWED FOR ANY 02809 M01S02783.ssdebug +++|* OTHER DIRECTIVES. 02810 M01S02784.ssdebug +++|# 02811 M01S02785.ssdebug +++| 02812 M01S02786.ssdebug +++| IF (DBARG$OP[0] EQ "CF" AND DBARG$FL[0] LQ 0) 02813 M01S02787.ssdebug +++| OR (DBARG$OP[0] NQ "CF" AND DBARG$FL[0] GR 0) 02814 M01S02788.ssdebug +++| THEN # *FL* OPTION VIOLATED # 02815 M01S02789.ssdebug +++| BEGIN 02816 M01S02790.ssdebug +++| DBERRCODE = S"DVIOL$FL"; 02817 M01S02791.ssdebug +++| DBERR(DBERRCODE); 02818 M01S02792.ssdebug +++| RETURN; 02819 M01S02793.ssdebug +++| END 02820 M01S02794.ssdebug +++| 02821 M01S02795.ssdebug +++|# 02822 M01S02796.ssdebug +++|* EITHER *ON* OR *OF* (BUT NOT BOTH) MUST BE SPECIFIED FOR 02823 M01S02797.ssdebug +++|* OP=CF, BUT NEITHER MAY BE USED WITH OTHER DIRECTIVES. 02824 M01S02798.ssdebug +++|# 02825 M01S02799.ssdebug +++| 02826 M01S02800.ssdebug +++| IF (DBARG$OP[0] EQ "CF" AND DBARG$ON[0] EQ DBARG$OF[0]) 02827 M01S02801.ssdebug +++| OR (DBARG$OP[0] NQ "CF" 02828 M01S02802.ssdebug +++| AND ((DBARG$ON[0] NQ 0) OR (DBARG$OF[0] NQ 0))) 02829 M01S02803.ssdebug +++| THEN # *ON*, *OF* OPTION VIOLATED # 02830 M01S02804.ssdebug +++| BEGIN 02831 M01S02805.ssdebug +++| DBERRCODE = S"DVIOL$ONOF"; 02832 M01S02806.ssdebug +++| DBERR(DBERRCODE); 02833 M01S02807.ssdebug +++| RETURN; 02834 M01S02808.ssdebug +++| END 02835 M01S02809.ssdebug +++| 02836 M01S02810.ssdebug +++|# 02837 M01S02811.ssdebug +++|* CHECK FOR A VALID VALUE OF *FL*. 02838 M01S02812.ssdebug +++|# 02839 M01S02813.ssdebug +++| 02840 M01S02814.ssdebug +++| IF DBARG$OP[0] EQ "CF" 02841 M01S02815.ssdebug +++| THEN # CHANGE FLAG DIRECTIVE # 02842 M01S02816.ssdebug +++| BEGIN # CHECK *FL* # 02843 M01S02817.ssdebug +++| FOUND = FALSE; 02844 M01S02818.ssdebug +++| FASTFOR I = 0 STEP 1 WHILE NOT FOUND AND I LQ DBFLAGNM 02845 M01S02819.ssdebug +++| DO 02846 M01S02820.ssdebug +++| BEGIN 02847 M01S02821.ssdebug +++| IF DBARG$FL[0] EQ DB$FLAG[I] 02848 M01S02822.ssdebug +++| THEN 02849 M01S02823.ssdebug +++| BEGIN 02850 M01S02824.ssdebug +++| FOUND = TRUE; 02851 M01S02825.ssdebug +++| DBARG$FLCD[0] = DB$FLCODE[I]; # SAVE STATUS VALUE # 02852 M01S02826.ssdebug +++| DBARG$FLSD[0] = DB$FLSTR[I]; # AU DETAIL FLAG # 02853 M01S02827.ssdebug +++| END 02854 M01S02828.ssdebug +++| 02855 M01S02829.ssdebug +++| END 02856 M01S02830.ssdebug +++| 02857 M01S02831.ssdebug +++| IF NOT FOUND 02858 M01S02832.ssdebug +++| THEN 02859 M01S02833.ssdebug +++| BEGIN 02860 M01S02834.ssdebug +++| DBERRCODE = S"DVIOL$FL"; 02861 M01S02835.ssdebug +++| DBERR(DBERRCODE); 02862 M01S02836.ssdebug +++| RETURN; 02863 M01S02837.ssdebug +++| END 02864 M01S02838.ssdebug +++| 02865 M01S02839.ssdebug +++| END # CHECK *FL* # 02866 M01S02840.ssdebug +++| 02867 M01S02841.ssdebug +++| FLAG = 0; # NO ERRORS DETECTED # 02868 M01S02842.ssdebug +++| RETURN; 02869 M01S02843.ssdebug +++| 02870 M01S02844.ssdebug +++| END # DBOPT # 02871 M01S02845.ssdebug +++| 02872 M01S02846.ssdebug +++| TERM 02873 M01S02847.ssdebug +++|PROC DBRDFIL; 02874 M01S02848.ssdebug +++|# TITLE DBRDFIL - PROCESS READ FILE DIRECTIVE. # 02875 M01S02849.ssdebug +++| 02876 M01S02850.ssdebug +++| BEGIN # DBRDFIL # 02877 M01S02851.ssdebug +++| 02878 M01S02852.ssdebug +++|# 02879 M01S02853.ssdebug +++|** DBRDFIL - PROCESS READ FILE DIRECTIVE. 02880 M01S02854.ssdebug +++|* 02881 M01S02855.ssdebug +++|* PROC DBRDFIL. 02882 M01S02856.ssdebug +++|* 02883 M01S02857.ssdebug +++|* ENTRY THE CRACKED AND SYNTAX CHECKED DIRECTIVE IS 02884 M01S02858.ssdebug +++|* IN THE COMMON AREA DEFINED IN *COMTDBP*. 02885 M01S02859.ssdebug +++|* THE CATALOG IS OPEN FOR THE SPECIFIED FAMILY 02886 M01S02860.ssdebug +++|* AND SUBFAMILY. 02887 M01S02861.ssdebug +++|* P<CPR> = FWA OF CALLSS PARAMETER BLOCK. 02888 M01S02862.ssdebug +++|* (USER$FAM) = USER-S FAMILY NAME. 02889 M01S02863.ssdebug +++|* (USER$UI) = USER-S USER INDEX. 02890 M01S02864.ssdebug +++|* 02891 M01S02865.ssdebug +++|* EXIT THE DIRECTIVE HAS BEEN PROCESSED AND 02892 M01S02866.ssdebug +++|* THE CATALOG HAS BEEN CLOSED OR AN ERROR 02893 M01S02867.ssdebug +++|* CONDITION HAS BEEN DETECTED. 02894 M01S02868.ssdebug +++|* 02895 M01S02869.ssdebug +++|* MESSAGES SSDEBUG ABNORMAL, DBRDFIL. 02896 M01S02870.ssdebug +++|* 02897 M01S02871.ssdebug +++|* NOTES THE CARTRIDGE IS LOADED AND A REQUEST IS SENT 02898 M01S02872.ssdebug +++|* TO EXEC TO COPY EACH RAW AU IN THE CHAIN 02899 M01S02873.ssdebug +++|* TO THE SPECIFIED FILE. IF AN OFF CARTRIDGE 02900 M01S02874.ssdebug +++|* LINK EXISTS THE NEXT CARTRIDGE IS LOADED. THIS 02901 M01S02875.ssdebug +++|* SEQUENCE IS REPEATED UNTIL THE ENTIRE FILE IS 02902 M01S02876.ssdebug +++|* COPIED. IF FROZEN CHAIN FLAG IS SET 02903 M01S02877.ssdebug +++|* *SSDEBUG* ABORTS WITH A DAYFILE MESSAGE. 02904 M01S02878.ssdebug +++|# 02905 M01S02879.ssdebug +++| 02906 M01S02880.ssdebug +++|# 02907 M01S02881.ssdebug +++|**** PROC DBRDFIL - XREF LIST BEGIN. 02908 M01S02882.ssdebug +++|# 02909 M01S02883.ssdebug +++| 02910 M01S02884.ssdebug +++| XREF 02911 M01S02885.ssdebug +++| BEGIN 02912 M01S02886.ssdebug +++| PROC CCLOSE; # CLOSES THE CATALOG # 02913 M01S02887.ssdebug +++| PROC CGETFCT; # GET *FCT* ENTRY # 02914 M01S02888.ssdebug +++| PROC DBCALL4; # ISSUES A TYPE 4 UCP REQUEST # 02915 M01S02889.ssdebug +++| PROC DBERR; # ERROR PROCESSOR # 02916 M01S02890.ssdebug +++| PROC DBRESP; # PROCESSES RESPONSE FROM EXEC # 02917 M01S02891.ssdebug +++| PROC MESSAGE; # DISPLAYS MESSAGES # 02918 M01S02892.ssdebug +++| PROC PFD; # *PFM* REQUEST INTERFACE # 02919 M01S02893.ssdebug +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 02920 M01S02894.ssdebug +++| OR RETURN # 02921 M01S02895.ssdebug +++| PROC RETERN; # RETURNS A FILE # 02922 M01S02896.ssdebug +++| PROC SETPFP; # SET FAMILY AND USER INDEX # 02923 M01S02897.ssdebug +++| PROC ZSETFET; # INITIALIZES A FET # 02924 M01S02898.ssdebug +++| END 02925 M01S02899.ssdebug +++| 02926 M01S02900.ssdebug +++|# 02927 M01S02901.ssdebug +++|**** PROC DBRDFIL - XREF LIST END. 02928 M01S02902.ssdebug +++|# 02929 M01S02903.ssdebug +++| 02930 M01S02904.ssdebug +++| DEF PROCNAME #"DBRDFIL."#; # PROC NAME # 02931 M01S02905.ssdebug +++| 02932 M01S02906.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 02933 M01S02907.ssdebug +++|*CALL COMBFAS 02934 M01S02908.ssdebug +++|*CALL COMBCMS 02935 M01S02909.ssdebug +++|*CALL COMBCPR 02936 M01S02910.ssdebug +++|*CALL COMBMCT 02937 M01S02911.ssdebug +++|*CALL COMBPFP 02938 M01S02912.ssdebug +++|*CALL COMSPFM 02939 M01S02913.ssdebug +++|*CALL COMTDBG 02940 M01S02914.ssdebug +++|*CALL COMTDBP 02941 M01S02915.ssdebug +++|*CALL COMTDER 02942 M01S02916.ssdebug +++| 02943 M01S02917.ssdebug +++| ITEM ANOTHERVOL B; # MORE VOLUMES ON CARTRIDGE # 02944 M01S02918.ssdebug +++| ITEM CHNCNTRL I; # CHAIN CONTROL FIELD # 02945 M01S02919.ssdebug +++| ITEM FCTBADR I; # FWA OF BUFFER FOR *FCT* # 02946 M01S02920.ssdebug +++| ITEM FLAG I; # ERROR STATUS # 02947 M01S02921.ssdebug +++| ITEM GTNXTCART B; # GET NEXT CARTRIDGE FLAG # 02948 M01S02922.ssdebug +++| ITEM LAST B; # END OF CHAIN INDICATOR # 02949 M01S02923.ssdebug +++| ITEM LINK I; # OFF CARTRIDGE LINK # 02950 M01S02924.ssdebug +++| ITEM NXTFCT I; # NEXT *FCT* ENTRY ORDINAL # 02951 M01S02925.ssdebug +++| ITEM NXTSTRM I; # NEXT AU IN THE CHAIN # 02952 M01S02926.ssdebug +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 02953 M01S02927.ssdebug +++| ITEM SH I; # STRIPE HIGH # 02954 M01S02928.ssdebug +++| ITEM SL I; # STRIPE LOW # 02955 M01S02929.ssdebug +++| ITEM TEMP I; # INTEGER SCRATCH # 02956 M01S02930.ssdebug +++| ARRAY FCTENT [0:0] P(FCTENTL);; # *FCT* ENTRY # 02957 M01S02931.ssdebug +++| ARRAY SCRFET [0:0] S(SFETL);; # SCRATCH FET # 02958 M01S02932.ssdebug +++| 02959 M01S02933.ssdebug +++| 02960 M01S02934.ssdebug +++|CONTROL EJECT; 02961 M01S02935.ssdebug +++| 02962 M01S02936.ssdebug +++|# 02963 M01S02937.ssdebug +++|* DEFINE THE USER-S FILE TO RECEIVE THE RAW AU DATA. 02964 M01S02938.ssdebug +++|# 02965 M01S02939.ssdebug +++| 02966 M01S02940.ssdebug +++| RESTPFP(PFP$RESUME); # RESTORE USER-S *PFP* # 02967 M01S02941.ssdebug +++| 02968 M01S02942.ssdebug +++| FLAG = 0; 02969 M01S02943.ssdebug +++| PFD("DEFINE",DBARG$PF[0],0,"RC",FLAG,0); 02970 M01S02944.ssdebug +++| IF FLAG NQ OK 02971 M01S02945.ssdebug +++| THEN # UNABLE TO DEFINE USER-S FILE # 02972 M01S02946.ssdebug +++| BEGIN 02973 M01S02947.ssdebug +++| DBERRCODE = S"DDEF$PF"; 02974 M01S02948.ssdebug +++| DBERR(DBERRCODE); 02975 M01S02949.ssdebug +++| RETURN; 02976 M01S02950.ssdebug +++| END 02977 M01S02951.ssdebug +++| 02978 M01S02952.ssdebug +++| ZSETFET(LOC(SCRFET[0]),DBARG$PF[0],0,0,SFETL); 02979 M01S02953.ssdebug +++| RETERN(SCRFET[0],RCL); 02980 M01S02954.ssdebug +++| 02981 M01S02955.ssdebug +++| GTNXTCART = TRUE; # INITIALIZE THE FLAGS # 02982 M01S02956.ssdebug +++| LINK = 0; 02983 M01S02957.ssdebug +++| ANOTHERVOL = FALSE; 02984 M01S02958.ssdebug +++| NXTFCT = DBARG$FO[0]; 02985 M01S02959.ssdebug +++| SL = INSPAU*DBARG$ST[0] + (INFTST - INSPAU); 02986 M01S02960.ssdebug +++| NXTSTRM = DBARG$ST[0]; 02987 M01S02961.ssdebug +++| LAST = FALSE; 02988 M01S02962.ssdebug +++| FCTBADR = LOC(FCTENT[0]); 02989 M01S02963.ssdebug +++| 02990 M01S02964.ssdebug +++|# 02991 M01S02965.ssdebug +++|* COPY EACH AU OF THE FILE. 02992 M01S02966.ssdebug +++|# 02993 M01S02967.ssdebug +++| 02994 M01S02968.ssdebug +++| REPEAT WHILE NOT LAST 02995 M01S02969.ssdebug +++| DO 02996 M01S02970.ssdebug +++| BEGIN # COPY RAW AU # 02997 M01S02971.ssdebug +++| IF GTNXTCART ## 02998 M01S02972.ssdebug +++| AND NOT ANOTHERVOL 02999 M01S02973.ssdebug +++| THEN 03000 M01S02974.ssdebug +++| BEGIN # GET NEXT CARTRIDGE # 03001 M01S02975.ssdebug +++| CGETFCT(DBARG$FM[0],DBARG$SB[0],DBARG$SMID[0],NXTFCT, 03002 M01S02976.ssdebug +++| FCTBADR,0,FLAG); 03003 M01S02977.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03004 M01S02978.ssdebug +++| THEN # UNABLE TO GET *FCT* ENTRY # 03005 M01S02979.ssdebug +++| BEGIN 03006 M01S02980.ssdebug +++| DBRESP(FLAG,0); 03007 M01S02981.ssdebug +++| RETURN; 03008 M01S02982.ssdebug +++| END 03009 M01S02983.ssdebug +++| 03010 M01S02984.ssdebug +++|# 03011 M01S02985.ssdebug +++|* CHECK FOR FROZEN CHAIN. 03012 M01S02986.ssdebug +++|# 03013 M01S02987.ssdebug +++| 03014 M01S02988.ssdebug +++| P<FCT> = FCTBADR; 03015 M01S02989.ssdebug +++| IF FCT$Y[0] EQ 0 AND FCT$Z[0] EQ 0 03016 M01S02990.ssdebug +++| THEN # NO CARTRIDGE FOR *FO* # 03017 M01S02991.ssdebug +++| BEGIN 03018 M01S02992.ssdebug +++| FLAG = CMASTAT"ORDERR"; 03019 M01S02993.ssdebug +++| DBRESP(FLAG,0); 03020 M01S02994.ssdebug +++| END 03021 M01S02995.ssdebug +++| 03022 M01S02996.ssdebug +++| FLAG = FCT$FRCF(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03023 M01S02997.ssdebug +++| IF FLAG EQ 1 03024 M01S02998.ssdebug +++| THEN # FROZEN CHAIN # 03025 M01S02999.ssdebug +++| BEGIN 03026 M01S03000.ssdebug +++| DBERRCODE = S"DFROZ$CHN"; 03027 M01S03001.ssdebug +++| DBERR(DBERRCODE); 03028 M01S03002.ssdebug +++| RETURN; 03029 M01S03003.ssdebug +++| END 03030 M01S03004.ssdebug +++| 03031 M01S03005.ssdebug +++| SETFCTX(NXTSTRM); 03032 M01S03006.ssdebug +++| TEMP = FCT$LEN(FWD,FPS); 03033 M01S03007.ssdebug +++| SH = SL + INSPAU*TEMP + INSPAU - 1; 03034 M01S03008.ssdebug +++| 03035 M01S03009.ssdebug +++|# 03036 M01S03010.ssdebug +++|* CHECK FOR BEGINNING OF VOLUME. 03037 M01S03011.ssdebug +++|# 03038 M01S03012.ssdebug +++| 03039 M01S03013.ssdebug +++| FLAG = FCT$CC(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03040 M01S03014.ssdebug +++| IF FLAG NQ CHAINCON"FIRST" ## 03041 M01S03015.ssdebug +++| AND FLAG NQ CHAINCON"ONLY" ## 03042 M01S03016.ssdebug +++| AND LINK EQ 0 # NOT CONTINUATION CARTRIDGE # 03043 M01S03017.ssdebug +++| THEN # INVALID STARTING AU # 03044 M01S03018.ssdebug +++| BEGIN 03045 M01S03019.ssdebug +++| DBERRCODE = S"DVIOL$ST"; 03046 M01S03020.ssdebug +++| DBERR(DBERRCODE); 03047 M01S03021.ssdebug +++| RETURN; 03048 M01S03022.ssdebug +++| END 03049 M01S03023.ssdebug +++| 03050 M01S03024.ssdebug +++|# 03051 M01S03025.ssdebug +++|* CHECK FOR ALLOCATED AU. 03052 M01S03026.ssdebug +++|# 03053 M01S03027.ssdebug +++| 03054 M01S03028.ssdebug +++| FLAG = FCT$FBF(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03055 M01S03029.ssdebug +++| IF FLAG EQ 0 03056 M01S03030.ssdebug +++| THEN # AU NOT ALLOCATED # 03057 M01S03031.ssdebug +++| BEGIN 03058 M01S03032.ssdebug +++| DBERRCODE = S"DVIOL$ST"; 03059 M01S03033.ssdebug +++| DBERR(DBERRCODE); 03060 M01S03034.ssdebug +++| RETURN; 03061 M01S03035.ssdebug +++| END 03062 M01S03036.ssdebug +++| 03063 M01S03037.ssdebug +++|# 03064 M01S03038.ssdebug +++|* CHECK FOR AU CONFLICT. 03065 M01S03039.ssdebug +++|# 03066 M01S03040.ssdebug +++| 03067 M01S03041.ssdebug +++| FLAG = FCT$AUCF(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03068 M01S03042.ssdebug +++| IF FLAG NQ 0 03069 M01S03043.ssdebug +++| THEN # INTERSECTING CHAIN # 03070 M01S03044.ssdebug +++| BEGIN 03071 M01S03045.ssdebug +++| DBERRCODE = S"DVIOL$ST"; 03072 M01S03046.ssdebug +++| DBERR(DBERRCODE); 03073 M01S03047.ssdebug +++| RETURN; 03074 M01S03048.ssdebug +++| END 03075 M01S03049.ssdebug +++| 03076 M01S03050.ssdebug +++|# 03077 M01S03051.ssdebug +++|* CHECK FOR START OF FRAGMENT. 03078 M01S03052.ssdebug +++|# 03079 M01S03053.ssdebug +++| 03080 M01S03054.ssdebug +++| FLAG = FCT$SFF(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03081 M01S03055.ssdebug +++| IF FLAG NQ 0 03082 M01S03056.ssdebug +++| THEN # START OF FRAGMENT # 03083 M01S03057.ssdebug +++| BEGIN 03084 M01S03058.ssdebug +++| DBERRCODE = S"DVIOL$ST"; 03085 M01S03059.ssdebug +++| DBERR(DBERRCODE); 03086 M01S03060.ssdebug +++| RETURN; 03087 M01S03061.ssdebug +++| END 03088 M01S03062.ssdebug +++| 03089 M01S03063.ssdebug +++|# 03090 M01S03064.ssdebug +++|* LOAD THE CARTRIDGE. 03091 M01S03065.ssdebug +++|# 03092 M01S03066.ssdebug +++| 03093 M01S03067.ssdebug +++| P<FCT> = FCTBADR; 03094 M01S03068.ssdebug +++| DBCALL4(REQTYP4"LOAD$CART",FCT$Y[0],FCT$Z[0],0,0,0,0, 03095 M01S03069.ssdebug +++| RESPCODE); 03096 M01S03070.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03097 M01S03071.ssdebug +++| THEN # UNABLE TO LOAD CARTRIDGE # 03098 M01S03072.ssdebug +++| BEGIN 03099 M01S03073.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03100 M01S03074.ssdebug +++| RETURN; 03101 M01S03075.ssdebug +++| END 03102 M01S03076.ssdebug +++| 03103 M01S03077.ssdebug +++| TRNSPORT = CPR$DRD[0]; # SET UP TRANSPORT ID # 03104 M01S03078.ssdebug +++| GTNXTCART = FALSE; 03105 M01S03079.ssdebug +++| END # GET NEXT CARTRIDGE # 03106 M01S03080.ssdebug +++| 03107 M01S03081.ssdebug +++|# 03108 M01S03082.ssdebug +++|* COPY THE RAW AU. 03109 M01S03083.ssdebug +++|# 03110 M01S03084.ssdebug +++| 03111 M01S03085.ssdebug +++| ANOTHERVOL = FALSE; 03112 M01S03086.ssdebug +++| DBCALL4(REQTYP4"CP$RAW$AU",FCT$Y[0],FCT$Z[0],SL,SH, 03113 M01S03087.ssdebug +++| USER$FAM[0],USER$UI[0],RESPCODE); 03114 M01S03088.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03115 M01S03089.ssdebug +++| THEN # UNABLE TO COPY RAW AU # 03116 M01S03090.ssdebug +++| BEGIN 03117 M01S03091.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03118 M01S03092.ssdebug +++| RETURN; 03119 M01S03093.ssdebug +++| END 03120 M01S03094.ssdebug +++| 03121 M01S03095.ssdebug +++|# 03122 M01S03096.ssdebug +++|* GET THE NEXT AU IN THE CHAIN. 03123 M01S03097.ssdebug +++|# 03124 M01S03098.ssdebug +++| 03125 M01S03099.ssdebug +++| LINK = FCT$CLKOCL(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03126 M01S03100.ssdebug +++| IF LINK NQ 0 03127 M01S03101.ssdebug +++| THEN # OFF CARTRIDGE LINK TEST # 03128 M01S03102.ssdebug +++| BEGIN # OFF CARTRIDGE LINK EXISTS # 03129 M01S03103.ssdebug +++| GTNXTCART = TRUE; 03130 M01S03104.ssdebug +++| IF LINK EQ 1 03131 M01S03105.ssdebug +++| THEN # USE FIRST OFF CARTRIDGE LINK # 03132 M01S03106.ssdebug +++| BEGIN 03133 M01S03107.ssdebug +++| NXTFCT = FCT$OCL[0] + MINFO; 03134 M01S03108.ssdebug +++| END 03135 M01S03109.ssdebug +++| 03136 M01S03110.ssdebug +++| IF LINK EQ 2 03137 M01S03111.ssdebug +++| THEN # USE SECOND OFF CARTRIDGE LINK # 03138 M01S03112.ssdebug +++| BEGIN 03139 M01S03113.ssdebug +++| NXTFCT = FCT$OCL1[0] + MINFO; 03140 M01S03114.ssdebug +++| END 03141 M01S03115.ssdebug +++| 03142 M01S03116.ssdebug +++| IF LINK EQ 3 03143 M01S03117.ssdebug +++| THEN # USE THIRD OFF CARTRIDGE LINK # 03144 M01S03118.ssdebug +++| BEGIN 03145 M01S03119.ssdebug +++| NXTFCT = FCT$OCL2[0] + MINFO; 03146 M01S03120.ssdebug +++| END 03147 M01S03121.ssdebug +++| 03148 M01S03122.ssdebug +++| DBCALL4(REQTYP4"UNLD$CART",FCT$Y[0],FCT$Z[0],0,0,0,0, 03149 M01S03123.ssdebug +++| RESPCODE); 03150 M01S03124.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03151 M01S03125.ssdebug +++| THEN # UNABLE TO UNLOAD CARTRIDGE # 03152 M01S03126.ssdebug +++| BEGIN 03153 M01S03127.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03154 M01S03128.ssdebug +++| RETURN; 03155 M01S03129.ssdebug +++| END 03156 M01S03130.ssdebug +++| 03157 M01S03131.ssdebug +++| NXTSTRM = FCT$LINK(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03158 M01S03132.ssdebug +++| SL = INSPAU*NXTSTRM + (INFTST - INSPAU); 03159 M01S03133.ssdebug +++| END # OFF CARTRIDGE LINK EXISTS # 03160 M01S03134.ssdebug +++| 03161 M01S03135.ssdebug +++| IF LINK EQ 0 03162 M01S03136.ssdebug +++| THEN # NO OFF CARTRIGE LINK # 03163 M01S03137.ssdebug +++| BEGIN # NO OFF CARTRIDGE LINK # 03164 M01S03138.ssdebug +++| CHNCNTRL = FCT$CC(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03165 M01S03139.ssdebug +++| IF CHNCNTRL EQ CHAINCON"LAST" ## 03166 M01S03140.ssdebug +++| OR CHNCNTRL EQ CHAINCON"ONLY" 03167 M01S03141.ssdebug +++| THEN # END OF CHAIN # 03168 M01S03142.ssdebug +++| BEGIN 03169 M01S03143.ssdebug +++| LAST = TRUE; 03170 M01S03144.ssdebug +++| TEST DUMMY; 03171 M01S03145.ssdebug +++| END 03172 M01S03146.ssdebug +++| 03173 M01S03147.ssdebug +++| NXTSTRM = FCT$LINK(FCT$WD(NXTSTRM),FCT$WP(NXTSTRM)); 03174 M01S03148.ssdebug +++| SL = INSPAU*NXTSTRM + (INFTST - INSPAU); 03175 M01S03149.ssdebug +++| SETFCTX(NXTSTRM); 03176 M01S03150.ssdebug +++| TEMP = FCT$LEN(FWD,FPS); 03177 M01S03151.ssdebug +++| SH = SL + INSPAU*TEMP + INSPAU - 1; 03178 M01S03152.ssdebug +++| ANOTHERVOL = TRUE; 03179 M01S03153.ssdebug +++| END # NO OFF CARTRIDGE LINK # 03180 M01S03154.ssdebug +++| 03181 M01S03155.ssdebug +++| END # COPY RAW AU # 03182 M01S03156.ssdebug +++| 03183 M01S03157.ssdebug +++|# 03184 M01S03158.ssdebug +++|* UNLOAD THE CARTRIDGE. 03185 M01S03159.ssdebug +++|# 03186 M01S03160.ssdebug +++| 03187 M01S03161.ssdebug +++| DBCALL4(REQTYP4"UNLD$CART",FCT$Y[0],FCT$Z[0],0,0,0,0, 03188 M01S03162.ssdebug +++| RESPCODE); 03189 M01S03163.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03190 M01S03164.ssdebug +++| THEN # PROCESS ERROR RESPONSE # 03191 M01S03165.ssdebug +++| BEGIN 03192 M01S03166.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03193 M01S03167.ssdebug +++| RETURN; 03194 M01S03168.ssdebug +++| END 03195 M01S03169.ssdebug +++| 03196 M01S03170.ssdebug +++| CCLOSE(DBARG$FM[0],DBARG$SB[0],0,FLAG); 03197 M01S03171.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03198 M01S03172.ssdebug +++| THEN # UNABLE TO CLOSE CATALOG # 03199 M01S03173.ssdebug +++| BEGIN 03200 M01S03174.ssdebug +++| DBRESP(FLAG,0); 03201 M01S03175.ssdebug +++| END 03202 M01S03176.ssdebug +++| 03203 M01S03177.ssdebug +++| RETURN; 03204 M01S03178.ssdebug +++| 03205 M01S03179.ssdebug +++| END # DBRDFILE # 03206 M01S03180.ssdebug +++| 03207 M01S03181.ssdebug +++| TERM 03208 M01S03182.ssdebug +++|PROC DBRDSTM; 03209 M01S03183.ssdebug +++|# TITLE DBRDSTM - PROCESS READ AU DIRECTIVE. # 03210 M01S03184.ssdebug +++| 03211 M01S03185.ssdebug +++| BEGIN # DBRDSTM # 03212 M01S03186.ssdebug +++| 03213 M01S03187.ssdebug +++|# 03214 M01S03188.ssdebug +++|** DBRDSTM - PROCESS READ AU DIRECTIVE. 03215 M01S03189.ssdebug +++|* 03216 M01S03190.ssdebug +++|* PROC DBRDSTM. 03217 M01S03191.ssdebug +++|* 03218 M01S03192.ssdebug +++|* ENTRY THE CRACKED AND SYNTAX CHECKED DIRECTIVE IS 03219 M01S03193.ssdebug +++|* IN THE COMMON AREA DEFINED IN *COMTDBG*. 03220 M01S03194.ssdebug +++|* THE MAP FOR THE SPECIFIED SM IS OPEN. 03221 M01S03195.ssdebug +++|* P<CPR> = FWA OF CALLSS PARAMETER BLOCK. 03222 M01S03196.ssdebug +++|* (USER$FAM) = USER-S FAMILY NAME. 03223 M01S03197.ssdebug +++|* (USER$UI) = USER-S USER INDEX. 03224 M01S03198.ssdebug +++|* 03225 M01S03199.ssdebug +++|* EXIT THE DIRECTIVE HAS BEEN PROCESSED AND 03226 M01S03200.ssdebug +++|* THE MAP HAS BEEN CLOSED OR AN ERROR 03227 M01S03201.ssdebug +++|* CONDITION HAS BEEN DETECTED. 03228 M01S03202.ssdebug +++|* 03229 M01S03203.ssdebug +++|* MESSAGES SSDEBUG ABNORMAL, DBRDSTM. 03230 M01S03204.ssdebug +++|* 03231 M01S03205.ssdebug +++|* NOTES THE SPECIFIED CARTRIDGE IS LOADED AND A REQUEST 03232 M01S03206.ssdebug +++|* IS SENT TO EXEC TO COPY EACH SELECTED AU TO 03233 M01S03207.ssdebug +++|* THE SPECIFIED FILE. 03234 M01S03208.ssdebug +++|# 03235 M01S03209.ssdebug +++| 03236 M01S03210.ssdebug +++|# 03237 M01S03211.ssdebug +++|**** PROC DBRDSTM - XREF LIST BEGIN. 03238 M01S03212.ssdebug +++|# 03239 M01S03213.ssdebug +++| 03240 M01S03214.ssdebug +++| XREF 03241 M01S03215.ssdebug +++| BEGIN 03242 M01S03216.ssdebug +++| PROC DBCALL4; # ISSUES TYPE 4 UCP REQUEST # 03243 M01S03217.ssdebug +++| PROC DBERR; # ERROR PROCESSOR # 03244 M01S03218.ssdebug +++| PROC DBRESP; # PROCESSES RESPONSE FROM EXEC # 03245 M01S03219.ssdebug +++| PROC DBVSN; # SEARCH SM MAP FOR A VSN # 03246 M01S03220.ssdebug +++| PROC MCLOSE; # CLOSES SMMAP # 03247 M01S03221.ssdebug +++| PROC MESSAGE; # DISPLAYS MESSAGES # 03248 M01S03222.ssdebug +++| PROC PFD; # *PFM* REQUEST INTERFACE # 03249 M01S03223.ssdebug +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 03250 M01S03224.ssdebug +++| OR RETURN # 03251 M01S03225.ssdebug +++| PROC RETERN; # RETURNS A FILE # 03252 M01S03226.ssdebug +++| PROC SETPFP; # SET FAMILY AND USER INDEX # 03253 M01S03227.ssdebug +++| PROC ZSETFET; # INITIALIZES A FET # 03254 M01S03228.ssdebug +++| END 03255 M01S03229.ssdebug +++| 03256 M01S03230.ssdebug +++|# 03257 M01S03231.ssdebug +++|**** PROC DBRDSTM - XREF LIST END. 03258 M01S03232.ssdebug +++|# 03259 M01S03233.ssdebug +++| 03260 M01S03234.ssdebug +++| DEF PROCNAME #"DBRDSTM."#; # PROC NAME # 03261 M01S03235.ssdebug +++| 03262 M01S03236.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 03263 M01S03237.ssdebug +++|*CALL COMBFAS 03264 M01S03238.ssdebug +++|*CALL COMBCMS 03265 M01S03239.ssdebug +++|*CALL COMBCPR 03266 M01S03240.ssdebug +++|*CALL COMBMAP 03267 M01S03241.ssdebug +++|*CALL COMBPFP 03268 M01S03242.ssdebug +++|*CALL COMSPFM 03269 M01S03243.ssdebug +++|*CALL COMTDBG 03270 M01S03244.ssdebug +++|*CALL COMTDBP 03271 M01S03245.ssdebug +++|*CALL COMTDER 03272 M01S03246.ssdebug +++| 03273 M01S03247.ssdebug +++| ITEM FLAG I; # ERROR STATUS # 03274 M01S03248.ssdebug +++| ITEM I I; # LOOP INDUCTION VARIABLE # 03275 M01S03249.ssdebug +++| ITEM RESPCODE I; # RESPONSE CODE # 03276 M01S03250.ssdebug +++| ITEM STRIPELO I; # INITIAL STRIPE # 03277 M01S03251.ssdebug +++| ITEM STRIPEHI I; # LAST STRIPE # 03278 M01S03252.ssdebug +++| ITEM Y I; # Y COORDINATE # 03279 M01S03253.ssdebug +++| ITEM Z I; # Z COORDINATE # 03280 M01S03254.ssdebug +++| 03281 M01S03255.ssdebug +++| ARRAY CMAPENT [0:0] P(MAPENTL);; # SMMAP ENTRY # 03282 M01S03256.ssdebug +++| ARRAY SCRFET [0:0] S(SFETL);; # SCRATCH FET # 03283 M01S03257.ssdebug +++| 03284 M01S03258.ssdebug +++|CONTROL EJECT; 03285 M01S03259.ssdebug +++| 03286 M01S03260.ssdebug +++|# 03287 M01S03261.ssdebug +++|* DEFINE THE USER-S FILE TO RECEIVE THE RAW AU DATA. 03288 M01S03262.ssdebug +++|# 03289 M01S03263.ssdebug +++| 03290 M01S03264.ssdebug +++| RESTPFP(PFP$RESUME); # RESTORE USER-S *PFP* # 03291 M01S03265.ssdebug +++| 03292 M01S03266.ssdebug +++| FLAG = 0; 03293 M01S03267.ssdebug +++| PFD("DEFINE",DBARG$PF[0],0,"RC",FLAG,0); 03294 M01S03268.ssdebug +++| IF FLAG NQ OK 03295 M01S03269.ssdebug +++| THEN # UNABLE TO DEFINE USER-S FILE # 03296 M01S03270.ssdebug +++| BEGIN 03297 M01S03271.ssdebug +++| DBERRCODE = S"DDEF$PF"; 03298 M01S03272.ssdebug +++| DBERR(DBERRCODE); 03299 M01S03273.ssdebug +++| RETURN; 03300 M01S03274.ssdebug +++| END 03301 M01S03275.ssdebug +++| 03302 M01S03276.ssdebug +++| ZSETFET(LOC(SCRFET[0]),DBARG$PF[0],0,0,SFETL); 03303 M01S03277.ssdebug +++| RETERN(SCRFET[0],RCL); 03304 M01S03278.ssdebug +++| 03305 M01S03279.ssdebug +++|# 03306 M01S03280.ssdebug +++|* LOCATE THE CARTRIDGE. 03307 M01S03281.ssdebug +++|# 03308 M01S03282.ssdebug +++| 03309 M01S03283.ssdebug +++| Y = DBARG$YI[0]; # COORDINATES SPECIFIED, IF ANY # 03310 M01S03284.ssdebug +++| Z = DBARG$ZI[0]; 03311 M01S03285.ssdebug +++| 03312 M01S03286.ssdebug +++| IF DBARG$D[0] GQ -1 03313 M01S03287.ssdebug +++| THEN # CARTRIDGE IN INPUT DRAWER # 03314 M01S03288.ssdebug +++| BEGIN 03315 M01S03289.ssdebug +++| Z = SM$ENT$TY; # SET ENTRY TRAY # 03316 M01S03290.ssdebug +++| Y = 0; 03317 M01S03291.ssdebug +++| END 03318 M01S03292.ssdebug +++| 03319 M01S03293.ssdebug +++| IF DBARG$WCN[0] NQ 0 03320 M01S03294.ssdebug +++| THEN 03321 M01S03295.ssdebug +++| BEGIN # SEARCH SMMAP FOR THE VSN # 03322 M01S03296.ssdebug +++| DBVSN(Y,Z,CMAPENT[0],FLAG); 03323 M01S03297.ssdebug +++| IF FLAG NQ OK 03324 M01S03298.ssdebug +++| THEN # VSN NOT FOUND # 03325 M01S03299.ssdebug +++| BEGIN 03326 M01S03300.ssdebug +++| DBERRCODE = S"DVSN$NFND"; 03327 M01S03301.ssdebug +++| DBERR(DBERRCODE); 03328 M01S03302.ssdebug +++| RETURN; 03329 M01S03303.ssdebug +++| END 03330 M01S03304.ssdebug +++| 03331 M01S03305.ssdebug +++| END # SEARCH SMMAP FOR THE VSN # 03332 M01S03306.ssdebug +++| 03333 M01S03307.ssdebug +++|# 03334 M01S03308.ssdebug +++|* LOAD THE CARTRIDGE. 03335 M01S03309.ssdebug +++|# 03336 M01S03310.ssdebug +++| 03337 M01S03311.ssdebug +++| DBCALL4(REQTYP4"LOAD$CART",Y,Z,0,0,0,0,RESPCODE); 03338 M01S03312.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03339 M01S03313.ssdebug +++| THEN # UNABLE TO LOAD CARTRIDGE # 03340 M01S03314.ssdebug +++| BEGIN 03341 M01S03315.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03342 M01S03316.ssdebug +++| RETURN; 03343 M01S03317.ssdebug +++| END 03344 M01S03318.ssdebug +++| 03345 M01S03319.ssdebug +++| TRNSPORT = CPR$DRD[0]; # SET UP TRANSPORT ID # 03346 M01S03320.ssdebug +++| 03347 M01S03321.ssdebug +++|# 03348 M01S03322.ssdebug +++|* COPY EACH OF THE SELECTED RAW AU. 03349 M01S03323.ssdebug +++|# 03350 M01S03324.ssdebug +++| 03351 M01S03325.ssdebug +++| STRIPELO = INSPAU*DBARG$SL[0] + ( INFTST - INSPAU ); 03352 M01S03326.ssdebug +++| STRIPEHI = INSPAU*(DBARG$SU[0] - DBARG$SL[0] + 1) + STRIPELO - 1; 03353 M01S03327.ssdebug +++| DBCALL4(REQTYP4"CP$RAW$AU",Y,Z,STRIPELO,STRIPEHI,USER$FAM[0], 03354 M01S03328.ssdebug +++| USER$UI[0],RESPCODE); 03355 M01S03329.ssdebug +++| 03356 M01S03330.ssdebug +++|# 03357 M01S03331.ssdebug +++|* UNLOAD THE CARTRIDGE. 03358 M01S03332.ssdebug +++|# 03359 M01S03333.ssdebug +++| 03360 M01S03334.ssdebug +++| DBCALL4(REQTYP4"UNLD$CART",Y,Z,0,0,0,0,RESPCODE); 03361 M01S03335.ssdebug +++| IF RESPCODE NQ RESPTYP4"OK4" 03362 M01S03336.ssdebug +++| THEN # UNABLE TO UNLOAD CARTRIDGE # 03363 M01S03337.ssdebug +++| BEGIN 03364 M01S03338.ssdebug +++| DBRESP(RESPCODE,TYP"TYP4"); 03365 M01S03339.ssdebug +++| RETURN; 03366 M01S03340.ssdebug +++| END 03367 M01S03341.ssdebug +++| 03368 M01S03342.ssdebug +++| IF DBARG$WCN[0] NQ 0 03369 M01S03343.ssdebug +++| THEN # MAP OPENED # 03370 M01S03344.ssdebug +++| BEGIN 03371 M01S03345.ssdebug +++| MCLOSE(DBARG$SMID[0],FLAG); 03372 M01S03346.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03373 M01S03347.ssdebug +++| THEN # UNABLE TO CLOSE SMMAP # 03374 M01S03348.ssdebug +++| BEGIN 03375 M01S03349.ssdebug +++| DBRESP(FLAG,0); 03376 M01S03350.ssdebug +++| END 03377 M01S03351.ssdebug +++| 03378 M01S03352.ssdebug +++| END 03379 M01S03353.ssdebug +++| 03380 M01S03354.ssdebug +++| RETURN; 03381 M01S03355.ssdebug +++| 03382 M01S03356.ssdebug +++| END # DBRDSTM # 03383 M01S03357.ssdebug +++| 03384 M01S03358.ssdebug +++| TERM 03385 M01S03359.ssdebug +++|PROC DBREL; 03386 M01S03360.ssdebug +++|# TITLE DBREL - RELEASE PROBLEM CHAIN AND CLEAR FLAGS. # 03387 M01S03361.ssdebug +++| 03388 M01S03362.ssdebug +++| BEGIN # DBREL # 03389 M01S03363.ssdebug +++| 03390 M01S03364.ssdebug +++|# 03391 M01S03365.ssdebug +++|** DBREL - RELEASE PROBLEM CHAIN AND CLEAR FLAGS. 03392 M01S03366.ssdebug +++|* 03393 M01S03367.ssdebug +++|* PROC DBREL. 03394 M01S03368.ssdebug +++|* 03395 M01S03369.ssdebug +++|* ENTRY THE CRACKED AND SYNTAX CHECKED DIRECTIVE PARAMETERS 03396 M01S03370.ssdebug +++|* ARE IN THE COMMON AREA DEFINED IN *COMTDBP*. 03397 M01S03371.ssdebug +++|* THE CATALOG IS OPEN FOR THE SPECIFIED FAMILY AND 03398 M01S03372.ssdebug +++|* SUBFAMILY. 03399 M01S03373.ssdebug +++|* P<CPR> = FWA OF CALLSS PARAMETER BLOCK. 03400 M01S03374.ssdebug +++|* 03401 M01S03375.ssdebug +++|* EXIT THE DIRECTIVE HAS BEEN PROCESSED AND THE 03402 M01S03376.ssdebug +++|* CATALOG HAS BEEN CLOSED OR AN ERROR CONDI- 03403 M01S03377.ssdebug +++|* TION HAS BEEN DETECTED. 03404 M01S03378.ssdebug +++|* 03405 M01S03379.ssdebug +++|* NOTES THE SELECTED *FCT* ENTRY IS CHECKED FOR THE 03406 M01S03380.ssdebug +++|* FROZEN CHAIN FLAG AND IF SET, A REQUEST IS 03407 M01S03381.ssdebug +++|* SENT TO EXEC TO RELEASE THE PROBLEM CHAIN. 03408 M01S03382.ssdebug +++|# 03409 M01S03383.ssdebug +++| 03410 M01S03384.ssdebug +++|# 03411 M01S03385.ssdebug +++|**** PROC DBREL - XREF LIST BEGIN. 03412 M01S03386.ssdebug +++|# 03413 M01S03387.ssdebug +++| 03414 M01S03388.ssdebug +++| XREF 03415 M01S03389.ssdebug +++| BEGIN 03416 M01S03390.ssdebug +++| PROC CCLOSE; # CLOSES THE CATALOG # 03417 M01S03391.ssdebug +++| PROC CGETFCT; # GET *FCT* ENTRY # 03418 M01S03392.ssdebug +++| PROC DBCALL3; # ISSUES A TYPE 3 UCP REQUEST # 03419 M01S03393.ssdebug +++| PROC DBERR; # ERROR PROCESSOR # 03420 M01S03394.ssdebug +++| PROC DBRESP; # PROCESS RESPONSE FROM EXEC # 03421 M01S03395.ssdebug +++| END 03422 M01S03396.ssdebug +++| 03423 M01S03397.ssdebug +++|# 03424 M01S03398.ssdebug +++|**** PROC DBREL - XREF LIST END. 03425 M01S03399.ssdebug +++|# 03426 M01S03400.ssdebug +++| 03427 M01S03401.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 03428 M01S03402.ssdebug +++|*CALL COMBFAS 03429 M01S03403.ssdebug +++|*CALL COMBCMS 03430 M01S03404.ssdebug +++|*CALL COMBCPR 03431 M01S03405.ssdebug +++|*CALL COMBMCT 03432 M01S03406.ssdebug +++|*CALL COMTDBG 03433 M01S03407.ssdebug +++|*CALL COMTDBP 03434 M01S03408.ssdebug +++|*CALL COMTDER 03435 M01S03409.ssdebug +++| 03436 M01S03410.ssdebug +++| ITEM FCTBADR I; # FWA OF BUFFER FOR *FCT* # 03437 M01S03411.ssdebug +++| ITEM FLAG I; # ERROR STATUS # 03438 M01S03412.ssdebug +++| ITEM RESPCODE I; # RESPONSE FROM EXEC # 03439 M01S03413.ssdebug +++| 03440 M01S03414.ssdebug +++| ARRAY FCTENT [0:0] P(FCTENTL);; # *FCT* ENTRY # 03441 M01S03415.ssdebug +++| 03442 M01S03416.ssdebug +++|CONTROL EJECT; 03443 M01S03417.ssdebug +++| 03444 M01S03418.ssdebug +++|# 03445 M01S03419.ssdebug +++|* CHECK THE FROZEN CHAIN FLAG IN THE *FCT* ENTRY. 03446 M01S03420.ssdebug +++|# 03447 M01S03421.ssdebug +++| 03448 M01S03422.ssdebug +++| FCTBADR = LOC(FCTENT[0]); 03449 M01S03423.ssdebug +++| CGETFCT(DBARG$FM[0],DBARG$SB[0],DBARG$SMID[0],DBARG$FO[0], 03450 M01S03424.ssdebug +++| FCTBADR,0,FLAG); 03451 M01S03425.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03452 M01S03426.ssdebug +++| THEN # UNABLE TO GET *FCT* ENTRY # 03453 M01S03427.ssdebug +++| BEGIN 03454 M01S03428.ssdebug +++| DBRESP(FLAG,0); 03455 M01S03429.ssdebug +++| RETURN; 03456 M01S03430.ssdebug +++| END 03457 M01S03431.ssdebug +++| 03458 M01S03432.ssdebug +++| P<FCT> = FCTBADR; 03459 M01S03433.ssdebug +++| FLAG = FCT$FRCF(FCT$WD(DBARG$ST[0]),FCT$WP(DBARG$ST[0])); 03460 M01S03434.ssdebug +++| IF FLAG EQ 0 03461 M01S03435.ssdebug +++| THEN # FROZEN CHAIN FLAG NOT SET # 03462 M01S03436.ssdebug +++| BEGIN 03463 M01S03437.ssdebug +++| DBERRCODE = S"DFROZ$NSET"; 03464 M01S03438.ssdebug +++| DBERR(DBERRCODE); 03465 M01S03439.ssdebug +++| RETURN; 03466 M01S03440.ssdebug +++| END 03467 M01S03441.ssdebug +++| 03468 M01S03442.ssdebug +++|# 03469 M01S03443.ssdebug +++|* RELEASE FROZEN CHAIN. 03470 M01S03444.ssdebug +++|# 03471 M01S03445.ssdebug +++| 03472 M01S03446.ssdebug +++| DBCALL3(REQTYP3"PURG$FRAG",0,DBARG$FO[0],0,0,RESPCODE); 03473 M01S03447.ssdebug +++| IF RESPCODE NQ RESPTYP3"OK3" 03474 M01S03448.ssdebug +++| THEN # UNABLE TO RELEASE FROZEN CHAIN # 03475 M01S03449.ssdebug +++| BEGIN 03476 M01S03450.ssdebug +++| DBRESP(RESPCODE,TYP"TYP3"); 03477 M01S03451.ssdebug +++| RETURN; 03478 M01S03452.ssdebug +++| END 03479 M01S03453.ssdebug +++| 03480 M01S03454.ssdebug +++| CCLOSE(DBARG$FM[0],DBARG$SB[0],0,FLAG); 03481 M01S03455.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03482 M01S03456.ssdebug +++| THEN # UNABLE TO CLOSE CATALOG # 03483 M01S03457.ssdebug +++| BEGIN 03484 M01S03458.ssdebug +++| DBRESP(FLAG,0); 03485 M01S03459.ssdebug +++| END 03486 M01S03460.ssdebug +++| 03487 M01S03461.ssdebug +++| RETURN; 03488 M01S03462.ssdebug +++| 03489 M01S03463.ssdebug +++| END # DBREL # 03490 M01S03464.ssdebug +++| 03491 M01S03465.ssdebug +++| TERM 03492 M01S03466.ssdebug +++|PROC DBRESP((RESPCODE),(REQTYPE)); 03493 M01S03467.ssdebug +++|# TITLE DBRESP - PROCESS RESPONSE FROM EXEC. # 03494 M01S03468.ssdebug +++| 03495 M01S03469.ssdebug +++| BEGIN # DBRESP # 03496 M01S03470.ssdebug +++| 03497 M01S03471.ssdebug +++|# 03498 M01S03472.ssdebug +++|** DBRESP - PROCESS RESPONSE FROM EXEC. 03499 M01S03473.ssdebug +++|* 03500 M01S03474.ssdebug +++|* PROC DBRESP((RESPCODE),(REQTYPE)) 03501 M01S03475.ssdebug +++|* 03502 M01S03476.ssdebug +++|* ENTRY (RESPCODE) = RESPONSE CODE FROM EXEC. 03503 M01S03477.ssdebug +++|* (REQTYPE) = TYPE OF REQUEST SENT TO EXEC. 03504 M01S03478.ssdebug +++|* 0, FOR MAP/CATALOG ACCESS ROUTINES. 03505 M01S03479.ssdebug +++|* 03506 M01S03480.ssdebug +++|* EXIT THE ERROR RESPONSE HAS BEEN PROCESSED. 03507 M01S03481.ssdebug +++|* 03508 M01S03482.ssdebug +++|* MESSAGES SSDEBUG ABNORMAL, DBRESP. 03509 M01S03483.ssdebug +++|* 03510 M01S03484.ssdebug +++|* NOTES *SSDEBUG* ERROR PROCESSOR IS CALLED WITH THE 03511 M01S03485.ssdebug +++|* CORRESPONDING ERROR CODE. 03512 M01S03486.ssdebug +++|# 03513 M01S03487.ssdebug +++| 03514 M01S03488.ssdebug +++| ITEM RESPCODE I; # RESPONSE CODE FROM EXEC # 03515 M01S03489.ssdebug +++| ITEM REQTYPE I; # TYPE OF REQUEST SENT TO EXEC # 03516 M01S03490.ssdebug +++| 03517 M01S03491.ssdebug +++|# 03518 M01S03492.ssdebug +++|**** PROC DBRESP - XREF LIST BEGIN. 03519 M01S03493.ssdebug +++|# 03520 M01S03494.ssdebug +++| 03521 M01S03495.ssdebug +++| XREF 03522 M01S03496.ssdebug +++| BEGIN 03523 M01S03497.ssdebug +++| PROC DBERR; # ERROR PROCESSOR # 03524 M01S03498.ssdebug +++| PROC MESSAGE; # DISPLAYS MESSAGE # 03525 M01S03499.ssdebug +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 03526 M01S03500.ssdebug +++| OR RETURN # 03527 M01S03501.ssdebug +++| END 03528 M01S03502.ssdebug +++| 03529 M01S03503.ssdebug +++|# 03530 M01S03504.ssdebug +++|**** PROC DBRESP - XREF LIST END. 03531 M01S03505.ssdebug +++|# 03532 M01S03506.ssdebug +++| 03533 M01S03507.ssdebug +++| DEF PROCNAME #"DBRESP."#; # PROC NAME # 03534 M01S03508.ssdebug +++| 03535 M01S03509.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 03536 M01S03510.ssdebug +++|*CALL COMBFAS 03537 M01S03511.ssdebug +++|*CALL COMBCMS 03538 M01S03512.ssdebug +++|*CALL COMBCPR 03539 M01S03513.ssdebug +++|*CALL COMTDBG 03540 M01S03514.ssdebug +++|*CALL COMTDER 03541 M01S03515.ssdebug +++| 03542 M01S03516.ssdebug +++|# 03543 M01S03517.ssdebug +++|* STATUS SWITCH TO PROCESS THE RESPONSE CODES RETURNED 03544 M01S03518.ssdebug +++|* IN RESPONSE TO A TYPE 3 UCP REQUEST. 03545 M01S03519.ssdebug +++|# 03546 M01S03520.ssdebug +++| 03547 M01S03521.ssdebug +++| SWITCH RESPACT3: RESPTYP3 # TYPE 3 RESPONSE CODES # 03548 M01S03522.ssdebug +++| OK3$ACT: OK3, # NO ERROR # 03549 M01S03523.ssdebug +++| INTLCK$ACT: C$M$INTLCK, # CATALOG/MAP INTERLOCKED # 03550 M01S03524.ssdebug +++| NOPEN$ACT: C$M$NOPEN, # CATALOG/MAP NOT OPEN # 03551 M01S03525.ssdebug +++| RESUB$ACT: RESUB$REQ, # RESUBMIT REQUEST # 03552 M01S03526.ssdebug +++| SCATEX$ACT: SUB$CAT$EX, # SUBCATALOG ALREADY EYISTS # 03553 M01S03527.ssdebug +++| NOSUB$ACT: NO$SUB$CAT, # NO SUCH SUBCATALOG # 03554 M01S03528.ssdebug +++| PFPROB$ACT: PF$PROB, # PF PROBLEM # 03555 M01S03529.ssdebug +++| NEMPTY$ACT: MSC$NEMPTY, # MSC NOT EMPTY # 03556 M01S03530.ssdebug +++| ILLORD$ACT:ILLEG$ORD, # ORDINAL OUT OF RANGE # 03557 M01S03531.ssdebug +++| NFROZ$ACT: NFROZ$FRAG, # NON FROZEN FRAGMENT # 03558 M01S03532.ssdebug +++| GR$FL$ACT: GROUP$FUL; # GROUP FULL STATUS # 03559 M01S03533.ssdebug +++| 03560 M01S03534.ssdebug +++|# 03561 M01S03535.ssdebug +++|* STATUS SWITCH TO PROCESS THE RESPONSE CODES 03562 M01S03536.ssdebug +++|* RETURNED IN RESPONSE TO A TYPE 4 UCP REQUEST. 03563 M01S03537.ssdebug +++|# 03564 M01S03538.ssdebug +++| 03565 M01S03539.ssdebug +++| SWITCH RESPACT4: RESPTYP4 # TYPE 4 RESPONSE CODES # 03566 M01S03540.ssdebug +++| OK4$ACT: OK4, # NO ERROR # 03567 M01S03541.ssdebug +++| CSN$MIS$ACT: CART$LB$ERR, # PART OF LABEL MATCHED # 03568 M01S03542.ssdebug +++| CSN$USE$ACT: CSN$IN$USE, # CSN IN USE # 03569 M01S03543.ssdebug +++| CELL$EMP$ACT: CELL$EMP, # SPECIFIED CELL EMPTY # 03570 M01S03544.ssdebug +++| CELL$FLL$ACT: CELL$FULL, # SPECIFIED CELL FULL # 03571 M01S03545.ssdebug +++| EX$DMARK$ACT: EX$DMARK, # EXCESSIVE DMARKS # 03572 M01S03546.ssdebug +++| UNK$CART$ACT: UNK$CART, # NO CARTRIDGE LABEL MATCH # 03573 M01S03547.ssdebug +++| URDERR$ACT: UN$RD$ERR, # UNRECOVERABLE READ ERROR # 03574 M01S03548.ssdebug +++| UWTERR$ACT: UN$WRT$ERR, # UNRECOVERABLE WRITE ERROR # 03575 M01S03549.ssdebug +++| VOL$ERR$ACT: VOL$HD$ERR, # VOLUME HEADER ERROR # 03576 M01S03550.ssdebug +++| M86HW$PR$ACT: M86$HDW$PR, # M860 HARDWARE PROBLEM # 03577 M01S03551.ssdebug +++| RMSER$ACT: RMS$FL$ERR, # DISK FILE ERROR # 03578 M01S03552.ssdebug +++| DSKFUL$ACT: DISK$FULL, # DISK FULL # 03579 M01S03553.ssdebug +++| ATTER$ACT: ATTACH$ERR, # ATTACH ERROR # 03580 M01S03554.ssdebug +++| SMA$OFF$ACT: SMA$OFF, # SM IS OFF # 03581 M01S03555.ssdebug +++| EOI$ACT: EOI; # END OF INFORMATION ON FILE # 03582 M01S03556.ssdebug +++| 03583 M01S03557.ssdebug +++|CONTROL EJECT; 03584 M01S03558.ssdebug +++| 03585 M01S03559.ssdebug +++|# 03586 M01S03560.ssdebug +++|* CHECK THE RESPONSE TYPE. 03587 M01S03561.ssdebug +++|# 03588 M01S03562.ssdebug +++| 03589 M01S03563.ssdebug +++| IF REQTYPE EQ TYP"TYP3" 03590 M01S03564.ssdebug +++| THEN # TYPE 3 UCP REQUEST # 03591 M01S03565.ssdebug +++| BEGIN 03592 M01S03566.ssdebug +++| GOTO RESPACT3[RESPCODE]; 03593 M01S03567.ssdebug +++| END 03594 M01S03568.ssdebug +++| 03595 M01S03569.ssdebug +++| IF REQTYPE EQ TYP"TYP4" 03596 M01S03570.ssdebug +++| THEN # TYPE 4 UCP REQUEST # 03597 M01S03571.ssdebug +++| BEGIN 03598 M01S03572.ssdebug +++| GOTO RESPACT4[RESPCODE]; 03599 M01S03573.ssdebug +++| END 03600 M01S03574.ssdebug +++| 03601 M01S03575.ssdebug +++| IF REQTYPE NQ 0 03602 M01S03576.ssdebug +++| THEN # ILLEGAL ERROR TYPE # 03603 M01S03577.ssdebug +++| BEGIN 03604 M01S03578.ssdebug +++| GOTO ERR; 03605 M01S03579.ssdebug +++| END 03606 M01S03580.ssdebug +++| 03607 M01S03581.ssdebug +++|# 03608 M01S03582.ssdebug +++|* PROCESS RESPONSE FROM CATALOG/MAP ACCESS ROUTINES. 03609 M01S03583.ssdebug +++|# 03610 M01S03584.ssdebug +++| 03611 M01S03585.ssdebug +++| IF RESPCODE EQ CMASTAT"INTLK" 03612 M01S03586.ssdebug +++| THEN # CATALOG/MAP INTERLOCKED # 03613 M01S03587.ssdebug +++| BEGIN 03614 M01S03588.ssdebug +++| DBERRCODE = S"DC$M$INTLK"; 03615 M01S03589.ssdebug +++| DBERR(DBERRCODE); 03616 M01S03590.ssdebug +++| RETURN; 03617 M01S03591.ssdebug +++| END 03618 M01S03592.ssdebug +++| 03619 M01S03593.ssdebug +++| IF RESPCODE EQ CMASTAT"ATTERR" 03620 M01S03594.ssdebug +++| THEN # ATTACH ERROR # 03621 M01S03595.ssdebug +++| BEGIN 03622 M01S03596.ssdebug +++| DBERRCODE = S"DPF$PROB"; 03623 M01S03597.ssdebug +++| DBERR(DBERRCODE); 03624 M01S03598.ssdebug +++| RETURN; 03625 M01S03599.ssdebug +++| END 03626 M01S03600.ssdebug +++| 03627 M01S03601.ssdebug +++| IF RESPCODE EQ CMASTAT"NOSUBCAT" 03628 M01S03602.ssdebug +++| THEN # NO SUCH SUBCATALOG # 03629 M01S03603.ssdebug +++| BEGIN 03630 M01S03604.ssdebug +++| DBERRCODE = S"DNO$SUBCAT"; 03631 M01S03605.ssdebug +++| DBERR(DBERRCODE); 03632 M01S03606.ssdebug +++| RETURN; 03633 M01S03607.ssdebug +++| END 03634 M01S03608.ssdebug +++| 03635 M01S03609.ssdebug +++| IF RESPCODE EQ CMASTAT"ORDERR" 03636 M01S03610.ssdebug +++| THEN # *FCT* ORDINAL OUT OF RANGE # 03637 M01S03611.ssdebug +++| BEGIN 03638 M01S03612.ssdebug +++| DBERRCODE = S"DORD$ERR"; 03639 M01S03613.ssdebug +++| DBERR(DBERRCODE); 03640 M01S03614.ssdebug +++| RETURN; 03641 M01S03615.ssdebug +++| END 03642 M01S03616.ssdebug +++| 03643 M01S03617.ssdebug +++| GOTO ERR; # ILLEGAL RESPONSE CODE # 03644 M01S03618.ssdebug +++| 03645 M01S03619.ssdebug +++|# 03646 M01S03620.ssdebug +++|* PROCESS RESPONSE CODES FOR TYPE 3 UCP REQUESTS. 03647 M01S03621.ssdebug +++|# 03648 M01S03622.ssdebug +++| 03649 M01S03623.ssdebug +++|OK3$ACT: # NO ERROR # 03650 M01S03624.ssdebug +++| RETURN; 03651 M01S03625.ssdebug +++| 03652 M01S03626.ssdebug +++|INTLCK$ACT: # CATALOG/MAP FILE INTERLOCKED # 03653 M01S03627.ssdebug +++| DBERRCODE = S"DC$M$INTLK"; 03654 M01S03628.ssdebug +++| DBERR(DBERRCODE); 03655 M01S03629.ssdebug +++| RETURN; 03656 M01S03630.ssdebug +++| 03657 M01S03631.ssdebug +++|NOPEN$ACT: # CATALOG/MAP NOT OPEN # 03658 M01S03632.ssdebug +++| DBERRCODE = S"DC$M$NOPEN"; 03659 M01S03633.ssdebug +++| DBERR(DBERRCODE); 03660 M01S03634.ssdebug +++| RETURN; 03661 M01S03635.ssdebug +++| 03662 M01S03636.ssdebug +++|RESUB$ACT: # RESUBMIT REQUEST # 03663 M01S03637.ssdebug +++| GOTO ERR; 03664 M01S03638.ssdebug +++| 03665 M01S03639.ssdebug +++|SCATEX$ACT: # SUBCATALOG ALREADY EYISTS # 03666 M01S03640.ssdebug +++| GOTO ERR; 03667 M01S03641.ssdebug +++| 03668 M01S03642.ssdebug +++|NOSUB$ACT: # NO SUCH SUBCATALOG # 03669 M01S03643.ssdebug +++| DBERRCODE = S"DNO$SUBCAT"; 03670 M01S03644.ssdebug +++| DBERR(DBERRCODE); 03671 M01S03645.ssdebug +++| RETURN; 03672 M01S03646.ssdebug +++| 03673 M01S03647.ssdebug +++|PFPROB$ACT: # PF PROBLEM # 03674 M01S03648.ssdebug +++| DBERRCODE = S"DPF$PROB"; 03675 M01S03649.ssdebug +++| DBERR(DBERRCODE); 03676 M01S03650.ssdebug +++| RETURN; 03677 M01S03651.ssdebug +++| 03678 M01S03652.ssdebug +++|NEMPTY$ACT: # MSC NOT EMPTY # 03679 M01S03653.ssdebug +++| GOTO ERR; 03680 M01S03654.ssdebug +++| 03681 M01S03655.ssdebug +++|ILLORD$ACT: # *FCT* ORDINAL OUT OF RANGE # 03682 M01S03656.ssdebug +++| DBERRCODE = S"DORD$ERR"; 03683 M01S03657.ssdebug +++| DBERR(DBERRCODE); 03684 M01S03658.ssdebug +++| RETURN; 03685 M01S03659.ssdebug +++| 03686 M01S03660.ssdebug +++|NFROZ$ACT: # NON FROZEN FRAGMENT # 03687 M01S03661.ssdebug +++| DBERRCODE = S"DFROZ$NSET"; 03688 M01S03662.ssdebug +++| DBERR(DBERRCODE); 03689 M01S03663.ssdebug +++| RETURN; 03690 M01S03664.ssdebug +++| 03691 M01S03665.ssdebug +++|GR$FL$ACT: # GROUP FULL # 03692 M01S03666.ssdebug +++| GOTO ERR; 03693 M01S03667.ssdebug +++| 03694 M01S03668.ssdebug +++|# 03695 M01S03669.ssdebug +++|* PROCESS RESPONSE CODES FOR TYPE 4 UCP REQUESTS. 03696 M01S03670.ssdebug +++|# 03697 M01S03671.ssdebug +++| 03698 M01S03672.ssdebug +++|OK4$ACT: # NO ERROR # 03699 M01S03673.ssdebug +++| RETURN; 03700 M01S03674.ssdebug +++| 03701 M01S03675.ssdebug +++|CSN$MIS$ACT: # CSN CARTRIDGE MISMATCH # 03702 M01S03676.ssdebug +++| DBERRCODE = S"DCART$LB$ERR"; 03703 M01S03677.ssdebug +++| DBERR(DBERRCODE); 03704 M01S03678.ssdebug +++| RETURN; 03705 M01S03679.ssdebug +++| 03706 M01S03680.ssdebug +++|CSN$USE$ACT: # CSN IN USE # 03707 M01S03681.ssdebug +++| DBERRCODE = S"DCSN$IN$USE"; 03708 M01S03682.ssdebug +++| DBERR(DBERRCODE); 03709 M01S03683.ssdebug +++| RETURN; 03710 M01S03684.ssdebug +++| 03711 M01S03685.ssdebug +++|CELL$EMP$ACT: # CELL EMPTY # 03712 M01S03686.ssdebug +++| DBERRCODE = S"DCELL$EMP"; 03713 M01S03687.ssdebug +++| DBERR(DBERRCODE); 03714 M01S03688.ssdebug +++| RETURN; 03715 M01S03689.ssdebug +++| 03716 M01S03690.ssdebug +++|CELL$FLL$ACT: # CELL FULL # 03717 M01S03691.ssdebug +++| GOTO ERR; 03718 M01S03692.ssdebug +++| 03719 M01S03693.ssdebug +++|EX$DMARK$ACT: # EXCESSIVE DEMARKS # 03720 M01S03694.ssdebug +++| GOTO ERR; 03721 M01S03695.ssdebug +++| 03722 M01S03696.ssdebug +++|UNK$CART$ACT: # NO CARTRIDGE LABEL MATCH # 03723 M01S03697.ssdebug +++| DBERRCODE = S"DUNK$CART"; 03724 M01S03698.ssdebug +++| DBERR(DBERRCODE); 03725 M01S03699.ssdebug +++| RETURN; 03726 M01S03700.ssdebug +++| 03727 M01S03701.ssdebug +++|URDERR$ACT: # UNRECOVERABLE READ ERROR # 03728 M01S03702.ssdebug +++| DBERRCODE = S"DUN$RD$ERR"; 03729 M01S03703.ssdebug +++| DBERR(DBERRCODE); 03730 M01S03704.ssdebug +++| RETURN; 03731 M01S03705.ssdebug +++| 03732 M01S03706.ssdebug +++|UWTERR$ACT: # UNRECOVERABLE WRITE ERROR # 03733 M01S03707.ssdebug +++| GOTO ERR; 03734 M01S03708.ssdebug +++| 03735 M01S03709.ssdebug +++|VOL$ERR$ACT: # VOLUME HEADER ERROR # 03736 M01S03710.ssdebug +++| DBERRCODE = S"DVOL$HD$ERR"; 03737 M01S03711.ssdebug +++| DBERR(DBERRCODE); 03738 M01S03712.ssdebug +++| RETURN; 03739 M01S03713.ssdebug +++| 03740 M01S03714.ssdebug +++|M86HW$PR$ACT: # M860 HARDWARE ERROR # 03741 M01S03715.ssdebug +++| DBERRCODE = S"DSYS$ERR"; 03742 M01S03716.ssdebug +++| DBERR(DBERRCODE); 03743 M01S03717.ssdebug +++| RETURN; 03744 M01S03718.ssdebug +++| 03745 M01S03719.ssdebug +++|RMSER$ACT: # DISK FILE ERROR # 03746 M01S03720.ssdebug +++| DBERRCODE = S"DDSKFL$ERR"; 03747 M01S03721.ssdebug +++| DBERR(DBERRCODE); 03748 M01S03722.ssdebug +++| RETURN; 03749 M01S03723.ssdebug +++| 03750 M01S03724.ssdebug +++|DSKFUL$ACT: # DISK FULL # 03751 M01S03725.ssdebug +++| DBERRCODE = S"DDISK$FULL"; 03752 M01S03726.ssdebug +++| DBERR(DBERRCODE); 03753 M01S03727.ssdebug +++| RETURN; 03754 M01S03728.ssdebug +++| 03755 M01S03729.ssdebug +++|ATTER$ACT: # ATTACH ERROR # 03756 M01S03730.ssdebug +++| DBERRCODE = S"DATT$ERR"; 03757 M01S03731.ssdebug +++| DBERR(DBERRCODE); 03758 M01S03732.ssdebug +++| RETURN; 03759 M01S03733.ssdebug +++| 03760 M01S03734.ssdebug +++|SMA$OFF$ACT: # SMA OFF # 03761 M01S03735.ssdebug +++| DBERRCODE = S"DSMA$OFF"; 03762 M01S03736.ssdebug +++| DBERR(DBERRCODE); 03763 M01S03737.ssdebug +++| RETURN; 03764 M01S03738.ssdebug +++| 03765 M01S03739.ssdebug +++|EOI$ACT: # EOI ON FILE # 03766 M01S03740.ssdebug +++| GOTO ERR; 03767 M01S03741.ssdebug +++| 03768 M01S03742.ssdebug +++|ERR: 03769 M01S03743.ssdebug +++| DBMSG$PROC[0] = PROCNAME; # ABNORMAL TERMINATION # 03770 M01S03744.ssdebug +++| MESSAGE(DBMSG[0],SYSUDF1); 03771 M01S03745.ssdebug +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 03772 M01S03746.ssdebug +++| 03773 M01S03747.ssdebug +++| 03774 M01S03748.ssdebug +++| END # DBRESP # 03775 M01S03749.ssdebug +++| 03776 M01S03750.ssdebug +++| TERM 03777 M01S03751.ssdebug +++|PROC DBVSN(Y,Z,MAPENT,FLAG); 03778 M01S03752.ssdebug +++|# TITLE - DBVSN - SEARCH SMMAP FOR THE CSN. # 03779 M01S03753.ssdebug +++| 03780 M01S03754.ssdebug +++| BEGIN # DBVSN # 03781 M01S03755.ssdebug +++| 03782 M01S03756.ssdebug +++|# 03783 M01S03757.ssdebug +++|** DBVSN - SEARCH SMMAP FOR CSN. 03784 M01S03758.ssdebug +++|* 03785 M01S03759.ssdebug +++|* PROC DBVSN(Y,Z,MAPENT,FLAG) 03786 M01S03760.ssdebug +++|* 03787 M01S03761.ssdebug +++|* ENTRY (DBARG$SMID) = SM-ID. 03788 M01S03762.ssdebug +++|* (DBARG$CN) = DIGIT PORTION OF CSN. 03789 M01S03763.ssdebug +++|* (DBARG$CM) = CARTRIDGE MANUFACTURER CODE. 03790 M01S03764.ssdebug +++|* 03791 M01S03765.ssdebug +++|* EXIT (Y) = Y COORDINATE OF MATCHING CSN. 03792 M01S03766.ssdebug +++|* (Z) = Z COORDINATE OF MATCHING CSN. 03793 M01S03767.ssdebug +++|* (MAPENT) = SMMAP ENTRY. 03794 M01S03768.ssdebug +++|* (FLAG) = ERROR STATUS. 03795 M01S03769.ssdebug +++|* 0, NO ERROR 03796 M01S03770.ssdebug +++|* 1, CSN NOT FOUND. 03797 M01S03771.ssdebug +++|* 03798 M01S03772.ssdebug +++|* MESSAGES SSDEBUG ABNORMAL, DBVSN. 03799 M01S03773.ssdebug +++|* 03800 M01S03774.ssdebug +++|* NOTES THE SMMAP IS SEARCHED SEQUENTIALLY FOR 03801 M01S03775.ssdebug +++|* MATCHING CSN. 03802 M01S03776.ssdebug +++|# 03803 M01S03777.ssdebug +++| 03804 M01S03778.ssdebug +++| ITEM Y I; # Y COORDINATE OF MATCHING CSN # 03805 M01S03779.ssdebug +++| ITEM Z I; # Z COORDINATE OF MATCHING CSN # 03806 M01S03780.ssdebug +++| ARRAY MAPENT [0:0] S(3);; # SMMAP ENTRY # 03807 M01S03781.ssdebug +++| ITEM FLAG I; # ERROR STATUS # 03808 M01S03782.ssdebug +++| 03809 M01S03783.ssdebug +++|# 03810 M01S03784.ssdebug +++|**** PROC DBVSN - XREF LIST BEGIN. 03811 M01S03785.ssdebug +++|# 03812 M01S03786.ssdebug +++| 03813 M01S03787.ssdebug +++| XREF 03814 M01S03788.ssdebug +++| BEGIN 03815 M01S03789.ssdebug +++| PROC MESSAGE; # DISPLAYS MESSAGE # 03816 M01S03790.ssdebug +++| PROC MGETENT; # GET SMMAP ENTRY # 03817 M01S03791.ssdebug +++| PROC RESTPFP; # RESTORE USER-S *PFP* AND ABORT 03818 M01S03792.ssdebug +++| OR RETURN # 03819 M01S03793.ssdebug +++| END 03820 M01S03794.ssdebug +++| 03821 M01S03795.ssdebug +++|# 03822 M01S03796.ssdebug +++|**** PROC DBVSN - XREF LIST END. 03823 M01S03797.ssdebug +++|# 03824 M01S03798.ssdebug +++| 03825 M01S03799.ssdebug +++| DEF PROCNAME #"DBVSN."#; # PROC NAME # 03826 M01S03800.ssdebug +++| 03827 M01S03801.ssdebug +++| DEF LISTCON #0#; # DO NOT LIST COMDECKS # 03828 M01S03802.ssdebug +++|*CALL COMBFAS 03829 M01S03803.ssdebug +++|*CALL COMBCMS 03830 M01S03804.ssdebug +++|*CALL COMBCPR 03831 M01S03805.ssdebug +++|*CALL COMBMAP 03832 M01S03806.ssdebug +++|*CALL COMTDBP 03833 M01S03807.ssdebug +++|*CALL COMTDBG 03834 M01S03808.ssdebug +++| 03835 M01S03809.ssdebug +++| ITEM I I; # LOOP INDUCTION VARIABLE # 03836 M01S03810.ssdebug +++| ITEM MAPADDR I; # FWA OF BUFFER TO HOLD ENTRY # 03837 M01S03811.ssdebug +++| 03838 M01S03812.ssdebug +++|CONTROL EJECT; 03839 M01S03813.ssdebug +++| 03840 M01S03814.ssdebug +++| FLAG = 0; # INITIALIZE # 03841 M01S03815.ssdebug +++| MAPADDR = LOC(MAPENT[0]); 03842 M01S03816.ssdebug +++| P<SMUMAP> = MAPADDR; 03843 M01S03817.ssdebug +++| 03844 M01S03818.ssdebug +++|# 03845 M01S03819.ssdebug +++|* SEARCH SMMAP FOR MATCHING VSN. 03846 M01S03820.ssdebug +++|# 03847 M01S03821.ssdebug +++| 03848 M01S03822.ssdebug +++| FASTFOR I = 1 STEP 1 UNTIL MAXORD 03849 M01S03823.ssdebug +++| DO 03850 M01S03824.ssdebug +++| BEGIN # SEARCH SMMAP # 03851 M01S03825.ssdebug +++| MGETENT(DBARG$SMID[0],I,MAPADDR,FLAG); 03852 M01S03826.ssdebug +++| IF FLAG NQ CMASTAT"NOERR" 03853 M01S03827.ssdebug +++| THEN # ABNORMAL TERMINATION # 03854 M01S03828.ssdebug +++| BEGIN 03855 M01S03829.ssdebug +++| DBMSG$PROC[0] = PROCNAME; 03856 M01S03830.ssdebug +++| MESSAGE(DBMSG[0],SYSUDF1); 03857 M01S03831.ssdebug +++| RESTPFP(PFP$ABORT); # RESTORE USER-S *PFP* AND ABORT # 03858 M01S03832.ssdebug +++| END 03859 M01S03833.ssdebug +++| 03860 M01S03834.ssdebug +++| IF CM$CCOD[0] EQ DBARG$CM[0] AND CM$CSND[0] EQ DBARG$CN[0] 03861 M01S03835.ssdebug +++| THEN # VSN MATCH FOUND # 03862 M01S03836.ssdebug +++| BEGIN 03863 M01S03837.ssdebug +++| Y = ( MAXORD - I )/( MAX$Z + 1 ); 03864 M01S03838.ssdebug +++| Z = MAXORD - I - ( MAX$Z + 1 )* Y; 03865 M01S03839.ssdebug +++| RETURN; 03866 M01S03840.ssdebug +++| END 03867 M01S03841.ssdebug +++| 03868 M01S03842.ssdebug +++| END # SEARCH SMMAP # 03869 M01S03843.ssdebug +++| 03870 M01S03844.ssdebug +++| FLAG = 1; # MATCHING VSN NOT FOUND # 03871 M01S03845.ssdebug +++| RETURN; 03872 M01S03846.ssdebug +++| 03873 M01S03847.ssdebug +++| END 03874 M01S03848.ssdebug +++| 03875 M01S03849.ssdebug +++| TERM
cdc/nos2.source/opl.opl871/deck/ssdebug.001.txt ยท Last modified: by 127.0.0.1