Date: Mon, 18 Mar 2002 10:10:09 -0600 (CST)
From: Doc Shipley <doc(a)mdrconsult.com>
To: Classic Computers <classiccmp(a)classiccmp.org>
Subject: MVII Diags Chapter 2
Sender: owner-classiccmp(a)classiccmp.org
Reply-To: classiccmp(a)classiccmp.org
OK, Friends & Neighbors.
First, I'm starting to think that the original tape is damaged. The
cptape utility suggested by Jochen seems to be Doing The Right Thing,
but gets errors. dd has no qualms at all as long as the TKZ50-GA is set
to a variable blocksize, but errors out on file #7. If I set
"conv=noerror" for dd to ignore read errors, it saws away forever at
the same file. And, if I boot the uVAX from either the original or the
one "probably good" copy [1], sometimes it sees the RD53 disks as RD51.
Not consistently. When it does, it hangs solid on a custom format.
I'll be putting the -GA on a VMS box this evening and try the VMSTPCE
copy. It makes sense to make the tape in its native OS.
[1] I did get a good set of files with the TUHS cptape. Problem is
that AFAICT the partner program, maketape, only understands 512*N
blocksizes. The diags tape has a lot of files in 80B blocks. The good
copy was made with dd, setting blocksize file by file. 82 files,
that is....
Here are a few shell scripts that might be useful. Originally run on
Ultrix 1.2 on a VaxStation II but should be more general than that.
Written for the specific purpose of investigating and duplicating
MVAX diagnostic TK50 tapes.
carl
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
# tapemap.sh
# read_tape.sh
# write_tape.sh
# This archive created: Tue Jan 5 08:21:44 1993
export PATH; PATH=/bin:$PATH
echo shar: extracting "'tapemap.sh'" '(161 characters)'
if test -f 'tapemap.sh'
then
echo shar: will not over-write existing file "'tapemap.sh'"
else
sed 's/^X//' << \SHAR_EOF > 'tapemap.sh'
X#!/bin/sh
Xwhile :
Xdo
Xdd if=/dev/nrmt0 cbs=80 conv=unblock >>logfile
Xdd if=/dev/nrmt0 of=/dev/null 2>>logfile
Xdd if=/dev/nrmt0 cbs=80 conv=unblock >>logfile
Xdone
SHAR_EOF
if test 161 -ne "`wc -c < 'tapemap.sh'`"
then
echo shar: error transmitting "'tapemap.sh'" '(should have been 161
characters)'
fi
chmod +x 'tapemap.sh'
fi # end of overwriting check
echo shar: extracting "'read_tape.sh'" '(356 characters)'
if test -f 'read_tape.sh'
then
echo shar: will not over-write existing file "'read_tape.sh'"
else
sed 's/^X//' << \SHAR_EOF > 'read_tape.sh'
X#!/bin/sh
X# read_tape.sh
X# read MicroVax diagnostic tape into an assortment of files
X#
Xdir=/data
Xtape=/dev/nrmt0
X
Xmkdir $dir/hdr
Xmkdir $dir/txt
Xmkdir $dir/eof
X
Xmt -f /dev/rmt0 rew
Xi=1
Xwhile [ "$i" -le 108 ]
Xdo
X dd if=$tape bs=80 of=$dir/hdr/$i
X dd if=$tape bs=512 of=$dir/txt/$i
X dd if=$tape bs=80 of=$dir/eof/$i
X i=`expr $i + 1`
Xdone
X
Xmt -f /dev/rmt0 rew
SHAR_EOF
if test 356 -ne "`wc -c < 'read_tape.sh'`"
then
echo shar: error transmitting "'read_tape.sh'" '(should have been
356 characters)'
fi
chmod +x 'read_tape.sh'
fi # end of overwriting check
echo shar: extracting "'write_tape.sh'" '(348 characters)'
if test -f 'write_tape.sh'
then
echo shar: will not over-write existing file "'write_tape.sh'"
else
sed 's/^X//' << \SHAR_EOF > 'write_tape.sh'
X#!/bin/sh
X# write_tape.sh
X# write MicroVax diagnostic tape from an assortment of files
X#
Xdir=.
Xtape=/dev/nrmt0
X
Xmt -f /dev/rmt0 rew
Xi=1
Xwhile [ "$i" -le 108 ]
Xdo
X echo " file $i"
X dd of=$tape bs=80 if=$dir/hdr/$i
X dd of=$tape bs=512 if=$dir/txt/$i
X dd of=$tape bs=80 if=$dir/eof/$i
X i=`expr $i + 1`
Xdone
Xmt -f $tape weof 2
Xmt -f /dev/rmt0 rew
X
SHAR_EOF
if test 348 -ne "`wc -c < 'write_tape.sh'`"
then
echo shar: error transmitting "'write_tape.sh'" '(should have been
348 characters)'
fi
chmod +x 'write_tape.sh'
fi # end of overwriting check
# End of shell archive
exit 0