Contents of the PRFIX.DOC file
Documentation Courtesy of
Fort St. John, B.C.
This information will help you correct some possible problems
with using spooled printers from a NOVELL file server.
The problem occurs when printing to a printer from the server
using BASIC, or a compiled BASIC program, or a program
compiled in one of several other languages. From DOS, you
may be able to copy to a file, but the error occurs only
from within the program.
Up to three parallel printers can be supported under DOS and
NOVELL. The port addresses used by DOS are located at
memory locations 408-40F. Each address is two bytes long,
so as you can see, there really is room for 4 printers,
but only 3 are supported. If you want to use 3 printers,
one of the printer ports must be on a monochrome card.
PRINTER LOCATION ADDRESS ADDRESS
OF PORT WITH W/O
ADDRESS MONO CARD MONO CARD
LPT1: 0000:0408 3BC 378
LPT2: 0000:040A 378 278
LPT3: 0000:040C 278 N/A
This problem may ALSO occur if trying to print to a non-spooled
printer on the server that has some of the printers spooled.
I've noticed that NOVELL and DOS number the printers differently.
In this case, you may have to use DEBUG to modify the address
sent to a given port to solve your particular problem. In a
recent test on a computer with 3 printers, DOS and NOVELL swapped
LPT1: and LPT2: (One adds from right to left, the other from
left to right) If you are using only spooled printers, then
the address entered into those locations don't really matter,
as long as they are non-zero. (Ala the original PRFIX)
The following three programs will fix up either printer port
1, 2 or 3. The old PRFIX.COM file only fixed printer port 1.
The assembly language listings are shown below in case you have
to modify the addresses, or combine all three into one program.
LPT1: LPT2: LPT3:
PR1FIX PR2FIX PR3FIX
PUSH DS PUSH DS PUSH DS
MOV AX,0000 MOV AX,0000 MOV AX,0000
MOV DS,AX MOV DS,AX MOV DS,AX
MOV BL,BC MOV BL,78 MOV BL,78
MOV ,BL MOV [040A],BL MOV [040C],BL
MOV BL,03 MOV BL,03 MOV BL,02
MOV ,BL MOV [040B],BL MOV [040D],BL
POP DS POP DS POP DS
INT 20 INT 20 INT 20