NOTES: 1. The Version 6.0E Programmer can be powered by a USB Port (Cable) OR a 5.5mm x 2.5mm Coaxial Barrel Connector. The Center Pin is the POSITIVE Terminal. Do not use both to power the Programmer. 2. If your Computer requires a Legacy Parallel Port locate a Sunix PAR5008R PCI Card that allows you to strap the proper Legacy address on the card.http://www.sunix.com/en/product_detail.php?cid=1&kid=2&gid=5&pid=483

PART 1: - Preparing Debian for Hardware & Windows Software

BEFORE YOU TRY A COMPILE YOU MUST INSTALL SOME REQUIRED SOFTWARE:Typically you need to install build-essential, and the headers for the kernel you are running.Check what Version of Debian you are running with these commands:

We will be using the 32 Bit version of Wine to run the (Windows Version) WILLEM PCB6.0E LPT version software, so Wine will also need to be installed.We will also be building some software with winegcc, so the proper version of winegcc will be required. It is located in some development package. But,how do we locate what exact package it is in? We can use the following URL to search for the package since we know the parameters of the searchwhich are: (Jessie (8.x), 32 Bit (i386), package contents (winegcc)).https://packages.debian.org/search?keywords=search

While you are in winecfg, click on the ADD APPLICATIONS, and use the proper path to locate pcb60lpt.exe. Click on pcb60lpt.exeand set it for Windows 98 version. Then click on "OK" to EXIT winecfg without installing Mono or winetricks, or any other additionalsoftware. Then update the system database. (or you can logout, reboot, and log back in)

winegcc should now be installed, but since it's not in your path you can't locate it to execute it. Try typing winegcc in a Terminal windowand see if it executes. If it doesn't, then edit your path to add the path to winegcc. To find where winegcc is located do the followingin a Terminal window as su- or root.

Additional shells may be available in your distribution's software repositories. Performing a search for the term "shell" in yourpackage manager should provide you with a list of alternative command line shells.

If you want to experiment with a shell, just for now, you can launch a shell from within the existing shell. For example, if youant to run the tcsh shell, you can run:

When you are finished exploring tcsh you can type exit to return to the default shell. Once you have found a shell you want to continue usingyou can switch to the default shell by running the chsh command. For example, if you want to switch to using the tcsh shell, you can run

There may be a .bash_profile file in /home/loginuser along with .bashrc file. You can put configurations in either file,and you can create either if it doesn’t exist. But, why two different files? What is the difference?

According to the bash man page, .bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells.

If .bash_profile exists in /home/user with the following information already inserted:

But, your's may vary accordingly. You won't be able to cut & paste mine, unless your system is built exactly like mine. It's up to you to locateexactly where all the libs and includes are located. That is what all the previous commands should have helped you do. Just because you have/usr/lib & /usr/local/lib included....doesn't mean your needed lib is in that path.

That is where your detective work comes to play. SEARCH and use grep to locate the libs.

Add the path by editing the .bashrc file to add /usr/lib/i386-linux-gnu/wine-development as a path.Now, try the winegcc command in a Terminal window:

Install the SYBA PCI Parallel Port Card in a slot where no Capacitors are sticking up in the way, preventing the card from being installed.I had to look over three PCI slots to locate one with enough clearance to allow the PCI card to fully seat in the PCI Connector. This PCIParallel Port card DOES NOT have typical Legacy Parallel Port. LPT1: is typically at 0x378 with LPT2: at 0x278. This card has thePorts in the 0x9400 range. We will be locating that information a bit later as we probe the PCI card.

The Documentation in the SYBA box states, "Please refer to installation document on the CD for installing these Operating systems."

IF YOU HAVE A LEGACY PARALLEL PORT, SKIP THIS SECTION*********************************************************************************************************************************************************************Download the DLL source code that will be used to monitor reads and writes to 0x378, and sending those to the new PCI Parallel Port location:

Extract the files. If your parallel port is at an address other than 0x378, edit the io_main.c and update the LPT_BASE_ADDR define near the topof the code to match your parallel port address. Now, try the make command from the subdirectory containing the source code:

I searched for debug.h from the root directory. It was found at: /usr/include/wine-development/debug.hI just needed to add this path to the .bashrc file, or add it to the two source files: (I used the latter)

Install the DLL:Now, we’re going to put the io.dll.so file in a place where Wine can find it, and change the permissions of io.dll.so to 774.User and Group have READ, WRITE, and EXECUTE Permissions and Other has READ ONLY.

*********************************************************************************************************************************************************************Execute the software with the wine command:

The Willem PCB6.0E LPT software Executes properly and looks correct, but I was fooled by the message. It's really two messagesthe first being ioperm, meaning "IO PERMISSIONS PROBLEM", then the second message stating "Success" for something.Exit the software, and and continue to VERIFY the Parallel Printer Port.

PART 3: - Parallel Port Setup and Verification

Make sure that the KEE Willem PCB6.0E LPT EPROM Programmer is connected to your systems Parallel Port, and powered on.I used the USB cable for power, but later plan on using a separate LAB Power Supply with a Barrel connector. Follow the guidethat is on the CDR that came with the SYBA PCI Parallel Port.

Linux kernel provides a 'parport' code to support the parallel port (/dev/lp0, /dev/lp1, /dev/lp2). This code providesthe ability to share one port between multiple devices. And it is loadable when kernel is running.

The 'parport' code is split into two parts : generic (which deals with port sharing) and architecture-dependenteg. X86, SPARC. (which deals with actually using the port). Thus, please take the following steps to install 'parport' module!

Check the on-board parallel port's hardware resources. Most likely each motherboard has a built-in parallel port, and its hardwareresources are settable with BIOS utility.

Enter the commands more /proc/pci, more /proc/bus/pci/devices, cat /proc/bus/pci/devices or lspci -v to get information on thePCI Parallel Port Card. (Some commands are not correct for Debian 8.x)

Board with Nm9735CV part I/O at 0xc000 [0xc001] not used 0xc008 [0xc009] not used 0xc010 [0xc011] printer port 0xc018 [0xc019] ECP/EPP config registers

Board with Nm9805CV part I/O at 0xc000 [0xc001] printer port I/O at 0xc400 [0xc401] ECP/EPP config registers I/O at 0xc800 [0xc801] not used I/O at 0xd000 [0xd001] not used I/O at 0xd400 [0xd401] not used I/O at 0xd800 [0xd801] not used

Board with Nm9835CV part I/O at 0xc000 [0xc001] not used I/O at 0xc400 [0xc401] not used I/O at 0xc800 [0xc801] printer port I/O at 0xd000 [0xd001] ECP/EPP config registers I/O at 0xd400 [0xd401] not used I/O at 0xd800 [0xd801] not used

# /etc/modules: kernel modules to load at boot time.## This file contains the names of kernel modules that should be loaded# at boot time, one per line. Lines beginning with "#" are ignored./lib/modules/3.16.0-4-686-pae/kernel/drivers/parport/parport.ko/lib/modules/3.16.0-4-686-pae/kernel/drivers/parport/parport_pc.ko io=0x9400 irq=17

IF YOU HAVE A LEGACY PARALLEL PORT, SKIP THIS SECTION*********************************************************************************************************************************************************************

You should be ready to execute the programming software. But, to get it to run correctly it MUST BE run as sudo.I know this is a problem, but I've not found a way to get around it, except for using a Legacy Parallel Port. It isbecause ioperm(), located in io.dll.so, must be executed as root. I haven't found a way to elevate the userprivileges with a .dll.so file.

NOTE: If you download the software or copy the tutorial, make sure you check back for the next several weeks for updates.I'll go through a complete install on a clean Dell Box, with Debian ?.? (32 Bit) and see if it the tutorial is 100% correct.If you're working on 64 Bit, there may be some problems, I'm not familiar with 64 Bit installs. Nov 21 2017

THE DELL 760 DOES HAVE A LEGACY PARALLEL PORT at 0x378*********************************************************************************************************************************************************************Edit the file io_main.c and update the LPT_BASE_ADDR define near the top of the code to 0x378 to match your parallel port address.Now, try the make command from the subdirectory containing the source code:

Install the DLL:Now, we’re going to put the io.dll.so file in a place where Wine can find it, and change the permissions of io.dll.so to 774.User and Group have READ, WRITE, and EXECUTE Permissions and Other has READ ONLY.