cdc:nos2.source:opl871:trmdef
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
- IDENT TRMDEF,FETS
- ABS
- SST
- ENTRY TRMDEF
- ENTRY ARG=
- ENTRY RFL=
- SYSCOM B1
- BASE DECIMAL
- *COMMENT TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TRMDEF TITLE TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
- SPACE 4,10
- ***** TRMDEF - DEFINE TERMINAL CHARACTERISTICS.
- *
- * B. M. SLIWINSKI. 79/02/22.
- * J. P. LITTLE. 85/07/12.
- *
- * *TRMDEF* MAKES IT POSSIBLE FOR INTERACTIVE USERS TO CHANGE
- * THE CHARACTERISTICS OF THEIR CONNECTED TERMINAL THROUGH THE
- * USE OF THE *TRMDEF* COMMAND.
- SPACE 4,10
- *** *TRMDEF* ACCEPTS AS INPUT A SINGLE COMMAND.
- * VALIDATION OF THE SPECIFIED PARAMETERS FOR CORRECT TYPE,
- * RANGE, AND TERMINAL TYPE IS DONE IN THE ORDER THEY APPEAR
- * ON THE COMMAND. THE CONNECTED TERMINAL TYPE IS USED
- * FOR VALIDATIONS OF OTHER PARAMETERS UNTIL A CHANGE OF
- * TERMINAL CLASS (*TC*) IS ENCOUNTERED. IF THIS CHANGE IS
- * LEGAL, THEN SUBSEQUENT PARAMETERS WILL USE THIS TERMINAL
- * CLASS FOR VALIDATION.
- *
- * IF ALL CHANGES ARE LEGAL, A CONTROL BYTE PARAMETER STRING
- * IS BUILT. THERE ARE TWO TYPES OF CONTROL BYTE STRINGS THAT
- * ARE BUILT, 0010B AND 0016B, DEPENDING ON THE TYPE OF NETWORK
- * THAT THE TERMINAL IS CONNECTED TO. IF THE NETWORK CONNECTION
- * IS OF TYPE NAM/CDNA, THEN CONTROL BYTE 0010B IS BUILT (UNLESS
- * ALL THE PARAMETERS ENTERED ARE CCP TERMINAL DEFINITIONS).
- * IF THE NETWORK CONNECTION IS OF TYPE NAM/CCP, THEN CONTROL
- * BYTE 0016 IS BUILT. IF CONTROL BYTE 0016 IS BUILT, IT HAS
- * THE FOLLOWING FORM:
- *
- * 12/CB,12/FN,12/FV,...,12/FN,12/FV,EOL
- * CB = CONTROL BYTE 0016B.
- * FN = 4000B + FIELD NUMBER.
- * FV = 4000B + FIELD VALUE.
- *
- * IF CONTROL BYTE 0010B IS BUILT, IT HAS THE FOLLOWING FORM
- *
- * 12/CB,12/AN,12/OC(N),12/AV(0),...,12/AV(N),12/AN,12/AV,EOL
- * CB = CONTROL BYTE 0010B.
- * AN = 4000B + ATTRIBUTE NUMBER.
- * OC(N) = OCTET COUNTER.
- * AV(0) = 4000B + ATTRIBUTE VALUE(0).
- * AV(N) = 4000B + ATTRIBUTE VALUE(N).
- *
- * THIS STRING IS WRITTEN TO *OUTPUT* OR THE FILE SPECIFIED
- * ON THE COMMAND.
- SPACE 4,10
- *** COMMAND CALL.
- *
- * TRMDEF,XX=VALUE,...,XX=VALUE,L=FN.
- * OR
- * TRMDEF,XX=VALUE/VALUE/...,XX=VALUE,L=FN.
- *
- * XX = ONE - THREE CHARACTER MNEMONIC FOR THE
- * TERMINAL DEFINITION PARAMETER.
- * VALUE = LEGAL VALUE FOR A GIVEN TERMINAL DEFINITION
- * PARAMETER. SOME PARAMETERS MAY HAVE MULTIPLE
- * VALUES WITH THE FORMAT: XX=VALUE/VALUE...
- * L = OUTPUT FILE.
- * IF FN IS SPECIFIED, WRITE OUTPUT TO FILE *FN*.
- * THE DEFAULT IS *OUTPUT*.
- *
- *
- * THE POSSIBLE MNEMONICS FOR *XX* ARE AS FOLLOWS.
- *
- * XX DESCRIPTION
- * -- -----------
- * AB ABORT BLOCK
- * BR BREAK KEY
- * BS BACKSPACE CHARACTER
- * B1 USER BREAK 1 (INTERRUPTION CHARACTER)
- * B2 USER BREAK 2 (TERMINATION CHARACTER)
- * CI CARRIAGE RETURN IDLE COUNT
- * CN CANCEL CHARACTER
- * CP CURSOR POSITIONING
- * CT CONTROL CHARACTER
- * DL SINGLE MESSAGE TRANSPARENT
- * EB END OF BLOCK
- * EL END OF LINE
- * EP ECHOPLEX MODE
- * FA FULL ASCII
- * HD HOST AVAILABILITY DISPLAY
- * IC INPUT FLOW CONTROL
- * IN INPUT DEVICE
- * LI LINE FEED IDLE COUNT
- * LK LOCK OUT CONTROL
- * OC OUTPUT FLOW CONTROL
- * OP OUTPUT DEVICE
- * PA PARITY
- * PG PAGE WAIT
- * PL PAGE LENGTH
- * PW PAGE WIDTH
- * SE SPECIAL EDITING MODE
- * TC TERMINAL CLASS
- * XL MULTI MESSAGE
- *
- * CDCNET TERMINAL DEFINITIONS.
- *
- * AC ATTENTION CHARACTER
- * ACA ATTENTION CHARACTER ACTION
- * BC BACKSPACE CHARACTER
- * BKA BREAK KEY ACTION
- * BLC BEGIN LINE CHARACTER
- * CFC CHARACTER FLOW CONTROL
- * CLC CANCEL LINE CHARACTER
- * CRD CARRIAGE RETURN DELAY
- * CRS CARRIAGE RETURN SEQUENCE
- * CS CODE SET
- * E ECHOPLEX
- * ELC END LINE CHARACTER
- * ELP END LINE POSITIONING
- * EOS END OUTPUT SEQUENCE
- * EPA END PAGE ACTION
- * EPC END PARTIAL CHARACTER
- * EPP END PARTIAL POSITION
- * FFD FORM FEED DELAY
- * FFS FORM FEED SEQUENCE
- * FL FOLD LINE
- * HP HOLD PAGE
- * HPO HOLD PAGE OVER
- * IBS INPUT BLOCK SIZE
- * IEM INPUT EDITING MODE
- * IOM INPUT OUTPUT MODE
- * LFD LINE FEED DELAY
- * LFS LINE FEED SEQUENCE
- * NCC NETWORK CONTROL CHARACTER
- * P PARITY TYPE
- * PCF PARTIAL CHARACTER FORWARDING
- * PL PAGE LENGTH
- * PW PAGE WIDTH
- * RA RESPONSE ACTION
- * SA STATUS ACTION
- * SBC STORE BACKSPACE CHARACTER
- * SND STORE NULS DELS
- * TCM TRANSPARENT CHARACTER MODE
- * TFC TRANSPARENT FORWARD CHARACTER
- * TLM TRANSPARENT LENGTH MODE
- * TM TERMINAL MODEL
- * TML TRANSPARENT MESSAGE LENGTH
- * TTC TRANSPARENT TERMINATE CHARACTER
- * TTM TRANSPARENT TIMEOUT MODE
- *
- * UNSUPPORTED STANDARD TERMINAL DEFINITIONS.
- *
- * AR AUTOMATIC CHARACTER RECOGNITION
- * BF BLOCKING FACTOR - 0, 1, 2
- * CH DISPLAY TERMINAL CHARACTERISTICS
- * HN HOST NODE SELECTION - NUMBER
- * HS HOST SELECTION - NAME
- * MS MESSAGE TO NETWORK OPERATOR - MESSAGETEXT
- * TM TERMINATE TERMINAL - HOST CONNECTION
- *
- *
- * VALUES CAN BE SPECIFIED IN THE FOLLOWING WAYS.
- *
- * FORM DESCRIPTION
- * ---- -----------
- * NN DECIMAL VALUE
- * Y ALPHANUMERIC CHARACTER WITH DISPLAY CODE LESS THAN 45B
- * $Y$ ANY ALPHANUMERIC CHARACTER
- * IIIB OCTAL VALUE OF AN *ASCII* CHARACTER
- * XHH HEXADECIMAL VALUE OF AN *ASCII* CHARACTER
- * T ALPHANUMERIC DISPLAY CODE CHARACTER OR DECIMAL VALUE
- SPACE 4,10
- *** DAYFILE MESSAGES.
- *
- * * ATTRIBUTE COMMANDS MUST BE OF ONE NETWORK TYPE.*
- * ATTRIBUTES UNIQUE TO BOTH NAM/CCP AND NAM/CDNA
- * WERE ENTERED ON ONE *TRMDEF* REQUEST.
- *
- * * ERROR IN TRMDEF ARGUMENT.*
- * THE COMMAND CONTAINED INCORRECT SYNTAX OR AN
- * UNKNOWN PARAMETER.
- *
- * * INCORRECT JOB ORIGIN TYPE FOR TRMDEF.*
- * THE JOB ORIGIN TYPE OF THE JOB REQUESTING *TRMDEF*
- * WAS NOT TIME-SHARING.
- *
- * * INCORRECT TERMINAL TYPE FOR TRMDEF.*
- * THE *TRMDEF* REQUEST CAME FROM A TERMINAL WHICH WAS
- * NOT A NETWORK TERMINAL.
- *
- * * LITERAL STRING IS NOT ALLOWED FOR THIS PARAMETER.*
- * LITERAL STRING PROCESSING HAS BEEN DISABLED FOR
- * THE CDCNET PARAMETERS CRS, EOS, FFS, LFS, TFC, AND
- * TTC.
- *
- * * NETWORK TYPE DOES NOT SUPPORT ATTRIBUTE COMMAND.*
- * THE *TRMDEF* REQUEST CAME FROM A TERMINAL THAT WAS
- * OF A DIFFERENT NETWORK TYPE THAN THE PARAMETERS
- * ENTERED.
- *
- * * TRMDEF COMPLETE.*
- * INDICATES COMMAND PROCESSED WITH NO ERRORS.
- * OUTPUT WRITTEN TO FILE AS DETERMINED BY *L* PARAMETER.
- *
- * * TRMDEF ERRORS.*
- * AN INCORRECT VALUE WAS ENTERED FOR ONE OR MORE
- * PARAMETERS. ADDITIONAL ERROR MESSAGES ARE WRITTEN
- * TO THE FILE SPECIFIED BY THE *L* PARAMETER.
- TITLE MACRO DEFINITIONS.
- ** VSS - SET UP FIELD VALUE, WORD COUNT, AND EQUIVALENCE
- * CODE FOR ABBREVIATED AND FULL ATTRIBUTE VALUES.
- *
- * VSS STRINGA,STRINGB,S
- *
- * ENTRY *STRINGA* = ABBREVIATED CHARACTER STRING.
- * *STRINGB* = FULL CHARACTER STRING.
- * *S* = FIELD VALUE FLAG.
- PURGMAC VSS
- VSS MACRO STRINGA,STRINGB,S
- V1 MICRO 1,10,*STRINGA*
- V2 MICRO 1,10,*STRINGB*
- V3 MICRO 11,10,*STRINGB*
- LEN SET 1
- .A IFC NE,*"V3"**
- LEN SET 2
- .A ENDIF
- .B IFC NE,*S**
- VAL SET 0
- .B ELSE
- VAL SET VAL+1
- .B ENDIF
- VFD 24/0,18/VAL+4000B,18/1
- VFD 60/0L"V1"
- .C IFC EQ,*"V2"**
- VFD 24/0,18/VAL+4000B,18/2
- .C ELSE
- VFD 24/0,18/VAL+4000B,18/LEN
- VFD 60/0L"V2"
- .D IFC NE,*"V3"**
- VFD 60/0L"V3"
- .D ENDIF
- .C ENDIF
- ENDM
- TITLE ASSEMBLY CONSTANTS AND FETS.
- SPACE 4,10
- **** ASSEMBLY CONSTANTS.
- CBUFL EQU 40 PARAMETER STRING BUFFER LENGTH - CCP
- DBUFL EQU 40 PARAMETER STRING BUFFER LENGTH - CDNA
- OBUFL EQU 120 OUTPUT BUFFER LENGTH
- TTPVL EQU 50D PARAMETER VALUE TABLE LENGTH
- LTCN EQU 18D LARGEST TERMINAL CLASS + 1
- TCNT EQU 3 TRANSMISSION CODE FOR NETWORK TERMINAL
- TTFN EQU 0 INDEX INTO TFLD TABLE--FIRST WORD
- TFVR EQU 1 INDEX INTO TFLD TABLE--SECOND WORD
- TFLG EQU 2 LENGTH OF TABLE ENTRY
- * TERMINAL DEFINITION FIELD NUMBERS.
- * CONTROL BYTE 0016B FIELD NUMBERS
- ABFN EQU 4051B *AB*
- BRFN EQU 4063B *BR*
- BSFN EQU 4047B *BS*
- B1FN EQU 4052B *B1*
- B2FN EQU 4053B *B2*
- CBFN EQU 4102B *EB=XX*
- CCFN EQU 4056B *CI=CA*
- CIFN EQU 4054B *CI*
- CLFN EQU 4077B *EL=XX*
- CNFN EQU 4046B *CN*
- CPFN EQU 4107B *CP*
- CTFN EQU 4050B *CT*
- C1FN EQU 4071B *DL/XL=CNNNN*
- C2FN EQU 4072B *DL/XL=CNNNN*
- EBFN EQU 4101B *EB=EB/EL*
- ELFN EQU 4076B *EL=EB/EL*
- EPFN EQU 4061B *EP*
- FAFN EQU 4067B *FA*
- HDFN EQU 4041B *HD*
- ICFN EQU 4103B *IC*
- INFN EQU 4065B *IN*
- LIFN EQU 4055B *LI*
- LCFN EQU 4057B *LI=CA*
- LKFN EQU 4040B *LK*
- MXFN EQU 4106B *MMXPT*
- OCFN EQU 4104B *OC*
- OPFN EQU 4066B *OP*
- PAFN EQU 4062B *PA*
- PGFN EQU 4045B *PG*
- PLFN EQU 4044B *PL*
- PWFN EQU 4043B *PW*
- SEFN EQU 4060B *SE*
- TCFN EQU 4042B *TC*
- TOFN EQU 4074B *XL=TO*
- XBFN EQU 4100B *EB=XHH*
- XHFN EQU 4073B *DL/XL=XHH*
- XLFN EQU 4075B *EL=XHH*
- XPFN EQU 4064B *XPT*
- YHFN EQU 4105B *XL=YHH*
- * CONTROL BYTE 0010B ATTRIBUTE NUMBERS
- IOMF EQU 4201B *IOM*
- IEMF EQU 4202B *IEM*
- TCMF EQU 4203B *TCM*
- TFCF EQU 4204B *TFC*
- TTCF EQU 4205B *TTC*
- TTMF EQU 4206B *TTM*
- TLMF EQU 4207B *TLM*
- TMLF EQU 4210B *TML*
- PCFF EQU 4211B *PCF*
- ACAF EQU 4212B *ACA*
- BKAF EQU 4213B *BKA*
- IBSF EQU 4214B *IBS*
- SNDF EQU 4215B *SND*
- SBCF EQU 4216B *SBC*
- NCCF EQU 4300B *NCC*
- CLCF EQU 4301B *CLC*
- ELCF EQU 4302B *ELC*
- BLCF EQU 4303B *BLC*
- BCFN EQU 4304B *BC*
- EPCF EQU 4305B *EPC*
- ACCF EQU 4306B *AC*
- PL2F EQU 4307B *PL*
- PW2F EQU 4310B *PW*
- HPFN EQU 4311B *HP*
- HPOF EQU 4312B *HPO*
- FLFN EQU 4313B *FL*
- EOSF EQU 4314B *EOS*
- CRSF EQU 4315B *CRS*
- LFSF EQU 4316B *LFS*
- FFSF EQU 4317B *FFS*
- EPAF EQU 4320B *EPA*
- CRDF EQU 4321B *CRD*
- LFDF EQU 4322B *LFD*
- FFDF EQU 4323B *FFD*
- ELPF EQU 4324B *ELP*
- EPPF EQU 4325B *EPP*
- CFCF EQU 4326B *CFC*
- TMFN EQU 4327B *TM*
- CSFN EQU 4330B *CS*
- PPFN EQU 4331B *P*
- EEFN EQU 4332B *E*
- SAFN EQU 4333B *SA*
- RAFN EQU 4334B *RA*
- FKCF EQU 4337B *FKC*
- ****
- SPACE 4
- *CALL COMCMAC
- *CALL COMSEJT
- SPACE 4
- ORG 110B
- * FETS.
- FETS BSS 0
- O BSS 0 OUTPUT FILE FET
- OUTPUT FILEB OBUF,OBUFL,FET=8
- Z BSS 0 TERMINAL FILE FET
- ZZZZZG0 FILEB TMES,TMESL+1,DTY=2RTT
- TITLE MAIN PROGRAM.
- * VALIDATE JOB ORIGIN AND TERMINAL TYPE.
- TRMDEF SB1 1
- SA1 JOPR GET JOB ORIGIN TYPE
- MX0 -12
- LX1 -24
- BX1 -X0*X1
- SX2 X1-TXOT TIME-SHARING ORIGIN CODE
- NZ X2,ERR2 IF NOT *TXOT* JOB ORIGIN TYPE
- TSTATUS TRMB GET TERMINAL STATUS
- SA4 TRMB+1 GET CONNECTION STATUS
- MX0 -6
- LX4 12
- BX6 -X0*X4
- SX2 X6-NICS
- ZR X2,ERR1 IF NOT INTERACTIVE
- SX2 X6-DTCS
- NZ X2,TRM0 IF NOT DETACHED
- REQUEST Z,U,N ASSIGN FILE TO TERMINAL
- WRITEW Z,TMES,TMESL
- WRITER Z,R CAUSE SUSPENSION
- RETURN Z,R
- EQ TRMDEF REISSUE REQUEST
- TRM0 LX4 -24 GET TRANSMISSION CODE
- BX2 -X0*X4
- SX3 X2-TCNT NETWORK TERMINAL CODE
- LX4 -24
- NZ X3,ERR1 IF NOT A NETWORK TERMINAL
- MX0 -8
- BX6 -X0*X4
- SA6 A4-B1 SAVE TERMINAL CLASS
- * PROCESS COMMAND ARGUMENTS.
- SB2 CCDR COMMAND
- RJ USB UNPACK DATA BLOCK TO STRING BUFFER
- TRM0.1 SA1 B6+ SKIP PREFIX $, /, SPACE
- SX1 X1-1R9-1
- NG X1,TRM0.2 IF ALPHANUMERIC CHARACTER
- SB6 B6+1
- EQ TRM0.1 CHECK NEXT CHARACTER
- TRM0.2 RJ POP PICK OUT PARAMETER
- ZR B6,ERR3 IF NO ARGUMENTS
- RJ PCS PROCESS COMMAND
- NZ X1,ERR3 IF ERROR IN ARGUMENTS
- SB6 B0+ INITIALIZE TABLE INDEX
- SX6 B0+ TERMINATE PARAMETER TABLE
- SA6 X5+B1
- * VALIDATE EACH PARAMETER FOR CORRECT ARGUMENT TYPE.
- TRM1 SA1 TTPV+B6 GET PARAMETER
- ZR X1,TRM9 IF END OF PARAMETERS
- SB7 X1+ INDEX
- RJ CAS CHECK IF ATTRIBUTE SUPPORTED
- NG X2,TRM8 IF ATTRIBUTE UNSUPPORTED
- RJ SAF SET ATTRIBUTE FLAGS
- SA1 TTPV+B6+1 GET PARAMETER VALUE
- MX0 42
- BX1 X0*X1 ISOLATE VALUE
- SA2 TTFN+B7 GET TABLE ENTRY
- SB5 X2
- SX6 B0 CLEAR MULTIPLE PARAMETER FLAG
- NE B5,B1,TRM2 IF NOT MULTIPLE PARAMETER
- RJ PMP PROCESS MULTIPLE PARAMETER
- NZ X3,TRM9 IF ERROR IN PARAMETER
- TRM2 SA6 PMPA SET MULTIPLE PARAMETER FLAG
- ZR B5,TRM6 IF EXPECTING A DECIMAL NUMBER
- NG B5,TRM3 IF EXPECTING A CHARACTER
- SB2 10B
- EQ B2,B5,ERR6.2 IF PARAMETER DISABLED
- GT B5,B2,TRM2.2 IF EQUIVALENCE VALUE
- SB2 B2-B1
- EQ B2,B5,TRM2.1 PROCESS DOUBLE OCTET
- SB2 B2-B1
- EQ B2,B5,TRM3 IF *TTC* OR *TFC*
- RJ VCP VARIABLE CHARACTER PROCESSOR
- EQ TRM8 PROCESS NEXT PARAMETER
- TRM2.1 RJ PDO PROCESS DOUBLE OCTET
- EQ TRM8 PROCESS NEXT PARAMETER
- TRM2.2 SX6 B0+ CLEAR VALUE
- RJ PEV PROCESS EQUIVALENCE VALUE
- ZR X4,ERR4 IF NO EQUIVALENCE FOUND
- EQ TRM7 CONTINUE PROCESSING
- * PROCESS CHARACTER
- TRM3 RJ PCP PROCESS CHARACTER PARAMETER
- NZ X4,ERR4 IF ERROR ON PARAMETER
- PL B5,TRM8 IF *TTC* OR *TFC*
- * SET UP FIELD NUMBER/FIELD VALUE PAIR.
- TRM4 SA1 PMPA
- SA2 TMPV+B7 GET FIELD NUMBER
- LX2 18
- NZ X1,TRM5 IF MULTIPLE PARAMETER
- SA2 TTFN+B7 GET FIELD NUMBER
- LX2 18
- PL X2,TRM5 IF NOT *LI* OR *CI* PARAMETER
- MX0 -48
- BX2 -X0*X2
- TRM5 SX4 X6+4000B FIELD VALUE
- AX2 36
- MX0 -12
- BX2 -X0*X2
- SB2 B1 INDICATE VALIDATE RANGE
- EQ TRM7 ENTER INTO BUFFER
- * PROCESS DECIMAL NUMBER
- TRM6 BX5 X1 DECIMAL NUMBER TO BE CONVERTED
- RJ DXB DISPLAY CODE TO BINARY CONVERSION
- ZR X4,TRM4 IF NO ERROR IN CONVERSION
- SA2 PMPA
- NZ X2,ERR4 IF MULTIPLE PARAMETER
- SA2 TTFN+B7 GET TABLE ENTRY
- LX2 18
- PL X2,ERR4 IF NOT *CI* OR *LI* PARAMETER
- SA1 TTPV+B6+1 GET ARGUMENT
- MX0 42
- BX1 X0*X1
- LX1 12
- SX6 X1-2RCA
- NZ X6,ERR4 IF NOT *CA* ARGUMENT
- SX4 4001B FIELD VALUE FOR *CA*
- MX0 12
- BX2 X0*X2
- LX2 11-59 FIELD NUMBER
- SB2 -B1 INDICATE DO NOT VALIDATE RANGE
- * ENTER FIELD NUMBER/FIELD VALUE PAIR INTO BUFFER.
- TRM7 RJ VFT VALIDATE FIELD VALUE
- NG X6,ERR4 IF INCORRECT FIELD VALUE
- RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- TRM8 SB6 B6+2 INCREMENT TABLE INDEX
- EQ TRM1 PROCESS NEXT PARAMETER
- * COMPLETE PROCESSING.
- TRM9 SA1 TRMC GET ERROR COUNT
- NZ X1,ERR7 IF ERROR ON COMMAND
- ZR B6,ERR3 IF NO CHANGES ENTERED
- RJ CCT CHECK CONNECTION TYPE
- NZ X1,ERR1 IF NO NETWORK CONNECTION
- RJ CAF CHECK ATTRIBUTE FLAGS
- NZ X5,ERR6 IF ATTRIBUTE MIX ERROR
- NZ X7,ERR6.1 IF CONNECTION TYPE ERROR
- NZ X3,TRM10 IF CONTROL BYTE 0010B SEQUENCE
- RJ PPS PACK PARAMETER STRING - CCP
- EQ TRM11 IF CONTROL BYTE 0016B SEQUENCE
- TRM10 SA1 TRMG GET SPECIAL ERROR COUNT
- NZ X1,ERR7 IF *PL* OR *PW* ERROR
- RJ PPT PACK PARAMETER STRING - CDNA
- TRM11 WRITEW O,OBUF,B7 OUTPUT PARAMETER STRING
- * IT IS NECESSARY TO SPECIFY RECALL ON THE FOLLOWING *WRITER*
- * IN ORDER TO ASSURE THAT THE DAYFILE MESSAGE FOLLOWING IT
- * IS SENT BACK TO THE TERMINAL. USING RECALL PREVENTS THE
- * DAYFILE MESSAGE FROM BEING APPENDED TO THE *0016* CONTROL
- * BYTE PARAMETER STRING AND THEN LOST DURING PROCESSING BY
- * *1TO*.
- WRITER O,R
- MESSAGE (=C* TRMDEF COMPLETE.*),3
- TRM12 ENDRUN
- TRMA CON 1 INDEX TO *CBUF*
- TRMB BSS 2 TERMINAL CLASS FOR VALIDATION
- TRMC CON 0 ERROR COUNT
- TRMD CON 1 INDEX TO *DBUF*
- TRMF CON 0,0,0 NETWORK ATTRIBUTE FLAGS
- TRMG CON 0 SPECIAL ERROR COUNT
- * ERROR MESSAGES ISSUED.
- ERR1 MESSAGE (=C* INCORRECT TERMINAL TYPE FOR TRMDEF.*)
- EQ ERR8 END PROCESSING
- ERR2 MESSAGE (=C* INCORRECT JOB ORIGIN TYPE FOR TRMDEF.*)
- EQ TRM12 END PROCESSING
- ERR3 MESSAGE (=C* ERROR IN TRMDEF ARGUMENT.*)
- EQ ERR8 END PROCESSING
- ERR4 SA3 PMPA
- ZR X3,ERR5 IF NOT MULTIPLE PARAMETER
- SA1 TMPV+B7 GET TABLE ENTRY
- MX0 6
- BX1 X0*X1 GET PARAMETER OPTION
- LX1 -12
- LX0 -12
- SA2 BEMC+BEMCL-1 CREATE MULTI-VALUE ERROR MESSAGE
- BX2 -X0*X2
- BX6 X1+X2
- SA1 PMPC
- SB5 X1
- SA6 A2
- SA2 BEMC
- SA1 TTFN+B5 GET TABLE ENTRY
- RJ BEM BUILD ERROR MESSAGE
- SA2 =4L- RESTORE ERROR MESSAGE
- BX2 X6
- SA6 BEMC+BEMCL-1
- EQ TRM8 PROCESS NEXT PARAMETER
- ERR5 SA2 BEMC
- SA1 TTFN+B7
- RJ BEM BUILD ERROR MESSAGE
- EQ TRM8 PROCESS NEXT PARAMETER
- ERR6 MESSAGE MSG1
- EQ ERR7 END PROCESSING
- ERR6.1 MESSAGE MSG2
- EQ ERR7 END PROCESSING
- ERR6.2 MESSAGE MSG3
- ERR7 WRITEW O,OBUF,X1
- WRITER O,R
- MESSAGE (=C* TRMDEF ERRORS.*)
- ERR8 ABORT
- MSG1 DATA C* ATTRIBUTE COMMANDS MUST BE OF ONE NETWORK TYPE.*
- MSG2 DATA C* NETWORK TYPE DOES NOT SUPPORT ATTRIBUTE COMMAND.*
- MSG3 DATA C* LITERAL STRING IS NOT ALLOWED FOR THIS PARAMETER.*
- TITLE SUBROUTINES.
- BEM SPACE 4,15
- ** BEM - BUILD ERROR MESSAGE.
- *
- * ENTRY (X1) = ATTRIBUTE MNEMONIC.
- * (A2) = ADDRESS OF ERROR MESSAGE TEXT.
- *
- * EXIT (TRMC) UPDATED.
- *
- * USES X - 1, 2, 3, 6, 7.
- * A - 2, 3, 6, 7.
- * B - 5.
- BEM SUBR ENTRY/EXIT
- SB5 BEMAL LENGTH OF ERROR MESSAGE
- ERRNZ BEMAL-BEMCL MESSAGE NOT SAME LENGTH
- MX6 18
- BX1 X6*X1 GET ATTRIBUTE
- SA3 TRMC GET BUFFER INDEX
- BX6 X2 FORM ERROR MESSAGE
- SX7 X3+B5 UPDATE BUFFER INDEX
- SA6 X3+OBUF ENTER INTO OUTPUT BUFFER
- SB5 B5-B1
- SA7 A3 RESET INDEX
- BEM3 SA2 A2+B1 GET NEXT WORD OF ERROR MESSAGE
- SB5 B5-B1
- BX6 X2
- SA6 A6+B1 ENTER INTO OUTPUT BUFFER
- NE B5,B1,BEM3 IF NOT LAST WORD OF ERROR MESSAGE
- SA2 A2+B1 PLACE ATTRIBUTE MNEMONIC IN MESSAGE
- LX1 36
- BX6 X1+X2
- SA6 A6+B1
- EQ BEMX RETURN BUILT ERROR MESSAGE
- BEMA DATA 10LUNSUPPORTE
- DATA 10LD ATTRIBUT
- DATA 4LE -
- BEMAL EQU *-BEMA
- BEMC DATA 10LINCORRECT
- DATA 10LVALUE FOR
- DATA 4L-
- BEMCL EQU *-BEMC
- CAF SPACE 4,15
- ** CAF - CHECK ATTRIBUTE FLAGS.
- *
- * ENTRY (X2) = CONNECTION STATUS.
- *
- * EXIT IF (X3) = 0 THEN BUILD CONTROL BYTE 0016B.
- * = 1 THEN BUILD CONTROL BYTE 0010B.
- * IF (X5) = 0 THEN NO ERROR.
- * = 1 THEN ATTRIBUTE MIX ERROR.
- * IF (X7) = 0 THEN NO ERROR.
- * = 1 THEN CONNECTION TYPE ERROR.
- *
- * USES X - 3, 4, 5, 7.
- * A - 4.
- *
- * DEFINE (TRMF) = CCP FLAG.
- * (TRMF+1) = CDNA FLAG.
- * (TRMF+2) = COMMON FLAG.
- CAF SUBR ENTRY/EXIT
- BX3 X3-X3 INITIALIZE FLAGS
- BX5 X5-X5
- BX7 X7-X7
- SA4 TRMF
- NZ X4,CAF5 IF CCP ATTRIBUTE ON LIST
- SA4 TRMF+1
- NZ X4,CAF3 IF CDNA ATTRIBUTE ON LIST
- SA4 TRMF+2
- NZ X4,CAF1 IF COMMON ATTRIBUTE ON LIST
- SX5 B1 SET ATTRIBUTE MIX ERROR FLAG
- EQ CAFX RETURN (F,F,F)
- CAF1 NZ X2,CAF2 IF NAM/CDNA CONNECTION
- EQ CAFX RETURN (F,F,T - CCP)
- CAF2 SX3 B1+
- EQ CAFX RETURN (F,F,T - CDNA)
- CAF3 NZ X2,CAF4 IF NAM/CDNA CONNECTION
- SX7 B1+ SET CONNECTION TYPE ERROR FLAG
- EQ CAFX RETURN (F,T,TF - CCP)
- CAF4 SX3 B1+
- EQ CAFX RETURN (F,T,TF - CDNA)
- CAF5 SA4 TRMF+1
- NZ X4,CAF6 IF CDNA ATTRIBUTE ON LIST
- EQ CAFX RETURN (T,F,TF - XOR)
- CAF6 SX5 B1+ SET ATTRIBUTE MIX ERROR FLAG
- EQ CAFX RETURN (T,T,TF - XOR)
- CAS SPACE 4,15
- ** CAS - CHECK IF ATTRIBUTE IS SUPPORTED.
- *
- * ENTRY (B7) = INDEX TO *TFLD* TABLE.
- *
- * EXIT (X2) = .GE. 0 ATTRIBUTE SUPPORTED.
- * .LT. 0 ATTRIBUTE UNSUPPORTED.
- *
- * USES X - 1, 2.
- * A - 1, 2.
- CAS SUBR ENTRY/EXIT
- SA2 TFVR+B7 ATTRIBUTE SUPPORT CHECK
- LX2 59-36 ISOLATE FLAG BIT
- PL X2,CASX IF ATTRIBUTE SUPPORTED
- SA2 BEMA *UNSUPPORTED ATTRIBUTE*
- SA1 TTFN+B7
- RJ BEM BUILD ERROR MESSAGE
- SX2 -1 SET UNSUPPORTED EXIT CONDITION
- EQ CASX COMPLETE PROCESSING
- CCT SPACE 4,15
- ** CCT - CHECK CONNECTION TYPE.
- *
- * ENTRY NONE.
- *
- * EXIT IF (X1) = 0 THEN NO ERROR.
- * IF (X2) = 0 THEN NAM/CCP CONNECTION.
- * = 1 THEN NAM/CDNA CONNECTION.
- *
- * USES X - 0, 1, 2, 4.
- * A - 1, 4.
- CCT SUBR ENTRY/EXIT
- BX1 X1-X1 CLEAR ERROR FLAG
- SA4 TRMB+1 GET CONNECTION TYPE
- MX0 -3
- LX4 6
- BX4 -X0*X4
- ZR X4,CCT1 IF NO NAM CONNECTION
- SX4 X4-1
- ZR X4,CCT2 IF NAM/CCP CONNECTION
- SX4 X4-1
- ZR X4,CCT3 IF NAM/CDNA CONNECTION
- CCT1 SX1 B1+ SET ERROR FLAG
- EQ CCTX RETURN
- CCT2 BX2 X2-X2 NAM/CCP CONNECTION
- EQ CCTX RETURN
- CCT3 SX2 B1+ NAM/CDNA CONNECTION
- EQ CCTX RETURN
- EFP SPACE 4,15
- ** EFP - ENTER FIELD NUMBER/FIELD VALUE PAIR INTO BUFFER.
- *
- * *EFP* CREATES THE PARAMETER STRING FOR CONTROL BYTE 0016B
- * DATA STREAM PROCESSING.
- *
- * ENTRY (X2) = FIELD NUMBER.
- * (X4) = FIELD VALUE.
- * (TRMA) = INDEX TO BUFFER.
- * (CBUF) = BUFFER OF FIELD NUMBER/FIELD VALUE PAIRS.
- *
- * EXIT (TRMA) UPDATED.
- *
- * USES X - 5, 6, 7.
- * A - 5, 6, 7.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- * (B7) = INDEX INTO TABLES.
- EFP SUBR ENTRY/EXIT
- SA5 TRMA BUFFER INDEX
- BX6 X2
- BX7 X4
- SA6 X5+CBUF ENTER FIELD NUMBER INTO BUFFER
- SX6 X5+2 INCREMENT INDEX
- SA7 A6+B1 ENTER FIELD VALUE INTO BUFFER
- SA6 A5 RESET BUFFER INDEX
- EQ EFPX RETURN
- EFQ SPACE 4,15
- ** EFQ - ENTER ATTRIBUTE NUMBER/ATTRIBUTE VALUE PAIR.
- *
- * *EFQ* CREATES THE PARAMETER STRING FOR CONTROL BYTE 0010B
- * DATA STREAM PROCESSING.
- *
- * ENTRY (X2) = ATTRIBUTE NUMBER.
- * (X4) = ATTRIBUTE VALUE.
- * (TRMD) = INDEX TO BUFFER.
- * (DBUF) = BUFFER OF ATTRIBUTE NUMBER/ATTRIBUTE VALUE
- * PAIRS.
- *
- * EXIT (TRMD) UPDATED.
- *
- * USES X - 5, 6, 7.
- * A - 5, 6, 7.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- * (B7) = INDEX INTO TABLES.
- EFQ SUBR ENTRY/EXIT
- SA5 TRMD BUFFER INDEX
- BX6 X2
- RJ SPC SPECIAL PAGE CHECKS FOR CDNA
- SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
- SX6 X5+3 INCREMENT INDEX
- SX7 4001B ENTER DEFAULT OCTET COUNT
- SA7 A6+B1 ENTER COUNT INTO BUFFER
- BX7 X4
- SA7 A6+2 ENTER FIELD VALUE INTO BUFFER
- SA6 A5 RESET BUFFER INDEX
- EQ EFQX RETURN
- HCP SPACE 4,15
- ** HCP - HEXADECIMAL CHARACTER PROCESSOR.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (X2) = FIELD NUMBER.
- * (A1) = PARAMETER FWA.
- * (B2) = PARAMETER WORD COUNT.
- * (B5) = RANGE IDENTIFIER (SEE VCP).
- *
- * EXIT CONTROL BYTE 0010 UPDATED.
- *
- * USES X - ALL.
- * A - 1, 3, 5, 6, 7.
- * B - 2, 3, 4, 6.
- *
- * CALLS EFQ, HXB.
- HCP SUBR ENTRY/EXIT
- MX0 6 DELETE HEX FLAG
- BX6 -X0*X1
- LX6 6
- SA6 A1
- EQ B2,B1,HCP2 IF VALUE IS FIVE (HEX) CHARACTERS OR LESS
- SA3 A1 ENSURE CHARACTERS NOT SPLIT ACROSS WORDS
- SB3 B2-B1
- HCP1 SB3 B3-B1
- SA5 A3
- SA3 A3+B1
- BX4 X0*X3
- LX4 6
- BX6 X5+X4 ADD LOWER HALF OF HEX CHARACTER
- SA6 A5
- BX7 -X0*X3
- LX7 6
- SA7 A3
- NZ B3,HCP1 IF NOT FINISHED
- HCP2 SB3 3
- SB4 B1 WORD COUNT TO COMPARE
- SA5 A1 RANGE COMPARISON WORD
- MX0 48
- EQ B5,B3,HCP3 IF RANGE OF 0-4 CHARACTERS
- SB3 B3-B1
- MX0 24
- EQ B5,B3,HCP3 IF RANGE OF 0-2 CHARACTERS
- SB3 B3+B3
- SB4 B1+B1
- SA5 A1+B1
- EQ B5,B3,HCP3 IF RANGE OF 0-7 CHARACTERS
- SB3 B3+B1 IF RANGE OF 0-25 CHARACTERS
- SA5 A1+B3
- SB4 B3+B1
- MX0 0
- HCP3 GT B2,B4,ERR5 IF TOO MANY CHARACTERS
- BX4 -X0*X5
- MX0 12
- LT B2,B4,HCP4 IF FEWER WORDS THAN MAXIMUM
- NZ X4,ERR5 IF TOO MANY CHARACTERS
- HCP4 SA1 A1 GET WHOLE PARAMETER VALUE
- NZ X1,HCP5 IF AT LEAST ONE CHARACTER
- BX6 X2 ENTER ATTRIBUTE NUMBER ONLY
- SA5 TRMD GET BUFFER INDEX
- SX7 4000B
- SA6 X5+DBUF
- SX6 X5+2
- SA7 A6+B1
- SA6 A5
- EQ HCPX RETURN
- HCP5 BX7 X2 PRESERVE X2
- BX5 X0*X1
- RJ HXB
- NZ X4,ERR4 IF ERROR ON PARAMETER
- BX2 X7
- SA0 B1 SET OCTET COUNTER
- SX4 X6+4000B
- RJ EFQ
- BX1 -X0*X1 CLEAR CHARACTER
- LX1 12
- ZR X1,HCP7 IF NO MORE CHARACTERS REMAIN
- HCP6 BX5 X0*X1
- RJ HXB
- NZ X4,ERR4 IF ERROR ON PARAMETER
- SX7 X6+4000B
- SA0 A0+B1 INCREMENT OCTET COUNTER
- SA5 TRMD GET BUFFER INDEX
- SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
- SX7 X5+B1 INCREMENT INDEX
- SA7 A5
- BX1 -X0*X1
- LX1 12
- NZ X1,HCP6 IF MORE CHARACTERS REMAIN
- HCP7 SB2 B2-B1
- ZR B2,HCP8 IF PROCESSING COMPLETE
- SB6 B6+B1
- SA1 TTPV+B6+1
- NZ X1,HCP6 IF NOT THROUGH WITH PARAMETER
- HCP8 SA5 TRMD GET OCTET COUNT BYTE
- SX6 A0+B1
- IX5 X5-X6
- SX7 A0+4000B
- SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
- EQ HCPX RETURN
- PCP SPACE 4,15
- ** PCP - PROCESS CHARACTER PARAMETER VALUE.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (B7) = INDEX INTO TABLES.
- * (B5) = *TTC*/*TFC* FLAG.
- *
- * EXIT (X4) .NE. 0 IF ERROR IN PARAMETER.
- * (X6) = CONVERTED CHARACTER.
- * (B7) RESTORED.
- * (B5) RESTORED.
- *
- * USES X - 0, 1, 2, 4, 5, 6, 7.
- * A - 0, 1, 2, 5, 6, 7.
- * B - 4, 5, 6, 7.
- *
- * CALLS DXB, HXB.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- PCP5 SX6 A0
- IX5 X5-X6
- SX7 X6+4000B
- SA7 X5+DBUF
- PCP SUBR ENTRY/EXIT
- SX7 B5+
- SA7 PCPB
- NG B5,PCP0 IF NOT *TTC* OR *TFC*
- ZR X1,ERR5 IF NOTHING ENTERED
- SA2 TTFN+B7
- MX0 -12
- AX2 18
- BX6 -X0*X2 FIELD NUMBER ISOLATED
- SA5 TRMD
- SA0 B0 INITIALIZE OCTET COUNTER
- SA6 X5+DBUF
- SX7 4000B
- SA7 A6+B1
- SX6 X5+2
- SA6 A5
- PCP0 MX0 -54
- BX4 -X0*X1
- SA2 PMPA
- NZ X2,PCP1 IF MULTIPLE PARAMETER
- ZR X4,PCP3 IF SINGLE CHARACTER ENTERED
- BX2 X0*X1
- LX2 6
- SX4 X2-1RX
- ZR X4,PCP2 IF *XHH* ARGUMENT
- BX5 X1
- SX7 B7
- SA7 PCPA SAVE TABLE INDEX
- SB7 0 ASSUME OCTAL BASE FOR CONVERSION
- RJ DXB DISPLAY CODE TO BINARY CONVERSION
- SA2 PCPA RESTORE TABLE INDEX
- SB7 X2+
- EQ PCP4 CHECK FOR *TTC* OR *TFC*
- PCP1 BX2 X0*X1
- BX5 -X0*X1
- SX4 B1 RETURN AN ERROR
- LX2 6
- ZR X5,PCPX IF NO CHARACTER WAS SPECIFIED
- SX4 X2-1RX
- ZR X4,PCP2 IF *XHH* ARGUMENT
- SX4 X2-1RY
- ZR X4,PCP2 IF *YHH* ARGUMENT
- EQ PCPX RETURN
- PCP2 MX0 -42
- BX4 -X0*X1
- NZ X4,PCPX IF TOO MANY CHARACTERS ENTERED
- MX0 -54
- BX5 -X0*X1
- LX5 6
- RJ HXB HEX DISPLAY CODE TO BINARY CONVERSION
- EQ PCP4 CHECK FOR *TTC* OR *TFC*
- PCP3 LX1 6
- SA2 X1+TVXD GET OCTAL EQUIVALENT
- LX2 0-18
- MX0 -12
- BX6 -X0*X2 FIELD VALUE
- PCP4 SA2 PCPB *TTC*/*TFC* FLAG
- SB5 X2
- SA0 A0+B1
- NG B5,PCPX IF NOT *TTC* OR *TFC*
- SB4 A0-4
- GT B4,ERR5 IF TOO MANY CHARACTERS
- SA5 TRMD
- SX6 X6+4000B
- SA6 X5+DBUF
- SX7 X5+B1
- SA7 A5
- SA2 TTPV+B6
- SA1 A2+2
- BX2 X2-X1
- NZ X2,PCP5 IF NEXT ENTRY NOT *TTC* OR *TFC*
- SA1 A1+B1 GET PARAMETER VALUE
- SB6 B6+2
- EQ PCP0 CHECK NEXT ENTRY
- PCPA BSS 1 TEMPORARY STORAGE FOR TABLE INDEX
- PCPB BSS 1 *TTC*/*TFC* FLAG
- PCS SPACE 4,20
- ** PCS - PROCESS COMMAND ARGUMENTS.
- *
- * ENTRY (B6) = ADDRESS OF STRING BUFFER.
- * = 0 IF NO MORE PARAMETERS.
- * SET BY *POP*.
- *
- * EXIT *TTPV* TABLE BUILT.
- * OUTPUT FILE NAME SET.
- * (X1) .NE. 0 IF ERROR.
- * (X5) = ADDRESS OF LAST ENTERED PARAMETER IF NO ERROR.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 3, 4, 6, 7.
- * B - 3.
- *
- * CALLS POP.
- PCS SUBR ENTRY/EXIT
- SX1 B0+ CLEAR ERROR
- SX5 TTPV-1 INITIALIZE TABLE ADDRESS
- PCS1 ZR B6,PCSX IF NO MORE ARGUMENTS
- RJ POP PICK OUT NEXT PARAMETER
- MX1 18
- NG B5,PCSX IF ERROR
- BX2 X2-X2
- * SEARCH FOR MATCH IN ARGUMENT TABLE.
- ZR X6,PCSX IF BLANK ARGUMENT
- SA3 TFLD GET FIRST OPTION
- ZR B6,PCS2 IF TERMINATOR ENCOUNTERED
- SA2 B6-B1 SEPARATOR
- PCS2 BX7 X1*X3
- ZR X3,PCSX IF END OF TABLE
- BX4 X7-X6
- SX7 A3
- SA3 A3+TFLG GET NEXT OPTION
- NZ X4,PCS2 IF NO MATCH
- SX5 X5+B1
- SA7 X5 SAVE TABLE ENTRY ADDRESS
- * PROCESS EQUIVALENCED VALUE.
- SX7 X2-1R=
- NZ X7,PCSX IF ARGUMENT NOT EQUIVALENCED
- BX4 X6 SAVE ATTRIBUTE
- PCS3 RJ POP PICK OUT VALUE
- SX1 B1+
- NG B5,PCSX IF ERROR
- RJ ZCA ZERO CHARACTER ATTRIBUTE CHECKER
- SX5 B2 RESTORE *TTPV* POINTER
- ZR X3,PCS3.1 IF BLANK ARGUMENT CHECK SKIPPED
- SA2 POPA
- ZR X2,PCSX IF BLANK ARGUMENT
- PCS3.1 BX1 X1-X1 CLEAR ERROR
- * ENTER ARGUMENT.
- SA2 X5
- SX7 X2-TFLD
- NZ X7,PCS4 IF NOT *L* PARAMETER
- SX5 X5-1 NO ENTRY FOR *L*
- SX2 3
- BX6 X6+X2
- SA6 O SET OUTPUT FILE NAME
- EQ PCS1 PROCESS NEXT PARAMETER
- PCS4 SB5 B5+B1 GET PARAMETER WORD LENGTH
- SX7 B5+ INSERT IN *TTPV* ENTRY
- LX7 59-5
- BX7 X7+X2 ADD TABLE ADDRESS
- SA7 A2
- SB2 B0+
- PCS5 SA4 POPA+B2 SAVE PARAMETER VALUE
- SX5 X5+B1
- BX7 X4
- SA7 X5
- SB2 B2+1
- SB5 B5-B1
- NZ B5,PCS5 IF NOT THROUGH WITH PARAMETER
- ZR B6,PCS1 IF TERMINATOR ENCOUNTERED
- SA4 B6-B1 SEPARATOR
- SX7 X4-1R/
- NZ X7,PCS1 IF NOT A MULTI VALUE PARAMETER
- SX5 A2+2 SAVE TABLE ENTRY ADDRESS
- BX7 X2
- SA7 X5
- EQ PCS3 PROCESS MULTI VALUE
- PDO SPACE 4,15
- ** PDO - PROCESS DOUBLE OCTETS.
- *
- * *PDO* ADDS A PAIR OF OCTETS TO CONTROL BYTE 0010B IF
- * THE ATTRIBUTE VALUE IS LARGER THAN WHAT CAN BE CONTAINED
- * IN EIGHT BITS. THIS ROUTINE IS APPLICABLE FOR THE
- * FOLLOWING ATTRIBUTE NAMES: CRD, FFD, IBS, LFD, TML.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (B7) = INDEX INTO TABLE.
- *
- * EXIT CONTROL BYTE 0010B UPDATED.
- *
- * USES X - 0, 2, 3, 4, 5, 6, 7.
- * A - 2, 3, 6, 7.
- *
- * CALLS DXB, EFQ, VFT.
- PDO SUBR ENTRY/EXIT
- BX5 X1 GET FIELD VALUE
- RJ DXB DISPLAY CODE TO BINARY
- SA2 TTFN+B7 GET FIELD NUMBER
- NZ X4,ERR3 IF ERROR IN TRANSLATION
- MX0 -12
- AX2 18
- BX2 -X0*X2 FIELD NUMBER ISOLATED
- RJ VFT VALIDATE FIELD VALUE
- NG X6,ERR4 IF INCORRECT FIELD VALUE
- MX0 -8
- BX4 -X0*X6 ISOLATE SECOND OCTET
- SX4 X4+4000B
- AX6 8
- BX3 -X0*X6 ISOLATE FIRST OCTET
- NZ X3,PDO1 IF TWO OCTETS REQUIRED FOR VALUE
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- EQ PDOX RETURN
- PDO1 SA5 TRMD GET BUFFER INDEX
- BX6 X2 GET FIELD NUMBER
- SX7 4002B
- SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
- SX6 X5+4 INCREMENT INDEX
- SA7 A6+B1 ENTER OCTER COUNTER INTO BUFFER
- SX7 X3+4000B GET FIRST OCTET
- SA7 A6+2 ENTER FIRST OCTET INTO BUFFER
- SX7 X4 GET SECOND OCTET
- SA7 A6+3 ENTER SECOND OCTET INTO BUFFER
- SA6 A5 RESET BUFFER INDEX
- EQ PDOX RETURN
- PEV SPACE 4,15
- ** PEV - PROCESS EQUIVALENCED VALUE ARGUMENT TYPE.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (X2) = TABLE ENTRY FROM *TFLD*.
- * (B5) = ADDRESS OF FIELD VALUE EQUIVALENCED CODE.
- *
- * EXIT (X2) = FIELD NUMBER.
- * (X4) = FIELD VALUE.
- * = 0 IF EQUIVALENCE VALUE NOT FOUND.
- * (X6) = NORMALIZED FIELD VALUE TO BE VALIDATED.
- * (B2) .GE. 0, VALIDATE FIELD VALUE RANGE.
- *
- * USES X - 0, 1, 2, 4, 6, 7.
- * A - 1, 4.
- * B - 2, 3, 4, 5, 6.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- * (B7) = INDEX INTO TABLES.
- PEV SUBR ENTRY/EXIT
- SB4 3777B SET FIELD VALUE
- SA1 TTPV+B6 GET PARAMETER WORD COUNT
- SX7 B5 PRESERVE TABLE INDEX
- AX1 54
- SB3 X1
- SA1 A1+B1 GET WHOLE PARAMETER VALUE
- PEV1 SA4 B5 GET EQUIVALENCE CODE
- ZR X4,PEVX IF NO EQUIVALENCE FOUND
- SB5 B5+B1
- SB2 X4
- SB4 B4+B1
- MX0 24
- BX0 X0*X4
- NZ X0,PEV2 IF SHORT PARAMETER
- LX4 0-18
- SB5 B5+B2
- NE B3,B2,PEV1 IF WORD COUNTS DIFFERENT
- SB4 X4 SET FIELD VALUE
- SA4 A4+B1 GET EQUIVALENCE CODE
- PEV2 BX4 X4-X1
- NZ X4,PEV1 IF NO MATCH
- SB2 B2-B1
- LE B2,PEV3 IF DONE COMPARING
- SA4 A4+B1
- SA1 A1+B1
- SB6 B6+1
- EQ PEV2 CHECK NEXT WORD
- PEV3 SX7 X7-BOOL CHECK FOR TABLE *BOOL*
- MX0 -1
- SX4 B4
- NZ X7,PEV4 IF NOT SEARCHING TABLE *BOOL*
- BX4 -X0*X4 NORMALIZE BOOLEAN VALUE
- SB4 X4+4000B
- SX4 B4
- PEV4 SB4 B4-4000B GET VALUE TO VALIDATE
- SX6 B4
- MX0 -12
- LX2 -18
- BX2 -X0*X2 FIELD NUMBER
- SB2 B1 VALIDATE RANGE
- EQ PEVX RETURN
- PMP SPACE 4,20
- ** PMP - PROCESS MULTIPLE VALUE PARAMETER.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (X2) = *TFLD* TABLE ENTRY.
- * (X6) = 0.
- * (B7) = INDEX TO *TFLD* TABLE.
- *
- * EXIT (X1) = PARAMETER FROM COMMAND.
- * (X2) = *TMPV* TABLE ENTRY.
- * (X3) = 0, IF NO ERROR IN PARAMETER FORMAT.
- * (X6) = 1, INDICATES A MULTIPLE VALUE PARAMETER.
- * (B5) = EQUIVALENCE TABLE ADDRESS.
- * (B7) = INDEX INTO *TMPV* TABLE.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
- * A - 2, 3, 6, 7.
- * B - 3, 5, 7.
- PMP SUBR ENTRY/EXIT
- SA3 PMPC GET PREVIOUS INDEX
- SB5 X3
- EQ B5,B7,PMP1 IF SAME PARAMETER
- SX7 B7 SAVE NEW INDEX
- SA7 PMPC
- PMP1 MX0 -12 GET INDEX TO *TMPV* TABLE
- AX2 18
- BX2 -X0*X2
- SB3 X2
- BX3 X1 GET FIRST CHARACTER OF PARAMETER VALUE
- MX0 6
- BX3 X0*X3
- PMP2 SA2 TMPV+B3 FIND MATCH IN TABLE
- BX4 X0*X2
- BX5 X4-X3
- ZR X5,PMP3 IF MATCH
- ZR X4,PMP3 IF POSSIBLE MATCH
- LX2 24
- NG X2,PMP5 IF END OF TABLE
- SB3 B3+B1 INCREMENT INDEX
- EQ PMP2 CHECK NEXT ENTRY FOR MATCH
- PMP3 LX4 6
- SX5 X4-1RC
- NZ X5,PMP4 IF NOT C FORMAT
- MX3 54 STRIP OFF LEADING C
- LX1 6
- BX1 X3*X1
- PMP4 SB7 B3 RETURN INDEX TO *TMPV* TABLE
- SX6 B1 SET MULTI-PARAMETER FLAG
- MX3 -18 GET TABLE ADDRESS
- BX3 -X3*X2
- SB5 X3 RETURN EQUIVALENCE TABLE ADDRESS
- SX3 B0 CLEAR ERROR FLAG
- EQ PMPX RETURN
- PMP5 SA3 TRMC INCREMENT ERROR COUNT
- SX3 X3+B1
- BX6 X3
- SA6 A3
- EQ PMPX RETURN ERROR
- PMPA CON 0 SET IF CURRENT PARAMETER HAS MULTI-VALUES
- PMPC CON 0 *TTFN* TABLE INDEX
- POP SPACE 4,15
- *** POP - PICK OUT TRMDEF PARAMETER FROM STRING BUFFER.
- *
- * A LITERAL PARAMETER IS DELIMITED BY *$*. IF THE
- * LITERAL IS TO CONTAIN A *$*, *$$* MUST BE USED.
- * EG. - $A B/C$$E$ YIELDS A B/C$E
- *
- * THE ASTERISK (*) AND UNDERLINE (_) ARE CONSIDERED TO BE
- * VALID PARAMETER CHARACTERS, NOT SEPARATORS.
- *
- * *POPL* DEFINES THE MAXIMUM PARAMETER LENGTH IN WORDS.
- *
- * NOTE - THIS ROUTINE IS A MODIFIED VERSION OF *COMCPOP*.
- *
- * ENTRY (B6) = ADDRESS TO BEGIN ASSEMBLY.
- * (USBC) = ADDRESS OF LAST CHARACTER IN STRING BUFFER.
- *
- * EXIT (X6) = LAST PART OF ASSEMBLED PARAMETER OR PARAMETER
- * IF .LT. 10 CHARACTERS.
- * (B5) = PARAMETER LENGTH (IN WORDS) - 1.
- * = NEGATIVE IF BUFFER EXHAUSTED OR ERROR.
- * (B6) = 0 IF *.* OR *)* ENCOUNTERED.
- * = POSITIVE, NEXT STRING BUFFER ADDRESS.
- * (A1) = ADDRESS OF SEPARATOR.
- * (X1) = SEPARATOR.
- * (X2) = NEGATIVE IF *.* OR *)* ENCOUNTERED
- * AND NO ERRORS.
- * = 0 IF CHARACTER ENCOUNTERED WITH
- * DISPLAY CODE GREATER THAN 57B (.).
- *
- *
- * USES A - 1, 6, 7.
- * X - 1, 2, 3, 6, 7.
- * B - 1, 2, 3, 4, 5, 6, 7.
- POP13 SB5 -1 SET ERROR FLAG
- EQ POPX RETURN
- POP14 SX3 4100B CHECK FOR VALID TERMINATOR
- BX7 X7-X7
- AX2 X3,B2
- SA6 POPA+B5 STORE PARAMETER WORD
- SB2 B4-60 CHECK FOR EMPTY ASSEMBLE REGISTER
- EQ B2,B0,POP15 IF EMPTY ASSEMBLY REGISTER
- SB2 B5-POPL CHECK PARAMETER SIZE
- PL B2,POP13 IF PARAMETER TOO LONG
- SA7 A6+1
- POP15 LX2 59 CHECK TERMINATOR
- PL X2,POP16 IF NOT *.* OR *)*
- SB6 B0 SET TERMINATOR ENCOUNTERED
- POP16 SB4 B4-60
- NE B4,B0,POPX IF NOT EMPTY ASSEMBLY REGISTER
- EQ B5,B0,POPX IF .LT. 11D CHARACTERS
- SB5 B5-1
- POP SUBR ENTRY/EXIT
- SB5 -1 SET PARAMETER LENGTH INDEX
- LE B6,POPX IF NO ASSEMBLY POINTER
- SA1 USBC GET LAST CHARACTER LOCATION
- SB7 X1+1
- POP1 SB4 60 POSITION INDEX
- BX6 X6-X6 CLEAR ASSEMBLY REGISTER
- SB5 B5+B1
- POP2 SA1 B6
- LT B6,B7,POP3 IF MORE CHARACTERS IN STRING BUFFER
- SB3 POPL
- GT B5,B3,POP13 IF BUFFER FULL
- SA6 POPA+B5
- EQ POP13 SET ERROR FLAG - NO TERMINATOR
- POP3 SX2 X1-1R
- NZ B4,POP4 IF ASSEMBLY REGISTER NOT FULL
- SA6 POPA+B5 STORE FULL WORD
- SB2 B5-POPL
- NG B2,POP1 IF PARAMETER NOT TOO LONG
- EQ POP13 SET ERROR FLAG - PARAMETER TOO LONG
- POP4 SX3 X1-1R$
- SB6 B6+1
- SB2 X1-1R9
- ZR X3,POP6 IF LITERAL PARAMETER
- SX3 X1-1R*
- ZR X3,POP5 IF CHARACTER = *
- ZR X2,POP2 IF CHARACTER = * *
- ZR X1,POP14 IF CHARACTER 00
- LE B2,POP5 IF ALPHANUMERIC
- SX3 X1-65B
- NZ X3,POP14 IF NOT UNDERLINE
- POP5 SB4 B4-6
- LX7 X1,B4
- BX6 X7+X6
- EQ POP2 CHECK NEXT CHARACTER
- POP6 SX7 B4-60 CHECK FOR DELIMITER AS FIRST CHARACTER
- SX3 X7+B5
- NZ X3,POP13 IF DELIMITER NOT FIRST CHARACTER
- POP7 SA1 B6
- SX3 X1-1R$
- SB6 B6+B1
- GT B6,B7,POP13 IF NO MORE CHARACTERS IN STRING BUFFER
- NZ X3,POP11 IF NO DELIMITER
- SA1 B6
- SX3 X1-1R$
- SB6 B6+B1
- GT B6,B7,POP10 IF NO MORE CHARACTERS IN STRING BUFFER
- ZR X3,POP11 IF DOUBLE DELIMITER
- POP8 SX3 X1-1R*
- SB2 X1-1R$
- ZR X3,POP13 IF ILLEGAL SEPARATOR
- ZR B2,POP13 IF ILLEGAL SEPARATOR
- ZR X1,POP14 IF 00 CHARACTER
- SB2 X1-1R9
- SX3 X1-1R
- LE B2,POP13 IF ALPHANUMERIC CHARACTER
- NZ X3,POP14 IF NOT BLANK
- POP9 SA1 B6
- SB6 B6+B1
- LE B6,B7,POP8 IF MORE CHARACTERS IN STRING BUFFER
- POP10 BSS 0
- EQ POP13 SET ERROR FLAG - NO TERMINATOR
- POP11 NZ B4,POP12 IF ASSEMBLY WORD NOT FULL
- SA6 POPA+B5 STORE ASSEMBLY WORD
- SB2 B5-POPL
- PL B2,POP13 IF PARAMETER TOO LONG
- SB4 60
- BX6 X6-X6
- SB5 B5+B1
- POP12 SB4 B4-6
- LX7 X1,B4
- BX6 X6+X7
- EQ POP7 CHECK NEXT CHARACTER
- POPL EQU 6 MAXIMUM PARAMETER LENGTH IN WORDS
- POPA BSS POPL+1 ASSEMBLY BUFFER
- PPS SPACE 4,15
- ** PPS - PACK PARAMETER STRING - CONTROL BYTE 0016B.
- *
- * ENTRY (TRMA) = NUMBER OF ENTRIES TO PACK.
- * (CBUF) = FIELD NUMBER/FIELD VALUE PAIRS.
- *
- * EXIT (OBUF) = PACKED CONTROL BYTE PARAMETER STRING.
- * (B7) = WORD COUNT OF PACKED STRING.
- *
- * USES X - 1, 5, 6.
- * A - 1, 5, 6.
- * B - 5, 7.
- PPS SUBR ENTRY/EXIT
- SA5 TRMA NUMBER OF ENTRIES TO PACK
- SA1 CBUF GET FIRST ENTRY TO PACK
- SB7 B0+ INDEX TO *OBUF*
- PPS1 BX6 X6-X6
- SB5 5 PACKED ENTRIES PER WORD
- PPS2 BX6 X6+X1
- SB5 B5-B1
- SA1 A1+B1 GET NEXT ENTRY TO PACK
- LX6 12
- NZ B5,PPS2 IF WORD NOT FILLED
- LX6 -12
- SA6 B7+OBUF ENTER INTO OUTPUT BUFFER
- SB7 B7+1 INCREMENT INDEX
- SX5 X5-5
- PL X5,PPS1 IF NOT END OF ENTRIES TO PACK
- EQ PPSX RETURN
- PPT SPACE 4,15
- ** PPT - PACK PARAMETER STRING - CONTROL BYTE 0010B.
- *
- * ENTRY (TRMD) = NUMBER OF ENTRIES TO PACK.
- * (DBUF) = FIELD NUMBER/FIELD VALUE PAIRS.
- *
- * EXIT (OBUF) = PACKED CONTROL BYTE PARAMETER STRING.
- * (B7) = WORD COUNT OF PACKED STRING.
- *
- * USES X - 1, 5, 6.
- * A - 1, 5, 6.
- * B - 5, 7.
- PPT SUBR ENTRY/EXIT
- SA5 TRMD NUMBER OF ENTRIES TO PACK
- SA1 DBUF GET FIRST ENTRY TO PACK
- SB7 B0+ INDEX TO *OBUF*
- PPT1 BX6 X6-X6
- SB5 5 PACKED ENTRIES PER WORD
- PPT2 BX6 X6+X1
- SB5 B5-B1
- SA1 A1+B1 GET NEXT ENTRY TO PACK
- LX6 12
- NZ B5,PPT2 IF WORD NOT FILLED
- LX6 -12
- SA6 B7+OBUF ENTER INTO OUTPUT BUFFER
- SB7 B7+1 INCREMENT INDEX
- SX5 X5-5
- PL X5,PPT1 IF NOT END OF ENTRIES TO PACK
- EQ PPTX RETURN
- PTP SPACE 4,15
- ** PTP - PROCESS *TC* PARAMETER.
- *
- * ENTRY (X6) = VALUE ENTERED FOR *TC* PARAMETER.
- * (TRMB) = CURRENT TERMINAL CLASS FOR VALIDATION.
- *
- * EXIT (X3) .LT. 0 IF ERROR.
- * (TRMB) = NEW TERMINAL CLASS FOR VALIDATION.
- *
- * USES X - 1, 3, 5, 7.
- * A - 1, 6.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- * (B7) = INDEX INTO TABLES.
- * (X2) = FIELD NUMBER.
- * (X4) = FIELD VALUE.
- PTP SUBR ENTRY/EXIT
- SX3 -1 SET ERROR FLAG
- SX5 X6-1
- NG X5,PTPX IF INCORRECT TERMINAL CLASS
- SX5 X6-LTCN LARGEST TERMINAL CLASS NUMBER
- PL X5,PTPX IF INCORRECT TERMINAL CLASS
- * VALIDATE FOR LEGAL TERMINAL CLASS CHANGE.
- SA1 TRMB GET CONNECTED TERMINAL CLASS
- BX3 X1-X6
- ZR X3,PTPX IF NO TERMINAL CLASS CHANGE
- SA1 X1+TLTC GET ALLOWED CHANGE LIMITS
- SX7 X1 LOWER BOUND
- LX1 17-35
- SX1 X1 UPPER BOUND
- IX3 X6-X7
- NG X3,PTPX IF INCORRECT TERMINAL CLASS CHANGE
- IX3 X1-X6
- NG X3,PTPX IF INCORRECT TERMINAL CLASS CHANGE
- PTP1 BX3 X3-X3 CLEAR ERROR FLAG
- SA6 TRMB SET NEW TERMINAL CLASS
- EQ PTPX RETURN
- SAF SPACE 4,20
- ** SAF - SET ATTRIBUTE FLAGS.
- *
- * ENTRY (B7) = INDEX INTO TABLES.
- *
- * EXIT (TRMF) POINTERS UPDATED.
- *
- * USES X - 2, 7.
- * A - 2, 7.
- SAF SUBR ENTRY/EXIT
- SX7 B1
- SA2 TFVR+B7 ATTRIBUTE TYPE CHECK
- LX2 59-39
- NG X2,SAF1 IF COMMON ATTRIBUTE
- LX2 1
- NG X2,SAF2 IF NAM/CDNA ATTRIBUTE
- LX2 1
- NG X2,SAF3 IF NAM/CCP ATTRIBUTE
- SAF1 SA7 TRMF+2 SET COMMON FLAG
- EQ SAFX RETURN
- SAF2 SA7 TRMF+1 SET CDNA FLAG
- EQ SAFX RETURN
- SAF3 SA7 TRMF SET CCP FLAG
- EQ SAFX RETURN
- SEP SPACE 4,20
- ** SEP - SEND EXTRA FN/FV PAIR.
- *
- * ENTRY (X2) = CURRENT FIELD NUMBER.
- * (X4) = CURRENT FIELD VALUE.
- * (X6) = FIELD VALUE TO BE VALIDATED.
- * (A2) = *TMPV* TABLE ENTRY.
- * (B5) = 0.
- * (B7) = INDEX INTO TABLES.
- *
- * EXIT (X2) = CURRENT FIELD NUMBER.
- * (X4) = CURRENT FIELD VALUE.
- * (X6) = FIELD VALUE TO BE VALIDATED.
- * (B5) .LT. 0, IF *C* VALUE TOO LARGE.
- * .GE. 0, IF *C* VALUE LESS THAN 4096.
- * (B7) = INDEX INTO TABLES.
- *
- * EXIT TO VFT3.
- *
- * USES X - 0, 1, 2, 3, 4, 5, 6.
- * A - 1, 2.
- * B - 3, 4, 5.
- *
- * CALLS EFP.
- * SEND *DL*/*XL* FLAG.
- SEP SX3 B0 FIELD VALUE
- EQ SEP2 CONTINUE
- SEP1 SX3 B1 FIELD VALUE
- SEP2 SB3 X4 SAVE CURRENT FIELD VALUE
- SB4 X2 SAVE CURRENT FIELD NUMBER
- SX4 X3+4000B SET UP DL/XL FLAG
- SX2 MXFN FIELD NUMBER
- SX3 X6 SAVE VALUE TO VERIFY
- RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- SX4 B3 RESTORE CURRENT FIELD VALUE
- SX2 B4 RESTORE CURRENT FIELD NUMBER
- SX6 X3 RESTORE VALUE TO VALIDATE
- SA1 TMPV+B7 CHECK FIELD VALUE FORMAT
- MX0 6
- BX1 X0*X1
- LX1 6
- SX5 X1-1RC
- NZ X5,SEP3 IF NOT *C* FORMAT
- SX1 X6-256D
- SB7 B7+B1 INCREMENT TABLE INDEX
- SX4 4000B CLEAR UPPER BYTE
- SB5 -B1 SET ERROR FLAG
- NG X1,SEP2.1 IF LESS THAN 8 BITS
- AX6 8 GET UPPER 4 BITS
- SX1 X6-16D
- PL X1,SEP3 IF VALUE TOO LARGE
- SX4 X6+4000B FIELD VALUE
- SEP2.1 ZR X6,SEP3 IF VALUE TOO SMALL
- SB5 B0+ CLEAR ERROR FLAG
- RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- SA2 A2+B1
- AX2 18
- SX2 X2
- MX0 -8
- SX6 X3
- BX6 -X0*X6
- SX4 X6+4000B RESTORE FIELD VALUE
- SEP3 JP VFT3 RETURN
- * TRANSLATE *IN* FIELD VALUE.
- SEP4 SB4 X4-4000B GET FIELD VALUE
- SA1 SEPA+B4
- MX0 -12
- SEP5 LX1 12 FIND FN/FV PAIR
- BX2 -X0*X1 GET TRUE FIELD NUMBER
- LX1 12
- BX4 -X0*X1 GET TRUE FIELD VALUE
- PL X1,SEP3 IF NOT TWO PAIRS
- LX1 6
- SX3 X6 SAVE VALUE TO VERIFY
- RJ EFP ENTER FN/FV PAIR - CONTROL BYTE 0016B
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- SX6 X3 RESTORE VALUE TO VALIDATE
- EQ SEP5 SET UP NEXT PAIR
- * SEPA - TABLE OF EXTRA FN/FV PAIRS.
- *
- *T 12/FN,12/FV,6/FLAG,12/FN,12/FV,6/FLAG.
- *
- * FN = FIELD NUMBER.
- * FV = FIELD VALUE.
- * FLAG = .LT. 0, IF ANOTHER FN/FV PAIR.
- * .GE. 0, IF NOT ANOTHER FN/FV PAIR.
- SEPA BSS 0
- VFD 12/XPFN,12/4000B,6/-1,12/INFN,12/4000B,6/0 *IN=KB*
- VFD 12/XPFN,12/4000B,6/-1,12/INFN,12/4001B,6/0 *IN=PT*
- VFD 12/XPFN,12/4001B,6/-1,12/INFN,12/4001B,6/0 *IN=XP*
- VFD 12/XPFN,12/4001B,6/-1,12/INFN,12/4000B,6/0 *IN=XK*
- VFD 12/INFN,12/4002B,36/0 *IN=BK*
- VFD 12/XPFN,12/4001B,36/0 *IN=X*
- CON 0 END OF TABLE
- SPC SPACE 4,15
- ** SPC - SPECIAL PAGE CHECKS FOR CDNA RANGES.
- *
- * *SPC* CHECKS *PL* AND *PW* FOR SPECIAL RANGE RESTRICTIONS
- * THAT ARE PRESENT ONLY IN CDCNET.
- *
- * ENTRY (X4) = ATTRIBUTE VALUE.
- * (X6) = ATTRIBUTE NUMBER.
- *
- * EXIT (TRMC) .EQ. 0, IF ATTRIBUTE VALUE WITHIN RANGE.
- * .NE. 0, IF ERROR.
- * (X4) = ATTRIBUTE VALUE.
- * (X6) = ATTRIBUTE NUMBER.
- *
- * USES X - 7.
- * A - 7.
- SPC SUBR ENTRY/EXIT
- SX7 X6-PLFN
- ZR X7,SPC1 IF *PL* ATTRIBUTE
- SX7 X6-PWFN
- ZR X7,SPC2 IF *PW* ATTRIBUTE
- EQ SPCX RETURN
- SPC1 SX6 PL2F
- SX7 X4-4001B
- ZR X7,SPC3 IF INCORRECT VALUE FOR *PL*
- EQ SPCX RETURN
- SPC2 SX6 PW2F
- SX7 X4-4000B
- ZR X7,SPCX IF CORRECT VALUE FOR *PW*
- SX7 X4-4012B
- NG X7,SPC3 IF INCORRECT VALUE FOR *PW*
- EQ SPCX RETURN
- SPC3 SX7 B1
- SA7 TRMG SET ERROR FLAG
- EQ SPCX RETURN
- VCP SPACE 4,20
- ** VCP - VARIABLE CHARACTER PROCESSOR.
- *
- * FOR THOSE ATTRIBUTES WITH A VARIABLE NUMBER OF CHARACTERS,
- * *VCP* WILL OUTPUT THE CORRECT NUMBER OF ATTRIBUTE VALUE
- * OCTETS.
- *
- * ENTRY (X1) = PARAMETER FROM COMMAND.
- * (B7) = INDEX INTO TABLES.
- * (B5) = VARIABLE CHARACTER RANGE IDENTIFIER.
- * .EQ. 2 THEN RANGE IS 0-2.
- * .EQ. 3 THEN RANGE IS 0-4.
- * .EQ. 4 THEN RANGE IS 0-7.
- * .EQ. 5 THEN RANGE IS 0-25.
- *
- * EXIT CONTROL BYTE 0010B UPDATED.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 5, 6, 7.
- * B - 2, 3, 4, 6.
- *
- * CALLS EFQ, HCP.
- VCP SUBR ENTRY/EXIT
- SA1 TTPV+B6 GET PARAMETER WORD COUNT
- AX1 54
- SB2 X1
- SA1 A1+B1 GET WHOLE PARAMETER VALUE
- SA2 TTFN+B7 GET FIELD NUMBER
- MX0 -12
- AX2 18
- BX2 -X0*X2 FIELD NUMBER ISOLATED
- BX0 X1
- AX0 54
- SX0 X0-1RX
- NZ X0,VCP0 IF NOT HEXADECIMAL FORMAT
- RJ HCP HEXADECIMAL CHARACTER PROCESSOR
- EQ VCPX RETURN
- VCP0 SB3 B1+B1 DETERMINE RANGE SIZE
- SB4 B1
- SA5 A1
- MX0 12
- EQ B5,B3,VCP1 IF RANGE OF 0-2 CHARACTERS
- SB3 B3+B1
- MX0 24
- EQ B5,B3,VCP1 IF RANGE OF 0-4 CHARACTERS
- SB3 B3+B1
- MX0 42
- EQ B5,B3,VCP1 IF RANGE OF 0-7 CHARACTERS
- MX0 30
- SB4 3
- SA5 A1+2
- VCP1 GT B2,B4,ERR5 IF TOO MANY CHARACTERS
- LT B2,B4,VCP2 IF FEWER WORDS THAN MAXIMUM
- BX4 -X0*X5
- NZ X4,ERR5 IF TOO MANY CHARACTERS
- VCP2 ZR X1,VCP6 IF NO CHARACTERS ENTERED
- LX1 6
- MX0 -6
- BX3 -X0*X1
- SA3 X3+TVXD GET OCTAL EQUIVALENT
- LX3 0-18
- SX4 X3+4000B
- RJ EFQ ENTER AN/AV PAIR - CONTROL BYTE 0010B
- BX1 X0*X1
- SB3 B1 SET OCTET COUNTER
- SA5 TRMD SET BUFFER INDEX
- VCP3 NZ X1,VCP5 IF MORE CHARACTERS REMAIN
- SB2 B2-1
- ZR B2,VCP4 IF THROUGH WITH PARAMETER
- SB6 B6+1 INCREMENT TABLE INDEX
- SA1 TTPV+B6+1
- NZ X1,VCP5 IF NOT THROUGH WITH PARAMETER
- VCP4 BX7 X5 GET OCTET COUNT BYTE
- SA7 A5
- SX6 B3+B1
- IX5 X5-X6 LOCATE COUNT OCTET
- SX7 B3+4000B GET OCTET COUNT
- SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
- EQ VCPX RETURN
- VCP5 LX1 6
- BX3 -X0*X1
- SA3 X3+TVXD GET OCTAL EQUIVALENT
- SB3 B3+B1 INCREMENT OCTET COUNTER
- LX3 0-18
- SX7 X3+4000B
- SA7 X5+DBUF ENTER FIELD VALUE INTO BUFFER
- SX5 X5+B1 RESET BUFFER INDEX
- BX1 X0*X1
- EQ VCP3 OUTPUT NEXT CHARACTER OCTET
- VCP6 SA5 TRMD GET BUFFER INDEX
- BX6 X2
- SX7 4000B
- SA6 X5+DBUF ENTER FIELD NUMBER INTO BUFFER
- SX6 X5+2 INCREMENT INDEX
- SA7 A6+B1 ENTER OCTET COUNTER INTO BUFFER
- SA6 A5 RESET BUFFER INDEX
- EQ VCPX RETURN
- VFT SPACE 4,20
- ** VFT - VALIDATE FIELD VALUE ACCORDING TO TERMINAL CLASS.
- *
- * ENTRY (X6) = CONTENTS TO BE VALIDATED.
- * (TRMB) = TERMINAL CLASS TO BE USED FOR VALIDATION.
- * (B2) .LT. 0 IF DO NOT VALIDATE RANGE.
- *
- * EXIT (X6) .LT. 0, IF ERROR.
- *
- * USES X - 0, 1, 3, 5, 6.
- * A - 1, 3, 5.
- * B - 3, 4, 5.
- *
- * CALLS PTP.
- *
- * DEFINE (B6) = POSITION IN PARAMETER LIST.
- * (B7) = ADDRESS OF TABLE ENTRY
- * (X2) = FIELD NUMBER.
- * (X4) = FIELD VALUE.
- VFT SUBR ENTRY/EXIT
- SB5 B0 CLEAR ERROR FLAG
- SA1 TTFN+B7 GET TABLE ENTRY
- MX0 -12
- SA5 PMPA
- ZR X5,VFT1 IF NOT MULTIPLE PARAMETER
- SA3 PMPC GET *TTFN* INDEX
- SA1 TTFN+X3 GET TABLE ENTRY
- VFT1 MX0 18
- SB4 B0+
- BX3 X0*X1
- VFT2 SA1 VFTA+B4 MATCH TABLE ENTRY
- SB4 B4+B1
- BX5 X0*X1
- ZR X5,VFT3 IF END OF TABLE
- BX5 X5-X3
- NZ X5,VFT2 IF NO MATCH
- MX0 18 GET PROCESSING ROUTINE ADDRESS
- BX5 -X0*X1
- SB4 X5
- SB3 X6 SAVE NUMBER TO BE VALIDATED
- JP B4 DO SPECIAL PROCESSING
- VFT3 NG B5,VFT5 IF ERROR IN *C* VALUE
- SA1 TRMB GET TERMINAL CLASS
- SA3 TFVR+B7 GET VALIDATION RANGE
- SA5 PMPA
- ZR X5,VFT4 IF NOT MULTIPLE PARAMETER
- SA3 TFVM+B7 GET RANGE TABLE ENTRY
- VFT4 SB4 X1
- LX3 B4
- NG X3,VFT5 IF PARAMETER INCORRECT FOR TERMINAL CLASS
- NG B2,VFTX IF RANGE NOT TO BE CHECKED
- LX3 -B4
- SX5 X3 LOWER BOUND
- LX3 17-35
- SX3 X3 UPPER BOUND
- IX5 X6-X5
- IX3 X3-X6
- NG X5,VFT5 IF VALUE TOO LOW
- PL X3,VFTX IF NO ERROR
- VFT5 SX6 -B1 SET ERROR FLAG
- EQ VFTX RETURN
- VFT6 RJ PTP PROCESS *TC* PARAMETER
- BX6 X3 SET ERROR STATUS
- EQ VFTX RETURN
- VFTA BSS 0
- VFD 18/0LXL,24/0,18/SEP1
- VFD 18/0LDL,24/0,18/SEP
- VFD 18/0LIN,24/0,18/SEP4
- VFD 18/0LTC,24/0,18/VFT6
- CON 0 END OF TABLE
- ZCA SPACE 4,20
- ** ZCA - ZERO CHARACTER ATTRIBUTE CHECKER.
- *
- * *ZCA* SETS A FLAG IF VARIABLE LENGTH ATTRIBUTES HAVE A
- * ZERO CHARACTER NAME ENTERED.
- *
- * ENTRY (X4) = ATTRIBUTE NUMBER.
- * (X5) = POINTER TO *TTPV*.
- * (X6) = CONTENTS TO BE VALIDATED.
- *
- * EXIT (X3) .LT. 0, IF ATTRIBUTE NOT OF VARIABLE LENGTH.
- * .EQ. 0, IF VALUE LENGTH NOT TO BE CHECKED.
- *
- * USES X - 0, 2, 3, 5.
- * A - 2.
- * B - 4.
- ZCA SUBR ENTRY/EXIT
- MX0 18
- SB2 X5 PRESERVE *TTPV* POINTER
- SB4 B0+
- BX3 X0*X4
- ZCA1 SA2 ZCAA+B4 MATCH TABLE ENTRY
- SB4 B4+B1
- BX5 X0*X2
- ZR X5,ZCA2 IF END OF TABLE
- BX5 X5-X3
- NZ X5,ZCA1 IF NO MATCH
- SX3 B0+ BLANK ARGUMENT NOT TO BE CHECKED
- EQ ZCAX RETURN
- ZCA2 SX3 -1 BLANK ARGUMENT TO BE CHECKED
- EQ ZCAX RETURN
- ZCAA BSS 0
- VFD 18/0LTM,42/0
- VFD 18/0LEOS,42/0
- VFD 18/0LCRS,42/0
- VFD 18/0LLFS,42/0
- VFD 18/0LFFS,42/0
- CON 0 END OF TABLE
- TFVM SPACE 4,10
- ** TFVM - TABLE OF VALIDATION RANGES FOR MULTI-VALUE.
- *
- *T 18/VBF,6/0,18/UB,18/LB
- * VFB = CORRESPONDING BIT SET IF PARAMETER INCORRECT
- * FOR TERMINAL CLASS.
- * UB = UPPER BOUND ON PARAMETER VALUE RANGE.
- * LB = LOWER BOUND ON PARAMETER VALUE RANGE.
- *
- * ENTRIES IN *TFVM* AND *TMPV* MUST BE SAME ORDER
- TFVM BSS 1
- VFD 18/00777B,6/0,18/15D,18/0 *CNXXX* FOR *DL*
- VFD 18/00777B,6/0,18/255D,18/0 *CXNNN* FOR *DL
- VFD 18/20413B,6/0,18/255D,18/0 *XHH* FOR *DL*
- VFD 18/20777B,6/0,18/1,18/0 *T0* FOR *DL*
- VFD 18/00777B,6/0,18/15D,18/0 *CNXXX* FOR *XL*
- VFD 18/00777B,6/0,18/255D,18/0 *CXNNN* FOR *XL*
- VFD 18/20413B,6/0,18/255D,18/0 *XHH* FOR *XL*
- VFD 18/20777B,6/0,18/1,18/0 *TO* FOR *XL*
- VFD 18/20413B,6/0,18/255D,18/0 *YHH* FOR *XL*
- VFD 18/413B,6/0,18/127D,18/0 *XHH* FOR *EL*
- VFD 18/20777B,6/0,18/2,18/0 *EB* OR *EL* FOR *EL*
- VFD 18/20777B,6/0,18/3,18/0 *NO*,*CR*,*LF* OR *CL*
- VFD 18/20413B,6/0,18/127D,18/0 *XHH* FOR *EB*
- VFD 18/20777B,6/0,18/2,18/0 *EB* OR *EL* FOR *EB*
- VFD 18/20777B,6/0,18/3,18/0 *NO*,*CR*,*LF* OR *CL*
- TITLE TABLES.
- TFVR SPACE 4,10
- ** TFLD - TABLE OF FIELD VALUE VALIDATION RANGES
- * AND TERMINAL DEFINITION FIELD NUMBERS.
- *
- *T,TTFN 18/PN,12/SFN,12/FN,18/ADDR
- *T,TFVR 18/VBF,6/FLAGS,18/UB,18/LB
- * PN = ONE - THREE CHARACTER PARAMETER NAME MNEMONIC
- * USED FOR COMMAND PROCESSING AND ERROR MESSAGES.
- * SFN = SECOND FIELD NUMBER, IF IT EXISTS.
- * FN = FIELD NUMBER FOR SINGLE VALUE PARAMETERS, OR
- * INDEX TO *TMPV* TABLE FOR MULTIPLE VALUE
- * PARAMETERS.
- * ADDR = ADDRESS OF EQUIVALENCE TABLE.
- * IF NEGATIVE, EXPECTING A ONE CHARACTER ARGUMENT.
- * IF ZERO, EXPECTING A DECIMAL NUMBER.
- * IF ONE, PARAMETER HAS MULTIPLE FIELD NUMBERS.
- * IF TWO, VALUE HAS A RANGE OF 0-2 CHARACTERS.
- * IF THREE, VALUE HAS A RANGE OF 0-4 CHARACTERS.
- * IF FOUR, VALUE HAS A RANGE OF 0-7 CHARACTERS.
- * IF FIVE, VALUE HAS A RANGE OF 0-25 CHARACTERS.
- * IF SIX, VALUE HAS A RANGE OF 1-4 CHARACTERS.
- * IF SEVEN, PARAMETER HAS A DOUBLE OCTET VALUE.
- * IF TEN (OCTAL), ATTRIBUTE HAS BEEN DISABLED.
- * VBF = CORRESPONDING BIT SET IF PARAMETER INCORRECT
- * FOR TERMINAL CLASS.
- * FLAGS = BITS 41 - 40 UNUSED.
- * BIT 39 SET = COMMON ATTRIBUTE.
- * BIT 38 SET = CDNA ATTRIBUTE.
- * BIT 37 SET = CCP ATTRIBUTE.
- * BIT 36 SET = UNSUPPORTED ATTRIBUTE.
- * UB = UPPER BOUND ON PARAMETER VALUE RANGE.
- * LB = LOWER BOUND ON PARAMETER VALUE RANGE.
- *
- * THE *L* PARAMETER MUST BE FIRST.
- TFLD BSS 0
- VFD 18/1LL,12/0,12/0,18/0 OUTPUT FILE
- VFD 60/0
- VFD 18/2LTC,12/0,12/TCFN,18/0 TERMINAL CLASS
- VFD 18/0,6/2,18/17D,18/1
- VFD 18/2LAB,12/0,12/ABFN,18/-1 ABORT BLOCK
- VFD 18/777B,6/2,18/127D,18/0
- VFD 18/2LBR,12/0,12/BRFN,18/NYEC BREAK KEY
- VFD 18/20777B,6/2,18/1,18/0
- VFD 18/2LBS,12/0,12/BSFN,18/-1 BACKSPACE CHARACTER
- VFD 18/777B,6/2,18/127D,18/0
- VFD 18/2LB1,12/0,12/B1FN,18/-1 USER BREAK 1
- VFD 18/3B,6/2,18/127D,18/0 (INTERRUPT CHAR)
- VFD 18/2LB2,12/0,12/B2FN,18/-1 USER BREAK 2
- VFD 18/3B,6/2,18/127D,18/0 (TERMINATION CHAR)
- VFD 18/2LCI,12/CCFN,12/CIFN,18/0 CARRIAGE RETURN IDLE
- VFD 18/777B,6/2,18/99D,18/0 COUNT
- VFD 18/2LCN,12/0,12/CNFN,18/-1 CANCEL CHARACTER
- VFD 18/3B,6/2,18/127D,18/0
- VFD 18/2LCP,12/0,12/CPFN,18/NYEC CURSOR POSITIONING
- VFD 18/20003B,6/2,18/1,18/0
- VFD 18/2LCT,12/0,12/CTFN,18/-1 CONTROL CHARACTER
- VFD 18/0,6/2,18/127D,18/0
- VFD 18/2LDL,12/0,12/DLMV-TMPV,18/1B SINGLE MESSAGE
- VFD 18/0,6/2,36/0 TRANSPARENT
- VFD 18/2LEB,12/0,12/EBMV-TMPV,18/1B END OF BLOCK
- VFD 18/0,6/2,36/0
- VFD 18/2LEL,12/0,12/ELMV-TMPV,18/1B END OF LINE
- VFD 18/0,6/2,36/0
- VFD 18/2LEP,12/0,12/EPFN,18/NYEC ECHOPLEX MODE
- VFD 18/20777B,6/2,18/1,18/0
- VFD 18/2LFA,12/0,12/FAFN,18/NYEC FULL ASCII
- VFD 18/413B,6/2,18/1,18/0
- VFD 18/2LHD,12/0,12/HDFN,18/NYEC HOST AVAILABILITY
- VFD 18/3B,6/2,18/1,18/0
- VFD 18/2LIC,12/0,12/ICFN,18/NYEC INPUT FLOW CONTROL
- VFD 18/20777B,6/2,18/1,18/0
- VFD 18/2LIN,12/0,12/INFN,18/INEC INPUT DEVICE
- VFD 18/3B,6/2,18/5,18/0
- VFD 18/2LLI,12/LCFN,12/LIFN,18/0 LINE FEED IDLE COUNT
- VFD 18/777B,6/2,18/99D,18/0
- VFD 18/2LLK,12/0,12/LKFN,18/NYEC LOCK OUT CONTROL
- VFD 18/0,6/2,18/1,18/0
- VFD 18/2LOC,12/0,12/OCFN,18/NYEC OUTPUT FLOW CONTROL
- VFD 18/20777B,6/2,18/1,18/0
- VFD 18/2LOP,12/0,12/OPFN,18/OPEC OUTPUT DEVICE
- VFD 18/0,6/2,18/2,18/0
- VFD 18/2LPA,12/0,12/PAFN,18/PAEC PARITY
- VFD 18/000413B,6/2,18/5,18/0
- VFD 18/2LPG,12/0,12/PGFN,18/NYEC PAGE WAIT
- VFD 18/000413B,6/2,18/1,18/0
- VFD 18/2LPL,12/0,12/PLFN,18/0 PAGE LENGTH
- VFD 18/0,6/8,18/255D,18/0
- VFD 18/2LPW,12/0,12/PWFN,18/0 PAGE WIDTH
- VFD 18/0,6/8,18/255D,18/0
- VFD 18/2LSE,12/0,12/SEFN,18/NYEC SPECIAL EDITING MODE
- VFD 18/000777B,6/2,18/1,18/0
- VFD 18/2LXL,12/0,12/XLMV-TMPV,18/1B MULTI MESSAGE
- VFD 18/0,6/2,36/0 TRANSPARENT MODE
- * CDCNET TERMINAL DEFINITIONS.
- VFD 18/2LAC,12/0,12/ACCF,18/-1 ATTENTION CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LACA,12/0,12/ACAF,18/0 ATTENTION CHARACTER
- VFD 18/0,6/4,18/9D,18/0 ACTION
- VFD 18/2LBC,12/0,12/BCFN,18/-1 BACKSPACE CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LBKA,12/0,12/BKAF,18/0 BREAK KEY ACTION
- VFD 18/0,6/4,18/9D,18/0
- VFD 18/3LBLC,12/0,12/BLCF,18/-1 BEGIN LINE CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LCFC,12/0,12/CFCF,18/BOOL CHARACTER FLOW CONTROL
- VFD 18/0,6/4,18/5,18/0
- VFD 18/3LCLC,12/0,12/CLCF,18/-1 CANCEL LINE CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LCRD,12/0,12/CRDF,18/7B CARRIAGE RETURN DELAY
- VFD 18/0,6/4,18/1000D,18/0
- VFD 18/3LCRS,12/0,12/CRSF,18/2 CARRIAGE RETURN
- VFD 18/0,6/4,36/0 SEQUENCE
- VFD 18/2LCS,12/0,12/CSFN,18/CSEC CODE SET
- VFD 18/0,6/4,18/2,18/0
- VFD 18/1LE,12/0,12/EEFN,18/BOOL ECHOPLEX
- VFD 18/0,6/4,18/5,18/0
- VFD 18/3LELC,12/0,12/ELCF,18/-1 END LINE CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LELP,12/0,12/ELPF,18/EBEC END LINE POSITIONING
- VFD 18/0,6/4,18/3,18/0
- VFD 18/3LEOS,12/0,12/EOSF,18/3 END OUTPUT SEQUENCE
- VFD 18/0,6/4,36/0
- VFD 18/3LEPA,12/0,12/EPAF,18/EPEC END PAGE ACTION
- VFD 18/0,6/4,18/1,18/0
- VFD 18/3LEPC,12/0,12/EPCF,18/-1 END PARTIAL CHARACTER
- VFD 18/0,6/4,18/127D,18/0
- VFD 18/3LEPP,12/0,12/EPPF,18/EBEC END PARTIAL
- VFD 18/0,6/4,18/3,18/0 POSITIONING
- VFD 18/3LFFD,12/0,12/FFDF,18/7B FORM FEED DELAY
- VFD 18/0,6/4,18/3000D,18/0
- VFD 18/3LFFS,12/0,12/FFSF,18/4 FORM FEED SEQUENCE
- VFD 18/0,6/4,36/0
- VFD 18/3LFKC,12/0,12/FKCF,18/5B FUNCTION KEY CLASS
- VFD 18/0,6/4,36/0
- VFD 18/2LFL,12/0,12/FLFN,18/BOOL FOLD LINE
- VFD 18/0,6/4,18/5,18/0
- VFD 18/2LHP,12/0,12/HPFN,18/BOOL HOLD PAGE
- VFD 18/0,6/4,18/5,18/0
- VFD 18/3LHPO,12/0,12/HPOF,18/BOOL HOLD PAGE OVER
- VFD 18/0,6/4,18/5,18/0
- VFD 18/3LIBS,12/0,12/IBSF,18/7B INPUT BLOCK SIZE
- VFD 18/0,6/4,18/2000D,18/80D
- VFD 18/3LIEM,12/0,12/IEMF,18/IEEC INPUT EDITING MODE
- VFD 18/0,6/4,18/1,18/0
- VFD 18/3LIOM,12/0,12/IOMF,18/IOEC OUTPUT EDITING MODE
- VFD 18/0,6/4,18/2,18/0
- VFD 18/3LLFD,12/0,12/LFDF,18/7B LINE FEED DELAY
- VFD 18/0,6/4,18/1000D,18/0
- VFD 18/3LLFS,12/0,12/LFSF,18/2 LINE FEED SEQUENCE
- VFD 18/0,6/4,36/0
- VFD 18/3LNCC,12/0,12/NCCF,18/-1 NETWORK CONTROL
- VFD 18/0,6/4,18/127D,18/0 CHARACTER
- VFD 18/1LP,12/0,12/PPFN,18/PEEC PARITY TYPE
- VFD 18/0,6/4,18/4,18/0
- VFD 18/3LPCF,12/0,12/PCFF,18/BOOL PARTIAL CHARACTER
- VFD 18/0,6/4,18/5,18/0 FORWARDING
- VFD 18/2LRA,12/0,12/RAFN,18/RAEC RESPONSE ACTION
- VFD 18/0,6/4,18/1,18/0
- VFD 18/2LSA,12/0,12/SAFN,18/SAEC STATUS ACTION
- VFD 18/0,6/4,18/2,18/0
- VFD 18/3LSBC,12/0,12/SBCF,18/BOOL STORE BACKSPACE
- VFD 18/0,6/4,18/5,18/0 CHARACTER
- VFD 18/3LSND,12/0,12/SNDF,18/BOOL STORE NULS DELS
- VFD 18/0,6/4,18/5,18/0
- VFD 18/3LTCM,12/0,12/TCMF,18/TCEC TRANSPARENT CHARACTER
- VFD 18/0,6/4,18/3,18/0 MODE
- VFD 18/3LTFC,12/0,12/TFCF,18/6 TRANSPARENT FORWARD
- VFD 18/0,6/4,36/0 CHARACTER
- VFD 18/3LTLM,12/0,12/TLMF,18/TLEC TRANSPARENT LENGTH
- VFD 18/0,6/4,18/3,18/0 MODE
- VFD 18/2LTM,12/0,12/TMFN,18/5B TERMINAL MODEL/TERMI-
- VFD 18/0,6/4,36/0 NATE TERM-HOST CONN.
- VFD 18/3LTML,12/0,12/TMLF,18/7B TRANSPARENT MESSAGE
- VFD 18/0,6/4,18/32767,18/1 LENGTH
- VFD 18/3LTTC,12/0,12/TTCF,18/6 TRANSPARENT TERMINATE
- VFD 18/0,6/4,36/0 CHARACTER
- VFD 18/3LTTM,12/0,12/TTMF,18/TMEC TRANSPARENT TIMEOUT
- VFD 18/0,6/4,18/2,18/0 MODE
- * UNSUPPORTED STANDARD TERMINAL DEFINITIONS.
- VFD 18/2LAR,12/0,12/0,18/-1 AUTO CHAR RECOGNITION
- VFD 18/0,6/1,36/0
- VFD 18/2LBF,12/0,12/0,18/-1 BLOCKING FACTOR
- VFD 18/0,6/1,36/0
- VFD 18/2LCH,12/0,12/0,18/-1 TERMINAL CHARACTERIS-
- VFD 18/0,6/1,36/0 TICS
- VFD 18/2LHN,12/0,12/0,18/-1 HOST NODE SELECTION
- VFD 18/0,6/1,36/0 - NUMBER
- VFD 18/2LHS,12/0,12/0,18/-1 HOST SELECTION - NAME
- VFD 18/0,6/1,36/0
- VFD 18/2LMS,12/0,12/0,18/-1 MESSAGETEXT
- VFD 18/0,6/1,36/0
- CON 0
- TLTC SPACE 4,10
- ** TLTC - TABLE OF LEGAL TERMINAL CLASS CHANGES.
- *
- *T 24/0,18/UB,18/LB
- * UB = UPPER BOUND ON RANGE FOR TERMINAL CLASS CHANGE.
- * LB = LOWER BOUND ON RANGE FOR TERMINAL CLASS CHANGE.
- TLTC BSS 0
- LOC 0
- VFD 60/0 TC=0 - INCORRECT
- VFD 24/0,18/8,18/1 TC=1 - MODEL 33, 35, 37, 38 TTY
- VFD 24/0,18/8,18/1 TC=2 - CDC 713-10, 722, 751-1, 756
- VFD 24/0,18/8,18/1 TC=3 - CDC 721
- VFD 24/0,18/4,18/4 TC=4 - IBM 2741
- VFD 24/0,18/8,18/1 TC=5 - MODEL 40 TTY
- VFD 24/0,18/8,18/1 TC=6 - HAZELTINE 2000
- VFD 24/0,18/8,18/1 TC=7 - DEC VT100
- VFD 24/0,18/8,18/1 TC=8 - TEKTRONIX 401X
- VFD 24/0,18/9,18/9 TC=9 - HASP (POST PRINT)
- VFD 24/0,18/15,18/10 TC=10 - 200 USER TERMINAL
- VFD 24/0,18/13,18/11 TC=11 - CDC 714-30
- VFD 24/0,18/13,18/11 TC=12 - CDC 711-10
- VFD 24/0,18/13,18/11 TC=13 - CDC 714-10/20
- VFD 24/0,18/14,18/14 TC=14 - HASP (PRE PRINT)
- VFD 24/0,18/15,18/10 TC=15 - CDC 731-12, 732-12, 734
- VFD 24/0,18/16,18/16 TC=16 - IBM 2780
- VFD 24/0,18/17,18/17 TC=17 - IBM 3780
- LOC *O
- TMPV SPACE 4,10
- ** TMPV - TABLE OF TERMINAL DEFINITIONS MULTI VALUE NUMBERS.
- *
- *T 6/VT,6/VM,12/0,6/ET,12/FN,18/AD
- *
- * VT = PARAMETER VALUE TYPE.
- * VM = VALIDATION MASK.
- * ET = END OF TABLE FLAG.
- * FN = FIELD NUMBER.
- * AD = ADDRESS OF EQUIVALENCE TABLE.
- * IF 0, EXPECTING A DECIMAL NUMBER.
- * IF -1, EXPECTING A CHARACTER ARGUMENT.
- *
- * ENTRIES IN THE *TPMV* AND *TFVM* TABLES MUST BE IN THE
- * SAME ORDER.
- TMPV BSS 1
- DLMV VFD 6/1LC,6/1B,12/0,6/0,12/C1FN,18/0 *DL*
- VFD 6/1LC,6/2B,12/0,6/0,12/C2FN,18/0
- VFD 6/1LX,6/4B,12/0,6/0,12/XHFN,18/-1
- VFD 6/1LT,6/10B,12/0,6/-1,12/TOFN,18/TOEC
- XLMV VFD 6/1LC,6/1B,12/0,6/0,12/C1FN,18/0 *XL*
- VFD 6/1LC,6/2B,12/0,6/0,12/C2FN,18/0
- VFD 6/1LX,6/4B,12/0,6/0,12/XHFN,18/-1
- VFD 6/1LT,6/10B,12/0,6/0,12/TOFN,18/TOEC
- VFD 6/1LY,6/20B,12/0,6/-1,12/YHFN,18/-1
- ELMV VFD 6/1LX,6/1B,12/0,6/0,12/XLFN,18/-1 *EL*
- VFD 6/1LE,6/1B,12/0,6/0,12/ELFN,18/ELEC
- VFD 6/0,6/2B,12/0,6/-1,12/CLFN,18/XXEC
- EBMV VFD 6/1LX,6/1B,12/0,6/0,12/XBFN,18/-1 *EB*
- VFD 6/1LE,6/1B,12/0,6/0,12/EBFN,18/ELEC
- VFD 6/0,6/2B,12/0,6/-1,12/CBFN,18/XXEC
- CON 0 END OF TABLE
- TMPL EQU *-TMPV
- TTFN SPACE 4,10
- SPACE 4
- * COMMON DECKS.
- *CALL COMCCIO
- *CALL COMCDXB
- *CALL COMCHXB
- *CALL COMCLFM
- *CALL COMCSYS
- *CALL COMCUSB
- *CALL COMCWTW
- *CALL COMTVDT
- SPACE 4
- USE BUFFERS
- SPACE 4
- * BUFFERS.
- CBUF DATA 0016B CONTROL BYTE PARAMETER STRING BUFFER
- BSSZ CBUFL
- DBUF DATA 0010B CONTROL BYTE PARAMETER STRING BUFFER
- BSSZ DBUFL
- SPACE 4,5
- * FIELD VALUE EQUIVALENCED CODES.
- * ENTRIES IN THESE TABLES ARE ORDER DEPENDENT.
- INEC CON 2LKB INPUT DEVICE CODES
- CON 2LPT
- CON 2LXP
- CON 2LXK
- CON 2LBK
- CON 1LX
- CON 0
- OPEC CON 2LPR OUTPUT DEVICE CODES
- CON 2LDI
- CON 2LPT
- CON 0
- PAEC CON 1LZ PARITY SELECTION CODES
- CON 1LO
- CON 1LE
- CON 1LN
- CON 1LI
- VFD 42/1LM,18/1
- CON 0
- PEEC CON 4LZERO PARITY SELECTION CODES (CDCNET)
- CON 4LMARK
- CON 4LEVEN
- CON 3LODD
- CON 4LNONE
- CON 0
- NYEC CON 1LN EQUIVALENCE CODES FOR XX=N OR XX=Y
- CON 1LY
- CON 0
- BOOL CON 2LNO BOOLEAN VALUE CODES
- CON 3LYES
- CON 5LFALSE
- CON 4LTRUE
- CON 3LOFF
- CON 2LON
- CON 0
- IEEC VSS N,NORMAL,S INPUT EDITING MODE CODES
- VSS T,TRANSPARENT
- CON 0
- IOEC VSS U,UNSOLICITED,S OUTPUT EDITING MODE CODES
- VSS S,SOLICITED
- VSS F,FULLDUPLEX
- CON 0
- RAEC VSS S,SEND,S RESPONSE ACTION CODES
- VSS D,DISCARD
- CON 0
- SAEC VSS S,SEND,S STATUS ACTION CODES
- VSS H,HOLD
- VSS D,DISCARD
- CON 0
- TCEC VSS N,NONE,S TRANSPARENT CHARACTER MODE CODES
- VSS T,TERMINATE
- VSS F,FORWARD
- VSS FT
- VFD 42/0LFORWARD,6/65B,12/0LTE
- VFD 60/0LRMINATE
- CON 0
- TLEC VSS N,NONE,S TRANSPARENT LENGTH MODE CODES
- VSS T,TERMINATE
- VSS F,FORWARD
- VSS FE
- VFD 42/0LFORWARD,6/65B,12/0LEX
- VFD 60/0LACT
- CON 0
- TMEC VSS N,NONE,S TRANSPARENT TIMEOUT MODE CODES
- VSS T,TERMINATE
- VSS F,FORWARD
- CON 0
- ELEC CON 2L NOT *EB* OR *EL*
- CON 2LEL *EL*
- CON 2LEB *EB*
- CON 0
- TOEC CON 2L NOT *TO*
- CON 2LTO *TO*
- CON 0
- XXEC CON 2LNO *NO*
- CON 2LCR *CR*
- CON 2LLF *LF*
- CON 2LCL *CL*
- CON 0
- CSEC CON 5LASCII CODE SET CODES
- CON 5LBPAPL
- CON 5LTPAPL
- CON 0
- EBEC VFD 60/4LNONE END BLOCK POSITIONING CODES
- VFD 60/3LCRS
- VFD 60/3LLFS
- VFD 60/6LCRSLFS
- VFD 60/0
- EPEC CON 4LNONE END PAGE ACTION CODES
- CON 3LFFS
- CON 0
- FLEC VFD 60/3LOFF FOLD LINE CODES
- VFD 60/2LON
- VFD 60/0
- SPACE 4,5
- TMES DATA C* TRMDEF REQUIRES JOB TO BE ON-LINE.*
- TMESL EQU *-TMES
- CON 0
- OBUF EQU *
- TTPV SPACE 4,10
- * TABLE OF TERMINAL DEFINITION PARAMETER VALUES.
- *
- *T 6/WORD COUNT OF ENTERED VALUE, 36/0, 18/INDEX INTO TABLES.
- *T 60/ENTERED VALUE.
- *T .
- *T .
- *T 60/ENTERED VALUE.
- *
- * ENTRIES ARE IN THE ORDER SPECIFIED ON THE COMMAND.
- * NO ENTRY IS MADE FOR THE *L* PARAMETER.
- TTPV EQU OBUF+OBUFL
- SPACE 4
- RFL= EQU TTPV+TTPVL
- ARG= EQU 0
- END
cdc/nos2.source/opl871/trmdef.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator