Table of Contents

TERMDEF

Table Of Contents

  • [00004] TERMDEF - SET TERMINAL DEFINITIONS.
  • [00013] TERMINAL DEFINITION FOR NETWORKS.
  • [00070] MAIN ROUTINE.
  • [00174] SUBROUTINES.
  • [00177] CHB - CONVERT HEXADECIMAL TO BINARY.
  • [00218] PDB - PROCESS DECIMAL TO BINARY.
  • [00252] PDL - PROCESS PARAMETER *DL* OR *XL*.
  • [00459] PEB - PROCESS PARAMETER *EB* OR *EL*.
  • [00575] PHB - PROCESS HEXADECIMAL TO BINARY.
  • [00602] PIN - PROCESS PARAMETER *IN*.
  • [00661] PPO - PROCESS PARAMETER *OP*.
  • [00701] PPA - PROCESS PARAMETER *PA*.
  • [00746] PYN - PROCESS PARAMETER *BR*, *EP*, *FA*, *IC*, *OC*, *PG*,
  • [00784] FKA - FIND KEYWORD ARGUMENT.
  • [00825] TTDC - TABLE OF KEYWORDS.
  • [00879] MCB - MERGE FIELD NUMBERS/FIELD VALUES INTO BUFFER.

Source Code

TERMDEF.txt
  1. IDENT TERMDEF
  2. ENTRY TERMDEF
  3. SYSCOM B1
  4. TITLE TERMDEF - SET TERMINAL DEFINITIONS.
  5. *COMMENT TERMDEF - TERMINAL DEFINITION ROUTINE.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. SPACE 4
  8. ***** TERMDEF - TERMINAL DEFINITION.
  9. * W.E. MARTIN. 78/01/20.
  10. * M. S. PESCHMAN. 86/03/06.
  11. * T. E. SCHULL. 86/05/20.
  12. SPACE 4,60
  13. *** TERMDEF - TERMINAL DEFINITION FOR NETWORKS.
  14. *
  15. * TERMINAL DEFINITION FOR NETWORKS ALLOWS THE USER TO DEFINE
  16. * THE ATTRIBUTES OF A TERMINAL IN THE SAME FASHION THAT A USER
  17. * MIGHT DO AT THE TERMINAL. THIS ALLOWS TASKS TO CHANGE
  18. * ATTRIBUTES OF TERMINALS WITHOUT DIRECT USER INTERACTION.
  19. * THE KEYWORDS ARE FOUND FROM A TABLE AND DEPENDING ON THE
  20. * APPROPRIATE CONTEXT, THE VALUE OF THE ARGUMENT IS COMPUTED.
  21. * THE (KEYWORD,VALUE) LIST IS MAPPED INTO THE FORMAT REQUIRED
  22. * FOR THE SUPERVISORY MESSAGE AND A *CTI* TERMDEF IS ISSUED FOR
  23. * A SUBSEQUENT TRANSMISSION OF THE MESSAGE TO THE NETWORK.
  24. *
  25. * CALL FORMAT -
  26. *
  27. * FORTRAN EXTENDED -
  28. *
  29. * CALL TERMDEF(TERMINAL,STATUS,MSG1,MSG2,...,MSGN)
  30. *
  31. * COBOL -
  32. *
  33. * ENTER TERMDEF USING TERMINAL STATUS MSG1 MSG2 ... MSGN.
  34. *
  35. * WHERE - TERMINAL = NAME OF TERMINAL TO BE OPERATED
  36. * UPON. IF THE VALUE OF TERMINAL IS
  37. * EQUAL TO ZERO, THEN THE ORIGINATING
  38. * TERMINAL IS USED.
  39. *
  40. * STATUS = LOCATION TO RETURN LOGIN STATUS. THIS VALUE
  41. * IS RETURNED TO THE TASK AS AN UNNORMALIZED
  42. * FLOATING POINT NUMBER.
  43. *
  44. * MSGN = A DATA NAME CONTAINING LEFT JUSTIFIED BINARY
  45. * ZERO OR BLANK FILLED TERMINAL ATTRIBUTE TO
  46. * CHANGE.
  47. * IN FORTRAN, MSGN MAY BE OF FORM 5LPW=40,
  48. * 5LPL=60, OR 5LCN=2A ...ETC.
  49. *
  50. *
  51. * FOR TERMINALS NOT LOGGED IN, THE VALUE OF THE STATUS WORD
  52. * WILL BE RETURNED NON-ZERO, AND HENCE THE CONSTANT ZERO
  53. * SHOULD NOT BE USED AS AN ARGUMENT. TASKS ATTEMPTING
  54. * TO SET THE ATTRIBUTES OF A TERMINAL NOT ASSIGNED TO THE
  55. * SAME DATA BASE WILL BE ABORTED. TERMDEF DOES NOT HAVE ENOUGH
  56. * INFORMATION TO DETECT ALL ERRORS, SO ERRORS MAY BE RETURNED
  57. * TO *ITASK* FOR RESOLUTION, SINCE THE TASK IS NOT PLACED ON
  58. * RECALL UNTIL THE RESPONSE IS RETURNED FROM THE NETWORK.
  59. * NOTE - A *CTI* CALL IS ISSUED FOR EACH (KEYWORD,VALUE) PAIR,
  60. * RATHER THAN ONE FOR THE ENTIRE PROGRAM LEVEL CALL.
  61. SPACE 4
  62. * COMMON DECK.
  63.  
  64.  
  65. *CALL COMCMAC
  66. *CALL COMKMAC
  67. *CALL COMSNCD
  68. *CALL COMSPRD
  69.  
  70. TITLE MAIN ROUTINE.
  71.  
  72. VFD 42/0LTERMDEF,18/TERMDEF
  73. TDF6 SA1 TDFC RESTORE (A0)
  74. SA0 X1+
  75.  
  76. TERMDEF SUBR ENTRY/EXIT
  77. SX6 A0 SAVE (A0)
  78. SB1 1
  79. SA2 A1
  80. ZR X1,TDF5 IF NO ARGUMENTS - ABORT TASK
  81. SA6 TDFC
  82.  
  83. * PROCESS TERMINAL NAME AND STATUS PARAMETER.
  84.  
  85. SA4 X2 SET TERMINAL NAME INTO BUFFER
  86. UX1,B2 X4 UNPACK POSSIBLE COBOL ARGUMENT
  87. ZR X1,TDF1 IF NO TERMINAL NAME
  88. MX0 42
  89. BX1 X0*X4
  90. RJ ZFN ZERO FILL NAME
  91. TDF1 BX6 X1 SET DESTINATION TERMINAL
  92. SA2 A2+B1
  93. SA6 MCBA
  94. SA1 X2
  95. ZR X2,TDF5 IF SHORT ARGUMENT LIST
  96. BX6 X2
  97. SA2 A2+B1
  98. SA6 A6+B1 STORE STATUS ADDRESS
  99. SA1 X2
  100. SX6 A2-B1 PRESET (A2)
  101. ZR X2,TDF5 IF SHORT ARGUMENT LIST
  102. SA6 TDFE
  103.  
  104. * BUILD SUPERVISORY MESSAGE.
  105.  
  106. TDF2 SX7 2 RESET BUFFER POINTERS
  107. SA3 TDFE RESTORE PARAMETER LIST POINTER
  108. SX6 44
  109. SA7 MCBB
  110. SA6 MCBC
  111. SA1 MCBD
  112. BX6 X1
  113. SX7 B1+B1 RESET DEFAULT COUNT OF 8-BIT VALUES
  114. SA6 MCBA+2
  115. SA7 MCBE
  116. SA7 TDFA
  117.  
  118. * PROCESS KEYWORD ARGUMENT.
  119.  
  120. MX0 12
  121. SA2 X3+B1
  122. SA1 X2 READ KEYWORD ARGUMENT
  123. BX1 X0*X1
  124. ZR X2,TDF6 IF END OF ARGUMENT LIST
  125. RJ FKA FIND KEYWORD ARGUMENT
  126. NG X6,TDF5 IF INCORRECT KEYWORD
  127. SX7 A2+
  128. SA7 TDFE
  129. ZR X1,TDF3 IF KEYWORD IS *EB* OR *EL*
  130. SB7 1 NUMBER OF 8-BIT VALUES TO TRANSFER
  131. RJ MCB MERGE FIELD NUMBER FROM *TTDC* INTO BUFFER
  132. SA3 TDFE RESTORE (A2)
  133. SA2 X3+
  134. TDF3 SA1 X2+ READ ARGUMENT
  135. MX0 -6
  136. LX1 18
  137. SX4 1R=
  138. BX2 -X0*X1
  139. BX3 X2-X4
  140. NZ X3,TDF5 IF THIRD CHARACTER IS NOT *=*
  141. SA3 FKAA
  142. SB3 X3+
  143. JP B3 PROCESSING ROUTINE
  144.  
  145. * REQUEST SUPERVISORY MESSAGE TO BE SENT TO THE NETWORK.
  146.  
  147. TDF4 SA1 MCBA SET COUNT OF 8-BIT VALUES INTO BUFFER
  148. SA2 MCBE
  149. BX6 X2+X1
  150. SA6 A1
  151. TERMDEF MCBA
  152. MX0 42 RESET COUNT OF 8-BIT VALUES
  153. SA1 MCBA
  154. BX6 X0*X1
  155. SA6 MCBA
  156. EQ TDF2 PROCESS NEXT MESSAGE
  157.  
  158. * ABORT TASK FOR ARGUMENT ERROR.
  159.  
  160. TDF5 SA1 TERMDEF SET TRACE-BACK WORD IN BUFFER
  161. MX0 30
  162. LX1 30
  163. SA2 X1-1 READ *RJ* FROM CALLING PROGRAM
  164. BX6 -X0*X2
  165. SA6 MCBA
  166. ARGERR A6 EXIT TO EXECUTIVE
  167.  
  168.  
  169. TDFA CON 0 SCRATCH STORAGE FOR ARGUMENT PROCESSORS
  170. TDFB CON 0 SCRATCH STORAGE FOR ARGUMENT PROCESSORS
  171. TDFC CON 0 STORAGE LOCATION FOR (A0)
  172. TDFD CON 0 SCRATCH STORAGE FOR ARGUMENT PROCESSORS
  173. TDFE CON 0 SCRATCH STORAGE FOR ARGUMENT PROCESSORS
  174. TITLE SUBROUTINES.
  175. PDA SPACE 4,20
  176. PDH SPACE 4,20
  177. ** CHB - CONVERT HEXADECIMAL TO BINARY.
  178. *
  179. * THIS ROUTINE CONVERTS TWO DISPLAY CODED HEXADECIMAL
  180. * CHARACTERS TO THEIR BINARY EQUIVALENT.
  181. *
  182. * ENTRY (X1) = TWO DISPLAY CODED HEXADECIMAL CHARACTERS,
  183. * LEFT JUSTIFIED.
  184. *
  185. * EXIT (X1) = 8-BIT FIELD VALUE, RIGHT JUSTIFIED.
  186. *
  187. * USES X - 0, 1, 3, 4, 6.
  188. * B - 3.
  189. *
  190.  
  191.  
  192. CHB3 IX1 X6+X1
  193.  
  194. CHB SUBR ENTRY/EXIT
  195. MX0 12
  196. BX1 X0*X1
  197. MX4 -6
  198. BX0 X1
  199. SX6 16
  200. SB3 2 MAXIMUM NUMBER OF DIGITS TO PROCESS
  201. CHB1 LX0 5-59
  202. SB3 B3-1
  203. BX1 -X4*X0 EXTRACT CHARACTER
  204. SX3 X1-1R+
  205. PL X3,TDF5 IF CHARACTER > 9
  206. SX3 X1-1R0 CONVERT NUMERIC CHARACTER TO HEX DIGIT
  207. PL X3,CHB2 IF NUMERIC CHARACTER
  208. SX3 X1-1RG
  209. PL X3,TDF5 IF CHARACTER BETWEEN G AND Z
  210. SX3 X1-1RA
  211. NG X3,TDF5 IF CHARACTER < A
  212. SX3 X1+9 CONVERT ALPHA CHARACTER TO HEX DIGIT
  213. CHB2 BX1 X3
  214. ZR B3,CHB3 IF BOTH CHARACTERS PROCESSED
  215. IX6 X6*X1
  216. EQ CHB1 PROCESS SECOND CHARACTER
  217. PDB SPACE 4,20
  218. ** PDB - PROCESS DECIMAL TO BINARY.
  219. *
  220. * THIS ROUTINE CONVERTS THE DISPLAY CODED DECIMAL VALUE OF
  221. * PARAMETER *CI*, *LI*, *PL*, *PW*, OR *TC* INTO A FIELD
  222. * VALUE AND MERGES IT INTO THE TRANSMISSION BUFFER.
  223. *
  224. * ENTRY (X1) = DISPLAY CODED DECIMAL CHARACTERS, LEFT
  225. * JUSTIFIED.
  226. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  227. * FIELD NUMBER FROM *CI*, *LI*, *PL*, *PW*, OR *TC*
  228. * ENTRY IN TABLE *TTDC*.
  229. *
  230. * EXIT TO *TDF4*.
  231. * TO *TDF5*, IF ERROR.
  232. *
  233. * USES X - 0, 1, 5.
  234. * B - 7.
  235. *
  236. * CALLS DXB, MCB, ZFN.
  237.  
  238.  
  239. PDB BSS 0 ENTRY
  240. MX0 42
  241. BX1 X0*X1
  242. RJ ZFN BINARY ZERO FILL DISPLAY CODED CHARACTERS
  243. BX5 X1
  244. SB7 B1
  245. RJ DXB CONVERT DECIMAL VALUE TO BINARY EQUIVALENT
  246. NZ X4,TDF5 IF ERROR
  247. BX1 X6
  248. LX1 59-7
  249. RJ MCB MERGE FIELD VALUE INTO BUFFER
  250. EQ TDF4 RETURN
  251. PDL SPACE 4,20
  252. ** PDL - PROCESS PARAMETER *DL* OR *XL*.
  253. *
  254. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE(S) OF *DL* OR
  255. * *XL* INTO FIELD NUMBERS/FIELD VALUES AND MERGES THEM INTO THE
  256. * TRANSMISSION BUFFER.
  257. *
  258. * ENTRY (A1) = FWA OF *DL* OR *XL* MESSAGE.
  259. * (X3) = *DL* OR *XL* ENTRY FROM TABLE *TTDC*.
  260. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  261. * FIELD NUMBER FROM *DL* OR *XL* ENTRY IN TABLE *TTDC*.
  262. *
  263. * EXIT TO *TDF4*.
  264. * TO *TDF5*, IF ERROR.
  265. *
  266. * USES X - ALL.
  267. * A - 1, 2, 3, 4, 5, 6, 7.
  268. * B - 2, 3, 7.
  269. *
  270. * CALLS CHB, DXB, MCB, POP, USB, ZTB.
  271.  
  272.  
  273. PDL BSS 0 ENTRY
  274. SB7 1
  275. AX3 18
  276. SX1 X3 FIELD VALUE FOR *DL* OR *XL*
  277. BX6 X1
  278. SA6 PDLH INDICATE *DL* OR *XL*
  279. LX1 59-7
  280. RJ MCB MERGE FIELD VALUE INTO BUFFER
  281. SA1 A1+
  282. RJ ZTB BLANK FILL FIRST WORD OF MESSAGE
  283. SA6 PDLC
  284. MX0 -6
  285. BX1 -X0*X6
  286. SX2 1R
  287. BX3 X1-X2
  288. SX2 1R.
  289. NZ X3,PDL1 IF LAST CHARACTER IS NOT A BLANK
  290. BX1 X0*X6
  291. BX6 X1+X2 INSERT TERMINATOR AT END OF FIRST WORD
  292. SA6 PDLC
  293. EQ PDL2 PROCESS MESSAGE
  294.  
  295. PDL1 SA1 A1+1
  296. RJ ZTB BLANK FILL SECOND WORD OF MESSAGE
  297. BX1 X0*X6
  298. BX6 X1+X2 INSERT TERMINATOR AT END OF SECOND WORD
  299. SA6 PDLC+1
  300. PDL2 SB2 PDLC FIRST WORD
  301. SB3 B0+
  302. RJ USB UNPACK MESSAGE INTO 1 CHARACTER PER WORD
  303. RJ POP SKIP *DL=* OR *XL=*
  304. PDL3 RJ POP GET NEXT PARAMETER
  305. NG B5,TDF5 IF ERROR
  306. BX7 X1
  307. MX0 6
  308. SA7 PDLA SAVE SEPARATOR
  309. SA2 =1LX
  310. BX1 X0*X6
  311. BX7 X2-X1
  312. SA5 PDLD
  313. SA2 PDLL
  314. ZR X7,PDL4 IF FIRST CHARACTER = *X*
  315. SA4 =1LY
  316. BX3 X4-X1
  317. NZ X3,PDL7 IF FIRST CHARACTER NOT EQUAL TO *Y*
  318. SA4 PDLH
  319. ZR X4,TDF5 IF *DL* MESSAGE WITH *Y* PARAMETER
  320. ZR X5,PDL6 IF NO *X* BEFORE *Y*, THEN IGNORE *Y*
  321. SA5 PDLG
  322. SA2 PDLN
  323. PDL4 NZ X5,TDF5 IF MORE THAN ONE *X* OR *Y* IN MESSAGE
  324. LX6 59-53
  325. BX1 X6
  326. RJ CHB CONVERT HEXADECIMAL TO BINARY
  327. LX1 35-7
  328. ZR X7,PDL5 IF *X*
  329. LX1 51-35
  330. PDL5 BX1 X1+X2
  331. SB7 X2 FIELD SIZE
  332. RJ MCB MERGE *X* OR *Y* FIELD NUMBERS/VALUES
  333. SX6 1
  334. SA6 A5+ SPECIFY THAT *X* OR *Y* HAS BEEN PROCESSED
  335. PDL6 SA1 PDLB
  336. SX6 X1+3 ADD NUMBER OF CHARACTERS IN *X* OR *Y*
  337. SA6 A1+
  338. EQ PDL11 PROCESS NEXT PARAMETER
  339.  
  340. PDL7 SA2 =1LC
  341. BX3 X2-X1
  342. NZ X3,PDL10 IF FIRST CHARACTER NOT EQUAL TO *C*
  343. SA2 PDLE
  344. NZ X2,TDF5 IF MORE THAN ONE *C* IN MESSAGE
  345. MX0 24
  346. LX0 -6
  347. BX5 X0*X6 EXTRACT DECIMAL COUNT
  348. ZR X5,TDF5 IF NO CHARACTER COUNT DELIMITER
  349. SB7 B1 INCLUDE *C* IN NUMBER OF CHARACTERS
  350. BX4 X5
  351. LX4 59-53
  352. MX1 6
  353. MX0 54
  354. PDL8 LX4 5-59 NEXT CHARACTER
  355. SX3 X4-1R0
  356. NG X3,PDL9 IF NOT A DECIMAL DIGIT
  357. SX3 X4-1R+
  358. PL X3,PDL9 IF NOT A DECIMAL DIGIT
  359. SB7 B7+1
  360. AX1 6 SET UP MASK FOR CHARACTER COUNT DELIMITER
  361. BX4 X0*X4 CLEAR DIGIT JUST CHECKED
  362. NZ X4,PDL8 IF MORE CHARACTERS TO CHECK
  363. PDL9 SA2 PDLB
  364. SX6 X2+B7 ADD NUMBER OF CHARACTERS IN *C* PARAMETER
  365. SA6 A2
  366. BX5 X1*X5 EXTRACT DECIMAL COUNT
  367. LX5 59-53
  368. BX5 X0*X5
  369. SA6 PDLE INDICATE THAT *C* HAS BEEN PROCESSED
  370. RJ DXB CONVERT DECIMAL COUNT TO BINARY
  371. NZ X4,TDF5 IF ERROR
  372. MX0 -8
  373. BX1 -X0*X6 EXTRACT LOWER BYTE OF COUNT
  374. LX1 51-7
  375. LX6 7-15
  376. BX2 -X0*X6 EXTRACT UPPER BYTE OF COUNT
  377. LX2 35-7
  378. SB7 4
  379. SA3 PDLM EXTRACT FIELD NUMBERS FOR *C* PARAMETER
  380. BX1 X1+X2
  381. BX1 X1+X3
  382. RJ MCB MERGE (FN=72,FV=LOWER,FN=71,FV=UPPER)
  383. EQ PDL11 PROCESS NEXT PARAMETER
  384.  
  385. PDL10 SA2 =2LTO
  386. MX0 12
  387. BX1 X0*X6
  388. BX3 X2-X1
  389. NZ X3,TDF5 IF FIRST CHARACTERS NOT EQUAL TO *TO*
  390. SB7 B1+B1
  391. SA5 PDLF
  392. NZ X5,TDF5 IF MORE THAN ONE *TO* IN MESSAGE
  393. SA1 PDLK
  394. RJ MCB MERGE (FN=74,FV=1)
  395. SA2 PDLB
  396. SX6 X2+2 ADD NUMBER OF CHARACTERS IN *TO* PARAMETER
  397. SA6 A2+
  398. SA6 A5+ INDICATE THAT *TO* HAS BEEN PROCESSED
  399. PDL11 SA1 PDLB
  400. SX1 X1-6
  401. NZ X1,PDL12 IF PARAMETER DOES NOT END ON WORD BOUNDARY
  402. SA1 PDLC+1 SECOND WORD
  403. MX0 6
  404. BX1 X0*X1
  405. SA2 =1L,
  406. BX1 X1-X2
  407. NZ X1,PDL13 IF MESSAGE LENGTH = 1 WORD
  408. PDL12 SA1 PDLA GET SEPARATOR
  409. SX2 1R.
  410. BX1 X1-X2
  411. NZ X1,PDL3 IF MORE PARAMETERS TO PROCESS
  412. PDL13 SA2 PDLD
  413. NZ X2,PDL14 IF *X* WAS FOUND IN MESSAGE
  414. SA2 PDLG
  415. NZ X2,PDL14 IF *Y* WAS FOUND IN MESSAGE
  416. SB7 2
  417. SA1 PDLI
  418. RJ MCB MERGE (FN=70,FV=0) INTO BUFFER
  419. PDL14 SA2 PDLF
  420. NZ X2,PDL15 IF *TO* WAS FOUND IN MESSAGE
  421. SB7 2
  422. SA1 PDLJ
  423. RJ MCB MERGE (FN=74,FV=0) INTO BUFFER
  424. PDL15 SX7 B0+ CLEAR FLAGS
  425. SA7 PDLB
  426. SA7 PDLD
  427. SA7 PDLE
  428. SA7 PDLF
  429. SA7 PDLG
  430. SA7 PDLH
  431. EQ TDF4 RETURN
  432.  
  433.  
  434. PDLA CON 0 SEPARATOR
  435. PDLB CON 0 LENGTH OF PARAMETERS IN CHARACTERS
  436. PDLC BSSZ 2 TEMPORARY BUFFER FOR THE MESSAGE
  437. PDLD CON 0 FLAG TO INDICATE THAT *X* WAS PROCESSED
  438. PDLE CON 0 FLAG TO INDICATE THAT *C* WAS PROCESSED
  439. PDLF CON 0 FLAG TO INDICATE THAT *TO* WAS PROCESSED
  440. PDLG CON 0 FLAG TO INDICATE THAT *Y* WAS PROCESSED
  441. PDLH CON 0 FLAG TO INDICATE *DL* OR *XL*
  442. PDLI VFD 8/70B,8/0 FIELD NUMBER AND VALUE IF NO *X* AND *Y*
  443. PDLJ VFD 8/74B,8/0 FIELD NUMBER AND FIELD VALUE IF NO *TO*
  444. PDLK VFD 8/74B,8/1 FIELD NUMBER AND FIELD VALUE IF *TO*
  445.  
  446. * 8/ FIELD NUMBER, 8/ FIELD VALUE, 8/ FIELD NUMBER, 8/ 0,
  447. * 10/ , 18/ FIELD SIZE.
  448.  
  449. PDLL VFD 8/70B,8/1,8/73B,8/0,10/,18/4 *X*
  450.  
  451. * 8/ FIELD NUMBER, 8/ 0, 8/ FIELD NUMBER, 8/ 0.
  452.  
  453. PDLM VFD 8/72B,8/0,8/71B,8/0 *C*
  454.  
  455. * 8/ FIELD NUMBER, 8/ 0, 26/ , 18/ FIELD SIZE.
  456.  
  457. PDLN VFD 8/105B,8/0,26/,18/2 *Y*
  458. PEB SPACE 4,20
  459. ** PEB - PROCESS PARAMETER *EB* OR *EL*.
  460. *
  461. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE(S) OF *EB* OR
  462. * *EL* INTO FIELD NUMBERS/FIELD VALUES AND MERGES THEM INTO THE
  463. * TRANSMISSION BUFFER.
  464. *
  465. * ENTRY (A1) = FWA OF *EB* OR *EL* MESSAGE.
  466. * (X1) = DISPLAY CODED VALUE(S) OF *EB* OR *EL* MESSAGE,
  467. * LEFT JUSTIFIED.
  468. * (X3) = *EB* OR *EL* ENTRY FROM TABLE *TTDC*.
  469. *
  470. * EXIT TO *TDF4*.
  471. * TO *TDF5*, IF ERROR.
  472. *
  473. * USES X - 0, 1, 2, 3, 4, 5, 6.
  474. * A - 1, 2, 6.
  475. * B - 5, 6, 7.
  476. *
  477. * CALLS CHB, MCB.
  478.  
  479.  
  480. PEB BSS 0 ENTRY
  481. AX3 18
  482. SB5 X3 FWA OF *EB* OR *EL* TABLE
  483. SB6 B5+PEBAL LWA OF *EB* OR *EL* TABLE
  484. SX5 B1+B1 MAXIMUM NUMBER OF PARAMETERS TO PROCESS
  485. BX6 X1 SAVE (X1)
  486. SA6 PEBD
  487. PEB1 MX0 12
  488. BX3 X0*X1 GET PARAMETER VALUE
  489. LX3 11-59
  490. PEB2 SA1 B5
  491. BX2 X0*X1 PARAMETER VALUE FROM TABLE
  492. LX2 11-59
  493. IX4 X3-X2
  494. ZR X4,PEB3 IF MATCH FOUND
  495. SB5 B5+1
  496. PL X4,PEB2 IF MORE ENTRIES TO CHECK
  497. SA1 PEBD
  498. RJ CHB CONVERT HEX DIGITS TO BINARY
  499. LX1 39-7
  500. SA2 B6+
  501. BX1 X1+X2 MERGE FIELD VALUE WITH TABLE ENTRY
  502. PEB3 SX6 X1 GET TABLE FLAG
  503. SA2 PEBC GET CURRENT FLAG
  504. BX2 X6-X2
  505. ZR X2,TDF5 IF PARAMETER HAS ALREADY BEEN PROCESSED
  506. SA6 A2+ INDICATE THAT PARAMETER HAS BEEN PROCESSED
  507. SX5 X5-1 NUMBER OF PARAMETERS LEFT TO PROCESS
  508. LX1 59-47 FIELD NUMBER AND FIELD VALUE
  509. SB7 B1+B1
  510. RJ MCB MERGE INTO BUFFER
  511. ZR X5,PEB4 IF MAXIMUM NUMBER OF PARAMETERS PROCESSED
  512. SA2 =1R, CHECK FOR SEPARATOR
  513. SA1 PEBD
  514. LX1 5-47
  515. MX0 -6
  516. BX3 -X0*X1
  517. BX4 X2-X3
  518. NZ X4,PEB4 IF NO MORE PARAMETERS
  519. BX6 X1
  520. SA6 A1
  521. SB5 B6-PEBAL *PEBA* OR *PEBB*
  522. EQ PEB1 PROCESS SECOND PARAMETER
  523.  
  524. PEB4 SX6 B0+ CLEAR FLAG
  525. SA6 PEBC
  526. EQ TDF4 RETURN
  527.  
  528.  
  529. * TABLE OF *EB* FIELD NUMBERS AND FIELD VALUES.
  530.  
  531. * 12/ PARAMETER VALUE, 8/ FIELD NUMBER, 8/ FIELD VALUE,
  532. * 14/ , 18/ FLAG INDICATING FIRST OR SECOND PARAMETER.
  533.  
  534. PEBA VFD 12/2LCL,8/102B,8/3,14/,18/2
  535. VFD 12/2LCR,8/102B,8/1,14/,18/2
  536. VFD 12/2LEB,8/101B,8/2,14/,18/1
  537. VFD 12/2LEL,8/101B,8/1,14/,18/1
  538. VFD 12/2LLF,8/102B,8/2,14/,18/2
  539. VFD 12/2LNO,8/102B,8/0,14/,18/2
  540. CON -0 TERMINATION WORD
  541.  
  542. * TABLE ENTRY FOR *EB* = 2 HEXADECIMAL DIGITS.
  543.  
  544. * 12/ , 8/ FIELD NUMBER, 8/ 0, 14/ ,
  545. * 18/ FLAG INDICATING FIRST OR SECOND PARAMETER.
  546.  
  547. VFD 12/,8/100B,8/0,14/,18/1
  548. PEBAL EQU *-PEBA-1 NUMBER OF *EB* TABLE ENTRIES
  549.  
  550. * TABLE OF *EL* FIELD NUMBERS AND FIELD VALUES.
  551.  
  552. * 12/ PARAMETER VALUE, 8/ FIELD NUMBER, 8/ FIELD VALUE,
  553. * 14/ , 18/ FLAG INDICATING FIRST OR SECOND PARAMETER.
  554.  
  555. PEBB VFD 12/2LCL,8/77B,8/3,14/,18/2
  556. VFD 12/2LCR,8/77B,8/1,14/,18/2
  557. VFD 12/2LEB,8/76B,8/2,14/,18/1
  558. VFD 12/2LEL,8/76B,8/1,14/,18/1
  559. VFD 12/2LLF,8/77B,8/2,14/,18/2
  560. VFD 12/2LNO,8/77B,8/0,14/,18/2
  561. CON -0
  562.  
  563. * TABLE ENTRY FOR *EL* = 2 HEXADECIMAL DIGITS.
  564.  
  565. * 12/ , 8/ FIELD NUMBER, 8/ 0, 14/ ,
  566. * 18/ FLAG INDICATING FIRST OR SECOND PARAMETER.
  567.  
  568. VFD 12/,8/75B,8/0,14/,18/1
  569. PEBBL EQU *-PEBB-1 NUMBER OF *EL* TABLE ENTRIES
  570. ERRNZ PEBAL-PEBBL *EB* AND *EL* TABLE LENGTHS NOT EQUAL
  571.  
  572. PEBC CON 0 FLAG INDICATING FIRST OR SECOND PARAMETER
  573. PEBD CON 0 TEMPORARY STORAGE FOR (X1)
  574. PHB SPACE 4,20
  575. ** PHB - PROCESS HEXADECIMAL TO BINARY.
  576. *
  577. * THIS ROUTINE CONVERTS THE DISPLAY CODED HEXADECIMAL VALUE
  578. * OF PARAMETER *B1*, *B2*, *BS*, *CN*, OR *CT* INTO A FIELD
  579. * VALUE AND MERGES IT INTO THE TRANSMISSION BUFFER.
  580. *
  581. * ENTRY (X1) = TWO DISPLAY CODED HEXADECIMAL CHARACTERS,
  582. * LEFT JUSTIFIED.
  583. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  584. * FIELD NUMBER FROM *B1*, *B2*, *BS*, *CN*, OR *CT*
  585. * ENTRY IN TABLE *TTDC*.
  586. *
  587. * EXIT TO *TDF4*.
  588. *
  589. * USES X - 1.
  590. * B - 7.
  591. *
  592. * CALLS CHB, MCB.
  593.  
  594.  
  595. PHB BSS 0 ENTRY
  596. RJ CHB CONVERT HEX CHARACTERS TO BINARY
  597. SB7 B1
  598. LX1 59-7
  599. RJ MCB MERGE FIELD VALUE INTO BUFFER
  600. EQ TDF4 RETURN
  601. PIN SPACE 4,20
  602. ** PIN - PROCESS PARAMETER *IN*.
  603. *
  604. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE OF *IN* INTO
  605. * ITS CORRESPONDING FIELD NUMBERS/FIELD VALUES AND MERGES
  606. * THEM INTO THE TRANSMISSION BUFFER.
  607. *
  608. * ENTRY (X1) = DISPLAY CODED VALUE OF *IN*, LEFT JUSTIFIED.
  609. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  610. * FIELD NUMBER FROM *IN* ENTRY IN TABLE *TTDC*.
  611. *
  612. * EXIT TO *TDF4*.
  613. * TO *TDF5*, IF ERROR.
  614. *
  615. * USES X - 0, 1, 3, 4.
  616. * A - 1.
  617. * B - 2, 7.
  618. *
  619. * CALLS MCB.
  620.  
  621.  
  622. PIN BSS 0 ENTRY
  623. MX0 12
  624. BX3 X0*X1
  625. SB2 PINA
  626. LX3 11-59
  627. PIN1 SA1 B2
  628. BX4 X0*X1
  629. LX4 11-59
  630. IX4 X3-X4
  631. ZR X4,PIN2 IF *BK*, *KB*, *PT*, *XK*, OR *XP*
  632. SB2 B2+1
  633. PL X4,PIN1 IF MORE ENTRIES TO CHECK
  634. MX0 6
  635. LX3 59-11
  636. BX3 X0*X3
  637. SA1 PINB
  638. BX4 X0*X1
  639. BX4 X3-X4
  640. NZ X4,TDF5 IF NOT *X*
  641. PIN2 SB7 X1 FIELD SIZE
  642. LX1 59-47 FIELD NUMBERS/FIELD VALUES
  643. RJ MCB MERGE INTO BUFFER
  644. EQ TDF4 RETURN
  645.  
  646.  
  647. * 12/ FIELD NAME, 8/ FIELD VALUE, 8/ FIELD NUMBER,
  648. * 8/ FIELD VALUE, 6/, 18/ FIELD SIZE.
  649.  
  650. PINA VFD 12/2LBK,8/0,8/65B,8/2,6/,18/3 *BK*
  651. VFD 12/2LKB,8/0,8/65B,8/0,6/,18/3 *KB*
  652. VFD 12/2LPT,8/0,8/65B,8/1,6/,18/3 *PT*
  653. VFD 12/2LXK,8/1,8/65B,8/0,6/,18/3 *XK*
  654. VFD 12/2LXP,8/1,8/65B,8/1,6/,18/3 *XP*
  655. CON -0 TERMINATION WORD
  656.  
  657. * 6/ FIELD NAME, 6/, 8/ FIELD VALUE, 22/, 18/ FIELD SIZE.
  658.  
  659. PINB VFD 6/1LX,6/,8/1,22/,18/1 *X*
  660. PPO SPACE 4,20
  661. ** PPO - PROCESS PARAMETER *OP*.
  662. *
  663. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE OF *OP* INTO
  664. * ITS CORRESPONDING FIELD VALUE AND MERGES IT INTO THE
  665. * TRANSMISSION BUFFER.
  666. *
  667. * ENTRY (X1) = DISPLAY CODED VALUE OF *OP*, LEFT JUSTIFIED.
  668. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  669. * FIELD NUMBER FROM *OP* ENTRY IN TABLE *TTDC*.
  670. *
  671. * EXIT TO *TDF4*.
  672. * TO *TDF5*, IF ERROR.
  673. *
  674. * USES X - 0, 1, 2, 3, 4.
  675. * A - 2.
  676. * B - 7.
  677. *
  678. * CALLS MCB.
  679.  
  680.  
  681. PPO BSS 0 ENTRY
  682. SA2 =2LPT
  683. SB7 B1
  684. MX0 12
  685. BX3 X0*X1
  686. BX4 X3-X2
  687. SX1 B1+B1
  688. LX1 59-7 SET FIELD VALUE TO 2
  689. ZR X4,PPO1 IF CHARACTERS = *PT*
  690. SA2 =2LPR
  691. BX4 X3-X2
  692. SX1 1
  693. LX1 59-7 SET FIELD VALUE TO 1
  694. ZR X4,PPO1 IF CHARACTERS = *PR*
  695. SA2 =2LDI
  696. BX1 X3-X2 SET FIELD VALUE TO 0
  697. NZ X1,TDF5 IF CHARACTERS NOT EQUAL TO *DI*
  698. PPO1 RJ MCB MERGE FIELD VALUE INTO BUFFER
  699. EQ TDF4 RETURN
  700. PPA SPACE 4,20
  701. ** PPA - PROCESS PARAMETER *PA*.
  702. *
  703. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE OF *PA* INTO
  704. * ITS CORRESPONDING FIELD VALUE AND MERGES IT INTO THE
  705. * TRANSMISSION BUFFER.
  706. *
  707. * ENTRY (X1) = DISPLAY CODED VALUE OF *PA*, LEFT JUSTIFIED.
  708. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  709. * FIELD NUMBER FROM *PA* ENTRY IN TABLE *TTDC*.
  710. *
  711. * EXIT TO *TDF4*.
  712. * TO *TDF5*, IF ERROR.
  713. *
  714. * USES X - 0, 1, 2, 3, 4.
  715. * A - 2.
  716. * B - 7.
  717. *
  718. * CALLS MCB.
  719.  
  720.  
  721. PPA BSS 0 ENTRY
  722. SA2 =1LN
  723. MX0 6
  724. BX3 X0*X1
  725. BX4 X3-X2
  726. SX1 3
  727. LX1 59-7 SET FIELD VALUE TO 3
  728. SB7 1
  729. ZR X4,PPA1 IF CHARACTER = *N*
  730. SA2 =1LE
  731. BX4 X3-X2
  732. SX1 B1+B1
  733. LX1 59-7 SET FIELD VALUE TO 2
  734. ZR X4,PPA1 IF CHARACTER = *E*
  735. SX1 B1
  736. SA2 =1LO
  737. BX4 X3-X2
  738. LX1 59-7 SET FIELD VALUE TO 1
  739. ZR X4,PPA1 IF CHARACTER = *O*
  740. SA2 =1LZ
  741. BX1 X3-X2 SET FIELD VALUE TO 0
  742. NZ X1,TDF5 IF CHARACTER NOT EQUAL TO *Z*
  743. PPA1 RJ MCB MERGE FIELD VALUE INTO BUFFER
  744. EQ TDF4 RETURN
  745. PYN SPACE 4,20
  746. ** PYN - PROCESS PARAMETER *BR*, *EP*, *FA*, *IC*, *OC*, *PG*,
  747. * OR *SE*.
  748. *
  749. * THIS ROUTINE CONVERTS THE DISPLAY CODED VALUE OF *BR*, *EP*,
  750. * *FA*, *IC*, *OC*, *PG* OR *SE* INTO A FIELD VALUE AND MERGES
  751. * IT INTO THE TRANSMISSION BUFFER.
  752. *
  753. * ENTRY (X1) = DISPLAY CODED VALUE OF *BR*, *EP*, *FA*, *IC*,
  754. * *OP*, *PG*, OR *SE*, LEFT JUSTIFIED.
  755. * LAST 8-BIT VALUE MERGED INTO TRANSMISSION BUFFER =
  756. * FIELD NUMBER FROM *BR*, *EP*, *FA*, *IC*, *OP*, *PG*,
  757. * OR *SE* ENTRY IN TABLE *TTDC*.
  758. *
  759. * EXIT TO *TDF4*.
  760. * TO *TDF5*, IF ERROR.
  761. *
  762. * USES X - 0, 1, 2, 3, 4.
  763. * A - 2.
  764. * B - 7.
  765. *
  766. * CALLS MCB.
  767.  
  768.  
  769. PYN BSS 0 ENTRY
  770. SA2 =1LY
  771. SB7 B1
  772. MX0 6
  773. BX3 X0*X1
  774. BX4 X3-X2
  775. SX1 B1
  776. LX1 59-7 SET FIELD VALUE TO 1
  777. ZR X4,PYN1 IF CHARACTER = *Y*
  778. SA2 =1LN
  779. BX1 X3-X2 SET FIELD VALUE TO 0
  780. NZ X1,TDF5 IF CHARACTER NOT EQUAL TO *N*
  781. PYN1 RJ MCB MERGE FIELD VALUE INTO BUFFER
  782. EQ TDF4 RETURN
  783. FKA SPACE 4,15
  784. ** FKA - FIND KEYWORD ARGUMENT.
  785. *
  786. * THIS ROUTINE FINDS A KEYWORD PARAMETER FROM TABLE *TTDC* AND
  787. * RETURNS THE FIELD NUMBER FOR THE KEYWORD AND ITS PROCESSING
  788. * ROUTINE.
  789. *
  790. * ENTRY (X0) = MASK FOR KEYWORD IN TABLE *TTDC*.
  791. * (X1) = KEYWORD TO BE FOUND, LEFT JUSTIFIED.
  792. *
  793. * EXIT (FKAA) = *TTDC* TABLE ENTRY IF FOUND.
  794. * (X1) = FIELD NUMBER, LEFT JUSTIFIED.
  795. * = 0, IF KEYWORD IS *EB* OR *EL*.
  796. * (X6) = NEGATIVE, IF KEYWORD NOT FOUND.
  797. *
  798. * USES X - 1, 3, 4, 5, 6, 7.
  799. * A - 3, 7.
  800. * B - 2.
  801.  
  802.  
  803. FKA2 BX7 X3
  804. MX4 8
  805. LX3 59-47
  806. BX1 X4*X3 FIELD NUMBER IF NOT *EB* OR *EL*
  807. SA7 FKAA *TTDC* TABLE ENTRY
  808.  
  809. FKA SUBR ENTRY/EXIT
  810. SB2 TTDC
  811. LX1 11-59
  812. FKA1 SA3 B2+ CURRENT TABLE ENTRY
  813. BX5 X0*X3
  814. LX5 11-59
  815. IX6 X1-X5
  816. SB2 B2+B1
  817. ZR X6,FKA2 IF KEYWORD FOUND
  818. PL X6,FKA1 IF TABLE NOT EXHAUSTED
  819. EQ FKAX RETURN - ARGUMENT NOT VALID KEYWORD
  820.  
  821.  
  822. FKAA CON 0 TABLE ENTRY IF FOUND
  823.  
  824. TTDC SPACE 4,10
  825. ** TTDC - TABLE OF KEYWORDS.
  826. *
  827. * TABLE ENTRIES ARE CONSTRUCTED FROM THE FOLLOWING FIELDS.
  828. * DIFFERENT PORTIONS OF THE TABLE USE DIFFERENT FIELDS
  829. * DEPENDING ON THE PROCESSING ROUTINE.
  830. *
  831. * FN = FIELD NUMBER.
  832. * FV = FIELD VALUE.
  833. * FWA = FWA OF *EB* OR *EL* FIELD NUMBER AND FIELD VALUE TABLE.
  834. * KW = KEYWORD.
  835. * R = ROUTINE.
  836.  
  837. * 12/ KW, 8/ FN, 22/ ,18/ R.
  838.  
  839.  
  840. TTDC BSS 0 TABLE OF TERMINAL DEFINITION KEYWORDS
  841. VFD 12/2LBR,8/63B,22/,18/PYN
  842. VFD 12/2LBS,8/47B,22/,18/PHB
  843. VFD 12/2LB1,8/52B,22/,18/PHB
  844. VFD 12/2LB2,8/53B,22/,18/PHB
  845. VFD 12/2LCI,8/54B,22/,18/PDB
  846. VFD 12/2LCN,8/46B,22/,18/PHB
  847. VFD 12/2LCT,8/50B,22/,18/PHB
  848.  
  849. * 12/ KW, 8/ FN, 4/ , 18/ FV, 18/ R.
  850.  
  851. VFD 12/2LDL,8/106B,4/,18/0,18/PDL
  852.  
  853. * 12/ KW, 8/ 0, 4/ , 18/ FWA, 18/ R.
  854.  
  855. VFD 12/2LEB,8/0,4/,18/PEBA,18/PEB
  856. VFD 12/2LEL,8/0,4/,18/PEBB,18/PEB
  857.  
  858. * 12/ KW, 8/ FN, 22/ ,18/ R.
  859.  
  860. VFD 12/2LEP,8/61B,22/,18/PYN
  861. VFD 12/2LFA,8/67B,22/,18/PYN
  862. VFD 12/2LIC,8/103B,22/,18/PYN
  863. VFD 12/2LIN,8/64B,22/,18/PIN
  864. VFD 12/2LLI,8/55B,22/,18/PDB
  865. VFD 12/2LOC,8/104B,22/,18/PYN
  866. VFD 12/2LOP,8/66B,22/,18/PPO
  867. VFD 12/2LPA,8/62B,22/,18/PPA
  868. VFD 12/2LPG,8/45B,22/,18/PYN
  869. VFD 12/2LPL,8/44B,22/,18/PDB
  870. VFD 12/2LPW,8/43B,22/,18/PDB
  871. VFD 12/2LSE,8/60B,22/,18/PYN
  872. VFD 12/2LTC,8/42B,22/,18/PDB
  873.  
  874. * 12/ KW, 8/ FN, 4/ , 18/ FV, 18/ R.
  875.  
  876. VFD 12/2LXL,8/106B,4/,18/1,18/PDL
  877. CON -0 TERMINATION WORD
  878. MCB SPACE 4,15
  879. ** MCB - MERGE FIELD NUMBERS/FIELD VALUES INTO BUFFER.
  880. *
  881. * THIS ROUTINE ACCEPTS LEFT JUSTIFIED 8-BIT BINARY VALUES AND
  882. * MERGES THEM INTO THE BUFFER USED TO MAKE THE *CTI* REQUEST
  883. * FOR SUBSEQUENT TRANSMISSION TO THE NETWORK SUPERVISOR. THE
  884. * RESULTING BUFFER REQUIRES THAT EACH 8-BIT FIELD NUMBER BE
  885. * FOLLOWED BY A CORRESPONDING 8-BIT FIELD VALUE.
  886. *
  887. * ENTRY (X1) = ONE OR MORE LEFT JUSTIFIED 8-BIT BINARY VALUES
  888. * THAT REPRESENT FIELD NUMBERS/FIELD VALUES.
  889. * (B7) = NUMBER OF 8-BIT BINARY VALUES IN (X1).
  890. *
  891. * EXIT (MCBA) UPDATED BY (X1).
  892. *
  893. * USES X - 0, 1, 2, 3, 4, 6, 7.
  894. * A - 2, 3, 4, 6, 7.
  895. * B - 2, 3, 4, 7.
  896.  
  897.  
  898. MCB4 SA6 A3+ RESTORE FINISHED WORD TO BUFFER
  899. SX7 B2
  900. SX6 B3
  901. SA7 MCBB SET NEW WORD COUNT
  902. SA6 MCBC SET NEW FIELD POINTER
  903.  
  904. MCB SUBR ENTRY/EXIT
  905. SA2 MCBB BUFFER WORD POINTER
  906. SA4 MCBE UPDATE FIELD NUMBER/FIELD VALUE COUNT
  907. MX0 8
  908. SX7 B7+X4
  909. SA3 MCBC FIELD POINTER
  910. SB4 -4 (B4) = BIT POSITION INDICATING OVERLAP
  911. SA7 A4
  912. SB2 X2
  913. SB3 X3
  914. SA3 MCBA+B2 CURRENT UNFINISHED WORD IN BUFFER
  915. BX6 X3
  916. MCB1 SX4 377B
  917. SB3 B3-8
  918. SB7 B7-B1
  919. BX2 X0*X1 EXTRACT 8-BIT BINARY VALUE
  920. LX1 8
  921. LX2 8
  922. EQ B3,B4,MCB3 IF VALUE MUST BE DIVIDED
  923. LX4 B3
  924. LX2 B3
  925. BX6 -X4*X6
  926. BX6 X2+X6 MERGE 8-BIT BINARY VALUE
  927. ZR B3,MCB2 IF LAST VALUE TO BE MERGED
  928. GT B7,MCB1 IF VALUES YET TO BE MERGED
  929. EQ MCB4 PROCESSING COMPLETE
  930.  
  931. MCB2 SB3 60
  932. SB2 B2+1
  933. SA6 A3
  934. SA3 A3+1 PRESET (A3)
  935. BX6 X6-X6
  936. GT B7,MCB1 IF VALUES YET TO BE MERGED
  937. EQ MCB4 STAGING REGISTER EMPTY
  938.  
  939. MCB3 MX0 -4 RESTORE COMPLETED WORD TO BUFFER
  940. BX3 X2
  941. AX3 4
  942. BX6 X0*X6
  943. BX3 -X0*X3
  944. BX6 X3+X6 MERGE HALF OF VALUE
  945. SA6 A3
  946. SA3 A3+B1
  947. BX6 X6-X6
  948. MX0 4 POSITION REMAINING HALF OF VALUE
  949. SA6 A3 CLEAR NEXT WORD IN BUFFER
  950. LX2 59-3
  951. BX6 X0*X2
  952. SB3 56
  953. MX0 8 RESET HEX MASK
  954. SB2 B2+1 INCREMENT WORD COUNT
  955. GT B7,MCB1 IF VALUES YET TO BE MERGED
  956. EQ MCB4 PROCESSING COMPLETE
  957.  
  958.  
  959. MCBA BSS 20 SUPERVISORY MESSAGE BUFFER
  960. MCBB DATA 2 WORD POINTER INTO *MCBA*
  961. MCBC DATA 44 POINTER TO BEGINNING OF 8-BIT FIELDS.
  962. MCBD VFD 8/PFTC,1/0,1/0,6/SFDM,44/0
  963. MCBE CON 2 FIELD NUMBER/FIELD VALUE COUNT OF *MCBA*
  964. SPACE 4,10
  965. SPACE 4,10
  966. * COMMON DECKS.
  967.  
  968. *CALL COMCCDD
  969. *CALL COMKZFN
  970. *CALL COMCDXB
  971. *CALL COMCPOP
  972. *CALL COMCUSB
  973. *CALL COMCZTB
  974. SPACE 4,10
  975. END