|
|
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: 29210 (0x721a)
Types: s3xseg
Names: »S$E080«
└─⟦d0bc1a931⟧ Bits:30009189 5704-sc1.V08.ccp
└─⟦64693a1c9⟧
└─⟦this⟧ »S$E080«
MACRO 00010000
.********************************************************************** 00020000
.* NAME: $E080 * 00030000
.********************************************************************** 00040000
$E080 00050000
GBLB &ONE,&NOB,&NOM,&MIN,&NDME,&NMSG,&N37,&NBDA 00060000
GBLB &NPP,&NMP,&NSWL,&NCS,&NITB,&NTSP,&N32,&NAS,&NDF,&NCPU 00070000
LCLA &MIX 00090000
TEXT 00100000
* R-06,C-00 CHANGE LEVEL 00110000
AIF (&NOB).C0470 00120000
TITLE '$E080/CMBREQ--NEW BSCA TP REQUEST HANDLING ' 00130000
*********************************************************************** 00140000
* * 00150000
* NAME--CMBREQ * 00160000
* * 00170000
* TITLE--ACCEPT NEW BSCA TP REQUEST * 00180000
* * 00190000
* FUNCTION--ACCEPT NEW TP PARAMETER LIST FOR BSCA TERMINAL. * 00200000
* PERFORM THE FUNCTION REQUESTED IF IT CAN BE HANDLED * 00210000
* IMMEDIATELY, OTHERWISE, PLACE THE PARAMETER INTO THE * 00220000
* LCB LINE QUEUE OF WORK TO BE DONE. * 00230000
* * 00240000
* OPERATION-- * 00250000
* . IF THIS IS A DISCONNECT REQUEST, THEN INSURE THAT THE * 00260000
* LINE IS NOT CONNECTED TO THE SPECIFIEC TERMINAL. IF * 00270000
* NO INVITE REQUEST IS INVOLVED, THEN POST TP COMPLETED * 00280000
* TO THE SYSTEM. IF AN INVITE IS INDICATED THEN TREAT * 00290000
* LIKE AN INVITE ONLY REQUEST. * 00300000
* * 00310000
* . IF A PUT OPERATION TO A TERMINAL IN CCP ERP, IGNORE * 00320000
* THE PUT OPERATION. POST THE USER TP COMPLETE IF NO * 00330000
* INPUT OPERATION INDICATED. IF A PUT-THEN-GET TREAT * 00340000
* LIKE A GET/INVITE ONLY OPERATION. * 00350000
* * 00360000
* . IF A STOP INVITE OR PURGE I/O CALL $CC4BP TO HANDLE. * 00410000
* ON RETURN FINISH SCHEDULING. IF THE * 00420000
* BSCA TRANSIENT INDICATES AN ABORT OF THE LINE IS * 00430000
* REQUIRED, SET UP THE ABORT OPERATION. * 00440000
* * 00450000
* . IF A REGULAR TP DATA OPERATION TO A BSCA LINE, * 00460000
* CHECK TO INSURE THAT IT DOES NOT CONFLICT WITH WHAT * 00470000
* IS CURRENTLY BEING PERFORMED ON THE LINE. * 00480000
* * 00490000
* . IF PUT-NO-WAIT AND SPACE IS AVAILABLE FOR PARM LIST * 00550000
* AND DATA, MOVE THE PARAMETER LIST AND DATA TO A HOLD * 00560000
* BUFFER AND USE THE HOLD BUFFER FOR ANY FURTHER * 00570000
* REFERENCE TO THIS OPERATION. OTHERWISE, TREAT THE * 00580000
* REQUEST LIKE A PUT-WAIT OPERATION. NOTE: A PUT-NO-WAIT* 00590000
* MESSAGE TO A BSCA SWITCHED LINE IS ALSO TREATED LIKE A * 00600000
* PUT-WAIT. * 00610000
* * 00620000
* . IF A TP REQUEST THAT REQUIRES DATA TRANSFER, THEN QUEUE* 00630000
* THE REQUEST ONTO THE LINE QUEUE FOR THE APPROPRIATE * 00640000
* LCB. * 00650000
* * 00660000
* . AFTER QUEUEING UP A NEW TP REQUEST, CHECK THE STATUS * 00670000
* OF LINE TO: * 00680000
* - INCLUDE A NEW GET/INVITE IF POLLING IS ALREADY * 00690000
* GOING ON. * 00700000
* - STOP A POLLING SEQUENCE IF A PUT REQUEST WAS * 00710000
* JUST RECEIVED. * 00720000
* - CONTINUE OPERATION IF THE REQUEST JUST RECEIVED IS * 00730000
* THE CONTINUATION OF A PREVIOUSLY STARTED BSCA LINE * 00740000
* OPERATION. * 00750000
* * 00760000
* . EXIT TO THE RESCHEDULE LOGIC TO: * 00770000
* - POST COMPLETION OF THE TP SCHEDULED OPERATION. * 00780000
* - TO PERFORM THE NEXT PRIORITY ACTION ON THE LINE. * 00790000
* - TO CHECK FOR OTHER WORK WITHIN 'CM' THAT CAN BE DONE * 00800000
* AT THIS TIME. * 00810000
* * 00820000
* ENTRY POINTS: * 00830000
* CMBREQ - HANDLE NEW TP REQUEST. * 00840000
* CMBSTP - ABORT LINE (FROM CMBOPE). * 00850000
* CMBTBY - TEST IF LINE BUSY (FROM CMFRMN AND CMNWRK) . * 00860000
* * 00870000
* INPUT-- * 00880000
* CMSPL - ADDRESS OF THE TP REQUEST BEING HANDLED. * 00890000
* CMSDTF - ADDRESS OF THE DTF THAT PL IS FOR. * 00900000
* * 00910000
* OUTPUT-- * 00920000
* LCBPLQ - NEW REQUEST ADDED TO THIS QUEUE. ANDLED. * 00930000
* * 00960000
* EXTERNAL REFERENCES-- * 00970000
* $BSCL - CLOSE BSCA SWITCHED LINE FOR DISCONNECT OPERATION. * 00980000
* $BSOB - RE-OPEN THE BSCA SWITCHED LINE AFTER A DISCONNECT * 00990000
* OPERATION. * 01000000
* $CC4MP - TRANSIENT TO IGNORE A PUT TO A TERMINAL IN CCP ERP.* 01010000
* $CC4BP - TRANSIENT TO HANDLE BSCA STOP II/PURGE I/O. * 01020000
* $CC4BR - TRANSIENT TO REJECT A TP REQUEST THAT CONFLICTS * 01030000
* WITH A CURRENT LINE OPERATION. * 01040000
* $CC4BC - PRIORITY CANCEL OF READ ON LINE, PUT PENDING. * 01050000
* CMIVGM - HANDLE A NEW INVITE INPUT REQUEST. * 01060000
* CMPOST - POST REQUEST REJECTED. * 01070000
* CMQUE - QUEUE TP REQUEST ON LINE QUEUE. * 01080000
* * 01090000
* EXIT, NORMAL-- * 01100000
* TO CMNOBY, TO SCHEDULE ANOTHER OP FROM OWNER OF LINE.* 01100100
* TO CMNOBY, TO SCHEDULE ANOTHER OP FROM OWNER OF LINE.* 01104100
* TO CMBSCH, THE BSCA LINE RESCHEDULING FUNCTION. * 01110000
* TO CMPAII, IF LINE CAN NOT BE SCHEDULED NOW. * 01110100
* TO CMPAII, IF LINE CAN NOT BE SCHEDULED NOW. * 01114100
* * 01120000
*********************************************************************** 01130000
EJECT 01140000
CMBREQ EQU * * B 01150000
AIF (&NSWL).S0100 01160000
TBN PLOPM(,PL),OPDISC DISCONNECT ? SB 01170000
JF CMBPTG NO-GO HANDLE PUT-GET OP CODE. SB 01180000
SPACE 1 01190000
****************************************************************** SB 01200000
* DISCONNECT BSC SWITCHED LINE IF REQUESTED TO THE CURRENT TUB * SB 01210000
****************************************************************** SB 01220000
SBF PL$OPM(,PL),OPPUT SET OFF PUT OP IND. SB 01230000
CLC PLTUBA(2,PL),LCBOWN(,DTF) THIS TUB CONNECTED ? SB 01240000
JE CMBDIS YES - GO DO DISCONNECT SB 01250000
CLI PLOPC(,PL),OPPURG PURGE OPERATION ? SB 01252000
JE CMBDIS YES - DISCONNECT THE LINE SB 01254000
CLI LCBOWN-1(,DTF),NOBIT NO OWNER OF THE LINE ? SB 01256000
JE CMBDIS YES - DISCONNECT THE LINE SB 01258000
L PLTUBA(,PL),XR2 TUB ADDRESS SB 01260000
CLC TUBTCB(2,XR2),@TMTCB DID TERMINATION REQUEST DISC? SB 01270000
JNE CMBPDI NO - NOT CONNECTED SB 01280000
* YES - THE TASK OWNS THE LINE SB 01290000
* * (MAY BE IN ID VERIFICATION) SB 01300000
CMBDIS EQU * * LOCAL SB 01310000
LA CMOCPL,XR2 ADDR OF MLMP OPEN/CLOSE PL SB 01320000
* * WITH DTF ADDR AT OFFSET 3. SB 01330000
SPACE 1 01340000
SVC 0 SVC TO LOAD CLOSE SB 01350000
DC AL1(LDRIB) LOAD XIENT BY C/S SB 01360000
CMCLOZ DS CL2 CLOSE XIENT C/S (STARTUP SETS)SB 01370000
DC AL1(NSECS) NUMBER OF SECTORS - 1 SB 01380000
SPACE 1 01390000
SVC 0 SVC TO LOAD OPEN SB 01400000
DC AL1(LDRIB) LOAD XIENT BY C/S SB 01410000
DS CL2 OPEN XIENT C/S (STARTUP SETS) SB 01420000
DC AL1(NSECS) NUMBER OF SECTORS - 1 SB 01430000
SPACE 1 01440000
L CMSDTF,DTF RESTORE DTF ADDRESS SB 01450000
SBF LCBATR(,DTF),LCBNIT SET OFF LINE CONNECTED IND. SB 01460000
SBF LCBAT3(,DTF),LCBENB SET OFF LINE ENABLED IND. SB 01470000
SLC LCBOWN(2,DTF),LCBOWN(,DTF) ZERO OUT TUB OWNING INDICATORSB 01480000
SLC #OPEND,LCBOPE(1,DTF) REMOVE RESIDUAL OP ENDS. SB 01490000
MVI LCBOPE(,DTF),NOBIT ZERO LCB OP END COUNT. SB 01500000
TBN PL$OPM(,PL),OPGET GET OPERATION REQUESTED ALSO. SB 01510000
BF CMBSCH NO-GO RESCHEDULE THE LINE. SB 01520000
J CMBERP GO TO NEXT OPERATION CHECK. SB 01530000
SPACE 1 01540000
****************************************************************** SB 01550000
* DISCONNECT FOR TERMINAL NOT CONNECTED * SB 01560000
****************************************************************** SB 01570000
SPACE 1 01580000
CMBPDI EQU * * LOCAL SB 01590000
TBN PL$OPM(,PL),OPGET GET REQUESTED ALSO SB 01600000
JT CMBERP YES - HANDLE IT. SB 01610000
B CMPAII NO - REQUEST FINISHED SB 01620000
.S0100 ANOP 01630000
CMBPTG EQU * * LOCAL B 01650000
TBN PLOPC(,PL),OPPUT+OPGET IS OP A PUT THEN GET B 01660000
JF CMBERP NO - SKIP SET OFF GET BIT B 01670000
SPACE 01680000
****************************************************************** B 01690000
* IF PUT THEN GET - SCHEDULE A PUT * B 01700000
****************************************************************** B 01710000
SPACE 01720000
SBF PL$OPM(,PL),OPGET SET OFF GET BIT B 01730000
CMBERP EQU * * LOCAL B 01740000
SPACE 01750000
****************************************************************** B 01760000
* IGNORE PUT TO TERMINAL IN ERP * B 01770000
****************************************************************** B 01780000
SPACE 01790000
B CMERPC GO CHECK FOR AND HANDLE PUT B 01800000
* * TO TERMINAL IN ERP. B 01810000
* IF TERMINAL IS IN ERP AND OP WAS A PUT-ONLY CMERPC WILL GO B 01820000
* DIRECTLY TO CMPAII. IF IN ERP AND OP WAS PUT THEN GET B 01830000
* CMERPC RETURNS HERE TO SCHEDULE GET. B 01840000
SPACE 01850000
TBN PLOPM(,PL),OPSTOP IS STOP BIT ON B 01860000
JF CMBNSP NO-CONTINUE NON STOP CHECKING B 01870000
SPACE 1 01880000
******************************************************************** B 01890000
* STOP INVITE REQUEST * B 01900000
******************************************************************** B 01910000
SPACE 01920000
LA 0(,PL),XR2 LOAD PL @ INTO XR2 FOR XIENT. B 01930000
&MIX SETA &NCS+&NSWL 01940000
AIF (&MIX EQ '2').S0125 01950000
USING CMBSKP,XR1 01960000
LA CMBSKP,XR1 LOAD @ OF SKIP BIT RTN. C/SB 01970000
MVI CMB#SB(,XR1),SBN1 SET OP TO SET POLL BIT ON. C/SB 01980000
.S0125 SVC 0 ##### TRANSIENT CALL ##### B 01990000
DC AL1(CCPRIB) CCP SVC RIB B 02000000
DC AL1(CC4BP) ID FOR BSCA PURGE/STOP INVITE. B 02010000
SPACE 02020000
* TRANSIENT WILL RETURN HERE IF NO ABORT NEEDED, STOP SUCCESSFUL. B 02030000
* $CC4BC MAY SET UP CANCEL WHICH WILL BE HANDLED ON THE NEXT CALL B 02040000
* TO CCP CHECK ROUTINE (CMBMCH). #OPEND INCREMENTED TO CAUSE CALL. B 02050000
SPACE 1 02060000
B CMRQBF GO SET TP REQ'T BITS OFF. B 02070000
SPACE 02080000
* TRANSIENT WILL RETURN HERE IF ABORT OF LINE NEEDED. B 02090000
* DATA WAS BEING TRANSMITTED. B 02100000
SPACE 02110000
****************************************************************** B 02120000
* SET UP FOR ABORT OF LINE * B 02130000
****************************************************************** B 02140000
SPACE 02150000
CMBSTP EQU * * (FROM CMBOPE FOR STOP FAIL) B 02160000
TBN LCBOPC(,DTF),OPPUT ABORT OF A PUT ? B 02170000
BT CMBEOT YES-GO SET WRITE EOT. B 02180000
L $BDWKA(,DTF),WKA POINT TO BSCA WORK AREA. B 02190000
MVI WKDELL+4(,WKA),CPURGE SET CCP PURGE RETURN CODE. B 02200000
SBN BSFLGD(,WKA),FWDABT SET FORWARD ABORT REQUEST. B 02210000
L WKIOBD(,WKA),IOB POINT TO IOB OUT OF WORK AREA. B 02220000
SBF IOBFLA(,IOB),TDLAY SET OFF TIME DELAY SEQUENCE. B 02230000
B CMFORB GO TO FORM OP FOR MLMP. B 02240000
SPACE 1 02250000
CMBEOT EQU * * LOCAL B 02260000
SBN LCBAT2(,DTF),LCBSET SET SEND EOT B 02270000
ALC $BDBKX(2,DTF),$BDBKL(,DTF) UPDATE BLK PTR SO WONT GET B 02280000
* * ANY MORE DATA B 02290000
B CMFORB FORM NEXT MLMP OPERATION B 02300000
TITLE '$E080/CMBREQ--NEW BSCA TP REQUEST -- NON-STOP REQUEST' 02310000
******************************************************************** B 02320000
* NON-STOP REQUEST * B 02330000
******************************************************************** B 02340000
SPACE 02350000
CMBNSP EQU * * LOCAL B 02360000
* IF THIS OPERATION IS TO A TUB IN CCP ERP - THEN CANNOT HAVE A PUT B 02370000
* THAT WILL BE SCHEDULED B 02380000
SPACE 02390000
TBN TUBAT3(,XR2),TUBERP IS TUB IN CCP ERP B 02400000
L TUBDTF(,XR2),DTF POINT XR2 AT THE DTF B 02410000
JT CMBSOP JUMP IF IN CCP ERP. B 02420000
TBN PL$OPM(,PL),OPPNW IS IT PUT NO WAIT 02480000
JF CMBSOP IF NOT JUMP TO END OF PNW CHECK. 02490000
SPACE 02500000
* PUT NO WAIT REQUESTED - CONVERT IF NOT ALLOWED 02510000
SPACE 02520000
AIF (&NSWL).S0400 02530000
AIF (&MIX EQ '3').S0500 02540000
TBN $BDATR(,DTF),$BCSWI SWITCHED, AND NOT SLB 02550000
TBF $BDATR(,DTF),$BCMPT * MULTI-POINT ? SLB 02560000
JT CMBPW YES-ALL PUTS ARE PUT WAITS. SLB 02570000
.S0400 ANOP 02580000
TBF PLOPM(,PL),OP$SYS USER REQUEST, AND B 02590000
CLI PLOPC(,PL),OPMSG LESS THAN MESSAGE LEVEL PUT ? B 02600000
JC CMBSOP,ANY+FALSE+HI+EQ NO- SKIP SET TO WAIT OP . B 02610000
.S0500 ANOP 02620000
CMBPW EQU * * LOCAL 02630000
SBF PL$OPM(,PL),OPNOW MAKE OPERATION A WAIT 02640000
SPACE 2 02650000
******************************************************************* B 02660000
* REJECT INVALID BSCA OPERATION REQUEST SEQUENCES. * B 02670000
******************************************************************* B 02680000
SPACE 1 02690000
CMBSOP EQU * * LOCAL B 02700000
* XR1 CONTAINS ADDRESS OF PARM LIST TO BE SCHEDULED. B 02702000
SPACE 02704000
* ------------------------------ START @18 02704400
TBN $BDDEV(,DTF),BSCA BSCA LINE ? B 02704800
BF CMBSOX NO-GO TO END OF BSCA OP CHECK B 02705200
* ------------------------------ END --@18 02705600
B CMTASV GO SET UP TAS SAVE AREAS. B 02706000
SPACE 02708000
MNN CMTOPT+1,LCBOPC(,DTF) USE LAST OP ON LINE FOR CHECK. B 02710000
SBF CMTOPT+1,OPNOW SET OFF NO WAIT BIT. B 02720000
MVC CMTOP2+1(1),CMTOPT+1 SET UP TEST FOR BUSY CHECK. B 02730000
AIF (&NSWL).S0200 02740000
&MIX SETA &NMP+&NPP+&NCS 02750000
AIF (&MIX EQ '3').S0150 02760000
TBN $BDATR(,DTF),$BCSWI SWITCHED, AND SLB 02770000
TBF $BDATR(,DTF),$BCMPT * NOT MULTI-POINT ? SLB 02780000
JF CMBACT NO-GO CHECK FOR LINE ACTIVE. SLB 02790000
.S0150 ANOP 02800000
SPACE 1 02810000
*------------------------------------------------------------------* SB 02820000
* SWITCHED * SB 02830000
*------------------------------------------------------------------* SB 02840000
SPACE 1 02850000
TBN PLOPM(,PL),OP$SYS SYSTEM SB 02860000
TBN PLOPC(,PL),OPPUT * PUT TO SB 02870000
CLC PLTUBA(2,PL),LCBOWN(,DTF) * NON-CONNECTED LINE ? SB 02880000
JC CMBSII,FLSOEQ NO-GO CHECK FOR SYSTEM II. SB 02890000
SBF PL$OPM(,PL),OPPUT SET OFF PUT OPERATION. SB 02900000
* ------------------------------ START @18 02902000
SBF LCBAT2(,DTF),LCBPUT SET PUT OPERATION IND OFF SB 02904000
SBN PL$OPM(,PL),OPNOW SET NO WAIT IND FOR POST SB 02906000
* ------------------------------ END --@18 02908000
TBN PLOPC(,PL),OPGET GET OPERATION ALSO REQUESTED. SB 02910000
BF CMPAII NO-GO POST COMPLETION. SB 02920000
SBN PL$OPM(,PL),OPINV SET ON INVITE OP CODE BITS. SB 02930000
CMBSII EQU * * LOCAL SB 02940000
TBN PLOPM(,PL),OP$SYS SYSTEM SB 02950000
TBN PL$OPM(,PL),OPINV * INVITE INPUT OP ? SB 02960000
JF CMBENB NO-GO CHECK ENABLED STATUS. SB 02970000
* ------------------------------ START @18 02971000
TBN PLOPC(,PL),OPJRSH OPERATION TO RESCHEDULE ONLY? SB 02972000
JF CMBNJR NO-CONTINUE OP CHECKING SB 02973000
TBF LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 02974000
BT CMBSCH NO-GO TO RESCHEDULE SB 02975000
B CMPAII GO TO POST REQUEST SB 02976000
CMBNJR EQU * * LOCAL SB 02977000
* ------------------------------ END --@18 02978000
L PLTUBA(,PL),XR2 POINT TO THE TUB. SB 02980000
TBN TUBCHR(,XR2),TUBCMN COMMAND CAPABLE TERMINAL ? SB 02990000
JT CMBRLD YES-GO CHECK ENABLED STATUS. SB 03000000
SBF TUBAT2(,XR2),TUBIIS SET OFF INVITE SCHEDULED. SB 03010000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 03020000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 03030000
BT CMPAII YES-GO POST REQUEST RESULTS. SB 03040000
B CMBSCH GO TO RESCHEDULE THE LINE. SB 03050000
SPACE 1 03060000
CMBRLD EQU * * LOCAL SB 03070000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 03080000
CMBENB EQU * * LOCAL SB 03090000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 03100000
JF CMBSOX NO-GO TO END OF BSCA OP CHECK.SB 03110000
CLC PLTUBA(2,PL),LCBOWN(,DTF) THIS TUB CONNECTED ON LINE ? SB 03120000
JNE CMBCNT NO-GO CHECK CONNECTION TYPE. SB 03130000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE WITH DATA ? SB 03140000
JF CMBSOX NO - FREE TO BE USED. SB 03150000
TBN PLOPC(,PL),OPPUT PUT TO HANDLE AND, SB 03154100
TBN LCBAT2(,DTF),LCBRCI * INITIAL RECEIVE ON LINE ? SB 03160000
BT CMBSOX YES - ACCEPT THE REQUEST. THE SB 03170000
* * ONLY WAY A PUT COULD GET SB 03180000
* * THRU TO CM WOULD BE A SYS SB 03190000
* * OLT TO CPU. CANCEL RECV. SB 03200000
J CMTOPT NO- GO CHECK OP CODE MATCH. SB 03210000
SPACE 1 03220000
CMBCNT EQU * * LOCAL SB 03230000
TBN PLOPM(,PL),OP$SYS SYSTEM REQUEST ? SB 03240000
JT CMBSOX YES-GO TO END OF BSCA OP CHK. SB 03250000
L PLTUBA(,PL),TUB POINT TO THE NEW REQUEST TUB. SB 03260000
L LCBOWN(,DTF),XR2 POINT TO ACTIVE TUB. SB 03270000
TBF TUBTA1(,TUB),TASCNC BOTH SB 03280000
TBF TUBTA1(,XR2),TASCNC * ANSWER ? SB 03290000
TBF TUBTA2(,TUB),TASVFY BOTH SB 03300000
TBF TUBTA2(,XR2),TASVFY * VERIFY ID'S ? SB 03310000
L TUBDTF(,TUB),DTF POINT TO THE DTF. SB 03320000
L CMSPL,PL POINT TO THE PARM LIST. SB 03330000
JF CMTREJ NO-GO REJECT LAST OP REQUEST. SB 03340000
J CMBSOX GO TO END OF BSCA OP CHECK. SB 03350000
SPACE 03360000
*------------------------------------------------------------------* SB 03370000
* NON - SWITCHED * SB 03380000
*------------------------------------------------------------------* SB 03390000
SPACE 1 03400000
AIF (&MIX EQ '3').S0250 03410000
CMBACT EQU * * LOCAL SB 03420000
.S0200 ANOP 03430000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE WITH DATA ? B 03440000
JF CMBSOX NO-GO TO END OF BSCA OP CHECK. B 03450000
SPACE 1 03460000
* LINE ACTIVE B 03470000
SPACE 1 03480000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ? B 03490000
JT CMBSOX YES-TREAT LIKE LINE NOT ACTIVE.B 03500000
L PLTUBA(,PL),TUB LOAD TUB @ INTO REG. B 03510000
CLC TUBTCB(2,TUB),LCBOWN(,DTF) THIS TASK OWN THE LINE ? B 03520000
L CMSPL,PL RELOAD PARM LIST REG. B 03530000
JNE CMBSOX NO-NO OP CONFLICT, SKIP CHECKS.B 03540000
SPACE 1 03550000
* ACCEPT THE OPERATION IF AN INVITE OR PUT-NO-WAIT MESSAGE. B 03560000
SPACE 1 03570000
CLI PLOPC(,PL),OPINV INVITE INPUT ? B 03580000
TBF PLOPM(,PL),OP$SYS * OR SYSTEM REQUEST ? B 03590000
JC CMBSOX,FLSOEQ YES-OP OK, SKIP OTHER CHECKS. B 03600000
TBN PLOPC(,PL),OPMSG+OPPNW PUT-NO WAIT/MESSAGE, AND B 03610000
TBN PL$OPM(,PL),OPPNW * STILL A PUT-NO WAIT ? B 03620000
JT CMBSOX YES-ACCEPT THE OPERATION. B 03630000
SPACE 1 03640000
* ACCEPT THE OPERATION IF THE CURRENT LINE OP IS INVITE-MESSAGE, OR B 03650000
* PUT-NO-WAIT-MESSAGE. B 03660000
SPACE 1 03670000
TBN LCBOPC(,DTF),OPINV INVITE OP ON LINE, AND B 03680000
TBN SAVTA2,TASMSG * IS IT MESSAGE MODE ? B 03690000
JT CMBSOX YES-ACCEPT THIS OP REQUEST. B 03700000
TBF LCBAT1(,DTF),LCBNTQ PARM LIST QUEUED, AND B 03710000
L LCBPL@(,DTF),XR2 POINT TO CURRENT PARM LIST. B 03720000
TBN PLOPC(,XR2),OPPNW+OPMSG * IS IT A PUT-NO-WAIT-MESSAGE ?B 03730000
JT CMBSOX YES-ACCEPT THIS OP REQUEST. B 03740000
* ---------------------------- START --@27 03741000
TBF PL$OPC(,XR2),OPRFSH NOT ACTIVE WAITING REFRESH OR B 03744000
TBF PLOPM(,XR2),OP$SYS NOT A SYSTEM REQUEST ? B 03745000
JF CMBSOX YES-ACCEPT THIS OP REQUEST B 03746000
* ------------------------------ END --@27 03747000
L PLTUBA(,PL),XR2 POINT TO THE TUB. B 03750000
TBN TUBAT2(,XR2),TUBOWN THIS TUB OWN THE LINE, AND B 03760000
L TUBDTF(,XR2),DTF POINT TO THE DTF. B 03770000
.S0250 ANOP 03780000
SPACE 1 03790000
* LINE ACTIVE WITH SAME TERMINAL AS THIS OP IS FOR - ONLY OK IF B 03800000
* THIS IS ANOTHER SUCH OPERATION ( E.G. PUT BLOCK, GET BLOCK) B 03810000
SPACE 1 03820000
CMTOPT EQU * * LOCAL AND MODIFICATION B 03830000
TBN PL$OPM(,PL),# SAME TYPE OP AS LAST TIME ? B 03840000
JT CMBSOX YES-GO CONTINUE,PARM LIST OK. B 03850000
SPACE 1 03860000
****************************************************************** 03870000
* SET REJECTED OPERATION COMPLETION RETURN CODE, ALSO GO TO DEQ IT. 03880000
****************************************************************** 03890000
SPACE 1 03900000
CMTREJ EQU * * LOCAL B 03910000
* * XR1-PL,XR2-DTF FOR BR B 03920000
SVC 0 ##### TRANSIENT CALL ##### B 03930000
DC AL1(CCPRIB) CCP SVC RIB B 03940000
DC AL1(CC4BR) * BSCA REJECT CLEAN-UP. B 03950000
BLANKC DC XL1'40' CONSTANT OF A BLANK, B 03960000
* AND, INLINE PARM VALUE FOR B 03970000
* REJECT PARM LIST NOT Q'D. B 03980000
SBF CMSWIT,CMTPRQ TURN OFF TP REQUEST SWITCH. B 03990000
B CMREDO PREPARE TO RESCHEDULE B 04000000
SPACE 2 04010000
******************************************************************* B 04020000
* REQUEST ACCEPTED * B 04030000
******************************************************************* B 04040000
SPACE 04050000
CMBSOX EQU * * B 04060000
AIF (&NDF).B0075 04070000
L PLTUBA(,PL),XR2 ADDRESS OF TUB FB 04080000
TBN TUBTA1(,XR2),TASDFF IS IT A DFF REQUEST FB 04090000
TBF PLOPM(,PL),OP$SYS AND A USER REQUEST FB 04100000
TBF PLRECA-1(,PL),ALLBIT AND GETMAIN NOT DONE YET FB 04110000
* * (HAVE NOT BEEN TO DFF YET) FB 04120000
TBN PLOPC(,PL),OPPUT * AND A PUT OR COPY,THEN THIS FB 04130000
* * REQUEST MUST GO TO DFF FOR FB 04140000
* * DATA FORMATING. FB 04150000
JF CMQIT NO - GO QUEUE REQUEST. FB 04160000
SBF CMSWIT,CMTPRQ NEW REQUEST PROCESSING DONE FB 04170000
SPACE 1 04171000
* IF CURRENT LARGEST SIZE TP BUFF IS NOT BIG ENOUGH TO DO THE 04173000
* DFF PUT THEN DECREMENT PLOUTL UNTIL IT IS OR UNTIL IT IS ZERO 04174000
SPACE 1 04175000
CMGMMV EQU * * 04176000
MVC GMLIST+GMSIZE(2),PLOUTL(,PL) LENGTH OF RECORD AREA FB 04180000
ALC GMLIST+GMSIZE(2),X$0004 ADD 4 FOR FREEMAIN LIST FB 04190000
CLC #GMS+1(2),GMLIST+GMSIZE ENOUGH CORE? FB 04190400
JNL CMGMCR YES-GO DO GETMAIN FB 04190800
SBF PLOUTL(,PL),ALLBIT MAKE LNGTH=256 INCREMENT FB 04191200
TBF #GMS+1,FC GREATER THAN 3? FB 04191600
JF CMGMCK YES-JUMP FB 04192000
CMGMAG EQU * * FB 04192400
SLC PLOUTL-1(1,PL),X$0001 DECREMENT BY 256 FB 04192800
JL CMROUT PLOUTL < 256 - JUMP FB 04193200
CMGMCK EQU * * FB 04193600
CLI PLOUTL-1(,PL),HEX512 OUTL LESS THAN 512? FB 04194000
JL CMROUT YES-JUMP FB 04194400
CLC #GMS+1,PLOUTL(2,PL) ENOUGH CORE NOW? FB 04194800
BNH CMGMAG NO-GO AGAIN FB 04195200
B CMGMMV YES-GO DO GETMAIN FB 04195600
CMROUT EQU * * FB 04196000
MVC PLOUTL(2,PL),GMLIST+GMSIZE RESTORE ORIGINAL- FB 04196400
SLC PLOUTL(2,PL),X$0004 LENGTH OF OUTL FB 04196800
CMGMCR EQU * * FB 04197200
SBN $FLGC,#PUTTP SET IND.-GET FROM ANYWHERE 04197600
B CMGMRT GETMAIN HOLD BUFFER FB 04200000
JNOL CMDFFP IF GETMAIN SUCCESSFUL,POST DF.FB 04210000
SBN PL$OPM(,PL),OPGETQ GETMAIN NEEDED TO QUEUE REQ . FB 04220000
J CMQIT QUEUE TEMPORARILY TO WAIT. FB 04230000
SPACE 1 04240000
CMDFFP EQU * * LOCAL FB 04250000
MVC PLRECA(2,PL),GMLIST+GMADDR @ OF GETMAINED BUFF INTO PL FB 04260000
ALC PLRECA(2,PL),X$0004 BYPASS FREEMAIN LIST FB 04270000
SPACE 1 04280000
* USER PUT MESSAGE TO DFF TERMINAL - QUEUE FOR DFF TASK FB 04290000
SPACE 1 04300000
B CMDFFQ GO QUEUE FOR DFF AND POST FB 04310000
B CMREDO GO SEE IF LINE NEEDS SCHED FB 04320000
.B0075 ANOP 04330000
SPACE 1 04340000
******************************************************************* B 04350000
* QUEUE THE REQUEST (NON- DFF) * B 04360000
******************************************************************* B 04370000
SPACE 04380000
AIF (&NDF).B0080 04390000
CMQIT EQU * * QUEUE NEW REQUEST FB 04400000
SPACE 04410000
.B0080 ANOP 04420000
B CMQUE QUEUE REQUEST ON LINE QUEUE 04430000
SPACE 04440000
MNN PL$OPC(,PL),PL$OPM(,PL) SAVE INTERNAL OP CODE. B 04450000
TBN PLOPC(,PL),OPPUT PUT OPERATION ? B 04450100
JF CMBTBY NO-SKIP SETTING PUT PENDING. B 04450200
L CMSDTF,DTF XR2 --> DTF B 04450250
SBN LCBAT2(,DTF),LCBPUT SET IND. PUT PENDING Q'D. B 04450300
TITLE '$E080/CMBREQ---BSCA NEW REQUEST---LINE BUSY CHECK' B 04460000
******************************************************************* B 04470000
* CHECK THE TP LINE AND SEE IF IT IS BUSY * B 04480000
******************************************************************* B 04490000
SPACE 04500000
CMBTBY EQU * * ( FROM CMRQBF, CMFRMN) B 04510000
AIF (&NSWL).S0700 04520000
SPACE 1 04530000
* IF SWITCHED BSCA, AND A USER OWNS THE LINE, THEN JUST Q SYSTEM SB 04540000
* REQUESTS. SB 04550000
SPACE 1 04560000
L PLTUBA(,PL),XR2 TUB ADDRESS SB 04570000
AIF (&MIX EQ '3').S0600 04580000
TBN TUBAT1(,XR2),TUBSWC SWITCHED LINE ? SLB 04590000
JF CMBTAC NO-GO CHECK ACT STATUS. SLB 04600000
.S0600 ANOP 04610000
TBN PLOPM(,PL),OP$SYS SYSTEM REQUEST ? SB 04620000
JF CMBTAC NO-GO CHECK ACT STATUS. SB 04630000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 04640000
CLC LCBTCB(2,DTF),X$0000 SWITCHED LINE UNOWNED ? SB 04650000
JE CMBTAC YES-GO CHECK ACT STATUS. SB 04660000
CLC LCBTCB(2,DTF),@CPTCB CP OWN THE LINE ? SB 04670000
JE CMBTAC YES-GO CHECK ACT STATUS. SB 04680000
* -----START-------------------@18 04682000
CLC LCBOWN(2,DTF),PLTUBA(,PL) THIS TERMINAL OWN THE LINE ? SB 04684000
JE CMBTAC YES - RESCEDULE THE OPERATION SB 04686000
* -----END---------------------@18 04688000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 04690000
BT CMPAII YES-GO POST OP ACCEPTED. SB 04700000
B CMBSCH GO TO RESCHEDULE THE LINE. SB 04710000
.S0700 ANOP 04720000
SPACE 1 04730000
* IF LINE IS NOT ACT WE CAN START AN OPERATION NOW - ELSE WILL HAVE TO 04740000
* WAIT FOR AN OP END BEFORE RESCHEDULING THE LINE 04750000
SPACE 04760000
CMBTAC EQU * * LOCAL B 04770000
L CMSDTF,DTF POINT XR2 AT LCB B 04810000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE ? B 04820000
JF CMBSCH NO-GO SCHEDULE WORK ON LINE. B 04830000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ON LINE ? B 04840000
JF CMTPLQ NO-GO CHECK PARM LIST Q'D. B 04850000
TBN PL$OPM(,PL),OPPUT THIS A PUT REQUEST ? B 04860000
JT CMTRYC YES-GO TO TRY PRIORITY CANCEL. B 04870000
SPACE 1 04880000
******************************************************************* B 04890000
* READ REQUEST - LINE BUSY WITH RECEIVE INITIAL * B 04900000
******************************************************************* B 04910000
SPACE 04920000
ST CMSPL,PL SAVE PARM LIST ADDR B 04926000
B CMIVGM GO ASSURE SIZE FOR NEW READ. B 04930000
SPACE 04940000
L CMSPL,PL POINT TO PARM LIST B 04941000
TBN PL$OPM(,PL),OPGETM GETMAIN ALREADY INDICATED ? B 04942000
JT CMNOID YES - DON'T START 2 SEC T.O. B 04943000
L $BDWKA(,DTF),WKA XR1--> BSC WORK AREA B 04944000
TBN $BWKMC(,WKA),X'01' IDA RUNNING NOW ? B 04945000
JT CMTRYC YES - GO TRY PROIRITY CANCEL B 04946000
CMNOID EQU * * B 04947000
B CMPAII GO TO POST RESULTS. B 04950000
SPACE 1 04960000
******************************************************************* B 04970000
* LINE BUSY WITH NON-RECEIVE INITIAL * B 04980000
******************************************************************* B 04990000
SPACE 05000000
CMTPLQ EQU * * LOCAL B 05010000
TBN LCBAT1(,DTF),LCBNTQ PARM LIST NOT QUEUED, AND B 05020000
L PLTUBA(,PL),XR2 POINT TO THE TUB. B 05030000
TBN TUBAT2(,XR2),TUBOWN * THIS REQUEST FOR LINE OWNER? B 05040000
L TUBDTF(,XR2),DTF POINT TO THE DTF. B 05050000
CMTOP2 TBN PL$OPM(,PL),# SAME OP AS ON THE LINE ? B 05060000
JF CMBBSY NO-GO TO CHECK LINE FOR BUSY. B 05070000
SPACE 1 05080000
*-----------------------------------------------------------------* B 05090000
* ANOTHER BLOCK OR RECORD OPERATION TO THE OWNED TERMINAL. * B 05100000
* IF A READ JUST GO SCHEDULE IT ON THE LINE (POLL IT). * B 05110000
*-----------------------------------------------------------------* B 05120000
SPACE 1 05130000
SBF LCBAT1(,DTF),LCBNTQ PARM LIST IS BACK IN QUE. B 05140000
TBN PL$OPM(,PL),OPGET IF A READ B 05150000
* -----START-------------------@25 05150300
JF CMNNGT GO DO PUT OPERATION B 05150600
TBN LCBAT1(,DTF),LCBINT OP END WITH NO PARM LIST QUE'D B 05150650
SBF LCBAT1(,DTF),LCBINT SET OFF OP END QUE'D IND. B 05150700
JF CMNPLQ NO-DON'T FAKE AN OP END. B 05150750
ALC #OPEND(1),X$0001 UP OP END COUNT BY ONE. B 05150800
ALC LCBOPE(1,DTF),X$0001 BUMP LINE OP END COUNT. B 05150850
CMNPLQ EQU * * LOCAL. B 05150900
CLI PLRECA-1(,PL),NOBIT GETMAIN NEEDED ? B 05151000
JNE CMNOBY GO SCHEDULE GET OPERATION. B 05153000
* -----END---------------------@25 05154500
CMNYGM EQU * * LOCAL B 05155000
ST CMSPL,PL SAVE PARM LIST ADDR B 05156000
B CMIVGM GO ASSURE SIZE FOR NEW GET. B 05157000
SPACE 05158000
L CMSPL,PL POINT TO PARM LIST B 05159000
J CMNOBY GO SCHEDULE GET OPERATION. B 05160000
CMNNGT EQU * * LOCAL B 05165000
SPACE 1 05170000
*-----------------------------------------------------------------* B 05180000
* ANOTHER PUT BLOCK OR RECORD - GETMAIN AND START OPERATION * B 05190000
*-----------------------------------------------------------------* B 05200000
SPACE 05210000
L PLTUBA(,PL),XR2 TUB ADDRESS B 05220000
TBN TUBTA1(,XR2),TASDFF IF DFF SKIP GETMAIN B 05230000
JT CMNOBY YES - ALREADY HAVE BUFFER B 05240000
TBN PL$OPM(,PL),OPNOW IF NO WAIT B 05250000
JT CMNOBY YES - ALREADY HAVE BUFFER B 05260000
SPACE 1 05270000
B CMGMPT GETMAIN BUFFER, MOVE DATA IN B 05280000
SPACE 05290000
J CMNOBY GO START OPERATION B 05300000
SPACE 3 05310000
******************************************************************** B 05320000
* BSCA TP LINE BUSY - DETERMINE IF ABORT NEEDED * B 05330000
******************************************************************** B 05340000
SPACE 05350000
* LINE IS BUSY AND MAY HAVE MORE HONORABLE REQUEST WAITING IN THE Q B 05360000
SPACE 05370000
* IF PREVIOUS OP WAS READ - TRY TO ABORT B 05380000
* DON'T CARE IF STARTED OR NOT BECAUSE RETURN CODE OF 44 OR NON-44 B 05390000
* WILL REFLECT THIS. B 05400000
SPACE 05410000
CMBBSY EQU * * LOCAL B 05420000
TBN LCBAT2(,DTF),LCBRCI+LCBPUT RECEIVE INIT AND PUT PENDING. B 05430000
BF CMPAII NO-GO POST AS NECESSARY. B 05440000
SPACE 05450000
******************************************************************** B 05460000
* PUT REQUEST - LINE BUSY WITH RECEIVE INITIAL - PRIORITY CANCEL B 05470000
******************************************************************** B 05480000
SPACE 05490000
CMTRYC EQU * * 05490400
&MIX SETA &NPP+&NMP+&NSWL 05490800
AIF (&NCS).S0750 05491200
* FOR CONTROL STATION LINES PERFORM THE CANCEL FROM RESIDENT CODE C/LB 05492000
* FOR OTHER LINE TYPES - CALL $CC4BC TO STOP THE LINE C/LB 05492400
SPACE 1 05492800
AIF (&MIX EQ '3').S0760 05493200
TBN $BDATR(,DTF),$BCMCN CONTROL STATION LINE? C/LB 05493600
JF CMNCSL NO-CALL $CC4BC C/LB 05494000
.S0760 ANOP 05494400
TBF LCBAT1(,DTF),LCBCRI+LCBPRI CANCEL ALREADY STARTED? CB 05494800
SBN LCBAT1(,DTF),LCBPRI SET CANCEL STARTED CB 05495200
JF CMGPST YES-JUST GO POST CB 05495600
L $BDWKA(,DTF),WKA XR1--> BSC WORK AREA CB 05496000
AIF (&NBDA).S0761 05496020
* -----START-------------------@16 05496040
TBN $BWKMC(,WKA),X'01' IDA RUNNING NOW ? CB 05496080
JF CMNIDA NO - GO SET CANCEL FOR MLMP CB 05496120
SBN $BPOLD(,WKA),$BPRES SET CANCEL FLAG FOR MLMP CB 05496160
DC XL3'F38806' DO SIO TO START IDA STOP POLL CB 05496200
J CMNODA JUMP OVER CANCEL SETTING CB 05496240
CMNIDA EQU * * CB 05496280
* -----END---------------------@16 05496320
.S0761 ANOP 05496360
SBN $BPOLD(,WKA),$BPRES SET CANCEL FLAG FOR MLMP CB 05496400
CMNODA EQU * * LOCAL CB 05496600
AIF (&MIX EQ '3').S0770 05496800
J CMGPST GO POST CB 05497200
.S0750 ANOP 05497600
AIF (&MIX EQ '3').S0770 05498000
CMNCSL EQU * NOT CONTROL STATION LINE C/LB 05498400
SVC 0 ###### TRANSIENT CALL ##### B 05500000
DC AL1(CCPRIB) CCP SVC RIB B 05510000
DC AL1(CC4BC) CANCEL OPERATION TRANSIENT. B 05520000
DC AL1(OPPUT) REFRESH OP CODE VALUE. B 05530000
* LINKAGE INDICATOR TO 'BC', CALLB 05540000
* IS FROM RESIDENT CODE. B 05550000
* TRANSIENT ONLY RETURNS HERE B 05560000
.S0770 ANOP 05561000
CMGPST EQU * * B 05562000
AIF (&NCS).S0780 05563000
.S0780 ANOP 05565000
B CMPAII GO TO POST USER. B 05570000
.C0470 ANOP 05580000
MEND 05590000