Annotation of mstools/hlpindex/generic.tbl, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.