Skip to contentSkip to conversation

allow access to parallel port

DISCUSSION Razvan Cosma 2 participants 4 messages Dec 10, 2003 – Dec 11, 2003

lore
Share & tools
lore
#0 lore raw

Hello,
I'm trying to get some ancient applications to run on Mandrake 9.2, dosemu-1.1.99.1-1.i586.rpm. Everything goes well, except for printing. The bloody apps seem to be written in Fox or Dbase. dmesg output:
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport0: irq 7 detected
parport0: Printer, EPSON LX-300+
parport1: PC-style at 0x278 (0x678) [PCSPP,TRISTATE,EPP]
parport1: irq 5 detected
lp0: using parport0 (polling).
lp1: using parport1 (polling).
I have added the user to the lp group, that has write access to /dev/lp0 and /dev/lp1, specified user c_all in dosemu.users, set dosemu.bin suid root, placed $_ports = "device /dev/lp0 range 0x378 0x37a"
$_ports = $_ports, " device /dev/lp1 range 0x278 0x27a"
$_irqpassing = "5 7"
in dosemu.conf, yet the good ole d 40:0 line in debug shows only zeroes on the first line.
Obviously the apps do not work, and I'm very much out of ideas. Everything goes OK with just ms-dos or Windows on the same system, but that is in no way a solution. Any other hints please?

Thank you,
Razvan

#1 lore raw

Status update: I gave up on the direct port access, and configured CUPS. I can print just fine from Linux, and can also do a echo "sdcsc" > LPT1: in dosemu.
But the application (which does a set output to printer or however that was called in dbase) freezes when trying to print. Listing the information on the screen works though. Is there anything special about the dbase/fox stuff?

Quoted 20 lines · Razvan Cosma

Hello,
I'm trying to get some ancient applications to run on Mandrake 9.2, dosemu-1.1.99.1- 1.i586.rpm. Everything goes well, except for printing. The bloody apps seem to be written in Fox or Dbase. dmesg output:
parport0: PC-style at 0x378 (0x778) [PCSPP,TRISTATE]
parport0: irq 7 detected
parport0: Printer, EPSON LX-300+
parport1: PC-style at 0x278 (0x678) [PCSPP,TRISTATE,EPP]
parport1: irq 5 detected
lp0: using parport0 (polling).
lp1: using parport1 (polling).
I have added the user to the lp group, that has write access to /dev/lp0 and /dev/lp1, specified user c_all in dosemu.users, set dosemu.bin suid root, placed $_ports = "device /dev/lp0 range 0x378 0x37a"
$_ports = $_ports, " device /dev/lp1 range 0x278 0x27a"
$_irqpassing = "5 7"
in dosemu.conf, yet the good ole d 40:0 line in debug shows only zeroes on the first line.
Obviously the apps do not work, and I'm very much out of ideas. Everything goes OK with just ms-dos or Windows on the same system, but that is in no way a solution. Any other hints please?

Thank you,
Razvan

#2 lore raw
Quoted 7 lines · Razvan Cosma

Status update: I gave up on the direct port access, and configured CUPS. I can print just fine from Linux, and can also do a echo "sdcsc" > LPT1:
in dosemu.
But the application (which does a set output to printer or however that was called in dbase) freezes when trying to print. Listing the information on the screen works though. Is there anything special about the dbase/fox stuff?

you can try
xdosemu -D+piT -O
to figure out what is going on.

Printing via lpr works using a periodic flush of a buffer that is fed by BIOS calls.

Direct parallel port access will only work if the DOS application does just that.

What is not (yet?) implemented in DOSEMU is
DOS app (-> DOS) -> BIOS -> emulated parallel port -> whatever you like or
DOS app (-> DOS) -> BIOS -> real parallel port
that is, the DOSEMU BIOS directly spools rather than via a port.

Bart

#3 lore raw

Re: allow access to parallel port - solved

As it appears, Caldera DR-DOS 7 works like a charm with CUPS. I also tested several versions of ms-dos with no luck. So - problem solved! If the developers are interested in some more details I'll gladly provide them. Thank you very much for a life-saving piece of software

Kind regards,
Razvan