|
|
1.1 ! root 1: ;***************************************************************************** ! 2: ; * ! 3: ; Generic.TBL * ! 4: ; * ! 5: ; Copyright (C) Microsoft Corporation 1990. * ! 6: ; All Rights reserved. * ! 7: ; * ! 8: ;***************************************************************************** ! 9: ; * ! 10: ; Module Description: Default character interpretation tables * ! 11: ; Used by W_SCAN, INDEX and FTENGINE runtime. * ! 12: ; These tables are built into a binary file for the undocumented * ! 13: ; 'longhorn' feature- custom table loading. * ! 14: ; * ! 15: ; SEE REL NOTES FOR MORE INFO. * ! 16: ; * ! 17: ;***************************************************************************** ! 18: TITLE RAWHIDE default character tables ! 19: ! 20: AE equ 255 ; anything that maps to 255 is treated as two chars: 'AE' ! 21: ; in the second stage lookup. ! 22: ;---------------------------------- ! 23: DIGIT equ 0 ! 24: TERM equ 1 ! 25: PERIOD equ 2 ! 26: NUKE equ 3 ! 27: NORM equ 4 ! 28: COMMA equ 5 ! 29: C_EOF equ 6 ! 30: ;---------------------------------- ! 31: ! 32: ! 33: _TEXT SEGMENT ! 34: ORG 0h ! 35: ;-------------------------------------------------------------------- ! 36: Header equ $ ! 37: dwMagic DW 70FDh ; Don't mess with any of the header values ! 38: dwMajor DW 0 ; or W_scan and Index will reject the file. ! 39: dwMinor DW 0 ; ! 40: dwReserved DW 0 ; ! 41: ;-------------------------------------------------------------------- ! 42: ; ! 43: aucNormTab DB 0, 1, 2, 3, 4, 5, 6, 7 ! 44: DB 8, 9, 10, 11, 12, 13, 14, 15 ! 45: DB 16, 17, 18, 19, 20, 21, 22, 23 ! 46: DB 24, 25, 26, 27, 28, 29, 30, 31 ! 47: DB ' ', '!', '"', '#', '$', '%', '&', "'" ! 48: DB '(', ')', '*', '+', ',', '-', '.', '/' ! 49: DB '0', '1', '2', '3', '4', '5', '6', '7' ! 50: DB '8', '9', ':', ';', '<', '=', '>', '?' ! 51: DB '@', 'A', 'B', 'C', 'D', 'E', 'F', 'G' ! 52: DB 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O' ! 53: DB 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' ! 54: DB 'X', 'Y', 'Z', '[', '\', ']', '^', '_' ! 55: DB '`', 'A', 'B', 'C', 'D', 'E', 'F', 'G' ! 56: DB 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O' ! 57: DB 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W' ! 58: DB 'X', 'Y', 'Z', '{', '|', '}', '~', '' ! 59: DB 128, 129, 130, 131, 132, 133, 134, 135 ! 60: DB 136, 137, 138, 139, 140, 141, 142, 143 ! 61: DB 144, 145, 146, 147, 148, 149, 150, 151 ! 62: DB 152, 153, 154, 155, 156, 157, 158, 159 ! 63: DB 160, 161, 'C', 'L', 'O', 'Y', '|', 167 ! 64: DB '"', 'C', 'A', 171, 172, '-', 'R', '-' ! 65: DB 'O', 177, '2', '3', "'", 'M', 'P', '.' ! 66: DB 184, '1', 'O', 187, 188, 189, 190, 191 ! 67: DB 'A', 'A', 'A', 'A', 'A', 'A', AE, 'C' ! 68: DB 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I' ! 69: DB 'D', 'N', 'O', 'O', 'O', 'O', 'O', 215 ! 70: DB '0', 'U', 'U', 'U', 'U', 'Y', 'P', 'B' ! 71: DB 'A', 'A', 'A', 'A', 'A', 'A', AE, 'C' ! 72: DB 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I' ! 73: DB 'O', 'N', 'O', 'O', 'O', 'O', 'O', 247 ! 74: DB '0', 'U', 'U', 'U', 'U', 'Y', 'B', 'Y' ! 75: ;------------------------------------------------------------------ ! 76: ! 77: aucCharTab EQU $ ! 78: ; 0 1 2 3 4 5 6 7 ! 79: DB TERM, TERM, TERM, TERM, TERM, TERM, TERM, TERM ! 80: ; 8 9 10 11 12 13 14 15 ! 81: DB TERM, TERM, TERM, TERM, TERM, TERM, TERM, TERM ! 82: ; 16-23 ! 83: DB TERM, TERM, TERM, TERM, TERM, TERM, TERM, TERM ! 84: ; TERM, /* 16 */ TERM, /* 17 */ TERM, /* 18 */ TERM, /* 19 */ ! 85: ; TERM, /* 20 */ TERM, /* 21 */ TERM, /* 22 */ TERM, /* 23 */ ! 86: ; TERM, /* 24 */ TERM, /* 25 */ TERM, /* 26 */ TERM, /* 27 */ ! 87: ; TERM, /* 28 */ TERM, /* 29 */ TERM, /* 30 */ TERM, /* 31 */ ! 88: ; 24-31 ! 89: DB TERM, TERM, TERM, TERM, TERM, TERM, TERM, TERM ! 90: ! 91: ; TERM, /* */ TERM, /* ! */ TERM, /* " */ TERM, /* # */ ! 92: DB TERM, TERM, TERM, TERM ! 93: ! 94: ; TERM, /* $ */ TERM, /* % */ TERM, /* & */ NUKE, /* ' */ ! 95: ; TERM, /* ( */ TERM, /* ) */ TERM, /* * */ TERM, /* + */ ! 96: DB TERM, TERM, TERM, NUKE, TERM, TERM, TERM, TERM ! 97: ! 98: ; COMMA,/* , */ TERM, /* - */ PERIOD, /* . */ TERM, /* / */ ! 99: ; DIGIT,/* #0 */ DIGIT, /* #1 */ DIGIT, /* #2 */ DIGIT, /* #3 */ ! 100: DB COMMA, TERM, PERIOD, TERM, DIGIT, DIGIT, DIGIT, DIGIT ! 101: ! 102: ; DIGIT,/* #4 */ DIGIT, /* #5 */ DIGIT, /* #6 */ DIGIT, /* #7 */ ! 103: ; DIGIT,/* #8 */ DIGIT, /* #9 */ TERM, /* : */ TERM, /* ; */ ! 104: DB DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, DIGIT, TERM, TERM ! 105: ! 106: ; TERM, /* < */ TERM, /* = */ TERM, /* > */ TERM, /* ? */ ! 107: ; TERM, /* @ */ NORM, /* A */ NORM, /* B */ NORM, /* C */ ! 108: DB TERM, TERM, TERM, TERM, TERM, NORM, NORM, NORM ! 109: ! 110: ; NORM, /* D */ NORM, /* E */ NORM, /* F */ NORM, /* G */ ! 111: ; NORM, /* H */ NORM, /* I */ NORM, /* J */ NORM, /* K */ ! 112: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 113: ! 114: ; NORM, /* L */ NORM, /* M */ NORM, /* N */ NORM, /* O */ ! 115: ; NORM, /* P */ NORM, /* Q */ NORM, /* R */ NORM, /* S */ ! 116: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 117: ! 118: ; NORM, /* T */ NORM, /* U */ NORM, /* V */ NORM, /* W */ ! 119: ; NORM, /* X */ NORM, /* Y */ NORM, /* Z */ TERM, /* [ */ ! 120: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, TERM ! 121: ! 122: ; TERM, /* \ */ TERM, /* ] */ TERM, /* ^ */ NORM, /* _ */ ! 123: ; TERM, /* ` */ NORM, /* a */ NORM, /* b */ NORM, /* c */ ! 124: DB TERM, TERM, TERM, NORM, TERM, NORM, NORM, NORM ! 125: ! 126: ; NORM, /* d */ NORM, /* e */ NORM, /* f */ NORM, /* g */ ! 127: ; NORM, /* h */ NORM, /* i */ NORM, /* j */ NORM, /* k */ ! 128: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 129: ! 130: ; NORM, /* l */ NORM, /* m */ NORM, /* n */ NORM, /* o */ ! 131: ; NORM, /* p */ NORM, /* q */ NORM, /* r */ NORM, /* s */ ! 132: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 133: ! 134: ; NORM, /* t */ NORM, /* u */ NORM, /* v */ NORM, /* w */ ! 135: ; NORM, /* x */ NORM, /* y */ NORM, /* z */ TERM, /* { */ ! 136: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, TERM ! 137: ! 138: ; TERM, /* | */ TERM, /* } */ TERM, /* ~ */ NORM, /* 127 */ ! 139: ; NORM, /* 128 */ NORM, /* 129 */ NORM, /* 130 */ NORM, /* 131 */ ! 140: DB TERM, TERM, TERM, NORM, NORM, NORM, NORM, NORM ! 141: ! 142: ; NORM, /* 132 */ NORM, /* 133 */ NORM, /* 134 */ NORM, /* 135 */ ! 143: ; NORM, /* 136 */ NORM, /* 137 */ NORM, /* 138 */ NORM, /* 139 */ ! 144: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 145: ! 146: ; NORM, /* 140 */ NORM, /* 141 */ NORM, /* 142 */ NORM, /* 143 */ ! 147: ; NORM, /* 144 */ NORM, /* 145 */ NORM, /* 146 */ NORM, /* 147 */ ! 148: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 149: ! 150: ; NORM, /* 148 */ NORM, /* 149 */ NORM, /* 150 */ NORM, /* 151 */ ! 151: ; NORM, /* 152 */ NORM, /* 153 */ NORM, /* 154 */ NORM, /* 155 */ ! 152: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 153: ! 154: ; NORM, /* 156 */ NORM, /* 157 */ NORM, /* 158 */ NORM, /* 159 */ ! 155: ; NORM, /* 160 */ NORM, /* 161 */ NORM, /* 162 */ NORM, /* 163 */ ! 156: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 157: ! 158: ; NORM, /* 164 */ NORM, /* 165 */ NORM, /* 166 */ NORM, /* 167 */ ! 159: ; NORM, /* 168 */ NORM, /* 169 */ NORM, /* 170 */ NORM, /* 171 */ ! 160: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 161: ! 162: ; NORM, /* 172 */ NORM, /* 173 */ NORM, /* 174 */ NORM, /* 175 */ ! 163: ; NORM, /* 176 */ NORM, /* 177 */ NORM, /* 178 */ NORM, /* 179 */ ! 164: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 165: ! 166: ; NORM, /* 180 */ NORM, /* 181 */ NORM, /* 182 */ NORM, /* 183 */ ! 167: ; NORM, /* 184 */ NORM, /* 185 */ NORM, /* 186 */ NORM, /* 187 */ ! 168: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 169: ! 170: ; NORM, /* 188 */ NORM, /* 189 */ NORM, /* 190 */ NORM, /* 191 */ ! 171: ; NORM, /* 192 */ NORM, /* 193 */ NORM, /* 194 */ NORM, /* 195 */ ! 172: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 173: ! 174: ; NORM, /* 196 */ NORM, /* 197 */ NORM, /* 198 */ NORM, /* 199 */ ! 175: ; NORM, /* 200 */ NORM, /* 201 */ NORM, /* 202 */ NORM, /* 203 */ ! 176: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 177: ! 178: ; NORM, /* 204 */ NORM, /* 205 */ NORM, /* 206 */ NORM, /* 207 */ ! 179: ; NORM, /* 208 */ NORM, /* 209 */ NORM, /* 210 */ NORM, /* 211 */ ! 180: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 181: ! 182: ; NORM, /* 212 */ NORM, /* 213 */ NORM, /* 214 */ NORM, /* 215 */ ! 183: ; NORM, /* 216 */ NORM, /* 217 */ NORM, /* 218 */ NORM, /* 219 */ ! 184: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 185: ! 186: ; NORM, /* 220 */ NORM, /* 221 */ NORM, /* 222 */ NORM, /* 223 */ ! 187: ; NORM, /* 224 */ NORM, /* 225 */ NORM, /* 226 */ NORM, /* 227 */ ! 188: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 189: ! 190: ; NORM, /* 228 */ NORM, /* 229 */ NORM, /* 230 */ NORM, /* 231 */ ! 191: ; NORM, /* 232 */ NORM, /* 233 */ NORM, /* 234 */ NORM, /* 235 */ ! 192: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 193: ! 194: ; NORM, /* 236 */ NORM, /* 237 */ NORM, /* 238 */ NORM, /* 239 */ ! 195: ; NORM, /* 240 */ NORM, /* 241 */ NORM, /* 242 */ NORM, /* 243 */ ! 196: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 197: ! 198: ; NORM, /* 244 */ NORM, /* 245 */ NORM, /* 246 */ NORM, /* 247 */ ! 199: ; NORM, /* 248 */ NORM, /* 249 */ NORM, /* 250 */ NORM, /* 251 */ ! 200: DB NORM, NORM, NORM, NORM, NORM, NORM, NORM, NORM ! 201: ! 202: ; NORM, /* 252 */ NORM, /* 253 */ NORM, /* 254 */ NORM, /* 255 */ ! 203: DB NORM, NORM, NORM, NORM ! 204: ;************************************************************************ ! 205: aucConvertClass equ $ ! 206: ; ! 207: ; ! 208: ;char aucConvertClass[NUM_STATES][NUM_CLASSES] = { ! 209: ; ! 210: ;// Characters in certain contexts have different classifications. ! 211: ;// Classification is a two step process. After initial classification ! 212: ;// using the table above, the table below is used to determine if the character's ! 213: ;// initial classification should be changed after considering the type of ! 214: ;// the word the character is found in. (Word types [numeric, numeric with ! 215: ;// a decimal place, and mixed alphanumeric] are also referred to as ! 216: ;// 'states'. ! 217: ;// ! 218: ;// EG: char in parse is '.', using aucCharTab, it is classed as PERIOD, If ! 219: ;// char is the first in the word (no word type set yet) the character is ! 220: ;// dropped, because the aucConvertClass table said to NUKE it. (!jjm) ! 221: ;// If the period were found in a "Numeric" word with numbers only and no decimal had ! 222: ;// yet occured it remains as a "PERIOD" (state switching is not table driven- this is ! 223: ;// done by program logic. ! 224: ;// ! 225: ;// Word Type /<----- Initial Character Classification ----->\ ! 226: ;// | | || DIGIT, TERM, PERIOD, NUKE, NORM, COMMA, C_EOF ! 227: ;// V V || V V V V V V V ! 228: ;//--------------------------------------------------------------------- ! 229: ;/* -None- || */ DIGIT, NUKE, NUKE, NUKE, NORM, NUKE, C_EOF, ! 230: ;/* Numeric || */ DIGIT, TERM, PERIOD, TERM, NORM, COMMA, C_EOF, ! 231: ;/* Numeric+Decimal || */ DIGIT, TERM, TERM, TERM, NORM, TERM, C_EOF, ! 232: ;/* AlphaNumeric || */ DIGIT, TERM, TERM, NUKE, NORM, TERM, C_EOF, ! 233: ;}; ! 234: DB DIGIT, NUKE, NUKE, NUKE, NORM, NUKE, C_EOF ! 235: DB DIGIT, TERM, PERIOD, TERM, NORM, COMMA, C_EOF ! 236: DB DIGIT, TERM, TERM, TERM, NORM, TERM, C_EOF ! 237: DB DIGIT, TERM, TERM, NUKE, NORM, TERM, C_EOF ! 238: ;------------------------------------------------------------------------- ! 239: endofTables equ $ ! 240: ;************************************************************************* ! 241: %OUT ......Header Check... ! 242: .ERRE aucNormTab - Header EQ 8 ! 243: %OUT ! 244: ! 245: %OUT ......Character Replacement Table (aucNormTab) Check... ! 246: .ERRE aucCharTab - aucNormTab EQ 256 ! 247: %OUT ! 248: ! 249: %OUT ......Character Classification Table (aucCharTab) Check... ! 250: .ERRE aucConvertCLASS - aucCharTab EQ 256 ! 251: %OUT ! 252: ! 253: %OUT ......Character ReClassification Table (aucConvertClass) Check... ! 254: .ERRE endofTables - aucConvertClass EQ 28 ! 255: %OUT ! 256: ! 257: _TEXT ENDS ! 258: ! 259: end
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.