*BSD News Article 21169


Return to BSD News archive

Xref: sserve comp.os.386bsd.questions:5169 comp.os.386bsd.development:1216
Newsgroups: comp.os.386bsd.questions,comp.os.386bsd.development
Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!haven.umd.edu!darwin.sura.net!howland.reston.ans.net!usc!elroy.jpl.nasa.gov!decwrl!netcomsv!netcom.com!alm
From: alm@netcom.com (Andrew Moore)
Subject: Re: Epson LQ printer - Can it be done?
Message-ID: <almCDHIGy.FpB@netcom.com>
Organization: Netcom Online Communications Services (408-241-9760 login: guest)
References: <TONY.93Sep9182513@marge.apana.org.au> <1993Sep11.124630.22284@gmd.de> <279b1mINNjgb@bonnie.tcd-dresden.de>
Date: Fri, 17 Sep 1993 06:10:08 GMT
Lines: 36

In article <279b1mINNjgb@bonnie.tcd-dresden.de> j@bonnie.tcd-dresden.de (J Wunsch) writes:
>Please accept that this IS A BUG in *BSD, not in the cables. The bug has
>been introduced with pk 0.2.{3,4}. I can really exclude any other influences,

Here is a very hacked probe from one of the early versions of lpa (pre
pk 0.2). It replaces lpaprobe() in /sys/i386/isa/lpa.c.  It is not the
"solution" to the problem with the current probe, assuming there is
one, but maybe it can let you get on with your work until a better
answer is found.

/*
 * lpaprobe()
 *	Probe for hardware
 */
lpaprobe(idp)
	struct isa_device *idp;
{   
	unsigned v, w, n = 0;

	/* status */
	do {
		if (++n >= 4)
			return (0);

		/*
		 * Status port should be read only,
		 * so readback value may not change
		 */
		outb(idp->id_iobase+lpt_status,0xf0);
		v = inb(idp->id_iobase+lpt_status);
		outb(idp->id_iobase+lpt_status,0);
		w = inb(idp->id_iobase+lpt_status);
	} while (v != w);
	return(1);
}