[comp.os.vms] Magtape versus QIO

ZSYJKAA@WYOCDC1.BITNET (Jim Kirkpatrick 307 766-5303) (01/28/88)

I'm trying to write a labeled tape (not FOREIGN) using QIOW from a Fortran
program.  It all worked fine with FOREIGN tapes but I can't seem to make it
work on labeled tapes.  Here's what I'm doing --
  1.  Issue a SYS$MOUNT to get the tape mounted.  Should be similar to the
      DCL command MOUNT/DENSITY=1600 MU T01000 TAPE
      The tape gets mounted, and the status is SS$_NORMAL.
  2.  Issue a SYS$ASSIGN with logical name TAPE, returning CHAN.  The
      status is again normal, and CHAN=144 usually (I would expect it
      to change from run to run, at least it's not zero, which is my point).
  3.  Issue a QIOW with CHAN, function is IO$_CREATE with modifiers
      IO$M_CREATE and IO$M_ACCESS; also a FIB containing the FIB$M_REWIND
      flag (I want to re-write the tape, not append to it), and a name
      descriptor containing the name A.A;1.  This completes with normal
      status.
  4.  Finally I call QIOW to do a write virtual block.  It fails with
      %SYSTEM-F-FILNOTACC, file not accessed on channel.  The diagnostic
      messages manual simply tells me I've done something wrong and go fix
      it.  TSC wasn't much help, I got the impression this was over their
      heads.
Any ideas what I'm doing wrong?  I didn't want to clutter the list with
code segments, which are available on request.

Other info -- TU78 drives, VMS 4.6, 2 8800s in a cluster.  What I'm actually
trying to do is write Versatec plot data in their VDS format to tape for
plotting on an off-line Versatec RPM 850 plotting system.  Thus I cannot
allow RMS-type stuff in the tape blocks, such as 4 bytes describing the
block size, nor 2 bytes describing the "record" size.  I need complete
control over the content of the blocks and QIOW _seems_ the way to go.
I want to use labeled tapes (the 850 will accept foreign as well) to ensure
the ops get the right tape mounted, and that I don't clobber a user tape
in case the ops mount a wrong tape (I also don't want users reading the
tapes, but protection is secondary to making it work at all).

Help!  (I'll post the resolution to the list if one is found)

-------