.hd fixp "file translation and parity set program" 01/13/83 fixp [-z] [-mu | -ml] [-cl | -cd] [-u] [ []] .ds The Prime operating system adopts a convention whereby every ASCII character has the most significant of eight bits (the so-called "parity" bit) always set "on". This can lead to some difficulties when dumping a tape from another system since not all systems use the eighth bit in this manner. .sp 'Fixp' is a translation program designed to transform foreign files to SWT and Primos compatible text files. It has some other interesting capabilities, discussed below. It is written in PMA to utilize the cpu's character instructions and thus operates very quickly. By default, 'fixp' always sets the parity bits of every character to "on". .sp The "-z" option causes all null characters, except those used for padding at the end of a string, to be deleted. This option does not cause ASCII nulls (octal '200) to be deleted if they are present in the input, it simply deletes total null (octal 0) characters from the text stream. This option can be used when stripping padding from 'se' temporary files during recovery operations, for instance. .sp The "-mu" and "-ml" options map the output into upper (mu) or lower (ml) case. This operation is at least an order of magnitude faster than 'tlit' and thus may be useful by itself. .sp The "-cl" and "-cd" options are for files which have carriage return characters in them. The "-cd" option simply drops any carriage returns. The "-cl" option turns all carriage returns into linefeed/eol characters. .sp The "-u" option strips all control characters from the output except for linefeed/eol characters. Thus, 'fixp' may be used as a filter for removing all but visible characters from a text stream. .sp By default, 'fixp' creates a standard compressed-ASCII file. If the "-u" option is given then the output is NOT compressed but contains the actual blanks that would normally be compressed out. It should be noted that such files can take up many times more disk space than the equivalent compressed files, and thus this option should be used carefully. .sp If no output file is given 'fixp' sends output to STDOUT. If no input file is given then 'fixp' takes input from STDIN. .sp If no options are given, defaults are no case mapping, include all carriage returns unchanged, include all control characters unchanged, and leave all padding zeros in place (except that parity bits get turned on so they become ASCII nulls). .es from_tape> fixp -mu -cl >text fixp //spaf/foo //dan/bar_none .me .in +5 .ti -5 "Usage: fixp ..." for invalid argument syntax. .ti -5 ": Cannot open" for files that cannot be opened. .ti -5 "Error in fixp" when an error condition other than EOF occurs with the input. .in -5 .bu The non-compression of blanks with the "-u" option might be considered a bug. .sp The program code is self-modifying and should not be put in protected or shared memory regions without modification. .sp Due to the behavior of 'readf', when 'fixp' takes input from the terminal there is no way to trigger the EOF condition and thus the program will never end! Large scale buffering is used so you may not immediately observe any output, either. .sp 'Fixp' cannot reverse its actions, it can't turn the parity bits back off. .sp Locally supported. .sa mt (1), tlit (1)