|
|
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: 8382 (0x20be)
Types: s3xseg
Names: »S$E082«
└─⟦d0bc1a931⟧ Bits:30009189 5704-sc1.V08.ccp
└─⟦64693a1c9⟧
└─⟦this⟧ »S$E082«
MACRO 00010000
.********************************************************************** 00020000
.* NAME: $E082 * 00030000
.********************************************************************** 00040000
$E082 00050000
GBLB &NOM,&NSW,&N2741 00060000
TEXT 00070000
* R-06,C-00 CHANGE LEVEL 00080000
AIF (&NOM).MEND 00100000
TITLE '$E082/CMMREQ---NEW MLTA REQUEST HANDLING' 00110000
*********************************************************************** 00120000
* * 00130000
* NAME--CMMREQ - 'ACCEPT NEW MLTA TP REQUESTS' * 00140000
* * 00150000
* FUNCTION--ACCEPT NEW TP PARAMETER LIST FOR MLTA TERMINAL. * 00160000
* PERFORM THE FUNCTION REQUESTED IF IT CAN BE HANDLED * 00170000
* IMMEDIATELY, OTHERWISE, PLACE THE PARAMETER INTO THE * 00180000
* LCB LINE QUEUE OF WORK TO BE DONE. * 00190000
* * 00200000
* OPERATION-- * 00210000
* * 00220000
* . IF THIS IS A DISCONNECT REQUEST, THEN INSURE THAT THE * 00230000
* LINE IS NOT CONNECTED TO THE SPECIFIEC TERMINAL. IF * 00240000
* NO INVITE REQUEST IS INVOLVED, THEN POST TP COMPLETED * 00250000
* TO THE SYSTEM. IF AN INVITE IS INDICATED THEN TREAT * 00260000
* LIKE AN INVITE ONLY REQUEST. * 00270000
* * 00280000
* . IF A PUT OPERATION TO A TERMINAL IN CCP ERP, IGNORE * 00290000
* THE PUT OPERATION. POST THE USER TP COMPLETE IF NO * 00300000
* INPUT OPERATION INDICATED. IF A PUT-THEN-GET TREAT * 00310000
* LIKE A GET/INVITE ONLY OPERATION. * 00320000
* * 00330000
* . IF MLTA ONLINE TEST (OLT) SET UP THE EXECUTION OF THE * 00340000
* MLTA OLT REQUEST. * 00350000
* * 00360000
* . IF A STOP INVITE OR PURGE I/O CALL IN THE MLTA ($CC4PG)* 00370000
* TRANSIENT. ON RETURN FROM THIS TRANSIENT DO * 00380000
* WINDUP OPERATIONS OF SCHEDULING TP REQUEST. * 00390000
* * 00400000
* . IF A TP REQUEST THAT REQUIRES DATA TRANSFER, THEN QUEUE* 00410000
* THE REQUEST ONTO THE LINE QUEUE FOR THE APPROPRIATE * 00420000
* LCB. * 00430000
* * 00440000
* . AFTER QUEUEING UP A NEW TP REQUEST, CHECK THE STATUS * 00450000
* OF LINE TO: * 00460000
* - INCLUDE A NEW GET/INVITE IF POLLING IS ALREADY * 00470000
* GOING ON. * 00480000
* - STOP A POLLING SEQUENCE IF A PUT REQUEST WAS * 00490000
* JUST RECEIVED. * 00500000
* * 00510000
* . EXIT TO THE RESCHEDULE LOGIC TO: * 00520000
* - POST COMPLETION OF THE TP SCHEDULED OPERATION. * 00530000
* - TO PERFORM THE NEXT PRIORITY ACTION ON THE LINE. * 00540000
* - TO CHECK FOR OTHER WORK WITHIN 'CM' THAT CAN BE DONE * 00550000
* AT THIS TIME. * 00560000
* * 00570000
* ENTRY POINTS- CMMREQ: HANDLE NEW MLTA TP REQUESTS. * 00580000
* CMMTBY: TEST LINE BUSY FOR RESCHEDULING. * 00590000
* * 00600000
* INPUT-- * 00610000
* XR1 - ADDRESS OF TP REQUEST PARAMETER LIST. * 00620000
* XR2 - ADDRESS OF THE LCB(DTF) FOR THIS REQUEST. * 00630000
* * 00640000
* OUTPUT-- * 00650000
* CMSPL - ADDRESS OF THE TP REQUEST LAST PLACED INTO THE * 00660000
* LINE QUEUE. * 00670000
* CMSDTF - ADDRESS OF THE LINE DTF FOR THE LAST TP REQUEST * 00680000
* SCHEDULED. * 00690000
* * 00700000
* EXTERNAL REFERENCES-- * 00710000
* $CC4T1 - TRANSIENT TO HANDLE MLTA OLT REQUEST. * 00730000
* $CC4PG - TRANSIENT TO HANDLE MLTA STOP II/PURGE I/O. * 00740000
* MLTIO1 - MLTA IOCS SIO ROUTINE. * 00750000
* $TRACE - CCP TRACE ROUTINE. * 00760000
* CMERPC - INTERFACE TO IGNORE A PUT TO A TERMINAL IN CCP ERP.* 00760100
* CMQUE - QUEUE NEW TP REQUEST TO LCB LINE QUEUE. * 00790000
* * 00800000
* EXIT, NORMAL--TO CMPAII - POST DISCONNECTED OPERATION COMPLETED. * 00810000
* TO CMMSCH - RESCHEDULE A MLTA LINE. * 00820000
* TO CMMTBY - TEST MLTA LINE BUSY BEFORE RESCHEDULING. * 00830000
* TO CMRQBF - RESET TP REQUEST BITS. * 00840000
* * 00850000
*********************************************************************** 00860000
EJECT 00870000
CMMREQ EQU * * < ENTRY POINT > M 00880000
TBN PLOPC(,XR1),OPPUT+OPGET IS OP A PUT THEN GET M 00890000
AIF (&NSW).S0100 00900000
JT CMPTG JUMP IF PUT THEN GET SM 00910000
SPACE 00920000
****************************************************************** SM 00930000
* DISCONNECT MLTA SWITCHED LINE IF REQUESTED TO THE CURRENT TUB * SM 00940000
****************************************************************** SM 00950000
* HAVE PUT ONLY OPERATION TO A TERMINAL. SM 00960000
* IF IT IS PUT DISCONNECT TO NON-CONNECTED LINE, TREAT AS IF IT SM 00970000
* WORKED. SM 00980000
SPACE 00990000
TBN PLOPM(,XR1),OPDISC IS IT PUT DISCONNECT SM 01000000
TBF $MDAT2(,XR2),$MABSY CHECK LINE NOT BUSY SM 01010000
TBF LCBATR(,XR2),LCBNIT TEST LINE NOT CONNECTED SM 01020000
JF CMOPST JUMP IF NEED TO ISSUE OP SM 01030000
SPACE 01040000
* HAVE PUT DISCONNECT TO LINE WHICH IS NOT CONNECTED SM 01050000
SPACE 01060000
B CMPAII JUMP TO POST COMPLETE SM 01070000
SPACE 01080000
AGO .S0200 01090000
.S0100 ANOP 01100000
JF CMOPST JUMP IF NOT PUT THEN GET M 01110000
.S0200 ANOP 01120000
SPACE 01130000
****************************************************************** M 01140000
* PUT THEN GET SO SET CURRENT OPERATION TO PUT ONLY * M 01150000
****************************************************************** M 01160000
SPACE 01170000
CMPTG EQU * * LOCAL. M 01180000
SBF PL$OPM(,XR1),OPGET SET OFF GET BIT M 01190000
SPACE 01200000
CMOPST EQU * * LOCAL M 01210000
SPACE 01220000
******************************************************************* M 01230000
* IF PUT TO TERMINAL IN CCP ERP - IGNORE THE PUT. * M 01240000
******************************************************************* M 01250000
SPACE 01260000
B CMERPC GO CHECK FOR AND HANDLE PUT M 01270000
* * TO TERMINAL IN ERP. M 01280000
* IF TERMINAL IS IN ERP AND OP WAS A PUT ONLY, CMERPC WILL GO M 01290000
* DIRECTLY TO CMPAII. IF IN ERP AND OP WAS A PUT THEN GET M 01300000
* CMERPC RETURNS HERE TO SCHEDULE GET. M 01310000
EJECT 01320000
TBN PLOPM(,XR1),OPOLT IS IT OLT REQUEST M 01330000
JF CMSTML JUMP IF NOT OLT M 01340000
SPACE 01350000
******************************************************************* M 01360000
* ONLINE TEST REQUEST TO MLTA TERMINAL * M 01370000
******************************************************************* M 01380000
SPACE 01390000
* THIS TRANSIENT WILL PLUG THE TUB AND LCB M 01400000
SPACE 01410000
SVC 0 ##### TRANSIENT CALL ###### M 01420000
DC AL1(CCPRIB) CCP SVC RIB. M 01430000
DC AL1(CC4T1) HANDLE ONLINE TEST PARM LIST M 01440000
SPACE 01450000
J CMMTBY GO TO TEST LINE BUSY M 01460000
SPACE 2 01470000
CMSTML EQU * * LOCAL M 01480000
TBN PLOPM(,XR1),OPSTOP IS STOP BIT ON M 01490000
JF CMMINV NO-MOVE PL M 01500000
SPACE 1 01510000
******************************************************************** M 01520000
* STOP INVITE INPUT, OR SYSTEM PURGE I/O. * M 01530000
******************************************************************** M 01540000
SPACE 1 01550000
SVC 0 ###### TRANSIENT CALL ###### M 01560000
DC AL1(CCPRIB) CCP SVC RIB. M 01570000
DC AL1(CC4PG) MLTA PURGE I/O TRANSIENT M 01580000
SPACE 01590000
B CMRQBF BR TO SET TP REQUEST BITS OFF M 01600000
EJECT 01610000
**********************************************************************M 01620000
* IF THIS OPERATION IS TO A TUB IN CCP ERP, THEN CANNOT HAVE A PUT M 01630000
* PUT THAT WILL BE SCHEDULED. M 01640000
**********************************************************************M 01650000
SPACE 01660000
CMMINV EQU * * LOCAL M 01670000
TBN TUBAT3(,XR2),TUBERP IS TUB IN CCP ERP M 01680000
L TUBDTF(,XR2),XR2 POINT XR2 AT THE DTF M 01690000
JT CMPNWX JUMP IF IN CCP ERP. M 01700000
SPACE 01710000
TBN PL$OPM(,XR1),OPPNW IS IT PUT NO WAIT 01720000
JF CMPNWX IF NOT JUMP TO END OF PNW CHECK. 01730000
TBF PLOPM(,XR1),OP$SYS IS IT USER REQUEST M 01740000
CLI LCBOLT(,XR2),NOBIT CHECK FOR NO ONLINE TEST M 01750000
JC CMPNWX,ANY+FALSE+EQ JUMP-NOT USER PNW WITH OLT Q'D.M 01760000
SBF PL$OPM(,XR1),OPNOW MAKE OPERATION A WAIT 01770000
CMPNWX EQU * * LOCAL 01780000
SPACE 01790000
B CMQUE QUEUE THE TP REQUEST. 01800000
EJECT 01810000
******************************************************************* M 01820000
* MLTA LINE BUSY CHECK * M 01830000
******************************************************************* M 01840000
SPACE 01850000
CMMTBY EQU * * < ENTRY POINT > M 01860000
L CMSDTF,XR2 ADDR OF LCB TO XR2 M 01870000
TBN $MDAT2(,XR2),$MABSY TEST LINE BUSY BIT M 01880000
BF CMMSCH RESCHEDULE THE LINE M 01890000
SPACE 01900000
******************************************************************* M 01910000
* MLTA LINE BUSY * M 01920000
******************************************************************* M 01930000
SPACE 01940000
TBN $MDOPC(,XR2),MLREAD IS BUSY OP A READ M 01950000
AIF (&N2741).T0100 01960000
CLI $MDTTP(,XR2),ML2741 IS THIS 2741 4M 01970000
BC CMPAII,ANY+FALSE+EQ JUMP IF NOT READ OR IF 2741 4M 01980000
AGO .T0200 01990000
.T0100 ANOP 02000000
BF CMPAII JUMP IF NOT READ M 02010000
.T0200 ANOP 02020000
SPACE 02030000
* ATTEMPT TO ABORT THE PREVIOUS READ M 02040000
SPACE 02050000
MVI $MDOPC(,XR2),$MCABT MOVE ABORT OP CODE TO DTF M 02060000
B MLTIO1 BR TO MLTA IOCS M 02070000
SPACE 02080000
B CMTRCE CALL M 02090000
DC AL1(CCPRIB) * CCP M 02100000
DC AL1(TRRIB) * TRACE M 02110000
DC AL1(TTMSIO) * FOR MLTA SIO. M 02120000
SPACE 2 02130000
B CMPAII GO EXIT FROM NEW REQUEST. 02140000
.MEND ANOP 02150000
MEND 02160000