[net.sources.bugs] trw - Tape program which handles ANSI standard and IBM labeled tapes

david@ukma.UUCP (David Herron, NPR Lover) (05/18/85)

Sorry about this folks ... I missed a file when I made up the archive.
Well, here it is:

---------------------> Cut somewhere around this vicinity <-------------


/*  This file contains the tables needed to convert from:
	
	ASCII - IBM
	IBM - ASCII
	ASCII - EBCDIC
	EBCDIC - ASCII
*/
/*
**  Document the source of these tables.
*/


char	a_ibm[] =
{
	0000,0001,0002,0003,0067,0055,0056,0057,0026,0005,
	0045,0013,0014,0015,0016,0017,0020,0021,0022,0023,
	0074,0075,0062,0046,0030,0031,0077,0047,0034,0035,
	0036,0037,0100,0132,0177,0173,0133,0154,0120,0175,
	0115,0135,0134,0116,0153,0140,0113,0141,0360,0361,
	0362,0363,0364,0365,0366,0367,0370,0371,0172,0136,
	0114,0176,0156,0157,0174,0301,0302,0303,0304,0305,
	0306,0307,0310,0311,0321,0322,0323,0324,0325,0326,
	0327,0330,0331,0342,0343,0344,0345,0346,0347,0350,
	0351,0255,0340,0275,0137,0155,0171,0201,0202,0203,
	0204,0205,0206,0207,0210,0211,0221,0222,0223,0224,
	0225,0226,0227,0230,0231,0242,0243,0244,0245,0246,
	0247,0250,0251,0300,0152,0320,0241,0007,0040,0041,
	0042,0043,0044,0025,0006,0027,0050,0051,0052,0053,
	0054,0011,0012,0033,0060,0061,0032,0063,0064,0065,
	0066,0010,0070,0071,0072,0073,0004,0024,0076,0341,
	0101,0102,0103,0104,0105,0106,0107,0110,0111,0121,
	0122,0123,0124,0125,0126,0127,0130,0131,0142,0143,
	0144,0145,0146,0147,0150,0151,0160,0161,0162,0163,
	0164,0165,0166,0167,0170,0200,0212,0213,0214,0215,
	0216,0217,0220,0232,0233,0234,0235,0236,0237,0240,
	0252,0253,0254,0112,0256,0257,0260,0261,0262,0263,
	0264,0265,0266,0267,0270,0271,0272,0273,0274,0117,
	0276,0277,0312,0313,0314,0315,0316,0317,0332,0333,
	0334,0335,0336,0337,0352,0353,0354,0355,0356,0357,
	0372,0373,0374,0375,0376,0377 
};




char	ibm_a[] = {
	0000,0001,0002,0003,0234,0011,0206,0177,0227,0215,
	0216,0013,0014,0015,0016,0017,0020,0021,0022,0023,
	0235,0205,0010,0207,0030,0031,0222,0217,0034,0035,
	0036,0037,0200,0201,0202,0203,0204,0012,0027,0033,
	0210,0211,0212,0213,0214,0005,0006,0007,0220,0221,
	0026,0223,0224,0225,0226,0004,0230,0231,0232,0233,
	0024,0025,0236,0032,0040,0240,0241,0242,0243,0244,
	0245,0246,0247,0250,0325,0056,0074,0050,0053,0345,
	0046,0251,0252,0253,0254,0255,0256,0257,0260,0261,
	0041,0044,0052,0051,0073,0136,0055,0057,0262,0263,
	0264,0265,0266,0267,0270,0271,0174,0054,0045,0137,
	0076,0077,0272,0273,0274,0275,0276,0277,0300,0301,
	0302,0140,0072,0043,0100,0047,0075,0042,0303,0141,
	0142,0143,0144,0145,0146,0147,0150,0151,0304,0305,
	0306,0307,0310,0311,0312,0152,0153,0154,0155,0156,
	0157,0160,0161,0162,0313,0314,0315,0316,0317,0320,
	0321,0176,0163,0164,0165,0166,0167,0170,0171,0172,
	0322,0323,0324,0133,0326,0327,0330,0331,0332,0333,
	0334,0335,0336,0337,0340,0341,0342,0343,0344,0135,
	0346,0347,0173,0101,0102,0103,0104,0105,0106,0107,
	0110,0111,0350,0351,0352,0353,0354,0355,0175,0112,
	0113,0114,0115,0116,0117,0120,0121,0122,0356,0357,
	0360,0361,0362,0363,0134,0237,0123,0124,0125,0126,
	0127,0130,0131,0132,0364,0365,0366,0367,0370,0371,
	0060,0061,0062,0063,0064,0065,0066,0067,0070,0071,
	0372,0373,0374,0375,0376,0377 
};




char	a_ebc[] = {
	0000,0001,0002,0003,0067,0055,0056,0057,0026,0005,
	0045,0013,0014,0015,0016,0017,0020,0021,0022,0023,
	0074,0075,0062,0046,0030,0031,0077,0047,0034,0035,
	0036,0037,0100,0117,0177,0173,0133,0154,0120,0175,
	0115,0135,0134,0116,0153,0140,0113,0141,0360,0361,
	0362,0363,0364,0365,0366,0367,0370,0371,0172,0136,
	0114,0176,0156,0157,0174,0301,0302,0303,0304,0305,
	0306,0307,0310,0311,0321,0322,0323,0324,0325,0326,
	0327,0330,0331,0342,0343,0344,0345,0346,0347,0350,
	0351,0112,0340,0132,0137,0155,0171,0201,0202,0203,
	0204,0205,0206,0207,0210,0211,0221,0222,0223,0224,
	0225,0226,0227,0230,0231,0242,0243,0244,0245,0246,
	0247,0250,0251,0300,0152,0320,0241,0007,0040,0041,
	0042,0043,0044,0025,0006,0027,0050,0051,0052,0053,
	0054,0011,0012,0033,0060,0061,0032,0063,0064,0065,
	0066,0010,0070,0071,0072,0073,0004,0024,0076,0341,
	0101,0102,0103,0104,0105,0106,0107,0110,0111,0121,
	0122,0123,0124,0125,0126,0127,0130,0131,0142,0143,
	0144,0145,0146,0147,0150,0151,0160,0161,0162,0163,
	0164,0165,0166,0167,0170,0200,0212,0213,0214,0215,
	0216,0217,0220,0232,0233,0234,0235,0236,0237,0240,
	0252,0253,0254,0255,0256,0257,0260,0261,0262,0263,
	0264,0265,0266,0267,0270,0271,0272,0273,0274,0275,
	0276,0277,0312,0313,0314,0315,0316,0317,0332,0333,
	0334,0335,0336,0337,0352,0353,0354,0355,0356,0357,
	0372,0373,0374,0375,0376,0377,
};

 
  

int	ebc_a[] = {
	0000,0001,0002,0003,0234,0011,0206,0177,0227,0215,
	0216,0013,0014,0015,0016,0017,0020,0021,0022,0023,
	0235,0205,0010,0207,0030,0031,0222,0217,0034,0035,
	0036,0037,0200,0201,0202,0203,0204,0012,0027,0033,
	0210,0211,0212,0213,0214,0005,0006,0007,0220,0221,
	0026,0223,0224,0225,0226,0004,0230,0231,0232,0233,
	0024,0025,0236,0032,0040,0240,0241,0242,0243,0244,
	0245,0246,0247,0250,0133,0056,0074,0050,0053,0041,
	0046,0251,0252,0253,0254,0255,0256,0257,0260,0261,
	0135,0044,0052,0051,0073,0136,0055,0057,0262,0263,
	0264,0265,0266,0267,0270,0271,0174,0054,0045,0137,
	0076,0077,0272,0273,0274,0275,0276,0277,0300,0301,
	0302,0140,0072,0043,0100,0047,0075,0042,0303,0141,
	0142,0143,0144,0145,0146,0147,0150,0151,0304,0305,
	0306,0307,0310,0311,0312,0152,0153,0154,0155,0156,
	0157,0160,0161,0162,0313,0314,0315,0316,0317,0320,
	0321,0176,0163,0164,0165,0166,0167,0170,0171,0172,
	0322,0323,0324,0325,0326,0327,0330,0331,0332,0333,
	0334,0335,0336,0337,0340,0341,0342,0343,0344,0345,
	0346,0347,0173,0101,0102,0103,0104,0105,0106,0107,
	0110,0111,0350,0351,0352,0353,0354,0355,0175,0112,
	0113,0114,0115,0116,0117,0120,0121,0122,0356,0357,
	0360,0361,0362,0363,0134,0237,0123,0124,0125,0126,
	0127,0130,0131,0132,0364,0365,0366,0367,0370,0371,
	0060,0061,0062,0063,0064,0065,0066,0067,0070,0071,
	0372,0373,0374,0375,0376,0377,
};
-- 
--- David Herron
--- ARPA-> ukma!david@ANL-MCS.ARPA or ukma!david<@ANL-MCS> 
---	   or david%ukma.uucp@anl-mcs.arpa
---        Or even anlams!ukma!david@ucbvax.arpa
--- UUCP-> {ucbvax,unmvax,boulder,oddjob}!anlams!ukma!david
---        {ihnp4,decvax,ucbvax}!cbosgd!ukma!david

	"It's *Super*User* to the rescue!"

david@ukma.UUCP (David Herron, NPR Lover) (05/18/85)

[Somebody please shoot me ... I deserve to die]

Also, the distribution was missing the manual page, trw.1
which follows:
------------> Again, somewhere near here is the place to cut <------------

.TH TRW 1
.SH NAME
trw \- Process ANSII or Standard Label tapes.
.SH SYNOPSIS
.B trw
option [parameters]
.SH DESCRIPTION
This program processes a single volume multi-file ANSI or IBM
standard label tape according to one of the user-specified
options listed below.
Trw fully supports 'F', 'FB', 'V', and 'VB' record formats.
When other record formats are encountered on an existing tape
(D, S, U), the records are simply copied as is.
.PP
Options:
.IP d
produces a directory listing of all tape file names and their
corresponding record formats; (Required parameters: "dev=",
"vol=", "tf=ansi" or "tf=stdl")
.IP r
reads user-specified tape files and writes them to the current
directory; (Required parameters: "dev=", "vol=", "tf=ansi" or
"tf=stdl")
.IP w
writes user-specified UNIX files to tape; (Required parameters:
"dev=", "vol=", "tf=ansi" or "tf=stdl", "fn=")
.PP
Parameters:
.IP blklen=
output tape file block length; if specified all tape files written
will have the same block length, otherwise the user will be
prompted. Default for 'F' and 'FB' is 80.
.IP dev=
tape device filename; (Required for all options)
.IP files=
the file numbers of the tape files to be read; Files may be 
individually listed, separated by commas as in 1,3,5 or
a range may be supplied, such as 3-5.  Any combination
of these forms may be used.  Default: all files.
Valid file numbers are from 1 to 32, inclusive.
.IP fn=
file names of UNIX files to be written to tape, specified
as a blank separated list; (Required by 'w' option)
If wild card characters are used, "fn=" must be followed
by at least one blank.
.IP keep=
option to keep the same file names when reading or writing;
(n/N or y/Y) Default: y.
.IP pad=
option to pad records with blanks up to specified record length
(n/N or y/Y) Default: n.
.IP recfm=
output tape file record format: 'F', 'FB', 'V', 'VB'.
If specified all files will have the same record format,
otherwise user will be prompted.
.IP reclen=
output tape file record length; If specified, all tape files
written will have the same record length, otherwise
the user will be prompted.  Default for 'F' and 'FB'
is 80.
.IP tf=ansi/stdl
tape format is ANSI Standard Label if ansi;
if stdl, tape format is IBM Standard Label.
(Required for all options)
.IP vol=
tape volume id; (Required for all options)
If an incorrect id is given, the error message
will return the correct one..
.SH SEE ALSO
mtio(4)
.SH AUTHORS
Karen Cross
.br
Rosemarie Maruskin
.br
University of Kentucky
.SH BUGS
'V' and 'VB' record formats have not been fully tested.
They have only been tested on files that were written
using
.B
trw.