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