home *** CD-ROM | disk | FTP | other *** search
- TapeFS 1.09
- ===========
-
- This is a filing system designed to drive a scsi Sequential access device - e.g.
- a cartridge tape drive. It has only been tested with the Acorn scsi interface,
- but I'm told that the Oak one is supposed to be compatible so this may work too.
- I'm not distributing source generally at the moment, but will look favorably on
- requests if you are having problems.
-
- This provides only the ability to get data onto and off the tape. It does
- not of itself give any means of backing up a disc. I have been successful in
- using archimedes tar in conjunction with it, and have exchanged data with
- other systems using DC600 tapes.
-
-
- Brief notes about TapeFS
-
- Please note that this software must be regarded as alpha test only, in that
- there is no checking on any of the configuration parameters, and silly values
- will almost certainly achieve silly results. A real product should probably
- not have so much config visible.
-
- TapeFS provides several commands, and one pseudo file, "tape:", that may be
- read or written. It only supports sequential access, but does allow multiple
- files to be stored after one another on a tape, separating them with
- filemarks. Your tape drive may restrict further precisely what is allowed.
-
- If it hasn't yet found or been told a drive number, TapeFS searches for a
- drive by looking for scsi devices that claim to be sequential access. When
- tape: is opened, it allocates a buffer from the RMA, and sends a MODE SELECT
- command to the drive to select fixed size 512 byte blocks, and the speed and
- density set in tapefs, which both default to 0, which should set the default
- or autoconfig values on the drive. During writing, if the early warning end
- of medium bit is set, and it still has a record of any sectors that the
- drive says didn't make it to tape, it prompts for a new tape to be inserted,
- otherwise returns an error. When tape: is closed, a filemark is written,
- which is taken as end of file when reading so multiple files can be saved
- one after another. If blank tape or end of medium is encountered while
- reading, you are prompted for another tape, but may press escape.
-
- Use with tar
-
- A typical command sequence might be
- DIR :4.$
- DIR :4.$
- tar cvf tape: *
- to back up the whole of drive 4. The repeated *DIR is to avoid a bug in tar
- caused by the previous and current directories being on different drives.
- Note that it is not sensible to specifiy a large buffer for tar, as tapefs
- uses its own internal buffer, with size set by *tapebuffer. To improve
- streaming, increase this, though it must be possible to make space for it in
- the RMA.
-
- TapeFS will not work with tar when tar tries to find out how much space
- there is by creating a file to fill it - it will just go on forever. Later
- tar versions will only do this if you specify multiple volume backups, which
- is not needed at all as TapeFS has its own scheme.
-
- Commands
-
- These are mostly explained by *help. Some drives may not support all of them.
- To find out what the speed and density settings mean to your drive, consult
- its documentation.
-
-
- Restrictions:
-
- 512 byte blocks
- Fixed block mode
- Timeout on EOM prompt is 497 days - will assume cancelled after then!!
-
- Hints:
-
- If tape: refuses to open, try using *tapeerror to find out why.
- Streaming will work much better with large files than small ones.
-
- Notes about ST/60
-
- The controller seems quite good - it disconnects and has enough buffer that
- the tape will quite happily stream reasonably if you are archiving medium to
- large files. Rewind commands ignore the immediate bit in the command block
- and don't return a result until complete. tapefs allows you to continue
- using your arc while this occurs, but will stall any further command.
- *tapeerror may be used to inspect the command result when it arrives, and
- may also come in handy with programs that don't pass errors through to the
- user. (tar) It seems necessary to use *wind before being able to append to
- the end of a tape. Just reading to the end isn't enough.
-
- Notes about Viper tape drives
-
- These appear to provoke a bug in SCSIDriver 1.01, (not in 1.05) when
- disconnect is enabled - they cause scsidriver to crash with address errors.
- I have been able to make scsidriver crash before while developing an amiga
- scsi target implementation. So the tapedisconnect command is provided to
- disable it for the tape drive, but this will unfortunately restrict the
- discs use of the bus while the tape is writing. Tapefs defaults to writing a
- maximum of 4K at one time, but a Viper seems to stutter sometimes while
- writing, so I allow this limit to be increased by the maxtransfer command.
- If disconnect is off, this will further reduce disc access to the bus,
- however.
-
- Version 1.00
-
- * Automatically finds a direct access (tape) scsi device to use when it is
- loaded. If you have more than one, you can select which device to use by the
- *tapedevice command
-
- * uses readahead and writebehind within a circular buffer. This defaults to
- 64K, and is claimed from the RMA when the tape: device is opened. use the
- *tapebuffer command to change the amount - too large will mean tape: refuses
- to open. Note a large buffer will not really be of benefit if your tape is
- faster than your disc, since then it only acts to even out flucuations, when
- the tape has to stop to wait, and the disc doesn't get far ahead. :-(
-
- * supports byte by byte access - *spool/ *dump etc.
-
- * supports multiple files on one tape.
-
- * now backgrounds during the operation of rewind, etc, so you can continue
- using system even if your tape drive doesn't support the immediate bit.
- (ST/60s don't) It will wait for the first command to complete if you start a
- second, though. Use *tapeerror to check result of the command if you want.
-
- Version 1.05
-
- * Now makes use of whole buffer with slow tape drives to lengthen runs.
-
- Version 1.06
-
- * Moved check/search for a device to when actually opened
- * Does a MODE SELECT to set block size because I suspect this may fix clever drives
-
- Version 1.07
-
- * Now prompts for a new tape at EOM, to give multi-tape archives.
- * Put check/search at open as well so can rewind before opening
- * Shrinks RMA when file is close and leaves space before
- large buffer as suggested by Owen.
- * Added speed/density commands.
- * Added tapedisconnect command for viper support.
-
- Version 1.08
-
- * added maxtransfer
-
- Version 1.09
-
- * errors make it out of open (generic fs change)
- * Changed to return result from find for atar support
-
- Distribution:
-
- This software may be freely redistributed, so long as only a reasonable
- copying or media charge is made, and all files I distribute are included. I
- retain copyright to the code. Commercial (including magazine) distribution,
- or distributing modified versions of this please contact me - I am normally
- happy for it to be reused in other free software, but like to avoid deviant
- versions of mine causing trouble.
-
- I am not asking for money, but if you like and use it I would be surprised
- and amazed by any contributions, and you will receive a disc with latest
- versions on. (>£2, say)
-
- Me:
-
- Brian.Brunswick@cl.cam.ac.uk
- +44 0223 334419
-
- Brian Brunswick
- Trinity College
- Cambridge
- CB2 1TQ
- UK
-
- Brian Brunswick
- Fairview
- Avenue des Hirondelles
- Pool-in-WharfeDale
- Leeds
- LS21 1EY
- UK
-