/* 17-Jun-02 WVSnyder Add ¢ -> BCD_ALT = A-bit only */ /* 03-May-02 WVSnyder Add | -> BCD_RECMRK, } -> BCD_GRPMRK, ¤ -> BCD_SQUARE, ¬ -> BCD_TM */ /* ASCII to BCD conversion -- several ASCII characters may be mapped to a single BCD character. In particular, several characters are mapped for record marks, group marks, tape marks, and the lozenge character. */ const char ascii_to_bcd[256] = { /* 0000 - 0037: Control chars */ 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 052, 077, 013, 053, 034, 060, 032, /* 0040-0047: !"#$%&' */ 017, 074, 054, 037, 033, 040, 073, 021, /* 0050-0057: ()*+,-./ */ 012, 001, 002, 003, 004, 005, 006, 007, /* 0060-0067: 01234567 */ 010, 011, 015, 056, 076, 035, 016, 072, /* 0070-0077: 89:;<=>? */ 014, 061, 062, 063, 064, 065, 066, 067, /* 0100-0107: @ABCDEFG */ 070, 071, 041, 042, 043, 044, 045, 046, /* 0110-0117: HIJKLMNO */ 047, 050, 051, 022, 023, 024, 025, 026, /* 0120-0127: PQRSTUVW */ 027, 030, 031, 075, 036, 055, 020, 057, /* 0130-0137: XYZ[\]^_ */ 000, 061, 062, 063, 064, 065, 066, 067, /* 0140-0147: `abcdefg */ 070, 071, 041, 042, 043, 044, 045, 046, /* 0150-0157: hijklmno */ 047, 050, 051, 022, 023, 024, 025, 026, /* 0160-0167: pqrstuvw */ 027, 030, 031, 000, 032, 077, 000, 000, /* 0170-0177: xyz{|}~DEL */ /* 0200-0247: More control chars */ 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 000, 020, 000, 074, 000, 000, 000, /* 0240-0247: ¡¢£¤¥¦§ */ 000, 000, 000, 000, 017, 000, 000, 000, /* 0250-0257: ¨©ª«¬­®¯ */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0260-0267: °±²³´µ¶· */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0270-0277: ¸¹º»¼½¾¿ */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0300-0307: ÀÁÂÃÄÅÆÇ */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0310-0317: ÈÉÊËÌÍÎÏ */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0320-0327: ÐÑÒÓÔÕÖ× */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0330-0337: ØÙÚÛÜÝÞß */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0340-0347: àáâãäåæç */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0350-0357: èéêëìíîï */ 000, 000, 000, 000, 000, 000, 000, 000, /* 0360-0367: ðñòóôõö÷ */ 000, 000, 000, 000, 000, 000, 000, 000 /* 0370-0377: øùúûüýþÿ */ }; /* BCD to ASCII conversion - also the "full" print chain */ char bcd_to_ascii[64] = { ' ', '1', '2', '3', '4', '5', '6', '7', /* 000-007 */ '8', '9', '0', '#', '@', ':', '>', '(', /* 010-017 */ '^', '/', 'S', 'T', 'U', 'V', 'W', 'X', /* 020-027 */ 'Y', 'Z', '\'', ',', '%', '=', '\\', '+', /* 030-037 */ '-', 'J', 'K', 'L', 'M', 'N', 'O', 'P', /* 040-047 */ 'Q', 'R', '!', '$', '*', ']', ';', '_', /* 050-057 */ '&', 'A', 'B', 'C', 'D', 'E', 'F', 'G', /* 060-067 */ 'H', 'I', '?', '.', ')', '[', '<', '"' /* 070-077 */ };