/* Graphics Not Rendered in HTML */


























There is a symbol (hash) table for each task.  When a sym is not found, the 
parent task's sym table is checked.  All tasks chain back to the Adam task.

TempleOS sym tables are implemented with an array of linked-lists.  A num is 
generated from a string by HashStr() to index into the array of linked-lists.  
Multiple strings can generate the same num, so linked-lists are built.  Newer 
entries overshadow older ones.

There are various types of entries.  See Hash Entry Types.

Symbol Look-up (Used many places including the JIT Compiler and Loader.)
1) Symbol name is hashed by adding and shifting the ASCII of all chars.
2) hash table->body[] array is indexed.
3) Linked-lst is traversed until match of text and type of entry.
4) If not found, hash table->next table is searched.

Duplicate entries are allowed -- they overshadow old entries.

Address-to-Symbol Look-up (Slow because not important. We could use trees.)
1) FunSeg Cache is scanned.
2) Hash Tables are scanned.