/* 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 <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> 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); }