ibmiso is a fast replacement for 2iso (c) 1995 by Patrick Hess.
It converts between IBM codepage 437 and ISO-8859-1 ASCII files
and corrects line terminations according to the conversion.
Its main advantages are:
* Fast. I tried it with "ZConnect3.1draft" (iso, 339k, 6816 lines)
on my A1k2 (030 @ 28 MHz, 2+8 MB) from disk cache to an existing
file on RAM:. 2iso needed 18 secs, ibmiso about 2.5 secs syn-
chronous (an older version) and 1.2 secs asynchronously.
I think this is a nice speed improvement, uh?
* Written in 100% plain C, runs on every available 680x0 processor.
Scheduled code (I hope I didn't hit a SAS/C scheduler bug) for
68040+. I tried to compile an 68020+ version, but the code was
exactly the same. It should also run on 68000 machines (not
tested).
* You can fine tune it to the DMA rates of your system by changing
the number of buffers to use. This can lead to much more speed
because asynchronous I/O depends on how good CPU and DMA speed
match together.
Buffers are quad-longword aligned to support 68040 DMA.
When increasing the number of buffers, remember: ibmiso allocates
roughly BUFFER*2048 bytes when converting to iso, and BUFFER*3072
bytes when converting to ibm.
* Reliability. I think I caught almost all possible error conditions.
However - packet I/O can lead to strange errors if eg. someone
removes a floppy disk while writing to it. This can result in
getting error codes from trackdisk.device. Don't worry---the
program should display the error and quit quite fine.
Template:
FROM/A,TO/A,ISO2IBM/S,BUF=BUFFER/K/N: ?
FROM/A : File to read data from
TO/A : File to write data to
ISO2IBM/S : Convert iso->ibm rather than ibm->iso
BUF=BUFFER/K/N : Number of 512 byte buffers
BUFFER/K/N defaults to 8.
ibmiso returns 0 (RETURN_OK) for success, 5 (RETURN_WARN) if it
was stopped by CTRL-C and 20 (RETURN_FAIL) in case of occurence of
an error.
Suggestions are always welcome.
Send bug-reports to Johnny Tevessen <j.tevessen@line.org>
|