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)