TempleOS has a string indirection feature implemented with the same hash symbol table entry as #define macros, HTT_DEFINE_STR. Support for string lists is also provided, but it's not very efficient, though, you can make a hash table with a list using HashDefineLstAdd(). See ::/Adam/DolDoc/DocInit.HC. If you have an @ as the first char of a define list entry, it is an alias for the prev entry num. Each task can load its own Define strings. Remember, when a Hash table is searched for a string, if it is not found, the parent task's table is searched. The DolDoc framework supports text that changes based on entries in the task's symbol table. Set a text entry with a D= arg, as in $TX,"",D="DD_MYSTRING"$. See ::/Demo/DolDoc/DefineStr.HC, ::/Adam/ADefine.HC and ::/Doc/MemOverview.DD. See ::/Demo/Define.HC. Define Funct Look for DEFINE named in hash table, return ptr string. DefineCnt Funct Return cnt of entries in define list. DefineLoad Funct Create DEFINE hash entry with string. DefineLstLoad Funct Create DEFINE list. Not efficient, but handy. DefineMatch Funct Find match for string in define list. DefinePrint Funct Create DEFINE entry with Print()ed string. DefineSub Funct Return DEFINE list entry indexed by number. HashDefineLstAdd Funct Add define list to a hash table. See ::/Adam/DolDoc/DocInit.HC.