From:	CRDGW2::CRDGW2::MRGATE::"SMTP::CRVAX.SRI.COM::RELAY-INFO-VAX"  9-JUN-1989 14:39
To:	MRGATE::"ARISIA::EVERHART"
Subj:	VMS V5.2 SYS$DEVICE_SCAN example program

Message-Id:  <8906091807.AA12393@crdgw1.ge.com>
Received: From KL.SRI.COM by CRVAX.SRI.COM with TCP; Thu,  8 JUN 89 22:31:04 PDT
Received: from CUNYVM.CUNY.EDU by KL.SRI.COM with TCP; Thu, 8 Jun 89 18:06:42 PDT
Received: from FHCRCVAX.BITNET by CUNYVM.CUNY.EDU (IBM VM SMTP R1.1) with BSMTP id 7501; Thu, 08 Jun 89 21:06:25 EDT
Date: Thu, 8 Jun 89 15:33 PST
From: Joe Meadows <JOE%FHCRCVAX.BITNET@CUNYVM.CUNY.EDU>
Subject: VMS V5.2 SYS$DEVICE_SCAN example program
To: info-vax@kl.sri.com
X-Vms-To: INFO-VAX

Hello all,

        I figured since I mentioned SYS$DEVICE_SCAN in an earlier post,
I should post the example code I came up with for that routine.

Note that both SYS$DEVICE_SCAN and SYS$PROCESS_SCAN are both VMS V5.2
(possible?) features.

Anyway, this short example displays a list of devices on your system.
If passed nothing, it will display all devices, if passed a device class
(for example DISK) it will display all disks, and if you request a specific
type of device (i.e RA90), it will display all your RA90 disks. I can't
guarantee the device names/classes/types, I took them from $DCDEF and they
aren't necessarily correct. If anyone wishes to update the table (in the
file DEV_TABLE.H), I would appreciate a copy!

When you get a V5.2 machine, you should compile and link this, and define
a foreign command symbol, i.e. DEVICE == "$device:[directory]DEVICE"
to run the program with, then you can say things like:
        $ DEVICE DISK
        $ DEVICE RA82
etc.

Cheers,
Joe Meadows     joe@fhcrcvax.bitnet

$ create/log DEVICE.C
$DECK
#include ctype
#include descrip
#include dvidef
#include "$dcdef.h"  /* device class definition, from V5.2 */
#include "$dvsdef.h" /* from V5.2 */
#include "dev_table.h"

#define MAXLST 50
static struct itmlst {
  unsigned short int length;
  unsigned short int code;
  char *bufadr;
  int *retlen;
} devlst[MAXLST];

#define TABLESIZE(x) sizeof(x)/sizeof(x[0])

main(int argc, char *argv[])
{
  char buff[252];
  struct dsc$descriptor retname = {sizeof(buff),0,0,buff};
  $DESCRIPTOR(wild,"*");
  int retlen;
  int contxt[2] = {0,0};
  int sts, i, indx = 0;
  int devclass, devtype;
  struct itmlst dvilist[] =
    {{4,DVI$_DEVCLASS,&devclass,0},
     {4,DVI$_DEVTYPE,&devtype,0},
     {0,0,0,0}};

  for (i = 1; (i < argc) && (indx < MAXLST); i++)
  {
    sts = table_lookup(class,TABLESIZE(class),strupcase(argv[i]));
    if (sts != -1)
    {
      devlst[indx].code = DVS$_DEVCLASS;
      devlst[indx++].bufadr = &class[sts].value;
    }
    else
    {
      sts = table_lookup(types,TABLESIZE(types),strupcase(argv[i]));
      if (sts != -1)
      {
        devlst[indx].code = DVS$_DEVTYPE;
        devlst[indx++].bufadr = &types[sts].value;
        devlst[indx].code = DVS$_DEVCLASS;
        devlst[indx++].bufadr = &types[sts].value2;
      }
      else
      {
        printf("%s is not a valid device class/type\n",argv[i]);
      }
    }
    devlst[indx].code = 0;
  }

  sts = 1;
  while (sts & 1)
  {
    sts = sys$device_scan(&retname,&retlen, indx ? &wild : 0 ,devlst,contxt);
    if (sts & 1)
    {
      printf("%.*s",retlen,retname.dsc$a_pointer);

      retname.dsc$w_length = retlen;
      sts = sys$getdviw(0,0,&retname,dvilist,0,0,0,0);
      if (sts & 1)
      {
        sts = device_lookup(class,TABLESIZE(class),0,devclass);
        if (sts != -1)
          printf("\t%s",class[sts].name);
        sts = device_lookup(types,TABLESIZE(types),devclass,devtype);
        if (sts != -1)
          printf("\t%s",types[sts].name);
      }

      retname.dsc$w_length = sizeof(buff);
      printf("\n");
      sts = 1;
    }
  }

}

table_lookup(struct Table *t, int n, char *key)
{
  int i;

  for (i = 0; i < n; i++, t++)
    if (strcmp(key,t->name) == 0)
      return(i);

  return(-1);
}

device_lookup(struct Table *t, int n, int devclass, int devtype)
{
  int i;

  for (i = 0; i < n; i++, t++)
    if ((t->value == devtype) && (t->value2 == devclass))
      return(i);

  return(-1);
}

strupcase(char *s)
{
  char *p = s;

  while (*p)
  {
    if (islower(*p))
      *p = toupper(*p);
    ++p;
  }

  return(s);
}
$EOD
$ create/log $DCDEF.H
$DECK
/* Created by SDL V3.1-7     */
/* Source: 18-APR-1989 21:05:39 SPUD$DISK:[JOE.VMS5]STARDEFAE.SDI;1 */
#ifndef $DCDEF_H
#define $DCDEF_H

/*** MODULE $DCDEF ***/
#define AT$_MBA 0
#define AT$_UBA 1
#define AT$_DR 2
#define AT$_MPM 3
#define AT$_CI 4
#define AT$_NULL 5
#define AT$_BDA 6
#define AT$_DMB32 7
#define AT$_DRB32 8
#define AT$_BVP 9
#define AT$_BVP_SSP 10
#define AT$_BVP_NIP 11
#define AT$_KA410 12
#define AT$_KA420 12
#define AT$_GENBI 13
#define AT$_NBI 14
#define AT$_DISK9 15
#define AT$_XBI 16
#define AT$_TERM9 17
#define AT$_TAPE9 18
#define AT$_PRTR9 19
#define AT$_SFUN9 20
#define AT$_USER9 21
#define AT$_MBUSIO 22
#define AT$_MBUSGFX 23
#define AT$_KA640 24
#define AT$_XWATCH 25
#define DC$_DISK 1
#define DC$_TAPE 2
#define DC$_SCOM 32
#define DC$_CARD 65
#define DC$_TERM 66
#define DC$_LP 67
#define DC$_WORKSTATION 70
#define DC$_REALTIME 96
#define DC$_BUS 128
#define DC$_MAILBOX 160
#define DC$_MISC 200
#define DT$_RK06 1
#define DT$_RK07 2
#define DT$_RP04 3
#define DT$_RP05 4
#define DT$_RP06 5
#define DT$_RM03 6
#define DT$_RP07 7
#define DT$_RP07HT 8
#define DT$_RL01 9
#define DT$_RL02 10
#define DT$_RX02 11
#define DT$_RX04 12
#define DT$_RM80 13
#define DT$_TU58 14
#define DT$_RM05 15
#define DT$_RX01 16
#define DT$_ML11 17
#define DT$_RB02 18
#define DT$_RB80 19
#define DT$_RA80 20
#define DT$_RA81 21
#define DT$_RA60 22
#define DT$_RZ01 23
#define DT$_RC25 23
#define DT$_RZF01 24
#define DT$_RCF25 24
#define DT$_RD51 25
#define DT$_RX50 26
#define DT$_RD52 27
#define DT$_RD53 28
#define DT$_RD26 29
#define DT$_RA82 30
#define DT$_RD31 31
#define DT$_RD54 32
#define DT$_CRX50 33
#define DT$_RRD50 34
#define DT$_GENERIC_DU 35
#define DT$_RX33 36
#define DT$_RX18 37
#define DT$_RA70 38
#define DT$_RA90 39
#define DT$_RD32 40
#define DT$_DISK9 41
#define DT$_RX35 42
#define DT$_RF30 43
#define DT$_RF70 44
#define DT$_RF71 44
#define DT$_RD33 45
#define DT$_ESE20 46
#define DT$_TU56 47
#define DT$_RZ22 48
#define DT$_RZ23 49
#define DT$_RZ24 50
#define DT$_RZ55 51
#define DT$_RRD40S 52
#define DT$_RRD40 53
#define DT$_GENERIC_DK 54
#define DT$_RX23 55
#define DT$_RF31 56
#define DT$_RF72 57
#define DT$_RAM_DISK 58
#define DT$_FD1 129
#define DT$_FD2 130
#define DT$_FD3 131
#define DT$_FD4 132
#define DT$_FD5 133
#define DT$_FD6 134
#define DT$_FD7 135
#define DT$_FD8 136
#define DT$_TE16 1
#define DT$_TU45 2
#define DT$_TU77 3
#define DT$_TS11 4
#define DT$_TU78 5
#define DT$_TA78 6
#define DT$_TU80 7
#define DT$_TU81 8
#define DT$_TA81 9
#define DT$_TK50 10
#define DT$_MR_TU70 11
#define DT$_MR_TU72 12
#define DT$_MW_TSU05 13
#define DT$_MW_TSV05 14
#define DT$_TK70 15
#define DT$_RV20 16
#define DT$_RV80 16
#define DT$_TK60 17
#define DT$_GENERIC_TU 18
#define DT$_TA79 19
#define DT$_TAPE9 20
#define DT$_TA90 21
#define DT$_TF30 22
#define DT$_TF85 22
#define DT$_TF70 23
#define DT$_RV60 24
#define DT$_TZ30 25
#define DT$_TTYUNKN 0
#define DT$_VT05 1
#define DT$_FT1 16
#define DT$_FT2 17
#define DT$_FT3 18
#define DT$_FT4 19
#define DT$_FT5 20
#define DT$_FT6 21
#define DT$_FT7 22
#define DT$_FT8 23
#define DT$_LAX 32
#define DT$_LA36 32
#define DT$_LA120 33
#define DT$_VT5X 64
#define DT$_VT52 64
#define DT$_VT55 65
#define DT$_TQ_BTS 4
#define DT$_TEK401X 10
#define DT$_VT100 96
#define DT$_VK100 2
#define DT$_VT173 3
#define DT$_LA34 34
#define DT$_LA38 35
#define DT$_LA12 36
#define DT$_LA24 37
#define DT$_LA100 37
#define DT$_LQP02 38
#define DT$_VT101 97
#define DT$_VT102 98
#define DT$_VT105 99
#define DT$_VT125 100
#define DT$_VT131 101
#define DT$_VT132 102
#define DT$_DZ11 66
#define DT$_DZ32 67
#define DT$_DZ730 68
#define DT$_DMZ32 69
#define DT$_DHV 70
#define DT$_DHU 71
#define DT$_SLU 72
#define DT$_TERM9 73
#define DT$_LAT 74
#define DT$_VS100 1
#define DT$_VS125 2
#define DT$_VL_VS8200 3
#define DT$_VD 4
#define DT$_DECW_OUTPUT 5
#define DT$_DECW_INPUT 6
#define DT$_DMC11 1
#define DT$_DMR11 2
#define DT$_XK_3271 3
#define DT$_XJ_2780 4
#define DT$_NW_X25 5
#define DT$_NV_X29 6
#define DT$_SB_ISB11 7
#define DT$_MX_MUX200 8
#define DT$_DMP11 9
#define DT$_DMF32 10
#define DT$_XV_3271 11
#define DT$_CI 12
#define DT$_NI 13
#define DT$_UNA11 14
#define DT$_DEUNA 14
#define DT$_YN_X25 15
#define DT$_YO_X25 16
#define DT$_YP_ADCCP 17
#define DT$_YQ_3271 18
#define DT$_YR_DDCMP 19
#define DT$_YS_SDLC 20
#define DT$_UK_KTC32 21
#define DT$_DEQNA 22
#define DT$_DMV11 23
#define DT$_ES_LANCE 24
#define DT$_DELUA 25
#define DT$_NQ_3271 26
#define DT$_DMB32 27
#define DT$_YI_KMS11K 28
#define DT$_ET_DEBNT 29
#define DT$_ET_DEBNA 29
#define DT$_SJ_DSV11 30
#define DT$_SL_DSB32 31
#define DT$_ZS_DST32 32
#define DT$_XQ_DELQA 33
#define DT$_ET_DEBNI 34
#define DT$_EZ_SGEC 35
#define DT$_LP11 1
#define DT$_LA11 2
#define DT$_LA180 3
#define DT$_LC_DMF32 4
#define DT$_LI_DMB32 5
#define DT$_PRTR9 6
#define DT$_CR11 1
#define DT$_MBX 1
#define DT$_SHRMBX 2
#define DT$_NULL 3
#define DT$_PIPE 4
#define DT$_LPA11 1
#define DT$_DR780 2
#define DT$_DR750 3
#define DT$_DR11W 4
#define DT$_PCL11R 5
#define DT$_PCL11T 6
#define DT$_DR11C 7
#define DT$_BS_DT07 8
#define DT$_XP_PCL11B 9
#define DT$_IX_IEX11 10
#define DT$_FP_FEPCM 11
#define DT$_TK_FCM 12
#define DT$_XI_DR11C 13
#define DT$_XA_DRV11WA 14
#define DT$_DRB32 15
#define DT$_HX_DRQ3B 16
#define DT$_CI780 1
#define DT$_CI750 2
#define DT$_UQPORT 3
#define DT$_UDA50 3
#define DT$_UDA50A 4
#define DT$_LESI 5
#define DT$_TU81P 6
#define DT$_RDRX 7
#define DT$_TK50P 8
#define DT$_RUX50P 9
#define DT$_RC26P 10
#define DT$_QDA50 11
#define DT$_KDA50 11
#define DT$_BDA50 12
#define DT$_KDB50 12
#define DT$_RRD50P 13
#define DT$_QDA25 14
#define DT$_KDA25 14
#define DT$_BCI750 15
#define DT$_BCA 16
#define DT$_RQDX3 17
#define DT$_NISCA 18
#define DT$_AIO 19
#define DT$_KFBTA 19
#define DT$_AIE 20
#define DT$_DEBNT 20
#define DT$_BSA 21
#define DT$_KSB50 21
#define DT$_TK70P 22
#define DT$_RV20P 23
#define DT$_RV80P 23
#define DT$_TK60P 24
#define DT$_SII 25
#define DT$_KFSQSA 26
#define DT$_KFQSA 26
#define DT$_SHAC 27
#define DT$_CIXCD 28
#define DT$_N5380 29
#define DT$_SCSII 30
#define DT$_DN11 1
#define DT$_PV 2
#define DT$_SFUN9 3
#define DT$_USER9 4
#endif
$EOD
$ create/log $DVSDEF.H
$DECK
/* Created by SDL V3.1-7     */
/* Source: 18-APR-1989 21:05:39 SPUD$DISK:[JOE.VMS5]STARDEFAE.SDI;1 */
#ifndef $DVSDEF_H
#define $DVSDEF_H

/*** MODULE $DVSDEF ***/
#define DVS$_DEVCLASS 1
#define DVS$_DEVTYPE 2
#endif
$EOD
$ create/log DEV_TABLE.H
$DECK
static struct Table
{
  char *name;
  int value;
  int value2;
} class[] =
   {{"DISK",DC$_DISK,0},
    {"TAPE",DC$_TAPE,0},
    {"SCOM",DC$_SCOM,0},
    {"CARD",DC$_CARD,0},
    {"TERM",DC$_TERM,0},
    {"LP",DC$_LP,0},
    {"WORKSTATION",DC$_WORKSTATION,0},
    {"REALTIME",DC$_REALTIME,0},
    {"BUS",DC$_BUS,0},
    {"MAILBOX",DC$_MAILBOX,0},
    {"MISC",DC$_MISC,0}},
  types[] =
   {{"RK06",DT$_RK06,DC$_DISK},
    {"RK07",DT$_RK07,DC$_DISK},
    {"RP04",DT$_RP04,DC$_DISK},
    {"RP05",DT$_RP05,DC$_DISK},
    {"RP06",DT$_RP06,DC$_DISK},
    {"RM03",DT$_RM03,DC$_DISK},
    {"RP07",DT$_RP07,DC$_DISK},
    {"RP07HT",DT$_RP07HT,DC$_DISK},
    {"RL01",DT$_RL01,DC$_DISK},
    {"RL02",DT$_RL02,DC$_DISK},
    {"RX02",DT$_RX02,DC$_DISK},
    {"RX04",DT$_RX04,DC$_DISK},
    {"RM80",DT$_RM80,DC$_DISK},
    {"TU58",DT$_TU58,DC$_DISK},
    {"RM05",DT$_RM05,DC$_DISK},
    {"RX01",DT$_RX01,DC$_DISK},
    {"ML11",DT$_ML11,DC$_DISK},
    {"RB02",DT$_RB02,DC$_DISK},
    {"RB80",DT$_RB80,DC$_DISK},
    {"RA80",DT$_RA80,DC$_DISK},
    {"RA81",DT$_RA81,DC$_DISK},
    {"RA60",DT$_RA60,DC$_DISK},
    {"RZ01",DT$_RZ01,DC$_DISK},
    {"RC25",DT$_RC25,DC$_DISK},
    {"RZF01",DT$_RZF01,DC$_DISK},
    {"RCF25",DT$_RCF25,DC$_DISK},
    {"RD51",DT$_RD51,DC$_DISK},
    {"RX50",DT$_RX50,DC$_DISK},
    {"RD52",DT$_RD52,DC$_DISK},
    {"RD53",DT$_RD53,DC$_DISK},
    {"RD26",DT$_RD26,DC$_DISK},
    {"RA82",DT$_RA82,DC$_DISK},
    {"RD31",DT$_RD31,DC$_DISK},
    {"RD54",DT$_RD54,DC$_DISK},
    {"CRX50",DT$_CRX50,DC$_DISK},
    {"RRD50",DT$_RRD50,DC$_DISK},
    {"GENERIC_DU",DT$_GENERIC_DU,DC$_DISK},
    {"RX33",DT$_RX33,DC$_DISK},
    {"RX18",DT$_RX18,DC$_DISK},
    {"RA70",DT$_RA70,DC$_DISK},
    {"RA90",DT$_RA90,DC$_DISK},
    {"RD32",DT$_RD32,DC$_DISK},
    {"DISK9",DT$_DISK9,DC$_DISK},
    {"RX35",DT$_RX35,DC$_DISK},
    {"RF30",DT$_RF30,DC$_DISK},
    {"RF70",DT$_RF70,DC$_DISK},
    {"RF71",DT$_RF71,DC$_DISK},
    {"RD33",DT$_RD33,DC$_DISK},
    {"ESE20",DT$_ESE20,DC$_DISK},
    {"TU56",DT$_TU56,DC$_DISK},
    {"RZ22",DT$_RZ22,DC$_DISK},
    {"RZ23",DT$_RZ23,DC$_DISK},
    {"RZ24",DT$_RZ24,DC$_DISK},
    {"RZ55",DT$_RZ55,DC$_DISK},
    {"RRD40S",DT$_RRD40S,DC$_DISK},
    {"RRD40",DT$_RRD40,DC$_DISK},
    {"GENERIC_DK",DT$_GENERIC_DK,DC$_DISK},
    {"RX23",DT$_RX23,DC$_DISK},
    {"RF31",DT$_RF31,DC$_DISK},
    {"RF72",DT$_RF72,DC$_DISK},
    {"RAM_DISK",DT$_RAM_DISK,DC$_DISK},
    {"FD1",DT$_FD1,DC$_DISK},
    {"FD2",DT$_FD2,DC$_DISK},
    {"FD3",DT$_FD3,DC$_DISK},
    {"FD4",DT$_FD4,DC$_DISK},
    {"FD5",DT$_FD5,DC$_DISK},
    {"FD6",DT$_FD6,DC$_DISK},
    {"FD7",DT$_FD7,DC$_DISK},
    {"FD8",DT$_FD8,DC$_DISK},
    {"TE16",DT$_TE16,DC$_TAPE},
    {"TU45",DT$_TU45,DC$_TAPE},
    {"TU77",DT$_TU77,DC$_TAPE},
    {"TS11",DT$_TS11,DC$_TAPE},
    {"TU78",DT$_TU78,DC$_TAPE},
    {"TA78",DT$_TA78,DC$_TAPE},
    {"TU80",DT$_TU80,DC$_TAPE},
    {"TU81",DT$_TU81,DC$_TAPE},
    {"TA81",DT$_TA81,DC$_TAPE},
    {"TK50",DT$_TK50,DC$_TAPE},
    {"MR_TU70",DT$_MR_TU70,DC$_TAPE},
    {"MR_TU72",DT$_MR_TU72,DC$_TAPE},
    {"MW_TSU05",DT$_MW_TSU05,DC$_TAPE},
    {"MW_TSV05",DT$_MW_TSV05,DC$_TAPE},
    {"TK70",DT$_TK70,DC$_TAPE},
    {"RV20",DT$_RV20,DC$_TAPE},
    {"RV80",DT$_RV80,DC$_TAPE},
    {"TK60",DT$_TK60,DC$_TAPE},
    {"GENERIC_TU",DT$_GENERIC_TU,DC$_TAPE},
    {"TA79",DT$_TA79,DC$_TAPE},
    {"TAPE9",DT$_TAPE9,DC$_TAPE},
    {"TA90",DT$_TA90,DC$_TAPE},
    {"TF30",DT$_TF30,DC$_TAPE},
    {"TF85",DT$_TF85,DC$_TAPE},
    {"TF70",DT$_TF70,DC$_TAPE},
    {"RV60",DT$_RV60,DC$_TAPE},
    {"TZ30",DT$_TZ30,DC$_TAPE},
    {"TTYUNKN",DT$_TTYUNKN,DC$_TERM},
    {"VT05",DT$_VT05,DC$_TERM},
    {"FT1",DT$_FT1,DC$_TERM},
    {"FT2",DT$_FT2,DC$_TERM},
    {"FT3",DT$_FT3,DC$_TERM},
    {"FT4",DT$_FT4,DC$_TERM},
    {"FT5",DT$_FT5,DC$_TERM},
    {"FT6",DT$_FT6,DC$_TERM},
    {"FT7",DT$_FT7,DC$_TERM},
    {"FT8",DT$_FT8,DC$_TERM},
    {"LAX",DT$_LAX,DC$_TERM},
    {"LA36",DT$_LA36,DC$_TERM},
    {"LA120",DT$_LA120,DC$_TERM},
    {"VT5X",DT$_VT5X,DC$_TERM},
    {"VT52",DT$_VT52,DC$_TERM},
    {"VT55",DT$_VT55,DC$_TERM},
    {"TQ_BTS",DT$_TQ_BTS,DC$_TERM},
    {"TEK401X",DT$_TEK401X,DC$_TERM},
    {"VT100",DT$_VT100,DC$_TERM},
    {"VK100",DT$_VK100,DC$_TERM},
    {"VT173",DT$_VT173,DC$_TERM},
    {"LA34",DT$_LA34,DC$_TERM},
    {"LA38",DT$_LA38,DC$_TERM},
    {"LA12",DT$_LA12,DC$_TERM},
    {"LA24",DT$_LA24,DC$_TERM},
    {"LA100",DT$_LA100,DC$_TERM},
    {"LQP02",DT$_LQP02,DC$_TERM},
    {"VT101",DT$_VT101,DC$_TERM},
    {"VT102",DT$_VT102,DC$_TERM},
    {"VT105",DT$_VT105,DC$_TERM},
    {"VT125",DT$_VT125,DC$_TERM},
    {"VT131",DT$_VT131,DC$_TERM},
    {"VT132",DT$_VT132,DC$_TERM},
    {"DZ11",DT$_DZ11,DC$_TERM},
    {"DZ32",DT$_DZ32,DC$_TERM},
    {"DZ730",DT$_DZ730,DC$_TERM},
    {"DMZ32",DT$_DMZ32,DC$_TERM},
    {"DHV",DT$_DHV,DC$_TERM},
    {"DHU",DT$_DHU,DC$_TERM},
    {"SLU",DT$_SLU,DC$_TERM},
    {"TERM9",DT$_TERM9,DC$_TERM},
    {"LAT",DT$_LAT,DC$_TERM},
    {"VS100",DT$_VS100,DC$_WORKSTATION},
    {"VS125",DT$_VS125,DC$_WORKSTATION},
    {"VL_VS8200",DT$_VL_VS8200,DC$_WORKSTATION},
    {"VD",DT$_VD,DC$_WORKSTATION},
    {"DECW_OUTPUT",DT$_DECW_OUTPUT,DC$_WORKSTATION},
    {"DECW_INPUT",DT$_DECW_INPUT,DC$_WORKSTATION},
    {"DMC11",DT$_DMC11,DC$_SCOM},
    {"DMR11",DT$_DMR11,DC$_SCOM},
    {"XK_3271",DT$_XK_3271,DC$_SCOM},
    {"XJ_2780",DT$_XJ_2780,DC$_SCOM},
    {"NW_X25",DT$_NW_X25,DC$_SCOM},
    {"NV_X29",DT$_NV_X29,DC$_SCOM},
    {"SB_ISB11",DT$_SB_ISB11,DC$_SCOM},
    {"MX_MUX200",DT$_MX_MUX200,DC$_SCOM},
    {"DMP11",DT$_DMP11,DC$_SCOM},
    {"DMF32",DT$_DMF32,DC$_SCOM},
    {"XV_3271",DT$_XV_3271,DC$_SCOM},
    {"CI",DT$_CI,DC$_SCOM},
    {"NI",DT$_NI,DC$_SCOM},
    {"UNA11",DT$_UNA11,DC$_SCOM},
    {"DEUNA",DT$_DEUNA,DC$_SCOM},
    {"YN_X25",DT$_YN_X25,DC$_SCOM},
    {"YO_X25",DT$_YO_X25,DC$_SCOM},
    {"YP_ADCCP",DT$_YP_ADCCP,DC$_SCOM},
    {"YQ_3271",DT$_YQ_3271,DC$_SCOM},
    {"YR_DDCMP",DT$_YR_DDCMP,DC$_SCOM},
    {"YS_SDLC",DT$_YS_SDLC,DC$_SCOM},
    {"UK_KTC32",DT$_UK_KTC32,DC$_SCOM},
    {"DEQNA",DT$_DEQNA,DC$_SCOM},
    {"DMV11",DT$_DMV11,DC$_SCOM},
    {"ES_LANCE",DT$_ES_LANCE,DC$_SCOM},
    {"DELUA",DT$_DELUA,DC$_SCOM},
    {"NQ_3271",DT$_NQ_3271,DC$_SCOM},
    {"DMB32",DT$_DMB32,DC$_SCOM},
    {"YI_KMS11K",DT$_YI_KMS11K,DC$_SCOM},
    {"ET_DEBNT",DT$_ET_DEBNT,DC$_SCOM},
    {"ET_DEBNA",DT$_ET_DEBNA,DC$_SCOM},
    {"SJ_DSV11",DT$_SJ_DSV11,DC$_SCOM},
    {"SL_DSB32",DT$_SL_DSB32,DC$_SCOM},
    {"ZS_DST32",DT$_ZS_DST32,DC$_SCOM},
    {"XQ_DELQA",DT$_XQ_DELQA,DC$_SCOM},
    {"ET_DEBNI",DT$_ET_DEBNI,DC$_SCOM},
    {"EZ_SGEC",DT$_EZ_SGEC,DC$_SCOM},
    {"LP11",DT$_LP11,DC$_LP},
    {"LA11",DT$_LA11,DC$_LP},
    {"LA180",DT$_LA180,DC$_LP},
    {"LC_DMF32",DT$_LC_DMF32,DC$_LP},
    {"LI_DMB32",DT$_LI_DMB32,DC$_LP},
    {"PRTR9",DT$_PRTR9,DC$_LP},
    {"CR11",DT$_CR11,DC$_CARD},
    {"MBX",DT$_MBX,DC$_MAILBOX},
    {"SHRMBX",DT$_SHRMBX,DC$_MAILBOX},
    {"NULL",DT$_NULL,DC$_MAILBOX},
    {"PIPE",DT$_PIPE,DC$_MAILBOX},
    {"LPA11",DT$_LPA11,DC$_REALTIME},
    {"DR780",DT$_DR780,DC$_REALTIME},
    {"DR750",DT$_DR750,DC$_REALTIME},
    {"DR11W",DT$_DR11W,DC$_REALTIME},
    {"PCL11R",DT$_PCL11R,DC$_REALTIME},
    {"PCL11T",DT$_PCL11T,DC$_REALTIME},
    {"DR11C",DT$_DR11C,DC$_REALTIME},
    {"BS_DT07",DT$_BS_DT07,DC$_REALTIME},
    {"XP_PCL11B",DT$_XP_PCL11B,DC$_REALTIME},
    {"IX_IEX11",DT$_IX_IEX11,DC$_REALTIME},
    {"FP_FEPCM",DT$_FP_FEPCM,DC$_REALTIME},
    {"TK_FCM",DT$_TK_FCM,DC$_REALTIME},
    {"XI_DR11C",DT$_XI_DR11C,DC$_REALTIME},
    {"XA_DRV11WA",DT$_XA_DRV11WA,DC$_REALTIME},
    {"DRB32",DT$_DRB32,DC$_REALTIME},
    {"HX_DRQ3B",DT$_HX_DRQ3B,DC$_REALTIME},
    {"CI780",DT$_CI780,DC$_BUS},
    {"CI750",DT$_CI750,DC$_BUS},
    {"UQPORT",DT$_UQPORT,DC$_BUS},
    {"UDA50",DT$_UDA50,DC$_BUS},
    {"UDA50A",DT$_UDA50A,DC$_BUS},
    {"LESI",DT$_LESI,DC$_BUS},
    {"TU81P",DT$_TU81P,DC$_BUS},
    {"RDRX",DT$_RDRX,DC$_BUS},
    {"TK50P",DT$_TK50P,DC$_BUS},
    {"RUX50P",DT$_RUX50P,DC$_BUS},
    {"RC26P",DT$_RC26P,DC$_BUS},
    {"QDA50",DT$_QDA50,DC$_BUS},
    {"KDA50",DT$_KDA50,DC$_BUS},
    {"BDA50",DT$_BDA50,DC$_BUS},
    {"KDB50",DT$_KDB50,DC$_BUS},
    {"RRD50P",DT$_RRD50P,DC$_BUS},
    {"QDA25",DT$_QDA25,DC$_BUS},
    {"KDA25",DT$_KDA25,DC$_BUS},
    {"BCI750",DT$_BCI750,DC$_BUS},
    {"BCA",DT$_BCA,DC$_BUS},
    {"RQDX3",DT$_RQDX3,DC$_BUS},
    {"NISCA",DT$_NISCA,DC$_BUS},
    {"AIO",DT$_AIO,DC$_BUS},
    {"KFBTA",DT$_KFBTA,DC$_BUS},
    {"AIE",DT$_AIE,DC$_BUS},
    {"DEBNT",DT$_DEBNT,DC$_BUS},
    {"BSA",DT$_BSA,DC$_BUS},
    {"KSB50",DT$_KSB50,DC$_BUS},
    {"TK70P",DT$_TK70P,DC$_BUS},
    {"RV20P",DT$_RV20P,DC$_BUS},
    {"RV80P",DT$_RV80P,DC$_BUS},
    {"TK60P",DT$_TK60P,DC$_BUS},
    {"SII",DT$_SII,DC$_BUS},
    {"KFSQSA",DT$_KFSQSA,DC$_BUS},
    {"KFQSA",DT$_KFQSA,DC$_BUS},
    {"SHAC",DT$_SHAC,DC$_BUS},
    {"CIXCD",DT$_CIXCD,DC$_BUS},
    {"N5380",DT$_N5380,DC$_BUS},
    {"SCSII",DT$_SCSII,DC$_BUS},
    {"DN11",DT$_DN11,DC$_MISC},
    {"PV",DT$_PV,DC$_MISC},
    {"SFUN9",DT$_SFUN9,DC$_MISC},
    {"USER9",DT$_USER9,DC$_MISC}};
$EOD


