*BSD News Article 2236


Return to BSD News archive

Newsgroups: comp.unix.bsd
Path: sserve!manuel!munnari.oz.au!mips!mips!zaphod.mps.ohio-state.edu!caen!umeecs!dip.eecs.umich.edu!dmuntz
From: dmuntz@dip.eecs.umich.edu (Daniel A Muntz)
Subject: Archive tape driver
Message-ID: <1992Jul22.014730.26569@zip.eecs.umich.edu>
Sender: news@zip.eecs.umich.edu (Mr. News)
Organization: University of Michigan EECS Dept., Ann Arbor, MI
Date: Wed, 22 Jul 1992 01:47:30 GMT
Lines: 320

The following is a first attempt at getting wt.c to drive an Archive
1/4" 60meg ct drive connected to an SC4xx (I have 400) qic36?? controller.
I'm doing this with a minimal amount of info about programming this controller,
so any information anyone might have would be appreciated.

Reading tapes seems to work fine with wt0 or rwt0, but writing only works
reliably with wt0.  Reading and writing are both intolerably slow (dma
is being done in 512-byte chunks and the drive takes a big pause at each
dma request).  The drive runs quickly (for 1/4" cartridge) under SCO, so great 
improvement should be possible.

*DON'T* install this in place of wt.c unless the only tape controller you want
to use is an Archive.  Later versions will be #ifdef'd, or probe to determine
drive type, but this version is hacked to only support the Archive controller.
Please send feedback to dmuntz@dip.eecs.umich.edu.


begin 666 wt.c.Z
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
8IAK^!%K78P@J.@IH@-T& @!,T:*F :P 
 
end