<<------------------------------------------------------------>>        00005000
<<                                                            >>        00010000
<<                                                            >>        00015000
<<     III   N    N  CCCCC  L           AA     RRRRRR  QQQQQQ >>        00020000
<<      I    NN   N  C      L          A  A    R    R  Q    Q >>        00025000
<<      I    N N  N  C      L         AAAAAA   RRRRRR  Q    Q >>        00030000
<<      I    N  N N  C      L         A    A   R R     Q  Q Q >>        00035000
<<      I    N   NN  C      L         A    A   R  R    QQQQQQ >>        00040000
<<     III   N    N  CCCCC  LLLLLL    A    A   R   R       Q  >>        00045000
<<                                                            >>        00050000
<<                                                            >>        00055000
<<                                                            >>        00060000
<<                        INCLARQ                             >>        00065000
<<                                                            >>        00070000
<<          ALTERNATE QUE  ADDRESSING  MODES FOR MPEV         >>        00075000
<<                                                            >>        00080000
<<------------------------------------------------------------>>        00085000
                                                                        00090000
                                                                        00095000
                                                                        00100000
                                                                        00105000
                                                                        00110000
                                                                        00115000
                                                                        00120000
<< PART 1:  DIRECT   ADDRESSING   FOR   THE  QUE  HEAD        >>        00125000
                                                                        00130000
                                                                        00135000
                                                                        00140000
                                                                        00145000
                                                                        00150000
                                                                        00155000
<<  THIS DEFINE WILL SET DB TO THE BASE OF THE DRQ     >>               00160000
<<  THIS SHOULD ONLY BE DONE IF DISABLED OR PDISABLED  >>               00165000
DEFINE                                                                  00170000
   DBTODRQ =                                                            00175000
      TOS := 0;                                                         00180000
      TOS := ABSOLUTE(2) + DRQ'DST'BKADR;                               00185000
      ASSEMBLE( LDEA );                                                 00190000
      ASSEMBLE( XCHD ); << EXCHANGE DB TO BASE OF DRQ >>                00195000
      DBSAVE := TOS;    << REMEMBER WHERE DB WAS >>                     00200000
      #;                                                                00205000
                                                                        00210000
EQUATE                                                                  00215000
                                                                        00220000
    DRQDST            = 56,       << DST # FOR DRQ >>                   00225000
    DRQ'DST'BKADR     =  DRQDST * 4 + 2,                                00230000
                                                                        00235000
    AQH'TOTENT'INDEX  =  0,                                             00240000
    AQH'ENTSIZE'INDEX =  1,                                             00245000
    AQH'PRIENT'INDEX  =  2,                                             00250000
    AQH'IMPPCB'INDEX  =  3,                                             00255000
    AQH'FREEHEAD'INDEX=  4,                                             00260000
    AQH'FREETAIL'INDEX=  5,                                             00265000
    AQH'MAXINUSE'INDEX=  6,                                             00270000
    AQH'CURINUSE'INDEX=  7,                                             00275000
    AQH'OVRFLOWS'INDEX=  8,                                             00280000
    AQH'REQCOUNT'INDEX=  9,                                             00285000
    AQH'REQCOUNU'INDEX=  10,                                            00290000
    AQH'DISHEAD'INDEX =  11,                                            00295000
    AQH'DISTAIL'INDEX =  12,                                            00300000
    AQH'SERWQHEAD'INDEX =13,                                            00305000
    AQH'FLAGS'INDEX   =  14,                                            00310000
    AQH'HEADER'SIZE   =  16;                                            00315000
                                                                        00320000
                                                                        00325000
                                                                        00330000
INTEGER                                                                 00335000
                                                                        00340000
    AQH'TOT'ENT =   DB + DQH'TOTENT'INDEX,  << TOTAL # OF ENTRIES  >>   00345000
    AQH'ENT'SIZE=   DB + DQH'ENTSIZE'INDEX, << ENTRY SIZE          >>   00350000
    AQH'PRI'ENT =   DB + DQH'PRIENT'INDEX,  << # OF PRIMARY ENTRIES >>  00355000
    AQH'IMP'PCB =   DB + DQH'IMPPCB'INDEX,  << IMPEDED PCB         >>   00360000
    AQH'FREEHEAD=   DB + DQH'FREEHEAD'INDEX,<< FREE ENTRY LIST PNTR >>  00365000
    AQH'FREETAIL=   DB + DQH'FREETAIL'INDEX,<< FREE LIST TAIL PNTR >>   00370000
    AQH'MAX'NUSE=   DB + DQH'MAXINUSE'INDEX,<< MAX QUES EVER USED >>    00375000
    AQH'CUR'NUSE=   DB + DQH'CURINUSE'INDEX,<< CURRENT QUES USED  >>    00380000
    AQH'OVRFLOWS=   DB + DQH'OVRFLOWS'INDEX,<< NUMBER OF OVERFLOWS >>   00385000
    AQH'REQCOUNT=   DB + DQH'REQCOUNT'INDEX,<< TOTAL OF ALL REQUEST >>  00390000
    AQH'REQCOUNU=   DB + DQH'REQCOUNU'INDEX,<< TOTAL OF ALL REQUEST >>  00395000
    AQH'DISAHEAD=   DB + DQH'DISHEAD'INDEX, << HEAD OF DISABLED QUE >>  00400000
    AQH'DISATAIL=   DB + DQH'DISTAIL'INDEX, << TAIL OF DISABLED QUE >>  00405000
    AQH'FLAGS=      DB + DQH'FLAGS'INDEX,                               00410000
    AQH'SERWQHEAD=  DB + DQH'SERWQHEAD'INDEX;                           00415000
DEFINE                                                                  00420000
    AQH'ACTSERWRFLAG = (0:1)#,                                          00425000
    AQH'MAXSERQFIELD=(8:8)#,                                            00430000
    AQH'MAXSERWQ=AQH'FLAGS.AQH'MAXSERQFIELD#;                           00435000
                                                                        00440000
                                                                        00445000
                                                                        00450000
                                                                        00455000
                                                                        00460000
                                                                        00465000
                                                                        00470000
                                                                        00475000
                                                                        00480000
<<   PART 2:  DIRECT  INDEXED ADDRESSING FOR THE QUE ELEMENT  >>        00485000
                                                                        00490000
                                                                        00495000
                                                                        00500000
                                                                        00505000
                                                                        00510000
LOGICAL ARRAY                                                           00515000
    DRQ'FLAGS'WORD(*)   = DB + 0,                                       00520000
    DRQ'PCB'WORD(*)     = DB + 11;                                      00525000
INTEGER ARRAY                                                           00530000
    DRQ'URGCLAS'WORD(*) = DB + 1,                                       00535000
    DRQ'FRE'LNK'WORD(*) = DB + 1,                                       00540000
    DRQ'LDEV'WORD(*)    = DB + 2,                                       00545000
    DRQ'QMISC'WORD(*)   = DB + 3,                                       00550000
    DRQ'BUFDST'WORD(*)  = DB + 4,                                       00555000
    DRQ'BUFADR'WORD(*)  = DB + 5,                                       00560000
    DRQ'FUNC'WORD(*)    = DB + 6,                                       00565000
    DRQ'COUNT'WORD(*)   = DB + 7,                                       00570000
    DRQ'PARM1'WORD(*)   = DB + 8,                                       00575000
    DRQ'PARM2'WORD(*)   = DB + 9,                                       00580000
    DRQ'STATUS'WORD(*)  = DB + 10,                                      00585000
    DRQ'PREVQ'WORD(*)   = DB + 12,                                      00590000
    DRQ'NEXTQ'WORD(*)   = DB + 13,                                      00595000
    DRQ'SEGID1'WORD(*)  = DB + 14,                                      00600000
    DRQ'SEGID2'WORD(*)  = DB + 15,                                      00605000
    DRQ'SEGDISP'WORD(*) = DB + 16;                                      00610000
DEFINE                                                                  00615000
                                                                        00620000
    ARQX'FLAGS   =   DRQ'FLAGS'WORD(DRQ'ENTRY'INDEX)#,                  00625000
    ARQX'URGCLAS =   DRQ'URGCLAS'WORD(DRQ'ENTRY'INDEX)#,                00630000
    ARQX'FREELINK=   DRQ'FRE'LNK'WORD(DRQ'ENTRY'INDEX)#,                00635000
    ARQX'LDEV    =   DRQ'LDEV'WORD(DRQ'ENTRY'INDEX)#,                   00640000
    ARQX'QMISC   =   DRQ'QMISC'WORD(DRQ'ENTRY'INDEX)#,                  00645000
    ARQX'BUFDST  =   DRQ'BUFDST'WORD(DRQ'ENTRY'INDEX)#,                 00650000
    ARQX'UNITFNC =   DRQ'FUNC'WORD(DRQ'ENTRY'INDEX)#,                   00655000
    ARQX'COUNT   =   DRQ'COUNT'WORD(DRQ'ENTRY'INDEX)#,                  00660000
    ARQX'PARM1   =   DRQ'PARM1'WORD(DRQ'ENTRY'INDEX)#,                  00665000
    ARQX'PARM2   =   DRQ'PARM2'WORD(DRQ'ENTRY'INDEX)#,                  00670000
    ARQX'STAT    =   DRQ'STATUS'WORD(DRQ'ENTRY'INDEX)#,                 00675000
    ARQX'PCB     =   DRQ'PCB'WORD(DRQ'ENTRY'INDEX)#,                    00680000
    ARQX'PREVQ   =   DRQ'PREVQ'WORD(DRQ'ENTRY'INDEX)#,                  00685000
    ARQX'NEXTQ   =   DRQ'NEXTQ'WORD(DRQ'ENTRY'INDEX)#,                  00690000
    ARQX'SEGID1  =   DRQ'SEGID1'WORD(DRQ'ENTRY'INDEX)#,                 00695000
    ARQX'SEGID2  =   DRQ'SEGID2'WORD(DRQ'ENTRY'INDEX)#,                 00700000
    ARQX'SEGDISP =   DRQ'SEGDISP'WORD(DRQ'ENTRY'INDEX)#;                00705000
                                                                        00710000
                                                                        00715000
DEFINE                                                                  00720000
                                                                        00725000
       << THESE FIELD DEFINTION SHOULD AGREE WITH INCLOBJ >>            00730000
   ARQX'SEGID'TYPE     = ARQX'SEGID1.(0:4)#,    << TYPE OF SEGID >>     00735000
   ARQX'SEGID'CSTBLK   = ARQX'SEGID1.(4:12)#,   << INDEX INTO CSTBLK >> 00740000
   ARQX'SEGID'NUMFIELD = ARQX'SEGID2#;          << APPROPRIATE VALUE >> 00745000
                                                                        00750000
                                                                        00755000
DEFINE                                                                  00760000
                                                                        00765000
    ARQX'DBREL   =   ARQX'BUFDST.(0:1)#,    << 1 => IO IS DB REL. >>    00770000
    ARQX'BUF'DSTN=   ARQX'BUFDST.(1:15)#,   <<  DST NUMBER ONLY >>      00775000
    ARQX'UNIT    =   ARQX'UNITFNC.(0:8)#,   << UNIT # ON CONTROLLER >>  00780000
    ARQX'FUNC    =   ARQX'UNITFNC.(8:8)#,   << FUNCTION REQUESTED  >>   00785000
                                                                        00790000
                                                                        00795000
    ARQX'ABORT   =   ARQX'FLAGS.(0:1)#,     << DRZ IS TO BE ABORTED >>  00800000
    ARQX'MMREQ   =   ARQX'FLAGS.(1:1)#,     << SEGMENT XFER REQ. >>     00805000
    ARQX'DIAG    =   ARQX'FLAGS.(2:1)#,     << A DIAGNOSTIC REQUEST >>  00810000
    ARQX'SBUF    =   ARQX'FLAGS.(3:1)#,     << REQ USES SBUFS  >>       00815000
    ARQX'IOWAKE  =   ARQX'FLAGS.(4:1)#,     << WAKE CALLER WHEN DONE >> 00820000
    ARQX'BLOCKED =   ARQX'FLAGS.(5:1)#,     << REQ WAITED IN ATTACHIO>> 00825000
    ARQX'DONE    =   ARQX'FLAGS.(6:1)#,     << REQ IS DONE  >>          00830000
    ARQX'DATAFRZN=   ARQX'FLAGS.(7:1)#,     << DATA IS FROZEN IN MEM >> 00835000
    ARQX'MAMERR  =   ARQX'FLAGS.(8:1)#,     << MAKE PRESENT ERROR >>    00840000
    ARQX'PREQ    =   ARQX'FLAGS.(9:1)#,     << REQ IS QUEUED      >>    00845000
    ARQX'SFAIL   =   ARQX'FLAGS.(10:1)#,    << START IO FAILED   >>     00850000
    ARQX'PFAIL   =   ARQX'FLAGS.(11:1)#,    << A POWERFAIL OCCURED >>   00855000
    ARQX'CUR'REQ =   ARQX'FLAGS.(12:1)#,    << 1=CURRENT REQUEST   >>   00860000
    ARQX'DISABLE =   ARQX'FLAGS.(13:1)#,    << REQUEST IS DISABLED  >>  00865000
    ARQX'IS'LDRQ =   ARQX'FLAGS.(14:1)#,    << REQUEST IS LDR>><<*7603>>00870000
    ARQX'INLOCAL =   ARQX'FLAGS.(15:1)#,    << DST IN LOCAL >> <<*7603>>00875000
    SERWQFLAG' =(8:1)#,                                                 00880000
    ARQX'ON'FREELIST=ARQX'PCB.(0:1)#,       <<1 MEANS ON FREE LIST  >>  00885000
    ARQX'SERWQ  = ARQX'FLAGS.SERWQFLAG'#;                               00890000
                                                                        00895000
                                                                        00900000
                                                                        00905000
                                                                        00910000
                                                                        00915000
                                                                        00920000
<< PART 3:  DIRECT  QUE ELEMENT ADDRESSING                        >>    00925000
                                                                        00930000
                                                                        00935000
                                                                        00940000
                                                                        00945000
                                                                        00950000
<<  WHILE DISABLED OR PDISABLED DB SHOULD BE SET TO A QUE ELEMENT >>    00955000
<<  WITH THE DEFINE: SETDB'QUE.  EACH WORD OF THE QUE CAN THEN BE >>    00960000
<<  ADDRESSED DIRECTLY WITHOUT INDEXING.  WHEN DONE  DB SHOULD BE >>    00965000
<<  RESTORED USUALLY TO SYSDB WITH THE DEFINE:  SETDB'SYS         >>    00970000
                                                                        00975000
<<  THIS INCLUDE MUST FOLLOW  THE  INCLDRQ INCLUDE                >>    00980000
                                                                        00985000
LOGICAL ARRAY  ARQ(*) = DB;    << DB  AT THE TABLE ENTRY DESIRED  >>    00990000
                                                                        00995000
                                                                        01000000
LOGICAL                                                                 01005000
                                                                        01010000
    ARQ'FLAGS   =   DB+DRQ'FLAGS'INDEX,                                 01015000
    ARQ'URGCLAS =   DB+DRQ'URGCLAS'INDEX,                               01020000
    ARQ'FREELINK=   DB+DRQ'FRE'LNK'INDEX,                               01025000
    ARQ'LDEV    =   DB+DRQ'LDEV'INDEX,                                  01030000
    ARQ'QMISC   =   DB+DRQ'QMISC'INDEX,                                 01035000
    ARQ'BUFDST  =   DB+DRQ'BUFDST'INDEX,                                01040000
    ARQ'BUFADR  =   DB+DRQ'BUFADR'INDEX,                                01045000
    ARQ'UNITFNC =   DB+DRQ'FUNC'INDEX,                                  01050000
    ARQ'COUNT   =   DB+DRQ'COUNT'INDEX,                                 01055000
    ARQ'PARM1   =   DB+DRQ'PARM1'INDEX,                                 01060000
    ARQ'PARM2   =   DB+DRQ'PARM2'INDEX,                                 01065000
    ARQ'STAT    =   DB+DRQ'STATUS'INDEX,                                01070000
    ARQ'PCB     =   DB+DRQ'PCB'INDEX,                                   01075000
    ARQ'PREVQ   =   DB+DRQ'PREVQ'INDEX,                                 01080000
    ARQ'NEXTQ   =   DB+DRQ'NEXTQ'INDEX,                                 01085000
    ARQ'SEGID1  =   DB+DRQ'SEGID1'INDEX,                                01090000
    ARQ'SEGID2  =   DB+DRQ'SEGID2'INDEX,                                01095000
    ARQ'SEGDISP =   DB+DRQ'SEGDISP'INDEX;                               01100000
                                                                        01105000
                                                                        01110000
DEFINE                                                                  01115000
                                                                        01120000
       << THESE FIELD DEFINTION SHOULD AGREE WITH INCLOBJ >>            01125000
   ARQ'SEGID'TYPE     = ARQ'SEGID1.(0:4)#,    << TYPE OF SEGID >>       01130000
   ARQ'SEGID'CSTBLK   = ARQ'SEGID1.(4:12)#,   << INDEX INTO CSTBLK >>   01135000
   ARQ'SEGID'NUMFIELD = ARQ'SEGID2#;          << APPROPRIATE VALUE >>   01140000
                                                                        01145000
                                                                        01150000
DEFINE                                                                  01155000
                                                                        01160000
    ARQ'DBREL   =   ARQ'BUFDST.(0:1)#,    << 1 => IO IS DB REL. >>      01165000
    ARQ'BUF'DSTN=   ARQ'BUFDST.(1:15)#,   <<  DST NUMBER ONLY >>        01170000
    ARQ'UNIT    =   ARQ'UNITFNC.(0:8)#,   << UNIT # ON CONTROLLER >>    01175000
    ARQ'FUNC    =   ARQ'UNITFNC.(8:8)#,   << FUNCTION REQUESTED  >>     01180000
                                                                        01185000
                                                                        01190000
    ARQ'ABORT   =   ARQ'FLAGS.(0:1)#,     << ARQ IS TO BE ABORTED >>    01195000
    ARQ'MMREQ   =   ARQ'FLAGS.(1:1)#,     << SEGMENT XFER REQ. >>       01200000
    ARQ'DIAG    =   ARQ'FLAGS.(2:1)#,     << A DIAGNOSTIC REQUEST >>    01205000
    ARQ'SBUF    =   ARQ'FLAGS.(3:1)#,     << REQ USES SBUFS  >>         01210000
    ARQ'IOWAKE  =   ARQ'FLAGS.(4:1)#,     << WAKE CALLER WHEN DONE >>   01215000
    ARQ'BLOCKED =   ARQ'FLAGS.(5:1)#,     << REQ WAITED IN ATTACHIO>>   01220000
    ARQ'DONE    =   ARQ'FLAGS.(6:1)#,     << REQ IS DONE  >>            01225000
    ARQ'DATAFRZN=   ARQ'FLAGS.(7:1)#,     << DATA IS FROZEN IN MEM >>   01230000
    ARQ'MAMERR  =   ARQ'FLAGS.(8:1)#,     << MAKE PRESENT ERROR >>      01235000
    ARQ'PREQ    =   ARQ'FLAGS.(9:1)#,     << REQ IS QUEUED      >>      01240000
    ARQ'SFAIL   =   ARQ'FLAGS.(10:1)#,    << START IO FAILED   >>       01245000
    ARQ'PFAIL   =   ARQ'FLAGS.(11:1)#,    << A POWERFAIL OCCURED >>     01250000
    ARQ'CUR'REQ =   ARQ'FLAGS.(12:1)#,    << 1=CURRENT REQUEST      >>  01255000
    ARQ'DISABLE =   ARQ'FLAGS.(13:1)#,    << REQUEST IS DISABLED  >>    01260000
    ARQ'IS'LDRQ =   ARQ'FLAGS.(14:1)#,    << REQUEST IS LDR  >><<*7603>>01265000
    ARQ'INLOCAL =   ARQ'FLAGS.(15:1)#,    << DST IN LOCAL   >> <<*7603>>01270000
    ARQ'ON'FREELIST=ARQ'PCB.(0:1)#,       << 1 MEANS ON FREE LIST  >>   01275000
    ARQ'SERWQ  = ARQ'FLAGS.SERWQFLAG#;                                  01280000
                                                                        01285000
                                                                        01290000
<<------------------------------------------------------------>>        01295000
<<                      END   INCLARQ                         >>        01300000
<<                                                            >>        01305000
<<          ALTERNATE QUE  ADDRESSING  MODES FOR MPEV         >>        01310000
<<                                                            >>        01315000
<<------------------------------------------------------------>>        01320000
