Author Topic: Why does Nobody Know Nothing About PC PCI Parallel Cards???  (Read 15632 times)

0 Members and 1 Guest are viewing this topic.

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #25 on: May 01, 2015, 01:35:34 pm »
Thanks Ed.Kloonk,

but pray tell, does it have a chapter on how to interface with a programming language to manipulate  PCI ports with any Win operating systems >Win2000 since the book's publishing date was something like 1997?
« Last Edit: May 01, 2015, 01:46:34 pm by SuzyC »
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #26 on: May 01, 2015, 01:44:55 pm »
Thanks Amyk,

Using inpout32.dll and VB6, low port numbers work perfect, but attempting to step trough my program and use  inp or out to a port number above 32767 causes the VB6 IDE to report, "Visual Basic has encountered a problem and must close."

I haven't tried negative numbers yet, but I expect the same results to the neg. equivs. to &HDFE0-&HDFE7
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #27 on: May 01, 2015, 01:50:13 pm »
Thanks SeanB,

I guess I am being just a little naughty!


Do you know of any PCI Parallel card that has any open-source driver posted on the web..I don't.

 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 2217
  • Country: 00
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #28 on: May 01, 2015, 02:08:41 pm »
Thanks Janoc.. but that is the whole point. it is my machine, I bought it, I own it, I am a programmer and electronics nerd, if I want to ace the kernal twiddling with ports, then my machine is my kernal to ace!

In that case, you have to install an open-source operating system.
With windows, you don't (completely) own your pc. Microsoft is in charge about what you are allowed to do with it.
At least as long as you are running windows...
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #29 on: May 01, 2015, 02:36:12 pm »
Declare bool hockey as Constant

*This_Pointer to anyone who can't code anything more than a SMS message on a smartphone. Complete  nonsense that I need to find another operating system.


These PCI ports are being used by Windows 6 and 7 programs by those few who have figured it out.


« Last Edit: May 02, 2015, 12:43:43 am by SuzyC »
 

Offline Ed.Kloonk

  • Super Contributor
  • ***
  • Posts: 4000
  • Country: au
  • Cat video aficionado
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #30 on: May 01, 2015, 02:44:49 pm »
Thanks Ed.Kloonk,

but pray tell, does it have a chapter on how to interface with a programming language to manipulate  PCI ports with any Win operating systems >Win2000 since the book's publishing date was something like 1997?

As the poster who replied after me pointed out, the NT kernel got adopted not long after that book was published.

Win98 was the last MS OS that I produced any code on.

« Last Edit: May 01, 2015, 03:10:02 pm by Ed.Kloonk »
iratus parum formica
 

Offline Monkeh

  • Super Contributor
  • ***
  • Posts: 7992
  • Country: gb
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #31 on: May 01, 2015, 03:04:43 pm »
Perhaps this will help your unGoogleness: http://www.internals.com/
 

Offline mikerj

  • Super Contributor
  • ***
  • Posts: 3240
  • Country: gb
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #32 on: May 01, 2015, 03:10:07 pm »
Thanks Janoc.. but that is the whole point. it is my machine, I bought it, I own it, I am a programmer and electronics nerd, if I want to ace the kernal twiddling with ports, then my machine is my kernal to ace!

In that case, you have to install an open-source operating system.
With windows, you don't (completely) own your pc. Microsoft is in charge about what you are allowed to do with it.
At least as long as you are running windows...

Are you saying Microsoft's Windows license prevents people directly accessing their printer ports?  i.e. DLPortIo, inpout32 etc. are actually illegal to use as they contravene the MS licence?  If not, then what point are you making?
 

Offline Bassman59

  • Super Contributor
  • ***
  • Posts: 2501
  • Country: us
  • Yes, I do this for a living
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #33 on: May 01, 2015, 03:13:56 pm »
Thanks Janoc.. but that is the whole point. it is my machine, I bought it, I own it, I am a programmer and electronics nerd, if I want to ace the kernal twiddling with ports, then my machine is my kernal to ace!

In that case, you have to install an open-source operating system.
With windows, you don't (completely) own your pc. Microsoft is in charge about what you are allowed to do with it.
At least as long as you are running windows...

Are you saying Microsoft's Windows license prevents people directly accessing their printer ports?  i.e. DLPortIo, inpout32 etc. are actually illegal to use as the contravene the MS licence?  If not, then what point are you making?

The point is that Suzy and Karel are both confused. Bill Gates isn't telling anyone that it's against the EULA to directly access the parallel port. Windows (like OS X and Linux and ....) is a multiuser, multitasking operating system which necessarily has to abstract peripherals so the whole thing works as users expect.

This whole thread is pretty stupid.

If Suzy wants to peek and poke, she can look on eBay for an Apple ][.
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #34 on: May 01, 2015, 03:24:11 pm »
   suicidaleggroll, good question:  Why use a PCI parallel port?

(1) The programming language interface to the standard parallel port is so simple, compared to trying to use a serial communication add-on like FTDI USB I/O or else attempting to  get with MSComm.
(2) All others are not, maybe a way irequires creating a modem interface, hundreds of lines of code.
(3) An USB interface can create connections whose software can crash the operating system, mandating a reboot,
(4) At least the legacy parallel port allows me to have a fairly fast and direct hardware interface with my projects, why not PCI.
(5) I have several older computers with legacy parallel port connectors that can be now used for MCU debugging or machine control or home automation etc, but are limited to one parallel port to connect directly to the outside world.. A PCI parallel port card could add others.
(6) A misstep with a probe zapped the parallel port on a powerful newer motherboard and it is now worthless on my bench to do something really useful with it.

1) Are you sure?  The fact that this thread has reached 3 pages without a solution tells me it's not as simple as you're suggesting...
2) What?
3) Only with a hopelessly broken driver or a shitty OS
4) I'm not talking about PCI, I'm talking about parallel ports.  They are so ridiculously obsolete that the fact you're attempting to do ANY new development using them is laughably sad
5) See #4, I'm not talking about PCI, nobody here is talking about PCI, we're all talking about parallel ports
6) Yet another reason not to use parallel ports!

You need to step back and look at the real problem.  What you're looking for is GPIO from a general purpose desktop computer.  A parallel port is the -WRONG- solution to this problem, as I'm pretty sure this thread has made painfully obvious.  There are literally TONS of external devices you can use to give you GPIOs from a general purpose computer using modern interfaces that won't disappear any time soon (or in this case, already disappeared over a decade ago).  For example AccesIO has a lot of options with PCI, PCIe, and USB interfaces and up to 96 GPIOs per device, plus other models with analog I/O, optical isolation, etc.  Some of them can run at very high speeds as well.

For a simple option:
http://accesio.com/go.cgi?p=../usbp/usbp-dio16ro8.html

16 TTL/LVTTL I/O with 32mA current capacity, USB interface, full driver support with example code for Linux and Windows.
 

Offline Macbeth

  • Super Contributor
  • ***
  • Posts: 2571
  • Country: gb
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #35 on: May 01, 2015, 03:52:18 pm »
Suzy, I think I can help.

I used to use the freeware DriverLINX PortIO when hitting the parallel port in Windows XP. The evil philanthropist Bill Gates never forced me to stop using it and switch to Linux instead like some of the nice misanthropists in this thread seem to be advocating.

DriverLINX webpage is no longer, but it's still available for download at the bottom of this page, Winford Engineering downloads

From what I can tell it only works in 32 bit and in Windows 7+ you need to set it to run in compatibility mode with XP.

Hope that helps  :-+
 

Offline LabSpokane

  • Super Contributor
  • ***
  • Posts: 1899
  • Country: us
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #36 on: May 01, 2015, 04:30:18 pm »
Holy shit. 

A three page thread focused on "high-speed" access to a parallel port with ... I still can't believe I read this ... VB. 

:-DD :palm:
 

Offline neslekkim

  • Super Contributor
  • ***
  • Posts: 1305
  • Country: no
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #37 on: May 01, 2015, 04:40:20 pm »
For a simple option:
http://accesio.com/go.cgi?p=../usbp/usbp-dio16ro8.html

16 TTL/LVTTL I/O with 32mA current capacity, USB interface, full driver support with example code for Linux and Windows.

Kinda expensive, but this kind of solution would be better if one need to do things like this from an pc.

Adafruit also have an solution to this:
https://www.adafruit.com/products/2264

with tutorial: https://learn.adafruit.com/adafruit-ft232h-breakout

And seeedstudio have this: http://www.seeedstudio.com/depot/FT2232H-USB-20-HiSpeed-breakout-board-p-737.html

And I suspect that there are many more ways..
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #38 on: May 01, 2015, 05:07:51 pm »
Adafruit FT232H Breakout - General Purpose USB to GPIO+SPI+I2C
PRODUCT ID: 2264
$14.95
OUT OF STOCK

Programs in Python?


http://accesio.com/go.cgi?p=../usbp/usbp-dio16ro8.html  $189 + Shipping and Tax

Versus:My Own PC's = $0.00

I can't believe I posted so much just to save a lousy $200 bucks!

Are you all millionaires?

http://www.seeedstudio.com/depot/FT2232H-USB-20-HiSpeed-breakout-board-p-737.html

This is only $27.00 + ship+tax, but driver code is in Delphi
« Last Edit: May 01, 2015, 05:33:08 pm by SuzyC »
 

Offline LabSpokane

  • Super Contributor
  • ***
  • Posts: 1899
  • Country: us
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #39 on: May 01, 2015, 05:21:04 pm »
Are you all millionaires?

I think he's merely a thousandaire.
 


Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #41 on: May 01, 2015, 05:28:39 pm »
Macbeth:



Thanks a million, they do have a driver for their USB I/O cards with an easy interface to Win Xp easy to interface with VB6.

http://www.winfordeng.com/support/download.php

Thanks Monkeh:
I didn't see these links at first, thanks for input pointing this out.
« Last Edit: May 01, 2015, 05:57:37 pm by SuzyC »
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #42 on: May 01, 2015, 05:29:36 pm »
http://accesio.com/go.cgi?p=../usbp/usbp-dio16ro8.html  $189 + Shipping and Tax

Versus:My Own PC's = $0.00

I can't believe I posted so much just to save a lousy $200 bucks!

Are you all millionaires?

Look again, it's $89.  The $189 one includes high current relay controlled outputs.  I'm not saying it's the only option, just that it's A option, and they provide insanely good customer support.  They'll even go as far as writing custom programs to use their hardware for you, for free, provided your requirements are not too complex.  I ordered a board once that needed different power and I/O voltages (5v power, 3.3v I/O).  I emailed them to ask what the best way to accomplish that was (where to run a jumper wire, what resistors to remove, etc.), and instead they just did the modification for me for like $10 extra (on a $400 board).

As I said in my post, there are literally tons of options though, ALL of which are better than using a parallel port.
« Last Edit: May 01, 2015, 05:36:47 pm by suicidaleggroll »
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #43 on: May 01, 2015, 05:38:12 pm »
Monkeh, Thanks for your help!


My mom said "It is better to light one candle than to curse the darkness."

Some here would say, "It is better to burn your old PC's than use a PCI card to light a single LED."

Give my poor PC's and Parallel Port PCI's some amnesty!
« Last Edit: May 01, 2015, 06:39:29 pm by SuzyC »
 

Offline SuzyCTopic starter

  • Frequent Contributor
  • **
  • Posts: 792
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #44 on: May 01, 2015, 05:49:59 pm »
Thanks very much again, neslekkim, you have the good character to offer encouragement where others offer only criticism.
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 2217
  • Country: 00
Re: Why does Nobody Know Notthing About PC PCI Parallel Cards???
« Reply #45 on: May 01, 2015, 06:57:53 pm »
Thanks Janoc.. but that is the whole point. it is my machine, I bought it, I own it, I am a programmer and electronics nerd, if I want to ace the kernal twiddling with ports, then my machine is my kernal to ace!

In that case, you have to install an open-source operating system.
With windows, you don't (completely) own your pc. Microsoft is in charge about what you are allowed to do with it.
At least as long as you are running windows...

Are you saying Microsoft's Windows license prevents people directly accessing their printer ports?  i.e. DLPortIo, inpout32 etc. are actually illegal to use as they contravene the MS licence?  If not, then what point are you making?

No. Since win2000/XP, it's not possible anymore to access the hardware. Only when you write your one driver for which you
need a microsoft SDK.

With an opensource OS like Linux, you can easily access the LPT port. First blacklist the default parallel port/printer driver.
Then you can access the hardware directly (when you have root privilege). There are lots of programming examples on the
internet that demonstrate how to do that. Even writing a small kernel mode driver for Linux that does what you want is easy.
Not the hassle like windows.

 

Online free_electron

  • Super Contributor
  • ***
  • Posts: 8517
  • Country: us
    • SiliconValleyGarage
Re: Why does Nobody Know Nothing About PC PCI Parallel Cards???
« Reply #46 on: May 01, 2015, 07:35:59 pm »
first, there are no ports above 32536 (or whatevre 2^15 is ).
PCI is mapped in the linear memory space of protected mode. there is a hole created in the old 'port' scheme that gets remapped. When you write to the old port addresses the southbridge recreates the operation to the correct memory.

the old ports used IORD and IOWR in combination with the lower 15 address bits of the databus of the 8086 cpu.
anything that uses a bridge no longer has iord and IOWR signals. that memory space is gone and virtualized in the southbridge.

the southbridges have a reduced pincount isa interface where data is streamed. that is how they implement legacy crap like serial ports , printerports etc.

SO : PCI is not mapped in Io space but in main memory space.
Cards are mapped on the fly. so you cannot use hardcoded addresses. what is valid in your computer isnot valid in another machine. During boot the PCI map is built and a list is created telling you what card sits at what address. your driver interoperates with the Os and gets a handle. all operations are based on this handle + offset.
It is all dynamic. you tell the os ; i need this board ( VID and PID ) and the Os tells you : here is the base address. go ahead.

this stuff is all obsolete. modern machines don;t even have PCi slots anymore. only PCIx ports.


Professional Electron Wrangler.
Any comments, or points of view expressed, are my own and not endorsed , induced or compensated by my employer(s).
 

Offline suicidaleggroll

  • Super Contributor
  • ***
  • Posts: 1453
  • Country: us
Re: Why does Nobody Know Nothing About PC PCI Parallel Cards???
« Reply #47 on: May 01, 2015, 07:47:34 pm »
this stuff is all obsolete. modern machines don;t even have PCi slots anymore. only PCIx ports.

I believe you mean PCIe or PCI Express.  PCIX is another obsolete interface, like AGP.
 

Offline oPossum

  • Super Contributor
  • ***
  • Posts: 1417
  • Country: us
  • Very dangerous - may attack at any time
Re: Why does Nobody Know Nothing About PC PCI Parallel Cards???
« Reply #48 on: May 01, 2015, 08:42:34 pm »
Windows 7 Ultimate 64 bit, Xeon W3520, X58, 6 GB RAM
PCI Express parallel port card with Oxford chipset
WinIO driver from www.internals.com (thanks Monkeh!)

Visual BASIC .NET code
Code: [Select]

Imports System.Runtime.InteropServices
Imports System.Threading


Module Module1

    <DllImport("WinIo64.dll")> Public Function InitializeWinIo() As Boolean
    End Function

    <DllImport("WinIo64.dll")> Public Function ShutdownWinIo() As Boolean
    End Function

    <DllImport("WinIo64.dll")> Public Function GetPortVal(ByVal PortAddr As UInt16, ByRef pPortVal As UInt32, ByVal Size As UInt16) As Boolean
    End Function

    <DllImport("WinIo64.dll")> Public Function SetPortVal(ByVal PortAddr As UInt16, ByVal pPortVal As UInt32, ByVal Size As UInt16) As Boolean
    End Function

    Sub Main()

        InitializeWinIo()

        Const port As UInt32 = &HD880

        Dim leds As Byte() = {&H1, &H2, &H4, &H8, &H10, &H20, &H40, &H80, &H40, &H20, &H10, &H8, &H4, &H2}

        Do

            For Each x In leds

                SetPortVal(port, x, 1)

                Console.WriteLine("{0:X4} = {1:X2}", port, x)

                Thread.Sleep(200)

            Next

        Loop While Not Console.KeyAvailable

        Console.ReadKey()

        ShutdownWinIo()

    End Sub

End Module


 

Online Mechatrommer

  • Super Contributor
  • ***
  • Posts: 11638
  • Country: my
  • reassessing directives...
Re: Why does Nobody Know Nothing About PC PCI Parallel Cards???
« Reply #49 on: May 02, 2015, 01:56:46 am »
4 pages.... let me clear some bit up about Windows and Modern OSes (including Linux perharps)... its not that they dont let you access to your hardware.... its just they dont let you access to your hardware DIRECTLY as you please, you want the access? you can! but you have to be IN QUEUE, thats the way. there is RATIONALE to this... modern OS is like a very busy traffic policeman in the middle of 100 junctions, every junctions we have cars or motorists that request (IRQ) to pass the junction to the other side (USER), among the motorists are internet data, wifi bluetooth printer mouse keyboard, mcu embedded that is connected to LPT, plethora of conected usb devices etc. this trafficman need to manage all of them to avoid clashing. now how the OS designer do this with ease, managable and in a safe and modern way? they built layers, one on top rely on the other one below, one on the topmost cannot access directly to the bottommost, they have to pass the one directly below it, they are encapsulated in their own right. the topmost layer is who? you! the user. roughly speaking the layers are:

1) kernel the OS (this is the layer that access the hardware directly, handle the irq, manage and queue them)
2) driver (kernel will pass, or the driver will fetch in from kernel about the request, get the necessary data from the hardware, perharp through the assigned pointer handle given by the kernel)
3) api (the request, info or data will further be requested by api, this is where most of us have access to)
4) app (this is what we build)
5) user

i maybe wrong in some details or order, but i'm certain there are layers that you cannot simply poke as you please without going through the top layers. you ask why i cant? because the OS will not let you, why? i have the right! right? yes you have the right but you dont have the clue. as proven many times before, directly access to hardware or memory can impose a security and safety threat. hackers may poke in, ill user/programmers may hog or screw another app on the same or another thread, it may render OS disfunctional, or even burn something. so they wont let you, for you own sakeness.

mourning about this OS do not let you this or that, license or legal bullshit this or that is like accusing the OS is a religious pius, where its nothing more than they simply want to impose some safe science behind it. now you want to get through? to access your hardware? you have to follow the R&R, ie follow the layers, and that is what you are looking for, thats what you need to find in google or elsewhere if you want to play P&P or modern OSes. mourning will not help.
Nature: Evolution and the Illusion of Randomness (Stephen L. Talbott): Its now indisputable that... organisms “expertise” contextualizes its genome, and its nonsense to say that these powers are under the control of the genome being contextualized - Barbara McClintock
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf