Re: [PARPORT] Seagate Problem (Claus refer to your suggestions)


Claus-Justus Heine (heine@math1.rwth-aachen.de)
Thu, 25 Feb 1999 15:55:21 +0100


mawali@news.icns.com writes:

> Hi
>
> 1) I am on linux-2.1.126 now
>
> 2) My parallel port is on 0x3f8, 7, and works from DOS and debug.exe
>
> 3) My printer is daisy chained through the Tape drive and pc_parport
> module works fine.
>
> 4) I included bpck_fdc_test_something() part to the module and below is
> what I get
>
> Should I try doing an IO trace on DOSemu. Ill first have to find DOS
> drivers for it. I have it working on WinDoze95.

Years later ...

Hi,

just in case you are still interested in getting your drive to work
with Linux: Yesterday I realized that dosemu-0.98.4 seems to work well
with DOS floppy tape drivers.

I have include a message which I have sent to two other people have a
Conner/Seagate parallel port drive.

Cheers

Claus

attached mail follows:


> Rolandas Juodzbalis <rolandas@interneka.lt> writes:
>
> > [1 <text/plain; US-ASCII (7bit)>]
> > Hi,
> >
> > I made some logs with dos and this drive
> > I add logs. If it help, that will be good ;)

Didn't look at the log yet, will do so later. I realized that they are
quite short, so it might be that the relevant parts are missing.

Anyway, here is a patch against DOSEmu-0.98.4. (0.98.5 doesn't change
much, it just corrects some time stamps).

I was surprised and happy when I realized that this version of DOSEmu
can run my QBackup DOS tape driver program. Thus it is possible to
produce detailed trace logs of arbitrary length using Linux and
DOSEmu.

However, the debug flag "+T" has changed its meaning between
0.66.... and 0.98.... -- it is MUCH too verbose now. Therefore I have
hacked DOSEmu a little bit to reimplement the previous behavious, with
the difference that one has to use "-D+t" instead of "-D+T" now.

The result will be trace logs of the form

[00002425] 378 < ac
.
.
.
.

where the number between the square brackets is a time stamp,

378 < ac == write the byte 0xac to the port 0x378
378 > ac == read the byte 0xac from the port 0x378
378 { acac == write the word 0xacac to the port 0x378
378 } acac == read the word 0xacac to the port 0x378
378 [ acacacac == write the dword acacacac to the port 0x378
378 ] acacacac == read the dword acacacac from the port 0x378

Goodies:

- the tape program no longer hangs with a division by zero error. The
  timing stuff seem to have improved A LOT since
  0.66.. Congratulations to the DOSEmu team!

Runtime configuration:

- Edit /etc/dosemu.conf

  Probably your parallel port is located at 0x378 using IRQ 7. In this
  case set

  $_irqpassing = "7"

  and

  $_ports = "0x378 0x379 0x37a 0x37b 0x37c"

  This will enable EPP mode if your parallel port hardware supports
  this.

  It would be nice if you could produce three trace logs:

  a) SPP mode (i.e. uni-directional parallel port, using some status
     lines for reading data from the tape drive)

  b) PS2 mode (i.e. bidirectional 8bit mode, using the data register
     of the parallel port)

  c) EPP mode, using the EPP regs of your parallel port.

  In case your parport support EPP mode (check the manuals of your
  mainboard) you can force PS2 mode or even SPP mode by editing
  /etc/dosemu.conf without fiddling with you BIOS setup or without
  changing jumpers.

  To disable EPP mode, simply remove the EPP registers from the $_port
  statement such that it looks like

  $_ports = "0x378 0x379 0x37a"

  To disable PS2 mode (i.e. bidirectional mode), you can mask the
  control register 0x379 with ~0xE0. This will disable attempts to
  tristate the parport buffer and thus disable bidrectional IO.

  Do it like this:

  $_ports = "0x378 andmask 0x1f 0x379 0x37a"

  Oops. I'm doing something wrong. The latter doesn't work, and I'm
  too tired too figure it out tonight. However, EPP and PS2 should
  work as described.

Caveats:
 
- apply my patch with

  cd PATH_TO_DOSEMU/dosemu-0.98.4
  patch -p1 < PATCHFILE

  Recompile and install following the instructions provided by DOSEmu.

- Use a spare cartridge.

- I have quite a fast system: Dual Pentium II (266 MHz). I suspect
  that one needs the pentium "rdtsc" instruction for good results.

- dosemu-0.98.4 didn't work on the console on my system. Running it
  under X works fine (using xdos). I had to gunzip vga.pcf.Z in
  /usr/X11R6/lib/X11/fonts/misc/ and gzip it again, otherwise the X
  server wouldn't find it. But I'm pretty sure that there is some
  runtime configuration option for the X server to still recognize *.Z
  fonts (or not??).

- xdos -D+t -o /tmp/debugfile produced a file with holes in it
  sometimes. Afterwards I only ran it like

  "xdos -D+t -O" > /tmp/debugfile 2>&1

  Make sure that there is enough space on the file system, the trace
  logs grow large, and they grow rapidly (up to ~ 10 megs).

- Sometimes dosemu hangs my machine without further notice. So don't
  run any application while producing the trace logs. Use at your own
  risk. I hang several time without data loss or severe file system
  damage, but I can't guarantee that it will always be that harmless.

- Don't run Windows. You need a DOS tape driver program.

Claus

-- 
  Claus-Justus Heine             
  heine@math1.rwth-aachen.de
  http://www.math1.rwth-aachen.de/~heine/

Ftape - the Linux Floppy Tape Project Home Page : http://www.math1.rwth-aachen.de/~heine/ftape/ CVS Repos. : http://iris3.math1.rwth-aachen.de:8000/cvsweb/ Bug Reports : http://iris3.math1.rwth-aachen.de:8080/gnats/ ftape-bugs@iris3.math1.rwth-aachen.de Mailing-list: linux-tape@vger.rutgers.edu

-- To unsubscribe, send mail to: linux-parport-request@torque.net -- -- with the single word "unsubscribe" in the body of the message. --



This archive was generated by hypermail 2.0b3 on Thu 25 Feb 1999 - 11:09:19 EST