On 17 March 2016 at 11:34, Christian Corti
<cc at informatik.uni-stuttgart.de> wrote:
I'm not sure where I should start asking, so
I'm starting here ;-)
I have a problem reading TK70 (and probably TK50) tapes in NetBSD 3.0 on a
MicroVAX II. There is absolutely no way of reading a single tape block with
a simple read(). All I get is
mt0: unknown opcode 0x80 status 0xc01 ignored
on the console, and then the driver hangs. The output is generated in
/usr/src/sys/dev/mscp/mscp.c
It is my impression that the code has *never* been tested on real hardware
after all that years. BTW the TK70 is working fine otherwise (e.g. I can
boot the MVII diagnostic tape).
Now for something strange: the same procedure works in SimH (with the same
system installation and kernel). So apparently SimH has a "bug", too. It
doesn't behave like the real device.
Background of the story: I want to image TK70 tapes as TAP files.
Has anyone ever encountered the same behaviour?
I'm pretty sure TK50 tapes definitely worked around 1.6, as I built
and tested releases on them :-p
From my very loose MSCP reading 0x80 would be M_OP_END
and 0xc01 would
be M_ST_INVALCMD (plus the 0xc00).
Hmm, is it possible you're issuing a read for a different blocksize to
that of the tape?
As an aside if you wanted to test a more recent kernel you *should* be
able to drop a new kernel as /netbsd.new or similar and then boot it
directly and keep using the netbsd-3 userland. This may not work if
the new kernel needs a more recent bootblock (which is sometimes
unfortunately the case)