Table of Contents

ROUTE

Table Of Contents

  • [00010] ROUTE COMMAND PROCESSOR.
  • [00012] PROCESS ROUTE COMMAND.
  • [00132] TABLE DEFINITIONS.
  • [00136] TDSP - DSP PARAMETER BLOCK.
  • [00174] TFUN - FAMILY NAME, USER NAME TABLE
  • [00198] PROCESS COMMAND.
  • [00360] KEYWORD PROCESSORS.
  • [00374] KDC - PROCESS DC=XX. DISPOSITION CODE.
  • [00404] KDE - PROCESS *DEF*. DEFERRED ROUTE
  • [00418] KDO - PROCESS *DO=XXX*. DEFAULT OUTPUT MAINFRAME.
  • [00455] KEC - PROCESS *EC=XX*. EXTERNAL CHARACTERISTICS.
  • [00487] KFC - PROCESS *FC=XX. FORMS CODE.
  • [00514] KFM - PROCESS *FM=XXXXXXX* PARAMETER.
  • [00539] KIC - PROCESS *IC=XX* (INTERNAL CHARACTERISTICS)
  • [00569] KID - PROCESS *ID=NN* (LOCAL DEVICE ID).
  • [00604] KJS - PROCESS *JSN=XXX* (UNIQUE JSN).
  • [00644] KOT - PROCESS *OT=XXXX* (ORIGIN TYPE).
  • [00678] KPI - PROCESS *PI=NNNNNNN* (PRINT IMAGE).
  • [00714] KPR - PROCESS *PRI=NNNN* (PRIORITY)
  • [00723] KRE - PROCESS *REP=NN* (REPEAT COUNT)
  • [00752] KSC - PROCESS *SC=XX* (SPACING CODE).
  • [00781] KST - PROCESS *ST=XXX*. DESTINATION LID.
  • [00819] KSV - PROCESS *SCL=XX* (SERVICE CLASS).
  • [00849] KTD - PROCESS *TID=XX* (TERMINAL ID).
  • [00873] KUJ - PROCESS *UJN=XXXXXXX* (USER JOB NAME).
  • [00892] KUN - PROCESS *UN=XXXXXXX* (USER NAME).

Source Code

ROUTE.txt
  1. IDENT ROUTE,ROU,ROUTE
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY ROUTE
  6. ENTRY NPC=
  7. ENTRY RFL=
  8. *COMMENT ROUTE - ROUTE FILE TO I/O QUEUE.
  9. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10. TITLE ROUTE COMMAND PROCESSOR.
  11. SPACE 4,10
  12. *** ROUTE - PROCESS ROUTE COMMAND.
  13. * R.N. LAGERSTROM 76/01/30.
  14. *
  15. * ROUTE IS USED TO PLACE FILES INTO THE INPUT AND
  16. * OUTPUT QUEUES.
  17. SPACE 4,20
  18. *** CALL.
  19. *
  20. * ROUTE(LFN,P1,P2,...,PN)
  21. *
  22. * LFN - FILE NAME TO ROUTE.
  23. *
  24. * THE REMAINING PARAMETERS ARE ORDER INDEPENDENT.
  25. *
  26. * DC=AA - TWO-CHARACTER DISPOSITION CODE (ALPHA CODE).
  27. * DEF - INDICATES DEFERRED (END-OF-JOB) ROUTING.
  28. * DO=XXX - DEFAULT OUTPUT MAINFRAME LOGICAL ID.
  29. * EC=XX - EXTERNAL CHARACTERISTICS.
  30. * FC=XX - FORMS CODE (TWO-CHARACTER ALPHA-NUMERIC).
  31. * FID=XXXXXXX - FILE ID. (NOS/BE COMPATIBILITY)
  32. * FM=XXXXXXX - FAMILY NAME.
  33. * FM - IMPLICIT REMOTE ROUTING.
  34. * IC=XX - INTERNAL CHARACTERISTICS.
  35. * ID=NN - SELECT LOCAL DEVICE (0-67 OCTAL DEFAULT).
  36. * ID - IMPLICIT CENTRAL SITE ROUTING.
  37. * JSN=XXX - FORCE A UNIQUE THREE CHARACTER JSN ON A JOB.
  38. * OT=XXXX - SET THE ORIGIN TYPE OF THE FILE.
  39. * PI=N - PRINT IMAGE ORDINAL ( 0 - 7 )
  40. * PI=XXXXXXX - PRINT IMAGE NAME ( 1 TO 7 CHARACTER NAME )
  41. * PRI=NNNN - FILE PRIORITY. IGNORED WITH MESSAGE.
  42. * REP=NN - REPEAT COUNT (0-63 DECIMAL DEFAULT).
  43. * SC=XX - SPACING CODE (FOR 580-PFC SUPPORT).
  44. * SCL=XX - SELECT SERVICE CLASS FOR OUTPUT FILES (TWO-CHARACTER
  45. * ALPHA-NUMERIC).
  46. * ST=XXX - LOGICAL ID (LID) OF SYSTEM TO WHICH FILE IS TO
  47. * BE ROUTED.
  48. * TID=XX - PROCESSED AS UN=XXXXXXX (FOR NOS/BE COMPATIBILITY).
  49. * TID=C - IMPLICIT CENTRAL SITE ROUTING.
  50. * TID - IMPLICIT REMOTE ROUTING.
  51. * UJN=XXXXXXX - USER JOB NAME.
  52. * UN=XXXXXXX - USER NAME.
  53. * UN - IMPLICIT REMOTE ROUTING.
  54. *
  55. * NOTE-
  56. *
  57. * 1. CENTRAL SITE ROUTING WILL BE SELECTED BY DEFAULT FOR ALL
  58. * ORIGIN TYPES EXCEPT *RBOT* UNLESS TID (EXCEPT TID=C), FM,
  59. * OR UN IS INCLUDED.
  60. *
  61. * 2. FOR *RBOT* ORIGIN JOBS, ROUTING WILL BE TO THE TERMINAL
  62. * OF ORIGIN UNLESS TID, FM, OR UN ARE SPECIFIED WITH A
  63. * PARAMETER. *TID=C* OR *TID* WILL ROUTE TO CENTRAL SITE.
  64. *
  65. * 3. IMPLICIT REMOTE ROUTING MEANS THAT ROUTING WILL BE TO A
  66. * REMOTE TERMINAL IDENTIFIED BY THE FM-UN OF THE JOB MAKING
  67. * THE REQUEST.
  68. *
  69. * 4. IMPLICIT CENTRAL SITE ROUTING WILL SUPPLY THE DEFAULT
  70. * LOCAL DEVICE ID AND OVER-RIDE DEFAULT REMOTE ROUTING FOR
  71. * *RBOT* ORIGIN JOBS.
  72. SPACE 4,10
  73. ** PROGRAMS CALLED.
  74. *
  75. * DSP - ROUTE FILE.
  76. SPACE 4,10
  77. ** COMMON DECKS CALLED.
  78. *
  79. * COMCDXB
  80. * COMCMAC
  81. * COMCSYS
  82. * COMSBIO
  83. * COMSDSP
  84. * COMSJIO
  85. * COMSSCD
  86. * COMSSSJ
  87. SPACE 4,20
  88. *** MESSAGES ISSUED.
  89. *
  90. * ROUTE COMMAND ERROR.
  91. * ROUTE COMPLETE.
  92. * ROUTE COMPLETE. JSN IS XXXX.
  93. * ROUTE *DC* INCOMPATIBLE WITH *EC*.
  94. * ROUTE INCORRECT *DO* PARAMETER.
  95. * ROUTE INCORRECT *EC* PARAMETER.
  96. * ROUTE INCORRECT *FC* PARAMETER.
  97. * ROUTE INCORRECT *IC* PARAMETER.
  98. * ROUTE INCORRECT *JSN* PARAMETER.
  99. * ROUTE INCORRECT KEYWORD.
  100. * ROUTE INCORRECT *OT* PARAMETER.
  101. * ROUTE INCORRECT SPACING CODE.
  102. * ROUTE INCORRECT *ST* PARAMETER.
  103. * ROUTE *JSN* NOT ALLOWED.
  104. * ROUTE *OT* NOT ALLOWED.
  105. * ROUTE *PRI* IGNORED.
  106. * ROUTE *REP* .GT. 63. DEFAULT USED.
  107. * ROUTE *TID* AND *FM/UN* CONFLICT.
  108. * ROUTE *TID/FM/UN* AND *ID* CONFLICT.
  109. * ROUTE UNDEFINED SERVICE CLASS.
  110. * ROUTE UNKNOWN *PI* PARAMETER.
  111. SPACE 4,10
  112. ** DEFINE.
  113. * EXTERNAL CHARACTERISTICS (EC), AND
  114. * INTERNAL CHARACTERISTICS (IC).
  115. SPACE 4,10
  116. * SPECIAL ENTRY POINT.
  117.  
  118. NPC= EQU 0 FORCE OPERATING SYSTEM PARAMETER FORMAT
  119.  
  120.  
  121. QUAL BIO
  122. *CALL COMSBIO
  123. QUAL *
  124. *CALL COMSDSP
  125. *CALL COMCMAC
  126. *CALL COMSSSJ
  127. LIST X
  128.  
  129. *CALL COMSJIO
  130.  
  131. LIST *
  132. TITLE TABLE DEFINITIONS.
  133. ORG 103B
  134. ROU BSS 0
  135. TDSP SPACE 4,30
  136. ** TDSP - DSP PARAMETER BLOCK.
  137. *
  138. *T W0 42/ FILE NAME,6/ ,1/F,4/ ,6/ OT,1/C
  139. *T, W1 12/ ,12/ FC,12/ DC,3/ EC,3/ IC,18/ FLAGS
  140. *T, W2 18/ SLID,18/ DLID,24/ DA
  141. *T, W3 42/ UJN,18/
  142. *T, W4 2/ 0,1/ P,3/ PI,6/ SC,12/ SCL,12/ FA,6/ ,6/ RC,12/
  143. *T, W5 60/
  144. *T, W6 60/
  145. *
  146. * F - FORCE ORIGIN TYPE FLAG.
  147. * OT - DESIRED ORIGIN TYPE.
  148. * C - COMPLETE BIT.
  149. * FC - FORMS CODE
  150. * DC - DISPOSITION CODE
  151. * EC - EXTERNAL CHARACTERISTICS
  152. * IC - INTERNAL CHARACTERISTICS
  153. * SLID - LOGICAL ID (LID) TO RECEIVE OUTPUT FROM INPUT FILES.
  154. * DLID - DESTINATION LOGICAL ID OF MAINFRAME TO RECEIVE FILES.
  155. * DA - TID OR POINTER TO FM/UN
  156. * P - PRINT IMAGE FLAG (INDICATES PRINT IMAGE CODE PRESENT).
  157. * PI - PRINT IMAGE CODE (0-7) IF PRINT IMAGE FLAG SET.
  158. * SC - SPACING CODE
  159. * SCL - SERVICE CLASS
  160. * FA - ABORT CODE
  161. * RC - REPEAT COUNT
  162. * UJN - USER JOB NAME
  163.  
  164.  
  165. TDSP BSS 0
  166. CON 0
  167. VFD 42/0,18/FRFN
  168. VFD 36/0,24/-0
  169. CON 0
  170. CON 0
  171. CON 0
  172. CON 0
  173. TFUN SPACE 4,10
  174. ** TFUN - FAMILY NAME, USER NAME TABLE
  175. *
  176. *T W0 42/ FAMILY NAME,18/
  177. *T, W1 42/ USER NAME,18/
  178.  
  179.  
  180. TFUN BSSZ 2 FAMILY NAME - USER NAME
  181.  
  182. SPACE 4,10
  183. * INTERNAL FLAGS.
  184.  
  185. PTID CON 0 TID PROCESSED
  186. PFUN CON 0 FM-UN PROCESSED
  187. PDID CON 0 DEVICE ID PROCESSED
  188. PDEF CON 0 DEF PROCESSED
  189. PJSN CON 0 JSN PROCESSED
  190. PUJN CON 0 UJN PROCESSED
  191. PDCT CON 0 DISPOSITION TYPE - SEE *TDCC*
  192. PECT CON 0 EXTERNAL CHARACTERISTICS TYPE - SEE *TECC*
  193. PJOT CON 0 ORIGIN OF JOB
  194. LIST X
  195. *CALL COMTDSP
  196. LIST -X
  197. ROUTE TITLE MAIN PROGRAM
  198. ** ROUTE - PROCESS COMMAND.
  199.  
  200.  
  201. ROUTE BSS 0 ENTRY
  202. SB1 1
  203. SA1 ACTR
  204. R= A0,ARGR FIRST ARGUMENT ADDRESS
  205. SB6 X1 SET ARGUMENT COUNT
  206. MX0 -18
  207. SA1 A0
  208. ZR B6,ABT IF NOT AT LEAST ONE ARGUMENT
  209.  
  210. * GET FILE NAME.
  211.  
  212. BX6 -X0*X1
  213. AX6 1
  214. NZ X6,ABT IF FILE NAME NOT FIRST PARAMETER
  215. BX7 X0*X1
  216. SA7 TDSP STORE FILE NAME
  217.  
  218. * PROCESS NEXT PARAMETER.
  219.  
  220. EPRX BSS 0 END-OF-PROCESSING PARAMETER EXIT
  221. SB6 B6-B1 REDUCE REMAINING PARAMETER COUNT
  222. SA0 A0+B1
  223. LE B6,B0,DSP IF END OF PARAMETERS
  224. SA2 A0 GET NEXT ARGUMENT
  225. MX3 0 ZERO PARAMETER
  226. SX7 X2-1R=
  227. ZR X7,ROU1 IF *=* SEPARATOR
  228. SX7 X2-2
  229. NZ X7,ROU3 IF NOT *=* SEPARATOR (NOS/BE FORMAT)
  230.  
  231. * PROCESS EQUIVALENCED PARAMETER, IF PRESENT.
  232.  
  233. ROU1 SA0 A0+B1
  234. SB6 B6-B1
  235. SA3 A0 GET NEXT PARAMETER
  236. SB2 X3
  237. LE B2,B1,ROU2 IF 0 OR 1 TERMINATOR
  238. SB2 B2-17B
  239. ZR B2,ROU2 IF 17B TERMINATOR
  240. EQ ABT ABORT
  241.  
  242. ROU2 MX0 42 CHECK FOR NULL PARAMETER
  243. BX3 X0*X3
  244. NZ X3,ROU3 IF NOT NULL PARAMETER
  245. SX3 -1 SET NULL PARAMETER FLAG
  246.  
  247. * SEARCH FOR KEYWORD.
  248.  
  249. ROU3 SA1 TKEY-1
  250. MX0 36
  251. ROU4 SA1 A1+B1
  252. BX7 X1-X2 COMPARE KEYWORD
  253. BX7 X0*X7
  254. SB2 X1 SET PROCESSOR ADDRESS
  255. ZR X1,ROU6 IF KEYWORD NOT FOUND IN TABLE
  256. NZ X7,ROU4 IF NOT THIS KEYWORD
  257. SX7 -B1 DELETE KEYWORD FROM TABLE
  258. SA7 A1
  259. MX0 42
  260. BX7 X3-X7
  261. ZR X7,EPRX IF NULL PARAMETER, IGNORE
  262. BX3 X0*X3
  263. LX1 59-18
  264. NG X1,ROU5 IF NONEQUIVALENCED PARAMETER ALLOWED
  265. ZR X3,ABT IF NONEQUIVALENCED PARAMETER
  266. ROU5 JP B2 EXECUTE KEYWORD PROCESSOR
  267.  
  268. ROU6 MESSAGE (=C* ROUTE INCORRECT KEYWORD.*),0,RECALL
  269. EQ ABT1 ABORT
  270.  
  271. ABT MESSAGE (=C* ROUTE COMMAND ERROR.*),0,RECALL
  272. ABT1 ABORT
  273.  
  274. * MAKE *DSP* CALL.
  275.  
  276. DSP SA1 TDSP+1
  277. MX0 -12 EXTRACT DISPOSITION CODE
  278. BX2 X1
  279. AX1 24
  280. BX7 -X0*X1
  281. SB3 B0 INITIALIZE POINTER
  282. AX1 12
  283. BX1 -X0*X1
  284. SX3 X7-2RSC
  285. NZ X3,DSP0 IF NOT *DC=SC*
  286. SA0 B1 SET * ROUTE COMPLETE.* MESSAGE
  287. EQ DSP1 CONTINUE
  288.  
  289. DSP0 SA3 DSPB+B3 GET INPUT MNEMONIC
  290. ZR X3,DSP0.2 IF END OF TABLE
  291. IX3 X7-X3
  292. ZR X3,DSP0.1 IF MATCH
  293. SB3 B3+B1 GET NEXT MNEMONIC
  294. EQ DSP0 CONTINUE
  295.  
  296. DSP0.1 NZ X1,ABT IF *FC=XX* ON INPUT DISPOSITION
  297. SA1 PDEF CHECK FOR *DEF* PARAMETER
  298. NZ X1,ABT IF DEFERRED INPUT FILE
  299. DSP0.2 SA0 0 SET *ROUTE COMPLETE. JSN IS XXXX.*
  300. DSP1 SA1 PFUN
  301. SA3 PTID
  302. SX4 FRTI
  303. BX6 X3+X1
  304. BX7 X4+X2
  305. ZR X6,DSP2 IF NOT REMOTE ROUTING
  306. SA7 TDSP+1 SET *TID* FLAG BIT
  307. SA1 TFUN
  308. SA2 A1+B1
  309. BX2 X2+X1
  310. ZR X2,DSP2 IF IMPLICIT REMOTE ROUTING
  311. SA2 TDSP+2
  312. SX3 A1 SET ADDRESS OF FAMILY/USERNUMBER BLOCK
  313. MX0 36
  314. BX3 -X3
  315. BX6 -X0*X3
  316. BX2 X0*X2
  317. BX6 X2+X6
  318. SA6 TDSP+2
  319. DSP2 MX0 -3
  320. SA1 PDCT
  321. LX0 3
  322. SA2 PECT
  323. BX1 -X0*X1 GET *DC* TYPE
  324. BX2 -X0*X2 GET *EC* TYPE
  325. ZR X1,DSP3 IF NO *DC* TYPE
  326. ZR X2,DSP3 IF NO *EC* TYPE
  327. BX1 X1-X2
  328. ZR X1,DSP3 IF TYPES COMPARE
  329. MESSAGE (=C/ ROUTE *DC* INCOMPATIBLE WITH *EC*./),3,RECALL
  330. EQ ABT1 ABORT
  331.  
  332. DSP3 ROUTE TDSP,RECALL
  333. SX1 A0
  334. SA2 TDSP
  335. MX0 -1
  336. SA3 A2+B1 GET FLAGS FIELD
  337. BX3 -X0*X3
  338. NZ X3,DSP5 IF THIS WAS A DEFERRED ROUTE
  339. NZ X1,DSP5 IF JSN NOT TO BE RETURNED
  340. SA3 DSPA+2 POSITION JSN
  341. MX0 24
  342. BX6 X0*X2
  343. ZR X6,DSP5 IF NO JSN RETURNED
  344. LX0 30
  345. BX3 -X0*X3
  346. LX6 30
  347. BX6 X3+X6
  348. SA6 DSPA+2 STORE JSN IN MESSAGE
  349. MESSAGE DSPA,3,RECALL
  350. DSP4 ENDRUN
  351.  
  352. DSP5 MESSAGE (=C* ROUTE COMPLETE.*),3,RECALL
  353. EQ DSP4
  354.  
  355. DSPA DATA H/ ROUTE COMPLETE. JSN IS XXXX./
  356. DSPB DATA 2RIN *DC=IN*
  357. DATA 2RNO *DC=NO*
  358. DATA 2RTO *DC=TO*
  359. DATA 0
  360. TITLE KEYWORD PROCESSORS.
  361. ** ALL OF THE FOLLOWING ROUTINES HAVE COMMON ENTRY AND EXIT
  362. * CONDITIONS-
  363. *
  364. * ENTRY X3 = PARAMETER WHEN *KW=PP* IS THE FORMAT.
  365. * X3 = ZERO IF NO PARAMETER WITH KEYWORD.
  366. *
  367. * EXIT CORRECT ENTRIES MADE IN *TDSP*.
  368. * RETURN IN ALL NORMAL CASES TO *EPRX*
  369. *
  370. * USES ALL REGISTERS EXCEPT A0, B6.
  371.  
  372.  
  373. KDC SPACE 4,10
  374. ** KDC - PROCESS DC=XX. DISPOSITION CODE.
  375. *
  376. * EXIT *DC* FIELD SET IN *TDSP+1*
  377. * *FLAGS* ENTERED WITH *FRDC* IN *TDSP+1*.
  378.  
  379.  
  380. KDC BSS 0 ENTRY
  381. SA1 TDCC-1
  382. MX0 12
  383.  
  384. * FIND CODE IN TABLE.
  385.  
  386. KDC1 SA1 A1+1
  387. BX7 X1-X3 COMPARE CODES
  388. BX7 X0*X7
  389. ZR X1,KDC2 IF END OF TABLE
  390. NZ X7,KDC1 IF NO MATCH
  391. KDC2 BX7 X1
  392. SA7 PDCT SET TYPE PROCESSED
  393. LX3 -24 POSITION PARAMETER
  394. SA1 TDSP+1
  395. SX7 FRDC
  396. LX0 -24 POSITION MASK
  397. BX3 X0*X3
  398. BX1 -X0*X1
  399. BX3 X1+X3 ENTER *DC* PARAMETER
  400. BX7 X3+X7 ENTER FLAG BIT
  401. SA7 A1
  402. EQ EPRX RETURN
  403. KDE SPACE 4,10
  404. ** KDE - PROCESS *DEF*. DEFERRED ROUTE
  405. *
  406. * EXIT *FLAGS* IN *TDSP+1* ENTERED WITH *FRDR*.
  407.  
  408.  
  409. KDE BSS 0 ENTRY
  410. NZ X3,ABT IF EQUIVALENCED PARAMETER
  411. SA1 TDSP+1
  412. SX7 FRDR
  413. SA7 PDEF SET *DEF* PARAMETER ENTERED FLAG
  414. BX7 X1+X7 ENTER FLAG
  415. SA7 A1
  416. EQ EPRX RETURN
  417. KDO SPACE 4,10
  418. ** KDO - PROCESS *DO=XXX*. DEFAULT OUTPUT MAINFRAME.
  419. *
  420. * EXIT SOURCE LOGICAL ID IS PLACED IN *TDSP+2*.
  421. *
  422. * ERROR IF INCORRECT *DO* PARAMETER OR *LID* IS
  423. * GREATER THAN THREE CHARACTERS.
  424.  
  425.  
  426. KDO BSS 0 ENTRY
  427. MX0 18
  428. BX2 -X0*X3
  429. AX2 18
  430. NZ X2,KDO2 IF *LID* GREATER THAN THREE CHARACTERS
  431. BX6 X0*X3 EXTRACT OUTPUT MAINFRAME *LID*
  432. SA5 =1L* CHECK FOR ASTERISK
  433. R= X4,LCPD SET SLID TO PID
  434. LX6 18
  435. IX3 X4-X6
  436. PL X3,KDO2 IF .LE. SPECIAL SLID VALUES
  437. LX5 18
  438. BX5 X5-X6
  439. NZ X5,KDO1 IF NOT ASTERISK
  440. BX6 X4 SET SLID=PID
  441. KDO1 SA2 TDSP+2 SET SLID IN TDSP
  442. BX2 -X0*X2
  443. LX6 42
  444. BX6 X2+X6
  445. SA6 A2
  446. SX6 FRLD
  447. SA1 A2-B1 SET SLID/DLID FLAG
  448. BX6 X1+X6
  449. SA6 A1+ STORE FLAG
  450. EQ EPRX RETURN
  451.  
  452. KDO2 MESSAGE (=C+ ROUTE INCORRECT *DO* PARAMETER.+),3,RECALL
  453. EQ ABT1 ABORT
  454. KEC SPACE 4,10
  455. ** KEC - PROCESS *EC=XX*. EXTERNAL CHARACTERISTICS.
  456. *
  457. * EXIT *EC* FIELD SET IN *TDSP+1*.
  458. * *FLAGS* FIELD IN *TDSP+1* ENTERED WITH *FREC*.
  459.  
  460.  
  461. KEC BSS 0 ENTRY
  462. SA1 TECC-1
  463. MX0 36
  464. SA2 TDSP+1
  465. MX7 -3
  466.  
  467. KEC1 SA1 A1+B1
  468. ZR X1,KEC2 IF *EC* NOT FOUND
  469. BX6 X3-X1
  470. BX6 X0*X6
  471. NZ X6,KEC1 IF NOT CORRECT *EC*
  472. BX6 X1
  473. SA6 PECT SET TYPE PROCESSED
  474. LX7 23-2 POSITION MASK
  475. LX1 23-2 POSITION ENTRY FROM *EC* TABLE
  476. SX6 FREC
  477. BX2 X7*X2
  478. BX1 -X7*X1
  479. BX6 X2+X6 ENTER FLAG BIT
  480. BX6 X1+X6 ENTER *EC* CODE
  481. SA6 A2+
  482. EQ EPRX RETURN
  483.  
  484. KEC2 MESSAGE (=C+ ROUTE INCORRECT *EC* PARAMETER.+),3,RECALL
  485. EQ ABT1 ABORT
  486. KFC SPACE 4,10
  487. ** KFC - PROCESS *FC=XX. FORMS CODE.
  488. *
  489. * EXIT *FC* FIELD SET IN *TDSP+1*.
  490. * *FLAGS* FIELD IN *TDSP+1* ENTERED WITH *FRFC*.
  491. *
  492. * ERROR TO *ABT1*.
  493. *
  494. * MACROS MESSAGE.
  495.  
  496.  
  497. KFC BSS 0 ENTRY
  498. SA1 TDSP+1
  499. MX0 -48
  500. SX6 FRFC
  501. BX2 -X0*X3
  502. LX3 -12
  503. NZ X2,KFC1 IF FORMS CODE GREATER THAN TWO CHARACTERS
  504. LX0 -12
  505. BX1 X1+X6 ENTER FLAG BIT
  506. BX3 X0*X3
  507. BX6 X1+X3 ENTER FORMS CODE
  508. SA6 A1
  509. EQ EPRX RETURN
  510.  
  511. KFC1 MESSAGE (=C+ ROUTE INCORRECT *FC* PARAMETER.+),0,RECALL
  512. EQ ABT1 ABORT
  513. KFM SPACE 4,10
  514. ** KFM - PROCESS *FM=XXXXXXX* PARAMETER.
  515. *
  516. * EXIT FAMILY NAME ENTERED IN *TFUN*.
  517. * FLAG SET IN *PFUN* IF *PTID* AND *PDID* ARE ZERO.
  518.  
  519.  
  520. KFM BSS 0 ENTRY
  521. SA1 PDID
  522. NZ X1,KFM2 IF *FM* AND *ID* CONFLICT
  523. SA1 PTID
  524. SX7 FRTI
  525. NZ X1,KFM1 IF *TID* PROCESSED
  526. SA7 PFUN SET *FM-UN* FLAG
  527. ZR X3,EPRX IF IMPLICIT REMOTE ROUTING
  528. MX0 42
  529. BX7 X0*X3
  530. SA7 TFUN STORE FAMILY NAME IN *TFUN*
  531. EQ EPRX RETURN
  532.  
  533. KFM1 MESSAGE (=C+ ROUTE *TID* AND *FM/UN* CONFLICT.+),3,RECALL
  534. EQ ABT1 ABORT
  535.  
  536. KFM2 MESSAGE (=C+ ROUTE *TID/FM/UN* AND *ID* CONFLICT.+),3,RECALL
  537. EQ ABT1 ABORT
  538. KIC SPACE 4,10
  539. ** KIC - PROCESS *IC=XX* (INTERNAL CHARACTERISTICS)
  540. *
  541. * EXIT *IC* FIELD SET IN *TDSP+1*.
  542. * *FLAGS* FIELD IN *TDSP+1* ENTERED WITH *FRIC*.
  543.  
  544.  
  545. KIC BSS 0 ENTRY
  546. SA1 TDSP+1
  547. SA2 TICC-1
  548. SX6 FRIC
  549. MX7 -2
  550. MX0 36
  551. LX7 19-1 POSITION MASK
  552. BX6 X1+X6 ENTER FLAG BIT
  553.  
  554. KIC1 SA2 A2+B1
  555. ZR X2,KIC2 IF UNKNOWN *IC* CODE
  556. BX1 X3-X2
  557. BX1 X0*X1
  558. NZ X1,KIC1 IF NOT FOUND
  559. LX2 19-1
  560. BX6 X7*X6
  561. BX2 -X7*X2
  562. BX6 X6+X2 ENTER IC CODE
  563. SA6 A1
  564. EQ EPRX RETURN
  565.  
  566. KIC2 MESSAGE (=C+ ROUTE INCORRECT *IC* PARAMETER.+),3,RECALL
  567. EQ ABT1 ABORT
  568. KID SPACE 4,10
  569. ** KID - PROCESS *ID=NN* (LOCAL DEVICE ID).
  570. *
  571. * EXIT DEVICE ID STORED IN *TDSP+2* (TID FIELD).
  572. * *FLAGS* FIELD IN *TDSP+1* ENTERED WITH *FRTI*.
  573. * *PDID* SET IF *PTID* AND *PFUN* ARE ZERO.
  574.  
  575.  
  576. KID BSS 0 ENTRY
  577. SA1 PTID
  578. SA2 PFUN
  579. SX7 B1
  580. BX1 X1+X2
  581. NZ X1,KFM2 IF *ID* - *TID*/*FM*/*UN* CONFLICT
  582. SA7 PDID
  583. ZR X3,KID1 IF NONEQUIVALENCED PARAMETER
  584. SB7 B0 SET OCTAL CONVERSION DEFAULT
  585. BX5 X3
  586. RJ =XDXB
  587. NZ X4,ABT IF CONVERSION ERROR
  588. SA1 TDSP+2
  589. MX0 36
  590. SX2 X6-IDLM
  591. BX7 X0*X1
  592. PL X2,ABT IF ID .GE. IDLM
  593. BX7 X7+X6
  594. SA7 A1
  595. SX3 FRTI
  596.  
  597. KID1 SA2 TDSP+1
  598. SX6 FRCS
  599. BX6 X2+X6 SET CENTRAL SITE ROUTING FLAG
  600. BX6 X3+X6 OPTIONALLY SET *TID* FLAG
  601. SA6 A2+
  602. EQ EPRX RETURN
  603. KJS SPACE 4,10
  604. ** KJS - PROCESS *JSN=XXX* (UNIQUE JSN).
  605. *
  606. * EXIT FORCED JSN FIELD SET IN *TDSP+6*.
  607. * *FLAGS* FIELD IN *TDSP+1* ENTERED WITH *FRFJ*.
  608.  
  609.  
  610. KJS BSS 0 ENTRY
  611. ZR X3,ABT IF NULL PARAMETER
  612. SX6 B1+
  613. SA6 PJSN
  614. SA1 JOPR CHECK JOB ORIGIN TYPE
  615. MX0 -12
  616. LX1 0-24
  617. BX1 -X0*X1
  618. MX0 42
  619. IFNE SYOT,0,1
  620. SX1 X1-SYOT
  621. ZR X1,KJS1 IF SYSTEM ORIGIN JOB
  622. MESSAGE (=C+ ROUTE *JSN* NOT ALLOWED.+),3
  623. EQ ABT1 ABORT
  624.  
  625. KJS1 LX3 18
  626. BX1 X0*X3
  627. NZ X1,KJS2 IF JSN TOO LONG
  628. MX7 -6
  629. BX1 -X7*X3
  630. ZR X1,KJS2 IF JSN TOO SHORT
  631. SA1 TDSP+6
  632. SA2 TDSP+1
  633. BX6 X0*X1
  634. BX6 X6+X3 SET JSN IN FORCED JSN FIELD
  635. SX7 FRFJ
  636. BX7 X2+X7 SET FORCED JSN FLAG
  637. SA6 A1
  638. SA7 A2+
  639. EQ EPRX RETURN
  640.  
  641. KJS2 MESSAGE (=C+ ROUTE INCORRECT *JSN* PARAMETER.+),3
  642. EQ ABT1 ABORT
  643. KOT SPACE 4,10
  644. ** KOT - PROCESS *OT=XXXX* (ORIGIN TYPE).
  645. *
  646. * EXIT *F* AND *OT* FIELDS SET IN *TDSP*.
  647.  
  648.  
  649. KOT BSS 0 ENTRY
  650. SA1 JOPR CHECK JOB ORIGIN TYPE
  651. MX0 -12
  652. LX1 11-35
  653. BX1 -X0*X1
  654. MX0 30
  655. SA2 TLOT-1
  656. SX1 X1-SYOT
  657. ZR X1,KOT1 IF *SYOT* JOB ORIGIN
  658. MESSAGE (=C/ ROUTE *OT* NOT ALLOWED./),3,RECALL
  659. EQ ABT1 ABORT
  660.  
  661. KOT1 SA2 A2+1
  662. BX6 X3-X2
  663. BX6 X0*X6
  664. ZR X2,KOT2 IF END OF TABLE
  665. NZ X6,KOT1 IF NOT A MATCH
  666. MX0 -7
  667. SA1 TDSP
  668. BX2 -X0*X2 EXTRACT ORIGIN VALUE
  669. SX2 X2+4000B SET FLAG BIT
  670. BX1 X0*X1
  671. BX7 X1+X2 ENTER ORIGIN VALUE
  672. SA7 TDSP
  673. EQ EPRX RETURN
  674.  
  675. KOT2 MESSAGE (=C+ ROUTE INCORRECT *OT* PARAMETER.+),3,RECALL
  676. EQ ABT1 ABORT
  677. KPI SPACE 4,10
  678. ** KPI - PROCESS *PI=NNNNNNN* (PRINT IMAGE).
  679. *
  680. * EXIT- *P* FLAG AND *PI* FIELD SET IN *TDSP+4*
  681. *
  682.  
  683.  
  684. KPI BSS 0 ENTRY
  685. ZR X3,EPRX IF NULL PARAMETER
  686. SA1 TPIN-1
  687. MX0 1
  688.  
  689. * CHECK FOR VALID PRINT IMAGE NAME.
  690.  
  691. KPI1 SA1 A1+B1 CHECK NEXT ENTRY
  692. ZR X1,KPI2 IF END OF TABLE
  693. SX6 X1 ISOLATE MASK SIZE
  694. BX7 X1-X3
  695. AX6 6
  696. SB4 X6
  697. AX6 X0,B4 FORM MASK
  698. BX2 X6*X7
  699. NZ X2,KPI1 IF NO MATCH
  700. SA2 TDSP+4B
  701. MX0 -6 ISOLATE PRINT IMAGE ORDINAL
  702. LX2 6
  703. BX6 -X0*X1
  704. BX7 X0*X2
  705. SX6 X6+10B SET PRINT IMAGE FLAG
  706. BX7 X6+X7 SET PRINT IMAGE CODE INTO PARAMETER BLOCK
  707. LX7 -6
  708. SA7 A2
  709. EQ EPRX RETURN
  710.  
  711. KPI2 MESSAGE (=C/ ROUTE UNKNOWN *PI* PARAMETER./),3,R
  712. EQ ABT1 ABORT
  713. KPR SPACE 4,10
  714. ** KPR - PROCESS *PRI=NNNN* (PRIORITY)
  715. *
  716. * EXIT MESSAGE ISSUED, PARAMETER IGNORED.
  717.  
  718.  
  719. KPR BSS 0 ENTRY
  720. MESSAGE (=C/ ROUTE *PRI* IGNORED./),3,RECALL
  721. EQ EPRX RETURN
  722. KRE SPACE 4,10
  723. ** KRE - PROCESS *REP=NN* (REPEAT COUNT)
  724. *
  725. * EXIT REPEAT COUNT SET IN *TDSP+4* - *RC* FIELD.
  726. * *FLAGS* IN *TDSP+1* ENTERED WITH *FRRC*.
  727.  
  728.  
  729. KRE BSS 0 ENTRY
  730. SB7 B1 SET DECIMAL CONVERSION
  731. BX5 X3
  732. RJ =XDXB CONVERT VALUE
  733. NZ X4,ABT IF CONVERSION ERROR
  734. SA1 TDSP+1
  735. MX0 -6
  736. BX2 X0*X6
  737. NZ X2,KRE1 IF VALUE .GT. 63D (77B)
  738. SA2 TDSP+4
  739. SX7 FRRC
  740. LX0 12 POSITION MASK
  741. LX6 12 POSITION VALUE
  742. BX2 X0*X2
  743. BX7 X1+X7 SET FLAG BIT
  744. SA7 A1
  745. BX6 X6+X2 ENTER REPEAT COUNT
  746. SA6 A2+
  747. EQ EPRX RETURN
  748.  
  749. KRE1 MESSAGE (=C/ ROUTE *REP* GT 63. DEFAULT USED./),3,RECALL
  750. EQ EPRX RETURN
  751. KSC SPACE 4,10
  752. ** KSC - PROCESS *SC=XX* (SPACING CODE).
  753. *
  754. * EXIT SPACING CODE ENTERED IN *TDSP+4*.
  755.  
  756.  
  757. KSC BSS 0 ENTRY
  758. SB7 B0 SET OCTAL CONVERSION
  759. BX5 X3
  760. RJ =XDXB CONVERT VALUE
  761. NZ X4,ABT IF CONVERSION ERROR
  762. MX0 -6 ENTER SPACING CODE
  763. BX3 -X0*X6
  764. BX1 X0*X6
  765. ZR X1,KSC1 IF SC .LE. 77B
  766. MESSAGE (=C* ROUTE INCORRECT SPACING CODE.*),3,R
  767. EQ ABT1 ABORT
  768.  
  769. KSC1 SA1 TDSP+4
  770. LX0 48
  771. BX1 X0*X1
  772. LX3 48
  773. BX6 X1+X3
  774. SA6 A1+
  775. SA1 TDSP+1 SET SPACING CODE FLAG
  776. SX6 FRSC
  777. BX6 X6+X1
  778. SA6 A1
  779. EQ EPRX RETURN
  780. KST SPACE 4,10
  781. ** KST - PROCESS *ST=XXX*. DESTINATION LID.
  782. *
  783. * EXIT THE LOGICAL ID IS PLACED IN *TDSP+2*.
  784. *
  785. * ERROR IF INCORRECT *ST* PARAMETER OR *LID* IS
  786. * GREATER THAN THREE CHARACTERS.
  787.  
  788.  
  789. KST BSS 0 ENTRY
  790. MX0 18
  791. BX2 -X0*X3
  792. AX2 18
  793. NZ X2,KST2 IF *LID* GREATER THAN THREE CHARACTERS
  794. BX6 X0*X3
  795. SA5 =1L* CHECK FOR ASTERISK
  796. R= X4,LCPD SET DLID TO PID
  797. LX6 18
  798. IX3 X4-X6
  799. PL X3,KST2 IF .LE. SPECIAL DLID VALUES
  800. LX5 18
  801. BX5 X5-X6
  802. NZ X5,KST1 IF NOT ASTERISK
  803. BX6 X4 SET DLID=PID
  804. KST1 LX6 24
  805. SA2 TDSP+2 SET DLID IN TDSP
  806. LX0 -18
  807. BX2 -X0*X2
  808. BX6 X6+X2
  809. SX1 FRLD SET SLID/DLID FLAG
  810. SA6 A2
  811. SA2 A2-B1
  812. BX6 X2+X1
  813. SA6 A2 STORE FLAG
  814. EQ EPRX RETURN
  815.  
  816. KST2 MESSAGE (=C+ ROUTE INCORRECT *ST* PARAMETER.+),3,RECALL
  817. EQ ABT1 ABORT
  818. KSV SPACE 4,10
  819. ** KSV - PROCESS *SCL=XX* (SERVICE CLASS).
  820. *
  821. * EXIT SERVICE CLASS ENTERED IN *TDSP+4*.
  822.  
  823.  
  824. KSV BSS 0 ENTRY
  825. SA1 TSCT-1
  826.  
  827. * CHECK FOR VALID SERVICE CLASS.
  828.  
  829. KSV1 SA1 A1+B1
  830. ZR X1,KSV2 IF END OF TABLE
  831. BX7 X1-X3
  832. NZ X7,KSV1 IF NO MATCH
  833. SA1 TDSP+4
  834. MX0 12
  835. BX7 X0*X3 SET SERVICE CLASS INTO PARAMETER BLOCK
  836. LX7 -12
  837. BX7 X7+X1
  838. SA7 A1
  839. SA1 TDSP+1 SET FORCED SERVICE CLASS FLAG
  840. MX0 -1
  841. LX0 20
  842. BX7 -X0+X1
  843. SA7 A1+
  844. EQ EPRX RETURN
  845.  
  846. KSV2 MESSAGE (=C+ ROUTE UNDEFINED SERVICE CLASS.+),3,RECALL
  847. EQ ABT1 ABORT
  848. KTD SPACE 4,10
  849. ** KTD - PROCESS *TID=XX* (TERMINAL ID).
  850. *
  851. * EXIT *PTID* SET NON-ZERO IF *PFUN* AND *PDID* EQUAL ZERO.
  852. * *TID=C* PROCESSED AS *ID*.
  853. * *TID=XX* PROCESSED AS *UN*.
  854.  
  855.  
  856. KTD BSS 0 ENTRY
  857. SX6 1RC
  858. LX6 59-5
  859. BX6 X6-X3
  860. ZR X6,KTD1 IF *TID=C* - ROUTE TO CENTRAL SITE
  861. SA1 PDID
  862. NZ X1,KFM2 IF *TID* - *ID* CONFLICT
  863. SA1 PFUN
  864. NZ X1,KFM1 IF TID - FM/UN CONFLICT
  865. PL X3,KUN IF *TID=XX*
  866. SX7 FRTI
  867. SA7 PTID
  868. EQ EPRX RETURN
  869.  
  870. KTD1 SX3 0
  871. EQ KID PROCESS AS *ID*
  872. KUJ SPACE 4,10
  873. ** KUJ - PROCESS *UJN=XXXXXXX* (USER JOB NAME).
  874. *
  875. * EXIT *UJN* FIELD SET IN *TDSP+3*.
  876. * *FLAGS* IN *TDSP+1* ENTERED WITH *FRUJ*.
  877.  
  878.  
  879. KUJ BSS 0 ENTRY
  880. SX6 B1+
  881. SA6 PUJN
  882. SA1 TDSP+1 ENTER FLAG BIT
  883. SX7 FRUJ
  884. BX7 X1+X7
  885. SA7 A1
  886. SA1 TDSP+3 ENTER *UJN* PARAMETER
  887. BX1 -X0*X1
  888. BX6 X1+X3
  889. SA6 A1
  890. EQ EPRX RETURN
  891. KUN SPACE 4,10
  892. ** KUN - PROCESS *UN=XXXXXXX* (USER NAME).
  893. *
  894. * EXIT USER NAME ENTERED IN *TFUN+1*.
  895. * FLAG SET IN *PFUN* IF *PTID* AND *PDID* ARE ZERO.
  896.  
  897.  
  898. KUN BSS 0 ENTRY
  899. SA1 PDID
  900. NZ X1,KFM2 IF *UN* - *ID* CONFLICT
  901. SA1 PTID
  902. SX7 FRTI
  903. NZ X1,KFM1 IF FM/UN - TID CONFLICT
  904. SA7 PFUN
  905. ZR X3,EPRX IF IMPLICIT REMOTE ROUTING
  906. MX0 42
  907. BX6 X0*X3
  908. SA6 TFUN+1 STORE USER NAME
  909. EQ EPRX RETURN
  910. SPACE 4,10
  911. USE LITERALS
  912.  
  913. ** COMMON DECKS.
  914.  
  915. *CALL COMCDXB
  916. *CALL COMCSYS
  917.  
  918. BSS 0
  919. RFL= EQU *+8
  920.  
  921. END