         TITLE 'GRAPHIC ATTENTION SERVICE ROUTINE'                      00020002
*********************************************************************** 00032002
*                                                                       00034002
* MODULE NAME:           IGC070 (OS/VS2)                                00036002
*                                                                       00038002
* DESCRIPTIVE NAME:      GRAPHIC ATTENTION SERVICE ROUTINE              00038402
*                                                                       00038802
* COPYRIGHT:             NONE                                           00039202
*                                                                       00039602
* STATUS:                RELEASE 2.0                                    00039702
*                                                                       00039802
* FUNCTION:              THIS MODULE PERFORMS FUNCTIONS FOR             00039902
*FILL IN FROM SPECS******CONTINUED*NEXT*PAGE*************************** 00046602
         EJECT                                                          00048602
         ENTRY SVC070                                                   00048702
IGC070   CSECT                                                          00049002
*   SEE LABEL 'MODID' FOR LAST CHANGE DATE; FORMAT:  NAME.SYSREL.DATE   00050602
* SEQ NBRS MUST BE RESPECIFIED BECAUSE OF RESEQ FOR VS                  00051002
*C010000                                                         Y01021 00053200
*A007100,A009820,A010120                                     LD YA00813 00054200
*A008240-008280,A007120-007180,A009920-010200                LG @ZM2359 00055200
*A005700,A006300,A006500,A006900                             LG @ZM2359 00056200
*C010100-010130,A010160                                     D11 ZA04881 00057200
*A008290,A010350-010800                                     D11 ZA04882 00058200
*C012000,A012200-012240,015430-015460                       D11 ZA13197 00059200
*C010250                                                    E12 ZA25652 00059800
*A011205,A012185,A015925                                    E12 ZA26470 00060400
*                                                                       00061000
*                                                                       00061902
*STATUS:CHANGE LEVEL 0                                                  00066602
*FUNCTION/OPERATION:THIS ROUTINE RESETS TO 0  BIT 6 OR BIT 7 OR BOTH    00073302
*   THAT ARE LOCATED IN THE GRAPHIC CONTROL BYTE APPENDAGE TO THE       00080002
*   UNIT CONTROL BLOCK(UCB).                                            00100002
*ENTRY POINTS:SVC  070  OR USE GSERV MACRO.RESET BITS 6 AND/OR 7 IN GCB 00120002
*INPUT:GR#1 IS THE PARAMETER REGISTER.ITS CONTENTS ARE AS FOLLOWS:      00140002
*   ******************                                                  00160002
*   MASK*DCBLIST ADR*  MASK=01 FOR BIT7,02 FOR BIT6,03 FOR BOTH.        00180002
*   ******************                                                  00200002
*   DCBLIST ADR CONTAINS THE FOLLOWING INFORMATION:                     00220002
*   ****************                                                    00240002
*   * IX * DCB ADR * IX=DEB EXTENT TO ACCESS UCB ADDRESS.               00260002
*   ****************                                                    00280002
*OUTPUT:N/A                                                             00300002
*EXTERNAL ROUTINES:DEBVERIFY VIA BRANCH ENTRY.                          00320000
*EXITS NORMAL:RETURN MADE TO CALLING ROUTINE VIA SVC 3.                 00340002
*EXITS ERROR:ABNORMAL TERMINATION OF TASK.SYSTEM COMPLETION CODES ARE   00360002
*   AS FOLLOWS:                                                         00380002
*               056=INVALID UNIT CONTROL BLOCK(UCB).                    00400002
*               057=NOT A GRAPHIC UCB.                                  00420002
*TABLES/WORK AREAS:N/A                                                  00440002
*ATTRIBUTES:RE-ENTRANT                                                  00460002
*NOTES:N/A                                                              00480002
         EJECT                                                          00552002
*                                                                       00554002
*                                  STANDARD SYSTEM REGISTERS ---        00556002
*                                                                       00558002
PARMRG   EQU   1                        PARAMETER REGISTER              00560002
R1       EQU   1                       WORK REGISTER         LG @ZM2359 00570000
BASERG   EQU   2                        WORK REG                        00580002
SVCRG1   EQU   3                        WORK REG                        00600002
SVCRG2   EQU   4                        WORK REG                        00620002
CVTREG   EQU   4                                             LG @ZM2359 00630000
SVCRG3   EQU   5                        WORK REG                        00640002
CVTEXTRG EQU   5                                             LG @ZM2359 00650000
SVCRG4   EQU   6                        WORK REG                        00660002
SVCRG5   EQU   7                        WORK REG                        00680002
ASCBREG  EQU   7                                             LG @ZM2359 00690000
SVCRG6   EQU   8                        WORK REG                        00700002
R8       EQU   8                  WORK REGISTER              LG @ZM2359 00702000
SVCRG7   EQU   9                        WORK REG             LD YA00813 00710002
TCBREG   EQU   10                      LG @ZM2359                       00710400
R0       EQU   0                     WORK REGISTER           LG @ZM2359 00712000
R11      EQU   11                    WORK REGISTER           LG @ZM2359 00714000
R14      EQU   14                    WORK REGISTER           LG @ZM2359 00716000
BRREG    EQU   15                    WORK REGISTER           LG @ZM2359 00718000
R15      EQU   15                 GENERAL REGISTER 15        LG @ZM2359 00718400
*                                                                       00720002
*          CONSTANTS USED IN THIS MODULE                              * 00722002
*                                                                     * 00724002
ZERO     EQU   0                       ZERO DISPLACEMENT      LB Y01021 00730002
UCBADR   EQU   32                       START OF UCB LIST IN DEB        00740002
DEBADR   EQU   44                       START OF DEB ADDRESS IN DCB     00760002
GCBADR   EQU   24                       START OF UCB GRAPHIC EXTENSION  00780002
EXIT     EQU   3                                                        00800002
GUCBTYP  EQU   18                  LOCATION OF DEVTYPE IN UCB           00810000
RC4      EQU   4                     RETCD VALUE OF 4        LG @ZM2359 00824000
CRNTASCB EQU   12                                            LG @ZM2359 00826000
CRRNTTCB EQU   4                                             LG @ZM2359 00828000
NUMUCB   EQU   16                  DISPL IN DEB OF NUMUCBS  D11 ZA04882 00829000
         EJECT                                                          00830002
SVC070   DS    0D                      ALIGN SVC TO A DBLE WORD BNDRY   00880002
         BALR  BASERG,0                 SET UP BASE REGISTER            00900002
         USING *,BASERG                 DEFINE BASE REGISTER            00920002
         B     MODID2              HOP AROUND EYECATCHER                00930000
MODID    DC    C'IGC070.VS2R3.&SYSDATE'         MODULE EYECATCHER ID    00940000
MODID2   L     SVCRG4,0(0,PARMRG)       LOAD DCB ADDRESS AND INDX FACTR 00950000
         LR    SVCRG1,SVCRG4            TRANSFER INDEX FACTOR           00960002
         SRL   SVCRG1,24                POSITION INDEX FACTOR           00980002
         LR    SVCRG7,PARMRG            SAVE REG1            LD YA00813 00982002
         LA    SVCRG4,ZERO(SVCRG4)     DCB ADDRESS            LB Y01021 00990002
         LR    R8,R14                SAVE REG 14             LG @ZM2359 00992000
         L     R1,DEBADR(SVCRG4)       LD DEB ADDR           LG @ZM2359 00994000
         USING CVT,CVTREG              BASE FOR CVT          LG @ZM2359 00996000
         USING CVTXTNT2,CVTEXTRG       BASE FOR CVT EXT2     LG @ZM2359 00998000
         L     CVTREG,CVTPTR           LD ADDR CVT           LG @ZM2359 00998400
         L     CVTEXTRG,CVTEXT2        LD ADDR CVT EXT2      LG @ZM2359 00998800
         L     TCBREG,CVTTCBP          LD TCB PTRS           LG @ZM2359 00999200
         L     ASCBREG,CRNTASCB(TCBREG)  LD ADDR CURR ASCB   LG @ZM2359 00999600
         L     TCBREG,CRRNTTCB(TCBREG)  LD ADDR CURR TCB     LG @ZM2359 00999700
         L     BRREG,CVTDEBVR          LD ADDR DEB VERIFY    LG @ZM2359 00999800
         SR    R0,R0                   CLEAR REGISTER        LG @ZM2359 00999900
         BALR  R14,BRREG               GO DO DEBVERIFY       LG @ZM2359 01004900
         B     GOODCB              DEB IS VALID (+0)        D11 ZA04881 01010000
         LR    R14,R8              RESTORE R14              D11 ZA04881 01013000
         B     BADDCB              DEB INVALID              D11 ZA04881 01016000
GOODCB   LR    R14,R8              RESTORE R14              D11 ZA04881 01019000
         LR    SVCRG4,R1               PUT DEB ADDR IN R4   E12 ZA25652 01025000
         LR    PARMRG,SVCRG7            RESTORE REG1         LD YA00813 01030002
         CLM   SVCRG1,1,NUMUCB(SVCRG4) USERUCB GT DEBUCB?   D11 ZA04882 01032000
         BH    BADDCB              YES,INVALID PARAMETER    D11 ZA04882 01042000
         SLL   SVCRG1,2            X4(EACH UCB IN DEB LN=4) D11 ZA04882 01052000
         L     SVCRG4,UCBADR(SVCRG1,SVCRG4)  LOAD UCB ADDR  D11 ZA04882 01062000
         TM    2(SVCRG4),X'FF'          TEST FOR VALID UCB  ID          01100002
         BO    GCBCHK                   BRANCH IF VALID     D11         01120000
         SETLOCK RELEASE,TYPE=LOCAL,RELATED=(IEAVESVC)      E12 ZA26470 01123000
         WTO   'IFF421I GSERV FOUND INVALID UCB',                S21016X01126002
               ROUTCDE=11,DESC=7                                 S21016 01132002
         LA    1,X'056'                LOAD ABEND ERROR CODE            01140002
         SLL   1,12                    POSITION CODE                    01160002
         ABEND (1),DUMP                                                 01180002
BADDCB   EQU   *                                             LG @ZM2359 01182000
         LA    R15,RC4               LD RETCD OF 4           LG @ZM2359 01184000
         BR    R14                   RETURN                  LG @ZM2359 01186000
         EJECT                                                          01190002
GCBCHK   CLC   GUCBTYP(2,SVCRG4),G2250  IS UCB FOR A 2250?  D11 ZA13197 01200000
         BE    RESET                    BRANCH IF VALID UCB D11 ZA13197 01206000
         CLC   GUCBTYP(2,SVCRG4),G2260  IS UCB FOR A 2260?  D11 ZA13197 01212000
         BE    RESET                    BRANCH IF VALID UCB D11 ZA13197 01218000
         SETLOCK RELEASE,TYPE=LOCAL,RELATED=(IEAVESVC)      E12 ZA26470 01222000
         WTO   'IFF422I DEVICE NOT SUPPORTED BY GAM',       D11 ZA13197X01226000
               ROUTCDE=11,DESC=7                                 S21016 01232002
         LA    1,X'057'                LOAD ABEND ERROR CODE            01240002
         SLL   1,12                    POSITION CODE                    01260002
         ABEND (1),DUMP                                                 01280002
RESET    SRL   PARMRG,24                POSITION BIT INDICATOR          01300002
         LA    SVCRG1,3                 LOAD PROTECT MASK FOR GRAPHIC   01320002
*                                       SUPERVISOR BITS IN GCB          01340002
         NR    PARMRG,SVCRG1            MASK OUT ANY USER REQUEST TO    01360002
*                                       RESET PROTECTED GRAPHIC         01380002
*                                       SUPERVISOR BITS IN GCB          01400002
         LA    SVCRG1,X'FF'             LOAD INITIAL RESET MASK         01420002
         XR    PARMRG,SVCRG1            DETERMINE FINAL RESETMASK       01440002
         L     SVCRG1,GCBADR(0,SVCRG4)  LOAD GCB                        01460002
         NR    PARMRG,SVCRG1            RESET SPECIFIED GCB BITS        01480002
         STC   PARMRG,GCBADR+3(0,SVCRG4)     STORE NEW GCB BYTE         01500002
         LA    PARMRG,0                 INDICATE NORMAL RETURN          01520002
         BR    14                                                       01540002
G2250    DC    X'1002'             UCBTYPE FOR 2250         D11 ZA13197 01543000
G2260    DC    X'1003'             UCBTYPE FOR 2260         D11 ZA13197 01546000
PATCH    DS    0F                 40 BYTE PATCH AREA        D11 @ZM2359 01550000
         DC    40X'FF'                                      D11         01560000
         CNOP  0,8                                                      01580002
         EJECT                                                          01590002
         CVT   DSECT=YES                                                01592002
         IHAPSA                                             E12 ZA26470 01596000
         END                                                            01600002
