--- In lpc2000@yahoogroups.com, G B <microsys@a...> wrote:
>
> Richard,
>
> I need to go from ECP to EPP. I am wondering if my laptop's
> motherboard even supports EPP at all.
>
> Thanks,
>
> Glen
Most motherboards, laptops included, use a Super I/O chip of one
sort or another. These chips combine serial, parallel, floppy and
sometime IDE all in one package. I don't KNOW that your laptop will
respond to the code but I do know that if the port doesn't show up
at 0x378 (as an ISA port) there is no hope. Strictly PCI ports
can't be manipulated with the driver/setup code I use.
And, I had a heck of a time finding another ISA card for my desktop.
I would think you could look in Device Manager and find out what
address the parallel port uses. By default, mine uses 0x378 in ECP
mode. I change it to EPP when I run the logic analyzer and I don't
think I change it back. I don't have an attached printer,
everything is networked.
The code is trivial:
Public Sub PortSetup(ByVal PortBaseAddress As Integer)
SPPDataPort = PortBaseAddress
StatusPort = PortBaseAddress + 1
ControlPort = PortBaseAddress + 2
EPPAddressPort = PortBaseAddress + 3
EPPDataPort = PortBaseAddress + 4
ECPConfigPort = PortBaseAddress + &H402
ECPEIR = PortBaseAddress + &H403
ECPControl2 = PortBaseAddress + &H404
Out(ECPConfigPort, &H94)
Out(ECPEIR, &H2)
Out(ECPControl2, &H10)
Out(ControlPort, &HC4)
End Sub
but it relies on a driver named 'inpout32.dll' declared as:
Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" _
(ByVal PortAddress As Integer) _
As Integer
Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" _
(ByVal PortAddress As Integer, _
ByVal Value As Integer)
The driver is available here: http://www.lvr.com/parport.htm Look
about 2/3 the way down the page.
Your mileage may be all over the map...
Richard