Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

weird disk issue in vmware #22

Open
NattyNarwhal opened this issue Dec 17, 2021 · 4 comments
Open

weird disk issue in vmware #22

NattyNarwhal opened this issue Dec 17, 2021 · 4 comments
Labels
bug Something isn't working

Comments

@NattyNarwhal
Copy link
Owner

Mentioned before in #21 (where pics/gist are) but tl;dr is weird disk request when loading Windows. - With a fresh 3.11+DOS 6.2 (my main VM is WfW/DOS 5.0, seen it there sometimes but unsure why) seems to happen when not loading any CD drives/not setting last drive. Doesn't seem to occur under the debugger. It doesn't happen in standard (286) mode.

My guess is:

  • The fact it's during loading is probably pointing to enable call
  • The fact it's 386 mode specific means it's likely something kicking in 386 mode
  • The fact it's disk related

Thus, I think the hypercalls mangling extended registers is probably putting some future call by a disk subsystem at play. Problem is, where (which subsystem?) and why (I thought most Windows 3.x 386 stuff would be in the VMM isolated from this or know extended registers are mangled.). The fact it's 3.11 means there's no 32-bit disk/file access, but might be something like smartdrive?

Mitigation might be to save EAX-EDX anywhere we do hypercalls.

@NattyNarwhal NattyNarwhal added the bug Something isn't working label Dec 17, 2021
@NattyNarwhal
Copy link
Owner Author

NattyNarwhal commented Mar 6, 2022

I'm getting a stroke debugging this. At first I thought it might have been hypercall related, so I swaddled the hypercalls with saving the extended registers (in case it's the high word getting clobbered). No dice. Save ESI/EDI (maybe EBP) too. No dice. Swaddle in CLI/STI in case it's interrupts. No dice. Start to rip out the hypercalls. No dice. Completely disconnect ps2.asm from the build. No dice. Nop out everything but Inquire. Still no dice, still complains.

What the hell is going on here? At this point I'm suspecting it's invalid and an issue with my VM, but why does it not do it w/ the stock mouse driver and only my driver?

@NattyNarwhal
Copy link
Owner Author

OK, I pared it back to basically:

  • Enable/Disable nopped out
  • Inquire just returns 0
  • MouseIntVect returns -1
  • Initialize just returns 1
  • WEP removed for good measure

And it still has an issue. Not sure what's going on at this point - VMware, or my VM? There's basically nothing to fault on anymore.

@NattyNarwhal
Copy link
Owner Author

FWIW I can reproduce the VMware disk issue without the driver (it seems to be CD?) but I can also reproduce it in another VM where the only real variable seems to be this driver. Eeep!

@NattyNarwhal
Copy link
Owner Author

This has been escalated to VMware a while ago. We'll see what they think.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant