Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!ucsd!sdcc6!sdcc19!sdcc15!pa1343 From: pa1343@sdcc15.ucsd.edu (John J. Marco) Newsgroups: comp.os.minix Subject: Re: Minix 1.3 and printers Summary: Hercules card Keywords: Printer, Hercules monograf card Message-ID: <424@sdcc15.ucsd.edu> Date: 9 Jun 89 20:18:56 GMT References: <3096@ogccse.ogc.edu> Reply-To: pa1343@sdcc15.UUCP (John J. Marco) Organization: University of California, San Diego Lines: 43 In article <3096@ogccse.ogc.edu> lyle@ogccse.UUCP (Lyle Cool) writes: >I have Minix 1.3 (640K PC) running (finally) except for the printer >driver. The printer works fine under DOS, but Minix doesn't seem to >know that the printer is connected. Every attempt to use it results >in : >printer out of paper >printer not on line >printer error >I have a Panasonic 1091 connected to the parallel port of a typical >XT clone. If anyone can offer help, it would be most appreciated. I'll bet you have a hercules card. Why? I had this same problem also and only recently found out how to fix it. The problem is that the IO address of the p[rinter port is calculated using the type of video card that is in use. two marcos are defined for this: PR_COLOR_BASE and PR_MONO_BASE. Normally, get_chrome determines whether the current video card is color or mono (or EGA). for the color cards it reports a color adapter to minix. printer.c then uses this to set the printer IO port to PR_COLOR_BASE. For mono cards, monocrhome is reported by get_chrome() and then printer.c uses that to set the printer port to PR_MONO_BASE. Here's the catch: If get_chrome is called and the video is Hercules or compatible it will return the monochrome value. printer.c will then set the port address to PR_MONO_BASE. BUT, after testing to find out what the printer port is with a hercules card I found out that the hercules card makes the printer port address be PR_COLOR_BASE. Thus the WRONG port address is being used for the printer port and the printer doesn't work. My kludge to this problem was to define PR_MONO_BASE to be the same value as PR_COLOR_BASE. This gives the printer driver no choice but to use the color printer IO address like the Hercules card requires. I am considering putting a small routine in klib88.asm to use the BIOS to find the printer port, thus eliminating this problem altogether. I hope this helps. >Thanks, >Lyle Cool +-----------------------------------------+ | John J. Marco -- pa1343@sdcc15.ucsd.edu | | ...!uunet!sdcc15.ucsd.edu!pa1343 | +-----------------------------------------+