muta...@gmail.com
2021-05-05 02:43:30 UTC
Now that I've had some success with 80386, I
wondered why MSDOS didn't generate MVS-style
debug information when it crashed.
So I used the same divide-by-zero crash code, as
an MSDOS executable.
Freedos printed out "Divide error" and that's it.
PDOS/86 hung.
I don't have an INT 0 handler in PDOS/86, but I
had an expectation that the BIOS would have
installed default handlers for all exception conditions,
even if it was just "INT 0H invoked" and halted.
I put in this code:
printf("interrupt 0 handler is %p\n", *(char **)0);
and was surprised to see under both Freedos and PDOS/86, this:
interrupt 0 handler is 0072:CB5B
I was expecting 0000:0000 for PDOS/86, to explain
the hang.
And I didn't expect the values to be the same.
I am also surprised in that that address doesn't seem
to point to anything sensible. That is low memory
which seems to be used by my IO.SYS and MSDOS.SYS
stack.
Anyone know what is happening?
Thanks. Paul.
wondered why MSDOS didn't generate MVS-style
debug information when it crashed.
So I used the same divide-by-zero crash code, as
an MSDOS executable.
Freedos printed out "Divide error" and that's it.
PDOS/86 hung.
I don't have an INT 0 handler in PDOS/86, but I
had an expectation that the BIOS would have
installed default handlers for all exception conditions,
even if it was just "INT 0H invoked" and halted.
I put in this code:
printf("interrupt 0 handler is %p\n", *(char **)0);
and was surprised to see under both Freedos and PDOS/86, this:
interrupt 0 handler is 0072:CB5B
I was expecting 0000:0000 for PDOS/86, to explain
the hang.
And I didn't expect the values to be the same.
I am also surprised in that that address doesn't seem
to point to anything sensible. That is low memory
which seems to be used by my IO.SYS and MSDOS.SYS
stack.
Anyone know what is happening?
Thanks. Paul.