First post, by superfury
I've implemented the Media Status Notification Support Specification, Version 1.03 documentation by Microsoft into UniPCemu, but for some odd reason, the CD-ROM driver(MSCDEX.EXE from MS-DOS 6.22/VIDE-CDD.SYS combo on MS-DOS 5.0a) fails to see the disk has actually changed? If I insert a different disk, it will still see the old disk contents, and when cd-ing to a subdirectory and executing a simple DIR command it will crash with all sorts of data showing up on the corrupted directory listing(sector probably being read as from the old disk, which contains data on the new disk instead of directory records).
This is a simple media change from the original Megarace CD-ROM ISO to the Megarace Demo ISO I've created myself(works fine after restarting the emulator with the other disk mounted).
The interrupt that's on Bochs when inserting a disk isn't used, it's now entirely through the Microsoft Specs combined with Dosbox-X's insert/spinup/down method and UniPCemu's original CD-ROM emulation.
The Microsoft Specs' notification feature is disabled when doing so.
Got the specs from the "Windows Hardware Logo Program Requirements: Reference List" of "January 14, 2008". This one lists:
Media Status Notification Support Specification, Version 1.03
http://download.microsoft.com/download/1/6/1/ … 456c/atamed.rtf
That's the information about the hardware which I've implemented into my emulator.
Anyone can see why the CD-ROM doesn't read the boot sector etc. to refresh it's directory listing to be correct? It doesn't seem to even use the specification, and MS-DOS reads the wrong data from the disk(probably a combination of the old data buffered in memory and newly inserted disk)?
UniPCemu IDE hdd/cd-rom code: https://bitbucket.org/superfury/unipcemu/src/ … ide.c?at=master
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io