Re: Re: xx-DOS (im)possible problem!

Alain <[email protected]> Tue, 12 Nov 2002 22:37:23 -0200
Newsgroups gmane.os.freedos.devel
Message-ID <[email protected]>
Hi Eric,

> WHY does your Clipper software test that? If you are using networked
> printer drivers, you should take care to use a driver that correctly
> returns printer status 0x90 exactly IF the network printer is in some
> useful status.

The Clipper program is "binary only" and it worked with Novell.
When possible (I did that to one I use) it is much better to write
to a file "LPT1" which prints as soon as the file is closed.

> Of course it is no problem to write a TSR that just pretends that the
> printer is in correct status. Such a TSR will of course have the side
> effect that it will override the status that a locally attached printer
> at the affected port would return.

I am thinking of: if ah==02h, call old int17, and returned value
with 0xBF and return.

> But I understand that you
> - have no printer locally attached
> - use a network driver for LPT1

Yes, that is the target configuration

> Did you try connecting a local printer to make Clipper happy while
> still using the network printer driver? Then the network printer
> driver lacks a good BIOS simulation. However, if this is enough for
> Clipper, you can, as said, just use a simple TSR to fake the 0x90 status.
> (Instead of connecting a local printer)
> 
> What would you prefer?
> - using a better network printing driver (the one of Win98 is better
>   than the one of plain Dos, as far as I understand your mail :-)).

I am using MS-Client as it is the only free network client available.
This brings it's own printer driver/redirector

> - attaching a local printer to make Clipper happy

it does not work. If I have a local printer it is ok, but as soon as
I redirect LPT1 it stops even if a printer _is_ present.

> - attaching a dummy printer dongle that just connects the ACK pin to the
>   right level

same as above.

> - installing a tiny "fake status" TSR (I can write one in "no time" if you
>   need one)

I can do it, but only in C, so it will be many kbytes in size.
if you can do one in nasm, for instance, I would appreciate very much,
along the lines I explained above.
    if ah==02h, call old int17, and returned value with 0xBF and return.
    else jump to old int17
I can do _small_ updates in an asm program, difficult thing is to put
it all toghether ;-)

thanks very much,
Alain
PS. my major concern is in understanding the problem. any clue?