<aname="l1"></a><spanclass=cF0>ZealOS has a string indirection feature implemented with the same hash symbol table entry as </span><spanclass=cF2>#define</span><spanclass=cF0> macros, </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.html#l823"><spanclass=cF4>HTT_DEFINE_STR</span></a><spanclass=cF0>.
<aname="l2"></a>Support for string lists is also provided, but it's not very efficient, though, you can make a hash table with a list using </span><spanclass=cF4>
<aname="l3"></a></span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KHashB.html#l243"><spanclass=cF4>HashDefineListAdd</span></a><spanclass=cF0>(). See </span><ahref="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.html#l25"><spanclass=cF4>::/System/DolDoc/DocInit.CC</span></a><spanclass=cF0>.
<aname="l5"></a>If you have an </span><spanclass=cF2>@</span><spanclass=cF0> as the first char of a define list entry, it is an alias for the prev entry num.
<aname="l6"></a>
<aname="l7"></a>Each task can load its own Define strings. Remember, when a </span><spanclass=cF4><u>Hash</u></span><spanclass=cF0> table is searched for a string, if it is not found, the parent
<aname="l10"></a>The </span><ahref="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.html#l1"><spanclass=cF4>DolDoc</span></a><spanclass=cF0> framework supports text that changes based on entries in the task's symbol table. Set a text entry with a </span><spanclass=cF2>D=</span><spanclass=cF0> arg, as
<aname="l11"></a>in </span><spanclass=cF2>$TX,"",D="DD_MYSTRING"$</span><spanclass=cF0>. See </span><ahref="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DefineStr.html#l1"><spanclass=cF4>::/Demo/DolDoc/DefineStr.CC</span></a><spanclass=cF0>, </span><ahref="https://tomawezome.github.io/ZealOS/System/ZDefine.html#l1"><spanclass=cF4>::/System/ZDefine.CC</span></a><spanclass=cF0> and </span><ahref="https://tomawezome.github.io/ZealOS/Doc/MemoryOverview.html#l1"><spanclass=cF4>::/Doc/MemoryOverview.DD</span></a><spanclass=cF0>.