1: #define BYTE 8 2: #define PAIR(A,B) (A|(B<<BYTE)) 3: int chtab [] = { 4: /* printable special characters */ 5: PAIR('q','o'), 0042, /* " */ 6: PAIR('s','h'), 0043, /* # */ 7: PAIR('d','o'), 0044, /* $ */ 8: PAIR('a','a'), 0047, /* ' */ 9: PAIR('f','m'), 0047, /* ' */ 10: PAIR('p','r'), 0047, /* ' */ 11: PAIR('t','s'), 0200, /* null- terminal sigma not avail. */ 12: PAIR('s','t'), 0052, /* * */ 13: PAIR('*','*'), 0052, /*math * */ 14: PAIR('p','l'), 0053, /* + */ 15: PAIR('e','q'), 0075, /* = */ 16: PAIR('m','i'), 0055, /* - */ 17: PAIR('h','y'), 0055, /* hyphen */ 18: PAIR('s','l'), 0057, /* / */ 19: PAIR('a','t'), 0100, /* @ */ 20: PAIR('b','a'), 0207, /* \ */ 21: PAIR('u','l'), 0137, /* _ */ 22: PAIR('r','u'), 0137, /* rule */ 23: PAIR('a','c'), 0140, /* ` */ 24: PAIR('g','a'), 0140, /* ` */ 25: PAIR('b','b'), 0174, /* | */ 26: PAIR('t','l'), 0176, /* ~ */ 27: /* nonprinting ascii characters */ 28: PAIR('d','l'), 0177, /* delete */ 29: PAIR('n','u'), 0200, /* null */ 30: PAIR('b','s'), 0201, /* back space */ 31: PAIR('h','t'), 0202, /* horizontal tab */ 32: PAIR('f','l'), 0203, /* linefeed */ 33: PAIR('f','f'), 0204, /* formfeed */ 34: PAIR('c','r'), 0205, /* carriage return */ 35: PAIR('e','s'), 0206, /* esc */ 36: /* sanders control sequences */ 37: PAIR('#','a'), 0212, /* select font */ 38: PAIR('#','s'), 0213, /* repeat character */ 39: PAIR('#','x'), 0214, /* insert sequence of characters */ 40: PAIR('#','y'), 0215, /* insert space */ 41: PAIR('#','U'), 0216, /* half-line feed */ 42: PAIR('#','F'), 0217, /* negative line feed */ 43: PAIR('#','D'), 0220, /* negative line feed */ 44: PAIR('#','n'), 0221, /* select format */ 45: PAIR('#','e'), 0222, /* set line length */ 46: PAIR('#','f'), 0223, /* set left margin */ 47: PAIR('#','g'), 0224, /* set indentation */ 48: PAIR('#','i'), 0226, /* set form length */ 49: PAIR('#','t'), 0227, /* toggle draft mode */ 50: /* greek: */ 51: PAIR('*','a'), 0230, /*alpha*/ 52: PAIR('*','b'), 0231, /*beta*/ 53: PAIR('*','g'), 0232, /*gamma*/ 54: PAIR('*','d'), 0233, /*delta*/ 55: PAIR('*','e'), 0234, /*epsilon*/ 56: PAIR('*','z'), 0235, /*zeta*/ 57: PAIR('*','y'), 0236, /*eta*/ 58: PAIR('*','h'), 0237, /*theta*/ 59: PAIR('*','i'), 0240, /*iota*/ 60: PAIR('*','k'), 0241, /*kappa*/ 61: PAIR('*','l'), 0242, /*lambda*/ 62: PAIR('*','m'), 0243, /*mu*/ 63: PAIR('*','n'), 0244, /*nu*/ 64: PAIR('*','c'), 0245, /*xi*/ 65: PAIR('*','o'), 0246, /*omicron*/ 66: PAIR('*','p'), 0247, /*pi*/ 67: PAIR('*','r'), 0250, /*rho*/ 68: PAIR('*','s'), 0251, /*sigma*/ 69: PAIR('*','t'), 0252, /*tau*/ 70: PAIR('*','u'), 0253, /*upsilon*/ 71: PAIR('*','f'), 0254, /*phi*/ 72: PAIR('*','x'), 0255, /*chi*/ 73: PAIR('*','q'), 0256, /*psi*/ 74: PAIR('*','w'), 0257, /*omega*/ 75: PAIR('*','A'), 0260, /*Alpha*/ 76: PAIR('*','B'), 0261, /*Beta*/ 77: PAIR('*','G'), 0262, /*Gamma*/ 78: PAIR('*','D'), 0263, /*Delta*/ 79: PAIR('*','E'), 0264, /*Epsilon*/ 80: PAIR('*','Z'), 0265, /*Zeta*/ 81: PAIR('*','Y'), 0266, /*Eta*/ 82: PAIR('*','H'), 0267, /*Theta*/ 83: PAIR('*','I'), 0270, /*Iota*/ 84: PAIR('*','K'), 0271, /*Kappa*/ 85: PAIR('*','L'), 0272, /*Lambda*/ 86: PAIR('*','M'), 0273, /*Mu*/ 87: PAIR('*','N'), 0274, /*Nu*/ 88: PAIR('*','C'), 0275, /*Xi*/ 89: PAIR('*','O'), 0276, /*Omicron*/ 90: PAIR('*','P'), 0277, /*Pi*/ 91: PAIR('*','R'), 0300, /*Rho*/ 92: PAIR('*','S'), 0301, /*Sigma*/ 93: PAIR('*','T'), 0302, /*Tau*/ 94: PAIR('*','U'), 0303, /*Upsilon*/ 95: PAIR('*','F'), 0304, /*Phi*/ 96: PAIR('*','X'), 0305, /*Chi*/ 97: PAIR('*','Q'), 0306, /*Psi*/ 98: PAIR('*','W'), 0307, /*Omega*/ 99: PAIR('s','r'), 0310, /*square root*/ 100: PAIR('r','n'), 0311, /*root en*/ 101: PAIR('>','='), 0312, /*>=*/ 102: PAIR('<','='), 0313, /*<=*/ 103: PAIR('=','='), 0314, /*identically equal*/ 104: PAIR('~','='), 0315, /*approx =*/ 105: PAIR('a','p'), 0316, /*approximates*/ 106: PAIR('!','='), 0317, /*not equal*/ 107: PAIR('-','>'), 0320, /*right arrow*/ 108: PAIR('<','-'), 0321, /*left arrow*/ 109: PAIR('u','a'), 0322, /*up arrow*/ 110: PAIR('d','a'), 0323, /*down arrow*/ 111: PAIR('m','u'), 0324, /*multiply*/ 112: PAIR('d','i'), 0325, /*divide*/ 113: PAIR('+','-'), 0326, /*plus-minus*/ 114: PAIR('c','u'), 0327, /*cup (union)*/ 115: PAIR('c','a'), 0330, /*cap (intersection)*/ 116: PAIR('s','b'), 0331, /*subset of*/ 117: PAIR('s','p'), 0332, /*superset of*/ 118: PAIR('i','b'), 0333, /*improper subset*/ 119: PAIR('i','p'), 0334, /* " superset*/ 120: PAIR('i','f'), 0335, /*infinity*/ 121: PAIR('p','d'), 0336, /*partial derivative*/ 122: PAIR('g','r'), 0337, /*gradient*/ 123: PAIR('p','t'), 0340, /*proportional to*/ 124: PAIR('b','r'), 0341, /*box vert rule*/ 125: PAIR('o','r'), 0342, /*or*/ 126: PAIR('c','i'), 0276, /*circle*/ 127: PAIR('b','u'), 0343, /* bullet */ 128: PAIR('s','q'), 0344, /* square */ 129: PAIR('d','e'), 0345, /* degree */ 130: PAIR('d','g'), 0346, /* dagger */ 131: PAIR('d','d'), 0371, /* dbl dagger */ 132: /* stan, various segments, see also bracket building */ 133: PAIR('u','r'), 0347, /* underrule */ 134: PAIR('e','m'), 0350, /* 3/4-em dash */ 135: /* bracket building characters, stan */ 136: PAIR('b','v'), 0351, /* vertical bar */ 137: PAIR('l','t'), 0352, /* left top curly */ 138: PAIR('l','b'), 0353, /* left bottom curly */ 139: PAIR('r','k'), 0354, /* right center curly */ 140: PAIR('l','c'), 0355, /* left ceiling */ 141: PAIR('l','f'), 0356, /* left floor */ 142: PAIR('r','f'), 0357, /* right floor */ 143: PAIR('r','t'), 0360, /* right top curly */ 144: PAIR('r','b'), 0361, /* right bottom curly */ 145: PAIR('r','c'), 0362, /* right ceiling */ 146: PAIR('l','k'), 0363, /* left center curly */ 147: PAIR('t','i'), 0364, /* top of integral */ 148: PAIR('b','i'), 0365, /* bottom of integral */ 149: PAIR('b','t'), 0366, /* bracket upper */ 150: PAIR('b','l'), 0367, /* bracket lower */ 151: PAIR('s','s'), 0370, /* shifted slash */ 152: PAIR('v','b'), 0372, /* solid single bar */ 153: 0,0};