Skip to content

Commit 66c5e1d

Browse files
committed
Added parallel port driver for Windows 64Bit systems.
1 parent 47244b6 commit 66c5e1d

12 files changed

+113
-3
lines changed

tools/README

+13-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
inpout32.dll
2-
============
1+
2+
Windows 32 Bit (inpout32.dll)
3+
=============================
34

45
Use this file to use the parallel port on Windows. Copy this file to
56
Windows\System, a restart is not needed.
67

7-
Sources and Binaries are from
8+
Sources and Binaries are from:
89
http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html
910

1011

12+
Windows 64 Bit (x64)
13+
====================
14+
15+
Apparently you have to execute the installer in x64/Win32/InstallDriver.exe
16+
with administrator rights and that's it.
17+
18+
Binaries are from:
19+
http://www.highrez.co.uk/Downloads/InpOut32/default.htm
20+

tools/x64/DLPortIO.txt

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
From Verison 1.0.0.7, InpOut provides basic DLPortIO compatibility, for use with LCDSmartie etc.
2+
3+
It is however, not fully tested as my development machines (DFI motherboard) does not have a parallel port!!!
4+
To use with LCD smartie, take the 32bit DLL (in \Win32) and rename it to DLPortIO.dll
5+
6+
Copy this DLL to your LCD Smartie folder and then give LCDSmartie a go.
7+
I know that LCD Smartie loads the DLL and talks to it properly - I'm just unsure if it reads/writes the port.
8+
9+
Let me know if you have any problems.
10+
11+
Thanks,
12+

tools/x64/ReadMe.txt

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
InpOut32Drv Driver Interface DLL
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
4+
Modified for x64 compatibility and built by Phillip Gibbons ([email protected]).
5+
See http://www.highrez.co.uk/Downloads/InpOut32 or the Highrez Forums (http://forums.highrez.co.uk) for information.
6+
Many thanks to Red Fox UK for supporting the community and providing Driver signatures allowing Vista/7 x64 compatibility.
7+
8+
9+
10+
Based on the original written by Logix4U (www.logix4u.net).
11+
12+
13+
Notes:
14+
15+
The InpOut32 device driver supports writing to "old fashioned" hardware port addresses.
16+
It does NOT support USB devices such as USB Parallel ports or even PCI parallel ports (as I am lead to believe).
17+
18+
19+
The device driver is installed at runtime. To do this however needs administrator privileges.
20+
On Vista & later, using UAC, you can run the InstallDriver.exe in the \Win32 folder to install the driver
21+
appropriate for your OS. Doing so will request elevation and ask for your permission (or for the administrator
22+
password). Once the driver is installed for the first time, it can then be used by any user *without*
23+
administrator privileges
24+

tools/x64/Win32/InstallDriver.exe

48 KB
Binary file not shown.

tools/x64/Win32/inpout32.dll

96 KB
Binary file not shown.

tools/x64/Win32/inpout32.h

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#pragma once
2+
3+
//Functions exported from DLL.
4+
//For easy inclusion is user projects.
5+
//Original InpOut32 function support
6+
void _stdcall Out32(short PortAddress, short data);
7+
short _stdcall Inp32(short PortAddress);
8+
9+
//My extra functions for making life easy
10+
BOOL _stdcall IsInpOutDriverOpen(); //Returns TRUE if the InpOut driver was opened successfully
11+
BOOL _stdcall IsXP64Bit(); //Returns TRUE if the OS is 64bit (x64) Windows.
12+
13+
//DLLPortIO function support
14+
UCHAR _stdcall DlPortReadPortUchar (USHORT port);
15+
void _stdcall DlPortWritePortUchar(USHORT port, UCHAR Value);
16+
17+
USHORT _stdcall DlPortReadPortUshort (USHORT port);
18+
void _stdcall DlPortWritePortUshort(USHORT port, USHORT Value);
19+
20+
ULONG _stdcall DlPortReadPortUlong(ULONG port);
21+
void _stdcall DlPortWritePortUlong(ULONG port, ULONG Value);
22+
23+
//WinIO function support (Untested and probably does NOT work - esp. on x64!)
24+
PBYTE _stdcall MapPhysToLin(PBYTE pbPhysAddr, DWORD dwPhysSize, HANDLE *pPhysicalMemoryHandle);
25+
BOOL _stdcall UnmapPhysicalMemory(HANDLE PhysicalMemoryHandle, PBYTE pbLinAddr);
26+
BOOL _stdcall GetPhysLong(PBYTE pbPhysAddr, PDWORD pdwPhysVal);
27+
BOOL _stdcall SetPhysLong(PBYTE pbPhysAddr, DWORD dwPhysVal);
28+
29+
30+
31+
32+

tools/x64/Win32/inpout32.lib

5 KB
Binary file not shown.

tools/x64/Win32/vssver2.scc

185 Bytes
Binary file not shown.

tools/x64/x64/inpout32.h

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#pragma once
2+
3+
//Functions exported from DLL.
4+
//For easy inclusion is user projects.
5+
//Original InpOut32 function support
6+
void _stdcall Out32(short PortAddress, short data);
7+
short _stdcall Inp32(short PortAddress);
8+
9+
//My extra functions for making life easy
10+
BOOL _stdcall IsInpOutDriverOpen(); //Returns TRUE if the InpOut driver was opened successfully
11+
BOOL _stdcall IsXP64Bit(); //Returns TRUE if the OS is 64bit (x64) Windows.
12+
13+
//DLLPortIO function support
14+
UCHAR _stdcall DlPortReadPortUchar (USHORT port);
15+
void _stdcall DlPortWritePortUchar(USHORT port, UCHAR Value);
16+
17+
USHORT _stdcall DlPortReadPortUshort (USHORT port);
18+
void _stdcall DlPortWritePortUshort(USHORT port, USHORT Value);
19+
20+
ULONG _stdcall DlPortReadPortUlong(ULONG port);
21+
void _stdcall DlPortWritePortUlong(ULONG port, ULONG Value);
22+
23+
//WinIO function support (Untested and probably does NOT work - esp. on x64!)
24+
PBYTE _stdcall MapPhysToLin(PBYTE pbPhysAddr, DWORD dwPhysSize, HANDLE *pPhysicalMemoryHandle);
25+
BOOL _stdcall UnmapPhysicalMemory(HANDLE PhysicalMemoryHandle, PBYTE pbLinAddr);
26+
BOOL _stdcall GetPhysLong(PBYTE pbPhysAddr, PDWORD pdwPhysVal);
27+
BOOL _stdcall SetPhysLong(PBYTE pbPhysAddr, DWORD dwPhysVal);
28+
29+
30+
31+
32+

tools/x64/x64/inpoutx64.dll

96 KB
Binary file not shown.

tools/x64/x64/inpoutx64.lib

5.07 KB
Binary file not shown.

tools/x64/x64/vssver2.scc

151 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)