Optimize HTML doc generation.

Change repeated #include and PopUps during HTML generation into one slave task.
This commit is contained in:
TomAwezome 2021-07-12 03:26:39 -04:00
parent 2ea6956433
commit 5f923300e2
154 changed files with 1261 additions and 1097 deletions
ZealOS-2021-07-12-03_23_08.iso
docs
Apps
Compiler
Demo
Doc

View file

@ -40,5 +40,7 @@ body {background-color:#000000;}
<a name="l12"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Budget/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Budget/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Budget/Accts.DD.html#l1"><span class=cF4>Accts.DD</span></a><span class=cF0>
<a name="l15"></a>
<a name="l16"></a>
</span></pre></body>
</html>

View file

@ -34,5 +34,7 @@ body {background-color:#000000;}
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/GrModels/ManGen.CC.html#l1"><span class=cF4>ManGen.CC</span></a><span class=cF4>
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/GrModels/Models.CC.html#l1"><span class=cF4>Models.CC</span></a><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/GrModels/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF0>
<a name="l9"></a>
<a name="l10"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/KeepAway/KeepAway.CC.html#l1"><span class=cF4>KeepAway.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/KeepAway/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/KeepAway/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Logic/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Logic/Logic.CC.html#l1"><span class=cF4>Logic.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Logic/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Examples/childish.CC.html#l1"><span class=cF4>childish.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Examples/night.CC.html#l1"><span class=cF4>night.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Examples/prosper.CC.html#l1"><span class=cF4>prosper.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -32,17 +32,17 @@ body {background-color:#000000;}
<a name="l5"></a>
<a name="l6"></a>* The clip can be used to cut and paste.
<a name="l7"></a>
<a name="l8"></a>* </span><span class=cF2>Psalmody</span><span class=cF0> uses </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> files as the song format! See </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Examples/prosper.CC.html#l1"><span class=cF4>::/Apps/Psalmody/Examples/prosper.CC</span></a><span class=cF0>. The </span><span class=cF2>Psalmody</span><span class=cF0> program does not fully
<a name="l9"></a>parse the songs when loading them back in, so changes made outside </span><span class=cF2>Psalmody</span><span class=cF0> will be lost, like if you add graphics.
<a name="l8"></a>* </span><span class=cF2>Psalmody</span><span class=cF0> uses </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> files as the song format! See </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Examples/prosper.CC.html#l1"><span class=cF4>::/Apps/Psalmody/Examples/prosper.CC</span></a><span class=cF0>. The </span><span class=cF2>Psalmody</span><span class=cF0> program does not
<a name="l9"></a>fully parse the songs when loading them back in, so changes made outside </span><span class=cF2>Psalmody</span><span class=cF0> will be lost, like if you add graphics.
<a name="l10"></a>
<a name="l11"></a>* The first line of the </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> song files is a comment with a category recognized by </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). The categories are </span><span class=cF2>&quot;no nothing&quot;</span><span class=cF0>, </span><span class=cF2>
<a name="l12"></a>&quot;has words&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has graphics&quot;</span><span class=cF0>, or </span><span class=cF2>&quot;special&quot;</span><span class=cF0>. The third character in the song comment is a digit rating number, shown in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>()
<a name="l13"></a>. You can set the song rating in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>() by pressing </span><span class=cF2>0</span><span class=cF0>-</span><span class=cF2>9</span><span class=cF0>. You can request your reward from God by pressing </span><span class=cF2>r</span><span class=cF0>. You can
<a name="l14"></a>press </span><span class=cF2>&lt;DEL&gt;</span><span class=cF0> to delete songs.
<a name="l11"></a>* The first line of the </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> song files is a comment with a category recognized by </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). The categories are </span><span class=cF2>&quot;no
<a name="l12"></a>nothing&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has words&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has graphics&quot;</span><span class=cF0>, or </span><span class=cF2>&quot;special&quot;</span><span class=cF0>. The third character in the song comment is a digit rating number, shown
<a name="l13"></a>in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). You can set the song rating in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>() by pressing </span><span class=cF2>0</span><span class=cF0>-</span><span class=cF2>9</span><span class=cF0>. You can request your reward from God by pressing </span><span class=cF2>r</span><span class=cF0>.
<a name="l14"></a>You can press </span><span class=cF2>&lt;DEL&gt;</span><span class=cF0> to delete songs.
<a name="l15"></a>
<a name="l16"></a>* You can take the </span><a href="https://tomawezome.github.io/ZealOS/System/Sound.CC.html#l238"><span class=cF4>Play</span></a><span class=cF0>() statements out of a song file and place them in your programs. You can also add a song to a document
<a name="l17"></a>with </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>, but you should do it after pressing </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> because the clip-insert in </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0> is screwy. See this &lt;Song&gt;
<a name="l18"></a>after pressing </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0>, now.
<a name="l16"></a>* You can take the </span><a href="https://tomawezome.github.io/ZealOS/System/Sound.CC.html#l238"><span class=cF4>Play</span></a><span class=cF0>() statements out of a song file and place them in your programs. You can also add a song to a
<a name="l17"></a>document with </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>, but you should do it after pressing </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> because the clip-insert in </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0> is screwy. See this
<a name="l18"></a>&lt;Song&gt; after pressing </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0>, now.
<a name="l19"></a>
<a name="l20"></a>* You can call </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(&quot;~/Psalmody&quot;); to play your songs.
</span></pre></body>

View file

@ -41,5 +41,7 @@ body {background-color:#000000;}
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/PsalmodyMain.CC.html#l1"><span class=cF4>PsalmodyMain.CC</span></a><span class=cF4>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/Help.DD.html#l1"><span class=cF4>Help.DD</span></a><span class=cF0>
<a name="l16"></a>
<a name="l17"></a>
</span></pre></body>
</html>

View file

@ -37,5 +37,7 @@ body {background-color:#000000;}
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Span/SpanMain.CC.html#l1"><span class=cF4>SpanMain.CC</span></a><span class=cF4>
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Span/SpanNew.CC.html#l1"><span class=cF4>SpanNew.CC</span></a><span class=cF4>
<a name="l11"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Span/Span.HH.html#l1"><span class=cF4>Span.HH</span></a><span class=cF0>
<a name="l12"></a>
<a name="l13"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Strut/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Strut/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Strut/Strut.CC.html#l1"><span class=cF4>Strut.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/TimeClock/Install.CC.html#l1"><span class=cF4>Install.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/TimeClock/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/TimeClock/TimeClk.CC.html#l1"><span class=cF4>TimeClk.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Titanium/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Titanium/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l1"><span class=cF4>Titanium.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -31,5 +31,7 @@ body {background-color:#000000;}
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/index.html#l1"><span class=c04>../</span></a><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/AIs/Human.CC.html#l1"><span class=cF4>Human.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/AIs/SimpleAI.CC.html#l1"><span class=cF4>SimpleAI.CC</span></a><span class=cF0>
<a name="l6"></a>
<a name="l7"></a>
</span></pre></body>
</html>

View file

@ -41,5 +41,7 @@ body {background-color:#000000;}
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/TTFMove.CC.html#l1"><span class=cF4>TTFMove.CC</span></a><span class=cF4>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/TTFVis.CC.html#l1"><span class=cF4>TTFVis.CC</span></a><span class=cF4>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/ToTheFront.CC.html#l1"><span class=cF4>ToTheFront.CC</span></a><span class=cF0>
<a name="l16"></a>
<a name="l17"></a>
</span></pre></body>
</html>

View file

@ -32,5 +32,7 @@ body {background-color:#000000;}
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Vocabulary/Load.CC.html#l1"><span class=cF4>Load.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Vocabulary/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Vocabulary/VocabQuiz.CC.html#l1"><span class=cF4>VocabQuiz.CC</span></a><span class=cF0>
<a name="l7"></a>
<a name="l8"></a>
</span></pre></body>
</html>

View file

@ -33,5 +33,7 @@ body {background-color:#000000;}
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/X-Caliber/Run.CC.html#l1"><span class=cF4>Run.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/X-Caliber/X-Caliber.CC.html#l1"><span class=cF4>X-Caliber.CC</span></a><span class=cF4>
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/X-Caliber/XCCtrls.CC.html#l1"><span class=cF4>XCCtrls.CC</span></a><span class=cF0>
<a name="l8"></a>
<a name="l9"></a>
</span></pre></body>
</html>

View file

@ -41,5 +41,7 @@ body {background-color:#000000;}
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/ToTheFront/index.html#l1"><span class=c04>ToTheFront/</span></a><span class=cF0>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Vocabulary/index.html#l1"><span class=c04>Vocabulary/</span></a><span class=cF0>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/X-Caliber/index.html#l1"><span class=c04>X-Caliber/</span></a><span class=cF0>
<a name="l16"></a>
<a name="l17"></a>
</span></pre></body>
</html>

View file

@ -66,5 +66,7 @@ body {background-color:#000000;}
<a name="l38"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/CompilerB.HH.html#l1"><span class=cF4>CompilerB.HH</span></a><span class=cF4>
<a name="l39"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/Compiler.MAP.html#l1"><span class=cF4>Compiler.MAP</span></a><span class=cF4>
<a name="l40"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/Compiler.PRJ.html#l1"><span class=cF4>Compiler.PRJ</span></a><span class=cF0>
<a name="l41"></a>
<a name="l42"></a>
</span></pre></body>
</html>

View file

@ -66,8 +66,8 @@ body {background-color:#000000;}
<a name="l39"></a>
<a name="l40"></a>* Investigate why packet loss </span><a href="https://tomawezome.github.io/ZealOS/System/Training.CC.html#l122"><span class=cF4>Training Sleep(1)</span></a><span class=cF0>.
<a name="l41"></a>
<a name="l42"></a>* Add AVL or red/black binary tree library support. We have fixed-size stack. Auto-balancing binary tree is very needed. I've
<a name="l43"></a>done everything myself. I don't want to ruin a perfect record. I'm in no hurry.
<a name="l42"></a>* Add AVL or red/black binary tree library support. We have fixed-size stack. Auto-balancing binary tree is very needed. I'
<a name="l43"></a>ve done everything myself. I don't want to ruin a perfect record. I'm in no hurry.
<a name="l44"></a>
<a name="l45"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/SpriteEd.CC.html#l1"><span class=cF4>SpriteEd</span></a><span class=cF0> shift pts, Ctrl pt for ellipse/polygon w,h is off when rotated.
<a name="l46"></a>
@ -177,326 +177,328 @@ body {background-color:#000000;}
<a name="l150"></a>
<a name="l151"></a></u>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/FileMgr.CC.html#l678"><span class=cF4>FileMgr</span></a><span class=cF0>() is bad with lots of files.
<a name="l152"></a>
<a name="l153"></a>* Would be nice to have a routine telling how much free memory, so apps can plan a big alloc. This is doable, depending on how.
<a name="l154"></a>
<a name="l155"></a>* Log-to-file is inefficient because we load and save whole file.
<a name="l156"></a>
<a name="l157"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackLib.CC.html#l517"><span class=cF4>ICMov</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackLib.CC.html#l642"><span class=cF4>PUSH_CMP</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1715"><span class=cF4>MDf_STACK</span></a><span class=cF0>? Perhaps, it's okay.
<a name="l158"></a>
<a name="l159"></a>* Short FAT32 ~ names.
<a name="l160"></a>
<a name="l161"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() search text in sprites.
<a name="l162"></a>
<a name="l163"></a>* Links in text in sprites.
<a name="l164"></a>
<a name="l165"></a>* Compiler: Inline functions?
<a name="l166"></a>
<a name="l167"></a>* Compiler: FunPtr local vars? I forgot if this was hard or not.
<a name="l168"></a> </span><span class=cF1>U0</span><span class=cF0> Main()
<a name="l169"></a> {
<a name="l170"></a> </span><span class=cF1>U0</span><span class=cF0> (*fp_old_draw_mouse)(</span><span class=cF9>CDC</span><span class=cF0> *dc,</span><span class=cF9>I64</span><span class=cF0> x,</span><span class=cF9>I64</span><span class=cF0> y)=</span><span class=cFB>gr</span><span class=cF0>.fp_draw_mouse;
<a name="l171"></a> }
<a name="l172"></a>
<a name="l173"></a>* Compiler: Get rid of </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMain.CC.html#l496"><span class=cF4>0x20000</span></a><span class=cF0> limit.
<a name="l174"></a>
<a name="l175"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l194"><span class=cF4>GrFloodFillRay</span></a><span class=cF0>: Get rid of </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l199"><span class=cF4>0x80000</span></a><span class=cF0> limit.
<a name="l176"></a>
<a name="l153"></a>* Would be nice to have a routine telling how much free memory, so apps can plan a big alloc. This is doable, depending on
<a name="l154"></a>how.
<a name="l155"></a>
<a name="l156"></a>* Log-to-file is inefficient because we load and save whole file.
<a name="l157"></a>
<a name="l158"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackLib.CC.html#l517"><span class=cF4>ICMov</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackLib.CC.html#l642"><span class=cF4>PUSH_CMP</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1715"><span class=cF4>MDf_STACK</span></a><span class=cF0>? Perhaps, it's okay.
<a name="l159"></a>
<a name="l160"></a>* Short FAT32 ~ names.
<a name="l161"></a>
<a name="l162"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() search text in sprites.
<a name="l163"></a>
<a name="l164"></a>* Links in text in sprites.
<a name="l165"></a>
<a name="l166"></a>* Compiler: Inline functions?
<a name="l167"></a>
<a name="l168"></a>* Compiler: FunPtr local vars? I forgot if this was hard or not.
<a name="l169"></a> </span><span class=cF1>U0</span><span class=cF0> Main()
<a name="l170"></a> {
<a name="l171"></a> </span><span class=cF1>U0</span><span class=cF0> (*fp_old_draw_mouse)(</span><span class=cF9>CDC</span><span class=cF0> *dc,</span><span class=cF9>I64</span><span class=cF0> x,</span><span class=cF9>I64</span><span class=cF0> y)=</span><span class=cFB>gr</span><span class=cF0>.fp_draw_mouse;
<a name="l172"></a> }
<a name="l173"></a>
<a name="l174"></a>* Compiler: Get rid of </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMain.CC.html#l496"><span class=cF4>0x20000</span></a><span class=cF0> limit.
<a name="l175"></a>
<a name="l176"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l194"><span class=cF4>GrFloodFillRay</span></a><span class=cF0>: Get rid of </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l199"><span class=cF4>0x80000</span></a><span class=cF0> limit.
<a name="l177"></a>
<a name="l178"></a></span><span class=cF5> Bugs</span><span class=cF0>
<a name="l179"></a>* 1/28/16 </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Pick3D.CC.html#l1"><span class=cF4>::/Demo/Graphics/Pick3D.CC</span></a><span class=cF0> crashed in TestSuite.
<a name="l180"></a>
<a name="l181"></a>* 1/12/16 make RAM drive 2288 blks, </span><span class=cF2>CopyTree(&quot;C:/Home&quot;,&quot;B:/Home&quot;); </span><span class=cF0> Disk runs-out of space and hangs instead of reporting
<a name="l182"></a>errors.
<a name="l183"></a>
<a name="l184"></a>* Bug introduced around 11/1/15. Changed </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>::/Kernel/Sched.CC</span></a><span class=cF0> and now </span><a href="https://tomawezome.github.io/ZealOS/System/Win.CC.html#l315"><span class=cF4>WinToTop</span></a><span class=cF0> is called on System task at start-up, sometimes.
<a name="l185"></a>Might be user's fault because of bad keys pressed during VMware power-on init. Might be fixed by </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1623"><span class=cF4>ACf_INIT_IN_PROGRESS</span></a><span class=cF0>.
<a name="l186"></a>
<a name="l187"></a>* 1/12/16 </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskATAId.CC.html#l1"><span class=cF4>ATARepEntry</span></a><span class=cF0> shows corrupted bttns. Weird. Perhaps, my imagination.
<a name="l178"></a>
<a name="l179"></a></span><span class=cF5> Bugs</span><span class=cF0>
<a name="l180"></a>* 1/28/16 </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Pick3D.CC.html#l1"><span class=cF4>::/Demo/Graphics/Pick3D.CC</span></a><span class=cF0> crashed in TestSuite.
<a name="l181"></a>
<a name="l182"></a>* 1/12/16 make RAM drive 2288 blks, </span><span class=cF2>CopyTree(&quot;C:/Home&quot;,&quot;B:/Home&quot;); </span><span class=cF0> Disk runs-out of space and hangs instead of reporting
<a name="l183"></a>errors.
<a name="l184"></a>
<a name="l185"></a>* Bug introduced around 11/1/15. Changed </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>::/Kernel/Sched.CC</span></a><span class=cF0> and now </span><a href="https://tomawezome.github.io/ZealOS/System/Win.CC.html#l315"><span class=cF4>WinToTop</span></a><span class=cF0> is called on System task at start-up,
<a name="l186"></a>sometimes. Might be user's fault because of bad keys pressed during VMware power-on init. Might be fixed by </span><span class=cF4>
<a name="l187"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1623"><span class=cF4>ACf_INIT_IN_PROGRESS</span></a><span class=cF0>.
<a name="l188"></a>
<a name="l189"></a>
<a name="l190"></a></span><span class=cF5> 3rd Party Bugs</span><span class=cF0>
<a name="l191"></a>* VMware: Stretch to full screen
<a name="l192"></a>* VMware: PC speaker sound distorted.
<a name="l193"></a>* VMware: 8/2/2015 start-up. Probably multicore.
<a name="l194"></a>* VMware: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l421"><span class=cF4>CtrlAltDel</span></a><span class=cF0> on &lt;CTRL-ALT-INS&gt;
<a name="l195"></a>* VMware: Size zero files don't copy out of mounted disk? (Might be fixed.)
<a name="l196"></a>
<a name="l197"></a>
<a name="l198"></a></span><span class=cF5> Bugs? Not really sure.</span><span class=cF0>
<a name="l199"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() crashes on bad drive.
<a name="l200"></a>
<a name="l201"></a>* Graphics clipping: screen y+top&lt;0 for top&lt;0?
<a name="l189"></a>* 1/12/16 </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskATAId.CC.html#l1"><span class=cF4>ATARepEntry</span></a><span class=cF0> shows corrupted bttns. Weird. Perhaps, my imagination.
<a name="l190"></a>
<a name="l191"></a>
<a name="l192"></a></span><span class=cF5> 3rd Party Bugs</span><span class=cF0>
<a name="l193"></a>* VMware: Stretch to full screen
<a name="l194"></a>* VMware: PC speaker sound distorted.
<a name="l195"></a>* VMware: 8/2/2015 start-up. Probably multicore.
<a name="l196"></a>* VMware: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l421"><span class=cF4>CtrlAltDel</span></a><span class=cF0> on &lt;CTRL-ALT-INS&gt;
<a name="l197"></a>* VMware: Size zero files don't copy out of mounted disk? (Might be fixed.)
<a name="l198"></a>
<a name="l199"></a>
<a name="l200"></a></span><span class=cF5> Bugs? Not really sure.</span><span class=cF0>
<a name="l201"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() crashes on bad drive.
<a name="l202"></a>
<a name="l203"></a>* 1/1/2015 Bug messing-up keyboard, like no CTRL key. Was working on Sprites.
<a name="l203"></a>* Graphics clipping: screen y+top&lt;0 for top&lt;0?
<a name="l204"></a>
<a name="l205"></a>* 4/13/14 Strut or RawHide crashed when </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l145"><span class=cF4>sys_var_init_flag</span></a><span class=cF0> was set during testsuite. Perhaps, floodfill?
<a name="l205"></a>* 1/1/2015 Bug messing-up keyboard, like no CTRL key. Was working on Sprites.
<a name="l206"></a>
<a name="l207"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/DiskCheck.CC.html#l232"><span class=cF4>DiskCheck</span></a><span class=cF0> alloc unalloced. I don't know if I fixed this.
<a name="l207"></a>* 4/13/14 Strut or RawHide crashed when </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l145"><span class=cF4>sys_var_init_flag</span></a><span class=cF0> was set during testsuite. Perhaps, floodfill?
<a name="l208"></a>
<a name="l209"></a>* 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just &lt;CTRL-m&gt; twice. Not a bug.
<a name="l209"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/DiskCheck.CC.html#l232"><span class=cF4>DiskCheck</span></a><span class=cF0> alloc unalloced. I don't know if I fixed this.
<a name="l210"></a>
<a name="l211"></a>* 5/7/14:Something like </span><a href="https://tomawezome.github.io/ZealOS/System/InFile.CC.html#l152"><span class=cF4>InSetMouse</span></a><span class=cF0> caused hang, then reboot in TestSuite.
<a name="l212"></a>* 5/7/14:#63 Maybe, </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Pick3D.CC.html#l1"><span class=cF4>::/Demo/Graphics/Pick3D.CC</span></a><span class=cF0> crashed in TestSuite.
<a name="l213"></a>
<a name="l214"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l249"><span class=cF4>StrPrintJoin</span></a><span class=cF0>(,st); With st=&quot;\n\\&quot;; (Forgot what this is talking about.)
<a name="l211"></a>* 1/?/2015,8/10/2015 Macro sel in Menu did not go to shell? No, I think just &lt;CTRL-m&gt; twice. Not a bug.
<a name="l212"></a>
<a name="l213"></a>* 5/7/14:Something like </span><a href="https://tomawezome.github.io/ZealOS/System/InFile.CC.html#l152"><span class=cF4>InSetMouse</span></a><span class=cF0> caused hang, then reboot in TestSuite.
<a name="l214"></a>* 5/7/14:#63 Maybe, </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Pick3D.CC.html#l1"><span class=cF4>::/Demo/Graphics/Pick3D.CC</span></a><span class=cF0> crashed in TestSuite.
<a name="l215"></a>
<a name="l216"></a>
<a name="l217"></a></span><span class=cF5> TODO? Not really, just angst.</span><span class=cF0>
<a name="l218"></a>* Should these be moved into </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l973"><span class=cF4>CHashClass</span></a><span class=cF0> from </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l936"><span class=cF4>CMemberList</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1013"><span class=cF4>CHashGlobalVar</span></a><span class=cF0>?
<a name="l219"></a> CArrayDim dim;
<a name="l220"></a> CHashFun *fun_ptr;
<a name="l221"></a>
<a name="l222"></a>* extern of fun with default arg of str?
<a name="l216"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l249"><span class=cF4>StrPrintJoin</span></a><span class=cF0>(,st); With st=&quot;\n\\&quot;; (Forgot what this is talking about.)
<a name="l217"></a>
<a name="l218"></a>
<a name="l219"></a></span><span class=cF5> TODO? Not really, just angst.</span><span class=cF0>
<a name="l220"></a>* Should these be moved into </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l973"><span class=cF4>CHashClass</span></a><span class=cF0> from </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l936"><span class=cF4>CMemberList</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1013"><span class=cF4>CHashGlobalVar</span></a><span class=cF0>?
<a name="l221"></a> CArrayDim dim;
<a name="l222"></a> CHashFun *fun_ptr;
<a name="l223"></a>
<a name="l224"></a>* ISO.C on FAT32 created by Windows or Linux are not contiguous.
<a name="l224"></a>* extern of fun with default arg of str?
<a name="l225"></a>
<a name="l226"></a>* Might want to warn switch[] dup case numbers.
<a name="l226"></a>* ISO.C on FAT32 created by Windows or Linux are not contiguous.
<a name="l227"></a>
<a name="l228"></a>* Make </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l11"><span class=cF4>Min</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l19"><span class=cF4>Max</span></a><span class=cF0>() into asm routines?
<a name="l228"></a>* Might want to warn switch[] dup case numbers.
<a name="l229"></a>
<a name="l230"></a>* Add local vars to sym table in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>()?
<a name="l230"></a>* Make </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l11"><span class=cF4>Min</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l19"><span class=cF4>Max</span></a><span class=cF0>() into asm routines?
<a name="l231"></a>
<a name="l232"></a>* Compiler: Prints two error messages for expressions in statements.
<a name="l232"></a>* Add local vars to sym table in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>()?
<a name="l233"></a>
<a name="l234"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>() negative byte displacement, neg 32-bit disp.
<a name="l234"></a>* Compiler: Prints two error messages for expressions in statements.
<a name="l235"></a>
<a name="l236"></a>* Race condition in </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/FlatTops.CC.html#l1"><span class=cF4>::/Demo/Games/FlatTops.CC</span></a><span class=cF0> torpedo.
<a name="l236"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>() negative byte displacement, neg 32-bit disp.
<a name="l237"></a>
<a name="l238"></a>* Links to self document if empty file name? </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l19"><span class=cF4>Document Links</span></a><span class=cF0>
<a name="l238"></a>* Race condition in </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/FlatTops.CC.html#l1"><span class=cF4>::/Demo/Games/FlatTops.CC</span></a><span class=cF0> torpedo.
<a name="l239"></a>
<a name="l240"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3210"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> would be nice if capital &quot;+R&quot;.
<a name="l240"></a>* Links to self document if empty file name? </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l19"><span class=cF4>Document Links</span></a><span class=cF0>
<a name="l241"></a>
<a name="l242"></a>* Sprites in cmd line code.
<a name="l242"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3210"><span class=cF4>FUF_RECURSE</span></a><span class=cF0> would be nice if capital &quot;+R&quot;.
<a name="l243"></a>
<a name="l244"></a>* 16-Bit Assembly and Unassembly and is bad.
<a name="l244"></a>* Sprites in cmd line code.
<a name="l245"></a>
<a name="l246"></a>* Compiler: Cmd to enable/disable warnings.
<a name="l246"></a>* 16-Bit Assembly and Unassembly and is bad.
<a name="l247"></a>
<a name="l248"></a>* Compiler: Type for either F64 or I64, like Print -- no conversion.
<a name="l249"></a>* Compiler: Arg type ... that did do conversion, if we have one that doesn't.
<a name="l250"></a>
<a name="l251"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;char_bmp_&quot;,&quot;set_&quot;);
<a name="l248"></a>* Compiler: Cmd to enable/disable warnings.
<a name="l249"></a>
<a name="l250"></a>* Compiler: Type for either F64 or I64, like Print -- no conversion.
<a name="l251"></a>* Compiler: Arg type ... that did do conversion, if we have one that doesn't.
<a name="l252"></a>
<a name="l253"></a>* Clean-up code </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskStrA.CC.html#l191"><span class=cF4>FileNameAbs</span></a><span class=cF0>(), does it need so many local var names? I guess no choice.
<a name="l253"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;char_bmp_&quot;,&quot;set_&quot;);
<a name="l254"></a>
<a name="l255"></a>
<a name="l256"></a></span><span class=cF5> Committee Needed</span><span class=cF0>
<a name="l257"></a>* Make binary tree look-up using FUN_SEG symbol addresses, so we can eliminate fun_seg cache and wall-paper kludge? All CosmiC
<a name="l258"></a>functions and global vars would have left-right for address search.
<a name="l259"></a>
<a name="l260"></a>* Should we get rid of drive mapping. It's ugly.
<a name="l255"></a>* Clean-up code </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskStrA.CC.html#l191"><span class=cF4>FileNameAbs</span></a><span class=cF0>(), does it need so many local var names? I guess no choice.
<a name="l256"></a>
<a name="l257"></a>
<a name="l258"></a></span><span class=cF5> Committee Needed</span><span class=cF0>
<a name="l259"></a>* Make binary tree look-up using FUN_SEG symbol addresses, so we can eliminate fun_seg cache and wall-paper kludge? All
<a name="l260"></a>CosmiC functions and global vars would have left-right for address search.
<a name="l261"></a>
<a name="l262"></a>* Can we get rid of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3845"><span class=cF4>MESSAGE_CMD</span></a><span class=cF0>?
<a name="l262"></a>* Should we get rid of drive mapping. It's ugly.
<a name="l263"></a>
<a name="l264"></a>* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
<a name="l264"></a>* Can we get rid of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3845"><span class=cF4>MESSAGE_CMD</span></a><span class=cF0>?
<a name="l265"></a>
<a name="l266"></a>* </span><span class=cF4><u>MP DepthBuf</u></span><span class=cF0> is a kludge because of dc-&gt;depth_buf=NULL in various graphics routines.
<a name="l266"></a>* Make so just CdRom; command to copy entire disk to ::/CdRom directory?
<a name="l267"></a>
<a name="l268"></a>* Improve editor undo, add redo.
<a name="l268"></a>* </span><span class=cF4><u>MP DepthBuf</u></span><span class=cF0> is a kludge because of dc-&gt;depth_buf=NULL in various graphics routines.
<a name="l269"></a>
<a name="l270"></a>* Compiler: F32?
<a name="l270"></a>* Improve editor undo, add redo.
<a name="l271"></a>
<a name="l272"></a>* International Date output: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l57"><span class=cF4>MPrintDate</span></a><span class=cF0>(). Every country make own version?
<a name="l273"></a>* International Date input: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrScan.CC.html#l162"><span class=cF4>Str2Date</span></a><span class=cF0>().
<a name="l274"></a>
<a name="l275"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> before transformation? (Currently, it's after.)
<a name="l272"></a>* Compiler: F32?
<a name="l273"></a>
<a name="l274"></a>* International Date output: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l57"><span class=cF4>MPrintDate</span></a><span class=cF0>(). Every country make own version?
<a name="l275"></a>* International Date input: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrScan.CC.html#l162"><span class=cF4>Str2Date</span></a><span class=cF0>().
<a name="l276"></a>
<a name="l277"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3579"><span class=cF4>TRANSPARENT</span></a><span class=cF0> does not work with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3575"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
<a name="l277"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> before transformation? (Currently, it's after.)
<a name="l278"></a>
<a name="l279"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3565"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick&gt;1 is broken.
<a name="l279"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3579"><span class=cF4>TRANSPARENT</span></a><span class=cF0> does not work with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3575"><span class=cF4>ROPF_DITHER</span></a><span class=cF0>.
<a name="l280"></a>
<a name="l281"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l982"><span class=cF4>GrPutChar3</span></a><span class=cF0>() with depth buf?
<a name="l281"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3565"><span class=cF4>ROP_XOR</span></a><span class=cF0> with thick&gt;1 is broken.
<a name="l282"></a>
<a name="l283"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/Ctrls/CtrlsA.CC.html#l1"><span class=cF4>::/System/Ctrls/CtrlsA.CC</span></a><span class=cF0>?
<a name="l284"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/ZMathODE.CC.html#l1"><span class=cF4>::/System/ZMathODE.CC</span></a><span class=cF0>?
<a name="l285"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l114"><span class=cF4>Complex</span></a><span class=cF0>?
<a name="l286"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0>.brush?
<a name="l287"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>() change to 3x3?
<a name="l288"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3565"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
<a name="l289"></a>
<a name="l290"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/WinMgr.CC.html#l489"><span class=cF4>WinMgrTask</span></a><span class=cF0> needs to do doc operations on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l295"><span class=cF4>MessagePost</span></a><span class=cF0>() messages for mouse_hard. Already works for </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l47"><span class=cF4>MouseSet</span></a><span class=cF0>()?
<a name="l283"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l982"><span class=cF4>GrPutChar3</span></a><span class=cF0>() with depth buf?
<a name="l284"></a>
<a name="l285"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/Ctrls/CtrlsA.CC.html#l1"><span class=cF4>::/System/Ctrls/CtrlsA.CC</span></a><span class=cF0>?
<a name="l286"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/ZMathODE.CC.html#l1"><span class=cF4>::/System/ZMathODE.CC</span></a><span class=cF0>?
<a name="l287"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l114"><span class=cF4>Complex</span></a><span class=cF0>?
<a name="l288"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0>.brush?
<a name="l289"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>() change to 3x3?
<a name="l290"></a>* Eliminate? </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3565"><span class=cF4>ROP_XOR</span></a><span class=cF0>?
<a name="l291"></a>
<a name="l292"></a>* Should Messages in PopUp queue get fwded to parent when task dies?
<a name="l292"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/WinMgr.CC.html#l489"><span class=cF4>WinMgrTask</span></a><span class=cF0> needs to do doc operations on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l295"><span class=cF4>MessagePost</span></a><span class=cF0>() messages for mouse_hard. Already works for </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l47"><span class=cF4>MouseSet</span></a><span class=cF0>()?
<a name="l293"></a>
<a name="l294"></a>* Import Intel datasheets so we can use links in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/PageTables.CC.html#l1"><span class=cF4>Code</span></a><span class=cF0> for documentation. I tried a PDF-to-text convertor and it wasn't
<a name="l295"></a>acceptible.
<a name="l296"></a>
<a name="l297"></a>* Switch stmt with sparse cases? Maybe, ban sparse switch statements.
<a name="l294"></a>* Should Messages in PopUp queue get fwded to parent when task dies?
<a name="l295"></a>
<a name="l296"></a>* Import Intel datasheets so we can use links in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/PageTables.CC.html#l1"><span class=cF4>Code</span></a><span class=cF0> for documentation. I tried a PDF-to-text convertor and it wasn't
<a name="l297"></a>acceptible.
<a name="l298"></a>
<a name="l299"></a>* Compiler Optimization: Postpone LocalVar init until last possible moment in case of return.
<a name="l299"></a>* Switch stmt with sparse cases? Maybe, ban sparse switch statements.
<a name="l300"></a>
<a name="l301"></a>* Compiler: Local var array/struct initialization.
<a name="l301"></a>* Compiler Optimization: Postpone LocalVar init until last possible moment in case of return.
<a name="l302"></a>
<a name="l303"></a>* Compiler Optimization: Bools use r,rm in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackB.CC.html#l103"><span class=cF4>ICComp</span></a><span class=cF0>() like in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackB.CC.html#l509"><span class=cF4>ICCompAndBranch</span></a><span class=cF0>()?
<a name="l303"></a>* Compiler: Local var array/struct initialization.
<a name="l304"></a>
<a name="l305"></a>* Compiler: !F64 ~F64
<a name="l305"></a>* Compiler Optimization: Bools use r,rm in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackB.CC.html#l103"><span class=cF4>ICComp</span></a><span class=cF0>() like in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackB.CC.html#l509"><span class=cF4>ICCompAndBranch</span></a><span class=cF0>()?
<a name="l306"></a>
<a name="l307"></a>* Compiler: &amp;=, |= can overflow with Bts Btr on small data types?
<a name="l307"></a>* Compiler: !F64 ~F64
<a name="l308"></a>
<a name="l309"></a>* Implement </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3158"><span class=cF4>RS_ATTR_FIXED</span></a><span class=cF0> fixed pos files?
<a name="l309"></a>* Compiler: &amp;=, |= can overflow with Bts Btr on small data types?
<a name="l310"></a>
<a name="l311"></a>* SIMD in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>?
<a name="l311"></a>* Implement </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3158"><span class=cF4>RS_ATTR_FIXED</span></a><span class=cF0> fixed pos files?
<a name="l312"></a>
<a name="l313"></a>* I use fixed-point in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l341"><span class=cF4>Circle</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l390"><span class=cF4>Ellipse</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l124"><span class=cF4>Mat4x4MulMat4x4New</span></a><span class=cF0>() and others. God says I might want to change to
<a name="l314"></a>float. </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/FixedPoint.CC.html#l1"><span class=cF4>::/Demo/Lectures/FixedPoint.CC</span></a><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/FixedPointAdvanced.CC.html#l1"><span class=cF4>::/Demo/Lectures/FixedPointAdvanced.CC</span></a><span class=cF0>.
<a name="l315"></a>
<a name="l316"></a>* Note: We will never put multiple </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l1"><span class=cF4>Keyboard Tables</span></a><span class=cF0>. Each country must make their own version of ZealOS. The </span><span class=cF4>
<a name="l317"></a><u>Intel Factory ROM</u></span><span class=cF0> will have just English. Our </span><a href="https://tomawezome.github.io/ZealOS/Doc/Charter.DD.html#l1"><span class=cF4>Charter</span></a><span class=cF0> bans multiple country or architectures in the same version.
<a name="l318"></a>
<a name="l319"></a>* 12 border chars in screen font codes 0x02-0x0D. </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrTextBase.CC.html#l333"><span class=cF4>TextBorder</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l313"><span class=cF4>RawDr</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/CharDemo.CC.html#l1"><span class=cF4>::/Demo/Games/CharDemo.CC</span></a><span class=cF0>. LineFeed shows-up in </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0>
<a name="l320"></a>PersonalMenu.
<a name="l321"></a>
<a name="l322"></a>* Super-simple high speed serial needs flow control. </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> and </span><span class=cF2>&lt;CTRL-q&gt;</span><span class=cF0>?
<a name="l313"></a>* SIMD in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>?
<a name="l314"></a>
<a name="l315"></a>* I use fixed-point in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l341"><span class=cF4>Circle</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l390"><span class=cF4>Ellipse</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l6"><span class=cF4>Mat4x4MulXYZ</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l124"><span class=cF4>Mat4x4MulMat4x4New</span></a><span class=cF0>() and others. God says I might want to change
<a name="l316"></a>to float. </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/FixedPoint.CC.html#l1"><span class=cF4>::/Demo/Lectures/FixedPoint.CC</span></a><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/FixedPointAdvanced.CC.html#l1"><span class=cF4>::/Demo/Lectures/FixedPointAdvanced.CC</span></a><span class=cF0>.
<a name="l317"></a>
<a name="l318"></a>* Note: We will never put multiple </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l1"><span class=cF4>Keyboard Tables</span></a><span class=cF0>. Each country must make their own version of ZealOS. The </span><span class=cF4>
<a name="l319"></a><u>Intel Factory ROM</u></span><span class=cF0> will have just English. Our </span><a href="https://tomawezome.github.io/ZealOS/Doc/Charter.DD.html#l1"><span class=cF4>Charter</span></a><span class=cF0> bans multiple country or architectures in the same version.
<a name="l320"></a>
<a name="l321"></a>* 12 border chars in screen font codes 0x02-0x0D. </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrTextBase.CC.html#l333"><span class=cF4>TextBorder</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l313"><span class=cF4>RawDr</span></a><span class=cF0>() </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/CharDemo.CC.html#l1"><span class=cF4>::/Demo/Games/CharDemo.CC</span></a><span class=cF0>. LineFeed shows-up in </span><span class=cF2>&lt;CTRL-
<a name="l322"></a>m&gt;</span><span class=cF0> PersonalMenu.
<a name="l323"></a>
<a name="l324"></a>
<a name="l325"></a></span><span class=cF5> Inspirational Ideas</span><span class=cF0>
<a name="l326"></a>* Redo videos, make more professional.
<a name="l327"></a>
<a name="l328"></a>* Add icons.
<a name="l324"></a>* Super-simple high speed serial needs flow control. </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> and </span><span class=cF2>&lt;CTRL-q&gt;</span><span class=cF0>?
<a name="l325"></a>
<a name="l326"></a>
<a name="l327"></a></span><span class=cF5> Inspirational Ideas</span><span class=cF0>
<a name="l328"></a>* Redo videos, make more professional.
<a name="l329"></a>
<a name="l330"></a>* Use standard terminology from &quot;the literature&quot;.
<a name="l330"></a>* Add icons.
<a name="l331"></a>
<a name="l332"></a>* Striped and other dither patterns. Brushes?
<a name="l332"></a>* Use standard terminology from &quot;the literature&quot;.
<a name="l333"></a>
<a name="l334"></a>* Get rid of BYTE, WORD, DWORD in opcode and replace with U8, U16, U32.
<a name="l334"></a>* Striped and other dither patterns. Brushes?
<a name="l335"></a>
<a name="l336"></a>* Get rid of &quot;Char&quot;.
<a name="l336"></a>* Get rid of BYTE, WORD, DWORD in opcode and replace with U8, U16, U32.
<a name="l337"></a>
<a name="l338"></a>* Get rid of having two terms and pick one, &quot;Disk&quot; and &quot;BlkDev&quot;? (Probably, not that one.)
<a name="l338"></a>* Get rid of &quot;Char&quot;.
<a name="l339"></a>
<a name="l340"></a>* Could switch to having just C and D drives and RAMDrive and CD/DVD?
<a name="l340"></a>* Get rid of having two terms and pick one, &quot;Disk&quot; and &quot;BlkDev&quot;? (Probably, not that one.)
<a name="l341"></a>
<a name="l342"></a>* New editor widgets.
<a name="l342"></a>* Could switch to having just C and D drives and RAMDrive and CD/DVD?
<a name="l343"></a>
<a name="l344"></a>* Make use of flag potential in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>() and possibly </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirContext.CC.html#l30"><span class=cF4>DirContextNew</span></a><span class=cF0>().
<a name="l345"></a>* Sort options for </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>()?
<a name="l346"></a>
<a name="l347"></a>* New </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> language features?
<a name="l344"></a>* New editor widgets.
<a name="l345"></a>
<a name="l346"></a>* Make use of flag potential in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>() and possibly </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirContext.CC.html#l30"><span class=cF4>DirContextNew</span></a><span class=cF0>().
<a name="l347"></a>* Sort options for </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>()?
<a name="l348"></a>
<a name="l349"></a>* Better </span><span class=cF4><u>Debugging</u></span><span class=cF0>?
<a name="l349"></a>* New </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> language features?
<a name="l350"></a>
<a name="l351"></a>* Look for mem leaks?
<a name="l351"></a>* Better </span><span class=cF4><u>Debugging</u></span><span class=cF0>?
<a name="l352"></a>
<a name="l353"></a>* Std local var names.
<a name="l353"></a>* Look for mem leaks?
<a name="l354"></a>
<a name="l355"></a>* Ticketmaster format statements? Overflow &quot;t='*'&quot; and padding character?
<a name="l355"></a>* Std local var names.
<a name="l356"></a>
<a name="l357"></a>* Move stuff out of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>Kernel</span></a><span class=cF0> module.
<a name="l357"></a>* Ticketmaster format statements? Overflow &quot;t='*'&quot; and padding character?
<a name="l358"></a>
<a name="l359"></a>* $LK,L=&quot;FL:D:/Kernel/File.CC&quot;$ instead of A=
<a name="l360"></a>* $SP,B=1$ instead of $SP,BI=1$
<a name="l361"></a>* $CM+LE+RE is nasty
<a name="l362"></a>
<a name="l363"></a>* DCF_TRANSFORMATION|DCF_SYMMETRY|DCF_JUST_MIRROR -- maybe not both needed at once.
<a name="l359"></a>* Move stuff out of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>Kernel</span></a><span class=cF0> module.
<a name="l360"></a>
<a name="l361"></a>* $LK,L=&quot;FL:D:/Kernel/File.CC&quot;$ instead of A=
<a name="l362"></a>* $SP,B=1$ instead of $SP,BI=1$
<a name="l363"></a>* $CM+LE+RE is nasty
<a name="l364"></a>
<a name="l365"></a>* More </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3735"><span class=cF4>Controls</span></a><span class=cF0>?
<a name="l365"></a>* DCF_TRANSFORMATION|DCF_SYMMETRY|DCF_JUST_MIRROR -- maybe not both needed at once.
<a name="l366"></a>
<a name="l367"></a>* Compiler: More use of more floating-point stack?
<a name="l367"></a>* More </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3735"><span class=cF4>Controls</span></a><span class=cF0>?
<a name="l368"></a>
<a name="l369"></a>* Compiler: More aggressive in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptLib.CC.html#l628"><span class=cF4>CompF2PushPop</span></a><span class=cF0>() with types besides MOV and F64.
<a name="l369"></a>* Compiler: More use of more floating-point stack?
<a name="l370"></a>
<a name="l371"></a>* Playing with </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/NegDisp.CC.html#l1"><span class=cF4>::/Demo/Lectures/NegDisp.CC</span></a><span class=cF0> on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3941"><span class=cF4>CTask</span></a><span class=cF0>?
<a name="l372"></a> $=-CTASK_NEG_OFFSET
<a name="l373"></a> offset(CTask.addr)==0
<a name="l374"></a> Spawn(): CAlloc()
<a name="l375"></a> TaskDel(): Free()
<a name="l376"></a> CSysFixedArea.system
<a name="l377"></a> Looks like task_flags,locked_flags cause problems with neg offset.
<a name="l378"></a>
<a name="l379"></a>* Make a game, S.E.T.I., with radio telescope array. Put God on air.
<a name="l371"></a>* Compiler: More aggressive in </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptLib.CC.html#l628"><span class=cF4>CompF2PushPop</span></a><span class=cF0>() with types besides MOV and F64.
<a name="l372"></a>
<a name="l373"></a>* Playing with </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/NegDisp.CC.html#l1"><span class=cF4>::/Demo/Lectures/NegDisp.CC</span></a><span class=cF0> on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3941"><span class=cF4>CTask</span></a><span class=cF0>?
<a name="l374"></a> $=-CTASK_NEG_OFFSET
<a name="l375"></a> offset(CTask.addr)==0
<a name="l376"></a> Spawn(): CAlloc()
<a name="l377"></a> TaskDel(): Free()
<a name="l378"></a> CSysFixedArea.system
<a name="l379"></a> Looks like task_flags,locked_flags cause problems with neg offset.
<a name="l380"></a>
<a name="l381"></a>
<a name="l382"></a></span><span class=cF5> Test</span><span class=cF0>
<a name="l383"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/SpriteBitMap.CC.html#l1"><span class=cF4>SpriteBitMap</span></a><span class=cF0>: Grabscroll?
<a name="l384"></a>
<a name="l385"></a>* Return ress for </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l1217"><span class=cF4>GrRect</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l817"><span class=cF4>GrPutChar</span></a><span class=cF0>?
<a name="l386"></a>* Collision counts for </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l1217"><span class=cF4>GrRect</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l817"><span class=cF4>GrPutChar</span></a><span class=cF0>?
<a name="l387"></a>
<a name="l388"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l233"><span class=cF4>StrGet</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l220"><span class=cF4>CharGet</span></a><span class=cF0>() in </span><a href="https://tomawezome.github.io/ZealOS/Misc/OSInstall.CC.html#l1"><span class=cF4>OSInstall</span></a><span class=cF0> didn't like focus change.
<a name="l381"></a>* Make a game, S.E.T.I., with radio telescope array. Put God on air.
<a name="l382"></a>
<a name="l383"></a>
<a name="l384"></a></span><span class=cF5> Test</span><span class=cF0>
<a name="l385"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/SpriteBitMap.CC.html#l1"><span class=cF4>SpriteBitMap</span></a><span class=cF0>: Grabscroll?
<a name="l386"></a>
<a name="l387"></a>* Return ress for </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l1217"><span class=cF4>GrRect</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l817"><span class=cF4>GrPutChar</span></a><span class=cF0>?
<a name="l388"></a>* Collision counts for </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l1217"><span class=cF4>GrRect</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l817"><span class=cF4>GrPutChar</span></a><span class=cF0>?
<a name="l389"></a>
<a name="l390"></a>* Test on Dad's computer or other people's?
<a name="l390"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l233"><span class=cF4>StrGet</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Message.CC.html#l220"><span class=cF4>CharGet</span></a><span class=cF0>() in </span><a href="https://tomawezome.github.io/ZealOS/Misc/OSInstall.CC.html#l1"><span class=cF4>OSInstall</span></a><span class=cF0> didn't like focus change.
<a name="l391"></a>
<a name="l392"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackA.CC.html#l437"><span class=cF4>ICDivEqu</span></a><span class=cF0>() assumes RBX. Is it okay?
<a name="l392"></a>* Test on Dad's computer or other people's?
<a name="l393"></a>
<a name="l394"></a>* InFile PopUp of PopUp?
<a name="l394"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackA.CC.html#l437"><span class=cF4>ICDivEqu</span></a><span class=cF0>() assumes RBX. Is it okay?
<a name="l395"></a>
<a name="l396"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/FileMgr.CC.html#l678"><span class=cF4>FileMgr</span></a><span class=cF0>() help link scrolls out of window.
<a name="l396"></a>* InFile PopUp of PopUp?
<a name="l397"></a>
<a name="l398"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l330"><span class=cF4>MouseHardDriverInstall</span></a><span class=cF0>() throws exceptions? Doesn't work? Why mouse </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l131"><span class=cF4>0x9FC30</span></a><span class=cF0>?
<a name="l398"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/FileMgr.CC.html#l678"><span class=cF4>FileMgr</span></a><span class=cF0>() help link scrolls out of window.
<a name="l399"></a>
<a name="l400"></a>* VirtualBox MP reboot?
<a name="l400"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l330"><span class=cF4>MouseHardDriverInstall</span></a><span class=cF0>() throws exceptions? Doesn't work? Why mouse </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Mouse.CC.html#l131"><span class=cF4>0x9FC30</span></a><span class=cF0>?
<a name="l401"></a>
<a name="l402"></a>* Compiler: Err/Warn line nums?
<a name="l403"></a>* Asm branch-out-of-range warn by one line?
<a name="l404"></a>
<a name="l405"></a>* Make sure queue links safe in one direction. Task </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l50"><span class=cF4>QueueInsert</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l53"><span class=cF4>QueueRemove</span></a><span class=cF0> for multicore cycling forward through tasks.
<a name="l402"></a>* VirtualBox MP reboot?
<a name="l403"></a>
<a name="l404"></a>* Compiler: Err/Warn line nums?
<a name="l405"></a>* Asm branch-out-of-range warn by one line?
<a name="l406"></a>
<a name="l407"></a>* Test removable media id and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3156"><span class=cF4>RS_ATTR_RESIDENT</span></a><span class=cF0>. </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l280"><span class=cF4>Touch</span></a><span class=cF0>(&quot;&quot;,&quot;+T&quot;);
<a name="l407"></a>* Make sure queue links safe in one direction. Task </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l50"><span class=cF4>QueueInsert</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l53"><span class=cF4>QueueRemove</span></a><span class=cF0> for multicore cycling forward through tasks.
<a name="l408"></a>
<a name="l409"></a>
<a name="l410"></a></span><span class=cF5> Uncategorized</span><span class=cF0>
<a name="l411"></a>* DiskCache during FileRead. &lt;CTRL-ALT-c&gt;, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l50"><span class=cF4>Kill</span></a><span class=cF0>().
<a name="l412"></a>
<a name="l413"></a>* MOV U8 [RSP+RCX],DL
<a name="l409"></a>* Test removable media id and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3156"><span class=cF4>RS_ATTR_RESIDENT</span></a><span class=cF0>. </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l280"><span class=cF4>Touch</span></a><span class=cF0>(&quot;&quot;,&quot;+T&quot;);
<a name="l410"></a>
<a name="l411"></a>
<a name="l412"></a></span><span class=cF5> Uncategorized</span><span class=cF0>
<a name="l413"></a>* DiskCache during FileRead. &lt;CTRL-ALT-c&gt;, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l50"><span class=cF4>Kill</span></a><span class=cF0>().
<a name="l414"></a>
<a name="l415"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.screen_image</span></a><span class=cF0>
<a name="l416"></a> &gt;Might want to do ZOOM in U8 graphics and convert screen capture to U8
<a name="l417"></a> &gt;Might want to rev bit order
<a name="l418"></a>
<a name="l419"></a>* This </span><span class=cF4><u>Fs-&gt;catch_except=TRUE</u></span><span class=cF0> causes problems because it
<a name="l420"></a>catches divide and out-of-mem. Not sure what to do, yet.
<a name="l421"></a>
<a name="l422"></a>* Release semaphores or break lock sema,usb_td
<a name="l415"></a>* MOV U8 [RSP+RCX],DL
<a name="l416"></a>
<a name="l417"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.screen_image</span></a><span class=cF0>
<a name="l418"></a> &gt;Might want to do ZOOM in U8 graphics and convert screen capture to U8
<a name="l419"></a> &gt;Might want to rev bit order
<a name="l420"></a>
<a name="l421"></a>* This </span><span class=cF4><u>Fs-&gt;catch_except=TRUE</u></span><span class=cF0> causes problems because it
<a name="l422"></a>catches divide and out-of-mem. Not sure what to do, yet.
<a name="l423"></a>
<a name="l424"></a>* Might make CSprite flood fill operate on a separate bitmap
<a name="l425"></a>and blotted at the end.
<a name="l426"></a>* &lt;CTRL-r&gt; delete subsprite in menu near others
<a name="l427"></a>* make better heapwalk, do something with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3438"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
<a name="l428"></a>
<a name="l429"></a>* static var off of data heap.
<a name="l430"></a>* could add &quot;const&quot; to not set CCF_NOT_CONST flag for trig, etc.
<a name="l431"></a>* could make globalvar imports use MDF_RIP_DISP32.
<a name="l432"></a>* PUSH_CMP allocs reg R9 or whatever
<a name="l433"></a>* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides
<a name="l434"></a>assignments. Is ShiftNoPush fully implemented?
<a name="l435"></a>
<a name="l436"></a>
<a name="l437"></a></span><span class=cF5> Bible Passages</span><span class=cF0>
<a name="l438"></a>It is love I desire </span><a href="http://www.biblegateway.com/verse/en/Hosea%206:6"><span class=cF0>Hosea 6:6</span></a><span class=cF0>
<a name="l439"></a>Males appear three times, not empty </span><a href="http://www.biblegateway.com/verse/en/Deuteronomy%2016:16"><span class=cF0>Deuteronomy 16:16</span></a><span class=cF0>
<a name="l440"></a>Offer a sacrifice of praise </span><a href="http://www.biblegateway.com/verse/en/Hebrews%2013:15"><span class=cF0>Hebrews 13:15</span></a><span class=cF0>
<a name="l441"></a>Do I drink blood of goats? Offer praise </span><a href="http://www.biblegateway.com/verse/en/Psalms%2050:14"><span class=cF0>Psalms 50:14</span></a><span class=cF0>
<a name="l442"></a>When a servant becomes king... </span><a href="http://www.biblegateway.com/verse/en/Proverb%2030:22"><span class=cF0>Proverb 30:22</span></a><span class=cF0>
<a name="l443"></a>Runner's stride </span><a href="http://www.biblegateway.com/verse/en/Psalms%20147:10"><span class=cF0>Psalms 147:10</span></a><span class=cF0>
<a name="l444"></a>Buckling armor </span><a href="http://www.biblegateway.com/verse/en/1%20Kings%2020:11"><span class=cF0>1 Kings 20:11</span></a><span class=cF0>
<a name="l445"></a>Lot cast in the lap </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2016:33"><span class=cF0>Proverbs 16:33</span></a><span class=cF0>
<a name="l446"></a>Lord does not repeat </span><a href="http://www.biblegateway.com/verse/en/Job%2033:14"><span class=cF0>Job 33:14</span></a><span class=cF0>
<a name="l447"></a>Offer only in approved place </span><a href="http://www.biblegateway.com/passage/?search=Deuteronomy%2012:13-18&version=NIV"><span class=cF0>Deuteronomy 12:13-18</span></a><span class=cF0>
<a name="l448"></a>Jesus' zeal for the Temple </span><a href="http://www.biblegateway.com/passage/?search=John%202:14-19&version=NIV"><span class=cF0>John 2:14-19</span></a><span class=cF0>
<a name="l449"></a>Famine not for bread </span><a href="http://www.biblegateway.com/passage/?search=Amos%208:11-12&version=NIV"><span class=cF0>Amos 8:11-12</span></a><span class=cF0>
<a name="l450"></a>To the honest, you are honest </span><a href="http://www.biblegateway.com/verse/en/Psalm%2018:26"><span class=cF0>Psalm 18:26</span></a><span class=cF0>
<a name="l451"></a>Meek and humble of heart </span><a href="http://www.biblegateway.com/verse/en/Matthew%2011:29"><span class=cF0>Matthew 11:29</span></a><span class=cF0>
<a name="l452"></a>Moses gets Aaron </span><a href="http://www.biblegateway.com/passage/?search=Exodus%204:10-16&version=NIV"><span class=cF0>Exodus 4:10-16</span></a><span class=cF0>
<a name="l453"></a>There is no council against the Lord </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2021:30"><span class=cF0>Proverbs 21:30</span></a><span class=cF0>
<a name="l454"></a>Human help is worthless </span><a href="http://www.biblegateway.com/verse/en/Psalm%20108:12"><span class=cF0>Psalm 108:12</span></a><span class=cF0>
<a name="l455"></a>Do not seek your own wealth </span><a href="http://www.biblegateway.com/verse/en/1%20Corinthians%2010:24"><span class=cF0>1 Corinthians 10:24</span></a><span class=cF0>
<a name="l456"></a>Abundance of Spirits </span><a href="http://www.usccb.org/bible/1corinthians/14:12"><span class=cF0>1 Corinthians 14:12</span></a><span class=cF0>
<a name="l457"></a>The stone rejected is cornerstone </span><a href="http://www.biblegateway.com/verse/en/Matthew%2021:42"><span class=cF0>Matthew 21:42</span></a><span class=cF0>
<a name="l458"></a>Egypt rise like flood </span><a href="http://www.biblegateway.com/passage/?search=Jeremiah%2046:7-8&version=NIV"><span class=cF0>Jeremiah 46:7-8</span></a><span class=cF0>
<a name="l459"></a>New wineskins </span><a href="http://www.biblegateway.com/verse/en/Mark%202:22"><span class=cF0>Mark 2:22</span></a><span class=cF0>
<a name="l460"></a>Thousand songs of Solomon </span><a href="http://www.biblegateway.com/passage/?search=1%20Kings%204:32&version=NIV"><span class=cF0>1 Kings 4:32</span></a><span class=cF0>
<a name="l461"></a>Not rich, nor poor, but my portion </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2030:8"><span class=cF0>Proverbs 30:8</span></a><span class=cF0>
<a name="l462"></a>Be hot or cold. Lukewarm I spit you out </span><a href="http://www.biblegateway.com/verse/en/Revelation%203:16"><span class=cF0>Revelation 3:16</span></a><span class=cF0>
<a name="l463"></a>
<a name="l464"></a></span><a href="https://en.wikipedia.org/wiki/Linus_Torvalds"><span class=cF0>Linus Torvalds (Dec 28, 1969)</span></a><span class=cF0>
<a name="l465"></a></span><a href="https://en.wikipedia.org/wiki/John_Carmack"><span class=cF0>John Carmack (Aug 20, 1970)</span></a><span class=cF0>
<a name="l466"></a></span><a href="https://motherboard.vice.com/en_us/article/gods-lonely-programmer"><span class=cF0>Terry A. Davis (Dec 15, 1969)</span></a><span class=cF0>
<a name="l467"></a></span><a href="https://webapp4.asu.edu/directory/person/77201"><span class=cF0>Dr. David Pheanis</span></a><span class=cF0>
<a name="l468"></a></span><a href="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"><span class=cF0>Dr. Konstantinos S. Tsakalis</span></a><span class=cF0>
<a name="l469"></a></span><a href="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"><span class=cF0>Dr. Walter Higgins</span></a><span class=cF0>
<a name="l470"></a></span><a href="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"><span class=cF0>Peter Gadwa</span></a><span class=cF0>
<a name="l471"></a></span><a href="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"><span class=cF0>Ticketmaster</span></a><span class=cF0>
<a name="l472"></a></span><a href="http://web.gccaz.edu/~tfoley/perspage.html"><span class=cF0>Tom Foley</span></a><span class=cF0>
<a name="l473"></a></span><a href="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"><span class=cF0>Graphic Technologies</span></a><span class=cF0>
<a name="l424"></a>* Release semaphores or break lock sema,usb_td
<a name="l425"></a>
<a name="l426"></a>* Might make CSprite flood fill operate on a separate bitmap
<a name="l427"></a>and blotted at the end.
<a name="l428"></a>* &lt;CTRL-r&gt; delete subsprite in menu near others
<a name="l429"></a>* make better heapwalk, do something with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3438"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>.
<a name="l430"></a>
<a name="l431"></a>* static var off of data heap.
<a name="l432"></a>* could add &quot;const&quot; to not set CCF_NOT_CONST flag for trig, etc.
<a name="l433"></a>* could make globalvar imports use MDF_RIP_DISP32.
<a name="l434"></a>* PUSH_CMP allocs reg R9 or whatever
<a name="l435"></a>* Might be problem with NOP in OPT pass1 for NO_PUSH in expressions besides
<a name="l436"></a>assignments. Is ShiftNoPush fully implemented?
<a name="l437"></a>
<a name="l438"></a>
<a name="l439"></a></span><span class=cF5> Bible Passages</span><span class=cF0>
<a name="l440"></a>It is love I desire </span><a href="http://www.biblegateway.com/verse/en/Hosea%206:6"><span class=cF0>Hosea 6:6</span></a><span class=cF0>
<a name="l441"></a>Males appear three times, not empty </span><a href="http://www.biblegateway.com/verse/en/Deuteronomy%2016:16"><span class=cF0>Deuteronomy 16:16</span></a><span class=cF0>
<a name="l442"></a>Offer a sacrifice of praise </span><a href="http://www.biblegateway.com/verse/en/Hebrews%2013:15"><span class=cF0>Hebrews 13:15</span></a><span class=cF0>
<a name="l443"></a>Do I drink blood of goats? Offer praise </span><a href="http://www.biblegateway.com/verse/en/Psalms%2050:14"><span class=cF0>Psalms 50:14</span></a><span class=cF0>
<a name="l444"></a>When a servant becomes king... </span><a href="http://www.biblegateway.com/verse/en/Proverb%2030:22"><span class=cF0>Proverb 30:22</span></a><span class=cF0>
<a name="l445"></a>Runner's stride </span><a href="http://www.biblegateway.com/verse/en/Psalms%20147:10"><span class=cF0>Psalms 147:10</span></a><span class=cF0>
<a name="l446"></a>Buckling armor </span><a href="http://www.biblegateway.com/verse/en/1%20Kings%2020:11"><span class=cF0>1 Kings 20:11</span></a><span class=cF0>
<a name="l447"></a>Lot cast in the lap </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2016:33"><span class=cF0>Proverbs 16:33</span></a><span class=cF0>
<a name="l448"></a>Lord does not repeat </span><a href="http://www.biblegateway.com/verse/en/Job%2033:14"><span class=cF0>Job 33:14</span></a><span class=cF0>
<a name="l449"></a>Offer only in approved place </span><a href="http://www.biblegateway.com/passage/?search=Deuteronomy%2012:13-18&version=NIV"><span class=cF0>Deuteronomy 12:13-18</span></a><span class=cF0>
<a name="l450"></a>Jesus' zeal for the Temple </span><a href="http://www.biblegateway.com/passage/?search=John%202:14-19&version=NIV"><span class=cF0>John 2:14-19</span></a><span class=cF0>
<a name="l451"></a>Famine not for bread </span><a href="http://www.biblegateway.com/passage/?search=Amos%208:11-12&version=NIV"><span class=cF0>Amos 8:11-12</span></a><span class=cF0>
<a name="l452"></a>To the honest, you are honest </span><a href="http://www.biblegateway.com/verse/en/Psalm%2018:26"><span class=cF0>Psalm 18:26</span></a><span class=cF0>
<a name="l453"></a>Meek and humble of heart </span><a href="http://www.biblegateway.com/verse/en/Matthew%2011:29"><span class=cF0>Matthew 11:29</span></a><span class=cF0>
<a name="l454"></a>Moses gets Aaron </span><a href="http://www.biblegateway.com/passage/?search=Exodus%204:10-16&version=NIV"><span class=cF0>Exodus 4:10-16</span></a><span class=cF0>
<a name="l455"></a>There is no council against the Lord </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2021:30"><span class=cF0>Proverbs 21:30</span></a><span class=cF0>
<a name="l456"></a>Human help is worthless </span><a href="http://www.biblegateway.com/verse/en/Psalm%20108:12"><span class=cF0>Psalm 108:12</span></a><span class=cF0>
<a name="l457"></a>Do not seek your own wealth </span><a href="http://www.biblegateway.com/verse/en/1%20Corinthians%2010:24"><span class=cF0>1 Corinthians 10:24</span></a><span class=cF0>
<a name="l458"></a>Abundance of Spirits </span><a href="http://www.usccb.org/bible/1corinthians/14:12"><span class=cF0>1 Corinthians 14:12</span></a><span class=cF0>
<a name="l459"></a>The stone rejected is cornerstone </span><a href="http://www.biblegateway.com/verse/en/Matthew%2021:42"><span class=cF0>Matthew 21:42</span></a><span class=cF0>
<a name="l460"></a>Egypt rise like flood </span><a href="http://www.biblegateway.com/passage/?search=Jeremiah%2046:7-8&version=NIV"><span class=cF0>Jeremiah 46:7-8</span></a><span class=cF0>
<a name="l461"></a>New wineskins </span><a href="http://www.biblegateway.com/verse/en/Mark%202:22"><span class=cF0>Mark 2:22</span></a><span class=cF0>
<a name="l462"></a>Thousand songs of Solomon </span><a href="http://www.biblegateway.com/passage/?search=1%20Kings%204:32&version=NIV"><span class=cF0>1 Kings 4:32</span></a><span class=cF0>
<a name="l463"></a>Not rich, nor poor, but my portion </span><a href="http://www.biblegateway.com/verse/en/Proverbs%2030:8"><span class=cF0>Proverbs 30:8</span></a><span class=cF0>
<a name="l464"></a>Be hot or cold. Lukewarm I spit you out </span><a href="http://www.biblegateway.com/verse/en/Revelation%203:16"><span class=cF0>Revelation 3:16</span></a><span class=cF0>
<a name="l465"></a>
<a name="l466"></a></span><a href="https://en.wikipedia.org/wiki/Linus_Torvalds"><span class=cF0>Linus Torvalds (Dec 28, 1969)</span></a><span class=cF0>
<a name="l467"></a></span><a href="https://en.wikipedia.org/wiki/John_Carmack"><span class=cF0>John Carmack (Aug 20, 1970)</span></a><span class=cF0>
<a name="l468"></a></span><a href="https://motherboard.vice.com/en_us/article/gods-lonely-programmer"><span class=cF0>Terry A. Davis (Dec 15, 1969)</span></a><span class=cF0>
<a name="l469"></a></span><a href="https://webapp4.asu.edu/directory/person/77201"><span class=cF0>Dr. David Pheanis</span></a><span class=cF0>
<a name="l470"></a></span><a href="http://ecee.engineering.asu.edu/directory/tenured-and-tenure-track-faculty/kostantinos-s-tsakalis"><span class=cF0>Dr. Konstantinos S. Tsakalis</span></a><span class=cF0>
<a name="l471"></a></span><a href="https://webapp4.asu.edu/directory/directorysearch?cn=Walter+Higgins"><span class=cF0>Dr. Walter Higgins</span></a><span class=cF0>
<a name="l472"></a></span><a href="http://www.wired.com/magazine/2010/11/mf_ticketmaster/all/1"><span class=cF0>Peter Gadwa</span></a><span class=cF0>
<a name="l473"></a></span><a href="http://www.nytimes.com/1994/11/06/business/ticketmaster-s-mr-tough-guy.html?pagewanted=a"><span class=cF0>Ticketmaster</span></a><span class=cF0>
<a name="l474"></a></span><a href="http://web.gccaz.edu/~tfoley/perspage.html"><span class=cF0>Tom Foley</span></a><span class=cF0>
<a name="l475"></a></span><a href="https://web.archive.org/web/20020811060541/http://www.graphic-technologies.com/"><span class=cF0>Graphic Technologies</span></a><span class=cF0>
</span></pre></body>
</html>

View file

@ -35,5 +35,7 @@ body {background-color:#000000;}
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSExtern.CC.html#l1"><span class=cF4>TOSExtern.CC</span></a><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSMisc.CC.html#l1"><span class=cF4>TOSMisc.CC</span></a><span class=cF4>
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSTheme.CC.html#l1"><span class=cF4>TOSTheme.CC</span></a><span class=cF0>
<a name="l10"></a>
<a name="l11"></a>
</span></pre></body>
</html>

View file

@ -39,5 +39,7 @@ body {background-color:#000000;}
<a name="l11"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/Registry.CC.html#l1"><span class=cF4>Registry.CC</span></a><span class=cF4>
<a name="l12"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/PersonalMenu.DD.html#l1"><span class=cF4>PersonalMenu.DD</span></a><span class=cF4>
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/PersonalNotes.DD.html#l1"><span class=cF4>PersonalNotes.DD</span></a><span class=cF0>
<a name="l14"></a>
<a name="l15"></a>
</span></pre></body>
</html>

View file

@ -37,5 +37,7 @@ body {background-color:#000000;}
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Asm/DivByHand.CC.html#l1"><span class=cF4>DivByHand.CC</span></a><span class=cF4>
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Asm/MulByHand.CC.html#l1"><span class=cF4>MulByHand.CC</span></a><span class=cF4>
<a name="l11"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Asm/PutDec.CC.html#l1"><span class=cF4>PutDec.CC</span></a><span class=cF0>
<a name="l12"></a>
<a name="l13"></a>
</span></pre></body>
</html>

View file

@ -35,5 +35,7 @@ body {background-color:#000000;}
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/FPrintF.CC.html#l1"><span class=cF4>FPrintF.CC</span></a><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/SerializeTree.CC.html#l1"><span class=cF4>SerializeTree.CC</span></a><span class=cF4>
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/UnusedSpaceRep.CC.html#l1"><span class=cF4>UnusedSpaceRep.CC</span></a><span class=cF0>
<a name="l10"></a>
<a name="l11"></a>
</span></pre></body>
</html>

View file

@ -43,5 +43,7 @@ body {background-color:#000000;}
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/TreeDemo.CC.html#l1"><span class=cF4>TreeDemo.CC</span></a><span class=cF4>
<a name="l16"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/UnusedDefine.CC.html#l1"><span class=cF4>UnusedDefine.CC</span></a><span class=cF4>
<a name="l17"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DemoDoc.DD.html#l1"><span class=cF4>DemoDoc.DD</span></a><span class=cF0>
<a name="l18"></a>
<a name="l19"></a>
</span></pre></body>
</html>

View file

@ -33,5 +33,7 @@ body {background-color:#000000;}
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Stadium/StadiumGen.CC.html#l1"><span class=cF4>StadiumGen.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Stadium/StadiumBG.DD.html#l1"><span class=cF4>StadiumBG.DD</span></a><span class=cF4>
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Stadium/StadiumBG.GR.html#l1"><span class=cF4>StadiumBG.GR</span></a><span class=cF0>
<a name="l8"></a>
<a name="l9"></a>
</span></pre></body>
</html>

View file

@ -61,5 +61,7 @@ body {background-color:#000000;}
<a name="l33"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Whap.CC.html#l1"><span class=cF4>Whap.CC</span></a><span class=cF4>
<a name="l34"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Zing.CC.html#l1"><span class=cF4>Zing.CC</span></a><span class=cF4>
<a name="l35"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/ZoneOut.CC.html#l1"><span class=cF4>ZoneOut.CC</span></a><span class=cF0>
<a name="l36"></a>
<a name="l37"></a>
</span></pre></body>
</html>

View file

@ -30,7 +30,7 @@ body {background-color:#000000;}
<a name="l3"></a></span><span class=cF2>$IB,&quot;&lt;1&gt;&quot;,BI=1,BP=&quot;::/Demo/Graphics/SpritePut.CC,2&quot;$</span><span class=cF0>
<a name="l4"></a>
<a name="l5"></a></span><span class=cF2>That imports an external sprite.</span><span class=cF0> </span><span class=cF2>It's</span><span class=cF0>
<a name="l6"></a></span><span class=cF2>called a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1114"><span class=cF4>DOCEF_BIN_PTR_LINK</span></a><span class=cF2>. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l296"><span class=cF4>BP=&quot;&quot;</span></a><span class=cF2>.</span><span class=cF0>
<a name="l6"></a></span><span class=cF2>called a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1114"><span class=cF4>DOCEF_BIN_PTR_LINK</span></a><span class=cF2>. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l297"><span class=cF4>BP=&quot;&quot;</span></a><span class=cF2>.</span><span class=cF0>
<a name="l7"></a>
<a name="l8"></a></span><span class=cF2>Press &lt;CTRL-r&gt; and &quot;Ptr to Sprite&quot;.</span><span class=cF0>
<a name="l9"></a></span><span class=cF2>Then, enter a file and the number of</span><span class=cF0>

View file

@ -82,5 +82,7 @@ body {background-color:#000000;}
<a name="l54"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/WallPaperFish.CC.html#l1"><span class=cF4>WallPaperFish.CC</span></a><span class=cF4>
<a name="l55"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/WallPaperStars.CC.html#l1"><span class=cF4>WallPaperStars.CC</span></a><span class=cF4>
<a name="l56"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/WinZBuf.CC.html#l1"><span class=cF4>WinZBuf.CC</span></a><span class=cF0>
<a name="l57"></a>
<a name="l58"></a>
</span></pre></body>
</html>

View file

@ -28,7 +28,7 @@ body {background-color:#000000;}
<a name="l1"></a><span class=cF2>/* To run this, do a directory, right click on</span><span class=cF0>
<a name="l2"></a></span><span class=cF2>this file's name and sel &quot;InFile&quot;.</span><span class=cF0>
<a name="l3"></a></span><span class=cF2>Or, type </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l572"><span class=cF4>InFile</span></a><span class=cF2>(filename);</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l5"></a></span><span class=cF2>*/</span><span class=cF0>
<a name="l6"></a>
<a name="l7"></a></span><span class=cF9>I64</span><span class=cF0> i;

View file

@ -28,7 +28,7 @@ body {background-color:#000000;}
<a name="l1"></a><span class=cF2>/* To run this, do a directory, right click on</span><span class=cF0>
<a name="l2"></a></span><span class=cF2>this file's name and sel &quot;InFile&quot;.</span><span class=cF0>
<a name="l3"></a></span><span class=cF2>Or, type </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l572"><span class=cF4>InFile</span></a><span class=cF2>(filename);</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l5"></a>
<a name="l6"></a></span><span class=cF2>This InFile will renum the defines in</span><span class=cF0>
<a name="l7"></a></span><span class=cF2>InEd.DD.</span><span class=cF0> </span><span class=cF2>Test it by numbering a few wrong</span><span class=cF0>

View file

@ -28,7 +28,7 @@ body {background-color:#000000;}
<a name="l1"></a><span class=cF2>/* To run this, do a directory, right click on</span><span class=cF0>
<a name="l2"></a></span><span class=cF2>this file's name and sel &quot;InFile&quot;.</span><span class=cF0>
<a name="l3"></a></span><span class=cF2>Or, type </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l572"><span class=cF4>InFile</span></a><span class=cF2>(filename);</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l4"></a></span><span class=cF2>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF2> in the glossary for more info.</span><span class=cF0>
<a name="l5"></a>
<a name="l6"></a></span><span class=cF2>Profiling does not require InFiles.</span><span class=cF0>
<a name="l7"></a></span><span class=cF2>*/</span><span class=cF0>

View file

@ -36,5 +36,7 @@ body {background-color:#000000;}
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InEd.IN.html#l1"><span class=cF4>InEd.IN</span></a><span class=cF4>
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InPopUpWait.IN.html#l1"><span class=cF4>InPopUpWait.IN</span></a><span class=cF4>
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InProfile.IN.html#l1"><span class=cF4>InProfile.IN</span></a><span class=cF0>
<a name="l11"></a>
<a name="l12"></a>
</span></pre></body>
</html>

View file

@ -81,9 +81,9 @@ body {background-color:#000000;}
<a name="l54"></a>
<a name="l55"></a>----
<a name="l56"></a>
<a name="l57"></a>ZealOS identity-maps everything, all the time, so the usual convention of upper memory being for kernel does not apply. It uses
<a name="l58"></a>physical addresses, basically. It puts all code in the lowest 2-Gig memory range so that it can use the CALL REL32 instruction,
<a name="l59"></a>the fastest. It never changes privilege levels or messes with page tables, once it is up-and-running.
<a name="l57"></a>ZealOS identity-maps everything, all the time, so the usual convention of upper memory being for kernel does not apply. It
<a name="l58"></a>uses physical addresses, basically. It puts all code in the lowest 2-Gig memory range so that it can use the CALL REL32
<a name="l59"></a>instruction, the fastest. It never changes privilege levels or messes with page tables, once it is up-and-running.
<a name="l60"></a>
<a name="l61"></a>----
<a name="l62"></a>

View file

@ -35,8 +35,8 @@ body {background-color:#000000;}
<a name="l8"></a> </span><span class=cF2>The main compiler optimizes See </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CInit.CC.html#l26"><span class=cF4>Intermediate Code Attributes</span></a><span class=cF2>, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptPass012.CC.html#l374"><span class=cF4>Combining Consts</span></a><span class=cF2>, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptPass3.CC.html#l627"><span class=cF4>Choosing Reg Vars</span></a><span class=cF2>. Use </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l50"><span class=cF4>PassTrace</span></a><span class=cF2>() to see </span><span class=cF0>
<a name="l9"></a> </span><span class=cF2>the optimization stages.</span><span class=cF0>
<a name="l10"></a>
<a name="l11"></a> </span><span class=cF2>The main compiler makes machine code in the back end. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1798"><span class=cF4>IC Struct</span></a><span class=cF2>, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/ParseLib.CC.html#l289"><span class=cF4>COCCompile</span></a><span class=cF2> and </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptPass789A.CC.html#l596"><span class=cF4>OptPass789A</span></a><span class=cF2>(), </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackA.CC.html#l273"><span class=cF4>BackEnd</span></a><span class=cF2>. Set </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l61"><span class=cF4>Trace</span></a><span class=cF2>(ON) to </span><span class=cF0>
<a name="l12"></a> </span><span class=cF2>see the output of the backend.</span><span class=cF0>
<a name="l11"></a> </span><span class=cF2>The main compiler makes machine code in the back end. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1798"><span class=cF4>IC Struct</span></a><span class=cF2>, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/ParseLib.CC.html#l289"><span class=cF4>COCCompile</span></a><span class=cF2> and </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OptPass789A.CC.html#l596"><span class=cF4>OptPass789A</span></a><span class=cF2>(), </span><a href="https://tomawezome.github.io/ZealOS/Compiler/BackA.CC.html#l273"><span class=cF4>BackEnd</span></a><span class=cF2>. Set </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l61"><span class=cF4>Trace</span></a><span class=cF2>(ON) </span><span class=cF0>
<a name="l12"></a> </span><span class=cF2>to see the output of the backend.</span><span class=cF0>
<a name="l13"></a></span><span class=cF5>
<a name="l14"></a><u>-] Mini Compiler</span><span class=cF0>
<a name="l15"></a></u> </span><span class=cF2>For this mini compiler, some things you should know about 64-bit asm:</span><span class=cF0>

View file

@ -40,5 +40,7 @@ body {background-color:#000000;}
<a name="l12"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/PCIInterrupts.CC.html#l1"><span class=cF4>PCIInterrupts.CC</span></a><span class=cF4>
<a name="l13"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/Ring3.CC.html#l1"><span class=cF4>Ring3.CC</span></a><span class=cF4>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/64BitAsmQuiz.DD.html#l1"><span class=cF4>64BitAsmQuiz.DD</span></a><span class=cF0>
<a name="l15"></a>
<a name="l16"></a>
</span></pre></body>
</html>

View file

@ -37,5 +37,7 @@ body {background-color:#000000;}
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/MPRadix.CC.html#l1"><span class=cF4>MPRadix.CC</span></a><span class=cF4>
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/Palindrome.CC.html#l1"><span class=cF4>Palindrome.CC</span></a><span class=cF4>
<a name="l11"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/Primes.CC.html#l1"><span class=cF4>Primes.CC</span></a><span class=cF0>
<a name="l12"></a>
<a name="l13"></a>
</span></pre></body>
</html>

View file

@ -31,5 +31,7 @@ body {background-color:#000000;}
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/index.html#l1"><span class=c04>../</span></a><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/RevFileDemo/Rev.CC.html#l1"><span class=cF4>Rev.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/RevFileDemo/DemoPoemBwd.DD.html#l1"><span class=cF4>DemoPoemBwd.DD</span></a><span class=cF0>
<a name="l6"></a>
<a name="l7"></a>
</span></pre></body>
</html>

View file

@ -31,5 +31,7 @@ body {background-color:#000000;}
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/index.html#l1"><span class=c04>../</span></a><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/SortFileDemo/F64FileGen.CC.html#l1"><span class=cF4>F64FileGen.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/SortFileDemo/F64FileSort.CC.html#l1"><span class=cF4>F64FileSort.CC</span></a><span class=cF0>
<a name="l6"></a>
<a name="l7"></a>
</span></pre></body>
</html>

View file

@ -33,5 +33,7 @@ body {background-color:#000000;}
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Sound/MorseCode.CC.html#l1"><span class=cF4>MorseCode.CC</span></a><span class=cF4>
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Sound/OhGreat.CC.html#l1"><span class=cF4>OhGreat.CC</span></a><span class=cF4>
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Sound/WaterFowl.CC.html#l1"><span class=cF4>WaterFowl.CC</span></a><span class=cF0>
<a name="l8"></a>
<a name="l9"></a>
</span></pre></body>
</html>

View file

@ -37,5 +37,7 @@ body {background-color:#000000;}
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Templates/Util1.CC.html#l1"><span class=cF4>Util1.CC</span></a><span class=cF4>
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Templates/Util2.CC.html#l1"><span class=cF4>Util2.CC</span></a><span class=cF4>
<a name="l11"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Templates/InEdUtil.IN.html#l1"><span class=cF4>InEdUtil.IN</span></a><span class=cF0>
<a name="l12"></a>
<a name="l13"></a>
</span></pre></body>
</html>

View file

@ -32,13 +32,13 @@ body {background-color:#000000;}
<a name="l5"></a>TempleOS is a free, public domain, open source, x86_64, non-preemptive multi-tasking, multi-cored, ring-0-only,
<a name="l6"></a>single-address-map (identity-mapped), non-networked, PC operating system. Paging is, basically, not used.
<a name="l7"></a>
<a name="l8"></a>The CIA obsfucates to foil India, China, Russia and Korea. They make things more complicated than necessary. TempleOS is more
<a name="l9"></a>simple than necessary. It is obnoxiously simple. If you look at this </span><a href="http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html"><span class=cF0>&quot;Hello World&quot; joke</span></a><span class=cF0>, you can see why Terry capped the line
<a name="l10"></a>count of TempleOS at 100,000.
<a name="l8"></a>The CIA obsfucates to foil India, China, Russia and Korea. They make things more complicated than necessary. TempleOS is
<a name="l9"></a>more simple than necessary. It is obnoxiously simple. If you look at this </span><a href="http://www.ariel.com.au/jokes/The_Evolution_of_a_Programmer.html"><span class=cF0>&quot;Hello World&quot; joke</span></a><span class=cF0>, you can see why Terry capped
<a name="l10"></a>the line count of TempleOS at 100,000.
<a name="l11"></a>
<a name="l12"></a>God said TempleOS must be perfect, so backward compatibility is not promised.
<a name="l13"></a>
<a name="l14"></a>Terry Davis wrote all 80,849 lines of TempleOS over a span of 15.0 years, including the 64-bit compiler. He was a professional
<a name="l15"></a>operating system developer since 1990 when he worked on Ticketmaster's VAX OS.
<a name="l14"></a>Terry Davis wrote all 80,849 lines of TempleOS over a span of 15.0 years, including the 64-bit compiler. He was a
<a name="l15"></a>professional operating system developer since 1990 when he worked on Ticketmaster's VAX OS.
</span></pre></body>
</html>

View file

@ -66,13 +66,14 @@ body {background-color:#000000;}
<a name="l39"></a> </span><span class=cF5>DirEntryDel</span><span class=cF0>(tmpde1);
<a name="l40"></a> tmpde1 = tmpde2;
<a name="l41"></a> }
<a name="l42"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l43"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l44"></a> </span><span class=cF6>&quot;No matching entries\n&quot;</span><span class=cF0>;
<a name="l45"></a>
<a name="l46"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l47"></a>}
<a name="l48"></a>
<a name="l42"></a> </span><span class=cF6>&quot;\n\n&quot;</span><span class=cF0>;
<a name="l43"></a> </span><span class=cF7>}</span><span class=cF0>
<a name="l44"></a> </span><span class=cF1>else</span><span class=cF0>
<a name="l45"></a> </span><span class=cF6>&quot;No matching entries\n&quot;</span><span class=cF0>;
<a name="l46"></a>
<a name="l47"></a> </span><span class=cF1>return</span><span class=cF0> res;
<a name="l48"></a>}
<a name="l49"></a>
<a name="l50"></a>
</span></pre></body>
</html>

View file

@ -433,7 +433,7 @@ body {background-color:#000000;}
<a name="l406"></a> </span><span class=cF9>CDoc</span><span class=cF0> *doc_in, *doc_out;
<a name="l407"></a>
<a name="l408"></a> </span><span class=cF5>SettingsPush</span><span class=cF0>; </span><span class=cF2>//See </span><a href="https://tomawezome.github.io/ZealOS/System/TaskSettings.CC.html#l3"><span class=cF4>SettingsPush</span></a><span class=cF0>
<a name="l409"></a> </span><span class=cF5>WinHorz</span><span class=cF0>(</span><span class=cFE>0</span><span class=cF0>, width - </span><span class=cFE>1</span><span class=cF0>); </span><span class=cF2>//Sets doc width for word wrap.</span><span class=cF0>
<a name="l409"></a> </span><span class=cF5>WinHorz</span><span class=cF0>(</span><span class=cFE>1</span><span class=cF0>, width - </span><span class=cFE>2</span><span class=cF0>); </span><span class=cF2>//Sets doc width for word wrap.</span><span class=cF0>
<a name="l410"></a>
<a name="l411"></a> in_name=</span><span class=cF5>ExtDefault</span><span class=cF0>(_in_name, </span><span class=cF6>&quot;CC&quot;</span><span class=cF0>);
<a name="l412"></a> </span><span class=cF1>if</span><span class=cF0> (_out_name)

View file

@ -34,5 +34,7 @@ body {background-color:#000000;}
<a name="l6"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/ToHtmlToTXTDemo/TXTGen.CC.html#l1"><span class=cF4>TXTGen.CC</span></a><span class=cF4>
<a name="l7"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/ToHtmlToTXTDemo/ToHtml.CC.html#l1"><span class=cF4>ToHtml.CC</span></a><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/ToHtmlToTXTDemo/DemoInPage.DD.html#l1"><span class=cF4>DemoInPage.DD</span></a><span class=cF0>
<a name="l9"></a>
<a name="l10"></a>
</span></pre></body>
</html>

View file

@ -31,5 +31,7 @@ body {background-color:#000000;}
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/index.html#l1"><span class=c04>../</span></a><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/WebLogDemo/WebLogRep.CC.html#l1"><span class=cF4>WebLogRep.CC</span></a><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/WebLogDemo/WebLogScramble.CC.html#l1"><span class=cF4>WebLogScramble.CC</span></a><span class=cF0>
<a name="l6"></a>
<a name="l7"></a>
</span></pre></body>
</html>

View file

@ -78,5 +78,7 @@ body {background-color:#000000;}
<a name="l50"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/SuggestSpelling.CC.html#l1"><span class=cF4>SuggestSpelling.CC</span></a><span class=cF4>
<a name="l51"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/TimeIns.CC.html#l1"><span class=cF4>TimeIns.CC</span></a><span class=cF4>
<a name="l52"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/WordSearch.CC.html#l1"><span class=cF4>WordSearch.CC</span></a><span class=cF0>
<a name="l53"></a>
<a name="l54"></a>
</span></pre></body>
</html>

View file

@ -49,13 +49,13 @@ body {background-color:#000000;}
<a name="l22"></a>Engineering from ASU, basically, embedded systems, and a master's in Electrical Engineering from ASU, control systems. He
<a name="l23"></a>worked as a software, hardware and mechanical engineer at Ticketmaster from 1990-1996.
<a name="l24"></a>
<a name="l25"></a>He designed a 3 axis stepper-motor-driven milling machine 1996-1997 with a CAD/CAM package for a company he started called Home
<a name="l26"></a>Automation and Robotic Equipment.
<a name="l25"></a>He designed a 3 axis stepper-motor-driven milling machine 1996-1997 with a CAD/CAM package for a company he started called
<a name="l26"></a>Home Automation and Robotic Equipment.
<a name="l27"></a></span><span class=cFA>
<a name="l28"></a></span><center><img src="http://www.templeos.org/images/Machine.jpg" width="600" height="400" alt=""></center><span class=cF0>
<a name="l29"></a>
<a name="l30"></a>Terry worked for a company named Xytec Corp. 1997-1999. They made FPGA-based image processing equipment. He wrote </span><span class=cF2>SimStructure</span><span class=cF0>
<a name="l31"></a>from 2000-2001 for H.A.R.E. He worked as head software/electrical engineer for a company called Graphic Technologies,
<a name="l30"></a>Terry worked for a company named Xytec Corp. 1997-1999. They made FPGA-based image processing equipment. He wrote </span><span class=cF2>SimStructu
<a name="l31"></a>re</span><span class=cF0> from 2000-2001 for H.A.R.E. He worked as head software/electrical engineer for a company called Graphic Technologies,
<a name="l32"></a>2001-2002, making replacement chips for toner printer cartridges so they could be refilled.
<a name="l33"></a>
<a name="l34"></a></span><span class=cF5>Credits:</span><span class=cF0>

View file

@ -27,13 +27,13 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Block Chain</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>There was a technique on the Commodore 64 where disk blocks were chained together with a block pointer at the end of each block.
<a name="l4"></a>This is far inferior to having a file allocation table, as in FAT32.
<a name="l3"></a>There was a technique on the Commodore 64 where disk blocks were chained together with a block pointer at the end of each
<a name="l4"></a>block. This is far inferior to having a file allocation table, as in FAT32.
<a name="l5"></a>
<a name="l6"></a>The </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system does not allow files to grow because it only has an allocation bitmap and not a FAT table. This &quot;flaw&quot;
<a name="l7"></a>is by design. Terry intentionally crippled the operating system, making it a toy with the wisdom that this will prevent
<a name="l8"></a>commercialization and corruption. The toy spirit of the operating system will be preserved going into the future. The vision
<a name="l9"></a>for this operating system was a modern Commodore 64, which was a fun toy.
<a name="l6"></a>The </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system does not allow files to grow because it only has an allocation bitmap and not a FAT table. This
<a name="l7"></a>&quot;flaw&quot; is by design. Terry intentionally crippled the operating system, making it a toy with the wisdom that this will
<a name="l8"></a>prevent commercialization and corruption. The toy spirit of the operating system will be preserved going into the future. Th
<a name="l9"></a>e vision for this operating system was a modern Commodore 64, which was a fun toy.
<a name="l10"></a>
<a name="l11"></a>Doing whole file operations is the ZealOS way of doing thinks. It is the simplest and, ironically, the fastest. It is
<a name="l12"></a>obnoxious in the characteristic way that ZealOS is obnoxious, flaunting massive modern resources in a way that makes old
@ -42,20 +42,20 @@ body {background-color:#000000;}
<a name="l15"></a>When doing large, whole-file operations, immediately memory fragmentation is a serious problem, but not so for allocations in
<a name="l16"></a>the range under a Meg (with occasional larger ones).
<a name="l17"></a>
<a name="l18"></a>The file compression scheme in ZealOS only works on whole file operations and the </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDoc.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> format cannot have text tacked onto the
<a name="l19"></a>end, since binary data is at the end.
<a name="l18"></a>The file compression scheme in ZealOS only works on whole file operations and the </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDoc.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> format cannot have text tacked onto
<a name="l19"></a>the end, since binary data is at the end.
<a name="l20"></a>
<a name="l21"></a>Terry didn't want to spoil fun, so of course offered a way to get awesome performance that is, ironically, superior. </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>()
<a name="l22"></a>and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>() allow you to read a block offset from the start of a file. Since files are all contiguous, this is incredibly
<a name="l23"></a>efficient. You just have to declare the desired file size when you create it with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l9"><span class=cF4>FOpen</span></a><span class=cF0>() and cannot change it. See </span><span class=cF4>
<a name="l24"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/DataBase.CC.html#l1"><span class=cF4>::/Demo/Disk/DataBase.CC</span></a><span class=cF0>.
<a name="l21"></a>Terry didn't want to spoil fun, so of course offered a way to get awesome performance that is, ironically, superior. </span><span class=cF4>
<a name="l22"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>() allow you to read a block offset from the start of a file. Since files are all contiguous, this is
<a name="l23"></a>incredibly efficient. You just have to declare the desired file size when you create it with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l9"><span class=cF4>FOpen</span></a><span class=cF0>() and cannot change it.
<a name="l24"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/DataBase.CC.html#l1"><span class=cF4>::/Demo/Disk/DataBase.CC</span></a><span class=cF0>.
<a name="l25"></a>
<a name="l26"></a>If you like, you are encouraged to to do raw </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l87"><span class=cF4>BlkWrite</span></a><span class=cF0>() directly on a drive. Just get a pointer to a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3340"><span class=cF4>CDrive</span></a><span class=cF0> with </span><span class=cF4>
<a name="l27"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l211"><span class=cF4>Letter2Drive</span></a><span class=cF0>() and you are on your way! Your computer is supposed to be a fun toy! You can make an entire partition used for a
<a name="l28"></a>database, or invent a file system.
<a name="l26"></a>If you like, you are encouraged to to do raw </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l37"><span class=cF4>BlkRead</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskBlk.CC.html#l87"><span class=cF4>BlkWrite</span></a><span class=cF0>() directly on a drive. Just get a pointer to a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3340"><span class=cF4>CDrive</span></a><span class=cF0>
<a name="l27"></a>with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l211"><span class=cF4>Letter2Drive</span></a><span class=cF0>() and you are on your way! Your computer is supposed to be a fun toy! You can make an entire partition
<a name="l28"></a>used for a database, or invent a file system.
<a name="l29"></a>
<a name="l30"></a>On the whole, the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system with its whole-file-only limitation bring beautiful harmony. It beautifully captures the
<a name="l31"></a>spirit of ZealOS with simplicity and, ironic speed, since contiguous is fastest.
<a name="l30"></a>On the whole, the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system with its whole-file-only limitation bring beautiful harmony. It beautifully captures
<a name="l31"></a>the spirit of ZealOS with simplicity and, ironic speed, since contiguous is fastest.
<a name="l32"></a>
<a name="l33"></a></span><span class=cF8>
<a name="l34"></a>* &quot;Commodore 64&quot; is a trademark owned by Polabe Holding NV.

View file

@ -29,19 +29,19 @@ body {background-color:#000000;}
<a name="l2"></a>
<a name="l3"></a>ZealOS only supports traditional </span><span class=cF2>BIOS</span><span class=cF0> booting, not the newer technique, </span><span class=cF2>UEFI</span><span class=cF0>. This document describes </span><span class=cF2>BIOS</span><span class=cF0> booting.
<a name="l4"></a>
<a name="l5"></a>When you turn-on (power-up) a computer or you do a hardware reset, the computer starts executing the </span><span class=cF2>BIOS</span><span class=cF0>. Sometimes, you must
<a name="l6"></a>change the </span><span class=cF2>BIOS</span><span class=cF0> boot order to boot the device you want.
<a name="l5"></a>When you turn-on (power-up) a computer or you do a hardware reset, the computer starts executing the </span><span class=cF2>BIOS</span><span class=cF0>. Sometimes, you
<a name="l6"></a>must change the </span><span class=cF2>BIOS</span><span class=cF0> boot order to boot the device you want.
<a name="l7"></a>
<a name="l8"></a>The </span><span class=cF2>BIOS</span><span class=cF0> loads a boot sector from CD/DVD, hard disk or whatever. The boot sector runs in 16-bit real mode and often loads-in
<a name="l9"></a>a second file that's bigger if it can't be done by just one sector. It's a safe bet that boot sectors are hand-coded assembly
<a name="l10"></a>language. Most boot sectors use the </span><span class=cF2>BIOS</span><span class=cF0> to load-in the next stage.
<a name="l8"></a>The </span><span class=cF2>BIOS</span><span class=cF0> loads a boot sector from CD/DVD, hard disk or whatever. The boot sector runs in 16-bit real mode and often
<a name="l9"></a>loads-in a second file that's bigger if it can't be done by just one sector. It's a safe bet that boot sectors are hand-coded
<a name="l10"></a>assembly language. Most boot sectors use the </span><span class=cF2>BIOS</span><span class=cF0> to load-in the next stage.
<a name="l11"></a>
<a name="l12"></a>Not only do boot sectors have a size limit, 512 bytes or 2048 bytes for CD/DVD, the files they load have to fit within 640K
<a name="l13"></a>because they run in 16-bit mode. This means they usually can't just load the whole operating system and start it running.
<a name="l14"></a>Some boot loaders, like Grub, have a capability of switching modes before handing-off control to the operating system. The
<a name="l15"></a>operating system must load the rest of itself. With ZealOS, the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> file is loaded by the boot sector. We try to
<a name="l16"></a>put a minimum in the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>Kernel Module</span></a><span class=cF0>, so that it will always fit in 640K. When Kernel.BIN runs, it switches to 32-bit mode, then,
<a name="l17"></a>to 64-bit mode allowing access to more memory. Then, it loads in the rest of ZealOS by executing </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0>.
<a name="l16"></a>put a minimum in the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>Kernel Module</span></a><span class=cF0>, so that it will always fit in 640K. When Kernel.BIN runs, it switches to 32-bit mode,
<a name="l17"></a>then, to 64-bit mode allowing access to more memory. Then, it loads in the rest of ZealOS by executing </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0>.
<a name="l18"></a>
<a name="l19"></a>All the boot related code for ZealOS is in the </span><span class=cF2>/System/Boot</span><span class=cF0> directory.
<a name="l20"></a></span><span class=cF4>
@ -62,19 +62,19 @@ body {background-color:#000000;}
<a name="l35"></a>
<a name="l36"></a>The boot records don't access directories because that would make them too big for one block and would make them depend on a
<a name="l37"></a>file system layout. Instead, they get patched with the LBA, logical block addresses, to load files. To update with a new
<a name="l38"></a>ZealOS kernel, you must create a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> binary file and patch the boot loader so it knows the LBA blocks to load. Ther
<a name="l39"></a>efore, you usually recompile the kernel and update the boot sector at the same time with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootMHDIns.CC.html#l76"><span class=cF4>BootMHDIns</span></a><span class=cF0>() will
<a name="l38"></a>ZealOS kernel, you must create a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> binary file and patch the boot loader so it knows the LBA blocks to load. Th
<a name="l39"></a>erefore, you usually recompile the kernel and update the boot sector at the same time with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootMHDIns.CC.html#l76"><span class=cF4>BootMHDIns</span></a><span class=cF0>() will
<a name="l40"></a>install a master boot loader.
<a name="l41"></a>
<a name="l42"></a>With ZealOS, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> loads </span><a href="https://tomawezome.github.io/ZealOS/Compiler/Compiler.PRJ.html#l1"><span class=cF4>::/Compiler/Compiler.BIN</span></a><span class=cF0> so it can work with source code from then on. It compiles start-up
<a name="l43"></a>scripts beginning with </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0> into the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0>'s memory including the code in the </span><span class=cF2>/System</span><span class=cF0> and </span><span class=cF2>/Home</span><span class=cF0> directories.
<a name="l44"></a>
<a name="l45"></a>It is possible to do a fast reboot without doing a hardware reset. You might do this when working on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> or your
<a name="l46"></a>start-up scripts when you want to compile them effect. See </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootRAM.CC.html#l33"><span class=cF4>BootRAM</span></a><span class=cF0>().
<a name="l47"></a>
<a name="l48"></a></span><span class=cFA>
<a name="l49"></a>/* Graphics Not Rendered in HTML */</span><span class=cF0>
<a name="l50"></a>
<a name="l42"></a>With ZealOS, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> loads </span><a href="https://tomawezome.github.io/ZealOS/Compiler/Compiler.PRJ.html#l1"><span class=cF4>::/Compiler/Compiler.BIN</span></a><span class=cF0> so it can work with source code from then on. It compiles
<a name="l43"></a>start-up scripts beginning with </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0> into the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0>'s memory including the code in the </span><span class=cF2>/System</span><span class=cF0> and </span><span class=cF2>/Home</span><span class=cF0>
<a name="l44"></a>directories.
<a name="l45"></a>
<a name="l46"></a>It is possible to do a fast reboot without doing a hardware reset. You might do this when working on </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>::/Kernel.BIN.C</span></a><span class=cF0> or your
<a name="l47"></a>start-up scripts when you want to compile them effect. See </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootRAM.CC.html#l33"><span class=cF4>BootRAM</span></a><span class=cF0>().
<a name="l48"></a>
<a name="l49"></a></span><span class=cFA>
<a name="l50"></a>/* Graphics Not Rendered in HTML */</span><span class=cF0>
<a name="l51"></a>
<a name="l52"></a>
<a name="l53"></a>
@ -120,5 +120,6 @@ body {background-color:#000000;}
<a name="l93"></a>
<a name="l94"></a>
<a name="l95"></a>
<a name="l96"></a>
</span></pre></body>
</html>

View file

@ -282,17 +282,17 @@ body {background-color:#000000;}
<a name="l254"></a>* Updated </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/MemRep.CC.html#l219"><span class=cF4>MemRep</span></a><span class=cF0>() to report on VBE variables.
<a name="l255"></a>* Renamed VGAFlush() -&gt; </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Display.CC.html#l92"><span class=cF4>LFBFlush</span></a><span class=cF0>().
<a name="l256"></a>* Updated </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Palette.CC.html#l1"><span class=cF4>Palette Demo</span></a><span class=cF0> to use current palette environment.
<a name="l257"></a>* Shortened </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l1"><span class=cF4>CheckPtr</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l9"><span class=cF4>CheckCodePtr</span></a><span class=cF0>(). Even though boolean expressions outside of </span><span class=cF1>if</span><span class=cF0> statements are compiled inefficiently,
<a name="l258"></a>clarity and low line count is more important.
<a name="l257"></a>* Shortened </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l1"><span class=cF4>CheckPtr</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l9"><span class=cF4>CheckCodePtr</span></a><span class=cF0>(). Even though boolean expressions outside of </span><span class=cF1>if</span><span class=cF0> statements are compiled
<a name="l258"></a>inefficiently, clarity and low line count is more important.
<a name="l259"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l313"><span class=cF4>RawDr</span></a><span class=cF0>() is 40 columns off the right of the screen, instead of fixed at column 40.
<a name="l260"></a>* Windows start at </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l248"><span class=cF4>4/5th the screen height</span></a><span class=cF0> instead of row 13. System task window is </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l22"><span class=cF4>1/5th the screen height</span></a><span class=cF0>.
<a name="l261"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>(&quot;RLf_VGA&quot;, &quot;</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l576"><span class=cF4>RLf_VESA</span></a><span class=cF0>&quot;);
<a name="l262"></a>* Removed VGA text mode support, and all definitions relating to it, including from the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KConfig.CC.html#l1"><span class=cF4>kernel config</span></a><span class=cF0>.
<a name="l263"></a>* Added </span><span class=cF9><u>screen resolution selection</u></span><span class=cF0> to kernel configuration procedure.
<a name="l264"></a>* Added </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/VideoRep.CC.html#l1"><span class=cF4>VideoRep</span></a><span class=cF0>() to report on VBE modes and info, added test case to the </span><a href="https://tomawezome.github.io/ZealOS/Misc/OSTestSuite.CC.html#l1821"><span class=cF4>OSTestSuite</span></a><span class=cF0>.
<a name="l265"></a>* <u>Added VBE graphics support.</u> Screen zooming is non-functional at the moment. We are setting 32-bit color graphics modes but the
<a name="l266"></a>graphics library is still 4-bit (16 color) internally. </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/MiniGrLib.CC.html#l1"><span class=cF4>MiniGrLib</span></a><span class=cF0> broken for obvious reasons. Keeping it because its intention is
<a name="l267"></a>to teach a how a graphics library works, generically. Removed 2 smaller VGA hardware programming demos.
<a name="l265"></a>* <u>Added VBE graphics support.</u> Screen zooming is non-functional at the moment. We are setting 32-bit color graphics modes but
<a name="l266"></a>the graphics library is still 4-bit (16 color) internally. </span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/MiniGrLib.CC.html#l1"><span class=cF4>MiniGrLib</span></a><span class=cF0> broken for obvious reasons. Keeping it because its
<a name="l267"></a>intention is to teach a how a graphics library works, generically. Removed 2 smaller VGA hardware programming demos.
<a name="l268"></a> Rundown:
<a name="l269"></a> - Added classes </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l503"><span class=cF4>CVBEInfo</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l520"><span class=cF4>CVBEMode</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l539"><span class=cF4>CVBEModeShort</span></a><span class=cF0>
<a name="l270"></a> - </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KStart16.CC.html#l104"><span class=cF4>real-mode assembly</span></a><span class=cF0> -- </span><span class=cF9><u>added kernel symbols</u></span><span class=cF0>.
@ -325,15 +325,15 @@ body {background-color:#000000;}
<a name="l297"></a>* Replaced the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l215"><span class=cF4>endian-swapping functions</span></a><span class=cF0> with assembly versions.
<a name="l298"></a>* Added </span><span class=cF1>POPCNT</span><span class=cF0> instruction and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l18"><span class=cF4>PopCount</span></a><span class=cF0>() compiler intrinsic, to replace BCount() and the set_bits_table.
<a name="l299"></a>* Renamed opcodes PUSHFW, POPFW, PUSHAW, POPAW -&gt; </span><span class=cF1>PUSHF</span><span class=cF0>, </span><span class=cF1>POPF</span><span class=cF0>, </span><span class=cF1>PUSHA</span><span class=cF0>, </span><span class=cF1>POPA</span><span class=cF0> respectively.
<a name="l300"></a>* The </span><span class=cF9><u>VGA ROM Font</u></span><span class=cF0> is used as the standard system font, with the old one being used as the auxilliary one. The cyrillic font has
<a name="l301"></a>been removed.
<a name="l300"></a>* The </span><span class=cF9><u>VGA ROM Font</u></span><span class=cF0> is used as the standard system font, with the old one being used as the auxilliary one. The cyrillic font
<a name="l301"></a>has been removed.
<a name="l302"></a>* Added </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l209"><span class=cF4>Seg2Linear</span></a><span class=cF0>() to convert segmented 32-bit far pointers obtained from real mode to linear pointers.
<a name="l303"></a>* Disabled the mouse in debug mode. No more garbage text on mouse movement. </span><span class=cF9><u>MouseHardEnable</u></span><span class=cF0>. You can use this function in your
<a name="l304"></a>own applications to disable the mouse completely.
<a name="l305"></a>* AutoComplete now stays where you move it instead of snapping back to a fixed location, and that location persists after
<a name="l306"></a>rebooting by using the Registry to save the window location. Increased number of symbol links shown to 12, so you can use all
<a name="l307"></a>the functions keys F1-F12. It does syntax highlighting on the symbols now, so you know what type they are. Public symbols are </span><span class=c0F>in
<a name="l308"></a>verted</span><span class=cF0>. Dictionary words are BLACK to differentiate between symbols.
<a name="l307"></a>the functions keys F1-F12. It does syntax highlighting on the symbols now, so you know what type they are. Public symbols are </span><span class=c0F>
<a name="l308"></a>inverted</span><span class=cF0>. Dictionary words are BLACK to differentiate between symbols.
<a name="l309"></a>* Added more keyboard shortcuts to the AutoComplete </span><a href="https://tomawezome.github.io/ZealOS/Doc/StandBy.DD.html#l1"><span class=cF4>standby doc</span></a><span class=cF0>.
<a name="l310"></a>* Removed &quot;TOS Staff&quot; and &quot;InsReg&quot; related code.
<a name="l311"></a>* Renamed /Kernel/KInts.CC to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KInterrupts.CC.html#l1"><span class=cF4>KInterrupts.CC</span></a><span class=cF0>.

View file

@ -38,8 +38,8 @@ body {background-color:#000000;}
<a name="l11"></a>ZealOS ASCII is 8-bit instead of 7-bit, so it also uses the range from 128-255. Press </span><span class=cF2>&lt;CTRL-ALT-a&gt;</span><span class=cF0> to see shapes for 128-255.
<a name="l12"></a>Technically, </span><span class=cF2>&lt;CTRL-ALT-a&gt;</span><span class=cF0> are </span><span class=cF4><u>screen codes</u></span><span class=cF0>.
<a name="l13"></a>
<a name="l14"></a>A </span><span class=cF2>Key</span><span class=cF0> is typically specified with a scan code. ZealOS scan codes contain the key value in the lowest </span><span class=cF2>U8</span><span class=cF0>, and flags in the upper
<a name="l15"></a>3 bytes. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4149"><span class=cF4>Scan Code Flags</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4183"><span class=cF4>Scan Codes</span></a><span class=cF0>.
<a name="l14"></a>A </span><span class=cF2>Key</span><span class=cF0> is typically specified with a scan code. ZealOS scan codes contain the key value in the lowest </span><span class=cF2>U8</span><span class=cF0>, and flags in the
<a name="l15"></a>upper 3 bytes. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4149"><span class=cF4>Scan Code Flags</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4183"><span class=cF4>Scan Codes</span></a><span class=cF0>.
<a name="l16"></a>
<a name="l17"></a>ZealOS stores scan codes in 8 bytes.
<a name="l18"></a> </span><span class=cF2>Byte 0</span><span class=cF0> is the code. NumPad keys, SHIFT, ALT, CTRL and GUI keys combined.

View file

@ -27,33 +27,33 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> ZealOS Charter</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>* The vision is the same usage model and niche as the Commodore 64 -- a simple machine where programming was the goal, not just
<a name="l4"></a>a means to an end. However, it is modern, 64-bit and </span><span class=cF2>multi-cored</span><span class=cF0>. It is special purpose, not general purpose, so some things
<a name="l5"></a>it will not do. Also, it's a kayak, not a Titanic. The priority is </span><span class=cF2>user developers</span><span class=cF0>, not </span><span class=cF2>3rd party developers</span><span class=cF0>.
<a name="l3"></a>* The vision is the same usage model and niche as the Commodore 64 -- a simple machine where programming was the goal, not
<a name="l4"></a>just a means to an end. However, it is modern, 64-bit and </span><span class=cF2>multi-cored</span><span class=cF0>. It is special purpose, not general purpose, so some
<a name="l5"></a>things it will not do. Also, it's a kayak, not a Titanic. The priority is </span><span class=cF2>user developers</span><span class=cF0>, not </span><span class=cF2>3rd party developers</span><span class=cF0>.
<a name="l6"></a>
<a name="l7"></a>* </span><span class=cF4>We don't think twice about breaking compatibility. </span><span class=cF0> We do not put any hooks for future changes. &quot;Perfect&quot; means we always act
<a name="l8"></a>as though it is final, for all time. Microsoft allowed the </span><a href="http://en.wikipedia.org/wiki/BMP_file"><span class=cF2>Windows BMP</span></a><span class=cF0> file format to adapt to the future and it became
<a name="l7"></a>* </span><span class=cF4>We don't think twice about breaking compatibility. </span><span class=cF0> We do not put any hooks for future changes. &quot;Perfect&quot; means we always
<a name="l8"></a>act as though it is final, for all time. Microsoft allowed the </span><a href="http://en.wikipedia.org/wiki/BMP_file"><span class=cF2>Windows BMP</span></a><span class=cF0> file format to adapt to the future and it became
<a name="l9"></a>grotesque.
<a name="l10"></a>
<a name="l11"></a>* Low line count and code complexity is the highest good, so it is easy to learn the whole thing. Users should see the light at
<a name="l12"></a>the end of the tunnel. One file system, for example, is better than many file systems.
<a name="l11"></a>* Low line count and code complexity is the highest good, so it is easy to learn the whole thing. Users should see the light
<a name="l12"></a>at the end of the tunnel. One file system, for example, is better than many file systems.
<a name="l13"></a>
<a name="l14"></a>* There is a limit of 100,000 lines of code for all time, not including applications and demos. Currently, there are 94,805
<a name="l15"></a>lines of code. </span><span class=cF4>3rd party libraries are banned</span><span class=cF0> because they circumvent the intent of this limit. The vision is a Commodore 64
<a name="l16"></a>ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell that
<a name="l17"></a>is no longer blissful.
<a name="l16"></a>ROM -- a fixed core API that is the only dependency of applications. Dependency on components and libraries creates a hell
<a name="l17"></a>that is no longer blissful.
<a name="l18"></a>
<a name="l19"></a>* The metric for resolving all ZealOS code governance issues is how fast the compiler compiles itself and the kernel with </span><span class=cF4>
<a name="l20"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). The </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> language should be changed to optimize this metric, as Terry Davis did when he changed type casting from
<a name="l21"></a>prefix standard C to postfix </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>, but we need a rule to prevent degenerating into a brainfuck language.
<a name="l20"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). The </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> language should be changed to optimize this metric, as Terry Davis did when he changed type casting
<a name="l21"></a>from prefix standard C to postfix </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>, but we need a rule to prevent degenerating into a brainfuck language.
<a name="l22"></a>
<a name="l23"></a>* Minimal abstraction is a goal. Sheep are fools. They always respect a design that is more complicated than another. Any
<a name="l24"></a>genius can make it complicated. Like in physics, it takes a supra-genius to make it simple.
<a name="l25"></a>
<a name="l26"></a>* It is for one platform -- </span><a href="http://en.wikipedia.org/wiki/Amd64#AMD64"><span class=cF4>x86_64</span></a><span class=cF0> desktop PC compatibles, more like super-computers than battery efficient wimpy mobiles.
<a name="l27"></a>
<a name="l28"></a>* One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare for
<a name="l29"></a>user applications and what is gained?
<a name="l28"></a>* One driver for each class of device. Limited exceptions are allowed. With divergent device capabilities, it is a nightmare
<a name="l29"></a>for user applications and what is gained?
<a name="l30"></a>
<a name="l31"></a>* </span><span class=cF2>Ring-0-only</span><span class=cF0>. Everything runs in kernel mode, including user applications.
<a name="l32"></a>
@ -62,8 +62,8 @@ body {background-color:#000000;}
<a name="l35"></a>* </span><span class=cF4>No GPU</span><span class=cF0>. We want one processing platform, the CPU, for everything.
<a name="l36"></a>
<a name="l37"></a>* Full access to everything. All memory, I/O ports, instructions, and similar things must never be off limits. All
<a name="l38"></a>functions, variables and class members will be accessible. There are no C++ </span><span class=cF2>public</span><span class=cF0>/</span><span class=cF2>private</span><span class=cF0> protections and all functions, even
<a name="l39"></a>secondary ones in the kernel, can be called.
<a name="l38"></a>functions, variables and class members will be accessible. There are no C++ </span><span class=cF2>public</span><span class=cF0>/</span><span class=cF2>private</span><span class=cF0> protections and all functions,
<a name="l39"></a>even secondary ones in the kernel, can be called.
<a name="l40"></a>
<a name="l41"></a>* </span><span class=cF2>Single-address-map</span><span class=cF0> as though paging is not used. Long mode requires paging, however, so the nearest thing is keeping all
<a name="l42"></a>memory </span><span class=cF2>identity-mapped</span><span class=cF0>.
@ -88,7 +88,7 @@ body {background-color:#000000;}
<a name="l61"></a></span><span class=cF5> Possible Amendments</span><span class=cF0>
<a name="l62"></a>
<a name="l63"></a>The compiler's parser makes RISC code which it optimizes to CISC. Terry Davis discovered this does not matter because the CPU
<a name="l64"></a>converts it back to RISC and schedules it, internally. A ZealOS zealot with more zeal might say we should save lines-of-code by
<a name="l65"></a>removing the CISC optimizing.
<a name="l64"></a>converts it back to RISC and schedules it, internally. A ZealOS zealot with more zeal might say we should save lines-of-code
<a name="l65"></a>by removing the CISC optimizing.
</span></pre></body>
</html>

View file

@ -40,8 +40,8 @@ body {background-color:#000000;}
<a name="l13"></a>
<a name="l14"></a>&gt;</span><span class=cF2>Dir;</span><span class=cF0>
<a name="l15"></a>
<a name="l16"></a>Directories are referenced with </span><span class=cF2>/</span><span class=cF0> not </span><span class=cF2>\</span><span class=cF0>. There is a current directory, but not a path. To run a program, you typically </span><span class=cF2>#incl
<a name="l17"></a>ude </span><span class=cF0>it. There are several shortcuts for </span><span class=cF2>#include</span><span class=cF0>ing files. Right-click or hit </span><span class=cF2>&lt;ENTER&gt;</span><span class=cF0> on a directory listing or press </span><span class=cF2>&lt;F5&gt;</span><span class=cF0>
<a name="l16"></a>Directories are referenced with </span><span class=cF2>/</span><span class=cF0> not </span><span class=cF2>\</span><span class=cF0>. There is a current directory, but not a path. To run a program, you typically </span><span class=cF2>#in
<a name="l17"></a>clude </span><span class=cF0>it. There are several shortcuts for </span><span class=cF2>#include</span><span class=cF0>ing files. Right-click or hit </span><span class=cF2>&lt;ENTER&gt;</span><span class=cF0> on a directory listing or press </span><span class=cF2>&lt;F5&gt;</span><span class=cF0>
<a name="l18"></a>while editing.
<a name="l19"></a>
<a name="l20"></a>&gt;</span><span class=cF2>Ed(&quot;NewFile.CC&quot;);</span><span class=cF0> Invokes the editor. See </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l29"><span class=cF4>Doc Link Type</span></a><span class=cF0>.

View file

@ -31,8 +31,8 @@ body {background-color:#000000;}
<a name="l4"></a>
<a name="l5"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/Doc/ScopingLinkage.DD.html#l1"><span class=cF4>Scoping and Linkage</span></a><span class=cF0> for details on </span><span class=cF2>extern</span><span class=cF0>, </span><span class=cF2>import</span><span class=cF0>, </span><span class=cF2>_extern</span><span class=cF0>, </span><span class=cF2>_import</span><span class=cF0>, etc.
<a name="l6"></a>
<a name="l7"></a>* Built-in types include </span><span class=cF2>I0, I8, I16, I32, I64</span><span class=cF0> for signed 0-8 byte ints and </span><span class=cF2>U0, U8, U16, U32, U64</span><span class=cF0> for unsigned 0-8 byte ints and </span><span class=cF2>
<a name="l8"></a>F64</span><span class=cF0> for 8 byte floats.
<a name="l7"></a>* Built-in types include </span><span class=cF2>I0, I8, I16, I32, I64</span><span class=cF0> for signed 0-8 byte ints and </span><span class=cF2>U0, U8, U16, U32, U64</span><span class=cF0> for unsigned 0-8 byte ints
<a name="l8"></a>and </span><span class=cF2>F64</span><span class=cF0> for 8 byte floats.
<a name="l9"></a>
<a name="l10"></a></span><span class=cF2> U0 void, but ZERO size!
<a name="l11"></a> I8 char
@ -141,8 +141,8 @@ body {background-color:#000000;}
<a name="l114"></a> </span><span class=cF2>if (13 &lt;= age &lt; 20)
<a name="l115"></a> &quot;Teen-ager&quot;;
<a name="l116"></a></span><span class=cF0>
<a name="l117"></a>* if you know a switch stmt will not exceed the lowest or highest case values. </span><span class=cF2>switch []</span><span class=cF0> is a little faster because it doesn't
<a name="l118"></a>check.
<a name="l117"></a>* if you know a switch stmt will not exceed the lowest or highest case values. </span><span class=cF2>switch []</span><span class=cF0> is a little faster because it
<a name="l118"></a>doesn't check.
<a name="l119"></a>
<a name="l120"></a>* </span><span class=cF2>switch</span><span class=cF0> statements always use a jump table. Don't use them with cases with really big, sparse ranges.
<a name="l121"></a>
@ -251,8 +251,8 @@ body {background-color:#000000;}
<a name="l224"></a>
<a name="l225"></a>* You can use </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l1"><span class=cF4>Option</span></a><span class=cF0>(</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1680"><span class=cF4>OPTf_WARN_DUP_TYPES</span></a><span class=cF0>, ON) to find dup local var type statements.
<a name="l226"></a>
<a name="l227"></a>* With the </span><span class=cF2>#exe{}</span><span class=cF0> feature in your src code, you can place programs that insert text into the stream of code being compiled. See </span><span class=cF4>
<a name="l228"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l252"><span class=cF4>#exe {}</span></a><span class=cF0> for an example where the date/time and compile-time prompting for configuration data is placed into a program. </span><span class=cF4>
<a name="l227"></a>* With the </span><span class=cF2>#exe{}</span><span class=cF0> feature in your src code, you can place programs that insert text into the stream of code being compiled.
<a name="l228"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l252"><span class=cF4>#exe {}</span></a><span class=cF0> for an example where the date/time and compile-time prompting for configuration data is placed into a program. </span><span class=cF4>
<a name="l229"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l71"><span class=cF4>StreamPrint</span></a><span class=cF0>() places text into a src program stream following the conclusion of the </span><span class=cF2>#exe{}</span><span class=cF0> blk.
<a name="l230"></a>
<a name="l231"></a>* No </span><span class=cF2>#define</span><span class=cF0> functions exist (Terry was not a fan)
@ -263,15 +263,15 @@ body {background-color:#000000;}
<a name="l236"></a>
<a name="l237"></a>* Can't use </span><span class=cF2>&lt;&gt;</span><span class=cF0> with </span><span class=cF2>#include</span><span class=cF0>, use </span><span class=cF2>&quot;&quot;</span><span class=cF0>.
<a name="l238"></a>
<a name="l239"></a>* &quot;</span><span class=cF2>$</span><span class=cF0>&quot; is an escape character. Two dollar signs signify an ordinary $. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0>. In </span><span class=cF2>asm</span><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> code, it also refers to the
<a name="l240"></a>instruction's address or the offset in a </span><span class=cF2>class</span><span class=cF0> definition.
<a name="l239"></a>* &quot;</span><span class=cF2>$</span><span class=cF0>&quot; is an escape character. Two dollar signs signify an ordinary $. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0>. In </span><span class=cF2>asm</span><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> code, it also refers to
<a name="l240"></a>the instruction's address or the offset in a </span><span class=cF2>class</span><span class=cF0> definition.
<a name="l241"></a>
<a name="l242"></a>* </span><span class=cF2>union</span><span class=cF0> is more like a class, so you don't reference it with a </span><span class=cF2>union</span><span class=cF0> label after you define it. Some common unions are declared
<a name="l243"></a>in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l65"><span class=cF4>KernelA.HH</span></a><span class=cF0> for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type when used by
<a name="l244"></a>itself. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/SubIntAccess.CC.html#l1"><span class=cF4>::/Demo/SubIntAccess.CC</span></a><span class=cF0>.
<a name="l242"></a>* </span><span class=cF2>union</span><span class=cF0> is more like a class, so you don't reference it with a </span><span class=cF2>union</span><span class=cF0> label after you define it. Some common unions are
<a name="l243"></a>declared in </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l65"><span class=cF4>KernelA.HH</span></a><span class=cF0> for 1,2,4 and 8 byte objects. If you place a type in front of a union declaration, that is the type
<a name="l244"></a>when used by itself. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/SubIntAccess.CC.html#l1"><span class=cF4>::/Demo/SubIntAccess.CC</span></a><span class=cF0>.
<a name="l245"></a>
<a name="l246"></a>* </span><span class=cF2>class</span><span class=cF0> member vars can have meta data. </span><span class=cF2>format</span><span class=cF0> and </span><span class=cF2>data</span><span class=cF0> are two meta data types now used. All compiler structures are saved and
<a name="l247"></a>you can access the compiler's info about classes and vars. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/ClassMeta.CC.html#l1"><span class=cF4>::/Demo/ClassMeta.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocForm.CC.html#l263"><span class=cF4>DocForm</span></a><span class=cF0>().
<a name="l246"></a>* </span><span class=cF2>class</span><span class=cF0> member vars can have meta data. </span><span class=cF2>format</span><span class=cF0> and </span><span class=cF2>data</span><span class=cF0> are two meta data types now used. All compiler structures are saved
<a name="l247"></a>and you can access the compiler's info about classes and vars. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/ClassMeta.CC.html#l1"><span class=cF4>::/Demo/ClassMeta.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocForm.CC.html#l263"><span class=cF4>DocForm</span></a><span class=cF0>().
<a name="l248"></a>
<a name="l249"></a>* There is a keyword </span><span class=cF2>lastclass</span><span class=cF0> you use as a default arg. It is set to the class name of the prev arg. See </span><span class=cF4>
<a name="l250"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/LastClass.CC.html#l1"><span class=cF4>::/Demo/LastClass.CC</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/Debug.CC.html#l216"><span class=cF4>ClassRep</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocForm.CC.html#l263"><span class=cF4>DocForm</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/BlkDevRep.CC.html#l1"><span class=cF4>::/Demo/Disk/BlkDevRep.CC</span></a><span class=cF0>.
@ -282,23 +282,23 @@ body {background-color:#000000;}
<a name="l255"></a>like.
<a name="l256"></a>
<a name="l257"></a>* A function is available similar to </span><span class=cF2>sizeof</span><span class=cF0> which provides the offset of a member of a class. It's called </span><span class=cF2>offset</span><span class=cF0>. You place
<a name="l258"></a>the class name and member inside as in </span><span class=cF2>offset(classname.membername)</span><span class=cF0>. It has nothing to do with 16-bit code. Both </span><span class=cF2>sizeof</span><span class=cF0> and </span><span class=cF2>
<a name="l259"></a>offset</span><span class=cF0> only accept one level of member vars. That is, you can't do </span><span class=cF2>sizeof(classname.membername.submembername)</span><span class=cF0>.
<a name="l258"></a>the class name and member inside as in </span><span class=cF2>offset(classname.membername)</span><span class=cF0>. It has nothing to do with 16-bit code. Both </span><span class=cF2>sizeof</span><span class=cF0>
<a name="l259"></a>and </span><span class=cF2>offset</span><span class=cF0> only accept one level of member vars. That is, you can't do </span><span class=cF2>sizeof(classname.membername.submembername)</span><span class=cF0>.
<a name="l260"></a>
<a name="l261"></a>* There is no </span><span class=cF2>continue</span><span class=cF0> stmt. Use </span><span class=cF2>goto</span><span class=cF0>.
<a name="l262"></a>
<a name="l263"></a>* </span><span class=cF2>lock{}</span><span class=cF0> can be used to apply asm </span><span class=cF2>LOCK</span><span class=cF0> prefixes to code for safe multicore read-modify-write accesses. The code bracked with
<a name="l264"></a>have </span><span class=cF2>LOCK</span><span class=cF0> asm prefix's applied to relevant insts within. It's a little shoddy. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/Lock.CC.html#l1"><span class=cF4>::/Demo/MultiCore/Lock.CC</span></a><span class=cF0>.
<a name="l265"></a>
<a name="l266"></a>* There is a function called </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l388"><span class=cF4>MSize</span></a><span class=cF0>() which gives the size of an object alloced off the heap. For larger size allocations, the
<a name="l267"></a>system rounds-up to a power of two, so </span><span class=cF2>MSize()</span><span class=cF0> lets you know the real size and you can take full advantage of it.
<a name="l266"></a>* There is a function called </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l388"><span class=cF4>MSize</span></a><span class=cF0>() which gives the size of an object alloced off the heap. For larger size allocations,
<a name="l267"></a>the system rounds-up to a power of two, so </span><span class=cF2>MSize()</span><span class=cF0> lets you know the real size and you can take full advantage of it.
<a name="l268"></a>
<a name="l269"></a>* You CAN </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l387"><span class=cF4>Free</span></a><span class=cF0>() a </span><span class=cF2>NULL</span><span class=cF0> ptr. Useful variants of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>() can be found </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l399"><span class=cF4>Here</span></a><span class=cF0>. Each task has a heap and you can </span><span class=cF2>MAlloc</span><span class=cF0> and </span><span class=cF2>Free</span><span class=cF0>
<a name="l270"></a>off-of other task's heaps, or make an independent heap with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). See </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>() for an example.
<a name="l271"></a>
<a name="l272"></a>* The stack does not grow because virtual mem is not used. It's recommended to allocate large local vars from the heap. You
<a name="l273"></a>can change </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3508"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l129"><span class=cF4>CallStackGrow</span></a><span class=cF0>(), but it's
<a name="l274"></a>odd. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/StackGrow.CC.html#l1"><span class=cF4>::/Demo/StackGrow.CC</span></a><span class=cF0>.
<a name="l272"></a>* The stack does not grow because virtual mem is not used. It's recommended to allocate large local vars from the heap. Yo
<a name="l273"></a>u can change </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3508"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>(). You can use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l129"><span class=cF4>CallStackGrow</span></a><span class=cF0>(), but
<a name="l274"></a>it's odd. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/StackGrow.CC.html#l1"><span class=cF4>::/Demo/StackGrow.CC</span></a><span class=cF0>.
<a name="l275"></a>
<a name="l276"></a>* Only one base class is allowed.
<a name="l277"></a>

View file

@ -27,26 +27,26 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Credits</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a></span><span class=cF2>Terry A. Davis</span><span class=cF0> wrote all of TempleOS over a span of </span><span class=cF2>15.0</span><span class=cF0> years (full-time). ZealOS, written over a span of </span><span class=cF2>1.9</span><span class=cF0> years, is a fork
<a name="l4"></a>of ZenithOS, which itself is a fork of TempleOS. It can run on some bare metal 64-bit PC's from about 2007-2019 with no
<a name="l5"></a>layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like </span><span class=cF2>VMware</span><span class=cF0>, </span><span class=cF2>QEM
<a name="l6"></a>U</span><span class=cF0> or </span><span class=cF2>VirtualBox</span><span class=cF0>. It is independent and stands alone. 100% of the src code is including on all distro's, from the kernel to
<a name="l3"></a></span><span class=cF2>Terry A. Davis</span><span class=cF0> wrote all of TempleOS over a span of </span><span class=cF2>15.0</span><span class=cF0> years (full-time). ZealOS, written over a span of </span><span class=cF2>1.9</span><span class=cF0> years, is a
<a name="l4"></a>fork of ZenithOS, which itself is a fork of TempleOS. It can run on some bare metal 64-bit PC's from about 2007-2019 with no
<a name="l5"></a>layering, libraries, tools, modules or anything from other sources. Otherwise, you run it in a virtual machine, like </span><span class=cF2>VMware</span><span class=cF0>, </span><span class=cF2>Q
<a name="l6"></a>EMU</span><span class=cF0> or </span><span class=cF2>VirtualBox</span><span class=cF0>. It is independent and stands alone. 100% of the src code is including on all distro's, from the kernel to
<a name="l7"></a>the compiler to the boot loaders! It is public domain, not GPL.
<a name="l8"></a>
<a name="l9"></a>*) </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l2903"><span class=cF4>ATA Reg and Cmd Definitions</span></a><span class=cF0> are originally from Linux. Later, Terry got the spec.
<a name="l10"></a>
<a name="l11"></a>*) The heap algorithm, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l1"><span class=cF4>::/Kernel/Memory/MAllocFree.CC</span></a><span class=cF0>, is adapted from one Terry saw at Ticketmaster when he worked on their VAX
<a name="l12"></a>operating system.
<a name="l11"></a>*) The heap algorithm, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l1"><span class=cF4>::/Kernel/Memory/MAllocFree.CC</span></a><span class=cF0>, is adapted from one Terry saw at Ticketmaster when he worked on their
<a name="l12"></a>VAX operating system.
<a name="l13"></a>
<a name="l14"></a>*) The adaptive-step-size-Runge-Kutta algorithm, </span><a href="https://tomawezome.github.io/ZealOS/System/ZMathODE.CC.html#l1"><span class=cF4>::/System/ZMathODE.CC</span></a><span class=cF0>, is adapted from the book, <u>Numeric Recipies in C</u>.
<a name="l15"></a>
<a name="l16"></a>*) The mountain in some games is from </span><a href="http://www.public-domain-photos.com"><span class=cF4>http://www.public-domain-photos.com</span></a><span class=cF0>. The wolf in BlackDiamond is also from there. Terr
<a name="l17"></a>y took watermarked photos and converted to 16 color.
<a name="l16"></a>*) The mountain in some games is from </span><a href="http://www.public-domain-photos.com"><span class=cF4>http://www.public-domain-photos.com</span></a><span class=cF0>. The wolf in BlackDiamond is also from there. Te
<a name="l17"></a>rry took watermarked photos and converted to 16 color.
<a name="l18"></a>
<a name="l19"></a>*) The </span><span class=cF2>FAT32</span><span class=cF0> file system is owned by MicroSoft.
<a name="l20"></a>
<a name="l21"></a>*) A few features were inspired by </span><span class=cF2>MATLAB</span><span class=cF0>, such as </span><span class=cF2>ans</span><span class=cF0> in expressions at the command-line. There is a lot of </span><span class=cF2>MSDOS</span><span class=cF0> , </span><span class=cF2>Windows</span><span class=cF0>, </span><span class=cF2>V
<a name="l22"></a>AXTMOS</span><span class=cF0> (VAX Ticketmaster O.S.) and </span><span class=cF2>Unix</span><span class=cF0> inspiration, too, such as drive letters, command names, etc.
<a name="l21"></a>*) A few features were inspired by </span><span class=cF2>MATLAB</span><span class=cF0>, such as </span><span class=cF2>ans</span><span class=cF0> in expressions at the command-line. There is a lot of </span><span class=cF2>MSDOS</span><span class=cF0> , </span><span class=cF2>Windows</span><span class=cF0>, </span><span class=cF2>
<a name="l22"></a>VAXTMOS</span><span class=cF0> (VAX Ticketmaster O.S.) and </span><span class=cF2>Unix</span><span class=cF0> inspiration, too, such as drive letters, command names, etc.
<a name="l23"></a>
<a name="l24"></a>*) Terry included </span><a href="http://www.pcidatabase.com/reports.php?type=tab-delimeted"><span class=cF4>PCIDevice List File</span></a><span class=cF0>.
<a name="l25"></a>
@ -57,15 +57,15 @@ body {background-color:#000000;}
<a name="l30"></a>
<a name="l31"></a>*) Terry thought he got his original PC speaker code from </span><span class=cF2>Borland C</span><span class=cF0>.
<a name="l32"></a>
<a name="l33"></a>*) Terry found PS/2 keyboard and mouse code on the net and documentation. His code is very different. He found VGA reg info on
<a name="l34"></a>the net.
<a name="l33"></a>*) Terry found PS/2 keyboard and mouse code on the net and documentation. His code is very different. He found VGA reg info
<a name="l34"></a>on the net.
<a name="l35"></a>
<a name="l36"></a>*) Thanks to </span><a href="http://www.osdev.org"><span class=cF4>http://www.osdev.org</span></a><span class=cF0> for a couple tips.
<a name="l37"></a>
<a name="l38"></a>*) Terry got </span><a href="http://www.templeos.org/files/DICTIONARY.DD"><span class=cF4>Webster's Dictionary</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Misc/Bible.TXT.html#l1"><span class=cF4>The King James Bible</span></a><span class=cF0> from </span><a href="http://web.archive.org/web/20110730111436/http://promo.net/pg/"><span class=cF4>Project Gutenberg</span></a><span class=cF0>.
<a name="l39"></a>
<a name="l40"></a>*) John Carmack inspired Terry to use &quot;</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>&quot; as a name instead of &quot;Limit&quot;. He inspired Terry to use &quot;needle&quot; and &quot;haystack&quot; as
<a name="l41"></a>names. He inspired Terry to simplify his Frames-Per-Second code.
<a name="l40"></a>*) John Carmack inspired Terry to use &quot;</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>&quot; as a name instead of &quot;Limit&quot;. He inspired Terry to use &quot;needle&quot; and &quot;haystack&quot;
<a name="l41"></a>as names. He inspired Terry to simplify his Frames-Per-Second code.
<a name="l42"></a>
<a name="l43"></a>*) Bill Gates inspired Terry to add comments to the </span><a href="https://tomawezome.github.io/ZealOS/Doc/HelpIndex.DD.html#l1"><span class=cF4>Help &amp; Index</span></a><span class=cF0>.
<a name="l44"></a>

View file

@ -29,7 +29,7 @@ body {background-color:#000000;}
<a name="l2"></a>* You can adjust the mouse movement rate by setting global vars in your start-up file. See </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeLocalize.CC.html#l11"><span class=cF4>mouse scale</span></a><span class=cF0>.
<a name="l3"></a>
<a name="l4"></a>* You can set your local time zone by setting the </span><span class=cF4>local_time_offset</span><span class=cF0> global var in a start-up file. It's units are </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l707"><span class=cF4>CDATE_FREQ</span></a><span class=cF0>.
<a name="l5"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeLocalize.CC.html#l8"><span class=cF4>local time</span></a><span class=cF0>.
<a name="l5"></a> See </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeLocalize.CC.html#l8"><span class=cF4>local time</span></a><span class=cF0>.
<a name="l6"></a>
<a name="l7"></a>* Get rid of this message </span><span class=cF4><u>here</u></span><span class=cF0>.
</span></pre></body>

View file

@ -32,11 +32,11 @@ body {background-color:#000000;}
<a name="l5"></a>
<a name="l6"></a>* The type-casting operator was made post-fix because it makes the compiler way cleaner.
<a name="l7"></a>
<a name="l8"></a>* ZealOS does not figure-out </span><span class=cF2>FAT32</span><span class=cF0> short name alias numbers. </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/FileSysFAT.CC.html#l646"><span class=cF4>FAT32DirNew</span></a><span class=cF0>(). It can cause hard drive corruption, so it might
<a name="l9"></a>have to do it eventually. It would really take a lot of junky code for this hatefully, detestable, legacy issue. &quot;Please don't
<a name="l10"></a>make us ruin the beautiful shiny-new ZealOS with that!&quot; </span><span class=cF2>FAT32</span><span class=cF0> is also unappealing because it is in patent limbo. </span><span class=cF2>FAT32</span><span class=cF0> might
<a name="l11"></a>get removed from ZealOS. There is the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> 64-bit file system that works perfectly well. </span><span class=cF2>FAT32</span><span class=cF0> is useful, however, because
<a name="l12"></a>it assists in transferring between dual booted operating systems.
<a name="l8"></a>* ZealOS does not figure-out </span><span class=cF2>FAT32</span><span class=cF0> short name alias numbers. </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/FileSysFAT.CC.html#l646"><span class=cF4>FAT32DirNew</span></a><span class=cF0>(). It can cause hard drive corruption, so it
<a name="l9"></a>might have to do it eventually. It would really take a lot of junky code for this hatefully, detestable, legacy issue.
<a name="l10"></a>&quot;Please don't make us ruin the beautiful shiny-new ZealOS with that!&quot; </span><span class=cF2>FAT32</span><span class=cF0> is also unappealing because it is in patent
<a name="l11"></a>limbo. </span><span class=cF2>FAT32</span><span class=cF0> might get removed from ZealOS. There is the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> 64-bit file system that works perfectly well. </span><span class=cF2>FAT32</span><span class=cF0> is
<a name="l12"></a>useful, however, because it assists in transferring between dual booted operating systems.
<a name="l13"></a>
<a name="l14"></a>* The </span><a href="https://tomawezome.github.io/ZealOS/Compiler/OpCodes.DD.html#l1"><span class=cF4>asm opcodes</span></a><span class=cF0> names were changed to remove the ambiguity between insts with different numbers of arguments, making the </span><span class=cF4>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Compiler/Asm.CC.html#l1"><span class=cF4>assembler</span></a><span class=cF0> simpler and minimal 16-bit asm support was done, since 64-bit is what you should be using, unless you're doing a </span><span class=cF4>

View file

@ -26,8 +26,8 @@ body {background-color:#000000;}
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>ZealOS has a class for 3 dimensional points consisting of F64s. CosmiC is not C++ -- it does not support passing or returning
<a name="l2"></a>values from functions which are not 64-bits, therefore, it can't be implemented with operator overloading. Making all function
<a name="l3"></a>args and returns 64-bit is a core prinicple of ZealOS.
<a name="l2"></a>values from functions which are not 64-bits, therefore, it can't be implemented with operator overloading. Making all
<a name="l3"></a>function args and returns 64-bit is a core prinicple of ZealOS.
<a name="l4"></a>
<a name="l5"></a>As a courtesy, most of the CD3 functions return the addr of the destination vect, so you can nestle calls. They do not alloc
<a name="l6"></a>new space for the destination vect.

View file

@ -25,6 +25,7 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>Dates are 32-bit signed ints representing the number of days since the birth of Christ. Negative values represent B.C.E. dates.
<a name="l1"></a><span class=cF0>Dates are 32-bit signed ints representing the number of days since the birth of Christ. Negative values represent B.C.E.
<a name="l2"></a>dates.
</span></pre></body>
</html>

View file

@ -27,9 +27,9 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Debugging Overview</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>* You can enter the debugger with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>() or </span><span class=cF2>&lt;CTRL-ALT-d&gt;</span><span class=cF0>. You might enter the debugger through a fault. Enter </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l499"><span class=cF4>G</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l530"><span class=cF4>G2</span></a><span class=cF0>() to
<a name="l4"></a>continue execution. Place a call to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>() in your code at fatal error points to enter the debugger. If you see a stack dump,
<a name="l5"></a>record the label+offset and unassemble, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4046"><span class=cF4>_RIP</span></a><span class=cF0>);
<a name="l3"></a>* You can enter the debugger with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>() or </span><span class=cF2>&lt;CTRL-ALT-d&gt;</span><span class=cF0>. You might enter the debugger through a fault. Enter </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l499"><span class=cF4>G</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l530"><span class=cF4>G2</span></a><span class=cF0>()
<a name="l4"></a>to continue execution. Place a call to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l732"><span class=cF4>Debug</span></a><span class=cF0>() in your code at fatal error points to enter the debugger. If you see a stack
<a name="l5"></a>dump, record the label+offset and unassemble, </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(). </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4046"><span class=cF4>_RIP</span></a><span class=cF0>);
<a name="l6"></a>
<a name="l7"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(&amp;FunName+offset) to unassemble mem or </span><a href="https://tomawezome.github.io/ZealOS/System/Debug.CC.html#l330"><span class=cF4>Uf</span></a><span class=cF0>(&quot;FunName&quot;) to unassemble a function. </span><a href="https://tomawezome.github.io/ZealOS/Compiler/UAsm.CC.html#l771"><span class=cF4>U</span></a><span class=cF0>(</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4046"><span class=cF4>_RIP</span></a><span class=cF0>-16);
<a name="l8"></a>
@ -40,8 +40,8 @@ body {background-color:#000000;}
<a name="l13"></a>
<a name="l14"></a>* You can use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l507"><span class=cF4>SysLog</span></a><span class=cF0>() to send text to the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> window. It works like </span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l1110"><span class=cF4>Print</span></a><span class=cF0>(). You could also use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l232"><span class=cF4>RawPrint</span></a><span class=cF0>().
<a name="l15"></a>
<a name="l16"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l183"><span class=cF4>D</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l366"><span class=cF4>DocD</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l251"><span class=cF4>RawD</span></a><span class=cF0>() to do 16 column hex dump mem with numbering from zero. With </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l366"><span class=cF4>DocD</span></a><span class=cF0> the values are updated continually and
<a name="l17"></a>you can alter mem by editing.
<a name="l16"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l183"><span class=cF4>D</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l366"><span class=cF4>DocD</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l251"><span class=cF4>RawD</span></a><span class=cF0>() to do 16 column hex dump mem with numbering from zero. With </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l366"><span class=cF4>DocD</span></a><span class=cF0> the values are updated continually
<a name="l17"></a>and you can alter mem by editing.
<a name="l18"></a>
<a name="l19"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l218"><span class=cF4>Dm</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l352"><span class=cF4>DocDm</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l269"><span class=cF4>RawDm</span></a><span class=cF0>() to do 16 column hex dump mem with addresses showing.
<a name="l20"></a>
@ -51,17 +51,17 @@ body {background-color:#000000;}
<a name="l24"></a>
<a name="l25"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Debug.CC.html#l216"><span class=cF4>ClassRep</span></a><span class=cF0>() and the dynamic version </span><a href="https://tomawezome.github.io/ZealOS/System/Debug.CC.html#l246"><span class=cF4>ClassRepD</span></a><span class=cF0>() can be used to dump structures.
<a name="l26"></a>
<a name="l27"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l30"><span class=cF4>Prof</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l61"><span class=cF4>ProfRep</span></a><span class=cF0>() provide code profiling. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InProfile.IN.html#l1"><span class=cF4>::/Demo/InFile/InProfile.IN</span></a><span class=cF0> (This is an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF0>.)
<a name="l27"></a>* </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l30"><span class=cF4>Prof</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l61"><span class=cF4>ProfRep</span></a><span class=cF0>() provide code profiling. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InProfile.IN.html#l1"><span class=cF4>::/Demo/InFile/InProfile.IN</span></a><span class=cF0> (This is an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF0>.)
<a name="l28"></a>
<a name="l29"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l232"><span class=cF4>RawPrint</span></a><span class=cF0>() to print debug info bypassing the window framework. You pass these routines a count in milliseconds for how
<a name="l30"></a>long it should be displayed. You can use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l257"><span class=cF4>Raw</span></a><span class=cF0>(</span><span class=cF2>TRUE</span><span class=cF0>) to make all output bypass the window framework. The </span><span class=cF2>WinMgr</span><span class=cF0> runs on </span><span class=cF2>Core0</span><span class=cF0> and
<a name="l31"></a>will overwrite raw text from other cores when it updates the screen.
<a name="l30"></a>long it should be displayed. You can use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l257"><span class=cF4>Raw</span></a><span class=cF0>(</span><span class=cF2>TRUE</span><span class=cF0>) to make all output bypass the window framework. The </span><span class=cF2>WinMgr</span><span class=cF0> runs on </span><span class=cF2>Core0</span><span class=cF0>
<a name="l31"></a>and will overwrite raw text from other cores when it updates the screen.
<a name="l32"></a>
<a name="l33"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l247"><span class=cF4>SysDebug</span></a><span class=cF0>() to set a flag which you can read with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l252"><span class=cF4>IsSysDebug</span></a><span class=cF0>() when you wish to trigger some debug activity. It's just a
<a name="l34"></a>handy simple flag, nothing fancy.
<a name="l35"></a>
<a name="l36"></a>* There are flags for various trace options that can help debugging when there are compiler bugs. Often, you place them in </span><span class=cF2>#exe
<a name="l37"></a>{}</span><span class=cF0> blocks.
<a name="l36"></a>* There are flags for various trace options that can help debugging when there are compiler bugs. Often, you place them in </span><span class=cF2>#e
<a name="l37"></a>xe{}</span><span class=cF0> blocks.
<a name="l38"></a> </span><span class=cF4>
<a name="l39"></a> </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l66"><span class=cF4>Echo</span></a><span class=cF0>() turns on or off raw data going into the lexical analyzer.
<a name="l40"></a> </span><span class=cF4>
@ -77,9 +77,9 @@ body {background-color:#000000;}
<a name="l50"></a>environment or in the window mgr when it queues kbd messages. You can do </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l257"><span class=cF4>Raw</span></a><span class=cF0>() output. </span><span class=cF2>&lt;CTRL-ALT-letter&gt;</span><span class=cF0> handlers take a
<a name="l51"></a>scan_code as an arg.
<a name="l52"></a>
<a name="l53"></a>* If you recompile </span><span class=cF2>Kernel</span><span class=cF0> with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(), you can set the </span><span class=cF4>MemInit</span><span class=cF0>, option to initialize memory to a value at boot, the </span><span class=cF4>HeapIni
<a name="l54"></a>t</span><span class=cF0> option to cause mem alloced off the heap to be initialized or </span><span class=cF4>VarInit</span><span class=cF0> option so both global and local vars will be initialized
<a name="l55"></a>to a value, but global AOT variables are always zero if not initialized. Pick a non-zero value to discover uninitialized var
<a name="l56"></a>bugs. You can set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l145"><span class=cF4>sys_var_init_flag</span></a><span class=cF0>, and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l141"><span class=cF4>sys_heap_init_flag</span></a><span class=cF0> directly after booting.
<a name="l53"></a>* If you recompile </span><span class=cF2>Kernel</span><span class=cF0> with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(), you can set the </span><span class=cF4>MemInit</span><span class=cF0>, option to initialize memory to a value at boot, the </span><span class=cF4>HeapI
<a name="l54"></a>nit</span><span class=cF0> option to cause mem alloced off the heap to be initialized or </span><span class=cF4>VarInit</span><span class=cF0> option so both global and local vars will be
<a name="l55"></a>initialized to a value, but global AOT variables are always zero if not initialized. Pick a non-zero value to discover
<a name="l56"></a>uninitialized var bugs. You can set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l145"><span class=cF4>sys_var_init_flag</span></a><span class=cF0>, and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l141"><span class=cF4>sys_heap_init_flag</span></a><span class=cF0> directly after booting.
</span></pre></body>
</html>

View file

@ -31,11 +31,11 @@ body {background-color:#000000;}
<a name="l4"></a>
<a name="l5"></a>If you have an </span><span class=cF2>@</span><span class=cF0> as the first char of a define list entry, it is an alias for the prev entry num.
<a name="l6"></a>
<a name="l7"></a>Each task can load its own Define strings. Remember, when a </span><span class=cF4><u>Hash</u></span><span class=cF0> table is searched for a string, if it is not found, the parent
<a name="l8"></a>task's table is searched.
<a name="l7"></a>Each task can load its own Define strings. Remember, when a </span><span class=cF4><u>Hash</u></span><span class=cF0> table is searched for a string, if it is not found, the
<a name="l8"></a>parent task's table is searched.
<a name="l9"></a>
<a name="l10"></a>The </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> framework supports text that changes based on entries in the task's symbol table. Set a text entry with a </span><span class=cF2>D=</span><span class=cF0> arg, as
<a name="l11"></a>in </span><span class=cF2>$TX,&quot;&quot;,D=&quot;DD_MYSTRING&quot;$</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DefineStr.CC.html#l1"><span class=cF4>::/Demo/DolDoc/DefineStr.CC</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/ZDefine.CC.html#l1"><span class=cF4>::/System/ZDefine.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/MemoryOverview.DD.html#l1"><span class=cF4>::/Doc/MemoryOverview.DD</span></a><span class=cF0>.
<a name="l10"></a>The </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> framework supports text that changes based on entries in the task's symbol table. Set a text entry with a </span><span class=cF2>D=</span><span class=cF0> arg,
<a name="l11"></a>as in </span><span class=cF2>$TX,&quot;&quot;,D=&quot;DD_MYSTRING&quot;$</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DefineStr.CC.html#l1"><span class=cF4>::/Demo/DolDoc/DefineStr.CC</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/System/ZDefine.CC.html#l1"><span class=cF4>::/System/ZDefine.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/MemoryOverview.DD.html#l1"><span class=cF4>::/Doc/MemoryOverview.DD</span></a><span class=cF0>.
<a name="l12"></a>
<a name="l13"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Define.CC.html#l1"><span class=cF4>::/Demo/Define.CC</span></a><span class=cF0>.
</span></pre></body>

View file

@ -25,8 +25,8 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>A </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> in memory is a </span><span class=cF4><u>Circular Queue</u></span><span class=cF0> of cmds and graphics. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1326"><span class=cF4>CDocEntry</span></a><span class=cF0> for the entry structure. See </span><a href="https://tomawezome.github.io/ZealOS/System/Training.CC.html#l174"><span class=cF4>TipOfDay</span></a><span class=cF0>() for a nice
<a name="l2"></a>example.
<a name="l1"></a><span class=cF0>A </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0> in memory is a </span><span class=cF4><u>Circular Queue</u></span><span class=cF0> of cmds and graphics. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1326"><span class=cF4>CDocEntry</span></a><span class=cF0> for the entry structure. See </span><a href="https://tomawezome.github.io/ZealOS/System/Training.CC.html#l174"><span class=cF4>TipOfDay</span></a><span class=cF0>() for a
<a name="l2"></a>nice example.
<a name="l3"></a></span><span class=cF4>
<a name="l4"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>DolDoc</span></a><span class=cF0>'s are used for the editor, viewer, browser, and cmd line.
</span></pre></body>

View file

@ -28,8 +28,8 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> DolDoc Overview</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>DolDoc is a ZealOS document type supported by </span><span class=cF4><u>DolDoc Routines</u></span><span class=cF0>. In a document, commands are bracketed with '</span><span class=cF2>$</span><span class=cF0>'s. Use </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>
<a name="l4"></a>to experiment inserting a command. Then, use </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> to toggle to plain text to see it.
<a name="l3"></a>DolDoc is a ZealOS document type supported by </span><span class=cF4><u>DolDoc Routines</u></span><span class=cF0>. In a document, commands are bracketed with '</span><span class=cF2>$</span><span class=cF0>'s. Use </span><span class=cF2>&lt;CTRL-
<a name="l4"></a>l&gt;</span><span class=cF0> to experiment inserting a command. Then, use </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> to toggle to plain text to see it.
<a name="l5"></a>
<a name="l6"></a>Here is the grammar:
<a name="l7"></a>
@ -40,106 +40,107 @@ body {background-color:#000000;}
<a name="l12"></a>&lt;ArgList&gt; := &lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt;</span><span class=cF2>=</span><span class=cF0>&lt;ArgExpression&gt;[</span><span class=cF2>,</span><span class=cF0>&lt;ArgList&gt;]
<a name="l13"></a>
<a name="l14"></a>
<a name="l15"></a>The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have mandatory
<a name="l16"></a>args. Optional args are indicated with &lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt;</span><span class=cF2>=</span><span class=cF0>. A </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDefine.CC.html#l246"><span class=cF4>ColorName</span></a><span class=cF0> bracked by dollars, will change the foreground color.
<a name="l17"></a>
<a name="l18"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Widget.DD.html#l1"><span class=cF4>::/Doc/Widget.DD</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DemoDoc.DD.html#l1"><span class=cF4>::/Demo/DolDoc/DemoDoc.DD</span></a><span class=cF0>, and </span><a href="https://tomawezome.github.io/ZealOS/Demo/ToHtmlToTXTDemo/ToHtml.CC.html#l1"><span class=cF4>::/Demo/ToHtmlToTXTDemo/ToHtml.CC</span></a><span class=cF0>.
<a name="l19"></a>
<a name="l20"></a>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1041"><span class=cF4>Type Defines</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPlain.CC.html#l272"><span class=cF4>ParseDollarCmd</span></a><span class=cF0>().</span><span class=cF5>
<a name="l21"></a><u>+] TX Text
<a name="l22"></a>+] CR Hard New Line
<a name="l23"></a>+] SR Soft New Line
<a name="l24"></a>+] CU Cursor pos
<a name="l25"></a>+] TB Tab
<a name="l26"></a>+] CL Clear
<a name="l27"></a>+] PB Page Break
<a name="l28"></a>+] PL Page Length
<a name="l29"></a>+] LM Left Margin
<a name="l30"></a>+] RM Right Margin
<a name="l31"></a>+] HD Header
<a name="l32"></a>+] FO Footer
<a name="l33"></a>+] ID Indent +/- num
<a name="l34"></a>+] Text Colors
<a name="l35"></a>+] PT User Prompt
<a name="l36"></a>+] WW Word Wrap
<a name="l37"></a>+] UL Underline
<a name="l38"></a>+] IV Invert
<a name="l39"></a>+] BK Blink
<a name="l40"></a>+] SX Shift X pos
<a name="l41"></a>+] SY Shift Y pos
<a name="l42"></a>+] CM Cursor Movement
<a name="l43"></a>+] AN Anchor
<a name="l44"></a>+] LK Link
<a name="l45"></a>+] BT Bttn
<a name="l46"></a>+] DA Data
<a name="l47"></a>+] CB Check Box
<a name="l48"></a>+] LS List Widget
<a name="l49"></a>+] MA Macro
<a name="l50"></a>+] MU Menu Value
<a name="l51"></a>+] HX Hex Edit
<a name="l52"></a>+] TR Tree Widget
<a name="l53"></a>+] SP Sprite
<a name="l54"></a>+] IB Insert Binary
<a name="l55"></a>+] IS Insert Binary Size
<a name="l56"></a>+] SO Song
<a name="l57"></a>+] HL Highlighting
<a name="l58"></a>+] HC html
<a name="l59"></a>+] ER Error</span><span class=cF0>
<a name="l60"></a>
<a name="l61"></a></u>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>FlagCode</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1209"><span class=cF4>Flag Defines</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Widget.DD.html#l1"><span class=cF4>Simple Flags</span></a><span class=cF0>.</span><span class=cF5>
<a name="l62"></a><u>+] +H Hold
<a name="l63"></a>+] +L Link
<a name="l64"></a>+] +TR Tree
<a name="l65"></a>+] +LS List
<a name="l66"></a>+] +PU PopUp
<a name="l67"></a>+] +C Collapsed
<a name="l68"></a>+] +X &lt;ESC&gt; (Exit)
<a name="l69"></a>+] +Q &lt;SHIFT-ESC&gt; (Abort Quit)
<a name="l70"></a>+] +Z Zero
<a name="l71"></a>+] +RD Refresh Data
<a name="l72"></a>+] +UD Update Data
<a name="l73"></a>+] +TC Tag CallBack
<a name="l74"></a>+] +LC Left CallBack
<a name="l75"></a>+] +RC Right CallBack</span><span class=cF0>
<a name="l76"></a>
<a name="l77"></a></u>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1191"><span class=cF4>Arg Defines</span></a><span class=cF0>.</span><span class=cF5>
<a name="l78"></a><u>+] T=&quot;&quot; Tag Str
<a name="l79"></a>+] LEN=&quot;&quot; Field Length
<a name="l80"></a>+] A=&quot;&quot; Auxilliary Str
<a name="l81"></a>+] D=&quot;&quot; Define Str
<a name="l82"></a>+] HTML=&quot;&quot;
<a name="l83"></a>+] LE=&lt;Exp&gt; Left Expression
<a name="l84"></a>+] LM=&quot;&quot; Left Macro Str
<a name="l85"></a>+] RE=&lt;Exp&gt; Right Expression
<a name="l86"></a>+] RM=&quot;&quot; Right Macro Str
<a name="l87"></a>+] BI=&lt;Exp&gt; Bin Number
<a name="l88"></a>+] BP=&quot;&quot; Bin Ptr
<a name="l89"></a>+] RT=&lt;raw_data_type&gt;
<a name="l90"></a>+] SX=&lt;Exp&gt; Shift X
<a name="l91"></a>+] SY=&lt;Exp&gt; Shift Y
<a name="l92"></a>+] SCX=&lt;Exp&gt; Scroll X
<a name="l93"></a>+] U=&lt;Exp&gt; User Data</span><span class=cF0>
<a name="l94"></a>
<a name="l95"></a></u></span><span class=cF5>EXAMPLES:
<a name="l96"></a>
<a name="l97"></a></span><span class=cF0>&lt;CTRL-t&gt; to see how the following were done.
<a name="l98"></a><u>Underlined</u> </span><span class=c0F>Inverted</span><span class=cF0> <blink>Blinking</blink> super sub
<a name="l99"></a>This is a big long scrolling message.
<a name="l100"></a>
<a name="l101"></a></span><span class=cF5>Cursor Movements:</span><span class=cF0>
<a name="l102"></a>
<a name="l15"></a>The format of DolDoc cmds is a two character code, +/-flags, a comma and args separated by commas. Some commands have
<a name="l16"></a>mandatory args. Optional args are indicated with &lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt;</span><span class=cF2>=</span><span class=cF0>. A </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDefine.CC.html#l246"><span class=cF4>ColorName</span></a><span class=cF0> bracked by dollars, will change the foreground
<a name="l17"></a>color.
<a name="l18"></a>
<a name="l19"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Widget.DD.html#l1"><span class=cF4>::/Doc/Widget.DD</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Demo/DolDoc/DemoDoc.DD.html#l1"><span class=cF4>::/Demo/DolDoc/DemoDoc.DD</span></a><span class=cF0>, and </span><a href="https://tomawezome.github.io/ZealOS/Demo/ToHtmlToTXTDemo/ToHtml.CC.html#l1"><span class=cF4>::/Demo/ToHtmlToTXTDemo/ToHtml.CC</span></a><span class=cF0>.
<a name="l20"></a>
<a name="l21"></a>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1041"><span class=cF4>Type Defines</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPlain.CC.html#l272"><span class=cF4>ParseDollarCmd</span></a><span class=cF0>().</span><span class=cF5>
<a name="l22"></a><u>+] TX Text
<a name="l23"></a>+] CR Hard New Line
<a name="l24"></a>+] SR Soft New Line
<a name="l25"></a>+] CU Cursor pos
<a name="l26"></a>+] TB Tab
<a name="l27"></a>+] CL Clear
<a name="l28"></a>+] PB Page Break
<a name="l29"></a>+] PL Page Length
<a name="l30"></a>+] LM Left Margin
<a name="l31"></a>+] RM Right Margin
<a name="l32"></a>+] HD Header
<a name="l33"></a>+] FO Footer
<a name="l34"></a>+] ID Indent +/- num
<a name="l35"></a>+] Text Colors
<a name="l36"></a>+] PT User Prompt
<a name="l37"></a>+] WW Word Wrap
<a name="l38"></a>+] UL Underline
<a name="l39"></a>+] IV Invert
<a name="l40"></a>+] BK Blink
<a name="l41"></a>+] SX Shift X pos
<a name="l42"></a>+] SY Shift Y pos
<a name="l43"></a>+] CM Cursor Movement
<a name="l44"></a>+] AN Anchor
<a name="l45"></a>+] LK Link
<a name="l46"></a>+] BT Bttn
<a name="l47"></a>+] DA Data
<a name="l48"></a>+] CB Check Box
<a name="l49"></a>+] LS List Widget
<a name="l50"></a>+] MA Macro
<a name="l51"></a>+] MU Menu Value
<a name="l52"></a>+] HX Hex Edit
<a name="l53"></a>+] TR Tree Widget
<a name="l54"></a>+] SP Sprite
<a name="l55"></a>+] IB Insert Binary
<a name="l56"></a>+] IS Insert Binary Size
<a name="l57"></a>+] SO Song
<a name="l58"></a>+] HL Highlighting
<a name="l59"></a>+] HC html
<a name="l60"></a>+] ER Error</span><span class=cF0>
<a name="l61"></a>
<a name="l62"></a></u>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>FlagCode</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1209"><span class=cF4>Flag Defines</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Widget.DD.html#l1"><span class=cF4>Simple Flags</span></a><span class=cF0>.</span><span class=cF5>
<a name="l63"></a><u>+] +H Hold
<a name="l64"></a>+] +L Link
<a name="l65"></a>+] +TR Tree
<a name="l66"></a>+] +LS List
<a name="l67"></a>+] +PU PopUp
<a name="l68"></a>+] +C Collapsed
<a name="l69"></a>+] +X &lt;ESC&gt; (Exit)
<a name="l70"></a>+] +Q &lt;SHIFT-ESC&gt; (Abort Quit)
<a name="l71"></a>+] +Z Zero
<a name="l72"></a>+] +RD Refresh Data
<a name="l73"></a>+] +UD Update Data
<a name="l74"></a>+] +TC Tag CallBack
<a name="l75"></a>+] +LC Left CallBack
<a name="l76"></a>+] +RC Right CallBack</span><span class=cF0>
<a name="l77"></a>
<a name="l78"></a></u>&lt;</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>&gt; See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1191"><span class=cF4>Arg Defines</span></a><span class=cF0>.</span><span class=cF5>
<a name="l79"></a><u>+] T=&quot;&quot; Tag Str
<a name="l80"></a>+] LEN=&quot;&quot; Field Length
<a name="l81"></a>+] A=&quot;&quot; Auxilliary Str
<a name="l82"></a>+] D=&quot;&quot; Define Str
<a name="l83"></a>+] HTML=&quot;&quot;
<a name="l84"></a>+] LE=&lt;Exp&gt; Left Expression
<a name="l85"></a>+] LM=&quot;&quot; Left Macro Str
<a name="l86"></a>+] RE=&lt;Exp&gt; Right Expression
<a name="l87"></a>+] RM=&quot;&quot; Right Macro Str
<a name="l88"></a>+] BI=&lt;Exp&gt; Bin Number
<a name="l89"></a>+] BP=&quot;&quot; Bin Ptr
<a name="l90"></a>+] RT=&lt;raw_data_type&gt;
<a name="l91"></a>+] SX=&lt;Exp&gt; Shift X
<a name="l92"></a>+] SY=&lt;Exp&gt; Shift Y
<a name="l93"></a>+] SCX=&lt;Exp&gt; Scroll X
<a name="l94"></a>+] U=&lt;Exp&gt; User Data</span><span class=cF0>
<a name="l95"></a>
<a name="l96"></a></u></span><span class=cF5>EXAMPLES:
<a name="l97"></a>
<a name="l98"></a></span><span class=cF0>&lt;CTRL-t&gt; to see how the following were done.
<a name="l99"></a><u>Underlined</u> </span><span class=c0F>Inverted</span><span class=cF0> <blink>Blinking</blink> super sub
<a name="l100"></a>This is a big long scrolling message.
<a name="l101"></a>
<a name="l102"></a></span><span class=cF5>Cursor Movements:</span><span class=cF0>
<a name="l103"></a>
<a name="l104"></a>
<a name="l105"></a> Cursor moved 3 rows down and to 3rd column from left.
<a name="l106"></a>
<a name="l105"></a>
<a name="l106"></a> Cursor moved 3 rows down and to 3rd column from left.
<a name="l107"></a>
<a name="l108"></a>
<a name="l109"></a> Note mandatory comma after flags
<a name="l110"></a>
<a name="l111"></a>The following may be changed to modes instead of attr with flags.
<a name="l112"></a>
<a name="l113"></a> This is centered
<a name="l114"></a>
<a name="l115"></a> This is right justified
<a name="l109"></a>
<a name="l110"></a> Note mandatory comma after flags
<a name="l111"></a>
<a name="l112"></a>The following may be changed to modes instead of attr with flags.
<a name="l113"></a>
<a name="l114"></a> This is centered
<a name="l115"></a>
<a name="l116"></a> This is right justified
</span></pre></body>
</html>

View file

@ -36,8 +36,8 @@ body {background-color:#000000;}
<a name="l8"></a>
<a name="l9"></a>* Free, </span><span class=cF2>public domain</span><span class=cF0>, </span><span class=cF2>100% open source</span><span class=cF0>.
<a name="l10"></a>
<a name="l11"></a>* 64-bit </span><span class=cF2>compiler/assembler</span><span class=cF0> for </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>. Truly compiles, doesn't interpret. </span><span class=cF2>Just-in-Time</span><span class=cF0> and </span><span class=cF2>Ahead-of-Time</span><span class=cF0> compilation. With </span><span class=cF2>JI
<a name="l12"></a>T</span><span class=cF0>, no need for object or exe files.
<a name="l11"></a>* 64-bit </span><span class=cF2>compiler/assembler</span><span class=cF0> for </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>. Truly compiles, doesn't interpret. </span><span class=cF2>Just-in-Time</span><span class=cF0> and </span><span class=cF2>Ahead-of-Time</span><span class=cF0> compilation. With </span><span class=cF2>
<a name="l12"></a>JIT</span><span class=cF0>, no need for object or exe files.
<a name="l13"></a>
<a name="l14"></a>* No 32-bit krufty code.
<a name="l15"></a>

View file

@ -77,8 +77,8 @@ body {background-color:#000000;}
<a name="l50"></a>
<a name="l51"></a></span><span class=cF2>'m'</span><span class=cF0>
<a name="l52"></a> Make CD/DVD ISO.C file. This creates a </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> ISO file image of the dir the cursor is on. The name of the ISO file is </span><span class=cF2>
<a name="l53"></a> &quot;::/Tmp/CDDVD.ISO.C&quot;</span><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3382"><span class=cF4>blkdev.default_iso_c_filename</span></a><span class=cF0> and can be redefined in your start-up scripts. You may wish to place it on
<a name="l54"></a> a different drive.
<a name="l53"></a> &quot;::/Tmp/CDDVD.ISO.C&quot;</span><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3382"><span class=cF4>blkdev.default_iso_c_filename</span></a><span class=cF0> and can be redefined in your start-up scripts. You may wish to place it
<a name="l54"></a> on a different drive.
<a name="l55"></a>
<a name="l56"></a></span><span class=cF2>'B'</span><span class=cF0>
<a name="l57"></a> Burn CD/DVD ISO file. This burns a CD/DVD using the image file, </span><span class=cF2>&quot;::/Tmp/CDDVD.ISO&quot;</span><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3382"><span class=cF4>blkdev.default_iso_filename</span></a><span class=cF0> to the drive
@ -87,8 +87,8 @@ body {background-color:#000000;}
<a name="l60"></a>
<a name="l61"></a></span><span class=cF5>Instructions on Using CD/DVD's</span><span class=cF0>
<a name="l62"></a> If you have not recompiled Kernel and defined your CD/DVD drive, exit the FileMgr and use </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0> to define your CD/DVD drive.
<a name="l63"></a> Place a CD/DVD in the drive and press </span><span class=cF2>'c'</span><span class=cF0> when on top of the CD/DVD drive letter to mount the drive. It will call </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l269"><span class=cF4>DiskChange</span></a><span class=cF0>(
<a name="l64"></a> ), the ZealOS cmd to mount removable media.
<a name="l63"></a> Place a CD/DVD in the drive and press </span><span class=cF2>'c'</span><span class=cF0> when on top of the CD/DVD drive letter to mount the drive. It will call </span><span class=cF4>
<a name="l64"></a> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDrive.CC.html#l269"><span class=cF4>DiskChange</span></a><span class=cF0>(), the ZealOS cmd to mount removable media.
<a name="l65"></a>
<a name="l66"></a>
<a name="l67"></a></span><span class=cF5>Instructions on Burning CD/DVD's</span><span class=cF0>

View file

@ -27,8 +27,8 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> File Utils</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>File util </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>() wildcard mask consists of a single base dir with multiple file masks separated by </span><span class=cF2>';'</span><span class=cF0>. The </span><span class=cF2>'*'</span><span class=cF0> and </span><span class=cF2>'?'</span><span class=cF0>
<a name="l4"></a>wildcard chars are accepted. The </span><span class=cF2>'~'</span><span class=cF0> is your home directory and </span><span class=cF2>'!'</span><span class=cF0> indicates an exclusion mask.
<a name="l3"></a>File util </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFind.CC.html#l32"><span class=cF4>FilesFind</span></a><span class=cF0>() wildcard mask consists of a single base dir with multiple file masks separated by </span><span class=cF2>';'</span><span class=cF0>. The </span><span class=cF2>'*'</span><span class=cF0> and </span><span class=cF2>'?
<a name="l4"></a>'</span><span class=cF0> wildcard chars are accepted. The </span><span class=cF2>'~'</span><span class=cF0> is your home directory and </span><span class=cF2>'!'</span><span class=cF0> indicates an exclusion mask.
<a name="l5"></a>
<a name="l6"></a>
<a name="l7"></a></span><span class=cF2>&quot;/Kernel/*&quot;</span><span class=cF0> BaseDir: </span><span class=cF2>/Kernel</span><span class=cF0> Mask: </span><span class=cF2>*</span><span class=cF0>

View file

@ -25,8 +25,8 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the standard
<a name="l2"></a>ZealOS LZW compression.
<a name="l1"></a><span class=cF0>GR graphics files are 8-bits-per-pixels but only 4-bits of color, with transparency and no palette. Compression is the
<a name="l2"></a>standard ZealOS LZW compression.
<a name="l3"></a>
<a name="l4"></a>#</span><span class=cF1>define</span><span class=cF0> DCF_COMPRESSED </span><span class=cFE>1</span><span class=cF0> </span><span class=cF2>//This is the only saved flag.</span><span class=cF0>
<a name="l5"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>DCF_PALETTE</span><span class=cF0> </span><span class=cFE>2</span><span class=cF0>

View file

@ -70,18 +70,18 @@ body {background-color:#000000;}
<a name="l43"></a>
<a name="l44"></a>
<a name="l45"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l415"><span class=cF4>GrUpdateScreen</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l69"><span class=cF4>GrUpdateTasks</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l19"><span class=cF4>GrUpdateTaskWin</span></a><span class=cF0>() called by the WinMgr task 60fps. Notice the task's </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l41"><span class=cF4>draw_it</span></a><span class=cF0>()
<a name="l46"></a>callback being called. Only tasks on </span><span class=cF2>Core0</span><span class=cF0> are allowed to have windows. There is one window per task, no child windows. You
<a name="l47"></a>can have pop-up child tasks.
<a name="l46"></a>callback being called. Only tasks on </span><span class=cF2>Core0</span><span class=cF0> are allowed to have windows. There is one window per task, no child windows.
<a name="l47"></a>You can have pop-up child tasks.
<a name="l48"></a>
<a name="l49"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0>s (device contexts) are a data type for controlling graphics on the screen or graphics in mem. The device context
<a name="l50"></a>structure has thick and color. You use </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l182"><span class=cF4>DCAlias</span></a><span class=cF0>() to create your own structure, with its own color and thick. Free it with </span><span class=cF4>
<a name="l51"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l230"><span class=cF4>DCDel</span></a><span class=cF0>() when finished.
<a name="l52"></a>
<a name="l53"></a>* </span><span class=cF4>gr.dc</span><span class=cF0> is a device context for persistent data on the screen, not needing to be redrawn. You create an alias for this by using </span><span class=cF4>
<a name="l54"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l182"><span class=cF4>DCAlias</span></a><span class=cF0>() and work with that. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/NetOfDots.CC.html#l1"><span class=cF4>::/Demo/Graphics/NetOfDots.CC</span></a><span class=cF0>.
<a name="l53"></a>* </span><span class=cF4>gr.dc</span><span class=cF0> is a device context for persistent data on the screen, not needing to be redrawn. You create an alias for this by
<a name="l54"></a>using </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l182"><span class=cF4>DCAlias</span></a><span class=cF0>() and work with that. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/NetOfDots.CC.html#l1"><span class=cF4>::/Demo/Graphics/NetOfDots.CC</span></a><span class=cF0>.
<a name="l55"></a>
<a name="l56"></a>* There are various flavors of line and point plotting routines. </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l663"><span class=cF4>GrLine</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l61"><span class=cF4>GrPlot</span></a><span class=cF0>() are the simplest. The others allow 3D
<a name="l57"></a>graphics and rotations.
<a name="l56"></a>* There are various flavors of line and point plotting routines. </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l663"><span class=cF4>GrLine</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l61"><span class=cF4>GrPlot</span></a><span class=cF0>() are the simplest. The others allow
<a name="l57"></a>3D graphics and rotations.
<a name="l58"></a>
<a name="l59"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Transform.DD.html#l1"><span class=cF4>::/Doc/Transform.DD</span></a><span class=cF0> for adding a transformation.
<a name="l60"></a>
@ -93,34 +93,34 @@ body {background-color:#000000;}
<a name="l66"></a>numbers work, after creating a sprite with </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>, toggle to plain text with </span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> and check its num. Make an assignment
<a name="l67"></a>to a ptr var or pass to </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l18"><span class=cF4>Sprite3</span></a><span class=cF0>() with </span><span class=cF2>$IB,&quot;&quot;,BI=n$</span><span class=cF0>. Use </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>'s &quot;Pointer to Sprite&quot; to make a </span><span class=cF2>$IB...$</span><span class=cF0> entry. See </span><span class=cF4>
<a name="l68"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/SpritePlot.CC.html#l1"><span class=cF4>::/Demo/Graphics/SpritePlot.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/SpritePlot3D.CC.html#l1"><span class=cF4>::/Demo/Graphics/SpritePlot3D.CC</span></a><span class=cF0>. The origin (zero point) for a sprite is defined by the
<a name="l69"></a>cursor location when you pressed </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>
<a name="l70"></a>again.
<a name="l69"></a>cursor location when you pressed </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2>&lt;CTRL-r
<a name="l70"></a>&gt;</span><span class=cF0> again.
<a name="l71"></a>
<a name="l72"></a>* Set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l236"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l259"><span class=cF4>DCSymmetry3Set</span></a><span class=cF0>(). This will plot a mirror image in addition to
<a name="l73"></a>the primary image. Set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4241"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> to be set at the same time.
<a name="l74"></a>Note: You can only have one symmetry active at a time including in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0>s.
<a name="l72"></a>* Set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> in the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF2>.flags</span><span class=cF0> and call </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l236"><span class=cF4>DCSymmetrySet</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrMath.CC.html#l259"><span class=cF4>DCSymmetry3Set</span></a><span class=cF0>(). This will plot a mirror image in addition
<a name="l73"></a>to the primary image. Set </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4241"><span class=cF4>DCF_JUST_MIRROR</span></a><span class=cF0> to plot just the image, but this required </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4237"><span class=cF4>DCF_SYMMETRY</span></a><span class=cF0> to be set at the same time.
<a name="l74"></a> Note: You can only have one symmetry active at a time including in </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0>s.
<a name="l75"></a>
<a name="l76"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l205"><span class=cF4>DCNew</span></a><span class=cF0>() to create a mem bitmap which can be used to work off-screen and which can be </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>ed onto the screen. If you set </span><span class=cF2>
<a name="l77"></a>brush</span><span class=cF0> member of </span><span class=cF2>CDC</span><span class=cF0> to another </span><span class=cF2>CDC</span><span class=cF0>, all the graphic routines will </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>() the brush instead of </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l61"><span class=cF4>GrPlot</span></a><span class=cF0>(). See </span><span class=cF4>
<a name="l76"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l205"><span class=cF4>DCNew</span></a><span class=cF0>() to create a mem bitmap which can be used to work off-screen and which can be </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>ed onto the screen. If you
<a name="l77"></a>set </span><span class=cF2>brush</span><span class=cF0> member of </span><span class=cF2>CDC</span><span class=cF0> to another </span><span class=cF2>CDC</span><span class=cF0>, all the graphic routines will </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrBitMap.CC.html#l93"><span class=cF4>GrBlot</span></a><span class=cF0>() the brush instead of </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrPrimatives.CC.html#l61"><span class=cF4>GrPlot</span></a><span class=cF0>(). See </span><span class=cF4>
<a name="l78"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Blot.CC.html#l1"><span class=cF4>::/Demo/Graphics/Blot.CC</span></a><span class=cF0>.
<a name="l79"></a>
<a name="l80"></a>* There are a few </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3564"><span class=cF4>raster operations</span></a><span class=cF0> available. They go in bits 8-11 of the </span><span class=cF2>dc-&gt;color</span><span class=cF0> member var which is a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3605"><span class=cF4>CColorROPU32</span></a><span class=cF0>. </span><span class=cF4>
<a name="l81"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3566"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> is special. It counts the num of pixs drawn on non-background locations. Using </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3566"><span class=cF4>ROP_COLLISION</span></a><span class=cF0> with vector </span><span class=cF4>
<a name="l82"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0>'s is tricky because overlapping pixs from lines in the </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> reg as collisions. You can either work with a nonzero
<a name="l83"></a>count or convert your </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> to a bitmap if your subelements draw on top of each other. Be sure to set </span><span class=cF4>-&gt;bkcolor</span><span class=cF0> before using </span><span class=cF4>
<a name="l84"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3566"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Collision.CC.html#l1"><span class=cF4>::/Demo/Graphics/Collision.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
<a name="l83"></a>count or convert your </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/Gr.HH.html#l157"><span class=cF4>CSprite</span></a><span class=cF0> to a bitmap if your subelements draw on top of each other. Be sure to set </span><span class=cF4>-&gt;bkcolor</span><span class=cF0> before
<a name="l84"></a>using </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3566"><span class=cF4>ROP_COLLISION</span></a><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Collision.CC.html#l1"><span class=cF4>::/Demo/Graphics/Collision.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Apps/Titanium/Titanium.CC.html#l555"><span class=cF4>Titanium</span></a><span class=cF0>.
<a name="l85"></a>
<a name="l86"></a>* The </span><span class=cF4>-&gt;dither_probability_u16</span><span class=cF0> member of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0> is a </span><span class=cF2>U16</span><span class=cF0> used to statistically sel between two colors to get something resembling
<a name="l87"></a>more shades of color. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/SunMoon.CC.html#l1"><span class=cF4>::/Demo/Graphics/SunMoon.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Shading.CC.html#l1"><span class=cF4>::/Demo/Graphics/Shading.CC</span></a><span class=cF0>. It works with many graphic routines,
<a name="l88"></a>but not those with pens.
<a name="l87"></a>more shades of color. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/SunMoon.CC.html#l1"><span class=cF4>::/Demo/Graphics/SunMoon.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Shading.CC.html#l1"><span class=cF4>::/Demo/Graphics/Shading.CC</span></a><span class=cF0>. It works with many graphic
<a name="l88"></a>routines, but not those with pens.
<a name="l89"></a>
<a name="l90"></a>* There is a mechanism built-in for generating motion based on differential equations, which allows realistic physics. You
<a name="l91"></a>create an </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l281"><span class=cF4>CMathODE</span></a><span class=cF0> struct with </span><a href="https://tomawezome.github.io/ZealOS/System/MathODE.CC.html#l31"><span class=cF4>ODENew</span></a><span class=cF0>(), passing it the num of vars in the state vect. For realistic physics, you usually have
<a name="l92"></a>2 state vars for each dimension (for each mass) because motion is governed by F=mA which is a 2nd order equation. The two
<a name="l93"></a>states are pos and velocity and to solve these you need to supply the derivative of pos and velocity. The derivative of pos is
<a name="l94"></a>usually simply the current velocity and the derivative of velocity is the acceleration (the sum of forces on a mass divided by
<a name="l95"></a>mass). To help provide meaningful names for values in the state vect, you can create an </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l230"><span class=cF4>COrder2D3</span></a><span class=cF0> ptr and point it to a mass in
<a name="l96"></a>the state vect. Six elements in the state vect are required for each mass.
<a name="l91"></a>create an </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l281"><span class=cF4>CMathODE</span></a><span class=cF0> struct with </span><a href="https://tomawezome.github.io/ZealOS/System/MathODE.CC.html#l31"><span class=cF4>ODENew</span></a><span class=cF0>(), passing it the num of vars in the state vect. For realistic physics, you usually
<a name="l92"></a>have 2 state vars for each dimension (for each mass) because motion is governed by F=mA which is a 2nd order equation. The
<a name="l93"></a>two states are pos and velocity and to solve these you need to supply the derivative of pos and velocity. The derivative of
<a name="l94"></a>pos is usually simply the current velocity and the derivative of velocity is the acceleration (the sum of forces on a mass
<a name="l95"></a>divided by mass). To help provide meaningful names for values in the state vect, you can create an </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l230"><span class=cF4>COrder2D3</span></a><span class=cF0> ptr and point
<a name="l96"></a>it to a mass in the state vect. Six elements in the state vect are required for each mass.
<a name="l97"></a>
<a name="l98"></a>See </span><span class=cF4><u>Math/CMathODE</u></span><span class=cF0>.
<a name="l99"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Rocket.CC.html#l1"><span class=cF4>::/Demo/Games/Rocket.CC</span></a><span class=cF0>.

View file

@ -27,30 +27,30 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Directory Structure</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a></span><span class=cF2>/Home</span><span class=cF0> All your user data should be placed in here to ease backing-up your data. When you install an application it will create
<a name="l4"></a>a subdirectory of your </span><span class=cF2>/Home</span><span class=cF0> directory for storage.
<a name="l3"></a></span><span class=cF2>/Home</span><span class=cF0> All your user data should be placed in here to ease backing-up your data. When you install an application it will
<a name="l4"></a>create a subdirectory of your </span><span class=cF2>/Home</span><span class=cF0> directory for storage.
<a name="l5"></a>
<a name="l6"></a></span><span class=cF2>/Apps</span><span class=cF0> Applications are placed in subdirectories of </span><span class=cF2>/Apps</span><span class=cF0>. Applications should have a file called </span><span class=cF2>Install.CC</span><span class=cF0> which will install
<a name="l7"></a>the app, possibly making files or directories in </span><span class=cF2>/Home</span><span class=cF0>. The file, </span><span class=cF2>Load.CC</span><span class=cF0> will load the application into mem. The file, </span><span class=cF2>Run.CC</span><span class=cF0>
<a name="l8"></a>, will usually load and execute the app. To add an app to your PersonalMenu, use </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>, insert a macro with the PopUp
<a name="l9"></a>option checked and invoke the </span><span class=cF2>Run.CC</span><span class=cF0> file.
<a name="l6"></a></span><span class=cF2>/Apps</span><span class=cF0> Applications are placed in subdirectories of </span><span class=cF2>/Apps</span><span class=cF0>. Applications should have a file called </span><span class=cF2>Install.CC</span><span class=cF0> which will
<a name="l7"></a>install the app, possibly making files or directories in </span><span class=cF2>/Home</span><span class=cF0>. The file, </span><span class=cF2>Load.CC</span><span class=cF0> will load the application into mem. The
<a name="l8"></a>file, </span><span class=cF2>Run.CC</span><span class=cF0>, will usually load and execute the app. To add an app to your PersonalMenu, use </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>, insert a macro with
<a name="l9"></a>the PopUp option checked and invoke the </span><span class=cF2>Run.CC</span><span class=cF0> file.
<a name="l10"></a>
<a name="l11"></a></span><span class=cF2>/Demo</span><span class=cF0> Here you can find lots of sample code to do various things.
<a name="l12"></a>
<a name="l13"></a></span><span class=cF2>/Doc</span><span class=cF0> Here you can find documentation.
<a name="l14"></a>
<a name="l15"></a></span><span class=cF2>/Kernel</span><span class=cF0> The core of the operating system is found here. Since priviledge levels are not used, calling it a </span><span class=cF2>kernel</span><span class=cF0> is deceptive.
<a name="l16"></a>It is </span><span class=cF2>AOT</span><span class=cF0> compiled by </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). It is loaded by the boot loader and must fit in 640K.
<a name="l15"></a></span><span class=cF2>/Kernel</span><span class=cF0> The core of the operating system is found here. Since priviledge levels are not used, calling it a </span><span class=cF2>kernel</span><span class=cF0> is
<a name="l16"></a>deceptive. It is </span><span class=cF2>AOT</span><span class=cF0> compiled by </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). It is loaded by the boot loader and must fit in 640K.
<a name="l17"></a>
<a name="l18"></a></span><span class=cF2>/Compiler</span><span class=cF0> The compiler module src code is found here. The compiler is </span><span class=cF2>AOT</span><span class=cF0> compiled to produce a binary file which is loaded at
<a name="l19"></a>boot. It, too, is </span><span class=cF2>AOT</span><span class=cF0> compiled by </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>().
<a name="l18"></a></span><span class=cF2>/Compiler</span><span class=cF0> The compiler module src code is found here. The compiler is </span><span class=cF2>AOT</span><span class=cF0> compiled to produce a binary file which is loaded
<a name="l19"></a>at boot. It, too, is </span><span class=cF2>AOT</span><span class=cF0> compiled by </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>().
<a name="l20"></a>
<a name="l21"></a></span><span class=cF2>/System</span><span class=cF0> The non-kernel part of the operating system is found here. It is </span><span class=cF2>JIT</span><span class=cF0> compiled during boot. The </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is the most
<a name="l22"></a>important task. It never dies.
<a name="l21"></a></span><span class=cF2>/System</span><span class=cF0> The non-kernel part of the operating system is found here. It is </span><span class=cF2>JIT</span><span class=cF0> compiled during boot. The </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is the
<a name="l22"></a>most important task. It never dies.
<a name="l23"></a>
<a name="l24"></a></span><span class=cF2>/0000Boot</span><span class=cF0> Boot files go here. Stage 2 of the ZealOS hard drive master boot loader, the old hard drive master boot record which
<a name="l25"></a>is just blk#0, and the CD/DVD </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>0000Kernel.BIN.C</span></a><span class=cF0> file go here. ASCII </span><span class=cF2>0000</span><span class=cF0> is near the top, alphabetically, in case you use
<a name="l26"></a></span><a href="http://www.magiciso.com"><span class=cF0>MagicISO</span></a><span class=cF0>.
<a name="l24"></a></span><span class=cF2>/0000Boot</span><span class=cF0> Boot files go here. Stage 2 of the ZealOS hard drive master boot loader, the old hard drive master boot record
<a name="l25"></a>which is just blk#0, and the CD/DVD </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Kernel.PRJ.html#l1"><span class=cF4>0000Kernel.BIN.C</span></a><span class=cF0> file go here. ASCII </span><span class=cF2>0000</span><span class=cF0> is near the top, alphabetically, in case you
<a name="l26"></a>use </span><a href="http://www.magiciso.com"><span class=cF0>MagicISO</span></a><span class=cF0>.
<a name="l27"></a>
<a name="l28"></a>
<a name="l29"></a>
@ -96,10 +96,10 @@ body {background-color:#000000;}
<a name="l69"></a>
<a name="l70"></a>* You can </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l387"><span class=cF4>Free</span></a><span class=cF0>(</span><span class=cF2>NULL</span><span class=cF0>).
<a name="l71"></a>
<a name="l72"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l259"><span class=cF4>Naming Convention</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l3"><span class=cF4>Abbreviations</span></a><span class=cF0>.
<a name="l72"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l260"><span class=cF4>Naming Convention</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l3"><span class=cF4>Abbreviations</span></a><span class=cF0>.
<a name="l73"></a>
<a name="l74"></a>* There are two modes of compiling, </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l178"><span class=cF4>AOT Compile Mode</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l186"><span class=cF4>JIT Compile Mode</span></a><span class=cF0>. Compilation is done in both -- neither is
<a name="l75"></a>&quot;interpreted&quot;. Use </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l186"><span class=cF4>JIT Mode</span></a><span class=cF0>.
<a name="l74"></a>* There are two modes of compiling, </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l179"><span class=cF4>AOT Compile Mode</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l187"><span class=cF4>JIT Compile Mode</span></a><span class=cF0>. Compilation is done in both -- neither is
<a name="l75"></a>&quot;interpreted&quot;. Use </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l187"><span class=cF4>JIT Mode</span></a><span class=cF0>.
<a name="l76"></a>
<a name="l77"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>
<a name="l78"></a>
@ -138,19 +138,19 @@ body {background-color:#000000;}
<a name="l111"></a>
<a name="l112"></a></span><span class=cF5> Hash Sym Tables</span><span class=cF0>
<a name="l113"></a>
<a name="l114"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/System/ZHash.CC.html#l1"><span class=cF4>::/System/ZHash.CC</span></a><span class=cF0> for examples of how the hash tables are set-up. Basically, syms are placed into hash tables and child
<a name="l115"></a>process hash tables are chained to parents. This provides scopes for vars and functions.
<a name="l114"></a>* See </span><a href="https://tomawezome.github.io/ZealOS/System/ZHash.CC.html#l1"><span class=cF4>::/System/ZHash.CC</span></a><span class=cF0> for examples of how the hash tables are set-up. Basically, syms are placed into hash tables and
<a name="l115"></a>child process hash tables are chained to parents. This provides scopes for vars and functions.
<a name="l116"></a>
<a name="l117"></a>* </span><span class=cF2>sys_task-&gt;hash_table</span><span class=cF0> holds the </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> syms loaded in on start-up.
<a name="l118"></a>
<a name="l119"></a>* </span><span class=cF2>Fs-&gt;hash_table</span><span class=cF0> holds user CosmiC syms and if a sym is not found, it checks parents. When a duplicate sym is added to the
<a name="l120"></a>table, it overshadows the prev sym. When developing software, typically you include the file at the cmd prompt, make changes
<a name="l121"></a>and reinclude it. Old syms are overshadowed but they are still there. Periodically, kill the TASK and start fresh when mem is
<a name="l122"></a>low. If you wish your applications to free themselves instead of staying in mem, spawn or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l447"><span class=cF4>PopUp</span></a><span class=cF0>() a task to run the
<a name="l121"></a>and reinclude it. Old syms are overshadowed but they are still there. Periodically, kill the TASK and start fresh when mem
<a name="l122"></a>is low. If you wish your applications to free themselves instead of staying in mem, spawn or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l447"><span class=cF4>PopUp</span></a><span class=cF0>() a task to run the
<a name="l123"></a>application and kill it when it's done.
<a name="l124"></a>
<a name="l125"></a>* To display the contents of a hash table, use the </span><a href="https://tomawezome.github.io/ZealOS/System/Hash.CC.html#l169"><span class=cF4>Who</span></a><span class=cF0>() routine or the varients. </span><a href="https://tomawezome.github.io/ZealOS/System/Hash.CC.html#l370"><span class=cF4>HashDepthRep</span></a><span class=cF0>() gives a histogram of how long
<a name="l126"></a>the chains are, in case you wish to make hash table sizes bigger.
<a name="l125"></a>* To display the contents of a hash table, use the </span><a href="https://tomawezome.github.io/ZealOS/System/Hash.CC.html#l169"><span class=cF4>Who</span></a><span class=cF0>() routine or the varients. </span><a href="https://tomawezome.github.io/ZealOS/System/Hash.CC.html#l370"><span class=cF4>HashDepthRep</span></a><span class=cF0>() gives a histogram of how
<a name="l126"></a>long the chains are, in case you wish to make hash table sizes bigger.
<a name="l127"></a>
<a name="l128"></a>
<a name="l129"></a>
@ -164,8 +164,8 @@ body {background-color:#000000;}
<a name="l137"></a>
<a name="l138"></a>* Don't change the segment regs unless interrupts are off. It's hard to do, anyway. </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KUtils.CC.html#l536"><span class=cF4>SET_FS_BASE</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KUtils.CC.html#l522"><span class=cF4>SET_GS_BASE</span></a><span class=cF0>.
<a name="l139"></a>
<a name="l140"></a>* When interacting with </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> compiled code, preserve </span><span class=cF2>RBP, RSI, RDI, R10-R15</span><span class=cF0> because the compiler uses these for reg vars. You
<a name="l141"></a>are free to clobber </span><span class=cF2>RAX, RBX, RCX, RDX</span><span class=cF0>, </span><span class=cF2>R8</span><span class=cF0> and </span><span class=cF2>R9</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1939"><span class=cF4>Compiler Reg Masks</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1911"><span class=cF4>PUSH_C_REGS</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1912"><span class=cF4>POP_C_REGS</span></a><span class=cF0>
<a name="l140"></a>* When interacting with </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> compiled code, preserve </span><span class=cF2>RBP, RSI, RDI, R10-R15</span><span class=cF0> because the compiler uses these for reg vars. Yo
<a name="l141"></a>u are free to clobber </span><span class=cF2>RAX, RBX, RCX, RDX</span><span class=cF0>, </span><span class=cF2>R8</span><span class=cF0> and </span><span class=cF2>R9</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1939"><span class=cF4>Compiler Reg Masks</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1911"><span class=cF4>PUSH_C_REGS</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1912"><span class=cF4>POP_C_REGS</span></a><span class=cF0>
<a name="l142"></a>
<a name="l143"></a>* It is recommended to use the standard stack frame for functions because </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KDebug.CC.html#l53"><span class=cF4>Caller</span></a><span class=cF0>() is used to display the call stack, such as
<a name="l144"></a>for the wallpaper.

View file

@ -52,12 +52,12 @@ body {background-color:#000000;}
<a name="l25"></a>
<a name="l26"></a>
<a name="l27"></a>
<a name="l28"></a>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
<a name="l29"></a>back to the </span><span class=cF2>System</span><span class=cF0> task.
<a name="l28"></a>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
<a name="l29"></a>chain back to the </span><span class=cF2>System</span><span class=cF0> task.
<a name="l30"></a>
<a name="l31"></a>ZealOS sym tables are implemented with an array of linked-lists. A num is generated from a string by </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KHashA.CC.html#l258"><span class=cF4>HashStr</span></a><span class=cF0>() to index into
<a name="l32"></a>the array of linked-lists. Multiple strings can generate the same num, so linked-lists are built. Newer entries overshadow
<a name="l33"></a>older ones.
<a name="l31"></a>ZealOS sym tables are implemented with an array of linked-lists. A num is generated from a string by </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KHashA.CC.html#l258"><span class=cF4>HashStr</span></a><span class=cF0>() to index
<a name="l32"></a>into the array of linked-lists. Multiple strings can generate the same num, so linked-lists are built. Newer entries
<a name="l33"></a>overshadow older ones.
<a name="l34"></a>
<a name="l35"></a>There are various types of entries. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l822"><span class=cF4>Hash Entry Types</span></a><span class=cF0>.
<a name="l36"></a>

View file

@ -26,8 +26,8 @@ body {background-color:#000000;}
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF2>#help_index &quot;Topic/SubTopic;OtherTopic&quot;</span><span class=cF0>
<a name="l2"></a>The help index preprocessor compiler directive sets the topics for syms subsequently defined. You specify subtopics with a '</span><span class=cF2>/</span><span class=cF0>'
<a name="l3"></a>tree hierarchy and separate multiple topics with a '</span><span class=cF2>;</span><span class=cF0>'. The index ctrls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l39"><span class=cF4>HI:index</span></a><span class=cF0> links.
<a name="l2"></a>The help index preprocessor compiler directive sets the topics for syms subsequently defined. You specify subtopics with a '</span><span class=cF2>/</span><span class=cF0>
<a name="l3"></a>' tree hierarchy and separate multiple topics with a '</span><span class=cF2>;</span><span class=cF0>'. The index ctrls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocLink.CC.html#l39"><span class=cF4>HI:index</span></a><span class=cF0> links.
<a name="l4"></a>
<a name="l5"></a></span><span class=cF2>public</span><span class=cF0> causes a sym to appear in help_index reports.
<a name="l6"></a>

View file

@ -25,14 +25,14 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF2>InFiles</span><span class=cF0> are used to generate user input to automate operations. The ZealOS tour is done with an </span><span class=cF2>InFile</span><span class=cF0>. It is akin to a Unix
<a name="l2"></a>pipe because </span><span class=cF2>StdOut</span><span class=cF0> of one gets chained into </span><span class=cF2>StdIn</span><span class=cF0> of another.
<a name="l1"></a><span class=cF2>InFiles</span><span class=cF0> are used to generate user input to automate operations. The ZealOS tour is done with an </span><span class=cF2>InFile</span><span class=cF0>. It is akin to a
<a name="l2"></a>Unix pipe because </span><span class=cF2>StdOut</span><span class=cF0> of one gets chained into </span><span class=cF2>StdIn</span><span class=cF0> of another.
<a name="l3"></a>
<a name="l4"></a>When an </span><span class=cF2>InFile</span><span class=cF0> runs, a child task is </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>()ed which intercepts real user input and generates fake input. InFiles are </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0>
<a name="l5"></a>programs run by the child whose stdout goes to the parent's input buffer. </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l312"><span class=cF4>Message</span></a><span class=cF0>() can be included in an </span><span class=cF2>InFile</span><span class=cF0> to send
<a name="l6"></a>special keys or mouse cmds to the parent. While an </span><span class=cF2>InFile</span><span class=cF0> is running, the normal input gets diverted to the InFile task and
<a name="l7"></a>can be filtered and sent back to the parent task. Unless you are driving functions which prompt for data, you can probably use
<a name="l8"></a>an </span><span class=cF2>#include</span><span class=cF0> file in place of an </span><span class=cF2>InFile</span><span class=cF0>.
<a name="l7"></a>can be filtered and sent back to the parent task. Unless you are driving functions which prompt for data, you can probably
<a name="l8"></a>use an </span><span class=cF2>#include</span><span class=cF0> file in place of an </span><span class=cF2>InFile</span><span class=cF0>.
<a name="l9"></a>
<a name="l10"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/InFile/InDir.IN.html#l1"><span class=cF4>::/Demo/InFile/InDir.IN</span></a><span class=cF0>.
<a name="l11"></a>

View file

@ -31,9 +31,9 @@ body {background-color:#000000;}
<a name="l4"></a>installing.
<a name="l5"></a>
<a name="l6"></a>Dual booting with another operating system is the best way to use ZealOS. It is often used in a virtual machine because it
<a name="l7"></a>won't boot natively on some machines, though. For native dual booting, you need a partition for ZealOS. Windows often comes
<a name="l8"></a>with a restore disk that does not allow repartitioning. It's recommended to connect a spare additional hard drive and use the </span><span class=cF2>B
<a name="l9"></a>IOS</span><span class=cF0> to select which drive to boot.
<a name="l7"></a>won't boot natively on some machines, though. For native dual booting, you need a partition for ZealOS. Windows often
<a name="l8"></a>comes with a restore disk that does not allow repartitioning. It's recommended to connect a spare additional hard drive and
<a name="l9"></a>use the </span><span class=cF2>BIOS</span><span class=cF0> to select which drive to boot.
<a name="l10"></a>
<a name="l11"></a>The </span><a href="https://tomawezome.github.io/ZealOS/Misc/OSInstall.CC.html#l1"><span class=cF4>::/Misc/OSInstall.CC</span></a><span class=cF0> script will automate much of this. It runs if you boot the CD/DVD-ROM.
<a name="l12"></a>
@ -51,16 +51,16 @@ body {background-color:#000000;}
<a name="l24"></a>
<a name="l25"></a> This will perform a special </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() automatically.
<a name="l26"></a>
<a name="l27"></a> <blink>WARNING:</blink> This command erases everything on a hard drive. It repartitions a whole drive and formats the partitions. This
<a name="l28"></a> command should be skipped if you already have your hard drive partitioned.
<a name="l27"></a> <blink>WARNING:</blink> This command erases everything on a hard drive. It repartitions a whole drive and formats the partitions. Th
<a name="l28"></a> is command should be skipped if you already have your hard drive partitioned.
<a name="l29"></a>
<a name="l30"></a>
<a name="l31"></a> <blink>WARNING:</blink> This command doesn't play well with other operating systems. You'll need to do a </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootMHDIns.CC.html#l58"><span class=cF4>BootMHDZero</span></a><span class=cF0>() to restore
<a name="l32"></a> your drive to a state where other operating systems can partition it.
<a name="l33"></a>
<a name="l34"></a>2) </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskFormat.CC.html#l67"><span class=cF4>Format</span></a><span class=cF0>(</span><span class=cF2>'D'</span><span class=cF0>,</span><span class=cF2> TRUE</span><span class=cF0>,</span><span class=cF2> FALSE</span><span class=cF0>,</span><span class=cF2> FSt_FAT32</span><span class=cF0>)
<a name="l35"></a> This command formats a drive with </span><span class=cF2>FAT32</span><span class=cF0> or the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system type. Use the drive letter of the partition in place of </span><span class=cF2>'D
<a name="l36"></a> '</span><span class=cF0>.
<a name="l35"></a> This command formats a drive with </span><span class=cF2>FAT32</span><span class=cF0> or the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system type. Use the drive letter of the partition in place of </span><span class=cF2>
<a name="l36"></a> 'D'</span><span class=cF0>.
<a name="l37"></a>
<a name="l38"></a> <blink>WARNING:</blink> If you are upgrading, be sure not to lose the file, </span><span class=cF2>/0000Boot/OldMBR.BIN.C</span><span class=cF0>.
<a name="l39"></a>
@ -78,8 +78,8 @@ body {background-color:#000000;}
<a name="l51"></a> replaces it. When you boot, you will have the option of booting the old master boot record. This command can be skipped if
<a name="l52"></a> you already have a boot loader. Be sure not to lose the copy of the old boot record, like if you reformat the drive.
<a name="l53"></a>
<a name="l54"></a> Delete </span><span class=cF2>/0000Boot/OldMBR.BIN.C</span><span class=cF0> if you want to get a fresh copy of a mbr, like if installing from your own custom CD containing
<a name="l55"></a> it's own </span><span class=cF2>/0000Boot/OldMBR.BIN.C</span><span class=cF0> onto a system with a non-ZealOS boot loader.
<a name="l54"></a> Delete </span><span class=cF2>/0000Boot/OldMBR.BIN.C</span><span class=cF0> if you want to get a fresh copy of a mbr, like if installing from your own custom CD
<a name="l55"></a> containing it's own </span><span class=cF2>/0000Boot/OldMBR.BIN.C</span><span class=cF0> onto a system with a non-ZealOS boot loader.
<a name="l56"></a>
<a name="l57"></a> If you have anti-virus software, it might object to having a different master boot record.
<a name="l58"></a>

View file

@ -32,15 +32,15 @@ body {background-color:#000000;}
<a name="l5"></a>See </span><span class=cF9><u>Key Map</u></span><span class=cF0> for a detailed list of key commands.
<a name="l6"></a>
<a name="l7"></a>When you are at the cmd line, editing documents, browsing documentation and help, entering items in forms or in menu's, the </span><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>DolDoc</span></a><span class=cF0> editor handles keys. It allows you to define your own key handlers in a </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeKeyPlugIns.CC.html#l11"><span class=cF4>MyPutKey</span></a><span class=cF0>() function. If you choose, you can catch
<a name="l9"></a>keys, overriding the default handlers. See </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutKey.CC.html#l3"><span class=cF4>DocPutKey</span></a><span class=cF0>(). The following is an overview of key allocations.
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>DolDoc</span></a><span class=cF0> editor handles keys. It allows you to define your own key handlers in a </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeKeyPlugIns.CC.html#l11"><span class=cF4>MyPutKey</span></a><span class=cF0>() function. If you choose, you can
<a name="l9"></a>catch keys, overriding the default handlers. See </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutKey.CC.html#l3"><span class=cF4>DocPutKey</span></a><span class=cF0>(). The following is an overview of key allocations.
<a name="l10"></a>
<a name="l11"></a></span><span class=cF2>&lt;ALT-keys&gt;</span><span class=cF0> and </span><span class=cF2>&lt;ALT-SHIFT-keys&gt;</span><span class=cF0> Free for user configurations in your </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeKeyPlugIns.CC.html#l11"><span class=cF4>MyPutKey</span></a><span class=cF0>() handler, except for </span><span class=cF2>ALT-BACKSPACE</span><span class=cF0> (undo).
<a name="l12"></a>There are a few examples pre-defined, but you can change them if you wish.
<a name="l13"></a>
<a name="l14"></a></span><span class=cF2>&lt;CTRL-ALT-keys&gt;</span><span class=cF0> and </span><span class=cF2>&lt;CTRL-ALT-SHIFT-keys&gt;</span><span class=cF0> Handled at a system level, NOT by the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> editor. You can define your own handlers
<a name="l15"></a>with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KeyDev.CC.html#l201"><span class=cF4>CtrlAltCBSet</span></a><span class=cF0>(). They operate either in a interrupt environment or in the window mgr when it queues kbd messages. You
<a name="l16"></a>can do </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l257"><span class=cF4>Raw</span></a><span class=cF0>() output. </span><span class=cF2>&lt;CTRL-ALT-letter&gt;</span><span class=cF0> handlers take a scan_code as an arg.
<a name="l14"></a></span><span class=cF2>&lt;CTRL-ALT-keys&gt;</span><span class=cF0> and </span><span class=cF2>&lt;CTRL-ALT-SHIFT-keys&gt;</span><span class=cF0> Handled at a system level, NOT by the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> editor. You can define your own
<a name="l15"></a>handlers with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KeyDev.CC.html#l201"><span class=cF4>CtrlAltCBSet</span></a><span class=cF0>(). They operate either in a interrupt environment or in the window mgr when it queues kbd
<a name="l16"></a>messages. You can do </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l257"><span class=cF4>Raw</span></a><span class=cF0>() output. </span><span class=cF2>&lt;CTRL-ALT-letter&gt;</span><span class=cF0> handlers take a scan_code as an arg.
<a name="l17"></a>
<a name="l18"></a></span><span class=cF2>&lt;CTRL-function key&gt;</span><span class=cF0> Auto-completes local words.
<a name="l19"></a>

View file

@ -33,8 +33,8 @@ body {background-color:#000000;}
<a name="l6"></a>
<a name="l7"></a>In ZealOS, the lowest 2Gig of memory is called the </span><span class=cF2>code heap</span><span class=cF0>. ZealOS's compiler always uses 32-bit signed relative JMP &amp; CALL
<a name="l8"></a>insts because 64-bit CALLs take two insts. With signed +/- 32-bit values, code can only call a function within 2Gig distance.
<a name="l9"></a>Therefore, ZealOS keeps all code in the lowest 2Gig memory addresses including what would normally be called &quot;the kernel&quot;. Two
<a name="l10"></a>Gig is plenty for code, don't worry.
<a name="l9"></a> Therefore, ZealOS keeps all code in the lowest 2Gig memory addresses including what would normally be called &quot;the kernel&quot;.
<a name="l10"></a>Two Gig is plenty for code, don't worry.
<a name="l11"></a>
<a name="l12"></a>You can create new, independent heaps using </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/HeapCtrl.CC.html#l1"><span class=cF4>HeapCtrlInit</span></a><span class=cF0>(). Then, use the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3528"><span class=cF4>CHeapCtrl</span></a><span class=cF0> as the 2nd arg to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>(). See </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>()
<a name="l13"></a>for an example.
@ -94,22 +94,22 @@ body {background-color:#000000;}
<a name="l67"></a>In 2003, Terry Davis wanted to make a no-paging ring-0-only 64-bit operating system for super speed with simplicity and full
<a name="l68"></a>access. With paging, every memory request requires 5 accesses -- it must access the address itself, 4K, 2Meg, 1Gig, and 512Gig
<a name="l69"></a>page tables, but the CPU's translation look-aside buffer mostly removes the penalty for using paging. So, he did not want to
<a name="l70"></a>use paging, but long mode requires it. He did the next best thing -- he identity-mapped everything and achieved the simplicity
<a name="l71"></a>he was after with subtle performance boosts, not wasting time changing address maps. We look forward to the day Intel makes an
<a name="l72"></a>optimized no-paging long mode.
<a name="l70"></a>use paging, but long mode requires it. He did the next best thing -- he identity-mapped everything and achieved the
<a name="l71"></a>simplicity he was after with subtle performance boosts, not wasting time changing address maps. We look forward to the day
<a name="l72"></a>Intel makes an optimized no-paging long mode.
<a name="l73"></a>
<a name="l74"></a>Terry needed VGA A0000-BFFFF memory to be write-through and 0xE0000000-0xFFFFFFFF to be uncached for various devices. All
<a name="l75"></a>64-bit computers allow stopping address translation at 2Meg page size, not using 4K. He wanted to use 2Meg for everything
<a name="l76"></a>because it's faster, with one less level of page tables. He had to make A0000-BFFFF write-through, though, so he could not use
<a name="l77"></a>2Meg size on the lowest page. He did the lowest 2Meg area as 4K pages. He also unmapped the first 4K to cause a fault when
<a name="l78"></a>dereferencing NULL.
<a name="l76"></a>because it's faster, with one less level of page tables. He had to make A0000-BFFFF write-through, though, so he could not
<a name="l77"></a>use 2Meg size on the lowest page. He did the lowest 2Meg area as 4K pages. He also unmapped the first 4K to cause a fault
<a name="l78"></a>when dereferencing NULL.
<a name="l79"></a>
<a name="l80"></a>In 2016, Terry came-up with an alternate idea. He double mapped the lowest memory with an alias that was uncached. Accessing
<a name="l81"></a>the lowest 2Meg area directly was cached but the alias he created up at the top of address space was uncached. See </span><span class=cF4>
<a name="l82"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l157"><span class=cF4>UncachedAliasAlloc</span></a><span class=cF0>(). Unfortunately, he could no longer boast of the simplicity of identity mapping everything. Since many of
<a name="l83"></a>the users are familiar with A0000-BFFFF, it is actually pretty seriously unfortunate that they cannot use the easy-to-understand
<a name="l84"></a>numbers of A0000-BFFFF, but must access the relocated alias location. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l113"><span class=cF4>text.vga_alias</span></a><span class=cF0>. We also no longer cause a fault
<a name="l85"></a>when dereferencing NULL.
<a name="l82"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l157"><span class=cF4>UncachedAliasAlloc</span></a><span class=cF0>(). Unfortunately, he could no longer boast of the simplicity of identity mapping everything. Since many
<a name="l83"></a>of the users are familiar with A0000-BFFFF, it is actually pretty seriously unfortunate that they cannot use the
<a name="l84"></a>easy-to-understand numbers of A0000-BFFFF, but must access the relocated alias location. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l113"><span class=cF4>text.vga_alias</span></a><span class=cF0>. We also no
<a name="l85"></a>longer cause a fault when dereferencing NULL.
<a name="l86"></a>
<a name="l87"></a>Then, Terry switched to 1Gig page sizes. For the lowest 4Gig, he set-up an alias up at the top of address space. See </span><span class=cF4>
<a name="l88"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l157"><span class=cF4>UncachedAliasAlloc</span></a><span class=cF0>(). Not all computers support 1Gig page tables, however, so he also supported 2Meg.

View file

@ -50,8 +50,8 @@ body {background-color:#000000;}
<a name="l23"></a>}
<a name="l24"></a></span><span class=cF0>
<a name="l25"></a>The first arg is the message code and it is optional with the default being </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3859"><span class=cF4>MESSAGE_KEY_DOWN_UP</span></a><span class=cF0>. The second arg is the
<a name="l26"></a>message </span><span class=cF2>arg1</span><span class=cF0> value which is </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4095"><span class=cF4>ASCII</span></a><span class=cF0> of the key in the case of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>. The third arg is the message </span><span class=cF2>arg2</span><span class=cF0> value which is
<a name="l27"></a>the </span><a href="https://tomawezome.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF0> of the key in the case of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>.
<a name="l26"></a>message </span><span class=cF2>arg1</span><span class=cF0> value which is </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4095"><span class=cF4>ASCII</span></a><span class=cF0> of the key in the case of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>. The third arg is the message </span><span class=cF2>arg2</span><span class=cF0> value which
<a name="l27"></a>is the </span><a href="https://tomawezome.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>scan_code</span></a><span class=cF0> of the key in the case of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3846"><span class=cF4>MESSAGE_KEY_DOWN</span></a><span class=cF0>.
<a name="l28"></a>
<a name="l29"></a>Press </span><span class=cF2>&lt;CTRL-SHIFT-l&gt;</span><span class=cF0> and &quot;Insert ASCII/ScanCode&quot;.
<a name="l30"></a>

View file

@ -33,15 +33,16 @@ body {background-color:#000000;}
<a name="l6"></a>
<a name="l7"></a>Only tasks on </span><span class=cF2>Core0</span><span class=cF0> can have windows, but other cores can help render them.
<a name="l8"></a>
<a name="l9"></a>Each core has an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l160"><span class=cF4>Executive Task</span></a><span class=cF0> which is the father of all tasks on that core. </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System</span></a><span class=cF0> is the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l160"><span class=cF4>Executive Task</span></a><span class=cF0> on </span><span class=cF2>Core0</span><span class=cF0>.
<a name="l9"></a>Each core has an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l161"><span class=cF4>Executive Task</span></a><span class=cF0> which is the father of all tasks on that core. </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System</span></a><span class=cF0> is the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l161"><span class=cF4>Executive Task</span></a><span class=cF0> on </span><span class=cF2>Core0</span><span class=cF0>.
<a name="l10"></a>
<a name="l11"></a>You give a job to an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l160"><span class=cF4>Executive Task</span></a><span class=cF0> with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/MultiProc.CC.html#l224"><span class=cF4>JobQueue</span></a><span class=cF0>() and get the result with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l242"><span class=cF4>JobResGet</span></a><span class=cF0>(). You spawn a task on any core with </span><span class=cF4>
<a name="l11"></a>You give a job to an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l161"><span class=cF4>Executive Task</span></a><span class=cF0> with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/MultiProc.CC.html#l224"><span class=cF4>JobQueue</span></a><span class=cF0>() and get the result with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l242"><span class=cF4>JobResGet</span></a><span class=cF0>(). You spawn a task on any core with </span><span class=cF4>
<a name="l12"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
<a name="l13"></a>
<a name="l14"></a>Note: You must use the </span><span class=cF2>LOCK</span><span class=cF0> asm prefix when changing shared structures in a multicore environment. The </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l17"><span class=cF4>LBts</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l16"><span class=cF4>LBtr</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l15"><span class=cF4>LBtc</span></a><span class=cF0>(
<a name="l15"></a>) insts have </span><span class=cF2>LOCK</span><span class=cF0> prefixes. The compiler has a </span><span class=cF2>lock{}</span><span class=cF0> feature but it doesn't work well. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/Lock.CC.html#l1"><span class=cF4>::/Demo/MultiCore/Lock.CC</span></a><span class=cF0>.
<a name="l16"></a>
<a name="l17"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Transform.CC.html#l1"><span class=cF4>::/Demo/Graphics/Transform.CC</span></a><span class=cF0>.
<a name="l18"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/MultiProc.CC.html#l1"><span class=cF4>::/Kernel/MultiProc.CC</span></a><span class=cF0>.
<a name="l14"></a>Note: You must use the </span><span class=cF2>LOCK</span><span class=cF0> asm prefix when changing shared structures in a multicore environment. The </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l17"><span class=cF4>LBts</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l16"><span class=cF4>LBtr</span></a><span class=cF0>() and </span><span class=cF4>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l15"><span class=cF4>LBtc</span></a><span class=cF0>() insts have </span><span class=cF2>LOCK</span><span class=cF0> prefixes. The compiler has a </span><span class=cF2>lock{}</span><span class=cF0> feature but it doesn't work well. See </span><span class=cF4>
<a name="l16"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/MultiCore/Lock.CC.html#l1"><span class=cF4>::/Demo/MultiCore/Lock.CC</span></a><span class=cF0>.
<a name="l17"></a>
<a name="l18"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Graphics/Transform.CC.html#l1"><span class=cF4>::/Demo/Graphics/Transform.CC</span></a><span class=cF0>.
<a name="l19"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/MultiProc.CC.html#l1"><span class=cF4>::/Kernel/MultiProc.CC</span></a><span class=cF0>.
</span></pre></body>
</html>

View file

@ -30,11 +30,11 @@ body {background-color:#000000;}
<a name="l3"></a>Use </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l1"><span class=cF4>Option</span></a><span class=cF0>(). You might need to do </span><span class=cF2>#exe {Option();}</span><span class=cF0>.
<a name="l4"></a></span><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1685"><span class=cF4>OPTf_GLOBALS_ON_DATA_HEAP</span></a><span class=cF0> without this option, global vars are placed in the code heap which is limited to 2Gig. In </span><span class=cF2>AOT</span><span class=cF0>
<a name="l6"></a>modules, global vars take-up room in the </span><span class=cF2>.BIN</span><span class=cF0> file, so you might want to use this option, instead. You might wish to turn it on
<a name="l7"></a>and off around specific vars. A disadvantage of data heap global vars in </span><span class=cF2>AOT</span><span class=cF0> modules is they can't be initialized.
<a name="l6"></a>modules, global vars take-up room in the </span><span class=cF2>.BIN</span><span class=cF0> file, so you might want to use this option, instead. You might wish to turn it
<a name="l7"></a>on and off around specific vars. A disadvantage of data heap global vars in </span><span class=cF2>AOT</span><span class=cF0> modules is they can't be initialized.
<a name="l8"></a></span><span class=cF4>
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1682"><span class=cF4>OPTf_EXTERNS_TO_IMPORTS</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1683"><span class=cF4>OPTf_KEEP_PRIVATE</span></a><span class=cF0> are strange options, you'll never need. They're to allow the same header file for </span><span class=cF2>
<a name="l10"></a>Kernel</span><span class=cF0> to act as </span><span class=cF2>extern</span><span class=cF0>s when compiling itself and </span><span class=cF2>import</span><span class=cF0>s when compiled by </span><span class=cF2>AOT</span><span class=cF0> modules.
<a name="l9"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1682"><span class=cF4>OPTf_EXTERNS_TO_IMPORTS</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1683"><span class=cF4>OPTf_KEEP_PRIVATE</span></a><span class=cF0> are strange options, you'll never need. They're to allow the same header file
<a name="l10"></a>for </span><span class=cF2>Kernel</span><span class=cF0> to act as </span><span class=cF2>extern</span><span class=cF0>s when compiling itself and </span><span class=cF2>import</span><span class=cF0>s when compiled by </span><span class=cF2>AOT</span><span class=cF0> modules.
<a name="l11"></a></span><span class=cF4>
<a name="l12"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1678"><span class=cF4>OPTf_WARN_UNUSED_VAR</span></a><span class=cF0> warning if unused var. It is applied to functions.
<a name="l13"></a></span><span class=cF4>

View file

@ -40,8 +40,8 @@ body {background-color:#000000;}
<a name="l13"></a>
<a name="l14"></a>&lt;aux_format_num&gt;:
<a name="l15"></a>
<a name="l16"></a> For </span><span class=cF2>&quot;%n&quot;</span><span class=cF0>, </span><span class=cF2>&quot;%d&quot;</span><span class=cF0> or </span><span class=cF2>&quot;%u&quot;</span><span class=cF0>, the &lt;aux_format_num&gt; causes thousands mode. </span><span class=cF2>&quot;%h?n&quot;</span><span class=cF0> will pick a var exponent multiples of three unit,
<a name="l17"></a> while </span><span class=cF2>&quot;%h-3n&quot;</span><span class=cF0> will display milli units or </span><span class=cF2>&quot;%h6n&quot;</span><span class=cF0> will display mega units. The </span><span class=cF2>'k'</span><span class=cF0> flag is always on for </span><span class=cF2>&quot;%n&quot;</span><span class=cF0>. See </span><span class=cF4>
<a name="l16"></a> For </span><span class=cF2>&quot;%n&quot;</span><span class=cF0>, </span><span class=cF2>&quot;%d&quot;</span><span class=cF0> or </span><span class=cF2>&quot;%u&quot;</span><span class=cF0>, the &lt;aux_format_num&gt; causes thousands mode. </span><span class=cF2>&quot;%h?n&quot;</span><span class=cF0> will pick a var exponent multiples of three
<a name="l17"></a> unit, while </span><span class=cF2>&quot;%h-3n&quot;</span><span class=cF0> will display milli units or </span><span class=cF2>&quot;%h6n&quot;</span><span class=cF0> will display mega units. The </span><span class=cF2>'k'</span><span class=cF0> flag is always on for </span><span class=cF2>&quot;%n&quot;</span><span class=cF0>. See </span><span class=cF4>
<a name="l18"></a> </span><a href="https://tomawezome.github.io/ZealOS/Demo/Print.CC.html#l1"><span class=cF4>::/Demo/Print.CC</span></a><span class=cF0>.
<a name="l19"></a>
<a name="l20"></a>For </span><span class=cF2>&quot;%c&quot;</span><span class=cF0> or </span><span class=cF2>&quot;%C&quot;</span><span class=cF0>, the &lt;aux_format_num&gt; repeats the char that many times.
@ -92,14 +92,14 @@ body {background-color:#000000;}
<a name="l65"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/StrPrint.CC.html#l1099"><span class=cF4>CatPrint</span></a><span class=cF0>(U8 *_dst, U8 *format, ...) concatenates a formated string.
<a name="l66"></a></span><span class=cF4>
<a name="l67"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l580"><span class=cF4>In</span></a><span class=cF0>(U8 *format, ...) sends text to the current task's input buffer.</span><span class=cF4>
<a name="l68"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l561"><span class=cF4>InStr</span></a><span class=cF0>(U8 *format, ...) sends text of an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF0> to the keyboard stream of the current TASK but can also do mouse cmds.
<a name="l68"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l561"><span class=cF4>InStr</span></a><span class=cF0>(U8 *format, ...) sends text of an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF0> to the keyboard stream of the current TASK but can also do mouse cmds.
<a name="l69"></a></span><span class=cF4>
<a name="l70"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l542"><span class=cF4>XTalk</span></a><span class=cF0>(CTask *task, U8 *format, ...) and text to another task's input buffer.</span><span class=cF4>
<a name="l71"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l588"><span class=cF4>XTalkStr</span></a><span class=cF0>(CTask *task, U8 *format, ...) sends text of an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l218"><span class=cF4>InFile</span></a><span class=cF0> to the keyboard stream of another TASK but can also do mouse
<a name="l71"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l588"><span class=cF4>XTalkStr</span></a><span class=cF0>(CTask *task, U8 *format, ...) sends text of an </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l219"><span class=cF4>InFile</span></a><span class=cF0> to the keyboard stream of another TASK but can also do mouse
<a name="l72"></a>cmds.
<a name="l73"></a></span><span class=cF4>
<a name="l74"></a></span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l164"><span class=cF4>DocPrint</span></a><span class=cF0>(CDoc *doc, U8 *format, ...) sends text to a document. You can buffer to a Doc and save it, providing the functionality
<a name="l75"></a>of </span><span class=cF2>fprintf</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/FPrintF.CC.html#l1"><span class=cF4>::/Demo/Disk/FPrintF.CC</span></a><span class=cF0>.
<a name="l74"></a></span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocPutS.CC.html#l164"><span class=cF4>DocPrint</span></a><span class=cF0>(CDoc *doc, U8 *format, ...) sends text to a document. You can buffer to a Doc and save it, providing the
<a name="l75"></a>functionality of </span><span class=cF2>fprintf</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Disk/FPrintF.CC.html#l1"><span class=cF4>::/Demo/Disk/FPrintF.CC</span></a><span class=cF0>.
<a name="l76"></a></span><span class=cF4>
<a name="l77"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l485"><span class=cF4>Sys</span></a><span class=cF0>(U8 *format, ...) sends text to the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> to be compiled and run.</span><span class=cF4>
<a name="l78"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l507"><span class=cF4>SysLog</span></a><span class=cF0>(U8 *format, ...) and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l530"><span class=cF4>SysErr</span></a><span class=cF0>(U8 *format,...) send text to the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> to be displayed.

View file

@ -25,13 +25,14 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>The profiler records where the CPU was executing when the 1000Hz timer interrupt occured, so you can learn where time is spent.
<a name="l2"></a>
<a name="l3"></a>Use the </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l30"><span class=cF4>Prof</span></a><span class=cF0>() depth argument to record a hit in the N routines which called the current routine, as well.
<a name="l4"></a>
<a name="l5"></a>When done collecting statistics, use </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l61"><span class=cF4>ProfRep</span></a><span class=cF0>() for a report. You might need a </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l193"><span class=cF4>DocMax</span></a><span class=cF0>() to expand the command line window
<a name="l6"></a>buffer to fit it all.
<a name="l7"></a>
<a name="l8"></a>Study the code. The profiler is very simple. You might want to enhance it or modify it to debug something in particular.
<a name="l1"></a><span class=cF0>The profiler records where the CPU was executing when the 1000Hz timer interrupt occured, so you can learn where time is
<a name="l2"></a>spent.
<a name="l3"></a>
<a name="l4"></a>Use the </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l30"><span class=cF4>Prof</span></a><span class=cF0>() depth argument to record a hit in the N routines which called the current routine, as well.
<a name="l5"></a>
<a name="l6"></a>When done collecting statistics, use </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Profiler.CC.html#l61"><span class=cF4>ProfRep</span></a><span class=cF0>() for a report. You might need a </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l193"><span class=cF4>DocMax</span></a><span class=cF0>() to expand the command line window
<a name="l7"></a>buffer to fit it all.
<a name="l8"></a>
<a name="l9"></a>Study the code. The profiler is very simple. You might want to enhance it or modify it to debug something in particular.
</span></pre></body>
</html>

View file

@ -25,7 +25,7 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>A </span><span class=cF2>Queue</span><span class=cF0> is a bunch of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>()ed chunks of mem linked together in a circle with one ptr to the </span><span class=cF2>next</span><span class=cF0> value and another ptr to the </span><span class=cF2>
<a name="l2"></a>last</span><span class=cF0> value. These ptrs must be stored in the first locations in the structure.
<a name="l1"></a><span class=cF0>A </span><span class=cF2>Queue</span><span class=cF0> is a bunch of </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MAllocFree.CC.html#l391"><span class=cF4>MAlloc</span></a><span class=cF0>()ed chunks of mem linked together in a circle with one ptr to the </span><span class=cF2>next</span><span class=cF0> value and another ptr to
<a name="l2"></a>the </span><span class=cF2>last</span><span class=cF0> value. These ptrs must be stored in the first locations in the structure.
</span></pre></body>
</html>

View file

@ -27,15 +27,15 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Quirks</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>* You run a risk of problems if you do file operations on the same files simultaneously because there is <blink>no file sharing/locking
<a name="l4"></a>mechanism</blink>. Generally, the last write wins.
<a name="l3"></a>* You run a risk of problems if you do file operations on the same files simultaneously because there is <blink>no file
<a name="l4"></a>sharing/locking mechanism</blink>. Generally, the last write wins.
<a name="l5"></a>
<a name="l6"></a>* When using </span><span class=cF2>FAT32</span><span class=cF0>, ZealOS does not generate unique short-entry names, the ones with the </span><span class=cF2>~</span><span class=cF0>s. Not all </span><span class=cF2>FAT32</span><span class=cF0> filenames are
<a name="l7"></a>valid ZealOS names and it will complain. Do not access </span><span class=cF2>FAT32</span><span class=cF0> drives not dedicated to ZealOS. Disable them with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskAddDev.CC.html#l195"><span class=cF4>DriveEnable</span></a><span class=cF0>(O
<a name="l8"></a>FF), or they will generate error messages. </span><span class=cF2>FAT32</span><span class=cF0> involves a long and short name for each file.
<a name="l7"></a>valid ZealOS names and it will complain. Do not access </span><span class=cF2>FAT32</span><span class=cF0> drives not dedicated to ZealOS. Disable them with </span><span class=cF4>
<a name="l8"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskAddDev.CC.html#l195"><span class=cF4>DriveEnable</span></a><span class=cF0>(OFF), or they will generate error messages. </span><span class=cF2>FAT32</span><span class=cF0> involves a long and short name for each file.
<a name="l9"></a>
<a name="l10"></a>* The stack does not grow because virtual mem is not used. It is recommended that you allocate large local vars from the heap.
<a name="l11"></a>You can change </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3508"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
<a name="l10"></a>* The stack does not grow because virtual mem is not used. It is recommended that you allocate large local vars from the
<a name="l11"></a>heap. You can change </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3508"><span class=cF4>MEM_DEFAULT_STACK</span></a><span class=cF0> and recompile </span><span class=cF2>Kernel</span><span class=cF0> or request more when doing a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>().
<a name="l12"></a>
<a name="l13"></a>* The syntax highlighting occassionally glitches. The compiler doesn't.
<a name="l14"></a>
@ -46,13 +46,13 @@ body {background-color:#000000;}
<a name="l19"></a>* You can only </span><span class=cF2>extern</span><span class=cF0> something once. There is a varient called </span><span class=cF2>_extern</span><span class=cF0> which binds a CosmiC definition to a asm sym. This,
<a name="l20"></a>too, can only be done once.
<a name="l21"></a>
<a name="l22"></a>* A terminal task has a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> document structure that remains active even when you change </span><span class=cF4>Fs-&gt;draw_it</span><span class=cF0>. To prevent links in the </span><span class=cF4>
<a name="l23"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> from being activated when the user clicks in the window, do one of three things:
<a name="l22"></a>* A terminal task has a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> document structure that remains active even when you change </span><span class=cF4>Fs-&gt;draw_it</span><span class=cF0>. To prevent links in
<a name="l23"></a>the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> from being activated when the user clicks in the window, do one of three things:
<a name="l24"></a>
<a name="l25"></a> A) </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l121"><span class=cF4>DocBottom</span></a><span class=cF0>() followed by </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l135"><span class=cF4>DocClear</span></a><span class=cF0>() to clear the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> so it has no active widgets.
<a name="l26"></a>
<a name="l27"></a> B) Disable window mgr bttn click checking with </span><span class=cF4>Fs-&gt;win_inhibit</span><span class=cF0> set to mask </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1552"><span class=cF4>WIF_SELF_MS_L</span></a><span class=cF0>|</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1566"><span class=cF4>WIF_FOCUS_TASK_MS_L_D</span></a><span class=cF0>|</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1554"><span class=cF4>WIF_SELF_MS_R</span></a><span class=cF0>|</span><span class=cF4>
<a name="l28"></a> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1568"><span class=cF4>WIF_FOCUS_TASK_MS_R_D</span></a><span class=cF0>. This inhibits window mgr operations but still generates messages from bttn clicks.
<a name="l27"></a> B) Disable window mgr bttn click checking with </span><span class=cF4>Fs-&gt;win_inhibit</span><span class=cF0> set to mask </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1552"><span class=cF4>WIF_SELF_MS_L</span></a><span class=cF0>|</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1566"><span class=cF4>WIF_FOCUS_TASK_MS_L_D</span></a><span class=cF0>|</span><span class=cF4>
<a name="l28"></a> </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1554"><span class=cF4>WIF_SELF_MS_R</span></a><span class=cF0>|</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1568"><span class=cF4>WIF_FOCUS_TASK_MS_R_D</span></a><span class=cF0>. This inhibits window mgr operations but still generates messages from bttn clicks.
<a name="l29"></a>
<a name="l30"></a>* </span><span class=cF2>switch/case</span><span class=cF0> statements alloc a single jump table--do not use with wide, sparse ranges of case values.
<a name="l31"></a>
@ -63,16 +63,16 @@ body {background-color:#000000;}
<a name="l36"></a>
<a name="l37"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l135"><span class=cF4>MemCopy</span></a><span class=cF0>() only goes forward.
<a name="l38"></a>
<a name="l39"></a>* A </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l9"><span class=cF4>Cd</span></a><span class=cF0>() cmd must be followed by two semicolons if a </span><span class=cF2>#include</span><span class=cF0> is after it. This is because the preprocessor processes the next
<a name="l40"></a>token ahead.
<a name="l39"></a>* A </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l9"><span class=cF4>Cd</span></a><span class=cF0>() cmd must be followed by two semicolons if a </span><span class=cF2>#include</span><span class=cF0> is after it. This is because the preprocessor processes the
<a name="l40"></a>next token ahead.
<a name="l41"></a>
<a name="l42"></a>* The assembler's error messages are often off by a line and undefines are cryptic.
<a name="l43"></a>
<a name="l44"></a>* The last semicolon on the cmd line is converted to a double semicolon because the compiler looks ahead before doing a cmd.
<a name="l45"></a>This normally has no negative effect, but when entering </span><span class=cF2>if</span><span class=cF0> statements with </span><span class=cF2>else</span><span class=cF0> clauses it presents problems.
<a name="l46"></a>
<a name="l47"></a>* You can do a </span><span class=cF2>class</span><span class=cF0> forward reference by using </span><span class=cF2>extern</span><span class=cF0> on the first declaration, but you can only do ptr references to the </span><span class=cF2>class</span><span class=cF0>
<a name="l48"></a>.
<a name="l47"></a>* You can do a </span><span class=cF2>class</span><span class=cF0> forward reference by using </span><span class=cF2>extern</span><span class=cF0> on the first declaration, but you can only do ptr references to the </span><span class=cF2>cla
<a name="l48"></a>ss</span><span class=cF0>.
<a name="l49"></a>
<a name="l50"></a>* When doing something like
<a name="l51"></a></span><span class=cF2> U0 Main()
@ -83,7 +83,7 @@ body {background-color:#000000;}
<a name="l56"></a> </span><span class=cF0>The </span><span class=cF2>|=</span><span class=cF0> will be coded as a </span><span class=cF2>U32 Bts</span><span class=cF0> instruction resulting in a </span><span class=cF2>U32</span><span class=cF0> access instead of a </span><span class=cF2>U16</span><span class=cF0> access. This affects some hardware
<a name="l57"></a> operations.
<a name="l58"></a>
<a name="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><span class=cF2>&lt;CTR
<a name="l60"></a>L-t&gt;</span><span class=cF0> before doing an editor goto-line-number command.
<a name="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><span class=cF2>&lt;C
<a name="l60"></a>TRL-t&gt;</span><span class=cF0> before doing an editor goto-line-number command.
</span></pre></body>
</html>

View file

@ -27,9 +27,9 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> RedSea File System</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>The RedSea file system is a simple, 64-bit, file system which is similar to FAT32, but with absolute block addresses instead of
<a name="l4"></a>clus, fixed-sized 64-byte directory entries and no FAT table, just an allocation bitmap. A clus is just one 512 byte sector.
<a name="l5"></a>Files are stored in contiguous blocks and cannot grow in size.
<a name="l3"></a>The RedSea file system is a simple, 64-bit, file system which is similar to FAT32, but with absolute block addresses instead
<a name="l4"></a>of clus, fixed-sized 64-byte directory entries and no FAT table, just an allocation bitmap. A clus is just one 512 byte
<a name="l5"></a>sector. Files are stored in contiguous blocks and cannot grow in size.
<a name="l6"></a>
<a name="l7"></a>#</span><span class=cF1>define</span><span class=cF0> </span><span class=cF3>CDIR_FILENAME_LEN</span><span class=cF0> </span><span class=cFE>38</span><span class=cF0> </span><span class=cF2>//Must include terminator zero</span><span class=cF0>
<a name="l8"></a>
@ -63,9 +63,9 @@ body {background-color:#000000;}
<a name="l36"></a>
<a name="l37"></a>Files with names ending in are compressed. See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Compress.CC.html#l1"><span class=cF4>::/Kernel/Compress.CC</span></a><span class=cF0>.
<a name="l38"></a>
<a name="l39"></a>To replace ISO9660, make hard-drive partition image of a measured size and copy onto a CD/DVD starting at about sector 20, with
<a name="l40"></a>EL TORITO booting. 512-byte sectors will be placed on top of 2048-byte CD/DCD sectors, so there will be four blocks per CD/DVD
<a name="l41"></a>sector.
<a name="l39"></a>To replace ISO9660, make hard-drive partition image of a measured size and copy onto a CD/DVD starting at about sector 20,
<a name="l40"></a>with EL TORITO booting. 512-byte sectors will be placed on top of 2048-byte CD/DCD sectors, so there will be four blocks per
<a name="l41"></a>CD/DVD sector.
<a name="l42"></a>
<a name="l43"></a>RedSea file system has no bad block table and no redundant allocation table.
<a name="l44"></a>

View file

@ -30,23 +30,23 @@ body {background-color:#000000;}
<a name="l3"></a>ZealOS is like the 1040EZ tax form compared to the full 1040 form. Obviously, it is simpler. If you allow mission creep,
<a name="l4"></a>pretty soon the 1040EZ looks just like the 1040 and the messed-up 1040EZ has no purpose.
<a name="l5"></a>
<a name="l6"></a>The Commodore 64 had a file system that was simple enough for peers in Terry's generation to enjoy the thrill of knowing exactly
<a name="l7"></a>what is going on at the hardware level and writing fun projects to access it.
<a name="l6"></a>The Commodore 64 had a file system that was simple enough for peers in Terry's generation to enjoy the thrill of knowing
<a name="l7"></a>exactly what is going on at the hardware level and writing fun projects to access it.
<a name="l8"></a>
<a name="l9"></a>The primary design criteria is simplicity. If it is simple enough for only 100,000 people to learn, lets try to make it simpler
<a name="l10"></a>so that 1 million can learn it.
<a name="l9"></a>The primary design criteria is simplicity. If it is simple enough for only 100,000 people to learn, lets try to make it
<a name="l10"></a>simpler so that 1 million can learn it.
<a name="l11"></a>
<a name="l12"></a>Obviously, we don't do bad block tables, or redundant FATs.
<a name="l13"></a>
<a name="l14"></a>We use the simplest possible technique, a contiguous-file-only allocation bitmap, not </span><a href="https://tomawezome.github.io/ZealOS/Doc/BlkChain.DD.html#l1"><span class=cF4>Block Chains</span></a><span class=cF0> or FAT tables.
<a name="l15"></a>
<a name="l16"></a>You can be a good toy or you can be a good professional tool, but not both. ZealOS's file manager will start too slowly once a
<a name="l17"></a>few thousand files exist because the file manager makes a list of all files on start-up.
<a name="l16"></a>You can be a good toy or you can be a good professional tool, but not both. ZealOS's file manager will start too slowly once
<a name="l17"></a>a few thousand files exist because the file manager makes a list of all files on start-up.
<a name="l18"></a>
<a name="l19"></a>Do not have more than a few thousand files or the file manager will not function.
<a name="l20"></a>
<a name="l21"></a>You are encouraged to keep your entire drive limited to, maybe, 100 Meg of files because you are suppoosed to operate as a kayak
<a name="l22"></a>instead of a Titanic. If you do this, backing-up will be only a minute or so and you should do it at least once a day.
<a name="l21"></a>You are encouraged to keep your entire drive limited to, maybe, 100 Meg of files because you are suppoosed to operate as a
<a name="l22"></a>kayak instead of a Titanic. If you do this, backing-up will be only a minute or so and you should do it at least once a day.
<a name="l23"></a>
<a name="l24"></a>Third party software should be run from ISO files or CD/DVDs directly, without installing to hard drive.
<a name="l25"></a>

View file

@ -31,7 +31,7 @@ body {background-color:#000000;}
<a name="l4"></a>first </span><span class=cF2>make a sprite</span><span class=cF0> somewhere outside a function. Then, you </span><span class=cF2>insert a pointer</span><span class=cF0> to the sprite as an &quot;*elems&quot; arg when calling </span><span class=cF4>
<a name="l5"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l536"><span class=cF4>Sprite</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l18"><span class=cF4>Sprite3</span></a><span class=cF0>(). See </span><span class=cF4><u>Sprites</u></span><span class=cF0>.
<a name="l6"></a>
<a name="l7"></a>You can create a </span><span class=cF2>sprite macro</span><span class=cF0> on your </span><a href="https://tomawezome.github.io/ZealOS/Home/PersonalMenu.DD.html#l1"><span class=cF4>PersonalMenu</span></a><span class=cF0> with a payload of </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> source code to execute when it ESC's back to the cmd
<a name="l8"></a>line. If you check &quot;Pop-Up&quot;, it will spawn a new task and run the payload. A pop-up macro can be placed in any document.
<a name="l7"></a>You can create a </span><span class=cF2>sprite macro</span><span class=cF0> on your </span><a href="https://tomawezome.github.io/ZealOS/Home/PersonalMenu.DD.html#l1"><span class=cF4>PersonalMenu</span></a><span class=cF0> with a payload of </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> source code to execute when it ESC's back to the
<a name="l8"></a>cmd line. If you check &quot;Pop-Up&quot;, it will spawn a new task and run the payload. A pop-up macro can be placed in any document.
</span></pre></body>
</html>

View file

@ -27,14 +27,14 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Scoping and Linkage</span><span class=cF0>
<a name="l2"></a></span><span class=cF4>
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l186"><span class=cF4>JIT Compile Mode</span></a><span class=cF0> makes use of the current task's hash sym table and its parent tasks' tables. It fetches syms from parent
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l187"><span class=cF4>JIT Compile Mode</span></a><span class=cF0> makes use of the current task's hash sym table and its parent tasks' tables. It fetches syms from parent
<a name="l4"></a>tasks' tables if not found locally in the current task's table and it places new syms in the current task's table.
<a name="l5"></a>Conceptually, syms are at the scope of environment vars in other operating systems.
<a name="l6"></a>
<a name="l7"></a>When a sym is placed into a table, older syms with ident names will be overshadowed if they exist. Duplicates are not allowed
<a name="l8"></a>in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly </span><span class=cF2>#include</span><span class=cF0> the
<a name="l9"></a>same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name, like </span><span class=cF2>Draw
<a name="l10"></a>It()</span><span class=cF0>. This case might occur when the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is starting-up loading-in many little utilities.
<a name="l8"></a>in many cases, especially in asm blks. Dupicates are allowed, by design in other cases, so that you can repeatedly </span><span class=cF2>#include</span><span class=cF0>
<a name="l9"></a>the same file from the cmd line while developing it. Or, so you can repeatedly declare a function with a standard name,
<a name="l10"></a>like </span><span class=cF2>DrawIt()</span><span class=cF0>. This case might occur when the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> is starting-up loading-in many little utilities.
<a name="l11"></a>
<a name="l12"></a></span><span class=cF2>extern</span><span class=cF0> binds a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l828"><span class=cF4>HTT_FUN</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l825"><span class=cF4>HTT_GLOBAL_VAR</span></a><span class=cF0> sym to an existing sym of the same name if it exists in the sym table (just in
<a name="l13"></a>just-in-time code). It also can be used to generate a forward reference.
@ -155,8 +155,8 @@ body {background-color:#000000;}
<a name="l128"></a>
<a name="l129"></a>* An unused gap on the stack is left for </span><span class=cF2>reg</span><span class=cF0> vars.
<a name="l130"></a>
<a name="l131"></a>* Note: </span><span class=cF2>static</span><span class=cF0> function vars do not go on the data heap, no matter the setting of the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1685"><span class=cF4>OPTf_GLOBALS_ON_DATA_HEAP</span></a><span class=cF0>. They may in
<a name="l132"></a>the future.
<a name="l131"></a>* Note: </span><span class=cF2>static</span><span class=cF0> function vars do not go on the data heap, no matter the setting of the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1685"><span class=cF4>OPTf_GLOBALS_ON_DATA_HEAP</span></a><span class=cF0>. They may
<a name="l132"></a>in the future.
<a name="l133"></a>
<a name="l134"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1682"><span class=cF4>OPTf_EXTERNS_TO_IMPORTS</span></a><span class=cF0> will treat </span><span class=cF2>_extern</span><span class=cF0> as </span><span class=cF2>_import</span><span class=cF0> and </span><span class=cF2>extern</span><span class=cF0> as </span><span class=cF2>import</span><span class=cF0>. This allows a header to be used either as a </span><span class=cF2>JIT
<a name="l135"></a>compiled</span><span class=cF0> or </span><span class=cF2>AOT compiled</span><span class=cF0> header.

View file

@ -26,7 +26,7 @@ body {background-color:#000000;}
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>Sound is generated with </span><span class=cF2>I8</span><span class=cF0> vals called </span><span class=cF2>ona</span><span class=cF0>'s, which are 88 piano key nums, with 0 as a rest. See </span><a href="https://tomawezome.github.io/ZealOS/System/Sound.CC.html#l215"><span class=cF4>Note2Ona</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l113"><span class=cF4>Ona2Freq</span></a><span class=cF0>().
<a name="l2"></a>God does not want death screams, perhaps, because God has PTSD or soldiers have PTSD. (Imagine wounded on battlefields.) </span><span class=cF2>Ona</span><span class=cF0>'s
<a name="l3"></a>will allow elegant wave files for export and will allow the creation of simple hardware over the next centuries.
<a name="l2"></a>God does not want death screams, perhaps, because God has PTSD or soldiers have PTSD. (Imagine wounded on battlefields.) </span><span class=cF2>Ona</span><span class=cF0>
<a name="l3"></a>'s will allow elegant wave files for export and will allow the creation of simple hardware over the next centuries.
</span></pre></body>
</html>

View file

@ -32,7 +32,7 @@ body {background-color:#000000;}
<a name="l5"></a>
<a name="l6"></a>You can set the current insert point element by clicking the element in the side-bar and making it RED.
<a name="l7"></a>
<a name="l8"></a></span><span class=cF2>Insert Shift Suborigin</span><span class=cF0> is an element which shifts subsequent elements. Perhaps, you inserted a sprite's elements from the clip
<a name="l9"></a>and want to shift it around? This command is also useful if you call </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l373"><span class=cF4>SpriteInterpolate</span></a><span class=cF0>() in programs.
<a name="l8"></a></span><span class=cF2>Insert Shift Suborigin</span><span class=cF0> is an element which shifts subsequent elements. Perhaps, you inserted a sprite's elements from the
<a name="l9"></a>clip and want to shift it around? This command is also useful if you call </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrSpritePlot.CC.html#l373"><span class=cF4>SpriteInterpolate</span></a><span class=cF0>() in programs.
</span></pre></body>
</html>

View file

@ -38,8 +38,8 @@ body {background-color:#000000;}
<a name="l11"></a>bitmap by seling it in the side bar so it is colored RED and clicking EDIT-BITMAP.
<a name="l12"></a>
<a name="l13"></a>If you have a 3D icon, you might want to place a background-colored rectangle under the 3D icon, so it hovers above. Use
<a name="l14"></a>TRANSFORM-OFF and TRANSFORM-ON. You will also need to set the Z offset of the icon. Go to the Edit menu and sel EDIT-AS-TEXT
<a name="l15"></a>and change the third INT to Z offset. Good luck.
<a name="l14"></a>TRANSFORM-OFF and TRANSFORM-ON. You will also need to set the Z offset of the icon. Go to the Edit menu and sel
<a name="l15"></a>EDIT-AS-TEXT and change the third INT to Z offset. Good luck.
<a name="l16"></a>
<a name="l17"></a>While inserting vector elements, you can usually press </span><span class=cF2>'c'</span><span class=cF0> to eye-dropper the color under the mouse. Press </span><span class=cF2>'t'</span><span class=cF0> for
<a name="l18"></a>transparent.

View file

@ -27,8 +27,8 @@ body {background-color:#000000;}
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF5> Sprite SideBar Help</span><span class=cF0>
<a name="l2"></a>
<a name="l3"></a>You can cut and paste elements in this side-bar to reorder, delete or duplicating them. Click an element in the side-bar after
<a name="l4"></a>you make changes to cause the changes to take-effect.
<a name="l3"></a>You can cut and paste elements in this side-bar to reorder, delete or duplicating them. Click an element in the side-bar
<a name="l4"></a>after you make changes to cause the changes to take-effect.
<a name="l5"></a>
<a name="l6"></a>You can click on an element to make it the insert point for new elements.
<a name="l7"></a>

View file

@ -25,7 +25,8 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>There is one </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> for the task's border: </span><span class=cF2>Fs-&gt;border_doc</span><span class=cF0>. There is a pair for the task's client area: </span><span class=cF2>Fs-&gt;put_doc</span><span class=cF0> and </span><span class=cF2>Fs-&gt;displa
<a name="l2"></a>y_doc</span><span class=cF0>. You can, optionally, do double buffering, otherwise </span><span class=cF2>Fs-&gt;put_doc</span><span class=cF0> is the same as </span><span class=cF2>Fs-&gt;display_doc</span><span class=cF0>. See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Spy.CC.html#l1"><span class=cF4>::/Demo/Spy.CC</span></a><span class=cF0>.
<a name="l1"></a><span class=cF0>There is one </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> for the task's border: </span><span class=cF2>Fs-&gt;border_doc</span><span class=cF0>. There is a pair for the task's client area: </span><span class=cF2>Fs-&gt;put_doc</span><span class=cF0> and </span><span class=cF2>Fs-&gt;disp
<a name="l2"></a>lay_doc</span><span class=cF0>. You can, optionally, do double buffering, otherwise </span><span class=cF2>Fs-&gt;put_doc</span><span class=cF0> is the same as </span><span class=cF2>Fs-&gt;display_doc</span><span class=cF0>. See </span><span class=cF4>
<a name="l3"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Spy.CC.html#l1"><span class=cF4>::/Demo/Spy.CC</span></a><span class=cF0>.
</span></pre></body>
</html>

View file

@ -32,15 +32,15 @@ body {background-color:#000000;}
<a name="l5"></a>
<a name="l6"></a>Windows is a car.
<a name="l7"></a>
<a name="l8"></a>ZealOS is a motorcycle -- if you lean-over too far, a motorcycle will crash. Don't do that! There are no side air bags on a
<a name="l9"></a>motorcycle. DOS and C64 had no memory protections and ran in ring-0, with no security. This saves an order of magnitude
<a name="l8"></a>ZealOS is a motorcycle -- if you lean-over too far, a motorcycle will crash. Don't do that! There are no side air bags on
<a name="l9"></a>a motorcycle. DOS and C64 had no memory protections and ran in ring-0, with no security. This saves an order of magnitude
<a name="l10"></a>complexity.
<a name="l11"></a>
<a name="l12"></a>Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks and
<a name="l13"></a>is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file system
<a name="l14"></a>allocates just contiguous files -- you load and save whole files at once. A benefit is this allows compression. Also, ZealOS
<a name="l15"></a>does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to pieces with
<a name="l16"></a>multimedia.
<a name="l12"></a>Linux and Windows are general purpose operating systems. They attempt to do any task you want. ZealOS cherry-picks tasks
<a name="l13"></a>and is designed to do the same things a C64 did. This saves and order of magnitude complexity. For example, the </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> file
<a name="l14"></a>system allocates just contiguous files -- you load and save whole files at once. A benefit is this allows compression.
<a name="l15"></a>Also, ZealOS does not do multimedia. In theory, memory will fragment with lots of big files. The system would fall to
<a name="l16"></a>pieces with multimedia.
<a name="l17"></a>
<a name="l18"></a>A three bttn mouse is like a leg you cannot put weight on. ZealOS just does hardware everybody has, with no divergent code
<a name="l19"></a>bases for each machine's custom hardware. There is one graphics driver instead of 50 for different GPUs. This saves an order
@ -56,9 +56,9 @@ body {background-color:#000000;}
<a name="l29"></a>
<a name="l30"></a>* No security or cryptography.
<a name="l31"></a>
<a name="l32"></a>* Least (greatest) common denominator hardware support. Mostly, one driver for each device class. We can't be in the business
<a name="l33"></a>of different drivers. Compatibility is the greatest challenge for PC operating systems. Disk code does not use interrupts,
<a name="l34"></a>avoiding compatibility risks. </span><span class=cF2>PS/2</span><span class=cF0> keyboard/mouse is used instead of </span><span class=cF2>USB</span><span class=cF0>, also more compatible.
<a name="l32"></a>* Least (greatest) common denominator hardware support. Mostly, one driver for each device class. We can't be in the
<a name="l33"></a>business of different drivers. Compatibility is the greatest challenge for PC operating systems. Disk code does not use
<a name="l34"></a>interrupts, avoiding compatibility risks. </span><span class=cF2>PS/2</span><span class=cF0> keyboard/mouse is used instead of </span><span class=cF2>USB</span><span class=cF0>, also more compatible.
<a name="l35"></a>
<a name="l36"></a>* Updates whole screen at </span><span class=cF2>60 fps</span><span class=cF0>, optimized for full screen games where </span><span class=cF2>InvalidRectangle</span><span class=cF0>s are counter-productive.
<a name="l37"></a>

View file

@ -25,14 +25,14 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>There are no streams in the traditional sense. The cmd line output gets sent to the cursor location of a document being edited
<a name="l2"></a>and by using cursor keys, text can be injected all over the document. </span><span class=cF4><u>Sprites</u></span><span class=cF0> can be injected and are not serialized! Furtherm
<a name="l3"></a>ore, the input can come from triggering macro widgets. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>Doc Overview</span></a><span class=cF0> and </span><span class=cF4><u>Doc Routines</u></span><span class=cF0>.
<a name="l1"></a><span class=cF0>There are no streams in the traditional sense. The cmd line output gets sent to the cursor location of a document being
<a name="l2"></a>edited and by using cursor keys, text can be injected all over the document. </span><span class=cF4><u>Sprites</u></span><span class=cF0> can be injected and are not serialized!
<a name="l3"></a>Furthermore, the input can come from triggering macro widgets. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/DolDocOverview.DD.html#l1"><span class=cF4>Doc Overview</span></a><span class=cF0> and </span><span class=cF4><u>Doc Routines</u></span><span class=cF0>.
<a name="l4"></a>
<a name="l5"></a>If you had a remote term and sent key </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4183"><span class=cF4>Scan Codes</span></a><span class=cF0>, the user would press </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> to access his </span><span class=cF2>Personal Menu</span><span class=cF0> to trigger his
<a name="l6"></a>macros. However, the local </span><a href="https://tomawezome.github.io/ZealOS/Home/PersonalMenu.DD.html#l1"><span class=cF4>~/PersonalMenu.DD</span></a><span class=cF0> might differ from the remote, causing loss of sync between local and remote
<a name="l7"></a>sessions. Also, the window size of local and remote might differ, so word-wrapped text would be different. Injecting output
<a name="l8"></a>text with different windows sizes would cause remote and local documents to not be in sync.
<a name="l7"></a>sessions. Also, the window size of local and remote might differ, so word-wrapped text would be different. Injecting
<a name="l8"></a>output text with different windows sizes would cause remote and local documents to not be in sync.
<a name="l9"></a>
<a name="l10"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Doc/CharOverview.DD.html#l1"><span class=cF4>Char Overview</span></a><span class=cF0> and </span><span class=cF4><u>Char Routines</u></span><span class=cF0>.
<a name="l11"></a>

View file

@ -31,8 +31,8 @@ body {background-color:#000000;}
<a name="l4"></a></span><span class=cF2>TOSZ [-ascii] filename</span><span class=cF0>
<a name="l5"></a>
<a name="l6"></a>Will uncompress a single file from within Linux. The </span><span class=cF2>-ascii</span><span class=cF0> flag will convert the irregular TempleOS ASCII 5 and ASCII 31
<a name="l7"></a>characters to spaces. (ASCII 5 is used to mark the cursor pos and ASCII 31 is used for shifted space characters and will cause
<a name="l8"></a>problems unless you convert them.)
<a name="l7"></a>characters to spaces. (ASCII 5 is used to mark the cursor pos and ASCII 31 is used for shifted space characters and will
<a name="l8"></a>cause problems unless you convert them.)
<a name="l9"></a>
<a name="l10"></a></span><span class=cF8>
<a name="l11"></a>* &quot;Linux&quot; is a trademark owned by Linus Torvalds.

View file

@ -38,8 +38,8 @@ body {background-color:#000000;}
<a name="l11"></a>Bit 30 </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1032"><span class=cF4>Sel</span></a><span class=cF0> (XOR colors with FF)
<a name="l12"></a>Bit 31 </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1033"><span class=cF4>Underline</span></a><span class=cF0>
<a name="l13"></a></span><span class=cF4>
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l19"><span class=cF4>GrUpdateTaskWin</span></a><span class=cF0>() calls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l213"><span class=cF4>DocUpdateTaskDocs</span></a><span class=cF0>() which calls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalc.CC.html#l305"><span class=cF4>DocRecalc</span></a><span class=cF0>() where the document text is plotted into </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0>. Then
<a name="l15"></a>, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l197"><span class=cF4>GrUpdateTextBG</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l296"><span class=cF4>GrUpdateTextFG</span></a><span class=cF0>() render the </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0> onto </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc2</span></a><span class=cF0>, a raw graphic bitmap.
<a name="l14"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l19"><span class=cF4>GrUpdateTaskWin</span></a><span class=cF0>() calls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalcLib.CC.html#l213"><span class=cF4>DocUpdateTaskDocs</span></a><span class=cF0>() which calls </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocRecalc.CC.html#l305"><span class=cF4>DocRecalc</span></a><span class=cF0>() where the document text is plotted into </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0>. Th
<a name="l15"></a>en, </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l197"><span class=cF4>GrUpdateTextBG</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrScreen.CC.html#l296"><span class=cF4>GrUpdateTextFG</span></a><span class=cF0>() render the </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.text_base</span></a><span class=cF0> onto </span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrGlobals.CC.html#l3"><span class=cF4>gr.dc2</span></a><span class=cF0>, a raw graphic bitmap.
<a name="l16"></a>
<a name="l17"></a>See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Maze.CC.html#l1"><span class=cF4>::/Demo/Games/Maze.CC</span></a><span class=cF0>.
</span></pre></body>

View file

@ -25,6 +25,6 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>Intel/AMD have an instruction that returns the num of CPU cycles since boot. This is not a steady, calibrated real time value.
<a name="l2"></a>ZealOS measures it and you can convert with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF0>, a value continuously calibrated from other counts.</span></pre></body>
<a name="l1"></a><span class=cF0>Intel/AMD have an instruction that returns the num of CPU cycles since boot. This is not a steady, calibrated real time
<a name="l2"></a>value. ZealOS measures it and you can convert with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF0>, a value continuously calibrated from other counts.</span></pre></body>
</html>

View file

@ -25,8 +25,8 @@ body {background-color:#000000;}
</head>
<body>
<pre style="font-family:monospace;font-size:12pt">
<a name="l1"></a><span class=cF0>ZealOS uses a 64-bit value, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l209"><span class=cF4>CDate</span></a><span class=cF0>, for date/time. The upper 32-bits are the days since Christ. The lower 32-bits store time of
<a name="l2"></a>day divided by 4 billion which works out to 49710ths of a second. You can subtract two </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l209"><span class=cF4>CDate</span></a><span class=cF0>'s to get a time span.
<a name="l1"></a><span class=cF0>ZealOS uses a 64-bit value, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l209"><span class=cF4>CDate</span></a><span class=cF0>, for date/time. The upper 32-bits are the days since Christ. The lower 32-bits store time
<a name="l2"></a>of day divided by 4 billion which works out to 49710ths of a second. You can subtract two </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l209"><span class=cF4>CDate</span></a><span class=cF0>'s to get a time span.
<a name="l3"></a>
<a name="l4"></a>Use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l707"><span class=cF4>CDATE_FREQ</span></a><span class=cF0> to convert.
</span></pre></body>

View file

@ -39,17 +39,17 @@ body {background-color:#000000;}
<a name="l12"></a>windows. </span><span class=cF2>&lt;ALT-h&gt;</span><span class=cF0> horizontally tiles windows. The </span><span class=cF2>ALT</span><span class=cF0> keys are defined in </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeKeyPlugIns.CC.html#l1"><span class=cF4>~/HomeKeyPlugIns.CC</span></a><span class=cF0>. You can customize them.
<a name="l13"></a>
<a name="l14"></a>* If you make changes to ZealOS files in your </span><span class=cF2>/Home</span><span class=cF0> directory, generally you reboot to make them take effect. (You don't
<a name="l15"></a>compile anything.) You should have two ZealOS partitions on your hard drive because a syntax error in a start-up file will make
<a name="l16"></a>the partition unbootable. Boot to the second partition or boot to a standard ZealOS CD/DVD and use </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() to mount your hard
<a name="l17"></a>drive.
<a name="l15"></a>compile anything.) You should have two ZealOS partitions on your hard drive because a syntax error in a start-up file will
<a name="l16"></a>make the partition unbootable. Boot to the second partition or boot to a standard ZealOS CD/DVD and use </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() to mount your
<a name="l17"></a>hard drive.
<a name="l18"></a>
<a name="l19"></a>* You can copy your files to a mirrored ident partition, periodically with </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l148"><span class=cF4>CopyTree</span></a><span class=cF0>() commands in scripts. You can do merge
<a name="l20"></a>commands with a menu entry like this:
<a name="l21"></a></span><span class=cF2>Merge(\&quot;C:/*\&quot;,\&quot;D:/*\&quot;,\&quot;+r+d\&quot;);</span><span class=cF0> to check your changes.
<a name="l22"></a>
<a name="l23"></a>* </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0> at the cmd line to access your PersonalMenu. Place macros there with </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0>, or icon-like sprites with </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>.
<a name="l24"></a>Use the </span><span class=cF2>Pop-Up</span><span class=cF0> option on macros to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>() a task to run a file. It dies when it is finished. This returns mem to the system. Be
<a name="l25"></a>sure to press </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> to save your macro/menu area after making changes.
<a name="l24"></a>Use the </span><span class=cF2>Pop-Up</span><span class=cF0> option on macros to </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KTask.CC.html#l264"><span class=cF4>Spawn</span></a><span class=cF0>() a task to run a file. It dies when it is finished. This returns mem to the system.
<a name="l25"></a>Be sure to press </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> to save your macro/menu area after making changes.
<a name="l26"></a>
<a name="l27"></a>* You can use </span><span class=cF2>ans</span><span class=cF0> in cmd line expressions. It holds the res the last cmd line operation. You can use the cmd prompt as a
<a name="l28"></a>calculator by just entering expressions like </span><span class=cF2>1+2*3;</span><span class=cF0>. </span><span class=cF2>F64</span><span class=cF0> reses can be accessed with </span><span class=cF2>ansf</span><span class=cF0>.
@ -63,12 +63,12 @@ body {background-color:#000000;}
<a name="l36"></a>
<a name="l37"></a>* </span><span class=cF2>&lt;CTRL-SHIFT-L&gt;</span><span class=cF0> in the editor to reindent a </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> function or renumber an asm routine's local labels.
<a name="l38"></a>
<a name="l39"></a>* You can use </span><span class=cF2>filter_lines</span><span class=cF0> in the editor text search form (</span><span class=cF2>&lt;CTRL-f&gt;</span><span class=cF0>) to temporarily display just lines near each match. A value
<a name="l40"></a>of </span><span class=cF2>filter lines</span><span class=cF0> set to </span><span class=cF2>5</span><span class=cF0> will display lines within 5 lines of matches. Then, you can do another find to a different string and
<a name="l41"></a>achieve a </span><span class=cF2>AND</span><span class=cF0> search. When finished, press </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0>.
<a name="l39"></a>* You can use </span><span class=cF2>filter_lines</span><span class=cF0> in the editor text search form (</span><span class=cF2>&lt;CTRL-f&gt;</span><span class=cF0>) to temporarily display just lines near each match. A
<a name="l40"></a>value of </span><span class=cF2>filter lines</span><span class=cF0> set to </span><span class=cF2>5</span><span class=cF0> will display lines within 5 lines of matches. Then, you can do another find to a different
<a name="l41"></a>string and achieve a </span><span class=cF2>AND</span><span class=cF0> search. When finished, press </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0>.
<a name="l42"></a>
<a name="l43"></a>* You can recompile and reinstall the kernel with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). You'll probably want to make a function for recompiling that uses
<a name="l44"></a>the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l580"><span class=cF4>In</span></a><span class=cF0>() function to answer the config questions. See the technique </span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSConfig.CC.html#l1"><span class=cF4>Config Strs</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSDistro.CC.html#l1"><span class=cF4>Update Funs</span></a><span class=cF0>.
<a name="l43"></a>* You can recompile and reinstall the kernel with </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>(). You'll probably want to make a function for recompiling that
<a name="l44"></a>uses the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Job.CC.html#l580"><span class=cF4>In</span></a><span class=cF0>() function to answer the config questions. See the technique </span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSConfig.CC.html#l1"><span class=cF4>Config Strs</span></a><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Demo/AcctExample/TOS/TOSDistro.CC.html#l1"><span class=cF4>Update Funs</span></a><span class=cF0>.
<a name="l45"></a>
<a name="l46"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Memory/MemPhysical.CC.html#l194"><span class=cF4>Scale2Mem</span></a><span class=cF0>(min,max,limit=2*1024*1024*1024) can be used for config questions when recompiling. The </span><a href="https://tomawezome.github.io/ZealOS/System/Boot/BootHDIns.CC.html#l24"><span class=cF4>BootHDIns</span></a><span class=cF0>() config prompts
<a name="l47"></a>accept expressions, not just numbers. The default disk cache is </span><span class=cF2>Scale2Mem(0x80000,0x8000000)</span><span class=cF0>.
@ -101,8 +101,8 @@ body {background-color:#000000;}
<a name="l74"></a>
<a name="l75"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Compiler/CMisc.CC.html#l1"><span class=cF4>Option</span></a><span class=cF0>(</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1676"><span class=cF4>OPTf_ECHO</span></a><span class=cF0>, ON) can be placed in </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>StartOS.CC</span></a><span class=cF0> to echo start-up scripts.
<a name="l76"></a>
<a name="l77"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocEd.CC.html#l283"><span class=cF4>Plain</span></a><span class=cF0>() to edit a plain text file. You'll need this if your file has </span><span class=cF2>$</span><span class=cF0>'s. Use the </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/ToDolDoc.CC.html#l3"><span class=cF4>ToDolDoc</span></a><span class=cF0>() utility to convert plain text
<a name="l78"></a>to DolDoc's by doubling </span><span class=cF2>$</span><span class=cF0>'s.
<a name="l77"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocEd.CC.html#l283"><span class=cF4>Plain</span></a><span class=cF0>() to edit a plain text file. You'll need this if your file has </span><span class=cF2>$</span><span class=cF0>'s. Use the </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/ToDolDoc.CC.html#l3"><span class=cF4>ToDolDoc</span></a><span class=cF0>() utility to convert plain
<a name="l78"></a>text to DolDoc's by doubling </span><span class=cF2>$</span><span class=cF0>'s.
<a name="l79"></a>
<a name="l80"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l237"><span class=cF4>Silent</span></a><span class=cF0>() to disable screen text output.
<a name="l81"></a>
@ -123,23 +123,23 @@ body {background-color:#000000;}
<a name="l96"></a>
<a name="l97"></a>* You can eye-dropper colors in the </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0> sprite editor by pressing </span><span class=cF2>'c'</span><span class=cF0>. Press </span><span class=cF2>'t'</span><span class=cF0> for transparent.
<a name="l98"></a>
<a name="l99"></a>* There are handy functions--</span><span class=cF2>F(),R(),FD()</span><span class=cF0> and </span><span class=cF2>RD()</span><span class=cF0> which are defined in </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l1"><span class=cF4>~/HomeWrappers.CC</span></a><span class=cF0>. You are encouraged to change them and
<a name="l100"></a>add more. They will perform find-and-replace operations across multiple files. The </span><span class=cF2>+l</span><span class=cF0> flag is particularly useful since it
<a name="l99"></a>* There are handy functions--</span><span class=cF2>F(),R(),FD()</span><span class=cF0> and </span><span class=cF2>RD()</span><span class=cF0> which are defined in </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l1"><span class=cF4>~/HomeWrappers.CC</span></a><span class=cF0>. You are encouraged to change them
<a name="l100"></a>and add more. They will perform find-and-replace operations across multiple files. The </span><span class=cF2>+l</span><span class=cF0> flag is particularly useful since it
<a name="l101"></a>limits to whole labels. The </span><span class=cF2>+lb</span><span class=cF0> and </span><span class=cF2>+la</span><span class=cF0> flags limit to whole labels just before or after. You are encouraged to add or modify
<a name="l102"></a>handy wrapper functions to make cmd line operations easier.
<a name="l103"></a>
<a name="l104"></a>* When using </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() while modifying code, work from the bottom-up so that line numbers are correct. If you work top-down, then
<a name="l105"></a>inserting or deleting lines causes the lower file links to become incorrect.
<a name="l106"></a>
<a name="l107"></a>* You can save files after making changes, anytime you are within the editor, like when viewing help/macro files. </span><span class=cF2>&lt;CTRL-a&gt;</span><span class=cF0> saves
<a name="l108"></a>as, </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> saves with the same name in the scrolling title bar. Hitting </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> will exit and save (</span><span class=cF2>&lt;SHIFT-ESC&gt;</span><span class=cF0> will abort). You
<a name="l109"></a>can save the cmd line window to a file, too, since you're actually in the editor when you're at the cmd line.
<a name="l107"></a>* You can save files after making changes, anytime you are within the editor, like when viewing help/macro files. </span><span class=cF2>&lt;CTRL-a&gt;</span><span class=cF0>
<a name="l108"></a>saves as, </span><span class=cF2>&lt;CTRL-s&gt;</span><span class=cF0> saves with the same name in the scrolling title bar. Hitting </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> will exit and save (</span><span class=cF2>&lt;SHIFT-ESC&gt;</span><span class=cF0> will
<a name="l109"></a>abort). You can save the cmd line window to a file, too, since you're actually in the editor when you're at the cmd line.
<a name="l110"></a>
<a name="l111"></a>* When using </span><span class=cF2>&lt;CTRL-l&gt;</span><span class=cF0> to insert links in documents, you can usually leave the </span><span class=cF2>Tag Text</span><span class=cF0> blank and it will be filled-in
<a name="l112"></a>automatically based on other entries.
<a name="l113"></a>
<a name="l114"></a>* There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into the
<a name="l115"></a>compilation stream. Click here for an example: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l252"><span class=cF4>#exe {</span></a><span class=cF0>.
<a name="l114"></a>* There is a feature of the precompiler that allows code to be executed in the middle of compilation and data inserted into
<a name="l115"></a>the compilation stream. Click here for an example: </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMain.CC.html#l252"><span class=cF4>#exe {</span></a><span class=cF0>.
<a name="l116"></a>
<a name="l117"></a>* If you output to the cmd line and wish to allow users to scroll around and view data, you can use </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocEd.CC.html#l3"><span class=cF4>View</span></a><span class=cF0>().
<a name="l118"></a>
@ -154,8 +154,8 @@ body {background-color:#000000;}
<a name="l127"></a>* If you toggle to plain text when you are working with graphics in a document, you can add duplicate entries for sprites by
<a name="l128"></a>entering a </span><span class=cF2>$SP...$</span><span class=cF0> cmd with the same num.
<a name="l129"></a>
<a name="l130"></a>* If you toggle to plain text when working with graphics, you can add a str to the </span><span class=cF2>$SP...$</span><span class=cF0> entry to keep track of it. Try </span><span class=cF2>$SP,&quot;&lt;
<a name="l131"></a>2&gt;&quot;,BI=2$</span><span class=cF0> where '2' is the sprite num.
<a name="l130"></a>* If you toggle to plain text when working with graphics, you can add a str to the </span><span class=cF2>$SP...$</span><span class=cF0> entry to keep track of it. Try </span><span class=cF2>$SP,
<a name="l131"></a>&quot;&lt;2&gt;&quot;,BI=2$</span><span class=cF0> where '2' is the sprite num.
<a name="l132"></a>
<a name="l133"></a>* You can edit an existing sprite by putting the cursor on it and pressing </span><span class=cF2>&lt;CTRL-r&gt;</span><span class=cF0>.
<a name="l134"></a>
@ -174,20 +174,20 @@ body {background-color:#000000;}
<a name="l147"></a>
<a name="l148"></a>* Using a sub-int array, </span><span class=cF2>i.u8[3]</span><span class=cF0>, for example, will force a local var to non-reg.
<a name="l149"></a>
<a name="l150"></a>* You can delete the </span><span class=cF4>~/Registry.CC</span><span class=cF0> file. The policy is that deleting it will restore defaults. It is a text doc, if you want to
<a name="l151"></a>edit it. Be careful of tree indentations.
<a name="l150"></a>* You can delete the </span><span class=cF4>~/Registry.CC</span><span class=cF0> file. The policy is that deleting it will restore defaults. It is a text doc, if you want
<a name="l151"></a>to edit it. Be careful of tree indentations.
<a name="l152"></a>
<a name="l153"></a>* Study </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/MemRep.CC.html#l1"><span class=cF4>::/System/Utils/MemRep.CC</span></a><span class=cF0> and </span><a href="https://tomawezome.github.io/ZealOS/System/WallPaper.CC.html#l17"><span class=cF4>WallPaper</span></a><span class=cF0>() to learn how the system resources are put together.
<a name="l154"></a>
<a name="l155"></a>* The editor's sel-text mechanism allows for disjoint portions of sel text. This is a feature, not a bug -- you can
<a name="l156"></a>cut-and-paste disjoint text.
<a name="l157"></a>
<a name="l158"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF0> is continuously calibrated. Be careful because expressions might decrease. Take a snap-shot, like this: </span><span class=cF2>
<a name="l159"></a>timeout = </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l244"><span class=cF4>TSCGet</span></a><span class=cF2> + </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF2> x seconds;</span><span class=cF0> and compare against </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l244"><span class=cF4>TSCGet</span></a><span class=cF0>(). It's recommended to just use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l75"><span class=cF4>tS</span></a><span class=cF0> or </span><span class=cF4>
<a name="l158"></a>* </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF0> is continuously calibrated. Be careful because expressions might decrease. Take a snap-shot, like
<a name="l159"></a>this: </span><span class=cF2>timeout = </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l244"><span class=cF4>TSCGet</span></a><span class=cF2> + </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.time_stamp_freq</span></a><span class=cF2> x seconds;</span><span class=cF0> and compare against </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelB.HH.html#l244"><span class=cF4>TSCGet</span></a><span class=cF0>(). It's recommended to just use </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMisc.CC.html#l75"><span class=cF4>tS</span></a><span class=cF0> or </span><span class=cF4>
<a name="l160"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l696"><span class=cF4>counts.jiffies</span></a><span class=cF0>.
<a name="l161"></a>
<a name="l162"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l139"><span class=cF4>HeapLogAddrRep</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l174"><span class=cF4>HeapLogSizeRep</span></a><span class=cF0>() to find leaks. Don't be confused by </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> allocations. Those are generated
<a name="l163"></a>when text is written to the cmd line buffer.
<a name="l162"></a>* Use </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l83"><span class=cF4>HeapLog</span></a><span class=cF0>(), </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l139"><span class=cF4>HeapLogAddrRep</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/HeapLog.CC.html#l174"><span class=cF4>HeapLogSizeRep</span></a><span class=cF0>() to find leaks. Don't be confused by </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l1502"><span class=cF4>CDoc</span></a><span class=cF0> allocations. Those are
<a name="l163"></a>generated when text is written to the cmd line buffer.
<a name="l164"></a>
<a name="l165"></a>* For advanced heap debugging, play with </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3438"><span class=cF4>_CONFIG_HEAP_DEBUG</span></a><span class=cF0>. You're on your own.
<a name="l166"></a>
@ -203,9 +203,9 @@ body {background-color:#000000;}
<a name="l176"></a>
<a name="l177"></a>* With </span><span class=cF2>start</span><span class=cF0>/</span><span class=cF2>end</span><span class=cF0>, common trailing code is fast. Common leading code is slow.
<a name="l178"></a>
<a name="l179"></a>* The first line of the </span><span class=cF9><u>Psalmody</u></span><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> song files is a comment with a category recognized by </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). The categories are </span><span class=cF2>&quot;no
<a name="l180"></a>nothing&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has words&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has graphics&quot;</span><span class=cF0>, or </span><span class=cF2>&quot;special&quot;</span><span class=cF0>. The third character in the song comment is a digit rating number, shown in </span><span class=cF4>
<a name="l181"></a></span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). You can set the song rating in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>() by pressing </span><span class=cF2>0</span><span class=cF0>-</span><span class=cF2>9</span><span class=cF0>. You can press </span><span class=cF2>&lt;DEL&gt;</span><span class=cF0> to delete songs.
<a name="l179"></a>* The first line of the </span><span class=cF9><u>Psalmody</u></span><span class=cF0> </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>CosmiC</span></a><span class=cF0> song files is a comment with a category recognized by </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). The categories are </span><span class=cF2>&quot;n
<a name="l180"></a>o nothing&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has words&quot;</span><span class=cF0>, </span><span class=cF2>&quot;has graphics&quot;</span><span class=cF0>, or </span><span class=cF2>&quot;special&quot;</span><span class=cF0>. The third character in the song comment is a digit rating number, shown
<a name="l181"></a>in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>(). You can set the song rating in </span><a href="https://tomawezome.github.io/ZealOS/Apps/Psalmody/JukeBox.CC.html#l121"><span class=cF4>JukeBox</span></a><span class=cF0>() by pressing </span><span class=cF2>0</span><span class=cF0>-</span><span class=cF2>9</span><span class=cF0>. You can press </span><span class=cF2>&lt;DEL&gt;</span><span class=cF0> to delete songs.
<a name="l182"></a>
<a name="l183"></a>* </span><span class=cF8>&quot;Linux&quot; is a trademark owned by Linus Torvalds.</span></pre></body>
</html>

View file

@ -43,7 +43,7 @@ body {background-color:#000000;}
<a name="l16"></a>Finally, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0>'s have an </span><span class=cF2>x</span><span class=cF0>, </span><span class=cF2>y</span><span class=cF0> and </span><span class=cF2>z</span><span class=cF0> which is an additional shift (translation).
<a name="l17"></a>
<a name="l18"></a>The transformation is implemented as a callback on the </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4263"><span class=cF4>CDC</span></a><span class=cF0>'s </span><span class=cF2>transform()</span><span class=cF0> member. The default </span><span class=cF2>transform()</span><span class=cF0> callback is </span><span class=cF4>
<a name="l19"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l18"><span class=cF4>DCTransform</span></a><span class=cF0>(). See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Talons.CC.html#l1"><span class=cF4>::/Demo/Games/Talons.CC</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/CastleFrankenstein.CC.html#l1"><span class=cF4>::/Demo/Games/CastleFrankenstein.CC</span></a><span class=cF0> to see how to change the </span><span class=cF2>transform()</span><span class=cF0> callback
<a name="l20"></a>for foreshortening.
<a name="l19"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Gr/GrDC.CC.html#l18"><span class=cF4>DCTransform</span></a><span class=cF0>(). See </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/Talons.CC.html#l1"><span class=cF4>::/Demo/Games/Talons.CC</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/CastleFrankenstein.CC.html#l1"><span class=cF4>::/Demo/Games/CastleFrankenstein.CC</span></a><span class=cF0> to see how to change the </span><span class=cF2>transform()</span><span class=cF0>
<a name="l20"></a>callback for foreshortening.
</span></pre></body>
</html>

View file

@ -36,20 +36,20 @@ body {background-color:#000000;}
<a name="l9"></a> * Non-professional, older-persons projects
<a name="l10"></a>
<a name="l11"></a>Simplicity is a goal to </span><a href="https://tomawezome.github.io/ZealOS/Doc/Strategy.DD.html#l1"><span class=cF4>keep the line count down</span></a><span class=cF0>, so it's easy to tinker with. As it turns-out, simplicity makes it faster in
<a name="l12"></a>some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and other,
<a name="l13"></a>similar things which boost speed. It's only 94,805 lines of code including the kernel, the 64-bit compiler, the graphics
<a name="l14"></a>library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a </span><a href="https://tomawezome.github.io/ZealOS/Doc/HelloWorld.DD.html#l1"><span class=cF4>Hello World</span></a><span class=cF0>
<a name="l15"></a>application in one line of code and can put graphics on the screen with a three line program!
<a name="l12"></a>some ways, too. It never switches privilege levels, never changes address maps, tends to load whole contiguous files and
<a name="l13"></a>other, similar things which boost speed. It's only 94,805 lines of code including the kernel, the 64-bit compiler, the
<a name="l14"></a>graphics library and all the tools. More importantly, it's designed to keep the user's line count down -- you can do a </span><span class=cF4>
<a name="l15"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/HelloWorld.DD.html#l1"><span class=cF4>Hello World</span></a><span class=cF0> application in one line of code and can put graphics on the screen with a three line program!
<a name="l16"></a>
<a name="l17"></a>It's a kayak, not a Titanic -- it will crash if you do something wrong. You quickly reboot, however. DOS and the 8-bit home
<a name="l18"></a>computers of the 80's worked fine without memory protection and most computers in the world -- the embedded ones -- operate
<a name="l19"></a>without protection. The resulting simplicity of no protections is why ZealOS has value. In facts, that's the point of
<a name="l20"></a>ZealOS. See the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Charter.DD.html#l1"><span class=cF4>ZealOS Charter</span></a><span class=cF0>.
<a name="l21"></a>
<a name="l22"></a>Conventional thinking is &quot;failure is not an option&quot; for general purpose operating systems. Since this OS is used in addition to
<a name="l23"></a>Windows or Linux, however, failure is an option -- just use Windows or Linux if you can't do something. We cherry-pick what it
<a name="l24"></a>will and won't do, to make it maximally beautiful. The following applications more or less form a basis that spans the range of
<a name="l25"></a>use that ZealOS is intended for:
<a name="l22"></a>Conventional thinking is &quot;failure is not an option&quot; for general purpose operating systems. Since this OS is used in addition
<a name="l23"></a>to Windows or Linux, however, failure is an option -- just use Windows or Linux if you can't do something. We cherry-pick
<a name="l24"></a>what it will and won't do, to make it maximally beautiful. The following applications more or less form a basis that spans
<a name="l25"></a>the range of use that ZealOS is intended for:
<a name="l26"></a></span><span class=cF4>
<a name="l27"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/BattleLines.CC.html#l1"><span class=cF4>/Demo/Games/BattleLines.CC</span></a><span class=cF4>
<a name="l28"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Games/BigGuns.CC.html#l1"><span class=cF4>/Demo/Games/BigGuns.CC</span></a><span class=cF4>
@ -92,13 +92,13 @@ body {background-color:#000000;}
<a name="l65"></a>The compiler is paused at the command line, waiting for input. Naturally, you </span><span class=cF2>#include</span><span class=cF0> a program to load it into memory and,
<a name="l66"></a>usually, start it.
<a name="l67"></a>
<a name="l68"></a>During the boot process, many files get </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>compiled</span></a><span class=cF0> before you have access to the command line. (Don't worry, booting takes only
<a name="l69"></a>two seconds.) All the header declarations for the operating system are compiled and are available for use in your programs
<a name="l70"></a>without needing to </span><span class=cF2>#include </span><span class=cF0>them. Everything is truly compiled to native </span><a href="http://en.wikipedia.org/wiki/Amd64#AMD64"><span class=cF2>x86_64</span></a><span class=cF0> machine code, nothing is </span><span class=cF2>interpreted</span><span class=cF0> and there
<a name="l71"></a>is no </span><span class=cF2>byte code</span><span class=cF0>.
<a name="l68"></a>During the boot process, many files get </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>compiled</span></a><span class=cF0> before you have access to the command line. (Don't worry, booting takes
<a name="l69"></a>only two seconds.) All the header declarations for the operating system are compiled and are available for use in your
<a name="l70"></a>programs without needing to </span><span class=cF2>#include </span><span class=cF0>them. Everything is truly compiled to native </span><a href="http://en.wikipedia.org/wiki/Amd64#AMD64"><span class=cF2>x86_64</span></a><span class=cF0> machine code, nothing is </span><span class=cF2>interpreted</span><span class=cF0>
<a name="l71"></a>and there is no </span><span class=cF2>byte code</span><span class=cF0>.
<a name="l72"></a>
<a name="l73"></a>Statements at the global scope -- outside the scope of functions -- execute immediately. There is no </span><span class=cF2>main()</span><span class=cF0> function. Inst
<a name="l74"></a>ead, you give meaningful names to what would be </span><span class=cF2>main()</span><span class=cF0> functions and you invoke them by calling them with a statement in the
<a name="l73"></a>Statements at the global scope -- outside the scope of functions -- execute immediately. There is no </span><span class=cF2>main()</span><span class=cF0> function. In
<a name="l74"></a>stead, you give meaningful names to what would be </span><span class=cF2>main()</span><span class=cF0> functions and you invoke them by calling them with a statement in the
<a name="l75"></a>global scope, usually at the bottom of your file.
<a name="l76"></a>
<a name="l77"></a>Terry Davis started with </span><span class=cF2>C</span><span class=cF0> syntax, but didn't like the command line for a directory listing looking like this:
@ -116,53 +116,53 @@ body {background-color:#000000;}
<a name="l89"></a>The syntax change created an ambiguity when specifying function addresses, like for calling </span><a href="https://tomawezome.github.io/ZealOS/Kernel/QuickSort.CC.html#l99"><span class=cF4>QuickSort</span></a><span class=cF0>(). To resolve it, I
<a name="l90"></a>made a '</span><span class=cF2>&amp;</span><span class=cF0>' required in front of function names when specifying an address of a function, which is better anyway.
<a name="l91"></a>
<a name="l92"></a>Once Terry was no longer using standard C/C++ syntax, he decided to change everything he didn't like and call it </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>HolyC</span></a><span class=cF0>. Here are
<a name="l93"></a>the new </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l209"><span class=cF4>operator precedence</span></a><span class=cF0> rules. It's Biblical! See </span><a href="http://www.biblegateway.com/verse/en/Luke+5:37"><span class=cF4>Luke 5:37</span></a><span class=cF0>.
<a name="l92"></a>Once Terry was no longer using standard C/C++ syntax, he decided to change everything he didn't like and call it </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l1"><span class=cF4>HolyC</span></a><span class=cF0>. Here
<a name="l93"></a>are the new </span><a href="https://tomawezome.github.io/ZealOS/Doc/CosmiC.DD.html#l209"><span class=cF4>operator precedence</span></a><span class=cF0> rules. It's Biblical! See </span><a href="http://www.biblegateway.com/verse/en/Luke+5:37"><span class=cF4>Luke 5:37</span></a><span class=cF0>.
<a name="l94"></a>
<a name="l95"></a>There are no object files in ZealOS and, normally, you don't make executable files either, but you can. That's known as </span><span class=cF4>
<a name="l96"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l178"><span class=cF4>Ahead-of-Time</span></a><span class=cF0> compilation. Instead, you </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l186"><span class=cF4>Just in Time</span></a><span class=cF0> compile.
<a name="l96"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l179"><span class=cF4>Ahead-of-Time</span></a><span class=cF0> compilation. Instead, you </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l187"><span class=cF4>Just in Time</span></a><span class=cF0> compile.
<a name="l97"></a>
<a name="l98"></a>Tasks have no priority and are never removed from the queue. Instead, they often poll whatever they are waiting on and
<a name="l99"></a>swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>Scheduler</span></a><span class=cF0>. Polling
<a name="l100"></a>keeps it simple. It might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order of
<a name="l101"></a>the tasks in the queue determines front-to-back window order.
<a name="l99"></a>swap-out. (Swapping tasks takes half a microsecond and does not involve disk activity or memory maps.) See </span><a href="https://tomawezome.github.io/ZealOS/Kernel/Sched.CC.html#l1"><span class=cF4>Scheduler</span></a><span class=cF0>. Pollin
<a name="l100"></a>g keeps it simple. It might be a problem if you had lots of tasks busy, which rarely happens on a home computer. The order
<a name="l101"></a>of the tasks in the queue determines front-to-back window order.
<a name="l102"></a>
<a name="l103"></a>The </span><span class=cF2>FAT32</span><span class=cF0> filesystem is supported to makes exchanging files with a dual booted other operating system easy and there is the
<a name="l104"></a>simple, 64-bit ZealOS </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> filesystem. The </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> has allocation bitmap for clus and all files are stored contiguously. You
<a name="l105"></a>can't grow files.
<a name="l104"></a>simple, 64-bit ZealOS </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> filesystem. The </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> has allocation bitmap for clus and all files are stored contiguously. Yo
<a name="l105"></a>u can't grow files.
<a name="l106"></a>
<a name="l107"></a>ZealOS is geared toward reading and writing whole files. There is support for direct block random access into files, however -- </span><span class=cF4>
<a name="l108"></a></span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>().
<a name="l107"></a>ZealOS is geared toward reading and writing whole files. There is support for direct block random access into files, however
<a name="l108"></a>-- </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l151"><span class=cF4>FBlkRead</span></a><span class=cF0>() and </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskCFile.CC.html#l214"><span class=cF4>FBlkWrite</span></a><span class=cF0>().
<a name="l109"></a>
<a name="l110"></a>There is no </span><span class=cF2>PATH</span><span class=cF0>, but parent directories are searched when a file is not found. This feature is especially useful for default
<a name="l111"></a>account files.
<a name="l112"></a>
<a name="l113"></a>ZealOS is for hobbyist programmers on single user (at a time) home computers, not mainframes or servers. The focus task is
<a name="l114"></a>all-important so symmetrical multiprocessing is almost pointless. Why does it matter running two apps at the same time twice as
<a name="l115"></a>fast when you really want to run one faster? You could say ZealOS does master/slave multiprocessing. The anticipated use for
<a name="l116"></a>multicore is primarily putting graphics on the screen. Hardware graphics acceleration is not used, so this is possible. See </span><span class=cF4>
<a name="l117"></a></span><a href="https://tomawezome.github.io/ZealOS/Doc/MultiCore.DD.html#l1"><span class=cF4>ZealOS MultiCore</span></a><span class=cF0>.
<a name="l114"></a>all-important so symmetrical multiprocessing is almost pointless. Why does it matter running two apps at the same time twice
<a name="l115"></a>as fast when you really want to run one faster? You could say ZealOS does master/slave multiprocessing. The anticipated
<a name="l116"></a>use for multicore is primarily putting graphics on the screen. Hardware graphics acceleration is not used, so this is
<a name="l117"></a>possible. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/MultiCore.DD.html#l1"><span class=cF4>ZealOS MultiCore</span></a><span class=cF0>.
<a name="l118"></a>
<a name="l119"></a>There is no distinction between the terms </span><span class=cF2>task</span><span class=cF0>, </span><span class=cF2>process</span><span class=cF0> or </span><span class=cF2>thread</span><span class=cF0>. All have a task record, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3941"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0> segment
<a name="l120"></a>reg and are accessed with </span><span class=cF4>Fs-&gt;</span><span class=cF0> while </span><span class=cF4>Gs-&gt;</span><span class=cF0> points to a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4060"><span class=cF4>CCPU</span></a><span class=cF0> for the current CPU core. Each task can have just one window, but a
<a name="l121"></a>task can have children with windows. (The segment regs are just used as extra regs -- there is nothing segmented about ZealOS'
<a name="l122"></a>memory.) It is approximately the case that </span><span class=cF2>ZealOS</span><span class=cF0> is multi-threading, single-processing.
<a name="l119"></a>There is no distinction between the terms </span><span class=cF2>task</span><span class=cF0>, </span><span class=cF2>process</span><span class=cF0> or </span><span class=cF2>thread</span><span class=cF0>. All have a task record, </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l3941"><span class=cF4>CTask</span></a><span class=cF0>, pointed to by the </span><span class=cF2>FS</span><span class=cF0>
<a name="l120"></a>segment reg and are accessed with </span><span class=cF4>Fs-&gt;</span><span class=cF0> while </span><span class=cF4>Gs-&gt;</span><span class=cF0> points to a </span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l4060"><span class=cF4>CCPU</span></a><span class=cF0> for the current CPU core. Each task can have just one
<a name="l121"></a>window, but a task can have children with windows. (The segment regs are just used as extra regs -- there is nothing
<a name="l122"></a>segmented about ZealOS' memory.) It is approximately the case that </span><span class=cF2>ZealOS</span><span class=cF0> is multi-threading, single-processing.
<a name="l123"></a>
<a name="l124"></a>In </span><span class=cF2>ZealOS</span><span class=cF0>, </span><a href="https://tomawezome.github.io/ZealOS/Doc/Glossary.DD.html#l154"><span class=cF4>System Task</span></a><span class=cF0> refers to the father of all tasks. He's never supposed to die. Since tasks inherit the symbols of
<a name="l125"></a>parents, system-wide stuff is associated with </span><span class=cF2>System</span><span class=cF0>. His heap is like kernel memory in other operating systems. Since </span><span class=cF2>System</span><span class=cF0>
<a name="l126"></a>is immortal, it's safe to alloc objects, not tied to any mortal task, from </span><span class=cF2>System</span><span class=cF0>'s heap. He stays in a server mode, taking
<a name="l127"></a>requests, so you can ask him to </span><span class=cF2>#include</span><span class=cF0> something, placing that code system-wide. A funny story is that originally Terry Davis
<a name="l128"></a>called it the </span><span class=cF2>root</span><span class=cF0> task and even had a </span><span class=cF2>/Root</span><span class=cF0> directory :-) </span><span class=cF2>System</span><span class=cF0> executes </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0> at boot time.
<a name="l125"></a>parents, system-wide stuff is associated with </span><span class=cF2>System</span><span class=cF0>. His heap is like kernel memory in other operating systems. Since </span><span class=cF2>Syste
<a name="l126"></a>m</span><span class=cF0> is immortal, it's safe to alloc objects, not tied to any mortal task, from </span><span class=cF2>System</span><span class=cF0>'s heap. He stays in a server mode, taking
<a name="l127"></a>requests, so you can ask him to </span><span class=cF2>#include</span><span class=cF0> something, placing that code system-wide. A funny story is that originally Terry
<a name="l128"></a>Davis called it the </span><span class=cF2>root</span><span class=cF0> task and even had a </span><span class=cF2>/Root</span><span class=cF0> directory :-) </span><span class=cF2>System</span><span class=cF0> executes </span><a href="https://tomawezome.github.io/ZealOS/StartOS.CC.html#l1"><span class=cF4>::/StartOS.CC</span></a><span class=cF0> at boot time.
<a name="l129"></a>
<a name="l130"></a>For easy back-ups, place everything you author in your </span><span class=cF2>/Home</span><span class=cF0> directory and subdirectories. Then, use </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l148"><span class=cF4>CopyTree</span></a><span class=cF0>(). That should
<a name="l131"></a>make upgrading easy, too. Customizable start-up scripts go in your </span><span class=cF2>/Home</span><span class=cF0> directory. The default start-up scripts are in the
<a name="l132"></a>root directory. Copy the start-up files you wish to customize into </span><span class=cF2>/Home</span><span class=cF0> and modify them. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/GuideLines.DD.html#l30"><span class=cF4>Home Files</span></a><span class=cF0>. You can make your
<a name="l133"></a>own distro that includes everything and is a bootable live CD with </span><a href="https://tomawezome.github.io/ZealOS/Misc/DoDistro.CC.html#l1"><span class=cF4>::/Misc/DoDistro.CC</span></a><span class=cF0>.
<a name="l130"></a>For easy back-ups, place everything you author in your </span><span class=cF2>/Home</span><span class=cF0> directory and subdirectories. Then, use </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/ZDiskA.CC.html#l148"><span class=cF4>CopyTree</span></a><span class=cF0>(). That
<a name="l131"></a>should make upgrading easy, too. Customizable start-up scripts go in your </span><span class=cF2>/Home</span><span class=cF0> directory. The default start-up scripts are
<a name="l132"></a>in the root directory. Copy the start-up files you wish to customize into </span><span class=cF2>/Home</span><span class=cF0> and modify them. See </span><a href="https://tomawezome.github.io/ZealOS/Doc/GuideLines.DD.html#l30"><span class=cF4>Home Files</span></a><span class=cF0>. You can
<a name="l133"></a>make your own distro that includes everything and is a bootable live CD with </span><a href="https://tomawezome.github.io/ZealOS/Misc/DoDistro.CC.html#l1"><span class=cF4>::/Misc/DoDistro.CC</span></a><span class=cF0>.
<a name="l134"></a>
<a name="l135"></a>Typically, your usage pattern through the day will be repeatedly left or right clicking on filenames in a cmd line </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l120"><span class=cF4>Dir</span></a><span class=cF0>()
<a name="l136"></a>listing. You left-click files to edit them and right-click to </span><span class=cF2>#include</span><span class=cF0> them. To begin a project, type </span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocEd.CC.html#l228"><span class=cF4>Ed</span></a><span class=cF0>(&quot;filename&quot;);,
<a name="l137"></a>supplying a filename. You can also run programs with </span><span class=cF2>&lt;F5&gt;</span><span class=cF0> when in the editor. </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> to save and exit the file. You'll need
<a name="l138"></a>to do a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l120"><span class=cF4>Dir</span></a><span class=cF0>() cmd, periodically, so make a macro on your PersonalMenu. Access your PersonalMenu by pressing </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0>,
<a name="l137"></a>supplying a filename. You can also run programs with </span><span class=cF2>&lt;F5&gt;</span><span class=cF0> when in the editor. </span><span class=cF2>&lt;ESC&gt;</span><span class=cF0> to save and exit the file. You'll
<a name="l138"></a>need to do a new </span><a href="https://tomawezome.github.io/ZealOS/Kernel/BlkDev/DiskDirB.CC.html#l120"><span class=cF4>Dir</span></a><span class=cF0>() cmd, periodically, so make a macro on your PersonalMenu. Access your PersonalMenu by pressing </span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0>,
<a name="l139"></a>cursoring until you are on top of it and pressing </span><span class=cF2>&lt;SPACE&gt;</span><span class=cF0>.
<a name="l140"></a>
<a name="l141"></a></span><span class=cF2>&lt;CTRL-t&gt;</span><span class=cF0> toggles plain text mode, showing format commands, a little like viewing html code.
@ -183,22 +183,22 @@ body {background-color:#000000;}
<a name="l156"></a></span><span class=cF2>&lt;CTRL-ALT-x&gt;</span><span class=cF0> kills a window.
<a name="l157"></a></span><span class=cF4>
<a name="l158"></a></span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() is your best friend. There's a wrapper function called </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l8"><span class=cF4>F</span></a><span class=cF0>() in your </span><span class=cF2>~/HomeWrappers.CC</span><span class=cF0> file. Feel free to make wrapper
<a name="l159"></a>functions for functions you use often and customize the args. By the way, </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>() can be used to replace strings across
<a name="l160"></a>multiple files. You can access </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() using </span><span class=cF2>&lt;CTRL-SHIFT-f&gt;</span><span class=cF0>.
<a name="l159"></a>functions for functions you use often and customize the args. By the way, </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() or </span><a href="https://tomawezome.github.io/ZealOS/Home/HomeWrappers.CC.html#l13"><span class=cF4>R</span></a><span class=cF0>() can be used to replace strings
<a name="l160"></a>across multiple files. You can access </span><a href="https://tomawezome.github.io/ZealOS/System/Utils/Find.CC.html#l166"><span class=cF4>Find</span></a><span class=cF0>() using </span><span class=cF2>&lt;CTRL-SHIFT-f&gt;</span><span class=cF0>.
<a name="l161"></a>
<a name="l162"></a>As you browse code, use the </span><span class=cF2>AutoComplete</span><span class=cF0> window to look-up functions, etc. </span><span class=cF2>&lt;CTRL-SHIFT-F1&gt;</span><span class=cF0> (or whatever number) to follow a sym
<a name="l163"></a>to it's source. You can browse deeper and deeper. You go back with </span><span class=cF2>&lt;SHIFT-ESC&gt;</span><span class=cF0>.
<a name="l162"></a>As you browse code, use the </span><span class=cF2>AutoComplete</span><span class=cF0> window to look-up functions, etc. </span><span class=cF2>&lt;CTRL-SHIFT-F1&gt;</span><span class=cF0> (or whatever number) to follow a
<a name="l163"></a>sym to it's source. You can browse deeper and deeper. You go back with </span><span class=cF2>&lt;SHIFT-ESC&gt;</span><span class=cF0>.
<a name="l164"></a>
<a name="l165"></a>Use the </span><a href="https://tomawezome.github.io/ZealOS/Doc/HelpIndex.DD.html#l1"><span class=cF4>Help &amp; Index</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Doc/DemoIndex.DD.html#l1"><span class=cF4>Demo Index</span></a><span class=cF0> to find-out what exists. Press </span><span class=cF2>&lt;F1&gt;</span><span class=cF0> for help or use the links on your menu (</span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0>). Also
<a name="l166"></a>, look in the </span><span class=cF2>/Demo</span><span class=cF0> or </span><span class=cF2>/Apps</span><span class=cF0> directories for inspiration.
<a name="l165"></a>Use the </span><a href="https://tomawezome.github.io/ZealOS/Doc/HelpIndex.DD.html#l1"><span class=cF4>Help &amp; Index</span></a><span class=cF0> or </span><a href="https://tomawezome.github.io/ZealOS/Doc/DemoIndex.DD.html#l1"><span class=cF4>Demo Index</span></a><span class=cF0> to find-out what exists. Press </span><span class=cF2>&lt;F1&gt;</span><span class=cF0> for help or use the links on your menu (</span><span class=cF2>&lt;CTRL-m&gt;</span><span class=cF0>). Al
<a name="l166"></a>so, look in the </span><span class=cF2>/Demo</span><span class=cF0> or </span><span class=cF2>/Apps</span><span class=cF0> directories for inspiration.
<a name="l167"></a>
<a name="l168"></a>Software is distributed as </span><a href="https://tomawezome.github.io/ZealOS/Doc/RedSea.DD.html#l1"><span class=cF4>RedSea</span></a><span class=cF0> ISO files. Burn a CD/DVD, or set your CD/DVD in </span><span class=cF2>QEMU</span><span class=cF0>, </span><span class=cF2>VMware</span><span class=cF0> or </span><span class=cF2>VirtualBox</span><span class=cF0> to the ISO file.
<a name="l169"></a>Then, access the </span><span class=cF2>'T'</span><span class=cF0> drive. Or, </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() the ISO.C file and access the </span><span class=cF2>'M'</span><span class=cF0> drive in ZealOS. It must be a contiguous ISO.C file,
<a name="l170"></a>so rename it under ZealOS to ISO.C.
<a name="l169"></a> Then, access the </span><span class=cF2>'T'</span><span class=cF0> drive. Or, </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/Mount.CC.html#l235"><span class=cF4>Mount</span></a><span class=cF0>() the ISO.C file and access the </span><span class=cF2>'M'</span><span class=cF0> drive in ZealOS. It must be a contiguous ISO.C
<a name="l170"></a>file, so rename it under ZealOS to ISO.C.
<a name="l171"></a>
<a name="l172"></a>Ideally, do not install applications such as games onto your hard drive because we wish to keep hard drive usage low, so the
<a name="l173"></a>whole </span><span class=cF2>'C'</span><span class=cF0> drive can be copied quickly to </span><span class=cF2>'D'</span><span class=cF0>. Also, the </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/FileMgr.CC.html#l678"><span class=cF4>FileMgr</span></a><span class=cF0>() </span><span class=cF2>&lt;CTRL-d&gt;</span><span class=cF0> starts too slowly when there are lots of hard drive
<a name="l174"></a>files, but that is how we want it.
<a name="l173"></a>whole </span><span class=cF2>'C'</span><span class=cF0> drive can be copied quickly to </span><span class=cF2>'D'</span><span class=cF0>. Also, the </span><a href="https://tomawezome.github.io/ZealOS/System/BlkDev/FileMgr.CC.html#l678"><span class=cF4>FileMgr</span></a><span class=cF0>() </span><span class=cF2>&lt;CTRL-d&gt;</span><span class=cF0> starts too slowly when there are lots of hard
<a name="l174"></a>drive files, but that is how we want it.
<a name="l175"></a>
<a name="l176"></a>3rd party libraries are banned, since they circumvent the 100,000 line of code limit in the </span><a href="https://tomawezome.github.io/ZealOS/Doc/Charter.DD.html#l1"><span class=cF4>ZealOS Charter</span></a><span class=cF0>. All applications
<a name="l177"></a>must only depend on the core ZealOS files and whatever they bring along in the ISO. This is similar to how Commodore 64

Some files were not shown because too many files have changed in this diff Show more