|
|
| version 1.4, 2005/03/05 11:58:02 | version 1.5, 2005/03/05 16:35:48 |
|---|---|
| Line 364 static void atapi_cmd_mode_sense(IDEDRV | Line 364 static void atapi_cmd_mode_sense(IDEDRV |
| if (!(drv->media & IDEIO_MEDIA_LOADED)) { | if (!(drv->media & IDEIO_MEDIA_LOADED)) { |
| drv->buf[2] = 0x70; // Door closed, no disc present | drv->buf[2] = 0x70; // Door closed, no disc present |
| } | } |
| else if ((drv->media & (IDEIO_MEDIA_COMBINE)) == IDEIO_MEDIA_AUDIO) { | |
| drv->buf[2] = 0x02; // 120mm CD-ROM audio only | |
| } | |
| else if ((drv->media & (IDEIO_MEDIA_COMBINE)) == IDEIO_MEDIA_COMBINE) { | |
| drv->buf[2] = 0x03; // 120mm CD-ROM data & audio combined | |
| } | |
| else { | else { |
| drv->buf[2] = 0x00; // 120mm CD-ROM data only | drv->buf[2] = 0x01; // 120mm CD-ROM data only |
| } | } |
| cnt = 8; | cnt = 8; |
| if (cnt > leng) { | if (cnt > leng) { |
| Line 441 static void atapi_cmd_mode_sense(IDEDRV | Line 447 static void atapi_cmd_mode_sense(IDEDRV |
| if (cnt > leng) { | if (cnt > leng) { |
| goto length_exceeded; | goto length_exceeded; |
| } | } |
| #if 0 | |
| /*FALLTHROUGH*/ | |
| case 0x00: | |
| #endif | |
| break; | break; |
| default: | default: |
| Line 476 static void atapi_cmd_readtoc(IDEDRV drv | Line 487 static void atapi_cmd_readtoc(IDEDRV drv |
| leng = (drv->buf[7] << 8) + drv->buf[8]; | leng = (drv->buf[7] << 8) + drv->buf[8]; |
| format = (drv->buf[9] >> 6); | format = (drv->buf[9] >> 6); |
| TRACEOUT(("atapi_cmd_readtoc fmt=%d leng=%d", format, leng)); | TRACEOUT(("atapi_cmd_readtoc fmt=%d leng=%d", format, leng)); |
| switch(format) { | |
| case 1: // multi session | |
| ZeroMemory(drv->buf, 12); | |
| drv->buf[1] = 0x0a; | |
| drv->buf[2] = 0x01; | |
| drv->buf[3] = 0x01; | |
| senddata(drv, 12, leng); | |
| break; | |
| default: | switch (format) { |
| senderror(drv); | case 1: // multi session |
| break; | ZeroMemory(drv->buf, 12); |
| drv->buf[1] = 0x0a; | |
| drv->buf[2] = 0x01; | |
| drv->buf[3] = 0x01; | |
| senddata(drv, 12, leng); | |
| break; | |
| default: | |
| senderror(drv); | |
| break; | |
| } | } |
| } | } |