-
Notifications
You must be signed in to change notification settings - Fork 118
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
BIOS: Fix losing of interrupt flag (IF) after int13 #420
Conversation
I think this should be for hard drive services only. A small addition to allow this would be to modify the line at 9011:
to
and then where the original If you make this change, does the game still function as expected? The notes I have say hard drive services only, not floppy services. |
After trying out the suggested changes, so that the IF will not be touched for the Unfortunately I couldn't find definitive information on what the proper behavior should be regarding int13 setting the IF, but the game does run on real hardware, so that's why I started looking into the BIOS of the hardware. If it helps, the int13 entry point in the BIOS for the ASUS A7A266 starts with:
|
Small observation: |
Okay, I guess leave it as is then. Thanks for checking. |
I added this fix to my BIOS as well. |
@fysnet here are game files: Blackthorne (Black Hawk).English.zip. Add |
I tested the game with Bochs-2.8 and the Because you're developing a BIOS, it's probably best to be able to reliably reproduce the issue yourself for further testing purposes. |
Thank you.
Thank you. I used the two older versions, the ones that come default with DOS 6.22, game works fine until a few minutes into it and Bochs simply quits. No There were a lot, and I mean a lot, of the following line in the log file: Also, a lot, though not as many: and then quite a few of: I'm using the same If I find anything I will let you know. |
Looks like bug.
This is bug #107.
This is bug #270. |
Some programs expect the int 13h handler to return with interrupts enabled (IF).
Looking into a BIOS for ASUS A7A266 revealed int 13h enables interrupts and sets the IF on the stack.
Affected games: