|
|
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: 28194 (0x6e22)
Types: s3xseg
Names: »S$E070«
└─⟦d0bc1a931⟧ Bits:30009189 5704-sc1.V08.ccp
└─⟦64693a1c9⟧
└─⟦this⟧ »S$E070«
MACRO 00010000
.********************************************************************** 00020000
.* * 00030000
.* NAME: $E070 * 00040000
.* * 00050000
.* MODIFICATION LEVEL: MODEL 15, VERSION 7, MOD LEVEL 0 * 00060000
.* * 00070000
.* FUNCTION: * 00080000
.* * 00090000
.* . CCP GENERATION SECOND PASS MACRO-INSTRUCTION -- GENERATE THE * 00100000
.* COMMUNICATION MANAGEMENT TASK. (01 0F 12). * 00110000
.* * 00120000
.* INPUT OPERANDS: NONE. * 00130000
.* * 00140000
.* SYSTEM GLOBALS: * 00150000
.* * 00160000
.* &ONE - MIXTURE OF MLTA AND BSCA. 1=ONLY ONE / 2=BOTH. * 00170000
.* &NDME- DATA MODE ESCAPE. 1=NOT SUPPORTED / 0=SUPPORTED. * 00180000
.* &MIN - MINIMUN SYSTEM. 1=MINIMUN / 0=NOT MINIMUN. * 00190000
.* &NPBY- BUSY PRINTER SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED * 00195000
.* BSCA: * 00200000
.* &NOB - BSCA SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00210000
.* &BSC - NUMBER OF BSCA LINES. NUMBER OF BSCA LINES (DTFS). * 00220000
.* &NPP - BSCA PT-TO-PT SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00230000
.* &NMP - BSCA MULTI-PT TRIBUTARY. 1=NOT SUPPORTED / 0=SUPPORTED. * 00240000
.* &NSWL- BSCA SWITCHED SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00250000
.* &NCS - BSCA CONTROL STATION. 1=NOT SUPPORTED / 0=SUPPORTED. * 00260000
.* &NITB- BSCA ITB SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00270000
.* &NTSP- BSCA TRANSPARENCY. 1=NOT SUPPORTED / 0=SUPPORTED. * 00280000
.* &NAS - BSCA ASCII SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00290000
.* &N32 - BSCA 3270 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00300000
.* &NRUF- 3270 PGM REQUEST UNDER FMT.1=NOT SUPPORTED / 0=SUPPORTED. * 00305000
.* &NDF - BSCA 3270 DFF SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00310000
.* &N37 - BSCA 3735 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00320000
.* &N41 - BSCA 3741 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00325000
.* &NCPU- BSCA CPU SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00330000
.* &NMSG- BSCA GET MSG SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00340000
.* &NINT- BSCA INTERVAL POLLING. 1=NOT SUPPORTED / 0=SUPPORTED. * 00350000
.* MLTA: * 00360000
.* &NOM - MLTA SUPPORTED. 1=NOT SUPPORTED / 0=SUPPORTED. * 00370000
.* &MLA - NUMBER OF MLTA LINES. NUMBER OF MLTA LINES (DTFS). * 00380000
.* &NSW - MLTA SWITCHED LINES. 1=NOT SUPPORTED / 0=SUPPORTED. * 00390000
.* &NSCTL-MLTA STATION CONTROL. 1=NOT SUPPORTED / 0=SUPPORTED. * 00400000
.* &NBFR -MLTA BUFFERED RECEIVE. 1=NOT SUPPORTED / 0=SUPPORTED. * 00410000
.* &N1050-MLTA 1050 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00420000
.* &N2741-MLTA 2741 SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00430000
.* &NMOVE-MLTA MOVE ONLY SUPPORT. 1=NOT SUPPORTED / 0=SUPPORTED. * 00440000
.* * 00450000
.* MODULE LOCALS: * 00460000
.* * 00470000
.* &MIX - WORK AREA TO DETERMINE THING IN COMBINATION. * 00480000
.* @39 - APAR 4915 CHECKING WRONG DA BIT BERG ANSWERED DFD FIXED * 00490000
.********************************************************************** 00500000
$E070 00510000
GBLB &ONE,&NOB,&NOM,&NDF,&NCS,&NSWL,&NINT,&N32,&NPBY 00530000
GBLA &BSC,&MLA 00570000
LCLA &MIX 00590000
TEXT 00600000
* R-06,C-00 CHANGE LEVEL 00610000
CMBEG EQU * 00613000
ENTRY CMBEG 00616000
CMEYE DC CL3'$CM' EYE CATCHER 00620000
DC CL2'07' MOD LEVEL 00630000
&MIX SETA &NOB+&NOM 00640000
AIF (&MIX EQ '0').START 00650000
&ONE SETB 1 00660000
.START ANOP 00670000
SPACE 2 00680000
ENTRY $CC4CM ENTRY POINT FOR CM 00690000
ENTRY $CC4FR COMMON PL/RECA FREEMAIN ENTRY 00700000
* * POINT FOR TRANSIENT AND CM. 00710000
SPACE 1 00720000
* ENTRY POINTS IN CCP $$BMCH USED FOR INITIALIZATION BY MLTA AND MLMP 00730000
SPACE 1 00740000
ENTRY $$BMCH ENTRY FOR CCP VERSION OF COMMON 00750000
* * MLMP/MLTA CHECK ROUTINE. 00760000
ENTRY CHBMHL LOCATION FOR MLMP/MLTA STORE 00770000
* * BRACKET HALT (NOT ISSUED) 00780000
AIF (&NOM).M0001 00790000
ENTRY CHBMML ENTRY WHERE MLTA STORES ADDR M 00800000
* * OF MLTA CHECK ROUTINE M 00810000
ENTRY CHBMPC ENTRY WHERE MLTA STORES ADDR M 00820000
* * FOR PCI INTERRUPTS (NOT M 00830000
* * EXITED TO UNDER CCP) M 00840000
.M0001 ANOP 00850000
AIF (&NOB).C0001 00860000
ENTRY CHBMBS ENTRY WHERE MLMP STORES ADDR B 00870000
ENTRY SAVCAT SAVE AREA FOR CAR AND TAR 00875000
* * OF BSCA WAIT ROUTINE. B 00880000
SPACE 1 00890000
AIF (&NSWL).C0000 00900000
ENTRY CMCLOZ ADDR WHERE STARTUP PLUGS MLMP.SB 00910000
* * CLOSE AND OPEN C/S ADDRS. SB 00920000
.C0000 ANOP 00930000
SPACE 00940000
* BSCA ONLY EXTRNS: 00950000
EXTRN $$BSMS SIO ENTRY FOR MLMP B 00960000
EXTRN $CC4BT(3) EXTRN SO ENTRY TO TRACE WILL B 00970000
EXTRN $CC4M1(3) EXTRN FOR MINI-MLMP 00975000
EXTRN $CC4M2(3) EXTRN FOR PRIVILEGED MINI-MLMP B 00977000
* * NOT CAUSE LKED HALT B 00980000
.C0001 ANOP 00990000
AIF (&NOM).C0002 01000000
SPACE 1 01010000
* MLTA ONLY EXTRNS: M 01020000
EXTRN MLTIO1 MLTA ENTRY POINT M 01030000
.C0002 ANOP 01040000
TITLE '$E070/$CC4CM/CONTROL LOGIC ' 01050000
*********************************************************************** 01060000
* C O M M U N I C A T I O N S M A N A G E R * 01070000
*********************************************************************** 01080000
SPACE 2 01090000
*********************************************************************** 01100000
* * 01110000
* MODULE - $CC4CM * 01120000
* * 01130000
* FUNCTION - SCHEDULE AND CONTROL ALL TELEPROCESSING COMMUNICATION * 01140000
* TO AND FROM MLTA AND BSCA TERMINALS ATTACHED TO CCP. * 01150000
* SCHEDULE AND CONTROL ALL I/O TO THE SYSTEM CONSOLE. * 01160000
* * 01170000
* ENTRY POINTS : * 01180000
* $CC4CM - MAIN ENTRY POINT. * 01190000
* DISPATCHED BY STARTUP AT THIS POINT. AFTER INITIAL* 01200000
* DISPATCH $CC4CM WILL WAIT FOR MORE WORK JUST * 01210000
* FOLLOWING THIS POINT AND WILL RECEIVE CONTROL * 01220000
* AT THIS WAIT POINT AFTER OP END OR NEW REQUEST * 01230000
* CAUSES $CMECB TO BE POSTED. * 01240000
* * 01250000
* $CC4FR - FREEMAIN PL AND HOLD BUFFER ENTRY POINT. * 01260000
* BRANCHED TO BY $CC4CM AND CM TRANSIENTS. * 01270000
* * 01280000
* GENERATION - THIS MODULE IS ASSEMBLED AT CCP GENERATION. * 01290000
* $CC4CM IS CREATED BY MACROS WHICH ARE NAMED $E0NN WHERE * 01300000
* NN IS A NUMERIC IDENTIFIER OF THE MACRO. * 01310000
* * 01320000
* CODE IN EACH MACRO IS EITHER INCLUDED OR EXCLUDED BASED * 01330000
* ON THE GLOBALS SET BY THE FIRST PASS OF GENERATION. THE * 01340000
* CODE IS IDENTIFIED IN COLUMNS 69-71 BY ALPHABETICS WHICH * 01350000
* IDENTIFIES THE GENERATION OPTION THAT CAUSES ITS INCLUSION * 01360000
* * 01370000
* THE ALPHABETIC IDENTIFIERS ARE AS FOLLOWS: * 01380000
* * 01390000
* COLUMN 71 : * 01400000
* B - BSCA * 01410000
* M - MLTA * 01420000
* 2 - TEST FOR MLTA OR BSCA * 01430000
* * 01440000
* COLUMN 68-70 MAY INCLUDE IN ANY ORDER OR COMBINATION: * 01450000
* C - BSCA OR MLTA CONTROL STATION OR STATION CONTROL * 01470000
* D - BSCA OR MLTA DATA MODE ESCAPE * 01480000
* L - CODE NECESSARY FOR COMBINATION OF LINE TYPES * 01500000
* MIN - CODE PRESENT ON MINRES SYSTEM ONLY. * 01505000
* R - RESIDENT CODE MADE TRANSIENT FOR MINRES-YES. * 01510000
* S - BSCA OR MLTA SWITCHED LINE SUPPORT. * 01520000
* Y - CODE TO HANDLE MULTIPLE DTFS. EXCLUDED IN 1 LINE SYS. * 01530000
* / - OR (FOR COMBINATION OF 2 OTHER IDENTIFIERS * 01535000
* * 01540000
* A - BSCA ASCII SUPPORT * 01590000
* F - BSCA 3270 DFF SUPPORT * 01610000
* G - BSCA GET MESSAGE SUPPORT * 01640000
* I - BSCA ITB (INTERMEDIATE TEXT BLOCK) SUPPORT * 01645000
* N - BSCA INTERVAL POLLING * 01650000
* P - BSCA POINT TO POINT SUPPORT * 01651000
* T - BSCA MULTI POINT TRIBUTARY SUPPORT * 01652000
* U - BSCA CPU TO CPU SUPPORT * 01653000
* W - BSCA 3270 PROGRAM REQUEST UNDER FORMAT (PRUF) * 01654000
* X - BSCA TRANSPARENCY SUPPORT * 01655000
* 0 - BSCA 3270 SUPPORT * 01656000
* 5 - BSCA 3735 SUPPORT * 01657000
* 7 - BSCA 3741 SUPPORT * 01658000
* * 01660000
* B - MLTA BUFFERED RECEIVE SUPPORT * 01670000
* V - MLTA MOVE SUPPORT (NO TRANSLATE) * 01675000
* 1 - MLTA 1050 SUPPORT * 01680000
* 4 - MLTA 2741 SUPPORT * 01690000
* * 01710000
* EXTERNAL REFERENCES: * 01720000
* $CCCOM: * 01730000
* FIELDS IN $CMWK * 01740000
* @CMTCB,@CPTCB * 01750000
* @CKLST * 01760000
* @LCB#1 * 01770000
* @PRLQ 01780000
* #CMERP * 01790000
* #GMS * 01800000
* #OPEND * 01810000
* * 01820000
* CHANGE ACTIVITY - $CC4CM. * 01820500
* RELEASE 4: * 01829400
* @16-INCR/0ES -IDA. * 01829600
* RELEASE 5: * 01829620
* @18-APAR/S307609-CORRECTS ID VERIFICATION ON 3275 SWITCHED LINE.* 01829640
* @19-APAR/S307681-CORRECTS AN INVALID CLEAR KEY INDICATION WITH * 01829660
* 3270 BLOCKED DATA. * 01829680
* @20-APAR/S307636-FIXES U-PC AFTER 'C CCP' COMMAND BY CHECKING * 01829700
* CORRECT TERMINATION BIT IN TCB. * 01829720
* @21-APAR/S307541-FREES TERMINALS WITH SKIP BIT ON AND NOT BEING * 01829740
* POLLED OR IN ERP. * 01829760
* @22-APAR/S307691-CORRECTS INVALID 'E28 PROG NAME' MESSAGES. * 01829780
* @23-APAR/S306901-CORRECTS U-FE WITH EXCESSIVE PRUF REQUEST DATA.* 01829800
* @24-APAR/S307736-CORRECTS POLLING STOPPING WITH WAIT TIME OF 1. * 01829820
* @25-APAR/S307796-FIXES MESSAGE 411, RETURN CODE -08 TXT TIMEOUT.* 01829840
* @26-APAR/S308023-CORRECTS A LOOP IN $CC4OP BECAUSE A USER'S * 01829860
* RECORD AREA WAS BLANKED WITH AN INVALID LENGTH.* 01829880
* RELEASE 6: * 01829881
* @27-APAR/S308742-CORRECTS LOOP AFTER SHUTDOWN COMMAND DUE TO * 01829882
* 4E COMPLETION CODE. * 01829883
* @28-APAR/S308381-RECORD MODE TERMINALS ALWAYS GO TO MLMP. * 01829884
* @29-APAR/S309103-FREEMAINED SWITCHED AREA PRIOR TO SWITCHED CHK.* 01829885
* @30-APAR/ -POSTED WRONG TASK WHEN IN TERMINATION. * 01829886
* @31-APAR/S309265-GET WITH RVI FAILS TO SEND RVI * 01829887
* @32-APAR/S309066-WAIT TIME EXCEEDED IF LARGE BLOCKS AND SMALL * 01829888
* RECORDS IN THE INITIAL BLOCK TRANSMITTED * 01829889
* @33-APAR/ -WRONG TERMINAL POLLED ON CPU-TO-CPU TERMINAL * 01829890
* CONFIGURATION * 01829891
* @34- -ADD TRACE SUBROUTINE FOR PERFORMANCE * 01829892
* @35- -USER REC AREA BLANKED IF GET AND CLEAR KEY * 01829893
* @36- -LOOP IF T.O. INTERRUPT AND PARM LIST QUEUE * 01829894
* EMPTY. * 01829895
* RELEASE 7: * 01829900
* @37-APAR/S311 -STOP INVITE AND CLEAR KEY TRANSLATES LOW CORE. * 01829920
* @38-INCR/ES0705 -SUPPORT FOR BUSY 328X PRINTERS * 01829940
* * 01829960
*********************************************************************** 01830000
EJECT 01840000
*********************************************************************** 01850000
* $CC4CM ENTRY POINT * 01860000
*********************************************************************** 01870000
SPACE 2 01880000
$CC4CM EQU * 'CM' ENTRY POINT. 01890000
SBF CMSWIT,CMSPSI+CMFMPS RESET STOP II AND FM POST FLAGS 01900000
SBN #CMSWT,#CMFMD RESET $CC4GR TO 1ST LCB. 01910000
LA ECBLST,XR1 ADDRESS OF ECB WAIT LIST 01920000
SVC 0 WAIT FOR WORK - RECEIVE CONTROL 01930000
DC AL1(WAITRB) * WHEN: 01940000
* * NEW TP REQUEST ($CC4II/IS) 01950000
AIF (&NDF).D0030 01960000
* * ($CC4DF) FB 01970000
.D0030 ANOP 01980000
* * TP OP END ($CC4IB/IM) 01990000
* * FREEMAIN DONE AND 02000000
* * REQUEST WAITING 02010000
* * FOR SPACE. ($CC4FM) 02020000
* SET OFF WAIT BITS TO PREVENT TASK FROM BEING DISPATCHED AT 02030000
* ANOTHER WAIT POINT BECAUSE OF A POST TO ONE OF THESE ECBS. 02040000
SPACE 1 02050000
TBN $CMFM,POST IF FREEMAIN HAS OCCURRED AND 02060000
CLI CORCNT,NOBIT * CM IS WAITING FOR ONE, 02070000
JC CMCKCN,FLSOEQ NO-GO CHECK COUNT 02080000
SBN CMSWIT,CMFMPS YES- SET INTERNAL FREEMAIN BIT. 02090000
CMCKCN EQU * * LOCAL 02110000
SBF $CMFM,WAIT+POST RESET FREEMAIN ECB WAIT/POST. 02120000
SBF $CMECB,WAIT+POST RESET GENERAL ECB WAIT/POST. 02130000
AIF (&NINT).C0008 02140000
MVI TIMIOB+7,SKIP SET TO SKIP TIMER POSTING NB 02150000
.C0008 ANOP 02160000
JNE CMNOZ0 IF CORE COUNT > 0 - JUMP 02162000
MVI $CMFM,SKIP SET TO SKIP FREE MAIN POST 02164000
CMNOZ0 EQU * * 02166000
* BEGIN BY CHECKING FOR OP ENDS 02170000
TITLE '$E070/CMOPND/CONTROL LOGIC - CHECK OP ENDS ' 02180000
*********************************************************************** 02190000
* TITLE-- CONTROL LOGIC FOR $CC4CM. * 02230000
* * 02240000
* FUNCTION--DISPATCH WORK TO SECTIONS OF RESIDENT $CC4CM. * 02250000
* * 02260000
* OPERATION-- * 02270000
* . IF OPERATION HAS COMPLETED: * 02280000
* . SET UP BSCA DTF * 02290000
* . CALL IOCS CHECK ROUTINE TO GET DATA. * 02300000
* . IF '56' RETURN CODE (NOT COMPLETE), ADJUST OP END * 02310000
* COUNT AND CHECK FOR OTHER OP ENDS. * 02320000
* . IF DATA RECEIVED, EXIT TO CMBOPE (BSCA) OR CMMOPE (MLTA) 02330000
* . IF NEW PUT REQUEST ON QUEUED, * 02340000
* . DEQUEUE PL. * 02350000
* . EXIT TO CMBREQ (BSCA) OR CMMREQ (MLTA). * 02360000
* . IF REQUEST WAITING FOR GETMAIN CAN BE RETRIED: * 02370000
* . IF GETMAIN FAILED AT QUEUE TIME, EXIT TO * 02380000
* CMBSOX (BSCA) OR CMPNWX (MLTA). * 02390000
* . IF GETMAIN FAILED AT SCHEDULE TIME, EXIT TO * 02400000
* CMBTBY (BSCA), OR CMMTBY (MLTA). * 02410000
* . IF NEW READ REQUEST IS ON QUEUE: * 02420000
* . DEQUEUE PL. * 02430000
* . IF ACCEPT, GO TO CMACI. * 02440000
* . EXIT TO CMBREQ (BSCA) OR CMMREQ (MLTA). * 02450000
* . IF LINE WAS IN ERP AND NOW CAN BE RESCHEDULED, DO IT. * 02460000
* . IF INTERVAL POLLING, SET INTERVAL AS NECESSARY. * 02470000
* * 02480000
* ENTRY POINTS-- * 02490000
* CMOPND - CHECK FOR OP ENDS. * 02500000
* CMFRMN,CMREQ - CHECK FOR REQUESTS TO HANDLE. * 02505000
* * 02510000
* INPUT-- * 02520000
* #OPEND - OP END PENDING COUNT. * 02530000
* @CKLST - ADDRESS IF CCP CHECK LIST. * 02540000
* @PRLQ - QUEUE OF NEW REQUESTS FROM $CC4II OR $CC4DF. * 02545000
* * 02550000
* OUTPUT-- * 02560000
* #OPEND - ADJUSTED FOR OP ENDS HANDLED. * 02570000
* CMSDTF - DTF TO BE HANDLED. * 02580000
* CMSPL - PL TO BE HANDLED. * 02585000
* * 02590000
* EXTERNAL REFERENCES-- * 02600000
* CMDTFS - SETUP BSCA DTFS FOR CHECK ROUTINE * 02610000
* CMBMCH - CHECK ROUTINE * 02620000
* CMBSKP - BSCA SKIP BIT ON/OFF ROUTINE. * 02630000
* $CC4GR - GETMAIN FAIL RECOVERY TRANSINET. * 02632000
* CMPRLS - SEARCH @PRLQ FOR NEW PL. * 02634000
* $@TMIH - START/STOP INTERVAL TIMER. * 02636000
* $TRACE - SYSTEM TRACE ROUTINE. * 02638000
* CMTRCE - TRACE SUBROUTINE IN $E095 * 02639000
* * 02640000
* EXIT, NORMAL-- * 02650000
* TO CMBOPE OR CMMOPE TO HANDLE OP END * 02660000
* TO CMACI IF NEW ACCEPT REQUEST. * 02670000
* TO CMBREQ OR CMMREQ TO HANDLE NEW REQUESTS. * 02672000
* TO CMBSOX OR CMPNWX IF GETMAIN RETRY AT QUEUE TIME. * 02674000
* TO CMBTBY OR CMMTBY IF GETMAIN RETRY AT SCHED TIME. * 02676000
* * 02680000
*********************************************************************** 02690000
SPACE 5 02692000
******************************************************************** 02694000
* CHECK FOR IOCS OP ENDS. * 02696000
******************************************************************** 02698000
SPACE 1 02700000
CMOPND EQU * TEST OP END COUNT 02710000
CLI #OPEND,NOBIT CHECK OP END COUNT FOR ZERO 02720000
BE CMFRMN IF ZERO, BR TO FREEMAIN ANALYSIS 02730000
SPACE 02740000
AIF (&NOB).C0010 02750000
******************************************************************** B 02760000
* SETUP ANY BSCA DTF WITH OP END * B 02770000
******************************************************************** B 02780000
SPACE 1 02790000
B CMDTFS DTF SETUP FOR BSCA LINES B 02800000
SPACE 1 02810000
.C0010 ANOP 02820000
******************************************************************** 02830000
* CALL CHECK ROUTINE (CCP VERSION OF $$BMCH) * 02840000
******************************************************************** 02850000
SPACE 1 02860000
B CMBMCH CALL OP END CHECK ROUTINE 02870000
SPACE 02880000
SLC #OPEND,X$0001(1) SUBTRACT 1 FROM OP END COUNT 02890000
AIF (&ONE).H4450 02900000
TBF CMSWIT,CMBSCK IS IT MLTA OR BSCA 02910000
CLI $BDCMP(,DTF),$BCACD CHECK FOR NOTHING COMPLETE 02920000
BC CMOPND,NONE+HI+LO+FALSE BRANCH IF MLTA NOT COMPLETE 02930000
.H4450 ANOP 02940000
AIF (&NOB).C0015 02950000
CLI $BDCMP(,DTF),$BCCMP '56' COMPLETION CODE ? B 02960000
JNE CMNT56 NO-NOT 56, CHECK OTHERS. B 02970000
SPACE 02980000
&MIX SETA (&BSC+&MLA) 02990000
AIF (&MIX LE '1').Y0100 03000000
*---------------------------------------------------------------* YB 03010000
* NO OP ENDS TO HANDLE - '56' CODE FROM CHECK ROUTINE * YB 03020000
*---------------------------------------------------------------* YB 03030000
SPACE 1 03040000
* SEARCH CHECKLIST FOR BSC DTF AND DECREMENT ITS OP END COUNT YB 03050000
SPACE 1 03060000
L @CKLST,XR1 POINT TO THE CHECK LIST. YB 03070000
CMEXSK EQU * * LOCAL YB 03080000
TBF CKLSTS(,XR1),CKLSKP SKIP BIT OFF, AND YB 03090000
L CKLDTF(,XR1),DTF POINT TO THE DTF. YB 03100000
AIF (&ONE).C0007 03110000
TBN $BDDEV(,DTF),BSCA * BSCA DTF, AND Y2 03120000
.C0007 ANOP 03130000
JF CMEXNX NO-GO EXAMINE NEXT ENTRY. YB 03140000
.Y0100 ANOP 03150000
SLC LCBOPE(1,DTF),X$0001 DECREMENT OP END BY ONE. B 03160000
L LCBPL@(,DTF),PL POINT TO THE PARM LIST. B 03170000
B CMTRCE CALL TRACE SUBROUTINE FOR THIS B 03180000
* OP END B 03185000
DC AL1(CCPRIB) CCP RIB 03190000
DC AL1(TRRIB) TRACE SUB RIB 03200000
DC AL1(TTMOPN) TRACE OP END ID. B 03210000
SPACE 1 03220000
&MIX SETA (&BSC+&MLA) 03230000
AIF (&MIX LE '1').Y0250 03240000
J CMEXOP GO CHECK FOR MORE OP ENDS. YB 03250000
SPACE 1 03260000
CMEXNX EQU * * LOCAL YB 03270000
TBN CKLSTS(,XR1),CKLAST LAST ENTRY IN THE LIST ? YB 03280000
LA CKLEN(,XR1),XR1 POINT TO THE NEXT ENTRY. YB 03290000
BF CMEXSK NO-GO CHECK THE NEXT YB 03300000
.Y0250 ANOP 03310000
CMEXOP EQU * * LOCAL B 03320000
B CMOPND GO CHECK FOR MORE OP ENDS. B 03330000
SPACE 1 03340000
CMNT56 EQU * * LOCAL B 03350000
*------------------------------------------------------------------* 03480000
* OP END TO HANDLE (NOT '56') - GO TO BSCA OR MLTA OP END ROUT.* 03490000
*------------------------------------------------------------------* 03500000
SPACE 1 03510000
ST CMSDTF,XR2 SAVE DTF ADDR B 03520000
AIF (&ONE).C0012 03530000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 03540000
BF CMMOPE NO-GO TO CHECK MLTA ABORT. 2 03550000
.C0012 ANOP 03560000
SLC LCBOPE(1,DTF),X$0001 DECREMENT LINE OP END COUNT. B 03580000
L LCBPL@(,DTF),PL POINT TO THE PARM LIST. B 03590000
&MIX SETA &NCS+&NSWL 03600000
AIF (&MIX EQ '2').S0150 03610000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ? B 03620000
BF CMBOPE NO-GO CHECK BSCA ABORT. B 03630000
MVI CMB#SB,SBN1 SET FOR POLL SKIP BIT ON. B 03640000
SPACE 03650000
B CMBSKP SKIP TO POLL SKIP BIT RTN. B 03660000
.S0150 ANOP 03670000
B CMBOPE GO HANDLE BSCA OP END B 03680000
AGO .C0025 03680900
.C0015 ANOP 03681800
SPACE 1 03682700
* XR2 NOW POINTS AT DTF FOR WHICH OP END OCCURRED M 03683600
* ANALYZE THE COMPLETION CODE AND ACT ACCORDINGLY M 03684500
SPACE 03685400
CLI $MDCMP(,XR2),$MCRET EVENT NOT COMPLETE M 03686300
BNL CMOPND RETEST OP END COUNT. M 03687200
ST CMSDTF,XR2 SAVE DTF ADDR 03688100
B CMMOPE GO HANDLE THE OP END. M 03689000
.C0025 ANOP 03690000
$CC4CM TITLE '$E070/CMFRMN/ CONTROL LOGIC - GETMAIN FAIL RECOVERY' 03700000
******************************************************************** 03710000
* CHECK FOR NEW PUT REQUEST. * 03720000
******************************************************************** 03730000
SPACE 1 03770000
CMFRMN EQU * FREEMAIN ANALYSIS ROUTINE 04140000
CLI @PRLQ-1,NOBIT ANY NEW TP REQUESTS ? 04150000
JE CMFRPS NO - CHECK FOR FREEMAINS 04160000
SPACE 04170000
* HAVE TP REQUEST -IF PUT REQUEST HANDLE IT BEFORE CHECKING TO SEE 04180000
* IF REQUESTS WAITING FOR FREEMAIN CAN BE SATISFIED NOW. 04190000
SPACE 04200000
B CMPRLS SEARCH PRLQ FOR PUT 04210000
* * XR1 - PL FOUND 04220000
* * XR2 - LEFT BYTE OF CHAIN 04230000
* * ADDR POINTING TO PL FOUND. 04240000
TBN PLOPC(,PL),OPPUT DOES IT INVOLVE PUT 04250000
JT CMRDEQ YES - JUMP TO HANDLE NOW 04260000
SPACE 04261000
******************************************************************** 04262000
* CHECK FOR REQUEST WAITING GETMAIN THAT CAN BE RETRIED. * 04263000
******************************************************************** 04264000
SPACE 1 04265000
CMFRPS EQU * * LOCAL 04270000
TBN CMSWIT,CMFMPS HAS FREEMAIN BEEN POSTED 04280000
JF CMREQ IF NOT, JUMP TO HANDLE TP REQST 04290000
SPACE 04292000
* HAVE HAD FREEMAIN - FIND REQUEST AWAITING TPBUF SPACE. 04294000
SPACE 04296000
SVC 0 ***** TRANSIENT CALL ****** 04350000
DC AL1(CCPRIB) CCP RIB 04360000
DC AL1(CC4GR) GETMAIN RECOVERY TRANSIENT 04370000
SPACE 1 04380000
* ---> RETURN HERE IF NO REQUEST NEEDING GETMAIN WAS FOUND 04390000
J CMFMGG 04400000
SPACE 1 04410000
* ---> RETURN HERE IF REQUEST NEEDS TO BE RETRIED (XR1 POINTS TO IT) 04420000
* XR1-PL ADDRESS, XR2-DTF TO BE RESCHEDULED. 04430000
ST CMSDTF,DTF SAVE THIS DTF @ 04440000
ST CMSPL,PL SAVE THIS PL @ 04450000
TBN PL$OPM(,PL),OPGETQ DOES REQ NEED GM AT QUEUE TIME 04460000
SBF PL$OPM(,PL),OPGETM+OPGETQ RESET GETMAIN NEEDED BITS 04470000
AIF (&ONE).E0403 04480000
JF CMGMBF NO- NEED BUFFER AT SCHED TIME 04490000
AGO .C0175 04500000
.E0403 ANOP 04510000
AIF (&NOM).M0780 04520000
BF CMMTBY NO- NEED BUF AT SCHED TIME. M 04530000
AGO .C0175 04540000
.M0780 ANOP 04550000
BF CMBTBY NO- NEED BUF AT SCHED TIME. B 04560000
.C0175 ANOP 04570000
SPACE 1 04580000
* GETMAIN NEEDED AT REQUEST QUEUE TIME 04590000
ST CMNWPL,PL SAVE ORIG PL @ FOR NO WAIT POST 04600000
B CMDEQ DEQUEUE PL IN TCB 04610000
SBN CMSWIT,CMTPRQ NEW REQUEST 04620000
AIF (&ONE).E0405 04630000
TBN $BDDEV(,DTF),BSCA IS REQUEST FOR BSCA 2 04640000
BT CMBSOX YES - GO HANDLE 2 04650000
.E0405 ANOP 04660000
AIF (&NOM).M0790 04670000
B CMPNWX NO - MLTA NEW REQUEST M 04680000
AGO .C0200 04690000
.M0790 ANOP 04700000
AIF (&NOB).C0200 04710000
B CMBSOX BSCA NEW REQUEST ONLY B 04720000
.C0200 ANOP 04730000
AIF (&ONE).E0410 04740000
SPACE 1 04750000
* GETMAIN NEEDED AT NEW REQUEST SCHEDULE TIME 04760000
CMGMBF EQU * * LOCAL 04770000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 04780000
BT CMBTBY YES - GO SEE IF LINE IS BUSY 2 04790000
B CMMTBY JUMP IF NOT BUSY OR NON-READ M 04800000
.E0410 ANOP 04810000
SPACE 1 04820000
CMFMGG EQU * * LOCAL 04830000
SBF CMSWIT,CMFMPS TURN OFF FREEMAIN POSTED FLAG 04840000
SPACE 2 04850000
******************************************************************** 04860000
* CHECK FOR NEW READ REQUEST ON @PRLQ. * 04870000
******************************************************************** 04880000
SPACE 1 04890000
CMREQ EQU * HANDLE TP REQUESTS 04920000
CLI @PRLQ-1,NOBIT ANY NEW TP REQUESTS TO HANDLE ? 04930000
JE CMNWRK NO - CHECK FOR TERMINAL IN 04940000
* ERROR RECOVERY 04950000
SPACE 1 04960000
* CM HAS BEEN POSTED WITH A TP REQUEST, FIND THE NEW REQ AND HANDLE IT. 04970000
SPACE 04980000
B CMPRLS SEARCH PRLQ FOR PUT 04990000
* * XR1 - PL FOUND 05000000
* * XR2 - LEFT BYTE OF CHAIN 05010000
* * ADDR POINTING TO PL FOUND. 05020000
CMRDEQ EQU * * LOCAL 05030000
MVC 1(2,XR2),PLCHN(,PL) DEQUEUE PL OFF PRLQ 05040000
SLC PLCHN(2,PL),PLCHN(,PL) ZERO CHAIN FIELD 05050000
SPACE 1 05060000
ST CMSPL,PL SAVE THE PARM LIST ADDRESS 05070000
ST CMNWPL,PL SAVE PL TO POST FOR NO WAIT OP 05080000
L PLTUBA(,PL),XR2 POINT XR2 AT THE TUB 05090000
AIF (&N32).C0305 05090200
AIF (&ONE).C0303 05090300
TBN TUBCHR(,XR2),TUBLNE BSCA LINE AND - B 05090400
.C0303 ANOP 05090500
AIF (&NOB).C0305 05091000
TBN PLOPC(,PL),OPGET INVITE/GET OP ? B 05092000
TBF PLOPM(,PL),OPSTOP AND NOT A STOP INVITE? 05092500
JF CMRSCL NO - CONTINUE B 05093000
SPACE 1 05094000
* SET OFF THE CLEAR INDICATER IN THE TUB FOR ANY GET TYPE OP B 05095000
SPACE 1 05096000
SBF TUBSCS(,XR2),TUBCLR SET OFF CLEAR INDICATER B 05097000
* @38 05097030
* BUSY PRINTER SUPPORT @38 05097060
* @38 05097090
AIF (&NPBY).NBY01 BUSY PRINTER SUPPORTED @38 05097120
SPACE 1 @38 05097150
* SET POLL LOOP COUNT TO PROPER VALUE FOR BUSY PRINTER STATUS OPS. @38 05097180
SPACE 1 @38 05097210
TBN TUBAT4(,XR2),TUBBSY IS THIS A PRINTER TUB? @38 05097240
JF CMNDA NO - JUMP @38 05097270
L TUBDTF(,XR2),DTF XR2----> DTF @38 05097300
TBN $BDDEV(,DTF),BSCA THIS BSCA DTF? @38 05097330
JF CMNDA NO - LEAVE COUNT ALONE @38 05097360
SBN LCBAT3(,DTF),LCBBYP INDICATE POLLING BUSY PRINTER@38 05097390
CLI $BDCNT(,DTF),ALLBIT LOOP COUNT = CONTINUOUS? @38 05097420
JNE CMNDA NO - LEAVE THIS COUNT @38 05097450
MVC $BDCNT-1(1,DTF),$BDCNT(,DTF) SAVE LOOP COUNT @38 05097480
MVI $BDCNT(,DTF),X'02' ELSE-- SET LOOP COUNT = 2 @38 05097510
L $BDWKA(,DTF),XR2 XR2-----> WORK AREA @38 05097540
TBN $BWKMC(,XR2),X'01' DA RUNNING? @38 @39 05097570
JF CMNDA NO - LEAVE $BDCNT = 2 @38 05097600
L WKDTFD(,XR2),DTF XR2----> DTF @38 05097630
MVI $BDCNT(,DTF),X'FF' ELSE - SET CONTINUOUS POLL @38 05097660
CMNDA EQU * @38 05097690
L PLTUBA(,PL),XR2 AND FIND TUB AGAIN @38 05097720
.NBY01 ANOP @38 05097750
CMRSCL EQU * * B 05098000
.C0305 ANOP 05099000
TBN TUBAT1(,XR2),TUBKNM THIS A CONSOLE TUB ? 05099500
L TUBDTF(,XR2),DTF SAVE DTF ADDRESS 05100000
ST CMSDTF,DTF * FOR THIS REQUEST. 05110000
JT CMRNDQ YES-DON'T DECREMENT REQ COUNT 05115000
SPACE 1 05120000
SLC LCBNW#(,DTF),X$0001 DECREMENT NEW REQ COUNT FOR LINE 05130000
SPACE 1 05140000
*---------------------------------------------------------------------* 05150000
* SET INTERNAL OP CODE AND ROUTE NEW REQUEST. * 05160000
*---------------------------------------------------------------------* 05170000
SPACE 1 05180000
CMRNDQ EQU * * LOCAL 05185000
SBF PL$OPM(,PL),ALLBIT SET ALL OP MOD BITS OFF 05190000
MNN PL$OPM(,PL),PLOPC(,PL) MOVE LAST 4 BITS OF OP CODE 05200000
SPACE 1 05210000
CLI PLOPC(,PL),OPACI IS OP IS ACCEPT INPUT ? 05220000
TBF PLOPM(,PL),OPOLT AND NOT OLT ? 05230000
BC CMACI,TRUAEQ YES - GO HANDLE. 05240000
SPACE 1 05250000
SBN CMSWIT,CMTPRQ SET SWITCH TO INDICATE TP 05260000
* REQUEST IS NOW BEING HANDLED 05270000
AIF (&NOB).C0310 05280000
AIF (&ONE).C0300 05290000
TBN $BDDEV(,DTF),BSCA BSCA LINE ? 2 05300000
BF CMMREQ NO-GO PROCESS MLTA REQUEST 2 05310000
.C0300 ANOP 05320000
B CMBREQ PROCESS THE BSCA REQUEST. ONLY B 05330000
AGO .C0320 05340000
.C0310 ANOP 05350000
B CMMREQ PROCESS THE MLTA REQUEST. ONLY M 05360000
.C0320 ANOP 05370000
EJECT 05380000
******************************************************************* 05382000
* RESCHEDULE DTF THAT WAS IN ERP. * 05384000
******************************************************************* 05386000
SPACE 1 05388000
CMNWRK EQU * * LOCAL 05390000
CLI #CMERP-1,NOBIT IS THERE A DTF THAT WAS IN ERP 05410000
* * TO RESCHEDULE ? 05420000
JE CMWTST NO- CHECK FOR TIMER RESCHED. 05430000
L #CMERP,DTF XR2--> ERP DTF ADDRESS 05460000
MVI #CMERP-1,NOBIT CLEAR ERP DTF ADDRESS 05490000
ST CMSDTF,DTF SAVE DTF ADDRESS 05510000
AIF (&NOB).C0440 05520000
AIF (&ONE).C0600 05530000
TBN $BDDEV(,DTF),BSCA MLTA DTF 2 05540000
BF CMMTBY YES - GO CHECK FOR MLTA BUSY 2 05550000
.C0600 ANOP 05560000
B CMBTBY GO TEST LINE FOR BUSY B 05570000
AGO .C0480 05580000
.C0440 ANOP 05590000
B CMMTBY GO SEE IF MLTA LINE BUSY. ONLY M 05600000
.C0480 ANOP 05610000
SPACE 1 05620000
******************************************************************** 05630000
* NO WORK * 05640000
******************************************************************** 05650000
SPACE 1 05660000
CMWTST EQU * * LOCAL 05670000
SPACE 1 05690000
* RESTART POLLING IF NECESSARY NB 05700000
SPACE 1 05710000
L @LCB#1,DTF XR2-->FIRST LCB NB 05720000
CMWTS1 EQU * * NB 05730000
TBN LCBATR(,DTF),LCBTIM RESCHEDULE NEEDED? 05740000
AIF (&ONE).C0483 05743000
JF CMWOTR NO-CONTINUE 05746000
TBN $BDDEV(,XR2),BSCA BSC DTF AND - 2NB 05750000
.C0483 AIF (&NOB).C0486 05750700
TBF LCBAT2(,DTF),LCBACT LINE ACTIVE ? 05751400
JT CMTMRS YES-GO RESCHEDULE THIS LINE 05752100
.C0486 ANOP 05752800
AIF (&ONE).C0489 05753500
TBF $MDDEV(,DTF),BSCA MLTA DEVICE? 05754200
.C0489 ANOP 05754900
AIF (&NOM).C0492 05755600
JT CMTMRS YES-GO RESCHEDULE 05756300
.C0492 ANOP 05757000
CMWOTR EQU * * 05757700
SPACE 1 05800000
&MIX SETA (&BSC+&MLA) 05810000
AIF (&MIX LE '1').Y0800 05820000
CLI LCBCHN-1(,XR2),NOBIT ANY MORE DTF'S YNB 05830000
JE CMWAIT NO-GO WAIT YNB 05840000
SPACE 1 05850000
L LCBCHN(,XR2),XR2 XR2--->NEXT DTF YNB 05860000
B CMWTS1 GO CHECK AGAIN YNB 05870000
AGO .Y0810 05880000
.Y0800 ANOP 05890000
J CMWAIT GO WAIT NB 05900000
.Y0810 ANOP 05910000
SPACE 1 05920000
CMTMRS EQU * * NB 05930000
ST CMSDTF,XR2 SAVE DTF ADDRESS FOR CM 05940000
AIF (&ONE).Y0820 05940200
TBF $MDDEV(,XR2),BSCA MLTA DTF? 2 05940400
BT CMMSCH YES-GO RESCHEDULE MLTA 2 05940600
.Y0820 ANOP 05940800
AIF (&NINT).Y0830 05941000
SBN $FLGC,#NTRAC INDICATE NO TRACE NB 05941200
* PUT TWO SECONDS IN TIMER IOB BEFORE RESCHEDULE(RESCHEDULE WILL NB 05941400
* ACTUALLY START THE TIMER RUNNIG) NB 05941600
SPACE 1 05941800
LA TIMIOB,XR2 XR2-->TIMER IOB NB 05942000
MVC TITIME(4,XR2),PLTIME SET TIME INTERVAL AS SPEC'ED NB 05942200
.Y0830 ANOP 05942400
AIF (&NOB).Y0840 05942600
B CMBSCH GO RESCHEDULE BSCA LINE 2/B 05942800
AGO .Y0850 05943000
.Y0840 ANOP 05943200
B CMMSCH GO RESCHEDULE MLTA 2/M 05943400
.Y0850 ANOP 05943600
CMWAIT EQU * * 05943800
AIF (&NINT).Y0860 05944000
MVI TIMIOB+7,NOBIT SET TO WAIT ON TIMER ALSO NB 05944200
.Y0860 ANOP 05944400
B $CC4CM 05944800
MEND 06070000