First post, by superfury
I notice that OAKCDROM.SYS issues a Inspect command to the CD-ROM drive, then without completing the command reports it cannot find and CD-ROM drives?
The VIDE-CDD.SYS driver works without any known problems.
Anyone knows the exact differences between the two drivers and their behaviours? Is there a problem with my ATAPI emulation?
Edit: Looking at the commands the CD-ROM drive receives, the Inquiry command is sent and received completely(including the result phases), but the Driver just sends a Inquiry command to both CD-ROM drives, after which it aborts for some unknown reason?
Edit: Could it be it doesn't like the data returned by the Inquiry command for some odd reason?
Edit: This is the data returned by the Inquiry command(as it's filled in the C++ code):
memset(&ATA[channel].Drive[drive].data,0,ATA[channel].Drive[drive].datablock); //Clear the result!
//Now fill the packet with data!
ATA[channel].Drive[drive].data[0] = 0x05; //We're a CD-ROM drive!
ATA[channel].Drive[drive].data[1] = 0x80; //We're always removable!
ATA[channel].Drive[drive].data[3] = ((2<<4)|(1)); //We're ATAPI version 2(high nibble, from SFF-8020i documentation we're based on), response data format 1?
ATA[channel].Drive[drive].data[4] = 31; //Amount of bytes following this byte for the full buffer? Total 36, so 31 more.
strcpy_padded(&ATA[channel].Drive[drive].data[8],8,(byte *)"UniPCemu"); //Vendor ID
strcpy_padded(&ATA[channel].Drive[drive].data[16],16,(byte *)"Generic CD-ROM"); //Product ID
strcpy_padded(&ATA[channel].Drive[drive].data[32],4,&FIRMWARE[1][0]); //Product revision level
Anyone can see something OAKCDROM.SYS doesn't like? I'm trying the OAKCDROM.SYS driver from Windows 95 B bootdisk.
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io