150564Sbostic /*- 2*60660Sbostic * Copyright (c) 1991, 1993 3*60660Sbostic * The Regents of the University of California. All rights reserved. 450564Sbostic * 550564Sbostic * This code is derived from software contributed to Berkeley by 650588Sbostic * Keith Muller of the University of California, San Diego and Lance 750588Sbostic * Visser of Convex Computer Corporation. 850564Sbostic * 950564Sbostic * %sccs.include.redist.c% 1050564Sbostic */ 1150564Sbostic 1250564Sbostic #ifndef lint 13*60660Sbostic static char sccsid[] = "@(#)conv_tab.c 8.1 (Berkeley) 05/31/93"; 1450564Sbostic #endif /* not lint */ 1550564Sbostic 1650564Sbostic #include <sys/types.h> 1750564Sbostic 1850564Sbostic /* 1950564Sbostic * There are currently eight tables: 2050564Sbostic * 2150564Sbostic * lower-case -> upper-case conv=upper 2250564Sbostic * upper-case -> lower-case conv=lower 2350564Sbostic * 2450564Sbostic * ebcdic -> ascii 32V conv=oldascii 2550564Sbostic * ascii -> ebcdic 32V conv=oldebcdic 2650564Sbostic * ascii -> ibm ebcdic 32V conv=oldibm 2750564Sbostic * 2850564Sbostic * ebcdic -> ascii POSIX/S5 conv=ascii 2950564Sbostic * ascii -> ebcdic POSIX/S5 conv=ebcdic 3050564Sbostic * ascii -> ibm ebcdic POSIX/S5 conv=ibm 3150564Sbostic * 3250564Sbostic * Other tables are built from these if multiple conversions are being 3350564Sbostic * done. 3450564Sbostic * 3550564Sbostic * Tables used for conversions to/from IBM and EBCDIC to support an extension 3650564Sbostic * to POSIX P1003.2/D11. The tables referencing POSIX contain data extracted 3750564Sbostic * from tables 4-3 and 4-4 in P1003.2/Draft 11. The historic tables were 3850564Sbostic * constructed by running against a file with all possible byte values. 3950564Sbostic * 4050564Sbostic * More information can be obtained in "Correspondences of 8-Bit and Hollerith 4150564Sbostic * Codes for Computer Environments-A USASI Tutorial", Communications of the 4250564Sbostic * ACM, Volume 11, Number 11, November 1968, pp. 783-789. 4350564Sbostic */ 4450564Sbostic 4550564Sbostic /* Lower-case to upper-case */ 4650564Sbostic u_char l2u[] = { 4750564Sbostic 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007, /* 0000 */ 4850564Sbostic 0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 4950564Sbostic 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027, /* 0020 */ 5050564Sbostic 0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037, /* 0030 */ 5150564Sbostic 0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047, /* 0040 */ 5250564Sbostic 0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057, /* 0050 */ 5350564Sbostic 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067, /* 0060 */ 5450564Sbostic 0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077, /* 0070 */ 5550564Sbostic 0100, 0101, 0102, 0103, 0104, 0105, 0106, 0107, /* 0100 */ 5650564Sbostic 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, /* 0110 */ 5750564Sbostic 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0120 */ 5850564Sbostic 0130, 0131, 0132, 0133, 0134, 0135, 0136, 0137, /* 0130 */ 5950564Sbostic 0140, 0101, 0102, 0103, 0104, 0105, 0106, 0107, /* 0140 */ 6050564Sbostic 0110, 0111, 0112, 0113, 0114, 0115, 0116, 0117, /* 0150 */ 6150564Sbostic 0120, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0160 */ 6250564Sbostic 0130, 0131, 0132, 0173, 0174, 0175, 0176, 0177, /* 0170 */ 6350564Sbostic 0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0200 */ 6450564Sbostic 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217, /* 0210 */ 6550564Sbostic 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227, /* 0220 */ 6650564Sbostic 0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237, /* 0230 */ 6750564Sbostic 0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247, /* 0240 */ 6850564Sbostic 0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257, /* 0250 */ 6950564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0260 */ 7050564Sbostic 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277, /* 0270 */ 7150564Sbostic 0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0300 */ 7250564Sbostic 0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317, /* 0310 */ 7350564Sbostic 0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327, /* 0320 */ 7450564Sbostic 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337, /* 0330 */ 7550564Sbostic 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347, /* 0340 */ 7650564Sbostic 0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357, /* 0350 */ 7750564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0360 */ 7850564Sbostic 0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 7950564Sbostic }; 8050564Sbostic 8150564Sbostic /* Upper-case to lower-case */ 8250564Sbostic u_char u2l[] = { 8350564Sbostic 0000, 0001, 0002, 0003, 0004, 0005, 0006, 0007, /* 0000 */ 8450564Sbostic 0010, 0011, 0012, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 8550564Sbostic 0020, 0021, 0022, 0023, 0024, 0025, 0026, 0027, /* 0020 */ 8650564Sbostic 0030, 0031, 0032, 0033, 0034, 0035, 0036, 0037, /* 0030 */ 8750564Sbostic 0040, 0041, 0042, 0043, 0044, 0045, 0046, 0047, /* 0040 */ 8850564Sbostic 0050, 0051, 0052, 0053, 0054, 0055, 0056, 0057, /* 0050 */ 8950564Sbostic 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067, /* 0060 */ 9050564Sbostic 0070, 0071, 0072, 0073, 0074, 0075, 0076, 0077, /* 0070 */ 9150564Sbostic 0100, 0141, 0142, 0143, 0144, 0145, 0146, 0147, /* 0100 */ 9250564Sbostic 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, /* 0110 */ 9350564Sbostic 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, /* 0120 */ 9450564Sbostic 0170, 0171, 0172, 0133, 0134, 0135, 0136, 0137, /* 0130 */ 9550564Sbostic 0140, 0141, 0142, 0143, 0144, 0145, 0146, 0147, /* 0140 */ 9650564Sbostic 0150, 0151, 0152, 0153, 0154, 0155, 0156, 0157, /* 0150 */ 9750564Sbostic 0160, 0161, 0162, 0163, 0164, 0165, 0166, 0167, /* 0160 */ 9850564Sbostic 0170, 0171, 0172, 0173, 0174, 0175, 0176, 0177, /* 0170 */ 9950564Sbostic 0200, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0200 */ 10050564Sbostic 0210, 0211, 0212, 0213, 0214, 0215, 0216, 0217, /* 0210 */ 10150564Sbostic 0220, 0221, 0222, 0223, 0224, 0225, 0226, 0227, /* 0220 */ 10250564Sbostic 0230, 0231, 0232, 0233, 0234, 0235, 0236, 0237, /* 0230 */ 10350564Sbostic 0240, 0241, 0242, 0243, 0244, 0245, 0246, 0247, /* 0240 */ 10450564Sbostic 0250, 0251, 0252, 0253, 0254, 0255, 0256, 0257, /* 0250 */ 10550564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0260 */ 10650564Sbostic 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277, /* 0270 */ 10750564Sbostic 0300, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0300 */ 10850564Sbostic 0310, 0311, 0312, 0313, 0314, 0315, 0316, 0317, /* 0310 */ 10950564Sbostic 0320, 0321, 0322, 0323, 0324, 0325, 0326, 0327, /* 0320 */ 11050564Sbostic 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337, /* 0330 */ 11150564Sbostic 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347, /* 0340 */ 11250564Sbostic 0350, 0351, 0352, 0353, 0354, 0355, 0356, 0357, /* 0350 */ 11350564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0360 */ 11450564Sbostic 0370, 0371, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 11550564Sbostic }; 11650564Sbostic 11750564Sbostic /* EBCDIC to ASCII -- 32V compatible. */ 11850564Sbostic u_char e2a_32V[] = { 11950564Sbostic 0000, 0001, 0002, 0003, 0234, 0011, 0206, 0177, /* 0000 */ 12050564Sbostic 0227, 0215, 0216, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 12150564Sbostic 0020, 0021, 0022, 0023, 0235, 0205, 0010, 0207, /* 0020 */ 12250564Sbostic 0030, 0031, 0222, 0217, 0034, 0035, 0036, 0037, /* 0030 */ 12350564Sbostic 0200, 0201, 0202, 0203, 0204, 0012, 0027, 0033, /* 0040 */ 12450564Sbostic 0210, 0211, 0212, 0213, 0214, 0005, 0006, 0007, /* 0050 */ 12550564Sbostic 0220, 0221, 0026, 0223, 0224, 0225, 0226, 0004, /* 0060 */ 12650564Sbostic 0230, 0231, 0232, 0233, 0024, 0025, 0236, 0032, /* 0070 */ 12750564Sbostic 0040, 0240, 0241, 0242, 0243, 0244, 0245, 0246, /* 0100 */ 12850564Sbostic 0247, 0250, 0133, 0056, 0074, 0050, 0053, 0041, /* 0110 */ 12950564Sbostic 0046, 0251, 0252, 0253, 0254, 0255, 0256, 0257, /* 0120 */ 13050564Sbostic 0260, 0261, 0135, 0044, 0052, 0051, 0073, 0136, /* 0130 */ 13150564Sbostic 0055, 0057, 0262, 0263, 0264, 0265, 0266, 0267, /* 0140 */ 13250564Sbostic 0270, 0271, 0174, 0054, 0045, 0137, 0076, 0077, /* 0150 */ 13350564Sbostic 0272, 0273, 0274, 0275, 0276, 0277, 0300, 0301, /* 0160 */ 13450564Sbostic 0302, 0140, 0072, 0043, 0100, 0047, 0075, 0042, /* 0170 */ 13550564Sbostic 0303, 0141, 0142, 0143, 0144, 0145, 0146, 0147, /* 0200 */ 13650564Sbostic 0150, 0151, 0304, 0305, 0306, 0307, 0310, 0311, /* 0210 */ 13750564Sbostic 0312, 0152, 0153, 0154, 0155, 0156, 0157, 0160, /* 0220 */ 13850564Sbostic 0161, 0162, 0313, 0314, 0315, 0316, 0317, 0320, /* 0230 */ 13950564Sbostic 0321, 0176, 0163, 0164, 0165, 0166, 0167, 0170, /* 0240 */ 14050564Sbostic 0171, 0172, 0322, 0323, 0324, 0325, 0326, 0327, /* 0250 */ 14150564Sbostic 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337, /* 0260 */ 14250564Sbostic 0340, 0341, 0342, 0343, 0344, 0345, 0346, 0347, /* 0270 */ 14350564Sbostic 0173, 0101, 0102, 0103, 0104, 0105, 0106, 0107, /* 0300 */ 14450564Sbostic 0110, 0111, 0350, 0351, 0352, 0353, 0354, 0355, /* 0310 */ 14550564Sbostic 0175, 0112, 0113, 0114, 0115, 0116, 0117, 0120, /* 0320 */ 14650564Sbostic 0121, 0122, 0356, 0357, 0360, 0361, 0362, 0363, /* 0330 */ 14750564Sbostic 0134, 0237, 0123, 0124, 0125, 0126, 0127, 0130, /* 0340 */ 14850564Sbostic 0131, 0132, 0364, 0365, 0366, 0367, 0370, 0371, /* 0350 */ 14950564Sbostic 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067, /* 0360 */ 15050564Sbostic 0070, 0071, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 15150564Sbostic }; 15250564Sbostic 15350564Sbostic /* ASCII to EBCDIC -- 32V compatible. */ 15450564Sbostic u_char a2e_32V[] = { 15550564Sbostic 0000, 0001, 0002, 0003, 0067, 0055, 0056, 0057, /* 0000 */ 15650564Sbostic 0026, 0005, 0045, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 15750564Sbostic 0020, 0021, 0022, 0023, 0074, 0075, 0062, 0046, /* 0020 */ 15850564Sbostic 0030, 0031, 0077, 0047, 0034, 0035, 0036, 0037, /* 0030 */ 15950564Sbostic 0100, 0117, 0177, 0173, 0133, 0154, 0120, 0175, /* 0040 */ 16050564Sbostic 0115, 0135, 0134, 0116, 0153, 0140, 0113, 0141, /* 0050 */ 16150564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0060 */ 16250564Sbostic 0370, 0371, 0172, 0136, 0114, 0176, 0156, 0157, /* 0070 */ 16350564Sbostic 0174, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0100 */ 16450564Sbostic 0310, 0311, 0321, 0322, 0323, 0324, 0325, 0326, /* 0110 */ 16550564Sbostic 0327, 0330, 0331, 0342, 0343, 0344, 0345, 0346, /* 0120 */ 16650564Sbostic 0347, 0350, 0351, 0112, 0340, 0132, 0137, 0155, /* 0130 */ 16750564Sbostic 0171, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0140 */ 16850564Sbostic 0210, 0211, 0221, 0222, 0223, 0224, 0225, 0226, /* 0150 */ 16950564Sbostic 0227, 0230, 0231, 0242, 0243, 0244, 0245, 0246, /* 0160 */ 17050564Sbostic 0247, 0250, 0251, 0300, 0152, 0320, 0241, 0007, /* 0170 */ 17150564Sbostic 0040, 0041, 0042, 0043, 0044, 0025, 0006, 0027, /* 0200 */ 17250564Sbostic 0050, 0051, 0052, 0053, 0054, 0011, 0012, 0033, /* 0210 */ 17350564Sbostic 0060, 0061, 0032, 0063, 0064, 0065, 0066, 0010, /* 0220 */ 17450564Sbostic 0070, 0071, 0072, 0073, 0004, 0024, 0076, 0341, /* 0230 */ 17550564Sbostic 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, /* 0240 */ 17650564Sbostic 0111, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0250 */ 17750564Sbostic 0130, 0131, 0142, 0143, 0144, 0145, 0146, 0147, /* 0260 */ 17850564Sbostic 0150, 0151, 0160, 0161, 0162, 0163, 0164, 0165, /* 0270 */ 17950564Sbostic 0166, 0167, 0170, 0200, 0212, 0213, 0214, 0215, /* 0300 */ 18050564Sbostic 0216, 0217, 0220, 0232, 0233, 0234, 0235, 0236, /* 0310 */ 18150564Sbostic 0237, 0240, 0252, 0253, 0254, 0255, 0256, 0257, /* 0320 */ 18250564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0330 */ 18350564Sbostic 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277, /* 0340 */ 18450564Sbostic 0312, 0313, 0314, 0315, 0316, 0317, 0332, 0333, /* 0350 */ 18550564Sbostic 0334, 0335, 0336, 0337, 0352, 0353, 0354, 0355, /* 0360 */ 18650564Sbostic 0356, 0357, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 18750564Sbostic }; 18850564Sbostic 18950564Sbostic /* ASCII to IBM EBCDIC -- 32V compatible. */ 19050564Sbostic u_char a2ibm_32V[] = { 19150564Sbostic 0000, 0001, 0002, 0003, 0067, 0055, 0056, 0057, /* 0000 */ 19250564Sbostic 0026, 0005, 0045, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 19350564Sbostic 0020, 0021, 0022, 0023, 0074, 0075, 0062, 0046, /* 0020 */ 19450564Sbostic 0030, 0031, 0077, 0047, 0034, 0035, 0036, 0037, /* 0030 */ 19550564Sbostic 0100, 0132, 0177, 0173, 0133, 0154, 0120, 0175, /* 0040 */ 19650564Sbostic 0115, 0135, 0134, 0116, 0153, 0140, 0113, 0141, /* 0050 */ 19750564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0060 */ 19850564Sbostic 0370, 0371, 0172, 0136, 0114, 0176, 0156, 0157, /* 0070 */ 19950564Sbostic 0174, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0100 */ 20050564Sbostic 0310, 0311, 0321, 0322, 0323, 0324, 0325, 0326, /* 0110 */ 20150564Sbostic 0327, 0330, 0331, 0342, 0343, 0344, 0345, 0346, /* 0120 */ 20250564Sbostic 0347, 0350, 0351, 0255, 0340, 0275, 0137, 0155, /* 0130 */ 20350564Sbostic 0171, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0140 */ 20450564Sbostic 0210, 0211, 0221, 0222, 0223, 0224, 0225, 0226, /* 0150 */ 20550564Sbostic 0227, 0230, 0231, 0242, 0243, 0244, 0245, 0246, /* 0160 */ 20650564Sbostic 0247, 0250, 0251, 0300, 0117, 0320, 0241, 0007, /* 0170 */ 20750564Sbostic 0040, 0041, 0042, 0043, 0044, 0025, 0006, 0027, /* 0200 */ 20850564Sbostic 0050, 0051, 0052, 0053, 0054, 0011, 0012, 0033, /* 0210 */ 20950564Sbostic 0060, 0061, 0032, 0063, 0064, 0065, 0066, 0010, /* 0220 */ 21050564Sbostic 0070, 0071, 0072, 0073, 0004, 0024, 0076, 0341, /* 0230 */ 21150564Sbostic 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, /* 0240 */ 21250564Sbostic 0111, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0250 */ 21350564Sbostic 0130, 0131, 0142, 0143, 0144, 0145, 0146, 0147, /* 0260 */ 21450564Sbostic 0150, 0151, 0160, 0161, 0162, 0163, 0164, 0165, /* 0270 */ 21550564Sbostic 0166, 0167, 0170, 0200, 0212, 0213, 0214, 0215, /* 0300 */ 21650564Sbostic 0216, 0217, 0220, 0232, 0233, 0234, 0235, 0236, /* 0310 */ 21750564Sbostic 0237, 0240, 0252, 0253, 0254, 0255, 0256, 0257, /* 0320 */ 21850564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0330 */ 21950564Sbostic 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277, /* 0340 */ 22050564Sbostic 0312, 0313, 0314, 0315, 0316, 0317, 0332, 0333, /* 0350 */ 22150564Sbostic 0334, 0335, 0336, 0337, 0352, 0353, 0354, 0355, /* 0360 */ 22250564Sbostic 0356, 0357, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 22350564Sbostic }; 22450564Sbostic 22550564Sbostic /* EBCDIC to ASCII -- POSIX and System V compatible. */ 22650564Sbostic u_char e2a_POSIX[] = { 22750564Sbostic 0000, 0001, 0002, 0003, 0234, 0011, 0206, 0177, /* 0000 */ 22850564Sbostic 0227, 0215, 0216, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 22950564Sbostic 0020, 0021, 0022, 0023, 0235, 0205, 0010, 0207, /* 0020 */ 23050564Sbostic 0030, 0031, 0222, 0217, 0034, 0035, 0036, 0037, /* 0030 */ 23150564Sbostic 0200, 0201, 0202, 0203, 0204, 0012, 0027, 0033, /* 0040 */ 23250564Sbostic 0210, 0211, 0212, 0213, 0214, 0005, 0006, 0007, /* 0050 */ 23350564Sbostic 0220, 0221, 0026, 0223, 0224, 0225, 0226, 0004, /* 0060 */ 23450564Sbostic 0230, 0231, 0232, 0233, 0024, 0025, 0236, 0032, /* 0070 */ 23550564Sbostic 0040, 0240, 0241, 0242, 0243, 0244, 0245, 0246, /* 0100 */ 23650564Sbostic 0247, 0250, 0325, 0056, 0074, 0050, 0053, 0174, /* 0110 */ 23750564Sbostic 0046, 0251, 0252, 0253, 0254, 0255, 0256, 0257, /* 0120 */ 23850564Sbostic 0260, 0261, 0041, 0044, 0052, 0051, 0073, 0176, /* 0130 */ 23950564Sbostic 0055, 0057, 0262, 0263, 0264, 0265, 0266, 0267, /* 0140 */ 24050564Sbostic 0270, 0271, 0313, 0054, 0045, 0137, 0076, 0077, /* 0150 */ 24150564Sbostic 0272, 0273, 0274, 0275, 0276, 0277, 0300, 0301, /* 0160 */ 24250564Sbostic 0302, 0140, 0072, 0043, 0100, 0047, 0075, 0042, /* 0170 */ 24350564Sbostic 0303, 0141, 0142, 0143, 0144, 0145, 0146, 0147, /* 0200 */ 24450564Sbostic 0150, 0151, 0304, 0305, 0306, 0307, 0310, 0311, /* 0210 */ 24550564Sbostic 0312, 0152, 0153, 0154, 0155, 0156, 0157, 0160, /* 0220 */ 24650564Sbostic 0161, 0162, 0136, 0314, 0315, 0316, 0317, 0320, /* 0230 */ 24750564Sbostic 0321, 0345, 0163, 0164, 0165, 0166, 0167, 0170, /* 0240 */ 24850564Sbostic 0171, 0172, 0322, 0323, 0324, 0133, 0326, 0327, /* 0250 */ 24950564Sbostic 0330, 0331, 0332, 0333, 0334, 0335, 0336, 0337, /* 0260 */ 25050564Sbostic 0340, 0341, 0342, 0343, 0344, 0135, 0346, 0347, /* 0270 */ 25150564Sbostic 0173, 0101, 0102, 0103, 0104, 0105, 0106, 0107, /* 0300 */ 25250564Sbostic 0110, 0111, 0350, 0351, 0352, 0353, 0354, 0355, /* 0310 */ 25350564Sbostic 0175, 0112, 0113, 0114, 0115, 0116, 0117, 0120, /* 0320 */ 25450564Sbostic 0121, 0122, 0356, 0357, 0360, 0361, 0362, 0363, /* 0330 */ 25550564Sbostic 0134, 0237, 0123, 0124, 0125, 0126, 0127, 0130, /* 0340 */ 25650564Sbostic 0131, 0132, 0364, 0365, 0366, 0367, 0370, 0371, /* 0350 */ 25750564Sbostic 0060, 0061, 0062, 0063, 0064, 0065, 0066, 0067, /* 0360 */ 25850564Sbostic 0070, 0071, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 25950564Sbostic }; 26050564Sbostic 26150564Sbostic /* ASCII to EBCDIC -- POSIX and System V compatible. */ 26250564Sbostic u_char a2e_POSIX[] = { 26350564Sbostic 0000, 0001, 0002, 0003, 0067, 0055, 0056, 0057, /* 0000 */ 26450564Sbostic 0026, 0005, 0045, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 26550564Sbostic 0020, 0021, 0022, 0023, 0074, 0075, 0062, 0046, /* 0020 */ 26650564Sbostic 0030, 0031, 0077, 0047, 0034, 0035, 0036, 0037, /* 0030 */ 26750564Sbostic 0100, 0132, 0177, 0173, 0133, 0154, 0120, 0175, /* 0040 */ 26850564Sbostic 0115, 0135, 0134, 0116, 0153, 0140, 0113, 0141, /* 0050 */ 26950564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0060 */ 27050564Sbostic 0370, 0371, 0172, 0136, 0114, 0176, 0156, 0157, /* 0070 */ 27150564Sbostic 0174, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0100 */ 27250564Sbostic 0310, 0311, 0321, 0322, 0323, 0324, 0325, 0326, /* 0110 */ 27350564Sbostic 0327, 0330, 0331, 0342, 0343, 0344, 0345, 0346, /* 0120 */ 27450564Sbostic 0347, 0350, 0351, 0255, 0340, 0275, 0232, 0155, /* 0130 */ 27550564Sbostic 0171, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0140 */ 27650564Sbostic 0210, 0211, 0221, 0222, 0223, 0224, 0225, 0226, /* 0150 */ 27750564Sbostic 0227, 0230, 0231, 0242, 0243, 0244, 0245, 0246, /* 0160 */ 27850564Sbostic 0247, 0250, 0251, 0300, 0117, 0320, 0137, 0007, /* 0170 */ 27950564Sbostic 0040, 0041, 0042, 0043, 0044, 0025, 0006, 0027, /* 0200 */ 28050564Sbostic 0050, 0051, 0052, 0053, 0054, 0011, 0012, 0033, /* 0210 */ 28150564Sbostic 0060, 0061, 0032, 0063, 0064, 0065, 0066, 0010, /* 0220 */ 28250564Sbostic 0070, 0071, 0072, 0073, 0004, 0024, 0076, 0341, /* 0230 */ 28350564Sbostic 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, /* 0240 */ 28450564Sbostic 0111, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0250 */ 28550564Sbostic 0130, 0131, 0142, 0143, 0144, 0145, 0146, 0147, /* 0260 */ 28650564Sbostic 0150, 0151, 0160, 0161, 0162, 0163, 0164, 0165, /* 0270 */ 28750564Sbostic 0166, 0167, 0170, 0200, 0212, 0213, 0214, 0215, /* 0300 */ 28850564Sbostic 0216, 0217, 0220, 0152, 0233, 0234, 0235, 0236, /* 0310 */ 28950564Sbostic 0237, 0240, 0252, 0253, 0254, 0112, 0256, 0257, /* 0320 */ 29050564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0330 */ 29150564Sbostic 0270, 0271, 0272, 0273, 0274, 0241, 0276, 0277, /* 0340 */ 29250564Sbostic 0312, 0313, 0314, 0315, 0316, 0317, 0332, 0333, /* 0350 */ 29350564Sbostic 0334, 0335, 0336, 0337, 0352, 0353, 0354, 0355, /* 0360 */ 29450564Sbostic 0356, 0357, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 29550564Sbostic }; 29650564Sbostic 29750564Sbostic /* ASCII to IBM EBCDIC -- POSIX and System V compatible. */ 29850564Sbostic u_char a2ibm_POSIX[] = { 29950564Sbostic 0000, 0001, 0002, 0003, 0067, 0055, 0056, 0057, /* 0000 */ 30050564Sbostic 0026, 0005, 0045, 0013, 0014, 0015, 0016, 0017, /* 0010 */ 30150564Sbostic 0020, 0021, 0022, 0023, 0074, 0075, 0062, 0046, /* 0020 */ 30250564Sbostic 0030, 0031, 0077, 0047, 0034, 0035, 0036, 0037, /* 0030 */ 30350564Sbostic 0100, 0132, 0177, 0173, 0133, 0154, 0120, 0175, /* 0040 */ 30450564Sbostic 0115, 0135, 0134, 0116, 0153, 0140, 0113, 0141, /* 0050 */ 30550564Sbostic 0360, 0361, 0362, 0363, 0364, 0365, 0366, 0367, /* 0060 */ 30650564Sbostic 0370, 0371, 0172, 0136, 0114, 0176, 0156, 0157, /* 0070 */ 30750564Sbostic 0174, 0301, 0302, 0303, 0304, 0305, 0306, 0307, /* 0100 */ 30850564Sbostic 0310, 0311, 0321, 0322, 0323, 0324, 0325, 0326, /* 0110 */ 30950564Sbostic 0327, 0330, 0331, 0342, 0343, 0344, 0345, 0346, /* 0120 */ 31050641Sbostic 0347, 0350, 0351, 0255, 0340, 0275, 0137, 0155, /* 0130 */ 31150564Sbostic 0171, 0201, 0202, 0203, 0204, 0205, 0206, 0207, /* 0140 */ 31250564Sbostic 0210, 0211, 0221, 0222, 0223, 0224, 0225, 0226, /* 0150 */ 31350564Sbostic 0227, 0230, 0231, 0242, 0243, 0244, 0245, 0246, /* 0160 */ 31450641Sbostic 0247, 0250, 0251, 0300, 0117, 0320, 0241, 0007, /* 0170 */ 31550564Sbostic 0040, 0041, 0042, 0043, 0044, 0025, 0006, 0027, /* 0200 */ 31650564Sbostic 0050, 0051, 0052, 0053, 0054, 0011, 0012, 0033, /* 0210 */ 31750564Sbostic 0060, 0061, 0032, 0063, 0064, 0065, 0066, 0010, /* 0220 */ 31850564Sbostic 0070, 0071, 0072, 0073, 0004, 0024, 0076, 0341, /* 0230 */ 31950564Sbostic 0101, 0102, 0103, 0104, 0105, 0106, 0107, 0110, /* 0240 */ 32050564Sbostic 0111, 0121, 0122, 0123, 0124, 0125, 0126, 0127, /* 0250 */ 32150564Sbostic 0130, 0131, 0142, 0143, 0144, 0145, 0146, 0147, /* 0260 */ 32250564Sbostic 0150, 0151, 0160, 0161, 0162, 0163, 0164, 0165, /* 0270 */ 32350564Sbostic 0166, 0167, 0170, 0200, 0212, 0213, 0214, 0215, /* 0300 */ 32450641Sbostic 0216, 0217, 0220, 0232, 0233, 0234, 0235, 0236, /* 0310 */ 32550641Sbostic 0237, 0240, 0252, 0253, 0254, 0255, 0256, 0257, /* 0320 */ 32650564Sbostic 0260, 0261, 0262, 0263, 0264, 0265, 0266, 0267, /* 0330 */ 32750641Sbostic 0270, 0271, 0272, 0273, 0274, 0275, 0276, 0277, /* 0340 */ 32850564Sbostic 0312, 0313, 0314, 0315, 0316, 0317, 0332, 0333, /* 0350 */ 32950564Sbostic 0334, 0335, 0336, 0337, 0352, 0353, 0354, 0355, /* 0360 */ 33050564Sbostic 0356, 0357, 0372, 0373, 0374, 0375, 0376, 0377, /* 0370 */ 33150564Sbostic }; 332