|
|
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: 32004 (0x7d04)
Types: s3xseg
Names: »S$E082«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$E082«
MACRO 00010000
.********************************************************************** 00015000
.* NAME: $E082 V-16, M-00. * 00040000
.********************************************************************** 00045000
$E082 00660000
GBLB &ONE,&NOB,&NOM,&NSW,&NPP,&NMP,&NSWL,&NCS,&NDF,&N32 *L00670000
GBLB &BPRT *L00675000
LCLA &MIX 00700000
TEXT 00710000
* R-15,C-00 CHANGE LEVEL 00720000
TITLE '$E082/CMREQ---SCHEDULE-A-TP-REQUEST' 00730000
* PRINTER BUSY FLAG 1/19/78 *L00735000
*********************************************************************** 00740000
* SCHEDULE A TP REQUEST * 00750000
*********************************************************************** 00760000
SPACE 3 00770000
* INPUT IS THE ADDRESS OF THE PARAMETER LIST IN STORAGE LOCATION CC@PRL 00780000
SPACE 00790000
* THE REQUEST IS PUT ON THE LINE QUEUE 00800000
* IF THE LINE IS BUSY - THE ROUTINE EXITS 00810000
* IF THE LINE IS NOT BUSY - THE OPERATION IS STARTED 00820000
SPACE 00830000
CMREQ EQU * HANDLE TP REQUESTS 00840000
SPACE 00850000
* DETERMINE IF POST MASK CONTAINS POST FOR TP REQUEST 00860000
SPACE 00870000
TBN CMPMSK,WPAAII WAS TP REQUESTED POSTED 00880000
BF CMTSOE BRANCH IF FALSE TO TEST FOR 00890000
* MORE WORK TO DO 00900000
SPACE 00910000
* CM HAS BEEN POSTED WITH A TP REQUEST 00920000
* SCHEDULE THE REQUEST 00930000
SPACE 00940000
* FIRST LOAD ADDRESS OF PARAMETER LIST INTO XR1 00950000
SPACE 00960000
L CC@PRL,XR1 XR1 POINTS TO PARM LIST 00970000
CMLTUB EQU * SAVE PARM LIST, LOAD TUB ADDR. 00980000
ST CMSPL,XR1 SAVE THE PARM LIST ADDRESS 00990000
SPACE 01000000
L PLTUBA(,XR1),XR2 POINT XR2 AT THE TUB 01010000
MVC CMSDTF,TUBDTF(2,XR2) SAVE THE DTF/LCB ADDRESS. 01020000
SPACE 01030000
SBN CMSWIT,CMTPRQ SET SWITCH TO INDICATE TP 01040000
* REQUEST IS NOW BEING HANDLED 01050000
TITLE '$E082/CMREQ---FORM-INTERNAL-OP-CODE' 01060000
*********************************************************************** 01070000
* FORM $CC4CM INTERNAL OPERATION CODE * 01080000
*********************************************************************** 01090000
SPACE 01100000
* FORM THE INTERNAL OP CODE AND MODIFIER FROM THE EXTERNAL OP CODE 01110000
* AND MODIFIERS 01120000
SPACE 01130000
SBF PL$OPM(,XR1),ALLBIT SET ALL OP MOD BITS OFF 01140000
MNN PL$OPM(,XR1),PLOPC(,XR1) MOVE LAST 4 BITS OF OP MOD 01150000
AIF (&NSWL).S0100 01160000
TITLE '$E082/CMREQ---DISCONNECT-FOR-SWITCHED-LINES' 01170000
*********************************************************************** 01180000
* DISCONNECT THE SWITCHED LINE IF REQUESTED TO THE CURRENT TUB * 01190000
*********************************************************************** 01200000
SPACE 1 01210000
AIF (&ONE).C0400 01220000
TBN TUBCHR(,XR2),TUBLNE BSCA LINE ? S2 01230000
JF CMOMLT NO-GO HANDLE MLTA IF PRESENT. S2 01240000
.C0400 ANOP 01250000
TBN PLOPM(,PL),OPDISC DISCONNECT ? SB 01260000
JF CMOMLT NO-GO HANDLE PUT-GET OP CODE. SB 01270000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 01280000
SBF PL$OPM(,PL),OPPUT SET OFF PUT OP IND.(INT.) SB 01290000
SPACE 1 01290200
* DETERMINE IF A DISCONNECT SHOULD BE ISSUED SB 01290400
SPACE 1 01290600
* IF SB 01290800
* THIS TERMINAL OWNS THE LINE OR TERMINATION IS THE SB 01291000
* REQUESTOR OR NO OWNER - DISCONNECT THE LINE. SB 01291200
* OTHERWISE - EITHER GO POST COMPLETE OR, IF IT SB 01291400
* IS A PURGE/DISCONNECT, GO HANDLE THE STOP II. SB 01291600
* IF NOT ABOVE AND STOP II ALSO - GO HANDLE STOP II. SB 01291800
* IF NOT ABOVE - POST OP COMPLETE (PUT DISC.) SB 01292000
SPACE 1 01292200
* TUB SB 01292400
CLC LCBOWN(2,DTF),PLTUBA(,PL) THIS OWNING TERMINAL ? SB 01292600
JE CMDCSW YES - DISCONNECT THE LINE SB 01292800
SPACE 1 01293000
* CP OR NO OWNER SB 01293200
CLC LCBTCB(2,DTF),CC@CPT CP OR NO OWNER ? SB 01293400
JNH CMDCSW YES - DISCONNECT THE LINE SB 01293600
SPACE 1 01293800
* PURGE/DISCONNECT SB 01294000
CLI PLOPC(,PL),OPPURG PURGE OPERATION ? SB 01294200
JE CMDCSW YES - DISCONNECT THE LINE SB 01294400
SPACE 1 01294600
CLI LCBOWN-1(,DTF),NOBIT NO OWNER ? 01294660
JE CMDCSW YES - DISCONNECT THE LINE 01294720
* TERMINATION THE OWNER ???? SB 01294800
L PLTUBA(,PL),TUB XR1--> TUB SB 01295000
LA $CCCOM,XR2 XR2--> CCCOM @19 01295100
CLC TUBTCB(2,TUB),@TMTCB(,XR2) THIS TERMINATION ? ------|@19 01295200
L TUBDTF(,XR1),XR2 XR2--> DTF @19 01295300
L CMSPL,PL XR1--> PARM LIST | SB 01295400
JE CMDCSW YES - DISCONNECT THE LINE <-| SB 01295600
SPACE 1 01295800
TBN PL$OPM(,PL),OPGET GET OP ? SB 01296000
JT CMOPST YES - GO HANDLE STOP INVITE SB 01296200
B CMPAII GO POST OP COMPLETE SB 01296400
SPACE 1 01296600
CMDCSW EQU * * SB 01296800
B NCENTR CALL GENERAL ENTRY. SB 01340000
DC AL1(DSMXNT) BRING IN CLOSE TO DISCONNECT. SB 01350000
CMCLOZ DC XL2'0000' C/S OF $$CLOZ. FILL BY STARTUPSB 01360000
DC XL1'02' # OF SECTORS MINUS ONE. SB 01370000
SPACE 1 01380000
B NCENTR CALL GENERAL ENTRY. SB 01390000
DC AL1(DSMXNT) REOPEN THE BSCA DTF JUST CLOSESB 01400000
CMOPEN DC XL2'0000' C/S OF $$OPEN. FILL BY STARTUPSB 01410000
DC XL1'02' # OF SECTORS MINUS ONE. SB 01420000
SPACE 1 01430000
SBF LCBATR(,DTF),LCBNIT SET OFF LINE CONNECTED IND. SB 01440000
SBF LCBAT3(,DTF),LCBENB SET OFF LINE ENABLED IND. SB 01450000
SLC LCBOWN(2,DTF),LCBOWN(,DTF) ZERO OUT TUB OWNING INDICATORSB 01460000
SLC CCOECT,LCBOPE(1,DTF) REMOVE RESIDUAL OP ENDS. SB 01470000
MVI LCBOPE(,DTF),NOBIT ZERO LCB OP END COUNT. SB 01480000
CMODIS EQU * * SB 01490000
TBN PL$OPM(,PL),OPGET GET OPERATION REQUESTED ALSO. SB 01500000
BF CMRSCH NO-GO RESCHEDULE THE LINE. SB 01510000
L PLTUBA(,PL),XR2 RELOAD THE TUB POINTER. SB 01520000
J CMOPST GO TO NEXT OPERATION CHECK. SB 01530000
EJECT 01540000
CMOMLT EQU * * SB 01550000
.S0100 ANOP 01560000
SPACE 01570000
* SET UP PL$OPM WITH THE 1ST OPERATION TO BE SCHEDULED 01580000
* FOR EXAMPLE - A PUT THEN GET RESULTS IN ONLY THE PUT BEING SCHEDULED 01590000
* DURING ITS FIRST ANALYSIS 01600000
SPACE 01610000
TBN PLOPC(,XR1),OPPUT+OPGET IS OP A PUT THEN GET 01620000
AIF (&NOM).M0900 01630000
AIF (&NSW).A5100 01640000
JT CMPTG JUMP IF PUT THEN GET SM 01670000
SPACE 01680000
* HAVE PUT OPERATION TO A TERMINAL SM 01690000
* DETERMINE IF IT IS PUT DISCONNNECT TO A LINE NOT CONNECTED SM 01700000
* IF YES - TREAT OP AS IF IT HAS WORKED SM 01710000
SPACE 01720000
L TUBDTF(,XR2),XR2 POINT XR2 AT THE DTF SM 01730000
AIF (&NOB).C0415 01740000
TBF $BDDEV(,DTF),BSCA MLTA DTF ? S2 01750000
.C0415 ANOP 01760000
TBN PLOPM(,XR1),OPDISC IS IT PUT DISCONNECT SM 01770000
TBF $MDAT2(,XR2),$MABSY CHECK LINE NOT BUSY SM 01780000
TBF LCBATR(,XR2),LCBNIT TEST LINE NOT CONNECTED SM 01790000
L PLTUBA(,XR1),XR2 POINT XR2 BACK AT TUB SM 01820000
JF CMOPST JUMP IF NEED TO ISSUE OP SM 01830000
SPACE 01840000
* HAVE PUT DISCONNECT TO LINE WHICH IS NOT CONNECTED SM 01850000
SPACE 01860000
B CMPAII JUMP TO POST COMPLETE SM 01870000
SPACE 01880000
AGO .A5150 01900000
.A5100 ANOP 01910000
.M0900 ANOP 01920000
JF CMOPST JUMP IF NOT PUT THEN GET 01930000
.A5150 ANOP 01940000
SPACE 01950000
* OP IS PUT THEN GET SO SET CURRENT OPERATION TO PUT ONLY 01960000
SPACE 01970000
CMPTG EQU * HAVE PUT THEN GET OP CODE 01980000
SBF PL$OPM(,XR1),OPGET SET OFF GET BIT 01990000
SPACE 02000000
TITLE '$E082/CMOPST---CHECK-FOR-PUT-TO-TERMINAL-IN-ERP' 02210000
*********************************************************************** 02220000
* CHECK FOR PUT TO TERMINAL IN CCP ERP 02230000
*********************************************************************** 02240000
SPACE 02250000
* ANY PUT ISSUED TO A TERMINAL IN CCP ERP WILL BE IGNORED 02260000
* THIS IS DONE BY CALLING A TRANSIENT TO HANDLE THE PUT 02270000
* HOWEVER IF THE PUT ALSO INVOLVED A READ - THEN THE READ WILL STILL 02280000
* BE SCHEDULED 02290000
SPACE 02300000
CMOPST EQU * 02310000
TBN TUBAT3(,XR2),TUBERP IS TUB IN CCP ERP 02320000
TBN PLOPC(,XR1),OPPUT DOES OP INVOLVE PUT 02330000
TBF PLOPM(,XR1),OPSTOP TEST FOR NOT PURGE OPERATION 02340000
AIF (&NOM).M1010 02350000
JF CMOLT JUMP IF PUT WILL NOT IGNORED. M 02360000
AGO .M1011 02370000
.M1010 JF CMSTPP JUMP IF PUT WILL NOT BE IGNORED 02380000
.M1011 ANOP 02390000
SPACE 02400000
* HAVE PUT OPERATION WHICH IS TO BE IGNORED BECAUSE THE TERMINAL IS 02410000
* IN CCP ERROR RECOVERY 02420000
SPACE 02430000
B $CC4PI BRANCH TO CALL IN TRANSIENT 02440000
DC AL1(CC4MP) TRANSIENT ID 02450000
SPACE 02460000
* IF THE OPERATION INVOLVED A PUT ONLY - THE TRANSIENT WILL RETURN 02470000
* HERE -- THEREFORE BRANCH TO DETERMINE WHETHER A POST IS NEEDED SINCE 02480000
* THERE IS NO OPERATION TO BE QUEUED 02490000
SPACE 02500000
B CMPAII BRANCH TO PERFORM POST CHECK 02510000
SPACE 02520000
* IF THE OPERATION INVOLVED A READ - RETURN FROM THE TRANSIENT IS HERE 02530000
* AND THEREFORE CONTINUE TO DROP THROUGH THE CODE TO SCHEDULE THE READ 02540000
AIF (&NOM).M1025 02550000
TITLE '$E082/CMOLT---CHECK-FOR-MLTA-ONLINE TRST' 02560000
*********************************************************************** 02570000
* CHECK FOR ONLINE TEST REQUEST TO MLTA TERMINAL * 02580000
*********************************************************************** 02590000
SPACE 02600000
CMOLT EQU * M 02610000
SPACE 02620000
* IS IT ONLINE TEST REQUEST M 02630000
SPACE 02640000
AIF (&NOB).C0419 02650000
TBF TUBCHR(,XR2),TUBLNE MLTA DTF ? 2 02660000
.C0419 ANOP 02670000
TBN PLOPM(,XR1),OPOLT IS IT OLT REQUEST M 02680000
JF CMSTPP JUMP IF NOT OLT M 02690000
SPACE 02700000
* THIS TRANSIENT WILL PLUG THE TUB AND LCB M 02710000
SPACE 02720000
B $CC4PI BRANCH TO BRING IN TRANSIENT M 02730000
DC AL1(CC4T1) HANDLE ONLINE TEST PARM LIST M 02740000
SPACE 02750000
* GET DTF ADDRESS AND PLACE IN SAVE AREA M 02760000
* ALSO SAVE THE PARAMETER LIST IN ITS SAVE AREA M 02770000
SPACE 02780000
MVC CMSLCB(2),TUBDTF(,XR2) MOVE DTF ADDR TO SAVE AREA M 02790000
ST CMSPL,XR1 SAVE THE PARM LIST @ M 02800000
B CMTSBY GO TO TEST LINE BUSY M 02810000
.M1025 ANOP 02820000
TITLE '$E082/CMSTPP---CHECK-FOR-STOP-TP' 02830000
*********************************************************************** 02840000
* STOP INVITE INPUT, OR SYSTEM PURGE I/O. * 02850000
*********************************************************************** 02860000
SPACE 02870000
CMSTPP EQU * TEST FOR STOP POLLING REQUEST 02880000
TBN PLOPM(,XR1),OPSTOP IS STOP BIT ON 02890000
AIF (&NDF).B0050 02900000
JF CMDFF NO-GO CHECK FOR DFF GET OP. FB 02910000
AGO .B0200 02920000
.B0050 ANOP 02930000
JF CMTMTB JUMP IF NOT STOP REQUEST 02940000
.B0200 ANOP 02950000
SPACE 02960000
* HAVE STOP POLLING REQUEST WHICH IS TO BE HONORED NOW 02970000
SPACE 02980000
AIF (&ONE).D0310 02990000
TBN TUBCHR(,XR2),TUBLNE BSCA LINE ? 2 03000000
JF CMSTML NO-GO HANDLE THE MLTS. 2 03010000
.D0310 ANOP 03020000
AIF (&NOB).D0311 03030000
LA 0(,PL),XR2 LOAD PL @ INTO XR2 FOR XIENT. B 03040000
&MIX SETA &NCS+&NSWL 03050000
AIF (&MIX EQ '2').S0125 03060000
USING CMBSKP,XR1 03070000
LA CMBSKP,XR1 LOAD @ OF SKIP BIT RTN. C/SB 03080000
MVI CMB#SB(,XR1),SBN2 SET OP TO SET POLL BIT ON. C/SB 03090000
.S0125 B $CC4PI CALL PROGRAM INITIATE RTN. B 03100000
DC AL1(CC4BP) ID FOR BSCA PURGE/STOP INVITE. B 03110000
SPACE 03120000
B CMRQBF GO SET TP REQ'T BITS OFF. B 03130000
SPACE 03140000
CMBSTP EQU * ABORT OF BSCA LINE NEEDED. 03150000
TBN LCBOPC(,DTF),OPPUT ABORT OF A PUT ? B 03160000
BT CMWSET YES-GO SET WRITE EOT. B 03170000
L $BDWKA(,DTF),WKA POINT TO BSCA WORK AREA. B 03180000
MVI WKDEL+4(,WKA),CPURGE SET CCP PURGE RETURN CODE. B 03190000
CMBFWD EQU * * B 03200000
SBN BSFLGD(,WKA),FWDABT SET FORWARD ABORT REQUEST. B 03210000
L WKIOBD(,WKA),IOB POINT TO IOB OUT OF WORK AREA. B 03220000
SBF IOBFLA(,IOB),TDLAY SET OFF TIME DELAY SEQUENCE. B 03230000
L LCBPL@(,DTF),PL POINT XR1 TO PARM LIST @20 03235000
B CMFORM GO TO FORM OP FOR MLMP. B 03240000
SPACE 03250000
AIF (&ONE).D0311 03260000
CMSTML EQU * * 2 03270000
.D0311 ANOP 03280000
AIF (&NOM).M1050 M 03290000
B $CC4PI BRANCH TO BRING IN TRANSIENT M 03300000
DC AL1(CC4PG) MLTA PURGE I/O TRANSIENT M 03310000
SPACE 03320000
B CMRQBF BR TO SET TP REQUEST BITS OFF M 03330000
.M1050 ANOP 03340000
AIF (&NDF).T0500 03350000
TITLE '$E082/CMDFF---CONVERT-DFF-GET-TO-INVITE' 03360000
*********************************************************************** 03370000
* CONVERT A DFF GET OP CODE TO AN INVITE INPUT OP CODE. * 03380000
*********************************************************************** 03390000
SPACE 03400000
* IF DFF GET OPERATION, CHANGE TO LOOK LIKE AN INVITE SO CM WILL FB 03410000
* USE THE HOLD BUFFER FOR THE INPUT. FB 03420000
SPACE 03430000
CMDFF EQU * * FB 03440000
TBF PLOPM(,PL),OPREQR USER REQUEST, AND FB 03450000
TBN PL$OPM(,PL),OPGET * GET OPERATION, AND FB 03460000
TBN TUBTA1(,XR2),TASDFF * DFF SUPPORTED ? FB 03470000
JF CMTMTB NO-GO CHECK MOVE PL TO TUB. FB 03480000
SBN PL$OPM(,PL),OPNOW MAKE LOOK LIKE INVITE. FB 03490000
.T0500 ANOP 03500000
TITLE '$E082/CMTMTB---MOVE-PARM-LIST-TO-TUB' 03510000
*********************************************************************** 03520000
* DETERMINE WHETHER TO MOVE PARM LIST TO THE TUB OR NOT 03530000
*********************************************************************** 03540000
SPACE 03550000
* IF OPERATION INVOLVES AN INVITE INPUT - MOVE THE PARAMETER LIST TO 03560000
* THE TUB 03570000
SPACE 03580000
CMTMTB EQU * TEST WHETHR TO MOVE PARM LIST TO 03590000
* THE TUB 03600000
TBN PLOPC(,XR1),OPIVIN TEST FOR INVITE INPUT 03610000
AIF (&NOB).C0417 03612000
TBF PLOPC(,XR1),OPJRSH AND NOT RESCHED. ONLY 03614000
.C0417 ANOP 03616000
JF CMPNWC JUMP IF NOT INVITE 03620000
SPACE 03630000
* HAVE OPERATION THAT INVOLVES INVITE INPUT - SO MOVE THE PARAMETER 03640000
* LIST TO THE TUB 03650000
SPACE 03660000
CMMTUB EQU * MOVE PARM LIST TO TUB 03670000
SPACE 03680000
* XR1 NOW POINTS TO THE PARM LIST 03690000
* XR2 POINTS AT THE TUB 03700000
SPACE 03710000
MVC TUBTP+PLLEN-1(PLLEN,XR2),PLLEN-1(,XR1) MOVE PLIST TO TUB 03720000
SPACE 03730000
* NOW POINT XR1 AT TUB PARM LIST 03740000
SPACE 03750000
LA TUBTP(,XR2),XR1 POINT XR1 AT TUB PARM LIST 03760000
ST CMSPL,XR1 RESET POINTER TO REQUESTED PLIST 03770000
TITLE '$E082/CMPNWC---PUT-NO-WAIT-GETMAIN-ANALYSIS' 03780000
*********************************************************************** 03790000
* CHECK FOR PUT NO WAIT AND DO GETMAIN IF IT IS PUT NO WAIT * 03800000
*********************************************************************** 03810000
SPACE 03820000
* IF THIS OPERATION IS TO A TUB IN CCP ERP - THEN CANNOT HAVE A PUT 03850000
* THAT WILL BE SCHEDULED 03860000
SPACE 03870000
CMPNWC EQU * PUT NO WAIT CHECK 03875000
TBN TUBAT3(,XR2),TUBERP IS TUB IN CCP ERP 03880000
L TUBDTF(,XR2),XR2 POINT XR2 AT THE DTF 03900000
JT CMPNWX JUMP IF IN CCP ERP. 03920000
AIF (&ONE).C0420 03940000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 03950000
.C0420 ANOP 03960000
AIF (&NOB).C0430 03970000
TBN PLOPC(,PL),OPPUT AND OP A PUT ? B 03980000
JF CMGNOW NO-GO CHECK NO WAIT OP. B 03990000
SBN LCBAT2(,DTF),LCBPUT SET IND. PUT OPERATION Q'D. B 04000000
CMGNOW EQU * * B 04010000
.C0430 ANOP 04020000
SPACE 04030000
TBN PL$OPM(,XR1),OPPNW IS IT PUT NO WAIT 04040000
JF CMPNWX IF NOT JUMP TO END OF PNW CHECK. 04050000
AIF (&ONE).C0440 04060000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 04070000
JF CMGMND NO-GO SETUP FOR GETMAIN TRY. 2 04080000
.C0440 ANOP 04090000
AIF (&NSWL).S0400 04100000
AIF (&MIX EQ '3').S0300 04110000
TBN $BDATR(,DTF),$BCSWI SWITCHED, AND NOT SLB 04120000
TBF $BDATR(,DTF),$BCMPT * MULTI-POINT ? SLB 04130000
JT CMGMNO YES-ALL PUTS ARE PUT WAITS. SLB 04140000
AGO .S0400 04150000
.S0300 J CMGMNO ALL SWITCHED PUTS ARE WAITS. SB 04160000
AGO .S0500 04170000
.S0400 ANOP 04180000
AIF (&NOB).C0450 04190000
TBF PLOPM(,PL),OPREQR USER REQUEST, AND B 04200000
CLI PLOPC(,PL),OPMSG LESS THAN MESSAGE LEVEL PUT ? B 04210000
JC CMGMNO,TRUALO YES-GO TREAT AS PUT-WAIT. B 04220000
.S0500 ANOP 04230000
.C0450 ANOP 04240000
SPACE 04250000
* HAVE PUT NO WAIT FOR WHICH GETMAIN IS NEEDED 04260000
SPACE 04270000
CMGMND EQU * GETMAIN NEEDED 04280000
AIF (&NOM).M1075 04290000
SPACE 04300000
* IF SYSTEM OPERATOR INITIATED ONLINE TEST IS PENDING OR RUNNING ON M 04310000
* THE LINE - CONVERT ANY USER PUT NO WAITS INTO USER PUT WITH WAIT M 04320000
SPACE 04330000
AIF (&NOB).C0452 04340000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 04350000
JT CMGSTR YES-GO FIND STORAGE NEED. 2 04360000
.C0452 ANOP 04370000
TBF PLOPM(,XR1),OPREQR IS IT USER REQUEST M 04380000
CLI LCBOLT(,XR2),NOBIT CHECK FOR NO ONLINE TEST M 04390000
JC CMGMNO,NONE+FALSE+EQ JUMP IF USER PNW WITH OLT Q'D M 04400000
SPACE 04410000
.M1075 ANOP 04420000
SPACE 04430000
* NEED TO BRANCH TO CMSTOR WHICH REQUIRES THAT XR1 POINT AT PARM LIST 04440000
* AND THE ADDR OF THE LCB IN XR2 04450000
* RESULT IS STORED IN #BUFND 04460000
SPACE 04470000
AIF (&ONE).C0454 04480000
CMGSTR EQU * * 2 04490000
.C0454 ANOP 04500000
B CMSTOR BR TO DETERMINE STORAGE NEEDED 04510000
SPACE 04520000
MVC GMLIST+GMSIZE(2),#BUFND MOVE SIZE NEEDED TO GETMAIN LIST 04530000
B CMGMRT BR TO GETMAIN INTERFACE ROUTINE 04540000
SPACE 04550000
* DETERMINE IF GETMAIN WAS SUCCESSFUL 04560000
SPACE 04570000
JOL CMGMNO JUMP IF GETMAIN FAILED 04580000
SPACE 04590000
* GETMAIN WORKED. SET UP THE GETMAIN AREA. 04600000
SPACE 04610000
B CMSET BR TO SETUP GETMAIN AREA 04640000
J CMPNWX JUMP TO END OF PNW CHECK. 04650000
SPACE 04660000
* GETMAIN FAILED 04670000
* SINCE PUT OPERATION - TURN IT INTO PUT WITH WAIT BY SETTING NO WAIT 04680000
* BIT OFF IN PL$OPM 04690000
SPACE 04700000
CMGMNO EQU * GETMAIN FAILED 04710000
SBF PL$OPM(,XR1),OPNOW MAKE OPERATION A WAIT 04720000
CMPNWX EQU * 04730000
AIF (&NOB).B0300 04740000
TITLE '$E082/CMBSOP---CHECK-FOR-INVALID-BSCA-REUESTS' 04750000
*********************************************************************** 04760000
* REJECT INVALID BSCA OPERATION REQUEST SEQUENCES. * 04770000
*********************************************************************** 04780000
SPACE 1 04790000
CMBSOP EQU * * B 04800000
* XR1 CONTAINS ADDRESS OF PARM LIST TO BE SCHEDULED. B 04805000
AIF (&ONE).CC420 04810000
TBN $BDDEV(,DTF),BSCA BSCA LINE ? 2 04820000
BF CMBSOX NO-GO TO END OF BSCA OP CHECK. 2 04830000
B CMTASV GO TO SAVE TAS BYTES. B 04835000
.CC420 ANOP 04840000
MNN CMTOPT+1,LCBOPC(,DTF) USE LAST OP ON LINE FOR CHECK. B 04850000
SBF CMTOPT+1,OPNOW SET OFF NO WAIT BIT. B 04860000
MVC CMTOP2+1(1),CMTOPT+1 SET UP TEST FOR BUSY CHECK. B 04870000
AIF (&NSWL).S0200 04880000
&MIX SETA &NMP+&NPP+&NCS 04890000
AIF (&MIX EQ '3').S0150 04900000
TBN $BDATR(,DTF),$BCSWI SWITCHED, AND SLB 04910000
TBF $BDATR(,DTF),$BCMPT * NOT MULTI-POINT ? SLB 04920000
JF CMBACT NO-GO CHECK FOR LINE ACTIVE. SLB 04930000
.S0150 ANOP 04940000
TBN PLOPM(,PL),OPREQR SYSTEM SB 04950000
TBN PLOPC(,PL),OPPUT * PUT TO SB 04960000
CLC PLTUBA(2,PL),LCBOWN(,DTF) * NON-CONNECTED LINE ? SB 04970000
JC CMBSII,FLSOEQ NO-GO CHECK FOR SYSTEM II. SB 04980000
SBF PL$OPM(,PL),OPPUT SET OFF PUT OPERATION. SB 04990000
* ---------------------------START--@07 04992000
SBF LCBAT2(,DTF),LCBPUT SET IND. PUT OPERATION OFF. B 04994000
* ---------------------------END----@07 04996000
* ------------------------START-S308864 04997000
SBN PL$OPM(,PL),OPNOW SET NO WAIT, FORCE POST FOR MSGS 04998000
* --------------------------END-S308864 04999000
TBN PLOPC(,PL),OPGET GET OPERATION ALSO REQUESTED. SB 05000000
BF CMPAII NO-GO POST COMPLETION. SB 05010000
SBN PL$OPM(,PL),OPINV SET ON INVITE OP CODE BITS. SB 05020000
CMBSII EQU * * SB 05030000
TBN PLOPM(,PL),OPREQR SYSTEM SB 05040000
TBN PL$OPM(,PL),OPINV * INVITE INPUT OP ? SB 05050000
JF CMBENB NO-GO CHECK ENABLED STATUS. SB 05060000
* ---------------------------START--@07 05061000
TBN PLOPC(,PL),OPJRSH OPERATION TO RESCHEDULE ONLY? SB 05062000
JF CMBNJR NO - CONTINUE OP CHECKING SB 05063000
TBF LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 05064000
BT CMRSCH NO - GO TO RESCHEDULE SB 05065000
B CMPAII GO POST REQUEST RESULTS SB 05066000
CMBNJR EQU * * LOCAL 05067000
* ---------------------------END----@07 05068000
L PLTUBA(,PL),XR2 POINT TO THE TUB. SB 05070000
TBN TUBCHR(,XR2),TUBCMN COMMAND CAPABLE TERMINAL ? SB 05080000
JT CMBRLD YES-GO CHECK ENABLED STATUS. SB 05090000
SBF TUBAT2(,XR2),TUBIIS SET OFF INVITE SCHEDULED. SB 05100000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 05110000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 05120000
BT CMPAII YES-GO POST REQUEST RESULTS. SB 05130000
B CMRSCH GO TO RESCHEDULE THE LINE. SB 05140000
SPACE 1 05150000
CMBRLD EQU * * SB 05160000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 05170000
CMBENB EQU * * SB 05180000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 05190000
JF CMBSOX NO-GO TO END OF BSCA OP CHECK.SB 05200000
CLC PLTUBA(2,PL),LCBOWN(,DTF) THIS TUB CONNECTED ON LINE ? SB 05210000
JNE CMBCNT NO-GO CHECK CONNECTION TYPE. SB 05220000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE WITH DATA ? SB 05230000
JF CMBSOX YES-GO TO END OF BSCA OP CHK. SB 05240000
TBN PLOPC(,PL),OPPUT PUT TO HANDLE AND, SB 05241000
TBN LCBAT2(,DTF),LCBRCI * INITIAL RECEIVE ON LINE ? SB 05242000
JT CMBSOX YES - ACCEPT THE REQUEST. THE SB 05243000
* * ONLY WAY A PUT COULD GET SB 05244000
* * THRU TO CM WOULD BE A SYS SB 05245000
* * OLT TO CPU. CANCEL RECV. SB 05246000
J CMTOPT NO - GO CHECK OP CODE MATCH. SB 05250000
SPACE 1 05260000
CMBCNT EQU * * SB 05270000
TBN PLOPM(,PL),OPREQR SYSTEM REQUEST ? SB 05280000
JT CMBSOX YES-GO TO END OF BSCA OP CHK. SB 05290000
L PLTUBA(,PL),TUB POINT TO THE NEW REQUEST TUB. SB 05300000
L LCBOWN(,DTF),XR2 POINT TO ACTIVE TUB. SB 05310000
TBF TUBTA1(,TUB),TASCNC BOTH SB 05320000
TBF TUBTA1(,XR2),TASCNC * ANSWER ? SB 05330000
TBF TUBTA2(,TUB),TASVFY BOTH SB 05340000
TBF TUBTA2(,XR2),TASVFY * VERIFY ID'S ? SB 05350000
L TUBDTF(,TUB),DTF POINT TO THE DTF. SB 05360000
L CMSPL,PL POINT TO THE PARM LIST. SB 05370000
JF CMTREJ NO-GO REJECT LAST OP REQUEST. SB 05380000
J CMBSOX GO TO END OF BSCA OP CHECK. SB 05390000
SPACE 05400000
CMBACT EQU * * SB 05402000
.S0200 ANOP 05404000
&MIX SETA &NMP+&NPP+&NCS 05406000
AIF (&MIX EQ '3').S0250 05410000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE WITH DATA ? C/P/TB 05440000
JF CMBSOX NO-GO TO END OF OP CHECK. C/P/TB 05450000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ? C/P/TB 05460000
JT CMBSOX YES-THEN LINE NOT ACTIVE.C/P/TB 05470000
CMTONR L PLTUBA(,PL),TUB LOAD TUB @ INTO REG. C/P/TB 05490000
CLC TUBTCB(2,TUB),LCBOWN(,DTF) THIS TASK OWN THE LINE ? C/P/TB 05500000
JNE CMBSOX NO-OP OK, SKIP OTHER CHKS.C/P/TB 05510000
L CMSPL,PL RELOAD PARM LIST REG. C/P/TB 05520000
SPACE 1 05530000
* ACCEPT THE OPERATION IF AN INVITE OR PUT-NO-WAIT MESSAGE. C/P/TB 05540000
SPACE 1 05550000
CLI PLOPC(,PL),OPIVIN INVITE INPUT ? C/P/TB 05560000
TBF PLOPM(,PL),OPREQR * OR SYSTEM REQUEST ? C/P/TB 05570000
JC CMBSOX,FLSOEQ YES-OP OK, SKIP OTHER CHK.C/P/TB 05580000
* -----START-------------------@06 05585000
TBN PLOPC(,PL),OPMSG+OPPNOW PUT-NO WAIT/MESSAGE, AND C/P/TB 05590000
TBN PL$OPM(,PL),OPPNOW * STILL A PUT-NO WAIT ? C/P/TB 05600000
JT CMBSOX YES-ACCEPT THE OPERATION. C/P/TB 05610000
* -----END---------------------@06 05615000
SPACE 1 05620000
* ACCEPT THE OPERATION IF THE CURRENT LINE OP IS INVITE-MSG, C/P/TB 05630000
* OR A PUT-NO-WAIT MESSAGE. C/P/TB 05640000
SPACE 1 05650000
TBN LCBOPC(,DTF),OPINV INVITE OP ON LINE, AND C/P/TB 05660000
TBN SAVTA2,TASMSG * IS IT MESSAGE MODE ? C/P/TB 05670000
JT CMBSOX YES-ACCEPT THIS OP REQ'T. C/P/TB 05680000
TBF LCBAT1(,DTF),LCBNTQ PARM LIST QUEUED, AND C/P/TB 05690000
L LCBPL@(,DTF),XR2 XR2--> CURRENT PARM LIST. C/P/TB 05700000
TBN PLOPC(,XR2),OPPNOW+OPMSG * A PUT-NO-WAIT-MESSAGE ? C/P/TB 05710000
JT CMBSOX YES-ACCEPT THIS OP REQ'T. C/P/TB 05720000
L PLTUBA(,PL),XR2 POINT TO THE TUB. C/P/TB 05730000
TBN TUBAT2(,XR2),TUBOWN THIS TUB OWN THE LINE-AND C/P/TB 05740000
L TUBDTF(,XR2),DTF POINT TO THE DTF. C/P/TB 05750000
.S0250 ANOP 05760000
CMTOPT TBN PL$OPM(,PL),# SAME TYPE OP AS LAST TIME ? B 05780000
JT CMBSOX YES-GO CONTINUE,PARM LIST OK. B 05790000
SPACE 1 05800000
* SET REJECTED OPERATION COMPLETION RETURN CODE, ALSO GO TO DEQ IT. 05810000
SPACE 1 05820000
CMTREJ B $CC4PI CALL IN TRANSIENT B 05840000
DC AL1(CC4BR) * BSCA REJECT CLEAN-UP. B 05850000
BLANKC DC XL1'40' CONSTANT OF A BLANK, B 05860000
* AND, INLINE PARM VALUE FOR B 05870000
* REJECT PARM LIST NOT Q'D. B 05880000
SBF CMPMSK,WPAAII SET TP REQ POST BIT OFF. B 05900000
SBF CMSWIT,CMTPRQ TURN OFF TP REQUEST SWITCH. B 05910000
B CMMARK GO SETUP RETURN TO USER. B 05920000
SPACE 05930000
CMBSOX EQU * * B 05940000
.B0300 ANOP 05950000
TITLE '$E082/CMQUE---ADD-TP-REQUEST-TO-LINE-QUEUE' 05960000
*********************************************************************** 05970000
* QUEUE THE TP REQUEST * 05980000
*********************************************************************** 05990000
SPACE 06000000
* ADD THIS REQUEST TO THE LINE QUEUE 06010000
* MUST CHECK TO SEE IF THIS PARAMETER LIST IS TO BE ADDED TO THE 06020000
* END OF THE LINE QUEUE OR IS TO BE PUT AT THE TOP OF THE QUEUE 06030000
* IE IF RETRY OF PARM LIST IN ERP - IT WILL GO TO TOP OF QUEUE TO 06040000
* MAINTAIN THE ORIGINAL ORDER OF THE LINE QUEUE 06050000
* XR2 WILL BE USED TO POINT TO THE VARIOUS PARAMETER LISTS IN THE QUEUE 06060000
* POINT XR2 AT LOCATION OF 1ST PARM LIST POINTER 06070000
SPACE 06080000
CMQUE EQU * QUEUE THIS TP REQUEST 06090000
SPACE 06100000
AIF (&NOB).C0456 06110000
L CMSPL,XR1 POINT TO THE TP PARM LIST. B 06120000
.C0456 ANOP 06130000
L CMSDTF,XR2 POINT XR2 AT DTF 06140000
SPACE 06150000
TBN LCBATR(,XR2),LCB1PL IS THIS TO BE 1ST PARM LIST IN Q 06160000
SBF LCBATR(,XR2),LCB1PL SET OFF LCB1PL BIT 06170000
SPACE 06180000
LA LCBPLQ-1(,XR2),XR2 POINT XR2 AT PARM LIST ADDR 06190000
SPACE 06200000
JF CMTQND JUMP IF ADD TO END OF LINE QUEUE 06210000
SPACE 06220000
* PUT THIS PARM LIST AT THE TOP OF THE QUEUE 06230000
SPACE 06240000
MVC PLCHN(2,XR1),PLCHN(,XR2) CHAIN CURRENT Q OFF THIS PARM LS 06250000
J CMADDQ JUMP TO ADD THIS GUY TO TOP OF Q 06260000
SPACE 06270000
* DETERMINE IF POINTER IS NULL 06280000
* IF NULL STORE ADDR OF THIS PARM LIST IN THAT LOCATION 06290000
SPACE 06300000
CMTQND EQU * TEST FOR END OF QUEUE 06310000
CLI PLCHN-1(,XR2),NOBIT IS PARM LIST POINTER NULL 06320000
JE CMADDQ JUMP IF NULL TO ADD TO QUEUE 06330000
SPACE 06340000
*POINTER NOT NULL - SO TRY NEXT PARM LIST POINTER 06350000
SPACE 06360000
*THIS PARM LIST PTS TO ANOTHER PARM LIST IN LINE QUEUE 06370000
* GO DOWN LIST LOOKING FOR END OF QUEUE 06380000
*(HIGH ORDER BYTE OF ADDRESS - X'00') 06390000
SPACE 06400000
L PLCHN(,XR2),XR2 POINT XR2 AT NEXT PARM LIST 06410000
* IN THE LINE QUEUE 06420000
B CMTQND BR TO TEST FOR QUEUE END 06430000
SPACE 06440000
* FOUND END OF QUEUE SO ADD THIS PARAMETER LIST TO CHAIN HERE 06450000
SPACE 06460000
CMADDQ EQU * ADD PARM LIST TO QUEUE 06470000
ST PLCHN(,XR2),XR1 ADD PARM LIST TO QUEUE 06480000
AIF (&NOB).S0700 06490000
EJECT 06500000
* SET-UP INTERNAL OP CODE FOR CURRENT OPERATION ON BEHAVE OF THE USER 06510000
SPACE 1 06520000
L PLTUBA(,PL),XR2 POINT TO THE TUB. B 06530000
AIF (&NOM).C0458 06540000
TBN TUBCHR(,XR2),TUBLNE BSCA LINE ? 2 06550000
JF CMTSBY NO-GO CHECK BUSY STATUS. 2 06560000
.C0458 ANOP 06570000
AIF (&BPRT).BP100 PRINTER BUSY CODE *L 06570500
AGO .BP200 *L 06571000
.BP100 ANOP *L 06571500
CLI TUBPHY(,XR2),TUB5M2 3270 DEVICE? *L 06572000
JH CMINOP NO-JUMP. *L 06572500
TBF PLOPM(,PL),OPREQR USER OP? *L 06573000
TBF PLOPC(,PL),OPORDR-OPRUF AND MESSAGE? *L 06573500
TBF PLOPC(,PL),OPGET AND NOT GET? *L 06574000
JF CMINOP NO-JUMP *L 06574500
L PLRECA(,PL),XR2 XR2--> RECORD AREA *L 06575000
* *L 06575100
*----------------------------------------------------------START @21 *L 06575200
CLC PLOUTL(2,PL),CC0001 IF THE OUTPUT LENGTH IS NOT *L 06575400
JNH CMINOP GREATER THAN 1 THEN NO WCC. *L 06575500
*------------------------------------------------------------END @21 *L 06575600
TBN WCC(,XR2),STPRT START PRINT BIT ON? *L 06575700
L PLTUBA(,PL),XR2 XR2-->TUB. *L 06576000
JF CMINOP NO-JUMP *L 06576500
SBN TUBAT4(,XR2),TUBBSY YES-SET ON BUSY PRINT BIT. *L 06577000
CMINOP EQU * * LOCAL *L 06577500
.BP200 ANOP END PRINTER BUSY CODE *L 06578000
MNN PL$OPC(,PL),PL$OPM(,PL) SAVE INTERNAL OP CODE. B 06580000
AIF (&N32).T1000 06581000
TBN PLOPC(,XR1),OPGET INVITE OR GET OP? 0B 06582000
JF CMRSCL NO-DON'T RESET CLEAR IND. 0B 06584000
SBF TUBSCS(,XR2),TUBCLR RESET CLEAR IND. 0B 06586000
CMRSCL EQU * * 0B 06588000
.T1000 ANOP 06589000
AIF (&NSWL).S0700 06590000
SPACE 1 06600000
* IF SWITCHED BSCA, AND A USER OWNS THE LINE, THEN JUST Q SYSTEM SB 06610000
* REQUESTS. SB 06620000
SPACE 1 06630000
AIF (&MIX EQ '3').S0600 06640000
TBN TUBAT1(,XR2),TUBSWC SWITCHED LINE ? SLB 06650000
JF CMTSBY NO-GO CHECK BUSY STATUS. SLB 06660000
.S0600 ANOP 06670000
TBN PLOPM(,PL),OPREQR SYSTEM REQUEST ? SB 06680000
JF CMTSBY NO-GO CHECK BUSY STATUS. SB 06690000
L TUBDTF(,XR2),DTF POINT TO THE DTF. SB 06700000
CLC LCBTCB(2,DTF),CC0000 SWITCHED LINE UNOWNED ? SB 06710000
JE CMTSBY YES-GO CHECK BUSY STATUS. SB 06720000
CLC LCBTCB(2,DTF),CC@CPT CP OWN THE LINE ? SB 06730000
JE CMTSBY YES-GO CHECK BUSY STATUS. SB 06740000
TBN LCBAT3(,DTF),LCBENB LINE ENABLED ? SB 06750000
BT CMPAII YES-GO POST OP ACCEPTED. SB 06760000
B CMRSCH GO TO RESCHEDULE THE LINE. SB 06770000
SPACE 1 06780000
.S0700 ANOP 06790000
TITLE '$E082/CMTSBY---CHECK-TP-LINE-FOR-BUSY' 06800000
*********************************************************************** 06810000
* CHECK THE TP LINE AND SEE IF IT IS BUSY * 06820000
*********************************************************************** 06830000
SPACE 06840000
* IF LINE IS NOT BUSY WE CAN START AN OPERATION NOW - ELSE WILL HAVE TO 06850000
* WAIT FOR AN OP END BEFORE RESCHEDULING THE LINE 06860000
SPACE 06870000
CMTSBY EQU * TEST LINE BUSY STATUS 06880000
SPACE 06890000
* XR1 POINTS AT PARM LIST 06900000
SPACE 06910000
L CMSLCB,XR2 POINT XR2 AT LCB 06920000
AIF (&ONE).C0460 06930000
TBN $BDDEV(,DTF),BSCA BSCA DTF ? 2 06940000
JF CMTBSY NO-GO TEST MLTA BUSY. 2 06950000
.C0460 ANOP 06960000
AIF (&NOB).C0470 06970000
TBN LCBAT2(,DTF),LCBACT LINE ACTIVE ? B 06980000
JF CMRSCH NO-GO SCHEDULE WORK ON LINE. B 06990000
TBN LCBAT2(,DTF),LCBRCI RECEIVE INITIAL ON LINE ? B 07000000
JF CMTPLQ NO-GO CHECK PARM LIST Q'D. B 07010000
TBN PLOPC(,PL),OPPUT THIS A PUT REQUEST ? B 07020000
JT CMGOBZ YES-GO TO TRY PRIORITY CANCEL. B 07030000
ST CMSPL@,PL SAVE PL @ B 07040000
B CMIVGM GO ASSURE SIZE FOR NEW INVITE. B 07050000
MVC CMSPL(2),CMSPL@ RESTORE PL @ B 07060000
* ---------------------------START--@08 07060500
L CMSLCB,DTF LOAD LCB ADDRESS INTO REG 2 B 07061000
L CMSPL,PL LOAD PARM LIST ADDR INTO REG 1 B 07061500
TBN PL$OPM(,PL),OPGETM GETMAIN ALREADY INDICATED ? B 07062000
JT CMNOID YES-DON'T START 2 SEC. T.O. B 07062500
L $BDWKA(,DTF),WKA XR1--> WORK AREA B 07063000
TBN $BWKMC(,WKA),X'01' IDA RUNNING NOW ? B 07063500
JF CMNOID NO-GO TO POST B 07064000
TBF LCBAT1(,DTF),LCBCRI+LCBPRI CANCEL ALREADY STARTED ? B 07064500
SBN LCBAT1(,DTF),LCBPRI SET IT ON FOR CANCEL START B 07065000
JF CMNOID NO - ALREADY STARTED CANCEL B 07065500
L $BDWKA(,DTF),WKA XR1--> WORK AREA B 07066000
SBN $BPOLD(,WKA),$BPRES SET CANCEL FLAG FOR MLMP B 07066500
DC XL3'F38806' DO SIO TO DO IDA STOP POLL B 07067000
CMNOID EQU * * LOCAL B 07067500
L CMSPL,PL LOAD PARM LIST ADDR INTO REG 1 B 07068000
* ---------------------------END----@08 07068500
SPACE 07070000
B CMPAII GO TO POST RESULTS. B 07080000
SPACE 07090000
CMTPLQ EQU * * B 07100000
TBN LCBAT1(,DTF),LCBNTQ PARM LIST NOT QUEUED, AND B 07110000
L PLTUBA(,PL),XR2 POINT TO THE TUB. B 07120000
TBN TUBAT2(,XR2),TUBOWN * THIS PARM LIST FOR LINE OWNER? 07130000
L TUBDTF(,XR2),DTF POINT TO THE DTF. B 07140000
CMTOP2 EQU * * B 07150000
TBN PL$OPM(,PL),# SAME OP AS ON THE LINE ? B 07160000
JF CMGOBZ NO-GO TO CHECK LINE FOR BUSY. B 07170000
SBF LCBAT1(,DTF),LCBNTQ PARM LIST IS BACK IN QUE. B 07180000
ST LCBPL@(,DTF),PL SET NEW CURRENT PARM LIST PTR. B 07190000
TBN LCBAT1(,DTF),LCBINT INTERRUPT OCCUR W/O PARM LIST. B 07200000
JT CMUPCT YES - GO UP OP END COUNT B 07210000
B CMTASV GO SAVE ATTRIBUTES 07211000
B CMNOBY GO PERFORM NEXT OP 07212000
CMUPCT EQU * * 07213000
ALC LCBOPE(1,DTF),CC0001 UP OPEND COUNT @14 07214000
ALC CCOECT(1),CC0001 UP OPEND COUNT @14 07215000
CMGOBZ EQU * BRANCH TO BUSY CHECK. B 07220000
B CMBUSY GO TO LINE BUSY ACTION. B 07230000
SPACE 07240000
CMTBSY EQU * * B 07250000
.C0470 ANOP 07260000
AIF (&NOM).M1100 07270000
TBN $MDAT2(,XR2),$MABSY TEST LINE BUSY BIT M 07280000
BT CMBUSY JUMP IF LINE BUSY M 07290000
.M1100 ANOP 07300000
MEND 07310000