Johann 'Myrkraverk' Oskarsson dit dans news:so13C.115778$q_1.73258
@fx16.am4:
> NimbUs wrote:
>>> For several years using 4DOS 8.0 I've been annoyed with the
>>> /bug/ that when 'Ctrl-P' or 'Ctrl-Prscreen' is pressed while
>>> no DOS printer present or available, 4DOS /locks up/
>>> infinitely querying for Retry/Abort? EVEN after the user
>>> presses the Ctrl-P / Ctrl-PrScreen key combo /again/
>> (...)
> It's a late reply, I know. Is this still a problem? Is it
> reproducible in virtual environments? If I can reproduce it,
> I might be convinced to fix it. I don't need extra money,
> so any said fix will be applied "when I feel like it."
Hello, and happy new year, Johann !
It's never too late for a good deed. As for the bug in subj, it is
certainly reproducible in a proper virtual environment since it is
without any doubt a coding error. It's been a few months since I
looked so a bit fuzzy in my memory but, examination of the 4DOS 8
source for the critical error module will show 2 code paths : one
old, commented out - that is the original JPsoft and it DOES work OK
in older 4DOSes - and a new one, which unfortunately has the bug. The
/old code/ used the BIOS interrupt to query the keyboard during the
abort/retry... sequence, while the /new code/ uses the DOS -
presumably the intent was to correctly process cancellation sequences
in the event that DOS "console" I/O had been redirected. However that
"improvement" was probably not fully tested in the described
situation . As coded, "Contrl-P" entry is not singled-out (or
control-print screen) when they should be, to avoid infinte looping.
> Alternative to reproduction, is to make ctrl+p a no-op.
Easy indeed ! But that's "cheating"...
> It's ok to email me about 4DOS, though replies here should
> be sufficient.
Thank you for the interest you have shown in this and of course,
please, let us know if a fix is coming !
ISTM the easiest way out would be reverting to the old, time proven,
code utilising the BIOS. It would be "as easy as" recompiling,
assuming, from your post, that you are familiar with rebuilding 4DOS
from source (though I personnally have no idea how painful it might
be). A more correct approach, i.e. fixing the /new/ code, may or may
not be time consuming. In either case I'm willing to contribute by
test and trying at home...
Regards
--
NimbUs