Index: /trunk/include/VBox/scsi.h
===================================================================
--- /trunk/include/VBox/scsi.h	(revision 12550)
+++ /trunk/include/VBox/scsi.h	(revision 12551)
@@ -104,4 +104,5 @@
     /** Report LUNs command. */
     SCSI_REPORT_LUNS                    = 0xa0,
+    SCSI_REPORT_DENSITY                 = 0x44,
     /** Rezero Unit command. Obsolete for ages now, but used by cdrecord. */
     SCSI_REZERO_UNIT                    = 0x01,
@@ -112,266 +113,4 @@
 } SCSICMD;
 
-#ifdef DEBUG
-static const char * const g_apszSCSICmdNames[256] =
-{
-    "TEST UNIT READY",                     /* 0x00 */
-    "REZERO UNIT",                         /* 0x01 */
-    "",                                    /* 0x02 */
-    "REQUEST SENSE",                       /* 0x03 */
-    "FORMAT UNIT",                         /* 0x04 */
-    "READ BLOCK LIMITS",                   /* 0x05 */
-    "",                                    /* 0x06 */
-    "REASSIGN BLOCKS",                     /* 0x07 */
-    "READ (6)",                            /* 0x08 */
-    "",                                    /* 0x09 */
-    "WRITE (6)",                           /* 0x0a */
-    "SEEK (6)",                            /* 0x0b */
-    "",                                    /* 0x0c */
-    "",                                    /* 0x0d */
-    "",                                    /* 0x0e */
-    "READ REVERSE (6)",                    /* 0x0f */
-    "READ FILEMARKS (6)",                  /* 0x10 */
-    "SPACE (6)",                           /* 0x11 */
-    "INQUIRY",                             /* 0x12 */
-    "VERIFY (6)",                          /* 0x13 */
-    "RECOVER BUFFERED DATA",               /* 0x14 */
-    "MODE SELECT (6)",                     /* 0x15 */
-    "RESERVE (6)",                         /* 0x16 */
-    "RELEASE (6)",                         /* 0x17 */
-    "COPY",                                /* 0x18 */
-    "ERASE (6)",                           /* 0x19 */
-    "MODE SENSE (6)",                      /* 0x1a */
-    "START STOP UNIT",                     /* 0x1b */
-    "RECEIVE DIAGNOSTIC RESULTS",          /* 0x1c */
-    "SEND DIAGNOSTIC",                     /* 0x1d */
-    "PREVENT ALLOW MEDIUM REMOVAL",        /* 0x1e */
-    "",                                    /* 0x1f */
-    "",                                    /* 0x20 */
-    "",                                    /* 0x21 */
-    "",                                    /* 0x22 */
-    "READ FORMAT CAPACITIES",              /* 0x23 */
-    "SET WINDOW",                          /* 0x24 */
-    "READ CAPACITY",                       /* 0x25 */
-    "",                                    /* 0x26 */
-    "",                                    /* 0x27 */
-    "READ (10)",                           /* 0x28 */
-    "READ GENERATION",                     /* 0x29 */
-    "WRITE (10)",                          /* 0x2a */
-    "SEEK (10)",                           /* 0x2b */
-    "ERASE (10)",                          /* 0x2c */
-    "READ UPDATED BLOCK",                  /* 0x2d */
-    "WRITE AND VERIFY (10)",               /* 0x2e */
-    "VERIFY (10)",                         /* 0x2f */
-    "SEARCH DATA HIGH (10)",               /* 0x30 */
-    "SEARCH DATA EQUAL (10)",              /* 0x31 */
-    "SEARCH DATA LOW (10)",                /* 0x32 */
-    "SET LIMITS (10)",                     /* 0x33 */
-    "PRE-FETCH (10)",                      /* 0x34 */
-    "SYNCHRONIZE CACHE (10)",              /* 0x35 */
-    "LOCK UNLOCK CACHE (10)",              /* 0x36 */
-    "READ DEFECT DATA (10)",               /* 0x37 */
-    "MEDIUM SCAN",                         /* 0x38 */
-    "COMPARE",                             /* 0x39 */
-    "COPY AND VERIFY",                     /* 0x3a */
-    "WRITE BUFFER",                        /* 0x3b */
-    "READ BUFFER",                         /* 0x3c */
-    "UPDATE BLOCK",                        /* 0x3d */
-    "READ LONG (10)",                      /* 0x3e */
-    "WRITE LONG (10)",                     /* 0x3f */
-    "CHANGE DEFINITION",                   /* 0x40 */
-    "WRITE SAME (10)",                     /* 0x41 */
-    "READ SUBCHANNEL",                     /* 0x42 */
-    "READ TOC/PMA/ATIP",                   /* 0x43 */
-    "REPORT DENSITY SUPPORT",              /* 0x44 */
-    "PLAY AUDIO (10)",                     /* 0x45 */
-    "GET CONFIGURATION",                   /* 0x46 */
-    "PLAY AUDIO MSF",                      /* 0x47 */
-    "",                                    /* 0x48 */
-    "",                                    /* 0x49 */
-    "GET EVENT STATUS NOTIFICATION",       /* 0x4a */
-    "PAUSE/RESUME",                        /* 0x4b */
-    "LOG SELECT",                          /* 0x4c */
-    "LOG SENSE",                           /* 0x4d */
-    "STOP PLAY/SCAN",                      /* 0x4e */
-    "",                                    /* 0x4f */
-    "XDWRITE (10)",                        /* 0x50 */
-    "READ DISC INFORMATION",               /* 0x51 */
-    "READ TRACK INFORMATION",              /* 0x52 */
-    "RESERVE TRACK",                       /* 0x53 */
-    "SEND OPC INFORMATION",                /* 0x54 */
-    "MODE SELECT (10)",                    /* 0x55 */
-    "RESERVE (10)",                        /* 0x56 */
-    "RELEASE (10)",                        /* 0x57 */
-    "REPAIR TRACK",                        /* 0x58 */
-    "",                                    /* 0x59 */
-    "MODE SENSE (10)",                     /* 0x5a */
-    "CLOSE TRACK/SESSION",                 /* 0x5b */
-    "READ BUFFER CAPACITY",                /* 0x5c */
-    "SEND CUE SHEET",                      /* 0x5d */
-    "PERSISTENT RESERVE IN",               /* 0x5e */
-    "PERSISTENT RESERVE OUT",              /* 0x5f */
-    "",                                    /* 0x60 */
-    "",                                    /* 0x61 */
-    "",                                    /* 0x62 */
-    "",                                    /* 0x63 */
-    "",                                    /* 0x64 */
-    "",                                    /* 0x65 */
-    "",                                    /* 0x66 */
-    "",                                    /* 0x67 */
-    "",                                    /* 0x68 */
-    "",                                    /* 0x69 */
-    "",                                    /* 0x6a */
-    "",                                    /* 0x6b */
-    "",                                    /* 0x6c */
-    "",                                    /* 0x6d */
-    "",                                    /* 0x6e */
-    "",                                    /* 0x6f */
-    "",                                    /* 0x70 */
-    "",                                    /* 0x71 */
-    "",                                    /* 0x72 */
-    "",                                    /* 0x73 */
-    "",                                    /* 0x74 */
-    "",                                    /* 0x75 */
-    "",                                    /* 0x76 */
-    "",                                    /* 0x77 */
-    "",                                    /* 0x78 */
-    "",                                    /* 0x79 */
-    "",                                    /* 0x7a */
-    "",                                    /* 0x7b */
-    "",                                    /* 0x7c */
-    "",                                    /* 0x7d */
-    "",                                    /* 0x7e */
-    "",                                    /* 0x7f */
-    "WRITE FILEMARKS (16)",                /* 0x80 */
-    "READ REVERSE (16)",                   /* 0x81 */
-    "REGENERATE (16)",                     /* 0x82 */
-    "EXTENDED COPY",                       /* 0x83 */
-    "RECEIVE COPY RESULTS",                /* 0x84 */
-    "ATA COMMAND PASS THROUGH (16)",       /* 0x85 */
-    "ACCESS CONTROL IN",                   /* 0x86 */
-    "ACCESS CONTROL OUT",                  /* 0x87 */
-    "READ (16)",                           /* 0x88 */
-    "",                                    /* 0x89 */
-    "WRITE(16)",                           /* 0x8a */
-    "",                                    /* 0x8b */
-    "READ ATTRIBUTE",                      /* 0x8c */
-    "WRITE ATTRIBUTE",                     /* 0x8d */
-    "WRITE AND VERIFY (16)",               /* 0x8e */
-    "VERIFY (16)",                         /* 0x8f */
-    "PRE-FETCH (16)",                      /* 0x90 */
-    "SYNCHRONIZE CACHE (16)",              /* 0x91 */
-    "LOCK UNLOCK CACHE (16)",              /* 0x92 */
-    "WRITE SAME (16)",                     /* 0x93 */
-    "",                                    /* 0x94 */
-    "",                                    /* 0x95 */
-    "",                                    /* 0x96 */
-    "",                                    /* 0x97 */
-    "",                                    /* 0x98 */
-    "",                                    /* 0x99 */
-    "",                                    /* 0x9a */
-    "",                                    /* 0x9b */
-    "",                                    /* 0x9c */
-    "",                                    /* 0x9d */
-    "SERVICE ACTION IN (16)",              /* 0x9e */
-    "SERVICE ACTION OUT (16)",             /* 0x9f */
-    "REPORT LUNS",                         /* 0xa0 */
-    "BLANK",                               /* 0xa1 */
-    "SEND EVENT",                          /* 0xa2 */
-    "SEND KEY",                            /* 0xa3 */
-    "REPORT KEY",                          /* 0xa4 */
-    "PLAY AUDIO (12)",                     /* 0xa5 */
-    "LOAD/UNLOAD MEDIUM",                  /* 0xa6 */
-    "SET READ AHEAD",                      /* 0xa7 */
-    "READ (12)",                           /* 0xa8 */
-    "SERVICE ACTION OUT (12)",             /* 0xa9 */
-    "WRITE (12)",                          /* 0xaa */
-    "SERVICE ACTION IN (12)",              /* 0xab */
-    "GET PERFORMANCE",                     /* 0xac */
-    "READ DVD STRUCTURE",                  /* 0xad */
-    "WRITE AND VERIFY (12)",               /* 0xae */
-    "VERIFY (12)",                         /* 0xaf */
-    "SEARCH DATA HIGH (12)",               /* 0xb0 */
-    "SEARCH DATA EQUAL (12)",              /* 0xb1 */
-    "SEARCH DATA LOW (12)",                /* 0xb2 */
-    "SET LIMITS (12)",                     /* 0xb3 */
-    "READ ELEMENT STATUS ATTACHED",        /* 0xb4 */
-    "REQUEST VOLUME ELEMENT ADDRESS",      /* 0xb5 */
-    "SET STREAMING",                       /* 0xb6 */
-    "READ DEFECT DATA (12)",               /* 0xb7 */
-    "READ ELEMENT STATUS",                 /* 0xb8 */
-    "READ CD MSF",                         /* 0xb9 */
-    "SCAN",                                /* 0xba */
-    "SET CD SPEED",                        /* 0xbb */
-    "SPARE (IN)",                          /* 0xbc */
-    "MECHANISM STATUS",                    /* 0xbd */
-    "READ CD",                             /* 0xbe */
-    "SEND DVD STRUCTURE",                  /* 0xbf */
-    "",                                    /* 0xc0 */
-    "",                                    /* 0xc1 */
-    "",                                    /* 0xc2 */
-    "",                                    /* 0xc3 */
-    "",                                    /* 0xc4 */
-    "",                                    /* 0xc5 */
-    "",                                    /* 0xc6 */
-    "",                                    /* 0xc7 */
-    "",                                    /* 0xc8 */
-    "",                                    /* 0xc9 */
-    "",                                    /* 0xca */
-    "",                                    /* 0xcb */
-    "",                                    /* 0xcc */
-    "",                                    /* 0xcd */
-    "",                                    /* 0xce */
-    "",                                    /* 0xcf */
-    "",                                    /* 0xd0 */
-    "",                                    /* 0xd1 */
-    "",                                    /* 0xd2 */
-    "",                                    /* 0xd3 */
-    "",                                    /* 0xd4 */
-    "",                                    /* 0xd5 */
-    "",                                    /* 0xd6 */
-    "",                                    /* 0xd7 */
-    "",                                    /* 0xd8 */
-    "",                                    /* 0xd9 */
-    "",                                    /* 0xda */
-    "",                                    /* 0xdb */
-    "",                                    /* 0xdc */
-    "",                                    /* 0xdd */
-    "",                                    /* 0xde */
-    "",                                    /* 0xdf */
-    "",                                    /* 0xe0 */
-    "",                                    /* 0xe1 */
-    "",                                    /* 0xe2 */
-    "",                                    /* 0xe3 */
-    "",                                    /* 0xe4 */
-    "",                                    /* 0xe5 */
-    "",                                    /* 0xe6 */
-    "",                                    /* 0xe7 */
-    "",                                    /* 0xe8 */
-    "",                                    /* 0xe9 */
-    "",                                    /* 0xea */
-    "",                                    /* 0xeb */
-    "",                                    /* 0xec */
-    "",                                    /* 0xed */
-    "",                                    /* 0xee */
-    "",                                    /* 0xef */
-    "",                                    /* 0xf0 */
-    "",                                    /* 0xf1 */
-    "",                                    /* 0xf2 */
-    "",                                    /* 0xf3 */
-    "",                                    /* 0xf4 */
-    "",                                    /* 0xf5 */
-    "",                                    /* 0xf6 */
-    "",                                    /* 0xf7 */
-    "",                                    /* 0xf8 */
-    "",                                    /* 0xf9 */
-    "",                                    /* 0xfa */
-    "",                                    /* 0xfb */
-    "",                                    /* 0xfc */
-    "",                                    /* 0xfd */
-    "",                                    /* 0xfe */
-    ""                                     /* 0xff */
-};
-#endif /* DEBUG */
-
 /* Mode page codes for mode sense/select commands. */
 #define SCSI_MODEPAGE_ERROR_RECOVERY   0x01
@@ -387,11 +126,22 @@
 
 
+/* Sense keys */
 #define SCSI_SENSE_NONE             0
+#define SCSI_SENSE_RECOVERED_ERROR  1
 #define SCSI_SENSE_NOT_READY        2
 #define SCSI_SENSE_MEDIUM_ERROR     3
+#define SCSI_SENSE_HARDWARE_ERROR   4
 #define SCSI_SENSE_ILLEGAL_REQUEST  5
 #define SCSI_SENSE_UNIT_ATTENTION   6
-
-
+#define SCSI_SENSE_DATA_PROTECT     7
+#define SCSI_SENSE_BLANK_CHECK      8
+#define SCSI_SENSE_VENDOR_SPECIFIC  9
+#define SCSI_SENSE_COPY_ABORTED     10
+#define SCSI_SENSE_ABORTED_COMMAND  11
+#define SCSI_SENSE_VOLUME_OVERFLOW  13
+#define SCSI_SENSE_MISCOMPARE       14
+
+
+/* additional sense keys */
 #define SCSI_ASC_NONE                               0x00
 #define SCSI_ASC_READ_ERROR                         0x11
@@ -473,3 +223,9 @@
 /** @} */
 
+#if defined(DEBUG) && defined(IN_RING3)
+const char * const SCSICmdText(uint8_t uCmd);
+const char * const SCSISenseText(uint8_t uSense);
+const char * const SCSISenseExtText(uint8_t uASC, uint8_t uASCQ);
 #endif
+
+#endif
Index: /trunk/src/VBox/Devices/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Devices/Makefile.kmk	(revision 12550)
+++ /trunk/src/VBox/Devices/Makefile.kmk	(revision 12551)
@@ -246,4 +246,7 @@
 	Serial/DevSerial.cpp \
 	Parallel/DevParallel.cpp
+
+DevicesR3_SOURCES.debug = \
+	Storage/Debug.cpp
 
 ifdef VBOX_WITH_E1000
Index: /trunk/src/VBox/Devices/Storage/DevATA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 12550)
+++ /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 12551)
@@ -1223,5 +1223,6 @@
 static void atapiCmdError(ATADevState *s, const uint8_t *pabATAPISense, size_t cbATAPISense)
 {
-    Log(("%s: sense=%#x asc=%#x\n", __FUNCTION__, pabATAPISense[2] & 0x0f, pabATAPISense[12]));
+    Log(("%s: sense=%#x (%s) asc=%#x ascq=%#x (%s)\n", __FUNCTION__, pabATAPISense[2] & 0x0f, SCSISenseText(pabATAPISense[2] & 0x0f),
+             pabATAPISense[12], pabATAPISense[13], SCSISenseExtText(pabATAPISense[12], pabATAPISense[13])));
     s->uATARegError = pabATAPISense[2] << 4;
     ataSetStatusValue(s, ATA_STAT_READY | ATA_STAT_ERR);
@@ -1597,5 +1598,6 @@
                     break;
                 s->cErrors++;
-                LogRel(("PIIX3 ATA: LUN#%d: CD-ROM passthrough command (%#04x) error %d %Rrc\n", s->iLUN, u8Cmd, abATAPISense[2] & 0x0f, rc));
+                LogRel(("PIIX3 ATA: LUN#%d: CD-ROM passthrough cmd=%#04x sense=%d ASC=%#02x ASCQ=%#02x %Rrc\n",
+                            s->iLUN, u8Cmd, abATAPISense[2] & 0x0f, abATAPISense[12], abATAPISense[13], rc));
             } while (0);
         }
@@ -2670,5 +2672,5 @@
     pbPacket = s->aATAPICmd;
 #ifdef DEBUG
-    Log(("%s: LUN#%d DMA=%d CMD=%#04x \"%s\"\n", __FUNCTION__, s->iLUN, s->fDMA, pbPacket[0], g_apszSCSICmdNames[pbPacket[0]]));
+    Log(("%s: LUN#%d DMA=%d CMD=%#04x \"%s\"\n", __FUNCTION__, s->iLUN, s->fDMA, pbPacket[0], SCSICmdText(pbPacket[0])));
 #else /* !DEBUG */
     Log(("%s: LUN#%d DMA=%d CMD=%#04x\n", __FUNCTION__, s->iLUN, s->fDMA, pbPacket[0]));
@@ -2784,5 +2786,5 @@
 {
 #ifdef DEBUG
-    Log(("%s: LUN#%d CMD=%#04x \"%s\"\n", __FUNCTION__, s->iLUN, cmd, g_apszATACmdNames[cmd]));
+    Log(("%s: LUN#%d CMD=%#04x \"%s\"\n", __FUNCTION__, s->iLUN, cmd, ATACmdText(cmd)));
 #else /* !DEBUG */
     Log(("%s: LUN#%d CMD=%#04x\n", __FUNCTION__, s->iLUN, cmd));
Index: /trunk/src/VBox/Devices/Storage/ide.h
===================================================================
--- /trunk/src/VBox/Devices/Storage/ide.h	(revision 12550)
+++ /trunk/src/VBox/Devices/Storage/ide.h	(revision 12551)
@@ -163,266 +163,4 @@
 } ATACMD;
 
-#ifdef DEBUG
-static const char * const g_apszATACmdNames[256] =
-{
-    "NOP",                                 /* 0x00 */
-    "",                                    /* 0x01 */
-    "",                                    /* 0x02 */
-    "CFA REQUEST EXTENDED ERROR CODE",     /* 0x03 */
-    "",                                    /* 0x04 */
-    "",                                    /* 0x05 */
-    "",                                    /* 0x06 */
-    "",                                    /* 0x07 */
-    "DEVICE RESET",                        /* 0x08 */
-    "",                                    /* 0x09 */
-    "",                                    /* 0x0a */
-    "",                                    /* 0x0b */
-    "",                                    /* 0x0c */
-    "",                                    /* 0x0d */
-    "",                                    /* 0x0e */
-    "",                                    /* 0x0f */
-    "RECALIBRATE",                         /* 0x10 */
-    "",                                    /* 0x11 */
-    "",                                    /* 0x12 */
-    "",                                    /* 0x13 */
-    "",                                    /* 0x14 */
-    "",                                    /* 0x15 */
-    "",                                    /* 0x16 */
-    "",                                    /* 0x17 */
-    "",                                    /* 0x18 */
-    "",                                    /* 0x19 */
-    "",                                    /* 0x1a */
-    "",                                    /* 0x1b */
-    "",                                    /* 0x1c */
-    "",                                    /* 0x1d */
-    "",                                    /* 0x1e */
-    "",                                    /* 0x1f */
-    "READ SECTORS",                        /* 0x20 */
-    "READ SECTORS WITHOUT RETRIES",        /* 0x21 */
-    "READ LONG",                           /* 0x22 */
-    "READ LONG WITHOUT RETRIES",           /* 0x23 */
-    "READ SECTORS EXT",                    /* 0x24 */
-    "READ DMA EXT",                        /* 0x25 */
-    "READ DMA QUEUED EXT",                 /* 0x26 */
-    "READ NATIVE MAX ADDRESS EXT",         /* 0x27 */
-    "",                                    /* 0x28 */
-    "READ MULTIPLE EXT",                   /* 0x29 */
-    "READ STREAM DMA EXT",                 /* 0x2a */
-    "READ STREAM EXT",                     /* 0x2b */
-    "",                                    /* 0x2c */
-    "",                                    /* 0x2d */
-    "",                                    /* 0x2e */
-    "READ LOG EXT",                        /* 0x2f */
-    "WRITE SECTORS",                       /* 0x30 */
-    "WRITE SECTORS WITHOUT RETRIES",       /* 0x31 */
-    "WRITE LONG",                          /* 0x32 */
-    "WRITE LONG WITHOUT RETRIES",          /* 0x33 */
-    "WRITE SECTORS EXT",                   /* 0x34 */
-    "WRITE DMA EXT",                       /* 0x35 */
-    "WRITE DMA QUEUED EXT",                /* 0x36 */
-    "SET MAX ADDRESS EXT",                 /* 0x37 */
-    "CFA WRITE SECTORS WITHOUT ERASE",     /* 0x38 */
-    "WRITE MULTIPLE EXT",                  /* 0x39 */
-    "WRITE STREAM DMA EXT",                /* 0x3a */
-    "WRITE STREAM EXT",                    /* 0x3b */
-    "WRITE VERIFY",                        /* 0x3c */
-    "WRITE DMA FUA EXT",                   /* 0x3d */
-    "WRITE DMA QUEUED FUA EXT",            /* 0x3e */
-    "WRITE LOG EXT",                       /* 0x3f */
-    "READ VERIFY SECTORS",                 /* 0x40 */
-    "READ VERIFY SECTORS WITHOUT RETRIES", /* 0x41 */
-    "READ VERIFY SECTORS EXT",             /* 0x42 */
-    "",                                    /* 0x43 */
-    "",                                    /* 0x44 */
-    "WRITE UNCORRECTABLE EXT",             /* 0x45 */
-    "",                                    /* 0x46 */
-    "READ LOG DMA EXT",                    /* 0x47 */
-    "",                                    /* 0x48 */
-    "",                                    /* 0x49 */
-    "",                                    /* 0x4a */
-    "",                                    /* 0x4b */
-    "",                                    /* 0x4c */
-    "",                                    /* 0x4d */
-    "",                                    /* 0x4e */
-    "",                                    /* 0x4f */
-    "FORMAT TRACK",                        /* 0x50 */
-    "CONFIGURE STREAM",                    /* 0x51 */
-    "",                                    /* 0x52 */
-    "",                                    /* 0x53 */
-    "",                                    /* 0x54 */
-    "",                                    /* 0x55 */
-    "",                                    /* 0x56 */
-    "WRITE LOG DMA EXT",                   /* 0x57 */
-    "",                                    /* 0x58 */
-    "",                                    /* 0x59 */
-    "",                                    /* 0x5a */
-    "",                                    /* 0x5b */
-    "TRUSTED RECEIVE",                     /* 0x5c */
-    "TRUSTED RECEIVE DMA",                 /* 0x5d */
-    "TRUSTED SEND",                        /* 0x5e */
-    "TRUSTED SEND DMA",                    /* 0x5f */
-    "READ FPDMA QUEUED",                   /* 0x60 */
-    "WRITE FPDMA QUEUED",                  /* 0x61 */
-    "",                                    /* 0x62 */
-    "",                                    /* 0x63 */
-    "",                                    /* 0x64 */
-    "",                                    /* 0x65 */
-    "",                                    /* 0x66 */
-    "",                                    /* 0x67 */
-    "",                                    /* 0x68 */
-    "",                                    /* 0x69 */
-    "",                                    /* 0x6a */
-    "",                                    /* 0x6b */
-    "",                                    /* 0x6c */
-    "",                                    /* 0x6d */
-    "",                                    /* 0x6e */
-    "",                                    /* 0x6f */
-    "SEEK",                                /* 0x70 */
-    "",                                    /* 0x71 */
-    "",                                    /* 0x72 */
-    "",                                    /* 0x73 */
-    "",                                    /* 0x74 */
-    "",                                    /* 0x75 */
-    "",                                    /* 0x76 */
-    "",                                    /* 0x77 */
-    "",                                    /* 0x78 */
-    "",                                    /* 0x79 */
-    "",                                    /* 0x7a */
-    "",                                    /* 0x7b */
-    "",                                    /* 0x7c */
-    "",                                    /* 0x7d */
-    "",                                    /* 0x7e */
-    "",                                    /* 0x7f */
-    "",                                    /* 0x80 */
-    "",                                    /* 0x81 */
-    "",                                    /* 0x82 */
-    "",                                    /* 0x83 */
-    "",                                    /* 0x84 */
-    "",                                    /* 0x85 */
-    "",                                    /* 0x86 */
-    "CFA TRANSLATE SECTOR",                /* 0x87 */
-    "",                                    /* 0x88 */
-    "",                                    /* 0x89 */
-    "",                                    /* 0x8a */
-    "",                                    /* 0x8b */
-    "",                                    /* 0x8c */
-    "",                                    /* 0x8d */
-    "",                                    /* 0x8e */
-    "",                                    /* 0x8f */
-    "EXECUTE DEVICE DIAGNOSTIC",           /* 0x90 */
-    "INITIALIZE DEVICE PARAMETERS",        /* 0x91 */
-    "DOWNLOAD MICROCODE",                  /* 0x92 */
-    "",                                    /* 0x93 */
-    "STANDBY IMMEDIATE  ALT",              /* 0x94 */
-    "IDLE IMMEDIATE  ALT",                 /* 0x95 */
-    "STANDBY  ALT",                        /* 0x96 */
-    "IDLE  ALT",                           /* 0x97 */
-    "CHECK POWER MODE  ALT",               /* 0x98 */
-    "SLEEP  ALT",                          /* 0x99 */
-    "",                                    /* 0x9a */
-    "",                                    /* 0x9b */
-    "",                                    /* 0x9c */
-    "",                                    /* 0x9d */
-    "",                                    /* 0x9e */
-    "",                                    /* 0x9f */
-    "PACKET",                              /* 0xa0 */
-    "IDENTIFY PACKET DEVICE",              /* 0xa1 */
-    "SERVICE",                             /* 0xa2 */
-    "",                                    /* 0xa3 */
-    "",                                    /* 0xa4 */
-    "",                                    /* 0xa5 */
-    "",                                    /* 0xa6 */
-    "",                                    /* 0xa7 */
-    "",                                    /* 0xa8 */
-    "",                                    /* 0xa9 */
-    "",                                    /* 0xaa */
-    "",                                    /* 0xab */
-    "",                                    /* 0xac */
-    "",                                    /* 0xad */
-    "",                                    /* 0xae */
-    "",                                    /* 0xaf */
-    "SMART",                               /* 0xb0 */
-    "DEVICE CONFIGURATION OVERLAY",        /* 0xb1 */
-    "",                                    /* 0xb2 */
-    "",                                    /* 0xb3 */
-    "",                                    /* 0xb4 */
-    "",                                    /* 0xb5 */
-    "NV CACHE",                            /* 0xb6 */
-    "",                                    /* 0xb7 */
-    "",                                    /* 0xb8 */
-    "",                                    /* 0xb9 */
-    "",                                    /* 0xba */
-    "",                                    /* 0xbb */
-    "",                                    /* 0xbc */
-    "",                                    /* 0xbd */
-    "",                                    /* 0xbe */
-    "",                                    /* 0xbf */
-    "CFA ERASE SECTORS",                   /* 0xc0 */
-    "",                                    /* 0xc1 */
-    "",                                    /* 0xc2 */
-    "",                                    /* 0xc3 */
-    "READ MULTIPLE",                       /* 0xc4 */
-    "WRITE MULTIPLE",                      /* 0xc5 */
-    "SET MULTIPLE MODE",                   /* 0xc6 */
-    "READ DMA QUEUED",                     /* 0xc7 */
-    "READ DMA",                            /* 0xc8 */
-    "READ DMA WITHOUT RETRIES",            /* 0xc9 */
-    "WRITE DMA",                           /* 0xca */
-    "WRITE DMA WITHOUT RETRIES",           /* 0xcb */
-    "WRITE DMA QUEUED",                    /* 0xcc */
-    "CFA WRITE MULTIPLE WITHOUT ERASE",    /* 0xcd */
-    "WRITE MULTIPLE FUA EXT",              /* 0xce */
-    "",                                    /* 0xcf */
-    "",                                    /* 0xd0 */
-    "CHECK MEDIA CARD TYPE",               /* 0xd1 */
-    "",                                    /* 0xd2 */
-    "",                                    /* 0xd3 */
-    "",                                    /* 0xd4 */
-    "",                                    /* 0xd5 */
-    "",                                    /* 0xd6 */
-    "",                                    /* 0xd7 */
-    "",                                    /* 0xd8 */
-    "",                                    /* 0xd9 */
-    "GET MEDIA STATUS",                    /* 0xda */
-    "ACKNOWLEDGE MEDIA CHANGE",            /* 0xdb */
-    "BOOT POST BOOT",                      /* 0xdc */
-    "BOOT PRE BOOT",                       /* 0xdd */
-    "MEDIA LOCK",                          /* 0xde */
-    "MEDIA UNLOCK",                        /* 0xdf */
-    "STANDBY IMMEDIATE",                   /* 0xe0 */
-    "IDLE IMMEDIATE",                      /* 0xe1 */
-    "STANDBY",                             /* 0xe2 */
-    "IDLE",                                /* 0xe3 */
-    "READ BUFFER",                         /* 0xe4 */
-    "CHECK POWER MODE",                    /* 0xe5 */
-    "SLEEP",                               /* 0xe6 */
-    "FLUSH CACHE",                         /* 0xe7 */
-    "WRITE BUFFER",                        /* 0xe8 */
-    "WRITE SAME",                          /* 0xe9 */
-    "FLUSH CACHE EXT",                     /* 0xea */
-    "",                                    /* 0xeb */
-    "IDENTIFY DEVICE",                     /* 0xec */
-    "MEDIA EJECT",                         /* 0xed */
-    "IDENTIFY DMA",                        /* 0xee */
-    "SET FEATURES",                        /* 0xef */
-    "",                                    /* 0xf0 */
-    "SECURITY SET PASSWORD",               /* 0xf1 */
-    "SECURITY UNLOCK",                     /* 0xf2 */
-    "SECURITY ERASE PREPARE",              /* 0xf3 */
-    "SECURITY ERASE UNIT",                 /* 0xf4 */
-    "SECURITY FREEZE LOCK",                /* 0xf5 */
-    "SECURITY DISABLE PASSWORD",           /* 0xf6 */
-    "",                                    /* 0xf7 */
-    "READ NATIVE MAX ADDRESS",             /* 0xf8 */
-    "SET MAX",                             /* 0xf9 */
-    "",                                    /* 0xfa */
-    "",                                    /* 0xfb */
-    "",                                    /* 0xfc */
-    "",                                    /* 0xfd */
-    "",                                    /* 0xfe */
-    ""                                     /* 0xff */
-};
-#endif /* DEBUG */
-
 
 #define ATA_MODE_MDMA   0x20
@@ -445,4 +183,7 @@
 #define ATAPI_INT_REASON_TAG_MASK       0xf8
 
+#if defined(DEBUG) && defined(IN_RING3)
+const char * const ATACmdText(uint8_t uCmd);
+#endif
 
 #endif /* !___Storage_IDE_h */
