File RePackager - The Backstory Data on the mainframe are encoded using EBCDIC. Data from almost everywhere is are coded in ASCII or Unicode. As an example, if you press the letter "a" on your keyboard, ASCII machines will convert the "a" into this string of binary ones and zeros: 0110 0001. But to the mainframe, this pattern means "/" (a slash). On the mainframe the letter "a" is represented by this string of binary ones and zeros: 1000 0001. The reasons for this confusion are historical. Suffice it to say these differences are a fact of life. These assignments of characters to bit patterns are called "encodings" or "codepages". What's more, it's not just EBCDIC, ASCII, and Unicode: there are many EBCDIC codepages, over a dozen ASCII codepages, and three Unicode codepages. For example, the Arabic EBCDIC codepage has a spot for ج whereas there is no need for such a character in, say, a European codepage. To process data on your mainframe that comes from non-mainframe sources, you need to convert data from one encoding (an ASCII codepage, say) to EBCDIC (furthermore, the specific EBCDIC codepage you use on your mainframe). To prepare data on your mainframe for use on a non-mainframe platform, you need to translate the data from the EBCDIC codepage you are using to the correct codepage for the system where you are sending the data. Even communicating between mainframes, you may need to convert from one EBCDIC codepage to another EBCDIC codepage! There are various solutions to the codepage problem available. You can code a COBOL, PL/I, C, or Assembler program to do codepage conversions. You can write programs that call various system services. If you work under the z/OS UNIX shell you can use the iconv command. But our File RePackager utility program simplifies this: run the utility as simple batch job, and tell it the codepage of the input and the desired codepage of the output, and the utility will automatically copy the input to the output location such that the output will have its data encoded using the new codepage. But wait, there's more. On the mainframe, data is normally organized into records. Each record reflects the information about one item in your file. For example, in a personnel file, each record would represent one employee. Records are structured in one of two ways: 1) fixed length records (every record is the same size) or 2) variable length records (each record may be of a different size, depending on the needs; to tell the system what this length is, each record is stored with a prefix that contains the length). Sometimes you may have to change from the fixed format to the variable length format (or go from variable to fixed. You could write a program to do this, or you could run File RePackager. Tell the utility the desired length of the output records and if you want them fixed length or variable length and File RePackager will copy the input data, reformat and resize the records, and write them to the output location as desired. (Note: if the output is longer than the input, you can specify a fill character to use in the extra space; if the output is shorter than the input, you can control if data should be truncated or if the run should be stopped.) But wait: there's more. Records on UNIX, Linux, and Windows systems use a different structuring technique. On these systems, files are said to have a binary structure or a text structure. Binary records are just strings of bytes; for example, an image or sound sample. Text records are strings of only characters (bit patterns that represent text characters) and record delimiters. So a record runs from its starting location until its delimiter; the next record has its starting location after the previous record's delimiter. Text records, then, are variable length, but not in the sense of variable length records on the mainframe. There is no length prefix, just a record delimiter. But wait: there's more. Record delimiters can vary! Some systems use a bit pattern called a Carriage Return (CR) to delimit records, others use a Line Feed (LF) pattern, and some use a combination, either CRLF or LFCR. The File RePackager utilty program can deal with this. Once you have your file on the mainframe, File RePacakger can remove record delimiters (you simply tell the utility what to look for); it can then convert the codepage; it can then write the result into a fixed length or a variable length record for processing on your mainframe. The process can be reversed when sending data to a UNIX, Linux, or Windows system. ------------------------------------ This powerful utility program may also be used to help you move applications from non-mainframe platforms to the mainframe (converting all the data used). It can also help you move applications from the mainframe to a non-mainframe platform (converting the mainframe files to files useable on the target system). ------------------------------------- File RePackager is sold on a timed site license basis: you can use one copy on all the mainframes at the site of your choosing, for the duration of the license. The price is a One Time Charge (OTC) that includes support for the duration of the license. It is not dependent on the number of mainframes you have at the site, nor how powerful they are, nor how much you run the utility. A single, simple, affordable number. We offer 1-, 2-, 3-, 4-, and 5-year licenses. If you would like to "try before you buy", we also have a 30-day Free trial license. Our website contains more information about this first version of File RePackager, and how we see the next two versions evolving. As later versions become available, you can upgrade to them. As a reward for your early use of the program, purchasers of 1- or 2-year licenses get a free upgrade to Version 2 when it becomes available. Purchasers of 3-, 4-, or 5-year liceneses will get free upgrades to Version 2 and Version 3 as they become available. When you order File RePackager, we build a copy that includes your unique license id. You can pay us by a check, electronic funds transfer, or via PayPal. On clearing of your payment we send you the utility as a 1.2MB file. Installing is easy, and support is available from day one! The supporting documentation is already available on this website.