DataMuseum.dk

Presents historical artifacts from the history of:

IBM System/3

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about IBM System/3

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦3f6ff09e5⟧ s3xseg

    Length: 47244 (0xb88c)
    Types: s3xseg
    Names: »S$E120«

Derivation

└─⟦4498c64f7⟧ Bits:30009191 5704-sc2.V05.ccp
    └─⟦95ee7795b⟧ 
        └─⟦this⟧ »S$E120« 

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.*  TITLE:  $E120 - INPUT OP END FROM BSCC (LINE 3 OR 4)              * 00040000                
.*                                                                    * 00050000                
.*  STATUS:  V4 M0                                                    * 00060000                
.*                                                                    * 00070000                
.*  FUNCTION:  HANDLE READ-TYPE OP ENDS FOR BSCC LINES 3 AND 4.       * 00080000                
.*             SET UP THE CLB FOR THE CALL TO BSCC DATA MANAGEMENT.   * 00090000                
.*             CALL TRANSIENT $CC4UE FOR ANY ERROR COMPLETION CODES.  * 00100000                
.*             FOR MSG MODE TUB'S - BLOCK THE INPUT TEXT FOR THE      * 00110000                
.*             USER,DEQUEUE THE OP ENDED OPERATION (PL) FROM THE      * 00120000                
.*             CLB QUEUE. FOR INVITE INPUT OP ENDS - PUT THE PL ON    * 00130000                
.*             THE USER'S TCB,POST THE USER THAT AN OP END HAS        * 00140000                
.*             OCCURRED.                                              * 00150000                
.*                                                                    * 00160000                
.*  OUTPUT:  USER'S PL SET UP WITH LENGTH, TEXT POINTER, TEXT, AND    * 00170000                
.*           RETURN CODE                                              * 00180000                
.*                                                                    * 00190000                
.*  EXTERNAL REFERENCES:  $CC4U0 - 3270 SYS INVITE TEXT EDITOR        * 00200000                
.*                        CSPSTE - SUBROUTINE TO POST USER AND QUEUE  * 00210000                
.*                                 PL ON USER'S TCB                   * 00220000                
.*                        YMWAIT - BSCC WAIT ROUTINE (IN MODULE       * 00230000                
.*                                 $$BSYM)                            * 00240000                
.*                        CC4FM -  FREE MAIN ROUTINE                  * 00250000                
.*                        POST  -  SYSTEM POST ROUTINE                * 00260000                
.*                        CC4MX -  CCP MOVE ROUTINE                   * 00270000                
.*                        CC4TT -  SYSTEM TRACE ROUTINE               * 00280000                
.*                        CC4GM -  GET MAIN ROUTINE                   * 00290000                
.*                        CSDEQ -  REMOVE PL FROM CLBPLQ              * 00300000                
.*                                                                    * 00310000                
.*  EXITS:  $E100 - TO CHECK FOR MORE WORK                            * 00320000                
.*          $E140 - TO SCHEDULE THE OP ENDED LINE                     * 00330000                
.*                                                                    * 00340000                
.********************************************************************** 00350000                
.*                                                                    * 00360000                
.*     GBLB  &NDME        * NO * DATA MODE ESCAPE SUPPORT             * 00370000                
.*                                                                    * 00380000                
.*     GBLB  &CACI        * NO * ASCII SUPPORT                        * 00390000                
.*                                                                    * 00400000                
.*     GBLB  &CINT        * NO * INTERVAL POLLING                     * 00410000                
.*                                                                    * 00420000                
.*     GBLA  &C#NL        * NUMBER * OF BSCC LINES                    * 00430000                
.*                        * VALUE OF 1 OR 2                           * 00440000                
.*                                                                    * 00442000                
.*     GBLB  &NPBY        * NO * BUSY PRINT SUPPORT.                  * 00444000                
.*                                                                    * 00444500                
.*     GBLB  &NBCPP       * NO * POINT TO POINT SUPPORT.              * 00445000                
.*                                                                    * 00445500                
.*                                                                    * 00448000                
.********************************************************************** 00460000                
       $E120                                                            00470000                
       GBLB  &CSIO                     0=SUPPORTED,1=NOT SUPPORTED      00475000                
       GBLB  &NDME,&CACI,&CINT,&NPBY                                    00480000                
       GBLA  &C#NL                                                      00490000                
       GBLB  &NBCPP,&NCPOR                                              00495000                
       TEXT                                                             00500000                
       TITLE '$ E 1 2 0 - I N P U T  O P  E N D '                       00510000                
* HANDLE ANY INPUT OP ENDS (XR2 --> OP-ENDED CLB)                       00520000                
       SPACE 1                                                          00530000                
CSREAD EQU   *                                                          00540000                
       ST    CSSCLB,CLB                SAVE CLB ADDRESS                 00550000                
       AIF   (&CSIO EQ '1').NP005                                       00550700                
       SPACE 1                                                          00551400                
******************************************************************* @14 00552100                
*******                                                                 00552800                
       CLI   CLBDEV(,CLB),DEVSIO       SIOC ONLY DEVICE ?               00553500                
       JNE   CSRPTN                    NO                               00554200                
       ALC   CTR4(3),X$0001            +1 TO NUMBER INPUT OPENDS        00554900                
CSRPTN EQU   *                         *                                00555600                
*******                                                                 00556300                
******************************************************************* @14 00556600                
       SPACE 1                                                          00557000                
.NP005 ANOP                                                             00558400                
       MVC   CSSPL,CLBPL@(2,CLB)       SAVE THE CURRENT P.L. ADDRESS    00560000                
       TBN   CLBBA2(,CLB),BA2RCI       THIS THE FIRST BLOCK?            00570000                
       BF    CSRNFB                    NO--GO DO NON-FIRST BLOCK SETUP  00580000                
       SPACE 2                                                          00590000                
* HAVE AN OP-END FROM A POLL - FIND THE ASSOCIATED PL ON CLBPLQ OR      00600000                
*    ON CLBSTQ                                                          00610000                
       SPACE 1                                                          00620000                
       AIF   (&NCPOR).PT010                                             00620400                
******************************************************************* @14 00620800                
*******                                                                 00621200                
       TBN   CLBBA3(,CLB),BA3PON       PORTLINE ONLY ?                  00621600                
       JF    CSRPNP                    NO - CONTINUE                    00622000                
       L     CLBCIB(,CLB),XR1          XR1 --> CIB                      00622400                
       TBN   6(,XR1),X'04'             IS THE DATA IN YET ?             00622800                
       JF    CSRNOD                    YES - GO GET THE DATA            00623200                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       00623600                
       B     CSRWAT                    GO TO THE WAIT ROUTINE           00624000                
CSRNOD EQU   *                                                          00624400                
       MVC   PORTAR(2),12(,XR1)        MOVE IN THE DATA BUFFER ADDRESS  00624800                
       ALC   PORTAR(2),21(,XR1)        ADD THE TAR DISPLACEMENT TO IT   00625200                
       L     PORTAR,XR1                XR1 --> DATA RECEIVED            00625600                
       MVC   CLBIND(1,CLB),0(,XR1)     MOVE IN THE PORT ID BYTE         00626000                
       MVC   CLBREL(2,CLB),2(,XR1)     MOVE IN THE OTHER SYSTEMS RECL   00626400                
CSRPNP EQU   *                         *                                00626800                
*******                                                                 00627200                
******************************************************************* @14 00627600                
       SPACE 1                                                          00628000                
.PT010 ANOP                                                             00628400                
       LA    CLBPLQ-1(,CLB),PL         XR1 --> BEGIN OF QUEUE           00630000                
       AIF   (&CSIO EQ '1').PT020                                       00630700                
       AGO   .PT030                                                     00631400                
.PT020 ANOP                                                             00632100                
       AIF   (&NCPOR).PT040                                             00632200                
.PT030 ANOP                                                             00632300                
       SPACE 1                                                          00632400                
******************************************************************* @14 00632500                
*******                                                                 00632800                
       MVC   CSRRPI+1,CLBIND(1,CLB)    SAVE CLBIND FOR PORT DEVICE      00633500                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?        00634200                
       JF    CSRLAG                    NO                               00634900                
       SBF   CLBIND(,CLB),TPXCMD       TURN OFF COMMAND INDICATOR       00635600                
       MVI   CSRPOS-1,TUBID-1          ADJUST THE CLC FOR PORTLINE      00635900                
*******                                                                 00636300                
******************************************************************* @14 00636600                
       SPACE 1                                                          00638000                
.PT040 ANOP                                                             00638400                
CSRLAG EQU   *                         *                                00640000                
       CLI   PLCHN-1(,PL),NOBIT        END OF CHAIN?                    00650000                
       AIF   (&CSIO EQ '1').PT050                                       00651000                
       AGO   .PT060                                                     00651100                
.PT050 ANOP                                                             00651200                
       AIF   (&NCPOR).PT070                                             00651300                
.PT060 ANOP                                                             00651400                
       SPACE 1                                                          00651500                
******************************************************************* @14 00651600                
*******                                                                 00653000                
       ST    CSRSPM+3,PL               SAVE ADDRESS OF LAST ON CHAIN    00655000                
*******                                                                 00656000                
******************************************************************* @14 00656500                
       SPACE 1                                                          00658000                
.PT070 ANOP                                                             00659000                
       JE    CSRCST                    YES - CHECK STOP INVITE QUEUE    00660000                
       L     PLCHN(,PL),PL             XR1 --> NEXT PL                  00670000                
       ST    CLBPL@(,CLB),PL           SAVE THIS PL ADDRESS             00680000                
       AIF   (&NBCPP).PP010                                             00680800                
       SPACE 1                                                          00681600                
******************************************************************* @14 00682400                
*******                                                                 00683200                
       TBF   CLBATR(,CLB),ATRCTL       IS THIS A POINT TO POINT LINE ?  00684000                
       TBF   CLBBA3(,CLB),BA3POR       AND NOT A PORTLINE OPERATION ?   00684800                
       JT    CSRNPP                    YES - POINT TO POINT             00685600                
*******                                                                 00686400                
******************************************************************* @14 00687200                
       SPACE 1                                                          00688000                
.PP010 ANOP                                                             00688800                
       TBN   PL$OPM(,PL),OPGET         THIS A GET PL AND                00690000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                      00700000                
       CLC   CLBIND(1,CLB),TUBSID(,XR1) SAME TERMINAL ID?               00710000                
CSRPOS EQU   *                                                          00715000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       00720000                
       BC    CSRLAG,FLSONE             NO - LOOK AGAIN                  00730000                
       SPACE 2                                                          00740000                
* FOUND THE OP-ENDED PL - GO SET UP CLB FOR BSCC WAIT ROUTINE           00750000                
CSRNPP EQU   *                                                          00760000                
       J     CSRSTU                    GO SET UP THE CLB                00770000                
       SPACE 2                                                          00780000                
* PL NOT FOUND ON CLBPLQ - LOOK ON STOP INVITE QUEUE                    00790000                
       SPACE 1                                                          00800000                
CSRCST EQU   *                                                          00810000                
       AIF   (&CSIO EQ '1').PT080                                       00810600                
       AGO   .PT090                                                     00811200                
.PT080 ANOP                                                             00811800                
       AIF   (&NCPOR).PT100                                             00812400                
.PT090 ANOP                                                             00813000                
       SPACE 1                                                          00813600                
******************************************************************* @14 00814200                
*******                                                                 00814800                
       TBN   CLBBA3(,CLB),BA3POR       IS THIS A PORTLINE OPERATION ?   00815400                
       JT    CSRDST                    YES - RECEIVE THE DATA IN DUMMY  00816000                
*******                                                                 00816600                
******************************************************************* @14 00817200                
       SPACE 1                                                          00817800                
.PT100 ANOP                                                             00818400                
       LA    CLBSTQ-1(,CLB),PL         XR1 --> START OF QUEUE           00820000                
CSRSLA EQU   *                         *                                00830000                
       CLI   PLCHN-1(,PL),NOBIT        END OF CHAIN?                    00840000                
       JE    CSRDST                    YES - ERROR CRASH THE SYSTEM     00850000                
       L     PLCHN(,PL),PL             XR1 --> NEXT PL                  00860000                
       ST    CLBPL@(,CLB),PL           SAVE THIS PL ADDRESS             00870000                
       AIF   (&NBCPP).PP020                                             00870900                
       SPACE 1                                                          00871800                
******************************************************************* @14 00872700                
*******                                                                 00873600                
       TBN   CLBATR(,CLB),ATRCTL       IS THIS CONTROL STATION          00874500                
       JF    CSRPLF                    NO, THEN POINT TO POINT          00875400                
*******                                                                 00876300                
******************************************************************* @14 00877200                
       SPACE 1                                                          00878100                
.PP020 ANOP                                                             00879000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                      00880000                
       CLC   CLBIND(1,CLB),TUBSID(,XR1) SAME TUB?                       00890000                
       L     CLBPL@(,CLB),PL           XR1--> PL                        00900000                
       BNE   CSRSLA                    NO - LOOK AGAIN                  00910000                
       SPACE 1                                                          00920000                
* HAVE FOUND THE PL - GO SET UP THE CLB FOR BSCC WAIT ROUTINE           00930000                
       SPACE 1                                                          00940000                
CSRPLF J     CSRSTU                    GO SET UP THE CLB                00950000                
CSRDST EQU   *                         *                                00950100                
       AIF   (&CSIO EQ '1').PT110                                       00950200                
       AGO   .PT120                                                     00950210                
.PT110 ANOP                                                             00950220                
       AIF   (&NCPOR).PT130                                             00950230                
.PT120 ANOP                                                             00950240                
       SPACE 1                                                          00950250                
******************************************************************* @14 00950260                
*******                                                                 00950300                
* RTN TO SET UP PL FOR SIOC INPUT WITHOUT A GET                         00950600                
* FILL IN PL FIELDS THAT ARE NECESSARY                                  00950700                
* PUT PL ON CLBPLQ                                                      00950800                
       SPACE                                                            00950900                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?        00951000                
       JF    CSRDTT                    NO, NOW A DISASTER               00951100                
CSRSPM LA    #,PL                      POINT TO LAST ON CHAIN           00951200                
       MVC   PLCHN(2,PL),@PRMDY        CHAIN IN DUMMY PARM LIST         00951300                
       L     @PRMDY,PL                 POINT TO DUMMY PARM LIST         00951400                
       MVI   PLCHN-1(,PL),NOBIT        ASSURE THIS IS THE END-OF-CHAIN  00951500                
       ST    CLBPL@(,CLB),PL           SAVE THIS PL ADDRESS             00951600                
       MVC   PLINL(2,PL),CLBMCL(,CLB)  MAX MESSAGE LENGTH               00951700                
* FIND TUB TO GO WITH THIS OPERATION                                    00951800                
       L     @TUBQ,XR1                 POINT TO FIRST TUB               00951900                
* THERE MUST BE A PORT FOR THE DATA.                                    00952000                
* IF NOT,THE USER DID NOT ASSIGN A PORT TO GO WITH THE PORT HE PUT      00952100                
* FROM IN THE OTHER CPU                                                 00952200                
CSRSNP CLI   TUBCCP(,XR1),TUBSTP       END OF TUBS                      00952300                
       JE    CSRLDT                    YES                              00952400                
       TBN   TUBPHY(,XR1),TUBAPT       PORT TUB ?                       00952500                
       JF    CSRSLP                    NO - CONTINUE LOOKING            00952600                
       CLC   CLBIND(1,CLB),TUBID-1(,XR1) FIND CORRECT TUB               00952700                
       JNE   CSRSLP                    NO - CONTINUE LOOKING            00952800                
       CLC   CSSCLB(2),TUBDTF(,XR1)    IS THIS THE CORRECT DTF ?        00952810                
       JE    CSRSFT                    YES - THIS IS THE CORRECT PORT   00952820                
CSRSLP EQU   *                                                          00952830                
       TBN   TUBCHR(,XR1),TUBCMN       IS THIS A COMMAND MODE TUB ?     00952840                
       JF    CSRSLT                    NO - THIS IS A SHORT TUB         00952850                
       LA    TUBLNC-TUBLN(,XR1),XR1    BUMP FOR COMMAND MODE TUB        00953100                
CSRSLT EQU   *                                                          00953130                
       LA    TUBLN(,XR1),XR1           BUMP FOR NON-COMMAND MODE TUB    00953160                
       B     CSRSNP                    GO TRY NEXT TUB                  00953300                
CSRSFT L     @PRMDY,XR2                POINT TO DUMMY PARM LIST         00953400                
       ST    PLTUBA(,XR2),XR1          SAVE TUB ADDRESS IN PL           00953500                
       MVC   PL$TNT(2,XR2),TUBTNT(,XR1) TNT ENTRY ADDRESS               00953600                
       L     CSSCLB,CLB                XR2-->CLB                        00953700                
       L     CLBPL@(,CLB),PL           XR1--> PL                        00953800                
       J     CSRSTU                    GO SET UP THE CLB                00953900                
* NO PORT TUB WAS FOUND FOR THE DATA. GO TO YMWAIT TO GET THE       @22 00953950                
* COMPLETION CODE. IF COMPLETION CODE WAS A 40, PUT IN A 4D         @22 00954000                
* COMP. CODE AND GO TO $CC4UE TO U-CR (THE OTHER SYSTEM DID A       @22 00954010                
* PUT TO A PORT THAT WE DO NOT HAVE). IF COMPLETION CODE WAS NOT    @22 00954020                
* A 40, GO TO $CC4UE TO HANDLE WHAT EVER IT IS (WE MAY HAVE GOTTEN  @22 00954030                
* AN UNEXPECTED OP END SUCH AS A TIME OUT SO THAT THE TUB ID        @22 00954040                
* WAS NOT IN THE DATA STREAM ).                                     @22 00954050                
CSRLDT EQU   *                         *                                00954100                
       B     YMWAIT                    CALL BSCC WAIT ROUTINE       @22 00954110                
       SBF   $FLGC,#NTRCS              SET TO TRACE THIS OP-END     @22 00954120                
       B     CC4TT                     TRACE THE CHECK ENTRY        @22 00954130                
       DC    AL1(TTMOPN)               TRACE ID                     @22 00954140                
       CCP   UNMASK,PMR                ALLOW INTERRUPTS             @22 00954150                
       CLI   CLBCMP(,CLB),CMPEND       NORMAL COMPLETION?           @22 00954160                
       JE    CSRUDS                    YES, U-CR WITH 4D COMP CODE  @22 00954170                
       L     CSSPL,PL                  NO, POINT TO CLBPL@          @22 00954180                
       J     CSRGUE                    GO TO UE TO HANDLE BAD COMP  @22 00954190                
CSRUDS MVI   CLBCMP(,CLB),CMPIRQ       SET CANCEL CODE FOR $CC4UF   @22 00954200                
       L     @PRMDY,PL                 XR1 --> PL                       00954300                
CSRGUE B     CC4TA                     CALL TRANSIENT AREA HANDLER  @22 00954400                
       DC    AL1(CC4UE)                ERROR TRANSIENT ID ($CC4UE)      00954500                
*   GO SCHEDULE THIS LINE                                           @22 00954510                
       SLC   #CSOND(1),X$0001          DECREMENT OP END COUNT       @22 00954520                
       SLC   CLBOPE(1,CLB),X$0001      DECREMENT CLB OP END COUNT   @22 00954530                
       B     CSCHED                    GO SCHEDULE THIS LINE        @22 00954540                
*                                                                   @22 00954550                
CSRDTT EQU   *                         *                                00954600                
*******                                                                 00954700                
******************************************************************* @14 00954750                
       SPACE 1                                                          00954800                
.PT130 ANOP                                                             00955000                
       DC    AL2(0)                    DISASTER ERROR--NO PL ON THE     00960000                
*                                      QUEUE FOR THE OP-ENDED TERMINAL  00970000                
       EJECT                                                            00980000                
* SET UP THE CLB FOR THE BSCC WAIT ROUTINE                              00990000                
* XR2 --> CLB                                                           01000000                
* CLBPL@ CONTAINS THE PL ADDRESS                                        01010000                
       SPACE 1                                                          01020000                
CSRSTU EQU   *                         *                                01030000                
       AIF   (&CSIO EQ '1').PT140                                       01031000                
       AGO   .PT150                                                     01031100                
.PT140 ANOP                                                             01031200                
       AIF   (&NCPOR).PT160                                             01031300                
.PT150 ANOP                                                             01031400                
       SPACE 1                                                          01031500                
******************************************************************* @14 01031600                
*******                                                                 01031700                
CSRRPI MVI   CLBIND(,CLB),#            RESTORE PORTID TO CLB            01035000                
       MVI   CSRPOS-1,TUBSID           RESTORE THE CLC FOR BSCC OP ENDS 01035500                
*******                                                                 01037000                
******************************************************************* @14 01037500                
       SPACE 1                                                          01038000                
.PT160 ANOP                                                             01039000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       01040000                
       ST    CSSPL,PL                  SAVE THE PL ADDRESS              01050000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                      01060000                
       MVC   CLBOWN(2,CLB),TUBTCB(,XR1)  CURRENT TCB@                   01065000                
       SBN   TUBAT2(,XR1),TUBOWN       SET TUB OWNERSHIP INDICATOR      01070000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       01080000                
       B     CSTASV                    SAVE THIS TUB'S ATTRIBUTES       01090000                
       SPACE 1                                                          01100000                
* GETMAIN THE REQUIRED AMOUNT OF TP BUFFERS                             01110000                
       SPACE 1                                                          01120000                
       CLI   CLBIBA-1(,CLB),NOBIT      ANY TO FREE?                     01130000                
       JE    CSRNFE                    NO - SKIP FREEMAIN               01140000                
* MUST REMAIN MASKED UNTIL AFTER THE GET-MAIN TO PREVENT CM FROM        01150000                
*  SNATCHING THE TP BUFFER AREA THAT WAS PREVIOUSLY RESERVED--------->| 01160000                
       CCP   MASK,PMR                  MASK INTERRUPTS                | 01170000                
       L     CLBIBA(,CLB),XR2          XR2 --> AREA TO FREE           | 01180000                
       B     CC4FM                     GO TO FREEMAIN ROUTINE         | 01190000                
       L     CSSCLB,CLB                XR2 --> CLB                    | 01200000                
       MVI   CLBIBA-1(,CLB),NOBIT      ZIP LEFT-MOST BYTE             | 01210000                
CSRNFE EQU   *                         *                              | 01220000                
       TBF   CLBAT1(,CLB),AT1SOH       STATUS MSG COMING IN?          | 01230000                
       TBF   CLBBA3(,CLB),BA3STS       OR SHOULD BE COMING IN ?       | 01240000                
       JT    CSRNOS                    NO - JUMP                      | 01250000                
       SPACE 1                                                        | 01260000                
* USE THE STATUS AREA IN $CC4U0 FOR THIS TEXT--IT IS EITHER A STATUS  | 01270000                
*    MSG OR WE ARE GOING TO SWALLOW THIS DATA                         | 01280000                
CSRSTS EQU   *                                                        | 01290000                
       CCP   UNMASK,PMR                ALLOW INTERRUPTS               | 01300000                
       AIF   (&CSIO EQ '1').PT170                                       01300300                
       AGO   .PT180                                                     01300330                
.PT170 ANOP                                                             01300360                
       AIF   (&NCPOR).PT190                                             01300390                
.PT180 ANOP                                                             01300420                
       SPACE 1                                                          01300450                
******************************************************************* @14 01300480                
*******                                                                 01300510                
* IF PORT DEVICE, PUT IN ADDRESS OF PORT AREA TO EAT THE DATA         | 01301500                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?      | 01301800                
       JF    CSRPNT                    NO                             | 01302100                
       SPACE                                                            01302400                
CSRCMD TBN   CLBIND(,CLB),TPXCMD       COMMAND DATA                   | 01302700                
       JT    CSRKEP                    YES, KEEP THE DATA             | 01303000                
       MVI   CLBOPC(,CLB),OPCFAB       PUT ABORT OP IN THE CLB        | 01303300                
       SBN   CLBBA2(,CLB),BA2ABT       SET ABORT REQUEST              | 01303600                
       TBN   PLOPC(,PL),OPDMY          DUMMY PARM LIST                | 01303900                
       JF    CSRAGN                    NO                             | 01304200                
       B     CSDEQ                     GO DEQUEUE PL FROM CLBPLQ      | 01304500                
CSRAGN EQU   *                         *                              | 01304800                
       B     CSNOEN                    GO WAIT ON THE ABORT           | 01305100                
CSRKEP EQU   *                         *                              | 01305400                
       SBF   CLBBA2(,CLB),BA2ABT       CLEAR ABORT REQUEST            | 01305700                
       L     PLTUBA(,PL),XR1           XR1--> TUB                     | 01306000                
       SBF   TUBSCS(,XR1),TUBPRG       SET OFF PORT PURGE INDICATOR   | 01306300                
       L     CLBPL@(,CLB),PL           XR1--> PL                      | 01306600                
       J     CSRGTM                    GO TO NORMAL PROCESSING        | 01306900                
CSRPNT EQU   *                         *                              | 01307200                
*******                                                               | 01307500                
******************************************************************* @14 01307600                
       SPACE 1                                                        | 01307800                
.PT190 ANOP                                                             01308400                
       MVC   CLBWKB(2,CLB),@CSTS3      PUT LINE 3 ADDRESS IN          | 01310000                
       AIF   (&C#NL EQ '1').L0600      ONE LINE ONLY.                   01320000                
       CLI   CLBDEV(,CLB),DEVBS3       LINE 3?                        | 01330000                
       JE    CSRIS3                    YES - JUMP                     | 01340000                
       MVC   CLBWKB(2,CLB),@CSTS4      PUT LINE 4 ADDRESS IN          | 01350000                
CSRIS3 EQU   *                         *                              | 01360000                
.L0600 ANOP                            *                                01370000                
       MVC   CLBREL(2,CLB),LNTHSS      PUT STATUS MSG LENGTH IN       | 01380000                
CSRNSS EQU   *                         *                              | 01390000                
       TBN   CLBBA3(,CLB),BA3STS       WAS A POLL FOR STATUS ACTIVE   | 01400000                
       TBF   CLBAT1(,CLB),AT1SOH       AND NO STATUS RECEIVED ?       | 01410000                
       BF    CSRWAT                    NO - CALL BSCC WAIT ROUTINE    | 01420000                
       SPACE 1                                                        | 01430000                
*   DID A POLL FOR STATUS BUT DID NOT GET STATUS - RATHER THAN        | 01440000                
*   HANGING THE SYSTEM IN A POLL FOR STATUS LOOP - PUT THIS           | 01450000                
*   TERMINAL INTO ERROR RECOVERY OR GIVE THE USER A NEGATIVE          | 01460000                
*   RETURN CODE                                                       | 01470000                
       SPACE 1                                                        | 01480000                
       TBN   CLBBA1(,CLB),BA1CRI       STOP INVITE REQUESTED ?      @11 01481000                
       JF    CSRNSI                    NO - $CC4UE TO HANDLE ERROR  @11 01482000                
       B     *+5                       SET ARR FOR TERM. BRANCH     @11 01483000                
       DC    AL1(TINS)                 U-NS HALT                    @11 01484000                
       L     @CC4TH,IAR                BRANCH TO TERMINATION        @11 01485000                
CSRNSI EQU   *                                                      @11 01486000                
       B     YMWAIT                    CALL BSCC WAIT ROUTINE         | 01490000                
       SBF   $FLGC,#NTRCS              SET TO TRACE THIS OP-END       | 01500000                
       B     CC4TT                     TRACE THE CHECK ENTRY          | 01510000                
       DC    AL1(TTMOPN)               TRACE ID                       | 01520000                
       CCP   UNMASK,PMR                ALLOW INTERRUPTS               | 01530000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER    | 01540000                
       DC    AL1(CC4UE)                ERROR TRANSIENT ID - $CC4UE    | 01550000                
* GO SCHEDULE THIS LINE                                               | 01560000                
       SLC   #CSOND(1),X$0001          DECREMENT OP-END COUNT     @03 | 01563000                
       SLC   CLBOPE(1,CLB),X$0001      DECREMENT CLB OP-END COUNT @03 | 01566000                
       B     CSCHED                    GO SCHEDULE THIS LINE          | 01580000                
       SPACE 2                                                        | 01590000                
* NOT A STATUS MSG - SEE IF THIS IS A PURGE PL                        | 01600000                
       SPACE 1                                                        | 01610000                
CSRNOS EQU   *                         *                              | 01620000                
       TBN   PLOPC(,PL),OPPUT+OPGET    IS THIS A ---                  | 01630000                
       TBN   PLOPM(,PL),OPSTOP         PURGE PL?                      | 01640000                
       BT    CSRSTS                    YES - USE STATUS HOLD AREA     | 01650000                
       AIF   (&CSIO EQ '1').NP060                                       01650600                
       SPACE 1                                                        | 01651200                
******************************************************************* @14 01651500                
*******                                                               | 01651800                
       TBN   PL$OPM(,PL),OPGET         GET OP CODE                    | 01653000                
       L     PLTUBA(,PL),TUB           XR2--> TUB                     | 01653600                
       TBN   TUBSCS(,TUB),TUBPRG       PORT PURGE IN PROCESS          | 01654200                
       L     CSSCLB,CLB                XR2--> CLB                     | 01654800                
       CLI   CLBDEV(,CLB),DEVSIO       SIOC ONLY DEVICE ?             | 01655400                
       BC    CSRSTS,TRUAEQ             IF SIOC PURGE, GO THROW DATA   | 01656000                
*******                                                               | 01656600                
******************************************************************* @14 01656900                
.NP060 ANOP                                                             01658400                
       SPACE 2                                                        | 01660000                
* GETMAIN THE CORRECT SIZE INPUT AREA USING PLINL AND PUT IT'S        | 01670000                
*  ADDRESS INTO THE CLB                                               | 01680000                
       SPACE 1                                                        | 01690000                
CSRGTM EQU   *                         *                              | 01695000                
       LA    GMLIST,XR2                XR2 --> GM PL                  | 01700000                
       MVI   0(,XR2),NOBIT             MAKE IT A NOWAIT REQUEST       | 01710000                
       MVC   GMSIZE(2,XR2),PLINL(,PL)  PUT IN REQUIRED SIZE           | 01720000                
       AIF   (&CSIO EQ '1').PT200                                       01730400                
       AGO   .PT210                                                     01730450                
.PT200 ANOP                                                             01730500                
       AIF   (&NCPOR).PT220                                             01730550                
.PT210 ANOP                                                             01730600                
       SPACE 1                                                          01730650                
******************************************************************* @14 01730700                
*******                                                               | 01730750                
       L     CSSCLB,XR1                XR1--> CLB                     | 01732000                
       TBN   CLBBA3(,XR1),BA3POR       PORTLINE OR SIOC DEVICE ?      | 01732400                
       JF    CSRGPL                    NO                             | 01732800                
       MVC   GMSIZE(2,XR2),CLBBKL(,XR1) USE LENGTH FROM OTHER SYSTEM  | 01733200                
       TBN   CLBBA3(,XR1),BA3PON       IS THIS A PORTLINE ONLY CLB ?  | 01733280                
       JF    CSRGP1                    NO - CONTINUE                  | 01733360                
       MVC   GMSIZE(2,XR2),CLBREL(,XR1) USE LENGTH FROM OTHER SYSTEM  | 01733440                
CSRGP1 EQU   *                                                        | 01733520                
       ALC   GMSIZE(2,XR2),LNTHCC      ADD LENGTH FOR CONTROL INFO    | 01733600                
       TBN   CLBIND(,XR1),TPXCMD       COMMAND DATA                   | 01734000                
       L     CLBPL@(,XR1),PL           XR1--> PL                      | 01734400                
       JF    CSRINL                    NO                             | 01734800                
       MVC   PRTWRK(1),#PCTLN          MAXPCT TO 2-BYTE ADD AREA      | 01735200                
       ALC   GMSIZE(2,XR2),PRTWRK      ADD MAXPCT LENGTH              | 01735600                
CSRINL EQU   *                         *                              | 01736000                
       TBN   PLOPM(,PL),OP$SYS         SYSTEM OP                      | 01736400                
       JF    CSRGPL                    NO                             | 01736800                
       MVC   PLINL(2,PL),GMSIZE(,XR2)  SET LENGTH OF TPBUFF INPUT AREA| 01737200                
CSRGPL EQU   *                         *                              | 01737600                
*******                                                               | 01738000                
******************************************************************* @14 01738200                
       SPACE 1                                                        | 01738800                
.PT220 ANOP                                                             01739200                
       ALC   GMSIZE(2,XR2),X$0004      ADD 4 FOR GM PL                | 01739600                
       B     CSGMRQ                    GO DO THE GM                   | 01740000                
       JNOL  CSRGMW                    GM WORKED - JUMP               | 01750000                
       DC    AL1(0)                    GM FAILED - SHOULDN'T HAVE     | 01760000                
CSRGMW EQU   *                         *                              | 01770000                
       LA    0(,XR2),XR1               XR1 --> GM PL LIST             | 01780000                
       L     CSSCLB,CLB                XR2 --> CLB                    | 01790000                
       MVC   CLBIBA(2,CLB),GMADDR(,XR1) PUT ADDRESS IN CLB            | 01800000                
       AIF   (&CSIO EQ '1').PT230                                       01800500                
       AGO   .PT240                                                     01800560                
.PT230 ANOP                                                             01800620                
       AIF   (&NCPOR).PT250                                             01800680                
.PT240 ANOP                                                             01800740                
       SPACE 1                                                          01800800                
******************************************************************* @14 01800860                
*******                                                               | 01800920                
* SET UP GETMAIN AREA FOR PORTS (SEE MACRO $ETPX)                     | 01802500                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?      | 01803000                
       JF    CSRNPT                    NO                             | 01803500                
       L     CLBIBA(,CLB),XR1          XR1 --> GETMAIN AREA           | 01804000                
       SLC   TPXRTC(4,XR1),TPXRTC(,XR1) CLEAR RETURN CODE/DATA ADDRESS| 01804500                
       ALC   CLBIBA(2,CLB),LNTHCC      BUMP TPBUFF ADDR PAST SAVE AREA| 01805000                
       MVC   TPXFRL(4,XR1),TPXFRP(,XR1) MOVE GETMAIN/FREEMAIN PARMS   | 01805500                
       MVC   TPXPID(1,XR1),CLBIND(,CLB) PORT ID TO TPBUFF             | 01806000                
       MVC   TPXDLN(2,XR1),CLBBKL(,CLB) LENGTH OF TEXT TO TPBUFF      | 01806500                
       TBN   CLBBA3(,CLB),BA3PON       IS THIS A PORTLINE ONLY CLB ?  | 01806600                
       JF    CSRNPT                    NO - CONTINUE                  | 01806700                
       MVC   TPXDLN(2,XR1),CLBREL(,CLB) LENGTH OF TEXT TO TPBUFF      | 01806800                
       SLC   TPXDLN(2,XR1),X$0003      -3 FROM PLEFFL FOR CONTROL DATA| 01806900                
CSRNPT EQU   *                         *                              | 01807000                
*******                                                               | 01807500                
******************************************************************* @14 01807700                
       SPACE 1                                                        | 01808000                
.PT250 ANOP                                                             01809000                
       CCP   UNMASK,PMR                UNMASK INTERRUPTS <------------| 01810000                
       ALC   CLBIBA(2,CLB),X$0004      UP ADDRESS TO DATA FIELD         01820000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       01830000                
       MVC   CLBIBL(2,CLB),PLINL(,PL)  PUT SIZE IN CLB                  01840000                
       AIF   (&CSIO EQ '1').PT260                                       01840600                
       AGO   .PT270                                                     01840680                
.PT260 ANOP                                                             01840760                
       AIF   (&NCPOR).PT280                                             01840840                
.PT270 ANOP                                                             01840920                
       SPACE 1                                                          01841000                
******************************************************************* @14 01841080                
*******                                                                 01841200                
* USE LENGTH OF DATA SENT FROM OTHER SYSTEM                             01843000                
* LENGTH PUT IN CLBBKL BY PORT INTERRUPT HANDLER                        01843600                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?        01844200                
       JF    CSRUPL                    NO                               01844800                
       MVC   CLBIBL(2,CLB),CLBBKL(,CLB) LENGTH FROM OTHER SYSTEM        01845400                
       TBN   CLBBA3(,CLB),BA3PON       IS THIS A PORTLINE ONLY CLB ?    01845500                
       JF    CSRUPL                    NO - CONTINUE                    01845600                
       MVC   CLBIBL(2,CLB),CLBREL(,CLB) LENGTH FROM OTHER SYSTEM        01845700                
CSRUPL EQU   *                         *                                01846000                
*******                                                                 01846600                
******************************************************************* @14 01846900                
       SPACE 1                                                          01847200                
.PT280 ANOP                                                             01848400                
       MVC   CLBMR@(4,CLB),CLBIBA(,CLB) SAVE ORIGINAL SIZE AND LENGTH   01850000                
       MVC   CLBWKB(2,CLB),CLBIBA(,CLB) PUT ADDRESS IN FOR BSCC WAIT    01860000                
       MVC   CLBREL(2,CLB),CLBIBL(,CLB) PUT IN LENGTH WANTED            01870000                
       SPACE 3                                                          01880000                
* GO TO THE BSCC WAIT ROUTINE TO MOVE THE TEXT                          01890000                
       SPACE 2                                                          01900000                
CSRWAT EQU   *                         *                                01910000                
       AIF   (&CSIO EQ '1').NP100                                       01910900                
       SPACE 1                                                          01912700                
******************************************************************* @14 01913100                
*******                                                                 01913600                
       B     CSWATE                    GO TO BSCC OR SIOC WAIT          01914500                
*******                                                                 01915400                
******************************************************************* @14 01915800                
       SPACE 1                                                          01916300                
       AGO   .YP100                                                     01918100                
.NP100 ANOP                                                             01919000                
       B     YMWAIT                    BSCC WAIT ROUTINE                01920000                
.YP100 ANOP                                                             01925000                
* TRACE THE OP-END - UNLESS THIS IS INTERVAL POLLING AND                01930000                
*  ALL TERMINALS HAVE RESPONDED WITH EOT (NO TEXT TO SEND)              01940000                
       TBN   CLBBA2(,CLB),BA2RCI       POLLING AND -                    01950000                
       CLI   CLBCMP(,CLB),CMPNEG       NEGATIVE RESPONSE -              01960000                
       TBN   $FLGC,#NTRCS              AND WANT TO SKIP TRACE ?         01970000                
       JC    CSRSTR,TRUAEQ             YES - SKIP TRACE                 01980000                
       B     CC4TT                     GO TO TRACE SUBROUTINE           01990000                
       DC    AL1(TTMOPN)               OP-END TRACE                     02000000                
* TRACE ROUTINE RETURNS WITH INTERRUPTS MASKED                          02010000                
       CCP   UNMASK,PMR                ALLOW INTERRUPTS                 02020000                
CSRSTR EQU   *                         *                                02030000                
       SLC   #CSOND(1),X$0001          DECREMENT OP-END COUNT           02040000                
       SLC   CLBOPE(1,CLB),X$0001      DECREMENT CLB OP-END COUNT       02050000                
       SPACE 2                                                          02060000                
* CHECK FOR AND HANDLE ANY STOP INVITES                                 02070000                
       TBN   CLBBA1(,CLB),BA1CRI       STOP INVITE PREVIOUSLY REQUESTED 02080000                
       JF    CSRNST                    NO - GO CHECK COMP CODE          02090000                
       SPACE 1                                                          02100000                
* CALL THE STOP INVITE TRANSIENT TO CLEAN UP ANY OUTSTANDING STOPS      02110000                
       SPACE 1                                                          02120000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      02130000                
       DC    AL1(CC4UT)                TRANSIENT ID - $CC4UT            02140000                
       SPACE 2                                                          02150000                
* TRANSIENT WILL RETURN ON THE ARR TO RESCHEDULE THE LINE               02160000                
*    WILL RETURN ON ARR+4 TO HANDLE THE OP-END                          02170000                
       SPACE 1                                                          02180000                
       B     CSCHED                    GO SCHEDULE THE LINE             02190000                
       SPACE 1                                                          02200000                
* HANDLE THE OP-END                                                     02210000                
       SPACE 1                                                          02220000                
CSRNST EQU   *                         *                                02230000                
       CLI   CLBCMP(,CLB),CMPCMP       NOT DONE YET COMP CODE?          02240000                
       JNE   CSRCPL                    NO - JUMP                        02250000                
       L     PLTUBA(,PL),TUB           XR2--> TUB                       02260000                
       SBF   TUBAT2(,TUB),TUBOWN       SET OFF OWNERSHIP IND            02270000                
       B     CSNMOR                    GO CHECK FOR MORE WORK           02280000                
CSRCPL EQU   *                         *                                02290000                
       SPACE 1                                                          02300000                
       AIF   (&CINT).IP201             NO INT POLL,CHK BSY PRT          02310000                
       AGO   .IP202                    WHEN INTPOL,SKIP BSY PRT TST     02312000                
.IP201 ANOP                                                             02314000                
       AIF   (&NPBY).I0100             . NOT BSYPRT OR INTPOL           02316000                
.IP202 ANOP                            . BUSY PRINT,OR INTERVAL POLL    02318000                
* CHECK FOR INTERVAL POLLING WAIT REQUIRED                              02320000                
       SPACE 1                                                          02330000                
       CLI   CLBCMP(,CLB),CMPNEG       44 COMP CODE AND                 02340000                
       TBN   CLBBA2(,CLB),BA2RCI       POLLING?                         02350000                
       JC    CSRNIP,FLSONE             NO - JUMP                        02360000                
       AIF   (&CINT).IP203             . SKIP IF ONLY BUSY PRINTER      02365000                
       SBN   $FLGC,#NTRCS              SET TO SKIP TRACE (INT POLL)     02370000                
.IP203 ANOP                            . BSY PRT OR INTERVAL POLL       02375000                
       SPACE 1                                                          02380000                
* GET TIME REMAINING FROM INTERVAL TIMER - IF IT IS ZERO, THEN GO WAIT  02390000                
       SPACE 1                                                          02400000                
       SLC   CLBBA2(2,CLB),CLBBA2(,CLB) ZIP THE LINE ATTRIBUTES         02410000                
       L     PLTUBA(,PL),XR1            XR1--> TUB                      02420000                
       SBF   TUBAT2(,XR1),TUBOWN       SET OFF TUB OWNER IND            02430000                
       SPACE 1                                                          02440000                
* FREE ANY INPUT AREA - CM MAY BE ABLE TO USE IT                        02450000                
       SPACE 1                                                          02460000                
       CLI   CLBIBA-1(,CLB),NOBIT      ANY TO FREE?                     02470000                
       JE    CSRTNF                    NO - JUMP                        02480000                
       L     CLBIBA(,CLB),XR2          XR2 --> AREA TO FREE             02490000                
       CCP   MASK,PMR                  MASK INTERRUPTS                  02500000                
       B     CC4FM                     GO FREE IT                       02510000                
       CCP   UNMASK,PMR                UNMASK INTERRUPTS                02520000                
       L     CSSCLB,CLB                XR2 --> CLB                      02530000                
       MVI   CLBIBA-1(,CLB),NOBIT      WIPE OUT THE ADDR                02540000                
CSRTNF EQU   *                                                          02550000                
       AIF   (&CINT).IP204             . INT POLL ONLY                  02555000                
       LA    CSTIMR,XR2                XR2 --> TIMER IOB                02560000                
       MVI   TIMFLG(,XR2),ALLBIT       SET TO CANCEL TIME REMAINING     02570000                
       SVC   0                         SPVR CALL                        02580000                
       DC    AL1(TTMRIB)               TIMER RIB - GET TIME REMAINING   02590000                
       SBF   TIMECB(,XR2),POST+WAIT    SET OFF POSTED BITS              02600000                
       TBN   CSSWIT,VALOPE             OP-END SINCE LAST HERE?          02610000                
       SBF   CSSWIT,VALOPE             SET IT OFF                       02620000                
       MVI   TIMFLG(,XR2),X'02'        SET FOR TIMER UNITS              02630000                
       JF    CSRTCW                    NO - SEE IF WE MUST WAIT         02640000                
       MVC   TIMTIM(4,XR2),POLTIM      PUT TIME TO POLL IN              02650000                
CSRTSP EQU   *                                                          02660000                
       L     CSSCLB,CLB                XR2 --> CLB TO SCHEDULE          02670000                
       AIF   (&NPBY).BP300             BUSY PRINT SUPPORTED?            02671000                
.IP204 ANOP                            . BUSY PRINT BUT NOT INT POLL    02671500                
*                                      ------START------------------@07 02672000                
       TBN   CLBBA3(,CLB),BA3BYP       ANY PRINTERS BEING POLLED?       02673000                
       JF    CSNCLN                    NO - DON'T NEED TO CLEANUP.      02674000                
       B     CC4TA                     CALL TRANSIENT HANDLER           02675000                
       DC    AL1(CC4UP)                BUSY PRINTER CLEANUP             02676000                
CSNCLN EQU   *                         * LOCAL                          02677000                
*                                      -------END-------------------@07 02678000                
.BP300 ANOP                            *                                02679000                
       B     CSCHED                    GO SCHEDULE THIS LINE            02680000                
       AIF   (&CINT).IP205             . WHEN ONLY BSY PRT: SKIP        02685000                
       SPACE 2                                                          02690000                
* SEE IF A WAIT SHOULD BE DONE NOW                                      02700000                
CSRTCW EQU   *                                                          02710000                
       CLC   TIMTIM(4,XR2),X0000       TIME ZERO ?                      02720000                
       JE    CSRTWT                    YES - GO WAIT                    02730000                
       SPACE 1                                                          02740000                
* NOT ZERO YET - GO POLL AGAIN                                          02750000                
       B     CSRTSP                    GO POLL AGAIN                    02760000                
       SPACE 1                                                          02770000                
* PREPARE TO WAIT ON TIMER ALSO                                         02780000                
CSRTWT EQU   *                                                          02790000                
       SBF   TIMECB(,XR2),SKIP         SET TO WAIT ON TIMER ALSO        02800000                
       MVC   TIMTIM(3,XR2),WAITIM      PUT TIME IN IOB                  02810000                
       SVC   0                         SPVR CALL                        02820000                
       DC    AL1(STMRIB)               START TIMER RIB                  02830000                
       L     CSSCLB,CLB                XR2--> CLB                       02840000                
       SBN   CLBATB(,CLB),ATBTIM       SET TO RESCHEDULE                02850000                
       B     CSSTRT                    GO WAIT                          02860000                
       SPACE 3                                                          02870000                
.IP205 ANOP                            . BSYPRNTR ONLY OR BOTH          02875000                
CSRNIP EQU   *                         *                                02880000                
.I0100 ANOP                            *                                02890000                
       SBN   CSSWIT,VALOPE             SET VALID OP END IND             02900000                
       CLI   CLBCMP(,CLB),CMPEOF       ERROR COMP CODE?                 02910000                
       JNH   CSROK                     NO - GO HANDLE SUCCESSFUL OPEND  02920000                
       SPACE 2                                                          02930000                
* CALL ERROR TRANSIENT                                                  02940000                
       SPACE 2                                                          02950000                
CSRERR EQU   *                         *                                02960000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      02970000                
       DC    AL1(CC4UE)                ERROR TRANSIENT ID - $CC4UE      02980000                
       SPACE 1                                                          02980500                
       AIF   (&CSIO EQ '1').NP110                                       02981000                
******************************************************************* @14 02981200                
*******                                                                 02981500                
* IF THE RETURN IS WHEN PROCESSING A PORT DEVICE OPERATION, AND THE     02983000                
* USER IS BEING CANCELLED BY $CC4II, GO TO EOT PROCESSING               02983500                
       CLI   CLBDEV(,CLB),DEVSIO       SIOC DEVICE ?                    02984000                
       JNE   CSRGSH                    NO                               02984500                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       02985000                
       CLI   PL$RTC-1(,PL),RCRTRM      NEED TO CANCEL USER IN $CC4II    02985500                
       BE    CSREOT                    YES                              02986000                
CSRGSH EQU   *                         *                                02986500                
*******                                                                 02987000                
******************************************************************* @14 02987200                
       SPACE 1                                                          02988000                
.NP110 ANOP                                                             02988500                
* GO SCHEDULE THIS LINE                                                 02990000                
       B     CSCHED                    GO SCHEDULE THIS LINE            03000000                
       SPACE 1                                                          03010000                
CSROK  EQU   *                                                          03020000                
       CLI   CLBCMP(,CLB),CMPEOF       EOT RECEIVED?                    03030000                
       JNE   CSRAOK                    NO - HAVE SUCCESSFUL OPERATION   03040000                
       SPACE 1                                                          03050000                
       TBN   CLBBA1(,CLB),BA1PRI       IS A PRIORITY STOP PENDING ?     03060000                
       BF    CSRERR                    NO - EOT TO RCV INIT IS INVALID  03070000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                      03080000                
       SBF   TUBAT2(,XR1),TUBOWN       SET OFF OWNERSHIP IND            03090000                
       SLC   CLBBA2(2,CLB),CLBBA2(,CLB) ZIP THE ATTRIBUTES              03100000                
       B     CSCHED                    GO SCHEDULE THIS LINE            03110000                
       SPACE 2                                                          03120000                
CSRAOK EQU   *                                                          03130000                
       SBF   CLBBA1(,CLB),BA1PRI       SET OFF PRIORITY PUT IND         03140000                
       SLC   PL$RTC(2,PL),PL$RTC(,PL)  ZIP THE INTERNAL RETURN CODE     03150000                
       CLI   CLBCMP(,CLB),CMPTUC       DATA TRUNCATED?                  03160000                
       JNE   CSRNTC                    NO - JUMP                        03170000                
       SBN   PL$RTC(,PL),RCXDTR        SET TRUNCATED RETURN CODE        03180000                
CSRNTC EQU   *                         *                                03190000                
       TBN   CLBAT1(,CLB),AT1SOH       STATUS MSG RECEIVED              03200000                
       JF    CSRDAT                    NO - JUMP                        03210000                
       SPACE 1                                                          03240000                
* HAVE RECEIVED A STATUS MSG - CALL THE TRANSIENT STATUS HANDLER        03250000                
       SPACE                                                            03260000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      03270000                
       DC    AL1(CC4UX)                TRANSIENT ID ($CC4UX)            03280000                
       SPACE 1                                                          03290000                
* RESCHEDULE THE LINE TO GET THE EOT FROM STATUS MSG                    03300000                
       B     CSCHED                    GO RESCHEDULE THIS LINE          03310000                
       SPACE 2                                                          03320000                
CSRDAT EQU   *                         *                                03330000                
       TBF   CLBTBS-4(,CLB),TASREC+TASBLK REC OR BLK MODE AND ---|      03340000                
       TBF   PL$OPC(,PL),OPLSNS+OPRFSH  NOT POLL FOR STATUS OR --|      03350000                
*                                       CLEAR MSG ?  <-----------|      03360000                
       JT    CSRBOK                     JUMP IF NO REC,BLK,CLR, OR STS  03370000                
       SPACE 2                                                          03380000                
* RECORD OR BLK MODE OP END - SEE IF THERE ARE ANY WAIT TYPE OPS        03390000                
*  IN THE QUEUE FOR THIS LINE OWNER                                     03400000                
       SPACE 2                                                          03410000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB OF LINE OWNER        03420000                
       MVC   CSOWNS,TUBTCB(2,XR1)      SAVE TCB @ OF LINE OWNER         03430000                
       LA    CLBPLQ-1(,CLB),PL         XR1--> START OF LINE QUEUE       03440000                
CSREQR EQU   *                                                          03450000                
       CLC   PLCHN(2,PL),CSSPL         NEXT PL THE OP ENDED ONE ?       03460000                
       L     PLCHN(,PL),PL             XR1 --> NEXT PL                  03470000                
       JE    CSRZRO                    YES - JUMP                       03480000                
       L     PLTUBA(,PL),TUB           XR2 --> TUB                      03490000                
       CLC   CSOWNS,TUBTCB(2,TUB)      SAME TCB @ ?                     03500000                
       JNE   CSRZRO                    NO - LOOK AT NEXT PL             03510000                
       TBF   PL$OPM(,PL),OPNOW         THIS REQUEST A NO-WAIT OP --     03520000                
       TBF   PLOPM(,PL),OP$SYS         OR SYSTEM OP?                    03530000                
       JF    CSRZRO                    YES - LOOK AT NEXT PL            03540000                
* CALL REJECT XIENT                                                     03550000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      03560000                
       DC    AL1(CC4UR)                TRANSIENT ID = $CC4UR            03570000                
       DC    XL1'FF'                   SUB-RIB FOR $CC4UR               03580000                
       J     CSRBOK                    CONTINUE TO HANDLE OP END        03590000                
CSRZRO EQU   *                         *                                03600000                
       CLI   PLCHN-1(,PL),NOBIT        END OF CHAIN ?                   03610000                
       BNE   CSREQR                    NO - LOOK AT NEXT PL             03620000                
       SPACE 2                                                          03630000                
* OP IS OK - CONTINUE PROCESSING IT                                     03640000                
CSRBOK EQU   *                         *                                03650000                
       L     CSSCLB,CLB                XR2 --> CLB                      03660000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       03670000                
       AIF   (&NDME).D0050             NO DME SUPPORT.                  03680000                
       TBF   PLOPM(,PL),OPSTOP         NOT A STOP INVITE PARM LIST ?    03690000                
.D0050 ANOP                            *                                03700000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                      03710000                
       AIF   (&NDME).D0100             NO DME SUPPORT.                  03720000                
       CLI   TUBPHY(,XR1),TUB375       CPU TYPE TERMINAL?               03723000                
       JH    CSCPUT                    YES,FORGET CLEAR KEY             03726000                
       TBN   TUBSCS(,XR1),TUBCLR       CLEAR KEY DEPRESSED ON LAST ENTR 03730000                
CSCPUT EQU   *                         CPU TYPE                         03735000                
       TBF   TUBAT2(,XR1),TUBCMD       AND NOT COMMAND MODE             03740000                
       TBN   TUBAT2(,XR1),TUBDTA       AND IN DATA MODE                 03750000                
       TBN   TUBAT1(,XR1),TUBREQ       AND IS REQUESTER OF A PROGRAM ?  03760000                
       JF    CSRNDE                    NO - SKIP DATA MODE ESCAPE CHECK 03770000                
* CHECK FOR DATA MODE ESCAPE                                            03780000                
       LA   CSDMES,XR1                 XR1--> DME STRING (FOR XIENT)    03790000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      03800000                
       DC    AL1(CC4UI)                CALL TRANSIENT $CC4UI -DME CHECK 03810000                
* TRANSIENT RETURNS AT ARR(SEARCH EOT AND DEQUEUE)                      03820000                
* RETURNS ON ARR + 4 FOR CPU NOT DME                                    03825000                
       B     CSCHED                    GO RESCHEDULE THE LINE           03830000                
       SPACE 2                                                          03840000                
CSRNDE EQU   *                                                          03850000                
       L     CLBPL@(,CLB),PL           RELOAD X1 WITH PL@               03853000                
       L     PLTUBA(,XR1),XR1          POINT TO TUB                     03856000                
.D0100 ANOP                            *                                03860000                
       SPACE 1                                                      @06 03861000                
* SET OFF AUTO ERP BIT TO ASSURE AUTO ERP MESSAGES ARE PRINTED      @06 03862000                
       SPACE 1                                                      @06 03863000                
       SBF   TUBAT4(,XR1),TUBEMS       SET OF AUTO ERP BIT          @06 03864000                
       SPACE 1                                                      @06 03865000                
* CHECK FOR 3270 CLEAR KEY (XR1 --> TUB, XR2 --> CLB)                   03870000                
       SPACE 1                                                          03875000                
       CLI   TUBPHY(,XR1),TUB5M2       3270 TYPE TERMINAL?              03880000                
       L     CLBPL@(,CLB),PL           XR1--> PL                        03890000                
       JH    CSRN32                    NO - JUMP                        03900000                
       SPACE 1                                                          03910000                
* CHECK FOR CLEAR AID CHARACTER                                         03920000                
       SPACE 1                                                          03930000                
       MVI   CSCLR+1,EBCLER            PUT EBCDIC CLEAR AID IN          03940000                
       AIF   (&CACI).A0100             NO ASCII.                        03950000                
       TBN   CLBATT(,CLB),ATTCOD       ASCII CODE ?                     03960000                
       JF    CSPTBF                    NO - JUMP                        03970000                
       MVI   CSCLR+1,ASCLER            PUT ASCII CLEAR AID IN           03980000                
CSPTBF EQU   *                         *                                03990000                
.A0100 ANOP                            *                                04000000                
       L     CLBWKB(,CLB),XR1          XR1 --> INPUT TEXT               04010000                
CSCLR  CLI   AIDCHR(,XR1),EBCLER       CLEAR KEY DEPRESSED ?            04020000                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       04030000                
       JNE   CSRN32                    NO - GO SET UP PL FOR INPUT      04040000                
       SPACE 1                                                          04050000                
* CLEAR KEY HAS BEEN DEPRESSED ON A 3270 TYPE TERMINAL                  04060000                
* IF THIS IS A SYSTEM PL OR DME HAS BEEN GEN'ED - SEND A11 CLEAR MSG    04070000                
* IF DME HAS NOT BEEN GEN'ED - GIVE USER AN 07 RETURN CODE              04080000                
       SPACE 2                                                          04090000                
       L     PLTUBA(,PL),XR1           XR1 --> TUB                  @02 04092000                
       SBF   TUBSCS(,XR1),TUBRUF       RESET THE TERM TO NON-PRUF   @02 04094000                
       L     CLBPL@(,CLB),PL           XR1 --> PARAMETER LIST       @02 04096000                
       SLC   PLEFFL(2,PL),PLEFFL(,PL)  ZIP EFFECTIVE LENGTH             04100000                
       TBN   PLOPM(,PL),OP$SYS         SYSTEM OP ?                      04110000                
       JF    CSRCLU                    NO - HANDLE USER                 04120000                
* SYSTEM OP - SEND CLEAR MSG                                            04130000                
CSRCLR EQU   *                                                          04140000                
       MNN   PL$OPC(,PL),PL$OPM(,PL)   SAVE THE CURRENT OP              04150000                
       SBN   PL$OPC(,PL),OPRFSH        SET REFRESH BIT IN PL            04160000                
       SBN   CLBBA1(,CLB),BA1EOT       SET 'SEARCH EOT' (DON'T DEQUE)   04170000                
       B     CSCHED                    GO SCHEDULE THIS LINE            04180000                
       SPACE 1                                                          04190000                
* USER PL AND CLEAR KEY DEPRESSED                                       04200000                
CSRCLU EQU   *                         *                                04210000                
       MVI   PL$RTC(,PL),RCXCLR        PUT IN CLEAR RETURN CODE         04220000                
       AIF   (&NDME).D0200                                              04230000                
       L     PLTUBA(,PL),TUB           XR2 --> TUB                      04240000                
       SBN   TUBSCS(,TUB),TUBCLR       SET CLEAR IND. IN TUB            04250000                
       L     TUBLCB(,TUB),CLB          XR2 --> CLB                      04260000                
       B     CSRCLR                    GO SEARCH EOT - NO DEQUEUE       04270000                
       AGO   .D0300                                                     04280000                
.D0200 ANOP                                                             04290000                
       SBN   CLBBA1(,CLB),BA1DEQ       SET TO DEQUE                     04300000                
       B     CSRCLR                    GO SEARCH EOT                    04310000                
.D0300 ANOP                                                             04320000                
CSRN32 EQU   *                         *                                04330000                
* SET UP CLB FOR INPUT OPERATION                                        04340000                
       MVC   PLRECA(2,PL),CLBWKB(,CLB) PUT ADDRESS OF TEXT IN PL        04350000                
       AIF   (&NCPOR).PT290                                             04350400                
       SPACE 1                                                          04350800                
******************************************************************* @14 04351200                
*******                                                                 04351600                
       TBN   CLBBA3(,CLB),BA3PON       PORTLINE ONLY DEVICE ?           04352000                
       JF    CSRNS1                    NO - CONTINUE                    04352400                
       SLC   CLBIBA(2,CLB),X$0001      BACK UP FROM CLBIBA 1 BYTE       04352800                
       L     CLBIBA(,CLB),XR1          XR1 --> INPUT BUFFER AREA        04353200                
       MVC   3(4,XR1),0(,XR1)          MOVE THE TPBUFFER PARM LIST      04353600                
       SLC   CLBIBA(2,CLB),LNTHCC      BACK UP 13 BYTES                 04354000                
       L     CLBIBA(,CLB),XR1          XR1 --> INPUT BUFFER AREA        04354400                
       MVC   8(1,XR1),5(,XR1)          MOVE UP THE PORT ID              04354800                
       MVC   10(2,XR1),7(,XR1)         MOVE UP THE LENGTH               04355200                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       04355600                
       ALC   PLRECA(2,PL),X$0003       BUMP PLRECA PAST THIS STUFF      04356000                
       SLC   CLBREL(2,CLB),X$0003      DECREMENT THE REL BY THREE       04356400                
CSRNS1 EQU   *                                                          04356800                
*******                                                                 04357200                
******************************************************************* @14 04357600                
       SPACE 1                                                          04358000                
.PT290 ANOP                                                             04358400                
       MVI   CLBIBA-1(,CLB),NOBIT      ZIP IBA SO FREE WON'T OCCUR      04360000                
       SLC   CLBIBL(2,CLB),CLBREL(,CLB) DECREMENT MAX INPUT LENGTH      04370000                
* NOTE THAT IF THE LENGTH BECOMES ZERO BSCC DATA MANAGEMENT WILL:       04380000                
*      1) NOT MOVE ANY DATA ON SUBSEQUENT CHECK ENTRIES                 04390000                
*      2) IF MORE DATA COMES IN ON SUBSEQUENT CHECK ENTRIES THEN        04400000                
*         DATA TRUNCATED WILL BE RETURNED (CLBCMP=CMPTRC)               04410000                
*      3) IF EOT COMES IN ON THE NEXT ENTRY THEN WE RECEIVED EXACTLY    04420000                
*         THE AMOUNT OF DATA REQUESTED                                  04430000                
       MVC   PLEFFL(2,PL),CLBREL(,CLB) PUT IN LENGTH OF TEXT RCV'ED     04440000                
       SPACE 2                                                          04450000                
* IF THIS IS A SYSTEM REQUEST WITHOUT PRUF - ONLY ALLOW ONE BLOCK       04460000                
*   OF TEXT TO BE ENTERED                                               04470000                
       SPACE 1                                                          04480000                
       TBN   PLOPM(,PL),OP$SYS         SYS REQ                          04490000                
       L     PLTUBA(,PL),TUB           XR2 --> TUB                      04500000                
       TBF   TUBSCS(,TUB),TUBRUF       AND NOT PRUF ?                   04510000                
       L     TUBLCB(,TUB),CLB          XR2 --> CLB                      04520000                
       JF    CSRNSR                    JUMP ON USER OP OR PRUF INPUT    04530000                
       AIF   (&CSIO EQ '1').PT300                                       04530900                
       AGO   .PT310                                                     04531000                
.PT300 ANOP                                                             04531100                
       AIF   (&NCPOR).PT320                                             04531200                
.PT310 ANOP                                                             04531300                
       SPACE 1                                                          04531400                
******************************************************************* @14 04531500                
*******                                                                 04531600                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE DEVICE ?                04534500                
       JT    CSRNSR                    YES, ALLOW MORE THAN 1 BLOCK     04535400                
*******                                                                 04536300                
******************************************************************* @14 04536700                
.PT320 ANOP                                                             04539000                
       SPACE 1                                                          04540000                
* SYS REQ AND NO PRUF - SET SEARCH EOT AND DEQUE                        04550000                
       SBN   CLBBA1(,CLB),BA1EOT+BA1DEQ SET SEARCH EOT AND DEQUEUE      04560000                
       B     CSCHED                    GO SCHEDULE THIS LINE            04570000                
       SPACE 1                                                          04580000                
* DETERMINE TYPE OF INPUT -MSG,REC,OR BLK AND DWA                       04590000                
       SPACE 1                                                          04600000                
CSRNSR EQU   *                         *                                04610000                
       TBN   PLOPM(,PL),OP$SYS         SYSTEM OP                        04620000                
       JT    CSRSYS                    YES - GO BLOCK DATA IN           04630000                
       TBF   CLBTBS-4(,CLB),TASREC+TASBLK     MSG MODE TUB ?            04640000                
       JF    CSRROB                    NO - GO HANDLE REC OR BLOCK      04650000                
       SPACE 1                                                          04660000                
* MSG MODE INPUT-BLOCK THE DATA INTO TP BUFFER (UNLESS TRUNCATED TXT)   04670000                
CSRSYS EQU   *                         *                                04680000                
       CLI   CLBCMP(,CLB),CMPTUC       TRUNCATED DATA RETURN CODE ?     04690000                
       JNE   CSRNTR                    NO - JUMP                        04700000                
* TOO MUCH TEXT - FLUSH THE REST                                        04710000                
       SBN   CLBBA1(,CLB),BA1DEQ+BA1EOT SET SEARCH EOT AND DEQUE        04720000                
       SBN   PL$RTC(,PL),RCXDTR        SET TRUNCATED RETURN CODE        04730000                
       B     CSCHED                    GO SCHEDULE THIS LINE            04740000                
       SPACE 1                                                          04750000                
* SET TO GET NEXT BLOCK OF TEXT                                         04760000                
CSRNTR EQU   *                                                          04770000                
       ALC   CLBWKB(2,CLB),CLBREL(,CLB) BUMP TEXT POINTER               04780000                
       MVC   CLBREL(2,CLB),CLBIBL(,CLB) PUT NEW MAX LENGTH IN           04790000                
       B     CSCHED                    GO SCHEDULE THIS LINE            04800000                
       SPACE 2                                                          04810000                
* HAVE RECORD OR BLOCK MODE TERMINAL - TRASLATE DATA-POST USER, ETC.    04820000                
       SPACE 1                                                          04830000                
CSRROB EQU   *                         *                                04840000                
       TBN   CLBTBS-5(,CLB),TASTRN     SKIP TRANSLATE ?                 04850000                
       JT    CSRNXL                    YES - JUMP                       04860000                
       B     CSXLAT                    GO XLATE THE TEXT                04870000                
CSRNXL EQU   *                         *                                04880000                
* IF THIS IS A RECORD MODE TUB AND INPUT TEXT DOES NOT FILL OUT         04890000                
*   THE RECORD - CMPSTE ROUTINE WILL EFFECT A PAD OUT WITH BLANKS       04900000                
*   WHEN IT GOES TO THE MOVE ROUTINE TO MOVE THE TEXT TO THE USER'S     04910000                
*   BUFFER                                                              04920000                
       SPACE 1                                                          04930000                
       SBN   CLBBA1(,CLB),BA1NTQ       SET IND ACTIVE PL REMOVED FROM Q 04940000                
       SBF   CLBBA2(,CLB),BA2RCI       SET OFF FIRST BLOCK IND.         04950000                
       B     CSDEQ                     GO DEQUEUE PL FROM CLB           04960000                
       B     CSPSTE                    GO POST USER AND MOVE DATA       04970000                
       B     CSNMOR                    GO CHECK FOR MORE WORK           04980000                
       EJECT                                                            04990000                
*---------------------------------------------------------------------* 05000000                
*                                                                     * 05010000                
* NON-FIRST BLOCK RECEIVED - XR2 --> OP ENDED CLB                       05020000                
*                                                                     * 05030000                
*---------------------------------------------------------------------* 05040000                
       SPACE 1                                                          05050000                
CSRNFB EQU   *                                                          05060000                
* GO TO BSCC CHECK ROUTINE TO MOVE DATA - CLB WAS SET UP ON FIRST BLOCK 05070000                
       L     CLBPL@(,CLB),PL           XR1--> PL                        05080000                
       B     CSTASV                    SAVE THIS TUB'S ATTRIBUTES       05090000                
       AIF   (&CSIO EQ '1').NP130                                       05090900                
       SPACE 1                                                          05091800                
******************************************************************* @14 05092200                
*******                                                                 05092700                
       B     CSWATE                    GO TO BSCC OR SIOC CHECK ROUTINE 05094500                
*******                                                                 05096300                
******************************************************************* @14 05096700                
       AGO   .YP130                                                     05098100                
.NP130 ANOP                                                             05099000                
       B     YMWAIT                    GO TO BSCC CHECK ROUTINE         05100000                
.YP130 ANOP                                                             05105000                
       SPACE 1                                                          05110000                
* TRACE THE OP END                                                      05120000                
       B     CC4TT                     GO TRACE THIS OP END             05130000                
       DC    AL1(TTMOPN)               OP END TRACE                     05140000                
* TRACE ROUTINE RETURNS WITH INTERRUPTS MASKED                          05150000                
       CCP   UNMASK,PMR                ALLOW INTERRUPTS                 05160000                
       SPACE 1                                                          05170000                
       SLC   #CSOND(1),X$0001          DECREMENT OP-END COUNT           05180000                
       SLC   CLBOPE(1,CLB),X$0001      DECREMENT CLB OP-END COUNT       05190000                
       SPACE 2                                                          05200000                
       CLI   CLBCMP(,CLB),CMPEND       COMP CODE 40 OR LOWER ?          05210000                
       JH    CSRN40                    NO - JUMP                        05220000                
* IF SEARCHING FOR EOT - JUST GO SCHEDULE ANOTHER GET                   05230000                
       TBN   CLBBA1(,CLB),BA1EOT       SEARCHING FOR EOT ?              05240000                
       BT    CSCHED                    YES - DO ANOTHER GET             05250000                
       SPACE 1                                                          05260000                
* DATA RECEIVED - HANDLE IT                                             05270000                
       SLC   CLBIBL(2,CLB),CLBREL(,CLB) DECREMENT MAX ALLOWABLE---|     05280000                
* SEE NOTE AFTER LABEL CSRN32 <-----------------------------------|     05290000                
       L     CLBPL@(,CLB),PL           XR1 --> OP ENDED PL              05300000                
       ALC   PLEFFL(2,PL),CLBREL(,CLB) UP EFFECTIVE INPUT LENGTH        05310000                
       CLI   CLBCMP(,CLB),CMPTUC       DATA TRUNCATED ?                 05320000                
       JNE   CSRRBD                    NO - JUMP                        05330000                
       SBN   PL$RTC(,PL),RCXDTR        SET DATA TRUNCATED RETURN CODE   05340000                
* TOO MUCH DATA - IF SYS OP OR MSG MODE THEN SEARCH FOR EOT             05350000                
       SPACE 1                                                          05360000                
       TBF   PLOPM(,PL),OP$SYS         SYS OP OR                        05370000                
       TBF   CLBTBS-4(,CLB),TASMSG     MSG MODE TUB ?                   05380000                
       JT    CSRRBD                    NO - JUMP                        05390000                
       SPACE 1                                                          05400000                
* SEARCH FOR EOT - TOO MUCH DATA CAME IN                                05410000                
       SPACE 1                                                          05420000                
       SBN   CLBBA1(,CLB),BA1EOT+BA1DEQ SET SEARCH EOT + DEQUEUE        05430000                
       B     CSCHED                    GO SCHEDULE THIS LINE            05440000                
       SPACE 1                                                          05450000                
CSRRBD EQU   *                         *                                05460000                
       TBF   PLOPM(,PL),OP$SYS         SYS OP OR                        05470000                
       TBF   CLBTBS-4(,CLB),TASMSG     MSG MODE TERMINAL ?              05480000                
       JT    CSRHRB                    NO - JUMP                        05490000                
* MSG MODE TERMINAL OP END - BLOCK IN THE TEXT                          05500000                
       ALC   CLBWKB(2,CLB),CLBREL(,CLB) UP THE TEXT POINER              05510000                
       MVC   CLBREL(2,CLB),CLBIBL(,CLB) PUT IN NEW MAX LENGTH           05520000                
       B     CSCHED                    GO SCHEDULE THIS LINE            05530000                
       SPACE 1                                                          05540000                
* REC OR BLOCK MODE TERMINAL - SETUP THE PL AND THEN GO DEQUEUE IT,ETC. 05550000                
CSRHRB EQU   *                                                          05560000                
       MVC   PLRECA(2,PL),CLBWKB(,CLB) PUT ADDRESS OF TEXT IN           05570000                
       MVC   PLEFFL(2,PL),CLBREL(,CLB) PUT IN LENGTH                    05580000                
       MVI   CLBIBA-1(,CLB),NOBIT      ZIP IBA SO FREE WON'T OCCUR      05590000                
       SBN   CLBBA1(,CLB),BA1NTQ       SET 'REMOVED FROM Q' IND.        05600000                
       B     CSRROB                    GO FINISH UP REC OR BLOCK OP     05610000                
       SPACE 2                                                          05620000                
* CHECK FOR ERROR COMPLETION CODE                                       05630000                
       SPACE 1                                                          05640000                
CSRN40 EQU   *                         *                                05650000                
       CLI   CLBCMP(,CLB),CMPEOF       EOT RECEIVED ?                   05660000                
       JE    CSREOT                    YES - JUMP                       05670000                
       CLI   CLBCMP(,CLB),CMPCMP       NOT DONE YET COMP CODE?          05680000                
       BE    CSNMOR                    YES - GO CHECK FOR MORE WORK     05690000                
       SPACE 2                                                          05700000                
* CALL THE ERROR RECOVERY XIENT TO HANDLE THIS OP END                   05710000                
       SPACE                                                            05720000                
       B     CC4TA                     CALL TRANSIENT AREA HANDLER      05730000                
       DC    AL1(CC4UE)                ERROR XIENT ID                   05740000                
       SPACE 1                                                          05740500                
       AIF   (&CSIO EQ '1').NP140                                       05741000                
******************************************************************* @14 05741200                
*******                                                                 05741500                
* IF THE RETURN IS WHEN PROCESSING A SIOC DEVICE OPERATION, AND THE     05743000                
* USER IS BEING CANCELLED BY $CC4II, GO TO EOT PROCESSING               05743500                
       CLI   CLBDEV(,CLB),DEVSIO       PORT DEVICE                      05744000                
       JNE   CSRNTP                    NO                               05744500                
       L     CLBPL@(,CLB),PL           XR1 --> PL                       05745000                
       CLI   PL$RTC-1(,PL),RCRTRM      NEED TO CANCEL USER IN $CC4II    05745500                
       JE    CSREOT                    YES                              05746000                
CSRNTP EQU   *                         *                                05746500                
*******                                                                 05748000                
******************************************************************* @14 05748100                
       SPACE 1                                                          05748200                
.NP140 ANOP                                                             05748500                
       B     CSCHED                    GO SCHEDULE THIS LINE            05760000                
       EJECT                                                            05770000                
*---------------------------------------------------------------------* 05780000                
*                                                                     * 05790000                
*        FINALLY GOT THE EOT (WHEW) PROCESS IT                        * 05800000                
*                                                                     * 05810000                
*---------------------------------------------------------------------* 05820000                
       SPACE 1                                                          05830000                
CSREOT EQU   *                         *                                05840000                
       TBN   CLBBA1(,CLB),BA1EOT       SEARCH EOT AND NO -              05850000                
       TBF   CLBBA1(,CLB),BA1DEQ       DEQUEUE ?                        05860000                
       JF    CSRNED                    NO - JUMP                        05870000                
       SPACE 1                                                          05880000                
* SEARCHED EOT - NO DEQUEUE SPECIFIED - JUST GO SCHEDULE THIS LINE      05890000                
       SPACE 1                                                          05900000                
       SLC   CLBBA2(2,CLB),CLBBA2(,CLB) ZIP THE CLB ATTRIBUTES          05910000                
       L     PLTUBA(,PL),TUB           XR2 --> TUB                      05920000                
       SBF   TUBAT2(,TUB),TUBOWN       SET OF OWNERSHP IND.             05930000                
       L     TUBLCB(,TUB),CLB          XR2 --> CLB                      05940000                
       TBN   PLOPM(,PL),OPSTOP         WAS THE CURRENT OP A STOP ?      05950000                
       BF    CSCHED                    NO - SCHEDULE THE LINE           05960000                
*      MVI   PLRTC(,PL),RCXCLR         CLEAR KEY RETURN CODE        @15 05970000                
       MVI   PL$RTC(,PL),RCXCLR        CLEAR KEY RETURN CODE            05980000                
       TBN   PL$OPC(,PL),OPRFSH        WAS A CLEAR KEY ENTERED ?        05990000                
       JT    CSRDND                    YES - DEQUEUE THE PARM LIST      06000000                
*      MVI   PLRTC(,PL),RCXSPI         NO - MOVE IN STOP OK R.C.    @15 06010000                
       MVI   PL$RTC(,PL),RCXSPI        MOVE IN STOP OK RETURN CODE      06020000                
       J     CSRDND                    DEQUEUE THE PARAMETER LIST       06030000                
       SPACE 2                                                          06040000                
* IF THE EOT IS FOR A RECORD OR BLOCK MODE TERMINAL - JUST ZERO         06050000                
* PLEFFL - NO TRANSLATE REQUIRED                                        06060000                
       SPACE 1                                                          06065000                
CSRNED EQU   *                         *                                06070000                
       TBF   CLBTBS-4(,CLB),TASMSG     MSG MODE OR                      06080000                
       TBF   PLOPM(,PL),OP$SYS         SYS OPERATION ?                  06090000                
       JT    CSRSRC                    NO - JUMP                        06100000                
       SPACE 1                                                          06101000                
* IF STATUS WAS JUST RECEIVED DO NOT TRANSLATE TO UPPER CASE        @09 06102000                
       SPACE 1                                                          06103000                
       TBN   CLBAT1(,CLB),AT1SOH       WAS STATUS RECEIVED ?        @09 06104000                
       JT    CSRNFM                    YES - DO NOT TRANSLATE       @09 06105000                
       SPACE 1                                                          06106000                
* TRANSLATE THE TEXT IF SPECIFIED  (MSG MODE TERMINAL)                  06110000                
       SPACE 1                                                          06115000                
       TBN   CLBTBS-5(,CLB),TASTRN     SKIP XLATE ?                     06120000                
       TBF   PL$OPC(,PL),OPSYS         A USER OPERATION ?               06130000                
       JT    CSRNTL                    YES - JUMP (NO TRANSLATION)      06140000                
       SPACE 1                                                          06150000                
       B     CSXLAT                    GO TRANSLATE THE TEXT            06160000                
CSRNTL EQU   *                         ****                             06170000                
       TBN   PL$OPC(,PL),OPSYS         SYSTEM INPUT OP --|              06180000                
       L     PLTUBA(,PL),TUB           XR2--> TUB        |              06190000                
       CLI   TUBPHY(,TUB),TUB5M2       AND A 3270 ? <----|              06200000                
       JC    CSRNFM,FLSOHI             NO - SKIP FORMATING              06210000                
       SPACE 1                                                          06220000                
* CALL THE RESIDENT FORMAT ROUTINE TO FORMAT THE DATA FOR THE           06230000                
* COMMAND PROCESSOR                                                     06240000                
       SPACE 1                                                          06250000                
       L     TUBLCB(,TUB),CLB          XR2 --> CLB                      06260000                
       B     CC4U0                     GO FORMAT THE INPUT              06270000                
       SPACE 1                                                          06280000                
CSRNFM EQU   *                         *                                06290000                
       J     CSRDND                    GO POST,DEQUE,ETC.               06300000                
       SPACE 1                                                          06310000                
* REC OR BLOCK MODE TUB - PUT IN EOT RETURN CODE                        06320000                
CSRSRC EQU   *                         *                                06330000                
       TBN   PL$OPM(,PL),OPPUT         IS THE CURRENT OP A PUT ?    @12 06332000                
       JT    CSRDND                    YES - POLL FOR STATUS WAS    @12 06334000                
*                                      DONE, DO NOT ZIP PLRECA      @12 06336000                
       MVI   PL$RTC(,PL),RCXEOT        PUT IN EOT RETURN CODE           06340000                
       MVI   PLRECA-1(,PL),NOBIT       ZIP RECA - CLBIBA HAS THE @ IN   06350000                
**                                     IT - THIS WILL BE FREED AT SCHED 06360000                
       SLC   PLEFFL(2,PL),PLEFFL(,PL)  ZIP EFFL FOR USER (NO DATA)      06370000                
       SPACE 2                                                          06380000                
* DEQUE  PL - GO POST USER 'OP COMPLETE' - RESCHEDULE THE LINE          06390000                
       SPACE 1                                                          06400000                
CSRDND EQU   *                         *                                06410000                
       B     CSDEQ                     GO DEQUEUE PL FROM CLBPLQ        06420000                
       L     PLTUBA(,PL),TUB           XR2 --> TUB                      06430000                
       SBF   TUBAT2(,TUB),TUBOWN       SET OF OWNERSHIP INDICATOR       06440000                
       L     TUBLCB(,TUB),CLB          XR2 --> CLB                      06450000                
       SPACE 1                                                          06460000                
       SLC   CLBBA2(2,CLB),CLBBA2(,CLB) ZIP THE CLB ATTRIBUTES          06470000                
       AIF   (&CSIO EQ '1').PT330                                       06470300                
       AGO   .PT340                                                     06470330                
.PT330 ANOP                                                             06470360                
       AIF   (&NCPOR).PT350                                             06470390                
.PT340 ANOP                                                             06470420                
       SPACE 1                                                          06470450                
******************************************************************* @14 06470480                
*******                                                                 06470510                
* IF PORT DEVICE WITH DUMMY PARM LIST:                                  06471500                
*    .PUT PL INTO TPBUFF                                                06471800                
*    .DO NOT POST USER,MOVE DATA TO USER, OR FREE BUFFERS               06472100                
*    .BECAUSE THE USER HAS NOT DONE A GET YET                           06472400                
* IF A USER OPCODE AND IT IS COMMAND DATA:                              06472700                
*    .Q THE DATA IN TPBUFF                                              06473000                
*    .THE COMMAND PROCESSOR WILL GET THE DATA                           06473300                
*    .THE USER WILL LOSE THE PORT                                       06473600                
       SPACE                                                            06473900                
       TBN   CLBBA3(,CLB),BA3POR       PORTLINE OR SIOC DEVICE ?        06474200                
       JF    CSRPST                    NO                               06474500                
       TBN   PLOPC(,PL),OPDMY          DUMMY PARM LIST                  06474800                
       JT    CSRQUE                    YES, Q THE DATA IN TPBUFF        06475100                
       TBF   PLOPM(,PL),OP$SYS         USER OP                          06475400                
       TBN   CSRRPI+1,TPXCMD           COMMAND DATA ?                   06475700                
       JF    CSRPST                    IF NOT BOTH, DO NOT Q DATA       06476000                
       SBN   CSSWIT,CSSCMD             INDICATE COMMAND DATA TO USER    06476300                
CSRQUE EQU   *                         *                                06476600                
       B     CSYQDT                    PORT DATA ON TUBDCH Q            06476900                
       ALC   CTR3(3),X$0001            +1 TO # TIMES DATA TO TPBUFF     06477200                
       TBN   CSSWIT,CSSCMD             COMMAND DATA TO USER             06477500                
       JF    CSRSCH                    NO, GO SCHEDULE THE LINE         06477800                
CSRPST EQU   *                         *                                06478100                
*******                                                                 06478400                
******************************************************************* @14 06478500                
       SPACE 1                                                          06478700                
.PT350 ANOP                                                             06479300                
       B     CSPSTE                    GO POST AND FREE AS NECESSARY    06480000                
       SPACE 1                                                          06490000                
CSRSCH EQU   *                         *                                06495000                
       B     CSCHED                    GO SCHEDULE THIS LINE            06500000                
       MEND                                                             06510000