浏览代码

Fix reported length and set device profile when image present.

saybur 2 年之前
父节点
当前提交
276d19b44a
共有 1 个文件被更改,包括 7 次插入6 次删除
  1. 7 6
      src/ZuluSCSI_cdrom.cpp

+ 7 - 6
src/ZuluSCSI_cdrom.cpp

@@ -940,8 +940,8 @@ void doGetConfiguration(uint8_t rt, uint16_t startFeature, uint16_t allocationLe
     if (!img.ejected)
     {
         // disk in drive, current profile is CD-ROM
-        scsiDev.data[6] = 0;
-        scsiDev.data[7] = 0; // TODO
+        scsiDev.data[6] = 0x00;
+        scsiDev.data[7] = 0x08;
     }
     else
     {
@@ -1089,10 +1089,11 @@ void doGetConfiguration(uint8_t rt, uint16_t startFeature, uint16_t allocationLe
 #endif
 
     // finally, rewrite data length to match
-    scsiDev.data[0] = len >> 24;
-    scsiDev.data[1] = len >> 16;
-    scsiDev.data[2] = len >> 8;
-    scsiDev.data[3] = len;
+    uint32_t dlen = len - 8;
+    scsiDev.data[0] = dlen >> 24;
+    scsiDev.data[1] = dlen >> 16;
+    scsiDev.data[2] = dlen >> 8;
+    scsiDev.data[3] = dlen;
 
     if (len > allocationLength)
     {