On 9/20/2015 10:21 AM, Marlon Ng wrote:
> I forgot to mention. The pci parallel expansion is a 3-in-1.  It has 
> one parallel, and two serial (I think).  Could this be the reason why 
> the computer sees it as LPT3?  If so, how do I change it to LPT1? I 
> can't see anything in BIOS that would allow me to do that (?).  I've 
> also read about CMOS being different from BIOS, but I don't know how 
> to get in there.
No, I used hundreds of 3-in-1 cards "back in the days". I did have many 
machines with 3 (or even 4) parallel ports, 3-8 serial ports.

But which "LPT" port DOS (and hence a program running on DOS) sees 
depends on where the BIOS is entering the base port address in that BIOS 
data segment address I mentioned put.
Contrary to common belief, there is no fixed port addresses associated 
with a specific LPT port (or COM port for that matter). The originally 
IBM PC BIOS was scanning for ports in a specific order and that is what 
most other manufacturers followed. "Standard" parallel port used to have 
378h and 278h, which were assigned to LPT1 and LPT2 (if present) from 
high to low. That meant that the add-on parallel port on a Hercules (and 
compatible) video adapter, which was fixed at port address 3BCh, became 
LPT1 when added to a PC (which meant that an otherwise present parallel 
port on 378h, which would have been assigned to LPT1 in case without the 
Hercules card, now would be LPT2).

So if you have a program that works only with LPT1 (and not with a hard 
coded base port address!) will use what ever address is put into 
0040:0008. You can change that address to match what your expansion card 
is using either by using debug (-e 0040:0008) or one of the many port 
changing programs that used to be around for just that purpose...


This email has been checked for viruses by Avast antivirus software.

Freedos-user mailing list

Reply via email to