typedef unsigned char   byte;           // 8-bit
typedef unsigned int    word;           // 16-bit
typedef unsigned long   dword;          // 32-bit

#define DSC_STR     0x03

typedef struct {
  byte tData[64];
} CFGTPLT;

CFGTPLT cfg01;

//
typedef struct {byte bLength;byte bDscType;word string[25];} SD001;

#pragma code sd001 0x005000

SD001 sd001 =
{ {sizeof(SD001)},{DSC_STR},{
'S','t','r','i','n','g',
'D','e','s','c','r','i','p','t','o','r',' ','0','0','0','1'}};


//
typedef struct {byte bLength;byte bDscType;word string[25];} SD002;
SD002 sd002 =
{{sizeof(SD002)},{DSC_STR},{
'S','t','r','i','n','g',
'D','e','s','c','r','i','p','t','o','r',' ','0','0','0','2'}};

// from usbdsc.c
typedef struct{
    const unsigned char * cdTplt[2];
} USB_CD_TPLT;

typedef struct{
    const unsigned char * sdTplt[3];
} USB_SD_TPLT;

USB_CD_TPLT USB_CD_Ptr = {
  {&cfg01},
  {&cfg01}
};

USB_SD_TPLT USB_SD_Ptr = {
 {&sd001},
 {&sd002}
} ;

main() {
  while(1){};
  }
