* DE-LINK RECORDS                                       HEADER  C:DLNKLR0001.000
*                                                                       0002.000
*                  DE-LINK RECORDS                                      0003.000
*                                                                       0004.000
         M.PGM     C:DLNKLR,MPX-32,3.6.1,00                             0005.000
         DEF       C:DLNKLR                                             0006.000
SRTCOM12 COMMON    SRTC12(10)                                           0007.000
         ORG       SRTC12                                               0008.000
LASTQ    REZ       1W                                                   0009.000
XLV48    REZ       1W                                                   0010.000
         REL                                                            0011.000
* SEARCH LASTRECQ FOR A GIVEN LIST ENTRY                                0012.000
* AND DELINK IT FROM THE QUEUE                                          0013.000
* USUALLY THIS IS PART OF A REPOSITIONING FUNCTION                      0014.000
* STARTING AT THE ENTRY POINTED AT BY THE                               0015.000
* QUEUE HEAD, IF THE LIST FIELD EQUALS THE                              0016.000
* GIVEN LIST THEN SET THE LINK FIELD OF THE                             0017.000
* PRECEDING ENTRY TO THE LINK FIELD OF THIS                             0018.000
* ENTRY.                                                                0019.000
         M.REQS                                                         0020.000
LQHD     EQU       X'0'                                                 0021.000
LQLSTF   EQU       X'0'                                                 0022.000
LQRECF   EQU       1                                                    0023.000
LQLNKF   EQU       3                                                    0024.000
LQESZ    EQU       4                                                    0025.000
C:DLNKLR EQU       $                                                    0026.000
         STW       R0,XLV48                                             0027.000
*                                  R2 = LIST                            0028.000
         STW       R3,LASTQ                                             0029.000
* BLNK:=LASTRECQHD;                                                     0030.000
         LI        R7,LQHD*4       R7 = BLNK                            0031.000
* WHILE FLNK:=LASTRECQ(BLNK).LASTLNK NEQ LASTRECQHD DO                  0032.000
DLR000   EQU       $                                                    0033.000
         LW        R1,LASTQ                                             0034.000
         ADR       R7,R1                                                0035.000
         LW        R5,LQLNKF*4,X1  R5 = FLNK                            0036.000
         CI        R5,4*LQHD                                            0037.000
         BCT       EQ,DLR002                                            0038.000
* IF LASTRECQ(FLNK).LASTLST NEQ LIST THEN                               0039.000
         LW        R1,LASTQ                                             0040.000
         ADR       R5,R1                                                0041.000
         LW        R0,LQLSTF*4,X1                                       0042.000
         CAR       R2,R0                                                0043.000
         BCT       EQ,DLR001                                            0044.000
* BLNK:=FLNK;                                                           0045.000
         TRR       R5,R7                                                0046.000
* ELSE                                                                  0047.000
         BU        DLR000                                               0048.000
* BEGIN                                                                 0049.000
DLR001   EQU       $                                                    0050.000
* LASTRECQ(BLNK).LASTLNK:=LASTRECQ(FLNK).LASTLNK;                       0051.000
         LW        R3,LASTQ                                             0052.000
         ADR       R5,R3                                                0053.000
         LW        R1,LASTQ                                             0054.000
         ADR       R7,R1                                                0055.000
         LW        R0,LQLNKF*4,X3                                       0056.000
         STW       R0,LQLNKF*4,X1                                       0057.000
* GO OUT;                                                               0058.000
* END;                                                                  0059.000
DLR002   EQU       $                                                    0060.000
         LW        R0,XLV48                                             0061.000
         TRSW      R0                                                   0062.000
         END                                                            0063.000
