[comp.sources.wanted] need EBCDIC to ASCII function

lalonde@einstein.misemi ( iccad) (10/04/89)

Sorry; this isn't too deep.

I need a C function that converts a given EBCDIC character
to it's ASCII equiv. If you have such a routine would
you please share it with me.

Thanks,
-- 
======================
Terry Lalonde
Usenet:  ...!uunet!mitel!lalonde
======================

henry@utzoo.uucp (Henry Spencer) (10/05/89)

In article <1060@einstein.misemi> lalonde@.UUCP (Terry Lalonde - iccad) writes:
>I need a C function that converts a given EBCDIC character
>to it's ASCII equiv...

You will have to be more specific.  Which flavor of EBCDIC?  EBCDIC is
not a single well-defined character code, but a family of somewhat-similar
codes.  (Which is why the Unix `dd' command has two different conversions,
plus an entry in the BUGS section discussing this problem.)
-- 
Nature is blind; Man is merely |     Henry Spencer at U of Toronto Zoology
shortsighted (and improving).  | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

diamond@csl.sony.co.jp (Norman Diamond) (10/06/89)

In article <1989Oct4.203729.11700@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:

>You will have to be more specific.  Which flavor of EBCDIC?  EBCDIC is
>not a single well-defined character code, but a family of somewhat-similar
>codes.  (Which is why the Unix `dd' command has two different conversions,
>plus an entry in the BUGS section discussing this problem.)

For quite a while IBM pretended that ASCII was poorly defined too.
IBM played games with the parity bit in an effort to lock their
products out of a standard marketplace, though we all know that
they failed in this effort :-)

In fact EBCDIC is just as well-defined as ASCII.  Only some IBM print
trains did not use EBCDIC.  "dd" provides an alternative table so that
certain characters will print properly on those printers, but that
target code is not EBCDIC.  Also IBM terminals usually did not use
EBCDIC, so the operating system had to translate to and from the
device codes.

-- 
Norman Diamond, Sony Corp. (diamond%ws.sony.junet@uunet.uu.net seems to work)
  The above opinions are inherited by your machine's init process (pid 1),
  after being disowned and orphaned.  However, if you see this at Waterloo or
  Anterior, then their administrators must have approved of these opinions.

alanm@cognos.UUCP (Alan Myrvold) (10/07/89)

In article <1060@einstein.misemi> lalonde@.UUCP (Terry Lalonde - iccad) writes:
>I need a C function that converts a given EBCDIC character
>to it's ASCII equiv...

Based on the Unix 'dd conv=ascii' conversions :

int ebcdic2ascii[256] = {
      0,   1,   2,   3, 156,   9, 134, 127, 151, 141, 142,  11,
     12,  13,  14,  15,  16,  17,  18,  19, 157, 133,   8, 135,
     24,  25, 146, 143,  28,  29,  30,  31, 128, 129, 130, 131,
    132,  10,  23,  27, 136, 137, 138, 139, 140,   5,   6,   7,
    144, 145,  22, 147, 148, 149, 150,   4, 152, 153, 154, 155,
     20,  21, 158,  26,  32, 160, 161, 162, 163, 164, 165, 166,
    167, 168,  91,  46,  60,  40,  43,  33,  38, 169, 170, 171,
    172, 173, 174, 175, 176, 177,  93,  36,  42,  41,  59,  94,
     45,  47, 178, 179, 180, 181, 182, 183, 184, 185, 124,  44,
     37,  95,  62,  63, 186, 187, 188, 189, 190, 191, 192, 193,
    194,  96,  58,  35,  64,  39,  61,  34, 195,  97,  98,  99,
    100, 101, 102, 103, 104, 105, 196, 197, 198, 199, 200, 201,
    202, 106, 107, 108, 109, 110, 111, 112, 113, 114, 203, 204,
    205, 206, 207, 208, 209, 126, 115, 116, 117, 118, 119, 120,
    121, 122, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
    220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
    123,  65,  66,  67,  68,  69,  70,  71,  72,  73, 232, 233,
    234, 235, 236, 237, 125,  74,  75,  76,  77,  78,  79,  80,
     81,  82, 238, 239, 240, 241, 242, 243,  92, 159,  83,  84,
     85,  86,  87,  88,  89,  90, 244, 245, 246, 247, 248, 249,
     48,  49,  50,  51,  52,  53,  54,  55,  56,  57, 250, 251,
    252, 253, 254, 255 };


                                          - Alan

---
Men aren't pigs ... pigs are smarter
---
Alan Myrvold          3755 Riverside Dr.     uunet!mitel!sce!cognos!alanm
Cognos Incorporated   P.O. Box 9707          alanm@cognos.uucp
(613) 738-1440 x5530  Ottawa, Ontario       
                      CANADA  K1G 3Z4