EXTERNALROUTINE  DIRCOM(STRING (255)S)
!
EXTERNALSTRINGFNSPEC  DERRS(INTEGER  N)
EXTERNALINTEGERFNSPEC  DSYSAD(INTEGER  TYPE, ADR, FSYS)
!
ROUTINE  W(STRING (255)S)
      PRINTSTRING(S)
      NEWLINE
END 
!
!
! On the IPL disc, the first X'900 pages are not covered by the 'BITMAP'
! this means that as many bits (=288 bytes) may be used for other purposes.
! All discs have X'140 bits (40 bytes) available. The remaining 248 bytes
! are described by this format. The address of the record is given by
! SYSAD(DIRCOMKEY, -1)
!
CONSTINTEGER  DIRCOM KEY = 5
CONSTINTEGER  DIRCOMSIZE = 39
!
      RECORDFORMAT  C 
DIRCOMF(INTEGER  DIRLOG SEMA, FEP SEMA,
      STRING (6)DAP SOLE USER, DAP BATCH USER, BYTEINTEGER  B1, B2,
      INTEGER  DAP BATCH LIMIT, DAP INTER LIMIT, STRING (6)DAP USER)
!
      RECORDFORMAT  C 
COMF(INTEGER  OCPTYPE,IPLDEV,SBLKS,SEPGS,NDISCS,  C 
      DLVNADDR,GPCTABSIZE,GPCA,SFCTABSIZE,SFCA,SFCK,DIRSITE,  C 
      DCODEDA,SUPLVN,TOJDAY,DATE0,DATE1,DATE2,  C 
      TIME0,TIME1,TIME2,EPAGESIZE,USERS,CATTAD,SERVAAD,  C 
      BYTEINTEGER  NSACS,RESV1,SACPORT1,SACPORT0, C 
      NOCPS,RESV2,OCPPORT1,OCPPORT0, C 
      INTEGER  ITINT,CONTYPEA,GPCCONFA,FPCCONFA,SFCCONFA, C 
      BLKADDR,RATION,SMACS,TRANS,LONGINTEGER  KMON,  C 
      INTEGER  DITADDR,SMACPOS,SUPVSN,PSTVA,SECSFRMN,SECSTOCD, C 
      SYNC1DEST,SYNC2DEST,ASYNCDEST,MAXPROCS,KINSTRS,ELAPHEAD, C 
      COMMSRECA,STOREAAD,PROCAAD,SFCCTAD,DRUMTAD,TSLICE,FEPS,MAXCBT, C 
      PERFORMAD, BYTEINTEGER  DAPNO, DAPBLKS, DAPUSERS, DAPSTATE, C 
      INTEGER  DAP1, SP1, SP2, SP3, SP4, C 
      LSTL,LSTB,PSTL,PSTB,HKEYS,HOOT,SIM,CLKX,CLKY,CLKZ,  C 
      HBIT,SLAVEOFF,INHSSR,SDR1,SDR2,SDR3,  C 
      SDR4,SESR,HOFFBIT,BLOCKZBIT, BLKSHIFT, BLKSIZE,END)
!
CONSTRECORD (COMF)NAME  COM = X'80000000' + 48 << 18
!
!
INTEGER  J
RECORD (DIRCOMF)D
      J = DSYSAD(DIRCOMKEY, ADDR(D), COM_SUPLVN)
      IF  J = 0 START 
         PRINTSTRING("DAP SOLE USER   = "); W(D_DAP SOLE USER)
         PRINTSTRING("DAP BATCH USER  = "); W(D_DAP BATCH USER)
         PRINTSTRING("DAP BATCH LIMIT =");  WRITE(D_DAP BATCH LIMIT, 1); NEWLINE
         PRINTSTRING("DAP INTER LIMIT =");  WRITE(D_DAP INTER LIMIT, 1); NEWLINE
         PRINTSTRING("DAP USER        = "); W(D_DAP USER)
      FINISH  ELSE  START 
         W(DERRS(J))
      FINISH 
END 
ENDOFFILE