|
|
DataMuseum.dkPresents historical artifacts from the history of: IBM System/3 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about IBM System/3 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 64262 (0xfb06)
Types: s3xseg
Names: »S$E060«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$E060«
MACRO 00010000
.********************************************************************** 00020000
.* * 00030000
.* NAME: $E060 * 00040000
.* * 00050000
.* MODIFICATION LEVEL: VERSION 15, MODIFICATION LEVEL 0 OF 5702-SC1 * 00060000
.* * 00070000
.* FUNCTION: * 00080000
.* * 00090000
.* . CCP GENERATION SECOND PASS MACRO INSTRUCTION -- GENERATE * 00100000
.* COMMUNICATIONS I/O INTERFACE ROUTINE * 00110000
.* * 00120000
.* INPUT OPERANDS: * 00130000
.* * 00140000
.* . NONE * 00150000
.* * 00160000
.********************************************************************** 00170000
$E060 00180000
.* 00190000
.*--------- GLOBAL VARIABLES REFERENCED ----------------------------* 00200000
.* 00210000
GBLB &MLTA . 1=MLTA SUPPORTED / 0=NOT 00220000
GBLB &NOM . 1=MLTA *NOT* SUPPORTED / 0=IS 00230000
.* 00240000
GBLB &BSCA . 1=BSCA SUPPORTED / 0=NOT 00250000
GBLB &NOB . 1=BSCA *NOT* SUPPORTED / 0=IS 00260000
.* 00270000
GBLB &DFF . 1=DFF SUPPORTED / 0=NOT 00280000
GBLB &NDF . 1=DFF *NOT* SUPPORTED / 0=IS 00290000
.* 00300000
GBLB &N1050 . 1=1050 *NOT* SUPPORTED / 0=IS 00310000
.* 00320000
GBLB &NDME . *NO* DATA MODE ESCAPE 00330000
.* . 1=*NO* DME / 0=DME SUPPORTED 00340000
.* 00350000
GBLB &MIN . MAKE FUNCTIONS TRANSIENT/0=NO 00360000
.* 00370000
GBLB &NRUF . 1=*NO* PRUF / 0=PRUF SUPPTD 00373000
.* 00374000
GBLB &BPRT . 1= BUSY PRINTER / 0 = NO *L00375000
.* 00376000
.*--------- LOCAL VARIABLES USED -----------------------------------* 00380000
.* 00390000
LCLC &# . USED FOR SINGLE BLANK 00400000
.* 00410000
TEXT 00420000
.* 00430000
&# SETC ' ' . SINGLE BLANK 00440000
.* 00450000
TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.USER&#.I/O' 00460000
*********************************************************************** 00470000
* * 00480000
* TITLE: '$CC4II' - I/O INTERFACE ROUTINE. * 00490000
* * 00500000
* FUNCTION/OPERATION: THE FUNCTION OF THIS RESIDENT ROUTINE IS TO * 00510000
* PROCESS BOTH USER AND SYSTEM I/O REQUESTS. EXTENSIVE DIAGNOSTICS * 00520000
* ARE PERFORMED ON EACH REQUEST PRIOR TO SCHEDULING THE TP OPERATION* 00530000
* * 00540000
* INPUT: INPUT TO $CC4II IS A PARAMETER LIST POINTED TO BY XR2. * 00550000
* * 00560000
* OUTPUT: OUTPUT FROM $CC4II WILL BE A SCHEDULED PUT OPERATION, * 00570000
* DATA ON A GET OPERATION, OR ONE OF THE FOLLOWING TCB COMPLETION * 00580000
* CODES IN CASE OF ERROR: * 00590000
* 01 - INVALID OP CODE/MODIFIERS * 00600000
* 02 - INVALID OPERATION FOR CONSOLE * 00610000
* 03 - UNDEFINED SYMBOLIC TERMINAL NAME * 00620000
* 04 - TERMINAL NOT ALLOCATED TO PROGRAM * 00630000
* 05 - TERMINAL REFERENCED BY OTHER THAN ALLOCATED NAME * 00640000
* 06 - BLANK TERMINAL NAME FOR MRTS PROGRAM * 00650000
* 07 - BLANK STN AND REQUESTOR RELEASED * 00660000
* 08 - BLANK STN INVALID FOR THIS OPERATION * 00670000
* 09 - INVALID USE OF SUB-TERMINAL NAME * 00680000
* 0A - STN NOT ASSIGNED TO TERMINAL * 00690000
* 0B - TERMINAL ATTRIBUTE SET INVALID FOR THIS OPERATION * 00700000
* 0C - TERMINAL I/O CAPABILITY DOES NOT MATCH OPERATION * 00710000
* 0D - INVALID OUTPUT LENGTH * 00720000
* 0E - INVALID INPUT LENGTH * 00730000
* 0F - INPUT LENGTH GREATER THAN TP BUFFER LIZE * 00740000
* 10 - INVALID OP WITH DATA FROM PROG. REQ. OUTSTANDING * 00750000
* 11 - INVALID OP WITH INVITE INPUT OUTSTANDING * 00760000
* 14 - INVALID OP WITH NO INVITES OUTSTANDING * 00770000
* 15 - INPUT AREA NOT LARGE ENOUGH FOR BSCA GET BLOCK * 00780000
* 16 - COPY REQUESTED TO TERMINAL WITHOUT MAPPING * 00790000
* 17 - COPY TO TERMINAL NAME NOT FOUND * 00800000
* 18 - COPY INVALID WITH 3275 * 00810000
* 19 - ERASE REQUESTED TO TERMINAL WITHOUT MAPPING * 00820000
* 1A - PUT OVERRIDE TO TERMINAL WITHOUT MAPPING * 00830000
* 1B - INVALID PUT WITH MAPPING - NO EOT * 00840000
* 1C - RECORD AREA TOO SMALL FOR BSCA GET WITH ITB * 00850000
* 1D - ACCEPT REQUEST IMPOSSIBLE TO SATISFY * 00860000
* 1E - OUTPUT LENGTH TO CONSOLE GREATER THAN 80 * 00870000
* * 00880000
* ENTRY POINTS: * 00890000
* $CC4II - ENTRY FOR USER REQUESTS * 00900000
* $CC4IS - ENTRY POINT FOR SYSTEM REQUESTS * 00910000
* * 00920000
* EXTERNAL REFERENCES: * 00930000
* $CC4PS - POST TP REQUEST * 00940000
* $CC4WT - WAIT FOR INVITE INPUT TO COMPLETE * 00950000
* $CC4MX - MOVE ROUTINE TO MOVE DATA TO RECORD AREA * 00960000
* $CC4DP - DISPATCHER CALLED ON EXIT * 00970000
* $CC4TT - TRACE ENTRY * 00980000
* $CC4PI - TRANSIENT INTERFACE TO CALL $CC4NC AND $CC4AB * 00990000
* $CC4NC - CANCEL TRANSIENT * 01000000
* $CC4AB - TRANSIENT TO CHECK ACCEPT INPUT POSSIBILITIES * 01010000
* CC4TI2 - TERMINATION ENTRY WITH TCB COMPLETION CODE * 01020000
* * 01030000
* EXITS-NORMAL: A NORMAL EXIT TO DISPATCHER OCCURS IF ALL GOES WELL * 01040000
* -ERROR: AN ERROR EXIT TO TERMINATION WITH THE APPROPRIATE * 01050000
* TCB COMPLETION CODE OCCURS IN CASE OF ERROR. * 01060000
* * 01070000
* TABLES/WORK AREAS: A TABLE OF OPERATION CODES IS USED TO CHECK * 01080000
* VALIDITY OF OP CODES. * 01090000
* * 01100000
* CHANGE ACTIVITY - $E060 * 01110000
* * 01120000
* RELEASE 11 * 01122000
* @01-APAR/S305092- TO FREEMAIN PCT AND NAME AT ACCEPT INPUT TIME @01 * 01124000
* @02-APAR/S305171- DECREMENT PLRECA ON ERROR FROM DFF @02 * 01126000
* * 01128000
* RELEASE 12 * 01128500
* @03-INCR/ - CLEAR TUB POINTER AND MOVE TRACE CALL @03 * 01129000
* @04-INCR/00S1301- PROGRAM READ UNDER FORMAT @04 * 01129200
* * 01129500
* RELEASE 14 * 01129570
* @05-APAR/S308352- CORRECT RETURN CODE 03 WHEN CALL PRUF PROGRAM * 01129640
* FROM ANOTHER PRUF PROGRAM * 01129710
* @06-APAR/S308743- CORRECT INPUT DATA WHEN ACQUIRE DFF TERMINAL * 01129780
* TERMINAL AS NON-DFF TERMINAL * 01129850
* @07-PTR/D14CP016-CORRECT TERMINATION CODE 15 * 01129920
* * 01129930
* RELEASE 15 * 01129940
* @08-APAR/S309230- CORRECT LOSE OF INVITES WHEN AN ACCEPT TO THE * 01129950
* CONSOLE IS ISSUED AFTER THE INVITES * 01129960
* *L-INDICATES PRINTER BUSY SUPPORT 01129970
*********************************************************************** 01130000
EJECT 01140000
SPACE 01150000
************************************************************************01160000
* ENTRY POINT FOR I/O INTERFACE FOR USER REUESTS *01170000
************************************************************************01180000
SPACE 01190000
* UPON ENTRY FROM USER RELOCATABLE MODULE - XR2 POINTS AT PARM LIST 01200000
$CC4II EQU * 01210000
ST CC@PRL,XR2 SAVE PARM LIST ADDRESS 01220000
SPACE 01230000
************************************************************************01240000
* VALIDATE THE OPERATION CODE PASSED BY THE USER 01250000
* OBTAIN VALIDITY BYTE FROM OP CODE VALIDTY TABLE 01260000
************************************************************************01270000
SPACE 01280000
* XR2 POINTS AT THE PARM LIST 01290000
MNN IIMVBY+4,PLOPC(,XR2) MOVE OP CODE TO DISPLACMENT 01300000
LA IIVTBL,XR1 POINT XR1 AT OP CODE VALDITY TBLE01310000
IIMVBY MVC IIVBYT(1),*-*(,XR1) GET VALIDITY BYTE FROM TABLE 01320000
SPACE 01330000
* -----START-------------------@04 01335000
CLI PLOPC(,XR2),OPPNW+OPRUF IS THE OP IN THE VALID RANGE? 01340000
JH IIIVLD BRANCH TO TERMINATE IF NOT 01350000
* -----END---------------------@04 01355000
CLI IIVBYT,IIZERO IS VALIDITY BYTE ZERO 01360000
JNE IIVLD JUMP IF NOT 01370000
SPACE 01380000
* VALIDITY BYTE ZERO SO OPERATION IS INVALID 01390000
SPACE 01400000
IIIVLD B CC4TI2 BRANCH TO TERMINATION 01410000
DC AL1(TCCIOP) INVALID OP COMPLETION CODE 01420000
SPACE 01430000
IIVLD EQU * OP CODE IS ONE OF CCP VALID OPS 01440000
SLC PLCHN(2,XR2),PLCHN(,XR2) CLEAR CHAIN/RETURN CODE IN PARM L01450000
SLC PL$RTC(4,XR2),PL$RTC(,XR2) CLEAR INTERNAL RETURN CODE 01460000
* AND INTERNAL OP CODE 01470000
SLC PLTUBA(2,XR2),PLTUBA(,XR2) CLEAR TUB FIELD @03 01475000
CLI PLOPC(,XR2),OPSHQ IS OP SHUTDOWN INQUIRY 01480000
JNE IICKAI JUMP IF NOT SHUTDOWN INQUIRY 01490000
SPACE 01500000
* SHUTDOWN INQURITY OP CODE 01510000
TBN $CCCOM+$FLGA,CPSHUT HAS SHUTDOWN BEEN REQUESTED 01520000
JF IIBBCK JUMP IF NOT 01530000
SPACE 01540000
* SHUTDOWN REQUESTED SO PLUG IN PROPER RETURN CODE 01550000
MVI PLRTC(,XR2),RCXSHD PLUG SHUTDOWN REQUESTED RTN CODE 01560000
IIBBCK EQU * BRACN TO GO BACK 01570000
B IITEND BR TO RETURN TO USER 01580000
SPACE 01590000
* CHECK OP CODE TO SEE IF IT'S AN ACCEPT INPUT 01600000
SPACE 01610000
IICKAI EQU * CHECK FOR ACCEPT INPUT 01620000
TBN PLOPC(,XR2),OPACI IS THIS AN ACCEPT INPUT? 01630000
TBF PLOPC(,XR2),BIT4+BIT6+BIT7 AND NOTHING ELSE? 01640000
BT IIACI BRANCH IF ACCEPT INPUT 01650000
SPACE 01660000
* NOT ACCEPT INPUT SO MUST VALIDATE THE SYMBOLIC TERMINAL NAME 01670000
* PROVIDED BY USER ALONG WITH THE OPERTAION 01680000
EJECT 01690000
************************************************************************01700000
* LOCATE SYMBOLIC TERMINAL NAME IN THE TERMINAL NAME TABLE 01710000
************************************************************************01720000
SPACE 01730000
L $CCCOM+@TNT,XR1 POINT XR1 AT FIRST TNT ENTRY 01740000
* CHECK FOR END OF TNT 01750000
* XR1 POINTS AT TNT 01760000
SPACE 01770000
L PLRECA(,XR2),XR2 POINT XR2 AT RECORD AREA 01780000
SPACE 01790000
IITNTN CLI TNTCCP(,XR1),STOPER ARE WE AT END OF TNT 01800000
JE IINFND JUMP IF AT END TO NOT FOUND 01810000
SPACE 01820000
* CHECK THIS ENTRY IN THE TNT 01830000
SPACE 01840000
CLC IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) COMPARE TNT STN 01850000
JH IILOOK JUMP HIGH TO LOOK AGAIN 01860000
JE IIFOND JUMP IF FOUND IN TNT 01870000
SPACE 01880000
* NOT FOUND - HAVE PROGRAM ERROR 01890000
SPACE 01900000
IINFND EQU * STN NOT FOUND IN TNT 01910000
L CC@PRL,XR2 POINT TO PARAMETER LIST 01920000
SLC PLTUBA(2,XR2),PLTUBA(,XR2) CLEAR TUB POINTER TO ZEROS 01930000
CLI PLOPC(,XR2),OPGTA WAS THIS A GET ATTRIBUTES OP? 01940000
JE IIGTA SKIP TERMINATION IF YES 01950000
B CC4TI2 BRANCH TO TERMINATION 01960000
DC AL1(TCCNNF) TERMINAL NAME NOT FOUND 01970000
SPACE 01980000
* LOOK SOME MORE 01990000
* DETERMINE HOW MUCH TO BUMP TNT REGITER POINTER 02000000
SPACE 02010000
IILOOK EQU * LOOK AT ANOTHER ENTRY 02020000
IIBUMP LA TNTLN(,XR1),XR1 BUMP POINTER BY TNT FIXED SIZE 02030000
B IITNTN BRANCH TO COMPARE AGAIN 02040000
EJECT 02050000
************************************************************************02060000
* SYMBOLIC TERMINAL NAME WAS FOUND IN TNT 02070000
* DETERMINE IF OPERATION IS VALID FOR THE TYPE TNT ENTRY FOUND * 02080000
************************************************************************02090000
SPACE 02100000
* XR1 POINTS AT PROPER TNT ENTRY 02110000
SPACE 02120000
IIFOND EQU * STN FOUND IN TNT 02130000
SPACE 02160000
TBN TNTFLG(,XR1),TNTBLK IS STN ALL BLANKS 02170000
JF IINBLK JUMP IF NOT ALL BLNAKS 02180000
SPACE 02190000
* HAVE SYMBOLIC TERMINAL NAME OF ALL BLANKS 02200000
SPACE 02210000
* THUS THE TERMINAL TO WHICH THE OPERATION IS DIRECTED IS 02220000
* THE ONE AND ONLY REQUESTOR OF A SINGLE REQUESTOR PROGRAM 02230000
SPACE 02240000
* DETERMINE IF OPERATION IS VALID FOR STN OF ALL BLANKS 02250000
SPACE 02260000
TBN IIVBYT,IIVBLK IS IT VALID OP FOR STN-BLANKS 02270000
JT IICKBK JUMP IF VALID OP 02280000
SPACE 02290000
* HAVE ERROR** INVALID OPERATION FOR STN OF BLANKS 02300000
SPACE 02310000
B CC4TI2 BRANCH TO TERMINATION 02320000
DC AL1(TCCIBL) INVALID BLANK NAME 02330000
SPACE 02340000
EJECT 02350000
IICKBK EQU * CHECK VALIDITY OF BLANK NAME MORE02360000
SPACE 02370000
* FIRST CHECK TO SEE IF PROGRAM IS NON-MRTS PROGRAM 02380000
SPACE 02390000
L CCURTB,XR1 POINT TO THE USER'S TCB 02390900
TBF TCBDMG(,XR1),TCBMTS IS IT NON-MRTS PROGRAM 02391800
JT IISR JUMP IF NON-MRTS PROGRAM 02392700
SPACE 02393600
* HAVE USE OF BLANK NAME FOR MRTS PROGRAM 02394500
SPACE 02395400
B CC4TI2 BRANCH TO TERMINATION 02396300
DC AL1(TCCMBL) BLANK NAME FOR MRTS PROGRAM 02397200
SPACE 02398100
IISR EQU * 02399000
TBN TCBTSK(,XR1),TCBKRQ IS THIS A CONSOLE REQUESTOR TASK 02410000
JF IINKRQ BRANCH IF NOT 02420000
L CC@CMT,XR1 POINT TO CONSOLE TCB 02430000
L TCBTUB(,XR1),XR1 LOAD POINTER TO CONSOLE TUB 02440000
J IIKRQ BRANCH TO MOVE IN NAME 02450000
IINKRQ EQU * 02460000
CLI TCBTUB-1(,XR1),NOBIT IS TUB POINTER NULL 02560000
L TCBTUB(,XR1),XR1 POINT XR1 AT REQUESTOR TUB 02570000
TBN TUBAT1(,XR1),TUBREQ IS TUB REQUESTING TERMINAL 02580000
JC IIRBL,ANY+FALSE+EQ JUMP IF NULL TUB POINTER OR 02590000
* TUB IS NOT REQUESTING 02600000
SPACE 02610000
* BLANK NAME COMPLETELY VALID 02620000
SPACE 02630000
IIKRQ EQU * 02640000
L TUBTNT(,XR1),XR1 POINT XR1 AT THIS TUBS TNT ENTRY 02650000
MVC IISTNL-1(IISTNL,XR2),TNTNAM(,XR1) MOVE STN TO RECORD AREA 02660000
J IINBLK JUMP TO HANDLE FURTHER 02670000
SPACE 02680000
* ERROR - BLANK NAME TO NON-MRTS WITH REQUESTOR RELEASED ALREADY 02690000
SPACE 02700000
IIRBL EQU * 02710000
B CC4TI2 BRANCH TO TERMINATION 02720000
DC AL1(TCCRBL) BLANK NAME WITH REQUESTOR REL. 02730000
EJECT 02740000
************************************************************************02750000
* HAVE REQUEST TO A SPECIFIC TUB AT THIS POINT 02760000
************************************************************************02770000
SPACE 02780000
* XR1 POINTS TO TNT ENTRY 02790000
* ASSURE THAT THIS TNT HAS BEEN ASSIGNED TO A TUB 02800000
SPACE 02810000
IINBLK EQU * HAVE TERMINAL REQUEWT TO HANDLE 02820000
CLI TNTTUB-1(,XR1),NOBIT IS TNTTUB POINTER NULL 02830000
JNE IINNUL JUMP IF POINTER NOT NULL 02840000
SPACE 02850000
* ERROR - TNT NOT ASSINGED TO A TUB 02860000
SPACE 02870000
B CC4TI2 BRANCH TO TERMINATION 02880000
DC AL1(TCCNAT) TNT NOT ASSIGNED TO TUB 02890000
SPACE 02900000
IINNUL EQU * HAVE VALID TNT TUB POINTER 02910000
L CC@PRL,XR2 POINT XR2 AT PARM LIST 02920000
.* 02930000
AIF (&NOM).NML1 . SKIP IF *NO* MLTA 02940000
.* 02950000
************************************************************************02960000
* FOR 1050 ONLY 02970000
************************************************************************02980000
SPACE 02990000
* DETERMINE IF THIS IS SUB-TERMINAL NAME 03000000
SPACE 03010000
MVC PL$MCT(1,XR2),TNTMCT(,XR1) MOVE MCT INDICES INTO PARM LIST 03020000
CLI TNTMCT(,XR1),NOBIT IS THIS SUB-TERMINAL NAME 03030000
JE IISTNT JUMP IF NOT SUB-TERMINAL NAME 03040000
SPACE 03050000
* HAVE SUB-TERMINAL NAME SO MUST GET ADDR OF MASTER TNT FROM 03060000
* TNTTNT FIELD 03070000
SPACE 03080000
L TNTTNT(,XR1),XR1 POINT XR1 AT MASTER TNT 03090000
SPACE 03100000
.NML1 ANOP 03110000
IISTNT EQU * SAVE TNT ADDR 03120000
************************************************************************03130000
ST IIVTNT,XR1 SAVE TNT ENTRY ADDRESS 03140000
MVC PLTUBA(2,XR2),TNTTUB(,XR1) MOVE TUB @ TO PARM LIST 03150000
* @03 03151000
* TAKE A TRACE AT THIS POINT @03 03152000
* @03 03153000
IIGTA B $CC4TT CALL TRACE ROUTINE @03 03154000
DC AL1(TTII) ID FOR II TRACE @03 03155000
* @03 03156000
ALC PLRECA(2,XR2),CC0006 ADD STN LENGTH TO RECA @03 03160000
* ADDRESS TO DATA ADDRESS 03170000
EJECT 03180000
SPACE 03190000
* CHECK REQUEST TYPE - DETERMINE IF IT IS STATUS REQUEST 03200000
SPACE 03210000
TBN PLOPC(,XR2),OPSTAT IS IT STATUS OPERATION 03220000
JF IITKNS JUMP IF NOT NOT STATUS OPERATION 03230000
SPACE 03240000
* HAVE STATUS OPERATION (RELEASE OR GET ATTRIBUTES) 03250000
SPACE 03260000
ST PL$RTC(,XR2),XR1 PLUG TNT ADDR INTO PARM LIST 03270000
B $CC4PI BRACNH TO BRING IN TRANSIENT 03280000
DC AL1(CC4GA) GET ATTRIBUTES TRANSIENT ID 03290000
SPACE 03300000
* RETURN HERE FROM TRANSIENT WHICH HANDLED STSTUS REQUEST 03310000
* CHECK TCB COMPLETEION CODE 03320000
* IF ZERO - CHECK FOR MAPPING 03330000
* IF NON-ZERO BRANCH TO TERMINATION 03340000
SPACE 03350000
L CCURTB,XR1 POINT XR1 AT CURRENT TCB 03360000
CLI TCBCMP(,XR1),NOBIT IS TCB COMPLETION CODE ZERO 03370000
.* 03380000
AIF (&DFF).MAP1 . SKIP IF DFF SUPPORTED 03390000
.* 03400000
BE IIREND BRANCHOUT IF ZERO (OK) 03410000
.* 03420000
.MAP1 AIF (&NDF).NMAP1 . SKIP IF *NO* DFF SUPPORT 03430000
.* 03440000
JNE IIBTCB BRANCH TO HALT IF NON-ZERO 03450000
SPACE 03460000
*********************************************************************** 03470000
* CHECK FOR MAPPING IF GOOD COMPLETION CODE * 03480000
*********************************************************************** 03490000
SPACE 03500000
TBN PLOPC(,XR2),OPREL IS THIS A RELEASE REQUEST? 03510000
BT IIMAPP BRANCH TO MAPPING IF YES 03520000
B IIREND 03530000
.NMAP1 ANOP 03540000
EJECT 03550000
************************************************************************03560000
* BAD TCB COMPLETION CODE * 03570000
************************************************************************03580000
SPACE 03590000
IIBTCB EQU * 03600000
MVC IITCMP(1),TCBCMP(,XR1) MOVE TCB COMP CODE SUCH THAT ARR 03610000
* POINTS TO IT 03620000
SPACE 03630000
B CC4TI2 BRANCH TO TERMINATE THIS TASK 03640000
IITCMP DS CL1 TCB COMPLETION CODE 03650000
SPACE 03660000
************************************************************************03670000
* DETERMINA IF THIS TUB IS THE CONSOLE 03680000
************************************************************************03690000
SPACE 03700000
IITKNS EQU * TEST FOR CONSOLE TUB 03710000
TBN TNTFLG(,XR1),TNTKNS IS IT CONSOLE 03720000
L TNTTUB(,XR1),XR1 POINT XR1 AT TUB 03730000
JT IIKNSL JUMP IF CONSOLE TO CONSOLE HNDLER03740000
SPACE 03750000
* HAVE REQUEST TO TERMINAL - VALIDATE IT 03760000
SPACE 03770000
EJECT 03780000
************************************************************************03790000
* PREPARE FOR PHYSICAL TP IO - MUST VALIDATE REQUEST FIRST 03800000
************************************************************************03810000
SPACE 03820000
* VALIDATE THAT THIS TUB BEONGS TO TCB REQUESTING IT 03830000
SPACE 03840000
CLC TUBTCB(2,XR1),CCURTB DOES CURTCB-TUBTCB 03850000
TBF TUBAT3(,XR1),TUBALC IS TUB PHYSICALLY ALLOCATED ? 03860000
JC IIPHYS,NONE+FALSE+HI+LO JUMP IF OKAY 03870000
SPACE 03880000
* CURRRENT TCB DOES NOT MATCH TUB TCB SO PROGRAM ERROR 03890000
* TERMINAL NOT ALLOCATED TO THIS PROGRAM 03900000
SPACE 03910000
B CC4TI2 BRANCH TO TERMINATION 03920000
DC AL1(TCCNAP) TERMINAL NOT ALLOCATED TO PROG 03930000
IIPHYS EQU * 03940000
TBN TUBAT1(,XR1),TUBONL IS TUB ONLINE? 03950000
JT IITCBK BRANCH IF YES 03960000
MVI PLRTC(,XR2),RCXOFF SET COMPLETION CODE TO OFFLINE 03970000
B IIREND BRANCH TO RETURN 03980000
SPACE 03990000
IITCBK EQU * CHECK THAT TUB POINTS TO CORRECT 04000000
* TNT ENTRY 04010000
CLC TUBTNT(2,XR1),IIVTNT DOES TUB PT TO PROPER TNT 04020000
JE IITNTK JUMP IF YES 04030000
SPACE 04040000
* ERROR TNT POINTS TO TUB BUT TUB DOES NOT POINT TO TNT 04050000
* TERMIANL NOT REFERECNED BY NAME BY WHICH IT WAS ALLOCATED 04060000
SPACE 04070000
B CC4TI2 BRANCH TO TERMINATION 04080000
DC AL1(TCCNAN) NOT ALLOCATED BY THIS NAME 04090000
EJECT 04100000
* ASSURE TERMINAL DOES NOT HAVE OUTSTANDING IMPLICIT INVITE INPUT 04110000
* ONLY ACCEPT INPUT CAN BE ISSUED TO TERMINAL WITH IMPLICIT INVITE INPUT04120000
* WHICH HAS NOT BEEN SATISFIED 04130000
SPACE 04140000
IITNTK EQU * 04150000
TBN TUBAT2(,XR1),TUBIMI IS IMPLICIT INVITE UNSATISFIED 04160000
JF IICKIS JUMP IF NO IMPLICIT INVITE INPUT 04161000
* -------------------START-----@09 04162000
TBF TUBTA2(,XR1),TASMSG IF (TUB NOT IN MESSAGE MODE, 04163000
TBN TUBCHR(,XR1),TUBLNE AND ON BSCA LINE, 04164000
TBF TPEFFL-1(,XR1),ALLBIT AND EFFECTIVE LENGTH 04165000
TBF TPEFFL-0(,XR1),ALLBIT IS ZERO, 04166000
CLI TPRTC(,XR1),RCXEOT AND RETN CODE EOT OR GRTR,) 04167000
JC IICKIS,NONE+FALSE+LO THEN THIS IS A FALSE TUBIMI 04170000
* SET BY CM TO PREVENT FREEMAIN. 04173000
* -------------------END-------@09 04176000
SPACE 04180000
* ERROR - HAVE NON ACCEPT INPUT REQUEST TO TUB WITH IMPLICIT INVITE INPT04190000
* UNSATISFIED 04200000
* DATA FROM PROGRAM REQUEST OUTSTANDING 04210000
SPACE 04220000
B CC4TI2 BRANCH TO TERMINATION 04230000
DC AL1(TCCIMO) IMPLICIT INVITE OUTSTANDING 04240000
SPACE 04250000
* DETERMINE IF INVITE INPUT IS OUTSTANIDNG TO THIS TERMINAL 04260000
* ERROR IF SO UNLESS THIS IS STOP INVITE INPUT 04270000
SPACE 04280000
IICKIS EQU * CHECK FOR OUTSTANDING INVITE INP 04290000
SPACE 04300000
* TEST FOR TUB IN COMMAND INTERRUPT MODE 04310000
* IF YES, THEN MUST HAVE INVITE OUTSTANDING TO TERMINAL 04320000
SPACE 04330000
TBN TUBAT2(,XR1),TUBDTA+TUBCMD IS TUB IN COMMAND INTERRUPT MODE04340000
JT IIVSCH JUMP IF CMD INT SINCE INVITE SCHD04350000
TBN TUBAT2(,XR1),TUBIIS IS INVITE INPUT SCHEDULED ON TUB 04360000
JF IINIIS JUMP IF NO INVITE SCHEDULED 04370000
SPACE 04380000
EJECT 04390000
* HAVE INVITE INPUT SCHEDULED - THIS OP IS VALID ONLY IF IT IS 04400000
* A STOP INVITE INPUT 04410000
SPACE 04420000
IIVSCH EQU * INVITE INPUT SCHEDULED 04430000
TBN PLOPM(,XR2),OPSTOP IS THIS STOP INVITE INPUT 04440000
JT IIIOCP JUMP IF STOP SINCE OPERATION OK 04450000
SPACE 04460000
* INVALID OPERATION WITH INVITE INPUT OUTSTANDING 04470000
SPACE 04480000
B CC4TI2 BRANCH TO TERMINATION 04490000
DC AL1(TCCIIO) INVITE INPUT OUTSTANDING 04500000
SPACE 04510000
* NO INVITE SCHEDULED SO THIS MUST NOT BE A STOP INVITE INPUT 04520000
SPACE 04530000
IINIIS EQU * NO INVITE SCHEDULED 04540000
TBN PLOPM(,XR2),OPSTOP IS THIS STOP INVITE INPUT 04550000
JF IIIOCP JUMP IF NOT STOP INVITE 04560000
SPACE 04570000
* ERROR - HAVE STOP INVITE WITH NO INVITE OUTSTANDING 04580000
SPACE 04590000
B CC4TI2 BRANCH TO TERMINATION 04600000
DC AL1(TCCNIO) NO INVITES OUTSTANDING 04610000
EJECT 04620000
IIIOCP EQU * CHECK FOR PROPER IO CAPABILITY 04630000
************************************************************************04640000
MNN IIIOTS+1,PLOPC(,XR2) MOVE RIGHTMOST 4 BITS OF OP CODE 04650000
* TO TBN INSTURCTION 04660000
SBF IIIOTS+1,X'FC' SET OFF ALL BUT RIGHTMOST 2 BITS 04670000
SPACE 04680000
* NOW READY TO TEST TERMINAL CHARACTERISTICS VS REQUEST IO 04690000
SPACE 04700000
IIIOTS TBN TUBCHR(,XR1),*-* TEST TUB FOR PROPER IO CAPABILITY04710000
JT IIRQTY JUMP IF I/O OKAY 04720000
SPACE 04730000
*I/O CAPABILTY DOES NOT MATCH REQUEST 04740000
SPACE 04750000
B CC4TI2 BRANCH TO TERMINATION 04760000
DC AL1(TCCIOC) I/O CAPABILITY DOES NOT MATCH 04770000
* DETERMINE REQUEST TYPE 04780000
SPACE 04790000
* VALIDATE OP CODE AND MODIFIER TO EXTENT THAT THOSE BITS THAT MUST 04800000
* BE OFF FOR A USER REQUEST ARE OFF 04810000
SPACE 04820000
* CHECK THAT OP CODE IS VALID FOR CONSOLE AS TERMINAL NAME 04830000
SPACE 04840000
IIKNSL EQU * CONSOLE REQUEST HANDLER 04850000
TBN IIVBYT,IIVKNS IS OP VALID FOR CONSOLE 04860000
* -----START-------------------@04 04863000
CLI PLOPC(,XR2),OPPUT+OPRUF AND NOT RUF PUT MESSAGE ? 04866000
JC IIKLEN,TANDNE JUMP IF VALID 04870000
* -----END---------------------@04 04875000
SPACE 04880000
* ERROR - HAVE OP CODE WHICH IS VALID OP BUT NOT FOR CONSOLE 04890000
SPACE 04900000
B CC4TI2 BRANCH TO TERMINATION 04910000
DC AL1(TCCIOK) INVALID OP FOR CONSOLE 04920000
SPACE 04930000
IIKLEN EQU * TEST CONSOLE LENGTH FOR > 80 04940000
TBN PLOPC(,XR2),OPPUT IS THIS AN OUTPUT OPERATION? 04950000
JF IIRQTY BRANCH IF NOT 04960000
CLC PLOUTL(2,XR2),IIMAXK LENGTH GREATER THAN 80? 04970000
JNH IIRQTY BRANCH IF NOT 04980000
SPACE 04990000
* ERROR - OUTPUT LENGTH TO CONSOLE GREATER THAN 80 05000000
SPACE 05010000
B CC4TI2 BRANCH TO TERMINATION 05020000
DC AL1(TCCIKL) INVALID CONSOLE LENGTH 05030000
EJECT 05040000
IIRQTY EQU * 05050000
TBF PLOPM(,XR2),OP$SYS+OPOLT+OPDISC CHECK OP MOD BITS @01 05060000
* TO ASSURE VALIDITY SET 05070000
JT IIVLNO JUMP IF OKAY 05080000
SPACE 05090000
* ERROR - OP MODIFER HAS INVALID BITS FOR USER REQUEST 05100000
SPACE 05110000
B CC4TI2 BRANCH TO TERMINATION 05120000
DC AL1(TCCIOP) INVALID OP OR MODIFIER 05130000
EJECT 05140000
* VALDIATE RECORD LENGTHS PASSED IN THE PARM LIST FROM THE USER 05150000
SPACE 05160000
IIVLNO EQU * VALIDATE OUTPUT LENGTH 05170000
SPACE 05180000
.* 05190000
AIF (&NOM).NML2 . SKIP IF *NO* MLTA SUPPORT 05200000
.* 05210000
B IIMCT BRN TO SEE IF MCT AND VALID 05220000
SPACE 05230000
.NML2 ANOP 05240000
TBN PLOPC(,XR2),OPPUT DOES OP INVOLVE OUTPUT 05250000
JF IIVLNI JUMP IF NO OUTPUT 05260000
SPACE 05270000
* CHECK OUTPUT LENGTH FOR GREATER THAN ZERO 05280000
SPACE 05290000
CLC PLOUTL(2,XR2),CC0000 COMPARE LENGTH VS ZERO 05300000
JH IIFUTH JUMP IF GREATER THAN ZERO 05310000
TBF TUBAT1(,XR1),TUBKNM+TUBKNS IS THIS THE CONSOLE? 05320000
JF IIIOL BRANCH TO ERROR IF YES 05330000
SPACE 05340000
.* 05350000
AIF (&NOM).NYET . SKIP IF *NO* MLTA SUPPORT 05360000
.* 05370000
* ZERO LENGTH IS OK IF THIS IS MLTA PUT EOT/EOB 05380000
SPACE 05390000
TBF TUBCHR(,XR1),TUBLNE IS THIS AN MLTA REEQUEST? 05400000
TBN PLOPC(,XR2),OPBLK IS IT PUT EOT/EOB? 05410000
BT IIREND BRNACH IF YES TO RETURN 05420000
SPACE 05430000
.NYET ANOP 05440000
.* 05450000
AIF (&NOB).NBSC1 . SKIP IF *NO* BSCA SUPPORT 05460000
.* 05470000
* ZERO LENGTH IS OK IF THIS IS PUT-EOT/EOB AND HE OWNS THE BSCA LINE 05480000
SPACE 05490000
TBN PLOPC(,XR2),OPBLK IS THIS PUT EOT/EOB? 05500000
TBN TUBAT2(,XR1),TUBOWN DOES HE OWN THE BSCA LINE? 05510000
JT IIVLNI BRANCH PAST ERROR IF YES 05520000
SPACE 05530000
.* 05540000
AIF (&NDF).BEEP . SKIP IF *NO* DFF SUPPORT 05550000
.* 05560000
TBN PLOPC(,XR2),OPEAU IS THIS AN ERASE OPERATION 05570000
AIF (&NRUF).BEEP1 . SKIP IF NO RUF SUPPORT 05572000
TBF PLOPC(,XR2),OPRUF-OPEAU AND NOT PRUF PUT ? @04 05574000
.BEEP1 ANOP . 05576000
JT IIVLNI BRANCH IF YES - LENGTH OK 05580000
.BEEP ANOP 05590000
.NBSC1 ANOP 05600000
* ERROR HAVE OUTPUT LENGTH NOT GREATER THAN ZERO 05610000
SPACE 05620000
IIIOL EQU * 05630000
B CC4TI2 BRANCH TO TERMINATION 05640000
DC AL1(TCCIOL) INVALID OUTPUT LENGTH 05650000
EJECT 05660000
SPACE 2 05670000
* CHECK FOR OUTPUT LENGTH GREATER THAN TP BUFFER LENGTH 05680000
SPACE 05690000
IIFUTH EQU * 05700000
AIF (&NOB).NBTH 05710000
TBN TUBTA2(,XR1),TASITB IS THIS PUT WITH ITB? 05720000
JF IINITB BRANCH IF NOT 05730000
CLC PLOUTL(2,XR2),TUBRCL(,XR1) OUTPUT LENGTH < RECORD LENGTH? 05740000
JNL IINITB BRANCH PAST TERMINATION IF NOT 05750000
SPACE 05760000
* *ERROR* OUTPUT LENGTH LESS THAT RECORD LENGTH FOR PUT ITB 05770000
SPACE 05780000
B CC4TI2 BRANCH TO TERMINATION 05790000
DC AL1(TCCITB) 05800000
IINITB EQU * 05810000
TBN PLOPC(,XR2),OPBLK IS THIS PUT EOT/EOB? 05820000
TBF TUBTA1(,XR1),TASDFF AND NOT MAPPING? 05830000
TBN TUBCHR(,XR1),TUBLNE MLTA 05840000
JF IIVLNI BRANCH OUT IF NOT BOTH 05850000
CLC PLOUTL(2,XR2),$CCCOM+#TPBUF IS OUTPUT LENGTH GREATER? 05860000
JNH IIVLNI BRANCH PAST TERMINATION IF NOT 05870000
SPACE 05880000
* *ERROR* OUTPUT LENGTH IS GREATER THAN TP BUFFER LENGTH 05890000
SPACE 05900000
B CC4TI2 BRNACH TO TERMINATION 05910000
DC AL1(TCCLRG) 05920000
EJECT 05930000
SPACE 05940000
* CHECK INPUT LENGTH FOR GREATER THAN ZERO IF APPROPRIATE 05950000
SPACE 05960000
.NBTH ANOP 05970000
IIVLNI EQU * CHECK INPUT LENGTH IF NECESSARY 05980000
TBN PLOPC(,XR2),OPGET DOES OP INVOLVE GET 05990000
JF IIOUTR JUMP IF NOT 06000000
SPACE 06010000
.* 06020000
AIF (&NOB).BSC2 . SKIP IF *NO* BSCA SUPPORT 06030000
.* 06040000
* CHECK INPUT LENGTH FOR BSCA GET BLOCK * 06050000
SPACE 06060000
TBN TUBCHR(,XR1),TUBLNE IS THIS A BSCA TERMINAL? 06070000
TBN TUBTA2(,XR1),TASBLK IS THIS GET BLOCK? @07 06080000
JF IISETS BRANCH IF NOT 06090000
SLC IIWORK(2),IIWORK CLEAR WORK AREA 06100000
MVC IICOUN(1),TUBBKF(,XR1) MOVE BLOCKING FACTOR TO WORK 06110000
IILOOP ALC IIWORK,TUBRCL(2,XR1) ADD RECORD LENGTH TO WORK AREA 06120000
SLC IICOUN(1),CC0001 DECREMENT BLOCKING FACTOR 06130000
BNZ IILOOP BRANCH IF MORE TO CONVERT 06140000
CLC PLINL(2,XR2),IIWORK IS INPUT AREA LARGE ENOUGH? @07 06150000
JNH IISETS BRANCH IF YES 06160000
SPACE 06170000
* ERROR - INPUT RECORD AREA NOT LARGE ENOUGH FOR GET BLOCK * 06180000
SPACE 06190000
B CC4TI2 BRANCH TO TERMINATION 06200000
DC AL1(TCCIGB) INVALID GET BLOCK LENGTH 06210000
SPACE 06220000
.BSC2 ANOP 06230000
IISETS EQU * CHECK INPUT LENGTH 06240000
* OPERATION IS SCHEDULED ON TERMIN 06250000
CLC PLINL(2,XR2),CC0000 COMPARE INPUT LENGTH VS ZERO 06260000
JH II#TPB JUMP IF GREATER THAN ZERO 06270000
SPACE 06280000
*ERROR - INPUT LENGTH NOT GREATER THAN ZERO 06290000
SPACE 06300000
B CC4TI2 BRANCH TO TERMINATION 06310000
DC AL1(TCCIIL) INVALID INPUT LENGTH 06320000
EJECT 06330000
II#TPB EQU * IF INVITE-CHECK INPUT LENGTH VS 06340000
.* 06350000
AIF (&NOB).NBS3 . SKIP IF *NO* BSCA SUPPORT 06360000
.* 06370000
*********************************************************************** 06380000
* IF BSCA TERMINAL - CHECK IF RECORD AREA LARGE ENOUGN IF ITB * 06390000
*********************************************************************** 06400000
SPACE 06410000
TBN TUBCHR(,XR1),TUBLNE IS THIS A BSCA LINE? 06420000
TBN TUBTA2(,XR1),TASITB IS ITB SPECIFIED? 06430000
JF IIINRT BRANCH OUT IF NOT 06440000
CLC PLINL(2,XR2),TUBRCL(,XR1) IS RECORD AREA LARGE ENOUGH? 06450000
JNL IIINRT BRANCH OUT IF YES 06460000
SPACE 06470000
* ERROR - RECORD AREA NOT LARGE ENOUGH FOR BSCA ITB * 06480000
SPACE 06490000
B CC4TI2 BRANCH TO TERMINATION 06500000
DC AL1(TCCITB) RECORD AREA TOO SMALL FOR ITB 06510000
SPACE 06520000
IIINRT EQU * 06530000
.NBS3 ANOP 06540000
TBN PLOPC(,XR2),OPINV DOES OP INVOLVE INVITE INPUT 06550000
JF IIOUTR JUMP IF NOT INVITE INPUT 06560000
.* 06570000
AIF (&NOB).NBS31 . SKIP IF *NO* BSCA SUPPORT 06580000
.* 06590000
TBN TUBAT2(,XR1),TUBOWN DOES HE OWN A BSCA LINE? 06600000
L TUBLCB(,XR1),XR1 POINT TO HIS DTF 06610000
TBN $BDOPC(,XR1),$BOPUT WAS LAST OPERATION A PUT? 06620000
TBN LCBAT1(,XR1),LCBNTQ WAS LAST OPERATION PUT-MESSAGE? 06625000
JF IINDPD BRANCH IF NEITHER - INVITE OK 06630000
MVI PLRTC(,XR2),RCXDPD SET DATA PENDING RETURN CODE 06640000
B IIREND GO RETURN TO USER @L 06650000
IINDPD EQU * 06660000
.* 06670000
.NBS31 ANOP . CONTINUE HERE 06680000
* HAVE INVITE INPUT SO INPUT ELNGTH MUST NOT BE LARGER THAN THE 06700000
* SIZE FO THE ENTIRE TP BUFFER 06710000
SPACE 06720000
L CCURTB,XR1 POINT XR1 AT CURRENT TCB 06730000
ALC TCBIIC(1,XR1),CC0001 ADD 1 TO TCB INVITE INPUT COUNT 06740000
SPACE 06750000
CLC PLINL(2,XR2),$CCCOM+#TPBUF COMPARE INPUT LENGTH VS TP BUF 06760000
JNH IIOUTR JUMP IF INPUT LENGTH NOT HIGH 06770000
SPACE 06780000
* ERROR - FOR INVITE INPUT - THE INPUT LENGTH IS GT TP BUFFER SIZE 06790000
SPACE 06800000
B CC4TI2 BRANCH TO TERMINATION 06810000
DC AL1(TCCTPB) TP BUFFER LENGTH PROBLEM 06820000
SPACE 06830000
EJECT 06840000
************************************************************************06850000
* POST $CC4CM AND ISSUE WAIT * 06860000
* OR POST $CC4KM AND WAIT * 06870000
************************************************************************06880000
SPACE 06890000
IIOUTR EQU * 06900000
IIIREQ EQU * I/O INTERFACE REQUEST 06910000
SPACE 06920000
* DETERMINE IF REQUEST IS FOR $CC4KM OR $CC4CM 06930000
SPACE 06940000
L PLTUBA(,XR2),XR1 POINT XR1 AT TUB 06950000
TBF TUBAT1(,XR1),TUBKNM+TUBKNS IS THIS CONSOLE TUB? 06960000
.* 06970000
AIF (&DFF).NM2RT SKIP IF MAPPING 06980000
AIF (&BPRT EQ '0').NBSY1 SKIP IF BSYPRT-NO *L06983000
JT IIBUSY NOT CONSOLE,CHK FOR BSYPRT *L06986000
.NBSY1 ANOP *L06987000
JT IIUPST NOT CONSOLE, GO TO POST 06990000
AGO .SK1RT AND SKIP TO CONSOLE SETUP 07000000
.NM2RT JT IICKMP NOT CONSOLE, CHEKC FOR MAPPING 07010000
.SK1RT ANOP SET UP CONSOLE STUFF 07020000
SPACE 07030000
* HAVE CONSOLE TUB - THUS TCB@ MUST BE PLUGGED INTO PARM LIST 07040000
* AND THE PARM LIST MUST BE QUEUED FOR $CC4KM 07050000
SPACE 07060000
SBN PL$OPM(,XR2),OPKONS SET MODIFIER FOR CONSOLE 07070000
MVC PLTCBA(2,XR2),CCURTB MOVE CURRENT TCB@ TO PARM LIST 07080000
AIF (&NDF).NMAP2 SKIP IF NOT MAPPING 07090000
J IIUPST SKIP MAPPING PROCESSING 07100000
EJECT 07110000
SPACE 2 07120000
*********************************************************************** 07130000
* CHECK VALIDITY OF MAPPING REQUESTS * 07140000
*********************************************************************** 07150000
SPACE 07160000
IICKMP EQU * 07170000
* -------START S307880---------R14 07175000
CLI PLOPC(,XR2),OPCOPY+OPPUT IS THIS A COPY COMMAND? R14 07180000
JNE IINCPY BRANCH IF NOT R14 07200000
* ---------END S307880---------R14 07205000
TBN TUBTA1(,XR1),TASDFF IS MAPPING SPECIFIED FOR TERM? 07210000
JT IICKTN BRANCH IF YES 07220000
SPACE 07230000
* ERROR - COPY TO 3270 REQUESTED BUT NO MAPPING FOR THIS TERMINAL * 07240000
SPACE 07250000
B CC4TI2 BRANCH TO TERMINATION 07260000
DC AL1(TCCICA) INVALID COPY - ATTRIBUTES 07270000
SPACE 07280000
IICKTN EQU * 07290000
L $CCCOM+@TNT,XR1 POINT TO FIRST TNT MAPPING 07300000
L PLRECA(,XR2),XR2 POINT TO RECORD AREA 07310000
IIAGIN CLI 0(,XR1),STOPER IS THIS END OF TNT'S? 07320000
JNE IINSTP BRANCH IF NOT 07330000
SPACE 07340000
* ERROR - SYMBOLIC TERMINAL NAME FOR COPY NOT FOUND IN TNT'S * 07350000
SPACE 07360000
B CC4TI2 BRANCH TO TERMINATION 07370000
DC AL1(TCCICN) INVALID COPY DUE TO NAME NF 07380000
SPACE 07390000
IINSTP CLC 5(6,XR2),5(,XR1) IS THIS THE TNT FOR COPY? 07400000
JE IITNT BRANCH IF YES 07410000
LA TNTLN(,XR1),XR1 POINT TO NEXT TNT 07420000
B IIAGIN GO CHECK THIS ONE 07430000
SPACE 07440000
EJECT 07450000
SPACE 07460000
IITNT L TNTTUB(,XR1),XR1 POINT TO COPY TUB 07470000
L CC@PRL,XR2 POINT TO PARAMETER LIST 07480000
ST PL$RTC(,XR2),XR1 PUT SECOND TUB @ IN PARM LIST 07490000
CLI TUBPHY(,XR1),TUB7M2 IS THIS A 3275? *L07491000
JH IIINCP BRANCH IF YES *L07492000
L PLTUBA(,XR2),XR1 POINT TO OTHER TUB *L07493000
CLI TUBPHY(,XR1),TUB7M2 IS THIS A 3275 *L07494000
JNH IICMAP BRANCH IF NO *L07495000
IIINCP EQU * INVALID DEVICE FOR COPY 07590000
SPACE 07600000
* ERROR - COPY REQUEST INVALID WITH 3275 * 07610000
SPACE 07620000
B CC4TI2 BRANCH TO TERMINALTION 07630000
DC AL1(TCCICT) COPY INVALID TO TERMINAL TYPE 07640000
SPACE 07650000
IINCPY EQU * 07660000
TBN TUBTA1(,XR1),TASDFF IS MAPPING SPECIFIED? 07670000
JT IICMAP BRANCH IF YES 07680000
* -------START S307847---------R14 07685000
CLI PLOPC(,XR2),OPEAU+OPPUT IS THIS AN ERASE R14 07690000
JNE IINEAU BRANCH IF NOT R14 07700000
* ---------END S307847---------R14 07705000
SPACE 07710000
* ERROR - EAU REQUESTED BUT NO MAPPING SPECIFIED FOR THIS TERMINAL 07720000
SPACE 07730000
B CC4TI2 BRANCH TO TERMINATION 07740000
DC AL1(TCCIEA) INVALID ERASE REQUEST 07750000
SPACE 07760000
IINEAU TBN PLOPC(,XR2),OPPUT+OPMSG IS THIS A PUT EOT? 07770000
TBN PLOPM(,XR2),OPLIST IS THIS PUT OVERRIDES? 07780000
AIF (&BPRT EQ '1').BSY1 SKIP IF BSYPRT-YES *L07785000
JF IIUPST BRANCH IF NOT 07790000
AGO .CONT PRINTER BUSY CODE *L07792000
.BSY1 ANOP *L07794000
JF IIBUSY JUMP IF NOT *L07796000
.CONT ANOP *L07798000
SPACE 07800000
* ERROR - PUT OVERRIDES REQUESTED BUT NO MAPPING ON TERMINAL * 07810000
SPACE 07820000
B CC4TI2 BRANCH TO TERMINATION 07830000
DC AL1(TCCIPA) INVALID PUT OVERRIDES 07840000
EJECT 07850000
IICMAP EQU * 07860000
TBN PLOPC(,XR2),OPPUT IS THE OP A PUT? 07870000
JF IICLMP BRANCH IF NOT 07880000
TBN PLOPC(,XR2),OPMSG IS IT A PUT-EOT? 07890000
JT IICLMP BRANCH IF YES 07900000
TBF PLOPC(,XR2),OPCOPY IS THIS A COPY OR ERASE? 07910000
JF IICLMP BRANCH PAST ERROR IF YES 07920000
SPACE 07930000
* ERROR - PUT REQUESTED TO MAPPING WITHOUT THE EOT MODIFIER 07940000
SPACE 07950000
B CC4TI2 BRANCH TO TERMINATION 07960000
DC AL1(TCCIPM) INVALID PUT TO MAPPING 07970000
SPACE 07980000
IICLMP EQU * 07990000
.BPRT ANOP PRINTER BUSY CODE *L07990300
AIF (&BPRT EQ '0').NBSY SKIP IF NO BUSY PRINT SUPPORT *L07990600
AIF (&DFF).NDF1 SKIP IF DFF *L07990900
JT IIUPST GO TO POST *L07991200
.NDF1 ANOP *L07991500
IIBUSY EQU * *L07991800
TBN TUBAT4(,XR1),TUBBSY DEVICE BUSY? *L07992100
JF IINBSY NO,JUMP *L07992400
ST CCIIPL+PLTUBA,XR1 SAVE TUB ADDRESS *L07992700
L TUBTCB(,XR1),XR1 --> TCB *L07993000
ST TCBPL@(,XR1),XR2 SAVE PARM LIST @ *L07993300
LA CCIIPL,XR2 --> INVITE INPUT PARM LIST *L07993600
L PLTUBA(,XR2),XR1 RESTORE TUB @ *L07993900
SBN TUBAT2(,XR1),TUBIIS SET INVITE INPUT SCHEDULED *L07994200
SBN TUBAT4(,XR1),TUBWAT SET TASK WAITING FOR TP *L07994500
B IIPSTS CHECK IF OK TO POST CM FOR TP *L07994800
B $CC4PS BRANCH TO POST ROUTINE *L07995100
DC AL2(256*WPAAII) POST MASK FOR TP REQUEST *L07995400
DC AL2(TCBCOM) @ TCB TO BE POSTED *L07995700
B $CC4WT ISSUE THE WAIT *L07996000
DC AL2(256*WPABSY) WAIT MASK FOR BUSY PRINTER *L07996300
DC IL1'1' WAIT COUNT *L07996600
DC AL1(DPDSP+DPREG) SAVE REGS AND MAKE NON-DISP *L07996900
SBF TUBAT4(,XR1),TUBWAT SET TASK WAITING BIT OFF *L07997200
L TUBTCB(,XR1),XR2 -->TCB *L07997500
L TCBPL@(,XR2),XR2 GET PARM LIST @ *L07997800
B IIBUSY TEST FOR BUSY PRINTER *L07998100
IINBSY EQU * *L07998400
AIF (&NDF).NMAP2 SKIP IF NOT DFF *L07998700
TBN TUBTA1(,XR1),TASDFF DFF TUB? *L07999000
JF IIUPST JUMP IF NOT *L07999300
.NBSY ANOP END PRINTER BUSY CODE *L07999600
B IIMAPP BRANCH TO MAPPING INTERFACE 08000000
SPACE 08010000
CLI PLRTC(,XR2),RCOK WAS MAPPING SUCCESSFUL? 08020000
JNE IIREND SKIP PAST CM CALL ON ERROR @02 08030000
.NMAP2 ANOP 08040000
SPACE 08050000
IIUPST EQU * PERFORM POST FOR USER TCB 08060000
TBN PLOPC(,XR2),OPGET DID OP INVOLVE A GET OPERATION? 08070000
JF IINOII BRANCH OUT IF NOT 08080000
SBN TUBAT2(,XR1),TUBIIS SET ON READ BIT SCHEDULED 08090000
IINOII EQU * 08100000
B IIPSTS CHECK IF OKAY TO POST CM FOR TP 08110000
B $CC4PS BR TO POST ROUTINE 08120000
DC AL2(256*WPAAII) POST MASK FOR TP REQUEST 08130000
IIPTCB DC AL2(TCBCOM) TCB ADDR TO BE POSTED 08140000
SPACE 08150000
* ISSUE WAIT 08160000
SPACE 08170000
IIDOWT EQU * ISSUE THE WAIT 08180000
B $CC4WT BR TO WAIT ROUTINE 08190000
IIPMK EQU * WAIT FIELD 08200000
DC AL2(256*WPAAII) WAIT MASK FOR TP SCHEDULED 08210000
DC IL1'1' WAIT COUNT 08220000
IIWAIT DC AL1(DPDSP+DPREG) SAVE REGS AND MAKE NON-DISP 08230000
ST PLTUBA(,XR2),XR1 STOW TUB @ INTO CONSOLE PARM LST 08240000
SPACE 08250000
.* 08260000
AIF (&NDF).REND . SKIP IF *NO* DFF SUPPORT 08270000
.* 08280000
B IIMAPP BRANCH TO MAPPING INTERFACE 08290000
.REND ANOP 08300000
EJECT 08310000
************************************************************************08320000
* REENTER $CC4II AT THIS POINT AFTER USER REQUEST SCHEDULED 08330000
************************************************************************08340000
SPACE 08350000
IIREND EQU * RETURN TO USER PROGRAM 08360000
SLC PLRECA(2,XR2),CC0006 SUBTRACT 6 FROM DATA ADDR 08370000
CLI PLOPC(,XR2),OPGTA WAS THE OP A GET ATTRIBUTES? 08380000
JE IITEND BRANCH TO EXIT IF YES 08390000
SPACE 08400000
L PLTUBA(,XR2),XR1 POINT XR1 AT TUB 08410000
SBF TUBAT3(,XR1),TUBSPF+TUBSWL ASSURE STOP FAILED AND SWALLOW 08420000
* BITS IN TUB ARE OFF 08430000
SPACE 08440000
IISEND EQU * RETURN 08450000
.* 08460000
AIF (&NDME).NDME1 . SKIP IF *NO* DME SUPPORT 08470000
.* 08480000
SPACE 08490000
************************************************************************08500000
* CANCEL REQUEST ANALYSIS * 08510000
************************************************************************08520000
SPACE 08530000
* XR2 WILL POINT XT THE PARM LIST (GET OR INVITE INPUT) 08540000
* IF CANCEL HAS BEEN REQUESTED BY THE TERMINAL OPERATOR - CALL IN 08550000
* TRANSIENT TO DO HIS THING 08560000
SPACE 08570000
L PLTUBA(,XR2),XR1 POINT XR1 AT THE TUB 08580000
TBN TUBAT3(,XR1),TUBCNC HAS CANCEL BEEN REQUESTED 08590000
JF IITEND JUMP IF NO CANCEL 08600000
SPACE 08610000
* CANCEL HAS BEEN REQUESTED - BRING IN TRANSIENT 08620000
SPACE 08630000
B $CC4PI 08640000
DC AL1(CC4NC) CANCEL TRANSIENT FOR $CC4II 08650000
.* 08660000
.NDME1 ANOP 08670000
.* 08680000
SPACE 5 08690000
SPACE 08700000
IITEND EQU * LEAVING SOON 08710000
B $CC4TT BRACNH TO TRACE RETURN TO USER 08720000
DC AL1(TTIIRT) TRACE ID 08730000
L CCURTB,XR1 POINT XR1 AT CURRENT TCB 08740000
SBN TCBTSK(,XR1),TCBDSV INIDCATE TO RESTORE REGS 08750000
SPACE 08760000
SBF CCDPFL,DPREG+DPDSP NO SAVE REGS AND LEAVE DISP 08770000
B $CC4DP BR TO THE DISPATCHER 08790000
EJECT 08800000
*********************************************************************** 08810000
* HAVE ACCEPT INPUT REQUEST * 08820000
*********************************************************************** 08830000
SPACE 08840000
IIACI EQU * HAVE ACCEPT INPUT 08850000
B $CC4TT BRANCH TO TRACE THE ACCEPT INPUT 08860000
DC AL1(TTII) '0C' TRACE ID 08870000
SPACE 08880000
MVI PL$OPC(,XR2),NOBIT SET OP TO SHOW INITIAL ENTRY 08890000
IICALL EQU * 08900000
B $CC4PI BRANCH TO TRANSIENT HANDLER 08910000
DC AL1(CC4AB) ID FOR ACCEPT TRANSIENT 08920000
B CC4TI2 BRANCH TO TERMINATION ON ERROR 08930000
DC AL1(*-*) ACCEPT IMPOSSIBLE TO SATISFY 08940000
SPACE 08950000
J IIGGSF JUMP IF ACCEPT SATISFIED 08960000
ST CC@PRL,XR2 RESTORE PARAMETER LIST POINTER 08970000
SPACE 08980000
* DETERMINE NOW WHETHER USER SHOULD BE TOLD ABOUT SHUTDOWN REQUESTP08990000
SPACE 09000000
************************************************************************09010000
* CHECK FOR SHUTDOWN * 09020000
************************************************************************09030000
SPACE 09040000
SPACE 09050000
* DETERMINE IF SYSTEM OPERATOR REQUESTED SHUTDOWN AND 09060000
* ALSO WHETHER USER HAS BEEN TOLD YET WITH NON-SHYTDOWN INQURIY OP 09070000
SPACE 09080000
TBN CCFLGA,CPSHUT HAS SHUTDOWN BEEN REQUESTED 09090000
JF IIAIWT JUMP IF NOT 09100000
SPACE 09110000
* SHTUDOWN HAS BEEN REQUESTED - DETERMINE IF USER TOLD ALREADY 09120000
SPACE 09130000
IITELL L CCURTB,XR1 POINT XR1 AT CURRENT TCB 09140000
TBN TCBDMG(,XR1),TCBSHQ HAS USER BEEN TOLD 09150000
SBN TCBDMG(,XR1),TCBSHQ SET BIT THAT USER TOLD 09160000
JF IIPGSH JUMP IF SHUTODWN REQUESTED 09170000
SPACE 09180000
IIAIWT EQU * ISSUE WAIT 09190000
B $CC4WT BRANCH TO WAIT ROUTINE 09200000
DC AL2(256*WPACP+256*WPASHD) WAIT FOR INVITE COMPLETE OR 09210000
* SHUTDOWN REQUEST 09220000
DC IL1'1' WAIT COUNT OF 1 09230000
DC AL1(DPDSP+DPREG) MAKE NON-DISP AND SAVE REGISTERS 09240000
EJECT 09250000
************************************************************************09260000
* RETURN AFTER BEING POSTED THAT A TUB HAS BEEN PUT IN THE TCB INVITE 09270000
* INPUT TUB QUEUE 09280000
* OR SHTUDOWN HAS BEEN REQUESTED BY THE SYSTEM OPERATOR * 09290000
************************************************************************09300000
SPACE 09310000
* DETERMINE IF POST WAS FOR INVITE INPUT COMPLETE 09320000
* IF NOT MUST HAVE BEEN SHUTDONW REQUESTED 09330000
SPACE 09340000
L CCURTB,XR1 POINT XR1 AT CURRENT TCB 09350000
TBN TCBPMK(,XR1),WPACP WAS POST FOR INVITE COMPLETE 09360000
BF IITELL JUMP IF NOT INVIE POST 09370000
SPACE 09380000
* HAD POST OF INVITE INPUT COMPLETE 09390000
SPACE 09400000
ST CC@PRL,XR2 STORE PARM LIST ADDRESS 09410000
SPACE 09420000
MVI PL$OPC(,XR2),ALLBIT SET OP TO SHOW SECONDARY ENTRY 09430000
B IICALL BRANCH TO RECALL TRANSIENT 09440000
SPACE 09450000
* TELL USER SHUTDOWN REQUESTED NOW 09460000
SPACE 09470000
IIPGSH EQU * SHUTDOWN HAS BEEN RREQUESTED 09480000
MVI PLRTC(,XR2),RCXSHD PLUG SHUTDOWN REQUESTED RTN CODE 09490000
B IISEND BR TO RETURN TO USER 09500000
SPACE 4 09510000
*********************************************************************** 09520000
* ACCEPT INPUT SATISFIED * 09530000
*********************************************************************** 09540000
SPACE 09550000
IIGGSF EQU * GET GENERAL SATIFIED 09560000
.* 09570000
AIF (&MIN NE '1').RES . SKIP IF *NOT* MINRES-YES 09580000
.* 09590000
.* 09600000
AIF (&DFF).RESM . SKIP IF DFF SUPPORTED 09610000
.* 09620000
B $CC4PI BRANCH TO TRANSIENT INTERFACE 09630000
DC AL1(CC4AC) ACCEPT INPUT SATISFIED TRAN. 09640000
B IISEND GO TO RETURN TO USER 09650000
.* 09660000
.RES AIF (&MIN).NORS . SKIP IF MINRES-YES 09670000
.* 09680000
.RESM ANOP 09690000
ST CC@PRL,XR2 STORE PARAMETER LIST ADDRESS 09700000
L PLTUBA(,XR2),XR2 POINT AT TUB 09710000
L CCURTB,XR1 POINT XR1 AT CURRENT TCB 09720000
SLC TCBIIC(1,XR1),CC0001 SUBTRACT 1 FROM INVITE COUNT 09730000
SBF TUBAT2(,XR2),TUBIIS+TUBIIQ SET OFF TUB INVITE STATUS BITS 09740000
SPACE 09750000
.* 09750300
AIF (&NRUF).NPRUF . SKIP IF NO PRUF SUPPORT 09750600
* -----START----------------------------@04 09750900
* PROGRAM READ UNDER FORMAT CODE. 09751200
TBN TUBAT2(,XR2),TUBIMI THIS A PROGRAM REQUEST ? 09751500
JF IINRUF NO, SKIP PRUF SET UP 09751800
TBN TUBCHR(,XR2),TUBLNE THIS NON-BSCA LINE OR 09752100
TBF TUBSCS(,XR2),TUBRUF NON-RUF TUB OR 09752400
TBN TCBDMG(,XR1),TCBRUF NON-RUF TASK ? 09752700
L CC@PRL,XR1 POINT TO PARM LIST, THEN 09753000
JF IIRUF GO DO FINAL NON-PRUF CHECK 09753300
SPACE 09753600
MVI PLRTC-1(,XR2),RCOK RETURN CODE = 02; NON-PRUF @05 09753900
MVI PLRTC(,XR2),RCXEOT DATA FOR PRUF PROGRAM @05 09754200
J IINRUF GO DEQUEUE TUB @05 09754500
SPACE 09754800
IIRUF EQU * * 09755100
TBN TUBCHR(,XR2),TUBLNE THIS A BSCA LINE AND 09755400
TBN TUBSCS(,XR2),TUBRUF PRUF HANDLING TERMINAL AND 09755700
TBN TUBTA1(,XR2),TASDFF DFF TERMINAL @06 09755800
JF IINRUF NO, BYPASS PRUF SET UP 09756000
SPACE 09756300
* IF TASK IS NOT A DFF PROGRAM - DON'T SET-UP FOR MOVE @06 09756340
SPACE 1 09756380
L TUBTCB(,XR2),XR1 XR1 --> TCB @06 09756420
CLI TCBDFF-1(,XR1),NOBIT DFF TASK ? @06 09756460
JE IINRUF NO - JUMP @06 09756500
SPACE 1 09756540
L TPRECA(,XR2),XR1 POINT AT DATA 09756600
A X$FFFF,XR1 DECREMENT POINTER BACK ONE 09756900
MVC IIMOVE+2,PL$RTC(1,XR2) SET UP LENGTH FOR GM MOVE 09757200
IIMOVE EQU * * 09757500
MVC #(,XR1),0(4,XR1) DFF DATA AREA 09757800
ALC PLRECA(,XR2),PL$RTC(2,XR2) BUMP RECORD ADDR PAST NAME 09758100
SPACE 09758400
IINRUF EQU * 09758700
* -----END------------------------------@04 09759000
.NPRUF ANOP 09759300
SPACE 09759600
* DEQUEUE THE TUB FROM INVITE INPUTE TUB QUEUE 09760000
L CC@PRL,XR1 POINT TO PARAMETER LIST 09770000
L PL$RTC(,XR1),XR1 POINT TO PREVIOUS TUB 09780000
MVC 0(2,XR1),TUBINQ(,XR2) DEQUEUE THE TUB 09790000
TBN TUBAT1(,XR2),TUBKNS IS THIS CONSOLE SUB TUB? @08 09792000
JF IINCON NO. @08 09794000
SLC TUBINQ(2,XR2),TUBINQ(,XR2) CLR CONSOLE INQ CHAIN @08 09796000
IINCON EQU * @08 09798000
EJECT 09800000
************************************************************************09810000
* SET UP USER RECORD AREA 09820000
************************************************************************09830000
SPACE 09840000
* SET UP FOR MOVE OF SYSMBOLIC TERMINAL NAME TO USER RECORD AREA 09850000
SPACE 09860000
L TUBTNT(,XR2),XR1 POINT XR1 AT TNT 09870000
LA TNTNAM(,XR1),XR1 POINT XR1 AT NAME IN TNT ENTRY 09880000
ST IIMVTN+4,XR1 STORE NAME @ IN MVC INSTUCTION 09890000
SPACE 09900000
* BEGIN TO PLUG USER'S ACCEPT INPUT PARM LIST 09910000
SPACE 09920000
L CC@PRL,XR1 POINT XR1 AT ACCEPT PARM LIST 09930000
MVC PLRTC(2,XR1),TPRTC(,XR2) MOVE COMPLETION CODE FROM TUB 09940000
SPACE 09950000
* DETERMINE IF OPERATION WAS SUCCESSFUL OR NOT 09960000
* IF UNSUCCESSFUL - DATA IS NOT TO BE MOVED 09970000
SPACE 09980000
CLI TPRTC(,XR2),RCXEDT CHECK AGAINST HIGHEST RETURN FOR 09990000
* WHICH DATA ACCOMPNAIES THE PM LT10000000
JNH IIBGPG JUMP IF RETURN CODE INDICATES 10010000
* DATA WITH THE PARM LIST 10020000
CLI TPRTC(,XR2),RCXNAV WAS TERMINAL UNAVAILABLE? 10030000
JNE IINAV BRANCH IF NOT 10040000
MVC PLEFFL(2,XR1),TPEFFL(,XR2) MOVE LENGTH TO PARM LIST 10050000
J IIMVDN SKIP PAST FREEMAIN 10060000
EJECT 10070000
SPACE 10080000
* HAD UNSUCCESSFUL OPERATION 10090000
* SET DATA LENGTH AT ZERO AND MOVE ALL BLANKS TO RECORD AREA 10100000
* SET IMI BIT ON TEMPORARILY AS INDICATION NOT TO ISSUE FREEMIAN 10110000
* IMI ON ALONG WITH AN EFFECTIVE LENGTH OF ZERO WILL CASUE THE FREEMAIN 10120000
* TO BE SKIPPED 10130000
SPACE 10140000
IINAV EQU * 10150000
SLC TPEFFL(2,XR2),TPEFFL(,XR2) ZERO EFFECTIVE INPUT LENGTH 10160000
SBN TUBAT2(,XR2),TUBIMI SET IMI BIT ON TO INDICATE NO FRM10170000
.* 10180000
AIF (&NDF).BGPG . SKIP IF *NO* DFF SUPPORT 10190000
.* 10200000
MVI PL$OPC(,XR1),BRNOP NO-OP THE BRANCH TO MAPPINT 10210000
.BGPG ANOP 10220000
SPACE 10230000
IIBGPG EQU * BEGIN TO PLUG USER PARM LIST 10240000
MVC MVL+MVLTOL,PLINL(2,XR1) MOVE TARGET LENGTH TO MOVE LIST 10250000
MVC PLEFFL(2,XR1),TPEFFL(,XR2) MOVE INVITE EFFL LENGTH TO GG PL10260000
IISKIP L PLRECA(,XR1),XR1 POINT TO RECORD AREA 10270000
IIMVTN MVC IISTNL-1(IISTNL,XR1),*-* MOVE STN TO USER RECORD AREA 10280000
LA IISTNL(,XR1),XR1 BUMP XR1 TO 1ST BYTE OF DATA 10290000
ST MVL+MVLTOA,XR1 STORE ADDRESS IN MOVE LIST 10300000
SPACE 10310000
.* 10320000
AIF (&NDF).LOAD . SKIP IF *NO* DFF SUPPORT 10330000
.* 10340000
L CC@PRL,XR1 RESTORE POINTER TO PARM LIST 10350000
TBN TUBTA1(,XR2),TASDFF IS MAPPING FOR THIS TERMINAL? 10360000
JF IINMAP BRANCH IF NOT 10370000
SPACE 10380000
L CC@PRL,XR2 POINT TO PARAMETER LIST 10390000
MVC IIBRCH+1,PL$OPC(1,XR2) SET CONDITION CODE IN BRANCH 10400000
IIBRCH EQU * 10410000
BC IIMAPP,BR97 BRANCH TO MAPPING INTERFACE 10420000
SPACE 10430000
.LOAD ANOP 10440000
L CC@PRL,XR1 POINT TO PARAMETER LIST 10450000
.* 10460000
AIF (&NDF).CLC . SKIP IF *NO* DFF 10470000
.* 10480000
L PLTUBA(,XR1),XR2 POINT TO TUB 10490000
CLI PL$OPC(,XR1),BR97 WAS THE BRANCH NO-OPED (ERROR) 10500000
JE IIFREE BRANCH IF MAPPING WAS CALLED 10510000
IINMAP EQU * 10520000
.CLC ANOP 10530000
CLC PLINL(2,XR1),TPEFFL(,XR2) COMPARE INVITE EFFL VS GET MAX IN10540000
JNL IIGTRA JUMP UNLESS MAX IN FOR GG IS LOW 10550000
SPACE 10560000
* HAVE ACCEPT INPUT WHOSE INPUT LENGTH IS LESS THAN THE EFFECTIVE LENGTH10570000
* OF THE INVNINVITE INPUT FROM WHICH IT IS GETTING DATA 10580000
* THUS MUST RESET ACCEPT EFFECTVIE LENGTH TO ITS REQUESTED LENGTH 10590000
* LNEGHT AND MUST SET BIT IN RETURN CODE TO INDICATE TRUNCATION 10600000
SPACE 10610000
SBN PLRTC(,XR1),RCXDTR SET DATA TRUNCATED BIT IN RT CODE10620000
MVC PLEFFL(2,XR1),PLINL(,XR1) SET GG EFFL TO IT REQUESTED LENGH10630000
SPACE 10640000
IIGTRA EQU * GET RECORD ADDRESS 10650000
EJECT 10660000
*********************************************************************** 10670000
* MOVE DATA FROM INVITE HOLD BUFFER TO USER RECORD AREA *10680000
*********************************************************************** 10690000
SPACE 10700000
* SET UP MOVE LIST WITH SOURCE FIELD INFORMATION 10710000
SPACE 10720000
MVC MVL+MVLFRL(2),TPEFFL(,XR2) MOVE IN SOURCE LENGHT 10730000
MVC MVL+MVLFRA(2),TPRECA(,XR2) MOVE IN SOURCE ADDRESS 10740000
SPACE 10750000
* *DETERMINE IF EFFECTIVE LENGTH GREATER THAN 0 10760000
* IF NOT - DO NOT MOVE ANY DATA 10770000
* INSTEAD MOVE ALL BLANKS TO THE USER RECORD AREA 10780000
SPACE 10790000
CLC TPEFFL(2,XR2),CC0000 IS THERE DATA TO BE MOVED 10800000
JNE IIMVDT JUMP IF DATA 10810000
SPACE 10820000
* HAVE TO CLEAR ENTIRE USER RECORD TO BLANKS 10830000
* THUS SET UP MOVE LIST TO MOVE ONE BLNAK AND CLEAR THE REST OF THE FIEL10840000
SPACE 10850000
MVC MVL+MVLFRL(2),CC0001 SET UP SOURCE LENGTH AS 1 10860000
MVC MVL+MVLFRA(2),II@BLK SET SOURCE @ TO POINT TO BLANK 10870000
J IIDOMV JUMP TO DO THE MOVE NOW 10880000
SPACE 10890000
* DETERMINE WHETHER TO BUMP THE SOURCE ADDRESS PAST A PROGRAM NAME WHICH10900000
* WILL SIT IN THE SOURCE RECORD AREA FOR AN IMPLICIT INVITE INPUT 10910000
SPACE 10920000
IIMVDT EQU * MOVE THE DATA 10930000
TBN TUBAT2(,XR2),TUBIMI IS PROGRAM NAME SITTING IN SOURCE10940000
* FILED AREA 10950000
JF IIDOMV JUMP IF NO PROGRAM NAME IN AREA 10960000
SPACE 10970000
* BUMP THE SOURCE RECORD AREA ADDRESS PAST THE PROGRAM NAME 10980000
* THE AMOUNT TO BUMP THE ADRESS BY RESIDES IN PL$RTC OF THE INVITE PARM 10990000
* LIST SITTING IN THE TUB 11000000
SPACE 11010000
ALC MVL+MVLFRA(2),TP$RTC(,XR2) BUMP ADDR PAST PROGRAM NAME 11020000
SPACE 11030000
IIDOMV EQU * DO THE MOVE NOW 11040000
ST IILAX2+3,XR2 SAVE THE TUB@ 11050000
LA MVL,XR2 POINT XR2 AT MOVE LIST 11060000
B $CC4MX BR TO MOVE AND CLEAR ROUTINE 11070000
SPACE 11080000
* THE MOVE IS NOW COMPLETE 11090000
SPACE 11100000
L CC@PRL,XR1 POINT XR1 AT GG PARM LIST 11110000
IILAX2 LA *-*,XR2 RESTORE XR2 TO POINT TO TUB 11120000
IISVX2 EQU *-1 SAVE XR2 - TUB@ 11130000
EJECT 11140000
*********************************************************************** 11150000
* FREEMAIN THE INVITE INPUT HOLD BUFFER *11160000
*********************************************************************** 11170000
SPACE 11180000
* XR2 POINTS AT TUB 11190000
SPACE 11200000
* IF EFFECTIVE DATA LENGTH OF INVITE INPUT WAS ZERO AND 11210000
* THE INVITE WAS AN IMPLICIT INVITE INPUT 11220000
* THEN DO NOT FREEMAIN SINCE THE FREEMIAN HAS ALREADY OCCURRED 11230000
* ASSURE THAT IMPLICIT INVITE INPUT BIT IN TUB IS OFF 11240000
SPACE 11250000
IIFREE EQU * 11260000
TBN TPOPM(,XR2),OPNFG IS FREEMAIN BIT ON? @01 11261000
SBF TPOPM(,XR2),OPNFG RESET THE FREEMAIN BIT @01 11262000
JF IIBLEW BRANCH OUT IF NOT ON @01 11263000
SBF TUBAT2(,XR2),TUBIMI RESET IMI IN CASE IT'S ON @01 11264000
J IIFRMN GO TO FREEMAIN RECA @01 11265000
IIBLEW EQU * @01 11266000
TBN TUBAT2(,XR2),TUBIMI WAS IT IMPLICIT INVITE 11270000
SBF TUBAT2(,XR2),TUBIMI SET IMPLICIT INVITE BIT OFF 11280000
CLC TPEFFL(2,XR2),CC0000 IS EFFL FOR INVITE -0 11290000
JC IIMVDN,NONE+HI+LO+FALSE JUMP IF IMPLICIT INVITE WITH 11300000
* EFFECTIVE LENGTH OF ZERO 11310000
SPACE 11320000
IIFRMN EQU * FREEMAIN THE HOLD BUFFER 11330000
L TPRECA(,XR2),XR2 POINT XR2 AT RECORD AREA TO BE FM11340000
B CMFMRT BRANCH TO FREEMAIN INTERFACE 11350000
SPACE 11360000
* POST $CC4CM ABOUT THE FREEMAIN IN HIS STORAGE AREA 11370000
SPACE 11380000
B $CC4PS BRANCH TO POST 11390000
DC AL2(WPBFR) FREEMAIN POST BIT 11400000
DC AL2(TCBCOM) POST CM'S TCB 11410000
SPACE 11420000
IIMVDN EQU * MOVE COMPLETE SO RETURN TO USER 11430000
SPACE 11440000
LA 0(,XR1),XR2 POINT XR2 AT PARM LIST FOR TRACE 11450000
B IISEND BRANCH TO RETURN TO REQUESTOR 11460000
.* 11470000
.NORS AIF (&NOM).MAPP . SKIP IF *NO* MLTA SUPPORT 11480000
.* 11490000
EJECT 11500000
************************************************************************11510000
* MCT CHECK FOR INPUT AND OUTPUT CAPABILITY * 11520000
************************************************************************11530000
SPACE 11540000
* XR1 POINTS AT TUB 11550000
* XR2 POINTS AT PARM LIST 11560000
SPACE 11570000
IIMCT EQU * 1050 CHECK 11580000
ST IIMCTR+3,ARR SAVE ARR 11590000
SPACE 11600000
* DOES THIS OP INVOLVE MULTI-COMPONENT TERMINAL 11610000
SPACE 11620000
TBN TUBCHR(,XR1),TUBMCT IS THIS MCT 11630000
JF IIMCTR JUMP IF NOT TO RETURN NOW 11640000
SPACE 11650000
* HAVE MCT - SO CHECK COMPONENT INDICES 11660000
SPACE 11670000
CLI PL$MCT(,XR2),NOBIT ARE COMPONENT INDICES IN PARM LIS11680000
JNE IIMCTC JUMP IF INDICES ALREADY IN PARM L11690000
MVC PL$MCT(1,XR2),TUBPCS(,XR1) PLUB MCT INDICES INTO PARM LIST 11700000
SPACE 11710000
IIMCTC EQU * CHECK MCT INDICES 11720000
TBN PLOPC(,XR2),OPPUT DOES OP INVOLVE PUT 11730000
TBF PL$MCT(,XR2),MCTOUT IS MCT OUTPUT CAPABLE 11740000
JF IIMCTG JUMP IF OUTPUT CAPABLE OR NO PUT 11750000
SPACE 11760000
* ERROR - SUB TERMINAL NAME SPECIFIED FOR OUTPUT BUT NO 11770000
* OUTPUT DEVICES ASSOCIATED WITH THIS NAME 11780000
SPACE 11790000
B CC4TI2 BRANCH TO TERMINATION 11800000
DC AL1(TCCIOC) I/O CAPABILITY - NO MATCH 11810000
SPACE 11820000
IIMCTG EQU * CHECK INPUT 11830000
TBN PLOPC(,XR2),OPGET DOES OP INVOLVE GET 11840000
TBF PL$MCT(,XR2),MCTIN IS MCT INPUT CAPABLE 11850000
JF IIMCTR JUMP IF INPUT CAPABLE OR NO GET 11860000
SPACE 11870000
* ERROR - SBU TERMINAL NAME SPECIFIED FOR INPUT OPERATION BUT NO 11880000
* INPUT DEVICE ASSOCIATED WITH THIS NAME 11890000
SPACE 11900000
B CC4TI2 BRANCH TO TERMINATION 11910000
DC AL1(TCCIOC) I/O CAPABILITY - NO MATCH 11920000
SPACE 11930000
IIMCTR B #### RETURN 11940000
EJECT 11950000
.* 11960000
.MAPP ANOP 11970000
AIF (&NDF).CKIN . SKIP IF *NO* DFF SUPPORT 11980000
.* 11990000
*********************************************************************** 12000000
* INTERFACE TO MAPPING MODULE - XR2 POINTS AT PARAMETER LIST * 12010000
*********************************************************************** 12020000
SPACE 12030000
IIMAPP EQU * INTERFACE TO MAPPING 12040000
ST IIRTRN+3,ARR SAVE RETURN ADDRESS 12050000
L PLTUBA(,XR2),XR1 POINT TO TUB 12060000
TBN TUBTA1(,XR1),TASDFF IS MAPPING FOR THIS TERMINAL 12070000
JF IIRTRN BRANCH IF NOT MAPPING 12080000
MVC IIIIII+3,$CCCOM+#DFENT(2) MOVE IN MAPPING ENTRY ADDRESS 12090000
L CCURTB,XR1 POINT TO CURRENT TCB 12100000
CLI TCBDFF-1(,XR1),NOBIT IS MAPPING FOR THIS TASK? 12110000
L PLTUBA(,XR2),XR1 RESTORE TUB POINTER 12120000
JNE IIXXXX BRANCH IF YES 12130000
TBN PLOPC(,XR2),OPSTAT IS THIS A STATUS REQUEST? 12140000
JT IIRTRN BRANCH TO RETURN IF YES 12150000
J IIDFER TERMINATE FOR NO MAPPING IN TASK 12160000
IIXXXX EQU * 12170000
L IIRTRN+3,XR1 SAVE ARR IN XR1 12180000
IIIIII B *-* BRANCH TO MAPPING MODULE 12190000
ST IIRTRN+3,XR1 STORE RETURN ADDRESS IN BRANCH 12200000
ST CC@PRL,XR2 RESTORE PARAMETER LIST POINTER 12210000
L PLTUBA(,XR2),XR1 RESTORE TUB POINTER 12220000
IIRTRN B *-* 12230000
SPACE 2 12240000
*----ERROR----DFF TERMINAL REFERENCED BY NON-DFF TASK 12250000
SPACE 2 12260000
IIDFER EQU * 12270000
B CC4TI2 BRANCH TO TERMINATION 12280000
DC AL1(TCCNDF) 12290000
SPACE 12300000
SPACE 12310000
.CKIN ANOP 12320000
TITLE 'COMMUNICATIONS&#.I/O&#.INTERFACE&#.--&#.SYSTEM&#.I/O' 12330000
************************************************************************12340000
* ENTRY POINT FOR I/O INTERFACE FOR THE SYSTEM 12350000
************************************************************************12360000
SPACE 12370000
$CC4IS EQU * I/O INTERFACE FOR SYSTEM 12380000
A CC0001,ARR ADD 1 TO ARR TO POINT IT AT RIGHT12390000
* END OF PARM LIAT ADDR OF ADDR 12400000
ST MOVE+5,ARR STORE ADDR OF PARM LIST ADDR IN M12410000
* MVC INSTRUCTION 12420000
A CC0001,ARR BUMP ARR TO NSI 12430000
SPACE 12440000
* MOVE PARM LIST ADDR TO CC@PRL 12450000
SPACE 12460000
MOVE MVC CC@PRL(2),*-* MOVE PARM LIST ADDR TO CC@PRL 12470000
SPACE 12480000
* SAVE THE REGISTERS 12490000
SPACE 12500000
ST CCARR,ARR SAVE ARR 12510000
B CCPSAV BR TO SAVE THE REG IN TCB 12520000
SPACE 12530000
************************************************************************12540000
* FIRST VERIFY TERMINAL OR CONSOLE 12550000
* POST CM WITH TP IO RETQUEST 12560000
* OR POST KM WITH TP REQUEST 12570000
* WAIT 12580000
* RETURN TO INVOKER 12590000
************************************************************************12600000
SPACE 12610000
* DETERMINE CONSOLE OR TERMINAL REQUEST 12620000
SPACE 12630000
L CC@PRL,XR2 POINT XR2 AT PARM LIST 12640000
SPACE 12650000
SLC PLCHN(2,XR2),PLCHN(,XR2) CLEAR CHAIN POINTER IN PARM LIST 12660000
SLC PL$RTC(4,XR2),PL$RTC(,XR2) ZERO INTERNAL RETRUN CODE 12670000
* AND INTERNAL OP CODE 12680000
SPACE 12690000
L PLTUBA(,XR2),XR1 POINT XR1 AT TUB 12700000
B $CC4TT BRANCH TO TRACE ROUTINE 12710000
DC AL1(TTIS) TRACE FOR $CC4IS 12720000
SPACE 12730000
* TAKE A TRACE AT THIS POINT 12740000
SPACE 12750000
* DETERMINE IF THIS IS CONSOLE REQUEST 12760000
SPACE 12770000
TBF TUBAT1(,XR1),TUBKNM+TUBKNS IS THIS THE CONSOLE? 12780000
JT ISREQ BRANCH OUT IF NOT 12790000
EJECT 12800000
*********************************************************************** 12810000
* HAVE CONSOLE REQUEST 12820000
*********************************************************************** 12830000
SPACE 12840000
SPACE 12850000
SBN PL$OPM(,XR2),OPKONS SET MODIFIER FOR CONSOLE 12860000
MVC PLTCBA(2,XR2),CCURTB MOVE CURRENT TCB@ TO PARM LIST 12870000
J ISPOST JUMP TO ISSUE POST 12880000
EJECT 12890000
*********************************************************************** 12900000
* HAVE TPIO REQUEST FOR A TERMINAL 12910000
* POST $CC4CM AND ISSUE WAIT * 12920000
*********************************************************************** 12930000
SPACE 12940000
*POST CM FOR TP REQUEST 12950000
SPACE 12960000
* IF OPERATION INVOLVES READ - SET ON READ SCHEDULED BIT IN TUB 12970000
SPACE 12980000
ISREQ EQU * HAVE TP REQUEST FOR $CC4CM 12990000
.* 13000000
AIF (&N1050).NMCT9 . SKIP IF *NO* 1050 SUPPORT 13010000
.* 13020000
SPACE 13030000
* FIRST PLUG PL$MCT IS THIS IS MULTI-COMPONENT TERMINAL 13040000
SPACE 13050000
B IIMCT FOR MCT (1050) ONLY 13060000
.* 13070000
.NMCT9 ANOP . CONTINUE HERE 13080000
.* 13090000
SPACE 13100000
TBN PLOPC(,XR2),OPGET DOES OP INVOLVE GET 13110000
TBF PLOPM(,XR2),OPSTOP BUT NOT STOP OP 13120000
TBF PLOPC(,XR2),OPJRSH AND NOT 'JUST RESCHEDULE' 13125000
JF ISMVPS JUMP IF GET NOT INVOLVED 13130000
SPACE 13140000
* OPERATION TO TERMINAL INVOLVES GET SO SET ON TUBIIS BIT 13150000
SPACE 13160000
SBN TUBAT2(,XR1),TUBIIS SET ON READ SCHEDULED BIT 13170000
SPACE 13180000
ISMVPS EQU * SET UP POST FIELD 13190000
TBF PLOPM(,XR2),OP$SYS SYSTEM REQUEST ? 13195000
CLI TUBPHY(,XR1),TUBCPU IS THE IO TO A CPU? 13200000
JC ISPOST,FALSE+ANY+EQ+HI GO TO POST CM IF NOT 13210000
L PLRECA(,XR2),XR1 POINT TO RECORD AREA 13220000
CLI 0(,XR1),SMESG IS THIS AN 'S' MESSAGE TO A CPU? 13230000
JNE ISPOST BRANCH TO POST IF NOT 13240000
SBF PLOPC(,XR2),OPPUT SET TO IGNORE THE PUT 13250000
TBN PLOPC(,XR2),OPGET IS A GET TO BE DONE? 13260000
JF ISREGS SKIP POST AND WAIT IF YES 13270000
SPACE 13280000
************************************************************************13290000
* BRANCH TO POST ROUTINE 13300000
************************************************************************13310000
SPACE 13320000
ISPOST EQU * POST APPROPRIATE TASK 13330000
B IIPSTS CHECK IF OKAY TO POST CM FOR TP 13340000
B $CC4PS BR TO POST ROUTINE 13350000
DC AL2(256*WPAAII) POST TP REQUST 13360000
ISPSFD DC AL2(TCBCOM) TCB ADDR TO BE POSTED 13370000
SPACE 3 13380000
* ISSUE WAIT 13390000
* UNLESS $FLGA BIT INIDCATES NOT TO WAIT 13400000
*OR SYSTEM INVITE INPUT - (FOR START-UP) 13410000
SPACE 13420000
SBF ISWAIT,DPDSP INITIALLY, SET *DISPATCHABLE* 13430000
CLI PLOPC(,XR2),OPINV IS THIS AN INVITE INPUT 13440000
TBF CCFLGA,CPISNW OR OTHER NO-WAIT OPERATION? 13450000
JC ISNOWT,ANY+FALSE+EQ AVOID NON-DISPATCHABLE IF EITHER 13460000
SPACE 13470000
SPACE 1 13480000
* NEITHER SYSTEM INVITE-INPUT NOR SPECIAL NO-WAIT OPERATION -- PREPARE 13490000
* WAIT CONTROL BYTE TO SET THIS TASK *NON*-DISPATCHABLE 13500000
SPACE 1 13510000
SBN ISWAIT,DPDSP SET NON-DISPATCHABLE UNTIL POST 13520000
EJECT 13530000
SPACE 13540000
************************************************************************13550000
* W A I T * 13560000
************************************************************************13570000
ISNOWT EQU * 13580000
B $CC4WT BR TO WAIT 13590000
DC AL2(256*WPAAII) WAIT FOR I/O SCHEDULED 13600000
DC IL1'1' WIAT COUNT 13610000
ISWAIT DC AL1(DPDSP+DPREG) SAVE REGS AND MAKE NON-DISP 13620000
SPACE 13630000
************************************************************************13640000
* RETURN HERE AFTER WAIT SATISFIED WITH POST 13650000
************************************************************************13660000
SPACE 13670000
ISREGS EQU * RESTORE THE REGISTERS 13680000
B $CC4TT BRANCH TO TRACE 13690000
DC AL1(TTIIRT) TRACE ID 13700000
B CCPRET RESTORE THE REGISTERS 13710000
EJECT 13720000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13730000
* * 13740000
* CHECK IF OKAY TO POST CM FOR TP WORK. IF CM IS WAITING FOR DISK * 13750000
* I/O, WE WILL WAIT FOR DSM ENTRY/EXIT UNTILL CM IS WAITING FOR TP * 13760000
* OR ELSE THE POST WILL BE LOST. * 13770000
* * 13780000
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 13790000
SPACE 13800000
IIPSTS EQU * 13810000
ST CCARR,ARR SAVE THE ARR 13820000
B CCPSAV SAVE REGS IN TCB 13830000
L $CCCOM+@CMTCB,XR1 LOAD CM TCB ADDRESS 13840000
SPACE 13850000
IIPSTT TBN TCBWMK(,XR1),WPAAII IS CM WAITING FOR TP? 13860000
JT IIPSTR YES, OKAY TO CONTINUE 13870000
B $CC4WT GOTO WAIT ROUTINE 13880000
DC AL2(WPBDSX) WAIT ON DSM ENTRY/EXIT 13890000
DC XL1'01' EVENT COUNT 13900000
DC AL1(DPDSP+DPREG) FLAG BYTE 13910000
B IIPSTT LOOP BACK TO INSURE PROPER COND 13920000
SPACE 13930000
IIPSTR ST CC@PRL,XR2 STORE PARAMETER LIST 13940000
B CCPRET RETURN TO CALLER 13950000
EJECT 13960000
************************************************************************13970000
* WORKAREA *13980000
************************************************************************13990000
SPACE 14000000
IIVTNT DS AL2 SAVE AREA FOR TNT ENTRY ADDRESS 14010000
SMESG EQU C'S' IDENTIFIER FOR AN 'S' MESSAGE 14020000
STOPER EQU X'00' STOPPER BYTE-INDICATES END OF TNT14030000
IISTNL EQU 6 LENGHT OF SYMBOLIC TERMINAL NAME 14040000
CC0006 DC IL2'6' 2-BYTE BINARY 6 14050000
.* 14060000
AIF (&DFF).DUM . SKIP IF DFF SUPPORTED 14070000
.* 14080000
AIF (&MIN).TCON . SKIP IF MINRES-YES 14090000
.* 14100000
.DUM ANOP 14110000
MVL EQU * BEGINNING OF MOVE LIST AREA 14120000
DS CL8 MOVE LIST AREA 14130000
IIBLNK DC XL1'40' EBCDCI BLANK 14140000
II@BLK DC AL2(IIBLNK) ADDRES OF BLNAK 14150000
.TCON ANOP 14160000
IIZERO EQU 0 14170000
MCTIN EQU X'F0' INPUT COMPONENT BITS 14180000
MCTOUT EQU X'0F' OUTPUT COMPONENT BITS 14190000
IIMAXK DC XL2'0050' MAX OUTPUT LENGTH FOR CONSOLE 14200000
.* 14210000
AIF (&NDF).C75 . SKIP IF *NO* DFF SUPPORT 14220000
.* 14230000
II3275 EQU X'07' VALUE FOR 3275 14240000
.* 14250000
.C75 AIF (&NOB).TAB . SKIP IF *NO* BSCA SUPPORT 14260000
.* 14270000
IIWORK DC XL2'00' WORK AREA FOR BLOCK LENGTH 14280000
IICOUN DC XL1'00' WORK AREA FOR BLOCK FACTOR 14290000
X$FFFF DC XL2'FFFF' MINUS 1 14295000
.TAB ANOP 14300000
EJECT 14310000
************************************************************************14320000
* OP CODE VALIDITY TABLE 14330000
************************************************************************14340000
SPACE 14350000
IIINVD EQU 0 INVALID OPERATION 14360000
IIVKNS EQU BIT5 BIT IN VALIDITY BYTE FOR VALID 14370000
* OPERATION WITH CONSOLE 14380000
IIVBLK EQU BIT6 BIT IN VALIDITY BYTE FOR VALID 14390000
* OPERATION WITH BLANK STN 14400000
IIVSTN EQU BIT7 BIT IN VALIDITY BYTE FOR VALID 14410000
* OPERATION WITH STN 14420000
TANDNE EQU X'11' TRUE AND NOT EQUAL CONDITION 14425000
SPACE 3 14430000
* OP CODE VALIDITY TABLE 14440000
SPACE 14450000
IIVTBL EQU * USER OP STN BLANKS CONSOLE14460000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 00 X X X 14470000
DC AL1(IIVSTN+IIVBLK) 01 X X 14480000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 02 X X X 14490000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 03 X X X 14500000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 04 X X X 14510000
DC AL1(IIVSTN+IIVBLK) 05 X X 14520000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 06 X X X 14530000
DC AL1(IIINVD) 07 14540000
DC AL1(IIVSTN+IIVBLK+IIVKNS) 08 X X X 14550000
DC AL1(IIVSTN) 09 X 14560000
DC AL1(IIVSTN+IIVBLK) 10 X X 14570000
DC AL1(IIINVD) 11 14580000
DC AL1(IIINVD) 12 14590000
DC AL1(IIINVD) 13 14600000
DC AL1(IIINVD) 14 14610000
DC AL1(IIINVD) 15 14620000
SPACE 14630000
SPACE 14640000
* BIT 5 ON - VALID OP FOR CONSOLE 14650000
* BIT 6 ON - VALID OP FOR BLANKS 14660000
* BIT 7 ON - VALID OP FOR SYMBOLIC 14670000
* TERMINAL NAME 14680000
SPACE 4 14690000
IIVBYT DS CL1 VALIDITY BYTE - BIT SIGNIFICANT 14730000
* END CHANGE ACTIVITY - $E060 14745000
MEND 14750000