[nmglug] parallel port address
akaluta
akaluta at taosnet.com
Sun Dec 28 18:47:22 PST 2008
Bob:
That is an interesting development and puzzling to a neophyte I will
doodle with the example program a bit more in the next day or two,thanks
for the try and results, I did modify the program to sys/io.h from the
original asm/io.h to delete an error message. Anthony K
On Sat, 2008-12-27 at 21:39 -0700, Bob Knight wrote:
> You probably don't want to hear this, but it compiles fine here after I
> get rid of the newlines inserted by the mail client...
>
> Ubuntu Intrepid, gcc 4.3.2 ubuntuized.
>
> Bob
>
> akaluta wrote:
> > Seasons Greetings All;
> > The parallel port location found in /proc/ioports/ is 0378-037a
> > parportO.
> > The pertinent uncooperative program part: "#define base 0x0378"
> > /* printer port base address */
> > a
> >
> > I have tried inputting various address permutations i.e 0x378 ,0378 ,
> > 0378-037a I get varying error messages: cannot locate 378 ,alternately
> > "invalid digit 8 in octal constant"
> >
> > program quoted:
> > "/*
> > * Simple parallel port output control program for Linux
> > * Written and copyright by Tomi Engdahl 1998
> > * (e-mail: tomi.engdahl at hut.fi)
> > *
> > * The program output the data value to PC parallel port data pins
> > * (default lpt1 I/O address 0x378). The data values are given as the
> > * command line parameter to the program. The number can be
> > * in decimal (0..255) or hexadecimal format (0x00..0xFF).
> > *
> > */
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> > #include <unistd.h>
> > #include <sys/io.h>
> >
> > #define base 0x0378 /* printer port base address */
> >
> > main(int argc, char **argv)
> > {
> > int value;
> >
> > if (argc!=2)
> > fprintf(stderr, "Error: Wrong number of arguments. This program
> > needs one argument which is number between 0 and 255.\n"), exit(1);
> > if (sscanf(argv[1],"%i",&value)!=1)
> > fprintf(stderr, "Error: Parameter is not a number.\n"), exit(1);
> > if ((value<0) || (value>255))
> > fprintf(stderr, "Error: Invalid numeric value. The parameter number
> > must be between 0 and 255\n"), exit(1);
> > if (ioperm(base,1,1))
> > fprintf(stderr, "Error: Couldn't get the port at %x\n", base),
> > exit(1);
> >
> > outb((unsigned char)value, base);
> > }" end quote.
> >
> >
> > Any insights,provided to the greenhorn,are appreciated.
> > Best Regards,Anthony K
> >
> >
> > _______________________________________________
> > nmglug mailing list
> > nmglug at nmglug.org
> > https://nmglug.org/mailman/listinfo/nmglug
> >
> _______________________________________________
> nmglug mailing list
> nmglug at nmglug.org
> https://nmglug.org/mailman/listinfo/nmglug
>
More information about the nmglug
mailing list