/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: April 21, 1992 12:40:51 pm PDT */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: XlAsciiImpl, module: XlAsciiImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [979983888,1315612870] XlAsciiImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef W8 *W8Pt; #define SOURCE(p, l) /* source p, l */ #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) static void NoName_Q660(); static void XlAsciiImpl_P0(); static word AsciiFromKeySym_P60(); static word KeySymFromAscii_P120(); static void Convert_P180(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\072\151\136\020\300\116\152\250\306\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\351\237\222\220\300\366\064\160\223\100\150\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\003\153\243\146\300\005\107\115\327\100\150\000\000"}; static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\072\360\036\365\300\334\030\146\334\100\150\000\000"}; static struct { word f0[8]; word f8; word f9; word f10; word f11; word f12; word f13; word f14; word f15[5]; } globalframe = { {0}, (word) Convert_P180, 0, (word) KeySymFromAscii_P120, 0, (word) AsciiFromKeySym_P60, 0, (word) XlAsciiImpl_P0, {0} }; static void NoName_Q660() { register ptr gf_c037 = (ptr) &globalframe; word var_c7300; (void) XR_DeclareGlobalFrame((word) "XlAsciiImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf_c037)+56) /* var_c7140 */ ); var_c7300 = (word) XR_ImportInterface((word) "KeyChars", (word) XR_GetTypeIndexS((word) (&string2)), 2); (* (( (ptr) gf_c037)+16)/* var_c7172 */ ) = var_c7300; (void) XR_ImportProcS(var_c7300, 67371265); (void) XR_ImportProcS(var_c7300, 67371009); var_c7300 = (word) XR_ImportInterface((word) "KeyMapping", (word) XR_GetTypeIndexS((word) (&string3)), 6); (* (( (ptr) gf_c037)+18)/* var_c7236 */ ) = var_c7300; (void) XR_ImportProcS(var_c7300, 67895555); var_c7300 = (word) XR_ImportInterface((word) "Xl", (word) XR_GetTypeIndexS((word) (&string4)), 218); (* (( (ptr) gf_c037)+17)/* var_c7204 */ ) = var_c7300; (void) XR_ImportProcS(var_c7300, 67401729); (void) XR_ImportProcS(var_c7300, 67401985); var_c7300 = (word) XR_ExportInterface((word) "XlAscii", (word) XR_GetTypeIndexS((word) (&string5)), 3); (* (( (ptr) gf_c037)+19)/* var_c7332 */ ) = var_c7300; (void) XR_ExportProcS(var_c7300, (word) (( (bPt) gf_c037)+32)/* var_c7044 */ , 269484036); (void) XR_ExportProcS(var_c7300, (word) (( (bPt) gf_c037)+48)/* var_c7108 */ , 67371265); (void) XR_ExportProcS(var_c7300, (word) (( (bPt) gf_c037)+40)/* var_c7076 */ , 67371521); } static void XlAsciiImpl_P0(formal_c012, formal_c011) word formal_c012; word formal_c011; { /* XlAsciiImpl: */ } static word AsciiFromKeySym_P60(keysym_v2856) word keysym_v2856; { register ptr gf_c7364 = (ptr) &globalframe; word char_v2900; /* AsciiFromKeySym: */ SOURCE(190, 150) SOURCE(190, 150) char_v2900 = 0; SOURCE(269, 38) { word pd6; pd6 = (* (( (ptr) (* (( (ptr) gf_c7364)+16)/* var_c7172 */ ))+4) ); char_v2900 = (word) ( *( (fPt) ((* (ptr) pd6 ))))(keysym_v2856, pd6); }; SOURCE(309, 31) if ((char_v2900 > 127)) { SOURCE(331, 9) char_v2900 = 0; }; SOURCE(190, 150) return(char_v2900); } static word KeySymFromAscii_P120(char_v2960) word char_v2960; { register ptr gf_c7396 = (ptr) &globalframe; word keysym_v3004; /* KeySymFromAscii: */ SOURCE(347, 112) SOURCE(421, 38) { word pd7; pd7 = (* (( (ptr) (* (( (ptr) gf_c7396)+16)/* var_c7172 */ ))+5) ); keysym_v3004 = (word) ( *( (fPt) ((* (ptr) pd7 ))))(char_v2960, pd7); }; SOURCE(347, 112) return(keysym_v3004); } static void Convert_P180(formal_c036, connection_v3064, keyCode_v3092, state_v3120, matchKeys_v3148) word formal_c036; word connection_v3064; word keyCode_v3092; word state_v3120; word matchKeys_v3148; { register ptr gf_c7428 = (ptr) &globalframe; word char_v3276; word keysym_v3304; word matched_v3332; word isModifier_v3360; word modmap_v3388; word mapping_v3416; /* Convert: */ SOURCE(465, 1798) SOURCE(465, 1798) char_v3276 = 0; SOURCE(465, 1798) keysym_v3304 = 0; SOURCE(465, 1798) matched_v3332 = 0; SOURCE(465, 1798) isModifier_v3360 = 0; SOURCE(710, 62) { word pd8; pd8 = (* (( (ptr) (* (( (ptr) gf_c7428)+17)/* var_c7204 */ ))+125) ); modmap_v3388 = (word) ( *( (fPt) ((* (ptr) pd8 ))))(connection_v3064, pd8); }; SOURCE(774, 63) { word pd9; pd9 = (* (( (ptr) (* (( (ptr) gf_c7428)+17)/* var_c7204 */ ))+124) ); mapping_v3416 = (word) ( *( (fPt) ((* (ptr) pd9 ))))(connection_v3064, pd9); }; SOURCE(839, 84) { register word m_v3460 = 0; lab_L100004: ; SOURCE(876, 47) { word limit10; if (((* (( (ptr) (( (W8Pt) (( (ptr) modmap_v3388)+1))+( limit10 = (* (ptr) modmap_v3388 ), BCK(0, limit10) )))+BCK(m_v3460, 8)) ) == keyCode_v3092)) { SOURCE(906, 17) isModifier_v3360 = 1; SOURCE(925, 4) goto lab_L100002; }; }; if ((m_v3460 >= 7)) { goto lab_L100001; }; m_v3460 = (m_v3460 + 1); goto lab_L100004; lab_L100001: ; lab_L100002: ; }; SOURCE(942, 1321) if ((0 != isModifier_v3360)) { SOURCE(964, 50) { word pd11; pd11 = (* (( (ptr) (* (( (ptr) gf_c7428)+18)/* var_c7236 */ ))+5) ); keysym_v3304 = (word) ( *( (fPt) ((* (ptr) pd11 ))))(mapping_v3416, keyCode_v3092, 0, pd11); }; SOURCE(1016, 30) char_v3276 = (word) AsciiFromKeySym_P60(keysym_v3304); } else { SOURCE(1055, 1216) { word ks0_v3504; word ks1_v3532; word ks2_v3560; word ks3_v3588; SOURCE(1057, 58) { word pd12; pd12 = (* (( (ptr) (* (( (ptr) gf_c7428)+18)/* var_c7236 */ ))+5) ); ks0_v3504 = (word) ( *( (fPt) ((* (ptr) pd12 ))))(mapping_v3416, keyCode_v3092, 0, pd12); }; SOURCE(1117, 58) { word pd13; pd13 = (* (( (ptr) (* (( (ptr) gf_c7428)+18)/* var_c7236 */ ))+5) ); ks1_v3532 = (word) ( *( (fPt) ((* (ptr) pd13 ))))(mapping_v3416, keyCode_v3092, 1, pd13); }; SOURCE(1177, 58) { word pd14; pd14 = (* (( (ptr) (* (( (ptr) gf_c7428)+18)/* var_c7236 */ ))+5) ); ks2_v3560 = (word) ( *( (fPt) ((* (ptr) pd14 ))))(mapping_v3416, keyCode_v3092, 2, pd14); }; SOURCE(1237, 58) { word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf_c7428)+18)/* var_c7236 */ ))+5) ); ks3_v3588 = (word) ( *( (fPt) ((* (ptr) pd15 ))))(mapping_v3416, keyCode_v3092, 3, pd15); }; SOURCE(1297, 136) { register word list_v3632; list_v3632 = matchKeys_v3148; lab_L100008: ; if ((list_v3632 != 0)) { } else { goto lab_L100005; }; SOURCE(1367, 66) { word var_c7268; var_c7268 = (* (ptr) list_v3632 ); if ((((var_c7268 == ks0_v3504) || (var_c7268 == ks1_v3532)) || (var_c7268 == ks2_v3560)) || (var_c7268 == ks3_v3588)) { SOURCE(1413, 20) matched_v3332 = (* (ptr) list_v3632 ); SOURCE(1435, 4) goto lab_L100006; }; }; list_v3632 = (* (( (ptr) list_v3632)+1) ); goto lab_L100008; lab_L100005: ; lab_L100006: ; }; if (((state_v3120 & 04) && (state_v3120 & 1))) { SOURCE(1519, 12) keysym_v3304 = ks3_v3588; SOURCE(1533, 80) if ((keysym_v3304 == 0)) { SOURCE(1561, 12) keysym_v3304 = ks1_v3532; SOURCE(1575, 38) if ((keysym_v3304 == 0)) { SOURCE(1601, 12) keysym_v3304 = ks0_v3504; }; }; SOURCE(1618, 27) char_v3276 = (word) AsciiFromKeySym_P60(ks1_v3532); SOURCE(1647, 26) if (((char_v3276 - 65) <= 25)) { char_v3276 = (char_v3276 - 64); } else { /* removed bogus assignment */ }; } else { if (state_v3120 & 04) { SOURCE(1697, 12) keysym_v3304 = ks2_v3560; SOURCE(1711, 38) if ((keysym_v3304 == 0)) { SOURCE(1737, 12) keysym_v3304 = ks0_v3504; }; SOURCE(1751, 27) char_v3276 = (word) AsciiFromKeySym_P60(ks0_v3504); SOURCE(1780, 26) if (((char_v3276 - 65) <= 25)) { char_v3276 = (char_v3276 - 64); } else { /* removed bogus assignment */ }; } else { if (state_v3120 & 1) { SOURCE(1828, 12) keysym_v3304 = ks1_v3532; SOURCE(1842, 148) if ((keysym_v3304 != 0)) { SOURCE(1869, 34) char_v3276 = (word) AsciiFromKeySym_P60(ks1_v3532); } else { SOURCE(1905, 27) char_v3276 = (word) AsciiFromKeySym_P60(ks0_v3504); SOURCE(1934, 24) if (((char_v3276 - 97) <= 25)) { char_v3276 = (char_v3276 - 32); } else { /* removed bogus assignment */ }; SOURCE(1960, 30) keysym_v3304 = (word) KeySymFromAscii_P120(char_v3276); }; } else { if (state_v3120 & 02) { SOURCE(2012, 107) { word char1_v3760; SOURCE(2014, 34) char1_v3760 = (word) AsciiFromKeySym_P60(ks0_v3504); SOURCE(2050, 25) if (((char1_v3760 - 97) <= 25)) { char_v3276 = (char1_v3760 - 32); } else { char_v3276 = char1_v3760; }; SOURCE(2077, 40) if ((char1_v3760 == char_v3276)) { keysym_v3304 = ks0_v3504; } else { keysym_v3304 = ks1_v3532; }; }; } else { SOURCE(2133, 135) { word char1_v3804; SOURCE(2135, 34) char1_v3804 = (word) AsciiFromKeySym_P60(ks0_v3504); SOURCE(2171, 12) keysym_v3304 = ks0_v3504; SOURCE(2185, 25) if (((char1_v3804 - 65) <= 25)) { char_v3276 = (char1_v3804 + 32); } else { char_v3276 = char1_v3804; }; SOURCE(2212, 51) if ((char_v3276 != char1_v3804)) { SOURCE(2233, 30) keysym_v3304 = (word) KeySymFromAscii_P120(char_v3276); }; }; }; }; }; }; }; }; /* removed tail goto */ (* (ptr) formal_c036 ) = char_v3276; (* (( (ptr) formal_c036)+1) ) = keysym_v3304; (* (( (ptr) formal_c036)+2) ) = matched_v3332; (* (( (ptr) formal_c036)+3) ) = isModifier_v3360; return; } /* file: XlAsciiImpl, module: XlAsciiImpl, compiled at: April 21, 1992 12:40:51 pm PDT */ extern void XR_install_XlAsciiImpl() { NoName_Q660(); } extern void XR_run_XlAsciiImpl() { XR_Start(&globalframe); }