Table of Contents

TRMDEF

Table Of Contents

  • [00212] MACRO DEFINITIONS.
  • [00213] VSS - SET UP FIELD VALUE, WORD COUNT, AND EQUIVALENCE
  • [00249] ASSEMBLY CONSTANTS AND FETS.
  • [00370] MAIN PROGRAM.
  • [00604] SUBROUTINES.
  • [00606] BEM - BUILD ERROR MESSAGE.
  • [00651] CAF - CHECK ATTRIBUTE FLAGS.
  • [00703] CAS - CHECK IF ATTRIBUTE IS SUPPORTED.
  • [00724] CCT - CHECK CONNECTION TYPE.
  • [00757] EFP - ENTER FIELD NUMBER/FIELD VALUE PAIR INTO BUFFER.
  • [00786] EFQ - ENTER ATTRIBUTE NUMBER/ATTRIBUTE VALUE PAIR.
  • [00819] HCP - HEXADECIMAL CHARACTER PROCESSOR.
  • [00922] PCP - PROCESS CHARACTER PARAMETER VALUE.
  • [01028] PCS - PROCESS COMMAND ARGUMENTS.
  • [01118] PDO - PROCESS DOUBLE OCTETS.
  • [01167] PEV - PROCESS EQUIVALENCED VALUE ARGUMENT TYPE.
  • [01231] PMP - PROCESS MULTIPLE VALUE PARAMETER.
  • [01433] PPS - PACK PARAMETER STRING - CONTROL BYTE 0016B.
  • [01464] PPT - PACK PARAMETER STRING - CONTROL BYTE 0010B.
  • [01495] PTP - PROCESS *TC* PARAMETER.
  • [01536] SAF - SET ATTRIBUTE FLAGS.
  • [01565] SEP - SEND EXTRA FN/FV PAIR.
  • [01671] SPC - SPECIAL PAGE CHECKS FOR CDNA RANGES.
  • [01710] VCP - VARIABLE CHARACTER PROCESSOR.
  • [01812] VFT - VALIDATE FIELD VALUE ACCORDING TO TERMINAL CLASS.
  • [01888] ZCA - ZERO CHARACTER ATTRIBUTE CHECKER.
  • [01930] TFVM - TABLE OF VALIDATION RANGES FOR MULTI-VALUE.
  • [01957] TABLES.
  • [01959] TFLD - TABLE OF FIELD VALUE VALIDATION RANGES
  • [02157] TLTC - TABLE OF LEGAL TERMINAL CLASS CHANGES.
  • [02186] TMPV - TABLE OF TERMINAL DEFINITIONS MULTI VALUE NUMBERS.

Source Code

TRMDEF.txt
  1. IDENT TRMDEF,FETS
  2. ABS
  3. SST
  4. ENTRY TRMDEF
  5. ENTRY ARG=
  6. ENTRY RFL=
  7. SYSCOM B1
  8. BASE DECIMAL
  9. *COMMENT TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
  10. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  11.  
  12. TRMDEF TITLE TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
  13. SPACE 4,10
  14. ***** TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
  15. *
  16. * B. M. SLIWINSKI. 79/02/22.
  17. * J. P. LITTLE. 85/07/12.
  18. *
  19. * *TRMDEF* MAKES IT POSSIBLE FOR INTERACTIVE USERS TO CHANGE
  20. * THE CHARACTERISTICS OF THEIR CONNECTED TERMINAL THROUGH THE
  21. * USE OF THE *TRMDEF* COMMAND.
  22. SPACE 4,10
  23. *** *TRMDEF* ACCEPTS AS INPUT A SINGLE COMMAND.
  24. * VALIDATION OF THE SPECIFIED PARAMETERS FOR CORRECT TYPE,
  25. * RANGE, AND TERMINAL TYPE IS DONE IN THE ORDER THEY APPEAR
  26. * ON THE COMMAND. THE CONNECTED TERMINAL TYPE IS USED
  27. * FOR VALIDATIONS OF OTHER PARAMETERS UNTIL A CHANGE OF
  28. * TERMINAL CLASS (*TC*) IS ENCOUNTERED. IF THIS CHANGE IS
  29. * LEGAL, THEN SUBSEQUENT PARAMETERS WILL USE THIS TERMINAL
  30. * CLASS FOR VALIDATION.
  31. *
  32. * IF ALL CHANGES ARE LEGAL, A CONTROL BYTE PARAMETER STRING
  33. * IS BUILT. THERE ARE TWO TYPES OF CONTROL BYTE STRINGS THAT
  34. * ARE BUILT, 0010B AND 0016B, DEPENDING ON THE TYPE OF NETWORK
  35. * THAT THE TERMINAL IS CONNECTED TO. IF THE NETWORK CONNECTION
  36. * IS OF TYPE NAM/CDNA, THEN CONTROL BYTE 0010B IS BUILT (UNLESS
  37. * ALL THE PARAMETERS ENTERED ARE CCP TERMINAL DEFINITIONS).
  38. * IF THE NETWORK CONNECTION IS OF TYPE NAM/CCP, THEN CONTROL
  39. * BYTE 0016 IS BUILT. IF CONTROL BYTE 0016 IS BUILT, IT HAS
  40. * THE FOLLOWING FORM:
  41. *
  42. * 12/CB,12/FN,12/FV,...,12/FN,12/FV,EOL
  43. * CB = CONTROL BYTE 0016B.
  44. * FN = 4000B + FIELD NUMBER.
  45. * FV = 4000B + FIELD VALUE.
  46. *
  47. * IF CONTROL BYTE 0010B IS BUILT, IT HAS THE FOLLOWING FORM
  48. *
  49. * 12/CB,12/AN,12/OC(N),12/AV(0),...,12/AV(N),12/AN,12/AV,EOL
  50. * CB = CONTROL BYTE 0010B.
  51. * AN = 4000B + ATTRIBUTE NUMBER.
  52. * OC(N) = OCTET COUNTER.
  53. * AV(0) = 4000B + ATTRIBUTE VALUE(0).
  54. * AV(N) = 4000B + ATTRIBUTE VALUE(N).
  55. *
  56. * THIS STRING IS WRITTEN TO *OUTPUT* OR THE FILE SPECIFIED
  57. * ON THE COMMAND.
  58. SPACE 4,10
  59. *** COMMAND CALL.
  60. *
  61. * TRMDEF,XX=VALUE,...,XX=VALUE,L=FN.
  62. * OR
  63. * TRMDEF,XX=VALUE/VALUE/...,XX=VALUE,L=FN.
  64. *
  65. * XX = ONE - THREE CHARACTER MNEMONIC FOR THE
  66. * TERMINAL DEFINITION PARAMETER.
  67. * VALUE = LEGAL VALUE FOR A GIVEN TERMINAL DEFINITION
  68. * PARAMETER. SOME PARAMETERS MAY HAVE MULTIPLE
  69. * VALUES WITH THE FORMAT: XX=VALUE/VALUE...
  70. * L = OUTPUT FILE.
  71. * IF FN IS SPECIFIED, WRITE OUTPUT TO FILE *FN*.
  72. * THE DEFAULT IS *OUTPUT*.
  73. *
  74. *
  75. * THE POSSIBLE MNEMONICS FOR *XX* ARE AS FOLLOWS.
  76. *
  77. * XX DESCRIPTION
  78. * -- -----------
  79. * AB ABORT BLOCK
  80. * BR BREAK KEY
  81. * BS BACKSPACE CHARACTER
  82. * B1 USER BREAK 1 (INTERRUPTION CHARACTER)
  83. * B2 USER BREAK 2 (TERMINATION CHARACTER)
  84. * CI CARRIAGE RETURN IDLE COUNT
  85. * CN CANCEL CHARACTER
  86. * CP CURSOR POSITIONING
  87. * CT CONTROL CHARACTER
  88. * DL SINGLE MESSAGE TRANSPARENT
  89. * EB END OF BLOCK
  90. * EL END OF LINE
  91. * EP ECHOPLEX MODE
  92. * FA FULL ASCII
  93. * HD HOST AVAILABILITY DISPLAY
  94. * IC INPUT FLOW CONTROL
  95. * IN INPUT DEVICE
  96. * LI LINE FEED IDLE COUNT
  97. * LK LOCK OUT CONTROL
  98. * OC OUTPUT FLOW CONTROL
  99. * OP OUTPUT DEVICE
  100. * PA PARITY
  101. * PG PAGE WAIT
  102. * PL PAGE LENGTH
  103. * PW PAGE WIDTH
  104. * SE SPECIAL EDITING MODE
  105. * TC TERMINAL CLASS
  106. * XL MULTI MESSAGE
  107. *
  108. * CDCNET TERMINAL DEFINITIONS.
  109. *
  110. * AC ATTENTION CHARACTER
  111. * ACA ATTENTION CHARACTER ACTION
  112. * BC BACKSPACE CHARACTER
  113. * BKA BREAK KEY ACTION
  114. * BLC BEGIN LINE CHARACTER
  115. * CFC CHARACTER FLOW CONTROL
  116. * CLC CANCEL LINE CHARACTER
  117. * CRD CARRIAGE RETURN DELAY
  118. * CRS CARRIAGE RETURN SEQUENCE
  119. * CS CODE SET
  120. * E ECHOPLEX
  121. * ELC END LINE CHARACTER
  122. * ELP END LINE POSITIONING
  123. * EOS END OUTPUT SEQUENCE
  124. * EPA END PAGE ACTION
  125. * EPC END PARTIAL CHARACTER
  126. * EPP END PARTIAL POSITION
  127. * FFD FORM FEED DELAY
  128. * FFS FORM FEED SEQUENCE
  129. * FL FOLD LINE
  130. * HP HOLD PAGE
  131. * HPO HOLD PAGE OVER
  132. * IBS INPUT BLOCK SIZE
  133. * IEM INPUT EDITING MODE
  134. * IOM INPUT OUTPUT MODE
  135. * LFD LINE FEED DELAY
  136. * LFS LINE FEED SEQUENCE
  137. * NCC NETWORK CONTROL CHARACTER
  138. * P PARITY TYPE
  139. * PCF PARTIAL CHARACTER FORWARDING
  140. * PL PAGE LENGTH
  141. * PW PAGE WIDTH
  142. * RA RESPONSE ACTION
  143. * SA STATUS ACTION
  144. * SBC STORE BACKSPACE CHARACTER
  145. * SND STORE NULS DELS
  146. * TCM TRANSPARENT CHARACTER MODE
  147. * TFC TRANSPARENT FORWARD CHARACTER
  148. * TLM TRANSPARENT LENGTH MODE
  149. * TM TERMINAL MODEL
  150. * TML TRANSPARENT MESSAGE LENGTH
  151. * TTC TRANSPARENT TERMINATE CHARACTER
  152. * TTM TRANSPARENT TIMEOUT MODE
  153. *
  154. * UNSUPPORTED STANDARD TERMINAL DEFINITIONS.
  155. *
  156. * AR AUTOMATIC CHARACTER RECOGNITION
  157. * BF BLOCKING FACTOR - 0, 1, 2
  158. * CH DISPLAY TERMINAL CHARACTERISTICS
  159. * HN HOST NODE SELECTION - NUMBER
  160. * HS HOST SELECTION - NAME
  161. * MS MESSAGE TO NETWORK OPERATOR - MESSAGETEXT
  162. * TM TERMINATE TERMINAL - HOST CONNECTION
  163. *
  164. *
  165. * VALUES CAN BE SPECIFIED IN THE FOLLOWING WAYS.
  166. *
  167. * FORM DESCRIPTION
  168. * ---- -----------
  169. * NN DECIMAL VALUE
  170. * Y ALPHANUMERIC CHARACTER WITH DISPLAY CODE LESS THAN 45B
  171. * $Y$ ANY ALPHANUMERIC CHARACTER
  172. * IIIB OCTAL VALUE OF AN *ASCII* CHARACTER
  173. * XHH HEXADECIMAL VALUE OF AN *ASCII* CHARACTER
  174. * T ALPHANUMERIC DISPLAY CODE CHARACTER OR DECIMAL VALUE
  175. SPACE 4,10
  176. *** DAYFILE MESSAGES.
  177. *
  178. * * ATTRIBUTE COMMANDS MUST BE OF ONE NETWORK TYPE.*
  179. * ATTRIBUTES UNIQUE TO BOTH NAM/CCP AND NAM/CDNA
  180. * WERE ENTERED ON ONE *TRMDEF* REQUEST.
  181. *
  182. * * ERROR IN TRMDEF ARGUMENT.*
  183. * THE COMMAND CONTAINED INCORRECT SYNTAX OR AN
  184. * UNKNOWN PARAMETER.
  185. *
  186. * * INCORRECT JOB ORIGIN TYPE FOR TRMDEF.*
  187. * THE JOB ORIGIN TYPE OF THE JOB REQUESTING *TRMDEF*
  188. * WAS NOT TIME-SHARING.
  189. *
  190. * * INCORRECT TERMINAL TYPE FOR TRMDEF.*
  191. * THE *TRMDEF* REQUEST CAME FROM A TERMINAL WHICH WAS
  192. * NOT A NETWORK TERMINAL.
  193. *
  194. * * LITERAL STRING IS NOT ALLOWED FOR THIS PARAMETER.*
  195. * LITERAL STRING PROCESSING HAS BEEN DISABLED FOR
  196. * THE CDCNET PARAMETERS CRS, EOS, FFS, LFS, TFC, AND
  197. * TTC.
  198. *
  199. * * NETWORK TYPE DOES NOT SUPPORT ATTRIBUTE COMMAND.*
  200. * THE *TRMDEF* REQUEST CAME FROM A TERMINAL THAT WAS
  201. * OF A DIFFERENT NETWORK TYPE THAN THE PARAMETERS
  202. * ENTERED.
  203. *
  204. * * TRMDEF COMPLETE.*
  205. * INDICATES COMMAND PROCESSED WITH NO ERRORS.
  206. * OUTPUT WRITTEN TO FILE AS DETERMINED BY *L* PARAMETER.
  207. *
  208. * * TRMDEF ERRORS.*
  209. * AN INCORRECT VALUE WAS ENTERED FOR ONE OR MORE
  210. * PARAMETERS. ADDITIONAL ERROR MESSAGES ARE WRITTEN
  211. * TO THE FILE SPECIFIED BY THE *L* PARAMETER.
  212. TITLE MACRO DEFINITIONS.
  213. ** VSS - SET UP FIELD VALUE, WORD COUNT, AND EQUIVALENCE
  214. * CODE FOR ABBREVIATED AND FULL ATTRIBUTE VALUES.
  215. *
  216. * VSS STRINGA,STRINGB,S
  217. *
  218. * ENTRY *STRINGA* = ABBREVIATED CHARACTER STRING.
  219. * *STRINGB* = FULL CHARACTER STRING.
  220. * *S* = FIELD VALUE FLAG.
  221.  
  222.  
  223. PURGMAC VSS
  224. VSS MACRO STRINGA,STRINGB,S
  225. V1 MICRO 1,10,*STRINGA*
  226. V2 MICRO 1,10,*STRINGB*
  227. V3 MICRO 11,10,*STRINGB*
  228. LEN SET 1
  229. .A IFC NE,*"V3"**
  230. LEN SET 2
  231. .A ENDIF
  232. .B IFC NE,*S**
  233. VAL SET 0
  234. .B ELSE
  235. VAL SET VAL+1
  236. .B ENDIF
  237. VFD 24/0,18/VAL+4000B,18/1
  238. VFD 60/0L"V1"
  239. .C IFC EQ,*"V2"**
  240. VFD 24/0,18/VAL+4000B,18/2
  241. .C ELSE
  242. VFD 24/0,18/VAL+4000B,18/LEN
  243. VFD 60/0L"V2"
  244. .D IFC NE,*"V3"**
  245. VFD 60/0L"V3"
  246. .D ENDIF
  247. .C ENDIF
  248. ENDM
  249. TITLE ASSEMBLY CONSTANTS AND FETS.
  250. SPACE 4,10
  251. **** ASSEMBLY CONSTANTS.
  252.  
  253.  
  254. CBUFL EQU 40 PARAMETER STRING BUFFER LENGTH - CCP
  255. DBUFL EQU 40 PARAMETER STRING BUFFER LENGTH - CDNA
  256. OBUFL EQU 120 OUTPUT BUFFER LENGTH
  257. TTPVL EQU 50D PARAMETER VALUE TABLE LENGTH
  258. LTCN EQU 18D LARGEST TERMINAL CLASS + 1
  259. TCNT EQU 3 TRANSMISSION CODE FOR NETWORK TERMINAL
  260. TTFN EQU 0 INDEX INTO TFLD TABLE--FIRST WORD
  261. TFVR EQU 1 INDEX INTO TFLD TABLE--SECOND WORD
  262. TFLG EQU 2 LENGTH OF TABLE ENTRY
  263.  
  264. * TERMINAL DEFINITION FIELD NUMBERS.
  265.  
  266. * CONTROL BYTE 0016B FIELD NUMBERS
  267.  
  268. ABFN EQU 4051B *AB*
  269. BRFN EQU 4063B *BR*
  270. BSFN EQU 4047B *BS*
  271. B1FN EQU 4052B *B1*
  272. B2FN EQU 4053B *B2*
  273. CBFN EQU 4102B *EB=XX*
  274. CCFN EQU 4056B *CI=CA*
  275. CIFN EQU 4054B *CI*
  276. CLFN EQU 4077B *EL=XX*
  277. CNFN EQU 4046B *CN*
  278. CPFN EQU 4107B *CP*
  279. CTFN EQU 4050B *CT*
  280. C1FN EQU 4071B *DL/XL=CNNNN*
  281. C2FN EQU 4072B *DL/XL=CNNNN*
  282. EBFN EQU 4101B *EB=EB/EL*
  283. ELFN EQU 4076B *EL=EB/EL*
  284. EPFN EQU 4061B *EP*
  285. FAFN EQU 4067B *FA*
  286. HDFN EQU 4041B *HD*
  287. ICFN EQU 4103B *IC*
  288. INFN EQU 4065B *IN*
  289. LIFN EQU 4055B *LI*
  290. LCFN EQU 4057B *LI=CA*
  291. LKFN EQU 4040B *LK*
  292. MXFN EQU 4106B *MMXPT*
  293. OCFN EQU 4104B *OC*
  294. OPFN EQU 4066B *OP*
  295. PAFN EQU 4062B *PA*
  296. PGFN EQU 4045B *PG*
  297. PLFN EQU 4044B *PL*
  298. PWFN EQU 4043B *PW*
  299. SEFN EQU 4060B *SE*
  300. TCFN EQU 4042B *TC*
  301. TOFN EQU 4074B *XL=TO*
  302. XBFN EQU 4100B *EB=XHH*
  303. XHFN EQU 4073B *DL/XL=XHH*
  304. XLFN EQU 4075B *EL=XHH*
  305. XPFN EQU 4064B *XPT*
  306. YHFN EQU 4105B *XL=YHH*
  307.  
  308. * CONTROL BYTE 0010B ATTRIBUTE NUMBERS
  309.  
  310. IOMF EQU 4201B *IOM*
  311. IEMF EQU 4202B *IEM*
  312. TCMF EQU 4203B *TCM*
  313. TFCF EQU 4204B *TFC*
  314. TTCF EQU 4205B *TTC*
  315. TTMF EQU 4206B *TTM*
  316. TLMF EQU 4207B *TLM*
  317. TMLF EQU 4210B *TML*
  318. PCFF EQU 4211B *PCF*
  319. ACAF EQU 4212B *ACA*
  320. BKAF EQU 4213B *BKA*
  321. IBSF EQU 4214B *IBS*
  322. SNDF EQU 4215B *SND*
  323. SBCF EQU 4216B *SBC*
  324. NCCF EQU 4300B *NCC*
  325. CLCF EQU 4301B *CLC*
  326. ELCF EQU 4302B *ELC*
  327. BLCF EQU 4303B *BLC*
  328. BCFN EQU 4304B *BC*
  329. EPCF EQU 4305B *EPC*
  330. ACCF EQU 4306B *AC*
  331. PL2F EQU 4307B *PL*
  332. PW2F EQU 4310B *PW*
  333. HPFN EQU 4311B *HP*
  334. HPOF EQU 4312B *HPO*
  335. FLFN EQU 4313B *FL*
  336. EOSF EQU 4314B *EOS*
  337. CRSF EQU 4315B *CRS*
  338. LFSF EQU 4316B *LFS*
  339. FFSF EQU 4317B *FFS*
  340. EPAF EQU 4320B *EPA*
  341. CRDF EQU 4321B *CRD*
  342. LFDF EQU 4322B *LFD*
  343. FFDF EQU 4323B *FFD*
  344. ELPF EQU 4324B *ELP*
  345. EPPF EQU 4325B *EPP*
  346. CFCF EQU 4326B *CFC*
  347. TMFN EQU 4327B *TM*
  348. CSFN EQU 4330B *CS*
  349. PPFN EQU 4331B *P*
  350. EEFN EQU 4332B *E*
  351. SAFN EQU 4333B *SA*
  352. RAFN EQU 4334B *RA*
  353. FKCF EQU 4337B *FKC*
  354. ****
  355. SPACE 4
  356. *CALL COMCMAC
  357. *CALL COMSEJT
  358. SPACE 4
  359. ORG 110B
  360.  
  361. * FETS.
  362.  
  363. FETS BSS 0
  364.  
  365. O BSS 0 OUTPUT FILE FET
  366. OUTPUT FILEB OBUF,OBUFL,FET=8
  367.  
  368. Z BSS 0 TERMINAL FILE FET
  369. ZZZZZG0 FILEB TMES,TMESL+1,DTY=2RTT
  370. TITLE MAIN PROGRAM.
  371. * VALIDATE JOB ORIGIN AND TERMINAL TYPE.
  372.  
  373. TRMDEF SB1 1
  374. SA1 JOPR GET JOB ORIGIN TYPE
  375. MX0 -12
  376. LX1 -24
  377. BX1 -X0*X1
  378. SX2 X1-TXOT TIME-SHARING ORIGIN CODE
  379. NZ X2,ERR2 IF NOT *TXOT* JOB ORIGIN TYPE
  380. TSTATUS TRMB GET TERMINAL STATUS
  381. SA4 TRMB+1 GET CONNECTION STATUS
  382. MX0 -6
  383. LX4 12
  384. BX6 -X0*X4
  385. SX2 X6-NICS
  386. ZR X2,ERR1 IF NOT INTERACTIVE
  387. SX2 X6-DTCS
  388. NZ X2,TRM0 IF NOT DETACHED
  389. REQUEST Z,U,N ASSIGN FILE TO TERMINAL
  390. WRITEW Z,TMES,TMESL
  391. WRITER Z,R CAUSE SUSPENSION
  392. RETURN Z,R
  393. EQ TRMDEF REISSUE REQUEST
  394.  
  395. TRM0 LX4 -24 GET TRANSMISSION CODE
  396. BX2 -X0*X4
  397. SX3 X2-TCNT NETWORK TERMINAL CODE
  398. LX4 -24
  399. NZ X3,ERR1 IF NOT A NETWORK TERMINAL
  400. MX0 -8
  401. BX6 -X0*X4
  402. SA6 A4-B1 SAVE TERMINAL CLASS
  403.  
  404. * PROCESS COMMAND ARGUMENTS.
  405.  
  406. SB2 CCDR COMMAND
  407. RJ USB UNPACK DATA BLOCK TO STRING BUFFER
  408. TRM0.1 SA1 B6+ SKIP PREFIX $, /, SPACE
  409. SX1 X1-1R9-1
  410. NG X1,TRM0.2 IF ALPHANUMERIC CHARACTER
  411. SB6 B6+1
  412. EQ TRM0.1 CHECK NEXT CHARACTER
  413.  
  414. TRM0.2 RJ POP PICK OUT PARAMETER
  415. ZR B6,ERR3 IF NO ARGUMENTS
  416. RJ PCS PROCESS COMMAND
  417. NZ X1,ERR3 IF ERROR IN ARGUMENTS
  418. SB6 B0+ INITIALIZE TABLE INDEX
  419. SX6 B0+ TERMINATE PARAMETER TABLE
  420. SA6 X5+B1
  421.  
  422. * VALIDATE EACH PARAMETER FOR CORRECT ARGUMENT TYPE.
  423.  
  424. TRM1 SA1 TTPV+B6 GET PARAMETER
  425. ZR X1,TRM9 IF END OF PARAMETERS
  426. SB7 X1+ INDEX
  427. RJ CAS CHECK IF ATTRIBUTE SUPPORTED
  428. NG X2,TRM8 IF ATTRIBUTE UNSUPPORTED
  429. RJ SAF SET ATTRIBUTE FLAGS
  430. SA1 TTPV+B6+1 GET PARAMETER VALUE
  431. MX0 42
  432. BX1 X0*X1 ISOLATE VALUE
  433. SA2 TTFN+B7 GET TABLE ENTRY
  434. SB5 X2
  435. SX6 B0 CLEAR MULTIPLE PARAMETER FLAG
  436. NE B5,B1,TRM2 IF NOT MULTIPLE PARAMETER
  437. RJ PMP PROCESS MULTIPLE PARAMETER
  438. NZ X3,TRM9 IF ERROR IN PARAMETER
  439. TRM2 SA6 PMPA SET MULTIPLE PARAMETER FLAG
  440. ZR B5,TRM6 IF EXPECTING A DECIMAL NUMBER
  441. NG B5,TRM3 IF EXPECTING A CHARACTER
  442. SB2 10B
  443. EQ B2,B5,ERR6.2 IF PARAMETER DISABLED
  444. GT B5,B2,TRM2.2 IF EQUIVALENCE VALUE
  445. SB2 B2-B1
  446. EQ B2,B5,TRM2.1 PROCESS DOUBLE OCTET
  447. SB2 B2-B1
  448. EQ B2,B5,TRM3 IF *TTC* OR *TFC*
  449. RJ VCP VARIABLE CHARACTER PROCESSOR
  450. EQ TRM8 PROCESS NEXT PARAMETER
  451.  
  452. TRM2.1 RJ PDO PROCESS DOUBLE OCTET
  453. EQ TRM8 PROCESS NEXT PARAMETER
  454.  
  455. TRM2.2 SX6 B0+ CLEAR VALUE
  456. RJ PEV PROCESS EQUIVALENCE VALUE
  457. ZR X4,ERR4 IF NO EQUIVALENCE FOUND
  458. EQ TRM7 CONTINUE PROCESSING
  459.  
  460. * PROCESS CHARACTER
  461.  
  462. TRM3 RJ PCP PROCESS CHARACTER PARAMETER
  463. NZ X4,ERR4 IF ERROR ON PARAMETER
  464. PL B5,TRM8 IF *TTC* OR *TFC*
  465.  
  466. * SET UP FIELD NUMBER/FIELD VALUE PAIR.
  467.  
  468. TRM4 SA1 PMPA
  469. SA2 TMPV+B7 GET FIELD NUMBER
  470. LX2 18
  471. NZ X1,TRM5 IF MULTIPLE PARAMETER
  472. SA2 TTFN+B7 GET FIELD NUMBER
  473. LX2 18
  474. PL X2,TRM5 IF NOT *LI* OR *CI* PARAMETER
  475. MX0 -48
  476. BX2 -X0*X2
  477. TRM5 SX4 X6+4000B FIELD VALUE
  478. AX2 36
  479. MX0 -12
  480. BX2 -X0*X2
  481. SB2 B1 INDICATE VALIDATE RANGE
  482. EQ TRM7 ENTER INTO BUFFER
  483.  
  484. * PROCESS DECIMAL NUMBER
  485.  
  486. TRM6 BX5 X1 DECIMAL NUMBER TO BE CONVERTED
  487. RJ DXB DISPLAY CODE TO BINARY CONVERSION
  488. ZR X4,TRM4 IF NO ERROR IN CONVERSION
  489. SA2 PMPA
  490. NZ X2,ERR4 IF MULTIPLE PARAMETER
  491. SA2 TTFN+B7 GET TABLE ENTRY
  492. LX2 18
  493. PL X2,ERR4 IF NOT *CI* OR *LI* PARAMETER
  494. SA1 TTPV+B6+1 GET ARGUMENT
  495. MX0 42
  496. BX1 X0*X1
  497. LX1 12
  498. SX6 X1-2RCA
  499. NZ X6,ERR4 IF NOT *CA* ARGUMENT
  500. SX4 4001B FIELD VALUE FOR *CA*
  501. MX0 12
  502. BX2 X0*X2
  503. LX2 11-59 FIELD NUMBER
  504. SB2 -B1 INDICATE DO NOT VALIDATE RANGE
  505.  
  506. * ENTER FIELD NUMBER/FIELD VALUE PAIR INTO BUFFER.
  507.  
  508. TRM7 RJ VFT VALIDATE FIELD VALUE
  509. NG X6,ERR4 IF INCORRECT FIELD VALUE
  510. RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
  511. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  512. TRM8 SB6 B6+2 INCREMENT TABLE INDEX
  513. EQ TRM1 PROCESS NEXT PARAMETER
  514.  
  515. * COMPLETE PROCESSING.
  516.  
  517. TRM9 SA1 TRMC GET ERROR COUNT
  518. NZ X1,ERR7 IF ERROR ON COMMAND
  519. ZR B6,ERR3 IF NO CHANGES ENTERED
  520. RJ CCT CHECK CONNECTION TYPE
  521. NZ X1,ERR1 IF NO NETWORK CONNECTION
  522. RJ CAF CHECK ATTRIBUTE FLAGS
  523. NZ X5,ERR6 IF ATTRIBUTE MIX ERROR
  524. NZ X7,ERR6.1 IF CONNECTION TYPE ERROR
  525. NZ X3,TRM10 IF CONTROL BYTE 0010B SEQUENCE
  526. RJ PPS PACK PARAMETER STRING - CCP
  527. EQ TRM11 IF CONTROL BYTE 0016B SEQUENCE
  528. TRM10 SA1 TRMG GET SPECIAL ERROR COUNT
  529. NZ X1,ERR7 IF *PL* OR *PW* ERROR
  530. RJ PPT PACK PARAMETER STRING - CDNA
  531. TRM11 WRITEW O,OBUF,B7 OUTPUT PARAMETER STRING
  532.  
  533. * IT IS NECESSARY TO SPECIFY RECALL ON THE FOLLOWING *WRITER*
  534. * IN ORDER TO ASSURE THAT THE DAYFILE MESSAGE FOLLOWING IT
  535. * IS SENT BACK TO THE TERMINAL. USING RECALL PREVENTS THE
  536. * DAYFILE MESSAGE FROM BEING APPENDED TO THE *0016* CONTROL
  537. * BYTE PARAMETER STRING AND THEN LOST DURING PROCESSING BY
  538. * *1TO*.
  539.  
  540. WRITER O,R
  541. MESSAGE (=C* TRMDEF COMPLETE.*),3
  542. TRM12 ENDRUN
  543.  
  544. TRMA CON 1 INDEX TO *CBUF*
  545. TRMB BSS 2 TERMINAL CLASS FOR VALIDATION
  546. TRMC CON 0 ERROR COUNT
  547. TRMD CON 1 INDEX TO *DBUF*
  548. TRMF CON 0,0,0 NETWORK ATTRIBUTE FLAGS
  549. TRMG CON 0 SPECIAL ERROR COUNT
  550.  
  551.  
  552. * ERROR MESSAGES ISSUED.
  553.  
  554. ERR1 MESSAGE (=C* INCORRECT TERMINAL TYPE FOR TRMDEF.*)
  555. EQ ERR8 END PROCESSING
  556.  
  557. ERR2 MESSAGE (=C* INCORRECT JOB ORIGIN TYPE FOR TRMDEF.*)
  558. EQ TRM12 END PROCESSING
  559.  
  560. ERR3 MESSAGE (=C* ERROR IN TRMDEF ARGUMENT.*)
  561. EQ ERR8 END PROCESSING
  562.  
  563. ERR4 SA3 PMPA
  564. ZR X3,ERR5 IF NOT MULTIPLE PARAMETER
  565. SA1 TMPV+B7 GET TABLE ENTRY
  566. MX0 6
  567. BX1 X0*X1 GET PARAMETER OPTION
  568. LX1 -12
  569. LX0 -12
  570. SA2 BEMC+BEMCL-1 CREATE MULTI-VALUE ERROR MESSAGE
  571. BX2 -X0*X2
  572. BX6 X1+X2
  573. SA1 PMPC
  574. SB5 X1
  575. SA6 A2
  576. SA2 BEMC
  577. SA1 TTFN+B5 GET TABLE ENTRY
  578. RJ BEM BUILD ERROR MESSAGE
  579. SA2 =4L- RESTORE ERROR MESSAGE
  580. BX2 X6
  581. SA6 BEMC+BEMCL-1
  582. EQ TRM8 PROCESS NEXT PARAMETER
  583.  
  584. ERR5 SA2 BEMC
  585. SA1 TTFN+B7
  586. RJ BEM BUILD ERROR MESSAGE
  587. EQ TRM8 PROCESS NEXT PARAMETER
  588.  
  589. ERR6 MESSAGE MSG1
  590. EQ ERR7 END PROCESSING
  591.  
  592. ERR6.1 MESSAGE MSG2
  593. EQ ERR7 END PROCESSING
  594.  
  595. ERR6.2 MESSAGE MSG3
  596. ERR7 WRITEW O,OBUF,X1
  597. WRITER O,R
  598. MESSAGE (=C* TRMDEF ERRORS.*)
  599. ERR8 ABORT
  600.  
  601. MSG1 DATA C* ATTRIBUTE COMMANDS MUST BE OF ONE NETWORK TYPE.*
  602. MSG2 DATA C* NETWORK TYPE DOES NOT SUPPORT ATTRIBUTE COMMAND.*
  603. MSG3 DATA C* LITERAL STRING IS NOT ALLOWED FOR THIS PARAMETER.*
  604. TITLE SUBROUTINES.
  605. BEM SPACE 4,15
  606. ** BEM - BUILD ERROR MESSAGE.
  607. *
  608. * ENTRY (X1) = ATTRIBUTE MNEMONIC.
  609. * (A2) = ADDRESS OF ERROR MESSAGE TEXT.
  610. *
  611. * EXIT (TRMC) UPDATED.
  612. *
  613. * USES X - 1, 2, 3, 6, 7.
  614. * A - 2, 3, 6, 7.
  615. * B - 5.
  616.  
  617.  
  618. BEM SUBR ENTRY/EXIT
  619. SB5 BEMAL LENGTH OF ERROR MESSAGE
  620. ERRNZ BEMAL-BEMCL MESSAGE NOT SAME LENGTH
  621. MX6 18
  622. BX1 X6*X1 GET ATTRIBUTE
  623. SA3 TRMC GET BUFFER INDEX
  624. BX6 X2 FORM ERROR MESSAGE
  625. SX7 X3+B5 UPDATE BUFFER INDEX
  626. SA6 X3+OBUF ENTER INTO OUTPUT BUFFER
  627. SB5 B5-B1
  628. SA7 A3 RESET INDEX
  629. BEM3 SA2 A2+B1 GET NEXT WORD OF ERROR MESSAGE
  630. SB5 B5-B1
  631. BX6 X2
  632. SA6 A6+B1 ENTER INTO OUTPUT BUFFER
  633. NE B5,B1,BEM3 IF NOT LAST WORD OF ERROR MESSAGE
  634. SA2 A2+B1 PLACE ATTRIBUTE MNEMONIC IN MESSAGE
  635. LX1 36
  636. BX6 X1+X2
  637. SA6 A6+B1
  638. EQ BEMX RETURN BUILT ERROR MESSAGE
  639.  
  640.  
  641. BEMA DATA 10LUNSUPPORTE
  642. DATA 10LD ATTRIBUT
  643. DATA 4LE -
  644. BEMAL EQU *-BEMA
  645.  
  646. BEMC DATA 10LINCORRECT
  647. DATA 10LVALUE FOR
  648. DATA 4L-
  649. BEMCL EQU *-BEMC
  650. CAF SPACE 4,15
  651. ** CAF - CHECK ATTRIBUTE FLAGS.
  652. *
  653. * ENTRY (X2) = CONNECTION STATUS.
  654. *
  655. * EXIT IF (X3) = 0 THEN BUILD CONTROL BYTE 0016B.
  656. * = 1 THEN BUILD CONTROL BYTE 0010B.
  657. * IF (X5) = 0 THEN NO ERROR.
  658. * = 1 THEN ATTRIBUTE MIX ERROR.
  659. * IF (X7) = 0 THEN NO ERROR.
  660. * = 1 THEN CONNECTION TYPE ERROR.
  661. *
  662. * USES X - 3, 4, 5, 7.
  663. * A - 4.
  664. *
  665. * DEFINE (TRMF) = CCP FLAG.
  666. * (TRMF+1) = CDNA FLAG.
  667. * (TRMF+2) = COMMON FLAG.
  668.  
  669.  
  670. CAF SUBR ENTRY/EXIT
  671. BX3 X3-X3 INITIALIZE FLAGS
  672. BX5 X5-X5
  673. BX7 X7-X7
  674. SA4 TRMF
  675. NZ X4,CAF5 IF CCP ATTRIBUTE ON LIST
  676. SA4 TRMF+1
  677. NZ X4,CAF3 IF CDNA ATTRIBUTE ON LIST
  678. SA4 TRMF+2
  679. NZ X4,CAF1 IF COMMON ATTRIBUTE ON LIST
  680. SX5 B1 SET ATTRIBUTE MIX ERROR FLAG
  681. EQ CAFX RETURN (F,F,F)
  682.  
  683. CAF1 NZ X2,CAF2 IF NAM/CDNA CONNECTION
  684. EQ CAFX RETURN (F,F,T - CCP)
  685.  
  686. CAF2 SX3 B1+
  687. EQ CAFX RETURN (F,F,T - CDNA)
  688.  
  689. CAF3 NZ X2,CAF4 IF NAM/CDNA CONNECTION
  690. SX7 B1+ SET CONNECTION TYPE ERROR FLAG
  691. EQ CAFX RETURN (F,T,TF - CCP)
  692.  
  693. CAF4 SX3 B1+
  694. EQ CAFX RETURN (F,T,TF - CDNA)
  695.  
  696. CAF5 SA4 TRMF+1
  697. NZ X4,CAF6 IF CDNA ATTRIBUTE ON LIST
  698. EQ CAFX RETURN (T,F,TF - XOR)
  699.  
  700. CAF6 SX5 B1+ SET ATTRIBUTE MIX ERROR FLAG
  701. EQ CAFX RETURN (T,T,TF - XOR)
  702. CAS SPACE 4,15
  703. ** CAS - CHECK IF ATTRIBUTE IS SUPPORTED.
  704. *
  705. * ENTRY (B7) = INDEX TO *TFLD* TABLE.
  706. *
  707. * EXIT (X2) = .GE. 0 ATTRIBUTE SUPPORTED.
  708. * .LT. 0 ATTRIBUTE UNSUPPORTED.
  709. *
  710. * USES X - 1, 2.
  711. * A - 1, 2.
  712.  
  713.  
  714. CAS SUBR ENTRY/EXIT
  715. SA2 TFVR+B7 ATTRIBUTE SUPPORT CHECK
  716. LX2 59-36 ISOLATE FLAG BIT
  717. PL X2,CASX IF ATTRIBUTE SUPPORTED
  718. SA2 BEMA *UNSUPPORTED ATTRIBUTE*
  719. SA1 TTFN+B7
  720. RJ BEM BUILD ERROR MESSAGE
  721. SX2 -1 SET UNSUPPORTED EXIT CONDITION
  722. EQ CASX COMPLETE PROCESSING
  723. CCT SPACE 4,15
  724. ** CCT - CHECK CONNECTION TYPE.
  725. *
  726. * ENTRY NONE.
  727. *
  728. * EXIT IF (X1) = 0 THEN NO ERROR.
  729. * IF (X2) = 0 THEN NAM/CCP CONNECTION.
  730. * = 1 THEN NAM/CDNA CONNECTION.
  731. *
  732. * USES X - 0, 1, 2, 4.
  733. * A - 1, 4.
  734.  
  735.  
  736. CCT SUBR ENTRY/EXIT
  737. BX1 X1-X1 CLEAR ERROR FLAG
  738. SA4 TRMB+1 GET CONNECTION TYPE
  739. MX0 -3
  740. LX4 6
  741. BX4 -X0*X4
  742. ZR X4,CCT1 IF NO NAM CONNECTION
  743. SX4 X4-1
  744. ZR X4,CCT2 IF NAM/CCP CONNECTION
  745. SX4 X4-1
  746. ZR X4,CCT3 IF NAM/CDNA CONNECTION
  747.  
  748. CCT1 SX1 B1+ SET ERROR FLAG
  749. EQ CCTX RETURN
  750.  
  751. CCT2 BX2 X2-X2 NAM/CCP CONNECTION
  752. EQ CCTX RETURN
  753.  
  754. CCT3 SX2 B1+ NAM/CDNA CONNECTION
  755. EQ CCTX RETURN
  756. EFP SPACE 4,15
  757. ** EFP - ENTER FIELD NUMBER/FIELD VALUE PAIR INTO BUFFER.
  758. *
  759. * *EFP* CREATES THE PARAMETER STRING FOR CONTROL BYTE 0016B
  760. * DATA STREAM PROCESSING.
  761. *
  762. * ENTRY (X2) = FIELD NUMBER.
  763. * (X4) = FIELD VALUE.
  764. * (TRMA) = INDEX TO BUFFER.
  765. * (CBUF) = BUFFER OF FIELD NUMBER/FIELD VALUE PAIRS.
  766. *
  767. * EXIT (TRMA) UPDATED.
  768. *
  769. * USES X - 5, 6, 7.
  770. * A - 5, 6, 7.
  771. *
  772. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  773. * (B7) = INDEX INTO TABLES.
  774.  
  775.  
  776. EFP SUBR ENTRY/EXIT
  777. SA5 TRMA BUFFER INDEX
  778. BX6 X2
  779. BX7 X4
  780. SA6 X5+CBUF ENTER FIELD NUMBER INTO BUFFER
  781. SX6 X5+2 INCREMENT INDEX
  782. SA7 A6+B1 ENTER FIELD VALUE INTO BUFFER
  783. SA6 A5 RESET BUFFER INDEX
  784. EQ EFPX RETURN
  785. EFQ SPACE 4,15
  786. ** EFQ - ENTER ATTRIBUTE NUMBER/ATTRIBUTE VALUE PAIR.
  787. *
  788. * *EFQ* CREATES THE PARAMETER STRING FOR CONTROL BYTE 0010B
  789. * DATA STREAM PROCESSING.
  790. *
  791. * ENTRY (X2) = ATTRIBUTE NUMBER.
  792. * (X4) = ATTRIBUTE VALUE.
  793. * (TRMD) = INDEX TO BUFFER.
  794. * (DBUF) = BUFFER OF ATTRIBUTE NUMBER/ATTRIBUTE VALUE
  795. * PAIRS.
  796. *
  797. * EXIT (TRMD) UPDATED.
  798. *
  799. * USES X - 5, 6, 7.
  800. * A - 5, 6, 7.
  801. *
  802. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  803. * (B7) = INDEX INTO TABLES.
  804.  
  805.  
  806. EFQ SUBR ENTRY/EXIT
  807. SA5 TRMD BUFFER INDEX
  808. BX6 X2
  809. RJ SPC SPECIAL PAGE CHECKS FOR CDNA
  810. SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
  811. SX6 X5+3 INCREMENT INDEX
  812. SX7 4001B ENTER DEFAULT OCTET COUNT
  813. SA7 A6+B1 ENTER COUNT INTO BUFFER
  814. BX7 X4
  815. SA7 A6+2 ENTER FIELD VALUE INTO BUFFER
  816. SA6 A5 RESET BUFFER INDEX
  817. EQ EFQX RETURN
  818. HCP SPACE 4,15
  819. ** HCP - HEXADECIMAL CHARACTER PROCESSOR.
  820. *
  821. * ENTRY (X1) = PARAMETER FROM COMMAND.
  822. * (X2) = FIELD NUMBER.
  823. * (A1) = PARAMETER FWA.
  824. * (B2) = PARAMETER WORD COUNT.
  825. * (B5) = RANGE IDENTIFIER (SEE VCP).
  826. *
  827. * EXIT CONTROL BYTE 0010 UPDATED.
  828. *
  829. * USES X - ALL.
  830. * A - 1, 3, 5, 6, 7.
  831. * B - 2, 3, 4, 6.
  832. *
  833. * CALLS EFQ, HXB.
  834.  
  835.  
  836. HCP SUBR ENTRY/EXIT
  837. MX0 6 DELETE HEX FLAG
  838. BX6 -X0*X1
  839. LX6 6
  840. SA6 A1
  841. EQ B2,B1,HCP2 IF VALUE IS FIVE (HEX) CHARACTERS OR LESS
  842. SA3 A1 ENSURE CHARACTERS NOT SPLIT ACROSS WORDS
  843. SB3 B2-B1
  844. HCP1 SB3 B3-B1
  845. SA5 A3
  846. SA3 A3+B1
  847. BX4 X0*X3
  848. LX4 6
  849. BX6 X5+X4 ADD LOWER HALF OF HEX CHARACTER
  850. SA6 A5
  851. BX7 -X0*X3
  852. LX7 6
  853. SA7 A3
  854. NZ B3,HCP1 IF NOT FINISHED
  855. HCP2 SB3 3
  856. SB4 B1 WORD COUNT TO COMPARE
  857. SA5 A1 RANGE COMPARISON WORD
  858. MX0 48
  859. EQ B5,B3,HCP3 IF RANGE OF 0-4 CHARACTERS
  860. SB3 B3-B1
  861. MX0 24
  862. EQ B5,B3,HCP3 IF RANGE OF 0-2 CHARACTERS
  863. SB3 B3+B3
  864. SB4 B1+B1
  865. SA5 A1+B1
  866. EQ B5,B3,HCP3 IF RANGE OF 0-7 CHARACTERS
  867. SB3 B3+B1 IF RANGE OF 0-25 CHARACTERS
  868. SA5 A1+B3
  869. SB4 B3+B1
  870. MX0 0
  871. HCP3 GT B2,B4,ERR5 IF TOO MANY CHARACTERS
  872. BX4 -X0*X5
  873. MX0 12
  874. LT B2,B4,HCP4 IF FEWER WORDS THAN MAXIMUM
  875. NZ X4,ERR5 IF TOO MANY CHARACTERS
  876. HCP4 SA1 A1 GET WHOLE PARAMETER VALUE
  877. NZ X1,HCP5 IF AT LEAST ONE CHARACTER
  878. BX6 X2 ENTER ATTRIBUTE NUMBER ONLY
  879. SA5 TRMD GET BUFFER INDEX
  880. SX7 4000B
  881. SA6 X5+DBUF
  882. SX6 X5+2
  883. SA7 A6+B1
  884. SA6 A5
  885. EQ HCPX RETURN
  886.  
  887. HCP5 BX7 X2 PRESERVE X2
  888. BX5 X0*X1
  889. RJ HXB
  890. NZ X4,ERR4 IF ERROR ON PARAMETER
  891. BX2 X7
  892. SA0 B1 SET OCTET COUNTER
  893. SX4 X6+4000B
  894. RJ EFQ
  895. BX1 -X0*X1 CLEAR CHARACTER
  896. LX1 12
  897. ZR X1,HCP7 IF NO MORE CHARACTERS REMAIN
  898. HCP6 BX5 X0*X1
  899. RJ HXB
  900. NZ X4,ERR4 IF ERROR ON PARAMETER
  901. SX7 X6+4000B
  902. SA0 A0+B1 INCREMENT OCTET COUNTER
  903. SA5 TRMD GET BUFFER INDEX
  904. SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
  905. SX7 X5+B1 INCREMENT INDEX
  906. SA7 A5
  907. BX1 -X0*X1
  908. LX1 12
  909. NZ X1,HCP6 IF MORE CHARACTERS REMAIN
  910. HCP7 SB2 B2-B1
  911. ZR B2,HCP8 IF PROCESSING COMPLETE
  912. SB6 B6+B1
  913. SA1 TTPV+B6+1
  914. NZ X1,HCP6 IF NOT THROUGH WITH PARAMETER
  915. HCP8 SA5 TRMD GET OCTET COUNT BYTE
  916. SX6 A0+B1
  917. IX5 X5-X6
  918. SX7 A0+4000B
  919. SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
  920. EQ HCPX RETURN
  921. PCP SPACE 4,15
  922. ** PCP - PROCESS CHARACTER PARAMETER VALUE.
  923. *
  924. * ENTRY (X1) = PARAMETER FROM COMMAND.
  925. * (B7) = INDEX INTO TABLES.
  926. * (B5) = *TTC*/*TFC* FLAG.
  927. *
  928. * EXIT (X4) .NE. 0 IF ERROR IN PARAMETER.
  929. * (X6) = CONVERTED CHARACTER.
  930. * (B7) RESTORED.
  931. * (B5) RESTORED.
  932. *
  933. * USES X - 0, 1, 2, 4, 5, 6, 7.
  934. * A - 0, 1, 2, 5, 6, 7.
  935. * B - 4, 5, 6, 7.
  936. *
  937. * CALLS DXB, HXB.
  938. *
  939. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  940.  
  941.  
  942. PCP5 SX6 A0
  943. IX5 X5-X6
  944. SX7 X6+4000B
  945. SA7 X5+DBUF
  946.  
  947. PCP SUBR ENTRY/EXIT
  948. SX7 B5+
  949. SA7 PCPB
  950. NG B5,PCP0 IF NOT *TTC* OR *TFC*
  951. ZR X1,ERR5 IF NOTHING ENTERED
  952. SA2 TTFN+B7
  953. MX0 -12
  954. AX2 18
  955. BX6 -X0*X2 FIELD NUMBER ISOLATED
  956. SA5 TRMD
  957. SA0 B0 INITIALIZE OCTET COUNTER
  958. SA6 X5+DBUF
  959. SX7 4000B
  960. SA7 A6+B1
  961. SX6 X5+2
  962. SA6 A5
  963. PCP0 MX0 -54
  964. BX4 -X0*X1
  965. SA2 PMPA
  966. NZ X2,PCP1 IF MULTIPLE PARAMETER
  967. ZR X4,PCP3 IF SINGLE CHARACTER ENTERED
  968. BX2 X0*X1
  969. LX2 6
  970. SX4 X2-1RX
  971. ZR X4,PCP2 IF *XHH* ARGUMENT
  972. BX5 X1
  973. SX7 B7
  974. SA7 PCPA SAVE TABLE INDEX
  975. SB7 0 ASSUME OCTAL BASE FOR CONVERSION
  976. RJ DXB DISPLAY CODE TO BINARY CONVERSION
  977. SA2 PCPA RESTORE TABLE INDEX
  978. SB7 X2+
  979. EQ PCP4 CHECK FOR *TTC* OR *TFC*
  980.  
  981. PCP1 BX2 X0*X1
  982. BX5 -X0*X1
  983. SX4 B1 RETURN AN ERROR
  984. LX2 6
  985. ZR X5,PCPX IF NO CHARACTER WAS SPECIFIED
  986. SX4 X2-1RX
  987. ZR X4,PCP2 IF *XHH* ARGUMENT
  988. SX4 X2-1RY
  989. ZR X4,PCP2 IF *YHH* ARGUMENT
  990. EQ PCPX RETURN
  991.  
  992. PCP2 MX0 -42
  993. BX4 -X0*X1
  994. NZ X4,PCPX IF TOO MANY CHARACTERS ENTERED
  995. MX0 -54
  996. BX5 -X0*X1
  997. LX5 6
  998. RJ HXB HEX DISPLAY CODE TO BINARY CONVERSION
  999. EQ PCP4 CHECK FOR *TTC* OR *TFC*
  1000.  
  1001. PCP3 LX1 6
  1002. SA2 X1+TVXD GET OCTAL EQUIVALENT
  1003. LX2 0-18
  1004. MX0 -12
  1005. BX6 -X0*X2 FIELD VALUE
  1006. PCP4 SA2 PCPB *TTC*/*TFC* FLAG
  1007. SB5 X2
  1008. SA0 A0+B1
  1009. NG B5,PCPX IF NOT *TTC* OR *TFC*
  1010. SB4 A0-4
  1011. GT B4,ERR5 IF TOO MANY CHARACTERS
  1012. SA5 TRMD
  1013. SX6 X6+4000B
  1014. SA6 X5+DBUF
  1015. SX7 X5+B1
  1016. SA7 A5
  1017. SA2 TTPV+B6
  1018. SA1 A2+2
  1019. BX2 X2-X1
  1020. NZ X2,PCP5 IF NEXT ENTRY NOT *TTC* OR *TFC*
  1021. SA1 A1+B1 GET PARAMETER VALUE
  1022. SB6 B6+2
  1023. EQ PCP0 CHECK NEXT ENTRY
  1024.  
  1025. PCPA BSS 1 TEMPORARY STORAGE FOR TABLE INDEX
  1026. PCPB BSS 1 *TTC*/*TFC* FLAG
  1027. PCS SPACE 4,20
  1028. ** PCS - PROCESS COMMAND ARGUMENTS.
  1029. *
  1030. * ENTRY (B6) = ADDRESS OF STRING BUFFER.
  1031. * = 0 IF NO MORE PARAMETERS.
  1032. * SET BY *POP*.
  1033. *
  1034. * EXIT *TTPV* TABLE BUILT.
  1035. * OUTPUT FILE NAME SET.
  1036. * (X1) .NE. 0 IF ERROR.
  1037. * (X5) = ADDRESS OF LAST ENTERED PARAMETER IF NO ERROR.
  1038. *
  1039. * USES X - 1, 2, 3, 4, 5, 6, 7.
  1040. * A - 2, 3, 4, 6, 7.
  1041. * B - 3.
  1042. *
  1043. * CALLS POP.
  1044.  
  1045.  
  1046. PCS SUBR ENTRY/EXIT
  1047. SX1 B0+ CLEAR ERROR
  1048. SX5 TTPV-1 INITIALIZE TABLE ADDRESS
  1049. PCS1 ZR B6,PCSX IF NO MORE ARGUMENTS
  1050. RJ POP PICK OUT NEXT PARAMETER
  1051. MX1 18
  1052. NG B5,PCSX IF ERROR
  1053. BX2 X2-X2
  1054.  
  1055. * SEARCH FOR MATCH IN ARGUMENT TABLE.
  1056.  
  1057. ZR X6,PCSX IF BLANK ARGUMENT
  1058. SA3 TFLD GET FIRST OPTION
  1059. ZR B6,PCS2 IF TERMINATOR ENCOUNTERED
  1060. SA2 B6-B1 SEPARATOR
  1061. PCS2 BX7 X1*X3
  1062. ZR X3,PCSX IF END OF TABLE
  1063. BX4 X7-X6
  1064. SX7 A3
  1065. SA3 A3+TFLG GET NEXT OPTION
  1066. NZ X4,PCS2 IF NO MATCH
  1067. SX5 X5+B1
  1068. SA7 X5 SAVE TABLE ENTRY ADDRESS
  1069.  
  1070. * PROCESS EQUIVALENCED VALUE.
  1071.  
  1072. SX7 X2-1R=
  1073. NZ X7,PCSX IF ARGUMENT NOT EQUIVALENCED
  1074. BX4 X6 SAVE ATTRIBUTE
  1075. PCS3 RJ POP PICK OUT VALUE
  1076. SX1 B1+
  1077. NG B5,PCSX IF ERROR
  1078. RJ ZCA ZERO CHARACTER ATTRIBUTE CHECKER
  1079. SX5 B2 RESTORE *TTPV* POINTER
  1080. ZR X3,PCS3.1 IF BLANK ARGUMENT CHECK SKIPPED
  1081. SA2 POPA
  1082. ZR X2,PCSX IF BLANK ARGUMENT
  1083. PCS3.1 BX1 X1-X1 CLEAR ERROR
  1084.  
  1085. * ENTER ARGUMENT.
  1086.  
  1087. SA2 X5
  1088. SX7 X2-TFLD
  1089. NZ X7,PCS4 IF NOT *L* PARAMETER
  1090. SX5 X5-1 NO ENTRY FOR *L*
  1091. SX2 3
  1092. BX6 X6+X2
  1093. SA6 O SET OUTPUT FILE NAME
  1094. EQ PCS1 PROCESS NEXT PARAMETER
  1095.  
  1096. PCS4 SB5 B5+B1 GET PARAMETER WORD LENGTH
  1097. SX7 B5+ INSERT IN *TTPV* ENTRY
  1098. LX7 59-5
  1099. BX7 X7+X2 ADD TABLE ADDRESS
  1100. SA7 A2
  1101. SB2 B0+
  1102. PCS5 SA4 POPA+B2 SAVE PARAMETER VALUE
  1103. SX5 X5+B1
  1104. BX7 X4
  1105. SA7 X5
  1106. SB2 B2+1
  1107. SB5 B5-B1
  1108. NZ B5,PCS5 IF NOT THROUGH WITH PARAMETER
  1109. ZR B6,PCS1 IF TERMINATOR ENCOUNTERED
  1110. SA4 B6-B1 SEPARATOR
  1111. SX7 X4-1R/
  1112. NZ X7,PCS1 IF NOT A MULTI VALUE PARAMETER
  1113. SX5 A2+2 SAVE TABLE ENTRY ADDRESS
  1114. BX7 X2
  1115. SA7 X5
  1116. EQ PCS3 PROCESS MULTI VALUE
  1117. PDO SPACE 4,15
  1118. ** PDO - PROCESS DOUBLE OCTETS.
  1119. *
  1120. * *PDO* ADDS A PAIR OF OCTETS TO CONTROL BYTE 0010B IF
  1121. * THE ATTRIBUTE VALUE IS LARGER THAN WHAT CAN BE CONTAINED
  1122. * IN EIGHT BITS. THIS ROUTINE IS APPLICABLE FOR THE
  1123. * FOLLOWING ATTRIBUTE NAMES: CRD, FFD, IBS, LFD, TML.
  1124. *
  1125. * ENTRY (X1) = PARAMETER FROM COMMAND.
  1126. * (B7) = INDEX INTO TABLE.
  1127. *
  1128. * EXIT CONTROL BYTE 0010B UPDATED.
  1129. *
  1130. * USES X - 0, 2, 3, 4, 5, 6, 7.
  1131. * A - 2, 3, 6, 7.
  1132. *
  1133. * CALLS DXB, EFQ, VFT.
  1134.  
  1135. PDO SUBR ENTRY/EXIT
  1136. BX5 X1 GET FIELD VALUE
  1137. RJ DXB DISPLAY CODE TO BINARY
  1138. SA2 TTFN+B7 GET FIELD NUMBER
  1139. NZ X4,ERR3 IF ERROR IN TRANSLATION
  1140. MX0 -12
  1141. AX2 18
  1142. BX2 -X0*X2 FIELD NUMBER ISOLATED
  1143. RJ VFT VALIDATE FIELD VALUE
  1144. NG X6,ERR4 IF INCORRECT FIELD VALUE
  1145. MX0 -8
  1146. BX4 -X0*X6 ISOLATE SECOND OCTET
  1147. SX4 X4+4000B
  1148. AX6 8
  1149. BX3 -X0*X6 ISOLATE FIRST OCTET
  1150. NZ X3,PDO1 IF TWO OCTETS REQUIRED FOR VALUE
  1151. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  1152. EQ PDOX RETURN
  1153.  
  1154. PDO1 SA5 TRMD GET BUFFER INDEX
  1155. BX6 X2 GET FIELD NUMBER
  1156. SX7 4002B
  1157. SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
  1158. SX6 X5+4 INCREMENT INDEX
  1159. SA7 A6+B1 ENTER OCTER COUNTER INTO BUFFER
  1160. SX7 X3+4000B GET FIRST OCTET
  1161. SA7 A6+2 ENTER FIRST OCTET INTO BUFFER
  1162. SX7 X4 GET SECOND OCTET
  1163. SA7 A6+3 ENTER SECOND OCTET INTO BUFFER
  1164. SA6 A5 RESET BUFFER INDEX
  1165. EQ PDOX RETURN
  1166. PEV SPACE 4,15
  1167. ** PEV - PROCESS EQUIVALENCED VALUE ARGUMENT TYPE.
  1168. *
  1169. * ENTRY (X1) = PARAMETER FROM COMMAND.
  1170. * (X2) = TABLE ENTRY FROM *TFLD*.
  1171. * (B5) = ADDRESS OF FIELD VALUE EQUIVALENCED CODE.
  1172. *
  1173. * EXIT (X2) = FIELD NUMBER.
  1174. * (X4) = FIELD VALUE.
  1175. * = 0 IF EQUIVALENCE VALUE NOT FOUND.
  1176. * (X6) = NORMALIZED FIELD VALUE TO BE VALIDATED.
  1177. * (B2) .GE. 0, VALIDATE FIELD VALUE RANGE.
  1178. *
  1179. * USES X - 0, 1, 2, 4, 6, 7.
  1180. * A - 1, 4.
  1181. * B - 2, 3, 4, 5, 6.
  1182. *
  1183. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  1184. * (B7) = INDEX INTO TABLES.
  1185.  
  1186.  
  1187. PEV SUBR ENTRY/EXIT
  1188. SB4 3777B SET FIELD VALUE
  1189. SA1 TTPV+B6 GET PARAMETER WORD COUNT
  1190. SX7 B5 PRESERVE TABLE INDEX
  1191. AX1 54
  1192. SB3 X1
  1193. SA1 A1+B1 GET WHOLE PARAMETER VALUE
  1194. PEV1 SA4 B5 GET EQUIVALENCE CODE
  1195. ZR X4,PEVX IF NO EQUIVALENCE FOUND
  1196. SB5 B5+B1
  1197. SB2 X4
  1198. SB4 B4+B1
  1199. MX0 24
  1200. BX0 X0*X4
  1201. NZ X0,PEV2 IF SHORT PARAMETER
  1202. LX4 0-18
  1203. SB5 B5+B2
  1204. NE B3,B2,PEV1 IF WORD COUNTS DIFFERENT
  1205. SB4 X4 SET FIELD VALUE
  1206. SA4 A4+B1 GET EQUIVALENCE CODE
  1207. PEV2 BX4 X4-X1
  1208. NZ X4,PEV1 IF NO MATCH
  1209. SB2 B2-B1
  1210. LE B2,PEV3 IF DONE COMPARING
  1211. SA4 A4+B1
  1212. SA1 A1+B1
  1213. SB6 B6+1
  1214. EQ PEV2 CHECK NEXT WORD
  1215.  
  1216. PEV3 SX7 X7-BOOL CHECK FOR TABLE *BOOL*
  1217. MX0 -1
  1218. SX4 B4
  1219. NZ X7,PEV4 IF NOT SEARCHING TABLE *BOOL*
  1220. BX4 -X0*X4 NORMALIZE BOOLEAN VALUE
  1221. SB4 X4+4000B
  1222. SX4 B4
  1223. PEV4 SB4 B4-4000B GET VALUE TO VALIDATE
  1224. SX6 B4
  1225. MX0 -12
  1226. LX2 -18
  1227. BX2 -X0*X2 FIELD NUMBER
  1228. SB2 B1 VALIDATE RANGE
  1229. EQ PEVX RETURN
  1230. PMP SPACE 4,20
  1231. ** PMP - PROCESS MULTIPLE VALUE PARAMETER.
  1232. *
  1233. * ENTRY (X1) = PARAMETER FROM COMMAND.
  1234. * (X2) = *TFLD* TABLE ENTRY.
  1235. * (X6) = 0.
  1236. * (B7) = INDEX TO *TFLD* TABLE.
  1237. *
  1238. * EXIT (X1) = PARAMETER FROM COMMAND.
  1239. * (X2) = *TMPV* TABLE ENTRY.
  1240. * (X3) = 0, IF NO ERROR IN PARAMETER FORMAT.
  1241. * (X6) = 1, INDICATES A MULTIPLE VALUE PARAMETER.
  1242. * (B5) = EQUIVALENCE TABLE ADDRESS.
  1243. * (B7) = INDEX INTO *TMPV* TABLE.
  1244. *
  1245. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  1246. * A - 2, 3, 6, 7.
  1247. * B - 3, 5, 7.
  1248.  
  1249.  
  1250. PMP SUBR ENTRY/EXIT
  1251. SA3 PMPC GET PREVIOUS INDEX
  1252. SB5 X3
  1253. EQ B5,B7,PMP1 IF SAME PARAMETER
  1254. SX7 B7 SAVE NEW INDEX
  1255. SA7 PMPC
  1256. PMP1 MX0 -12 GET INDEX TO *TMPV* TABLE
  1257. AX2 18
  1258. BX2 -X0*X2
  1259. SB3 X2
  1260. BX3 X1 GET FIRST CHARACTER OF PARAMETER VALUE
  1261. MX0 6
  1262. BX3 X0*X3
  1263. PMP2 SA2 TMPV+B3 FIND MATCH IN TABLE
  1264. BX4 X0*X2
  1265. BX5 X4-X3
  1266. ZR X5,PMP3 IF MATCH
  1267. ZR X4,PMP3 IF POSSIBLE MATCH
  1268. LX2 24
  1269. NG X2,PMP5 IF END OF TABLE
  1270. SB3 B3+B1 INCREMENT INDEX
  1271. EQ PMP2 CHECK NEXT ENTRY FOR MATCH
  1272.  
  1273. PMP3 LX4 6
  1274. SX5 X4-1RC
  1275. NZ X5,PMP4 IF NOT C FORMAT
  1276. MX3 54 STRIP OFF LEADING C
  1277. LX1 6
  1278. BX1 X3*X1
  1279. PMP4 SB7 B3 RETURN INDEX TO *TMPV* TABLE
  1280. SX6 B1 SET MULTI-PARAMETER FLAG
  1281. MX3 -18 GET TABLE ADDRESS
  1282. BX3 -X3*X2
  1283. SB5 X3 RETURN EQUIVALENCE TABLE ADDRESS
  1284. SX3 B0 CLEAR ERROR FLAG
  1285. EQ PMPX RETURN
  1286.  
  1287. PMP5 SA3 TRMC INCREMENT ERROR COUNT
  1288. SX3 X3+B1
  1289. BX6 X3
  1290. SA6 A3
  1291. EQ PMPX RETURN ERROR
  1292.  
  1293.  
  1294. PMPA CON 0 SET IF CURRENT PARAMETER HAS MULTI-VALUES
  1295. PMPC CON 0 *TTFN* TABLE INDEX
  1296. POP SPACE 4,15
  1297. *** POP - PICK OUT TRMDEF PARAMETER FROM STRING BUFFER.
  1298. *
  1299. * A LITERAL PARAMETER IS DELIMITED BY *$*. IF THE
  1300. * LITERAL IS TO CONTAIN A *$*, *$$* MUST BE USED.
  1301. * EG. - $A B/C$$E$ YIELDS A B/C$E
  1302. *
  1303. * THE ASTERISK (*) AND UNDERLINE (_) ARE CONSIDERED TO BE
  1304. * VALID PARAMETER CHARACTERS, NOT SEPARATORS.
  1305. *
  1306. * *POPL* DEFINES THE MAXIMUM PARAMETER LENGTH IN WORDS.
  1307. *
  1308. * NOTE - THIS ROUTINE IS A MODIFIED VERSION OF *COMCPOP*.
  1309. *
  1310. * ENTRY (B6) = ADDRESS TO BEGIN ASSEMBLY.
  1311. * (USBC) = ADDRESS OF LAST CHARACTER IN STRING BUFFER.
  1312. *
  1313. * EXIT (X6) = LAST PART OF ASSEMBLED PARAMETER OR PARAMETER
  1314. * IF .LT. 10 CHARACTERS.
  1315. * (B5) = PARAMETER LENGTH (IN WORDS) - 1.
  1316. * = NEGATIVE IF BUFFER EXHAUSTED OR ERROR.
  1317. * (B6) = 0 IF *.* OR *)* ENCOUNTERED.
  1318. * = POSITIVE, NEXT STRING BUFFER ADDRESS.
  1319. * (A1) = ADDRESS OF SEPARATOR.
  1320. * (X1) = SEPARATOR.
  1321. * (X2) = NEGATIVE IF *.* OR *)* ENCOUNTERED
  1322. * AND NO ERRORS.
  1323. * = 0 IF CHARACTER ENCOUNTERED WITH
  1324. * DISPLAY CODE GREATER THAN 57B (.).
  1325. *
  1326. *
  1327. * USES A - 1, 6, 7.
  1328. * X - 1, 2, 3, 6, 7.
  1329. * B - 1, 2, 3, 4, 5, 6, 7.
  1330.  
  1331.  
  1332. POP13 SB5 -1 SET ERROR FLAG
  1333. EQ POPX RETURN
  1334.  
  1335. POP14 SX3 4100B CHECK FOR VALID TERMINATOR
  1336. BX7 X7-X7
  1337. AX2 X3,B2
  1338. SA6 POPA+B5 STORE PARAMETER WORD
  1339. SB2 B4-60 CHECK FOR EMPTY ASSEMBLE REGISTER
  1340. EQ B2,B0,POP15 IF EMPTY ASSEMBLY REGISTER
  1341. SB2 B5-POPL CHECK PARAMETER SIZE
  1342. PL B2,POP13 IF PARAMETER TOO LONG
  1343. SA7 A6+1
  1344. POP15 LX2 59 CHECK TERMINATOR
  1345. PL X2,POP16 IF NOT *.* OR *)*
  1346. SB6 B0 SET TERMINATOR ENCOUNTERED
  1347. POP16 SB4 B4-60
  1348. NE B4,B0,POPX IF NOT EMPTY ASSEMBLY REGISTER
  1349. EQ B5,B0,POPX IF .LT. 11D CHARACTERS
  1350. SB5 B5-1
  1351.  
  1352. POP SUBR ENTRY/EXIT
  1353. SB5 -1 SET PARAMETER LENGTH INDEX
  1354. LE B6,POPX IF NO ASSEMBLY POINTER
  1355. SA1 USBC GET LAST CHARACTER LOCATION
  1356. SB7 X1+1
  1357. POP1 SB4 60 POSITION INDEX
  1358. BX6 X6-X6 CLEAR ASSEMBLY REGISTER
  1359. SB5 B5+B1
  1360. POP2 SA1 B6
  1361. LT B6,B7,POP3 IF MORE CHARACTERS IN STRING BUFFER
  1362. SB3 POPL
  1363. GT B5,B3,POP13 IF BUFFER FULL
  1364. SA6 POPA+B5
  1365. EQ POP13 SET ERROR FLAG - NO TERMINATOR
  1366.  
  1367. POP3 SX2 X1-1R
  1368. NZ B4,POP4 IF ASSEMBLY REGISTER NOT FULL
  1369. SA6 POPA+B5 STORE FULL WORD
  1370. SB2 B5-POPL
  1371. NG B2,POP1 IF PARAMETER NOT TOO LONG
  1372. EQ POP13 SET ERROR FLAG - PARAMETER TOO LONG
  1373.  
  1374. POP4 SX3 X1-1R$
  1375. SB6 B6+1
  1376. SB2 X1-1R9
  1377. ZR X3,POP6 IF LITERAL PARAMETER
  1378. SX3 X1-1R*
  1379. ZR X3,POP5 IF CHARACTER = *
  1380. ZR X2,POP2 IF CHARACTER = * *
  1381. ZR X1,POP14 IF CHARACTER 00
  1382. LE B2,POP5 IF ALPHANUMERIC
  1383. SX3 X1-65B
  1384. NZ X3,POP14 IF NOT UNDERLINE
  1385. POP5 SB4 B4-6
  1386. LX7 X1,B4
  1387. BX6 X7+X6
  1388. EQ POP2 CHECK NEXT CHARACTER
  1389.  
  1390. POP6 SX7 B4-60 CHECK FOR DELIMITER AS FIRST CHARACTER
  1391. SX3 X7+B5
  1392. NZ X3,POP13 IF DELIMITER NOT FIRST CHARACTER
  1393. POP7 SA1 B6
  1394. SX3 X1-1R$
  1395. SB6 B6+B1
  1396. GT B6,B7,POP13 IF NO MORE CHARACTERS IN STRING BUFFER
  1397. NZ X3,POP11 IF NO DELIMITER
  1398. SA1 B6
  1399. SX3 X1-1R$
  1400. SB6 B6+B1
  1401. GT B6,B7,POP10 IF NO MORE CHARACTERS IN STRING BUFFER
  1402. ZR X3,POP11 IF DOUBLE DELIMITER
  1403. POP8 SX3 X1-1R*
  1404. SB2 X1-1R$
  1405. ZR X3,POP13 IF ILLEGAL SEPARATOR
  1406. ZR B2,POP13 IF ILLEGAL SEPARATOR
  1407. ZR X1,POP14 IF 00 CHARACTER
  1408. SB2 X1-1R9
  1409. SX3 X1-1R
  1410. LE B2,POP13 IF ALPHANUMERIC CHARACTER
  1411. NZ X3,POP14 IF NOT BLANK
  1412. POP9 SA1 B6
  1413. SB6 B6+B1
  1414. LE B6,B7,POP8 IF MORE CHARACTERS IN STRING BUFFER
  1415. POP10 BSS 0
  1416. EQ POP13 SET ERROR FLAG - NO TERMINATOR
  1417.  
  1418. POP11 NZ B4,POP12 IF ASSEMBLY WORD NOT FULL
  1419. SA6 POPA+B5 STORE ASSEMBLY WORD
  1420. SB2 B5-POPL
  1421. PL B2,POP13 IF PARAMETER TOO LONG
  1422. SB4 60
  1423. BX6 X6-X6
  1424. SB5 B5+B1
  1425. POP12 SB4 B4-6
  1426. LX7 X1,B4
  1427. BX6 X6+X7
  1428. EQ POP7 CHECK NEXT CHARACTER
  1429.  
  1430. POPL EQU 6 MAXIMUM PARAMETER LENGTH IN WORDS
  1431. POPA BSS POPL+1 ASSEMBLY BUFFER
  1432. PPS SPACE 4,15
  1433. ** PPS - PACK PARAMETER STRING - CONTROL BYTE 0016B.
  1434. *
  1435. * ENTRY (TRMA) = NUMBER OF ENTRIES TO PACK.
  1436. * (CBUF) = FIELD NUMBER/FIELD VALUE PAIRS.
  1437. *
  1438. * EXIT (OBUF) = PACKED CONTROL BYTE PARAMETER STRING.
  1439. * (B7) = WORD COUNT OF PACKED STRING.
  1440. *
  1441. * USES X - 1, 5, 6.
  1442. * A - 1, 5, 6.
  1443. * B - 5, 7.
  1444.  
  1445.  
  1446. PPS SUBR ENTRY/EXIT
  1447. SA5 TRMA NUMBER OF ENTRIES TO PACK
  1448. SA1 CBUF GET FIRST ENTRY TO PACK
  1449. SB7 B0+ INDEX TO *OBUF*
  1450. PPS1 BX6 X6-X6
  1451. SB5 5 PACKED ENTRIES PER WORD
  1452. PPS2 BX6 X6+X1
  1453. SB5 B5-B1
  1454. SA1 A1+B1 GET NEXT ENTRY TO PACK
  1455. LX6 12
  1456. NZ B5,PPS2 IF WORD NOT FILLED
  1457. LX6 -12
  1458. SA6 B7+OBUF ENTER INTO OUTPUT BUFFER
  1459. SB7 B7+1 INCREMENT INDEX
  1460. SX5 X5-5
  1461. PL X5,PPS1 IF NOT END OF ENTRIES TO PACK
  1462. EQ PPSX RETURN
  1463. PPT SPACE 4,15
  1464. ** PPT - PACK PARAMETER STRING - CONTROL BYTE 0010B.
  1465. *
  1466. * ENTRY (TRMD) = NUMBER OF ENTRIES TO PACK.
  1467. * (DBUF) = FIELD NUMBER/FIELD VALUE PAIRS.
  1468. *
  1469. * EXIT (OBUF) = PACKED CONTROL BYTE PARAMETER STRING.
  1470. * (B7) = WORD COUNT OF PACKED STRING.
  1471. *
  1472. * USES X - 1, 5, 6.
  1473. * A - 1, 5, 6.
  1474. * B - 5, 7.
  1475.  
  1476.  
  1477. PPT SUBR ENTRY/EXIT
  1478. SA5 TRMD NUMBER OF ENTRIES TO PACK
  1479. SA1 DBUF GET FIRST ENTRY TO PACK
  1480. SB7 B0+ INDEX TO *OBUF*
  1481. PPT1 BX6 X6-X6
  1482. SB5 5 PACKED ENTRIES PER WORD
  1483. PPT2 BX6 X6+X1
  1484. SB5 B5-B1
  1485. SA1 A1+B1 GET NEXT ENTRY TO PACK
  1486. LX6 12
  1487. NZ B5,PPT2 IF WORD NOT FILLED
  1488. LX6 -12
  1489. SA6 B7+OBUF ENTER INTO OUTPUT BUFFER
  1490. SB7 B7+1 INCREMENT INDEX
  1491. SX5 X5-5
  1492. PL X5,PPT1 IF NOT END OF ENTRIES TO PACK
  1493. EQ PPTX RETURN
  1494. PTP SPACE 4,15
  1495. ** PTP - PROCESS *TC* PARAMETER.
  1496. *
  1497. * ENTRY (X6) = VALUE ENTERED FOR *TC* PARAMETER.
  1498. * (TRMB) = CURRENT TERMINAL CLASS FOR VALIDATION.
  1499. *
  1500. * EXIT (X3) .LT. 0 IF ERROR.
  1501. * (TRMB) = NEW TERMINAL CLASS FOR VALIDATION.
  1502. *
  1503. * USES X - 1, 3, 5, 7.
  1504. * A - 1, 6.
  1505. *
  1506. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  1507. * (B7) = INDEX INTO TABLES.
  1508. * (X2) = FIELD NUMBER.
  1509. * (X4) = FIELD VALUE.
  1510.  
  1511.  
  1512. PTP SUBR ENTRY/EXIT
  1513. SX3 -1 SET ERROR FLAG
  1514. SX5 X6-1
  1515. NG X5,PTPX IF INCORRECT TERMINAL CLASS
  1516. SX5 X6-LTCN LARGEST TERMINAL CLASS NUMBER
  1517. PL X5,PTPX IF INCORRECT TERMINAL CLASS
  1518.  
  1519. * VALIDATE FOR LEGAL TERMINAL CLASS CHANGE.
  1520.  
  1521. SA1 TRMB GET CONNECTED TERMINAL CLASS
  1522. BX3 X1-X6
  1523. ZR X3,PTPX IF NO TERMINAL CLASS CHANGE
  1524. SA1 X1+TLTC GET ALLOWED CHANGE LIMITS
  1525. SX7 X1 LOWER BOUND
  1526. LX1 17-35
  1527. SX1 X1 UPPER BOUND
  1528. IX3 X6-X7
  1529. NG X3,PTPX IF INCORRECT TERMINAL CLASS CHANGE
  1530. IX3 X1-X6
  1531. NG X3,PTPX IF INCORRECT TERMINAL CLASS CHANGE
  1532. PTP1 BX3 X3-X3 CLEAR ERROR FLAG
  1533. SA6 TRMB SET NEW TERMINAL CLASS
  1534. EQ PTPX RETURN
  1535. SAF SPACE 4,20
  1536. ** SAF - SET ATTRIBUTE FLAGS.
  1537. *
  1538. * ENTRY (B7) = INDEX INTO TABLES.
  1539. *
  1540. * EXIT (TRMF) POINTERS UPDATED.
  1541. *
  1542. * USES X - 2, 7.
  1543. * A - 2, 7.
  1544.  
  1545.  
  1546. SAF SUBR ENTRY/EXIT
  1547. SX7 B1
  1548. SA2 TFVR+B7 ATTRIBUTE TYPE CHECK
  1549. LX2 59-39
  1550. NG X2,SAF1 IF COMMON ATTRIBUTE
  1551. LX2 1
  1552. NG X2,SAF2 IF NAM/CDNA ATTRIBUTE
  1553. LX2 1
  1554. NG X2,SAF3 IF NAM/CCP ATTRIBUTE
  1555.  
  1556. SAF1 SA7 TRMF+2 SET COMMON FLAG
  1557. EQ SAFX RETURN
  1558.  
  1559. SAF2 SA7 TRMF+1 SET CDNA FLAG
  1560. EQ SAFX RETURN
  1561.  
  1562. SAF3 SA7 TRMF SET CCP FLAG
  1563. EQ SAFX RETURN
  1564. SEP SPACE 4,20
  1565. ** SEP - SEND EXTRA FN/FV PAIR.
  1566. *
  1567. * ENTRY (X2) = CURRENT FIELD NUMBER.
  1568. * (X4) = CURRENT FIELD VALUE.
  1569. * (X6) = FIELD VALUE TO BE VALIDATED.
  1570. * (A2) = *TMPV* TABLE ENTRY.
  1571. * (B5) = 0.
  1572. * (B7) = INDEX INTO TABLES.
  1573. *
  1574. * EXIT (X2) = CURRENT FIELD NUMBER.
  1575. * (X4) = CURRENT FIELD VALUE.
  1576. * (X6) = FIELD VALUE TO BE VALIDATED.
  1577. * (B5) .LT. 0, IF *C* VALUE TOO LARGE.
  1578. * .GE. 0, IF *C* VALUE LESS THAN 4096.
  1579. * (B7) = INDEX INTO TABLES.
  1580. *
  1581. * EXIT TO VFT3.
  1582. *
  1583. * USES X - 0, 1, 2, 3, 4, 5, 6.
  1584. * A - 1, 2.
  1585. * B - 3, 4, 5.
  1586. *
  1587. * CALLS EFP.
  1588.  
  1589.  
  1590. * SEND *DL*/*XL* FLAG.
  1591.  
  1592. SEP SX3 B0 FIELD VALUE
  1593. EQ SEP2 CONTINUE
  1594.  
  1595. SEP1 SX3 B1 FIELD VALUE
  1596. SEP2 SB3 X4 SAVE CURRENT FIELD VALUE
  1597. SB4 X2 SAVE CURRENT FIELD NUMBER
  1598. SX4 X3+4000B SET UP DL/XL FLAG
  1599. SX2 MXFN FIELD NUMBER
  1600. SX3 X6 SAVE VALUE TO VERIFY
  1601. RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
  1602. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  1603. SX4 B3 RESTORE CURRENT FIELD VALUE
  1604. SX2 B4 RESTORE CURRENT FIELD NUMBER
  1605. SX6 X3 RESTORE VALUE TO VALIDATE
  1606. SA1 TMPV+B7 CHECK FIELD VALUE FORMAT
  1607. MX0 6
  1608. BX1 X0*X1
  1609. LX1 6
  1610. SX5 X1-1RC
  1611. NZ X5,SEP3 IF NOT *C* FORMAT
  1612. SX1 X6-256D
  1613. SB7 B7+B1 INCREMENT TABLE INDEX
  1614. SX4 4000B CLEAR UPPER BYTE
  1615. SB5 -B1 SET ERROR FLAG
  1616. NG X1,SEP2.1 IF LESS THAN 8 BITS
  1617. AX6 8 GET UPPER 4 BITS
  1618. SX1 X6-16D
  1619. PL X1,SEP3 IF VALUE TOO LARGE
  1620. SX4 X6+4000B FIELD VALUE
  1621. SEP2.1 ZR X6,SEP3 IF VALUE TOO SMALL
  1622. SB5 B0+ CLEAR ERROR FLAG
  1623. RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
  1624. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  1625. SA2 A2+B1
  1626. AX2 18
  1627. SX2 X2
  1628. MX0 -8
  1629. SX6 X3
  1630. BX6 -X0*X6
  1631. SX4 X6+4000B RESTORE FIELD VALUE
  1632. SEP3 JP VFT3 RETURN
  1633.  
  1634. * TRANSLATE *IN* FIELD VALUE.
  1635.  
  1636. SEP4 SB4 X4-4000B GET FIELD VALUE
  1637. SA1 SEPA+B4
  1638. MX0 -12
  1639. SEP5 LX1 12 FIND FN/FV PAIR
  1640. BX2 -X0*X1 GET TRUE FIELD NUMBER
  1641. LX1 12
  1642. BX4 -X0*X1 GET TRUE FIELD VALUE
  1643. PL X1,SEP3 IF NOT TWO PAIRS
  1644. LX1 6
  1645. SX3 X6 SAVE VALUE TO VERIFY
  1646. RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
  1647. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  1648. SX6 X3 RESTORE VALUE TO VALIDATE
  1649. EQ SEP5 SET UP NEXT PAIR
  1650.  
  1651.  
  1652. * SEPA - TABLE OF EXTRA FN/FV PAIRS.
  1653. *
  1654. *T 12/FN,12/FV,6/FLAG,12/FN,12/FV,6/FLAG.
  1655. *
  1656. * FN = FIELD NUMBER.
  1657. * FV = FIELD VALUE.
  1658. * FLAG = .LT. 0, IF ANOTHER FN/FV PAIR.
  1659. * .GE. 0, IF NOT ANOTHER FN/FV PAIR.
  1660.  
  1661.  
  1662. SEPA BSS 0
  1663. VFD 12/XPFN,12/4000B,6/-1,12/INFN,12/4000B,6/0 *IN=KB*
  1664. VFD 12/XPFN,12/4000B,6/-1,12/INFN,12/4001B,6/0 *IN=PT*
  1665. VFD 12/XPFN,12/4001B,6/-1,12/INFN,12/4001B,6/0 *IN=XP*
  1666. VFD 12/XPFN,12/4001B,6/-1,12/INFN,12/4000B,6/0 *IN=XK*
  1667. VFD 12/INFN,12/4002B,36/0 *IN=BK*
  1668. VFD 12/XPFN,12/4001B,36/0 *IN=X*
  1669. CON 0 END OF TABLE
  1670. SPC SPACE 4,15
  1671. ** SPC - SPECIAL PAGE CHECKS FOR CDNA RANGES.
  1672. *
  1673. * *SPC* CHECKS *PL* AND *PW* FOR SPECIAL RANGE RESTRICTIONS
  1674. * THAT ARE PRESENT ONLY IN CDCNET.
  1675. *
  1676. * ENTRY (X4) = ATTRIBUTE VALUE.
  1677. * (X6) = ATTRIBUTE NUMBER.
  1678. *
  1679. * EXIT (TRMC) .EQ. 0, IF ATTRIBUTE VALUE WITHIN RANGE.
  1680. * .NE. 0, IF ERROR.
  1681. * (X4) = ATTRIBUTE VALUE.
  1682. * (X6) = ATTRIBUTE NUMBER.
  1683. *
  1684. * USES X - 7.
  1685. * A - 7.
  1686.  
  1687. SPC SUBR ENTRY/EXIT
  1688. SX7 X6-PLFN
  1689. ZR X7,SPC1 IF *PL* ATTRIBUTE
  1690. SX7 X6-PWFN
  1691. ZR X7,SPC2 IF *PW* ATTRIBUTE
  1692. EQ SPCX RETURN
  1693.  
  1694. SPC1 SX6 PL2F
  1695. SX7 X4-4001B
  1696. ZR X7,SPC3 IF INCORRECT VALUE FOR *PL*
  1697. EQ SPCX RETURN
  1698.  
  1699. SPC2 SX6 PW2F
  1700. SX7 X4-4000B
  1701. ZR X7,SPCX IF CORRECT VALUE FOR *PW*
  1702. SX7 X4-4012B
  1703. NG X7,SPC3 IF INCORRECT VALUE FOR *PW*
  1704. EQ SPCX RETURN
  1705.  
  1706. SPC3 SX7 B1
  1707. SA7 TRMG SET ERROR FLAG
  1708. EQ SPCX RETURN
  1709. VCP SPACE 4,20
  1710. ** VCP - VARIABLE CHARACTER PROCESSOR.
  1711. *
  1712. * FOR THOSE ATTRIBUTES WITH A VARIABLE NUMBER OF CHARACTERS,
  1713. * *VCP* WILL OUTPUT THE CORRECT NUMBER OF ATTRIBUTE VALUE
  1714. * OCTETS.
  1715. *
  1716. * ENTRY (X1) = PARAMETER FROM COMMAND.
  1717. * (B7) = INDEX INTO TABLES.
  1718. * (B5) = VARIABLE CHARACTER RANGE IDENTIFIER.
  1719. * .EQ. 2 THEN RANGE IS 0-2.
  1720. * .EQ. 3 THEN RANGE IS 0-4.
  1721. * .EQ. 4 THEN RANGE IS 0-7.
  1722. * .EQ. 5 THEN RANGE IS 0-25.
  1723. *
  1724. * EXIT CONTROL BYTE 0010B UPDATED.
  1725. *
  1726. * USES X - ALL.
  1727. * A - 1, 2, 3, 5, 6, 7.
  1728. * B - 2, 3, 4, 6.
  1729. *
  1730. * CALLS EFQ, HCP.
  1731.  
  1732.  
  1733. VCP SUBR ENTRY/EXIT
  1734. SA1 TTPV+B6 GET PARAMETER WORD COUNT
  1735. AX1 54
  1736. SB2 X1
  1737. SA1 A1+B1 GET WHOLE PARAMETER VALUE
  1738. SA2 TTFN+B7 GET FIELD NUMBER
  1739. MX0 -12
  1740. AX2 18
  1741. BX2 -X0*X2 FIELD NUMBER ISOLATED
  1742. BX0 X1
  1743. AX0 54
  1744. SX0 X0-1RX
  1745. NZ X0,VCP0 IF NOT HEXADECIMAL FORMAT
  1746. RJ HCP HEXADECIMAL CHARACTER PROCESSOR
  1747. EQ VCPX RETURN
  1748.  
  1749. VCP0 SB3 B1+B1 DETERMINE RANGE SIZE
  1750. SB4 B1
  1751. SA5 A1
  1752. MX0 12
  1753. EQ B5,B3,VCP1 IF RANGE OF 0-2 CHARACTERS
  1754. SB3 B3+B1
  1755. MX0 24
  1756. EQ B5,B3,VCP1 IF RANGE OF 0-4 CHARACTERS
  1757. SB3 B3+B1
  1758. MX0 42
  1759. EQ B5,B3,VCP1 IF RANGE OF 0-7 CHARACTERS
  1760. MX0 30
  1761. SB4 3
  1762. SA5 A1+2
  1763. VCP1 GT B2,B4,ERR5 IF TOO MANY CHARACTERS
  1764. LT B2,B4,VCP2 IF FEWER WORDS THAN MAXIMUM
  1765. BX4 -X0*X5
  1766. NZ X4,ERR5 IF TOO MANY CHARACTERS
  1767. VCP2 ZR X1,VCP6 IF NO CHARACTERS ENTERED
  1768. LX1 6
  1769. MX0 -6
  1770. BX3 -X0*X1
  1771. SA3 X3+TVXD GET OCTAL EQUIVALENT
  1772. LX3 0-18
  1773. SX4 X3+4000B
  1774. RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
  1775. BX1 X0*X1
  1776. SB3 B1 SET OCTET COUNTER
  1777. SA5 TRMD SET BUFFER INDEX
  1778. VCP3 NZ X1,VCP5 IF MORE CHARACTERS REMAIN
  1779. SB2 B2-1
  1780. ZR B2,VCP4 IF THROUGH WITH PARAMETER
  1781. SB6 B6+1 INCREMENT TABLE INDEX
  1782. SA1 TTPV+B6+1
  1783. NZ X1,VCP5 IF NOT THROUGH WITH PARAMETER
  1784. VCP4 BX7 X5 GET OCTET COUNT BYTE
  1785. SA7 A5
  1786. SX6 B3+B1
  1787. IX5 X5-X6 LOCATE COUNT OCTET
  1788. SX7 B3+4000B GET OCTET COUNT
  1789. SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
  1790. EQ VCPX RETURN
  1791.  
  1792. VCP5 LX1 6
  1793. BX3 -X0*X1
  1794. SA3 X3+TVXD GET OCTAL EQUIVALENT
  1795. SB3 B3+B1 INCREMENT OCTET COUNTER
  1796. LX3 0-18
  1797. SX7 X3+4000B
  1798. SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
  1799. SX5 X5+B1 RESET BUFFER INDEX
  1800. BX1 X0*X1
  1801. EQ VCP3 OUTPUT NEXT CHARACTER OCTET
  1802.  
  1803. VCP6 SA5 TRMD GET BUFFER INDEX
  1804. BX6 X2
  1805. SX7 4000B
  1806. SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
  1807. SX6 X5+2 INCREMENT INDEX
  1808. SA7 A6+B1 ENTER OCTET COUNTER INTO BUFFER
  1809. SA6 A5 RESET BUFFER INDEX
  1810. EQ VCPX RETURN
  1811. VFT SPACE 4,20
  1812. ** VFT - VALIDATE FIELD VALUE ACCORDING TO TERMINAL CLASS.
  1813. *
  1814. * ENTRY (X6) = CONTENTS TO BE VALIDATED.
  1815. * (TRMB) = TERMINAL CLASS TO BE USED FOR VALIDATION.
  1816. * (B2) .LT. 0 IF DO NOT VALIDATE RANGE.
  1817. *
  1818. * EXIT (X6) .LT. 0, IF ERROR.
  1819. *
  1820. * USES X - 0, 1, 3, 5, 6.
  1821. * A - 1, 3, 5.
  1822. * B - 3, 4, 5.
  1823. *
  1824. * CALLS PTP.
  1825. *
  1826. * DEFINE (B6) = POSITION IN PARAMETER LIST.
  1827. * (B7) = ADDRESS OF TABLE ENTRY
  1828. * (X2) = FIELD NUMBER.
  1829. * (X4) = FIELD VALUE.
  1830.  
  1831.  
  1832. VFT SUBR ENTRY/EXIT
  1833. SB5 B0 CLEAR ERROR FLAG
  1834. SA1 TTFN+B7 GET TABLE ENTRY
  1835. MX0 -12
  1836. SA5 PMPA
  1837. ZR X5,VFT1 IF NOT MULTIPLE PARAMETER
  1838. SA3 PMPC GET *TTFN* INDEX
  1839. SA1 TTFN+X3 GET TABLE ENTRY
  1840. VFT1 MX0 18
  1841. SB4 B0+
  1842. BX3 X0*X1
  1843. VFT2 SA1 VFTA+B4 MATCH TABLE ENTRY
  1844. SB4 B4+B1
  1845. BX5 X0*X1
  1846. ZR X5,VFT3 IF END OF TABLE
  1847. BX5 X5-X3
  1848. NZ X5,VFT2 IF NO MATCH
  1849. MX0 18 GET PROCESSING ROUTINE ADDRESS
  1850. BX5 -X0*X1
  1851. SB4 X5
  1852. SB3 X6 SAVE NUMBER TO BE VALIDATED
  1853. JP B4 DO SPECIAL PROCESSING
  1854.  
  1855. VFT3 NG B5,VFT5 IF ERROR IN *C* VALUE
  1856. SA1 TRMB GET TERMINAL CLASS
  1857. SA3 TFVR+B7 GET VALIDATION RANGE
  1858. SA5 PMPA
  1859. ZR X5,VFT4 IF NOT MULTIPLE PARAMETER
  1860. SA3 TFVM+B7 GET RANGE TABLE ENTRY
  1861. VFT4 SB4 X1
  1862. LX3 B4
  1863. NG X3,VFT5 IF PARAMETER INCORRECT FOR TERMINAL CLASS
  1864. NG B2,VFTX IF RANGE NOT TO BE CHECKED
  1865. LX3 -B4
  1866. SX5 X3 LOWER BOUND
  1867. LX3 17-35
  1868. SX3 X3 UPPER BOUND
  1869. IX5 X6-X5
  1870. IX3 X3-X6
  1871. NG X5,VFT5 IF VALUE TOO LOW
  1872. PL X3,VFTX IF NO ERROR
  1873. VFT5 SX6 -B1 SET ERROR FLAG
  1874. EQ VFTX RETURN
  1875.  
  1876. VFT6 RJ PTP PROCESS *TC* PARAMETER
  1877. BX6 X3 SET ERROR STATUS
  1878. EQ VFTX RETURN
  1879.  
  1880.  
  1881. VFTA BSS 0
  1882. VFD 18/0LXL,24/0,18/SEP1
  1883. VFD 18/0LDL,24/0,18/SEP
  1884. VFD 18/0LIN,24/0,18/SEP4
  1885. VFD 18/0LTC,24/0,18/VFT6
  1886. CON 0 END OF TABLE
  1887. ZCA SPACE 4,20
  1888. ** ZCA - ZERO CHARACTER ATTRIBUTE CHECKER.
  1889. *
  1890. * *ZCA* SETS A FLAG IF VARIABLE LENGTH ATTRIBUTES HAVE A
  1891. * ZERO CHARACTER NAME ENTERED.
  1892. *
  1893. * ENTRY (X4) = ATTRIBUTE NUMBER.
  1894. * (X5) = POINTER TO *TTPV*.
  1895. * (X6) = CONTENTS TO BE VALIDATED.
  1896. *
  1897. * EXIT (X3) .LT. 0, IF ATTRIBUTE NOT OF VARIABLE LENGTH.
  1898. * .EQ. 0, IF VALUE LENGTH NOT TO BE CHECKED.
  1899. *
  1900. * USES X - 0, 2, 3, 5.
  1901. * A - 2.
  1902. * B - 4.
  1903.  
  1904.  
  1905. ZCA SUBR ENTRY/EXIT
  1906. MX0 18
  1907. SB2 X5 PRESERVE *TTPV* POINTER
  1908. SB4 B0+
  1909. BX3 X0*X4
  1910. ZCA1 SA2 ZCAA+B4 MATCH TABLE ENTRY
  1911. SB4 B4+B1
  1912. BX5 X0*X2
  1913. ZR X5,ZCA2 IF END OF TABLE
  1914. BX5 X5-X3
  1915. NZ X5,ZCA1 IF NO MATCH
  1916. SX3 B0+ BLANK ARGUMENT NOT TO BE CHECKED
  1917. EQ ZCAX RETURN
  1918.  
  1919. ZCA2 SX3 -1 BLANK ARGUMENT TO BE CHECKED
  1920. EQ ZCAX RETURN
  1921.  
  1922. ZCAA BSS 0
  1923. VFD 18/0LTM,42/0
  1924. VFD 18/0LEOS,42/0
  1925. VFD 18/0LCRS,42/0
  1926. VFD 18/0LLFS,42/0
  1927. VFD 18/0LFFS,42/0
  1928. CON 0 END OF TABLE
  1929. TFVM SPACE 4,10
  1930. ** TFVM - TABLE OF VALIDATION RANGES FOR MULTI-VALUE.
  1931. *
  1932. *T 18/VBF,6/0,18/UB,18/LB
  1933. * VFB = CORRESPONDING BIT SET IF PARAMETER INCORRECT
  1934. * FOR TERMINAL CLASS.
  1935. * UB = UPPER BOUND ON PARAMETER VALUE RANGE.
  1936. * LB = LOWER BOUND ON PARAMETER VALUE RANGE.
  1937. *
  1938. * ENTRIES IN *TFVM* AND *TMPV* MUST BE SAME ORDER
  1939.  
  1940.  
  1941. TFVM BSS 1
  1942. VFD 18/00777B,6/0,18/15D,18/0 *CNXXX* FOR *DL*
  1943. VFD 18/00777B,6/0,18/255D,18/0 *CXNNN* FOR *DL
  1944. VFD 18/20413B,6/0,18/255D,18/0 *XHH* FOR *DL*
  1945. VFD 18/20777B,6/0,18/1,18/0 *T0* FOR *DL*
  1946. VFD 18/00777B,6/0,18/15D,18/0 *CNXXX* FOR *XL*
  1947. VFD 18/00777B,6/0,18/255D,18/0 *CXNNN* FOR *XL*
  1948. VFD 18/20413B,6/0,18/255D,18/0 *XHH* FOR *XL*
  1949. VFD 18/20777B,6/0,18/1,18/0 *TO* FOR *XL*
  1950. VFD 18/20413B,6/0,18/255D,18/0 *YHH* FOR *XL*
  1951. VFD 18/413B,6/0,18/127D,18/0 *XHH* FOR *EL*
  1952. VFD 18/20777B,6/0,18/2,18/0 *EB* OR *EL* FOR *EL*
  1953. VFD 18/20777B,6/0,18/3,18/0 *NO*,*CR*,*LF* OR *CL*
  1954. VFD 18/20413B,6/0,18/127D,18/0 *XHH* FOR *EB*
  1955. VFD 18/20777B,6/0,18/2,18/0 *EB* OR *EL* FOR *EB*
  1956. VFD 18/20777B,6/0,18/3,18/0 *NO*,*CR*,*LF* OR *CL*
  1957. TITLE TABLES.
  1958. TFVR SPACE 4,10
  1959. ** TFLD - TABLE OF FIELD VALUE VALIDATION RANGES
  1960. * AND TERMINAL DEFINITION FIELD NUMBERS.
  1961. *
  1962. *T,TTFN 18/PN,12/SFN,12/FN,18/ADDR
  1963. *T,TFVR 18/VBF,6/FLAGS,18/UB,18/LB
  1964. * PN = ONE - THREE CHARACTER PARAMETER NAME MNEMONIC
  1965. * USED FOR COMMAND PROCESSING AND ERROR MESSAGES.
  1966. * SFN = SECOND FIELD NUMBER, IF IT EXISTS.
  1967. * FN = FIELD NUMBER FOR SINGLE VALUE PARAMETERS, OR
  1968. * INDEX TO *TMPV* TABLE FOR MULTIPLE VALUE
  1969. * PARAMETERS.
  1970. * ADDR = ADDRESS OF EQUIVALENCE TABLE.
  1971. * IF NEGATIVE, EXPECTING A ONE CHARACTER ARGUMENT.
  1972. * IF ZERO, EXPECTING A DECIMAL NUMBER.
  1973. * IF ONE, PARAMETER HAS MULTIPLE FIELD NUMBERS.
  1974. * IF TWO, VALUE HAS A RANGE OF 0-2 CHARACTERS.
  1975. * IF THREE, VALUE HAS A RANGE OF 0-4 CHARACTERS.
  1976. * IF FOUR, VALUE HAS A RANGE OF 0-7 CHARACTERS.
  1977. * IF FIVE, VALUE HAS A RANGE OF 0-25 CHARACTERS.
  1978. * IF SIX, VALUE HAS A RANGE OF 1-4 CHARACTERS.
  1979. * IF SEVEN, PARAMETER HAS A DOUBLE OCTET VALUE.
  1980. * IF TEN (OCTAL), ATTRIBUTE HAS BEEN DISABLED.
  1981. * VBF = CORRESPONDING BIT SET IF PARAMETER INCORRECT
  1982. * FOR TERMINAL CLASS.
  1983. * FLAGS = BITS 41 - 40 UNUSED.
  1984. * BIT 39 SET = COMMON ATTRIBUTE.
  1985. * BIT 38 SET = CDNA ATTRIBUTE.
  1986. * BIT 37 SET = CCP ATTRIBUTE.
  1987. * BIT 36 SET = UNSUPPORTED ATTRIBUTE.
  1988. * UB = UPPER BOUND ON PARAMETER VALUE RANGE.
  1989. * LB = LOWER BOUND ON PARAMETER VALUE RANGE.
  1990. *
  1991. * THE *L* PARAMETER MUST BE FIRST.
  1992.  
  1993.  
  1994. TFLD BSS 0
  1995. VFD 18/1LL,12/0,12/0,18/0 OUTPUT FILE
  1996. VFD 60/0
  1997. VFD 18/2LTC,12/0,12/TCFN,18/0 TERMINAL CLASS
  1998. VFD 18/0,6/2,18/17D,18/1
  1999. VFD 18/2LAB,12/0,12/ABFN,18/-1 ABORT BLOCK
  2000. VFD 18/777B,6/2,18/127D,18/0
  2001. VFD 18/2LBR,12/0,12/BRFN,18/NYEC BREAK KEY
  2002. VFD 18/20777B,6/2,18/1,18/0
  2003. VFD 18/2LBS,12/0,12/BSFN,18/-1 BACKSPACE CHARACTER
  2004. VFD 18/777B,6/2,18/127D,18/0
  2005. VFD 18/2LB1,12/0,12/B1FN,18/-1 USER BREAK 1
  2006. VFD 18/3B,6/2,18/127D,18/0 (INTERRUPT CHAR)
  2007. VFD 18/2LB2,12/0,12/B2FN,18/-1 USER BREAK 2
  2008. VFD 18/3B,6/2,18/127D,18/0 (TERMINATION CHAR)
  2009. VFD 18/2LCI,12/CCFN,12/CIFN,18/0 CARRIAGE RETURN IDLE
  2010. VFD 18/777B,6/2,18/99D,18/0 COUNT
  2011. VFD 18/2LCN,12/0,12/CNFN,18/-1 CANCEL CHARACTER
  2012. VFD 18/3B,6/2,18/127D,18/0
  2013. VFD 18/2LCP,12/0,12/CPFN,18/NYEC CURSOR POSITIONING
  2014. VFD 18/20003B,6/2,18/1,18/0
  2015. VFD 18/2LCT,12/0,12/CTFN,18/-1 CONTROL CHARACTER
  2016. VFD 18/0,6/2,18/127D,18/0
  2017. VFD 18/2LDL,12/0,12/DLMV-TMPV,18/1B SINGLE MESSAGE
  2018. VFD 18/0,6/2,36/0 TRANSPARENT
  2019. VFD 18/2LEB,12/0,12/EBMV-TMPV,18/1B END OF BLOCK
  2020. VFD 18/0,6/2,36/0
  2021. VFD 18/2LEL,12/0,12/ELMV-TMPV,18/1B END OF LINE
  2022. VFD 18/0,6/2,36/0
  2023. VFD 18/2LEP,12/0,12/EPFN,18/NYEC ECHOPLEX MODE
  2024. VFD 18/20777B,6/2,18/1,18/0
  2025. VFD 18/2LFA,12/0,12/FAFN,18/NYEC FULL ASCII
  2026. VFD 18/413B,6/2,18/1,18/0
  2027. VFD 18/2LHD,12/0,12/HDFN,18/NYEC HOST AVAILABILITY
  2028. VFD 18/3B,6/2,18/1,18/0
  2029. VFD 18/2LIC,12/0,12/ICFN,18/NYEC INPUT FLOW CONTROL
  2030. VFD 18/20777B,6/2,18/1,18/0
  2031. VFD 18/2LIN,12/0,12/INFN,18/INEC INPUT DEVICE
  2032. VFD 18/3B,6/2,18/5,18/0
  2033. VFD 18/2LLI,12/LCFN,12/LIFN,18/0 LINE FEED IDLE COUNT
  2034. VFD 18/777B,6/2,18/99D,18/0
  2035. VFD 18/2LLK,12/0,12/LKFN,18/NYEC LOCK OUT CONTROL
  2036. VFD 18/0,6/2,18/1,18/0
  2037. VFD 18/2LOC,12/0,12/OCFN,18/NYEC OUTPUT FLOW CONTROL
  2038. VFD 18/20777B,6/2,18/1,18/0
  2039. VFD 18/2LOP,12/0,12/OPFN,18/OPEC OUTPUT DEVICE
  2040. VFD 18/0,6/2,18/2,18/0
  2041. VFD 18/2LPA,12/0,12/PAFN,18/PAEC PARITY
  2042. VFD 18/000413B,6/2,18/5,18/0
  2043. VFD 18/2LPG,12/0,12/PGFN,18/NYEC PAGE WAIT
  2044. VFD 18/000413B,6/2,18/1,18/0
  2045. VFD 18/2LPL,12/0,12/PLFN,18/0 PAGE LENGTH
  2046. VFD 18/0,6/8,18/255D,18/0
  2047. VFD 18/2LPW,12/0,12/PWFN,18/0 PAGE WIDTH
  2048. VFD 18/0,6/8,18/255D,18/0
  2049. VFD 18/2LSE,12/0,12/SEFN,18/NYEC SPECIAL EDITING MODE
  2050. VFD 18/000777B,6/2,18/1,18/0
  2051. VFD 18/2LXL,12/0,12/XLMV-TMPV,18/1B MULTI MESSAGE
  2052. VFD 18/0,6/2,36/0 TRANSPARENT MODE
  2053.  
  2054. * CDCNET TERMINAL DEFINITIONS.
  2055.  
  2056. VFD 18/2LAC,12/0,12/ACCF,18/-1 ATTENTION CHARACTER
  2057. VFD 18/0,6/4,18/127D,18/0
  2058. VFD 18/3LACA,12/0,12/ACAF,18/0 ATTENTION CHARACTER
  2059. VFD 18/0,6/4,18/9D,18/0 ACTION
  2060. VFD 18/2LBC,12/0,12/BCFN,18/-1 BACKSPACE CHARACTER
  2061. VFD 18/0,6/4,18/127D,18/0
  2062. VFD 18/3LBKA,12/0,12/BKAF,18/0 BREAK KEY ACTION
  2063. VFD 18/0,6/4,18/9D,18/0
  2064. VFD 18/3LBLC,12/0,12/BLCF,18/-1 BEGIN LINE CHARACTER
  2065. VFD 18/0,6/4,18/127D,18/0
  2066. VFD 18/3LCFC,12/0,12/CFCF,18/BOOL CHARACTER FLOW CONTROL
  2067. VFD 18/0,6/4,18/5,18/0
  2068. VFD 18/3LCLC,12/0,12/CLCF,18/-1 CANCEL LINE CHARACTER
  2069. VFD 18/0,6/4,18/127D,18/0
  2070. VFD 18/3LCRD,12/0,12/CRDF,18/7B CARRIAGE RETURN DELAY
  2071. VFD 18/0,6/4,18/1000D,18/0
  2072. VFD 18/3LCRS,12/0,12/CRSF,18/2 CARRIAGE RETURN
  2073. VFD 18/0,6/4,36/0 SEQUENCE
  2074. VFD 18/2LCS,12/0,12/CSFN,18/CSEC CODE SET
  2075. VFD 18/0,6/4,18/2,18/0
  2076. VFD 18/1LE,12/0,12/EEFN,18/BOOL ECHOPLEX
  2077. VFD 18/0,6/4,18/5,18/0
  2078. VFD 18/3LELC,12/0,12/ELCF,18/-1 END LINE CHARACTER
  2079. VFD 18/0,6/4,18/127D,18/0
  2080. VFD 18/3LELP,12/0,12/ELPF,18/EBEC END LINE POSITIONING
  2081. VFD 18/0,6/4,18/3,18/0
  2082. VFD 18/3LEOS,12/0,12/EOSF,18/3 END OUTPUT SEQUENCE
  2083. VFD 18/0,6/4,36/0
  2084. VFD 18/3LEPA,12/0,12/EPAF,18/EPEC END PAGE ACTION
  2085. VFD 18/0,6/4,18/1,18/0
  2086. VFD 18/3LEPC,12/0,12/EPCF,18/-1 END PARTIAL CHARACTER
  2087. VFD 18/0,6/4,18/127D,18/0
  2088. VFD 18/3LEPP,12/0,12/EPPF,18/EBEC END PARTIAL
  2089. VFD 18/0,6/4,18/3,18/0 POSITIONING
  2090. VFD 18/3LFFD,12/0,12/FFDF,18/7B FORM FEED DELAY
  2091. VFD 18/0,6/4,18/3000D,18/0
  2092. VFD 18/3LFFS,12/0,12/FFSF,18/4 FORM FEED SEQUENCE
  2093. VFD 18/0,6/4,36/0
  2094. VFD 18/3LFKC,12/0,12/FKCF,18/5B FUNCTION KEY CLASS
  2095. VFD 18/0,6/4,36/0
  2096. VFD 18/2LFL,12/0,12/FLFN,18/BOOL FOLD LINE
  2097. VFD 18/0,6/4,18/5,18/0
  2098. VFD 18/2LHP,12/0,12/HPFN,18/BOOL HOLD PAGE
  2099. VFD 18/0,6/4,18/5,18/0
  2100. VFD 18/3LHPO,12/0,12/HPOF,18/BOOL HOLD PAGE OVER
  2101. VFD 18/0,6/4,18/5,18/0
  2102. VFD 18/3LIBS,12/0,12/IBSF,18/7B INPUT BLOCK SIZE
  2103. VFD 18/0,6/4,18/2000D,18/80D
  2104. VFD 18/3LIEM,12/0,12/IEMF,18/IEEC INPUT EDITING MODE
  2105. VFD 18/0,6/4,18/1,18/0
  2106. VFD 18/3LIOM,12/0,12/IOMF,18/IOEC OUTPUT EDITING MODE
  2107. VFD 18/0,6/4,18/2,18/0
  2108. VFD 18/3LLFD,12/0,12/LFDF,18/7B LINE FEED DELAY
  2109. VFD 18/0,6/4,18/1000D,18/0
  2110. VFD 18/3LLFS,12/0,12/LFSF,18/2 LINE FEED SEQUENCE
  2111. VFD 18/0,6/4,36/0
  2112. VFD 18/3LNCC,12/0,12/NCCF,18/-1 NETWORK CONTROL
  2113. VFD 18/0,6/4,18/127D,18/0 CHARACTER
  2114. VFD 18/1LP,12/0,12/PPFN,18/PEEC PARITY TYPE
  2115. VFD 18/0,6/4,18/4,18/0
  2116. VFD 18/3LPCF,12/0,12/PCFF,18/BOOL PARTIAL CHARACTER
  2117. VFD 18/0,6/4,18/5,18/0 FORWARDING
  2118. VFD 18/2LRA,12/0,12/RAFN,18/RAEC RESPONSE ACTION
  2119. VFD 18/0,6/4,18/1,18/0
  2120. VFD 18/2LSA,12/0,12/SAFN,18/SAEC STATUS ACTION
  2121. VFD 18/0,6/4,18/2,18/0
  2122. VFD 18/3LSBC,12/0,12/SBCF,18/BOOL STORE BACKSPACE
  2123. VFD 18/0,6/4,18/5,18/0 CHARACTER
  2124. VFD 18/3LSND,12/0,12/SNDF,18/BOOL STORE NULS DELS
  2125. VFD 18/0,6/4,18/5,18/0
  2126. VFD 18/3LTCM,12/0,12/TCMF,18/TCEC TRANSPARENT CHARACTER
  2127. VFD 18/0,6/4,18/3,18/0 MODE
  2128. VFD 18/3LTFC,12/0,12/TFCF,18/6 TRANSPARENT FORWARD
  2129. VFD 18/0,6/4,36/0 CHARACTER
  2130. VFD 18/3LTLM,12/0,12/TLMF,18/TLEC TRANSPARENT LENGTH
  2131. VFD 18/0,6/4,18/3,18/0 MODE
  2132. VFD 18/2LTM,12/0,12/TMFN,18/5B TERMINAL MODEL/TERMI-
  2133. VFD 18/0,6/4,36/0 NATE TERM-HOST CONN.
  2134. VFD 18/3LTML,12/0,12/TMLF,18/7B TRANSPARENT MESSAGE
  2135. VFD 18/0,6/4,18/32767,18/1 LENGTH
  2136. VFD 18/3LTTC,12/0,12/TTCF,18/6 TRANSPARENT TERMINATE
  2137. VFD 18/0,6/4,36/0 CHARACTER
  2138. VFD 18/3LTTM,12/0,12/TTMF,18/TMEC TRANSPARENT TIMEOUT
  2139. VFD 18/0,6/4,18/2,18/0 MODE
  2140.  
  2141. * UNSUPPORTED STANDARD TERMINAL DEFINITIONS.
  2142.  
  2143. VFD 18/2LAR,12/0,12/0,18/-1 AUTO CHAR RECOGNITION
  2144. VFD 18/0,6/1,36/0
  2145. VFD 18/2LBF,12/0,12/0,18/-1 BLOCKING FACTOR
  2146. VFD 18/0,6/1,36/0
  2147. VFD 18/2LCH,12/0,12/0,18/-1 TERMINAL CHARACTERIS-
  2148. VFD 18/0,6/1,36/0 TICS
  2149. VFD 18/2LHN,12/0,12/0,18/-1 HOST NODE SELECTION
  2150. VFD 18/0,6/1,36/0 - NUMBER
  2151. VFD 18/2LHS,12/0,12/0,18/-1 HOST SELECTION - NAME
  2152. VFD 18/0,6/1,36/0
  2153. VFD 18/2LMS,12/0,12/0,18/-1 MESSAGETEXT
  2154. VFD 18/0,6/1,36/0
  2155. CON 0
  2156. TLTC SPACE 4,10
  2157. ** TLTC - TABLE OF LEGAL TERMINAL CLASS CHANGES.
  2158. *
  2159. *T 24/0,18/UB,18/LB
  2160. * UB = UPPER BOUND ON RANGE FOR TERMINAL CLASS CHANGE.
  2161. * LB = LOWER BOUND ON RANGE FOR TERMINAL CLASS CHANGE.
  2162.  
  2163.  
  2164. TLTC BSS 0
  2165. LOC 0
  2166. VFD 60/0 TC=0 - INCORRECT
  2167. VFD 24/0,18/8,18/1 TC=1 - MODEL 33, 35, 37, 38 TTY
  2168. VFD 24/0,18/8,18/1 TC=2 - CDC 713-10, 722, 751-1, 756
  2169. VFD 24/0,18/8,18/1 TC=3 - CDC 721
  2170. VFD 24/0,18/4,18/4 TC=4 - IBM 2741
  2171. VFD 24/0,18/8,18/1 TC=5 - MODEL 40 TTY
  2172. VFD 24/0,18/8,18/1 TC=6 - HAZELTINE 2000
  2173. VFD 24/0,18/8,18/1 TC=7 - DEC VT100
  2174. VFD 24/0,18/8,18/1 TC=8 - TEKTRONIX 401X
  2175. VFD 24/0,18/9,18/9 TC=9 - HASP (POST PRINT)
  2176. VFD 24/0,18/15,18/10 TC=10 - 200 USER TERMINAL
  2177. VFD 24/0,18/13,18/11 TC=11 - CDC 714-30
  2178. VFD 24/0,18/13,18/11 TC=12 - CDC 711-10
  2179. VFD 24/0,18/13,18/11 TC=13 - CDC 714-10/20
  2180. VFD 24/0,18/14,18/14 TC=14 - HASP (PRE PRINT)
  2181. VFD 24/0,18/15,18/10 TC=15 - CDC 731-12, 732-12, 734
  2182. VFD 24/0,18/16,18/16 TC=16 - IBM 2780
  2183. VFD 24/0,18/17,18/17 TC=17 - IBM 3780
  2184. LOC *O
  2185. TMPV SPACE 4,10
  2186. ** TMPV - TABLE OF TERMINAL DEFINITIONS MULTI VALUE NUMBERS.
  2187. *
  2188. *T 6/VT,6/VM,12/0,6/ET,12/FN,18/AD
  2189. *
  2190. * VT = PARAMETER VALUE TYPE.
  2191. * VM = VALIDATION MASK.
  2192. * ET = END OF TABLE FLAG.
  2193. * FN = FIELD NUMBER.
  2194. * AD = ADDRESS OF EQUIVALENCE TABLE.
  2195. * IF 0, EXPECTING A DECIMAL NUMBER.
  2196. * IF -1, EXPECTING A CHARACTER ARGUMENT.
  2197. *
  2198. * ENTRIES IN THE *TPMV* AND *TFVM* TABLES MUST BE IN THE
  2199. * SAME ORDER.
  2200.  
  2201.  
  2202. TMPV BSS 1
  2203. DLMV VFD 6/1LC,6/1B,12/0,6/0,12/C1FN,18/0 *DL*
  2204. VFD 6/1LC,6/2B,12/0,6/0,12/C2FN,18/0
  2205. VFD 6/1LX,6/4B,12/0,6/0,12/XHFN,18/-1
  2206. VFD 6/1LT,6/10B,12/0,6/-1,12/TOFN,18/TOEC
  2207. XLMV VFD 6/1LC,6/1B,12/0,6/0,12/C1FN,18/0 *XL*
  2208. VFD 6/1LC,6/2B,12/0,6/0,12/C2FN,18/0
  2209. VFD 6/1LX,6/4B,12/0,6/0,12/XHFN,18/-1
  2210. VFD 6/1LT,6/10B,12/0,6/0,12/TOFN,18/TOEC
  2211. VFD 6/1LY,6/20B,12/0,6/-1,12/YHFN,18/-1
  2212. ELMV VFD 6/1LX,6/1B,12/0,6/0,12/XLFN,18/-1 *EL*
  2213. VFD 6/1LE,6/1B,12/0,6/0,12/ELFN,18/ELEC
  2214. VFD 6/0,6/2B,12/0,6/-1,12/CLFN,18/XXEC
  2215. EBMV VFD 6/1LX,6/1B,12/0,6/0,12/XBFN,18/-1 *EB*
  2216. VFD 6/1LE,6/1B,12/0,6/0,12/EBFN,18/ELEC
  2217. VFD 6/0,6/2B,12/0,6/-1,12/CBFN,18/XXEC
  2218. CON 0 END OF TABLE
  2219. TMPL EQU *-TMPV
  2220. TTFN SPACE 4,10
  2221. SPACE 4
  2222. * COMMON DECKS.
  2223.  
  2224. *CALL COMCCIO
  2225. *CALL COMCDXB
  2226. *CALL COMCHXB
  2227. *CALL COMCLFM
  2228. *CALL COMCSYS
  2229. *CALL COMCUSB
  2230. *CALL COMCWTW
  2231. *CALL COMTVDT
  2232. SPACE 4
  2233. USE BUFFERS
  2234. SPACE 4
  2235. * BUFFERS.
  2236.  
  2237. CBUF DATA 0016B CONTROL BYTE PARAMETER STRING BUFFER
  2238. BSSZ CBUFL
  2239. DBUF DATA 0010B CONTROL BYTE PARAMETER STRING BUFFER
  2240. BSSZ DBUFL
  2241. SPACE 4,5
  2242. * FIELD VALUE EQUIVALENCED CODES.
  2243. * ENTRIES IN THESE TABLES ARE ORDER DEPENDENT.
  2244.  
  2245. INEC CON 2LKB INPUT DEVICE CODES
  2246. CON 2LPT
  2247. CON 2LXP
  2248. CON 2LXK
  2249. CON 2LBK
  2250. CON 1LX
  2251. CON 0
  2252.  
  2253. OPEC CON 2LPR OUTPUT DEVICE CODES
  2254. CON 2LDI
  2255. CON 2LPT
  2256. CON 0
  2257.  
  2258. PAEC CON 1LZ PARITY SELECTION CODES
  2259. CON 1LO
  2260. CON 1LE
  2261. CON 1LN
  2262. CON 1LI
  2263. VFD 42/1LM,18/1
  2264. CON 0
  2265.  
  2266. PEEC CON 4LZERO PARITY SELECTION CODES (CDCNET)
  2267. CON 4LMARK
  2268. CON 4LEVEN
  2269. CON 3LODD
  2270. CON 4LNONE
  2271. CON 0
  2272.  
  2273. NYEC CON 1LN EQUIVALENCE CODES FOR XX=N OR XX=Y
  2274. CON 1LY
  2275. CON 0
  2276.  
  2277. BOOL CON 2LNO BOOLEAN VALUE CODES
  2278. CON 3LYES
  2279. CON 5LFALSE
  2280. CON 4LTRUE
  2281. CON 3LOFF
  2282. CON 2LON
  2283. CON 0
  2284.  
  2285. IEEC VSS N,NORMAL,S INPUT EDITING MODE CODES
  2286. VSS T,TRANSPARENT
  2287. CON 0
  2288.  
  2289. IOEC VSS U,UNSOLICITED,S OUTPUT EDITING MODE CODES
  2290. VSS S,SOLICITED
  2291. VSS F,FULLDUPLEX
  2292. CON 0
  2293.  
  2294. RAEC VSS S,SEND,S RESPONSE ACTION CODES
  2295. VSS D,DISCARD
  2296. CON 0
  2297.  
  2298. SAEC VSS S,SEND,S STATUS ACTION CODES
  2299. VSS H,HOLD
  2300. VSS D,DISCARD
  2301. CON 0
  2302.  
  2303. TCEC VSS N,NONE,S TRANSPARENT CHARACTER MODE CODES
  2304. VSS T,TERMINATE
  2305. VSS F,FORWARD
  2306. VSS FT
  2307. VFD 42/0LFORWARD,6/65B,12/0LTE
  2308. VFD 60/0LRMINATE
  2309. CON 0
  2310.  
  2311. TLEC VSS N,NONE,S TRANSPARENT LENGTH MODE CODES
  2312. VSS T,TERMINATE
  2313. VSS F,FORWARD
  2314. VSS FE
  2315. VFD 42/0LFORWARD,6/65B,12/0LEX
  2316. VFD 60/0LACT
  2317. CON 0
  2318.  
  2319. TMEC VSS N,NONE,S TRANSPARENT TIMEOUT MODE CODES
  2320. VSS T,TERMINATE
  2321. VSS F,FORWARD
  2322. CON 0
  2323.  
  2324. ELEC CON 2L NOT *EB* OR *EL*
  2325. CON 2LEL *EL*
  2326. CON 2LEB *EB*
  2327. CON 0
  2328.  
  2329. TOEC CON 2L NOT *TO*
  2330. CON 2LTO *TO*
  2331. CON 0
  2332.  
  2333. XXEC CON 2LNO *NO*
  2334. CON 2LCR *CR*
  2335. CON 2LLF *LF*
  2336. CON 2LCL *CL*
  2337. CON 0
  2338.  
  2339. CSEC CON 5LASCII CODE SET CODES
  2340. CON 5LBPAPL
  2341. CON 5LTPAPL
  2342. CON 0
  2343.  
  2344. EBEC VFD 60/4LNONE END BLOCK POSITIONING CODES
  2345. VFD 60/3LCRS
  2346. VFD 60/3LLFS
  2347. VFD 60/6LCRSLFS
  2348. VFD 60/0
  2349.  
  2350. EPEC CON 4LNONE END PAGE ACTION CODES
  2351. CON 3LFFS
  2352. CON 0
  2353.  
  2354. FLEC VFD 60/3LOFF FOLD LINE CODES
  2355. VFD 60/2LON
  2356. VFD 60/0
  2357.  
  2358. SPACE 4,5
  2359. TMES DATA C* TRMDEF REQUIRES JOB TO BE ON-LINE.*
  2360. TMESL EQU *-TMES
  2361. CON 0
  2362.  
  2363. OBUF EQU *
  2364. TTPV SPACE 4,10
  2365. * TABLE OF TERMINAL DEFINITION PARAMETER VALUES.
  2366. *
  2367. *T 6/WORD COUNT OF ENTERED VALUE, 36/0, 18/INDEX INTO TABLES.
  2368. *T 60/ENTERED VALUE.
  2369. *T .
  2370. *T .
  2371. *T 60/ENTERED VALUE.
  2372. *
  2373. * ENTRIES ARE IN THE ORDER SPECIFIED ON THE COMMAND.
  2374. * NO ENTRY IS MADE FOR THE *L* PARAMETER.
  2375.  
  2376. TTPV EQU OBUF+OBUFL
  2377. SPACE 4
  2378. RFL= EQU TTPV+TTPVL
  2379. ARG= EQU 0
  2380. END