|
|
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: 40386 (0x9dc2)
Types: s3xseg
Names: »S$E070«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$E070«
MACRO 00010000
.********************************************************************** 00020000
.* * 00030000
.* NAME: $E070 * 00040000
.* * 00050000
.* MODIFICATION LEVEL: VERSION 15,MODIFICATION LEVEL 0 OF 5702-SC1 * 00060000
.* VERSION 02,MODIFICATION LEVEL 0 OF 5703-SC1 * 00065000
.* * 00070000
.* FUNCTION: * 00080000
.* * 00090000
.* . CCP GENERATION SECOND PASS MACRO-INSTRUCTION -- GENERATE THE * 00100000
.* COMMUNICATION MANAGEMENT TASK. * 00110000
.* * 00120000
.* INPUT OPERANDS: NONE. * 00130000
.* * 00140000
.* SYSTEM GLOBALS: * 00150000
.* * 00153000
.* &ADP - # OF ADAPTERS SUPPORTED. # OF BSCA/MLTA LINES SUPPORTED * 00156000
.* * 00160000
.* &MTK - MULTI-USER-TASKING CCP. 1=SUPPORTED / 0=NOT SUPPORTED. * 00161000
.* * 00162000
.* &DFF - 3270 DISPLAY FORMAT. 1=SUPPORTED / 0=NOT SUPPORTED. * 00163000
.* * 00164000
.* &DPF - DUAL PROGRAM MODEL 3. 1=SUPPORTED / 0=NOT SUPPORTED. * 00165000
.* * 00166000
.* &ONE - MIXTURE OF MLTA AND BSCA. 1=ONLY ONE / 0=BOTH. * 00170000
.* * 00180000
.* &NOB - BSCA SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00190000
.* * 00200000
.* &NOM - MLTA SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00210000
.* * 00220000
.* &NDME- DATA MODE ESCAPE. 1=NOT SUPPORTED / 0=SUPPORTED. * 00230000
.* * 00240000
.* &MIN - MINIMUN SYSTEM. 1=MINIMUN / 0=NOT MINIMUN. * 00250000
.* * 00260000
.* &NPP - BSCA PT-TO-PT SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00270000
.* * 00280000
.* &NMP - BSCA MULTI-PT TRIBUTARY. 1=NOT SUPPORTED / 0=SUPPORTED. * 00290000
.* * 00300000
.* &NSWL- BSCA SWITCHED SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00310000
.* * 00320000
.* &NCS - BSCA CONTROL STATION. 1=NOT SUPPORTED / 0=SUPPORTED. * 00330000
.* * 00340000
.* &NITB- BSCA ITB SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00350000
.* * 00360000
.* &NTSP- BSCA TRANSPARENCY. 1=NOT SUPPORTED / 0=SUPPORTED. * 00370000
.* * 00380000
.* &NAS - BSCA ASCII SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00386000
.* * 00392000
.* &NMSG- BSCA GET MESSAGE SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00398000
.* * 00404000
.* &N32 - BSCA 3270 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00410000
.* * 00420000
.* &NDF - 3270 DISPLAY FORMAT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00427000
.* * 00434000
.* &N37 - BSCA 3735 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00441000
.* * 00448000
.* &N41 - BSCA 3741 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00455000
.* * 00462000
.* &NCPU- BSCA CPU SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00470000
.* * 00480000
.* &NSW - MLTA SWITCHED SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00490000
.* * 00500000
.* &NSCTL-MLTA STATION CONTROL. 1=NOT SUPPORTED / 0=SUPPORTED. * 00510000
.* * 00520000
.* &NBFR- MLTA BUFFERED RECEIVE. 1=NOT SUPPORTED / 0=SUPPORTED. * 00530000
.* * 00540000
.* &NMOVE-MLTA MOVE ONLY. 1=NOT SUPPORTED / 0=SUPPORTED. * 00550000
.* * 00560000
.* &N1050-MLTA 1050 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00570000
.* * 00580000
.* &N2741-MLTA 2741 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00590000
.* * 00600000
.* &NRUF-READ UNDER FORMAT SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00603000
.* * 00606000
.* MODULE LOCALS: * 00610000
.* * 00620000
.* &MIX - WORK AREA TO DETERMINE THING IN CONBINATION. * 00630000
.* * 00640000
.********************************************************************** 00670000
$E070 00680000
GBLB &ONE,&NOB,&NOM,&MTK,&DFF,&MIN,&DPF,&NDME,&ADP 00700000
GBLB &NPP,&NMP,&NSWL,&NCS,&NITB,&NTSP,&N32,&NCPU 00710000
GBLB &MOD4 00720000
GBLA &BSC,&MLA 00730000
LCLA &MIX 00750000
TEXT 00760000
AIF (&MOD4).LJ001 00765000
* R-15,C-00 CHANGE LEVEL 00770000
DC CL5'$CM15' RELEASE LEVEL ID. 00771000
AGO .LJ01A 00771100
.LJ001 ANOP 00771200
* R-02,C-00 CHANGE LEVEL 00771300
DC CL5'$CM02' RELEASE LEVEL ID 00771400
.LJ01A ANOP 00771500
&MIX SETA &BSC+&MLA 00772000
AIF (&MIX NE '1').ONE 00773000
&ADP SETB 1 00774000
.ONE ANOP 00775000
&MIX SETA &NOB+&NOM 00780000
AIF (&MIX EQ '0').START 00790000
&ONE SETB 1 00800000
.START ANOP 00810000
SPACE 4 00820000
ENTRY $CC4CM 00830000
ENTRY CMFMRT 00840000
AIF (&MOD4).LJ002 00845000
ENTRY CMAPL 00850000
.LJ002 ANOP 00855000
AIF (&NOB).C0001 00860000
EXTRN $CC4M1(3) WEAK EXTRN FOR MINI-MLMP 00865000
AIF (&NSWL).C0000 00870000
ENTRY CMCLOZ 00880000
.C0000 EXTRN $$BSMS 00890000
ENTRY SAVCAT 00895000
EXTRN $CC4BT 00900000
EXTRN $CC4MX 00910000
.C0001 ANOP 00920000
AIF (&NOM).C0002 00930000
EXTRN MLTIO1 00940000
EXTRN $CC4IM 00950000
.C0002 ANOP 00960000
EXTRN $CC4DP 00970000
EXTRN $CC4PS 00980000
EXTRN CC@PRL 00990000
EXTRN $CC4WT 01000000
EXTRN $CC4PI 01010000
EXTRN $CC4MV 01020000
EXTRN $CC4TT 01030000
EXTRN $CC4FM 01040000
EXTRN $CC4GM 01050000
EXTRN CC#BMX 01060000
EXTRN $CCCOM 01070000
EXTRN CC0000 01080000
EXTRN CC0001 01090000
EXTRN CC0004 01100000
EXTRN CC@CMT 01110000
EXTRN CC@CPT 01120000
EXTRN CCKLST 01130000
EXTRN CCOECT 01140000
EXTRN CCLCB1 01150000
EXTRN CPHALT 01160000
AIF (&MTK).C9000 01180000
AIF (&DFF).C9000 01190000
EXTRN $CC4MM 01200000
AGO .C9001 01210000
.C9000 ANOP 01220000
EXTRN $CC4MS 01230000
.C9001 ANOP 01240000
TITLE '$E070/$CC4CM/ENTRY-POINT' 01250000
*********************************************************************** 01260000
* C O M M U N I C A T I O N S M A N A G E R * 01270000
* I N I T I A L I Z A T I O N * 01310000
*********************************************************************** 01320000
* * 01340000
* FUNCTION: * 01350000
* * 01360000
* . FIRST MUST SAVE THE POST MASK FOR THE COMMUNICATIONS MANAGER * 01370000
* SINCE THE POST MASK IN THE TCB MAY BE MODIFIED WHILE THIS * 01380000
* MODULE IS EXECUTING. * 01390000
* * 01400000
* . MUST RESET AN INTERNAL STATUS BIT THAT INDICATES WHETHER * 01410000
* THIS MODULE HAS ISSUED A FREEMAIN DURING THE CURRENT ENTRY. * 01420000
* * 01430000
* INPUT: POST MASK IN THE TASK CONTROL BLOCK * 01460000
* * 01470000
* OUTPUT:POST MASK MOVED TO HOLD AREA IN THIS MODULE * 01500000
* * 01510000
* . INTERNAL FREEMAIN STATUS BIT IS SET OFF * 01520000
* * 01530000
* EXTERNAL REFERENCES: TASK CONTROL BLOCK * 01540000
* * 01550000
* GENERATION - THIS MODULE IS ASSEMBLED AT CCP GENERATION. * 01550500
* $CC4CM IS CREATED BY MACROS WHICH ARE NAMED $E0NN WHERE * 01551000
* NN IS A NUMERIC IDENTIFIER OF THE MACRO. * 01551500
* * 01552000
* CODE IN EACH MACRO IS EITHER INCLUDED OR EXCLUDED BASED * 01552500
* ON THE GLOBALS SET BY THE FIRST PASS OF GENERATION. THE * 01553000
* CODE IS IDENTIFIED IN COLUMNS 69-71 BY ALPHABETICS WHICH * 01553500
* IDENTIFIES THE GENERATION OPTION THAT CAUSES ITS INCLUSION * 01554000
* * 01554500
* THE ALPHABETIC IDENTIFIERS ARE AS FOLLOWS: * 01555000
* * 01555500
* COLUMN 71 : * 01556000
* B - BSCA * 01556500
* M - MLTA * 01557000
* 2 - TEST FOR MLTA OR BSCA * 01557500
* * 01558000
* COLUMN 68-70 MAY INCLUDE IN ANY ORDER OR COMBINATION: * 01558500
* C - BSCA OR MLTA CONTROL STATION OR STATION CONTROL * 01559000
* D - BSCA OR MLTA DATA MODE ESCAPE * 01559500
* L - CODE NECESSARY FOR COMBINATION OF LINE TYPES * 01560000
* N - CODE REMOVED ON MINRES SYSTEMS. * 01560500
* S - BSCA OR MLTA SWITCHED LINE SUPPORT. * 01561000
* Y - CODE TO HANDLE MULTIPLE DTFS. EXCLUDED IN 1 LINE SYS. * 01561500
* / - OR (FOR COMBINATION OF 2 OTHER IDENTIFIERS * 01562000
* * 01562500
* A - BSCA ASCII SUPPORT * 01563000
* F - BSCA 3270 DFF SUPPORT * 01563500
* G - BSCA GET MESSAGE SUPPORT * 01564000
* I - BSCA ITB (INTERMEDIATE TEXT BLOCK) SUPPORT * 01564500
* P - BSCA POINT TO POINT SUPPORT * 01565000
* T - BSCA MULTI POINT TRIBUTARY SUPPORT * 01565500
* U - BSCA CPU TO CPU SUPPORT * 01566000
* X - BSCA TRANSPARENCY SUPPORT * 01566500
* 0 - BSCA 3270 SUPPORT * 01567000
* 5 - BSCA 3735 SUPPORT * 01567500
* 7 - BSCA 3741 SUPPORT * 01568000
* * 01568500
* R - MLTA BUFFERED RECEIVE SUPPORT * 01569000
* V - MLTA MOVE SUPPORT (NO TRANSLATE) * 01569500
* 0 - MLTA 1050 SUPPORT * 01570000
* 1 - MLTA 2741 SUPPORT * 01570500
* * 01571000
* CHANGE FLAG ACTIVITY - $CM * 01571500
* RELEASE 12. * 01572000
* @01-INCR/00S1210-ADD 3741 DATA TERMINAL SUPPORT. * 01572500
* @02-APAR/S305393-BLK MODE TERMS WITH DATA MOVED ON * 01573000
* @03-INCR/00S1210-START POLLING AT NEXT ENTRY * 01573500
* @04-APAR/S305660-LOOP IF TIMING OUT AND SEARCHING FOR EOT * 01574000
* @05-INCR/00S1210-NON-DME CLEAR KEY CHANGE * 01574500
* @06-INCR/00S1301-PROGRAM REQUEST UNDER FORMAT ENHANCEMENT * 01574600
* @07-INCR/00S1306-3275 SWITCHED LINE SUPPORT * 01574700
* @08-INCR/00S1303-IDA SUPPORT * 01574800
* * 01574850
* RELEASE 14. * 01574900
* @09-APAR/S307552,S307806- NON FIRST BLOCK CORRECTIONS * 01574950
* @10-APAR/S308764 -UPDATE RECORD ADDR IF MLTA RUNNING * 01575000
* @14-APAR/S308917 -RUNNING WITH IMS 370,CCP DID NOT * 01575800
* RETURN RVI COMP CODE TO USER PROGRAM. CCP LOCKED * 01576600
* IN A BSCA WAIT STATE TRYING TO STOP AUTO RESPONSE. * 01577400
* CHANGE INVOLVES $E077,$E082,$E092,$CC4IB,$$BSMD,BSIOS. * 01578200
* @15-PTR/S14CP003 - NO POST FOR SYS PUT-WAIT(SWTCHED LINE). * 01579000
* * 01579070
* RELEASE 15. * 01579140
* @16-APAR/S309016 -RVI NOT BEING SENT AND RETURN CODE 06 NOT * 01579210
* RETURNED. CHANGES TO $E070, $E072, $E080 * 01579280
* @17-APAR/S309240 -DELAY COUNT SET WRONG AND CAUSED RETURN CODE * 01579350
* OF -9. CHANGE TO $E090. * 01579420
* @18-APAR/S309761 -MSG411 ERROR -13 USING PRUF PUT MESSAGE TO * 01579490
* 3270 PRINTER. CHANGE TO $E092. * 01579560
* @19-APAR/S310612 -CHANGE TO INDEX TERMINATION ID PROPERLY FOR * 01579630
* DISCONNECT SWITCHED LINE. CHANGE TO $E082. * 01579700
* @20-APAR/S310572 - SET XR1 TO POINT TO PARM LIST WHEN BRANCHING 01579770
* TO FORM OP CODE. 01579840
*********************************************************************** 01580000
SPACE 01660000
$CC4CM EQU * 'CM' ENTRY POINT. 01670000
L CC@CMT,XR2 POINT XR2 AT CM TCB 01680000
MVC CMPMSK+1(2),TCBPMK+1(,XR2) MOVE POST MASK TO SAVE AREA 01690000
SBF CMSWIT,CMFMGO+CMSPSI RESET INTERNAL CM FREEMAIN AND 01730000
* STOP II/STATUS POLL 01735000
TITLE '$E070-CONSOLE-MANAGEMENT' 01750000
*********************************************************************** 01760000
* C O N S O L E M A N A G E M E N T * 01770000
*********************************************************************** 01780000
* * 01800000
* FUNCTION: * 01810000
* . IF HAVE PARAMETER LIST FOR THE CONSOLE, PASS CONTROL TO * 01830000
* THE CONSOLE MANAGEMENT TRANSIENT $CC4K1 * 01840000
* * 01850000
* . IF HAVE CONSOLE INTERRUPT, DETERMINE THE CAUSE AND TAKE * 01860000
* APPROPRIATE ACTION AS FOLLOWS: * 01870000
* * 01880000
* 1) IF COMPLETION OF PREFIX OF CONSOLE OUTPUT, START THE * 01890000
* REMAINDER OF THE MESSAGE BY BUILDING THE CONSOLE IOB AND * 01900000
* ISSUING SIO TO PRINT THE CONTINUATION CHARACTER ('/') * 01910000
* * 01920000
* 2) IF REQUEST KEY INTERRUPT, PASS CONTROL TO THE CONSOLE * 01930000
* MANAGMENT TRANSIENT $CC4K5 * 01940000
* * 01950000
* 3) IF COMPLETION OF CONSOLE OUTPUT, PASS CONTROL TO THE * 01960000
* CONSOLE MANAGEMENT TRANSIENT $CC4K3 * 01970000
* * 01980000
* 4) IF COMPLETION OF CONSOLE INPUT, PASS CONTROL TO THE * 01990000
* CONSOLE MANAGEMENT TRANSIENT $CC4K4 * 02000000
* * 02010000
* . IF THE CONSOLE IS AVAILABLE AND THERE IS A PARAMETER LIST * 02020000
* IN THE CONSOLE OUTPUT QUEUE, PASS CONTROL TO THE CONSOLE * 02030000
* MANAGEMENT TRANSIENT $CC4K2 WHICH WILL START THE OUTPUT TO THE * 02040000
* CONSOLE * 02050000
* * 02060000
* . IF THE CONSOLE KEYBOARD IS AVIALABLE, ENABLE THE REQUEST KEY * 02070000
* * 02080000
* INPUT: COMMUNICATIONS MANAGER POST MASK * 02110000
* . THE FIELD @PRL IN THE CCP COMMUNICATIONS AREA ($CCCOM) * 02130000
* . THE CONSOLE IOB * 02150000
* . THE CONSOLE WORK AREA * 02170000
* * 02180000
* OUTPUT: ONE OR MORE OF THE FOLLOWING AS DEFINED IN 'FUNCTION': * 02190000
* . REQUEST KEY ENABLED * 02230000
* . REMAINDER OF CONSOLE OUTPUT STARTED * 02250000
* . CONSOLE MANAGEMENT TRANSIENT CALLED TO SERVICE THE CONSOLE * 02270000
* * 02280000
* EXTERNAL REFERENCES: * 02290000
* . COMMUNICATIONS MANAGER POST MASK IN THE TCB * 02310000
* . CCP COMMUNICATIONS AREA ($CCCOM) * 02330000
* . PARAMETER LIST DEFINED BY @PRL IN $CCCOM * 02350000
* . CONSOLE IOB IN $@COIH * 02370000
* . CCP CONSOLE WORK AREA * 02390000
* . SYSTEM COMMUNICATIONS AREA * 02410000
* . TRANSIENT AREA HANDLER - $CC4PI * 02430000
* * 02440000
* EXITS: AS DESCRIBED IN 'FUNCTION' * 02450000
* * 02460000
* ATTRIBUTES: RESIDENT, REUSEABLE * 02490000
* * 02500000
*********************************************************************** 02530000
EJECT 02540000
*********************************************************************** 02550000
* CHECK FOR I/O REQUEST FOR THE CONSOLE 02560000
*********************************************************************** 02570000
SPACE 02580000
TBN CMPMSK,WPAAII IS THERE TP REQUEST 02590000
JF KMINTR JUMP IF NO TP PARM LIST INPUT 02600000
SPACE 02610000
* HAVE PARAMETER LIST AS INPUT TO THIS MODULE 02620000
* IF IT IS CONSOLE - HANDLE IT NOW 02630000
* IF IT IS FOR A TERMINAL - HANDLE IT LATER 02640000
SPACE 02650000
L CC@PRL,XR2 POINT XR2 AT THE PARM LIST 02660000
TBN PL$OPM(,XR2),OPKONS IS THIS CONSOLE REQUEST 02670000
JF KMINTR JUMP IF NOT CONSOLE TUB 02680000
SPACE 02690000
*********************************************************************** 02700000
* HAVE I/O REQUEST FOR THE CONSOLE 02710000
*********************************************************************** 02720000
SPACE 02730000
SBF CMPMSK,WPAAII SET OFF TP REQUEST POST BIT 02740000
SPACE 02750000
* BRANCH TO TRANSIENT WHICH WILL QUEUE UP THE PARAMETER LIST ON THE 02760000
* APPROPRIATE QUEUE 02770000
SPACE 02780000
B $CC4PI BR TO TRANSIENT HANDLER 02790000
AIF (&MOD4).LJ005 02795000
DC AL1(CC4K1) TRANSIENT ID 02800000
AGO .LJ007 02802000
.LJ005 ANOP 02804000
DC AL1(CC4X1) TRANSIENT ID 02806000
.LJ007 ANOP 02808000
EJECT 02810000
*********************************************************************** 02820000
* CHECK FOR CONSOLE INTERRUPTS 02830000
*********************************************************************** 02840000
SPACE 02850000
KMINTR EQU * CHECK FOR CONSOLE INTERRUPT 02860000
AIF (&MOD4).LJ009 02865000
B CMAPL CHECK CONSOLE USAGE BY OTHER 02870000
* LEVEL 02880000
.LJ009 ANOP 02885000
LA $CCCOM,XR2 POINT XR2 AT C COM 02890000
L @KMWK(,XR2),XR1 POINT XR1 AT KM WORK AREA 02900000
AIF (&MOD4).LJ011 02905000
SPACE 02910000
TBN #KMSWT(,XR1),#KMBSY IS CONSOLE BUSY 02920000
JT KMDPCI JUMP IF CONSOLE BUSY 02930000
SPACE 02940000
* THE CONSOLE IS NOT BUSY SO TO PREVENT UNWANTED INTERRUPTS - DISABLE 02950000
* THE KEYBOARD 02960000
SPACE 02970000
DC XL1'F3' START I/O INSTUCTION 02980000
DC AL1(KEYBRD) SIO TO THE KEYBOARD 02990000
DC AL1(DISABL) TO DISABLE THE KEYBOARD 03000000
SPACE 03010000
* NOW CHECK FOR ANY CONSOLE INTERRUPTS 03020000
SPACE 03030000
.LJ011 ANOP 03035000
KMDPCI EQU * TEST FOR CONSOLE INTERRUPT 03040000
TBN $DPFLH(,XR2),DPCI WAS THERE CONSOLE INTERRUPT 03050000
SBF $DPFLH(,XR2),DPCI ASSURE DPCI BIT OFF 03060000
AIF (&MOD4).LJ013 03065000
JF KMTSBY JUMP IF NO CONSOLE INTERRUPT 03070000
AGO .LJ016 03070300
.LJ013 ANOP 03070600
JF KMSTRT NO - JUMP 03070900
SPACE 2 03071200
* HAD CONSOLE KEYBOARD INTERRUPT -- CALL $CC4X2 TO HANDLE IT 03071500
SPACE 1 03071800
L NCSYS@,XR2 XR2 --> SYS COMM AREA 03072100
L NC@CIO(,XR2),XR2 XR2 --> CONSOLE INT HANDLER 03072400
B $CC4PI CALL TRANSIENT HANDLER 03072700
DC AL1(CC4X2) TRANSIENT ID 03073000
* CC4X2 WILL RETURN HERE IF OUTPUT TO BE DISPLAYED 03073300
B CMTRCN GO SEE IF LINE IS BUSY 03073600
SPACE 2 03073900
* CC4X2 WILL RETURN HERE IF NO OUTPUT TO DISPLAY 03074200
SPACE 1 03074500
KMSTRT EQU * * 03074800
SPACE 1 03075100
* CHECK FOR ANY CONSOLE OUTPUT 03075400
LA $CCCOM,XR2 XR2 --> CCP COMMON 03075700
CLI @KMQTB-1(,XR2),NOBIT ANY OUTPUT ? 03076000
JE CMOPND NO - GO CHECK OP ENDS 03076300
SPACE 1 03076600
* CALL CC4X7 TO HANDLE CONSOLE OUTPUT TO LOG FILE 03076900
SPACE 1 03077200
B $CC4PI CALL XIENT AREA HANDLER 03077500
DC AL1(CC4X7) TRANSIENT ID 03077800
AGO .LJ018 03078100
.LJ016 ANOP 03078400
SPACE 03080000
*********************************************************************** 03100000
* HAD CONSOLE INTERRUPT 03110000
*********************************************************************** 03120000
SPACE 03130000
L NCSYS@,XR2 POINT XR2 AT SCA 03140000
SPACE 03150000
* DETERMINE WHAT TYPE OF INTERRUPT OCCURRED AND BRANCH TO APPROPRIATE 03160000
* TRANSIENT TO HANDLE THE INTERRUPT 03170000
SPACE 03180000
TBN #KMSWT(,XR1),#KMPFX COMPLETION OF PREFIX OUTPUT? 03190000
SBF #KMSWT(,XR1),#KMPFX RESET PREFIX INDICATION 03200000
JF KMTSRQ JUMP IF NOT PREFIX COMPLETION 03210000
SPACE 03220000
*********************************************************************** 03230000
* PRINTING OF PREFIX COMPLETE - FINISH THE MESSAGE 03240000
*********************************************************************** 03250000
SPACE 03260000
*SET UP IOB WITH MVC OUT OF KM WORK AREA 03270000
* THEN DO SIO OF NEXT CHAR 03280000
* THEN JUMP TO CHECK FOR TP OP ENDS 03290000
SPACE 03300000
L NC@CIO(,XR2),XR2 POINT XRI AT $@COIH WHICH 03310000
* CONTAINS CONSOLE IOB 03320000
SPACE 03330000
MVC KMCNT(9,XR2),#KMCNT(,XR1) MOVE DATA FROM KM WORK IOB TO 03340000
* CONSOLE IOB 03350000
SPACE 03360000
* DRIVE THE PRINTING OF THE MESSAGE TEXT BY STARTING THE PRINTING 03370000
* OF THE CONTINUE CHARACTER 03380000
SPACE 03390000
* LOAD THE CONTINUE CHARACTER FROM THE CCP CONSOLE WORK AREA 03400000
SPACE 03410000
DC XL1'71' LOAD I/O INSTRUCTION 03420000
DC AL1(PRINTR) Q-BYTE IS PRINTER 03430000
DC AL1(#KMCON+1) ADDRESS TO LOAD CHARACTER 03440000
DC XL1'F3' START I/O INSTRUCTION 03450000
DC AL1(PRINTR) SIO TO THE PRINTER 03460000
DC AL1(PRINT+NABLEP+RESET) RESET AND ENABLE THE PRINTER 03470000
SPACE 03480000
J CMOPND JUMP TO CHECK TP OP END COUNT 03490000
EJECT 03500000
*********************************************************************** 03510000
* CHECK CONSOLE USAGE BY OTHER LEVEL 03520000
*********************************************************************** 03530000
SPACE 03540000
* IN A DPF SYSTEM, THIS ROUTINE WILL DETERMINE IF THE OTHER LEVEL 03550000
* IS USING THE CONSOLE 03560000
* IN A NON-DPF SYSTEM, THIS ROUTINE ONLY RETURNS TO THE INVOKER 03570000
SPACE 03580000
CMAPL EQU * SEE IF OTHER LEVEL USING CONSOLE 03590000
ST CMAPLR+3,ARR SAVE THE ARR 03600000
AIF (&DPF EQ '0').DF100 03610000
ENTRY CMENAB 03612000
ENTRY CMDISA 03614000
SPACE 1 03616000
CMKOTR L NCSYS@,XR2 POINT XR2 AT SCA 03620000
L NC@CIO(,XR2),XR2 POINT XR2 AT $@COIH 03630000
SPACE 03640000
* CHECK THE CONSOLE IOB TO SEE IF THE OTHER LEVEL IS CURRENTLY 03650000
* USING THE CONSOLE 03660000
SPACE 03670000
CLI KMDTF-1(,XR2),NOBIT IS CONSOLE BEING USED 03680000
JE CMDISA JUMP IF CONSOLE NOT IN USE 03690000
SPACE 03700000
* THE OTHER LEVEL IS USING THE CONSOLE SO APL UNTIL THE CONSOLE 03710000
* BECOMES AVAILABLE 03720000
* DETERMINE IF INTERUPT OCCURED WHILE OTHER LEVEL OWNED THE CONSOLE 03730000
* IF YES,SET OFF BIT INDICATING CCP CONSOLE INTERUPT 03740000
SPACE 03750000
LA $CCCOM,XR2 POINT XR2 AT CCP COMMON AREA 03760000
SBF $DPFLH(,XR2),DPCI SET OFF CONSOLE INTERUPT BIT 03770000
CMENAB JC CMEAPL,BRNOP SET TO SIO IF CCP PRIORITY 03775000
CMEAPL APL 0,0 UNCONDITIONAL APL 03780000
B CMKOTR BRANCH TO CHECK CONSOLE AGAIN 03790000
SPACE 03800000
CMDISA JC CMAPLR,BRNOP SET TO SIO IF CCP PRIORITY 03805000
.DF100 ANOP 03810000
CMAPLR B #### RETURN TO INVOKER 03820000
EJECT 03830000
*********************************************************************** 03840000
* TEST FOR REQUEST KEY 03850000
*********************************************************************** 03860000
SPACE 03870000
KMTSRQ EQU * TEST FOR REQ KEY INTERRUPT 03880000
TBN NCSCH(,XR2),KMREQK DID REQ KEY CAUSE THE INTERRUPT 03890000
SBF NCSCH(,XR2),KMREQK ASSURE BIT OFF 03900000
JF KMTSIE JUMP IF NOT REQ KEY 03910000
SPACE 03920000
* REQUEST KEY CAUSED THE INTERRUPT 03930000
* BRANCH TO TRANSIENT TO HANDLE THE SITUATION 03940000
SPACE 03950000
B $CC4PI BR TO TRANSIENT HANDLER 03960000
DC AL1(CC4K5) TRANSIENT ID 03970000
SPACE 03980000
J CMOPND JUMP TO CHECK TP OP ENDS 03990000
SPACE 04000000
*********************************************************************** 04010000
* TEST FOR INPUT END OR OUTPUT END 04020000
*********************************************************************** 04030000
SPACE 04040000
* XR1 POINTS AT SCA 04050000
SPACE 04060000
KMTSIE EQU * CHECK FOR PRINTER OR KEYBOARD 04070000
L NC@CIO(,XR2),XR2 POINT XR2 AT $@COIH 04080000
SPACE 04090000
* LOOK AT CONSOLE IOB TO DETERMINE IF INTERRUPT WAS FROM PRINTER 04100000
* OR FROM KEYBOARD - AND CALL IN APPROPRIATE TRANSIENT 04110000
SPACE 04120000
TBN KMQ(,XR2),PRINTR WAS DEVICE THE PRINTER 04130000
JF KMKEYB JUMP IF NOT PRINTER 04140000
SPACE 04150000
* HAVE CONSOLE INTERRUPT GENERATED BY THE PRINTER 04160000
* THIS IS THE END OF AN OUTPUT OPERATION 04170000
SPACE 04180000
B $CC4PI CALL IN TRANSIENT 04190000
DC AL1(CC4K3) TRANSIENT ID 04200000
J KMTSBY JUMP 04210000
SPACE 04220000
* HAVE CONSOLE INTERRUPT GENERATED BY THE KEYBOARD 04230000
* THIS IS THE END OF AN INPUT OPERATION 04240000
SPACE 04250000
KMKEYB EQU * HAVE KEYBOARD INTERRUPT 04260000
B $CC4PI CALL IN TRANSIENT 04270000
DC AL1(CC4K4) TRANSIENT ID 04280000
EJECT 04290000
*********************************************************************** 04300000
* TEST FOR CONSOLE BUSY 04310000
*********************************************************************** 04320000
SPACE 04330000
KMTSBY EQU * TEST FOR CONSOLE BUSY 04340000
KMSTRT EQU * CHECK FOR WORK TO START 04350000
TBN #KMSWT(,XR1),#KMBSY IS CONSOLE BUSY 04360000
JT CMOPND JUMP IF CONSOLE BUSY 04370000
SPACE 04380000
* CONSOLE IS NOT BUSY 04390000
* IF ANY PARAMETER LISTS ON THE QUEUE OF WORK - CALL IN TRANSIENT 04400000
* TO START THE OPERATION 04410000
SPACE 04420000
LA $CCCOM,XR2 POINT XR2 AT C COM 04430000
CLI @KMQTB-1(,XR2),NOBIT IS THERE OUTPUT TO START 04440000
JE KMENRQ JUMP IF NO WORK ON QUEUE 04450000
SPACE 3 04460000
*********************************************************************** 04470000
* START CONSOLE OUTPUT 04480000
*********************************************************************** 04490000
SPACE 04500000
KMSOUT EQU * START AN OUTPUT OPERATION TO 04510000
* THE CONSOLE 04520000
SPACE 04530000
* HAVE OUTPUT TO START - CALL IN TRANSIENT 04540000
SPACE 04550000
B $CC4PI CALL IN TRANSIENT 04560000
DC AL1(CC4K2) TRANSIENT ID 04570000
SPACE 04580000
J CMOPND JUMP TO CHECK TP OP END COUNT 04590000
SPACE 3 04600000
*********************************************************************** 04610000
* DETERMINE WHETHER TO ENABLE REQUEST KEY 04620000
*********************************************************************** 04630000
SPACE 04640000
KMENRQ EQU * DETERMINE IF REQ KEY TO BE ENABLD04650000
TBN #KMSWT(,XR1),#KMERQ SHOULD REQUEST KEY BE ENABLED 04660000
JF CMOPND JUMP IF NOT TO BE ENABLED 04670000
SPACE 04680000
* ENABLE THE CONSOLE REQUEST KEY 04690000
SPACE 04700000
DC XL1'F3' START I/O INSTUCTION 04710000
DC AL1(KEYBRD) SIO TO THE KEYBOARD 04720000
DC AL1(REQKEY) ENABLE THE REQUEST KEY 04730000
.LJ018 ANOP 04735000
TITLE '$E070/CMOPND/OP-END-ANALYSIS' 04740000
*********************************************************************** 04750000
* * 04760000
* NAME--CMOPND * 04770000
* * 04780000
* TITLE--OP END ANALYSIS * 04790000
* * 04800000
* FUNCTION--ANALYSIS EACH OP END FOR A TP LINE AND DETERMINE WHAT * 04810000
* IF ANYTHING MUST BE DONE TO COMPLETE THE CURRENT TP * 04820000
* OPERATION. ROUTE COMPLETED OPERATION BACK TO THE USER. * 04830000
* RESCHEDULE WORK ON THE LINE IF NO MORE OP ENDS TO BE * 04840000
* HANDLED. * 04850000
* * 04860000
* OPERATION-- IF NO OP ENDS GIVE CONTROL TO TP SCHEDULER TO CHECK * 04880000
* FOR FREEMAIN POSTED. * 04890000
* * 04900000
* . SET UP THE CHECK LIST TO ONLY LOOK AT BSCA DTF'S THAT * 04910000
* HAVE OPERATION COMPLETED. LOOK AT ALL MLTA DTF'S. * 04920000
* * 04930000
* . FOR BSCA DTF'S THAT ARE SET UP FOR CHECK, SET UP THE * 04940000
* DTF AND TP PARAMETER LIST FIELDS AS APPROPRIATE FOR * 04950000
* THE OPERATION. SET UP THE TUB STATUS, RECORD LENGTH * 04960000
* AND LINE OWNERSHIP FIELDS. CHECK FOR DATA MODE ESCAPE * 04970000
* REQUEST ON INPUT OPERATIONS. * 04980000
* * 04990000
* . EXECUTE THE CCP VERSION OF THE TP CHECK RTN ($$BMCH). * 05000000
* * 05020000
* . FOR BSCA, IF 56 COMPLETION CODE, ADJUST OP END COUNT * 05030000
* IN APPROPRIATE BSCA DTF. TRACE THE OPERATION. * 05040000
* NOTE: THE TRACE ENTRY WILL SHOW THE CURRENT COMPLETION * 05050000
* CODE OF THE DTF NOT NECESSARILY THE 56. * 05060000
* * 05070000
* . IF ABORT OPERATION, HANDLE THE ABORT UNTIL IT IS * 05080000
* COMPLETE. THEN RESCHEDULE THE LINE. * 05090000
* * 05100000
* . IF STOP INVITE REQUEST CALL THE APPROPRIATE TRANSIENT * 05110000
* TO HANDLE THE REQUEST. BSCA-$CC4BQ. MLTA-$CC4SQ. * 05120000
* * 05130000
* . IF MLTA OPERATION AND SWALLOW THE DATA OPERATION, THEN * 05140000
* IGNORE THE INCOMING DATA. * 05150000
* * 05160000
* . IF MLTA OLT OP END CALL TRANSIENT TO HANDLE THE * 05170000
* OPERATION. THEN GO TO SCHEDULE THE NEXT OPERATION. * 05180000
* * 05190000
* . FIND THE OP ENDED PARAMETER LIST AND SET ON THE POLL * 05200000
* SKIP BIT. * 05210000
* * 05220000
* . TRACE THE OP END AFTER CALLING CHECK THRU $CC4TT. * 05230000
* * 05240000
* . IF AN ERROR OCCURRED CALL THE APPROPRIATE ERP * 05250000
* TRANSIENT. BSCA-$CC4BE, MLTA-$CC4MA. ON RETURN * 05260000
* EITHER POST THE RESULTS TO THE USER, RESCHEDULE THE * 05270000
* LINE, OR HANDLE THE DATA IN THE LINE BUFFER. * 05280000
* * 05290000
* . IF WRITE OP END, THEN * 05300000
* - IF BSCA RECORD WAS SHORTED THEN DEFINED AT * 05310000
* ASSIGNMENT TIME, CALL TRANSIENT TO FILL OUT THE * 05320000
* RECORD TO CORRECT LENGTH. * 05330000
* * 05340000
* - SET UP THE RETURN CODE FOR THE RESULTS OF THE * 05350000
* OPERATION. * 05360000
* * 05370000
* - IF BSCA IS NOT COMPLETE, CALL RESCHEDULE FUNCTION * 05380000
* TO COMPLETE THE OPERATION. * 05390000
* - EOT MUST BE SENT. * 05400000
* - OPERATION NOT COMPLETE BECAUSE CLEAR KEY IS * 05410000
* BEING HANDLED. * 05420000
* * 05430000
* - IF BSCA OPERATION IS COMPLETE, THEN * 05440000
* - FREE THE DFF HOLD BUFFER IF DFF PUT. * 05450000
* * 05460000
* - IF PUT-THEN-GET, THEN SET UP THE GET OPERATION IN * 05470000
* THE INTERNAL OP CODE, THEN RESCHEDULE THE LINE. * 05480000
* * 05490000
* - IF OPERATION IS COMPLETED SET UP TO POST THE * 05500000
* REQUESTOR OF THE RESULTS. * 05510000
* * 05520000
* . IF READ OP END, THEN * 05530000
* - IF BSCA RECEIVE INITIAL WAS LAST OP, CHECK FOR ANY * 05540000
* CONFLICTING OPERATION IN THE LINE QUEUE, AND REJECT * 05550000
* THEM IF ANY FOUND. * 05560000
* * 05570000
* - IF BSCA MESSAGE MODE INPUT, SET UP TO CONSOLIDATE * 05580000
* ALL BLOCKS INTO ONE MESSAGE. SET UP TO RESCHEDULE * 05590000
* LINE AND GET TO EOT BEFORE RETURNING TO THE USER. * 05600000
* * 05610000
* - IF DATA MODE ESCAPE RECOGNIZED IN THE INPUT DATA * 05620000
* STREAM THEN SET UP POST OF THE COMMAND PROCESSOR. * 05630000
* * 05640000
* - IF VALID INPUT DATA, MOVE, TRANSLATE, TRUNCATE THE * 05650000
* DATA AS REQUIRED. * 05660000
* * 05670000
* - IF 3270 BSCA INPUT CHECK FOR CLEAR KEY HIT AND * 05680000
* HANDLE IT. * 05690000
* * 05700000
* . IF COMPLETED DATA OPERATION, THEN * 05710000
* - REMOVE THE TP REQUEST FROM THE LINE QUEUE. * 05720000
* - FREE UP PUT-NO-WAIT HOLD BUFFERS. * 05730000
* - POST THE REQUESTOR OF THE TP OPERATION THAT IT IS * 05740000
* COMPLETE. * 05750000
* - QUEUE INVITE INPUT PARAMETER LIST ONTO THE TCB. * 05760000
* - CHECK FOR MORE OP ENDS AND HANDLE IF THERE ARE * 05770000
* SOME, OTHERWISE GO AND RESCHEDULE LINE. * 05780000
* * 05790000
* ENTRY POINT--CMOPND * 05800000
* * 05820000
* INPUT- CCOECT - OP END PENDING COUNT. * 05840000
* CCLCB1 - ADDRESS OF LIST OF TP LINES IN CCP. * 05850000
* CCKLST - ADDRESS IF CCP CHECK LIST. * 05860000
* * 05870000
* OUTPUT-CCOECT - ADJUSTED FOR OP ENDS HANDLED. * 05890000
* CMSLCB - ADDRESS OF DTF HANDLED FOR LAST OP END. * 05900000
* CMSPL - ADDRESS TO TP PARAMETER LIST FOR LAST OP END. * 05910000
* TCBINQ - QUEUE OF INVITES THAT HAVE COMPLETED. * 05920000
* * 05930000
* EXTERNAL REFERENCES-- * 05940000
* $CC4BI - BSCA DME TRANSIENT. * 05950000
* $CC4BQ - BSCA STOP II QUEUE ANALYSIS TRANSIENT. * 05960000
* $CC4SQ - MLTA STOP II QUEUE ANALYSIS TRANSIENT. * 05970000
* $CC4SK - MLTA SKIP BIT TRANSIENT. * 05980000
* $CC4T2 - MLTA OLT OP END TRANSIENT. * 05990000
* $CC4TT - CCP TRACE ROUTINE. * 06000000
* $CC4BE - BSCA ERP TRANSIENT. * 06010000
* $CC4MA - MLTA ERP TRANSIENT. * 06020000
* $CC4BB - BSCA RECORD BLANK TRANSIENT. * 06030000
* $CC4PS - CCP POST ROUTINE. * 06040000
* $CC4BR - BSCA REJECT TRANSIENT. * 06050000
* $CC4BA - 3270 SENSE/STATUS TRANSIENT. * 06060000
* $CC4B5 - 3735 SENSE/STATUS TRANSIENT. * 06070000
* $CC4JX - X IS APPROPRIATE TRANSLATE TRANSIENT. * 06080000
* $CC4WR - TRANSLATE ERROR TRANSIENT. * 06090000
* $CC4B0 - 3270 INPUT FORMAT TRANSIENT. * 06100000
* CMBSKP - BSCA SKIP BIT ON/OFF ROUTINE. * 06110000
* CMONSK/CMOFSK - MLTA SKIP BIT ON/OFF ROUTINE. * 06120000
* CMGINL - INPUT RECORD LENGTH ROUTINE. * 06130000
* CPHALT - CCP HALT ROUTINE. * 06140000
* CMFMRT - FREEMAIN ROUTINE. * 06150000
* CMGMRT - GETMAIN ROUTINE. * 06160000
* CMPSRQ - POST TP SCHEDULED ROUTINE. * 06170000
* * 06190000
* EXIT, NORMAL--TO CMRSCH TO RESCHEDULE WORK ON THE LINE. * 06210000
* TO CMOPND IF MORE OP ENDS TO BE HANDLED. * 06220000
* TO CMFRMN IF NO OP ENDS TO HANDLE. * 06230000
* * 06240000
*********************************************************************** 06250000
SPACE 06260000
CMOPND EQU * TEST OP END COUNT 06270000
CLI CCOECT,NOBIT CHECK OP END COUNT FOR ZERO 06280000
BE CMFRMN IF ZERO, BR TO FREEMAIN ANALYSIS 06290000
SPACE 06300000
* ISSUE CHECK AND HANDLE THE OP END 06310000
SPACE 06320000
CMCHEK EQU * ISSUE CHECK 06330000
AIF (&NOB).C0010 06340000
SPACE 06350000
* LOCATE ANY BSCA DTF'S. B 06360000
SPACE 06370000
SBF CMSWIT,CMBSCK RESET BSCA DTF CHECK SCDEDULED.B 06380000
L CCLCB1,DTF LOAD @ 1ST LCB. B 06390000
CMENTR EQU * * B 06400000
AIF (&NOM).C0005 06410000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 06420000
JF CMEANR NO-GO CHECK FOR ANOTHER LCB. 2 06430000
.C0005 ANOP 06440000
SPACE 06450000
* SET CHECK LIST TO IGNORE DTF IF DATA IS NOT READY TO GO. B 06460000
SPACE 06470000
CMEBSC EQU * * B 06480000
ST CMSDTF,DTF SAVE THE DTF ADDRESS. B 06490000
SPACE 1 06500000
CMESKF EQU * * B 06510000
AIF (&MIN).N0020 06520000
L $BDIOB(,DTF),IOB LOAD PTR TO 1ST IOB. B 06530000
MVI CMC#SB,SBN2 SET OP TO SET SKIP ON. B 06540000
B CMCSKP GO TO CHECK LIST SKIP BIT RTN. B 06550000
SPACE 06560000
* IF THERE IS ALREADY A BSCA DTF SET UP FOR CHECK, THEN DO NOT SET B 06570000
* UP ANOTHER BSCA DTF FOR CHECK. SOME INTERNAL FIELDS WILL BE B 06580000
* LOST IF ANOTHER DTF WHERE SET UP. B 06590000
SPACE 06600000
TBN CMSWIT,CMBSCK BSCA DTF SET FOR CHECK ? B 06610000
JT CMEANR YES-DON'T SET UP ANOTHER ONE. B 06620000
TBF LCBOPE(,DTF),ALL ANY OP ENDS FOR THIS LINE ? B 06630000
JF CMEXPM YES-GO EXAMINE PARM LIST STATUSB 06640000
CMEANR EQU * * B 06650000
CLI LCBCHN-1(,DTF),CMZERO ANOTHER DTF ? B 06660000
BE CMECHK NO-GO TO CALL CHECK. B 06670000
L LCBCHN(,DTF),DTF POINT TO NEXT DTF. B 06680000
B CMENTR GO TEST FOR BSCA DTF. B 06690000
.N0020 ANOP 06700000
EJECT 06710000
* EXAMINE THE PARM LIST, IGNORE OP END INTERRUPT IF PARM LIST NOT B 06720000
* QUEUED. B 06730000
SPACE 06740000
CMEXPM EQU * * B 06750000
TBN LCBAT1(,DTF),LCBNTQ PARM LIST REMOVED FROM QUEUE ? B 06760000
JF CMEVLD NO-GO HANDLE VALID OP END. B 06770000
SBN LCBAT1(,DTF),LCBINT SET OP END W/ NO PARM LIST Q'D.B 06780000
SLC LCBOPE(1,DTF),CC0001 DECREMENT LINE OP END COUNT. B 06790000
SLC CCOECT,CC0001(1) SUBTRACT 1 FROM OP END COUNT. B 06800000
B CMOPND GO CHECK FOR OTHER OP END'S. B 06810000
SPACE 2 06820000
* VALID OP END DO 1 OF 3 THING: B 06830000
* 1A.IF ABORTING THE LINE, GO TO CHECK WITH NO DTF SETTING UP. 06840000
* 1B.IF OLT RUNNING/OUTPUT SELECT/OR DATA MOVED, GO TO CHECK. B 06850000
* 2. IF RECEIVE INITIAL, SET UP DTF AND IOB FOR TERMINAL INPUTTING.B 06860000
* UNLESS EOT RECEIVED TO RECEIVE INITIAL, IF SO CALL CHECK. B 06870000
* 3. IF NOT RECEIVE INITIAL, VALIDATE INPUT LINE BUFFER SIZE. B 06880000
SPACE 06890000
CMEVLD EQU * * B 06900000
SBN CMSWIT,CMBSCK SET'DTF SCHEDULED FOR CHECK' 06905000
AIF (&MIN).N0040 06910000
MVI CMC#SB,SBF2 SET OP TO SET SKIP OFF. B 06920000
B CMCSKP GO TO CHECK LIST SET SKIP RTN. B 06930000
.N0040 ANOP 06940000
SPACE 06950000
* IF LINE IS BEING ABORTED, THEN GO TO CHECK WITH NO SETTING UP. 06960000
SPACE 06970000
TBN LCBAT2(,DTF),LCBABT LINE ABORT IN PROCESS ? B 06980000
JT CMEGOK YES-GO CHECK FOR OTHER DTFS. B 06990000
SPACE 07000000
* SAVE THE TAS ATTRIBUTES FROM THE TUB IN SAVE AREA. 07010000
SPACE 07020000
L LCBPL@(,DTF),PL LOAD PARM LIST OF ACTIVE TERM, B 07030000
B CMTASV GO TO TAS SAVE SUBROUTINE. B 07040000
SPACE 07050000
AIF (&NSWL).S0060 07060000
SPACE 07070000
* SET ON LINE CONNECTED INDICATOR FOR SWITCHED LINES. 07080000
SPACE 07090000
&MIX SETA &NCS+&NPP+&NMP 07100000
AIF (&MIX EQ '3').S0050 07110000
TBN $BDATR(,DTF),$BCSWI SWITCHED SLB 07120000
TBF $BDATR(,DTF),$BCMPT LINE ? SLB 07130000
JF CMEXCK NO-DON'T SET CONNECTED. SLB 07140000
.S0050 ANOP 07150000
SBN LCBATR(,DTF),LCBNIT SET SWITCHED LINE CONNECTED. SB 07160000
CMEXCK EQU * * B 07170000
.S0060 ANOP 07180000
TBF LCBOPC(,DTF),LCBMVD DATA MOVED OR B 07190000
TBF $BDATT(,DTF),$BCOUT OUTPUT (SELECTION) OPERATION ? B 07200000
SBF LCBOPC(,DTF),LCBMVD SET OFF DATA MOVED IND. B 07210000
JF CMEGOK YES-GO CHECK FOR ANOTHER DTF. B 07220000
* @16 07230000
SPACE 07240000
* RECEIVE INITIAL ON THE LINE, SET UP DTF AND IOB FOR EXECUTION. B 07250000
SPACE 07260000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ON LINE ? B 07270000
JF CMEREC NO-GO HANDLE DATA RECORD LENGTHB 07280000
L $BDIOB(,DTF),IOB POINT TO THE IOB B 07290000
TBN IOBFLA(,IOB),FIRST LINE INIT STILL IN PROCESS ? B 07300000
JT CMEGOK YES-GO TO CHECK OTHER DTF'S. B 07310000
L $BDWKA(,DTF),$BWK POINT TO BSCA WORK AREA. B 07320000
TBN LCBAT2(,DTF),LCBRFT RFT/OLT STARTED ? B 07330000
JF CMERFF NO-CHECK FOR RFT COMING IN. B 07340000
TBN $BWFG3(,$BWK),$BWRFT RFT/OLT STILL RUNNING ? B 07350000
JT CMEGOK YES-GO CHECK FOR OTHER DTF'S. B 07360000
SBF LCBAT2(,DTF),LCBRFT SET OFF RFT RUNNING INDICATOR. B 07370000
J CMERCI GO HANDLE THE RECEIVE INITIAL. B 07380000
SPACE 1 07390000
CMERFF EQU * * B 07400000
TBN $BWFG3(,$BWK),$BWRFT OLT RUNNING ? B 07410000
JF CMERCI NO-GO HANDLE RECEIVE INITIAL. B 07420000
SBN LCBAT2(,DTF),LCBRFT SET RFT STARTED AND RUNNING. B 07430000
CMERCI EQU * * B 07440000
SPACE 07450000
* IF DATA RECEIVED TO CANCEL REQUEST, THEN SET UP THE DTF, 07460000
* STOP INVITE FAILED. OTHERWISE, JUST SET UP TO CALL CHECK. 07470000
SPACE 07480000
L $BDIOB(,DTF),IOB LOAD THE IOB REG. B 07490000
CLI IOBCMP(,IOB),$BCNEG NEGATIVE RESPONSE ? B 07500000
JE CMEGOK YES-GO CHECK OTHER DTF'S B 07510000
TBF LCBAT1(,DTF),LCBCRI+LCBPRI CANCEL PENDING ? B 07520000
JT CMERCL NO-GO SET UP THE DTF FOR RCV. B 07530000
CLI IOBCMP(,IOB),$BCEOT CANCEL OK ? B 07533000
JE CMEGOK YES GO CHECK OTHER DTF'S B 07536000
SPACE 07550000
CMERCL EQU * * B 07560000
AIF (&NPP).P0100 07570000
AGO .P0150 07580000
.P0100 AIF (&NMP).P0200 07590000
.P0150 ANOP 07600000
TBF $BDATR(,DTF),$BCSWI MULTI-TERM IND OFF ? P/TB 07610000
JT CMEOWN YES-PARM @ IN DTF, GO LOAD P/TB 07620000
.P0200 ANOP 07630000
AIF (&NCS).S0100 07640000
MVC LCBID#(1,DTF),$BDIND(,DTF) MOVE IN CONTROL STATION ID. CB 07650000
TBN $BDATR(,DTF),$BCMCN CONTROL STATION ? CB 07660000
JT CMECTL YES-GO FIND PARM LIST FOR CS. CB 07670000
.S0100 ANOP 07680000
AIF (&NSWL).S0200 07690000
SPACE 07700000
* FILL TERM ID FOR SWITCHED LINE IF SWITCHED ID LIST WAS USED. SB 07710000
SPACE 1 07720000
TBN $BDADD(,DTF),$BCSWD SWITCHED ID LIST USED ? SB 07730000
JF CMEOWN NO-TERM ADDRESS IN 'LCBPL@'. SB 07740000
MVC LCBID#(1,DTF),$BDRLN(,DTF) MOVE IN SWITCHED TERM ID. SB 07750000
.S0200 ANOP 07760000
&MIX SETA &NCS+&NSWL 07770000
AIF (&MIX EQ '2').S0300 07780000
SPACE 1 07800000
* FIND PARM LIST FOR MULTI-TERMINAL LINE. C/SB 07810000
SPACE 1 07820000
CMECTL EQU * * C/SB 07830000
CMECSL EQU * * C/SB 07840000
L LCBPLQ(,DTF),PL LOAD PTR TO FIRST PARM LIST.C/SB 07850000
CMEXID EQU * * C/SB 07860000
ST LCBPL@(,DTF),PL SAVE @ OF CURRENT PARM LIST.C/SB 07870000
TBN PL$OPC(,PL),OPSTCM STOP II THAT'S AN INVITE ? C/SB 07873000
JT CMESTI YES-SEE IF THIS IS THE TUB C/SB 07876000
TBN PL$OPM(,PL),OPGET THIS A GET PARM LIST ? C/SB 07880000
TBF PLOPM(,PL),OPSTOP STOP INVITE? C/SB 07885000
JF CMENXT NO-GO TO GET NEXT PARM LIST.C/SB 07890000
CMESTI EQU * * C/SB 07895000
L PLTUBA(,PL),TUB LOAD @ OF THIS TERMS TUB. C/SB 07900000
CLC TUBSID(1,TUB),LCBID#(,DTF) THIS RESPONDING TERM'S TUB C/SB 07910000
L LCBPL@(,DTF),PL RELOAD PARM LIST @. C/SB 07920000
JE CMESKP YES-GO SET SKIP BIT ON. C/SB 07930000
CMENXT EQU * * C/SB 07940000
L PLCHN(,PL),PL LOAD REG TO NEXT PARM LIST @C/SB 07950000
B CMEXID GO BACK TO EXAMINE THIS ID. C/SB 07960000
SPACE 07970000
CMESKP EQU * * C/SB 07980000
SPACE 07990000
* SAVE THE TAS ATTRIBUTTES FOR NEW TERMINAL. 08000000
SPACE 08010000
* ----START--------------------@03 08012000
MVC LCBLID(1,DTF),LCBID#(,DTF) SAVE LAST TERMINAL ID 08014000
* -----END---------------------@03 08016000
B CMTASV GO TO TAS SAVE SUBROUTINE. B 08020000
SPACE 08030000
.S0300 ANOP 08040000
* SET DTF AND IOB ATTRIBUTES, OWN, RECEIVE IND'S, AND BLOCK LENGTH. B 08050000
* ALSO SET LINE OWNERSHIP STATUS. 08060000
SPACE 08070000
CMEOWN EQU * * B 08080000
B CMBTAS RTN TO FILL DTF/IOB/OWNERSHIP. B 08090000
SPACE 08100000
TBN $BDATT(,DTF),$BCOUT OUTPUT OPERATION ? B 08110000
CMEGOK EQU * * B 08120000
JT CMEBCK YES-GO CHECK FOR OTHER DTF'S. B 08130000
AIF (&NITB).I0200 08140000
TBN SAVTA2,TASREC+TASITB RECORD MODE AND ITB ? IB 08150000
JF CMEIOB NO-GO CORRECT THE IOB'S. IB 08160000
MVC $BDITB(1,DTF),TUBBKF(,TUB) PUT BLOCK FACTOR IN TEMP WORKIB 08170000
AIF (&NTSP).I0100 08180000
TBN TUBTA2(,TUB),TASTSP TRANSPARENCY ? IXB 08190000
JF CMEITB NO-GO SET FOR ITB ONLY. IXB 08200000
ALC LCBKLC(2,DTF),$BDITB(,DTF) ADD 3 TIMES BLOCKING FACTOR IXB 08210000
ALC LCBKLC(2,DTF),$BDITB(,DTF) * BUFFER LENGTH FOR ITB TRANIXB 08220000
ALC LCBKLC(2,DTF),$BDITB(,DTF) * GET. IXB 08230000
MVI $BDITB(,DTF),3 SET ITB LENGTH TO 3. IXB 08240000
J CMEIOB GO CORRECT ALL IOB'S ATTRIBUTIXS 08250000
SPACE 08260000
.I0100 ANOP 08270000
CMEITB EQU * * IXB 08280000
ALC LCBKLC(2,DTF),$BDITB(,DTF) ADD BLK FACTR TO LEN, ITB ONLIB 08290000
MVI $BDITB(,DTF),1 SET ITB LENGTH TO 1. IB 08300000
.I0200 ANOP 08310000
SPACE 08320000
* CORRECT ALL IOB'S IN THE CHAIN FOR ANY NEW ATTRIBUTTES SET. 08330000
SPACE 08340000
CMEIOB EQU * * B 08350000
L $BDIOB(,DTF),IOB LOAD THE IOB POINTER. B 08360000
CMBTIB EQU * FILL THE IOB ATTRIBUTTES. B 08370000
MVC IOBFLG(1,IOB),$BDATT(,DTF) MOVE ATTR. BYTE TO IOB. B 08380000
AIF (&MIN).N0200 08390000
CLC IOBNXT(2,IOB),$BDIOB(,DTF) ANOTHER IOB IN THE CHAIN ? NB 08400000
L IOBNXT(,IOB),IOB LOAD @ OF NEXT IOB. NB 08410000
BNE CMBTIB YES-GO FILL THE NEXT IOB. NB 08420000
.N0200 ANOP 08430000
SPACE 1 08440000
* IF NOT A GOOD DATA BLOCK, DON'T CHECK DME, RECORD LENGTH, ETC. B 08450000
SPACE 1 08460000
TBF IOBCMP(,IOB),ALL-$BCEOT GOOD DATA BLOCK ? B 08470000
JF CMEBCK NO-GO CHECK OTHER DTF'S. B 08480000
AIF (&NDME).D0300 08490000
SPACE 1 08500000
* IF THE CLEAR KEY WAS HIT FOR A COMMAND CAPABLE 3270, OR THIS IS DB 08510000
* A COMMAND CAPABLE CPU, THEN CALL IN DME INQUIRY TRANSIENT. DB 08520000
SPACE 1 08530000
L LCBPL@(,DTF),PL POINT TO THE PARM LIST. DB 08540000
L PLTUBA(,PL),TUB POINT TO THE TUB. DB 08550000
TBF TUBAT2(,TUB),TUBCMD NOT COMMAND MODE, DB 08560000
TBN TUBAT2(,TUB),TUBDTA , IS IN DATA MODE, AND DB 08570000
TBN TUBAT1(,TUB),TUBREQ * IS THE REQUESTOR ? DB 08580000
JF CMEREC NO-GO CHECK RECORD LENGTH. DB 08590000
AIF (&N32).D0100 08600000
TBN TUBSCS(,TUB),TUBCLR CLEAR KEY HIT ? 0DB 08610000
AIF (&NCPU).D0050 08620000
JT CMEBIC YES-GO TO INQUIRY XIENT. 0DB 08630000
AGO .D0100 08640000
.D0050 ANOP 08650000
JF CMEREC NO-GO CHECK RECORD LENGTH. 0DB 08660000
AGO .D0200 08670000
.D0100 AIF (&NCPU).D0200 08680000
CLI TUBPHY(,TUB),TUBCPU CPU TERMINAL ? UDB 08690000
JNE CMEREC NO-GO CHECK RECORD LENGTH. UDB 08700000
.D0200 ANOP 08710000
CMEBIC EQU * CALL DME INQUIIRY TRANSIENT. DB 08720000
LA CMDME,XR1 POINT XR1 TO DME STRING. DB 08730000
B $CC4PI CALL TRANSIENT LOADER FOR DB 08740000
DC AL1(CC4BI) BSCA DME INQUIRY. DB 08750000
SPACE 1 08760000
.D0300 ANOP 08770000
CMEREC EQU * * B 08780000
B CMGINL GO TO GET INPUT LENGTH RTN. B 08790000
SPACE 08800000
CMEBCK EQU * * B 08810000
AIF (&MIN).N0300 08820000
B CMEANR GO CHECK FOR ANOTHER DTF. B 08830000
.N0300 ANOP 08840000
SPACE 08850000
CMECHK EQU * * B 08860000
.C0010 ANOP 08870000
B CHENTR GO DO CHECK 08873000
J CHEND0 GO AROUND CHECK(ALREADY DONE) 08876000
MEND 08890000