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

BDOS call does not return to caller on error, goes to BASIC error handling instead #66

Closed
Eugeny1 opened this issue Aug 1, 2020 · 1 comment

Comments

@Eugeny1
Copy link

Eugeny1 commented Aug 1, 2020

See the issue #59.

The problem is related to BDOS call 016h.

Now system does not crash, but there's still a problem: in case of disk error (e.g. write protected or disk missing in the drive) the execution goes to the BASIC error handler and terminates into BASIC prompt with respective message "Disk offline" or "Disk write protected" instead of returning to the BDOS caller with A=0ffh (error condition).

@Eugeny1
Copy link
Author

Eugeny1 commented Aug 1, 2020

I seem to be wrong. Tried with original MSX-DOS2, and in BASIC mode it also breaks into the BASIC on hardware error, in DOS it goes to "Abort/Retry/Ignore" (as Nestor was suspecting). Thus it seems that the function will return to caller only in case there's a "soft" error, in case of hardware error programmer must intercept error handler to get a return to his code. The example of the code can be seen in the MSX disk boot sector.

@Eugeny1 Eugeny1 closed this as completed Aug 1, 2020
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

No branches or pull requests

1 participant