This is a short README file for the new version of 'tc' for A/UX 3.x.x.

This version of 'tc' adds some nice, new features, such as _true_
positioning to the End-Of-Medium, support for WangDAT, WangTEK and
HP DAT drives, more complete status information and tracing capability.
To fully utilize 'tc', a replacement copy of 'mt' is also provided, as
well as it's man page.

INCLUDED FILES
--------------

	tc :		The replacement version of 'tc' for A/UX 3.x.x
	mt :		The replacement version of 'mt' to support 'tc'
	mtio.h :	Replacement header file
	mt.1.Z : 	Man page for new 'mt'
	tc.7.Z :	Man page for new 'tc'
	README :	This file
	testdrive :	A modified version of Tony Cooper's 'testdrive'
			program for use with the new 'tc'
	tbb :		The double buffering program 'tbb'
	tbb.1.Z :	It's man page

TO INSTALL
----------

	First of all, make backup's of the ORIGINAL replaced files. This
	means mt.1.Z and tc.7.Z (in /usr/catman), /bin/mt, and
	/etc/install.d/boot.d/tc:

	$ cp /bin/mt /bin/Omt
	$ cp /etc/install.d/boot.d/tc /etc/install.d/boot.d/Otc

	Now copy 'mt' into /bin and 'tc' into /etc/install.d/boot.d

	** Now copy /unix to /Ounix... if for some reason you can't
	   reboot when new 'tc' is installed, copy Ounix to unix under
	   A/UX Startup and reboot **

	Once you've backed up these important files type:

	$ newconfig -v tc

	When 'newconfig' is done, reboot...

	To use 'tbb', place it somewhere in your PATH; /usr/local/bin
	is good.

TO UNINSTALL
------------

	If you want (or _need_) to uninstall new 'tc', restore your
	backup versions to their correct places (just 'mt' and 'tc').
	Now type:

	$ newconfig -v tc

	once again to configure with the old 'tc'... reboot when 'newconfig'
	is done. You don't really need to restore the original 'mt'
	since it works with A/UX's (original) 'tc' except for some
	enhanced commands (see mt.1.Z).

NOTES
-----
	'tc' is new. Please Email me with your comments and experiences
	with it.

	'testdrive' is included, which is a simple exerciser of the
	tape drive, 'tc' and 'mt'. Before running it, copy /FILES
	to /tmp (or edit 'testdrive' and pick your own big file).

	'mt' and 'tc' support an in-depth tracing capability, but it's
	turned off by default (due to the performance hit). If you are
	having troubles, before you E-mail me, turn on tracing ('mt traceon')
	and try again. The tracing will be written on the Console. You
	can then save the tracing ("cat /dev/oldmsgs > /tmp/trace")
	and E-mail that as well.

	If you are lucky enough to have EOM Tech manual for your tape
	drive, please E-mail me... This manual gives a lot of good info
	that I can include in the driver, making it a better driver and
	adding more capabilities.

	'tbb' is provided to speed up backups.

### NOTES for Golden version of 'tc' (version 3.34). ###

	o Added support for APS HyperDAT (Archive Python DDS-2) drive
	o Added M_SLOWRW which is a #define of (M_SLOWREAD | M_SLOWWRT)

### NOTES for Golden version of 'tc' (version 3.33). ###

	o Fixed bug in open() which could result in non-tape devices
	  being opened.
	o A/UX 3.1 uses different values for the HP-35480 and SONY SDT-4000
	  DATs than NEWtc. This has been fixed.
	o When 'tc' hit's EOT, report it once per read/write not once
	  per SCSI command.
	o Allow Mode Select on QICs now (some never had it done even
	  when needed).
	o Added lots of WangDAT DAT drives, including the 3100, 3200
	  and 3400 (DDS-2) drive.
	o Pure gingerbread: 'mt' now prints out a cute little graph
	  showing you where you are on the tape. The graph also shows
	  percentage of tape used and total tape space used.
	o 'mt' now asks about erase|format _before_ opening device.
	o 'testdrive' now times activity to give you some feel for
	  the throughput of your tape drive and system.

### NOTES for Golden version of 'tc' (version 3.32). ###

	o Added HP 35450 DAT drive
	o Use SCSI-2 'Read Position' command when needed (i.e. when
	  device doesn't really support 'Request Block Address')
	o mt: added 'fsb' and 'bsb' for completeness (same as 'fsr' and
	  'bsr', respectively).
	o mt: now uses 'getopt'
	o mt: now accepts "abbreviated" commands; you only need to
	  enter in enough characters to uniquely identify the command
	  ('rew' is accepted as a full command: rewind).
	o minor mod: changed some SCCS magic cookies... show last updated
	  time and date.
	o Although not "officially" supported, the Generic entry works
	  fine with the Tandberg 3600 QIC unit.

### NOTES for Golden version of 'tc' (version 3.31). ###

	o 'testdrive' now a ksh script
	o 'mt' now returns '4' if no tape is loaded
	o minor change for 'tc': no longer print error message
	  on console when attempting to open a non-existant
	  device

### NOTES for Golden version of 'tc' (version 3.30). ###

	o Added Tandberg TDC 3800
	o Now returns ENOTTY when a tape isn't loaded (instead
	  of EIO)... not an accurate choice but what the heck!
	o First operation under 3.x.x doesn't result in I/O
	  error anymore... this was due, I think, to A/UX pulsing
	  the Bus Reset line on boot-up and this event was
	  held by the tape drive and then reported as soon
	  as possible (i.e. at first tape access)
	o Now only send ModeSelect when needed or when it's
	  OK to do so (i.e. at BOT). Some QICs barf when ModeSelect
	  is sent while not at BOT even when no parameters are
	  changed :( This will fix things for some QICs.
	o 'mt' knows that ENOTTY means "no tape loaded" and
	  reports same.
	o 'testdrive' now uses 'cpio' instead of 'tar'

### NOTES for Golden version of 'tc' (version 3.27). ###

	o Added WangTEK 5150ES-QIC
	o better support for WangTEK 6130s
	o Supports Exabyte 8205 and 8505 mechanism (not fully tested)
	o 'tbb' now provided in package

### NOTES for Golden version of 'tc' (version 3.26). ###

	o Added TEAC 45S (60MB) unit (should drive unsupported TEACs as well)
	o 'offline' works "better" for QIC drives
	o substantial internal clean up... all functions now
	  prefixed by 'tc_'
	o better support for WangDAT 2600
	o better support for WangTEK 6130s

### NOTES for Golden version of 'tc' (version 3.25). ###

	o Better support for Exa8500.
	o Different output format for 'mt status' info.

### NOTES for Golden version of 'tc' (version 3.24). ###

	o Added support for other SONY DAT units (such as SDT-1020).
	o It's baaaaaaccckkkkkk... I've decided to reinclude the
	  variable block length I/O hack, since there were a few people
	  who _needed_ it. As before, it's a _real_ performance dog!

### NOTES for Golden version of 'tc' (version 3.23). ###

	o Add support for "fast" skip-by-file capability for those
	  tape drives that keep track of spaced filemarks. Effects
	  the 'mt' 'fsf', 'bsf', and 'eod' commands resulting in
	  faster performance and less "wear and tear" on the drive
	  and tape when performing multiple spacing (like 'mt fsf 10').
	o Better support for TEAC N50 (150MB Teac)... It now is no
	  longer lumped in with the F50 (600MB version) and, unfortunately,
	  no longer is forced via Mode Select (since this caused problems
	  with some N50s) to "expected" operation modes (The unit's
	  "power on" defaults are correct and it would be tough for
	  them to be changed since most of them can't change). However,
	  those systems that had trouble with reading and writing
	  shouldn't have them anymore. Also, 'prewind' works now
	  and the tape is "locked" while open as 'tc' does with
	  most DATs.
	o Made note of the fact in 'mt's man-page that not all drives
	  support all 'mt' commands... For example, the Teacs don't
	  support 'bsf' or 'bsr' (and have a hard time with 'eod').
	  Also, 'retension' on some DATs, although they don't return
	  an error, don't really retension...
	o 'testdrive' changed a bit... now it performs the 'fsf'
	  test before 'eod'. Also lets you know when a test
	  failure means something...

### NOTES for Golden version of 'tc' (version 3.22). ###

	o There is no version 3.22... Needless to say, this is most
	  probably the best version :)

### NOTES for Golden version of 'tc' (version 3.21). ###

	o Minor bug fix to 'mt': it refused to show status information
	  if the tape was write protected (in fact, the open failed
	  with a Read Only File System errno). 'mt' now 3.21.
	o Bug fix for 'tc': if the drive allows for Prevention of
	  Media Removal, wait until the drive is completely opened
	  (this showed itself with the 'mt' bug; the open "failed"
	  and left the tape locked. Doing a 'mt rewind' fixed it
	  and allowed the tape to be removed).
	o Make 'tc' a little more "quiet" when working with Generic
	  tape drives whose block size != 1024bytes ('tc' would
	  print out a console message each time the drive was opened).

### NOTES for Golden version of 'tc' (version 3.20). ###

	o The persistant problems with the 8200s have now been fixed!
	o Better support of HP DATs... should work now on all Macs
	  running A/UX (there was 1 reported problem with a HP unit
	  on a Q700).
	o The SONY SDT-4000/2000 DAT drives are now officially supported.
	o 'tc' will now coerce drives into operational modes that
	  it wants, expects and needs (it does this with a Mode Select).
	o Noteworthy retries are always reported, even if tracing is
	  disabled.
	o 'mt' now reports Mode Sense data.
	o On units that allow it, 'tc' will not allow media to be
	  removed until the file refering to the drive is closed. This
	  will help prevent accidental removal of tapes while the drive
	  is "open".
	o 'mt' is now upgraded to version 3.20. Enhancements included
	  reporting of more status info (the Mode Sense data), verification
	  of 'erase' and 'format' and use of 'unsigned' numbers when needed
	  (on units with large capacity, the number of blocks rolled over
	  to "become" negative).
	o The "variable block length mode" hack has been removed. I'll
	  wait until the SCSI Manager _really_ supports this before
	  'tc' tries to :) The hack was _really_ ugly and never really
	  worked the way it should have...

### NOTES for Golden version of 'tc' (version 3.12). ###

	o Hopefully, this fixes the "bug" that version 3.11 was
	  supposed to fix. The bug was that 'tc' didn't request enuff
	  sense data to get the LBOT flag (the 8200 report EOT and
	  LBOT when a tape is at the beginning of tape). Since
	  this flag was never returned, 'tc' just though that the
	  tape was always at EOT.
	o There is still some troubles with older versions of
	  the 8200s... It looks like some kind of disconnect
	  problem but I'm not real sure right now.
	o Minor upgrade to 'mt' (to 3.02).

### NOTES for Golden version of 'tc' (version 3.11). ###

	o Minor bugfix for more complete support of Exabyte 8200
	  (older versions were inaccurate about when the 8200 was
	  _really_ at the EOT)

### NOTES for Golden version of 'tc' (version 3.10). ###

	o 'tc' can now read/write "variable" block sizes. As with
	  blocking to the tape drive's physical blocksize, this is
	  included only to help read/write tapes that will be used
	  on other platforms. This mode is a _real_ performance
	  dog, since variable block lengths are emulated by
	  changing the physical block size of the tape to 1byte
	  (A/UX's SCSI Manager doesn't support true variable block
	  lengths). See tc.7.Z for more info.
	o Various (minor) bug fixes, mainly with Teac 150 support.
	o Timeout time for offloading increased to include possible
	  rewind time.
	o 'mt' minor update (to 3.01) to support updated 'tc'.

### NOTES for Golden version of 'tc' (version 3.00). ###

	o 'mt' has been fixed... it didn't correctly report
	  the "Generic" tape drive as such (it called it
	  "Unknown").
	o In 'mt', 'eom' has been changed to 'eod'
	o Tracing has been changed... errors are always printed
	  out. This makes much more sense as well as giving the
	  user _some_ idea of what happened to 'tc'
	o During RESET or during Unit Attention, 'tc' will perform
	  retries instead of just assuming EIO... (unless the
	  sensecode is that the media's changed).
	o Tape drives report different numbers for Request Block
	  Address... some have block 0 at BOT, others start with block
	  1. Also, most (all?) report the _next_ block in response
	  to Req. Blck. Addr. not the current block (which is what
	  'tc' wants). This has been worked around... Still, 'mt'
	  may report 1 as the physical block number at BOT for
	  some untested drives. If so, please let me know and
	  I can change this (which is arguably a picky point).
	  (I know that Archives and WangDATs report the next
	  block number and start at 0, so they should be Okay...
	  I'm not so sure about the WangTEK or HP units... from
	  what I have, it appears that they're the same but I
	  haven't incorporated that into 'tc' yet.
	o Well, I've bitten the bullet. 'tc' can now read or write
	  at the tape drive's own physical block size and not
	  require 8k blocking. Doing so, which requires fiddling
	  some minor device number bits and using mknod (see tc.7.Z),
	  results in a big performance hit and isn't really
	  recommended. Unless you really, _really_, REALLY need to
	  do so, stay with the 8k blocking.

### NOTES for Beta version of 'tc' (version 2.00b4). ###

	o READ CAPACITY removed for all except DC2000 tape drives
	  (There is no real generic way to determine the tape capacity
	  for tape drives... 'tc' will just keep on going until it
	  hits the physical EOT).
	o ERASE command enabled for _all_ tape drives
	o You can select (using 'mt') what kind of tracing you
	  want. For example, you can configure 'tc' to just trace
	  retries and errors.
	o The "Generic" tape drive now uses MODE SENSEd block size
	  values for it's physical block size. All others depend
	  on what's hardwired into 'tc' (this _may_ change...)
	o If the MODE SENSEd physical block size != the hardwired
	  size in 'tc' for the tape, 'mt' reports this (but 'tc'
	  doesn't do anything about it except for the Generic entry).
	o Write protected tapes are reported as such by 'mt'.
	o If the tape is at the _real_ physical, EOT, this will be
	  reported as such by 'mt'


### NOTES for Beta version of 'tc' (version 2.00b2). ###

	o Addition of ERASE, for WangTEK 5525 (and possible others)
	o 'tc' will now attempt a READ CAPACITY to determine the
	  maximum capacity of the drive and the physical block size
	  (a _bunch_ of drives don't support this, however... *sigh*)
	o 'tc' will now attempt a REQUEST BLOCK ADDRESS to determine
	  the "real" block number on the tape. This is then adjusted
	  to "update" the logical block number (using 8k blocks).
	o When spacing by files (or whenever 'tc' loses track of the
	  current logical block number) and REQ BLOCK ADDRESS fails,
	  'mt' will report the logical block number as "unknown + ...".
	  This is due to the fact that spacing by files (on most tape
	  drives) is a SCSI SPACE request. That is, you don't space
	  by blocks (and are thus able to keep track of the blk number).
	  This routine is called whenever the tape is opened, positioned
	  or status-queried. It's not called as the tape is being written
	  or read since there's really no need.
	o HP DAT drives are reported as such by 'mt'
	o Physical block size of HP DAT adjusted to 1k (was 512b)
	  which may _not_ be correct (I've gotten conflicting
	  values).
	o "Generic" tape drives are reported as such.
	o "Generic" tape drives look more like DAT/8mm tape drives
	  than Teacs to 'tc'
	o At the _real_ end of tape, ENOSPC is returned instead of
	  ENXIO during writes (this makes more sense).
	o Possible support of CIPHER drives.

-- 
    Jim Jagielski               | "It is not I who am crazy...
    jim@jagubox.gsfc.nasa.gov   |  it is I who am MAD!"
    NASA/GSFC, Code 734.4       |
    Greenbelt, MD 20771         |            - Ren

