mirror of
https://github.com/Zeal-Operating-System/ZealOS.git
synced 2025-04-01 05:45:33 +01:00
Optimize HTML doc generation.
Change repeated #include and PopUps during HTML generation into one slave task.
This commit is contained in:
parent
2ea6956433
commit
5f923300e2
154 changed files with 1261 additions and 1097 deletions
ZealOS-2021-07-12-03_23_08.iso
docs
Apps
Budget
GrModels
KeepAway
Logic
Psalmody
Span
Strut
TimeClock
Titanium
ToTheFront
Vocabulary
X-Caliber
index.htmlCompiler
Demo
AcctExample
Asm
Disk
DolDoc
Games
Graphics
InFile
Lectures
MultiCore
RevFileDemo
SortFileDemo
Sound
Templates
ToHtmlToTXTDemo
WebLogDemo
index.htmlDoc
AboutZealOS.DD.htmlBlkChain.DD.htmlBoot.DD.htmlChangeLog.DD.htmlCharOverview.DD.htmlCharter.DD.htmlCmdLineOverview.DD.htmlCosmiC.DD.htmlCredits.DD.htmlCutCorners.DD.htmlD3.DD.htmlDate.DD.htmlDebugOverview.DD.htmlDefine.DD.htmlDolDoc.DD.htmlDolDocOverview.DD.htmlFeatures.DD.htmlFileMgr.DD.htmlFileUtils.DD.htmlGRFiles.DD.htmlGraphicsOverview.DD.htmlGuideLines.DD.htmlHash.DD.htmlHelpSystem.DD.htmlInFile.DD.htmlInstall.DD.htmlKeyAlloc.DD.htmlMemoryOverview.DD.htmlMenus.DD.htmlMultiCore.DD.htmlOptions.DD.htmlPrint.DD.htmlProfiler.DD.htmlQueue.DD.htmlQuirks.DD.htmlRedSea.DD.htmlReliability.DD.htmlResource.DD.htmlScopingLinkage.DD.htmlSound.DD.htmlSpriteEd.DD.htmlSpriteMain.DD.htmlSpriteSideBar.DD.htmlStdOutTask.DD.htmlStrategy.DD.htmlStreams.DD.htmlTOSZ.DD.htmlTextBase.DD.htmlTimeCycles.DD.htmlTimeDate.DD.htmlTips.DD.htmlTransform.DD.htmlWelcome.DD.htmlWhyNotMore.DD.html
Binary file not shown.
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>"no nothing"</span><span class=cF0>, </span><span class=cF2>
|
||||
<a name="l12"></a>"has words"</span><span class=cF0>, </span><span class=cF2>"has graphics"</span><span class=cF0>, or </span><span class=cF2>"special"</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><DEL></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>"no
|
||||
<a name="l12"></a>nothing"</span><span class=cF0>, </span><span class=cF2>"has words"</span><span class=cF0>, </span><span class=cF2>"has graphics"</span><span class=cF0>, or </span><span class=cF2>"special"</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><DEL></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><CTRL-l></span><span class=cF0>, but you should do it after pressing </span><span class=cF2><CTRL-t></span><span class=cF0> because the clip-insert in </span><span class=cF2><CTRL-l></span><span class=cF0> is screwy. See this <Song>
|
||||
<a name="l18"></a>after pressing </span><span class=cF2><CTRL-t></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><CTRL-l></span><span class=cF0>, but you should do it after pressing </span><span class=cF2><CTRL-t></span><span class=cF0> because the clip-insert in </span><span class=cF2><CTRL-l></span><span class=cF0> is screwy. See this
|
||||
<a name="l18"></a><Song> after pressing </span><span class=cF2><CTRL-t></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>("~/Psalmody"); to play your songs.
|
||||
</span></pre></body>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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("C:/Home","B:/Home"); </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("C:/Home","B:/Home"); </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 <CTRL-ALT-INS>
|
||||
<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<0 for top<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 <CTRL-ALT-INS>
|
||||
<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<0 for top<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 <CTRL-m> 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="\n\\"; (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 <CTRL-m> 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="\n\\"; (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 "+R".
|
||||
<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 "+R".
|
||||
<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>("char_bmp_","set_");
|
||||
<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>("char_bmp_","set_");
|
||||
<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->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->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>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>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: &=, |= 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: &=, |= 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><CTRL-m></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><CTRL-s></span><span class=cF0> and </span><span class=cF2><CTRL-q></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><CTRL-
|
||||
<a name="l322"></a>m></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><CTRL-s></span><span class=cF0> and </span><span class=cF2><CTRL-q></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 "the literature".
|
||||
<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 "the literature".
|
||||
<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 "Char".
|
||||
<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, "Disk" and "BlkDev"? (Probably, not that one.)
|
||||
<a name="l338"></a>* Get rid of "Char".
|
||||
<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, "Disk" and "BlkDev"? (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 "t='*'" 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 "t='*'" and padding character?
|
||||
<a name="l358"></a>
|
||||
<a name="l359"></a>* $LK,L="FL:D:/Kernel/File.CC"$ 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="FL:D:/Kernel/File.CC"$ 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>("","+T");
|
||||
<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. <CTRL-ALT-c>, </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>("","+T");
|
||||
<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. <CTRL-ALT-c>, </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> >Might want to do ZOOM in U8 graphics and convert screen capture to U8
|
||||
<a name="l417"></a> >Might want to rev bit order
|
||||
<a name="l418"></a>
|
||||
<a name="l419"></a>* This </span><span class=cF4><u>Fs->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> >Might want to do ZOOM in U8 graphics and convert screen capture to U8
|
||||
<a name="l419"></a> >Might want to rev bit order
|
||||
<a name="l420"></a>
|
||||
<a name="l421"></a>* This </span><span class=cF4><u>Fs->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>* <CTRL-r> 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 "const" 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>* <CTRL-r> 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 "const" 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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -30,7 +30,7 @@ body {background-color:#000000;}
|
|||
<a name="l3"></a></span><span class=cF2>$IB,"<1>",BI=1,BP="::/Demo/Graphics/SpritePut.CC,2"$</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=""</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=""</span></a><span class=cF2>.</span><span class=cF0>
|
||||
<a name="l7"></a>
|
||||
<a name="l8"></a></span><span class=cF2>Press <CTRL-r> and "Ptr to Sprite".</span><span class=cF0>
|
||||
<a name="l9"></a></span><span class=cF2>Then, enter a file and the number of</span><span class=cF0>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 "InFile".</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;
|
||||
|
|
|
@ -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 "InFile".</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>
|
||||
|
|
|
@ -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 "InFile".</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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>"Hello World" 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>"Hello World" 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>
|
||||
|
|
|
@ -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>"No matching entries\n"</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>"\n\n"</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>"No matching entries\n"</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>
|
||||
|
|
|
@ -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>"CC"</span><span class=cF0>);
|
||||
<a name="l412"></a> </span><span class=cF1>if</span><span class=cF0> (_out_name)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 "flaw"
|
||||
<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>"flaw" 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>* "Commodore 64" is a trademark owned by Polabe Holding NV.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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() -> </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>("RLf_VGA", "</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KernelA.HH.html#l576"><span class=cF4>RLf_VESA</span></a><span class=cF0>");
|
||||
<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 -> </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 "TOS Staff" and "InsReg" 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>.
|
||||
|
|
|
@ -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><CTRL-ALT-a></span><span class=cF0> to see shapes for 128-255.
|
||||
<a name="l12"></a>Technically, </span><span class=cF2><CTRL-ALT-a></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.
|
||||
|
|
|
@ -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. "Perfect" 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. "Perfect" 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>
|
||||
|
|
|
@ -40,8 +40,8 @@ body {background-color:#000000;}
|
|||
<a name="l13"></a>
|
||||
<a name="l14"></a>></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><ENTER></span><span class=cF0> on a directory listing or press </span><span class=cF2><F5></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><ENTER></span><span class=cF0> on a directory listing or press </span><span class=cF2><F5></span><span class=cF0>
|
||||
<a name="l18"></a>while editing.
|
||||
<a name="l19"></a>
|
||||
<a name="l20"></a>></span><span class=cF2>Ed("NewFile.CC");</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>.
|
||||
|
|
|
@ -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 <= age < 20)
|
||||
<a name="l115"></a> "Teen-ager";
|
||||
<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><></span><span class=cF0> with </span><span class=cF2>#include</span><span class=cF0>, use </span><span class=cF2>""</span><span class=cF0>.
|
||||
<a name="l238"></a>
|
||||
<a name="l239"></a>* "</span><span class=cF2>$</span><span class=cF0>" 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>* "</span><span class=cF2>$</span><span class=cF0>" 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>
|
||||
|
|
|
@ -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 "</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>" as a name instead of "Limit". He inspired Terry to use "needle" and "haystack" 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 "</span><a href="https://tomawezome.github.io/ZealOS/Kernel/KMathB.CC.html#l1"><span class=cF4>Clamp</span></a><span class=cF0>" as a name instead of "Limit". He inspired Terry to use "needle" and "haystack"
|
||||
<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 & Index</span></a><span class=cF0>.
|
||||
<a name="l44"></a>
|
||||
|
|
|
@ -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. "Please don't
|
||||
<a name="l10"></a>make us ruin the beautiful shiny-new ZealOS with that!" </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>"Please don't make us ruin the beautiful shiny-new ZealOS with that!" </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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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><CTRL-ALT-d></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><CTRL-ALT-d></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>(&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>("FunName") 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><CTRL-ALT-letter></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>
|
||||
|
|
|
@ -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,"",D="DD_MYSTRING"$</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,"",D="DD_MYSTRING"$</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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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><CTRL-l></span><span class=cF0>
|
||||
<a name="l4"></a>to experiment inserting a command. Then, use </span><span class=cF2><CTRL-t></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><CTRL-
|
||||
<a name="l4"></a>l></span><span class=cF0> to experiment inserting a command. Then, use </span><span class=cF2><CTRL-t></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><ArgList> := <</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>></span><span class=cF2>=</span><span class=cF0><ArgExpression>[</span><span class=cF2>,</span><span class=cF0><ArgList>]
|
||||
<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 <</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>></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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>> 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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>FlagCode</span></a><span class=cF0>> 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 <ESC> (Exit)
|
||||
<a name="l69"></a>+] +Q <SHIFT-ESC> (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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>> 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="" Tag Str
|
||||
<a name="l79"></a>+] LEN="" Field Length
|
||||
<a name="l80"></a>+] A="" Auxilliary Str
|
||||
<a name="l81"></a>+] D="" Define Str
|
||||
<a name="l82"></a>+] HTML=""
|
||||
<a name="l83"></a>+] LE=<Exp> Left Expression
|
||||
<a name="l84"></a>+] LM="" Left Macro Str
|
||||
<a name="l85"></a>+] RE=<Exp> Right Expression
|
||||
<a name="l86"></a>+] RM="" Right Macro Str
|
||||
<a name="l87"></a>+] BI=<Exp> Bin Number
|
||||
<a name="l88"></a>+] BP="" Bin Ptr
|
||||
<a name="l89"></a>+] RT=<raw_data_type>
|
||||
<a name="l90"></a>+] SX=<Exp> Shift X
|
||||
<a name="l91"></a>+] SY=<Exp> Shift Y
|
||||
<a name="l92"></a>+] SCX=<Exp> Scroll X
|
||||
<a name="l93"></a>+] U=<Exp> 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><CTRL-t> 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 <</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>></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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l9"><span class=cF4>TwoLetterCmd</span></a><span class=cF0>> 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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>FlagCode</span></a><span class=cF0>> 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 <ESC> (Exit)
|
||||
<a name="l70"></a>+] +Q <SHIFT-ESC> (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><</span><a href="https://tomawezome.github.io/ZealOS/System/DolDoc/DocInit.CC.html#l14"><span class=cF4>ArgCode</span></a><span class=cF0>> 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="" Tag Str
|
||||
<a name="l80"></a>+] LEN="" Field Length
|
||||
<a name="l81"></a>+] A="" Auxilliary Str
|
||||
<a name="l82"></a>+] D="" Define Str
|
||||
<a name="l83"></a>+] HTML=""
|
||||
<a name="l84"></a>+] LE=<Exp> Left Expression
|
||||
<a name="l85"></a>+] LM="" Left Macro Str
|
||||
<a name="l86"></a>+] RE=<Exp> Right Expression
|
||||
<a name="l87"></a>+] RM="" Right Macro Str
|
||||
<a name="l88"></a>+] BI=<Exp> Bin Number
|
||||
<a name="l89"></a>+] BP="" Bin Ptr
|
||||
<a name="l90"></a>+] RT=<raw_data_type>
|
||||
<a name="l91"></a>+] SX=<Exp> Shift X
|
||||
<a name="l92"></a>+] SY=<Exp> Shift Y
|
||||
<a name="l93"></a>+] SCX=<Exp> Scroll X
|
||||
<a name="l94"></a>+] U=<Exp> 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><CTRL-t> 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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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> "::/Tmp/CDDVD.ISO.C"</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> "::/Tmp/CDDVD.ISO.C"</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>"::/Tmp/CDDVD.ISO"</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>
|
||||
|
|
|
@ -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>"/Kernel/*"</span><span class=cF0> BaseDir: </span><span class=cF2>/Kernel</span><span class=cF0> Mask: </span><span class=cF2>*</span><span class=cF0>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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><CTRL-r></span><span class=cF0>, toggle to plain text with </span><span class=cF2><CTRL-t></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,"",BI=n$</span><span class=cF0>. Use </span><span class=cF2><CTRL-r></span><span class=cF0>'s "Pointer to Sprite" 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><CTRL-r></span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2><CTRL-r></span><span class=cF0>
|
||||
<a name="l70"></a>again.
|
||||
<a name="l69"></a>cursor location when you pressed </span><span class=cF2><CTRL-r></span><span class=cF0> to make it. You can edit a sprite by clicking the cursor on it and pressing </span><span class=cF2><CTRL-r
|
||||
<a name="l70"></a>></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="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->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>->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>->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>->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>.
|
||||
|
|
|
@ -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><CTRL-l></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><CTRL-l></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>"interpreted". 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>"interpreted". 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->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->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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 "Topic/SubTopic;OtherTopic"</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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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><ALT-keys></span><span class=cF0> and </span><span class=cF2><ALT-SHIFT-keys></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><CTRL-ALT-keys></span><span class=cF0> and </span><span class=cF2><CTRL-ALT-SHIFT-keys></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><CTRL-ALT-letter></span><span class=cF0> handlers take a scan_code as an arg.
|
||||
<a name="l14"></a></span><span class=cF2><CTRL-ALT-keys></span><span class=cF0> and </span><span class=cF2><CTRL-ALT-SHIFT-keys></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><CTRL-ALT-letter></span><span class=cF0> handlers take a scan_code as an arg.
|
||||
<a name="l17"></a>
|
||||
<a name="l18"></a></span><span class=cF2><CTRL-function key></span><span class=cF0> Auto-completes local words.
|
||||
<a name="l19"></a>
|
||||
|
|
|
@ -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 & 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 "the kernel". 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 "the kernel".
|
||||
<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.
|
||||
|
|
|
@ -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><CTRL-SHIFT-l></span><span class=cF0> and "Insert ASCII/ScanCode".
|
||||
<a name="l30"></a>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -40,8 +40,8 @@ body {background-color:#000000;}
|
|||
<a name="l13"></a>
|
||||
<a name="l14"></a><aux_format_num>:
|
||||
<a name="l15"></a>
|
||||
<a name="l16"></a> For </span><span class=cF2>"%n"</span><span class=cF0>, </span><span class=cF2>"%d"</span><span class=cF0> or </span><span class=cF2>"%u"</span><span class=cF0>, the <aux_format_num> causes thousands mode. </span><span class=cF2>"%h?n"</span><span class=cF0> will pick a var exponent multiples of three unit,
|
||||
<a name="l17"></a> while </span><span class=cF2>"%h-3n"</span><span class=cF0> will display milli units or </span><span class=cF2>"%h6n"</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>"%n"</span><span class=cF0>. See </span><span class=cF4>
|
||||
<a name="l16"></a> For </span><span class=cF2>"%n"</span><span class=cF0>, </span><span class=cF2>"%d"</span><span class=cF0> or </span><span class=cF2>"%u"</span><span class=cF0>, the <aux_format_num> causes thousands mode. </span><span class=cF2>"%h?n"</span><span class=cF0> will pick a var exponent multiples of three
|
||||
<a name="l17"></a> unit, while </span><span class=cF2>"%h-3n"</span><span class=cF0> will display milli units or </span><span class=cF2>"%h6n"</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>"%n"</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>"%c"</span><span class=cF0> or </span><span class=cF2>"%C"</span><span class=cF0>, the <aux_format_num> 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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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->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->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->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->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><CTR
|
||||
<a name="l60"></a>L-t></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><C
|
||||
<a name="l60"></a>TRL-t></span><span class=cF0> before doing an editor goto-line-number command.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 "*elems" 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 "Pop-Up", 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 "Pop-Up", it will spawn a new task and run the payload. A pop-up macro can be placed in any document.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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->border_doc</span><span class=cF0>. There is a pair for the task's client area: </span><span class=cF2>Fs->put_doc</span><span class=cF0> and </span><span class=cF2>Fs->displa
|
||||
<a name="l2"></a>y_doc</span><span class=cF0>. You can, optionally, do double buffering, otherwise </span><span class=cF2>Fs->put_doc</span><span class=cF0> is the same as </span><span class=cF2>Fs->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->border_doc</span><span class=cF0>. There is a pair for the task's client area: </span><span class=cF2>Fs->put_doc</span><span class=cF0> and </span><span class=cF2>Fs->disp
|
||||
<a name="l2"></a>lay_doc</span><span class=cF0>. You can, optionally, do double buffering, otherwise </span><span class=cF2>Fs->put_doc</span><span class=cF0> is the same as </span><span class=cF2>Fs->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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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><CTRL-m></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>
|
||||
|
|
|
@ -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>* "Linux" is a trademark owned by Linus Torvalds.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -39,17 +39,17 @@ body {background-color:#000000;}
|
|||
<a name="l12"></a>windows. </span><span class=cF2><ALT-h></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(\"C:/*\",\"D:/*\",\"+r+d\");</span><span class=cF0> to check your changes.
|
||||
<a name="l22"></a>
|
||||
<a name="l23"></a>* </span><span class=cF2><CTRL-m></span><span class=cF0> at the cmd line to access your PersonalMenu. Place macros there with </span><span class=cF2><CTRL-l></span><span class=cF0>, or icon-like sprites with </span><span class=cF2><CTRL-r></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><CTRL-s></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><CTRL-s></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><CTRL-SHIFT-L></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><CTRL-f></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><ESC></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><CTRL-f></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><ESC></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><CTRL-r></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><CTRL-a></span><span class=cF0> saves
|
||||
<a name="l108"></a>as, </span><span class=cF2><CTRL-s></span><span class=cF0> saves with the same name in the scrolling title bar. Hitting </span><span class=cF2><ESC></span><span class=cF0> will exit and save (</span><span class=cF2><SHIFT-ESC></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><CTRL-a></span><span class=cF0>
|
||||
<a name="l108"></a>saves as, </span><span class=cF2><CTRL-s></span><span class=cF0> saves with the same name in the scrolling title bar. Hitting </span><span class=cF2><ESC></span><span class=cF0> will exit and save (</span><span class=cF2><SHIFT-ESC></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><CTRL-l></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,"<
|
||||
<a name="l131"></a>2>",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>"<2>",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><CTRL-r></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>"no
|
||||
<a name="l180"></a>nothing"</span><span class=cF0>, </span><span class=cF2>"has words"</span><span class=cF0>, </span><span class=cF2>"has graphics"</span><span class=cF0>, or </span><span class=cF2>"special"</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><DEL></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>"n
|
||||
<a name="l180"></a>o nothing"</span><span class=cF0>, </span><span class=cF2>"has words"</span><span class=cF0>, </span><span class=cF2>"has graphics"</span><span class=cF0>, or </span><span class=cF2>"special"</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><DEL></span><span class=cF0> to delete songs.
|
||||
<a name="l182"></a>
|
||||
<a name="l183"></a>* </span><span class=cF8>"Linux" is a trademark owned by Linus Torvalds.</span></pre></body>
|
||||
</html>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 "failure is not an option" 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 "failure is not an option" 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>&</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-></span><span class=cF0> while </span><span class=cF4>Gs-></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-></span><span class=cF0> while </span><span class=cF4>Gs-></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>("filename");,
|
||||
<a name="l137"></a>supplying a filename. You can also run programs with </span><span class=cF2><F5></span><span class=cF0> when in the editor. </span><span class=cF2><ESC></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><CTRL-m></span><span class=cF0>,
|
||||
<a name="l137"></a>supplying a filename. You can also run programs with </span><span class=cF2><F5></span><span class=cF0> when in the editor. </span><span class=cF2><ESC></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><CTRL-m></span><span class=cF0>,
|
||||
<a name="l139"></a>cursoring until you are on top of it and pressing </span><span class=cF2><SPACE></span><span class=cF0>.
|
||||
<a name="l140"></a>
|
||||
<a name="l141"></a></span><span class=cF2><CTRL-t></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><CTRL-ALT-x></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><CTRL-SHIFT-f></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><CTRL-SHIFT-f></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><CTRL-SHIFT-F1></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><SHIFT-ESC></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><CTRL-SHIFT-F1></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><SHIFT-ESC></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 & 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><F1></span><span class=cF0> for help or use the links on your menu (</span><span class=cF2><CTRL-m></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 & 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><F1></span><span class=cF0> for help or use the links on your menu (</span><span class=cF2><CTRL-m></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><CTRL-d></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><CTRL-d></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
|
||||
|
|
|
@ -34,9 +34,9 @@ body {background-color:#000000;}
|
|||
<a name="l7"></a>leave behind much trouble, but plenty remains.
|
||||
<a name="l8"></a>
|
||||
<a name="l9"></a>The PCI bus interface is what modern hardware uses. Before PCI, life was simple and devices used I/O ports. After studying </span><span class=cF4>
|
||||
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/PCIInterrupts.CC.html#l1"><span class=cF4>PCI Interrupts</span></a><span class=cF0> and attempting to do a HDAudio driver, Terry Davis came to realize that modern PCI devices require ten times more
|
||||
<a name="l11"></a>code and he cannot even come close to making them work on everyone's machine because with PCI devices there are several models
|
||||
<a name="l12"></a>to worry about, unlike with the older ISA bus devices which can be done with one driver.
|
||||
<a name="l10"></a></span><a href="https://tomawezome.github.io/ZealOS/Demo/Lectures/PCIInterrupts.CC.html#l1"><span class=cF4>PCI Interrupts</span></a><span class=cF0> and attempting to do a HDAudio driver, Terry Davis came to realize that modern PCI devices require ten times
|
||||
<a name="l11"></a>more code and he cannot even come close to making them work on everyone's machine because with PCI devices there are several
|
||||
<a name="l12"></a>models to worry about, unlike with the older ISA bus devices which can be done with one driver.
|
||||
<a name="l13"></a>
|
||||
<a name="l14"></a>Currently, ZealOS has no PCI drivers beyond AHCI and networking. Most drivers use I/O ports and operate in ISA bus mode. At
|
||||
<a name="l15"></a>this point, we only have one driver for each type of device and it is delightfully simple that way. ZealOS has one </span><a href="https://tomawezome.github.io/ZealOS/Kernel/SerialDev/Keyboard.CC.html#l1"><span class=cF4>keyboard</span></a><span class=cF0>
|
||||
|
@ -52,21 +52,22 @@ body {background-color:#000000;}
|
|||
<a name="l25"></a>
|
||||
<a name="l26"></a>Adding a USB driver would be really ugly with UHCI, EHCI, OHCI, USB1, USB2, USB3, ICH6, ICH7, ICH8, ICH9, ICH10, ICH11, ICH12,
|
||||
<a name="l27"></a>boot mode and regular mode for keyboard/mouse and a diversity of HID reports. It's hopeless. It could never offer anything
|
||||
<a name="l28"></a>but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would ZealOS gain? Nothing.
|
||||
<a name="l29"></a>A keyboard or mouse would not be improved. Solid State USB drives would be nice, but it's not going to happen.
|
||||
<a name="l28"></a>but crappy, limited support and it would just add a ton of crappy code that mostly didn't work. What would ZealOS gain? Nothin
|
||||
<a name="l29"></a>g. A keyboard or mouse would not be improved. Solid State USB drives would be nice, but it's not going to happen.
|
||||
<a name="l30"></a>
|
||||
<a name="l31"></a>The same story is basically true for GPUs and audio drivers. If you attempt multimedia, everything will break because memory
|
||||
<a name="l32"></a>will get fragmented with huge multimedia files.
|
||||
<a name="l33"></a>
|
||||
<a name="l34"></a>UEFI is pointless. If ZealOS is forced to run in VMware, QEMU or VirtualBox, they will always support non-UEFI mode. Without
|
||||
<a name="l35"></a>working, native hard drive and CD/DVD drivers, you can't get very far with UEFI on a native install, not to mention SecureBoot.
|
||||
<a name="l36"></a>UEFI is, first of all, redundant. If non-UEFI works in a virtual machine, supporting UEFI would only be redundant, ugly nasty
|
||||
<a name="l37"></a>code. The compiler does not create an ELF or PE format. We would have to ruin the beauty of the compiler.
|
||||
<a name="l38"></a>
|
||||
<a name="l39"></a>God talks.
|
||||
<a name="l40"></a></span><span class=cF8>
|
||||
<a name="l41"></a>* "QEMU" is a trademark owned by Fabrice Bellard.
|
||||
<a name="l42"></a>* "VMware" is a trademark owned by VMware, Inc.
|
||||
<a name="l43"></a>* "VirtualBox" is a trademark owned by Oracle.
|
||||
<a name="l34"></a>UEFI is pointless. If ZealOS is forced to run in VMware, QEMU or VirtualBox, they will always support non-UEFI mode. Withou
|
||||
<a name="l35"></a>t working, native hard drive and CD/DVD drivers, you can't get very far with UEFI on a native install, not to mention
|
||||
<a name="l36"></a>SecureBoot. UEFI is, first of all, redundant. If non-UEFI works in a virtual machine, supporting UEFI would only be
|
||||
<a name="l37"></a>redundant, ugly nasty code. The compiler does not create an ELF or PE format. We would have to ruin the beauty of the
|
||||
<a name="l38"></a>compiler.
|
||||
<a name="l39"></a>
|
||||
<a name="l40"></a>God talks.
|
||||
<a name="l41"></a></span><span class=cF8>
|
||||
<a name="l42"></a>* "QEMU" is a trademark owned by Fabrice Bellard.
|
||||
<a name="l43"></a>* "VMware" is a trademark owned by VMware, Inc.
|
||||
<a name="l44"></a>* "VirtualBox" is a trademark owned by Oracle.
|
||||
</span></pre></body>
|
||||
</html>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue