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