Annotation of mstools/hlpindex/generic.tbl, revision 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.