User Tools

Site Tools


cdc:nos2.source:opl871:sxhlr

SXHLR

Table Of Contents

  • [00001] PROC HLRQENQ(ADDR)
  • [00003] HLRQENQ - HIGH LEVEL REQUEST QUEUE ENQUEUER.
  • [00008] HLRQENQ - HIGH LEVEL REQUEST QUEUE ENQUEUER.
  • [00030] PROC ABORT
  • [00031] PROC ADD$LNK
  • [00032] PROC DEL$LNK
  • [00033] PROC MESSAGE
  • [00076] PROC HLRQMTR
  • [00078] HLRQMTR - HIGH LEVEL REQUEST QUEUE MONITOR.
  • [00083] HLRQMTR - HIGH LEVEL REQUEST QUEUE MONITOR.
  • [00108] PROC ADD$LNK
  • [00109] PROC DEL$LNK
  • [00110] PROC DESTAGR
  • [00111] PROC STAGER
  • [00112] PROC ZFILL
  • [00232] PROC MSGAFDF(TYPE,FC,CODE,HLRQADR)
  • [00234] MSGAFDF - ISSUE STATUS MESSAGE TO ACCOUNT AND EXEC DAYFILE.
  • [00239] MSGAFDF - ISSUE STATUS MESSAGE TO ACCOUNT AND EXEC-S DAYFILE.
  • [00296] FUNC XCDD C(10)
  • [00297] FUNC XCOD C(10)
  • [00298] PROC BZFILL
  • [00299] PROC MESSAGE
  • [00463] PROC PFMEC1) [00533] TRACMSG - ISSUE TRACE MESSAGE. [00538] TRACMSG - ISSUE TRACE MESSAGE. [00585] PROC BZFILL [00586] PROC MSG [00587] PROC RMVBLNK [00588] FUNC XCDD C(10) </WRAP> === Source Code ===
    SXHLR.txt
    1. PROC HLRQENQ(ADDR);
    2.  
    3. # TITLE HLRQENQ - HIGH LEVEL REQUEST QUEUE ENQUEUER. #
    4.  
    5. BEGIN # HLRQENQ #
    6.  
    7. #
    8. ** HLRQENQ - HIGH LEVEL REQUEST QUEUE ENQUEUER.
    9. *
    10. * *HLRQENQ* INSERTS AN ENTRY INTO THE HIGH LEVEL REQUEST QUEUE
    11. * (HLRQ) BY LINKING THE ENTRY INTO AN *HLRQ* READY CHAIN. *HLRQENQ*
    12. * IS CALLED ONLY IF THE *HLRQ* IS NOT FULL.
    13. *
    14. * PROC HLRQENQ(ADDR)
    15. *
    16. * EXIT (ADDR) - ADDRESS OF ENTRY ADDED TO QUEUE.
    17. *
    18. * MESSAGES * EXEC ABNORMAL, HLRQENQ.*.
    19. #
    20.  
    21.  
    22. ITEM ADDR U; # ADDRESS OF *HLRQ* ENTRY #
    23.  
    24. #
    25. **** PROC HLRQENQ - XREF LIST BEGIN.
    26. #
    27.  
    28. XREF
    29. BEGIN
    30. PROC ABORT; # ABORT #
    31. PROC ADD$LNK; # ADD ENTRY TO END OF CHAIN #
    32. PROC DEL$LNK; # DELETE ENTRY FROM CHAIN #
    33. PROC MESSAGE; # ISSUE MESSAGE #
    34. END
    35.  
    36. #
    37. ****
    38. #
    39.  
    40. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    41. *CALL COMBFAS
    42. *CALL COMBCHN
    43. *CALL COMXHLR
    44. *CALL COMXMSC
    45.  
    46.  
    47.  
    48.  
    49. #
    50. * CHECK FOR *HLRQ* FULL.
    51. #
    52.  
    53. ADDR = CHN$BOC[LCHN"HL$FRSPC"];
    54.  
    55. IF ADDR EQ 0 # IF NO FREE ENTRIES #
    56. THEN
    57. BEGIN
    58. FE$RTN[0] = "HLRQENQ.";
    59. MESSAGE(FEMSG,UDFL1);
    60. ABORT;
    61. END
    62.  
    63. DEL$LNK(ADDR,LCHN"HL$FRSPC",0); # DELETE ENTRY FROM FREE SPACE
    64.   CHAIN #
    65. P<HLRQ> = ADDR;
    66. HLR$HPS[0] = PROCST"INITIAL";
    67. ADD$LNK(ADDR,LCHN"HL$READY",0); # ADD ENTRY TO READY CHAIN #
    68. ADD$LNK(ADDR,LCHN"HL$ACTV",1); # ADD ENTRY TO ACTIVE CHAIN #
    69.  
    70.  
    71. RETURN;
    72.  
    73. END # HLRQENQ #
    74.  
    75. TERM
    76. PROC HLRQMTR;
    77.  
    78. # TITLE HLRQMTR - HIGH LEVEL REQUEST QUEUE MONITOR. #
    79.  
    80. BEGIN # HLRQMTR #
    81.  
    82. #
    83. ** HLRQMTR - HIGH LEVEL REQUEST QUEUE MONITOR.
    84. *
    85. * THE HIGH LEVEL REQUEST QUEUE MONITOR CONTROLS THE ACTIVATION
    86. * OF *HLRQ* PROCESSORS. EACH *HLRQ* ENTRY ON THE READY CHAIN IS
    87. * ACTIVATED BY CALLING THE APPROPRIATE PROCESSOR.
    88. *
    89. * PROC HLRQMTR.
    90. *
    91. * EXIT IF THE PROCESS STATE FIELD OF AN *HLRQ* ENTRY IS SET
    92. * TO "COMPLETE" AFTER ITS PROCESSOR IS CALLED, THE ENTRY
    93. * IS CLEARED AND LINKED INTO THE FREE SPACE CHAIN.
    94. * OTHERWISE, THE PROCESSOR HAS SET UP SOME CONDITION
    95. * THAT WILL EVENTUALLY CAUSE THE *HLRQ* ENTRY TO BE
    96. * RELINKED INTO THE *HLRQ* READY CHAIN.
    97. *
    98. * NOTES *HLRQMTR* IS TO BE CALLED ONLY IF THE *HLRQ*
    99. * READY CHAIN IS POPULATED.
    100. #
    101.  
    102. #
    103. **** PROC HLRQMTR - XREF LIST BEGIN.
    104. #
    105.  
    106. XREF
    107. BEGIN
    108. PROC ADD$LNK; # ADD ENTRY TO END OF CHAIN #
    109. PROC DEL$LNK; # DELETE ENTRY FROM CHAIN #
    110. PROC DESTAGR; # DESTAGE A FILE #
    111. PROC STAGER; # STAGE A FILE #
    112. PROC ZFILL; # ZERO FILL BUFFER #
    113. END
    114.  
    115. #
    116. **** PROC HLRQMTR - XREF LIST END.
    117. #
    118.  
    119. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    120. *CALL COMBFAS
    121. *CALL COMBCHN
    122. *CALL COMXCTF
    123. *CALL COMXHLR
    124. *CALL COMXMSC
    125.  
    126. ITEM FLNM C(7); # FILE NAME #
    127. ITEM HLRENT U; # *HLRQ* ENTRY ADDRESS #
    128.  
    129.  
    130. ITEM ACTIVE I; # NUMBER OF TIMES HLRQ LOOPED #
    131. ITEM PFMFIRST B; # *UGET/UREPLACE* ACTIVE #
    132.  
    133. SWITCH HLPROC:HLRPN # *HLRQ* PROCESSOR CALLS #
    134. HL1:STAGE, # PROCESSOR 1 #
    135. HL2:DESTAGE, # PROCESSOR 2 #
    136. ENDHLP:ENDPN; # END *HLRQ* PROCESSOR CALLS #
    137. CONTROL EJECT;
    138.  
    139. #
    140. * TRAVERSE THE *HLRQ* READY CHAIN.
    141. #
    142. IF CHN$BOC[LCHN"HL$PFMWAIT"] NQ 0
    143. THEN # UGET OR UREPLACE COMPLETED #
    144. BEGIN
    145. HLRENT = CHN$BOC[LCHN"HL$PFMWAIT"];
    146. DEL$LNK(HLRENT,LCHN"HL$PFMWAIT",0);
    147. ADD$LNK(HLRENT,LCHN"HL$READY",0);
    148. PFMFIRST = TRUE;
    149. END
    150.  
    151. ACTIVE = 0;
    152.  
    153. FASTFOR DUMMY = 0 WHILE CHN$BOC[LCHN"HL$READY"] NQ 0
    154. AND ACTIVE LQ 20
    155. AND NOT GLPFMFL
    156. DO
    157. BEGIN # TRAVERSE *HLRQ* READY CHAIN #
    158. ACTIVE = ACTIVE + 1;
    159. IF PFMFIRST
    160. THEN
    161. BEGIN # TAKE CURRENT *HLRENT* #
    162. PFMFIRST = FALSE;
    163. END
    164.  
    165. ELSE
    166. BEGIN # FIND NEW ADDRESS #
    167. HLRENT = CHN$BOC[LCHN"HL$READY"];
    168. END
    169. DEL$LNK(HLRENT,LCHN"HL$READY",0);
    170. P<HLRQ> = HLRENT;
    171.  
    172. IF HLR$HPS[0] EQ PROCST"COMPLETE"
    173. THEN
    174. BEGIN
    175. GOTO ENDHLP;
    176. END
    177.  
    178. #
    179. * SIMULATED CASE STATEMENT FOR *HLRQ* PROCESSOR CALLS.
    180. #
    181.  
    182. GOTO HLPROC[HLR$HPN[0]];
    183.  
    184. HL1: # STAGE REQUEST #
    185. STAGER(HLRENT);
    186. GOTO ENDHLP;
    187.  
    188. HL2: # DESTAGE REQUEST #
    189. DESTAGR(HLRENT);
    190. GOTO ENDHLP;
    191.  
    192.  
    193.  
    194. ENDHLP:
    195.  
    196. #
    197. * END OF SIMULATED CASE STATEMENT FOR *HLRQ* PROCESSOR CALLS.
    198. #
    199.  
    200. P<HLRQ> = HLRENT;
    201. IF HLR$HPS[0] EQ PROCST"COMPLETE"
    202. THEN
    203. BEGIN # PROCESS IS COMPLETE #
    204.  
    205. #
    206. * CLEAR *HLRQ* ENTRY.
    207. #
    208.  
    209. DEL$LNK(HLRENT,LCHN"HL$ACTV",1);
    210. FLNM = HLR$FLNM[0]; # PRESERVE FILE NAME #
    211. ZFILL(HLRQ,HLRQLEN);
    212. HLR$FLNM[0] = FLNM;
    213. ADD$LNK(HLRENT,LCHN"HL$FRSPC",0);
    214. STG$MSK = 0;
    215. IF CHN$BOC[LCHN"HL$DRDRESW"] NQ 0
    216. THEN
    217. BEGIN
    218. HLRENT = CHN$BOC[LCHN"HL$DRDRESW"];
    219. DEL$LNK(HLRENT,LCHN"HL$DRDRESW",0);
    220. ADD$LNK(HLRENT,LCHN"HL$READY",0);
    221. END
    222.  
    223. END # PROCESS IS COMPLETE #
    224.  
    225. END # TRAVERSE *HLRQ* READY CHAIN #
    226.  
    227. RETURN;
    228.  
    229. END # HLRQMTR #
    230.  
    231. TERM
    232. PROC MSGAFDF(TYPE,FC,CODE,HLRQADR);
    233.  
    234. # TITLE MSGAFDF - ISSUE STATUS MESSAGE TO ACCOUNT AND EXEC DAYFILE. #
    235.  
    236. BEGIN # MSGAFDF #
    237.  
    238. #
    239. ** MSGAFDF - ISSUE STATUS MESSAGE TO ACCOUNT AND EXEC-S DAYFILE.
    240. *
    241. * *MSGAFDF* IS CALLED BY *STAGER*, *DESTAGR*, *HLLOAD*, AND
    242. * *HLUNLD* TO ISSUE STATUS MESSAGES NOTING BEGIN OR END
    243. * OF A STAGE OR DESTAGE OPERATION, OR INITIATION OF A CARTRIDGE
    244. * LOAD/UNLOAD. AN APPROPRIATE MESSAGE IS CONSTRUCTED AND ISSUED
    245. * TO EITHER OR BOTH THE ACCOUNT AND JOB DAYFILE DEPENDING ON THE
    246. * CONTROLLING BIT MASKS AND THE *TM* RUN-TIME PARAMETER.
    247. *
    248. * PROC MSGAFDF(TYPE,FC,CODE,HLRQADR)
    249. *
    250. * ENTRY (TYPE) = MESSAGE TYPE. "I", "B", "E", OR "S".
    251. * (FC) = CODE FOR THE FUNCTION BEING PERFORMED.
    252. * "LD", "UL", "BS", "ES", "BD", "ED".
    253. *D250
    254. * FC = *FC* LD/UL/BS/ES/BD/ED.
    255. * (CODE) = COMPLETION STATUS OF A STAGE OR DESTAGE.
    256. * (HLRQADR) = ADDRESS OF *HLRQ* ENTRY.
    257. *
    258. * EXIT THE APPROPRIATE MESSAGE IS ISSUED.
    259. *
    260. * MESSAGES
    261. * T FC MESSAGE DETAIL.
    262. * T = *TYPE* = B/E/I.
    263. * FC = *FC* = DS/LD/ST/UL.
    264. *
    265. * MESSAGE DETAIL VARIES BY MESSAGE TYPE...
    266. *
    267. * SMFC, SM=X, CSN=CCCCCCCC, ID=ZZ.
    268. *
    269. * CCCCCCCC = CARTRIDGE SERIAL NUMBER.
    270. * ZZ = MANUFACTURES'S ID.
    271. *
    272. *
    273. * SMFC, PPPPPPP/UUUUUU/FFFFFFF.
    274. *
    275. * SMFC, PPPPPPP/UUUUUU/LLLLLL-WW.
    276. *
    277. * PPPPPPP = PERMANENT FILE NAME.
    278. * UUUUUU = USER INDEX (OCTAL).
    279. * FFFFFFF = FAMILY NAME.
    280. * LLLLLL = FILE LENGTH (DECIMAL).
    281. * WW = VALUE OF *CODE* (OCTAL).
    282. #
    283.  
    284. #
    285. **** PROC MSGAFDF - XREF LIST BEGIN.
    286. #
    287.  
    288. ITEM TYPE C(1); # MESSAGE TYPE #
    289. ITEM FC C(2); # FUNCTION BEING DONE #
    290. ITEM CODE U; # COMPLETION STATUS #
    291. ITEM HLRQADR U; # *HLRQ* ENTRY ADDRESS #
    292.  
    293.  
    294. XREF
    295. BEGIN
    296. FUNC XCDD C(10); # BINARY TO DISPLAY (DECIMAL) #
    297. FUNC XCOD C(10); # BINARY TO DISPLAY (OCTAL) #
    298. PROC BZFILL; # BLANK FILL A MESSAGE #
    299. PROC MESSAGE; # ISSUE MESSAGE TO O/S #
    300. END
    301.  
    302. #
    303. **** PROC MSGAFDF - XREF LIST END.
    304. #
    305.  
    306. DEF LISTCON #0#; # DO NOT LIST COMMON DECKS #
    307. *CALL,COMBFAS
    308. *CALL,COMBBZF
    309. *CALL,COMBLRQ
    310. *CALL,COMBTDM
    311. *CALL,COMXHLR
    312. *CALL,COMXJCA
    313. *CALL,COMXMSC
    314.  
    315.  
    316. DEF SKELCART #"SMFC, SM=X, CSN=CCCCCCCC, ID=ZZ." #;
    317. DEF SKELFILE #"SMFC, PPPPPPP/UUUUUU/FFFFFFF." #;
    318. DEF SKELTAG #"-WW." #;
    319.  
    320. ITEM DOAF U; # CONTROL ACCOUNT FILE MESSAGE #
    321. ITEM DODF U; # CONTROL DAYFILE MESSAGE #
    322. ITEM OFFSET U; # BIT POSITION #
    323.  
    324.  
    325. ARRAY MSGS [0:0] S(4);
    326. BEGIN
    327.  
    328. #
    329. * BASIC MESSAGE FORMAT.
    330. #
    331.  
    332. ITEM MSGS$SKEL C(00,00,38); # TEXT #
    333. ITEM MSGS$SMA C(00,00,02); # *SM* #
    334. ITEM MSGS$FC C(00,12,02); # *FC* #
    335. ITEM MSGS$ZERO U(03,48,12) = [0]; # TERMINATOR #
    336.  
    337. #
    338. * DETAIL FOR TYPE = "I".
    339. #
    340.  
    341. ITEM MSGS$SM C(00,54,01); # X #
    342. ITEM MSGS$CSN C(01,36,08); # CCCCCCCC #
    343. ITEM MSGS$ID C(02,54,02); # ZZ #
    344.  
    345. #
    346. * DETAIL FOR TYPE = "B" AND PART OF "E".
    347. #
    348.  
    349. ITEM MSGS$PFN C(00,36,07); # PPPPPPPP #
    350. ITEM MSGS$UI C(01,24,06); # UUUUUU #
    351. ITEM MSGS$FAM C(02,06,07); # FFFFFFF #
    352.  
    353. #
    354. * REST OF DETAIL FOR "E" TYPE MESSAGES.
    355. #
    356.  
    357. ITEM MSGS$LEN C(02,06,06); # LLLLLL #
    358. ITEM MSGS$TAG C(02,42,04); # "-WW." #
    359. ITEM MSGS$CODE C(02,48,02); # WW #
    360. END
    361.  
    362. CONTROL EJECT;
    363. IF TYPE EQ "S"
    364. THEN
    365. BEGIN
    366. P<TDAM> = HLRQADR;
    367. TYPE = "E";
    368. END
    369.  
    370. ELSE
    371. BEGIN
    372. P<HLRQ> = HLRQADR;
    373. P<TDAM> = LOC(HLR$TDAM[0]);
    374. P<LLRQ> = HLR$LRQADR[0];
    375. END
    376.  
    377. DODF = 0; # DEFAULT IS NOT TO ISSUE MESSAGE
    378.   #
    379.  
    380. IF TYPE EQ "I"
    381. THEN # CARTRIDGE MESSAGE #
    382. BEGIN
    383. DOAF = B<59,1>MSG$AF$CTL[0];
    384. MSGS$SKEL[0] = SKELCART;
    385. MSGS$SM[0] = HLR$SM[0];
    386. IF FC EQ "LD"
    387. THEN
    388. BEGIN
    389. MSGS$CSN[0] = HLR$CSND[0];
    390. MSGS$ID[0] = HLR$CCOD[0];
    391. END
    392.  
    393. ELSE
    394. BEGIN
    395. MSGS$CSN[0] = LLR$CSND[0];
    396. MSGS$ID[0] = LLR$CCOD[0];
    397. END
    398.  
    399. END
    400.  
    401. ELSE # FILE MESSAGE #
    402. BEGIN
    403. MSGS$SKEL[0] = SKELFILE;
    404. MSGS$PFN[0] = TDAMPFN[0];
    405. CH$10[0] = XCOD(O"1000000" + TDAMUI[0]);
    406. MSGS$UI[0] = CH$06[0];
    407.  
    408. IF TYPE EQ "B"
    409. THEN # INSERT FAMILY NAME #
    410. BEGIN
    411. MSGS$FAM[0] = TDAMFAM[0];
    412. DOAF = B<58,1>MSG$AF$CTL[0];
    413. END
    414.  
    415. ELSE # ADD LENGTH AND TAG #
    416. BEGIN
    417. CH$10[0] = XCDD(TDAMFLN[0]);
    418. MSGS$LEN[0] = CH$06[0];
    419. DOAF = B<57,1>MSG$AF$CTL[0];
    420.  
    421. MSGS$TAG[0] = SKELTAG;
    422. CH$10[0] = XCOD(O"100" + CODE);
    423. MSGS$CODE[0] = CH$02[0];
    424. IF FC EQ "BS" OR FC EQ "ES"
    425. THEN
    426. BEGIN
    427. OFFSET = 59;
    428. END
    429.  
    430. ELSE
    431. BEGIN
    432. OFFSET = 29;
    433. END
    434.  
    435. DODF = B<OFFSET-CODE,1>MSG$DF$CTL[0];
    436. B<OFFSET-CODE,1>MSG$ACT[0] = 1;
    437.  
    438. END
    439.  
    440. END
    441.  
    442. MSGS$FC[0] = FC;
    443.  
    444. BZFILL(MSGS,TYPFILL"BFILL",38);
    445.  
    446.  
    447. IF (DOAF NQ 0) AND RA$TRACE[0]
    448. THEN
    449. BEGIN
    450. MESSAGE(MSGS[0],ACTDF);
    451. END
    452.  
    453. IF DODF NQ 0
    454. THEN
    455. BEGIN
    456. MSGS$SMA[0] = " ";
    457. MESSAGE(MSGS[0],UDFL1);
    458. END
    459.  
    460. END # MSGAFDF #
    461.  
    462. TERM
    463. PROC PFMEC((ERRSTAT),ACTION);
    464.  
    465. # TITLE PFMEC - CONVERT *PFM* ERROR CODES. #
    466.  
    467. BEGIN # PFMEC #
    468.  
    469. #
    470. ** PFMEC - CONVERT *PFM* ERROR CODES.
    471. *
    472. * *PFMEC* CONVERTS AN ERROR CODE RETURNED FROM *PFM* TO AN ERROR
    473. * ACTION CODE. THIS ACTION CODE REPRESENTS WHAT TYPE OF ACTION
    474. * EXEC SHOULD TAKE WHEN PROCESSING THE ERROR.
    475. *
    476. * PROC PFMEC((ERRSTAT),ACTION)
    477. *
    478. * ENTRY (ERRSTAT) - *PFM* ERROR CODE.
    479. *
    480. * EXIT (ACTION) - ERROR ACTION.
    481. * (VALUES DEFINED IN *COMXMSC*)
    482. * = ERRST"NOERR".
    483. * = ERRST"WAIT".
    484. * = ERRST"FATAL".
    485. * = ERRST"ABANDON".
    486. * = ERRST"SPECIAL".
    487. #
    488.  
    489. ITEM ERRSTAT I; # *PFM* ERROR CODE #
    490. ITEM ACTION I; # ERROR ACTION #
    491.  
    492. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    493. *CALL COMBFAS
    494. *CALL COMXMSC
    495. *CALL COMSPFM
    496. CONTROL EJECT;
    497.  
    498. IF ERRSTAT EQ PFA OR ERRSTAT EQ FIN OR ERRSTAT EQ INA ##
    499. OR ERRSTAT EQ FTF OR ERRSTAT EQ PEA
    500. THEN # DELAY CONDITION #
    501. BEGIN
    502. ACTION = ERRST"WAIT";
    503. RETURN;
    504. END
    505.  
    506. IF ERRSTAT EQ FBS OR ERRSTAT EQ FDA ##
    507. OR ERRSTAT EQ DTE OR ERRSTAT EQ IOE OR ERRSTAT EQ PRL ##
    508. OR ERRSTAT EQ DAF OR ERRSTAT EQ MSE OR ERRSTAT EQ EDA ##
    509. OR ERRSTAT EQ EPT OR ERRSTAT EQ EDP ##
    510. OR ERRSTAT EQ FLC OR ERRSTAT EQ NEM OR ERRSTAT EQ FSE ##
    511. OR ERRSTAT EQ AIO OR ERRSTAT EQ ICU ##
    512. OR ERRSTAT EQ FIA OR ERRSTAT EQ PVE OR ERRSTAT EQ FND
    513. THEN # ABANDON CONDITION #
    514. BEGIN
    515. ACTION = ERRST"ABANDON";
    516. RETURN;
    517. END
    518.  
    519. IF ERRSTAT EQ SPN OR ERRSTAT EQ TKL
    520. THEN # SPECIAL CONDITION #
    521. BEGIN
    522. ACTION = ERRST"SPECIAL";
    523. RETURN;
    524. END
    525.  
    526. ACTION = ERRST"FATAL"; # FATAL CONDITION #
    527. RETURN;
    528. END # PFMEC #
    529.  
    530. TERM
    531. PROC TRACMSG((TDAMADR),(ACTV));
    532.  
    533. # TITLE TRACMSG - ISSUE TRACE MESSAGE. #
    534.  
    535. BEGIN # TRACMSG #
    536.  
    537. #
    538. ** TRACMSG - ISSUE TRACE MESSAGE.
    539. *
    540. * *TRACMSG* ISSUES MESSAGES TO THE ACCOUNT DAYFILE FOR *STAGER*
    541. * AND *DESTAGR* PROVIDING INFORMATION ON THE FILE STAGE AND
    542. * DESTAGE REQUESTS BEING PROCESSED.
    543. *
    544. * PROC TRACMSG((TDAMADR),(ACTV))
    545. *
    546. * ENTRY (TRACMSG) - ADDRESS OF *TDAM* REQUEST BLOCK CONTAINING
    547. * FILE NAME AND FILE LENGTH.
    548. * (ACTV) - 2 CHARACTER ACTIVITY CODE.
    549. *
    550. * MESSAGES *STD1, FFFFFFF.*
    551. * *STD2, FFFFFFF.*
    552. * *STD3, FFFFFFF.*
    553. * *STD4, FFFFFFF, LLLLLL.*
    554. * *STD5, FFFFFFF.*
    555. * *STS2, FFFFFFF.*
    556. * *STS3, FFFFFFF.*
    557. * *STS4, FFFFFFF, LLLLLL.*
    558. * *STS5, FFFFFFF.*
    559. * *STS6, FFFFFFF.*
    560. *
    561. * NOTES *ACTV* IS A 2 CHARACTER CODE IDENTIFYING THE ACTIVITY
    562. * WHICH OCCURED. THE FIRST CHARACTER IS *S* FOR STAGE
    563. * REQUESTS AND *D* FOR DESTAGE REQUESTS. THE SECOND
    564. * CHARACTER REPRESENTS THE ACTION AS FOLLOWS:
    565. * *1* - FILE ATTACHED FOR DESTAGE (UNDEFINED FOR
    566. * STAGE).
    567. * *2* - CARTRIDGE LOADED.
    568. * *3* - COPY TO BE INITIATED.
    569. * *4* - COPY COMPLETE.
    570. * *5* - *PFC* HAS BEEN UPDATED.
    571. * *6* - COPY FROM FIRST CARTRIDGE COMPLETE FOR A
    572. * MULTICARTRIDGE FILE (UNDEFINED FOR DESTAGE).
    573. #
    574.  
    575. ITEM TDAMADR U; # ADDRESS OF *TDAM* REQUEST BLOCK
    576.   #
    577. ITEM ACTV C(2); # ACTIVITY RECORDED #
    578.  
    579. #
    580. **** PROC TRACMSG - XREF LIST BEGIN.
    581. #
    582.  
    583. XREF
    584. BEGIN
    585. PROC BZFILL; # BLANK OR ZERO FILL ITEM #
    586. PROC MSG; # ISSUE MESSAGE #
    587. PROC RMVBLNK; # REMOVE EXCESS BLANKS #
    588. FUNC XCDD C(10); # CONVERT DECIMAL TO DISPLAY #
    589. END
    590.  
    591. #
    592. **** PROC TRACMSG - XREF LIST END.
    593. #
    594.  
    595. DEF LISTCON #0#; # DO NOT LIST COMDECKS #
    596. *CALL COMBFAS
    597. *CALL COMBBZF
    598. *CALL COMBTDM
    599. *CALL COMXACM
    600. *CALL COMXJCA
    601.  
    602. ITEM FLEN C(10); # DISPLAY CODED FILE LENGTH #
    603. ITEM FLNM C(7); # FILE NAME #
    604. CONTROL EJECT;
    605. IF NOT RA$TRACE[0]
    606. THEN # TRACE MODE NOT SELECTED #
    607. BEGIN
    608. RETURN;
    609. END
    610.  
    611. P<TDAM> = TDAMADR;
    612. IF ACTV EQ "S4" OR ACTV EQ "D4"
    613. THEN # INCLUDE FILE LENGTH IN MESSAGE #
    614. BEGIN
    615. ACCMMES[0] = ACCMSG4;
    616. FLEN = XCDD(TDAMFLN[0]);
    617. ACCMFLEN[0] = C<4,6>FLEN;
    618. END
    619.  
    620. ELSE
    621. BEGIN
    622. ACCMMES[0] = ACCMSG3;
    623. END
    624.  
    625. FLNM = TDAMPFN[0];
    626. BZFILL(FLNM,TYPFILL"BFILL",7);
    627. ACCMPFN[0] = FLNM;
    628. ACCMACTV[0] = ACTV;
    629. RMVBLNK(ACCMSG[0],40);
    630. MSG(ACCMSG[0],ACTDF);
    631.  
    632. RETURN;
    633. END # TRACMSG #
    634.  
    635. TERM
1)
ERRSTAT),ACTION)
  • [00465] PFMEC - CONVERT *PFM* ERROR CODES.
  • [00470] PFMEC - CONVERT *PFM* ERROR CODES.
  • [00531] PROC TRACMSG((TDAMADR),(ACTV
cdc/nos2.source/opl871/sxhlr.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator