<aname="l6"></a>* When using </span><spanclass=cF2>FAT32</span><spanclass=cF0>, ZealOS does not generate unique short-entry names, the ones with the </span><spanclass=cF2>~</span><spanclass=cF0>s. Not all </span><spanclass=cF2>FAT32</span><spanclass=cF0> filenames are
<aname="l7"></a>valid ZealOS names and it will complain. Do not access </span><spanclass=cF2>FAT32</span><spanclass=cF0> drives not dedicated to ZealOS. Disable them with </span><spanclass=cF4>
<aname="l8"></a></span><ahref="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskAddDev.CC.html#l195"><spanclass=cF4>DriveEnable</span></a><spanclass=cF0>(OFF), or they will generate error messages. </span><spanclass=cF2>FAT32</span><spanclass=cF0> involves a long and short name for each file.
<aname="l10"></a>* The stack does not grow because virtual mem is not used. It is recommended that you allocate large local vars from the
<aname="l11"></a>heap. You can change </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3508"><spanclass=cF4>MEM_DEFAULT_STACK</span></a><spanclass=cF0> and recompile </span><spanclass=cF2>Kernel</span><spanclass=cF0> or request more when doing a </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><spanclass=cF4>Spawn</span></a><spanclass=cF0>().
<aname="l15"></a>* Call </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l269"><spanclass=cF4>DiskChange</span></a><spanclass=cF0>() when you insert a new removable media.
<aname="l17"></a>* Accessing CD/DVD's is flacky. Try </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l286"><spanclass=cF4>Drive</span></a><spanclass=cF0>() or </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l269"><spanclass=cF4>DiskChange</span></a><spanclass=cF0>() twice.
<aname="l19"></a>* You can only </span><spanclass=cF2>extern</span><spanclass=cF0> something once. There is a varient called </span><spanclass=cF2>_extern</span><spanclass=cF0> which binds a CosmiC definition to a asm sym. This,
<aname="l22"></a>* A terminal task has a </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><spanclass=cF4>CDoc</span></a><spanclass=cF0> document structure that remains active even when you change </span><spanclass=cF4>Fs->draw_it</span><spanclass=cF0>. To prevent links in
<aname="l23"></a>the </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><spanclass=cF4>CDoc</span></a><spanclass=cF0> from being activated when the user clicks in the window, do one of three things:
<aname="l25"></a> A) </span><ahref="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l121"><spanclass=cF4>DocBottom</span></a><spanclass=cF0>() followed by </span><ahref="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l135"><spanclass=cF4>DocClear</span></a><spanclass=cF0>() to clear the </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><spanclass=cF4>CDoc</span></a><spanclass=cF0> so it has no active widgets.
<aname="l27"></a> B) Disable window mgr bttn click checking with </span><spanclass=cF4>Fs->win_inhibit</span><spanclass=cF0> set to mask </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1552"><spanclass=cF4>WIF_SELF_MS_L</span></a><spanclass=cF0>|</span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1566"><spanclass=cF4>WIF_FOCUS_TASK_MS_L_D</span></a><spanclass=cF0>|</span><spanclass=cF4>
<aname="l28"></a></span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1554"><spanclass=cF4>WIF_SELF_MS_R</span></a><spanclass=cF0>|</span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1568"><spanclass=cF4>WIF_FOCUS_TASK_MS_R_D</span></a><spanclass=cF0>. This inhibits window mgr operations but still generates messages from bttn clicks.
<aname="l30"></a>* </span><spanclass=cF2>switch/case</span><spanclass=cF0> statements alloc a single jump table--do not use with wide, sparse ranges of case values.
<aname="l31"></a>
<aname="l32"></a>* Don't do a </span><spanclass=cF2>goto</span><spanclass=cF0> out of a </span><spanclass=cF2>try{}</span><spanclass=cF0>.
<aname="l34"></a>* A </span><spanclass=cF2>goto</span><spanclass=cF0> label name must not match a global scope object's name. (It's not worth slowing-down the compiler to handle this
<aname="l37"></a>* </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l135"><spanclass=cF4>MemCopy</span></a><spanclass=cF0>() only goes forward.
<aname="l39"></a>* A </span><ahref="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l9"><spanclass=cF4>Cd</span></a><spanclass=cF0>() cmd must be followed by two semicolons if a </span><spanclass=cF2>#include</span><spanclass=cF0> is after it. This is because the preprocessor processes the
<aname="l42"></a>* The assembler's error messages are often off by a line and undefines are cryptic.
<aname="l43"></a>
<aname="l44"></a>* The last semicolon on the cmd line is converted to a double semicolon because the compiler looks ahead before doing a cmd.
<aname="l45"></a>This normally has no negative effect, but when entering </span><spanclass=cF2>if</span><spanclass=cF0> statements with </span><spanclass=cF2>else</span><spanclass=cF0> clauses it presents problems.
<aname="l47"></a>* You can do a </span><spanclass=cF2>class</span><spanclass=cF0> forward reference by using </span><spanclass=cF2>extern</span><spanclass=cF0> on the first declaration, but you can only do ptr references to the </span><spanclass=cF2>cla
<aname="l56"></a></span><spanclass=cF0>The </span><spanclass=cF2>|=</span><spanclass=cF0> will be coded as a </span><spanclass=cF2>U32 Bts</span><spanclass=cF0> instruction resulting in a </span><spanclass=cF2>U32</span><spanclass=cF0> access instead of a </span><spanclass=cF2>U16</span><spanclass=cF0> access. This affects some hardware
<aname="l59"></a>* Compiler warning or error message line numbers will be off if you have a block of word-wrapped comments. You might press </span><spanclass=cF2><C
<aname="l60"></a>TRL-t></span><spanclass=cF0> before doing an editor goto-line-number command.