home *** CD-ROM | disk | FTP | other *** search
/ The Sleeping Beauty - A Multimedia Storybook / EBOOK_SB.bin / sb / sb.tbl < prev    next >
Text File  |  1991-05-01  |  12KB  |  252 lines

  1. ;*****************************************************************************
  2. ;                                                                            *
  3. ;  Generic.TBL   (tabs @ 3,5,7,etc).                                         *
  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 build into a binary file for the                          *
  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.  
  92. ; TERM, /*     */ TERM, /*  !  */ TERM, /* " */ TERM, /* # */
  93.                         DB   TERM,  TERM,  TERM,  TERM 
  94.  
  95. ; TERM, /*  $  */ TERM, /*  %  */ TERM, /* & */ NUKE, /* ' */
  96. ; TERM, /*  (  */ TERM, /*  )  */ TERM, /* * */ TERM, /* + */
  97.                         DB TERM,  TERM,  TERM,  NUKE,  TERM,  TERM,  TERM,  TERM
  98.  
  99. ; COMMA,/*  ,  */ TERM, /*  -  */ PERIOD, /* . */ TERM, /* / */
  100. ; DIGIT,/* #0 */ DIGIT, /* #1 */ DIGIT, /* #2 */ DIGIT, /* #3 */
  101.                         DB COMMA, TERM, PERIOD, TERM, DIGIT, DIGIT, DIGIT, DIGIT
  102.  
  103. ; DIGIT,/* #4 */ DIGIT, /* #5 */ DIGIT, /* #6 */ DIGIT, /* #7 */
  104. ; DIGIT,/* #8 */ DIGIT, /* #9 */ TERM, /* : */ TERM, /* ; */
  105.                         DB DIGIT,DIGIT,  DIGIT,  DIGIT,  DIGIT, DIGIT, TERM,  TERM
  106.  
  107. ; TERM, /*  <  */ TERM, /*  =  */ TERM, /* > */ TERM, /* ? */
  108. ; TERM, /*  @  */ NORM, /*  A  */ NORM, /* B */ NORM, /* C */
  109.                         DB TERM,  TERM,  TERM, TERM, TERM,  NORM,  NORM,  NORM 
  110.  
  111. ; NORM, /*  D  */ NORM, /*  E  */ NORM, /* F */ NORM, /* G */
  112. ; NORM, /*  H  */ NORM, /*  I  */ NORM, /* J */ NORM, /* K */
  113.                         DB NORM,  NORM,  NORM, NORM, NORM,  NORM,  NORM,  NORM 
  114.  
  115. ; NORM, /*  L  */ NORM, /*  M  */ NORM, /* N */ NORM, /* O */
  116. ; NORM, /*  P  */ NORM, /*  Q  */ NORM, /* R */ NORM, /* S */
  117.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM 
  118.  
  119. ; NORM, /*  T  */ NORM, /*  U  */ NORM, /* V */ NORM, /* W */
  120. ; NORM, /*  X  */ NORM, /*  Y  */ NORM, /* Z */ TERM, /* [ */
  121.                         DB NORM,  NORM, NORM, NORM, NORM,  NORM,  NORM,  TERM
  122.  
  123. ; TERM, /*  \  */ TERM, /*  ]  */ TERM, /*  ^  */ NORM, /*  _  */
  124. ; TERM, /*  `  */ NORM, /*  a  */ NORM, /*  b  */ NORM, /*  c  */
  125.                         DB TERM,  TERM,  TERM,  NORM,  TERM,  NORM,  NORM,  NORM 
  126.  
  127. ; NORM, /*  d  */ NORM, /*  e  */ NORM, /*  f  */ NORM, /*  g  */
  128. ; NORM, /*  h  */ NORM, /*  i  */ NORM, /*  j  */ NORM, /*  k  */
  129.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM 
  130.  
  131. ; NORM, /*  l  */ NORM, /*  m  */ NORM, /*  n  */ NORM, /*  o  */
  132. ; NORM, /*  p  */ NORM, /*  q  */ NORM, /*  r  */ NORM, /*  s  */
  133.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM 
  134.  
  135. ; NORM, /*  t  */ NORM, /*  u  */ NORM, /*  v  */ NORM, /*  w  */
  136. ; NORM, /*  x  */ NORM, /*  y  */ NORM, /*  z  */ TERM, /*  {  */
  137.                         DB NORM,  NORM,  NORM,  NORM, NORM,  NORM,  NORM,  TERM 
  138.  
  139. ; TERM, /*  |  */ TERM, /*  }  */ TERM, /*  ~  */ NORM, /* 127 */
  140. ; NORM, /* 128 */ NORM, /* 129 */ NORM, /* 130 */ NORM, /* 131 */
  141.                         DB TERM,  TERM,  TERM,  NORM,  NORM,  NORM,  NORM,  NORM 
  142.  
  143. ; NORM, /* 132 */ NORM, /* 133 */ NORM, /* 134 */ NORM, /* 135 */
  144. ; NORM, /* 136 */ NORM, /* 137 */ NORM, /* 138 */ NORM, /* 139 */
  145.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM 
  146.  
  147. ; NORM, /* 140 */ NORM, /* 141 */ NORM, /* 142 */ NORM, /* 143 */
  148. ; NORM, /* 144 */ NORM, /* 145 */ NORM, /* 146 */ NORM, /* 147 */
  149.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM 
  150.  
  151. ; NORM, /* 148 */ NORM, /* 149 */ NORM, /* 150 */ NORM, /* 151 */
  152. ; NORM, /* 152 */ NORM, /* 153 */ NORM, /* 154 */ NORM, /* 155 */
  153.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  154.  
  155. ; NORM, /* 156 */ NORM, /* 157 */ NORM, /* 158 */ NORM, /* 159 */
  156. ; NORM, /* 160 */ NORM, /* 161 */ NORM, /* 162 */ NORM, /* 163 */
  157.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  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. ; NORM, /* 172 */ NORM, /* 173 */ NORM, /* 174 */ NORM, /* 175 */
  162. ; NORM, /* 176 */ NORM, /* 177 */ NORM, /* 178 */ NORM, /* 179 */
  163.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  164. ; NORM, /* 180 */ NORM, /* 181 */ NORM, /* 182 */ NORM, /* 183 */
  165. ; NORM, /* 184 */ NORM, /* 185 */ NORM, /* 186 */ NORM, /* 187 */
  166.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  167. ; NORM, /* 188 */ NORM, /* 189 */ NORM, /* 190 */ NORM, /* 191 */
  168. ; NORM, /* 192 */ NORM, /* 193 */ NORM, /* 194 */ NORM, /* 195 */
  169.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  170. ; NORM, /* 196 */ NORM, /* 197 */ NORM, /* 198 */ NORM, /* 199 */
  171. ; NORM, /* 200 */ NORM, /* 201 */ NORM, /* 202 */ NORM, /* 203 */
  172.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  173. ; NORM, /* 204 */ NORM, /* 205 */ NORM, /* 206 */ NORM, /* 207 */
  174. ; NORM, /* 208 */ NORM, /* 209 */ NORM, /* 210 */ NORM, /* 211 */
  175.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  176. ; NORM, /* 212 */ NORM, /* 213 */ NORM, /* 214 */ NORM, /* 215 */
  177. ; NORM, /* 216 */ NORM, /* 217 */ NORM, /* 218 */ NORM, /* 219 */
  178.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  179. ; NORM, /* 220 */ NORM, /* 221 */ NORM, /* 222 */ NORM, /* 223 */
  180. ; NORM, /* 224 */ NORM, /* 225 */ NORM, /* 226 */ NORM, /* 227 */
  181.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  182. ; NORM, /* 228 */ NORM, /* 229 */ NORM, /* 230 */ NORM, /* 231 */
  183. ; NORM, /* 232 */ NORM, /* 233 */ NORM, /* 234 */ NORM, /* 235 */
  184.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  185. ; NORM, /* 236 */ NORM, /* 237 */ NORM, /* 238 */ NORM, /* 239 */
  186. ; NORM, /* 240 */ NORM, /* 241 */ NORM, /* 242 */ NORM, /* 243 */
  187.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  188. ; NORM, /* 244 */ NORM, /* 245 */ NORM, /* 246 */ NORM, /* 247 */
  189. ; NORM, /* 248 */ NORM, /* 249 */ NORM, /* 250 */ NORM, /* 251 */
  190.                         DB NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM,  NORM
  191. ; NORM, /* 252 */ NORM, /* 253 */ NORM, /* 254 */ NORM, /* 255 */
  192.                         DB NORM,  NORM,  NORM,  NORM  
  193. ;************************************************************************
  194. aucConvertClass    equ $
  195. ;
  196. ;
  197. ;char aucConvertClass[NUM_STATES][NUM_CLASSES] = {
  198. ;
  199. ;//    Characters in certain contexts have different classifications.  
  200. ;// Classification is a two step process.  After initial classification 
  201. ;// using the table above, the table below is used to determine if the character's
  202. ;// initial classification should be changed after considering the type of
  203. ;// the word the character is found in.  (Word types [numeric, numeric with
  204. ;// a decimal place, and mixed alphanumeric] are also referred to as
  205. ;// 'states'.
  206. ;// 
  207. ;//  EG: char in parse is '.', using aucCharTab, it is classed as PERIOD,  If 
  208. ;// char is the first in the word (no word type set yet) the character is
  209. ;// dropped, because the aucConvertClass table said to NUKE it. (!jjm)
  210. ;// If the period were found in a "Numeric" word with numbers only and no decimal had
  211. ;// yet occured it remains as a "PERIOD" (state switching is not table driven- this is
  212. ;// done by program logic.
  213. ;//  
  214. ;//   Word Type         /<----- Initial Character Classification ----->\
  215. ;//      |  |       ||   DIGIT, TERM, PERIOD,  NUKE, NORM, COMMA, C_EOF
  216. ;//      V  V       ||     V     V      V       V     V      V      V
  217. ;//---------------------------------------------------------------------
  218. ;/*   -None-        || */ DIGIT, NUKE, NUKE,   NUKE, NORM, NUKE,  C_EOF,
  219. ;/* Numeric         || */ DIGIT, TERM, PERIOD, TERM, NORM, COMMA, C_EOF,
  220. ;/* Numeric+Decimal || */ DIGIT, TERM, TERM,   TERM, NORM, TERM,  C_EOF,
  221. ;/* AlphaNumeric    || */ DIGIT, TERM, TERM,   NUKE, NORM, TERM,  C_EOF,
  222. ;};
  223.                       DB  DIGIT, NUKE, NUKE,   NUKE, NORM, NUKE,  C_EOF
  224.                       DB  DIGIT, TERM, PERIOD, TERM, NORM, COMMA, C_EOF 
  225.                       DB  DIGIT, TERM, TERM,   TERM, NORM, TERM,  C_EOF 
  226.                       DB  DIGIT, TERM, TERM,   NUKE, NORM, TERM,  C_EOF 
  227. ;-------------------------------------------------------------------------
  228. endofTables    equ $
  229. ;*************************************************************************
  230. IF2
  231.     %OUT ......Header Check...
  232.     .ERRE aucNormTab - Header EQ 8
  233.     %OUT
  234.  
  235.     %OUT ......Character Replacement Table (aucNormTab) Check...
  236.     .ERRE aucCharTab - aucNormTab EQ 256 
  237.   %OUT 
  238.  
  239.     %OUT ......Character Classification Table (aucCharTab) Check...
  240.     .ERRE aucConvertCLASS - aucCharTab EQ 256 
  241.   %OUT 
  242.  
  243.     %OUT ......Character ReClassification Table (aucConvertClass) Check...
  244.     .ERRE endofTables - aucConvertClass EQ 28
  245.   %OUT
  246.  
  247. ENDIF
  248.  
  249. _TEXT    ENDS
  250.  
  251. end
  252.