|
|
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: 9652 (0x25b4)
Types: s3xseg
Names: »S$E130«
└─⟦4498c64f7⟧ Bits:30009191 5704-sc2.V05.ccp
└─⟦95ee7795b⟧
└─⟦this⟧ »S$E130«
MACRO 00010000
.********************************************************************** 00020000
.* * 00030000
.* TITLE: COMMUNICATIONS SUPERVISOR OP END ROUTINE - OUTPUT * 00040000
.* * 00050000
.* STATUS: V2 M0 * 00060000
.* * 00070000
.* FUNCTION HANDLE WRITE TYPE OP ENS FOR BSCC LINES 3 AND 4 * 00080000
.* SET UP THE TUB,PL,AND CLB FOR THE OP END * 00090000
.* POST REGUESTOR AND FREE ANY BUFFERS * 00100000
.* RESCHEDE THE LINE FOR A GET ON OP-END OF A PUT-THEN-GET * 00110000
.* * 00120000
.* * 00130000
.* OUTPUT: USER'S PL WITH THE STATUS OF THE COMPLETED OP END (SUCCES-* 00140000
.* SFUL OR NOT) * 00150000
.* * 00160000
.* EXTERNAL REFERENCES: CSDEQ - REMOVE PL FROM CLBPLQ * 00170000
.* CSPSTE- POST USER OP COMPLETE,FREE BUFFERS * 00180000
.* YMWAIT- BSCC WAIT ROUTINE * 00190000
.* CC4TT - SYSTEM TRACE ROUTINE * 00200000
.* * 00210000
.********************************************************************** 00230000
.* * 00240000
.* GBLB &NDF * NO * DFF SUPPORT * 00250000
.* * 00260000
.********************************************************************** 00270000
$E130 00280000
GBLB &NDF 00285000
GBLB &CSIO,&NCPOR 00290000
TEXT 00300000
TITLE '$ E 1 3 0 - O U T P U T O P E N D' 00310000
CSWRTE EQU * * 00320000
SPACE 1 00330000
* SAVE THE ATTRIBUTES OF THE OP ENDED PARM LIST IN THE CLB 00340000
SPACE 1 00350000
L CLBPL@(,CLB),PL XR1 --> PL 00360000
ST CSSPL,PL SAVE PL ADDRESS 00370000
ST CSSCLB,CLB SAVE CLB ADDRESS 00380000
B CSTASV SAVE ATTRIBUTES IN CLB 00390000
AIF (&CSIO EQ '1').NP010 00390800
SPACE 1 00391200
******************************************************************* @14 00391600
******* 00392400
* CALL THE BSCC OR SIOC WAIT ROUTINE 00394000
B CSWATE GO TO WAIT 00394800
******* 00396400
******************************************************************* @14 00396800
AGO .YP010 00398000
.NP010 ANOP 00398800
* CALL THE BSCC WAIT ROUTINE 00400000
B YMWAIT CALL BSCC WAIT ROUTINE 00410000
.YP010 ANOP 00415000
SPACE 1 00420000
* CALL SYS TRACE ROUTINE TO TRACE THIS OP END 00430000
B CC4TT GO TO TRACE SUBROUTINE 00440000
DC AL1(TTMOPN) OP END TRACE 00450000
* TRACE ROUTINE RETURNS WITH INTERRUPTS MASKED 00460000
CCP UNMASK,PMR ALLOW INTERRUPTS 00470000
SPACE 1 00480000
* DECREMENT THE OP END COUNT 00490000
SLC CLBOPE(1,CLB),X$0001 DECREMENT COUNT IN THE CLB 00500000
SLC #CSOND(1),X$0001 DECREMENT COMMON OP END COUNT 00510000
AIF (&CSIO EQ '1').PT010 00510300
AGO .PT020 00510360
.PT010 ANOP 00510420
AIF (&NCPOR).PT030 00510480
.PT020 ANOP 00510540
SPACE 1 00510600
******************************************************************* @14 00510700
******* 00510900
TBN CLBBA3(,CLB),BA3POR PORTLINE OR SIOC DEVICE ? 00511500
JF CSPNPR NO - CONTINUE 00511800
SPACE 2 00512100
* IF GET A 43 COMPLETION CODE AND THIS SYSTEM HAS PRIORITY, 00512400
* RE-SCHEDULE THE PUT. 00512700
* IF 43 AND NO PRIORITY OR 49 COMPLETION CODE, SAVE THE PUT FOR LATER 00513000
* AND DO A GET NOW. 00513300
* IF A 4C COMPLETION CODE RE-SCHEDULE THE PUT OR DO A GET DEPENDING 00513370
* ON THE PRIORITY OF THIS SYSTEM 00513440
SPACE 00513510
CLI CLBCMP(,CLB),CMPNOA OTHER CPU DOING A WRITE 00513600
JE CSPDGT YES, GO SCHEDULE A GET 00513900
CLI CLBCMP(,CLB),CMPNID OTHER CPU TRYING TO WRITE 00514500
JE CSPDPT YES, DO THE PUT IF PRIORITY 00514800
CLI CLBCMP(,CLB),CMPNOC IS THE COMP CODE A NO CONNECT ? 00514870
JNE CSPNPR NO - CONTINUE PROCESSING 00514940
CSPDPT EQU * 00515010
ALC CTR2(3),X$0001 +1 TO NUMBER OF 43 COMP CODES 00515100
TBN CLBBA3(,CLB),BA3PPR THIS CPU HAVE PRIORITY 00515400
BT CSCHED YES, GO RE-SCHEDULE THE PUT 00515700
SPACE 00516000
CSPDGT EQU * * 00516300
SBN CSSWIT,CSSGET INDICATE TO DO A READ 00516600
ALC CTR1(3),X$0001 +1 TO NUMBER OF 43 AND 49 CODES 00516900
J CSRDOP CLEAN UP THE PUT 00517200
CSPNPR EQU * * 00517500
******* 00518100
******************************************************************* @14 00518200
.PT030 ANOP 00518700
SPACE 1 00520000
* IF THE OP IS NOT COMPLETE (56.COMP CODE) - CHECK FOR MORE WORK 00530000
CLI CLBCMP(,CLB),CMPCMP OP COMPLETE YET? 00540000
BE CSNMOR NO - CHECK FOR MORE WORK 00550000
AIF (&CSIO EQ '1').PT040 00550600
AGO .PT050 00550670
.PT040 ANOP 00550740
AIF (&NCPOR).PT060 00550810
.PT050 ANOP 00550880
SPACE 1 00550950
******************************************************************* @14 00551020
******* 00551090
TBN CLBBA3(,CLB),BA3POR PORTLINE DEVICE ? 00553000
JF CSPCMP NO 00553600
* CLEAR PORT PURGE INDICATOR 00554200
L PLTUBA(,PL),XR1 XR1--> TUB 00554800
SBF TUBSCS(,XR1),TUBPRG SET OFF PORT PURGE INDICATOR 00555400
L CLBPL@(,CLB),PL XR1--> PL 00556000
CSPCMP EQU * * 00556600
******* 00557800
******************************************************************* @14 00558100
.PT060 ANOP 00559000
SPACE 1 00560000
* CHECK THE COMP CODE - CALL $CC4UE FOR ANY ERRORS 00570000
CLI CLBCMP(,CLB),CMPEND COMP CODE OK (X'40') ? 00580000
JE CSPOK YES - JUMP(OP SUCCESSFUL) 00590000
CLI CLBCMP(,CLB),CMPRVP RVI ON A PUT (NOT SELECT) ? 00600000
JE CSPRVI YES - JUMP(OP SUCCESSFUL) 00610000
* ERROR COMP CODE - CALL THE ERROR TRANSIENT $CC4UE 00620000
B CC4TA CALL TRANSIENT AREA HANDLER 00630000
DC AL1(CC4UE) TRANSIENT ID 00640000
B CSCHED GO SCHEDULE THIS LINE 00650000
SPACE 1 00660000
* OUT PUT OP WAS SUCCESSFUL - SEE WHAT IT WAS AND DWA 00670000
SPACE 1 00680000
CSPRVI EQU * 00690000
SBN PL$RTC(,PL),RCXRVI PUT IN RVI RETURN CODE 00700000
CSPOK EQU * * 00710000
********************************************************************@21 00711000
L PLTUBA(,PL),XR1 XR1 --> TUB 00712000
TBN TUBOTC(,XR1),X'20' IS THIS S/34 DEVICE ? 00713000
JF CSN34 NO CONTINUE 00714000
SLC TUBER@(2,XR1),TUBER@(,XR1) YES-CLEAR THE S/34 00715000
* RETRY COUNTER 00716000
CSN34 EQU * 00717000
L CLBPL@(,CLB),PL XR1 --> CURRENT P.L. 00718000
********************************************************************@21 00719000
TBN CLBBA2(,CLB),BA2SET JUST FINISHED SENDING EOT? 00720000
JF CSPTYP NO - GO CHECK TYPE OF PUT 00730000
SPACE 1 00740000
* JUST SENT EOT - CLEAN UP THE CLB, POST REQUESTOR, ETC. 00750000
SPACE 1 00760000
CSRDOP EQU * * 00765000
TBN PLOPM(,PL),OP$SYS IS THIS A STOP INVITE PARM LIST? 00770000
L PLTUBA(,PL),XR1 XR1 --> TUB 00780000
SBF TUBAT2(,XR1),TUBOWN SET OFF OWNERSHIP INDICATOR 00790000
JT CSPNTR IF A STOP DO NOT SET OFF TUBRUF 00800000
SBF TUBSCS(,XR1),TUBRUF SET OFF PRUF IND. 00810000
CSPNTR EQU * 00820000
SLC CLBBA2(2,CLB),CLBBA2(,CLB) ZIP CLB ATTRIBUTES 00830000
SLC CLBOWN(2,CLB),CLBOWN(,CLB) ZIP TUB OWNER FIELD 00840000
L CLBPL@(,CLB),PL XR1 --> PL 00850000
TBN PL$OPC(,PL),OPRFSH CLEAR MSG FINISHING? 00860000
JF CSPNCL NO - JUMP 00870000
SPACE 1 00880000
* JUST FINISHED SENDING A CLEAR MSG - RESTORE ORIGINAL OP 00890000
SBF PL$OPC(,PL),OPRFSH SET OFF CLEAR INDICATOR IN PL 00900000
MNN PL$OPM(,PL),PL$OPC(,PL) RESTORE ORIGINAL OP 00910000
TBN PLOPM(,PL),OPSTOP IS THE CURRENT OP A STOP ? 00920000
BF CSCHED NO - SCHEDULE THE LINE 00930000
* MVI PLRTC(,PL),RCXCLR MOVE CLEAR R.C. INTO PARM LIS@16 00935000
MVI PL$RTC(,PL),RCXCLR MOVE CLEAR R.C. INTO PARM LIST 00950000
J CSPNPT DEQUEUE PARM LIST AND POST USER 00960000
* SET OFF PRUF INDICATOR FOR NON-PRUF PUTS 00970000
CSPNCL EQU * 00980000
TBN PLOPC(,PL),OPRUF PRUF OPERATION ? 00990000
JF CSPGET NO - CHECK PUT-THEN-GET OP 01000000
L PLTUBA(,PL),TUB XR2 --> TUB 01010000
SBN TUBSCS(,TUB),TUBRUF SET PRUF INDICATOR 01020000
L TUBLCB(,TUB),CLB XR2 --> CLB 01030000
CSPGET EQU * 01040000
AIF (&CSIO EQ '1').PT070 01040800
AGO .PT080 01040900
.PT070 ANOP 01041000
AIF (&NCPOR).PT090 01041100
.PT080 ANOP 01041200
SPACE 1 01041300
******************************************************************* @14 01041400
******* 01041500
TBN CSSWIT,CSSGET NEED TO DO A GET 01044000
TBN CLBBA3(,CLB),BA3POR PORTLINE DEVICE @04 01044800
BT CSCHED YES, GO SCHEDULE LINE @04 01045600
******* 01047200
******************************************************************* @14 01047600
SPACE 1 01048000
.PT090 ANOP 01048800
TBN PLOPC(,PL),OPPUT+OPGET PUT PART OF PUT-THEN-GET? 01050000
JF CSPNPT NO - JUMP 01060000
B CSWPGY YES- GO SET UP GET 01070000
B CSCHED GO SCHEDULE THIS LINE 01080000
SPACE 2 01090000
CSPNPT EQU * * 01100000
* OP COMPLETE - DEQUEUE,POST,FREE,RESCHEDULE THIS LINE 01110000
B CSDEQ GO DEQUE PL FROM CLBPLQ 01120000
SPACE 1 01130000
CSPPST EQU * * 01135000
B CSPSTE GO POST AND FREE BUFFS 01140000
SPACE 1 01150000
B CSCHED GO SCHEDULE THIS LINE 01160000
SPACE 3 01170000
* SEND THE EOT IF REQUIRED 01180000
CSPTYP EQU * 01190000
AIF (&CSIO EQ '1').PT100 01190700
AGO .PT110 01191400
.PT100 ANOP 01192100
AIF (&NCPOR).PT120 01192800
.PT110 ANOP 01193500
SPACE 1 01194200
******************************************************************* @14 01194900
******* 01195600
TBF CLBBA3(,CLB),BA3POR PORT DEVICE 01196300
******* 01197000
******************************************************************* @14 01197700
SPACE 1 01198400
.PT120 ANOP 01199100
TBF PL$OPC(,PL),OPSYS SYSTEM OP OR -----| 01200000
TBF PLOPC(,PL),OPGET PUT-THEN-GET OR --| 01210000
TBF PLOPC(,PL),OPMSG-OPBLK MSG MODE PUT ? ---| 01220000
JT CSPSRM NO - JUMP <-------| 01230000
* SET TO SEND EOT ON THIS LINE 01240000
SBN CLBBA2(,CLB),BA2SET SET ON'SEND EOT' INDICATOR 01250000
B CSCHED GO SCHEDULE THIS LINE 01260000
SPACE 1 01270000
* INDICATE ACTIVE PL NO LONGER ON THE QUEUE 01280000
CSPSRM EQU * * 01290000
B CSDEQ DEQUE PL FROM CLBPLQ 01300000
SBN CLBBA1(,CLB),BA1NTQ SET IND 'PL REMOVED FROM QUEUE' 01310000
AIF (&NDF).F0300 NO DFF SUPPORT. 01320000
* PUT PL ON DFF'S QUEUE OR POST USER 01330000
CLI PL$RTC(,PL),RCXEDT RETURN CODE > 3 OR 01340000
TBN CLBTBS-5(,CLB),TASDFF NON-DFF TERMINAL ? 01350000
JC CSPEND,FLSOHI YES- POST USER 01360000
SPACE 1 01370000
* POST DFF OP COMPLETE 01380000
B CSDFFQ GO QUEUE IT FOR DFF 01390000
J CSPTND GO CHECK FOR MORE WORK 01400000
CSPEND EQU * * 01410000
.F0300 ANOP * 01420000
B CSPSTE GO POST USER 01430000
CSPTND EQU * * 01440000
B CSNMOR GO CHECK FOR MORE WORK 01450000
MEND 01460000