NetBSD TK70 question

David Brownlee abs at
Fri Mar 18 05:23:20 CDT 2016

On 17 March 2016 at 11:34, Christian Corti
<cc at> 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 / 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)

More information about the cctech mailing list