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

Fix disk/read write error handling and add int13h LBA BIOS extensions #7

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

joshudson
Copy link

Resolves #6 but that's just the tip of the iceberg.

The hard disk geometry detection is very dodgy indeed; and rather than try to fix it I decided I won't fix it and just go ahead and implement int 13h AH=42h/43h so I don't have to worry about the disk geometry detector doing something dumb in FreeDOS disk images.

I also added a numeric argument to quitemu; I see potential use cases for this in the future.

@ecm-pushbx
Copy link
Owner

I would rather adapt my quit.com / quit.eld for use in 8086tiny, requiring to support some int 15h services. The return code could be added in another way. Hmm, the dosemu call does support an 8-bit return code already, https://github.com/dosemu2/dosemu2/blob/67517c1efd79922432b1764015b3c50e4da9cc99/src/base/core/int.c#L756 could be good to add to my quit.

I do see how your quitemu can probably run on other 8086tiny forks as well, but it bothers me that it doesn't check for running on 8086tiny. In my tinyxms I check for the string "8086tiny BIOS" in segment 0F000h:

%if _CHECK_8086TINY

I didn't study all of the changes yet but they seem okay. Albeit they're doing several things that I would rather have in more than one commit.

@joshudson
Copy link
Author

Hmmm; yeah checking for the right emulator seems like a good idea; I didn't think of it because the 5 byte version on the floppy disk doesn't check. Swapping for return in BL seems like a good change though.

@joshudson
Copy link
Author

I'm now back from vacation. I considered how to break this down into pieces; however there is somewhat of a limit to what I can and cannot do. While it would appear that I could in fact cut this into three pieces, one for read/write reliablity, one for int 13h functions 4xh implementation, and one for quitemu; if any changes are needed I can really only cut it into two pieces as I can only test the combined read/write changes due to the bad geometry logic in the first place (which I declined to change).

@joshudson
Copy link
Author

Well I did it. I added APM 1.1 support and changed quitemu to shut down via APM 1.1 shutdown command.

…d off the power supply and grahics card. This implementation would also query battery life but I don't have anything to test it on.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

int13h Read and write don't check for errors
2 participants